Index

Show enters and exits. Hide enters and exits.

00:35:05headiusevan: you don't have ObjectSpace._id2ref, do you
00:35:23evannot atm, no.
00:35:39evanstill need to add support for it
00:35:48headiushow will you implement it?
00:36:18headiusI'm considering allowing it to be disabled, so Object#object_id doesn't require us to synchronize and track weakrefs to objects
00:36:27evanwell, since it uses object_id
00:36:34evanyeah, use a weakmap
00:36:56headiusI think people use it without realizing what it does behind the scenes
00:36:56evancould really penalize people
00:37:02evanand use the GC to find the object :D
00:37:16evancourse they do
00:37:17headiusit's only used in a handful of places in stdlib and all the gems I have installed
00:37:34evanit's also nondeterministic
00:37:41evansomething people don't seem to grasp
00:37:49evanso in that way
00:37:51headiusright
00:38:00evani guess a valid implementation of _id2ref jsut returns nil for everything
00:38:42evansince it's nondeterministic
00:38:47headiusI don't think that would necessarily be valid, since it should return the object if it's alive
00:39:01evannot true
00:39:01headiusI would have a flag or property to enable it and error if someone uses it without that flag
00:39:07evanit returns whatever object has that id
00:39:10evanand since MRI reuses ids
00:39:12evanit could be anything
00:39:51headiusI really need to look at using jvm debugging stuff to implement some of these pieces
00:39:56evanmaybe i'll implement it using a transative closure
00:40:01evanover all objects in the system
00:40:03headiusthen they'd be there and only have a cost with debug stuff enabled
00:40:38evanthe latest GC work had me refactor the transitive closure code
00:40:52headiusoh?
00:40:56evanso i can easily do a TC and do whatever I want
00:41:15evanhehe
00:41:17evani'm going to do that
00:41:20evanmaybe i'll do it now
00:41:24headiusI don't follow
00:41:39evanwhen you call _id2ref(2)
00:41:46evanit walks every object in the system
00:41:54evanlooking for an object that is tagged as having id 2
00:42:39evanI store object_id in an ivar now
00:43:19headiusit doesn't return anything you haven't called object_id on right now for us
00:43:45evansame for me
00:43:50evanit's lazy
00:44:03evanif you feed it random numbers
00:44:06evanit returns nil
00:44:09evanunlike MRI
00:44:10evan:/
00:45:34headiusyeah, so do we
00:45:41headiusdidn't know it raises a RangeError for that
00:46:12evanhuh
00:46:12evanyep.
00:47:37headiusheh, if the object associated with the ID has been collected, then it returns nil
00:48:07headius1M calls to Object#object_id improves from 0.38s to 0.17s if I turn off the magic ID stuff
00:48:30evanwhats the magic ID stuff?
00:48:34evankeeping the map?
00:52:48headiusyes
00:56:11evanso does _id2ref not work then?
00:59:06headiusif I disable the map stuff, yes
00:59:25headiuser, correct...it would no longer work unless turned on
01:01:51boyscoutRemove dead instructions - 2b39487 - Evan Phoenix (llvm-jit)
01:01:51boyscoutSensible MetaClass#inspect - 4e65917 - Evan Phoenix (llvm-jit)
01:01:51boyscoutA whole bunch more instructions - 693a615 - Evan Phoenix (llvm-jit)
01:12:08brixenpretty cool http://www.wolframalpha.com/screencast/introducingwolframalpha.html
01:23:26headiusbrixen: yeah, that's sweet
02:08:11craftermhi all!
02:15:39evanhey!
02:15:42evanjust headed to get some dinner!
02:15:42brixenhey crafterm, how goes it down under?
02:16:01craftermhi evan, brixen!
02:16:11craftermall going well, arrived back in .au just a few days ago
02:16:21craftermhow are you guys going? missing all the fun in Vegas yet?
02:16:46brixenhaha
02:16:54brixenyou just had to mention that :P
02:17:27brixengoing well
02:22:24craftermwas good fun, missing the trip already! :)
02:22:53craftermgood chat at the 'freakin frog' too brixen - enjoyed hearing about the new rubinius internals
02:27:24brixencool
02:27:42brixenmore "internals" coming soon :)
02:48:28craftermcool mate :)
02:48:52craftermwe'll have to follow up on having another sprint mate! would be awesome to get some more details from you guys to give back into the source
02:49:47brixensure
02:49:55brixendid you see we have a roadmap?
02:50:01slavaurl?
02:50:20brixenhttp://rubini.us/roadmap.html
02:50:21craftermhaven't seen the roadmap mate - where's that?
02:50:37brixenit's a bit in progress, but those are the broad strokes
02:50:43craftermperuses the roadmap!
02:50:44slavaoh i see
02:51:29ddubwhere we're going, we won't need roads
02:52:35brixen^5s ddub
02:52:36crafterm:)
02:52:46brixengood point ddub
02:57:52ddubeverything I ever needed to know I learned from Back to the Future
08:44:42rueddub_: Will have become to learn?
08:49:30scooprhowsit going?
09:51:55rueEh
17:43:32eneboWTF: http://jira.codehaus.org/browse/JRUBY-3646
17:43:54enebooh I see
17:43:55eneboheh
17:44:00eneboyuck
17:46:54brixenenebo: any chance of getting the code that uncovered that?
17:47:20eneboLike the real-life case versus the test case provided?
17:47:25brixenright
17:47:43eneboI can add a comment asking him if it is a library or his own private stuff
17:47:50brixenthat would be cool
17:48:06brixenwhen writing rubyspec, sometimes it's hard to imagine such cases :)
17:49:20eneboyeah. and I think this one will not be so hard to fix, but we will need to change every occurance of this pattern
17:49:33eneboIt also makes me wonder how many other core classes do this sort of thing
17:49:41brixenyeah
17:49:51brixenwould be good to get this covered in rubyspec
17:49:58eneboyep
17:51:27marcandresome of these cases are covered by rubyspecs.
17:51:51marcandreIn my last blog, I asked 12 such examples, for the array class.
17:52:03marcandreSome are downright nasty.
17:52:15brixenyeah
17:52:37marcandre(my_a+my_a).class != (my_a * 2).class
17:54:08marcandreOh, here it's even more subtle though. The class is Ok but the initialize wasn't called. Anyways.
18:13:39evanwow
18:13:45evanthat Array#uniq bug
18:13:49evanthats so stupid
18:14:09evanwhy in the world would you depend on the fact that uniq clones
18:18:33brixenalas, the world is made of mystery
18:18:38evanno seriously
18:18:49evanthat seems like a mis-feature
18:18:56evancompletely unintended
18:19:00brixenyep
18:19:18brixenbut if there is a difference in behavior, it's likely some code depends on it
18:19:28evanaccidental code
18:19:44brixenthe difference between clone and dup seems mostly unneeded to me
18:20:01brixenyeah, accidental
18:20:23brixenbecause so much is ad hoc and obscure with no explicit spec
18:21:51brixenlook at the specs for Hash#key?
18:22:13brixencompared to how Hash normally matches a key
18:22:35brixenbtw, I've got cuckoo hash passing the specs
18:22:42brixentrying to get it running in rbx now
18:24:30evanyay
18:25:02brixenthis mix of 1.8.6 and 1.8.7 just sucks
18:25:05brixenI hate ruby
18:25:08brixen:)
18:25:11evanwhat mix?
18:25:18brixenjust having them both
18:25:32evanso 1.8.7's very existance
18:25:36brixenyeah
18:25:59brixenplug-n-play with a core data type is a pita
18:26:18brixenexacerbated by having these extra files now
18:26:58evanah.
18:27:02evanso it's that thing.
18:27:03evan:?
18:27:04evan:/
18:27:37brixenwell, the 4 competing versions of ruby just makes everything more complicated
18:27:46brixenwhere is the benefit?
18:27:50brixenbeats me
18:28:19evanyeah
18:29:19brixenlet's just make it 7 and name them after the dwarves
18:29:54evanheheh
18:30:18brixenactually, there are about 7: 1.8.6, 1.8.7, 1.8.8, 1.9.0 1.9.1 1.9.2
18:30:40brixenand if you think I'm kidding about the 1.9 series, think again
18:30:56evandoc, sneezy, grumpy, bashful, sleepy, and ....
18:30:58brixenpeople are posting bug comparing 1.9.0 behavior to 1.9.1
18:31:07brixenand 1.9.2 is the "dev" version
18:34:33scooprrbx is snow white, then?
18:35:21brixenahh dur, I was using the multi-arg version of attr_accessor
18:35:46brixenso, just ran the Hash specs with the cuckoo version *replacing* the old Hash
18:35:48brixensweet
18:35:59brixenscoopr: heh, exactly! :)
18:55:39manverubrixen: just skip 1.9.0...
18:55:54brixenmanveru: oh, I do
18:55:56manverui doubt anybody can run stable on it anyway
18:56:10brixendoesn't mean it isn't adding to the (unnecessary) confusion
18:56:13manveruand 1.9.2 isn't out yet
18:56:25brixenbut it will be
18:56:27brixen:)
18:56:40manverusure, there will be N versions :P
18:57:03manverubut you only have to target the ones mostly in use
18:57:22manverunobody can cover all the crazy variations of the MRI guys
19:42:41brixenwb boyscout
19:43:21evanwhere did boyscout go...
19:43:38evanweird
19:43:40evannetsplit I guess
19:44:00brixenahh yep
19:44:03brixenabout 2 hrs ago
20:41:27rueGoogle assimilated it.
21:56:34HaPKHey, people. Just cloned rubinius repository, built it, bin/mspec ci and it says "Tried to use non-reference value 0x1a as type Fixnum (19) (TypeError)". How can I fix this ?
21:57:52brixenhmm
21:58:28brixenwhat platform?
21:59:16HaPKOS X (Intel)
21:59:30brixendid you have rbx installed before?
21:59:30HaPK10.5.7
21:59:32evanHaPK: thats off a fresh clone?
21:59:42HaPKevan: yes
22:00:14HaPKbrixen: no, as far as I remember
22:00:25evanhm
22:00:32evanyou shouldn't get anything like this then...
22:00:38evanum..
22:00:55brixenI haven't upgraded yet, but I could
22:00:59HaPKevan: can I somehow check if there are traces of old rbx in my system ?
22:01:09brixenyou could try which rbx
22:01:16evanHaPK: look for any .rbc files
22:01:17HaPKwhich rbx shows nothing
22:01:27HaPKevan: where ?
22:01:33evananywhere
22:01:38evanuse spotlight
22:03:13HaPKevan: well, spotlight shows plenty of .rbc files, but they all are from Rubinius directory
22:04:03evanremove them all.
22:04:08evanthen build again
22:05:48HaPKevan: I have found /opt/local/lib/ruby/gems/1.8/gems/packet-0.1.5/lib/packet.rbc
22:06:13evanweird.
22:06:21evanlooks like someone packaged a .rbc file
22:06:27evanprobaby on accident
22:06:38HaPKevan: probably
22:06:52HaPKevan: I have deleted all .rbc files and doing "rake build" now
22:07:01evank
22:07:34HaPKevan: same thing
22:07:50evanhmr.
22:08:06evanwhats gcc --version
22:08:08evanfirst line only
22:08:24HaPKevan: i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5488)
22:08:39evanhrm
22:08:42evandoes
22:08:43evanbin/rbx -v
22:08:44evanwork?
22:08:56HaPKevan: yes
22:09:09HaPKevan: it shows "rubinius 0.11.0-dev (ruby 1.8.6) (693a6155c 12/31/2009) [i686-apple-darwin9.7.0]"
22:09:16evanok
22:09:17evanhm.
22:09:54evanHaPK: do you get a backtrace with the TypeError?
22:10:00HaPKevan: yes
22:10:03evanoh
22:10:04evanpastie it
22:10:32HaPKpastie: hit me
22:10:43HaPKhey, how does this work ?
22:10:49evanasking pastie?
22:10:51evannever works for me.
22:11:19brixenpastie: yo
22:11:28pastiehttp://pastie.org/478501 by HaPK.
22:11:31brixenit pm's you a link
22:11:52HaPKbrixen, yeah, just figured it out
22:11:57HaPKthanks
22:12:17evan.....
22:12:22evanwhy is the profiler running...
22:12:44HaPKevan: dunno
22:12:50brixenthat's weird
22:12:55evanthats... bizarre
22:13:04evanHaPK: run 'env' and pastie the output
22:13:15brixenupgrading, brb...
22:13:24evanthat looks like an error in the profiler
22:13:26evanis my guess
22:13:28HaPKpastie: one more time
22:13:36evantrying to treat a nil as a Fixnum
22:14:06pastieevan: http://pastie.org/478506 by HaPK.
22:14:22dgtizedboyscout ran away again?
22:14:37evanum.
22:14:39evandid it?
22:14:45evani'll restart him
22:14:56evanyeah, he crashed :/
22:22:57slavahi evan
22:23:12boyscoutCI: 2e866ab success. 2684 files, 10335 examples, 32880 expectations, 0 failures, 0 errors
22:23:35evanslava: allo
22:24:18HaPKpastie: ping
22:25:00rueThat is the error on 4.2
22:25:28pastiehttp://pastie.org/478522 by HaPK.
22:25:29rueHaPK: You should be able to do a build:debug without problems if the issue is the same as I saw
22:26:17evanwhy the fuck is the profiler running
22:26:19HaPKevan: I have tried doing bin/mspec spec/ruby (after rake rubyspec:update)
22:26:19evanbrixen?
22:26:28rue-O2 seemed to be the cause of the breakage, but I never investigated further
22:26:36evanrue: he's on gcc 4.0
22:27:42brixenevan: no idea
22:28:07brixenHaPK: you have no local changes?
22:28:20HaPKbrixen, no, just checked it out
22:29:44HaPKbuilds debug version
22:30:29brixenI just upgraded to 10.5.7 and doing a clean build
22:31:09brixenHaPK: try full/path/to/vm/vm ./mspec/bin/mspec-run -h
22:31:39HaPKbrixen: will do once it finish building
22:32:20brixenHaPK: what do you have customized in your env?
22:32:30ruemarcandre: Minor request for commit messages, can you stick in an "implemented"/"fixed"/"specced"/etc. whichever applies? I always get confused when I just see "1.8.7: IO#each" etc. :P
22:36:01HaPKbrixen: I have pastied my env variables 10 minutes age. You can check them
22:36:02brixenHaPK: for example, what is your PATH?
22:36:08brixenlink?
22:36:15brixenI was upgrading to look at your issue
22:36:37HaPKbrixen: http://pastie.org/478506
22:39:00rueSame error on 4.2 in 10.5.7
22:39:15rueDouble-checking build:debug and 4.0
22:39:42brixenI have no issues on 10.5.7 with 4.0
22:39:45HaPKrue: just built:debug and see the same error
22:39:57rueThink my next project will be reuptake of the const correctness tract
22:40:25brixenHaPK: the same issue running which command?
22:40:41HaPKbrixen: bin/mspec ci
22:40:49brixendid you try the other command?
22:41:37HaPKbrixen: I'm running "/full/path/to/vm/vm ./mspec/bin/mspec-ci"
22:41:55HaPKbrixen: I see dots appearing and have seen one "F" so far
22:42:12rueHum, we do not honour CC for g++
22:42:33rueBut
22:43:06brixenHaPK: what do you get from 'ls -l ./bin/rbx' ?
22:43:10rueErm, but `CC=gcc-4.0 rake build` completes fine, mspec runs
22:44:03HaPKbrixen: ./bin/rbx -> ../vm/vm
22:44:28HaPKbrixen: the rest is usual "ls -l" output
22:45:45brixenHaPK: ok, did the other command complete? did you get profiler output?
22:46:36HaPKbrixen: tests are still running. I got profiler output for failing test (just before "F" instead of dot appeared)
22:46:59brixenthat is so crazy
22:47:59rueSomething is just a bit sloppy (or it could even be an actual compiler bug), and the optimizer fucks up
22:49:05rue`rake build:debug` with gcc-4.2 also succeeds and runs specs here
22:49:38brixenHaPK: how are your ruby skills?
22:49:47marcandrerue: will do :-) I've be putting (new) for new specs and new methods, but yeah, I'll put in a bit more context. Gotta run now...
22:50:03ruemarcandre: Good deal
22:50:06HaPKbrixen: well, I've been writing ruby for 4 years so far
22:50:15brixenHaPK: heh, excellent
22:50:21rueDo not have time to actually look at the changeset oftentimes
22:50:35HaPKbrixen: why?
22:50:36brixenHaPK: you could try tracking down how the ProfilerAction gets enabled
22:50:52brixenHaPK: look at spec/custom/utils/script.rb
22:51:17brixensee if config[:profiler] is set and try tracking backwards
22:51:29rueHaPK: When you run just `rake build`, do you get past the extension build? Or maybe you pastied that above somewhere?
22:51:34HaPKbrixen: ok, will do.
22:51:43brixenbin/mspec should be exec'ing mspec/bin/mspec using rbx
22:52:07HaPKrue: the last line of "rake build:debug" was "Created bigdecimal.bundle"
22:52:10weepyhey - i had a question about cukoo hash
22:52:24brixenweepy: shoot
22:52:33rueHaPK: What about without :debug? Lemme paste what I saw there
22:53:06weepyas far as i understood - it is all super whizzy etc as long as it's somewhat sparsely populated.
22:53:09HaPKrue: as far as I remember, it was just like with :debug
22:53:12brixenHaPK: the mspec/bin/mspec script just gathers options and runs the worker script
22:53:48weepy- so question is - how do u know that's the case ?
22:53:52rueHaPK: http://gist.github.com/111951
22:54:09HaPKok, tests have finished. One test failed: ARGF.read reads the contents of one file and stdin FAILED
22:54:23evanthat one fails all the time
22:54:29evanif your tests output anything
22:54:35evanlike, in this case, the profiler.
22:54:52rueHaPK: That is `rake build`, i.e. gcc-4.2. `CC=gcc-4.0 rake build` works, `CC=gcc-4.0 rake build:debug` works and `rake build:debug` works here; i.e. on my end it seems to be 4.2's -O2
22:55:03evanrue: he's not on gcc 4.2
22:55:05HaPKpastie: I have something
22:55:18pastiehttp://pastie.org/478551 by HaPK.
22:55:28brixenweepy: www.itu.dk/people/pagh/papers/cuckoo-jour.pdf
22:55:34HaPKevan: see the test fails because of syntax error
22:55:46brixenweepy: that's what I'm looking at, and evan's prototype code
22:55:51evanwtf.
22:55:57rueevan: Yes, I saw
22:57:28weepybrixen: ta - but perhaps i didn't explain what i meant
22:57:44brixenweepy: fwiw, I'm working on something to give Hash characteristics (sets, gets, iterations, etc) and some benches
22:58:40weepyif you have N slots, cukoo is super fast etc as long as the number of entries is << than the number of slots
22:58:48weepyi.e. to avoid too many collisions
22:59:01rueOp, should probably try it with CXX set too.
22:59:22rueThe structure knows its capacity and its occupancy?
22:59:33weepywhat's the size of the number of slots ?
23:01:00brixenI don't understand that question
23:01:28weepyin the ruby Hash implementation => how many buckets are there ?
23:01:42brixenthe current one?
23:01:51weepyyes and ur new one
23:02:29brixen16 in the current one in a single table
23:02:41brixenin the cuckoo, there are currently 2 tables with min 8 slots
23:02:56weepy16 !
23:03:09weepy2 ** 16 ?
23:03:09brixenno, just 16
23:03:21brixen16! would be a very big number
23:03:32weepylol
23:03:46weepythat was just a plain surprise !
23:03:50brixenum 16 as in 2**4
23:03:58brixenthat's the min size
23:04:07brixenbtw, the code is publicly available :P
23:04:16brixenfor the current one
23:04:18weepyo is it
23:04:33weepyill have a gander :)
23:04:46brixenI can pastie you the cuckoo code if you want
23:04:55weepyok koolio
23:04:57brixenit passes the specs but I'm not sure it will be faster yet
23:05:06brixenand it hasn't been optimized at all
23:05:33weepyu figured that it was important for Hash to be faster
23:05:48weepyI guess it really is used a great deal
23:06:07brixenwell, we saw a lot of hash methods in the profile for running rails -h and rails bootup
23:06:10brixenhttp://gist.github.com/111957
23:06:21brixenthat file should be loaded after rbx boots
23:07:23brixenrefresh the gist
23:07:35weepyok done
23:07:36brixenif you put the bottom code in new_hash.rb you can do...
23:08:00weepyyes rails uses hash a great deal - esp for very small hashes
23:08:02brixenbin/mspec ci -r cuckoo -r new_hash core/hash
23:08:27brixenthe current min size of 16 is based on previous profiling of hash sizes running specs
23:08:51brixenI'm working on a HashSpy that will tell me characteristics running specs, rdoc, and rails
23:09:28weepyHashSpy lol
23:09:49weepysounds l ike a Narc :P
23:10:12brixenkinda :)
23:10:17brixenbut more a spy
23:10:24brixengathering sekrets
23:11:25brixenHaPK: any luck? need me to explain any mspec stuff?
23:13:09HaPKbrixen: I was tracing the code from bin/mspec and found out that there are config[:profiles] and :xprofiles, and then noticed that you was referncing spec/custom/utils/script.rb, not mspec/..
23:13:17HaPKbrixen: why so ?
23:14:22brixenspec/custom/utils/script.rb is required by spec/default.mspec
23:14:35brixenwhich is loaded by mspec scripts for config options
23:14:41HaPKbrixen: also, when I run "bin/mspec --help" I see options like "-P" or "-Pss" that are not part of mspec/lib/mspec/utils/option.rb
23:14:56HaPKbrixen: oh, ok
23:15:04brixenyeah, something is really broken
23:15:14brixennot sure at what point it gets broken though
23:15:28brixenI'll pastie what bin/mspec run -h should be
23:16:56brixenHaPK: http://gist.github.com/111960
23:17:35brixenmaybe those will help you see an anomaly
23:18:08HaPKbrixen: but I get the very different result
23:18:11HaPKpastie: help me
23:18:24HaPKahh
23:18:28HaPKpastie: come on
23:19:00pastiehttp://pastie.org/478576 by HaPK.
23:19:24HaPKhuh
23:19:35HaPKin fact it's rubinius' options
23:19:55brixenyeah, and it seems like loader is running the profiler
23:20:11brixenwhich would explain why you got the output *during* the spec runs
23:20:22evanwow thats bizarre.
23:20:24brixenthe ProfilerAction will not output until the end of the main rnu
23:20:27brixen*run
23:21:05brixenHaPK: so, it could be exec in the bin/mspec file
23:21:34brixenHaPK: what do you get from ./vm/vm mspec/bin/mspec-run -h ?
23:22:41HaPKbrixen: an exception: "Unknown errno : execvp() failed! (SystemCallError)"
23:22:59brixenHaPK: I'm wondering if something in ports is causing rbx to link wrong
23:23:10brixenHaPK: I'm assuming you do have ports installed
23:23:24HaPKbrixen: yes, I have
23:24:06HaPKpastie: yo
23:24:10brixenthis is what I have installed http://gist.github.com/111964
23:24:15dgtizedbrixen: our hash keys are 32bits or 64bits?
23:24:17pastiehttp://pastie.org/478584 by HaPK.
23:24:25dgtizedor rather architecture dependent right?
23:24:34HaPKbrixen: here is what I have
23:24:50brixenHaPK: heh your ports list is bigger than mine AP
23:24:54brixen:P
23:25:35HaPKbrixen: yeah, somewhat
23:25:39brixenHaPK: it's just a guess, but I think it could be something when rbx is linked..
23:25:48brixennot sure how to trouble shoot that
23:27:22brixenHaPK: oh! it's probably darcs ...
23:27:28brixenkids
23:27:30HaPKhuh ?!?
23:27:34HaPK=))
23:27:34brixenheh
23:27:46HaPKbrixen: I got used to darcs
23:28:00HaPKbrixen: it's easy to use than git
23:28:04HaPKimo
23:28:11evandarcs is teh vacation time DVCS i hear
23:28:20evanie, it so slow you get extra vacation!
23:28:32brixenwell, after it melted a couple computers trying to get the Io repo a few years ago, I swore off it
23:29:00HaPKevan: well, haven't seen a performance comparision of git vs darcs2
23:29:08brixenevan: any ideas on troubleshooting a possible link-time issue?
23:29:21evanwhats the issue?
23:29:27brixendunno
23:29:42brixen15:22 HaPK >> brixen: an exception: "Unknown errno : execvp() failed! (SystemCallError)"
23:30:00brixenand for some reason, bin/mspec is not giving the expected behavior
23:30:01evanlink time?
23:30:11brixenthere's not many moving parts in that file
23:30:22evanwhat file
23:30:27evani haven't been following
23:30:28brixenbin/mspec
23:30:56brixenlooking at HaPK PATH, I see the opt dirs, which had me ask which ports are installed
23:31:08brixenthis is his ports list http://pastie.org/478584
23:31:33HaPKbtw, I do not understand who is responsible for running mspec: in mspec/bin/mspec I see "#!/usr/bin/env ruby" and this is most definitely my MRI 1.8.6
23:31:53brixenwell, bin/mspec uses exec
23:32:06evanso exec is failing under rubinius or MRI?
23:32:12brixenwhich will run under MRI
23:32:21HaPKbrixen, oh, ok
23:32:29brixenand in mspec/bin/mspec, MRI will exec rbx
23:32:43brixenwhen it runs mspec/bin/mspec-run or -ci etc
23:33:19brixenevan: http://pastie.org/478576
23:33:37HaPKbrixen: how come ? I see mspec/bin/mspec having the same MRI shebang and just requiring some modules and calling methods
23:33:37evanok, yeah mega weird.
23:33:50HaPKbrixen: when does rbx gets introduced ?
23:35:12brixenHaPK: mspec/lib/mspec/commands/mspec.rb
23:35:38brixenmspec is a script that gathers info and exec's a particular implementation to run the specs
23:35:45brixencould be rbx, mri, jruby, etc
23:35:52brixenbased on the -t option
23:36:07brixenor the configuration file like spec/default.mspec
23:36:08dgtizedbrixen: on the subject of the cookoo hashing, do we know how that compares to Bagwell's HAMT's which are basically a hash table combined with a trie?
23:36:33brixendgtized: I don't off hand
23:36:41brixenif there's a paper on it, I'll read it
23:36:48slavacuckoo hashing will be faster because its branchless
23:36:51slavatraversing a trie is more work
23:37:51dgtizedslava: except that you save on rehashing with the trie, so it depends on usage
23:38:05dgtizedHAMT paper- http://lampwww.epfl.ch/papers/idealhashtrees.pdf
23:38:19brixencool, thanks
23:39:31dgtizedslava: basically it just starts out using say 4 MSB as the hash, when you get a collision you make a new trie node, and then use the next 4 bits to hash into the subtree
23:39:58dgtizedwhen you hit a certain density you can rehash the top level hash with all it's children efficiently because they are all in the right place already
23:40:22dgtizedie you don't need to rehash the subtrees
23:43:10dgtizedthat said, you are correct it's definitely more branching then the flat table in cuckoo hash
23:43:59HaPKbrixen: that's odd: I have added output of options that are passed to rbx when running mspec... They are "bin/rbx -v /full/path/to/mspec/bin/mspec-run -h"
23:44:20brixenthat's the correct options
23:44:33brixenwell...
23:44:41HaPKbrixen: when I run it manually, I get normal help output, when run via mspec/bin/mspec run -h -- I see profiler output and rubinius' options
23:44:53brixenhm
23:45:23brixenwhat was the exact cmd in the first case?
23:48:26HaPKbrixen: ruby -v mspec/bin/mspec run -h
23:48:57brixenHaPK: what do you get from: bin/rbx -v /full/path/to/mspec/bin/mspec-run -h +
23:48:59brixen?
23:49:37brixenI am fearing it's nothing to do with rbx at all
23:49:43HaPKbrixen: huh... the correct help output
23:49:47brixenyeah
23:49:51brixenit's your mri
23:49:55brixenI think
23:50:04brixentry to use the vanilla os x mri
23:51:33HaPKbrixen: but I have vanilla mri from ports: "ruby @1.8.6-p114_0+darwin_9+thread_hooks (active)"
23:51:54brixenwell, I think that is somehow the issue
23:51:57brixennot sure why
23:55:51HaPKtrying to upgrade ruby to 1.8.7-p160
23:58:41evanrad
23:58:51evangot the JIT doing a type specialization for Tuple#at
23:59:06evanthat reduces a Array#each benchmark from 6.2s to 4.5s
23:59:17dgtizednice
23:59:19evanthats interpreter versus JIT
23:59:23brixenawesome
23:59:56evandoing the type specialization based on primitives is really nice and easy