Index

Show enters and exits. Hide enters and exits.

00:01:55JamesKiltonrbx has an interesting Languages list on Github. Python, Scheme, D?
00:02:08evandon't know where it's getting that
00:02:12evanperhaps the external_libs
00:03:52JamesKiltonpossibly
00:08:02boyscoutCI: rubinius: cb7dd02 successful: 3502 files, 14365 examples, 42141 expectations, 0 failures, 0 errors
00:13:52slavabrixen: I'm in pdx
00:14:26slavaevan: theres going to be a big scandal in the blogosphere if word gets out that the allegedly "self hosting" rubinius is written in python
00:14:36evanhehe
00:15:02evani've got my sunglasses on, i can take it.
00:17:07brixenslava: woot!
00:17:17brixenslava: I'm at the speaker lounge at oscon
00:20:04slavabrixen: got time for a beer?
00:21:18JamesKiltonhmm, pybinius. just doesn't roll of the tongue as well
00:28:03brixenslava: where are you at?
00:28:48slavabrixen: a hotel near the convention center
00:30:24brixenslava: want to crash the pdxscala meetup at 7?
00:30:52brixenhttp://pdxscala.org/pdxscala-meet-and-greet-july-19th-7pm-lucky-l
00:31:16brixenslava: also, while you're here: http://calagator.org/
00:36:29slavasure
00:36:42brixenok
00:36:57brixenwant to meet there, or meetup before going there?
00:37:12evanhave fun boys!
00:37:14evanplay nice!
00:37:19brixenhehe
00:37:23slavaI'm going to get dinner with a friend first, want to join us?
00:37:29brixensure
00:38:06brixenwhere should I meet you?
12:46:50rb2kYARV is still using mark&sweep gc, right?
12:47:24rb2kwhile rubinius uses a compacting, generational garbage collector
16:50:03jakedouglashowdy
16:50:15evanhey hey.
16:54:24sbryanthi y
16:54:29sbryantwoops
16:56:38evanheh
18:25:19goyox86evan: i was watchin the matz keynote in Euroko 2010, and somebody asked him about "which was the alternative ruby implementation he likes most?"
18:25:42goyox86evan: He answered Rubinius :]
18:25:46evan:)
18:26:40goyox86evan: did you watched the keynote?
18:26:47evanhm, i don't think so.
18:27:17goyox86evan: http://vimeo.com/12674501
18:46:59evangoyox86: where in it does he talk about rubinius?
18:47:47boyscoutKernel.extend now raises a TypeError, when called on a frozen object - 59716c1 - Jose Narvaez
18:47:47boyscoutRemove tag for passing Kernel.extend specs - e89d70d - Jose Narvaez
18:50:36goyox86evan: at the end evan, somebody ask him about the alternate ruby implementations, which he likes most or something like that, also in the middle of the talk he talks about how the community have solved some "ruby issues"
18:50:50evando you have a time code for it?
18:52:20evanfound it
18:53:50goyox86evan: it was very funny, matz is a very funny guy, his face when he noticed the 'Blave' typo :]
18:54:02evanyeah :D
18:55:42brixen:( http://www.wall.org/~larry/cheatsheet
18:56:20boyscoutCI: rubinius: e89d70d successful: 3502 files, 14366 examples, 42142 expectations, 0 failures, 0 errors
18:59:24evanboyscout: hah
18:59:26evaner.
18:59:27evanbrixen: hah
19:00:00brixenlet's hope matz is well beyond the stage of looking to Perl for inspiration
19:00:11evani think he is.
19:00:12evanyeah.
19:00:19evanhe wishes he hadn't introduced $1
19:00:39evanso, here is a question
19:01:02evanwhich is clearer about this being the name of a block defined on line 53 of action, which has an argument named obj:
19:01:03evanMSpec.actions<63> {|obj|}
19:01:04evanor
19:01:09evanMSpec.actions<63> {}(obj)
19:01:30brixento me, the first
19:01:36evank
19:01:46evani'm a little worried it looks like action is being called with a block
19:01:50evanrather than the block being within action.
19:02:03brixenhm
19:02:27jakedouglasi think i would have guessed the former
19:03:05evanjakedouglas: guessed in which way?
19:03:39jakedouglasi would have thought "this looks like action is being called with a block"
19:04:07evanright
19:04:12evanwhich is not whats happening
19:04:32evanwe've used "Class#method {}" for a long time to say "a block defined in method"
19:04:39evanbut yes, it's ambigious
19:04:40evanwhat about
19:04:48evanClass::method {}
19:04:56evanI used that in the profiler output
19:05:07jakedouglasi dont feel like that clarifies it
19:05:10jakedouglascan't you say like
19:05:12evanthe :: provides a little clue
19:05:17jakedouglas{} in Class#method ?
19:05:29brixen{|obj| } in MSpec.actions at 63
19:05:33brixenjakedouglas: jinx
19:05:33jakedouglasyea
19:05:41jakedouglasthats what would be clear to me.
19:05:43evanI could
19:05:50evanok
19:05:54evani'll go with that.
19:06:50brixenI kinda like the space in {|obj| } because the asymmetry keeps {| |} from just looking like a blob
19:07:11evanhttp://gist.github.com/483392
19:07:14jakedouglasmaybe {|obj| … }
19:07:25jakedouglasi like that best.
19:07:41evanyes, i'm hooking our reference debugger up to --spec-debug
19:07:52brixensweet
19:07:55evanso we can debug specs like mammals
19:07:57evanand not lizards
19:08:03evanlizards use print.
19:08:06brixenyeah, that difference highlights the blocks nicely
19:08:19brixensince the differentiator is on the left rather than the middle
19:08:26evanjakedouglas: the unicode character is the only issue.
19:08:38jakedouglas?
19:08:42evanbrixen: your ...
19:08:46brixencould just use _ rather than elipsis
19:08:46jakedouglasoh.
19:08:53evanyou used the unicode elipsis
19:09:05jakedouglasi didn't realize that was a special thing.
19:09:23brixenyour chat prog probably inserts it
19:09:29jakedouglasoh. adium
19:09:47jakedouglasi meant {|obj| periodperiodperiod }
19:09:52brixenheh, yeah
19:10:00brixenthat'd be a little long in fixed width
19:10:15brixen_ is used as a variable name to mean "don't care"
19:10:16evankendall :: git/rbx » cat scr.rb
19:10:16evanp "…".unpack("C*")
19:10:16evankendall :: git/rbx » ruby scr.rb
19:10:18evan[226, 128, 166]
19:10:22jakedouglasright
19:10:23evanfyi.
19:10:50brixenI think the space is just enough
19:10:57evanreload the gist
19:10:59brixenit doesn't look terrible without it
19:11:00evancheck the bottom
19:11:05jakedouglasi just think periodperiodperiod looks nicest as an indicator of "something goes on in here"
19:11:09brixentoo much dots
19:11:14evank
19:11:18jakedouglaseh
19:11:19evanso {} for no args
19:11:23evanand {|obj| }
19:11:25evanfor args?
19:11:28evanor { } for no args
19:11:42jakedouglasyour dots on the gist are bigger than the dots on adium :p
19:11:45brixenmy vote is for the space versions
19:11:58evank
19:12:02evanlets see that...
19:12:25evanok
19:12:26evanreload gist
19:12:28evancheck bottom
19:12:46jeremyevansevan: If some MRI C API functions are missing in Rubinius (e.g. rb_need_block, rb_marshal_dump), should I open an issue on GitHub?
19:12:52evanjeremyevans: sure
19:12:57evanwhat is rb_need_block?
19:12:59jakedouglascan you try another space? { |obj| }
19:13:00evanis that in 1.9?
19:13:05evanjakedouglas: sure
19:13:09jakedouglasnot sure i like the asymmetry
19:13:14jeremyevansevan: It raises an error if a block isn't provided
19:13:16jakedouglasbut who knows.
19:13:28evanjakedouglas: ok, reload
19:13:31evanjeremyevans: ah! thats easy.
19:13:32evanok
19:13:32jeremyevansevan: It works on 1.8 and 1.9, I think
19:13:35brixenI like the assymetry because it sets off the args
19:13:37evani thought it was going to be something IO related.
19:13:45evanjeremyevans: sure, open the issue
19:13:58brixenwith the minimum effective difference :)
19:14:15evanI could also omit the arg names all together
19:14:15jakedouglasbrixen: yea but when you don't have any code in the block, having a space on either side makes it easiest to read the argument names, imo
19:14:17evanbut they're nice.
19:14:37brixenargs are nice
19:14:53brixenmy vote is: 1st asymmetric space, 2nd no space
19:15:28evanadded another
19:15:34evanusing _
19:15:53brixento me, that's too much noise
19:16:07jeremyevansevan: I've confirmed that both functions in are in ruby 1.8 and 1.9. I'll open up an issue now.
19:16:15brixenand reminds me of method calls like foo.bar( arg )
19:16:19brixenwhich I hate :)
19:16:27jakedouglas:P
19:16:33evan:)
19:17:00evanbrixen: k
19:17:10evanthe ... isn't really too long
19:17:15brixenthe code for methods is never shown, so I wouldn't expect code for blocks to be shown
19:17:21brixenso there is no need for _ in my mind
19:17:22evanit's only 3 bytes in comparison to everything else on the line
19:17:47brixenI don't like {| |} clumping up, and on space breaks that visually, easily
19:17:50brixenthat's my rational
19:17:53brixen+e
19:17:59evanyeah, i agree with that
19:18:08evanno spaces between the { and | looks odd.
19:18:59evanok, one last one
19:19:01evancheck it out.
19:19:01brixenand I'm going to look at a lot of these, so I want easy to recognize but not easy to confuse patterns
19:19:05evanit's sort of the most verbose thus far.
19:19:21jakedouglasi think i like that one the most heh
19:19:24evanit's also an easy to see pattern
19:20:05jeremyevansevan: http://github.com/evanphx/rubinius/issues/issue/421
19:20:41jakedouglasyay, jeremyevans has provided some low hanging fruit
19:21:48evanstupid gist reordered them
19:21:52evananyway
19:21:58evan#7 is the unicode elipsis
19:22:30brixenprobably should stick to ascii
19:22:39evanyeah
19:22:44evanbrixen: thoughts on #1?
19:22:53evantoo noisy?
19:22:58brixenway too noisy for me
19:23:12brixenit's just a totally irrelevant element
19:23:27brixenI don't expect anything in that place and it adds no info
19:23:52evanwhich do you like better, #4 or #5
19:23:56evan(this is like the eye doctor)
19:24:09brixenI prefer 4
19:24:26brixenciting the minimum effective difference principle :)
19:24:40evan:)
19:24:56evanI think I like #5 better.
19:25:02brixenbut I won't roll my eyes at the symmetric one
19:27:36Defiler#4 is my favorite, closely followed by #3
19:27:46Defilerbut I wish there were an ampersand in there somewhere i.e. &block
19:27:57Defilerwhat about &block(arg1,arg2) ?
19:28:05Defileror &block()
19:28:08Defileretc
19:28:29evanrather than {} ?
19:28:35evan{} so nicely says "block"
19:28:40evanand in only 2 characters.
19:28:44brixenyeah
19:28:46DefilerYeah but it leaves this question of what you do with the place where the code normally goes
19:28:54Defileras you can see in these variations you pasted
19:28:56evanDefiler: right
19:29:04evanup til now, it's been just
19:29:06evan){
19:29:07evaner.
19:29:07evan{}
19:29:08evanalways
19:29:13Defilerblock[arg1,arg2] would have the advantage of being evaluatable code
19:29:20evannow i've wanted to say "this block has args named ..."
19:29:26evan{}(obj)
19:29:30evanseems really ugly
19:29:40brixenit's also not like real code
19:29:43evanusing || seems more natural
19:29:54brixena real block looks like {|a| }
19:29:56Defileryeah. #4 is good
19:30:18Defilerbrixen: it does, but when you're in the method with it, you can also see it as a proc instance
19:30:19brixena space can just as effectively stand for "stuff" as "..." IMO
19:30:23evanok, #4 is the lead horse
19:31:51evanI think it's because I always put a space betwene my { and |
19:31:58evanis why #5 seems more comfy to me.
19:32:14brixenevan: what's the number in (), the IP?
19:32:20evanyep
19:32:22brixenok
19:32:27evanthats going to be an option shortly.
19:32:33evanwhether or not do display it.
19:32:57brixenyeah, I always put { |x| ... } too, but the slightly more compact version is ok to me here
19:33:20brixenI would never write code like: foo.bar{|x,y|puts x}
19:33:23brixenlike I have seen
19:34:25Defilerjavascript people do that a lot
19:34:48brixenbecause javascript people hate everyone :)
19:34:58evanand freedom.
19:35:17Defilerespecially freedom
19:35:28brixenin my mind, it is really a pattern vs comprehension thing
19:35:31evanok guys
19:35:35brixenI need to comprehend code to understand it
19:35:35evanlast question before lunch
19:35:54brixenI need to recognize a pattern with info in the bt to think about flow and go look for it
19:35:57evanwhen showing a block
19:36:01evanshould I do
19:36:04evanClass#method {}
19:36:07evanClass.method {}
19:36:10evanClass::method {}
19:36:11evaner.
19:36:12DefilerIt's all about me me me with you brixen.. what does RUBY want? :)
19:36:12evan{} in ...
19:36:22brixenDefiler: hahah
19:36:22evanbasically, # . or ::
19:36:27evanor something else.
19:36:56Defilerwell, # and (\.|::) wouldn't ever be options at the same time, right?
19:36:56brixenevan: I'd use the separator that the method dictates
19:37:00evanthe profiler now uses Class::method {}
19:37:03Defileris this an instance method we're talking about?
19:37:15brixen# for instance, . for class/module
19:37:23brixenthe block is in a particular method type
19:37:25Defileragreed
19:37:26evanbrixen: right.
19:37:45evanok, so I should still try and figure out if we're invoking on a metaclass
19:37:45Defiler:: is just a silly method separator
19:37:55evaninvoking a method from a metaclass, rather.
19:37:56brixenevan: yeah, is that ok
19:38:05evanyeah, i'll need to fix the profiler
19:38:07evanit's using ::
19:38:09brixenok
19:38:18evanbecause I didn't have the right data to figure out . or #
19:38:22evanso rather than be wrong
19:38:23evanI used ::
19:38:29brixenmakes sense
19:38:39brixenI'd really prefer # or . though
19:38:45evanso, should we change the backtraces to use {} in ...
19:38:47evanrather than
19:38:50evanmethod {}
19:39:02evanour normal backtraces, not the debugger ones.
19:39:06brixenmy vote is yes
19:39:09evanconsistence is nice.
19:39:11brixenI think it's more clear
19:39:13brixenyeah
19:39:34evanok
19:39:43evanfor 1.1, we'll change that format
19:39:49evanand I think I'm going to add a new flag
19:39:51brixencool
19:39:57evanto indicate that backtraces should be emitted machine readable.
19:40:05evanso that we don't get into people trying to parse them
19:40:14evanparse our nice, human readable ones
19:40:20brixenahh good idea
19:40:23evanthat gives us the ability to tweak them
19:41:07evan-Xbacktrace.machine
19:41:08evan?
19:41:15evan-Xbacktrace.parsable
19:41:18evanis probably better.
19:41:22brixensure
19:41:24evank
19:41:29evani'll do that after lunch.
19:41:36evanbrixen: oscon going well?
19:41:41evandid you and slava make some scala friends?
19:41:57brixenheh, we didn't make it to scala land last night
19:42:08brixenhung out with trotter and a friend of slava's
19:42:14evanah nice.
19:42:40brixensounds like the scala meetup was fun
19:42:51brixenI'm sure there will be more fun tonight
19:43:00evanbtw, real fast
19:43:07evanwe're agreed that a block when no args are shown is
19:43:11evan{} or { }
19:43:15brixen{ }
19:43:17evank
19:45:45evanhttp://gist.github.com/483439
19:45:47evanok, chew on that
19:45:49evani'll bbiab.
19:46:12slavahi brixen, nice meeting you yesterday
19:47:56Defilerevan: that is so badass
19:48:28brixenslava: totally!
19:48:39brixenslava: I'm heading over after lunch-ish
19:48:52brixentrying to get some serious codez done :)
19:49:29brixenslava: there's a lot more places to try beer :)
19:49:42slavaI need to work on my presentatino today :)
19:50:12jakedouglas /Users/jake/.rvm/rubies/ruby-1.8.7-p249/bin/ruby -S rake -r /Users/jake/development/rubinius/rakelib/ext_helper.rb -r /Users/jake/development/rubinius/rakelib/dependency_grapher.rb build:mri
19:50:12jakedouglasrake aborted!
19:50:27jakedouglaswhat might my problem be? :(
19:50:35brixenslava: ditto
19:51:10brixenjakedouglas: is that running with --trace ?
19:51:14jakedouglasyes
19:51:19jakedouglaserr
19:51:20jakedouglasI LIED!
19:51:24brixenand you don't have a bt?
19:51:32brixenLIAR
19:51:33brixen:)
19:54:46jakedouglasok so its blowing up building an extension i guess (prob my fault). how do i get the output?
19:56:24brixendid you run that command directly?
19:56:32dbussinkjakedouglas: you're building rbx separately?
19:56:36dbussinkor with rvm?
19:57:03dbussinkif you have a separately clone of the rbx repo, make sure you don't have an active rvm version
19:57:10dbussinkbut that you use your system ruby
19:57:35jakedouglasyea i think im using 187. it looks like the problem is that its trying to use a 187 version that i dont have or something
19:57:50jakedouglas /Users/jake/.rvm/rubies/ruby-1.8.7-p249/bin/ruby <- doesn't exist
19:58:14dbussinkyou're doing ./configure && rake for building rubinius?
19:58:24dbussinkif so, do a rvm use system before running that
19:58:39jakedouglasguess i missed the ./configure
19:58:56jakedouglastrying
20:01:37dbussinkbut be sure to do rvm use system first so you don't have an rvm installed ruby active
20:01:51jakedouglaswhy is it a problem to use an rvm ruby
20:02:10dbussinkbecause rvm defines stuff like GEM_PATH
20:02:16dbussinkwhich rubinius honors like it should
20:02:28dbussinkbut that means it picks up gems compiled for your rvm ruby version
20:02:31dbussinkand things blow upo
20:02:33dbussinkup
20:02:38dbussinkthere's no real way to fix that
20:02:52jakedouglasi see
20:03:00wayneeseguindbussink: latest RVM unsets GEM_PATH on RBX install IIRC
20:03:16dbussinkwayneeseguin: also when running rbx?
20:03:20dbussinkbecause that will stay a problem
20:03:31dbussinkand i don't believe there's a sane way to fix it
20:03:46dbussinki run a lot of rbx stuff without rvm (easier when devving)
20:03:56wayneeseguindbussink: not when running, only install
20:04:00dbussinkand if i happen to have another rvm version active, stuff blows up
20:04:17wayneeseguindbussink: you can also do 'rvm rbx exec .....'
20:04:21dbussinkwayneeseguin: but only unsets it during building rbx with rvm
20:04:21dbussink?
20:04:23wayneeseguinto execute .... in the rbx env
20:04:29wayneeseguin(any commands)
20:04:43dbussinktrue, but when doing rbx dev, it's easier to work with a clone directly
20:04:53dbussinkand not something down in ~/.rvm/some/dir
20:05:02wayneeseguinyep
20:10:01dbussinkwayneeseguin: so then i always have to remember to not have an rvm version active :)
20:10:13dbussinkit's not a big problem, but something people should be aware of
20:10:35wayneeseguindbussink: gotcha
20:10:56wayneeseguindbussink: yeah... not sure how you'd 'fix' that other than ignore the GEM_HOME unless it's an rbx dir somehow
20:13:43dbussinkwayneeseguin: yeah, but trying to fix that could very well be way more brittle than the problem it tries to solve
20:19:13jakedouglashow do i make the capi specs rebuild after adding someting to rubyspec.h?
20:21:26dbussinkjakedouglas: ruby.h you mean?
20:21:53dbussinkjakedouglas: rake build and then ./bin/mspec spec/ruby/optional/capi/your_spec.rb should do the trick
20:22:04dbussinkthe capi specs themselves rebuild if needed
20:22:19dbussinkbut you need to do a rake build if you change stuff in vm/capi
20:22:29wayneeseguindbussink: true.
20:23:17jakedouglasno i mean rubyspec.h
20:23:55dbussinkjakedouglas: you added a define there?
20:23:59jakedouglasyes
20:24:06dbussinkyou need to do the same thing
20:24:22dbussinkthis is in the spec dir so it doesn't need an explicit rebuild
20:25:44jakedouglashmm. i added the define but it doesnt seem to be changing/rebuilding it
20:25:56jakedouglasadding the define should have made it so a method gets defined, but it isn't.
20:26:39evanjakedouglas: please gist a git diff
20:26:42evanjakedouglas: so we can see what you're doing
20:31:37slavahi evan
20:31:47evanhey slava.
20:35:00jakedouglasdoing a rake clean && rake made it work
20:35:12evank
20:41:54evani'm thinking about writing a disassembler today.
20:42:03slavawhoa
20:42:05slavafor bytecode or x86?
20:42:11evanrubinius bytecode
20:42:16JamesKiltonneat!
20:42:23evanrubinius bytecode back to rub
20:42:25evanruby
20:43:11evanbecause I'd like to have a way for the debugger to be able to show the source of methods where the .rb file isn't available
20:43:14evannamely, the kernel.
20:43:32slavayou don't want to ship kernel source with rbx installs?
20:43:37JamesKiltonwell you could copy over the .rb files in the kernel on install
20:43:38evancould, thats another option.
20:43:40dbussinkevan: cool :)
20:43:43evanyep yep
20:43:51evanputting the .rb along with the .rbc is another option.
20:44:06dbussinkevan: we have some datamapper api ideas which used parsetree with 1.8
20:44:28dbussinkbut if we can convert a proc into ruby or some ast style structure that would be nice and we can build it on that :)
20:44:41evanright
20:44:50evani'll probably go one step easier first
20:45:07evana condensed view of rubinius bytecode
20:45:15evana condensed rendering
20:45:37dbussinkevan: it's basically like ambition: http://defunkt.github.com/ambition/
20:45:51dbussinkand turn that proc into a query object for dm
20:45:52evanright, that maes sense
20:45:58evanmakes, rather.
20:46:27slavaevan: so you have block inlining now?
20:46:31evanyep
20:46:35evanstill not on by default
20:46:41evanit's causing some slowdowns in places
20:46:45slavathat's odd
20:46:46evanbut i should probably just flip the switch
20:46:48evanyeah
20:46:49slavadue to code size blowup?
20:46:51evani thought so too
20:46:52evanperhaps
20:53:48boyscoutAdd CAPI spec for rb_need_block - 87ba571 - Jake Douglas
20:53:48boyscoutadd rb_need_block() to rbx capi - 26e5ace - Jake Douglas
20:56:05evannice
20:56:17jakedouglas<- bored
20:57:00evanhehe
20:57:26jakedouglasregression week at work gets me doing things like this.
21:02:15jakedouglaswhat's a reasonable spec for rb_marshal_dump
21:03:02evanis it the same as Marshal.dump?
21:03:15jakedouglasthink so
21:03:26evanit appears to be, yeah.
21:03:41evanso check that it outputs the same thing as Marshal.dump for a string
21:03:43evanis enough
21:03:54jakedouglask
21:04:11boyscoutCI: rubinius: 26e5ace successful: 3502 files, 14368 examples, 42144 expectations, 0 failures, 0 errors
21:09:31dbussinkjakedouglas: good there's still low hanging fruit to dip into rbx with :)
21:09:50jakedouglasyea lots apparently
21:10:03jakedouglastrying to run real apps blows lots of shit up :p
21:11:43dbussinknothing like real shit to blow things up with :P
21:12:02evanjakedouglas: don't sit on stuff
21:12:03evanfile it.
21:12:08evanif you can't get to it right away.
21:12:17evani'm not aware of any "blows lots of shit" problems.
21:12:53dbussinkevan: well, missing capi methods can lead to bog blowups :P
21:13:00dbussinkeven if it's just small things
21:13:10evanyep
21:13:15evanstill not aware of any!
21:13:37evani know of the things we can't add
21:13:41evanand the things that depend on those
21:13:53dbussinkme neither, but haven't thrown a lot of new stuff at it lately :)
21:14:20dbussinkhopefully i can upgrade some stuff in our product soonish, so i can try that with rbx :)
21:14:27jakedouglaswell
21:14:45jakedouglasi have 2 seg faults and that Dir.glob bug filed
21:14:57jakedouglasim not sitting on anything else, just kind of blocked on those
21:14:59evanare you getting those segfaults everytime?
21:15:04jakedouglasyes
21:15:06evanoh.
21:15:09evanok
21:16:04evanthe dir one i've got fixed
21:16:06evani'll commit that.
21:16:14jakedouglask
21:16:19dbussinkreliable segfaults are usually a good thing
21:16:27dbussinkbetter than those spurious ones
21:16:46evanyeah
21:17:37jakedouglasyea so far i think i have been able to reproduce these every time
21:18:49dbussinkjakedouglas: also outside the project? with an empty project with the same gemlist for example?
21:18:54dbussinkjakedouglas: for that bundler one?
21:19:06jakedouglashave not tried that
21:27:15jakedouglaswhat should rb_marshal_dump go under
21:27:20jakedouglasspec-wise
21:27:31jakedouglasmake a new file?
21:27:46evannew file.
21:29:03jakedouglask
21:37:16boyscoutFix crash bug using the debugger. Create Scope heap_aliases properly. - 80243b7 - Evan Phoenix
21:37:16boyscoutAdd spec for Dir.glob preserving path seperators - d4cd5a9 - Evan Phoenix
21:37:16boyscoutPreserve path seperators in Dir.glob. Fixes #420. - ddd91ad - Evan Phoenix
21:46:01boyscoutCI: rubinius: ddd91ad successful: 3502 files, 14370 examples, 42146 expectations, 0 failures, 0 errors
21:49:26evanI wonder if the version number on trunk should be the next version or the last released version...
21:53:38brixencould be 1.1.0dev
21:53:48brixenprobably shouldn't be 1.0.1 still
21:53:54brixenand 1.1.0 would also be misleading
21:53:58evanright, thats my thinking
21:54:00evanyep
21:54:15boyscoutAdd spec for define_method argument handling - e3ab0c9 - Evan Phoenix
21:54:15boyscoutAllow splat arguments in define_method. Fixes #419. - f98c08c - Evan Phoenix
21:54:54evanjakedouglas: hm. any way you can isolate those segfaults any?
21:55:24jakedouglasthe bundler one, maybe. theres so much insanity going on with regard to the other one though, im not sure
21:55:31evank
21:55:32evan:/
21:55:40evanit's super hard to figure out where to start with no repro
21:56:01jakedouglaswould having access to gdb on my unit help?
21:56:11evansure
21:56:34jakedouglasi mean, is it possible that you could find the cause using gdb, without narrowing the repro down?
21:56:51evanyes.
21:57:00jakedouglasok. would you have time tomorrow?
21:57:09evani'll make time.
21:57:12evanwhen?
21:57:47jakedouglaswe seem to keep roughly the same hours. ill have to see in the morning what the work day looks like
21:58:02evanok.
21:58:06evani've got a hunch.
21:58:08jakedouglasmaybe around 10, otherwise after lunch
21:58:09evani'm going to check.
21:58:14evanmaybe i'll have it fixed!
21:58:19jakedouglashehe ok :)
21:58:21evanmorning is better
21:58:24jakedouglasfor which one? the bundler one?
21:58:26evanbut either is fine
21:58:29evanthe AR one
21:58:34jakedouglasah.
21:59:56jakedouglasis there any reason to have a proxy method for a capi spec if all i'm doing is passing the args through to the real function?
22:00:23jakedouglasi.e. do i really need to do marshal_spec_rb_marshal_dump(VALUE self, VALUE obj, VALUE port) { return rb_marshal_dump(obj, port); }
22:00:38jakedouglasor can i just hook up the test object directly to rb_marshal_dump
22:00:55evanyeah, you need to
22:00:55jakedouglasoh. i guess i cant can i
22:00:58jakedouglasdoh.
22:01:02evanotherwise you have to hook up the self differetly
22:01:06jakedouglasyea.
22:01:09jakedouglassilly me
22:01:10evanif i make a change, can you rerun the AR tests?
22:01:19jakedouglashmm yea
22:01:32jakedouglasmight take me a while to get the environment setup but yea
22:02:46evank
22:02:55evanlooking at the related code
22:02:57boyscoutCI: rubinius: f98c08c successful: 3502 files, 14371 examples, 42148 expectations, 0 failures, 0 errors
22:03:02evanand thinking there might be an edge case thats missed.
22:03:04evanthat i can fix
22:03:10evanbut i won't be able to see here if it helps
22:03:15jakedouglasyea
22:03:23evanbecause i'm not certain of the way to create the edge case.
22:12:57evanjakedouglas: was that generated on a 32bit or 64bit machine?
22:13:15jakedouglas64
22:13:30evank
22:13:31jakedouglassnow leopard
22:13:35evank
22:15:30jariboh joy
22:15:41jaribrubinius builds on my arch linux netbook, finally
22:16:33tarcierihrmm
22:16:34tarcierisegv
22:16:59tarcierion rbx 1.0.1
22:17:23tarcierihttp://gist.github.com/483688
22:17:43tarcierican't repro either, yay
22:17:56jakedouglasi was about to say, get in line :p
22:18:17tarcierilol
22:25:17evanjakedouglas: :/
22:25:24jakedouglas?
22:25:30evan"get in line "
22:25:40jakedouglassorry. didn't mean to be rude.
22:26:04evannp
22:26:07boyscoutTry and isolate crashing edge case - daf02c5 - Evan Phoenix
22:26:45evanjakedouglas: ok, try that.
22:26:56jakedouglasok. ill try to get to it sometime today
22:26:59jakedouglasthanks
22:27:35evank
22:27:37evanno prob.
22:29:13jakedouglasand that's for the 'AR' code right?
22:31:10evanyep
22:31:50thelinuxlichevan. now rubinius is running my cukes without any problems :)
22:31:59evanyay!
22:32:05evancukes all around!
22:32:41tarcieriI'd care about my segv except it seems to be completely unreproductible
22:33:11evanwell, then go on.
22:33:28jakedouglasso, how do I make it detect when I have changed rubyspec.h? i don't really want to rake clean && rake again
22:33:46evanumm
22:35:23brixenjakedouglas: change rubyspec.h before you edit the spec .c file
22:35:25evanjakedouglas: i'm not sure, but you can just do "rm spec/ruby/optional/capi/ext/*.bundle"
22:35:32brixenediting the c. file will cause the specs to reubild
22:35:34evando what brixen says.
22:35:37jakedouglasheh, k
22:36:09brixenthe dependencies in c-api specs are still ad hoc, but the .c -> .so/.bundle work
22:37:00boyscoutCI: rubinius: daf02c5 successful: 3502 files, 14371 examples, 42148 expectations, 0 failures, 0 errors
22:37:57brixenjakedouglas: alternatively, you could add to/refactor lines 23-26 of spec/ruby/optional/capi/spec_helper.rb
22:38:22jakedouglasah hah.
22:39:34jakedouglascould i get some input on http://gist.github.com/483714
22:40:04brixen- "should
22:40:10jakedouglask
22:40:12brixen+ "marshals
22:40:27jakedouglask
22:40:28brixenotherwise, seems good
22:40:38jakedouglask
22:41:12brixenyou can use IOStub to catch stdout/stderr rather than using StringIO
22:41:16brixenif that is more simple
22:41:44jakedouglasdont think it would be more simple than what i have
22:41:45evanjakedouglas: i might have a lead on your bundler crash.
22:41:52jakedouglasevan: yay :)
22:41:52evanyep, looks like I do.
22:41:59slavahi brixen
22:42:12brixenjakedouglas: grep for IOStub, it generally means you don't have to rewind etc
22:42:16slavai'm at the convention center with bakkdoor
22:42:17brixenhi slava
22:42:20brixenok cool
22:42:21jakedouglasbrixen: oh ok
22:42:28slavajust bumped into headius
22:42:36brixenslava: are you guys making dinner plans yet?
22:42:36bakkdoorhi brixen
22:42:41brixenbakkdoor: hey!
22:42:54bakkdoorbtw, brixen & evan: i started porting the codegen stuff from rubinius :)
22:43:01brixenbakkdoor: sweet!
22:43:09brixenI'm working on codegen for pegarus now
22:43:12bakkdoorits pretty straight forward actually
22:43:14bakkdoorcool
22:43:15brixenyep
22:43:15evanbakkdoor: woo!
22:43:38brixenbakkdoor: I should head that way in a bit
22:44:02bakkdoorthere are a few things that it relies on that i havent implemented for fancy yet though. mostly some standard methods in ruby that i dont have in fancy yet
22:44:07slavabrixen: headius mentioned something
22:44:07bakkdoorok cool
22:44:09slavabrixen: I might tag along
22:44:21brixenslava: ok, I'll try to find y'all
22:45:04brixengotta run an errand, then I'll head over
22:45:16slavaI'm in the speaker's lounge
22:45:19brixenk
22:45:39evanslava: i'm in my personal lounge
22:45:39evani win.
22:46:09slavaevan: we can't all be as cool as you, there's only so much coolness to go around
22:46:16evanthats true.
22:46:17evangood point.
22:46:33bakkdoor:P
22:46:47evanbakkdoor: :D
22:47:09bakkdoor:)
22:52:48jakedouglasisnt it generally moar better to use File.join(some_path,"foo.txt") than some_path + "/foo.txt" ?
22:53:20DefilerIn theory, but ruby handles / as the separator even on Windows
22:53:28Defilerso there aren't actually any ruby platforms that care
22:53:35jakedouglashmm
22:53:43Defiler(I personally use join)
22:54:37evan"#{some_path}/foo.txt"
22:54:45evanis a lot faster than File.join though
22:54:51jakedouglasoh.
22:54:52evanso i take that into consideration sometimes
22:55:26Defileryeah very true
22:55:31DefilerI never ever ever use String#+
22:55:44jakedouglaswell….its probably ok in the spec_helper eh
22:55:49evanyeah
22:55:49Defileryeah
22:55:54jakedouglask.
22:55:55Defilersweet unicode elipsis
22:55:56evanrbx has a nice optimization for "#{}..." too
22:56:10evanwhere it calculates the target size first
22:56:25jakedouglasthat's nice
23:01:05jakedouglasdoes this look okay? http://gist.github.com/483729
23:03:29evanseems ok to me
23:03:30evanbrixen: ?
23:05:33jaribhow would i go about debugging this:
23:05:34jaribrbx: vm/linkedlist.hpp:36: void LinkedList::Node::remove_linkage(): Assertion `next_->prev() == this' failed.
23:05:48evanget a gdb backtrace
23:06:28jaribevan: it doesn't crash, just prints that
23:06:35evanthats crashing
23:06:36jariboh, it might be in a forked process
23:07:17jaribthe parent process doesn't crash
23:07:50jaribis not a gdb expert
23:07:54evanmaybe in a for
23:07:55evanfork
23:07:57evanwhat was running?
23:08:09jaribyes, it's a fork
23:08:17jaribrunning specs for a gem i maintain (selenium-webdriver)
23:08:57evanhm
23:08:57evanok
23:09:05evanwell, see if you can't isolate it.
23:09:09jaribthe specs runs a rack server in a fork
23:09:10jaribwill o
23:09:13jarib*o
23:09:15jaribheh
23:09:23jaribwill do.
23:16:54brixenjakedouglas: the changes are fine
23:16:59jakedouglask
23:17:04brixenfyi, File.join on windows only uses '/'
23:17:13jakedouglask
23:17:27brixenyou are insane to use anything but on windows because your paths will cause you much anguish
23:17:58brixenand all windows shit should understand / in paths these days, including the terrible cmd.exe
23:18:40brixenalso, generally prefer File.expand_path(path, __FILE__) to File.join(File.dirname(__FILE__), blah)
23:18:57brixenok, I'm out, bbl...
23:20:00jaribhmm, getting an ObjectBoundsExeceededError using spec/autorun
23:20:11tarcieribrixen: problem with File.expand_path is it's not File.expand_path(path, __FILE__), it's File.expand_path("../#{path}", __FILE__) :(
23:20:55evanjarib: ok, get a ruby backtrace
23:20:57evanand open an issue.
23:21:31tarcieriall of that relative code loading shit sucks balls anyway
23:23:10jaribevan: http://github.com/evanphx/rubinius/issues/issue/422
23:23:26jaribthat's probably not related to the assertion failure though. i'll keep trying to reproduce that
23:23:52evanjarib: ok
23:23:57evanthanks for the report
23:24:02evani'll take a look.
23:40:29boyscoutAdd a CAPI spec for rb_marshal_dump - 7e01efb - Jake Douglas
23:40:29boyscoutmake the C-API spec helper rebuild a spec extension when rubyspec.h has changed - dc42348 - Jake Douglas
23:40:29boyscoutadd rb_marshal_dump to rbx capi - d14e77d - Jake Douglas
23:42:05evanjakedouglas: you're on a roll today
23:42:20jakedouglas:p
23:42:29jakedouglasi believe in rubinius!
23:42:45jakedouglasi also believe there are not enough people working on it :(
23:42:58evanwe'll fix that one person at a time :)
23:43:08jakedouglasheh
23:45:11jakedouglasjeremyevans: your stuff is fixed now. i closed the ticket
23:50:56boyscoutCI: rubinius: d14e77d successful: 3503 files, 14373 examples, 42150 expectations, 0 failures, 0 errors
23:57:31evanjarib: that last webrick thing is a rack issue
23:57:33evannot rbx
23:57:56evanthey moved the signal handler
23:58:03evanand it broke stuff.
23:59:28evanjarib: poke?