Index

Show enters and exits. Hide enters and exits.

00:03:48rubuildius_amd64 leaves the room.
00:04:06rubuildius_amd64 enters the room.
00:04:29jartz leaves the room.
00:06:28obiejuan_ leaves the room.
00:07:05rubuildius_ppc enters the room.
00:10:07rubuildius_amd64Ryan Davis: 655f61650; 1756 files, 6116 examples, 20382 expectations, 0 failures, 0 errors; http://rafb.net/p/j8QN4I19.html
00:12:14UncleD leaves the room.
00:12:19w5PyR4rD enters the room.
00:19:31macournoyer enters the room.
00:19:57UncleD leaves the room.
00:20:10UncleD enters the room.
00:20:27rubuildius_ppcRyan Davis: 655f61650; 1756 files, 6119 examples, 20411 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/167583
00:23:46UncleD leaves the room.
00:23:54UncleD enters the room.
00:27:23zenspiderwhat's that about?
00:29:50evaneh?
00:30:01womblezenspider: The stuff from rubuildius? Just results from CI runs on different platforms.
00:30:14zenspiderrubuildius_ppc reported my results twice
00:30:20evanno it didn't
00:30:24evanthe first was _amd64
00:30:57Defiler19:47 (ppc), 20:10 (amd64), 20:20 (ppc again)
00:31:09Defileraccording to /lastlog 655f616
00:31:12evanit quit in between there
00:31:17Defileraha
00:31:34cremesi rebooted my machine... safari 3.1 upgrade; that explains the rubuildius_ppc output
00:33:07zenspiderevan: ... and? why report twice?
00:33:13evanno clue
00:35:16djwhittzenspider: because the bot doesn't save session between restarts
00:35:50KirinDave enters the room.
00:36:08lachie enters the room.
00:37:01cavalle enters the room.
00:37:01cavalle_ leaves the room.
00:40:37macournoyer leaves the room.
00:41:13jrun enters the room.
00:43:33imajes enters the room.
00:48:03imajes leaves the room.
00:49:15mae leaves the room.
00:51:36seydar enters the room.
00:54:40mae enters the room.
00:56:16imajes enters the room.
00:59:20seydar leaves the room.
01:06:39hoopy leaves the room.
01:07:33eventualbuddha enters the room.
01:09:16cored enters the room.
01:10:58wmoxam_ enters the room.
01:11:00imajes_office leaves the room.
01:11:27wmoxam_ leaves the room.
01:11:38wmoxam_ enters the room.
01:11:39imajes_ enters the room.
01:12:18hoopy enters the room.
01:12:44cored leaves the room.
01:21:46AndrewO enters the room.
01:23:25d2dchat leaves the room.
01:23:48d2dchat enters the room.
01:27:39dewd enters the room.
01:30:13mkescher_ enters the room.
01:30:19agardinerinteresting... just saw that Rational has been added to kernel in 1.9
01:30:34agardiner(as well as Complex)
01:32:54brixenagardiner: are you trying to say that 1.9 is more Rational than 1.8?
01:33:05brixen(and more Complex)
01:33:08brixen:)
01:33:10agardineri certainly hope not!
01:33:11agardiner:-)
01:33:15brixenheh
01:33:18agardinerwell, maybe the latter
01:33:21agardiner:-D
01:33:51chris2 leaves the room.
01:33:53agardinerits interesting because it will break the workaround we have in place for /
01:34:11brixenhow so?
01:34:20brixenoh, because of the flag
01:34:53agardineryeah
01:35:09agardinerit applies to all of kernel
01:35:34agardinerbut we need a real solution for the underlying problem anyway
01:35:50agardiners/real/more robust
01:35:54brixenright
01:36:15rueI dunno if it is fair to call the current solution frail
01:37:07obiejuan enters the room.
01:37:21agardinerwell, the same issue is going to bite is again at some point
01:37:45agardinerif not with stdlib, then with user code
01:38:14brixenwell, fundamentally, there's a limit to how "ruby" something can be. in MRI that fence is set really wide
01:38:21brixenwe shrunk the fence to nonexistent
01:38:27brixenthen had to put it back a little
01:38:45evanwhat is the 1.9 kernel?
01:38:46brixenhopefully, we won't ever have to make it much wider
01:38:48evanthe C code?
01:38:57evanso Radtional and Complex are now implemented in C?
01:39:12agardinernot necessarily, but you no longer need to require them
01:39:35brixenprobably not, but since overriding Fixnum#/ won't affect any of the C code, it's not a problem for them
01:39:41agardineri was using Rubinius terminology for 1.9 stuff...
01:39:44agardiner:-S
01:40:03brixenso, it's in core libs now, not stdlib?
01:40:10agardineryeah
01:43:15evanbut how?
01:43:24evan1.9 has only C core libs
01:43:29evanthere is the one prelude file
01:43:37evanare they're doing a require in the prelude file?
01:43:43mkescher_ leaves the room.
01:44:07agardinerdunno - i didn't look at the code, just saw this post: http://pragdave.blogs.pragprog.com/pragdave/2008/03/complex-and-rat.html
01:45:47brixenwell, they added complex.c and rational.c
01:45:51brixenso yeah, more C code
01:46:36evanug.
01:46:46evanmaybe they made Fixnum#/ not insane then
01:46:54evanthus must have
01:46:58evanotherwise SOO many things would break
01:47:03brixena bunch of rb_funcall's
01:48:42evanlooks like Fixnum#/ is the same as 1.8
01:48:56brixenhmm, I see class Fixnum; alias quof fdiv; end
01:49:01evanwhere?
01:49:07brixenlib/rational.rb is now 48 lines
01:49:18brixenours is 530
01:49:56evanit looks like maybe the made it less insane
01:50:02evanthey made it
01:51:24nicksieger leaves the room.
01:51:44srbaker enters the room.
01:54:27ezmobius leaves the room.
01:54:46brixenhmm, I don't know why they needed to rewrite Rational in C
01:54:47miamoto_musashi enters the room.
01:56:25brixenhah, I was reading nurat as natur, short for natural, as in natur_div, natural_div
01:56:38brixennu rat indeed
01:56:47srbakerbrixen: what was it written in?
01:56:59brixensrbaker: in 1.8 it was Ruby
01:57:12brixenin 1.9 they rewrote Rational in C
01:57:20srbakeroh. i thought it was always in C
02:00:04MenTaLguY enters the room.
02:00:16cavalle leaves the room.
02:00:44cavalle enters the room.
02:09:06VVSiz_ enters the room.
02:10:15cjheath leaves the room.
02:11:18cjheath enters the room.
02:17:20GMFlash leaves the room.
02:17:31GMFlash enters the room.
02:17:34cavalle leaves the room.
02:18:04sholden enters the room.
02:24:03cavalle_ enters the room.
02:24:42cavalle_ leaves the room.
02:24:44lopex leaves the room.
02:25:31cavalle_ enters the room.
02:27:16VVSiz leaves the room.
02:29:12cavalle_ leaves the room.
02:29:42cavalle enters the room.
02:31:14d2dchat leaves the room.
02:41:21obvio enters the room.
02:44:04KirinDave leaves the room.
02:47:36cjheath leaves the room.
02:56:23RyanTM leaves the room.
02:56:50skaar enters the room.
02:57:44RyanTM enters the room.
03:00:23agile enters the room.
03:01:49crafterm enters the room.
03:09:00miamoto_musashi leaves the room.
03:10:12pauldix leaves the room.
03:10:29bitbang enters the room.
03:12:43cavalle leaves the room.
03:13:09cavalle enters the room.
03:16:58lopex enters the room.
03:17:21headius enters the room.
03:17:51jinjing enters the room.
03:20:32jptix leaves the room.
03:24:07jptix enters the room.
03:28:48imajes leaves the room.
03:29:15aotearoa leaves the room.
03:30:43miamoto_musashi enters the room.
03:31:13cavalle_ enters the room.
03:31:48headius leaves the room.
03:32:32eventualbuddha leaves the room.
03:34:29jrun leaves the room.
03:34:34headius enters the room.
03:35:10jrun enters the room.
03:39:11cavalle leaves the room.
03:42:33KirinDave enters the room.
03:44:16KirinDav_ enters the room.
03:51:07jtoy enters the room.
03:51:12jrun leaves the room.
03:58:33foysavas leaves the room.
03:58:59foysavas enters the room.
04:04:40KirinDave leaves the room.
04:05:51KirinDav_ leaves the room.
04:10:52KirinDav_ enters the room.
04:10:53mediogre enters the room.
04:21:06chop3 leaves the room.
04:27:40KirinDav_ leaves the room.
04:28:46lstoll enters the room.
04:34:18dewd leaves the room.
04:34:27agardinerhmm... anybody else think it would be useful to have an .rbc decompiler like we used to have under compiler1?
04:35:07evanwe had one?
04:35:08agardineri've got a use for it, so i've revived it and got it working... but not sure whether i should commit it
04:35:10evanwhat did it do?
04:35:45agardinerit reads an .rbc file and dumps the compiled method in a kind of sexp format of nested arrays, symbols, etc
04:35:57agardineri can pastie the output if you like
04:36:33evanshould be trivial
04:36:39evansince we already have decode
04:36:50agardinerah, well see i need it to work with mri
04:36:57agardinerwhich it does
04:36:59evanah
04:37:01evanooh that!
04:37:03evani recall now.
04:37:05evani wrote that.
04:37:06evanheh
04:37:11agardinerit doesn't seem as useful for rubinius because we have decode
04:37:20agardinerhehe, yeah and i kept fixing it
04:37:23evanit should still work fine
04:37:31evanregardless of the compiler
04:37:36agardinernah, needed a bit of cleanup but no biggy
04:37:39evanunless it's info about instructions is out of date
04:38:09agardinerwell, it used the old Bytecode::Encoder, which moved into ISeq
04:38:15evanah ah
04:38:16evanok
04:38:23agardinerplus the format of rbcs has chanegd a bit
04:38:40AndrewO leaves the room.
04:39:05agardineranyway, my question is: should i commit it now i've got it working again? and if so, where?
04:39:24evanmmm
04:39:27evaninto lib is fine
04:39:38evanit likely runs fine under both mri and rbx
04:39:58agardineryeah, i need a require for it to include iseq under mri, but otherwise it works fine
04:40:45agardinerok, i'll commit it as lib/decompiler.rb
04:42:33agardinerevan: fyi, i finally got my finger out and started a blog
04:43:39brixenagardiner: link?
04:43:58agardinerhttp://betterruby.wordpress.com/
04:44:31brixensweet :)
04:44:39agardiner:-)
04:47:22rueI think someone wrote a decompiler
04:47:43agardinerhehe, yeah we had that discussion... this is that, resurrected
04:48:30ruehttp://rubyforge.org/projects/prettyrbc/
04:48:36rueDunno what shape that may be in
04:48:45rueThink that is jero5
04:49:08agardineroh, i wasn't aware of that...
04:56:57cavalle_ leaves the room.
04:57:28cavalle enters the room.
05:07:56boyscout1 commit by Adam Gardiner
05:07:57boyscout * Resurrect .rbc decompiler to dump contents of .rbc; 7a839de
05:16:18rubuildius_amd64Adam Gardiner: 7a839de3c; 1756 files, 6116 examples, 20382 expectations, 0 failures, 0 errors; http://rafb.net/p/w0djXF53.html
05:20:05rubuildius_ppcAdam Gardiner: 7a839de3c; 1756 files, 6119 examples, 20411 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/167671
05:22:18rubuildius_amd64 leaves the room.
05:26:15mae leaves the room.
05:29:38jptix leaves the room.
05:32:50srbaker leaves the room.
05:33:52lopex leaves the room.
05:34:31rueagardiner: Let me know how it works if you try it
05:36:12nemerle leaves the room.
05:48:47srbaker enters the room.
05:51:27wycats leaves the room.
05:53:16KirinDav_ enters the room.
05:53:52cavalle leaves the room.
05:54:52cavalle enters the room.
05:56:54wifelette leaves the room.
05:59:30mae enters the room.
06:02:29headius leaves the room.
06:02:50headius enters the room.
06:07:38mae leaves the room.
06:07:40mae_ enters the room.
06:12:55cavalle leaves the room.
06:13:37cavalle enters the room.
06:15:30mae_ leaves the room.
06:23:32wycats enters the room.
06:23:54wifelette enters the room.
06:25:20_martinS_ leaves the room.
06:26:27obiejuan leaves the room.
06:29:18ezmobius enters the room.
06:32:57joachimm enters the room.
06:35:19nkpart leaves the room.
06:36:27agardiner leaves the room.
06:38:57sholden leaves the room.
06:44:06crafterm leaves the room.
06:45:14cavalle leaves the room.
06:45:33cavalle enters the room.
06:45:41aotearoa enters the room.
06:56:09radarek enters the room.
07:04:13joachimm leaves the room.
07:05:43headius_ enters the room.
07:05:43headius leaves the room.
07:18:15crafterm enters the room.
07:18:18crafterm leaves the room.
07:18:41srbaker leaves the room.
07:19:14lachie leaves the room.
07:22:04obvio leaves the room.
07:25:12brixeninteresting: ruby -e "s = ' ' * 100; 1000.times { s << s }"
07:25:29brixensegfaults on MRI 1.8.6p111 on leopard
07:26:23evanyou win a cookie?
07:26:43jinjing_ enters the room.
07:27:02brixenheh, well, rbx doesn't segfault, just takes 50 sec to complete
07:27:14brixenit is odd to me that mri segfaults
07:27:18brixenthat's nasty
07:27:47brixensmashing the stack for fun and profit
07:28:00jinjing leaves the room.
07:33:59cavalle leaves the room.
07:34:11cavalle enters the room.
07:36:58ezmobius leaves the room.
07:41:54jartz enters the room.
07:42:13headius_ leaves the room.
07:43:55KirinDav_ leaves the room.
07:48:22KirinDav_ enters the room.
07:50:51headius enters the room.
08:02:07KirinDav_ leaves the room.
08:02:54qwert666 enters the room.
08:12:41jtoy leaves the room.
08:14:17RyanTM leaves the room.
08:14:32headius leaves the room.
08:16:51thehcdreamer enters the room.
08:19:07danm_ leaves the room.
08:19:25lstoll leaves the room.
08:36:40jinjing_ leaves the room.
08:50:06benburkert leaves the room.
08:56:33thehcdreamer leaves the room.
08:58:41benburkert enters the room.
08:59:51thehcdreamer enters the room.
09:01:55octopod enters the room.
09:02:50Ingmar enters the room.
09:03:30scooprhttp://www.sapphire-lang.org/ o_O
09:06:22antares enters the room.
09:07:19crossblaim enters the room.
09:16:27wifelette leaves the room.
09:18:05Arjen_ enters the room.
09:19:34benburkert leaves the room.
09:24:38lstoll enters the room.
09:36:39rue\\
09:36:45rueWhops
09:37:21scoopr//
09:56:53BlackEdder enters the room.
10:30:10antares leaves the room.
10:31:34w1rele55 leaves the room.
10:33:50w1rele55 enters the room.
10:39:23miamoto_musashi leaves the room.
10:39:39DefilerAah, the red-eye flight.. we meet again my old friend
10:39:40miamoto_musashi enters the room.
10:49:38GMFlash leaves the room.
10:51:04jartz leaves the room.
10:54:42jartz enters the room.
10:56:38olabini enters the room.
10:58:06octopod leaves the room.
10:59:40Skip enters the room.
11:02:11octopod enters the room.
11:05:16jartz leaves the room.
11:15:30pietia enters the room.
11:20:48ctennis leaves the room.
11:26:40chris2 enters the room.
11:33:47pietia leaves the room.
11:34:13pietia enters the room.
11:35:16pietia leaves the room.
11:42:53thehcdreamer_ enters the room.
11:43:40thehcdreamer leaves the room.
11:50:09mae enters the room.
11:51:54aotearoa leaves the room.
11:55:28BlackEdder enters the room.
12:00:56chop3 enters the room.
12:06:30wdperson enters the room.
12:07:52ruivaldo enters the room.
12:08:51chop3 leaves the room.
12:11:49radarek leaves the room.
12:11:56brainopia enters the room.
12:12:08yaroslav enters the room.
12:17:56RyanTM enters the room.
12:34:43hoopy leaves the room.
12:40:04hoopy enters the room.
12:47:46skaar leaves the room.
12:56:04sholden enters the room.
12:57:08sholden leaves the room.
12:59:54jinjing enters the room.
13:01:04antares enters the room.
13:03:54AndrewO enters the room.
13:10:17pauldix enters the room.
13:12:28joel_c enters the room.
13:14:26qwert666 leaves the room.
13:16:56antares_ enters the room.
13:17:01ruivaldo leaves the room.
13:18:31antares leaves the room.
13:20:54webmat enters the room.
13:26:48obvio enters the room.
13:28:34yaroslav leaves the room.
13:36:18GMFlash enters the room.
13:48:57binary42 leaves the room.
13:49:01RyanTM leaves the room.
13:50:39RyanTM enters the room.
13:51:12purp enters the room.
13:55:32pauldix_ enters the room.
13:56:14antares_ leaves the room.
14:01:29mutle leaves the room.
14:01:48d2dchat enters the room.
14:01:58moofbong enters the room.
14:02:13mutle enters the room.
14:05:14pauldix leaves the room.
14:10:06purp leaves the room.
14:10:16jartz enters the room.
14:14:00obiejuan enters the room.
14:21:14imajes enters the room.
14:24:14mutle leaves the room.
14:24:19mutle enters the room.
14:26:07hassox enters the room.
14:30:55srbaker enters the room.
14:31:33wmoxam enters the room.
14:34:03thehcdreamer_ leaves the room.
14:36:01wmoxam leaves the room.
14:37:02thehcdreamer enters the room.
14:37:06wmoxam enters the room.
14:40:44obvio171 enters the room.
14:48:23obiejuan leaves the room.
14:49:19obvio leaves the room.
14:55:03thehcdreamer leaves the room.
14:56:43therealadam enters the room.
14:56:45obvio171_ enters the room.
14:58:41obvio171 leaves the room.
15:00:16BlackEdder enters the room.
15:00:43thehcdreamer enters the room.
15:04:00antares enters the room.
15:04:54antares leaves the room.
15:04:56imajes__ enters the room.
15:05:37antares enters the room.
15:07:08obiejuan enters the room.
15:07:59jptix enters the room.
15:08:31KirinDave enters the room.
15:08:37wycats leaves the room.
15:13:08nicksieger enters the room.
15:16:52enebo enters the room.
15:19:55imajes_ leaves the room.
15:21:50crossblaim leaves the room.
15:23:15miamoto_musashi leaves the room.
15:25:08menator enters the room.
15:34:07jartz leaves the room.
15:39:13nicksieger leaves the room.
15:39:29nicksieger enters the room.
15:41:42skaar enters the room.
15:45:56pauldix_ leaves the room.
15:46:54radarek enters the room.
15:52:09srbaker leaves the room.
15:54:54mae leaves the room.
15:55:04mae enters the room.
15:57:11srbaker enters the room.
16:02:39jinjing leaves the room.
16:04:29jinjing enters the room.
16:14:34Skip leaves the room.
16:17:44crossblaim enters the room.
16:19:28wifelette enters the room.
16:23:35KirinDave leaves the room.
16:25:17perplexes_ enters the room.
16:26:01perplexes__ enters the room.
16:26:46perplexes leaves the room.
16:30:20srbaker leaves the room.
16:34:41jinjing leaves the room.
16:34:50jinjing enters the room.
16:35:01Skip enters the room.
16:36:13wycats enters the room.
16:39:18radarek leaves the room.
16:41:43perplexes_ leaves the room.
16:46:29KirinDave enters the room.
16:50:58retnuH_ leaves the room.
16:52:00dkubb enters the room.
16:52:10chris2anyone attending s3?
16:53:49brainopia leaves the room.
16:54:02menator leaves the room.
16:54:56brixenchris2: I had hoped to, but doesn't look like it will work out :(
16:55:02brixenchris2: are you attending?
16:55:58chris2pondering
16:56:53wmoxamanyone attending RubyFringe?
16:56:57headius enters the room.
17:05:16w1rele55 leaves the room.
17:05:45w1rele55 enters the room.
17:05:50w1rele55 leaves the room.
17:06:19jartz enters the room.
17:09:24chris2brixen: i'm unlikely to meet all these people in one place again for 80€ :P
17:11:37brixenno doubt!
17:11:53obvio leaves the room.
17:12:19brixenI wish they would video tape it
17:14:14w1rele55 enters the room.
17:14:47xmlhacker_ leaves the room.
17:14:52rueAre we still on for 11PST?
17:18:24brixenafaik
17:21:55xmlhacker enters the room.
17:23:31mae_ enters the room.
17:23:31mae leaves the room.
17:28:31headius_ enters the room.
17:31:33headius leaves the room.
17:33:09benburkert enters the room.
17:36:27thehcdreamer leaves the room.
17:36:44menator enters the room.
17:37:24antares leaves the room.
17:46:01antares enters the room.
17:46:24joachimm enters the room.
17:49:18binary42 enters the room.
17:55:09Arjen_ leaves the room.
17:57:22benburkert leaves the room.
18:00:40jinjing leaves the room.
18:01:28antare1 enters the room.
18:03:07qwert666 enters the room.
18:03:09KirinDav_ enters the room.
18:03:25KirinDave leaves the room.
18:04:30perplexes__ leaves the room.
18:18:20imajes_ enters the room.
18:24:12lopex enters the room.
18:25:30imajes leaves the room.
18:28:30menator leaves the room.
18:28:59dodecaphonic enters the room.
18:33:35ruehttp://journal.kittensoft.org/2008/3/13/splitting-the-specs-to-a-separate-project-with-git-submodu les
18:34:48djwhittrue: are specs moving into a separate repos soon?
18:36:36antare1rue, btw post title on home page is not a link though if I browse category I can copy it
18:37:33crossblaim leaves the room.
18:42:46nemerle enters the room.
18:46:07srbaker enters the room.
18:46:30srbaker leaves the room.
18:46:37olabini leaves the room.
18:46:44srbaker enters the room.
18:48:25srbaker leaves the room.
18:53:32srbaker enters the room.
18:54:00ezmobius enters the room.
19:00:56antares leaves the room.
19:05:24ruedjwhitt: It is in the plans, the post kinda just goes over the transition issues
19:08:16wifelette leaves the room.
19:09:33djwhittcool, I think it'll be both nice and annoying
19:10:06djwhittnice in that ci will have a fixed set of specs to work with
19:10:16djwhittit'll be annoying to update the specs though
19:10:19wycats leaves the room.
19:10:22rueYeah, it kind of requires a change in perspective to do effectively.
19:10:44rueAlthough we can have all kinds of Rake tasks that simplify the process
19:10:53djwhittah, cool
19:11:04djwhittyou imaginging people working with a seperate checkout for specs?
19:11:44evandjwhitt: were you were working on rubuildius?
19:11:49evanor was that dbussink
19:11:56djwhittthat's me
19:12:16djwhittevan: why do you ask?
19:13:15evancould you code up a feature to have it send out an email when there is a failure or error?
19:13:30evanthe email should contain the same thing as the pastie
19:13:41djwhittsure, I can do that
19:13:49evanwonderful
19:13:52djwhittwhere do you want the email sent?
19:13:59evanthe google dev list
19:14:02djwhittk
19:14:28djwhittI'll try to get that done today or tomorrow
19:14:45rueMan, Larry Page will be totally like "what is this Rubinius thing?"
19:15:01evandjwhitt: cool
19:15:06antare1evan, while you are here. I still want to ask you about references list for VM hacking wannabees ;)
19:15:09evandjwhitt: thanks!
19:15:17evanack!
19:15:23evantoday, I promise.
19:15:33antare1evan, this sea sailed ;)
19:15:48antare1evan, I can put some links for you even... and submit a ticket to LH
19:15:59antare1so you can just create a page from those
19:16:44antare1evan, ok I'll set up some links and send them to dev list today. For you convenience :)
19:17:11rueantare1: The docs look OK, though as brixen mentioned there are still some unnecessary ones
19:17:13evanantare1: :)
19:17:21brixenantare1: I did look at your patch, a couple minor things: I wouldn't change any of the debug printf strings, and there's still too many inline comments imo
19:17:25brixenrue: :)
19:17:28rueHeh
19:17:57antare1rue, I already rewritten most of them
19:18:06antare1rue, be ready for another patch review tonight ;)
19:18:27rueantare1: That is why I recommend doing smaller patches. I know that you want to make sure you have all the info and everything is correct but honestly, it is not that big of a deal if something is erroneous
19:18:28brixenantare1: and there's still comments for functions like /* whether to do X */ if you could change those to /* returns FALSE if X, else returns TRUE */ something like that
19:18:32antare1evan, the only reason I ask actually is because I cannot find a bit of info on this spaghetti stack
19:18:55evanah la stack de spaghetti!
19:18:58rueWhen you commit it, several eyes can look it over and make sure it is all correct
19:19:18evanantare1: http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_chapter26.html#Contexts26
19:20:23brixenantare1: I've found this to be quite good: "Virtual Machines" by Iain D. Craig, Springer 2006
19:20:51brixenstill reading it though
19:21:06brixenit's got a good discussion of stack vs register vm's
19:21:31antare1brixen, already did that, let me post another diff later tonight
19:21:40brixenantare1: ok, cool
19:21:55antare1hm... connection broke up, brixen did you receive my answer?
19:22:00brixenyeah
19:22:41brixenantare1: you know about this? http://www.donttreadonme.co.uk/rubinius-irc/
19:22:48brixenin case you miss something in channel
19:23:45rueAlso, screen
19:24:16brixenyeah, until my vps hangs :)
19:24:48rueI have backup pigeon power
19:25:09jartz leaves the room.
19:25:09jartz_ enters the room.
19:25:13brixensquirrels!
19:25:13djwhittI just run an IRC proxy on a vps
19:25:25djwhitthttp://www.ctrlproxy.org/
19:25:27djwhittworks great
19:25:46evanooh
19:25:48brixendjwhitt: what vps do you use?
19:25:51evani'm ditching dircproxy then
19:25:54evanit sucks.
19:26:05djwhittevan: yeah, ctrlproxy is pretty sweet
19:26:05brixendjwhitt: I think mine has a specific no-no about doing that
19:26:27djwhittbrixen: I'm running on Slicehost
19:26:36brixenoh nice, I've got one of those
19:26:41brixenI think I'll move it
19:26:50djwhittyeah, it's been working great for me
19:27:01rue*sigh*
19:27:04djwhittI think I've had it going for about 3 weeks now without a crash
19:27:21djwhittit buffers messages to
19:27:29rueDo not Command-L in Firefox3 and then move to a different space.
19:27:30djwhittand to the best of my knowledge it hasn't missed anything
19:27:34brixendjwhitt: so what client do you use?
19:27:47djwhittbrixen: pidgen
19:28:05djwhittor rather, pidgin
19:28:33djwhittbrixen: it's not great imo, but it's good enough for my usage
19:28:40obiejuan leaves the room.
19:28:41brixenok
19:28:55brixenrue: you use weechat?
19:29:20rueYeah
19:29:30rueVertical split is very useful
19:30:06brixenyeah, saw you screenshot, that looked sweet
19:30:12brixens/you/your/
19:31:34skaar leaves the room.
19:32:49headiusg'day!
19:33:07brixen'lo!
19:33:31rueMorning
19:34:07evanalright, lunch then hacking at Stir Crazy (my local coffee shop)
19:34:30headiushey, are you guys keeping a list optimizations you're doing?
19:34:33headiuslike the times unrolling thing
19:34:45brixenheadius: that's been disabled for now
19:34:48headiusoh?
19:34:50headiuswhy's that?
19:35:04brixenneeds work on breaking from an inlined block
19:35:27brixenI don't think we have a list, but I think they're all plugins
19:35:39brixenso lib/compiler/plugins.rb
19:36:37brixenI want to look into a simple method inlining opt
19:37:12brixensmall body ruby methods especially in loops
19:37:15headiushow do you do that without knowing the target method
19:37:30brixendunno yet :P
19:37:34headiusheh
19:37:35evanabout to leave
19:37:36brixenit would be runtime
19:37:38evanbut i'll tell ya
19:37:41evanyeah
19:37:46evanit seems that times is called
19:37:56evanand outputs an inlined version if the receiver is a number
19:37:56headiusahh, so moving toward runtime optz?
19:38:12evanit then checks to see if the receiver was a number, and if so, use the inline version
19:38:18evanotherwise use the normal verion
19:38:23mediogre leaves the room.
19:39:07brixenheadius: yeah, the existing compiler plugin for #times is pretty easy to understand
19:39:09headiusI played with something similar a while back, but the flow-control hassles backed it down
19:39:12evanthere is another check that sees if the method that would be called in the kernel version of times
19:39:26evancalled is the kernel version
19:39:43headiusdoes squeak do these sorts of things too?
19:39:46evanyeah, the flow-control is broken in it though
19:39:48evanno
19:39:52evannot at all
19:40:10headiusit seems a little weird to optimize times to me
19:40:24evanI was playing :)
19:40:38evanit's simple enough, i wanted to see how hard it would be to have more of them
19:40:48headiusahh
19:40:48brixenheadius: well, it's an attractive construct
19:41:01headiusduby will have similar plugin architecture...in fact it will be entirely plugin-based
19:41:14headiusso allow inferred static typing throughout, but still full ruby syntax
19:41:19headiusso perhaps a similar approach there
19:41:42obiejuan enters the room.
19:42:31brixenheadius: the thing about inlining #times is the block overhead, so people tend to use it instead of: i = 0; while i < len...
19:42:45brixenand that isn't very good performance
19:42:50headiusyeah, I know
19:43:01brixenmakes pretty code though
19:43:16brixenI just did an experiment with an external iterator for String
19:43:35brixento combine the loop operations with the access operation
19:43:56brixenfor us, it's the tiniest bit faster than a while loop
19:44:01brixenso, it's not worth it
19:44:28brixenand it makes the whole thing more opaque to a runtime bytecode optimizer, I think
19:45:39brixenlunch, biab..
19:47:57headiusI'll have to have a look at your compiler plugin structure, see if it helps with duby's plugin system
19:48:14nicksieger leaves the room.
19:48:25headiusat the moment I'm finishing up an AST translator to isolate the Ruby AST from the Duby compiler system
19:48:46headiuspastie
19:49:06nicksieger enters the room.
19:49:33pastiehttp://pastie.org/167975 by headius.
19:49:49wycats enters the room.
19:50:39headiushmm, looks like ifnode doesn't inspect exactly right in the ruby ast
19:51:02wifelette enters the room.
19:51:42jicksta_ leaves the room.
19:51:52joel_c leaves the room.
19:57:06bitbang enters the room.
19:58:29jayWHY enters the room.
20:04:44crossblaim enters the room.
20:04:52crossblaimhello
20:10:23loincloth enters the room.
20:11:25rue Afternoon
20:12:23seydar enters the room.
20:13:11seydarhallo mates
20:14:27seydarhas anyone started work on porting IO/Wait to FFI?
20:14:47brainopia enters the room.
20:18:23rueI do not believe so
20:22:37seydarawesome
20:22:45seydarmy chance to shine!
20:23:04seydaris there any hope to convert curses to FFI?
20:27:08lopex leaves the room.
20:27:13evan leaves the room.
20:34:50KirinDav_ leaves the room.
20:35:10miamoto_musashi enters the room.
20:36:32antare1heh, what a nice post by agardiner on Shotgun
20:36:40antare1http://betterruby.wordpress.com/2008/03/18/shotgun-the-rubinius-virtual-machine/
20:36:51evan enters the room.
20:36:57evanok, i'm trying out ctrlproxy
20:37:32evani love this coffee shop.
20:37:48evanthe guys outside are talking about how crazy scientology is
20:39:04seydarcrazy good or crazy in the normal sense?
20:39:26evancrazy hilarious
20:39:55djwhittwhatever, it makes total sense, we're all possesed by dead aliens
20:40:26rueComatose
20:40:32seydari'll buy it
20:40:40evanrue: triple letter word score?
20:40:46miamoto_musashi leaves the room.
20:43:32perplexes enters the room.
20:47:12rueSerendipitous coincidence of music and conversation.
20:47:52rueI was listening to "Jigsaw Falling into Place" by Radiohead.
20:50:31d2dchat leaves the room.
20:50:38seydarso evan. i brought up the idea of llvm with rubinius, and someone said that it COULD work, but there were some issues with implementing true closures
20:50:52evanyep
20:51:07seydarand there's that one method that deals with it, but you claim its not portable?
20:51:11d2dchat enters the room.
20:51:30evanwell, i guess llvm doesn't even fully support the method
20:51:54evanthe execution model of rubinius is based arround the spaghetti stack
20:52:31seydarbut the only issue is with closures?
20:52:39evanno
20:52:48seydarAND the execution model?
20:52:50evanbecause closures are built on the spaghetti stack
20:52:57jartz enters the room.
20:52:58seydaryargh. gotcha
20:53:31jartz_ leaves the room.
20:53:55djwhittbut C runs on LLVM right?
20:54:04djwhittso wouldn't it be possible to just port the C VM to LLVM?
20:54:36evansure, thats done
20:54:40seydaryes, but my goal was to do bytecode -> llvm bytecode
20:54:44evanbecause LLVM can compile C
20:54:56evanright, if you want to translate methods to llvm bytecode though, thats a different ball of wax
20:55:09seydara happier ball of wax?
20:55:35djwhittwell, just running the C VM on top of LLVM could be useful because it does JIT
20:55:40d2dchat leaves the room.
20:55:52evandjwhitt: thats only useful, again, if we translate the bytecode to llvm bytecode
20:56:22d2dchat enters the room.
20:56:32djwhittI thought that C compiled on LLVM would output LLVM bytecode by default
20:56:48seydaryea
20:57:03seydarbut then the C core would be on LLVM, but not the rubinius bytecode
20:57:17evanit would just be an interpreter running inside LLVM then
20:57:20djwhittah yes
20:57:22evanno gain
20:57:23djwhittgotcha
20:59:02seydarso about Rubinius bytecode -> LLVM... is this impossible? you said its a new ball of wax, so i just want to check
20:59:31evannothing is impossible
20:59:46evanit would require a completely new execution model though
21:00:10seydari should have said "impractical", then
21:00:11dkubb enters the room.
21:00:26evani think it could be interesting
21:00:34evanso don't let me turn you away
21:01:26antare1what are benefits of compiling to LLVM bytecode at the moment?
21:01:42evanvastly reduced overhead
21:01:48evanbecause llvm will jit the code to machine code
21:02:08seydarand it can be compiled to C
21:02:18seydarso like, Ruby -> C compiler
21:03:29djwhittI guess the problems you deal with when implement LLVM are pretty much the same as you would have writing a native Ruby compiler only difference is LLVM has a nicer instruction set right?
21:04:09djwhittnative Ruby compiler meaning something like Ruby to x86 machine code
21:04:50srbaker leaves the room.
21:04:54seydarmy goal was to first get some bindings going, and then write something to take the bytecode and create LLVM modules etc with it
21:05:10seydarthus I don't deal with anybody's bytes but rubinius's
21:05:24evansomething like Ruby -> C probably isn't the road to take
21:05:48evanfollowing the java model, it's much easier to generate machine code that can only be run against the current program
21:05:56evanie, directly into heap jit
21:07:02seydarthat *kinda* made sense
21:07:21seydarwhat is heap jit? isn't all machine code pretty program specific?
21:08:27evanseydar: i mean, generating machine code that contains information gathered at runtime
21:08:36evanand likely contains raw pointers
21:08:40seydarah.
21:11:17seydaris there _anything_ that can be done outside of shotgun to produce faster executable code?
21:12:14djwhittcompiler opts perhaps?
21:12:23brixenseydar: this would be inside shotgun, but interesting: http://citeseer.ist.psu.edu/722881.html
21:13:12seydarsounds interesting.
21:13:25seydarsounds incredibly complex, too
21:13:30brixennot really
21:13:36brixenthat's a pretty simple description of it
21:13:46seydarsimple?!?! it made no sense!
21:13:46brixenwe already are direct threaded
21:13:53ctennis enters the room.
21:13:53brixendid you read it yet? :P
21:13:59seydarthe abstract, yes
21:14:04brixenheh, read the paper
21:14:08brixenit's only like 12 pages
21:14:22seydark. i can do /that/
21:14:55brixenyou want to bite of that big ass llvm cookie, might as well look at something _simpler_ ;)
21:15:28seydarllvm seemed so innocent!
21:15:48brixenheh, well, have a whack, le'me know how it goes :)
21:15:51seydaranything else you'd all recommend me reading?
21:15:59brixenabout?
21:16:04seydarbrixen: btw, i dont know C. so i can only read it and *think* about implementing it
21:16:19seydarabout making the end code faster (outside of shotgun(
21:16:21seydar)
21:16:24brixenoh boy, then read "the C programming language"
21:16:27brixenjeez, already
21:16:52seydari know!
21:16:58brixenheh
21:17:15seydari'm kinda waiting for Cuby to come out
21:17:22seydaror C/Ruby. whatever the codename is
21:17:29djwhittC isn't that complicated you could probably learn the basics in a week
21:17:32brixennah, you will be well served knowing C
21:17:36brixenlearning it
21:17:40brixenit'll take you 3 days
21:17:45seydari can write C. i can do Java, but doing C *well* is my problem
21:18:24brixenpractice makes perfect :)
21:18:52seydarevan, what needs to be done to get C/Ruby out and about? or are you still working on the syntax design?
21:19:14evanyeah, but feel free to take a crack at if you want
21:19:30seydarcoolio
21:20:56seydarwhat are you looking to get from C/Ruby, though?
21:21:18seydarlike direct C source code?
21:21:24evanlikely
21:22:03djwhittseydar: headius is working on something similar for Java right now: http://headius.blogspot.com/2008/03/duby-type-inferred-ruby-like-jvm.html
21:22:21seydari saw that! thought it was awesome
21:22:37evanseydar: if you're interested in LLVM
21:22:54evanthen taking something like what druby is and having it output LLVM bytecode would be awesome
21:23:36pietia enters the room.
21:23:44seydarit would be. I was seriously *this* close to considering it. but then i realized that bytecode changes
21:23:56seydarand still, would we then be able to do spaghetti stack?
21:24:00evanwell
21:24:04evandon't worry about that at first
21:24:06antare1brixen, hey have you seen that acm.org link at citeseer?
21:24:21brixenantare1: which link?
21:24:30evana tool that can turn ruby syntax into LLVM bytecode, no matter the execution model, would be useful
21:24:38evaneven just as a frontend for LLVM
21:24:42seydarawesome!
21:24:46seydari feel useful
21:24:50evanwhere we don't care that the backend doesn't match the execution model of ruby
21:24:54brixenantare1: also, this is interesting: http://citeseer.ist.psu.edu/arnold04survey.html
21:25:25seydarevan: maybe it'd be cool if i could make it use the same front end as Duby, so that rubinius could then easily be written for Java
21:25:30seydarhuzzah
21:25:57evanheh
21:27:14_martinS_ enters the room.
21:27:23macournoyer enters the room.
21:28:07antare1evan, it would be interesting but does it actually make sense? we want Rubinius in Ruby, don't we? :)
21:28:27evanyeah, but we can always work toward that
21:28:36evanwithout trying to do everything at once
21:28:57seydarit would be coded in ruby
21:29:09seydarbut that would get compiled to C
21:29:11seydaror llvm
21:29:27seydarno language (very few) is *truly* self hosting
21:30:51lstoll leaves the room.
21:31:49antare1will be back son
21:31:50jptixenglish? :)
21:31:55antare1s/son/soon
21:32:06evanjptix: modern english was bootstrapped by middle
21:32:07evanso not really
21:32:17antare1jptix, I think japanese is even more self-hosted :)
21:32:27jptixhehe
21:32:32antare1because it is pretty bounded to Japan
21:32:35jayWHY leaves the room.
21:32:46brixenexcept for most of the writing and the words adopted from chinese, portuguese, and english :)
21:33:00seydarand mongolian
21:33:11seydarthey found links between it and mongolian
21:33:23evani'd say it's a tie between finnish and hungarian
21:33:35seydarwell duh
21:33:42evansince they have their own language group, which is called "wtf is that!?"
21:33:46seydarfinnish is descended from hungarian
21:33:49seydarFinno-Ugric
21:34:08seydarthere is no tie between Finno-Ugric and Indo-European
21:34:13evanBushmen is probably up there
21:34:25miamoto_musashi enters the room.
21:34:26seydarmachine code is too
21:34:43jptixbut no adoption of concepts from other languages can't be a criteria for "self-hosted"
21:34:50seydarheadius: do you know where i could get a copy of your duby source?
21:34:53evanwell, it was bootstrapped by neuron chatter inside a human
21:35:22seydarfine. ELECTRICITY
21:35:26evan:D
21:35:30seydarbootstrapped by energy. which electricity is
21:35:46evansure, thats sorta like RNA
21:35:47jayWHY enters the room.
21:36:02seydarwhat time zone is headius in?
21:36:08tarcierihey evan, any idea what's up with MVM?
21:36:16evantarcieri: no, i need to take a look at it
21:37:05tarcieriok, cool
21:37:20djwhittseydar: headius is in central unless he's travelling
21:37:41seydardjwhitt: then he should be alive alert and enthusiastic around now....
21:37:52dodecaphonic leaves the room.
21:42:40antares enters the room.
21:42:46antaresback
21:43:26seydardid you bring headius with you?
21:43:29antaresbrixen, I asked about this document (at citeseer): http://portal.acm.org/citation.cfm?id=263754&coll=portal&dl=ACM/
21:45:09antaresbrixen, found it: http://users.ipa.net/~dwighth/squeak/oopsla_squeak.html
21:46:33brixenantares: ah yeah, interesting paper
21:47:59AndrewO leaves the room.
21:49:19obiejuan leaves the room.
21:49:31djwhittok, this maybe a stupid question since I'm not super familiar with low level VM stuff, but is context threading compatible with the spaghetti stack?
21:52:49obiejuan enters the room.
21:53:01seydar leaves the room.
21:54:07brixendgtized: I think you'd have to do some extra work if you unwind the stack, I think the paper refers to that
21:56:23benburkert enters the room.
21:57:43benburkert_ enters the room.
21:58:24benburkert_ leaves the room.
22:00:13antaresbrixen, maybe put IRC logs url to channel header? I keep forgetting it, for instance
22:01:20brixenantares: del.icio.us !
22:02:22moofbong leaves the room.
22:02:27antaresbrixen, it has strong relation to this IRC channel, why not put it in header? I use rubini.us community page instead ;)
22:05:18GMFlash leaves the room.
22:06:13brixenantares: well, I don't control the channel header, and it might be more useful for current stuff
22:06:33srbaker enters the room.
22:08:58djwhittbrixen: finished reading the paper, seems like you could implement everything but the mapping of vm return instructions to native without too much trouble... has anyone tried it yet?
22:09:10headiushiya
22:09:52brixenheya
22:10:00headiussomeone was looking for me?
22:10:10brixendjwhitt: seems straightforward
22:10:19brixendjwhitt: I haven't asked evan about it yet
22:10:29brixenheadius: seydar was looking for your duby code
22:10:40headiusahh, ok
22:10:44brixenbut he's left the channel
22:10:52brixenhe was looking into having it output llvm
22:11:10headiusI think he mentioned that at one point
22:11:34headiusI'm isolating the logic of looking up/representing a type from anything Java related, so it should be possible
22:11:49agardiner enters the room.
22:11:50brixencool
22:11:59agardinermorning
22:12:04hassox leaves the room.
22:12:05brixenmorning!
22:12:22agardinerwith an exclamation point an all! :-D
22:12:32brixen:)
22:12:36evanagardiner: morning!
22:12:43agardinerhi evan!
22:13:27agardinerhow is everyone today? looking forward to the easter break?
22:13:54evanwe don't have such a think
22:13:54evanthing
22:13:54evanbut i guess spring break is coming up soon
22:13:55wombleEaster *break*? Bwahahaha.
22:14:08evansince i left school, i've lost all idea of when the school breaks are
22:14:11wombleI don't get a break over Easter. A 4-day weekend is a chance for extended maintenance windows.
22:14:21antaresagardiner, morning! :)
22:14:25agardinerhehe, well i got some great news yesterday - the place i'm working at gets Tuesday off as well!
22:14:31rueMorning, agardiner
22:14:32agardinerso its a five day break for me! :-)
22:14:35evanagardiner: woo!
22:14:42agardinerhey rue, antares
22:14:57wombleagardiner: You're killing me here, man.
22:15:01lachie enters the room.
22:15:08agardinerwomble: :-D
22:15:09lachie leaves the room.
22:15:22antaresagardiner, may I ask you a stupid question? I put your two nice blog posts on references list (just a page with literature for VM hacker wannabes), what is your first name? :)
22:15:30agardiner... course, i don't get paid for any of these days off
22:15:37agardinerbut still... i'll take em!
22:15:48agardinerantares: Adam
22:16:03antaresagardiner, that's what I thought :)
22:16:35agardinersaw you guys were talking about the spaghetti stack...
22:16:41antaresevan, references page with titles and links I know is done. What markup do you prefer?
22:16:47agardinerthat was gonna be the subject of another post
22:16:50evanantares: whatev
22:16:57evanagardiner: yay! great first posts btw
22:17:05agardinerevan: thanks!
22:17:36webmat leaves the room.
22:18:04brother_rspec enters the room.
22:18:38antaresevan, want me to open up a ticket for it or send it to you somehow?
22:18:46evanticket
22:18:53antaresalrighty
22:19:22evanzenspider: is ZenTest running under rubinius?
22:19:35nicksieger leaves the room.
22:20:02nicksieger enters the room.
22:21:13benburkert leaves the room.
22:21:33brother_rspec leaves the room.
22:24:59antaresevan, ticket: http://tinyurl.com/2s5pwj
22:25:37evancool
22:33:03lachie enters the room.
22:33:39lstoll enters the room.
22:34:55wmoxam leaves the room.
22:42:00crafterm enters the room.
22:46:38chop3 enters the room.
22:59:14dmpk2kThe memory paper by Ulrich Drepper might go well on that reference list.
22:59:20pietia leaves the room.
22:59:27obvio enters the room.
23:00:05crafterm leaves the room.
23:01:45octopod leaves the room.
23:01:47enebo leaves the room.
23:05:21lachie leaves the room.
23:06:16lachie enters the room.
23:06:36AndrewO enters the room.
23:09:21_mutle enters the room.
23:10:09radarek enters the room.
23:15:54mark___ enters the room.
23:16:50mutle leaves the room.
23:17:35miamoto_musashi leaves the room.
23:18:38macournoyer leaves the room.
23:20:21dkubb enters the room.
23:23:03brainopia leaves the room.
23:23:04qwert666 leaves the room.
23:28:52antaresdmpk2k, one of Self papers? could you shoot me a link?
23:29:22brixenantares: perhaps this: http://lwn.net/Articles/250967/
23:30:56jartz leaves the room.
23:34:37antaresbrixen, thanks for pointing
23:37:13wifelette leaves the room.
23:37:20jicksta enters the room.
23:38:45RyanTM leaves the room.
23:42:01srbaker leaves the room.
23:42:08wmoxam enters the room.
23:43:10wifelette enters the room.
23:43:43TheVoice enters the room.
23:45:53srbaker enters the room.
23:52:29webmat enters the room.
23:52:49wycats_ enters the room.
23:53:02womble leaves the room.
23:53:04wycats leaves the room.
23:53:09ezmobius leaves the room.
23:53:26wifelette_ enters the room.
23:53:26wifelette leaves the room.
23:54:45ezmobius enters the room.
23:55:38wycats enters the room.
23:57:38mae_ leaves the room.
23:58:18mae enters the room.