Index

Show enters and exits. Hide enters and exits.

00:07:09evani'd have to see the patch
00:07:31DefilerOK. I'll figure it out, then
00:10:56boyscout1 commit by Eric Hodel
00:10:57boyscout * Remove support for zip rba files, libzip. rake clean required.; a63f457
00:11:11drbrainWOOO!
00:11:21drbrainthat's a shit ton of code removed
00:11:22rubymaverick leaves the room.
00:13:37headiusrba files aren't compressed anymore?
00:17:23crafterm_ enters the room.
00:18:23rubuildius_ppcEric Hodel: a63f45782; build failed!
00:18:23rubuildius_ppcMarcus Crafter: 6a5d32741; 1741 files, 5882 examples, 19977 expectations, 0 failures, 1 error; http://pastie.caboo.se/paste/163424
00:18:50ruebrixen: Yeah, that is Dan. He is who I first heard of Sydney from back when, but I do not think we are moving exactly in the direction he wants to se
00:19:21rueevan: Hey, quick, is there something special you wanted to do with the sprint patches or can they just be verified and committed?
00:21:09lstoll enters the room.
00:24:04drbrainheadius: when you check in a broken spec on rubinius, can you add a tags file?
00:24:13headiusbut I added it for jruby
00:24:23headiusor rather, I added it because it was a gap in the specs
00:24:49headiusrubinius shouldn't run CI against the leading edge of ruby specs
00:25:03drbrainheadius: until it does, could you please?
00:25:24headiuscertainly...and you will run the specs against jruby and submit a tag for us too? :)
00:26:35eventualbuddha enters the room.
00:28:56headiusI generally don't even run them against rubinius...my understanding was that they just have to pass MRI
00:32:48Defilerdrbrain: What do I do about this?
00:32:49DefilerAn exception occurred in loading spec/ruby/1.8/library/socket/unixserver/new_spec.rb:
00:32:52DefilerAr::Error: "./spec/ruby/1.8/core/kernel/../../fixtures/load/load_spec_rba.rba is not an archive file"
00:32:55Defilerdrbrain: I get that even after rake clean
00:34:01drbrainDefiler: that file is generated in spec/core/load_spec.rb
00:34:12drbrainDefiler: I updated that code, so it may just need to be run
00:34:37drbrainsame for require_spec_rba.rba
00:34:56boyscout3 commits by Wilson Bilkovich
00:34:57boyscout * Tag failing Method spec for CI; c17b32d
00:34:58boyscout * Add slightly-modified Symbol#to_proc to core. Temporary fix for eval order.; 7309311
00:34:59boyscout * Call Proc.__from_block__ on block_pass arguments; c5d4a3b
00:35:44rueHas ci gotten any faster/slower/otherwise today?
00:35:51rueErm, not today but recently
00:36:13drbrainwe're running more specs in ci now, that's about 2 weeks ago
00:38:29rubuildius_ppcWilson Bilkovich: c17b32d44; build failed! http://pastie.caboo.se/paste/163431
00:38:30lachie leaves the room.
00:38:32brother_rspec enters the room.
00:38:40crafterm leaves the room.
00:39:52dbussinkbrixen: you there?
00:40:00rueDefiler: Ha, you broked it
00:40:55DefilerNope. Was drbrain. :)
00:41:18drbrainaaah
00:42:12drbrainI've got it
00:42:55lstoll_ enters the room.
00:48:36headiusDefiler: hey, I'm curious about that block pass thing you mentioned ago
00:48:38headiusabove
00:48:45headiuswhat's with the swapping?
00:49:17headiusand what's on the stack before you __from_block__ it
00:49:33Defilerheadius: Well, the top of the stack is the receiver, to begin with
00:49:48Defiler..and then next is the block
00:49:58headiusthe receiver is evaluated last?
00:50:02DefilerSo I am swapping it to bring it to the top, replacing it, and then swapping it back
00:50:25Defilerthe 'send_stack_with_block' instruction has a little text diagram
00:50:31headiusthis is the eval order issue, yeah?
00:50:40DefilerNope. Unrelated
00:50:50headiuswhy is the receiver at the top of the stack?
00:51:05DefilerWhere else would it be?
00:51:27headiuswell, on jvm a three arg call would be .. recv, arg1, arg2, arg3 before the call
00:51:38headiusso you eval in order and push down
00:51:46evanthats all order of eval stuff
00:51:48quik_ leaves the room.
00:51:50Defilerhttp://rubini.us/doc/vm/op_codes/send_stack_with_block.html
00:51:50evanwhich i'm in the process of changing
00:52:12headiusok...seems like it would probably be better to delay this fix until that's in, maybe?
00:52:19DefilerIt isn't related
00:52:26headiusevan: so it will eval left-to-right now, yes?
00:52:28DefilerThe block isn't going to move, even when the eval order changes
00:52:33evanyep
00:52:39headiusDefiler: receiver won't be on top
00:52:58headiusif I'm getting it
00:53:00DefilerWhy not?
00:53:13headiusbecause it will be evaluated first
00:53:23eventualbuddha leaves the room.
00:53:28boyscout1 commit by Eric Hodel
00:53:28boyscout * Remove libzip references from shotgun/Makefile too.; 571523f
00:53:46rueevan: Sprint patch tickets, special processing needed? Yes/No/Maybe/Dead/Play Zork Instead: _
00:53:59headiusthat's why I'm thinking perhaps you would want to wait
00:54:14headiusstack order will likely be completely different soon anyway
00:54:29DefilerWell, every compiler node has to change if that is the case anyway
00:54:34Defilerdocumenting this feature by implementing it seems best
00:54:38headiusprobably
00:55:01DefilerAnyway, too late. I already did it
00:55:02headiusalso, what is it before you __from_block__ it
00:55:12DefilerAnything
00:55:16headiuswhen it's put on the stack, why isn't it blockified right then
00:55:21headiusyou know at that point it's a block pass already
00:55:44headiusevaluate whatever it is, immediately __from_proc__ it, then continue
00:55:52evanthey're unrelated
00:55:54evanso it's fine
00:56:11DefilerIt needs to be __from_block__-itized in the environment it is called in
00:56:37Defilere.g. the standard case of: def foo(&block).... foo { zarg }
00:57:00headiusoh, but that's a block arg, not block pass...I must have missed something
00:57:21headiusyeah, that one you do on the callee side, sure
00:59:11DefilerI dunno. Maybe I did this the hard way?
00:59:20DefilerThis is the way I was smart enough to implement. Somebody smarter can improve it
00:59:40rueMan, I love it when I search for something and someone has just posted about it in the last day
00:59:42DefilerI couldn't spot any other place to do it where there was enough context available
00:59:42headiuswell there's two different uses of &...I thought you were just fixing something with block pass
01:00:01menator enters the room.
01:00:15headiusif you have a "block thingy" coming through on the stack, and then you see you have a block arg, I think what you have is right
01:00:38rubuildius_ppcEric Hodel: 571523f7a; build failed! http://pastie.caboo.se/paste/163436
01:00:40headiusthe swapping is unfortunate, but that's going to go away
01:01:02DefilerOh, you know.. I think I got confused by the (incorrect?) compiler comments
01:01:13headiuswhat do the comments say?
01:01:24DefilerBecause it indicates that @block is set in a Call node only in a BlockPass situation
01:01:28headiusI was actually poking around in there a bit to see about fixing this too
01:01:34Defiler..but I believe it is actually only in a BlockArg situation
01:01:43drbrainrubuildius_ppc: liar
01:01:59DefilerIt is telling the truth. Typing 'rake' is broken.
01:02:00headiusDefiler: yeah, block arg, not block pass
01:02:32evanrue: no special handling of sprint patches, they just need to be applied
01:02:42headiusthey're separate things...so you fixed block pass needing to call to_proc, yes?
01:02:49headiusor is this something else
01:02:52rueevan: OK
01:02:54boyscout1 commit by Lincoln Stoll
01:02:55boyscout * Fully qualified the call to RDoc::Generator::AllReferences, #'d p's.; c022939
01:03:54lstoll leaves the room.
01:04:13Defilerheadius: I made foo(x, &whatever) call to_proc on whatever
01:04:30headiusI don't think that's right
01:04:33headiusoh wait
01:04:36headiusnot enough context
01:04:39headiusthat's a call, yes?
01:04:40headiusnot a decl
01:04:42DefilerYes
01:04:44headiusok
01:04:52headiusthat's right then...heh
01:05:04DefilerYeah, I thought so. Had to re-think it through reading the code just now, though
01:05:07DefilerYou scared me. :)
01:05:16headiusyeah, terminology issue
01:05:39DefilerThat really is a block_pass though, right? Heh
01:05:45lstoll_ leaves the room.
01:05:45headiusyes
01:05:47headiuswhew
01:05:52headiusglad we sorted that out
01:06:00DefilerAwesome
01:06:24headiusblock pass = call side, converts X to a block, coercing with to_proc is necessary
01:06:33headiusis/if
01:07:11headiusI wonder if sander's lib will work now
01:07:16DefilerOh, you know.. this is the wrong way to do it, though the behaviour is correct
01:07:41Defiler@block.bytecode (on line 1848 in bytecode.rb) is what should handle this
01:07:49DefilerI think
01:07:53DefilerThat avoids the swapping
01:07:54d2dchat leaves the room.
01:08:05DefilerI will inwestigwate that
01:08:14headiuswell at least in jruby we do it during arg processing
01:08:47headiuson the call side
01:08:51headiusalways on the call side
01:08:56DefilerRight, that is where this code is used
01:09:07DefilerThis 'is' the arg processing, I mean
01:09:12headiuswhat do you guys pass as a block on the stack?
01:09:19headiusis it just a proc or something lower-level?
01:09:33evanlow level
01:09:33evanit's a BlockEnvironment
01:09:34headiuslike in foo { bar }
01:09:39rubymaverick enters the room.
01:09:40evanfor the
01:09:40evana.b { 1 + 2 }
01:09:40evansyntax
01:09:46headiuswhat's actually on the stack
01:09:51headiusok
01:09:52evanno calling Proc.__from_block__ in that case
01:10:08headiusso block pass wants to get a BlockEnvironment from X
01:10:13headiusand coerces if necessary
01:10:18evanno
01:10:22headiusno?
01:10:28evannot really
01:10:28evanit's done both places.
01:10:31evanif you use a.b(&c)
01:10:35evanit calls Proc.__from_block__
01:10:50evanbut it also calls Proc.__from_block__ in the top of the method body
01:10:51evanif the method does
01:10:56headiusso then there's a proc on the stack in that case?
01:11:06evandef blah(&blk)
01:11:06evanso that the BlockEnvironment is wrapped as a Proc in that case.
01:11:08headiusthat seems really weird
01:11:08headius& unwraps a proc into a block again
01:11:20evanit wasn't a proc to begin with
01:11:45evanif there is
01:11:47evana.b(&c)
01:11:48evanand
01:11:52evandef b(&blk)
01:12:00evanthen Proc.__from_block__ is called twice on the same thing
01:12:21evanbut the 2nd time, it returns right way, because the block is already a Proc
01:12:21headiusok, now I'm really confused :)
01:12:35rubuildius_ppcLincoln Stoll: c02293995; build failed! http://pastie.caboo.se/paste/163439
01:12:36evango use describe to see what happens
01:12:39headiuswhat if c is something that coerces with to_proc
01:12:41headiusi.e. symbol
01:13:19evanthen Proc.__from_block__ calls Symbol#to_proc
01:13:26evanwhen __from_block__ is called at the send site
01:13:45drbrainok, I think I have it for real now
01:13:53headiusand __from_block__ produces what?
01:14:00evana Proc
01:14:02evanalways
01:14:20evanif it's handed a Proc, it returns it straight away
01:14:24headiusso if I call foo { } there's a BlockEnvironment on the stack, but if I call foo(&x) there's a Proc?
01:15:02dewd leaves the room.
01:15:46evanwhen the VM performs the send, yes.
01:15:57evanthe VM allows any object to be passed as a block
01:16:00evanso it doesn't care.
01:16:28headiusok, and I guess yield knows how to yield to a proc or a blockenv
01:16:53evanyield just does block#call
01:16:54headiusin the case of def b; yield; end; b(&proc {})
01:17:14evanyield doesn't care
01:17:23evanso long as the block understands #call
01:17:26headiushmmm
01:17:49headiusso arity checking is done in proc's call before it does a call on the block I presume?
01:18:01headiusfor lambdas, anyway
01:18:31evanProc::Function#call (which is what a lambda() and proc() are) checks arity different than Proc#call and BlockEnvironment#call
01:19:00radarek enters the room.
01:19:31headiusproc() => lambda in this case, like in MRI, yes?
01:19:35boyscout3 commits by Eric Hodel
01:19:36boyscout * Remove libzip, clean up old .*.d; d8fdf2a
01:19:37boyscout * Remove lightning, libzip from .gitignore.; b89cb32
01:19:38boyscout * Expand Makefile stuff to be more readable.; ef0a6b3
01:19:44headiusso a lambda proc is a Proc::Function rather than a Proc
01:20:02DefilerOK, yeah.. doing it in BlockPass is way easier
01:20:15headiusahh, great
01:26:43boyscout1 commit by Wilson Bilkovich
01:26:44boyscout * Better fix for calling to_proc on BlockPass nodes; ac630b2
01:26:48crafterm_ leaves the room.
01:27:15headiuswoo
01:27:25headiusno swaps I presume
01:27:31DefilerCorrect
01:27:38TheVoice enters the room.
01:27:49DefilerAlso, won't break when the eval order changes
01:27:49headiuscool, looking
01:29:20headiuswhat's git
01:29:44Defilergo if true
01:29:55headiusoh, yeah, just figured that out
01:29:59headiuslabel created above
01:30:13headiusinteresting acronym
01:30:25Defilerpredates our switch to git. Heh
01:31:03headiusI love how much the bytecode looks like this: http://headius.blogspot.com/2007/11/bytecode-tools-in-ruby-low-level-dsl.html
01:31:10headiusI really need to continue that work
01:33:45DefilerSeems like you could just use ours, really
01:33:54evanDefiler: yeah, thats a better fix (BlockPass#bytecode)
01:33:56Defiler..and rewrite the assembler part to emit whatever the JVM wants
01:34:04boyscout1 commit by Eric Hodel
01:34:05boyscout * Don't spec .rba require behavior in spec/ruby/1.8.; 57c7ded
01:34:30Defilerevan: Yea, I think it is finally in the right spot. Heh
01:35:43DefilerGah.. time for another Lighthouse bug ticket
01:36:39crafterm enters the room.
01:36:59Defilerevan: What do you think about the return value of 'defined?' thing?
01:37:14Defilerevan: We have specs now that people have written that test the return value
01:37:25evanwe could change it to return strings
01:37:25evanthats actually pretty easy
01:37:38evanwell, we're headed to lunch.
01:37:40DefilerYeah. I was thinking that, while distasteful, it would be pretty easy
01:37:49DefilerSo I guess I will go ahead and accept this ticket
01:37:50headiusDefiler: yeah, well that's the plan eventually for rubinius on JVM
01:38:11headiusideally most code bodies would just be translation to JVM bytecodes
01:38:25headiusdepending of course if we decide to maintain a stackless nature
01:38:42headiusbut I don't think that's exposed much to ruby code...so it wouldn't be apparent if we weren't
01:39:45headiusprobably wouldn't gain anything to use rbx compiler in JRuby right now, since everything passes and apps run with the current JRuby compiler already
01:39:46DefilerEven if you do something different, hopefully the changes necessary would be localized to the 'emit some code here' step of the compiler
01:39:50DefilerWhich happens last
01:40:00headiusyeah...there's certainly some commonality here
01:40:13DefilerWell, you would have less Java code to maintain :)
01:40:16headiusI wish I had another few hours every day
01:40:31DefilerWhy? Are you running out of days?
01:40:40headiusso many application users reporting bugs lately, that's been a steady time sink
01:40:59headiusand we still have the java layer to rewrite after 1.1
01:41:29headiusjava integration layer, I mean
01:53:16rubuildius_ppcEric Hodel: 57c7ded8e; 1741 files, 5881 examples, 19977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163457
01:53:17rubuildius_ppcWilson Bilkovich: ac630b23d; 1741 files, 5881 examples, 19977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163454
01:53:18rubuildius_ppcEric Hodel: d8fdf2a3d; 1741 files, 5881 examples, 19977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163445
01:58:58quik_ enters the room.
01:59:16jrun leaves the room.
01:59:51crafterm leaves the room.
02:07:52ezmobius_ enters the room.
02:08:49jrun enters the room.
02:09:09ezmobius leaves the room.
02:12:17TheVoice leaves the room.
02:12:41headius leaves the room.
02:16:50radarek leaves the room.
02:19:44mgreenly enters the room.
02:30:39mgreenly leaves the room.
02:33:07headius enters the room.
02:44:44nicksieger leaves the room.
02:45:41jrun leaves the room.
02:45:55VVSiz_ enters the room.
02:47:34headius leaves the room.
02:54:04VVSiz leaves the room.
02:54:14d2dchat enters the room.
02:54:20_mutle enters the room.
03:00:42ezmobius_ enters the room.
03:04:24octopod leaves the room.
03:08:54tmornini leaves the room.
03:09:43mutle leaves the room.
03:09:46TheVoice enters the room.
03:11:40d2dchat leaves the room.
03:12:08d2dchat enters the room.
03:17:04ezmobius leaves the room.
03:21:25boyscout1 commit by Eric Hodel
03:21:26boyscout * Fix require_spec and load_spec.; 2529acd
03:21:29crafterm enters the room.
03:28:37srbaker leaves the room.
03:29:53srbaker enters the room.
03:30:34jinjing enters the room.
03:30:39TheVoice leaves the room.
03:34:14binary42_ enters the room.
03:34:39rubuildius_ppcEric Hodel: 2529acd5e; 1741 files, 5881 examples, 19977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163488
03:35:00_ezmob_ enters the room.
03:35:01binary42 leaves the room.
03:38:11ezmobius leaves the room.
03:52:19jrun enters the room.
03:57:02binary42_ leaves the room.
03:58:43d2dchat leaves the room.
03:59:58nicksieger enters the room.
04:00:48crafterm leaves the room.
04:02:40brother_rspec leaves the room.
04:14:51quik_ leaves the room.
04:30:28jinjing_ enters the room.
04:32:27squeegy*
04:39:58crafterm enters the room.
04:43:02lachie enters the room.
04:47:02jinjing leaves the room.
04:47:13boyscout1 commit by Eric Hodel
04:47:13boyscout * Import RubyGems r1641; 488fdfd
04:47:35craftermyay :)
04:50:54mediogre enters the room.
04:54:10ezmobius leaves the room.
04:57:18ezmobius enters the room.
04:59:58rubuildius_ppcEric Hodel: 488fdfd59; 1741 files, 5881 examples, 19977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163514
05:00:14ezmobius~/rubinius > ./shotgun/rubinius gem install rake
05:00:14ezmobiusBulk updating Gem source index for: http://gems.rubyforge.org
05:00:19ezmobiusw00t \m/
05:02:13lstollyou'll get a bunch of nil's printed when the rdoc generates
05:02:23lstollshould be a fix pushed for that soon.
05:03:13imajes enters the room.
05:04:10ezmobius leaves the room.
05:04:37nicksieger leaves the room.
05:05:49lachie leaves the room.
05:06:04lstoll_ enters the room.
05:07:08imajes leaves the room.
05:22:11boyscout2 commits by Eric Hodel
05:22:12boyscout * Move cgi, ostruct to lib; a99d77f
05:22:13boyscout * Don't hard-code lib and stdlib in $LOAD_PATH; 7ed3bdb
05:22:14crafterm leaves the room.
05:25:17crafterm enters the room.
05:28:05d2dchat enters the room.
05:30:00lstoll leaves the room.
05:32:15_mutle leaves the room.
05:32:20mutle enters the room.
05:34:31rubuildius_ppcEric Hodel: a99d77f6d; 1741 files, 5881 examples, 19977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163525
05:34:43ubiquitous leaves the room.
05:34:57ubiquitous enters the room.
05:36:04ubiquitous leaves the room.
05:40:20lstoll_ leaves the room.
05:44:18crafterm leaves the room.
05:48:29boyscout1 commit by Eric Hodel
05:48:30boyscout * cgi.rb needs English.rb; 16fa074
05:53:56AndrewO leaves the room.
05:55:19jinjing_ leaves the room.
05:56:51ezmobius enters the room.
05:58:14jrun leaves the room.
06:00:35aotearoa leaves the room.
06:01:29ezmobius leaves the room.
06:01:31rubuildius_ppcEric Hodel: 16fa0743f; 1741 files, 5881 examples, 19977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163537
06:03:26ubiquitous enters the room.
06:04:45TheVoice enters the room.
06:09:17womble enters the room.
06:13:38TheVoice leaves the room.
06:13:50eugenebrechko enters the room.
06:17:41jinjing enters the room.
06:28:05dkubb leaves the room.
06:30:36jinjing leaves the room.
06:32:44tizianobis enters the room.
06:34:48jinjing enters the room.
06:36:33ubiquitous leaves the room.
06:40:01lachie enters the room.
06:40:14tizianobis_ enters the room.
06:41:05tizianobis leaves the room.
06:41:50srbaker leaves the room.
06:58:34MenTaLguY leaves the room.
06:59:33eugenebrechko leaves the room.
06:59:33retnuH_ leaves the room.
06:59:33wifelette leaves the room.
06:59:33cavalle leaves the room.
06:59:33Jzalae leaves the room.
06:59:33dbussink leaves the room.
06:59:33Phoop leaves the room.
07:01:01KirinDave enters the room.
07:02:06eugenebrechko enters the room.
07:02:06retnuH_ enters the room.
07:02:06wifelette enters the room.
07:02:06cavalle enters the room.
07:02:06Jzalae enters the room.
07:02:06dbussink enters the room.
07:02:06Phoop enters the room.
07:03:46srbaker enters the room.
07:05:44binary42 enters the room.
07:21:14headius enters the room.
07:24:39headius leaves the room.
07:32:50tizianobis leaves the room.
07:36:26DefilerAnybody want an easy but potentially semi-tedious task?
07:52:58KirinDave leaves the room.
07:54:27KirinDave enters the room.
07:56:46mutle leaves the room.
07:58:50mutle enters the room.
08:02:49binary42 leaves the room.
08:17:13brixenI cannot believe it, clean ci run with constants changed to use LT
08:17:28DefilerLT?
08:17:52srbaker leaves the room.
08:18:12brixenLookupTable
08:19:03brixenI'm running a clean build and ci again just to be sure
08:19:10Defileraha
08:19:12DefilerNice
08:19:30brixenit was a bit of agony
08:19:49brixenin general, we must ensure there are not 2 places we have logic for instantiating classes
08:20:04DefilerWhere were the two places in this case?
08:20:14brixenwe had setting up a module in the VM and again in Ruby in core/module.rb
08:20:31brixensince a module has a constants_table and method_table it was a bitch making these changes
08:21:10brixenbecause when in Ruby we do: constants_table = Hash.new, that's in stables, and those depend on the VM being in a certain state
08:21:33DefilerHow did you work around that?
08:21:45brixenmake allocate_module primitive that only uses the VM code
08:22:07brixenalso, I think in general we need to not see bootstrap as something of a cellar to hide stuff in
08:22:18brixenbootstrap and core should be a continuum, but a unified one
08:22:56DefilerYeah, I am not a huge fan of the practice of replacing bootstrap methods in core
08:22:59brixenI think the .allocate, .new, and #initialize machinery if finally approaching sanity
08:23:11brixenright, me neither
08:23:13DefilerI am sure it is occasionally necessary, but not as often as it is used now
08:23:44brixenwell, it passes, so I'll push
08:23:51brixenI've got to get to bed too, 5 hr hike tomorrow
08:24:05DefilerNice
08:24:14boyscout5 commits by Brian Ford
08:24:15boyscout * Constants now use a LookupTable instead of Hash.; 8461f3b
08:24:16boyscout * Stables need recent changes to compile with VM change to constants.; 370decc
08:24:17boyscout * Reluctantly introduce load order dependencies to bootstrap. See below.; 1059938
08:24:18boyscout * Remove dependency on Array#each from LookupTable#each.; 6267f1d
08:24:19boyscout * Add Module.allocate primitive.; fc62d8e
08:24:29brixenI've reluctantly added load order dependencies in bootstrap
08:24:37brixenthe machinery was there, we just weren't using it
08:24:45brixensee the note on 1059938
08:24:52brixenI can't think of a better way to do it
08:24:53DefilerThat doesn't inspire any terror on hearing it, really
08:25:00DefilerSounds reasonable
08:25:10brixengem_prelude.rb is a bitch
08:25:11DefilerI mean.. things gotta get loaded, ya'hear?
08:25:24brixentons of script/class level code executing
08:25:37brixenwell, maybe not tons, but enough to make it dicey
08:25:48DefilerSo, did LT end up improving performance?
08:26:18brixenwell, according to the bench in benchmarks/rubinius/bm_lookuptable.rb, LT is about an OOM faster than Hash on the relevant ops
08:26:51brixenbut, consider this: in a ci run, there are > 15 million calls to cpu_locate_method
08:26:52DefilerSick
08:27:11brixenso, even 1% improvement is *hard* to come by
08:27:23DefilerYou know what is crazy about that stat?
08:27:31brixendjwhitt said he saw consistent improvement of about 1 sec in 45 after the MT change to use LT
08:27:33DefilerThat even with that, we are still way faster than MRI at method dispatch
08:27:56brixenyeah, I'm itching to start looking at some macro performance with DTrace
08:28:12DefilerLook out, world
08:28:19DefilerShit just got REAL
08:29:40brixenso, Hash in Ruby needs some serious love, and a ton of the Hash C code can be cleaned up
08:30:09ezmobius enters the room.
08:30:23brixenbut we'll still have some of Hash in C because, e.g. Rubiniu::RUBY_CONFIG uses it
08:30:38brixenit does too much with the keys and I didn't want to do key.to_s all over
08:31:04brixenand there's an ENV primitive for #to_hash
08:31:47brixenrubuildius_ppc: speak up son, I need sleep :P
08:33:03brixenbbiab..
08:33:19DefilerLooks good here, at least
08:36:55rubuildius_ppcBrian Ford: 8461f3b81; 1741 files, 5881 examples, 19977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163566
08:37:18ezmobius:i keep getting these errors:
08:37:19ezmobiushttp://pastie.caboo.se/163567
08:37:31ezmobiusdo i need to delete some old rba files or something?
08:37:46DefilerYeah, drbrain did that because he hates America
08:37:52Defilereasiest way to totally nuke it is..
08:37:55ezmobiusheh
08:38:01Defilerrm -r spec && git checkout spec
08:38:14ezmobiusthx
08:38:15DefilerWhich will assure that your copy of the spec dir is the one from the repo
08:38:32Defilerpresumably you don't need the rm, but it makes me feel safe and secure
08:38:47ezmobius;)
08:39:06ezmobiusso rba files dont use zip anymore?
08:39:19ezmobiusor what's an Ar?
08:40:04wombleezmobius: An ar archive, I believe.
08:40:21wombleI think Eric was talking about it at the sprint earlier
08:40:48ezmobiusdid you make it to the sprint womble ?
08:41:09Defilerezmobius: check out 'man ar'
08:41:27DefilerIt is a really simple archive format, and lets us avoid a dependency on the horrible libzip
08:41:34ezmobiusahh cool
08:41:57wombleezmobius: I did. It was very cool.
08:42:51wombleI'm now heartbroken that I won't have enough seat space to use my laptop on the plane over, because I've got a real hankering to fix a couple of hundred failing specs on my way over to SF tomorrow. <grin>
08:43:22DefilerJust make the person next to you lean forward and use their back as a table
08:43:48DefilerIf you practice looking intimidating, you can make it happen without speaking
08:44:27wombleDefiler: I've got the "looking intimidating" down pretty well, but I still doubt there'll be enough space. Those aircraft seats are fricking *tiny*.
08:45:05DefilerIndeed =(
08:45:44ezmobiusso when do you get into sf then womble ?
08:46:18wombleezmobius: About 10am Monday, local time.
08:46:33wombleI'm leaving at 2pm Monday, local time. It's always a mind-fuck crossing the date line.
08:46:44dbussinkbrixen: ah, that what i've been meaning to ask you
08:47:11dbussinkbrixen: probably just missed you
08:47:24wombleAnd then I completely lose a day coming back. I will not have a Saturday at all! *sob*
08:47:59DefilerI lost two days on the way to Japan last year
08:48:06DefilerThat is pretty disorienting
08:49:36wombleTwo days? Whoa.
08:49:50DefilerYeah, got rerouted the wrong way around the globe.
08:49:55Defiler41 hours of travel whee
08:50:15wombleHoly crap.
08:50:32dbussinkthat really hurts
08:51:38ezmobiusouch
08:52:26DefilerEarned me something like 22k frequent-flier miles, at least
08:52:32DefilerSo that helps with the sting
08:58:45wombleDefiler: What's that worth, an extra packet of in-flight peanuts? <grin>
09:05:06DefilerSlightly more, luckily :)
09:05:28KirinDave leaves the room.
09:10:52GMFlash leaves the room.
09:11:00chris2 enters the room.
09:15:37dbussinkDefiler: are there some instructions / guidelines somewhere or how to properly profile stuff?
09:20:45DefilerNot that I am aware, no
09:21:00DefilerJust the various tiny pieces of text associated with the command-line switches
09:21:10wmoxam leaves the room.
09:21:13DefilerI want to try out the dtrace stuff and write it up
09:21:17Defiler..but for now, sleep beckons
09:21:37dbussinknight!
09:26:55RyanTM leaves the room.
09:32:56jinjing_ enters the room.
09:36:38chris2_ enters the room.
09:42:53eugenebrechko_ enters the room.
09:43:22chris2 leaves the room.
09:48:24dbussinkrue: you still there?
09:48:58jinjing leaves the room.
09:50:56ezmobius leaves the room.
09:52:32eugenebrechko leaves the room.
09:54:22thehcdreamer enters the room.
10:20:32thehcdreamer leaves the room.
10:28:53cyndis__ enters the room.
10:31:31womble leaves the room.
10:36:10cyndis_ leaves the room.
10:42:46ruedbussink: Awful presumptuous of you! Decent people are in bed at this hour
10:43:10dbussinkrue: hehe :D
10:43:41dbussinkguess we're not all decent people here ;)
10:44:55dbussinkrue: but i have a question about the array block sort
10:45:24dbussinkbecause it has a heuristic for reverse sorted, but that assumes that <=> is available on the elements contained in the array
10:45:31dbussinkbut with a block sort that doesn't have to be the case
10:47:49lachie leaves the room.
10:48:28mutle leaves the room.
10:48:34lachie enters the room.
10:49:21mutle enters the room.
10:56:34ruedbussink: Hm, it does? I thought it did return values only.. sec
10:56:54dbussinkrue: array.rb:1801
10:57:44dbussinkrue: easiest way to trigger the bug is ./shotgun/rubinius -pss and then ctrl d
10:58:02thehcdreamer enters the room.
10:59:41rueMm, it does. So need a few more block.call in there then
11:00:24nemerle enters the room.
11:02:37rueOK, fixing
11:10:17dbussinkrue: do you know what the policy is on differences in regexp handling between onig and mri?
11:10:27dbussinkrue: because i've hit a case now
11:11:34thehcdreamer leaves the room.
11:25:08thehcdreamer enters the room.
11:27:26ruedbussink: Different or broken?
11:27:33dbussinkrue: different
11:28:17dbussinkrue: try "A" =~ /[^a]/i in rubinius and mri
11:34:36rueHm, no, that is broken
11:36:38dbussinkwell, perl for example behaves like onig (== rubinius)
11:37:01dbussinkthis would probably mean hacking some nasty stuff into onig
11:41:32rueNo point breaking it in onig
11:41:57dbussinkwhat do you mean?
11:41:58rueI would probably call that a MatzRuby bug, did you see if it had been reported?
11:42:10dbussinkno, not yet
11:45:52dbussinkdamn, found another nasty bug in mri
11:48:58thehcdreamer leaves the room.
11:50:26mae leaves the room.
11:50:50mae enters the room.
11:52:24rueWhich one?
11:53:19dbussinki was working on fixen & for fixnum if it is given a bignum
11:53:23dbussinkfixing
11:53:34dbussinkmri works ok with -1 & 2**64
11:53:50dbussinkbut not when the second argument is mocked and coerced using to_int
11:53:56dbussinkthen it fails with a range error
11:54:04dbussinkbut my fix makes that work on rubinius too
11:54:25dbussinkthis is sometimes problematic for ipv6 addresses, this is how i found it
11:57:54mediogredbussink: sorry for clinging in, why do you say perl is different from mri (or yarv) in that regexp?
11:59:12dbussinkmediogre: ah, no, sorry you're right
11:59:27mediogreI just run that regexp in mri, yarv and perl and they seem to agree on not matching it (I do not have a built rubinius right now, so can't test on it)
12:00:13dbussinkmediogre: you're right, rubinius is the problem hre
12:00:14dbussinkhere
12:00:32dbussinkbut that still means we have to hack in onig in order to fix this
12:01:04geekounet leaves the room.
12:05:20geekounet enters the room.
12:08:13pd leaves the room.
12:18:44dewd enters the room.
12:21:24radarek enters the room.
12:34:42rue19 uses Onig
12:35:13dbussinkhmm, then we probably don't pass in the 'i' option
12:35:21dbussinkwould make an easy fix then
12:38:51rueI do not understand why we need to 'fix' it
12:44:18dbussinkwell, because it's wrong on rubinius now
12:44:23dbussinknot the same as on mri
12:45:14boyscout1 commit by Dirkjan Bussink
12:45:15boyscout * Fix Bignum#& and specs for Fixnum AND, OR and XOR; ad8c630
12:46:40dbussinkrue: "Aab" =~ /[^a]/i => 0 on rubinius
12:46:44dbussinkrue: "Aab" =~ /[^a]/i => 2 on mri
12:46:56tizianobis_ enters the room.
12:47:13dbussinkit matches the A for a ^a, even though it should be a case insensitive match
12:57:02rueOh! For some reason I thought that was [a]
12:57:33jinjing_ leaves the room.
12:59:41octopod enters the room.
13:03:35rubuildius_ppcDirkjan Bussink: ad8c63066; 1741 files, 5887 examples, 19986 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163613
13:03:53rueHm, 14 more to go
13:12:15dbussink14 od what?
13:12:16dbussinkof what?
13:14:57jinjing enters the room.
13:17:02thehcdreamer enters the room.
13:20:15dbussinkah, nvm :)
13:36:49Arjen_ enters the room.
13:47:55dbussinkhmmm, fixing IPAddr stuff got me fixing fixnum / bignum shift stuff
13:48:17dbussinkbut i took a completely different approach than then lh tickets on this
13:49:11thehcdreamer leaves the room.
13:52:21geekounet leaves the room.
13:52:56boyscout2 commits by Dirkjan Bussink
13:52:56boyscout * Updated tags for IPAddr because of fixed bit operations; e6edd1b
13:52:58boyscout * Fix Fixnum and Bignum shift operations to match MRI; 4f59fa9
13:55:44thehcdreamer enters the room.
14:04:14jinjing leaves the room.
14:06:11rubuildius_ppcDirkjan Bussink: e6edd1bb4; 1741 files, 5896 examples, 20018 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163626
14:06:31dbussinkrue: there you go, over the 20k :)
14:06:45rueCool
14:18:12radarek leaves the room.
14:39:40ubiquitous enters the room.
14:39:49headius enters the room.
14:50:32jinjing enters the room.
14:53:46jwall_ enters the room.
14:54:23headius leaves the room.
14:55:05lopex enters the room.
14:55:43AndrewO enters the room.
14:58:49ttmrichter leaves the room.
14:59:22ttmrichter enters the room.
14:59:24ttmrichter leaves the room.
14:59:53ttmrichter enters the room.
14:59:59ttmrichter leaves the room.
15:00:30ttmrichter enters the room.
15:03:16headius enters the room.
15:08:08imajes enters the room.
15:14:13ubiquitous leaves the room.
15:16:52rueHm, this is weird. I see errors
15:16:57rueBut nothing in the counts
15:17:05ttmrichter leaves the room.
15:18:19dbussinkrue: what do you mean?
15:18:26rueSec
15:19:51rueOh! Gah, it is getting late
15:20:09rueAlso, apparently you CAN have too transparent terminals
15:20:25dbussinkhehe, old errors peeping through?
15:22:12rueYep
15:23:23radarek enters the room.
15:27:42boyscout2 commits by Eero
15:27:43boyscout * Array#sort, #sort! with block do not use #<=> on elements. Fixes #412.; b195f76
15:27:44boyscout * Specs for #412. Array#sort and #sort block form calls #<=> on elements.; ff71385
15:28:42rueOK, wow. It is seriously time to go to bed.
15:29:17ruedbussink: Solves that but looks like your test case has other issues too
15:29:37dbussinkrue: ok, well, get some sleep then :)
15:30:50rueI might just go to the store and bother random people at the soy milk fridge
15:39:30ttmrichter enters the room.
15:40:11rubuildius_ppcEero: b195f7636; 1741 files, 5900 examples, 20022 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163643
15:43:48cremesrue: if you are seeing "ar" errors, do this: rm -r spec && git checkout spec
15:44:22cremesrue: those errors (which don't show up in the count) are due to removal of libzip yesterday
15:46:26ruecremes: I am seeing stars :)
15:47:05cremesrue: stars?!? oh noes!
15:50:23be9 enters the room.
15:54:51rueWee, I got back in my old LH account
15:58:31b3b0p enters the room.
15:59:11b3b0p leaves the room.
16:01:34rueHm, best option ever.
16:01:37rue--enable-pie
16:04:13octopod leaves the room.
16:14:24thehcdreamer leaves the room.
16:19:52headiusI like pie
16:21:44RyanTM enters the room.
16:21:48ttmrichter leaves the room.
16:22:49binary42 enters the room.
16:25:27headiusso how'd the sprint go?
16:25:49rueI think there is still the marathon of getting home
16:26:15headiusyou get an answer on whether to run through and apply patches?
16:28:25srbaker enters the room.
16:31:45GMFlash enters the room.
16:33:32KirinDave enters the room.
16:36:15rueApparently that is fine
16:37:45thehcdreamer enters the room.
16:40:28shoe enters the room.
16:46:13obvio171 enters the room.
16:47:22obvio leaves the room.
16:55:45headiusgoodie
17:02:47mediogre leaves the room.
17:04:14ubiquitous enters the room.
17:10:27jero5 enters the room.
17:11:43obvio171 enters the room.
17:12:49thehcdreamer leaves the room.
17:15:07ubiquitous_ enters the room.
17:16:15obvio leaves the room.
17:18:29b3b0p enters the room.
17:22:14chop3 leaves the room.
17:29:24ubiquitous leaves the room.
17:29:54geekounet leaves the room.
17:29:56geekounet enters the room.
17:31:17b3b0p leaves the room.
17:31:32b3b0p enters the room.
17:32:13jinjing enters the room.
17:34:11nemerle leaves the room.
17:34:11eugenebrechko_ leaves the room.
17:34:11rue leaves the room.
17:34:11aasmith leaves the room.
17:34:11Defiler leaves the room.
17:34:11djwhitt leaves the room.
17:34:11mass leaves the room.
17:34:11boyscout leaves the room.
17:34:11Fobax_ leaves the room.
17:34:11_goodney_ leaves the room.
17:34:11tarcieri leaves the room.
17:34:11goodney leaves the room.
17:34:11crayz__ leaves the room.
17:34:11manveru leaves the room.
17:34:11shingara leaves the room.
17:34:11chris2 leaves the room.
17:34:11be9 leaves the room.
17:34:11VVSiz_ leaves the room.
17:34:11flori_ leaves the room.
17:34:46be9 enters the room.
17:34:46nemerle enters the room.
17:34:46eugenebrechko_ enters the room.
17:34:46chris2 enters the room.
17:34:46VVSiz_ enters the room.
17:34:46rue enters the room.
17:34:46aasmith enters the room.
17:34:46Defiler enters the room.
17:34:46djwhitt enters the room.
17:34:46flori_ enters the room.
17:34:46mass enters the room.
17:34:46shingara enters the room.
17:34:46boyscout enters the room.
17:34:46Fobax_ enters the room.
17:34:46manveru enters the room.
17:34:46_goodney_ enters the room.
17:34:46tarcieri enters the room.
17:34:46goodney enters the room.
17:34:46crayz__ enters the room.
17:43:54srbaker leaves the room.
17:44:51AndrewO leaves the room.
17:46:29wmoxam enters the room.
17:52:17srbaker enters the room.
17:54:31headiushey, does rbx have to be installed to install gems?
17:54:33headius~/NetBeansProjects/rubinius $ time shotgun/rubinius gem install rake
17:54:33headiusBulk updating Gem source index for: http://gems.rubyforge.org
17:54:33headiusERROR: While executing gem ... (ENOENT)
17:54:33headius No such file or directory - /usr/local/lib/rbx/gems/1.8.6/cache/rake-0.8.1.gem
18:10:58rueAlright, kids, stop clowning around
18:14:23dodecaphonic enters the room.
18:17:20headiushmm, what's up with this: no such file to load -- rdoc/generator/ri.rb (LoadError)
18:18:58headiusso what modifications have you guys made to rubygems? because there is no ri.rb in ruby stdlib
18:19:50nemerle leaves the room.
18:19:50dodecaphonic leaves the room.
18:19:50goodney leaves the room.
18:19:50_goodney_ leaves the room.
18:19:50Fobax_ leaves the room.
18:19:50boyscout leaves the room.
18:19:50djwhitt leaves the room.
18:19:50mass leaves the room.
18:19:50eugenebrechko_ leaves the room.
18:19:50tarcieri leaves the room.
18:19:50aasmith leaves the room.
18:19:50Defiler leaves the room.
18:19:50crayz__ leaves the room.
18:19:50manveru leaves the room.
18:19:50shingara leaves the room.
18:19:50rue leaves the room.
18:19:50chris2 leaves the room.
18:19:50be9 leaves the room.
18:19:50VVSiz_ leaves the room.
18:19:50flori_ leaves the room.
18:20:36dodecaphonic enters the room.
18:20:36be9 enters the room.
18:20:36nemerle enters the room.
18:20:36eugenebrechko_ enters the room.
18:20:36chris2 enters the room.
18:20:36VVSiz_ enters the room.
18:20:36rue enters the room.
18:20:36aasmith enters the room.
18:20:36Defiler enters the room.
18:20:36djwhitt enters the room.
18:20:36flori_ enters the room.
18:20:36mass enters the room.
18:20:36shingara enters the room.
18:20:36boyscout enters the room.
18:20:36Fobax_ enters the room.
18:20:36manveru enters the room.
18:20:36_goodney_ enters the room.
18:20:36tarcieri enters the room.
18:20:36goodney enters the room.
18:20:36crayz__ enters the room.
18:23:07nemerle leaves the room.
18:23:07goodney leaves the room.
18:23:07_goodney_ leaves the room.
18:23:07Fobax_ leaves the room.
18:23:07boyscout leaves the room.
18:23:07djwhitt leaves the room.
18:23:07dodecaphonic leaves the room.
18:23:07mass leaves the room.
18:23:07eugenebrechko_ leaves the room.
18:23:07tarcieri leaves the room.
18:23:07aasmith leaves the room.
18:23:07Defiler leaves the room.
18:23:07crayz__ leaves the room.
18:23:07manveru leaves the room.
18:23:07shingara leaves the room.
18:23:07rue leaves the room.
18:23:07chris2 leaves the room.
18:23:07be9 leaves the room.
18:23:07VVSiz_ leaves the room.
18:23:07flori_ leaves the room.
18:23:40dodecaphonic enters the room.
18:23:40be9 enters the room.
18:23:40nemerle enters the room.
18:23:40eugenebrechko_ enters the room.
18:23:40chris2 enters the room.
18:23:40VVSiz_ enters the room.
18:23:40rue enters the room.
18:23:40aasmith enters the room.
18:23:40Defiler enters the room.
18:23:40djwhitt enters the room.
18:23:40flori_ enters the room.
18:23:40mass enters the room.
18:23:40shingara enters the room.
18:23:40boyscout enters the room.
18:23:40Fobax_ enters the room.
18:23:40manveru enters the room.
18:23:40_goodney_ enters the room.
18:23:40tarcieri enters the room.
18:23:40goodney enters the room.
18:23:40crayz__ enters the room.
18:24:16d2dchat leaves the room.
18:24:31d2dchat enters the room.
18:27:19nemerle leaves the room.
18:27:19goodney leaves the room.
18:27:19_goodney_ leaves the room.
18:27:19Fobax_ leaves the room.
18:27:19boyscout leaves the room.
18:27:19djwhitt leaves the room.
18:27:19dodecaphonic leaves the room.
18:27:19mass leaves the room.
18:27:19eugenebrechko_ leaves the room.
18:27:19tarcieri leaves the room.
18:27:19aasmith leaves the room.
18:27:19Defiler leaves the room.
18:27:19crayz__ leaves the room.
18:27:19manveru leaves the room.
18:27:19shingara leaves the room.
18:27:19rue leaves the room.
18:27:19chris2 leaves the room.
18:27:19be9 leaves the room.
18:27:19VVSiz_ leaves the room.
18:27:19flori_ leaves the room.
18:28:03dodecaphonic enters the room.
18:28:03be9 enters the room.
18:28:03nemerle enters the room.
18:28:03eugenebrechko_ enters the room.
18:28:03chris2 enters the room.
18:28:03VVSiz_ enters the room.
18:28:03rue enters the room.
18:28:03aasmith enters the room.
18:28:03Defiler enters the room.
18:28:03djwhitt enters the room.
18:28:03flori_ enters the room.
18:28:03mass enters the room.
18:28:03shingara enters the room.
18:28:03boyscout enters the room.
18:28:03Fobax_ enters the room.
18:28:03manveru enters the room.
18:28:04_goodney_ enters the room.
18:28:04tarcieri enters the room.
18:28:04goodney enters the room.
18:28:04crayz__ enters the room.
18:32:38GMFlash leaves the room.
18:32:50tizianobis leaves the room.
18:33:44KirinDave leaves the room.
18:35:11TheVoice enters the room.
18:37:44benburkert enters the room.
18:47:09dodecaphonic leaves the room.
18:53:47mernen enters the room.
18:55:31mernen leaves the room.
18:56:22radarek leaves the room.
18:57:33boyscout3 commits by Dirkjan Bussink
18:57:34boyscout * Slow IPAddr specs are now fast; f4c0d08
18:57:35boyscout * Fix IPSocket.getaddress so it doesn't depend on possibily slow DNS lookups; 7c76d8e
18:57:36boyscout * Clean up Socket.getaddrinfo; 34e75d5
18:57:55benburkert leaves the room.
19:03:30TheVoice leaves the room.
19:04:17TheVoice enters the room.
19:08:13TheVoice leaves the room.
19:09:59rubuildius_ppcDirkjan Bussink: f4c0d08be; 1741 files, 5904 examples, 20040 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163723
19:10:51mernen enters the room.
19:10:51mernen leaves the room.
19:22:04wmoxam leaves the room.
19:33:28GMFlash enters the room.
19:36:03dkubb enters the room.
19:50:23wmoxam enters the room.
19:54:09mkescher enters the room.
20:00:33d2dchat leaves the room.
20:02:17d2dchat enters the room.
20:11:53MenTaLguY enters the room.
20:13:13boyscout1 commit by Wilson Bilkovich
20:13:15boyscout * Show --shark, --valgrind, and --dtrace in help output; a1689ea
20:13:44dbussinkDefiler: ah, you there?
20:13:56dbussinkDefiler: how do i update an external lib?
20:14:22dbussinkDefiler: i've found an issue with onig and i think it's solved in the latest version (if i read the changelog)
20:14:25DefilerWhat do you mean by 'update', exactly?
20:14:33DefilerAah, yeah.
20:14:35benburkert enters the room.
20:14:48DefilerMy connection is super slow right now, so it is hard to type. Heh
20:15:03DefilerWhat you should do is look at the log for that path in git
20:15:17DefilerTo make sure we don't have any local patches
20:16:15dbussinkonly very few
20:16:52DefilerThen update the files, check them in, and repeat any local changes that were made to the earlier version
20:17:11dbussinkwhat the suggestion for updating the files? simply copy stuff over it?
20:17:47benburkert_ enters the room.
20:19:18DefilerI would probably git rm it, and then put a whole fresh one in, in two separate commits
20:19:33DefilerThat is just my intuition, though. Could be the wrong approach
20:19:59DefilerMan, where is that crafterm slacker. Heh
20:21:05dbussinkrsynced everything over it now, just gonna test it first
20:21:48dbussinkDefiler: it's still early in australia :)
20:22:00dbussinki have like 4 clocks on my dashboard these days :P
20:22:41DefilerOh, check this out, then.
20:22:53Defilerhttp://www.mabasoft.net/products/worldClockDeluxeX.html
20:23:34dewd leaves the room.
20:23:36dbussinkah, looks like the onig update fixes my problem:)
20:24:00dewd_ enters the room.
20:29:47DefilerCool. What version are you updating to?
20:29:54DefilerI believe 1.9 is on 5.9.1 right now
20:30:22d2dchat leaves the room.
20:30:40rubuildius_ppcWilson Bilkovich: a1689ea52; 1741 files, 5904 examples, 20040 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/163740
20:30:59aotearoa enters the room.
20:33:35dbussinkDefiler: 5.9.1 too, it's the latest version
20:33:42dbussinkDefiler: we were on 5.9.0
20:33:58benburkert leaves the room.
20:34:20dbussinkDefiler: fixing the ipaddr specs lead you all over the place :p
20:38:38dbussinkwent to fixnum / bignum left / right shift, socket and regexp :)
20:41:00DefilerSweet
20:44:18dbussinkhmm, only a minor issue now
20:44:33dbussink"blablabla".rindex("bl", 0) should be 0, but is nil now with onig 5.9.1
20:45:48dbussinkand that last case actually makes more sense to me
20:46:28DefilerWhy?
20:46:45DefilerActually, why should that be zero?
20:46:55dbussinkthe specs say it should be
20:47:07dbussinkand just tested with 1.9, there it is still the same
20:47:27dbussinkalthough imho nil would make more sense, because "bl" isn't part of the string "" at all
20:47:27DefilerShouldn't that be 6?
20:47:54dbussinkthe additional 0 means that only the first 0 characters should be used
20:47:59Defileroohhh
20:48:25dbussinkinclusive if i read the specs correctly
20:48:28DefilerWe should probably just return early when the second arg is 0
20:48:39dbussink"blablabla".rindex("bl", 4) => 3
20:48:41DefilerBecause it doesn't matter what the string is
20:48:44dbussinkyeah
20:49:02DefilerOr, more generally, when the second argument is less than the length of the first argument
20:49:36dbussinkno, that's not correct
20:49:59dbussinkoh, wait, first argument, yeah, that's right
20:50:30dbussinkjust checking with ruby, they implement this method by hand, not using a regexp
20:50:58DefilerDoesn't it accept a regexp as one of the arguments, though?
20:51:38dbussinkyeah, it does
20:52:32d2dchat enters the room.
20:52:38dbussinkeven accepts negative indices
20:52:52DefilerAnother pleasant string API =(
20:53:13dbussinkah, that already works in rubinius too
20:58:08eugenebrechko_ leaves the room.
20:58:32dbussinkDefiler: care to take a look with me?
20:58:56dbussinkDefiler: line 334 and onwards from rindex_spec.rb
20:59:32dbussinkare those specs correct in your opinion?
21:00:06pietia enters the room.
21:02:29wmoxam leaves the room.
21:06:21Defilerdbussink: OK, let me open it up. Sec
21:06:58gnufied enters the room.
21:07:34DefilerThey aren't great, but they do look correct
21:08:04DefilerWell, the 'it' string is wrong
21:08:11DefilerIt ENDS the search at that offset
21:08:28be9 leaves the room.
21:08:37DefilerAlso, the ones that choose progressively lower end-points don't actually continue far enough to change the return value
21:08:45DefilerSo they fail to test the edge case in question
21:09:13dbussinkwell, it would make more sense to me if the seach would end at