Index

Show enters and exits. Hide enters and exits.

00:00:00nexcastellanThanks. Hhhhmmm.
00:00:03evanzenspider: yeah, i just don't see a way around it
00:00:13zenspiderI wanted all the impl specific crap to be on the server side, so we could isolate it
00:00:18brixenzenspider: likely other impl besides rbx will have their own specs as well
00:00:18zenspiderstupid rubinius. :/
00:00:29brixenI don't see a way around something knowing the impl
00:00:56zenspiderbrixen: yeah, well, this isn't a run whatever you want CI, this is a run rubyspec CI
00:01:10brixenzenspider: arbitrary distinction
00:01:13brixennot useful IMO
00:01:19brixenwe have to run all our specs
00:01:26evanwell, no, he has a point
00:01:44zenspiderall we want to do is have a level playing field so we can see the status of all the same impls against rubyspec
00:01:47evanzenspider: could we, in addition to raw rubyspecs, run something else specific to each impl?
00:01:50evanzenspider: for instance
00:01:50zenspiderraise visibility on all the impls too
00:01:56evanit might be useful to run all the specs on rubinius
00:01:59evanto get a complete view
00:02:09evan(if they don't crash the vm, which is a problem, that is)
00:02:19evanthen run, also run our spec/frozen
00:02:35evanso we'd be testing how far forward we have to move
00:02:36drbrainevan: no
00:02:41evanand also that we don't move backward
00:02:52drbrainit will be red all the time
00:03:03evanyeah
00:03:20evanwe'd end up ignoring it largely
00:03:20zenspiderwe need graphs to not move backward... and drbrain is right... we can't start red
00:03:20evanand we'd have to have a run that runs spec/frozen
00:03:22evanand stays green
00:03:26drbrainoh, and right now the IO#readpartial spec just hangs
00:03:28zenspider(unless it is a few that we intend to conquer immediately)
00:03:34zenspideryeah
00:03:49drbrainI'm sure we'll have a lot where we just sit waiting for something to happen
00:03:50brixendrbrain: there's a bunch of specs that hang
00:04:03brixenparticular StringIO#read anything to do with a paragraph
00:04:13evanso, sadly, raw rubyspecs isn't a useful vector for us right now
00:04:14brixenor is that IO
00:04:15brixenI forget
00:04:31zenspiderevan: no, prolly not
00:04:31evanI can't wait until it is, but it's not going to help us move forward it seems
00:04:42zenspideris it possible to run against the 1.8 specs but with our tags?
00:05:00evanzenspider: i think so, you just tell mspec where the tags directory is
00:05:03evanbrixen: ?
00:05:04wyhaines leaves the room.
00:05:08zenspiderI'm wondering just how much I need to conditionalize... if it is just a flag... that'd be cleaner
00:05:08brixenbin/mspec ci spec/ruby will do the same as bin/mspec ci spec/frozen
00:05:14brixenit maps to the same set of tags
00:05:20evanbrixen: what about outside the checkout
00:05:30brixenbut the tags are not sync'd to rubyspec head
00:05:42rue leaves the room.
00:05:42evancd rubyspecs; rbx ~/bin/mspec --tag-dir=~/git/rbx/spec/tags 1.8
00:05:44evanor something?
00:05:45brixenevan: you'd have to update the config file
00:05:52brixenthere's no more --tag-dir
00:06:04brixenthere's the :tags_patterns in the config file
00:06:11brixensee spec/default.mspec
00:06:12evanthis is an mspec config file?
00:06:26rue enters the room.
00:06:38evanwhat does it mean to not be sync'd up to rubyspec head?
00:06:43brixenI still don't see who a CI bot that does not run all our specs makes sense
00:06:46evanbeing sync'd is when you update spec/frozen, yes?
00:06:51brixenyep
00:06:55Arjen__ leaves the room.
00:07:10evanhm
00:07:15rueCI is a known good subset
00:07:21evanso, seems like the green vector is going to have to be running spec/frozen then
00:07:35evanbecause thats the tag set + spec set we know is green
00:07:40brixenright
00:07:40rueIf we want to run everything too, that is fine, but it should be separate
00:07:51zenspideryeah... that sucks... but whatever... I'll make it work
00:07:54evanok.
00:08:10evanzenspider: let me know how long it takes to do a run
00:08:11evani'm curious
00:08:14evanbecause doing 2 runs
00:08:19evanone against spec/frozen
00:08:23evanand one against raw rubyspecs
00:08:33evanthat difference might prove to be a useful vector
00:08:46evanshowing us recent specs we don't pass
00:08:53brixenzenspider: you wanted mspec to have a timeout, how would you suggest implementing that?
00:09:06brixensince MRI 1.8.7 was hanging on specs for some folks today
00:09:10brixenit's going to be an issue
00:09:34evanbrixen: well, easiest is to a timeout on the whole thing
00:09:43evanlike a 10 minute ceiling
00:09:47brixenevan: yeah, but within mspec?
00:09:53evanthat doesn't have to be
00:10:01evanyou could do that in shell just as easily
00:10:07brixenyeah
00:10:23evanbut that has crappy granuality
00:10:31brixenI've already got a sh thing for that in benchmark/rubinius/timeout
00:10:32evanthe place where it's really useful is per-spec time outs
00:10:43evanso that each spec gives, say 30 seconds max to run
00:10:53evanand if it goes over that, it's killed and we try and go on
00:10:54brixenwell, how would you do that?
00:10:57evanso we could report which specs are timing out
00:11:06evansimilar to how timeout.rb works
00:11:06brixenwithout killing the interp/vm?
00:11:10zenspiderbrixen: wrap the whole generated runner script with timeout(3600) { ... } ?
00:11:15zenspiderwhy not do it in ruby?
00:11:41brixenwell, first of all, the dependency on timeout.rb
00:11:47brixenI'm sure we didn't run that for a long time
00:11:53evantrue
00:11:54zenspiderevan: granularity and reporting is fine... but it isn't hard to detect hung specs
00:12:13zenspiderbrixen: oh... you're doing an exec into the script, aren't you?
00:12:18brixenand hung from deadlock is different from hung from thrashing in memory or something else
00:12:26brixenzenspider: exec in to what script?
00:12:40evanbrixen: right, but i doubt we'll ever be able to tell
00:12:53zenspiderinstead of a full exec, we could system instead and wrap that with the timeout
00:12:53evanwhy it's hanging, progromatically
00:12:55evanit's more about just bounding the time a spec run takes
00:13:01brixenevan: how would you recover from a deadlock inside the vm without killing it?
00:13:08evanyou wouldn't
00:13:12evanyou'd have to have both timeouts
00:13:19brixenthen we'd have to run each spec in a separate process?
00:13:21evanan external one (10 minutes) and internal (30 seconds per spec)
00:13:26evannah
00:13:35evanif it hangs so bad the internal timeout doesn't work
00:13:39evanthe external will get it eventually
00:13:57zenspiderfor example, CI shows tests as "DOA" if they don't have the test summary at the bottom... this would be one of those cases.
00:13:59evanit doesn't have to be perfect
00:14:16zenspiderit just has to keep going
00:14:24zenspiderhowever messy
00:14:32brixenthen it should be done external
00:14:44evansure
00:14:46brixenwe don't need to pile up more requirements that beginning impl have to support
00:14:46stepheneb enters the room.
00:14:50evanthe runner can do that
00:15:00brixenevan: external to the runner
00:15:08brixenwhatever invokes mspec should take care of it
00:15:19evanwhy not have it in the mspec runner?
00:15:28evanit's already got high deps (optparse, etc)
00:15:34brixenthat's coming out
00:15:46brixenand there are two "runners" mspec and mspec-run
00:15:54brixenwhich would do it and how?
00:15:57zenspiderI agree with brixen here... the top level (mri driven) runner should do this to reduce the dependencies internal to the system
00:16:05evanok
00:16:27evanwe could have a simple bin/mspec-timeout
00:16:33evanyou just do
00:16:46zenspiderit may not be the case now, but back in the day, mspec generated a ruby script into tmp that it exec'd...
00:16:52zenspiderbrixen: is that still the case? or close enough?
00:16:55evanmspec-timeout 3600 bin/mspec -everything -to -bin-mspec
00:16:59brixenzenspider: nope, not the case
00:17:09brixenmspec exec's mspec-run
00:17:24brixenand mspec has a -j option to fork/exec multiple mspec-run's
00:17:28zenspiderbrixen: THAT is close enough
00:17:35brixenso, I'd like to keep that as sane as possible
00:17:40zenspiderinstead of exec, system wrapped in timeout
00:18:12zenspideris that possible?
00:18:18evanshould be
00:18:29brixenthere's a reason I'm using exec
00:18:30evanit thought brixen was saying it shouldn't even go in the mri-driven runner
00:18:35brixenif only I could remember :/
00:18:44zenspiderhaha
00:19:22zenspiderdef timeout(n) yield; end unless option[:timeout]
00:19:25evanunix philosophy would have us write a tiny program that runs another program and exits if the sub-program doesn't return within a timeframe
00:19:30evani'm surprised unix doesn't have that actually
00:19:59zenspiderunix philosophy is RIDDEN with inconsistencies
00:20:04brixenaccording to ri, system processes the args the same as exec
00:20:07zenspiderthere is a reason why ed and sed aren't our editors of choice
00:20:10brixenso can probably substitute
00:20:39tarcieriDoing things the idiomatic Unix way is messy
00:20:53brixenmspec is run by MRI
00:21:07brixenit exec's mspec-run with the appropriate target
00:21:21brixenwhich of couse you can do directly with e.g. bin/rbx mspec-run ...
00:21:26evanso it could basically supervise if we ask it to
00:21:30brixenyeah
00:21:45evanseems easy to add to mspec then.
00:21:46evanif option[:supervise]
00:22:02evan timeout(option[:timeout]) { system(...) }
00:22:02evanelse
00:22:05evan exec(...)
00:22:05evanend
00:22:18zenspiderno need with my snippet above
00:22:33brixenoh, hmm, I'm probably just using exec to ditch MRI, duh
00:22:36zenspiderand really no benefit doing both exec and system, is there?
00:22:52brixenwe'd have to use system in mspec to use timeout {}
00:22:58brixenthat makes sense
00:22:59evanright
00:23:05zenspideryeah, but there is little reason for that that I can think of
00:23:09evanit's just cleaner, sysadmin wise
00:23:10evanless memory
00:23:14brixenright
00:23:15zenspideryes, we have to use system...
00:23:15evanless eventualy cleanup
00:23:19evanbut not necessary
00:23:45zenspidermy point was use system for both cases, and in the NON supervised case, just stub out a simple timeout method
00:23:53zenspiderless code
00:23:53evansure
00:24:21brixenwell, it may become an issue with the -j option
00:24:25evantheir purchasing power is the same
00:24:29brixenright now it run 6 isolated processes
00:24:38brixenand I'd prefer not to sequentialize those either
00:24:55evanbrixen: make them mutually exclusive options for now
00:25:02pauldix leaves the room.
00:25:04brixenI can give you -j or --timeout but not both ;)
00:25:09zenspiderhttp://rafb.net/p/8En09578.html
00:25:09evanlet the person that wants timeouts AND -j fix it.
00:25:09evan:)
00:25:09brixennot both together
00:25:10zenspiderhow does your -j work?
00:25:16brixenfork/exec
00:25:21evanbrixen: sure
00:25:21zenspiderhaha. yes
00:25:46zenspideryou're not running a collector process?
00:25:51brixensure
00:25:55zenspiderlike make?
00:26:35brixenless mspec/lib/mspec/commands/mspec.rb
00:26:39brixen#multi_exec
00:28:08brixensince MRI exec's mspec, this works well with other impl that don't need to know anything about Kernel.fork, etc
00:28:29brixenbut if you run mspec with e.g. jruby, it won't use Kernel.fork
00:28:36zenspiderso you mean fork/system? or am I looking at the wrong code?
00:28:45brixenyeah
00:29:08brixenheh, I changed it from fork/exec
00:29:46brixenanyway, as long as we keep this out of the requirements for the impl, we can tweak it as we like
00:29:57brixensince expectation is MRI runs this file
00:33:08binary42 enters the room.
00:33:12zenspiderthe timeout would work fine in this case... but yeah. it isn't a requirement that we need to support at this time
00:33:39brixenyeah, I'll add it
00:40:42anteaya enters the room.
00:48:24heycarsten enters the room.
00:51:40wycats leaves the room.
00:52:04wycats enters the room.
00:53:53wycats_ enters the room.
00:54:13wycats leaves the room.
00:59:41dfg59 leaves the room.
00:59:47dfg59 enters the room.
01:02:07stepheneb leaves the room.
01:05:11boyscout20 commits by Ryan Davis
01:05:12boyscout * Ugh. Added impl-specific conditionals to ci.rb; 355b8af
01:05:13boyscout * Use MRI's gem to install gems so a borked kernel won't fail; 74477a9
01:05:14boyscout * Added -S processing to loader; 55597f8
01:05:15boyscout * Switched to git fetch, per review from evan; 68c33d2
01:05:16boyscout * No, we nuke the html/ci dir; ce0c071
01:05:17boyscout ...
01:05:33rue leaves the room.
01:07:37cremes leaves the room.
01:07:48zenspiderI'm a doof. I sat on that too long
01:07:51zenspider:/
01:08:05jbarnettecommitbomb!
01:09:30rubuildius_ppcRyan Davis: 355b8af4c; 2535 files, 8411 examples, 28042 expectations, 0 failures, 0 errors
01:11:05zenspiderthat was fast
01:11:32brixenyeah the ppc bot is quick
01:11:41brixenI think it checks in less than 5 min intervals
01:11:58rue enters the room.
01:12:05zenspiderseems faster than my laptop at running the tests. :)
01:12:22brixenheh, it's a g5 I think
01:12:23twbray leaves the room.
01:12:33brixenmight be a dual
01:12:39brixenand might be running with -j
01:16:32rubuildius_amd64Ryan Davis: 355b8af4c; 2535 files, 8412 examples, 28022 expectations, 0 failures, 0 errors
01:17:43rubuildius_ey64Ryan Davis: 355b8af4c; 2535 files, 8412 examples, 28020 expectations, 0 failures, 0 errors
01:21:15brainopia enters the room.
01:22:57zenspiderok. my blood sugar is dropping... must go grab something before I die, or others do
01:32:33Lars_Gzenspider: Hypoglicemic?
01:34:40trythil_ leaves the room.
01:37:12neelance_ leaves the room.
01:37:31headiusDefiler: did you add any specs while working on caller?
01:37:51headiusby fixing the eval cutoff it looks like JRuby mostly matches MRI for simple cases
01:39:04mitchellvriley__ enters the room.
01:39:46stepheneb enters the room.
01:39:49wmoxam enters the room.
01:44:56benburkert leaves the room.
01:44:58evanFUCk.
01:45:23evani just blew away a very important file
01:45:29evanand i haven't commited a version of it.
01:45:44brixenyikes :(
01:46:03brixenI've done that, but now use git --amend religously :/
01:46:15evani'm going to see if time machine has it
01:46:30benburkert enters the room.
01:49:58evansweet.
01:50:00evanTM had it.
01:50:13evanTM rocks.
01:51:33evani guess TM runs even when my backup drive isn't plugged in
01:51:45evanbecause it had a version of the file from yesterday
01:52:54drbrainthat's spooky
01:53:34evanseems like it runs, creating backups on the regular disk
01:53:41evanthen copying them to the backup disk when it can
01:54:19djwhitt enters the room.
01:56:03jbarnette leaves the room.
02:03:43stouset enters the room.
02:05:26rue leaves the room.
02:06:27dfg59 leaves the room.
02:07:00dgtized_ enters the room.
02:11:18crafterm enters the room.
02:11:29rue enters the room.
02:19:32dgtized leaves the room.
02:22:58c0sin leaves the room.
02:25:11VVSiz_ enters the room.
02:26:34wmoxam_ enters the room.
02:37:05wmoxam leaves the room.
02:37:16wmoxam_ enters the room.
02:42:49VVSiz leaves the room.
02:43:21ijcd_ leaves the room.
02:45:43wycats_ leaves the room.
02:46:21ezmobius leaves the room.
02:47:15Fullmoon leaves the room.
02:57:38headius leaves the room.
02:57:38headius_ enters the room.
03:00:44wmoxam_ leaves the room.
03:03:28wycats enters the room.
03:05:04wycats_ enters the room.
03:05:21rue leaves the room.
03:06:00rue enters the room.
03:20:45wycats leaves the room.
03:23:44moofbong enters the room.
03:24:08wmoxam leaves the room.
03:26:09crafterm leaves the room.
03:31:26ijcd enters the room.
03:31:35ijcd leaves the room.
03:36:37wyhaines leaves the room.
03:36:44mitchellvriley__ leaves the room.
03:38:06lchin enters the room.
03:38:59edwardam leaves the room.
03:52:19heycarsten leaves the room.
03:59:59moofbong leaves the room.
04:00:33moofbong enters the room.
04:04:40stouset leaves the room.
04:05:26rue leaves the room.
04:06:30rue enters the room.
04:13:09mitchellvriley__ enters the room.
04:13:55twbray enters the room.
04:16:19seydar enters the room.
04:18:34rubuildius_amd64 leaves the room.
04:20:06seydarhowdy, y'all
04:21:32evanhey there
04:21:56seydarquiet night here on the prairie
04:22:16evanwatches some tumbleweed blow by
04:22:42seydari wish i had some free time, a c++ book, and a bag of m&ms
04:22:53seydarbut since the cows are still strolling by
04:23:02seydarwhat kind of GC does rubinius currenty use?
04:23:40evangenerational
04:23:59evanwith a semi-space copy collector for young
04:24:04evanand a mark/sweep for old
04:24:14evani need to make the old one mark/compact
04:24:19seydarso a generational is a composite GC?
04:24:54rubuildius_amd64 enters the room.
04:25:43seydaris a generational GC made up of multiple mini-GC parts?
04:25:51evancomposite being 2 GCs acting as one, yes.
04:25:57evansort of
04:26:12evanthe different GCs handle different sets of objects
04:26:25evanthe way it works is that objects are first allocated into the young half
04:26:29evanand after they live long enough
04:26:34evanthey're moved to the old generation
04:26:42seydargotcha
04:26:55evanthis expliots the property that objects typically become garbage after being used once
04:27:08seydarand this, from what I've heard from a grad student, eliminates the need for reference counting?
04:27:09evanand the semi-space collector uses a very fast algorithm
04:27:14evanyes
04:27:16evanvery much so
04:27:23evanit uses tracing to discover valid objects
04:27:26seydarawesomesauce!
04:27:35evanie, follows pointers to find all alive objects
04:27:41seydarwhat makes referecne counting bad?
04:28:09mjwhitt enters the room.
04:28:20benburkert leaves the room.
04:28:53evanit costs a lot
04:29:06evanbecause you're constantly writing values into objects
04:29:26evanand it can't detect circular garbage on it's own
04:29:44evanif a points to b, and b points to a, and no one else points to either
04:29:48evanthey're both kept alive
04:30:41seydarhm. how.... interesting
04:30:46seydarohhhhhhh! i get it
04:31:10evantracing finds all the valid objects the way a human would
04:31:12evanstart at the top
04:31:17evanand 'look' at all objects you can find
04:31:38lchin leaves the room.
04:31:38seydarwhat is the fancy copyrighted name for tracing?
04:31:47evanthere isn't one
04:31:49evanit's tracing
04:32:04benburkert enters the room.
04:33:07seydardoes one of rubinius' two GCs use tracing?
04:33:10seydarbefore you answer
04:33:13seydarmy guess is no
04:33:21seydarok go
04:33:26rubuildius_amd64 leaves the room.
04:33:27evanthey both trace.
04:33:34evanseperately
04:33:39evanthats another thing about generational
04:33:46evanyou don't have to run them both at the same time
04:33:51jackdempsey enters the room.
04:33:52evanthe young generation is much smaller
04:33:56anonuserTADA Generational!
04:34:02evanand thus can be run much more often and much faster
04:34:16seydardo either of the GCs stop-the-world?
04:34:19stepheneb leaves the room.
04:34:28rubuildius_amd64 enters the room.
04:34:29evanseydar: they both do.
04:34:34anonuserseydar, I think you're thinking of techniques of garbage collection.
04:34:49anonuserGenerational just splits the garbage into buckets.
04:35:15anonuserOr some nonsense like that.
04:35:35evanit's like the kitchen garbage versus the garage garbage
04:35:52anonuserYeah that's good.
04:35:57seydaryea im lost
04:36:07evanheh
04:36:08seydarisn't stopping the world an aspect of a GC?
04:36:12anonuserThere are different ways to do things, like there is incremental garbage collection.
04:36:17anonuserWhich doesn't stop the world!
04:36:20evanseydar: for simple GCs yes
04:36:28evanrubinius uses simple algorithms
04:36:31anonuserBut it's much much harder to get right.
04:36:44evanthere are GC algorithms that run in a dedicated thread
04:36:58evanin parallel with the program (called the mutator in GC speak)
04:37:00anonuserI might get an interview with Amazon! The interview will probably murder me :(
04:37:07evananonuser: what group?
04:37:15anonuserevan, An internal group.
04:37:16headius_ leaves the room.
04:37:35evanhaving lived in Seattle, i know a lot of amazon people
04:37:38evanzenspider used to work there.
04:37:42anonuserMy friend / roommate just passed round two of interviewing and is flying out soon, he wants to recommend me for the team
04:38:08seydargratz!
04:38:18evananonuser: awesome!
04:38:27evananonuser: my old manager is on the EC2 team
04:38:29anonuserNot there yet!
04:38:38anonuserEC2 and S3 are amazing.
04:38:48anonuserDistributed systems are my thing.
04:39:13twbray leaves the room.
04:39:15anonuserAnd there seems to be some ruby fans at amazon.
04:39:22seydaranonuser: is there a lot of crazy math involved in distributed systems?
04:39:30qrush leaves the room.
04:39:36anonuserseydar, you're thinking too lowlevel
04:39:40anonuserBring it up to a generalization
04:40:01anonuserA system can do a lot of things without crazy maths :)
04:40:20seydaranonuser: sorry, i've heard terrible stories about distributed systems
04:40:38seydari think they're awesomely amazing, but the math...
04:40:44anonuserseydar, they're tricky to get right, but amazon is the king of distributed systems and SOA.
04:41:32anonuserseydar, you don't need to reach theoretical math to do well in field, it's better to be awesome at puzzle solving, but don't downplay math.
04:41:34wycats enters the room.
04:42:27seydarthen there is hope
04:42:33anonuserI forgot how amazing the C++ FAQ was.
04:43:02seydarlinkzor?
04:43:18seydarunless its the lite version
04:43:28seydarin which case im scared to see the unabridged copy
04:43:32anonuserthe lite version.
04:43:39anonuserthe lite version is a good thing.
04:43:48anonuserReading teaches you pretty much everything about C++ you'll ever need to know.
04:43:56anonuserThe book is...well the book of that.
04:45:15seydarhehe then all I need now is a bag of m&ms and some free time
04:45:41lchin enters the room.
04:46:02anonuserI need to find some crazy vegan alternative version of m&ms
04:47:31seydarwhats unvegan about m&ms?
04:47:35evanlchin: hey leonard!
04:47:51anonuserseydar, milk.
04:48:07lchin
04:48:10crafterm enters the room.
04:48:12seydaroh right
04:48:29seydarcrafterm: are you the crafterm of sprinkle fame?
04:48:47craftermseydar: hi there, yes mate, thats me
04:49:15seydarcrafterm: i'd like to first say thank you, i'm using it in an _actual_ work environment
04:49:36craftermseydar: brilliant, glad to hear that its of use! :)
04:49:44seydarand there isn't really a second thing to say
04:49:54evan:D
04:49:58craftermseydar: be sure to let me know if it can be improved in any way at all :)
04:50:32seydarcrafterm: when i first used it, i thought i found some issues with the generated bash, but when i recently installed it again, i found that those issues didnt exist anymore
04:50:48craftermseydar: excellent mate ;)
04:51:00seydaris it all right if i keep going or is it too off topic for rubinius?
04:52:17evango for it.
04:52:54seydarok. so when installing gems, it runs the gem command
04:53:19seydarhowever, what i first used sprinkle for was provisioning my nix box upstairs with a fresh ruby/gems install
04:53:42twbray enters the room.
04:53:53jtoy enters the room.
04:54:03seydarthe gem command assumes gems are installed, yea. but there should be a way to tell it to use the gem _I_ installed
04:54:19seydarno clue how one would do it, but thats why i dont have a blog and why i didnt write this
04:56:19craftermdo you mean the rubygems installation you installed?
04:56:23seydaryea
04:56:27craftermah, ok, fair point
04:56:50jackdempseyyeah, multiple installations of rubygems and ruby itself can lead to a load of 'fun'
04:56:50craftermso you'd like to be able to specify the path to your gems installation?
04:56:59seydaryea!
04:57:22craftermthe local gem repository or the actual rubygems code?
04:57:34craftermjust so in understand :)
04:57:37seydarum, local
04:57:39craftermjackdempsey: fair point to mate :)
04:57:47craftermseydar: ok, no worries
04:57:57jackdempsey:-)
04:58:10craftermshould be an option we could add
04:59:06seydarhuzzah!
04:59:26seydarman huzzah is *almost* a palindrome
04:59:33craftermglad you found it useful mate, always good to hear :)
04:59:33seydarwhat the hell, its close enough.
05:00:02seydarnp! awesome tools are always awesome. another ruby tool is always nice to add to my toolbox
05:00:12lchin leaves the room.
05:00:36lchin enters the room.
05:00:54evanseydar: we could just start saying hazzah!
05:01:07seydarbut then we'd all be from new york
05:01:20evanheh
05:02:24seydarevan: so i understand (menially) the GC and the way objects are stored in memory. what other main parts are there to rubinius?
05:02:49evanthere is the object layout
05:02:56evanie, what an object actually looks like in memory
05:03:45seydari think you explained that to me already, IIRC
05:04:23seydarobjects have.... well... i kind remember. maybe a little refresher please?
05:04:33moofbong leaves the room.
05:04:39evanthey're basically a struct
05:04:48evanwell, the header is a struct
05:04:57evanthen there is a variable number of fields after the header
05:05:04seydaroh right!
05:05:05rue leaves the room.
05:05:30seydarand they have the "real or fake data" field!
05:05:58evanyeah, they have a flag that says what the variable fields contain
05:06:31seydars/field/flag
05:06:55anonuserWhat is the state of rubinius these days? I've been hunting down delinquent clients :(
05:07:10evangetting close to being compliant
05:07:13evanstarting to make it fast
05:07:15anonuserNice!
05:07:23anonuserHow's the llvm port coming?
05:07:35anonuserOr is that super awesomely experimental.
05:08:18seydarstarted talking about drawing it on a whiteboard yet?
05:08:49evanit's coming along nicely
05:09:00evanenough that it's going to be in the new VM
05:09:02wycats_ leaves the room.
05:09:08anonuserAwesome!
05:09:08seydarhazzah!
05:09:15evan:D
05:09:46anonuserIt'll be neat to see llvm doing the heavy lifting as far as optimizations are, though I'm not sure what the full impact is.
05:09:54evanyeah
05:09:57evanit's going to be awesome.
05:10:15anonuserThen you can make awesome MagLev like speed claims.
05:10:15manveruso... llvm only now?
05:10:16seydardo we actually know how much its going to improve the speed though?
05:10:18wycats leaves the room.
05:10:37anonuserseydar, well they have teams of engineers that optimize for specific cases.
05:10:52anonuserI'm just making assumptions, though.
05:11:02rue enters the room.
05:11:10evanmanveru: not sure yet.
05:11:30evanseydar: well, without really trying, llvm execution rather than bytecode improves things 2x
05:11:35evanthats without any really tuning
05:12:00manverubut that sounds limited still...
05:12:04seydarwoooow
05:12:16evanmanveru: limited how?
05:12:20seydarwait, how do you eliminate the bytecode?
05:12:29manveruexactly
05:12:39anonuserseydar, llvm IR optimizations ?
05:12:58VVSiz_ leaves the room.
05:13:01manverui should read up on llvm... i only know about nekovm ^^;
05:13:06evanthe bytecode is translated into LLVM functions.
05:13:12VVSiz_ enters the room.
05:13:29evanso there is no bytecode dispatch overhead anymore
05:13:39seydarevan: but you /still/ will need the bytecode to be made
05:14:00evancourse, but thats a one time, up front process.
05:14:17manverudo you lose the bytecode through optimization?
05:14:33anonuserStupid question but does llvm do tail-end recursion optimizations?
05:15:02evanmanveru: the bytecode is read once to create an LLVM function
05:15:04evanafter than, there is no more bytecode
05:15:10evanit's kept around
05:15:13evanbut it's not executed
05:15:16manveruok
05:15:17evanit's just a blueprint of execution
05:15:33evananonuser: yeah, it can.
05:15:36manveruit's just important for me that you can still modify it after inlining :)
05:15:53manveruthis sounds really like the execution model of Self now
05:16:01seydaralright, alright...
05:16:04seydarwhat other tunes can you make?
05:16:04seydar(whatever the right word is)_
05:16:12lchin leaves the room.
05:16:12cremes_ leaves the room.
05:16:12rubuildius_ey64 leaves the room.
05:16:12squeegy leaves the room.
05:16:12fbuilesv leaves the room.
05:16:12cyndis leaves the room.
05:16:12hoopy leaves the room.
05:16:12wycats_afk leaves the room.
05:16:12Illocution leaves the room.
05:16:12jammi leaves the room.
05:16:12flori leaves the room.
05:16:12Ingmar leaves the room.
05:16:20evanmanveru: ah, sure.
05:16:20evancourse
05:16:20anonuserevan, neat, I was just seeing which VMs do and don't. CLR does but the JVM doesn't.
05:16:28evanmanveru: otherwise we loose functionality
05:16:38manveruyeah
05:16:49manverubut it would still be within MRI specs, which worries me :)
05:16:51evananonuser: at least for a while, we're not going to be pushing down tail call optz into the ruby
05:16:58evanbut we'll see :)
05:17:01anonuserevan, :D
05:17:28lchin enters the room.
05:17:28cremes_ enters the room.
05:17:28rubuildius_ey64 enters the room.
05:17:28squeegy enters the room.
05:17:28fbuilesv enters the room.
05:17:28flori enters the room.
05:17:28hoopy enters the room.
05:17:28Illocution enters the room.
05:17:28Ingmar enters the room.
05:17:28cyndis enters the room.
05:17:28wycats_afk enters the room.
05:17:28jammi enters the room.
05:17:43Ingmar leaves the room.
05:17:57Ingmar enters the room.
05:18:02flori leaves the room.
05:18:08flori enters the room.
05:18:14mitchellvrileyevan: I started having a look at the cpp branch, and I had to change a couple of minor things to get it to compile on my machine
05:18:15Illocution leaves the room.
05:18:20Illocution enters the room.
05:18:26evanmitchellvriley__: ok
05:18:27mitchellvrileydifferent version of gcc I think
05:18:28skweegee enters the room.
05:18:29evangot patches?
05:18:48mitchellvrileyuh, when I figure out how to make one
05:19:02evanno prob.
05:21:46Ingmar leaves the room.
05:21:46rubuildius_ey64 leaves the room.
05:21:46fbuilesv leaves the room.
05:21:46squeegy leaves the room.
05:21:46jammi leaves the room.
05:21:46wycats_afk leaves the room.
05:21:46hoopy leaves the room.
05:21:46lchin leaves the room.
05:21:46cyndis leaves the room.
05:21:46cremes_ leaves the room.
05:23:32seydarevan: thanks for spilling your brain for me tonight
05:23:32seydargonna make pancakes tomorrow morning!
05:23:32seydarhave a good night everyone
05:23:32seydar leaves the room.
05:24:01jackdempsey leaves the room.
05:24:16hoopy enters the room.
05:25:06wyhaines enters the room.
05:26:51Ingmar enters the room.
05:28:34jammi enters the room.
05:28:56cremes_ enters the room.
05:28:56rubuildius_ey64 enters the room.
05:28:56fbuilesv enters the room.
05:28:56cyndis enters the room.
05:28:56wycats_afk enters the room.
05:29:02cyndis_ enters the room.
05:30:05wycats_afk leaves the room.
05:30:18wycats_afk enters the room.
05:30:39wmoxam enters the room.
05:34:32cyndis leaves the room.
05:50:35wycats enters the room.
05:51:13twbray leaves the room.
05:53:11wmoxam leaves the room.
06:02:58lchin enters the room.
06:03:53ezmobius enters the room.
06:04:58rue leaves the room.
06:05:32rue enters the room.
06:10:17jbarnette enters the room.
06:11:25jbarnetteWhat's the overall feeling on adding support for various MRI command-line args to rbx?
06:11:40drbrainlike -S?
06:11:43jbarnetteheh
06:11:45jbarnettemaaaaaaybe
06:11:45drbraindo it (-S is in)
06:11:47jbarnette:)
06:12:38jbarnettedrbrain: "in" like you implemented it already, or "in" like it'd be good to implement?
06:12:47drbrainimplemented
06:12:52drbrainryan did it today
06:13:04jbarnettewow, timing
06:13:44jbarnettewoot autotest
06:14:16jbarnettenow to figure out why ^C^C doesn't work under rbx
06:15:03evanit should
06:15:12evanis it not working in autotest?
06:15:20jbarnetteevan: yeah, it hangs
06:15:28evanhrm.
06:15:44jbarnettei can try and track it down, but it may take me a while :)
06:16:05evanno better way to learn.
06:16:19drbrainevan: why does IO#sysread do String.new(size)
06:16:23drbrainthat's not ruby
06:16:39evanold hack
06:16:41evanfeel free to change it
06:16:53drbrainyou are a bad person
06:16:59evanso are you.
06:17:01evanso there
06:17:03evanpfffft
06:17:05drbrainyes
06:18:03evanI think someone added a class method to String to get a sized string back
06:18:11evanthough, it was done as a primitive :/
06:21:33drbrainThe museum director from Buenos Aires had something special in her luggage: a copy of a long version of Fritz Lang's Metropolis, including scenes believed lost for almost 80 years.
06:21:37drbrain!!!
06:21:40drbrainwow
06:21:47jbarnetteja
06:23:56dfg59 enters the room.
06:30:41mitchellvrileyevan: here's what git diff gave me: http://pastie.org/226896
06:32:07mitchellvrileythe reason for getting rid of those statics is in http://gcc.gnu.org/gcc-4.3/porting_to.html
06:32:14mitchellvrileyunder 'Explicit template specialization cannot have a storage class'
06:32:41mitchellvrileyfor you it might not work without them
06:32:48mitchellvrileyI dunno
06:38:41thehcdreamer enters the room.
06:38:55dbussinkmitchellvriley: did you run the tests?
06:39:16jbarnetteI am THIS close to going back to vim
06:40:49anonuserGo emacs.
06:41:33mitchellvrileydbussink: it doesn't compile for me without the changes
06:41:59mitchellvrileydbussink: with the changes, it fails 3
06:42:13mitchellvrileyemacs ftw
06:43:46anonuserremove the inlining.
06:45:15anonuserThat will probably do nothing...
06:45:15mitchellvrileyhuh?
06:46:28anonuserI thought it was crashing, but my bad.
06:48:13anonuserBah too tired to see if inlining makes sense in that case.
06:49:22mitchellvrileythat inlining was already there, I just had to get rid of the 'static's
06:51:28jbarnettedrbrain, evan: ah, autotest expects exceptions raised in a signal handler to actually *do* something :)
06:54:59boyscout1 commit by John Barnette
06:55:00boyscout * Fixing an elderly typo: pus != puts.; fb7a30c
06:55:11thehcdreamer leaves the room.
06:59:18rubuildius_ppcJohn Barnette: fb7a30c04; 2535 files, 8411 examples, 28042 expectations, 0 failures, 0 errors
07:02:09rubuildius_ey64John Barnette: fb7a30c04; 2535 files, 8412 examples, 28020 expectations, 0 failures, 0 errors
07:02:14krsh enters the room.
07:04:46rue leaves the room.
07:06:03rue enters the room.
07:06:41ezmobius leaves the room.
07:07:10rubuildius_amd64John Barnette: fb7a30c04; 2535 files, 8412 examples, 28022 expectations, 0 failures, 0 errors
07:07:48benburkert leaves the room.
07:14:32jbarnettehttp://pastie.org/226913
07:14:42jbarnettegah, not sure about the best way to start speccing signals
07:16:54dfg59 leaves the room.
07:23:06evanjbarnette: the default INT handler works
07:23:51evanshould raise in a signal cause the exception to be delivered to whatever was currently running?
07:27:52jbarnetteevan: it does in MRI, dunno about "should" :)
07:28:28jbarnettewell, it *appears* to in MRI: I've only tried it with INT
07:29:13evancheck out kernel/loader.rb
07:29:30evanwe can make automatically re-send exceptions to the thread that was running
07:30:05mutle_ leaves the room.
07:30:11jbarnettekapow
07:30:26jbarnetteI'll put something similar in signal.rb if you're cool with that
07:30:46evanshould be
07:31:05mutle enters the room.
07:33:23jbarnetterubyspec's current trap_spec is extra awesome :)
07:39:00boyscout1 commit by John Barnette
07:39:01boyscout * Reraise exceptions from signal handlers in the main thread.; ad4ecd8
07:40:21antares enters the room.
07:40:38evanjbarnette: thats probably not the right behavior.
07:41:02jbarnetteevan: what's the right way?
07:41:19evanyou're passing the exception to only the main thread
07:41:24evancan you find out if thats the actual behavior?
07:41:36evanor if the exception is executed by the thread that was running
07:41:43jbarnetteevan: ah, yup, checking
07:43:15rubuildius_ppcJohn Barnette: ad4ecd87c; 2535 files, 8411 examples, 28042 expectations, 0 failures, 0 errors
07:43:19rueMorning
07:43:35jbarnetteevan: http://pastie.org/226924
07:43:44jbarnettereally does appear to go to the main thread
07:43:57evanthat doesn't tell me anything
07:44:05evanbecause join re-raises the exception
07:44:58evanah ah
07:44:59evani see.
07:44:59evanyeah
07:45:02jbarnette:)
07:45:03evanit's raised on main
07:45:11evanwhich is easier to implement.
07:45:20jbarnettesorry, that was a crap testcase
07:45:38gnufied enters the room.
07:46:00jbarnetteevan: knowing that, are you more comfortable with what I did? or am I still off-base?
07:46:04jtoy leaves the room.
07:46:13rueevan: Static init in the .hpp will fail on some compilers
07:46:16evani'm comfortable with you.
07:46:37jbarnetteevan: let's not get personal here
07:46:53evanrue: where is that?
07:47:02jbarnettecool, only one more little autotest quirk to go then!
07:47:16rubuildius_ey64John Barnette: ad4ecd87c; 2535 files, 8412 examples, 28020 expectations, 0 failures, 0 errors
07:47:40rueevan: vm.hpp, I think
07:47:41anteaya leaves the room.
07:47:58rueTechnically I think an integer literal _should_ work but it does not everywhere
07:48:38evanthe default_bytes one?
07:49:03evani had to keep adding qualifiers on there to get g++ to take it
07:49:07evanso i wouldn't be surprised
07:49:10rueMm, probably, some static member var I recall there
07:49:11evancould just be a #define
07:49:24rueYou can just init it in the .cpp
07:49:40evanit's used as the default value for bytes to VM
07:49:42evanthats why it's there.
07:49:47evanyou can't put in in the .cpp file
07:51:31rueAh, maybe a define or even an enum then
07:51:51anteaya enters the room.
07:51:51rueI will be at the computer in a bit. Just testing out this cellphone connection :)
07:52:25jtoy enters the room.
07:52:36rubuildius_amd64John Barnette: ad4ecd87c; 2535 files, 8412 examples, 28022 expectations, 0 failures, 0 errors
07:53:03evanrue: i'm headed to bed.
07:54:28rueYeps, I will see if I have any minor touchups. Maybe try compiling with Icc :P
07:54:38dbussinkevan: night
07:54:49evanrue: ok.
07:54:50evannite.
08:00:08qwert666 enters the room.
08:03:12anteaya leaves the room.
08:05:48gnufied leaves the room.
08:05:51blakewatters leaves the room.
08:06:51anteaya enters the room.
08:07:29anteaya leaves the room.
08:12:36jtoy leaves the room.
08:13:23thehcdreamer enters the room.
08:23:11Fullmoon enters the room.
08:24:37Fullmoon leaves the room.
08:26:19ryanlowe leaves the room.
08:29:53blakewatters enters the room.
08:33:47qwert666 leaves the room.
08:35:35octopod enters the room.
08:38:44imajes leaves the room.
08:42:46Arjen_ enters the room.
08:53:23crafterm leaves the room.
08:53:36jbarnette leaves the room.
09:04:34rue leaves the room.
09:04:44NoKarma enters the room.
09:05:33rue enters the room.
09:05:57mahargstatic const int x = 1; in a header is valid C++
09:06:38mahargstatic + const essentially means inline for a variable declaration
09:11:04blakewatters leaves the room.
09:44:25gnufied enters the room.
09:58:02octop0d enters the room.
10:02:04octopod leaves the room.
10:04:25rue leaves the room.
10:05:03rue enters the room.
10:11:46radarek enters the room.
10:25:36chris2 enters the room.
10:40:34hosiawak enters the room.
10:44:15Yurik leaves the room.
11:04:23rue leaves the room.
11:05:34rue enters the room.
11:14:00Spakman_ enters the room.
11:38:42krsh leaves the room.
11:39:31michalw enters the room.
11:41:53dctanner enters the room.
11:46:18Fullmoon enters the room.
12:04:18rue leaves the room.
12:05:05rue enters the room.
12:12:01cremes_ leaves the room.
12:27:08mutle_ enters the room.
12:29:18mutle__ enters the room.
12:43:45mutle_ leaves the room.
12:45:24mutle leaves the room.
12:49:40Maledictus enters the room.
13:04:00rue leaves the room.
13:04:35rue enters the room.
13:14:50benny enters the room.
13:16:09yasuhito enters the room.
13:23:26octopod leaves the room.
13:23:57octopod enters the room.
13:40:50qrush enters the room.
13:43:24imajes leaves the room.
13:49:20AndrewO enters the room.
13:50:25cremes enters the room.
13:56:04mjwhitt leaves the room.
13:56:39Fullmoon leaves the room.
14:00:36Yurik enters the room.
14:02:09Yurik leaves the room.
14:03:50rue leaves the room.
14:06:12chad enters the room.
14:10:06rue enters the room.
14:11:22mutle_ enters the room.
14:12:06mutle__ enters the room.
14:12:16mutle_ leaves the room.
14:13:54headius enters the room.
14:15:18headius leaves the room.
14:19:45headius enters the room.
14:30:55anteaya enters the room.
14:31:36mutle leaves the room.
14:36:30imajes enters the room.
14:38:15Fullmoon enters the room.
14:39:06mutle enters the room.
14:46:32neelance_ enters the room.
14:46:56moofbong enters the room.
14:47:46pauldix enters the room.
14:48:37mutle_ enters the room.
14:56:09krsh enters the room.
14:57:10mutle leaves the room.
14:57:39wmoxam enters the room.
14:57:54mutle__ leaves the room.
15:02:50Lars_GI am so sexy it hurts
15:03:54rue leaves the room.
15:04:37rue enters the room.
15:04:38heycarsten enters the room.
15:16:50NoKarma enters the room.
15:17:39pauldix leaves the room.
15:18:18pauldix enters the room.
15:18:31lchin leaves the room.
15:20:27dbussinktoo
15:26:01hemulen enters the room.
15:30:56benny enters the room.
15:31:26pauldix leaves the room.
15:32:36pauldix enters the room.
15:37:39Maledictus leaves the room.
15:41:44benny leaves the room.
15:43:53Yurik enters the room.
15:48:15pauldix_ enters the room.
15:55:06mutle enters the room.
15:57:36mutle__ enters the room.
15:59:10twbray enters the room.
16:00:12anteaya leaves the room.
16:03:40rue leaves the room.
16:10:09rue enters the room.
16:10:19twbray leaves the room.
16:10:35rphillips leaves the room.
16:11:04pauldix leaves the room.
16:11:45mutle leaves the room.
16:12:52rphillips enters the room.
16:14:12mutle_ leaves the room.
16:16:54dctanner enters the room.
16:18:34mutle__ leaves the room.
16:19:26mutle enters the room.
16:25:10twbray enters the room.
16:26:10dc_ leaves the room.
16:32:38twbray leaves the room.
16:38:41blakewatters enters the room.
16:41:46dfg59 enters the room.
16:45:24gramos enters the room.
16:48:11gramosevan ping
16:51:17rueLooks like it may still need an empty decl to reserve the space. These should be rare systems though
17:02:36pauldix_ leaves the room.
17:03:50rue leaves the room.
17:04:40rue enters the room.
17:09:44NoKarma enters the room.
17:10:06benburkert enters the room.
17:15:07blakewatters leaves the room.
17:16:50benny enters the room.
17:16:59NoKarmazenspider: ping
17:17:18blakewatters enters the room.
17:17:48hemulen enters the room.
17:18:50krsh_ enters the room.
17:21:03zachad enters the room.
17:22:41yasuhito leaves the room.
17:24:03jbarnette enters the room.
17:25:39benburkert leaves the room.
17:26:20hosiawak leaves the room.
17:26:58benburkert enters the room.
17:31:14naeu enters the room.
17:33:21blakewatters leaves the room.
17:33:33krsh leaves the room.
17:41:51hemulen_ enters the room.
17:41:54hemulen leaves the room.
17:42:09thehcdreamer leaves the room.
17:42:27hemulen_ leaves the room.
17:47:40Fullmoon leaves the room.
17:51:59evanmorning
17:52:09rueHoobla
17:53:09evanfog says: meeeooooow
17:53:14atmos leaves the room.
17:53:33atmos enters the room.
17:57:55edwardam enters the room.
18:01:17twbray enters the room.
18:01:21ruePrrrp
18:03:22rue leaves the room.
18:04:45octopod leaves the room.
18:06:06benny leaves the room.
18:07:01gramosHi evan
18:07:13nicksieger leaves the room.
18:08:13gramosI sent this patch http://rubinius.lighthouseapp.com/projects/5089/tickets/621-patch-for-contributors-file-generation
18:09:11rue enters the room.
18:10:05gramosAnd I am thinking add another improve for this task, can you give me the commit bit?
18:10:48evansure
18:10:52evanI just need your ssh key
18:10:57evanplease pastie it
18:11:32nicksieger enters the room.
18:13:15rueevan: All builtins can go in a builtin[_classe]s/ ?
18:13:58krsh_ leaves the room.
18:13:58evandirectory wise?
18:14:02evansure, we could move them.
18:15:03radarek leaves the room.
18:19:37blakewatters enters the room.
18:20:52lchin enters the room.
18:22:00cremes leaves the room.
18:24:03rphillips leaves the room.
18:24:15gramosevan: ok
18:24:21neelance__ enters the room.
18:26:39gramosmy ssh key: http://pastie.org/227236
18:27:39neelance_ leaves the room.
18:27:58evanok, added!
18:28:38neelance__ leaves the room.
18:32:01nakajima enters the room.
18:34:56gramosthanks!!
18:35:11hemulen enters the room.
18:46:38zachad leaves the room.
18:47:29zachad enters the room.
18:47:42rudebwoy_ leaves the room.
18:47:50rudebwoy enters the room.
18:53:14lchin leaves the room.
18:56:57nexcastellanI have a specific question about the subtend layer, method dispatch, and private methods. Anyone around who could maybe help me out?
18:57:17nakajima leaves the room.
18:58:09evannexcastellan: sure, wassup
18:58:49nexcastellanOkay, the deal is wrt rb_call_super. Works fine if the method is public. But if I'm trying to do this in the initialize method, it doesn't work. I've confirmed that this is because initialize is private. (more)
18:59:07evanah, ok.
18:59:11nexcastellanSo the call to rb_funcall (actually, rb_funcall2) to call initialize on the superclass fails because it can't find it. Because it is private.
18:59:16evanyeah
18:59:17evanwell
18:59:19nexcastellanI'm wondering how I should fix this.
18:59:24evanshould rb_funcall be able to call private methods?
18:59:27evanif so
18:59:30evanwe can just have it always do that
18:59:33evanwhich is pretty easy
18:59:52evanif not, then we'll have to add another arg to push_and_call or something
18:59:57evanand not go via rb_funcall
19:00:02naeu leaves the room.
19:00:12nexcastellanI _seem_ to remember that there's an argument you can pass to do private method lookups, but I could be thinking something entirely different. Most likely I am.
19:00:38evanheh
19:00:44tarcieriI thought they talked for a bit about adding another function like rb_funcall() which could call private methods then ended up not
19:01:05nexcastellanYeah, I see no way in rb_funcall (in MRI) to do private lookups.
19:01:16dgtizedseem to be having trouble when it gets to building fastthread
19:01:18nexcastellanI'll run a test in MRI to see if it does them anyway, which I seriously doubt.
19:01:36dgtizedanyone else having problems at that step?
19:01:37evannexcastellan: ok
19:01:42evannexcastellan: well, if there isn't
19:01:46nexcastellanHow would I modify push_and_call to do private method lookups, if that's the way I have to go?
19:01:50evanlets go ahead and add rb_funcall_private
19:01:57evanwhich rb_call_super can use
19:02:03thehcdreamer enters the room.
19:02:07evanthough, how does rb_call_super use rb_funcall?
19:02:17evanseems like that wouldn't work
19:02:25evanbecause you can't tell rb_funcall where to start looking up
19:02:48nexcastellanOh, rb_call_super actually just calls push_and_call directly, I now see, after mucking about with the klass.
19:03:03nexcastellanI thought I was doing an rb_funcall there, turns out I'm not.
19:03:10ijcd enters the room.
19:03:15rue leaves the room.
19:03:15evanah, ok.
19:03:20nexcastellanOkay, so it looks to be just a modification to push_and_call.
19:03:42antares leaves the room.
19:03:57nexcastellanSo, how do I tell the vm to include private methods on the lookup?
19:03:59nakajima enters the room.
19:04:16boyscout1 commit by John Barnette
19:04:17boyscout * Make sure signal handlers don't block themselves.; 9e63b4d
19:04:42rue enters the room.
19:05:57nexcastellanAnd, evan, is the Smalltalk blue book still going to be relevant after you push the C++ stuff?
19:07:01