Index

Show enters and exits. Hide enters and exits.

00:00:26wycats_ leaves the room.
00:02:57obvio171 enters the room.
00:03:43obvio leaves the room.
00:05:06lstoll leaves the room.
00:08:57womble enters the room.
00:14:25macournoyer enters the room.
00:25:07headius leaves the room.
00:27:21miamoto_musashi enters the room.
00:38:39pauldix enters the room.
00:43:45crossblaim leaves the room.
00:52:07macournoyer leaves the room.
00:53:10Arjen_ enters the room.
00:57:24Arjen_ leaves the room.
00:59:36jayWHY leaves the room.
01:05:12jayWHY enters the room.
01:09:16pauldix leaves the room.
01:11:06jayWHY leaves the room.
01:11:23srbaker leaves the room.
01:12:06seydar enters the room.
01:13:26nicksieger leaves the room.
01:14:33srbaker enters the room.
01:16:20GMFlash enters the room.
01:16:39boyscout1 commit by Adam Gardiner
01:16:40boyscout * Fix decompiler bug with handling floats; dde5e62
01:17:34miamoto_musashi leaves the room.
01:19:10srbaker leaves the room.
01:19:46kamal_farizwho runs betterruby?
01:19:50kamal_farizoh
01:19:59kamal_farizdidn't see the author .. nvm!
01:19:59agardinerthat'd be me...
01:20:21kamal_farizexcellent stuff
01:20:29agardinerthanks! :-)
01:20:47kamal_farizi should really weed out my Reader list
01:20:56kamal_farizit's getting hard to get to Inbox 0 on it
01:24:14srbaker enters the room.
01:24:18jrun enters the room.
01:29:43rubuildius_ppcAdam Gardiner: dde5e6229; 1756 files, 6119 examples, 20411 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/168146
01:41:38chris2 leaves the room.
01:44:29mark___ leaves the room.
01:44:46skaar enters the room.
01:48:19drfreeze leaves the room.
01:48:31drfreeze enters the room.
01:51:40rubuildius_amd64 enters the room.
01:57:15radarek leaves the room.
01:58:26boyscout1 commit by Adam Gardiner
01:58:27boyscout * Hide display of @lre in debugger locals output; 0c0c866
01:58:28bitbang_ enters the room.
01:58:41srbaker leaves the room.
01:59:23jayWHY enters the room.
02:04:25wycats leaves the room.
02:05:14rubuildius_amd64Adam Gardiner: 0c0c8665a; 1756 files, 6116 examples, 20382 expectations, 0 failures, 0 errors; http://rafb.net/p/bBEOJ674.html
02:05:15rubuildius_amd64Adam Gardiner: dde5e6229; 1756 files, 6116 examples, 20382 expectations, 0 failures, 0 errors; http://rafb.net/p/F3e4W684.html
02:05:54bitbang leaves the room.
02:08:14mark___ enters the room.
02:09:34rubuildius_ppcAdam Gardiner: 0c0c8665a; 1756 files, 6119 examples, 20411 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/168155
02:09:43jayWHY leaves the room.
02:09:49VVSiz_ enters the room.
02:11:18miamoto_musashi enters the room.
02:11:30Fishy5 enters the room.
02:12:22bitbang_ leaves the room.
02:12:33obiejuan leaves the room.
02:19:02pd enters the room.
02:20:45obvio171 enters the room.
02:21:50jayWHY enters the room.
02:21:59jayWHY leaves the room.
02:23:17srbaker enters the room.
02:26:36obiejuan enters the room.
02:27:50VVSiz leaves the room.
02:28:12UncleD leaves the room.
02:28:28i7XjF9cA enters the room.
02:29:25antaresagardiner, your post served as source for some cpu.h documentation ;)
02:29:42agardinerhehe! good stuff!
02:31:13RyanTM enters the room.
02:32:30pdagardiner: your rss is borked atm if you haven't heard yet
02:33:26agardinerpd: hmmm... lemme look
02:33:59pduhh actually
02:34:01pdit might be ff3
02:34:08pdgoogle reader just subscribed fine when i did it manually
02:35:36jrun leaves the room.
02:36:16srbaker leaves the room.
02:36:42obvio leaves the room.
02:36:45agardineryeah, it seems ok to me
02:37:27agardineralso works on ff3 for me too...?
02:38:29pdthe toolbar button, the atom link, and the rss link all do nothing but refresh the front page for me
02:38:42pdbut it's clearly my problem then, ignore me =)
02:39:33ezmobiusrue: http://www.modrails.com/
02:40:28mark____ enters the room.
02:42:40srbaker enters the room.
02:43:07pd leaves the room.
02:43:15mark_____ enters the room.
02:44:42wifelette enters the room.
02:45:02wifelette leaves the room.
02:47:05mark_____ leaves the room.
02:57:53mark___ leaves the room.
02:58:12antaresrue, what's the state of mod_rubinius btw?
02:58:43mark____ leaves the room.
03:00:21ezmobius leaves the room.
03:08:26webmat leaves the room.
03:18:21antaresrue, here is another attempt with shotgun docs, looks a bit better now but I might forget to cleanup something, let me know: http://pastie.org/168172
03:18:40antaresbrixen, please have a look when you have time, too
03:22:14wifelette enters the room.
03:25:37wycats enters the room.
03:32:54binary42 leaves the room.
03:35:40chop3 leaves the room.
03:38:05foysavas leaves the room.
03:38:47foysavas enters the room.
03:41:36MenTaLguY enters the room.
03:45:57obiejuan leaves the room.
03:46:17tarcieriokay, I'm confused
03:46:23mkescher enters the room.
03:47:05MenTaLguYhowdy
03:47:50tarcieridef uhh(x); p x; x; end
03:48:09tarcieriuhh(1) + uhh(2) + uhh(3)
03:48:12tarcieri3 2 1?
03:48:26tarcieriwhat's going on there?
03:49:32RyanTM leaves the room.
03:51:54tarcieriokay, I think I get it
03:52:03tarcieriit's evaluating the message before sending it?
03:53:09mkescher leaves the room.
03:53:43tarcieriwonders what Erlang does in that regard...
03:55:28tarcieriit evaluates the receiver before the message
03:55:36mediogre enters the room.
03:56:28obvio171_ enters the room.
03:57:26rueEvening
03:58:57ruetarcieri: evan is working on eval order. I think we are switching to conformancy
03:59:05rueAlthough depending on the order is bad bad bad
03:59:14tarcieriaah
03:59:22tarcieriI'm just confused why that's happening
04:02:14Fishy5Why is depending on order so bad?
04:02:43ruetarcieri: The components in the expression are right-to-left, I think there is no greater mystery to it
04:03:00rueFishy5: You should use source lines to establish sequence
04:03:20ruedo_this_first; then_this
04:03:21tarcierilike dispatch(obj, meth, dispatch(obj, meth, obj)) ?
04:03:43rueEssentially, yeah
04:04:00tarcieriumm, obj1, obj2, obj3 there, but yeah
04:04:09tarcieriok
04:04:23MenTaLguYhm, I'd thought addition was left-associative in Ruby
04:04:38tarcieriyeah, uhh, same here
04:04:50tarcieriit certainly is by MRI
04:06:28MenTaLguYbe interesting to decompile the .rbc and see what it's getting compiled to
04:07:32tarcierior #to_sexp?
04:07:33tarcieriheh
04:07:49MenTaLguYno, I really do mean bytecode
04:11:12obvio171 leaves the room.
04:12:17brixenyou can put it in a script and run: shotgun/rubinius describe script.rb to see the opcodes
04:13:51tarcieri[:call, [:call, [:lit, 1], :+, [:array, [:lit, 2]]], :+, [:array, [:lit, 3]]]
04:14:52MenTaLguYyeah, you'll need to have a look at the generated bytecode to see what's actually going to happen during evaluation
04:14:55MenTaLguYthe sexps tell you little
04:16:24AndrewO leaves the room.
04:16:51benburkert enters the room.
04:17:21brixenI see this: http://pastie.org/168202
04:19:27benburkert leaves the room.
04:19:31brixenor, earlier code example: http://pastie.org/168203
04:20:57benburkert enters the room.
04:24:41wmoxam leaves the room.
04:37:01obvio leaves the room.
04:37:20Fishy5_ enters the room.
04:38:15lachie leaves the room.
04:48:56wycats leaves the room.
04:54:10Fishy5 leaves the room.
04:56:38rueevan: You did not find it feasible to just use a C++ testing library on C source? (Or a sensible C version for that matter?)
04:57:02MenTaLguYit isn't a good idea
04:57:12MenTaLguYparticularly if the C does magical things
04:57:22MenTaLguYyou can easily subvert some of C++'s expectations
04:58:17MenTaLguYa C library, maybe
04:58:32MenTaLguYbut then C is not the nicest language to write test frameworks in
04:58:36MenTaLguY(having done it)
04:58:47MenTaLguYwell, or use them for that matter
05:02:25rueI was going to give ATF a try, they have a C-only version now
05:16:06TheVoic1 enters the room.
05:17:49Fishy5_ leaves the room.
05:21:33ezmobius enters the room.
05:26:07skaar leaves the room.
05:26:07TheVoice leaves the room.
05:26:07ctennis leaves the room.
05:26:07imajes__ leaves the room.
05:26:07therealadam leaves the room.
05:26:07jammi leaves the room.
05:26:18TheVoic1 leaves the room.
05:28:12perplexes leaves the room.
05:28:12joachimm leaves the room.
05:28:12rue leaves the room.
05:28:12JimMc leaves the room.
05:28:12jacen_ leaves the room.
05:28:12tmm1 leaves the room.
05:28:12halorgium leaves the room.
05:29:02jammi enters the room.
05:29:04skaar enters the room.
05:29:04TheVoice enters the room.
05:29:04ctennis enters the room.
05:29:04imajes__ enters the room.
05:29:04therealadam enters the room.
05:30:40perplexes enters the room.
05:30:40joachimm enters the room.
05:30:40rue enters the room.
05:30:40JimMc enters the room.
05:30:40jacen_ enters the room.
05:30:40tmm1 enters the room.
05:30:40halorgium enters the room.
05:30:41rue leaves the room.
05:30:41halorgium leaves the room.
05:30:42halorgium enters the room.
05:31:06rue enters the room.
05:33:01TheVoice leaves the room.
05:34:41jptix_ enters the room.
05:34:41jptix leaves the room.
05:45:26headius enters the room.
05:46:11jacen_ leaves the room.
05:49:07_martinS_ leaves the room.
05:56:08therealadam leaves the room.
05:56:38d2dchat leaves the room.
05:58:58headius leaves the room.
06:02:04ko1_away leaves the room.
06:02:09agardiner leaves the room.
06:07:58ko1_away enters the room.
06:27:23jartz enters the room.
06:27:55jinjing enters the room.
06:31:31Skip enters the room.
06:40:28jartz_ enters the room.
06:40:40jartz leaves the room.
06:40:56jptix_ leaves the room.
06:41:24jptix enters the room.
06:41:55headius enters the room.
06:41:55jartz_ leaves the room.
06:42:07jartz enters the room.
06:46:07rueHm, actually Cgreen.
06:59:36jptix_ enters the room.
07:02:28jptix__ enters the room.
07:03:12jptix_ leaves the room.
07:03:12pauldix enters the room.
07:03:47pauldix leaves the room.
07:08:00jptix__ leaves the room.
07:08:14jptix_ enters the room.
07:08:26jptix_ leaves the room.
07:10:06jptix_ enters the room.
07:10:27jptix leaves the room.
07:39:12headius leaves the room.
07:52:50qwert666 enters the room.
07:55:03ezmobius leaves the room.
08:09:48thehcdreamer enters the room.
08:28:15zenspider leaves the room.
08:43:59radarek enters the room.
08:46:17rueNitedy nite
08:52:54octopod enters the room.
09:06:48cris_kiev enters the room.
09:10:42jptix_ leaves the room.
09:10:50jptix enters the room.
09:10:52hassox enters the room.
09:29:47imajes_ enters the room.
09:41:25Arjen_ enters the room.
09:46:02imajes__ leaves the room.
09:48:41chris2 enters the room.
09:57:47brainopia enters the room.
10:18:59BlackEdder enters the room.
10:24:58brainopia leaves the room.
10:34:27antares_ enters the room.
10:42:54skaar leaves the room.
10:55:47k6__ enters the room.
11:06:45olabini enters the room.
11:18:53jartz leaves the room.
11:38:59webmat enters the room.
11:42:48qwert666 leaves the room.
11:51:29wdperson enters the room.
11:53:48jartz enters the room.
11:58:21GMFlash leaves the room.
12:15:36wifelette enters the room.
12:18:32RyanTM enters the room.
12:20:58wycats enters the room.
12:29:00ctennis enters the room.
12:41:07FoobarWidget enters the room.
12:51:50ctennis_ enters the room.
12:52:07ctennis leaves the room.
12:53:28antares_ leaves the room.
12:54:43Fullmoon enters the room.
13:06:46olabiniso how much changes have you actually made to RbYAML?
13:06:58olabinithe JvYAML in JRuby has diverged substantially from what was in RbYAML
13:07:07olabinilots and loads and loads of fixes, really.
13:09:39dodecaphonic enters the room.
13:14:36ctennis_ leaves the room.
13:33:19jptix leaves the room.
13:34:01wycats leaves the room.
13:35:49wmoxam enters the room.
13:42:52BlackEdder enters the room.
13:43:21AndrewO enters the room.
13:49:59crossblaim enters the room.
13:53:55obiejuan enters the room.
13:54:42qwert666 enters the room.
13:54:52ctennis enters the room.
13:54:54d2dchat enters the room.
13:56:12AndrewO leaves the room.
14:02:54ctennis leaves the room.
14:03:06ctennis enters the room.
14:05:34AndrewO enters the room.
14:09:10moofbong enters the room.
14:22:55anonuser enters the room.
14:26:01ctennis leaves the room.
14:30:40Fullmoon leaves the room.
14:33:55jptix enters the room.
14:35:16ctennis enters the room.
14:42:11jartz leaves the room.
14:45:28agile leaves the room.
14:50:11antares enters the room.
14:53:48therealadam enters the room.
14:53:49ctennis leaves the room.
14:59:37KirinDav_ enters the room.
15:04:44jartz enters the room.
15:05:18pietia enters the room.
15:06:38dewd enters the room.
15:08:21RyanTM leaves the room.
15:09:21RyanTM enters the room.
15:16:45jlindley enters the room.
15:22:53mediogre leaves the room.
15:25:56GMFlash enters the room.
15:29:20binary42 enters the room.
15:30:10jartz leaves the room.
15:41:35agile enters the room.
15:53:47pietia leaves the room.
15:54:27enebo enters the room.
15:56:03jartz enters the room.
16:01:05anonuser leaves the room.
16:06:48obiejuan leaves the room.
16:13:51therealadam_ enters the room.
16:17:03anonuser enters the room.
16:17:35KirinDav_ leaves the room.
16:20:18macournoyer enters the room.
16:20:37nemerle leaves the room.
16:22:42radarek leaves the room.
16:23:25Arjen_ leaves the room.
16:26:27ctennis enters the room.
16:28:44mutle leaves the room.
16:29:34mutle enters the room.
16:29:49skaar enters the room.
16:30:43octopod leaves the room.
16:31:53crossblaim_ enters the room.
16:35:47therealadam leaves the room.
16:37:18octopod enters the room.
16:37:57cyndis leaves the room.
16:41:00cyndis enters the room.
16:42:26jartz leaves the room.
16:43:26headius enters the room.
16:44:52jartz enters the room.
16:50:11crossblaim leaves the room.
16:50:12KirinDav_ enters the room.
16:54:29lopex enters the room.
17:05:29mutle leaves the room.
17:05:30antares leaves the room.
17:17:43jptix leaves the room.
17:27:25jartz_ enters the room.
17:27:33jartz leaves the room.
17:28:16headiusg'day
17:28:41ctennis enters the room.
17:28:46djwhitt'ello
17:29:15thehcdreamer leaves the room.
17:29:24w1rele55 leaves the room.
17:30:10wmoxam leaves the room.
17:31:20w1rele55 enters the room.
17:36:20k6c leaves the room.
17:37:12dewd leaves the room.
17:37:48dewd enters the room.
17:38:51radarek enters the room.
17:38:58headius leaves the room.
17:39:11olabini leaves the room.
17:39:17headius enters the room.
17:49:57jptix enters the room.
17:57:44crossblaim enters the room.
17:58:17binary42 leaves the room.
18:03:32skaar leaves the room.
18:07:05cremesare we sure there are 6 full-timers on this project?
18:07:09cremes:P
18:07:28evanheh
18:07:31evanyeah
18:07:55anonuserYou guys want one more?
18:08:39evanwe're all full up atm.
18:08:43anonuser:(
18:08:56anonuserI just got downsized at a start up. So I'm looking for more work.
18:09:45evansorry to hear that
18:09:46anonuserOh well, I can still contribute through the magic of opensource
18:09:50evanmy old company just went under too
18:10:01anonuserIt's cool. I have quite a few offers, just not in the area I want.
18:10:03anonuserC++ jobs
18:10:37anonuserWhich isn't what I'm looking for but if you've got C++ on the resume the recruiters seem to call in droves about it.
18:10:51evanheh
18:10:56djwhittit's a trap!
18:11:23anonuserIt is :(
18:11:31anonuserI'm thinking for removing it.
18:12:14anonuserThough the salary offers aren't bad 90k to start, just I don't want to work on those complicated systems anymore :-\
18:12:58djwhittthankfully I haven't had a C++ job yet, but I was TA for a couple classes in college that used it
18:13:03djwhittC++ is a horrible language to teach in
18:13:12anonuserC++ in college isn't C++ at all.
18:13:20djwhittit's bad enough
18:13:22anonuserIt teaches you to hate languages which is a very bad trait.
18:13:25djwhittwe had them doing crap with templates
18:14:20anonuserI rarely actually used templates in products unless I was building a container, the STL and BOOST provided pretty much everything someone would want.
18:14:48anonuserC++ is nice if you can avoid trying to use every thing in the language, it's powerful and complex.
18:15:22evanthere is a C--
18:15:29dbussinki can work with mainly ruby atm :)
18:15:38djwhittdbussink: nice, me too :)
18:15:38evanit's this funky lowlevel language all written in Ocaml
18:15:42anonuserAt a bookstore there was actually a sign for C/C+/C++
18:15:43crossblaim_ leaves the room.
18:15:43dbussinkjust started a small test project using merb
18:16:06dbussinkworks pretty well
18:16:07anonuserI got them to give me the sign after they figure out C+ isn't real.
18:17:11anonuserI'm setting up a VM to work on rubinius, I take it read the guides and start rummaging through tickets?
18:17:36dbussinkanonuser: or look at the specs to see what needs to be done
18:17:40evananonuser: yeah, or just start playing with it
18:17:44evanreport what you find
18:17:51dbussinktry real world applications on it
18:17:59dbussinkspec out bugs you find
18:18:01anonuserSimple merb app?
18:18:20dbussinkdunno about merb status and ezmobius isn't in atm
18:18:25dbussinkhe has been working on that
18:18:32dbussinkbut go ahead and try :)
18:18:36anonuserWill do :)
18:18:58anonuserPort the stdlib as I get to it?
18:19:09anonuserWrite the specs and all that jazz as I go
18:19:23dbussinkanonuser: we move stuff over when it's fully tested and preferably specced too
18:19:35anonuserI gotcha
18:19:45anonuserThat's the the lighthouse pages say
18:20:15anonuserAnyone here use emacs?
18:20:22djwhittzenspider does
18:20:39anonuserNot in :( wanted to know if anyone has any handly el files for me
18:24:17dbussinksees and serious drop in the number of messages since he started working fulltime :p
18:24:23anonuserAnd I finally get to use on a project that's not my own, tried to get the office to use it but they wouldn't bite :(
18:24:59brixendbussink: a lot less idle chatter :P
18:25:23anonuserJust curious but does anyone know of any remote ruby jobs?
18:25:38dbussinkbrixen: no one that pressures you people to work hard ;)
18:25:42evanless idle chatter means that I'm getting more work done == good!
18:26:03dbussinki'm waiting for your massive commit :)
18:26:05brixendbussink: it's impossible for me not to work hard, I love my job!
18:26:18brixendbussink: won't be massive, but it will be a big improvement :)
18:26:49obiejuan enters the room.
18:27:00dkubb enters the room.
18:27:32dbussinkbrixen: i love mine too, getting better almost every day
18:27:39brixensweet!
18:27:44brixenmakes a big difference
18:27:52dbussinkprobably gonna hire an extra person too
18:28:01brixennice
18:28:06dbussinknice to be able to do that after a few days :P
18:28:21dbussinkwe really need to get up to speed and i'm the only one who can develop something
18:28:30dbussinkin our 2 man team that is :P
18:28:49brixenheh
18:33:27dbussinkbut we aim for world domination of course, high goals are needed to be successful :P
18:34:19anonuserWhat is that you work on?
18:36:31dbussinkit's gonna be a time registration system for employment service companies
18:36:46dbussinkbut it's still in it's infancy
18:36:58anonuserAh, neat-o
18:37:08anonuserWhat's powering it?
18:37:32brixenruby is so fun: "ab-\\".count "a-\\b" => 1
18:37:39brixenguess which char is counted
18:38:06evanum.
18:38:08evanno clue
18:38:09dbussinkthere is a hacked java system now, but it's a hack of a system that was used for registering something completely different
18:38:11brixenb
18:38:18evanwhy?
18:38:29dbussinkanonuser: so we need to rebuild it basically, probably gonna use some ruby solution
18:38:36brixenwell, I can tell you why, but why why is the big question
18:38:38anonuserdbussink, cool.
18:38:43dbussinkanonuser: perhaps rails, merb or whatever suits us best
18:38:53anonuserdbussink, sounds like a plan :)
18:39:11dbussinkanonuser: well, it's basically my call :)
18:39:21anonuserI'm trying to do a torrent management system in merb, porting it from my original base in django.
18:39:38brixenevan: the \\ after - essentially discards the attempt to match a sequence, but doesn't match 'a'
18:39:50brixenevan: \\ is ignored unless it's the last char in the count string
18:39:57brixenso freaking ad hoc
18:39:59enebo leaves the room.
18:40:04evanwtf
18:40:11brixenyeah
18:40:11evanwhat functionality is that even
18:40:18enebo enters the room.
18:40:35brixenit's in String#count and the stuff that uses it, like #delete
18:40:40FoobarWidgethi all
18:40:45brixenhey FoobarWidget
18:41:35FoobarWidgetdid the MRI FFI cause any problems w.r.t. implementing write barriers in rubinius?
18:42:04evanhuh?
18:42:04FoobarWidgetthat is, I'm assuming you use write barriers and not read barriers
18:42:08evanMRI doesn't have FFI
18:42:16evanand MRI doesn't have write barriers
18:42:32FoobarWidgetwell I mean the C API that MRI exposes to its extensions
18:42:37anonuserFFI is a rubinius thing as far as I know. Subtend is the MRI thing
18:42:37FoobarWidgetand I know it doesn't have write barriers
18:42:39wycats enters the room.
18:43:01FoobarWidgetokay maybe it was the wrong term. some guys on ruby-core used that term so I thought that's what its C API is called
18:43:12evanFoobarWidget: our MRI C API compatibility layer (subtend) exposes all objects as handles
18:43:36evanso that an extension never has a different reference to an object in memory.
18:44:01evans/different/direct/
18:44:05FoobarWidgetso you were able to implement write barriers without breaking compatibility with MRI's C API?
18:44:10evanyea
18:44:25FoobarWidgetok. I'm trying to think of ways to implement generational gc in MRI
18:44:34evanah
18:44:36FoobarWidgetso I'm trying to figure out whether there's a way to do it without breaking API compatibility
18:44:37evanit's really not possible
18:45:02dbussinkFoobarWidget: ah, you're one of the guys from the discussion on ruby-core?
18:45:06FoobarWidgetwhy not? as I've figured so far, I need to catch the correct assignment instructed to implement write barriers, right?
18:45:07evanwell, the entire system uses the same API
18:45:12FoobarWidgetdbussink: yes
18:45:26dbussinkFoobarWidget: i've read about that yeah
18:45:33evanthe MRI extension API is the same API that the internals of MRI use
18:45:44FoobarWidgetyes I'm aware of that
18:45:55evanhow would you implement a write barrier for
18:46:06evanRARRAY(ary)->ptr[3] = calculate_some_object();
18:46:07evan?
18:46:25skaar enters the room.
18:46:57FoobarWidgetnot possible. it has to be replaced with something like RARRAY_SET(ary, 3, calculate())
18:47:06FoobarWidgetbut as far as I know, ruby 1.9 is already moving that way
18:47:22FoobarWidgetI saw a lot of extensions failing to compile in 1.9 because they did things like RSTRING(foo)->ptr
18:47:58evanwell, if you rewrite the API, it might be easier
18:48:12evanwhat are the generations going to be?
18:48:16FoobarWidgetbut I guess this isn't possible in 1.8 without substantial changes :/
18:48:23evanbecause being conservative, you still can't move any objects
18:48:44headiusMRI uses memory locations for various things
18:48:45FoobarWidgetyes. but generational can be combined with conservative, right? the gc will not be a moving/compacting one
18:48:52evandepends
18:48:54headiusyou can't make it generational without finding all those areas
18:48:58FoobarWidgetI'll just use a seperate index to store generation information
18:49:00evanwhat happeens when you promote an object?
18:49:03evandoes it have to move?
18:49:07evantypically, it does
18:49:10FoobarWidgetno, only the position in the index moves
18:49:16FoobarWidgetI mean, the handle in the index
18:49:48evanso, you're idea is to not expose direct references to objects and use handles for everything?
18:49:58brixenhow big will the handle table be?
18:50:07evanhuge
18:50:10brixenyeah
18:50:19FoobarWidgetan extra pointer for each object
18:50:26FoobarWidgetsince a VALUE is 20 bytes,
18:50:30brixenmegabytes
18:50:35FoobarWidgetit'll mean 20% overhead
18:50:52FoobarWidgetnot sure whether the memory hit is worth the potential speed increase
18:50:52brixen20 megabytes on the 100 mb rails apps I see
18:51:02evanthe problem with object tables (which is what you're talking about) is that they really penalize you for speed
18:51:17evanbecause you have to lookup and deref to do anything
18:51:18FoobarWidgetbrixen: well that problem *can* be partially solved with copy-on-write semantics
18:51:32evanthats why most smalltalks moved away from the object table
18:51:32FoobarWidgetyes I realize that
18:51:54brixenFoobarWidget: we have a nice generational gc, come join us :)
18:52:13FoobarWidgetI'd like to, but it doesn't run rails yet :(
18:52:17evanFoobarWidget: for what it's worth, i've had these same thoughts
18:52:26evani had them while I was working on sydney
18:52:40FoobarWidgethm, "been there done that" huh? :/
18:52:42evanand decided that basically, it would be whole scale rearchitecting of the system
18:52:46evanthus... rubinius!
18:52:58FoobarWidgetI think rubinius is definitely the future
18:52:59FoobarWidgethowever,
18:53:05FoobarWidgetit will be some time before it's ready
18:53:07evanif you have to redo everything, might as well fix the architecture
18:53:08FoobarWidgetand that's the main problem
18:53:17FoobarWidgetI'm trying to figure out whether I can make any stop-gap solutions
18:53:28dbussinkFoobarWidget: what do you see as some time?
18:53:29evanFoobarWidget: you could try jruby
18:53:30antares enters the room.
18:53:31brixenFoobarWidget: but it's probably closer than a significant improvement in MRI
18:53:54FoobarWidgetdbussink: well, for one, I checked out rubinius's git repo a few days ago
18:54:15FoobarWidgetrubinius irb took 2-3 seconds to start up (as oppose to 0.1 second on normal ruby)
18:54:37FoobarWidgeta simple garbage collection speed test script that I wrote is about 300% slower in rubinius
18:54:51brixenFoobarWidget: gc or ruby?
18:54:58brixenFoobarWidget: what was your bench?
18:55:01anonuserFoobarWidget, that's the nature of using in development software
18:55:08dbussinkwell, we have some vm benchmarks where we already beat ruby by a large margin
18:55:42FoobarWidgetso how long do you think rubinius is ready to run rails with adequate performance?
18:56:05brixenhard to say precisely
18:56:23FoobarWidgetcan I say, end of this year with 90% chance?
18:56:34brixenprobably reasonable
18:56:56anonuserFoobarWidget, can you define adequate performance?
18:57:01FoobarWidgetfor now I've developed and polished a copy-on-write patch for MRI to reduce memory usage in rails
18:57:17FoobarWidgetbut MRI's quite hard to navigate and to modify :/
18:57:33anonuserHelp get rubinius up to par :)
18:57:49obiejuan leaves the room.
18:57:51headiusFoobarWidget: what's your goal with this work?
18:59:45FoobarWidgetheadius: the copy-on-write patch?
18:59:51FoobarWidgetto reduce memory usage
18:59:53headiuswell in general
18:59:57headiusjust to reduce MRI memory usage?
19:00:21headiusto what end? you have some use case you're driving?
19:00:38FoobarWidgetyes. ruby on rails
19:00:59FoobarWidgetin the typical RoR setup, multiple application servers are run
19:01:04FoobarWidgeteach which handles 1 request concurrently
19:01:14FoobarWidgetthis wastes a lot of memory, they don't share AST nodes with each other
19:01:34FoobarWidgetso if you can preload the rails framework and the app code,
19:01:38FoobarWidgetthen fork() a few times,
19:01:45FoobarWidgetthen you can save a lot of memory
19:02:46headiuswouldn't it be a more productive project to eliminate the need to have one process per request?
19:02:59headiusthat's really the cause of excess memory use
19:03:17FoobarWidgetno
19:03:21FoobarWidgetthis is easier, believe me :)
19:03:23FoobarWidget-and-
19:03:32dbussinkheadius: well, that's basically because rails' thread unsafety
19:03:37FoobarWidgeteven if rails is thread-safe, you still can't load multiple framework versions in the same process
19:03:38headiuswell, in JRuby for example all rails instances already run in the same process
19:03:50FoobarWidgetor multiple apps in the same process
19:03:51headiusbut we still have to spin off multiple JRuby instances because of Rails' deficiencies
19:04:04FoobarWidgetso by using copy-on-write semantics we really save more memory than with threads
19:04:36FoobarWidgetand processes have the added benefit that they can't crash each other
19:04:46FoobarWidgetthey can be independently killed by the sysadmin
19:05:03headiuson a single cpu box running one app, you would gain little having multiple ruby processes, so it's entirely an ugly workaround
19:05:21FoobarWidgetand it's a bit futile to say that it isn't a productive project, because it's already finished :)
19:05:21headiusthe requirement to have several processes is an ugly wart to begin with
19:05:47FoobarWidgetwhy is it ugly?
19:05:54headiusbecause it shouldn't be necessary
19:05:59FoobarWidgetprocesses share memory this way, so this can't be a complaint
19:06:10headiuseven without concurrent threads, having to spin up more than one process on even a single-cpu box is absurd
19:06:44FoobarWidgetwhy is it absurd? no really, why?
19:06:50FoobarWidgetwhat is the difference other than the name?
19:06:53FoobarWidgetand the seperate address space?
19:07:12FoobarWidgetoverhead is no longer an issue, all modern OS implement copy-on-write
19:07:16headiusthe gross waste of resources
19:07:23FoobarWidgetthreads and processes use the same CPU scheduler
19:07:34headiusmultiple in-memory caches, multiple copies of everything, multiple DB connections
19:08:08FoobarWidgetcaches - ok, maybe. but in case of rails, the caches either live on disk or in memcached (or something similar)
19:08:22headiusreducing the memory cost of rails isn't going to help when you're already forced to spin up five to ten processes
19:08:35FoobarWidgetmultiple db connections - how is this a problem? as far as I know db connection handles can't be used concurrently
19:08:43tarcieriwhat Rails (or any long-running process in Ruby) really needs is a compacting garbage collector :(
19:08:43headiusfixing rails would cut that cost by 5-10x immediately
19:08:43FoobarWidgetso you end up connecting once in every thread anyway
19:08:46anonuserFoobarWidget, that's a bit odd, threads and processes don't always use the same CPU scheduler. It depends on the threading library and the threading model. At least in my experience it does.
19:09:04FoobarWidgetanonuser: ok, strictly speaking you're right
19:09:05headiusFoobarWidget: every process holds a connection open, whether it's using it or not
19:09:23headius leaves the room.
19:09:28FoobarWidgetanonuser: but I don't know many OSses that don't. at least linux has moved to this model many years ago
19:09:33FoobarWidgetand many many servers run linux
19:09:37headius enters the room.
19:10:25FoobarWidgetjust a sec
19:10:31FoobarWidgetI'll get back to you later
19:10:34headiusevan: what was that new irc proxy I heard mentioned in here the other day
19:10:36headiusI'm just about fed up with my flaky connection
19:10:38evanctrlproxy
19:10:44headiustx
19:10:44evani'm using it now
19:10:47evanseems decent
19:10:56dbussinkevan: advantages over dircproxy
19:10:56dbussink?
19:11:04evanhopefully doesn't crash on me
19:11:06evan:P
19:11:11evanwhich dircproxy did
19:11:21dbussinkah, well, dircproxy hasn't done that yet for me :)
19:12:10TheVoice enters the room.
19:21:05FoobarWidgetback
19:21:28benburkert leaves the room.
19:21:28FoobarWidgetheadius: I dispute your "cut cost by 5-10x" claim
19:21:51headiusgood for you
19:21:55FoobarWidgetpeople are all like "omg threads are better!!!1" but so far I've yet to see some real proof that it's significantly better than multi-process copy-on-write
19:22:38FoobarWidgetyou talk like you don't care. but did you forget that without doubt there is no science?
19:22:45headiusif your interest is reducing memory, reducing the number of processes is the most bang for your buck
19:22:53headiuswithout a doubt
19:23:05anonuserFoobarWidget, you're exactly right, but most people treat threads as a catch all. The best situation is a thread pool, with AIO
19:23:06headius leaves the room.
19:23:10headius enters the room.
19:23:11FoobarWidgetlike I said, copy-on-write. so far you've yet to give me a single reason why copy-on-write semantics aren't enough
19:23:28FoobarWidgetother than "threads are better because I say so"
19:23:51FoobarWidgetif you can show me numbers which prove the difference in memory usage - fine :)
19:24:07headiusbecause in a typical rails app, eventually everything is created new
19:24:09headiuswhen are you going to fork? after rails sources are parsed?
19:24:11headiusbecause the majority of rails code is generated when the first few requests come in
19:24:13headiusthat will end up getting duplicated in each process
19:24:32headiusunless you plan to run a few requests through before forking, you're not going to share any of that
19:24:39anonuserFoobarWidget, look at apache :)
19:24:54FoobarWidgetno headius. the entire rails framework is loaded before the first request. I know, because I've already researched it *and* written the entire solution :)
19:24:57FoobarWidgetwww.modrails.com
19:25:02FoobarWidgetit uses copy-on-write semantics
19:25:26FoobarWidgetand we also load all application code
19:25:29FoobarWidgetand plugin code
19:25:31headiusfinders, for example
19:25:34olabini enters the room.
19:25:35headiusare not generated
19:25:40FoobarWidgetcorrect
19:25:52FoobarWidgetbut they consist of relatively little memory compared to the rest of the framework
19:26:01FoobarWidgethow many find_by_x methods do people usually use?
19:26:14headiusand what of activerecord internals?
19:26:16FoobarWidgetnot rediculously many
19:26:26FoobarWidgetI'm not saying I load absolutely everything
19:26:28anonuserIs this not a bit off topic for rubinius development?
19:26:29FoobarWidgetI cannot
19:26:30brixenFoobarWidget: what explains the mem usage patterns I see where it starts with 25mb and after a while is at 70-80mb?
19:27:07brixenFoobarWidget: how does COW help this? assuming you have found the cause
19:27:21FoobarWidgetbrixen: I can't really tell without some analysis. but I'm going to release a ruby version with gc statistics support, so you can find the problem yourself :)
19:27:24obiejuan enters the room.
19:27:31brixenthat's cool
19:27:40FoobarWidgetright now it's hard to tell wtf ruby's gc is doing
19:27:44brixenyeah
19:27:50anonuserNot a whole lot of making sense :)
19:27:54brixenthis is a consistent pattern I see with a variety of rails apps
19:28:06FoobarWidgetdo you use imagemagick?
19:28:10brixennope
19:28:15octopod leaves the room.
19:28:40brixentypically imagescience if I need that
19:29:02FoobarWidgetwell, in case of imagemagick, don't forget to call image.destroy! afterwards
19:29:14FoobarWidgetruby counts the number of heap slots to determine whether it must gc
19:29:22FoobarWidgetnot the total amount of memory associated with them
19:29:25brixenFoobarWidget: point is, analysis is good, and attempts at solutions are fine, but the baby is spoiled, so toss it out with the bathwater :)
19:29:38FoobarWidgetso you can have 20 objects, each 20 MB. ruby wouldn't gc that
19:29:53FoobarWidgetuntil you reach the ruby heap limit
19:30:07GMFlash leaves the room.
19:31:52FoobarWidgetheadius: and who's to say that threads and copy-on-write multiprocesses cannot be combined? :) that'll save even more memory. everybody wins
19:32:06FoobarWidgetI really don't get all the hostility every time processes are mentioned
19:32:20FoobarWidgetlike it's the work of satan or something
19:32:24headiusno hostility here
19:33:03anonuserFoobarWidget, I believe the hositlity comes from your personal attachment to your work. I don't believe anyone, including you means for hostile feelings.
19:33:31headiusthe gains would just be a lot more substantial if rails didn't have thread safety issues requiring you to isolate everything in separate processes
19:34:01evanFoobarWidget: oh btw, for your marking table, are you calculating the position in the table based on the objcets address?
19:34:01headiusboth jruby and rubinius are steps toward that goal
19:34:45FoobarWidgetevan: yes. though to do that it must first find the heap the object is on, and that's a linear search
19:34:50evanheadius: if you have multiple Ruby objects in jruby, do they share anything?
19:35:03FoobarWidgetevan: there is a way to make it a constant time operation, but I'll need to change the heap layout for that
19:35:17evanFoobarWidget: ah, ok. what i'm doing is just putting a negative offset header on each object
19:35:18headiusas far as Ruby goes, they share JRuby runtime code and any jitted methods
19:35:26evanthat points back to it's mark table entry
19:35:33FoobarWidgetevan: doesn't that make each object larger?
19:35:39evansure
19:35:49FoobarWidgetand there are a lot of objects
19:36:00headiusbut they also generally share a session store, use a connection pool, and can share much more if you call out to app-server utilities
19:36:22FoobarWidgetI'm thinking about storing "sentinel" slots at well-defined addresses
19:36:29evanFoobarWidget: for the time being, i've opt to spend a little more memory to make it cheap and easy
19:36:30FoobarWidgetthose sentinal slots would just point to the beginning of the heap,
19:36:33headiusthey could share AST as well, but we haven't wired that in
19:36:35FoobarWidgetwhere the mark table can be found
19:36:44evanafter all, programming is really just a balancing act
19:36:51FoobarWidgetthe sentinel slot is obtained by setting the last few bits to 0
19:36:58FoobarWidget(of the object address)
19:37:11evaneeks
19:37:15FoobarWidgetso it'll involve a few pointer dereferences, but it's constant time
19:37:48FoobarWidgetheadius: I read on the jruby blog that they suffer from excessive memory usage
19:37:55FoobarWidgeteach ruby method is compiled to a class
19:38:03FoobarWidgeteach class has a few kilobytes overhead
19:38:17headiusthat has some impact on memory, but now that it's shared between instances it's not much of a problem anymore
19:38:35headiusyou can also throttle the number of methods jitted to whatever level you like
19:38:44headiusonly hot methods get jitted
19:39:11FoobarWidgetanonuser: maybe, maybe not. but last time I replied to someone who said rails is shit because it doesn't support threads.
19:39:17FoobarWidgetanonuser: I stayed polite and mentioned that memory usage could be reduced with copy-on-write semantics,
19:39:21FoobarWidgetanonuser: and that an upcoming deployment product will do just that.
19:39:32FoobarWidgetanonuser: he said I'm an idiot and that I don't admit that rails is shit
19:39:41FoobarWidgetif that's not hostility towards processes then I don't know what it is
19:39:47anonuserFoobarWidget, he sounds too emotional and should think about a career change.
19:40:10anonuserOR
19:40:16anonuserJust don't think about it.
19:40:28brixenFoobarWidget: sounds like he's hostile to rails
19:40:39anonuserI wouldn't think about becoming a crusader just because other people have differences of opinions, even when their opinons aren't based on antyhing
19:41:17brixenFoobarWidget: we'd be really pleased to try any mem usage benches you come up with :)
19:41:36dbussinkFoobarWidget: and the gc benchmark could be very useful too
19:41:40brixenFoobarWidget: there's lots of places to contribute to rbx, we welcome them all
19:42:00brixenyeah gc/mem usage
19:43:32FoobarWidgetI just use my standard system monitor to measure memory usage
19:43:46FoobarWidgetwith the 'private dirty rss' info
19:43:57dbussinkFoobarWidget: ah ok, and the 300% slower benchmark?
19:44:06FoobarWidgetlet me find the pastie link
19:44:19headiusI'm curious as well
19:44:28headiusit's possible you're seeing execution performance rather than gc performance
19:44:31FoobarWidgethttp://pastebin.com/m26839d72
19:44:34headiuspossible/likely
19:44:57FoobarWidgetwell yes but there's no way to benchmark the gc without executing it, right?
19:44:58brixenheh, you're seeing string
19:45:09brixenI bet
19:45:10FoobarWidgetaccording to a profiler,
19:45:20FoobarWidget32% of the time is spent in the garbage collector of MRI
19:45:25brixenI'm working on it now, but "x" * 10, did you bm that separately?
19:45:34FoobarWidgetbut wall clock time of rubinius is 3 times higher
19:45:45brixenFoobarWidget: are you on os x?
19:45:49FoobarWidgetno, linux
19:45:52brixenah ok
19:45:52headiushmm, takes about 22s in jruby
19:45:53dbussinkbrixen: agree, most likely string indeed
19:45:54FoobarWidgetI measured total wall clock time of the script
19:45:58headiusbut you can't disable gc in jruby
19:46:12brixenFoobarWidget: I'll look at it in shark too
19:46:24brixenbut I'm gonna grab some lunch first :)
19:46:26FoobarWidgetshark?
19:46:32brixenit a profiler for os x
19:46:35brixenor xcode
19:46:49brixenour gc is typically ~7% of execution time
19:47:27skaar leaves the room.
19:47:27FoobarWidgetI profiled a rails app
19:47:38FoobarWidgetMRI's GC is 10-12% of the execution time
19:47:59brixenI've profiled a full spec run, that's where I've seen the ~7%
19:48:18brixenbut I've seen it go a lot higher with a *ton* of objects created
19:48:21brixenso depends
19:49:22dbussinkFoobarWidget: the rubinius performance problems are pretty localized now
19:49:34dbussinkFoobarWidget: there is string which needs some serious loving
19:49:48dbussinkFoobarWidget: and stuff like FFI is a factor slower than on mri
19:49:57loincloth_ enters the room.
19:50:13dbussinkbrixen: would we gain a lot from a File.stat primitive? because of the check for .rbc and mtime checks etc.?
19:50:42DefilerThat's the same problem as the FFI performance one, really
19:50:47brixenFoobarWidget: for this: -e '(1..1_000_000).map { |i| i }' we're 2x ruby
19:50:55DefilerOur primitives shouldn't be faster than our FFI invocations, in the end
19:51:06brixenFoobarWidget: for this: -e '(1..1_000_000).map { "x" * 10 }', we're ~10x ruby
19:51:13dbussinkDefiler: yeah, they shouldn't, but i think they are now
19:51:22DefilerThey are, yeah
19:51:55FoobarWidgetbrixen: yeah, that latter is the problem
19:52:00FoobarWidgetbut what about startup time?
19:52:08FoobarWidgetI noticed a significant startup time delay when starting irb
19:52:30brixenFoobarWidget: well, depends how much needs to be compiled, since that will be done as needed starting irb
19:52:42wycats_ enters the room.
19:53:02brixenand I think we may be slower starting than ruby because of loading the compiled libs
19:53:14brixenbut startup isn't an issue for a long running process, so?
19:53:24DefilerYeah, our load time is hundreds of times worse than MRI right now, I believe
19:53:55headiuspfft, you guys have nothing on us
19:54:01headiuswe're the king of startup time
19:54:04Defiler0.008 for MRI, 0.763 for us running -e "p 1"
19:54:05brixenhehe
19:54:11headiusI'm working on that right now
19:54:15headiusonly so much I can do though
19:54:23DefilerAs low as 0.360 after the first time, though
19:54:53DefilerSo only 60x slower
19:54:56brixenok, lunch, bbl...
19:54:59dbussinkwell, startup time was a lot worse some time ago
19:55:12dbussinkwhen my first version of the typesgenerator was put in :P
19:55:15FoobarWidgethow easy is it for someone without smalltalk experience to join rubinius hacking?
19:55:31anonuserFoobarWidget, it's opensource
19:55:32dbussinkpretty easy
19:55:37brixen*easy*
19:55:40dbussinki don't know a lot about it either
19:55:44brixenruby + C is what you need
19:55:47dbussinkand i can cope somehow :P
19:55:56anonuserYou do most of the work in ruby I believe.
19:55:59anonuserShotgun is done in C
19:56:14FoobarWidgetI'm comfortable with C/C++ :)
19:56:20dbussinkdepends on where you're focus lies, there is still a lot to do in just finishing stuff
19:56:30dbussinkcompleting specs, implementations, etc
19:56:33DefilerYeah, you don't need to know anything about Smalltalk to hack on Rubinius
19:56:49anonuserStartup time for rbx is an order of magnitude worse than mri
19:57:10FoobarWidgethow easy/hard is it to improve startup time?
19:57:45dbussinkwell, if you profile it, there's probably some low hanging fruit there you can grab
19:57:46evanthere are probably a few easy tweaks here and there
19:57:58evanbut by and large, the startup is always going to be we worse than MRI
19:58:06FoobarWidget"always"? :/
19:58:07evanbecause our startup runs a whole bunch of ruby code
19:58:10evanMRI's doesn't run any.
19:58:30FoobarWidgetso rubinius is mainly for servers huh?
19:58:36evanno
19:58:54FoobarWidgetit really sucks to have to wait 3 seconds for stuff like 'sake' and 'rake' to start, doesn't it?
19:58:54anonuserFoobarWidget, it seems very general purpose but slow startup time isn't really anything to worry about.
19:59:02evanit's like 0.5 seconds verses 0.1 second
19:59:10anonuser3 seconds?
19:59:18FoobarWidgetit's a random number I came up with :)
19:59:22evanFoobarWidget: thats more about improving the performance of the kernel
19:59:28dbussinkFoobarWidget: well, it's more like half a second here :)
19:59:29evannot about startup time
19:59:45evani take startup time to be 'how long to run shotgun/rubinius -v'
20:00:01anonuserI have a start up time of .2 seconds
20:00:04anonuserIn a VM.
20:00:14FoobarWidgetcan't you cache the core classes bytecode in an easy-to-unserialize form?
20:00:26evanwe do
20:00:32evanthe .rbc files
20:00:49anonuserThe images will probably help a lot?
20:00:55evanimages?
20:00:59DefilerWe still 'execute' the class bodies and whatnot in those files every time, though
20:01:16anonuserIsn't rubinius going to do something like small talk with the saved state images?
20:01:23DefilerWe don't just leave, String and its CM objects in a marshalled memory image
20:01:23evannot for a while
20:01:26anonuseroh :(
20:01:27evanit's not an active goal
20:01:30anonuserthat was neat
20:01:34FoobarWidgetah damn :( and that was the coolest part
20:01:57evanif someone wants to tackle it, they're welcome to it
20:02:02anonuserhah
20:02:10srbaker leaves the room.
20:02:18jinjing leaves the room.
20:02:20dbussinkFoobarWidget: i see a challenge for you ;)
20:02:43FoobarWidgeteh... that is VERY hardcore :p
20:03:01dbussinkFoobarWidget: hacking on the mri gc is hardcore imho too :P
20:03:13evanwell, lunch time.
20:04:43srbaker enters the room.
20:08:12wycats leaves the room.
20:15:43loincloth_ leaves the room.
20:15:58loincloth_ enters the room.
20:16:37radarek leaves the room.
20:17:04loincloth_ leaves the room.
20:26:23nicksieger leaves the room.
20:29:00wycats enters the room.
20:39:02octopod enters the room.
20:39:31headius leaves the room.
20:40:01headius enters the room.
20:47:05wycats_ leaves the room.
20:52:46srbaker leaves the room.
20:53:30ctennis leaves the room.
20:56:53headius leaves the room.
20:57:16headius enters the room.
20:57:21jayWHY enters the room.
21:05:17anonuserHoly awesome batman, I might get a job that'll let me improve rubinius
21:05:27anonuserIt'll pay me to help out rubinius
21:06:49evanyay!
21:07:05anonuserHopefully, phone interview is about to happen.
21:08:01ctennis enters the room.
21:09:35anonuserP.S. I hate how long it takes gnome to compile
21:10:14FoobarWidgetdon't use gentoo? ;)
21:11:58anonuserI use FreeBSD.
21:12:04djwhitteven better don't use gnome ;)
21:12:25anonuserChances are I'll be using somethign that requires the gnome libs.
21:12:28anonusermight as well build it all
21:12:34djwhittyeah, true
21:12:57djwhittit annoys me that so many things require gnome
21:12:59djwhittoh well
21:14:33anonuserMy problem with gnome is it's absurd dependency chain.
21:14:37anonuser300 packages!
21:14:37antaresuh how cool that Rubinius is using git — I am cloning 1.1 gb repository using darcs, it hung 3 times already and consumes 20% of CPU
21:15:45djwhittantares: hg is also way faster than darcs
21:15:48brixenantares: :) that's after you get darcs built, I think I burnt out my mbp fan building darcs (and ghc) a couple times
21:15:54evanantares: the repo is 1.1G?
21:15:54djwhittantares: in fact just about everything is faster than darcs
21:15:56evanyikes!
21:15:57antareshey I did not meant to start any holy wars! :)
21:16:22brixen<3 git :)
21:16:26anonuserYou have a repo full of code that is 1.1GB?
21:16:48djwhitthe's tracking mozilla development using darcs ;)
21:16:55evanfun.
21:17:02evani remember when i first compiled netscape 6
21:17:12evanright after they open sourced it
21:17:15djwhittheh, I was just joking btw I have no idea what he's doing
21:17:16evantook like 3 days
21:17:16antaresevan, that's right, repo is 1.1g in size
21:17:46dbussinknot only code i hope :)
21:17:47evanfun!
21:18:30anonuserNo way you have 1.1GB full fo text.
21:18:30antaresdjwhitt: ;)
21:18:44srbaker enters the room.
21:18:53anonuserAre you commiting binary objects?!
21:19:18djwhittI hope not, that would really suck in darcs
21:19:21djwhittno binary diffs
21:21:07anonuserno one does binary diffing right, except git and hg maybe
21:21:29srbaker leaves the room.
21:21:29antaresanonuser, not just of code actually — some assets are present
21:22:12srbaker enters the room.
21:22:31dbussinki have a 3gb svn repo that contains my graduation project, lots of recorded eeg data in there
21:23:48anonuserI've always wanted to play with alien brain for asset management
21:24:14jayWHY_ enters the room.
21:28:14antaresdbussink, sure thing. I once cloned the kernel, it was like 400M for the whole repo
21:28:45dbussinkanonuser: i don't think any of my subjects could qualify as alien :P
21:34:47antaresanonuser, not me, the UI folks — we are going to split this repository
21:34:59AndrewO leaves the room.
21:40:15jayWHY leaves the room.
21:40:16chris2 leaves the room.
21:42:36anonuserdbussink, you've used Alient brain?
21:42:43anonuserantares, gotcha.
21:42:43antaresdjwhitt, I am about to move to git but need something working to keep history. darcs-to-git I found stuck on this repository :)
21:43:12anonuserhttp://www.softimage.com/products/alienbrain/ <-- for artist and design folks
21:44:55evango go go!
21:45:10evanis watching to see how many frames deep an infinite recursion in C got
21:45:14evan65k so far!
21:45:21evan80k!
21:45:30evananyone want to take bets?
21:45:35evan100k!
21:45:55evan130k!
21:46:04evani'll take a line on whether or not gdb will crash before getting to the top
21:46:19evanhurry, it can't be long now!
21:46:30drbrainheh
21:46:38evan174709 is the final!
21:47:32crossblaim leaves the room.
21:48:22obiejuan leaves the room.
21:48:23antaresteam pack for just $32K, not bad :)
21:50:30seydar enters the room.
21:51:30antaresevan, is it finite? :)
21:51:41evanseems as much!
21:51:44anonuserOne dollar bob.
21:51:59evanit's not the loops fault though
21:52:09evanit would have happily continued until the heat death of the universe
21:52:31anonusermemory contraint?
21:53:34moofbong leaves the room.
21:53:56evannot the loops fault.
21:54:03dodecaphonic leaves the room.
21:57:00nemerle enters the room.
22:01:52nicksieger enters the room.
22:04:21e