Index

Show enters and exits. Hide enters and exits.

00:01:11d2dchat leaves the room.
00:01:30dgtizedhmm, has anyone tried running bin/ci -tr lately?
00:02:07RyanTM enters the room.
00:02:10dgtizedperhaps it's the particular build of ruby I am running (1.8.6 patchlevel 36) but I get 17 failures on bin/ci -tr
00:02:33rueI see a few too, sec
00:02:47brixendgtized: you need to use the most recent patch of ruby
00:02:56brixendgtized: we're not supporting specs on earlier patch levels
00:04:00rueI have the same on 111
00:04:09rueTime, #pack and #% mostly, some others
00:04:29brixenrue: yeah, there are a few, but there were more for me on 36
00:04:55brixenanyway, the ones on p111 need to be fixed
00:05:08dgtizedwhat is the latest patchlevel?
00:05:15brixenp111
00:05:20brixenhttp://www.ruby-lang.org/en/downloads/
00:05:34kAworugot 25 failure with 113. also pack, bignum (maybe 64b related?), Time,...
00:05:55rueWhat is this 113?
00:05:57dgtizedyea I know where to get it, I just have been keeping track of 1.9 head, and just leave the ubuntu 7.10 version for ruby
00:06:28kAworurue> ruby 1.8.6 (2007-12-03 patchlevel 113) [x86_64-linux]
00:06:42kAworurue> (~)1.8.6_p111-r1
00:07:01kAworurue> i don't understand :(
00:07:09d2dchat enters the room.
00:07:15rueHas to be an OS patchlevel
00:07:38kAworurue> yes. not the stable version.
00:08:25mtodd enters the room.
00:08:49crazeinc enters the room.
00:13:30mtodd_ leaves the room.
00:16:08lstoll enters the room.
00:16:57drbrainno, 113 is an official tag
00:17:17drbrainsee tags/v1_8_6_113
00:17:19kAworudrbrain> yes but it's not the stable version.
00:17:33drbrainyes
00:17:51drbrainbut, it is not an OS-specific release
00:17:58kAworui downgraded to 111 but still 25 erors.
00:18:16kAworudrbrain> yes you right.
00:18:44brixenkAworu: yeah, they need to be fixed
00:19:18brixenspecs should pass latest stable release on any platform with no errors
00:19:34brixenthere, no ambiguity
00:19:53brixenjust redundancy :P
00:20:14brixenall specs should pass on the latest stable release on any platform
00:20:59ruedrbrain: Ah, that is where it comes from
00:21:39drbrainrue: yeah, they make official patchlevel changes periodically, and tag them in SVN
00:21:57drbraincurrently, the ruby_1_8 branch and trunk are at patchlevel 5000
00:24:38benburkert enters the room.
00:24:52kAworu"blablabla".rindex(/\Z/, 5)
00:25:21kAworushould return nil right ? (second arg is the limit, rindex should not search after the 5th char)
00:26:24kAworuit returns 9 under MRI. it's strange, it doesn't take the second argument. if it's 5, 1 or 0 it always returns 9
00:27:11kAworu"blablabla".rindex(/$/, 8) returns nil (if second arg is 9, it returns 9)
00:27:21kAworuMRI bug ?
00:31:42rueThis is crazy.
00:31:49kAworuhttp://www.regular-expressions.info/anchors.html
00:32:24kAworuafter reading this, $ and \Z should have the same behavious if there isn't line-break in the string (this is the case with "blablabla")
00:34:21ruekAworu: It is possible that we have rindex implemented as 'first going backwards' instead of 'last going forward'
00:34:46rueWhich makes sense implementation-wise, just need to substring first, I think
00:38:34wvl enters the room.
00:39:54crazeinc leaves the room.
00:40:37radarek leaves the room.
00:40:45rueevan: The new #module_method specs expose an interesting problem, if you run bin/mspec spec/ruby/1.8/core/module/module_function_spec.rb
00:40:51rueWell, once I push them
00:42:18kAworurue> you're right. in String#rindex we're calling Regexp#match_region("blablabla", 0, 9, false) and false is the forward argument
00:42:47agile enters the room.
00:43:03boyscout5 commits by Eero Saynatkari
00:43:04boyscout * Updated Module excludes.; a32f16d
00:43:05boyscout * More Module#module_function specs in #eval and #module_eval.; df731f3
00:43:06boyscout * Fixed Module#module_function.; a0b1b59
00:43:06kAworurue> but rubinius successfully pass this test. it's MRI that have a really strange return value since it's greater than the max.
00:43:07boyscout * Better Module#module_function specs.; 6358e58
00:43:08boyscout * Various whitespace removal in preparation to fix #module_function.; 1646bb6
00:43:37ruekAworu: Ah, I misunderstood
00:43:57smartocci leaves the room.
00:43:58kAworurue> you though it was rubinius that return 9 ?
00:45:18rueRight
00:45:34jessop leaves the room.
00:46:04drbraineww, more null byte truncation issues
00:46:54rueAlright, people, TWO patches left to review and commit.
00:47:20rueI will not be able to do the SHA2 until I get SHA1 resolved, so feel free to check it.
00:48:05rueBe back after the debate.
00:48:21drbrainrue: ??
00:48:52turtletime enters the room.
00:49:15ruedrbrain: Go forth and review+apply patches from LH
00:49:55drbrainrue: I mean, SHA1/2
00:50:14rueSHA1 fails in FFI somewhere
00:50:21rueAll Digests do I think
00:50:32drbrainah, ok
00:51:10smartocci enters the room.
00:53:31drbrainis compress_inflate or compress_deflate actually used anywhere?
00:54:05drbrain(also, compress_inflate() has a bug where it uses bfromcstralloc(), which reads \0 terminated strings)
00:54:06rubuildiusEero Saynatkari: a32f16d92; 4661 examples, 17063 expectations, 1 failure, 0 errors; http://rafb.net/p/6amqms52.html
01:00:03tongueroo leaves the room.
01:00:22tongueroo enters the room.
01:01:28mtodd_ enters the room.
01:06:38mtodd leaves the room.
01:07:51geekounet leaves the room.
01:07:57geekounet enters the room.
01:08:06lopex leaves the room.
01:16:47imajes enters the room.
01:17:18smtlaissezfaire enters the room.
01:19:15lorenzod8n leaves the room.
01:21:34skaar leaves the room.
01:24:41djwhitt enters the room.
01:24:49scoundrel leaves the room.
01:31:57eventualbuddha enters the room.
01:41:51rueHm, I think that unexcluded incorrectly
01:45:27technomancy leaves the room.
01:50:26obvio_ enters the room.
01:55:33smartocci leaves the room.
01:55:58headius enters the room.
01:57:09twbray leaves the room.
01:59:45kofno leaves the room.
02:03:24rueWell that is indeed broken.. will fix
02:05:39obvio171 leaves the room.
02:07:23eventualbuddha leaves the room.
02:10:16kofno enters the room.
02:19:41drbrainfound a bug in Marshal
02:21:08drbrainsomething is not getting added to @objects
02:28:41headiusis ^C busted still?
02:28:58drbrainbusted how?
02:29:13headiuswhen I run long scripts I usually can't C-c to kill them
02:29:39drbrainnot sure
02:30:13headiussometimes it works, sometimes not
02:30:13drbrainhrm, it's probably dumping that's busted
02:30:36drbrainsince the @ value is 5 too high
02:30:42drbrainerr, low
02:31:18obvio171 enters the room.
02:33:54smartocci enters the room.
02:35:37mtodd enters the room.
02:36:24obvio leaves the room.
02:41:25mtodd_ leaves the room.
02:45:56_mutle enters the room.
02:46:24VVSiz_ enters the room.
02:46:37tongueroo leaves the room.
02:47:07technomancy enters the room.
02:48:26MenTaLguY enters the room.
02:48:54technomancyso i think i've determined a bug being caused by something very low-level calling Hash#initialize without Hash.new
02:50:13technomancyit's pretty clear that Hash#initialize and Hash#setup have to be two separate methods
02:50:54technomancybut that only works if you can guarantee that Hash.new (or #setup) is the only caller of Hash#initialize
02:53:00twbray enters the room.
02:53:43dodecaphonic leaves the room.
02:54:16VVSiz leaves the room.
02:59:45twbray leaves the room.
03:00:15turtletime leaves the room.
03:00:42be9 enters the room.
03:01:02tarcierievan?
03:01:28tarcierihttp://nondot.org/sabre/LLVMNotes/ExplicitlyManagedStackFrames.txt <--- if you're interested
03:02:13ruetechnomancy: Well, .allocate might be a valid case but I am a bit iffy on that
03:02:25mutle leaves the room.
03:02:28ruetechnomancy: At some point, it always becomes an issue of "well, what did you THINK would happen?"
03:02:47rueThe user bears a lot of the responsibility
03:03:04technomancyrue: in this case i think "the user" is something from bootstrap
03:04:24ruetechnomancy: Grepping does not show much.. do you have the code? Or are you seeing this from the patch?
03:04:31rueBe back in a moment
03:04:31technomancythe caller of #initialize that doesn't go through setup is somehow coming from a Rubinius.asm call
03:05:06technomancyrue: here's the code that's causing it: http://pastie.caboo.se/146053
03:05:31technomancysince I'm not sure what patches you've already applied i just included the first page of Hash.rb
03:15:28turtletime enters the room.
03:17:11rueLooking
03:18:07technomancyI get: Hash hasn't been set up! kernel/bootstrap/class.rb:13:in `new'kernel/core/module.rb:40:in `initialize'kernel/core/class.rb:20:in `initialize'
03:19:08technomancyi'm pretty sure the setup/initialize distinction in that paste is what's needed to match MRI
03:20:10drbrainyay! the marshal_dump'd object wasn't getting added to the list
03:21:24ruetechnomancy: I see something different, actually
03:21:33nicksieger leaves the room.
03:21:37technomancyoh?
03:21:42DefilerWhy would you want to & a number that had all zeroes except the last four bits with 15?
03:21:54Defilere.g. 00001100 & 15
03:21:57enebo leaves the room.
03:22:01DefilerIt seems like a no-op to me, right?
03:22:21Defileror am I being stupid again?
03:22:29Smirnovits not
03:22:44rue15 is 0b1111
03:22:49Smirnovyep
03:22:50technomancythat sounds right
03:22:53Smirnovnot 0b1100
03:22:57DefilerI know
03:23:04Defiler00001100 & 15
03:23:05Smirnovyou asked about 0b1100 though
03:23:07DefilerNot == 15
03:23:12rueSo 1100 & 15 => 1100; 1110 & 15 => 1110
03:23:20Defilerprecisely
03:23:27rueTypically this would be a flag check
03:23:32DefilerIt seems like it is always a no-op with a number that has only the last four bits nonzero
03:23:47Smirnovits only a noop if the 2 operands are constant
03:24:11technomancyrue: what do you think is causing the hash craziness?
03:24:12DefilerThe actual code does this.. it asserts that the number is 32 bits wide.. then it shifts right by 28 bits, and ands it with 15
03:24:25Smirnovah
03:24:39Defileram I missing something, or is that pretty no-oppy? Heh
03:24:40Smirnovsign bit
03:24:49Defileraaaaah nice
03:24:49Defilerthanks
03:25:53nicksieger enters the room.
03:26:05Defilerhrm.. would that only work if it and-ed it before shifting, though?
03:26:42DefilerAlso, the function takes an unsigned integer wtf
03:27:56technomancyare there plans to add #tap or #affect or #returning or something?
03:28:29zenspiderI sure hope not
03:28:55technomancybut you can save like two lines of code per invocation...
03:29:01SmirnovDefiler: hrmm.. and this is C code? then it should be noop
03:29:24SmirnovDefiler: dont worry about it the compiler will fix it after a strength reduction optimization
03:29:49technomancyisn't 1.9 getting #tap anyway?
03:30:14headiusit's not a noop if you're trying to mask out the high nibble
03:30:36headiusI just wanted to say nibble
03:30:47technomancythought it was spelled nybble
03:30:55twbray enters the room.
03:31:24DefilerSmirnov: I can point you at the line in question if you want to take a look
03:31:30SmirnovDefiler: paste bin it?
03:31:31ruetechnomancy: It is the globals hash
03:31:33Defilerk
03:32:10Defilerhttp://rafb.net/p/empPsa47.html
03:32:12zenspidertechnomancy: returning never saves you anything, and runs slower... Haven't compared tap.
03:33:00middayc_ leaves the room.
03:33:45technomancyrue: should it be fixed to use Hash.new, or is it appropriate for it to allocate and initialize directly?
03:34:14technomancyzenspider: i thought returning was an alternate proposed name for tap/affect...
03:34:31ruetechnomancy: I think it might be the compiler side, sec
03:34:55technomancyoy, dinner time... bbiab
03:34:58technomancy&
03:35:03zenspider*shrug* I dunno... I just know I looked at it, measured it, and found it severely lacking on all fronts
03:35:09MenTaLguYI really just invented tap as a debugging tool
03:35:13MenTaLguYit's great for that
03:35:21MenTaLguYthere aren't many instances when I would want to see it in production code
03:35:44zenspiderand for that it is fine...
03:35:50zenspiderbut the railz0rs...
03:36:09MenTaLguYwell, I say "invented" loosely. I'm sure a lot of other people came up with the same thing, they just didn't publish
03:37:01MenTaLguYwell, honestly I don't know what to do about Rails in general
03:37:24jeremydurham enters the room.
03:37:27MenTaLguYthe low end of Rails is going to take whatever sharp implements we give them and stab themselves in the eyeballs repeatedly no matter what
03:37:28Smirnovhmm does rubinius run rails yet
03:37:29zenspiderlight it on fire?
03:37:34zenspiderincluding DHH?
03:37:39zenspiderSmirnov: oh hell no
03:37:52zenspiderMenTaLguY: heh. true
03:38:01zenspideralso, http://www.youtube.com/watch?v=hkqqMPPg2VI
03:39:51tarcierihey MenTaLguY, what were you thinking as far as a distributed actor protocol went?
03:40:16tarcieriI think DRb's the place to start, but... I just read about Scala implementing the Erlang wire protocol
03:40:17zenspiderMenTaLguY: liked the interview btw
03:40:24zenspiderI need to read up on that stuff more
03:40:45zenspiderI'm a thread-y simpleton these days...
03:40:53MenTaLguYzenspider: thanks
03:40:53tarcieriheh
03:41:03tarcieriis actually starting to use Ruby Actors at work
03:41:07MenTaLguYtony: the Erlang wire protocol is a little hairy, I'm not sure how well it maps to Ruby also
03:41:22MenTaLguYtony: have you talked to Scott Fleckenstein (Erlectricity) at all yet?
03:41:34tarcieriMenTaLguY: no, but I've been talking to the guy who did RBridge
03:41:37tarcieriChuck Vose, I guess?
03:41:56MenTaLguYah, k
03:42:05MenTaLguYyeah, talk with one of those guys who's done it anyway
03:42:23MenTaLguYI think I've kind of decided that I don't want to worry about the wire protocol too much
03:42:31MenTaLguYI mainly just care about the object protocols for now
03:42:34tarcieriI thought Erlectricity just used Erlang terms as text and parsed them on the Erlang side
03:42:43MenTaLguYit very well might
03:42:50MenTaLguYI didn't look closely at how it worked
03:42:59tarcieriI'm pretty sure it's not using the distributed Erlang wire protocol
03:44:08ruetechnomancy: Eugh, I think it was simple
03:46:49MenTaLguYanyway, the main thing is not to do anything that requires the protocol to be synchronous
03:46:59MenTaLguYI think that mostly rules out DRb
03:46:59knowtheoryI think this is my favorite quote for the week: Is this really putting the cart before the horse? How do you know rubinius will even be stable/performant enough to handle this? MenTaLguY: No. It's always time for Lisp.
03:47:12knowtheoryIt is in fact, always time for Lisp.
03:47:24tarcieriMenTaLguY: hmm, true enough
03:47:55RyanTM leaves the room.
03:48:10MenTaLguYI think for a first cut it would be fine if you sent a stream of Marshalled [type, actor, payload] tuples
03:48:19MenTaLguYtype being link, unlink, exited, message
03:48:22MenTaLguYor something like that
03:48:31tarcieriyeah
03:48:35MenTaLguYpayload would itself have to be marshalled
03:48:41MenTaLguYso that you could always unmarshal the envelope
03:48:41tarcieriyeah
03:48:47MenTaLguYor perhaps it should alternate header/payload
03:48:51MenTaLguYso you aren't double-marshalling
03:49:01MenTaLguYthough I guess there's not appreciable overhead for marshalling a string twice
03:49:01tarcieriI already have a filter for Revactor::TCP to do length prefix framing
03:51:04MenTaLguYyeah, I'd say just do a simple duplex streaming protocol based on Marshal
03:51:06MenTaLguYto start
03:51:35tarcieriIt's not something I need now so I probably won't work on it for awhile
03:51:36MenTaLguYand maybe add just enough so that protocol versions can be negotiated
03:51:39MenTaLguYnods
03:51:51RyanTM enters the room.
03:52:01tarcieriI'm doing something to the effect of the Erlang http module now
03:52:30twbray leaves the room.
03:52:40MenTaLguYthat's the great thing about asynchronous messaging
03:52:47drbrainstabs Marshal
03:52:48MenTaLguYyou can really just throw messages around over whatever
03:52:53tarcieriyeah
03:53:08tarcieriDistribuStream (my peer-to-peer thingy) uses length-prefix framed JSON
03:53:17MenTaLguYnods
03:53:37tarcieriin the form: ['command', {'operand1': 'value1', 'operand2': 'value2', ... }]
03:53:49tarcieriwell, s/command/messagid/
03:53:52tarcieribleg
03:54:03tarcieriI need to set one of these two laptops down
03:54:16headiusdrbrain: when we were trying to get marshal working I spent many hours staring at hex dumps
03:54:21headiusI think I saw the mind of god in there somewhere
03:54:40drbrainheadius: I fixed half of my problem
03:54:47drbrainnow I'm trying to find the other half
03:55:00DefilerAnyone know if Tom (of libtom* fame) responds to emails?
03:55:23headiuswe still run into little issues, especially with unusual subtyping relationships
03:55:35tarcieriMenTaLguY: I really need to get those interthread message notifiers in place... they solve a lot of problems :/
03:56:34tarcieriMenTaLguY: I noticed if the root Actor calls receive the scheduler just spins now :/
03:56:58tarcieriurgh
03:57:23tarcierias opposed to Erlang, where it blocks, because it can potentially get events in the future
03:58:12ruetechnomancy: The setup is the problem, the instance variables are not getting set
03:58:44technomancyrue: you mean setup is not getting called, or it's getting called and not doing what it should?
04:00:25rueThe latter. If you add the ivars to #initialize, it works fine.
04:00:39headiusdrbrain: what was the first half
04:01:22drbrainheadius: the marshal_dump'd object wasn't added to the links table
04:01:28technomancyrue: i know it works with the ivars getting set in initialize, but I suspect that's because someone's calling initialize directly instead of going through Hash.new
04:01:33technomancywhich calls setup, then initialize
04:01:44headiusdrbrain: damn link tables are a constant source of sneaky bugs
04:02:01technomancyadding the ivar setup to init breaks because you should be able to override init in a subclass and still have a working hash
04:02:16technomancydoes that make sense?
04:04:04technomancyrue: can you point me to where the globals hash is interfering?
04:04:28rueNm that
04:05:47technomancyyou would think declaring initialize as private would help. =)
04:06:21technomancyit works if you add to #initialize: setup if [@bins, @keys, @values, @entries].any?{|i| i.nil? }
04:06:27technomancybut that's six kinds of ugly
04:10:52MenTaLguYreturns
04:11:45MenTaLguYtarcieri: well, maybe I can look at the notifiers over the weekend
04:13:11mnaberez leaves the room.
04:14:56technomancyhmmm... kernel/bootstrap/class.rb:13 calls Hash#initialize directly like 20 times just to get to the repl
04:16:50technomancyoh duh i'm retarded... somehow a hash is getting created before Hash.new is defined, and so Class.new is calling initialize
04:16:59technomancyi was thrown off by the whole Rubinius.asm thing
04:17:21evancourse
04:17:45evanHash.new calls to Class.new, since it's a subclass
04:17:46technomancybut how you could have an invocation of Hash#initialize before .new is defined is beyond me
04:17:58evanyou should define Hash.new directly
04:18:02evanclass Hash
04:18:06evandef self.new(...)
04:18:08evan...
04:18:08evanend
04:18:09evanend
04:18:32technomancyevan: yeah, i'm doing that
04:18:35technomancyI may be dumb, but i'm not that dumb. =)
04:19:17technomancypastie is slow, sheesh
04:19:29twbray enters the room.
04:20:05technomancyhttp://rafb.net/p/fsDLNh81.html
04:21:42rueLooking at Struct now
04:25:25be9Guys, I've noticed that Marshal.dump in primitives (cpu_marshal.c) and in Ruby are incompatible in storage formats for Bignums. Was it done intentionally?
04:26:13ruecpu_marshal is not Marshal, it is used for .rbc
04:26:57be9Well, it is, via kernel/bootstrap/marshal.rb
04:29:36technomancyso the real question is why Hash.new is getting skipped in favour of Class.new
04:32:30evantechnomancy: why do you think it's being skipped?
04:32:46technomancyevan: because of deep magic that is beyond my ken.
04:32:53evanit's not.
04:33:02evando you have an example that shows it being skipped?
04:33:26drbrainbe9: see kernel/core/marshal.rb
04:33:38technomancyclearly the hash.rb file is being loaded since the initialize definition is getting picked up
04:34:12evantechnomancy: so, why do you think it's being skipped?
04:35:17drbrainI think I've almost got the user marshal formats doing things right
04:35:31turtletime leaves the room.
04:35:51technomancyevan: with my changes (in the rafb paste above) #initialize prints a stack trace if it gets called without certain ivars being set
04:36:16technomancyHash.new calls #setup (which sets the ivars) followed by #initialize
04:36:21evantechnomancy: there is no deep magic.
04:36:29rueevan: It is getting pretty deep :P
04:36:31be9drbrain, kernel/core/marshal.rb is fairly ok. it's the primitive thing that diverts from Bignum marshal implementation coming from MRI
04:36:37rueIt looks like the method table is not being set up correctly
04:36:45drbrainbe9: I don't see that
04:37:17be9drbrain, look at marshal_bignum() in cpu_marshal.c
04:37:39drbrainbe9: that has nothing to do with Marshal
04:37:43evanbe9: that is NOT the Marshal code.
04:37:45drbrainbe9: see kernel/core/marshal.rb
04:37:57technomancybbiab, sorry. =\
04:38:11rueLessee if this works
04:38:24drbrainbe9: I just dumped 10**100 on MRI and loaded it in rubinius, and vice versa
04:38:46turtletime enters the room.
04:39:01be9drbrain, sure you've done it.
04:39:14be9drbrain, what is then kernel/bootstrap/marshal.rb for?
04:39:24drbrainbytecode
04:40:44drbrainbe9: line 65 of kernel/core/marshal.rb
04:40:53drbraingive or take a few lines
04:41:08be9Okay, names are the same, implementation are close, but different.
04:41:39evanthey're completely unrelated
04:41:53evanit's a mistake that kernel/bootstrap/marshal.rb is there
04:41:56evani need to rename it.
04:42:06be9evan, well, that's my point :)
04:42:40drbrainbe9: it's not confusing when you run the Marshal specs
04:43:08be9drbrain, it's confusing if you look into the code
04:43:35drbrainbe9: do you have tags in your editor?
04:43:45drbraintags support?
04:44:49be9drbrain, I have everything in my vim. Now when I know these are different things, it's no more confusing. But it was yesterday when I played with #291
04:45:08drbrainbe9: do you use tags support in vim?
04:45:19aotearoa enters the room.
04:45:31drbrainit prevents lots of confusion, as :ts dump makes it clear where Marshal is really defined
04:46:04evani'll rename them.
04:46:04drbrainURG! so close!
04:46:38drbrainI think I've got all the right stuff in all the right places, but Gem::Specification#full_name is still wrong :(
04:47:02drbrainmaybe it's still doing stuff in the wrong order
04:47:14evantotally wrong?
04:47:31d2dchat leaves the room.
04:47:41drbrainslightly wrong
04:47:55drbrainit's the custom Marshal formats that aren't quite right yet
04:48:14solarcebrixen: ?
04:48:33drbrainI'm getting "0" as the platform, instead of "ruby"
04:48:44be9BTW, how 64-bit specs are to be done? MRI is different in some things for 32 and 64-bit, how that should be specced?
04:49:10evanbe9: there is a lot of ongonig work for 64bit
04:49:14evanso i wouldn't spec yet.
04:51:06drbrainevan: it's an off-by-one error
04:51:33evani hate those.
04:51:55drbrainyeah, I can't quite figure out which 1 it is, though
04:51:59be9evan, I would like to contribute somehow. Now I just report how specifically it fails on my box (as in #295).
04:52:44evanbe9: you should talk with Defiler
04:52:51evanhe's deep into getting 64bit working
04:54:07drbrainha, I deleted a -1 that was highly, highly suspicious earlier
04:54:13drbrainand now it works!
04:54:18drbrainwas @objects[num-1]
04:54:26jtoy enters the room.
04:55:00evanahh
04:55:04evanthe links stuff was wierd
04:55:07evannot surprising
04:55:12technomancyrue: is the method table not being set up correctly causing Tuple#initialize to get confused with Hash#initialize or something?
04:55:25drbrainwell, it wasn't adding stuff to @objects properly
04:55:28technomancythe stack trace i'm getting doesn't involve a hash getting created, just a Struct and a Tuple.
04:55:29evantechnomancy: i highly doubt it.
04:55:45drbrainfor example, the order was wrong, or some things (user defined classes) weren't added at all
04:55:59drbrainonce I got everything in the right place, it worked
04:56:04evanyay!
04:56:24technomancyevan: I'm getting a stack trace from Hash#initialize that doesn't involve the creation of any hashes, just tuples and structs.
04:56:29drbraindo you know what this @nested stuff is about?
04:56:34drbrainit looks bogus compared to MRI
04:56:37evantechnomancy: paste?
04:57:03evanno, i don't.
04:57:20technomancyevan: http://rafb.net/p/c1DfAI55.html
04:57:42evanwhat is that backtrace from?
04:57:46evanyou doing caller()
04:57:47evan?
04:57:47technomancythis is given a Hash#initialize that prints a stack trace if it was called without #setup getting called first
04:57:56drbrainMRI calls r_entry (our store_unique_object) unconditionally, so I'm going to take them all out
04:58:06technomancyyeah, caller
04:58:11evanoh
04:58:14evanok
04:58:15evanstop now.
04:58:19technomancystops
04:58:52evanwhere are you editing Hash#initialize?
04:58:54evanwhat file.
05:01:38drbrainthis dump(load(dump)) stuff needs to go
05:01:48evanwhere is that?
05:01:57drbrainall over the Marshal specs
05:02:02evanoh
05:02:03evanick.
05:02:18rueevan: The method table situation is very strange.
05:02:20drbrainyeah, since Marshal is deterministic in it's output
05:02:30evanwhat method table situation?
05:02:31technomancyevan: kernel/core/hash.rb
05:02:48technomancyshould i be elsewhere?
05:02:54evanno, thats the correct place.
05:03:21evanat this point, unless I see a full diff of what you're working on, i can't help
05:03:30evanbecause i'm lost in what you're trying to do
05:03:47technomancyfair enough
05:03:55evani can tell you though, there is no deep magic.
05:04:07evanthere is nothing that automatically skips methods or anything like that
05:04:11rueAlright, I was looking at technomancy's problem and I have tracked one issue to Struct.new which uses Class.new block form
05:04:34technomancyevan: not on purpose, anyway. =)
05:04:39rueThen uses attr_* methods
05:05:26rueBut @method_table is not getting properly initialized. In current form, it does seem to be a Hash of some kind because attr_reader does end up in Hash#set_key_cv
05:05:33rueBut all the ivars there are empty
05:05:54drbraindamnit there's 58 of these
05:05:58drbraincries
05:06:48rueAdding @method_table = Hash.new in Module#initialize actually allows the code to run but it breaks some specs that depend on a MethodTable object
05:07:12evan@method_table MUST be a MethodTable object.
05:07:25rueGood, but it is getting set to be a Hash somewhere
05:07:27evanrue: wait
05:07:28evanstep
05:07:29evanstop
05:07:35evanthere is no @method_table ivar
05:07:37evanit's @methods
05:07:40evanthats the var
05:07:44evanand it's an ivar_as_index
05:07:49rueNo, it is not
05:07:57evanwant to make a bet?
05:08:01rueSure :)
05:08:05technomancyhere's the diff: http://rafb.net/p/tlsuPd67.html
05:08:08evanoh come on!
05:08:11evanwho the fuck changed it!?
05:08:22evansomeone changed it in module.rb
05:08:26technomancythe issue is that Hash#initialize can't get redefined in a subclass if crucial ivars are getting setup in it
05:08:32technomancyso that has to be done by Hash.new
05:09:46evantechnomancy: and whats in the output?
05:09:48rueevan: However, when I remove @methods for @method_table (which is the ivar_as_index), things go back to hell
05:09:52evanshow me the output when that raise is hit.
05:10:01agardinertechnomancy: shouldn't a Hash subclass call super to initialize these things?
05:10:28technomancyevan: raise output: http://rafb.net/p/sxKe8D14.html
05:10:33evanrue: YOU!
05:10:36evanYOU CHANGED THE IVAR NAMES.
05:10:37technomancyagardiner: in theory, yes. in MRI, no.
05:10:40technomancyhehe
05:10:48evan2 days ago.
05:10:50agardinerah, ok... figures! :-(
05:11:09technomancyevan: explains why he was awful cavalier about making the bet...
05:11:13rueI changed something, yeah..
05:11:20evanchange it back.
05:11:21evanno.
05:11:59evanwait
05:12:02evanwhat the fucking hell.
05:12:04evangives up
05:12:07dewd leaves the room.
05:12:08evannevermind.
05:12:16evani wont be around for a few hours.
05:13:52be9who can comment on that? http://rafb.net/p/lCtD1350.html
05:14:47rueevan: But I did not change the ivar_as_index :)
05:15:07rueI am quite amazed it has held up this far. Lessee if we can fixeroo
05:15:08evanfrom here on out.
05:15:18evanno one is authorized to change any ivar_as_index line
05:15:25evanunless they also change the system_hints.rb file.
05:15:46evananyone found changing one but not the other will receive something bad.
05:16:18be9seems like a (0...k).map { |i| i+1 } is translated as (a (0...k)).map { |i| i+1 }, should be a ((0...k).map { |i| i+1 })
05:16:27drbrainbe9: map.rb:6: warning: (...) interpreted as grouped expression
05:16:35drbrainbe9: so, obey your 1.8 warnings
05:17:08drbrainbe9: does it work in ruby 1.8.2?
05:17:52be9drbrain, have only 1.8.6 here :)
05:18:10drbrainbe9: I think the rubinius parser is from 1.8.2ish
05:18:23evanthat didn't change between 1.8.2 and 1.8.6
05:18:26evanit can't have.
05:18:37evanthats a fundemental parser rule.
05:18:46evanbe9: what does it do on 1.8.6?
05:18:57be9evan, "works"
05:19:14evandoes
05:19:21smartocci leaves the room.
05:19:21be9a is caled on Array resulting from map
05:19:25rueHuh, looks like it has been @method_table at least since November
05:20:05evanok, good bye.
05:20:07evani'm going to watch Lost.
05:20:14rue*wave
05:23:28rueevan: Haha! It was YOU :D
05:23:32headiusoif, finally all IO specs passing again
05:24:21be9actually, there's more to that, see http://rafb.net/p/MwZ54T91.html
05:24:44be9the same line outside of the functions works as in MRI
05:25:07tongueroo enters the room.
05:25:08ruetechnomancy: Just another day at the factory :)
05:25:14technomancyrue: crazy stuff
05:25:28drbrainbe9: the bug is in the parser
05:25:29technomancybut it sounds like my patch will actually work once this is cleared up
05:25:43drbrainas parse_tree_show and shotgun/rubinius describe don't match
05:26:15technomancyrue: is it something that can be fixed soon, or should i just submit the patch with a workaround labelled "remove this when possible"?
05:26:35be9drbrain, should it get specced?
05:26:49wifelette enters the room.
05:27:02twbray leaves the room.
05:27:04drbrainbe9: somewhere in spec/ruby/1.8/language
05:28:54ruetechnomancy: I should be able to resolve this particular problem fairly quick
05:29:07rueWhether this actually resolves the Hash.new issue remains to be seen :)
05:31:11drbrainhates the Marshal specs
05:31:21rueBetter you than me, drbrain
05:31:56technomancyrue: ok, well i need to head off; got a screaming baby
05:32:11rueAlrighty, hopefully fixed when you get around
05:32:19drbrainrue: well, they should all be just autogenerated
05:32:22technomancyi'll attach my patch to the ticket; can you remove the workaround before applying it if it gets fixed?
05:32:40drbrainhave an Hash, description => [marshal_string, object]
05:33:38technomancyor would you rather just have me submit the patch that relies on your fix?
05:33:44technomancy(without the workaround)
05:35:54drbrainUUUURG
05:39:48technomancythere we go.
05:39:59technomancystill one more bus-scheme related bug to go; will have to tackle that tomorrow
05:40:06rueHeh
05:40:10technomancyit's amazing how fixing one bug uncovers two more
05:40:11ruetechnomancy: Either is fine
05:40:21technomancyok, submitted with the workaround
05:40:58technomancyrue: thanks for your help
05:41:03technomancyheads off
05:41:28technomancy leaves the room.
05:41:55be9how funny there are no specs for function calls in .../language
05:46:01ruebe9: Hm, so the problem is that method call is binding tighter than the block?
05:46:09headiusugh
05:46:16headiusMRI implements IO#gets by hand using fread
05:46:41drbraindoesn't $/ affect gets?
05:46:57rue$\, $/ one of them
05:47:04headiussure, what I'm saying is that it doesn't use fgets
05:47:06dbussink enters the room.
05:47:13headiusit does it all by hand with fread and getc
05:47:13dbussink leaves the room.
05:47:21drbrainI didn't know about fgets
05:47:34headiusgets/fgets, same thing
05:47:41dbussink enters the room.
05:48:17drbrainno, you can't use fgets/gets to implement IO#gets
05:48:30drbrain$/ = "funky chinken"; stdin.gets
05:48:41drbrainerr $stdin
05:49:05be9rue, it binds differently in different contexts, that's the problem
05:49:13headiusdrbrain: I know that
05:49:30headiusI'd hoped that for $/ = \n it would just use gets
05:49:44drbrainah
05:50:30be9rue, e.g: http://rafb.net/p/lCtD1350.html and http://rafb.net/p/MwZ54T91.html
05:54:02antares enters the room.
05:56:46smtlaissezfaire leaves the room.
05:57:23smtlaissezfaire enters the room.
06:00:24rueAha
06:02:15dysinger leaves the room.
06:03:25drbrainwow
06:03:40drbrainnan = 0.0 / 0.0; nan == nan # => false
06:03:48drbrainbut, I guess that makes sense
06:05:52drbrainoh, this spec fails because it is sereverly lame
06:06:14be9nan is the only number that is not equal to itself
06:06:41mtodd_ enters the room.
06:10:31twbray enters the room.
06:10:59turtletime leaves the room.
06:12:37mtodd leaves the room.
06:14:09d2dchat enters the room.
06:15:24rueOh boy, this is all kinds of fucked up
06:15:33smtlaissezfaire leaves the room.
06:17:33drbrainso is Marshal
06:17:59drbrainall the proc calls are in the wrong spot
06:18:31be9seems kinda SNAFU
06:31:17tongueroo leaves the room.
06:33:34be9waaay strange. Given that ** has a higher precedence than !, what should !a**b mean?
06:34:30agardiner leaves the room.
06:34:50mtodd enters the room.
06:35:59be9! and - (unary one) have the same priority, but !a**b means (!a)**b, while -a**b means -(a**b)
06:37:10headius leaves the room.
06:40:07mtodd_ leaves the room.
06:40:09dysinger enters the room.
06:48:50dbussink leaves the room.
06:52:24knowtheory leaves the room.
06:52:31jtoy leaves the room.
06:54:33wifelette_ enters the room.
06:54:53knowtheory enters the room.
06:55:55wifelette leaves the room.
07:03:23wifelette_ enters the room.
07:14:14wifelette_ leaves the room.
07:16:13smtlaissezfaire enters the room.
07:16:16lstoll leaves the room.
07:19:35rueHm, think this solves it
07:20:48wifelette leaves the room.
07:24:31geekounet leaves the room.
07:24:40geekounet enters the room.
07:26:39jeremydurham leaves the room.
07:35:15geekounet leaves the room.
07:35:45drbrainat least the Marshal load specs are useful now
07:36:23drbrain((1 + 1) - 1).should == 1 is not very useful
07:36:43drbrainand that's how all these Marshal specs are written :(
07:36:57rueHaha
07:38:15drbrainfor example a Range couldn't be loaded, because the ivars in Rubinius were @first, @last and @exclude_end
07:38:23drbrainin MRI, they're @begin, @end, and @excl
07:48:02smtlaissezfaire leaves the room.
07:50:21be9more fun stuff. Expression (~0**2) in rubinius irb tells NoMethodError: No method '%' on an instance of NilClass.
07:50:30be9(~1**2) works
07:58:35jessop enters the room.
08:01:21d2dchat leaves the room.
08:25:00rueDamn it, still not sure if it is right but it is good enough
08:29:02ezmobius leaves the room.
08:29:58smtlaissezfaire enters the room.
08:31:30rueMorning
08:31:34zimbatm_ enters the room.
08:32:15thehcdreamer enters the room.
08:36:00imajes leaves the room.
08:37:54jessop leaves the room.
08:37:56jtoy enters the room.
08:43:25VVSizmorning!
08:47:03Arjen_ enters the room.
08:53:25boyscout2 commits by Eero Saynatkari
08:53:25boyscout * Hash.new patch from Phil Hagelberg + MethodTable workaround.; e0c3aa0
08:53:26boyscout * Fixed method tables not being initialized correctly.; 3b2f4ce
08:54:33twbray leaves the room.
09:00:48drbrainyay!
09:00:56drbrainthat should take care of half of Marshal
09:04:02rubuildiusEero Saynatkari: e0c3aa074; 4662 examples, 17065 expectations, 1 failure, 0 errors; http://rafb.net/p/Hmasuj71.html
09:10:14antares leaves the room.
09:10:40obvio_ leaves the room.
09:13:31Defiler leaves the room.
09:17:40smtlaissezfaire leaves the room.
09:17:56pkondzior enters the room.
09:18:12smtlaissezfaire enters the room.
09:18:27yaroslav enters the room.
09:18:40Defiler enters the room.
09:27:44octopod enters the room.
09:37:08UncleD leaves the room.
09:41:04yaroslav leaves the room.
09:47:05imajes enters the room.
10:01:40Fullmoon enters the room.
10:28:40rueAlright, enough for one day
10:34:18smtlaissezfaire leaves the room.
10:34:46smtlaissezfaire enters the room.
10:43:06smtlaissezfaire leaves the room.
10:43:46smtlaissezfaire enters the room.
10:49:57ruivaldo enters the room.
10:50:09dodecaphonic enters the room.
10:53:51pkondzior leaves the room.
10:53:53dodecaphonic leaves the room.
10:54:05pkondzior enters the room.
10:56:13_mutle leaves the room.
10:56:36jtoy leaves the room.
11:00:33mutle enters the room.
11:11:21ctennis leaves the room.
11:17:05TheVoice leaves the room.
11:23:59boyscout7 commits by Eric Hodel
11:24:00boyscout * Describe an unambiguous method.; 7041b2a
11:24:01boyscout * Fix bugs in Marshal exposed by Marshal::load spec changes.; 7a8361c
11:24:02boyscout * Fix Range ivar names for Marshal.; 0014d0c
11:24:03boyscout * Use fixed Marshal data for all specs and fix many broken or useless specs.; 84edf54
11:24:04boyscout * Implement Zlib::Inflate and Zlib::Deflate and have Gzip* use them.; ecc47fc
11:24:05boyscout ...
11:25:00smtlaissezfaire leaves the room.
11:30:29rubuildiusEric Hodel: 7041b2aef; build failed! http://rafb.net/p/nH40DA34.html
11:32:20ctennis enters the room.
11:36:30GMFlash leaves the room.
11:36:36GMFlash enters the room.
11:58:58drbrainbenny: no more disk space for rubuildius again
11:59:42boyscout1 commit by Caleb Tennis
11:59:43boyscout * Comment out an endless loop.; 5ebf2ec
12:00:05rubuildiusCaleb Tennis: 5ebf2ec0d; build failed! nopaste error: something bad happened, stack trace follows
12:02:20boyscout3 commits by Eric Hodel
12:02:21boyscout * Remove -ffast-math per IRC discussion; a3f78ee
12:02:22boyscout * Manipulate @consumed and @stream in one place.; 8190462
12:02:23boyscout * Don't pass str around in Marshal::State; 49e1962
12:05:05rubuildiusEric Hodel: a3f78eed1; build failed! nopaste error: something bad happened, stack trace follows
12:08:29ruivaldo leaves the room.
12:12:07dysinger leaves the room.
12:15:39boyscout1 commit by Vladimir Sizikov
12:15:40boyscout * Added more test cases for File::join with recursive arrays.; bb15b72
12:20:05rubuildiusVladimir Sizikov: bb15b7239; build failed! nopaste error: something bad happened, stack trace follows
12:28:30chris2 enters the room.
12:38:36boyscout1 commit by Vladimir Sizikov
12:38:37boyscout * Added more test cases for Array#join on recursive arrays.; af76ada
12:40:05rubuildiusVladimir Sizikov: af76adac2; build failed! nopaste error: something bad happened, stack trace follows
12:58:12smartocci enters the room.
13:03:42dewd enters the room.
13:09:26boyscout1 commit by Vladimir Sizikov
13:09:27boyscout * Added more specs to Time#+ and Time#-.; 765ef93
13:10:06rubuildiusVladimir Sizikov: 765ef93ac; build failed! nopaste error: something bad happened, stack trace follows
13:11:13schleyfox enters the room.
13:21:02comboy leaves the room.
13:37:46dysinger enters the room.
13:38:40jeremydurham enters the room.
13:53:39turtletime enters the room.
13:53:54Fullmoon_ enters the room.
14:01:09bennyshit
14:02:58bennyI guess that was after moving him to a dedicated account... I didn't enable the cronjob for that account.
14:33:54boyscout1 commit by Vladimir Sizikov
14:33:55boyscout * Few specs for Time#<=> with non-Time arguments.; 86c372d
14:36:00Fullmoon_ leaves the room.
14:40:15pkondzior leaves the room.
14:44:07rubuildiusVladimir Sizikov: 86c372d0f; 4674 examples, 17084 expectations, 1 failure, 0 errors; http://rafb.net/p/ouBfP133.html
14:49:02pkondzior enters the room.
14:50:28enebo enters the room.
14:54:04djwhitt enters the room.
14:55:10moofbong enters the room.
14:59:38Fullmoon_ enters the room.
15:06:59pauldix enters the room.
15:08:09pauldix_ enters the room.
15:15:10ruivaldo enters the room.
15:17:15boyscout1 commit by Vladimir Sizikov
15:17:16boyscout * Fixed 2 Date#strptime specs that otherwise would pass only in January.; dc55c88
15:24:28pauldix leaves the room.
15:24:51pauldix_ leaves the room.
15:26:58ruivaldo leaves the room.
15:28:46knowtheory leaves the room.
15:29:18rubuildiusVladimir Sizikov: dc55c88be; 4674 examples, 17084 expectations, 1 failure, 0 errors; http://rafb.net/p/R23z7g81.html
15:30:14knowtheory enters the room.
15:35:18ctennis leaves the room.
15:39:14wmoxam enters the room.
15:40:04ctennis enters the room.
15:45:44benburkert enters the room.
15:59:02pauldix enters the room.
15:59:57d2dchat enters the room.
16:04:06Arjen_ leaves the room.
16:05:29__johan__ enters the room.
16:06:10pkondzior leaves the room.
16:15:56pate enters the room.
16:16:52tmornini enters the room.
16:20:10skaar enters the room.
16:33:40twbray enters the room.
16:37:03ttmrichter leaves the room.
16:40:14mad_phoenix enters the room.
16:40:29be9 leaves the room.
16:42:49twbray leaves the room.
16:52:54agile leaves the room.
16:56:10Fullmoon_ leaves the room.
17:03:32Smirnovhmm is Lost back?
17:06:23scooprso I've heard
17:07:33Smirnovawesome
17:08:08tmornini leaves the room.
17:08:48Smirnovweird. i distincly remember someone here asking about noops & 15 but now i cant find that
17:11:24RyanTM leaves the room.
17:14:26twbray enters the room.
17:15:31binary42 leaves the room.
17:15:41RyanTM enters the room.
17:16:47zimbatm_ leaves the room.
17:18:36tongueroo enters the room.
17:20:03turtletime leaves the room.
17:22:12dodecaphonic enters the room.
17:26:04pauldix leaves the room.
17:30:20enebo leaves the room.
17:30:47enebo enters the room.
17:37:16lopex enters the room.
17:39:46wifelette enters the room.
17:41:08radarek enters the room.
17:42:53agile enters the room.
17:43:13thehcdreamer leaves the room.
17:48:23headius enters the room.
17:56:40Phoop enters the room.
17:59:59mad_phoenix leaves the room.
18:00:43headius leaves the room.
18:01:07octopod leaves the room.
18:04:30turtletime enters the room.
18:17:26rueSmirnov: Defiler did
18:17:32rueAnd morning
18:19:59brixenmorning
18:20:14KirinDave enters the room.
18:20:15brixensweet, spec tags, tag files, tag actions, tag filters oh my
18:23:02rueBe back in a bit
18:24:26rue leaves the room.
18:28:41wifelette leaves the room.
18:36:12radarek leaves the room.
18:38:05evanmorning.
18:38:37tarcierihey evan
18:38:40tarcierihttp://nondot.org/sabre/LLVMNotes/ExplicitlyManagedStackFrames.txt
18:38:43tarcieri^^^ did you see that?
18:38:48evanyep
18:38:51tarciericrazy hack for explicitly managed stack frames on llvm
18:38:51tarcieriheh
18:38:53evanI asked saber about it
18:39:20evanit requires guaranteed tail call support
18:39:23evanwhich llvm doesn't have.
18:39:26evan:/
18:39:37tarcierioh yeah?
18:39:45evannope.
18:39:53evanbecause they haven't implemented it on all platforms
18:40:08evanand there is no way to assert that it must happen
18:40:12tarcierihmm, oh well
18:40:15evanso the generated code could just be plain old wrong
18:40:44evanand llvm doesn't expose jmp <indirect>
18:42:10wifelette enters the room.
18:42:42yipstar enters the room.
18:42:42__johan__ leaves the room.
18:44:41rue enters the room.
18:46:47headius enters the room.
18:50:33evanctennis: you around?
18:55:19kAworuhi
18:55:54rueevan: The method/method_table situation look sane to you now?
18:55:58evanyeah
18:56:00evanlooks good.
18:56:05evani was being pissy last night.
18:56:10evanthanks for cleaning it up
18:56:17rueHeh, no problem
18:57:08rueevan: kAworu has a patch in unless you guys did that part already
18:57:31evannope.
18:58:28ruekAworu: Dig up your public key again
18:58:41kAworurue> pastebin ?
18:59:06__johan__ enters the room.
18:59:14rueYou two figure it out :) Pastie should be fine
18:59:38rueHopping out for a moment
18:59:57kAworuevan> http://rafb.net/p/Ie2gb727.html
19:01:43brixenrue < kangaroo
19:01:56ctennisevan: ya
19:03:24evanctennis: could you paste a script that used subtend that caused the looping problem?
19:03:34dysinger leaves the room.
19:03:34evanthat was the reason you commented out that section of code
19:03:35ctennisevan: better yet, I can give you a failing spec
19:03:40ctennisevan: just a sec
19:03:41evanthats even better
19:03:42evank
19:04:16pkondzior enters the room.
19:04:27ctennisevan: spec/subtend/object_spec.rb, specifically the ones that does "rb_require"
19:05:25ctennisevan: in this case, I think the spec fails because it can't do a Kernel require (NoMethodException) I believe
19:05:42ctennisevan: but it doesn't fail gracefully unfortuntately
19:07:20ruebrixen: class KangaRue < Rue; include Rodent; end
19:08:31pkondzior leaves the room.
19:08:35pauldix enters the room.
19:09:01evanctennis: hm. ok.
19:11:10DefilerDoes anyone know how to contribute a libtommath path?
19:11:11imajes leaves the room.
19:11:26DefilerI don't see a tracker anywhere, the mailing list gets one post a month, and Tom himself has gotten rid of his email address
19:12:33evando we have the latest released version?
19:13:06evanhere's what we should do
19:13:28evantake the current ltm we have, put it in a git repo
19:13:32evanthen apply our patches to it
19:13:42evanand just post the url to the repo
19:13:50evanala the linux side-patch branches
19:13:58evanltm-rbx could be the name of it
19:14:15evantom can pull them out of git if we wants to integrate them
19:14:35DefilerWhat does this guy do for a living now that doesn't require an email address? I am impressed
19:14:49evanlive in canada
19:14:51evanZING!
19:15:17evani thought he was doing programming
19:16:29DefilerI like this link about Rails and GC because it shows what will hopefully be possible with Rubinius running real code
19:16:48evanyeah
19:17:00DefilerMRI optimized the wrong thing. Heh
19:17:19brixenDefiler: tom has an email address, it's just *encrypted* :P
19:17:24loincloth enters the room.
19:17:32brixenDefiler: and top secret, he'd have to kill you
19:17:34ctennisevan: if you fix the unrecognized block issue via subtend too I'll fax you a chocolate chip cookie via the intertubes
19:17:43evanctennis: ooooh
19:17:47evanfixes now.
19:18:03evanactually, i'll fix it shortly.
19:18:03Defilerbrixen: That's probably about right, yeah
19:18:06brixenctennis: do those have to be made from scratch? I've got some ccc :)
19:18:07ctennisheh
19:18:21brixenmakes a wishlist of fixes
19:18:28smtlaissezfaire enters the room.
19:18:46ctennisin fact ,if you could just fix everything and have this rubinius project wrapped up tomorrow, that would be great
19:19:59evanwill do.
19:20:08evando you want a lap dance too?
19:20:25ctennisyes, but you're too skinny for my likes.
19:20:29evanmaybe a pony on top of a giant ice cream cone
19:20:48evanlets get a portal to the land of unicorns while we're add it.
19:21:07DefilerPerhaps... Planet Unicorn?
19:21:14evanHeeey
19:21:26evanyou've heard drbrain's story about Planet Unicorn, right?
19:21:53DefilerYep
19:22:50Defiler"Hey unicorns it's Shannon, the boy who wished you into existence"
19:22:57evanand Dick Gabriel's beaver.
19:24:07pkondzior enters the room.
19:24:46lopex leaves the room.
19:26:07pkondzior leaves the room.
19:27:02geekounet leaves the room.
19:27:32geekounet enters the room.
19:29:25chris2 leaves the room.
19:30:41pauldix leaves the room.
19:30:50pauldix enters the room.
19:31:00evani'm getting ci failures.
19:31:01evananyone else?
19:32:57Fullmoon leaves the room.
19:33:22ctennisevan: yeah, getting quite a few
19:34:00Defileryep
19:34:13evanarg.
19:34:13evanok.
19:41:18Fullmoon enters the room.
19:44:38ezmobius enters the room.
19:45:54mtodd_ enters the room.
19:46:44fizx enters the room.
19:47:08fizx leaves the room.
19:49:15jessop enters the room.
19:49:46rueezmobius: Got just a second?
19:50:07ezmobiussure whats up?
19:51:07RyanTM leaves the room.
19:51:22drbrainI was getting one failure last night
19:51:25rueezmobius: PM
19:51:27drbrainin private_class_method
19:51:40rueYeah, I removed that exclude by accident
19:51:48rueI was going to see if I can fix it today
19:52:09mtodd leaves the room.
19:52:30RyanTM enters the room.
19:52:36DefilerSo, these failures look like missing excludes, rather than old specs that are suddenly failing
19:52:40Defilerright?
19:52:58drbrainIt looks like I've got Marshal.load fully compatible with MRI now
19:53:09evan^5s drbrain
19:53:25evandrbrain: so, here's something to consider
19:53:29rueNice, drbrain
19:53:35evandrbrain: we dump all the VM marshal code (the bytecode marshal)
19:53:40evanand switch it to be Marshal format
19:53:55evanwe'd have to write enough C to load in a simple dump though
19:54:11drbrainwe don't have to write any C
19:54:12evanbut we could ditch the dump code
19:54:16drbrainwe just take MRIs
19:54:20evanoh
19:54:22evanhm...
19:54:27evanwe'd have to retrofit it a little
19:54:37evanbut that could work!
19:55:16drbrainit shouldn't be hard, marshal.c is pretty clean
19:55:21rueWe could just keep the two separate, too
19:55:34evanwe could, yes.
19:55:39rueProvided there is a tangible benefit for customizing it exactly to our needs
19:55:41evanbut i'd rather not have the seperate format
19:55:56evanusing one format just makes it simpler
19:56:19rueSure, so long as there is no compromising. I think it should be OK though
19:56:24rueBe back in a while, meeting
19:56:27evanlaters.
19:56:28drbrainI'm going to refactor the load/dump specs today to use a common data set
19:56:32evank
19:56:34drbrainso that everything is independently verifiable
19:58:10DefilerAlso, Marshal handles the big-ass fixnums :)
19:58:34evanright, that code has been vetted more than my bytecode marshal code
20:05:52headius_ enters the room.
20:06:17VVSizdrbrain: too bad that direct string comparison of marshalled results is not very robust, since MRI and JRuby produce different outputs (which then can be loaded back to same values!)
20:06:44drbrainVVSiz: I'm doing direct string comparison
20:07:02drbrainthat's the only robust way to do it
20:07:13drbrainotherwise, you can't load MRI objects on Rubinius
20:07:36drbra