Index

Show enters and exits. Hide enters and exits.

00:00:30Arjen_ leaves the room.
00:02:31dctanner enters the room.
00:03:28imajes leaves the room.
00:05:02fabiokung leaves the room.
00:05:29fabiokung enters the room.
00:11:10fabiokung leaves the room.
00:11:31fabiokung enters the room.
00:11:44fabiokung leaves the room.
00:12:10atduskgr_ enters the room.
00:14:46atduskgreg leaves the room.
00:17:42chris2 leaves the room.
00:18:08dctanner leaves the room.
00:19:00ch0wda leaves the room.
00:19:27enebo leaves the room.
00:19:44twbray enters the room.
00:20:44AndrewO leaves the room.
00:23:28michalw leaves the room.
00:25:40Yurik leaves the room.
00:30:50evanbrixen: you around?
00:32:27Yurik enters the room.
00:35:18brixenevan: yah
00:35:32evanopen up shotgun/lib/array.c
00:35:36brixenk
00:35:37eventualbuddha enters the room.
00:35:52evanline 8
00:35:59evanyou added the count < 8 ? ... thing
00:36:00brixenyes
00:36:03evanrecall why?
00:36:24brixenyep, because a zillion arrays were created an then promptly promoted to ~8 elements
00:36:28brixenwatching specs run
00:36:46evanhrm. ok.
00:36:52brixenbut that was before lookuptable
00:37:00brixenhmm, nm
00:37:12brixenHash uses Tuple, not Array
00:37:19evanyep.
00:38:37brixenit would be great to get our dtrace hooks into the new vm so we could profile this stuff
00:38:47evanwe have dtrace hooks in the current one
00:38:50brixenI never got a chance at RC to work on that with crafterm
00:38:50evanyou can do it now.
00:38:56brixenyeah, I know
00:39:02brixenbut I want them in the new one :)
00:39:05evanheh
00:39:12evanjust pondering splat a little.
00:39:18brixenahh
00:39:26evanesp. for a case like
00:39:30evandef call(*args)
00:39:34evan @block.call(*args)
00:39:35evanend
00:39:50brixenyeah, some way to pass it though, huh?
00:40:05evanin the new VM, i'm pretty sure it will be easy.
00:40:26evanbecause there is the Message C++ class that can just lazily pass args through without copying them.
00:40:31evanin the current one
00:41:01evani was curious how much memory a splat took up
00:41:13evanand found that it's at least 8 slots in the tuple
00:44:11brixendo we have any measure of how frequent a splat occurs in code?
00:44:40brixenwe need a query env for statistics from the vm during execution :)
00:45:03brixenselect * from splat where class = Array; :D
00:45:10brixens/splat/splats/
00:45:35brixenwe should throw execution stats into sqlite during a run
00:45:43brixenquery-able offline
00:46:07brixenevan: you talked about opening a write-out port to do this once
00:46:33evani did.
00:46:45evanin a similar way that the jvm has one
00:46:56brixenbut does jvm use sqlite? :)
00:47:04evanit would pump data out a socket
00:47:16brixensure, and an adapter could read and dump to sqlite
00:47:19brixenthat'd be fun
00:47:25evanyeah
00:47:28brixenruport and gruff, here we come
00:47:36evanit's super easy to do
00:47:44evanwe just have to decide what data we want.
00:47:52brixenyeah
00:48:05brixenobj creation/gc would be awesome
00:48:31brixenaccumulate sendsite stats at intervals
00:48:47evanprobably have to accumulate gc stats too.
00:49:19thoughtfiz leaves the room.
00:49:35thoughtfiz enters the room.
00:50:17drbrainko1_away: added total malloc'd memory and total malloc alloctations to 1.9 (must be compiled-in)
00:50:51evanyeah
00:50:56evanthose are easy
00:51:15bitsweatdrbrain: got a patch up?
00:51:17evanwe could write those to a socket everytime gc runs
00:51:20evanbefore and after
00:51:28evanso you get figure out stats on how well the gc is working too.
00:51:39drbrainoops, I didn't mean a ':' there
00:51:48bitsweatoh heh
00:52:10bitsweattotal = currently malloced
00:52:15bitsweatnot cumulative
00:52:44drbrainbut, here is your patch: http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/gc.c?r1=17018&r2=17017&diff_format=u
00:53:14drbrain(written by ko1_away)
00:53:21evanbrixen: http://www.iunknown.com/2008/06/ironruby-at-tech-ed-2008.html
00:53:30evanbrixen: sees our PositiveExpectation lives on!
00:53:34evanseems
00:54:02bitsweatya, using that in ruby-prof now
00:54:09bitsweatif only other shit wasn't broken, it'd rock
00:58:52Yurik leaves the room.
01:00:12brixenheh
01:00:41evanbrixen: he wrote that on stage... it looks so familiar... :D
01:01:06brixenindeed it does
01:02:13dfg59 leaves the room.
01:02:16brixenhere's the original: http://pastie.org/198028
01:02:47evanwe called them PositiveExpectation and NegativeExpectation at one point too though, didn't we?
01:03:21brixenyeah
01:04:00NoKarma leaves the room.
01:21:29boyscout4 commits by Eric Hodel
01:21:30boyscout * Descriptions for gems: tasks; d31ad8d
01:21:31boyscout * Wire in stub gem installation into the development environment.; b3179ef
01:21:32boyscout * Add stub fastthread gem and architecture for additional stub gems.; e2e87a0
01:21:33boyscout * Death To Libtool\!; 2a6ee41
01:22:01AndrewO enters the room.
01:25:20dfg59 enters the room.
01:28:52loincloth enters the room.
01:30:55wyhaines leaves the room.
01:35:52rubuildius_ppcEric Hodel: d31ad8d93; 2377 files, 7769 examples, 26855 expectations, 0 failures, 0 errors
01:36:05drbrain(now you can install mongrel out-of-the-box!
01:36:15tarcieriorly
01:36:28tarcieriis that because there's stock dependencies for things like fastthread?
01:37:17rubuildius_amd64 enters the room.
01:37:55drbrainyes, for fastthread
01:38:07drbrainit's the only one we've added
01:38:59tarcieriok
01:40:48rubuildius_amd64Eric Hodel: d31ad8d93; build failed! http://rafb.net/p/i0qDmJ68.html
01:41:13drbrainif there are others we need, they are easy to add, look in the gems/ directory
01:41:28drbrainrubuildius_amd64: that's really strange
01:41:51drbraincan somebody run rubuildius_amd64 with -t?
01:42:57djwhittdrbrain: sure, just a sec
01:43:20drbraindjwhitt: thanks, it's odd that _ppc worked, but _amd64 didn't
01:43:54twbray leaves the room.
01:44:38mernendjwhitt: btw, regarding the two failures on amd64, the first one is too platform-dependant and is out of the specs; the other I'll investigate a bit more later
01:44:55djwhittmernen: cool, thanks for taking a look at it
01:45:15mernenit really shouldn't happen, unless for some reason the iconv library on gentoo 64-bit is different from ubuntu 32
01:47:29djwhittdrbrain: http://pastie.org/212701
01:48:13drbrainmaybe it requires in a different order between the two
01:50:31djwhittbtw if rubuildius is ever misbehaving when I'm not around brixen has access to the machine as well
01:50:31hemulen leaves the room.
01:50:53boyscout1 commit by Eric Hodel
01:50:53AndrewO leaves the room.
01:50:54boyscout * Ensure rakelib/rubinius is required so LIBVER exists; 6743a90
01:51:30drbrainlet's try that out
01:52:59djwhittsame result. looks like that's actually being defined in configure.rake
01:55:25drbrainoh, shit
01:55:49rubuildius_amd64Eric Hodel: 6743a90fc; build failed! http://rafb.net/p/8HkTwQ66.html
01:58:04krisps leaves the room.
02:02:18yugui enters the room.
02:03:41jbarnette leaves the room.
02:03:45rubuildius_ppcEric Hodel: 6743a90fc; 2377 files, 7769 examples, 26855 expectations, 0 failures, 0 errors
02:03:50mapar enters the room.
02:05:21jtoy enters the room.
02:05:42mapar leaves the room.
02:15:38boyscout1 commit by Eric Hodel
02:15:39boyscout * I'm dumb. Pull LIBVER and friends into configure.rb so they can be required.; 10e41f1
02:16:00drbrainok, THAT should do it
02:19:00roo enters the room.
02:19:32rue leaves the room.
02:20:12roo enters the room.
02:23:29dfg59 leaves the room.
02:27:30djwhittdrbrain: seems to have worked
02:27:56djwhittdrbrain: spec runs are taking a long time on rubuildius_amd64 these days, but I can tell that the build succeeded
02:28:06roo leaves the room.
02:28:49eventualbuddha leaves the room.
02:28:49rubuildius_amd64Eric Hodel: 10e41f15f; 2377 files, 7770 examples, 26834 expectations, 1 failure, 1 error; http://rafb.net/p/MD3Ygb83.html
02:28:59drbrainit would have failed right away, since just rake itself was borken
02:29:05rubuildius_ppcEric Hodel: 10e41f15f; 2377 files, 7769 examples, 26855 expectations, 0 failures, 0 errors
02:29:27drbrainI think evan's mistyping is contagious
02:35:57rueThere are dissertations
02:38:09VVSiz_ enters the room.
02:40:52atduskgreg enters the room.
02:41:33nicksieger leaves the room.
02:42:15nicksieger enters the room.
02:43:42yugui leaves the room.
02:45:28VVSiz leaves the room.
02:46:40atduskgr_ leaves the room.
02:49:43binary42 leaves the room.
02:58:42mernen leaves the room.
03:16:00bburcham enters the room.
03:17:09ezmobius leaves the room.
03:23:29jtoy leaves the room.
03:27:31stepheneb_ enters the room.
03:29:20stepheneb leaves the room.
03:32:36twbray enters the room.
03:33:17yugui enters the room.
03:36:58obvio enters the room.
03:37:32obvio leaves the room.
03:42:35stepheneb_ leaves the room.
03:44:35rphillips enters the room.
03:45:50dfg59 enters the room.
03:46:29obvio171 leaves the room.
03:58:11jero5 enters the room.
04:05:28jacen_ enters the room.
04:05:28jazen leaves the room.
04:11:48wmoxam enters the room.
04:15:05Cosmos95 leaves the room.
04:25:35lstoll enters the room.
04:26:13lstoll leaves the room.
04:29:23wycats leaves the room.
04:32:48twbray leaves the room.
04:33:09lstoll enters the room.
04:37:23shame leaves the room.
04:38:53vitaliy_ enters the room.
04:41:09wyhaines enters the room.
04:42:24bburcham leaves the room.
04:53:15lstoll leaves the room.
04:53:37lstoll enters the room.
04:56:14mapar enters the room.
04:58:06bburcham enters the room.
04:59:16bburcham leaves the room.
05:08:33wycats enters the room.
05:08:42yugui leaves the room.
05:09:03yugui enters the room.
05:09:48atduskgreg leaves the room.
05:10:51atduskgreg enters the room.
05:10:53stepheneb enters the room.
05:11:54vitaliynuby question:
05:12:08vitaliywhile looking at some other stuff noticed
05:12:25vitaliythat fixnum in rubinius is up to 2**28-1
05:12:37vitaliycompared to 2**30-1 in MRI
05:12:42DefilerYep
05:12:51DefilerThat is by design
05:12:56vitaliygotcha
05:13:01DefilerLuckily, people already can't rely on the Fixnum cutoff in MRI
05:13:08Defilerbecause of 64bit vs. 32bit builds
05:13:08loincloth leaves the room.
05:13:20DefilerJRuby also has a non-MRI cutoff point, I believe
05:13:42Defilershotgun/lib/oop.h has a little diagram (or should) showing what the space is used for
05:13:50vitaliythanks
05:14:31DefilerWe wanted to leave space for 'custom' immediate objects that we hadn't thought of yet
05:22:58binary42 enters the room.
05:23:06wmoxam leaves the room.
05:24:00dfg59_ enters the room.
05:24:31dfg59_ leaves the room.
05:27:02twbray enters the room.
05:29:57ruevitaliy_: Might change in the future too, of course
05:30:33shame enters the room.
05:36:36lchin enters the room.
05:38:45dfg59 leaves the room.
05:45:19dfg59 enters the room.
05:46:44stepheneb leaves the room.
05:50:01ezmobius enters the room.
05:51:52dfg59 leaves the room.
05:52:00dfg59 enters the room.
05:57:46blakewatters leaves the room.
05:58:19dbussink enters the room.
06:04:25xhanjian leaves the room.
06:08:51dfg59 leaves the room.
06:11:28dfg59 enters the room.
06:11:42dfg59 leaves the room.
06:12:06mediogre enters the room.
06:13:06scudco leaves the room.
06:13:37scudco enters the room.
06:22:58vitaliy_ leaves the room.
06:24:49dfg59 enters the room.
06:27:56dfg59 leaves the room.
06:28:01dfg59 enters the room.
06:30:40dfg59 leaves the room.
06:32:14dfg59 enters the room.
06:33:01sambo82 enters the room.
06:34:11dfg59_ enters the room.
06:34:41dfg59_ leaves the room.
06:34:47dfg59 leaves the room.
06:40:11sambo82_ enters the room.
06:41:00qwert666 enters the room.
06:41:37sambo82 leaves the room.
06:49:28krisps enters the room.
06:54:11JonathanT enters the room.
06:54:15dysinger leaves the room.
06:59:38random8r enters the room.
07:03:55JonathanT leaves the room.
07:07:39mediogre leaves the room.
07:07:55mediogre enters the room.
07:07:57cschneid leaves the room.
07:08:23cschneid enters the room.
07:26:29jtoy enters the room.
07:30:51Maledictus enters the room.
07:35:57yugui leaves the room.
07:51:24random8r leaves the room.
08:06:23yugui enters the room.
08:20:27krisps leaves the room.
08:22:22TheVoice leaves the room.
08:24:38imajes enters the room.
08:32:58NoKarma enters the room.
08:35:42olabini enters the room.
08:37:47dysinger enters the room.
08:39:29JonathanT enters the room.
08:40:58bitsweat leaves the room.
08:44:43w1rele55 enters the room.
08:44:47w1rele55 leaves the room.
08:44:53ezmobius leaves the room.
08:49:41Ski1 enters the room.
08:51:20mutle enters the room.
09:00:36naeu enters the room.
09:10:18twbray leaves the room.
09:16:09rue leaves the room.
09:19:15lstoll leaves the room.
09:41:36Fullmoon enters the room.
09:42:07mapar leaves the room.
09:59:00BlackEdder enters the room.
10:16:03michalw enters the room.
10:25:35yugui leaves the room.
10:25:56imajes leaves the room.
10:30:57BlackEdder leaves the room.
10:34:42BlackEdder enters the room.
10:40:47krisps enters the room.
10:41:35krisps_ enters the room.
10:49:20mediogre leaves the room.
10:51:00gnufied enters the room.
10:51:58jtoy leaves the room.
10:53:16chris2 enters the room.
10:59:14yugui enters the room.
11:03:03krisps leaves the room.
11:07:52dysinger leaves the room.
11:12:19krisps_ leaves the room.
11:42:59thehcdreamer enters the room.
11:54:26Cosmos95 enters the room.
11:55:37Cosmos95 leaves the room.
12:03:38qwert666 leaves the room.
12:04:44yugui leaves the room.
12:19:43krisps enters the room.
12:19:44Fullmoon leaves the room.
12:20:06krisps leaves the room.
12:21:09ch0wda enters the room.
12:21:30Yurik enters the room.
12:21:56olabini leaves the room.
12:21:57cezarsa leaves the room.
12:25:30naeu leaves the room.
12:29:40naeu enters the room.
12:30:05yugui enters the room.
12:30:38Fullmoon enters the room.
12:33:09naeu leaves the room.
12:34:17atduskgreg leaves the room.
12:37:19naeu enters the room.
12:43:03NoKarma leaves the room.
12:43:06Fullmoon leaves the room.
12:48:37cezarsa enters the room.
12:57:02chris2 leaves the room.
12:58:16wmoxam enters the room.
13:00:18gnufied leaves the room.
13:08:23vitaliy_ enters the room.
13:14:09wvdschel enters the room.
13:16:05wmoxam leaves the room.
13:16:26gnufied enters the room.
13:20:47binary42 leaves the room.
13:24:52wmoxam enters the room.
13:38:20obvio171 enters the room.
13:41:02brainopia enters the room.
13:42:26gnufied_ enters the room.
13:42:30gnufied leaves the room.
13:48:22obvio171 leaves the room.
13:50:43brainopia leaves the room.
13:51:23brainopia enters the room.
13:55:09mutle_ enters the room.
13:55:42mutle__ enters the room.
13:59:24olabini enters the room.
14:05:24brainopia leaves the room.
14:05:31AndrewO enters the room.
14:05:36brainopia enters the room.
14:05:40brainopia leaves the room.
14:06:20brainopia enters the room.
14:06:31brainopia leaves the room.
14:07:04brainopia enters the room.
14:07:07brainopia leaves the room.
14:11:11mutle leaves the room.
14:12:46mutle_ leaves the room.
14:14:02wvdschel leaves the room.
14:14:06yukito enters the room.
14:15:43blakewatters enters the room.
14:17:10hemulen enters the room.
14:18:20jazen enters the room.
14:20:21qwert666 enters the room.
14:24:46webmat enters the room.
14:26:44checkmark enters the room.
14:27:33robertpostill enters the room.
14:31:40robertpostill leaves the room.
14:34:57mutle enters the room.
14:35:36jacen_ leaves the room.
14:36:08olabini leaves the room.
14:39:36lchin leaves the room.
14:40:00moofbong enters the room.
14:42:35yukito leaves the room.
14:49:22wvdschel enters the room.
14:50:22mkrauskopf enters the room.
14:50:40pauldix enters the room.
14:50:50mutle__ leaves the room.
14:51:59pauldix leaves the room.
14:54:06pauldix enters the room.
15:17:57wmoxam_ enters the room.
15:18:19wmoxam_ leaves the room.
15:25:35twbray enters the room.
15:36:56twbray leaves the room.
15:39:39mkrauskopf leaves the room.
15:59:15enebo enters the room.
16:04:04nicksieger leaves the room.
16:05:45yukito enters the room.
16:06:43wvdschel leaves the room.
16:09:57nicksieger enters the room.
16:16:46yukito leaves the room.
16:16:54Wim__ enters the room.
16:17:41tmornini enters the room.
16:21:40lopex enters the room.
16:38:49twbray enters the room.
16:47:16twbray leaves the room.
16:52:40twbray enters the room.
16:53:55tmornini_ enters the room.
16:53:57tmornini leaves the room.
16:56:29gnufied_ leaves the room.
16:56:54twbray leaves the room.
16:59:28shame leaves the room.
17:00:09twbray enters the room.
17:03:15cschneid_ enters the room.
17:08:32anteaya enters the room.
17:10:35careo enters the room.
17:13:30mutle leaves the room.
17:15:33rue enters the room.
17:16:00brixenwb rue
17:16:08rueHelloes
17:16:18brixenare you east of the pond again?
17:16:28sambo82_ leaves the room.
17:16:57rueNah, just having to use the laptop
17:19:09rueBeen trying a few different solutions for the platform problem
17:22:35brixenahh
17:23:29rueEverything seems to have its downsides
17:26:48rueThe least intrusive seems to be the dichtomy of startup-time vs. later additions
17:27:30binary42 enters the room.
17:28:11krisps enters the room.
17:32:24acfoeken enters the room.
17:41:02thehcdreamer leaves the room.
17:41:18atduskgreg enters the room.
17:41:57stepheneb enters the room.
17:44:24twbray leaves the room.
17:45:55acfoeken leaves the room.
17:46:13Wim__ enters the room.
17:46:16acfoeken enters the room.
17:47:31NoKarma enters the room.
17:50:21yukito leaves the room.
17:51:35krisps leaves the room.
17:51:53twbray enters the room.
18:07:04naeu leaves the room.
18:09:13dbussink leaves the room.
18:11:26shame enters the room.
18:13:27mapar enters the room.
18:16:28stepheneb_ enters the room.
18:16:51squeegy leaves the room.
18:16:57skweegee enters the room.
18:19:29atmos_ enters the room.
18:21:05dlee enters the room.
18:21:32ch0wda leaves the room.
18:21:40xmlhacker leaves the room.
18:22:12ch0wda enters the room.
18:22:20xmlhacker enters the room.
18:27:32blakewatters_ enters the room.
18:27:44enebo leaves the room.
18:31:17stepheneb leaves the room.
18:32:13blakewatters leaves the room.
18:33:48twbray leaves the room.
18:36:59JonathanT leaves the room.
18:41:17Guest60574 leaves the room.
18:41:44cschneid leaves the room.
18:41:56cschneid enters the room.
18:46:42thehcdreamer enters the room.
18:51:08acfoeken_ enters the room.
18:52:07thehcdreamer leaves the room.
18:52:50Wim__ leaves the room.
18:55:43ezmobius enters the room.
18:57:19ezmobius leaves the room.
18:58:47ezmobius enters the room.
18:58:53acfoeken leaves the room.
19:02:00ezmobius leaves the room.
19:02:22mapar leaves the room.
19:02:22atmos leaves the room.
19:02:22anonuser leaves the room.
19:03:34atmos enters the room.
19:03:34anonuser enters the room.
19:04:09loincloth enters the room.
19:06:33dysinger enters the room.
19:12:50twbray enters the room.
19:13:39dfg59 enters the room.
19:13:48thehcdreamer enters the room.
19:17:19dfg59 leaves the room.
19:17:40dfg59 enters the room.
19:17:45wmoxam_ enters the room.
19:18:11wmoxam leaves the room.
19:19:06acfoeken_ leaves the room.
19:19:14djwhitt enters the room.
19:19:31acfoeken enters the room.
19:21:31anonuser leaves the room.
19:21:31atmos leaves the room.
19:24:21atmos enters the room.
19:24:59anonuser enters the room.
19:27:52krisps enters the room.
19:33:24anteaya leaves the room.
19:34:16chopmo enters the room.
19:34:28acfoeken_ enters the room.
19:34:32careo leaves the room.
19:35:39careo enters the room.
19:37:10chop3 enters the room.
19:39:40acfoeken leaves the room.
19:39:42tmornini_ leaves the room.
19:46:06dbussink enters the room.
19:46:12dbussink leaves the room.
19:46:13dbussink- enters the room.
19:46:22fbuilesvWhat's the current policy on updating the libs in StdLibs?
19:47:39drbrainupdating?
19:47:46drbrainreplacing with better versions?
19:47:49fbuilesvdrbrain: yes
19:48:00drbrainonly when backwards compatibility will mostly be maintained
19:48:48fbuilesvyeah, it should be a minor update on rbyaml
19:52:24tarcieriit'd be fun to rewrite net/http so it doesn't suck
19:53:23drbrainfbuilesv: we've got several custom changes in our rbyaml
19:53:39drbrainso you'll probably want to diff the rbyaml tree against its import
19:53:49fbuilesvdrbrain: Oh I see, let me check the log
19:53:56drbrainwe are bad open source developers
19:54:41fbuilesvheh
19:55:10anonuser leaves the room.
19:55:13fbuilesvThere's at least one test case from rbyaml's tree broken, I wonder if it was introduced in those changes or if it's just an older version
19:55:16tarcieribad open source developers foist their code on the community then disappear
19:56:13JonathanT enters the room.
19:56:33anonuser enters the room.
19:56:48evanis there an official rbyaml tree?
19:56:51evani'd be happy to sync them up.
19:56:54fbuilesvevan: yes, on google code
19:57:04evanlets discuss with ola to keep them sync'd then.
19:57:15fbuilesvhttp://code.google.com/p/rbyaml/
19:57:17fbuilesvcool
19:57:24TheVoice enters the room.
19:59:39dfg59 leaves the room.
19:59:39atmos_ leaves the room.
20:01:18dfg59 enters the room.
20:01:34flori leaves the room.
20:03:01anonuser leaves the room.
20:03:37fbuilesvmm fatal: bad default revision 'HEAD' when I do a git log on lib/, any idea of what could be wrong there?
20:04:10krisps leaves the room.
20:04:41enebo enters the room.
20:04:44evanfbuilesv: what command did you run?
20:04:51fbuilesvgit log
20:05:07fbuilesvhttp://pastie.org/paste/213154
20:05:39krisps enters the room.
20:06:07anonuser enters the room.
20:06:22VVSizfbuilesv: if you have no local changes, try 'git co master'
20:06:45fbuilesvby co you mean checkout I guess?
20:07:03VVSizyeah, I have a shortcut for chekcout :)
20:07:11fbuilesvAlready on "master"
20:07:17ezmobius enters the room.
20:08:09chr1s enters the room.
20:08:11chr1shey all!
20:08:33VVSizfbuilesv: how about this one: git reset --hard master
20:08:44chr1sis there a simple way I could see the bytecode generated by rubinius (in an ascii form)
20:08:46chopmo leaves the room.
20:09:02fbuilesvVVSiz: nope
20:09:26fbuilesvI'm running all of this in the main dir. btw
20:09:36VVSizright
20:12:13imajes enters the room.
20:12:14flori enters the room.
20:13:15VVSizfbuilesv: how about this: 1) git co origin/master 2) git co master
20:13:50fbuilesvVVSiz: nope
20:14:08VVSizwell, then backup your current repo, and clone a new one :)
20:14:10fbuilesvis lib working fine for you? I could just get it again and see what's wrong with it
20:14:11fbuilesvya
20:15:54evanchr1s: sure.
20:16:08evanchr1s: if you already have it compiled, you can do
20:16:15evaner. this is easiest:
20:16:18evanmeth = def a
20:16:19evan ...
20:16:20evanend
20:16:23evanputs meth.decode
20:22:03boyscout1 commit by Eric Hodel
20:22:04boyscout * Add some RDoc to Rubinius classes that didn't have any. pair: Evan Phoenix; 70b9ce8
20:24:23chr1sevan: could I also do something like '1+1'.decode
20:24:36wycats leaves the room.
20:24:41chr1sI saw the Compiler class on the wiki, but that doesn't seem to exist in my version of rubinius
20:25:01evanchr1s: it should.
20:25:08evanit's available everywhere.
20:26:01chr1sevan: I'll paste a short session
20:26:04evanok.
20:26:17evanlet me work up a short method for ya too.
20:26:35chr1s[chris@gamma] rubinius-daily → shotgun/rubinius
20:26:35chr1sirb(main):001:0> Compiler
20:26:35chr1s=> nil
20:26:46evannil? thats... od.
20:27:01evand
20:27:02evando
20:27:06evanrequire 'compiler/compiler'
20:27:26chr1syes, that works. weird.
20:27:32chr1sit's today's build
20:27:37loopstrangely doesnt say that it's missing, but that it's nil
20:27:41evanyeah.
20:27:51evani did some work at one point to let the system load 2 compilers at the same time
20:27:56evanperhaps that introduced some weirdness.
20:28:16loopmaybe 'Compiler' hardcoded somewhere?
20:28:19evanit's best to just use
20:28:26evanCompile.compile_string "1 + 1"
20:28:34evanthat uses the kernel's Compile module methods
20:28:39evanwhich lets it manage the compiler for ya
20:28:50evanlooks like I broke compile_string raw though.
20:28:58evanit's expecting an eval environment.
20:29:09chr1sevan: yes, it looks like it's broken.
20:29:25acfoeken_ leaves the room.
20:29:29evanI should fix taht.
20:29:44evanif you put that code into a file, it's easy though.
20:30:01elight leaves the room.
20:30:12evancm = Compile.compile_file "path"
20:30:14evanputs cm.decode
20:30:58evanthis is pretty easy to fix
20:31:00evan one sec.
20:31:27chr1sevan: thanks
20:32:54chr1sevan: that's great, this works like a charm.
20:33:24chr1sI'm going to write a simple compiler tutorial for the ruby folks out there
20:33:41evancool!
20:33:42rubuildius_amd64Eric Hodel: 70b9ce855; 2377 files, 7770 examples, 26834 expectations, 1 failure, 1 error; http://rafb.net/p/DFhJBM82.html
20:33:59chr1sI'm just going to do a very simple language and target rubinius
20:34:05evanoh fun!
20:34:17evancheck out lib/compiler/compiler.rb
20:34:28evanif you construct a sexp, you can just feed it to the Compiler
20:35:49boyscout1 commit by Evan Phoenix
20:35:50boyscout * Support compiling a string with no context; 3c9dbc9
20:35:55evanchr1s: there ya go
20:36:02evancm = Compile.compile_string "1 + 1"
20:36:04evanshould work now.
20:36:34chr1sevan: that's awesome, thanks
20:36:46chr1sevan: I would rather do it bytecode based
20:36:52evanok
20:36:53chr1sso feed the 'assembly' code
20:37:17evanyou can just call methods on Compiler::Generator to build up the bytecode
20:37:22evanthats the easist way
20:37:27chr1snice
20:37:29evanbecause it will track labels for you
20:37:38chr1scool! that's handy
20:37:52chr1swell, I'm going to play around with it and see what I can come up with.
20:37:57evanok.
20:38:06chr1sI'll let it know once it's done
20:38:09chr1sthanks for your help!
20:38:13evanno prob.
20:38:19wmoxam_ leaves the room.
20:38:24wmoxam enters the room.
20:38:28chr1sis away now.
20:39:12evanbrixen: you around?
20:41:55twbray leaves the room.
20:48:16boyscout2 commits by Eric Hodel
20:48:17boyscout * Basic RDoc for kernel/platform. pair: Evan Phoenix.; 57e2fc3
20:48:18boyscout * Add doc:rdoc task; 1c015aa
20:48:40rubuildius_amd64Evan Phoenix: 3c9dbc9c3; 2377 files, 7770 examples, 26834 expectations, 1 failure, 1 error; http://rafb.net/p/98L0mW68.html
20:48:51dysinger leaves the room.
20:49:52ezmobiusevan: the -dc flags to rbx don;t seem to work anymore
20:50:42acfoeken enters the room.
20:51:13elight enters the room.
20:52:10evanlight enters the room.
20:52:12imajes leaves the room.
20:52:17rueCode dumping flag?
20:52:24ezmobiusyeah
20:52:32ezmobiusif you do "rbx -dc irb"
20:52:39ezmobiusit says [Compiler debugging enabled]
20:52:48ezmobiusbut it does not spit out the sexp or bytecodes anymore
20:53:26imajes enters the room.
20:56:38dbussinkezmobius: how about describe then?
20:56:58ezmobiushow do i call describe? just rbx describe foo.rb?
20:57:02chop3 leaves the room.
20:57:02dbussinkyeah
20:57:05MaledictusAnybody else seeing the Dir.glob spec failing?
20:57:07ezmobiuscool
20:57:54dbussinkMaledictus: which one exactly?
20:58:08MaledictusDir.glob orders directory-based entries before files when a glob matches both
20:58:43rubuildius_amd64Eric Hodel: 57e2fc37f; 2377 files, 7770 examples, 26834 expectations, 1 failure, 1 error; http://rafb.net/p/lDVd4082.html
20:58:43dbussinki've seen that one too on certain linux systems
20:58:47chopmo enters the room.
20:59:08acfoekendbussink: singstar ...
20:59:35dbussinkacfoeken: what's up with that? :)
20:59:38elight leaves the room.
20:59:53acfoekendbussink: I have to endure it right now! :'(
21:00:02olafskisounds fun
21:00:25Maledictusdbussink: yeah, I thought that is OS dependant. Otherwise rubuildius would fail too
21:00:45dbussinkMaledictus: just like those nasty iconv specs
21:02:19dbussinkMaledictus: probably need to explicitly order them
21:02:28dbussinkMaledictus: mri does work correctly?
21:02:32ShayArnett enters the room.
21:02:39Maledictusoh, I'll check that
21:04:04rueezmobius: I think I see where -dc got disabled, although describe pretty much does the job anyway
21:04:22anonuser leaves the room.
21:04:22TheVoice leaves the room.
21:04:22hemulen leaves the room.
21:04:22rubuildius_ppc leaves the room.
21:04:22jp_tix leaves the room.
21:04:22rudebwoy leaves the room.
21:04:22ko1_away leaves the room.
21:04:29ezmobiusno biggy, maybe we shoudl remove -dc from the rbx --help command
21:04:52rueMaybe should use an actual option parser even :)
21:04:59dbussinkhmm, describe is failing for me
21:05:07dbussinkNo method 'parse_flags' on Compiler (Class) (NoMethodError)
21:05:40rueWeird error
21:05:56Maledictusdbussink: I forgot howto test against mri... what's the quickest way?
21:06:15dbussinkMaledictus: ./bin/mspec -tr spec/file.rb
21:06:25ruedbussink: Although I do not see that method anywhere
21:06:46TheVoice enters the room.
21:06:46hemulen enters the room.
21:06:46rubuildius_ppc enters the room.
21:06:46jp_tix enters the room.
21:06:46ko1_away enters the room.
21:06:46rudebwoy enters the room.
21:06:59elight enters the room.
21:07:25dbussinkrue: http://pastie.org/213215
21:07:41rueMaybe in the move from describe.rb to describe
21:08:07Maledictusah, ok. so mri fails too
21:08:16ruePlus it got reverted to the less complete describe at some point too
21:08:44dbussinkMaledictus: then the spec is probably wrong :)
21:08:50DefilerWe have all the infrastructure to trick it out again though
21:08:55DefilerIt just needs doing
21:09:14DefilerWe've always had too many little tools
21:09:23DefilerWe should probably focus on a couple and polish them up instead
21:09:42Maledictusdbussink: yep
21:10:02Maledictusok, and I get some ivonc errors with mri. But they are not counted in the stats
21:10:14anonuser enters the room.
21:10:19rueDefiler: Well, many little tools is fine.. many little tools, some of which do the same thing, in several different places is what we have had problems with :)
21:10:25dbussinkMaledictus: hmm, same errors as on rubinius? or others once again?
21:12:39MaledictusI'll check
21:15:28Guest25538 leaves the room.
21:16:34Maledictusdbussink: ok, mri fails because iconv wasn't installed. now it works
21:17:29Maledictusrbx gives an error but a different one then the latest from the latest rubuildius:
21:17:32MaledictusIconv.charset_map returns nil when given an unknown encoding name ERROR
21:17:32MaledictusNoMethodError: No method 'charset_map' on Iconv (Class)
21:17:57naeu enters the room.
21:18:08bitsweat enters the room.
21:21:00dbussinkMaledictus: yeah, that method is simply missing on some platform, but mri implements in the extension itself
21:21:47imajes leaves the room.
21:22:24imajes enters the room.
21:25:10Maledictusok, thank you
21:33:45imajes leaves the room.
21:34:25imajes enters the room.
21:38:23twbray enters the room.
21:38:47acfoeken leaves the room.
21:45:20seydar enters the room.
21:45:36Maledictus leaves the room.
21:45:59seydarso please /smack me if this is a dumb question, but what are people planning on doing to improve rubinius performance without writing everything in C?
21:48:22djwhittjit
21:48:26djwhittinlining
21:49:15ezmobiusllvm
21:49:24seydarah, llvm. that was the big one.
21:49:25dbussinkseydar: someone starting working on a inliner written in ruby
21:49:26djwhittllvm will help with jit and dispatch I think
21:50:00seydarwhat makes ruby/rubinius method dispatch take so long?
21:50:32ezmobiusit has to do a lot of work to climb up the ancestor chain to find methods
21:50:32djwhittheh, it doesn't take "so long"
21:50:45djwhittoh Ruby in general you mean?
21:50:51djwhittsorry, misread
21:51:30dbussinkseydar: in rubinius it's a lot cheaper then mri afaik
21:51:36djwhittwhen I said dispatch above I meant bytecode dispatch btw ... perhaps there's another term for that
21:51:41seydaris it wrong to represent object as pretty low level structs? with methods just hash tables, and subclasses having the ancestors hashtables "pointered" in?
21:51:49dbussinkseydar: but not doing it at all is still faster of course
21:52:00seydarso is dispatch at all a problem in rubinius?
21:52:39dbussinknot that big of a problem
21:52:46seydarsweet sauce
21:53:00seydarso what is rubinius' current large bottleneck? just the VM is slow?
21:53:56seydaror is this something _I_ could find out?
21:54:03djwhittRubinius has more Ruby code so it has to execute Ruby quite a bit faster in order to beat them in overall performance
21:54:06djwhittthat's one thing
21:54:14dbussinkyou can run some of the micro benchmarks that test various things
21:54:15djwhittthem being other implementations
21:54:22dbussinkstrings are still pretty slow
21:54:29dbussinkffi is really slow too
21:54:49seydari really hope rubinius stays in ruby. I love being able to look things and see ruby
21:54:57dbussinkof course they will
21:55:14dbussinkoptimization by turning stuff into c / c++ is definitely not the way we want to go
21:56:08nexcastellanStrings in rubinius are always exactly the requested length, correct? Would be worth looking into capacity vs. length as per MRI. I haven't checked Rubinius's underlying array, though, to see if that allocates more than was strictly requested.
21:57:29imajes_ enters the room.
21:57:46dbussinknexcastellan: dunno, but if you want to play with things, there is a benchmark in benchmark/rubinius/bm_string.rb that you can run
21:57:55dbussinkit also shows a huge difference between mri and rbx
21:58:15nexcastellanThanks, dbussink. I'd love to get strings faster. Busy with other things at the moment, but I'll add it to my list of things to look at.
21:58:56hoopycongrats on the rails run
21:59:06hoopydidn't know you guys were that far along
22:01:19ezmobius leaves the room.
22:03:58imajes leaves the room.
22:07:48seydarhow long does bin/mspec ci take for people?
22:08:46djwhittrubuildius_amd64 seems to be coming in at around 248 seconds these days
22:08:54fbuilesvseydar: around 100s, ~45 if using -j
22:09:22djwhittrubuildius is building from scratch though, so that includes compiling the specs
22:09:32seydarok
22:09:34seydarwell last i checked
22:09:35fbuilesvtrue
22:09:50blakewatters_ leaves the room.
22:09:55seydarit was like 600+ sex for me
22:09:58seydarsex*
22:10:04seydarsec**
22:10:08seydarfreudian slip
22:10:10loop:-)
22:12:12yugui leaves the room.
22:13:28JonathanT leaves the room.
22:13:42wvdschel enters the room.
22:15:26seydarbtw, congrats! because rubinius so far hasn't had a single error on Tiger/PPC, the bastard child which nobody likes
22:25:19seydaryea, mspec just took 655 seconds for me. something is weird.
22:25:47brixenseydar: are you using the --turbo option?
22:25:54shame leaves the room.
22:26:01seydar... no... should I?
22:26:16brixenoh wait, we don't have a --turbo option, my bad :P
22:26:34djwhittseydar: what speed is your machine
22:27:07brixenseydar: you can run it like so: bin/mspec ci -V and let us know which files are particularly slow
22:27:22brixenthe bigdecimal specs crawl in a few places
22:27:33seydartop of the line 1.25 GHz PPC G4, with 512 RAM
22:27:45wmoxam leaves the room.
22:27:59djwhittseydar: might not be anything wrong then
22:28:13seydarooh, thats a low blow
22:28:43djwhittseydar: well, just sayin' rubuildius_amd64 is a 2.1GHZ dual core machine with 2GB of RAM
22:28:56djwhittseydar: and the specs aren't exactly speedy on there
22:29:37seydarshould i upgrade my box? is it worth it?
22:30:24djwhittspeaking of rubuildius, I wonder what happened to ppc ...
22:30:46djwhittthe bot is in the channel, but I haven't seen any runs from it in a while
22:32:17djwhittcremes, cremes__: you might want to check on the bot sometime seems like it hasn't reported in in a while
22:34:33seydarEY should hold another hackfest in NY soon
22:34:42seydarand provide laptops for people who dont have one
22:35:59imajes_ enters the room.
22:37:56AndrewO leaves the room.
22:39:18cremesdjwhitt: going home now... i'll take a look when i get there
22:39:34djwhittcremes: cool, thanks
22:41:59dbussink leaves the room.
22:50:46imajes leaves the room.
22:52:51seydarhave a good day everyone
22:53:05seydardin din + scouts awaits
22:53:26vitaliy_ enters the room.
22:54:02kw enters the room.
22:57:58thehcdreamer leaves the room.
23:00:35moofbong leaves the room.
23:01:58kw leaves the room.
23:02:54cezarsaevan: hi evan
23:03:02evanhi there
23:03:08cezarsaevan: i'm trying to figure out how rb_proc_new would look like in rubinius, any clues?
23:03:28evanhrm.
23:03:37evanit takes a function pointer, doesn it?
23:03:49cezarsayes, and returns a Proc
23:04:27evanit's going to take a little work
23:04:30evanbut doable.
23:04:51chopmo leaves the room.
23:05:26dgtized leaves the room.
23:05:41evanoff, hand, the most hacky way to do it is:
23:05:50evangiven the function pointer, create a NativeMethod object.
23:06:01evanthe same kind of object created when rb_define_method is used.
23:06:29evanthen, create a Proc, and install the new NativeMethod in the #call slot of it's metaclass
23:06:46evansomething like:
23:06:50webmat leaves the room.
23:06:55evandef Proc.from_native(nm)
23:07:00evan pr = allocate()
23:07:13evan pr.metaclass.method_table[:call] = nm
23:07:16evan return pr
23:07:16evanend
23:08:03evanthe only trouble might be argument handling.
23:09:30evanok, looks like it's called like a splat.
23:10:53cezarsahm, it seems to be more complicated then I thought :)
23:11:02cezarsaI'll read more code on NativeMethod and try to handle this
23:11:03evanyeah, it's going to be
23:11:09evanok.
23:11:14evani can help to.
23:11:15evantoo.
23:11:54evanit's more difficult because, for the most part, the subtend code is organized around the idea that you hook up a C function as a method
23:12:13evanbut rb_proc_new lets a C function be used in an entirely different context.
23:12:20DefilerWe should just expose native functions as procs in general. Heh
23:12:30evannah
23:12:35evanthat would be very wasteful.
23:12:53DefilerWe just need cheaper gas and that will be fine
23:13:17cremes djwhitt: looks like rubuildius_ppc is okay; maybe it hasn't reported because no one has committed anything
23:13:22evancan't we just run it on peanut oil?
23:13:34DefilerThat smells yummy
23:13:53djwhittcremes__: ok, I could have sworn there was a build that amd64 ran that ppc didn't pickup, but I could be wrong
23:14:09rubuildius_ppc leaves the room.
23:14:25rubuildius_ppc enters the room.
23:15:17cremesi'm looking back through the buffer here and i see reports from boyscout that did not get processed by rubuildius_ppc; just restarted it for kicks
23:16:13djwhittcremes__: k
23:16:21djwhittcremes__: cron job is still there too right?
23:17:21cremesdjwhitt: yep
23:17:53djwhittcremes__: ok, I guess we'll see next time someone commits. thanks for checking
23:18:02cremesdjwhitt: every 2 minutes it gets a USR2 signal
23:18:59thoughtfiz leaves the room.
23:22:50Defilerisn't rb_proc_new just an rb_funcall to a flavor of attach_function, really?
23:23:04DefilerThat does some extra work by creating a proc to wrap the method call
23:25:11ch0wda leaves the room.
23:25:39Arjen_ enters the room.
23:25:54ezmobius enters the room.
23:37:02nexcastellanPatch for review: http://users.nexopia.com/uploads/3233/3233577/rubinius/0001-gem-extension.patch (more)
23:37:26nexcastellanhttp://groups.google.com/group/rubinius-dev/browse_thread/thread/d2efc177d44f36a0 explains what I'm looking for. :)
23:40:35DefilerWhoa, has_value?
23:40:41DefilerWhich thing needs that?
23:40:50DefilerSo far this looks totally right to me, though
23:41:06nexcastellanjson, most likely. :) json and rmagick were the two real pain-in-the-asses.
23:41:09DefilerIn the case of rb_path2class, there are some Ruby methods in the kernel that might be easier to funcall
23:41:11pauldix leaves the room.
23:41:16Defilerthan to implement the logic there
23:41:59explody enters the room.
23:42:15Defilerconst_path_defined? is what I was thinking of, and I guess it doesn't really expose a path2class-compatible API
23:42:38nexcastellanIt wasn't clear to me when it was best to do rb_funcall and when to reimplement the functionality. If you can give me a rule-of-thumb, I'd appreciate it. I'm thinking the rule is going to be more or less "when you can", but I didn't know that when I started.
23:43:00DefilerI think 'whichever is easier to implement' is the rule of thumb for the moment
23:43:16DefilerSince we don't have any performance data it is hard to worry about that
23:43:59nexcastellanHahaha. Premature optimisation and all that. :)
23:46:49naeu leaves the room.
23:49:54vitaliy_ leaves the room.
23:50:29Defilerhttp://www.iht.com/articles/2008/06/11/business/11suits.php
23:50:39DefilerThis is pretty interesting, though totally unrelated :)
23:53:29shame enters the room.
23:53:51blakewatters enters the room.
23:54:11dfg59want to get back involved a bit, where's the best place to look right now for helping with upcoming milestones? just took a look at lighthouse
23:54:23cezarsanexcastellan: still there?
23:54:47Defilerdfg59: We could use a bunch of testing of the binaries and installers
23:55:07nexcastellancezarsa, yeap, for a few more minutes. :)
23:55:10Defilerdfg59: Making sure that "rbx blah" does the right thing after you install a "blah" gem with a binary stub etc
23:55:22DefilerThat seems like something we just can't trust automated tests for and it is pretty new
23:55:23stepheneb_ leaves the room.
23:55:33dfg59Defiler: hrmm, ok, is there an open ticket where i can look for more info?
23:55:37cezarsanexcastellan: it seems like RHASH isn't copying data back to subtend
23:55:57Defilerdfg59: I suspect it is now a closed ticket, now that those features have been implemented.. but let me find it
23:56:05cezarsaso if some extension change rhash->tbl to another place subtend will never know about that
23:56:06nexcastellancezarsa, you are right, nice catch. Bonus points if you send me a patch to fix it. ;-)
23:56:22dfg59Defiler: sweet, and are there gems in particular that rubinius can run that we're interested in?
23:56:38drbraindfg59: rubinius runs rake
23:56:49dfg59drbrain: gotcha
23:56:56cezarsai could work out on this, but not now, it would be a lot like RSTRING and RARRAY
23:56:56drbrainrbx rake clean; rbx rake spec would be a good test :)
23:57:17Defilerdfg59: thse two..
23:57:19Defilerhttp://rubinius.lighthouseapp.com/projects/5089/tickets/591-gem-stubs-aren-t-executable
23:57:24Defilerhttp://rubinius.lighthouseapp.com/projects/5089/tickets/599-cleanup-bin-shotgun-rubinius-etc
23:57:37Defilerboth now resolved, but shows you how recent it is
23:57:40dfg59drbrain: does rbx remove the -S argument? no need to do rbx -S rake
23:57:48dfg59Defiler: thanks
23:57:52DefilerWe don't support -S yet I don't think
23:57:56DefilerWhich may be a problem
23:57:58dfg59k
23:58:07drbrainrbx rake should not look at shebang
23:58:15dfg59i see
23:58:17drbrainyou should be running rubinius rake at that point
23:58:19nexcastellandfg59, with my uncommitted patch (http://groups.google.com/group/rubinius-dev/browse_thread/thread/d2efc177d44f36a0) adds support for a number of extensions.
23:58:37nexcastellanSix or so. :)
23:58:58nexcastellanAny fixes to that patch or any more extensions you can get working is definitely appreciated. :)
23:58:59Defilerdfg59: You could try testing that, as well.
23:59:08DefilerI guess it just feels like we need a round of QA before the release
23:59:26dfg59sure, that's exactly what i wanted to know
23:59:34dfg59i'll take a look at some of these things when i get off work tonight