Show enters and exits. Hide enters and exits.
| 00:01:55 | JamesKilton | rbx has an interesting Languages list on Github. Python, Scheme, D? |
| 00:02:08 | evan | don't know where it's getting that |
| 00:02:12 | evan | perhaps the external_libs |
| 00:03:52 | JamesKilton | possibly |
| 00:08:02 | boyscout | CI: rubinius: cb7dd02 successful: 3502 files, 14365 examples, 42141 expectations, 0 failures, 0 errors |
| 00:13:52 | slava | brixen: I'm in pdx |
| 00:14:26 | slava | evan: 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:36 | evan | hehe |
| 00:15:02 | evan | i've got my sunglasses on, i can take it. |
| 00:17:07 | brixen | slava: woot! |
| 00:17:17 | brixen | slava: I'm at the speaker lounge at oscon |
| 00:20:04 | slava | brixen: got time for a beer? |
| 00:21:18 | JamesKilton | hmm, pybinius. just doesn't roll of the tongue as well |
| 00:28:03 | brixen | slava: where are you at? |
| 00:28:48 | slava | brixen: a hotel near the convention center |
| 00:30:24 | brixen | slava: want to crash the pdxscala meetup at 7? |
| 00:30:52 | brixen | http://pdxscala.org/pdxscala-meet-and-greet-july-19th-7pm-lucky-l |
| 00:31:16 | brixen | slava: also, while you're here: http://calagator.org/ |
| 00:36:29 | slava | sure |
| 00:36:42 | brixen | ok |
| 00:36:57 | brixen | want to meet there, or meetup before going there? |
| 00:37:12 | evan | have fun boys! |
| 00:37:14 | evan | play nice! |
| 00:37:19 | brixen | hehe |
| 00:37:23 | slava | I'm going to get dinner with a friend first, want to join us? |
| 00:37:29 | brixen | sure |
| 00:38:06 | brixen | where should I meet you? |
| 12:46:50 | rb2k | YARV is still using mark&sweep gc, right? |
| 12:47:24 | rb2k | while rubinius uses a compacting, generational garbage collector |
| 16:50:03 | jakedouglas | howdy |
| 16:50:15 | evan | hey hey. |
| 16:54:24 | sbryant | hi y |
| 16:54:29 | sbryant | woops |
| 16:56:38 | evan | heh |
| 18:25:19 | goyox86 | evan: 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:42 | goyox86 | evan: He answered Rubinius :] |
| 18:25:46 | evan | :) |
| 18:26:40 | goyox86 | evan: did you watched the keynote? |
| 18:26:47 | evan | hm, i don't think so. |
| 18:27:17 | goyox86 | evan: http://vimeo.com/12674501 |
| 18:46:59 | evan | goyox86: where in it does he talk about rubinius? |
| 18:47:47 | boyscout | Kernel.extend now raises a TypeError, when called on a frozen object - 59716c1 - Jose Narvaez |
| 18:47:47 | boyscout | Remove tag for passing Kernel.extend specs - e89d70d - Jose Narvaez |
| 18:50:36 | goyox86 | evan: 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:50 | evan | do you have a time code for it? |
| 18:52:20 | evan | found it |
| 18:53:50 | goyox86 | evan: it was very funny, matz is a very funny guy, his face when he noticed the 'Blave' typo :] |
| 18:54:02 | evan | yeah :D |
| 18:55:42 | brixen | :( http://www.wall.org/~larry/cheatsheet |
| 18:56:20 | boyscout | CI: rubinius: e89d70d successful: 3502 files, 14366 examples, 42142 expectations, 0 failures, 0 errors |
| 18:59:24 | evan | boyscout: hah |
| 18:59:26 | evan | er. |
| 18:59:27 | evan | brixen: hah |
| 19:00:00 | brixen | let's hope matz is well beyond the stage of looking to Perl for inspiration |
| 19:00:11 | evan | i think he is. |
| 19:00:12 | evan | yeah. |
| 19:00:19 | evan | he wishes he hadn't introduced $1 |
| 19:00:39 | evan | so, here is a question |
| 19:01:02 | evan | which is clearer about this being the name of a block defined on line 53 of action, which has an argument named obj: |
| 19:01:03 | evan | MSpec.actions<63> {|obj|} |
| 19:01:04 | evan | or |
| 19:01:09 | evan | MSpec.actions<63> {}(obj) |
| 19:01:30 | brixen | to me, the first |
| 19:01:36 | evan | k |
| 19:01:46 | evan | i'm a little worried it looks like action is being called with a block |
| 19:01:50 | evan | rather than the block being within action. |
| 19:02:03 | brixen | hm |
| 19:02:27 | jakedouglas | i think i would have guessed the former |
| 19:03:05 | evan | jakedouglas: guessed in which way? |
| 19:03:39 | jakedouglas | i would have thought "this looks like action is being called with a block" |
| 19:04:07 | evan | right |
| 19:04:12 | evan | which is not whats happening |
| 19:04:32 | evan | we've used "Class#method {}" for a long time to say "a block defined in method" |
| 19:04:39 | evan | but yes, it's ambigious |
| 19:04:40 | evan | what about |
| 19:04:48 | evan | Class::method {} |
| 19:04:56 | evan | I used that in the profiler output |
| 19:05:07 | jakedouglas | i dont feel like that clarifies it |
| 19:05:10 | jakedouglas | can't you say like |
| 19:05:12 | evan | the :: provides a little clue |
| 19:05:17 | jakedouglas | {} in Class#method ? |
| 19:05:29 | brixen | {|obj| } in MSpec.actions at 63 |
| 19:05:33 | brixen | jakedouglas: jinx |
| 19:05:33 | jakedouglas | yea |
| 19:05:41 | jakedouglas | thats what would be clear to me. |
| 19:05:43 | evan | I could |
| 19:05:50 | evan | ok |
| 19:05:54 | evan | i'll go with that. |
| 19:06:50 | brixen | I kinda like the space in {|obj| } because the asymmetry keeps {| |} from just looking like a blob |
| 19:07:11 | evan | http://gist.github.com/483392 |
| 19:07:14 | jakedouglas | maybe {|obj| … } |
| 19:07:25 | jakedouglas | i like that best. |
| 19:07:41 | evan | yes, i'm hooking our reference debugger up to --spec-debug |
| 19:07:52 | brixen | sweet |
| 19:07:55 | evan | so we can debug specs like mammals |
| 19:07:57 | evan | and not lizards |
| 19:08:03 | evan | lizards use print. |
| 19:08:06 | brixen | yeah, that difference highlights the blocks nicely |
| 19:08:19 | brixen | since the differentiator is on the left rather than the middle |
| 19:08:26 | evan | jakedouglas: the unicode character is the only issue. |
| 19:08:38 | jakedouglas | ? |
| 19:08:42 | evan | brixen: your ... |
| 19:08:46 | brixen | could just use _ rather than elipsis |
| 19:08:46 | jakedouglas | oh. |
| 19:08:53 | evan | you used the unicode elipsis |
| 19:09:05 | jakedouglas | i didn't realize that was a special thing. |
| 19:09:23 | brixen | your chat prog probably inserts it |
| 19:09:29 | jakedouglas | oh. adium |
| 19:09:47 | jakedouglas | i meant {|obj| periodperiodperiod } |
| 19:09:52 | brixen | heh, yeah |
| 19:10:00 | brixen | that'd be a little long in fixed width |
| 19:10:15 | brixen | _ is used as a variable name to mean "don't care" |
| 19:10:16 | evan | kendall :: git/rbx » cat scr.rb |
| 19:10:16 | evan | p "…".unpack("C*") |
| 19:10:16 | evan | kendall :: git/rbx » ruby scr.rb |
| 19:10:18 | evan | [226, 128, 166] |
| 19:10:22 | jakedouglas | right |
| 19:10:23 | evan | fyi. |
| 19:10:50 | brixen | I think the space is just enough |
| 19:10:57 | evan | reload the gist |
| 19:10:59 | brixen | it doesn't look terrible without it |
| 19:11:00 | evan | check the bottom |
| 19:11:05 | jakedouglas | i just think periodperiodperiod looks nicest as an indicator of "something goes on in here" |
| 19:11:09 | brixen | too much dots |
| 19:11:14 | evan | k |
| 19:11:18 | jakedouglas | eh |
| 19:11:19 | evan | so {} for no args |
| 19:11:23 | evan | and {|obj| } |
| 19:11:25 | evan | for args? |
| 19:11:28 | evan | or { } for no args |
| 19:11:42 | jakedouglas | your dots on the gist are bigger than the dots on adium :p |
| 19:11:45 | brixen | my vote is for the space versions |
| 19:11:58 | evan | k |
| 19:12:02 | evan | lets see that... |
| 19:12:25 | evan | ok |
| 19:12:26 | evan | reload gist |
| 19:12:28 | evan | check bottom |
| 19:12:46 | jeremyevans | evan: 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:52 | evan | jeremyevans: sure |
| 19:12:57 | evan | what is rb_need_block? |
| 19:12:59 | jakedouglas | can you try another space? { |obj| } |
| 19:13:00 | evan | is that in 1.9? |
| 19:13:05 | evan | jakedouglas: sure |
| 19:13:09 | jakedouglas | not sure i like the asymmetry |
| 19:13:14 | jeremyevans | evan: It raises an error if a block isn't provided |
| 19:13:16 | jakedouglas | but who knows. |
| 19:13:28 | evan | jakedouglas: ok, reload |
| 19:13:31 | evan | jeremyevans: ah! thats easy. |
| 19:13:32 | evan | ok |
| 19:13:32 | jeremyevans | evan: It works on 1.8 and 1.9, I think |
| 19:13:35 | brixen | I like the assymetry because it sets off the args |
| 19:13:37 | evan | i thought it was going to be something IO related. |
| 19:13:45 | evan | jeremyevans: sure, open the issue |
| 19:13:58 | brixen | with the minimum effective difference :) |
| 19:14:15 | evan | I could also omit the arg names all together |
| 19:14:15 | jakedouglas | brixen: 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:17 | evan | but they're nice. |
| 19:14:37 | brixen | args are nice |
| 19:14:53 | brixen | my vote is: 1st asymmetric space, 2nd no space |
| 19:15:28 | evan | added another |
| 19:15:34 | evan | using _ |
| 19:15:53 | brixen | to me, that's too much noise |
| 19:16:07 | jeremyevans | evan: I've confirmed that both functions in are in ruby 1.8 and 1.9. I'll open up an issue now. |
| 19:16:15 | brixen | and reminds me of method calls like foo.bar( arg ) |
| 19:16:19 | brixen | which I hate :) |
| 19:16:27 | jakedouglas | :P |
| 19:16:33 | evan | :) |
| 19:17:00 | evan | brixen: k |
| 19:17:10 | evan | the ... isn't really too long |
| 19:17:15 | brixen | the code for methods is never shown, so I wouldn't expect code for blocks to be shown |
| 19:17:21 | brixen | so there is no need for _ in my mind |
| 19:17:22 | evan | it's only 3 bytes in comparison to everything else on the line |
| 19:17:47 | brixen | I don't like {| |} clumping up, and on space breaks that visually, easily |
| 19:17:50 | brixen | that's my rational |
| 19:17:53 | brixen | +e |
| 19:17:59 | evan | yeah, i agree with that |
| 19:18:08 | evan | no spaces between the { and | looks odd. |
| 19:18:59 | evan | ok, one last one |
| 19:19:01 | evan | check it out. |
| 19:19:01 | brixen | and I'm going to look at a lot of these, so I want easy to recognize but not easy to confuse patterns |
| 19:19:05 | evan | it's sort of the most verbose thus far. |
| 19:19:21 | jakedouglas | i think i like that one the most heh |
| 19:19:24 | evan | it's also an easy to see pattern |
| 19:20:05 | jeremyevans | evan: http://github.com/evanphx/rubinius/issues/issue/421 |
| 19:20:41 | jakedouglas | yay, jeremyevans has provided some low hanging fruit |
| 19:21:48 | evan | stupid gist reordered them |
| 19:21:52 | evan | anyway |
| 19:21:58 | evan | #7 is the unicode elipsis |
| 19:22:30 | brixen | probably should stick to ascii |
| 19:22:39 | evan | yeah |
| 19:22:44 | evan | brixen: thoughts on #1? |
| 19:22:53 | evan | too noisy? |
| 19:22:58 | brixen | way too noisy for me |
| 19:23:12 | brixen | it's just a totally irrelevant element |
| 19:23:27 | brixen | I don't expect anything in that place and it adds no info |
| 19:23:52 | evan | which do you like better, #4 or #5 |
| 19:23:56 | evan | (this is like the eye doctor) |
| 19:24:09 | brixen | I prefer 4 |
| 19:24:26 | brixen | citing the minimum effective difference principle :) |
| 19:24:40 | evan | :) |
| 19:24:56 | evan | I think I like #5 better. |
| 19:25:02 | brixen | but I won't roll my eyes at the symmetric one |
| 19:27:36 | Defiler | #4 is my favorite, closely followed by #3 |
| 19:27:46 | Defiler | but I wish there were an ampersand in there somewhere i.e. &block |
| 19:27:57 | Defiler | what about &block(arg1,arg2) ? |
| 19:28:05 | Defiler | or &block() |
| 19:28:08 | Defiler | etc |
| 19:28:29 | evan | rather than {} ? |
| 19:28:35 | evan | {} so nicely says "block" |
| 19:28:40 | evan | and in only 2 characters. |
| 19:28:44 | brixen | yeah |
| 19:28:46 | Defiler | Yeah but it leaves this question of what you do with the place where the code normally goes |
| 19:28:54 | Defiler | as you can see in these variations you pasted |
| 19:28:56 | evan | Defiler: right |
| 19:29:04 | evan | up til now, it's been just |
| 19:29:06 | evan | ){ |
| 19:29:07 | evan | er. |
| 19:29:07 | evan | {} |
| 19:29:08 | evan | always |
| 19:29:13 | Defiler | block[arg1,arg2] would have the advantage of being evaluatable code |
| 19:29:20 | evan | now i've wanted to say "this block has args named ..." |
| 19:29:26 | evan | {}(obj) |
| 19:29:30 | evan | seems really ugly |
| 19:29:40 | brixen | it's also not like real code |
| 19:29:43 | evan | using || seems more natural |
| 19:29:54 | brixen | a real block looks like {|a| } |
| 19:29:56 | Defiler | yeah. #4 is good |
| 19:30:18 | Defiler | brixen: it does, but when you're in the method with it, you can also see it as a proc instance |
| 19:30:19 | brixen | a space can just as effectively stand for "stuff" as "..." IMO |
| 19:30:23 | evan | ok, #4 is the lead horse |
| 19:31:51 | evan | I think it's because I always put a space betwene my { and | |
| 19:31:58 | evan | is why #5 seems more comfy to me. |
| 19:32:14 | brixen | evan: what's the number in (), the IP? |
| 19:32:20 | evan | yep |
| 19:32:22 | brixen | ok |
| 19:32:27 | evan | thats going to be an option shortly. |
| 19:32:33 | evan | whether or not do display it. |
| 19:32:57 | brixen | yeah, I always put { |x| ... } too, but the slightly more compact version is ok to me here |
| 19:33:20 | brixen | I would never write code like: foo.bar{|x,y|puts x} |
| 19:33:23 | brixen | like I have seen |
| 19:34:25 | Defiler | javascript people do that a lot |
| 19:34:48 | brixen | because javascript people hate everyone :) |
| 19:34:58 | evan | and freedom. |
| 19:35:17 | Defiler | especially freedom |
| 19:35:28 | brixen | in my mind, it is really a pattern vs comprehension thing |
| 19:35:31 | evan | ok guys |
| 19:35:35 | brixen | I need to comprehend code to understand it |
| 19:35:35 | evan | last question before lunch |
| 19:35:54 | brixen | I need to recognize a pattern with info in the bt to think about flow and go look for it |
| 19:35:57 | evan | when showing a block |
| 19:36:01 | evan | should I do |
| 19:36:04 | evan | Class#method {} |
| 19:36:07 | evan | Class.method {} |
| 19:36:10 | evan | Class::method {} |
| 19:36:11 | evan | er. |
| 19:36:12 | Defiler | It's all about me me me with you brixen.. what does RUBY want? :) |
| 19:36:12 | evan | {} in ... |
| 19:36:22 | brixen | Defiler: hahah |
| 19:36:22 | evan | basically, # . or :: |
| 19:36:27 | evan | or something else. |
| 19:36:56 | Defiler | well, # and (\.|::) wouldn't ever be options at the same time, right? |
| 19:36:56 | brixen | evan: I'd use the separator that the method dictates |
| 19:37:00 | evan | the profiler now uses Class::method {} |
| 19:37:03 | Defiler | is this an instance method we're talking about? |
| 19:37:15 | brixen | # for instance, . for class/module |
| 19:37:23 | brixen | the block is in a particular method type |
| 19:37:25 | Defiler | agreed |
| 19:37:26 | evan | brixen: right. |
| 19:37:45 | evan | ok, so I should still try and figure out if we're invoking on a metaclass |
| 19:37:45 | Defiler | :: is just a silly method separator |
| 19:37:55 | evan | invoking a method from a metaclass, rather. |
| 19:37:56 | brixen | evan: yeah, is that ok |
| 19:38:05 | evan | yeah, i'll need to fix the profiler |
| 19:38:07 | evan | it's using :: |
| 19:38:09 | brixen | ok |
| 19:38:18 | evan | because I didn't have the right data to figure out . or # |
| 19:38:22 | evan | so rather than be wrong |
| 19:38:23 | evan | I used :: |
| 19:38:29 | brixen | makes sense |
| 19:38:39 | brixen | I'd really prefer # or . though |
| 19:38:45 | evan | so, should we change the backtraces to use {} in ... |
| 19:38:47 | evan | rather than |
| 19:38:50 | evan | method {} |
| 19:39:02 | evan | our normal backtraces, not the debugger ones. |
| 19:39:06 | brixen | my vote is yes |
| 19:39:09 | evan | consistence is nice. |
| 19:39:11 | brixen | I think it's more clear |
| 19:39:13 | brixen | yeah |
| 19:39:34 | evan | ok |
| 19:39:43 | evan | for 1.1, we'll change that format |
| 19:39:49 | evan | and I think I'm going to add a new flag |
| 19:39:51 | brixen | cool |
| 19:39:57 | evan | to indicate that backtraces should be emitted machine readable. |
| 19:40:05 | evan | so that we don't get into people trying to parse them |
| 19:40:14 | evan | parse our nice, human readable ones |
| 19:40:20 | brixen | ahh good idea |
| 19:40:23 | evan | that gives us the ability to tweak them |
| 19:41:07 | evan | -Xbacktrace.machine |
| 19:41:08 | evan | ? |
| 19:41:15 | evan | -Xbacktrace.parsable |
| 19:41:18 | evan | is probably better. |
| 19:41:22 | brixen | sure |
| 19:41:24 | evan | k |
| 19:41:29 | evan | i'll do that after lunch. |
| 19:41:36 | evan | brixen: oscon going well? |
| 19:41:41 | evan | did you and slava make some scala friends? |
| 19:41:57 | brixen | heh, we didn't make it to scala land last night |
| 19:42:08 | brixen | hung out with trotter and a friend of slava's |
| 19:42:14 | evan | ah nice. |
| 19:42:40 | brixen | sounds like the scala meetup was fun |
| 19:42:51 | brixen | I'm sure there will be more fun tonight |
| 19:43:00 | evan | btw, real fast |
| 19:43:07 | evan | we're agreed that a block when no args are shown is |
| 19:43:11 | evan | {} or { } |
| 19:43:15 | brixen | { } |
| 19:43:17 | evan | k |
| 19:45:45 | evan | http://gist.github.com/483439 |
| 19:45:47 | evan | ok, chew on that |
| 19:45:49 | evan | i'll bbiab. |
| 19:46:12 | slava | hi brixen, nice meeting you yesterday |
| 19:47:56 | Defiler | evan: that is so badass |
| 19:48:28 | brixen | slava: totally! |
| 19:48:39 | brixen | slava: I'm heading over after lunch-ish |
| 19:48:52 | brixen | trying to get some serious codez done :) |
| 19:49:29 | brixen | slava: there's a lot more places to try beer :) |
| 19:49:42 | slava | I need to work on my presentatino today :) |
| 19:50:12 | jakedouglas | /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:12 | jakedouglas | rake aborted! |
| 19:50:27 | jakedouglas | what might my problem be? :( |
| 19:50:35 | brixen | slava: ditto |
| 19:51:10 | brixen | jakedouglas: is that running with --trace ? |
| 19:51:14 | jakedouglas | yes |
| 19:51:19 | jakedouglas | err |
| 19:51:20 | jakedouglas | I LIED! |
| 19:51:24 | brixen | and you don't have a bt? |
| 19:51:32 | brixen | LIAR |
| 19:51:33 | brixen | :) |
| 19:54:46 | jakedouglas | ok so its blowing up building an extension i guess (prob my fault). how do i get the output? |
| 19:56:24 | brixen | did you run that command directly? |
| 19:56:32 | dbussink | jakedouglas: you're building rbx separately? |
| 19:56:36 | dbussink | or with rvm? |
| 19:57:03 | dbussink | if you have a separately clone of the rbx repo, make sure you don't have an active rvm version |
| 19:57:10 | dbussink | but that you use your system ruby |
| 19:57:35 | jakedouglas | yea 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:50 | jakedouglas | /Users/jake/.rvm/rubies/ruby-1.8.7-p249/bin/ruby <- doesn't exist |
| 19:58:14 | dbussink | you're doing ./configure && rake for building rubinius? |
| 19:58:24 | dbussink | if so, do a rvm use system before running that |
| 19:58:39 | jakedouglas | guess i missed the ./configure |
| 19:58:56 | jakedouglas | trying |
| 20:01:37 | dbussink | but be sure to do rvm use system first so you don't have an rvm installed ruby active |
| 20:01:51 | jakedouglas | why is it a problem to use an rvm ruby |
| 20:02:10 | dbussink | because rvm defines stuff like GEM_PATH |
| 20:02:16 | dbussink | which rubinius honors like it should |
| 20:02:28 | dbussink | but that means it picks up gems compiled for your rvm ruby version |
| 20:02:31 | dbussink | and things blow upo |
| 20:02:33 | dbussink | up |
| 20:02:38 | dbussink | there's no real way to fix that |
| 20:02:52 | jakedouglas | i see |
| 20:03:00 | wayneeseguin | dbussink: latest RVM unsets GEM_PATH on RBX install IIRC |
| 20:03:16 | dbussink | wayneeseguin: also when running rbx? |
| 20:03:20 | dbussink | because that will stay a problem |
| 20:03:31 | dbussink | and i don't believe there's a sane way to fix it |
| 20:03:46 | dbussink | i run a lot of rbx stuff without rvm (easier when devving) |
| 20:03:56 | wayneeseguin | dbussink: not when running, only install |
| 20:04:00 | dbussink | and if i happen to have another rvm version active, stuff blows up |
| 20:04:17 | wayneeseguin | dbussink: you can also do 'rvm rbx exec .....' |
| 20:04:21 | dbussink | wayneeseguin: but only unsets it during building rbx with rvm |
| 20:04:21 | dbussink | ? |
| 20:04:23 | wayneeseguin | to execute .... in the rbx env |
| 20:04:29 | wayneeseguin | (any commands) |
| 20:04:43 | dbussink | true, but when doing rbx dev, it's easier to work with a clone directly |
| 20:04:53 | dbussink | and not something down in ~/.rvm/some/dir |
| 20:05:02 | wayneeseguin | yep |
| 20:10:01 | dbussink | wayneeseguin: so then i always have to remember to not have an rvm version active :) |
| 20:10:13 | dbussink | it's not a big problem, but something people should be aware of |
| 20:10:35 | wayneeseguin | dbussink: gotcha |
| 20:10:56 | wayneeseguin | dbussink: yeah... not sure how you'd 'fix' that other than ignore the GEM_HOME unless it's an rbx dir somehow |
| 20:13:43 | dbussink | wayneeseguin: yeah, but trying to fix that could very well be way more brittle than the problem it tries to solve |
| 20:19:13 | jakedouglas | how do i make the capi specs rebuild after adding someting to rubyspec.h? |
| 20:21:26 | dbussink | jakedouglas: ruby.h you mean? |
| 20:21:53 | dbussink | jakedouglas: rake build and then ./bin/mspec spec/ruby/optional/capi/your_spec.rb should do the trick |
| 20:22:04 | dbussink | the capi specs themselves rebuild if needed |
| 20:22:19 | dbussink | but you need to do a rake build if you change stuff in vm/capi |
| 20:22:29 | wayneeseguin | dbussink: true. |
| 20:23:17 | jakedouglas | no i mean rubyspec.h |
| 20:23:55 | dbussink | jakedouglas: you added a define there? |
| 20:23:59 | jakedouglas | yes |
| 20:24:06 | dbussink | you need to do the same thing |
| 20:24:22 | dbussink | this is in the spec dir so it doesn't need an explicit rebuild |
| 20:25:44 | jakedouglas | hmm. i added the define but it doesnt seem to be changing/rebuilding it |
| 20:25:56 | jakedouglas | adding the define should have made it so a method gets defined, but it isn't. |
| 20:26:39 | evan | jakedouglas: please gist a git diff |
| 20:26:42 | evan | jakedouglas: so we can see what you're doing |
| 20:31:37 | slava | hi evan |
| 20:31:47 | evan | hey slava. |
| 20:35:00 | jakedouglas | doing a rake clean && rake made it work |
| 20:35:12 | evan | k |
| 20:41:54 | evan | i'm thinking about writing a disassembler today. |
| 20:42:03 | slava | whoa |
| 20:42:05 | slava | for bytecode or x86? |
| 20:42:11 | evan | rubinius bytecode |
| 20:42:16 | JamesKilton | neat! |
| 20:42:23 | evan | rubinius bytecode back to rub |
| 20:42:25 | evan | ruby |
| 20:43:11 | evan | because 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:14 | evan | namely, the kernel. |
| 20:43:32 | slava | you don't want to ship kernel source with rbx installs? |
| 20:43:37 | JamesKilton | well you could copy over the .rb files in the kernel on install |
| 20:43:38 | evan | could, thats another option. |
| 20:43:40 | dbussink | evan: cool :) |
| 20:43:43 | evan | yep yep |
| 20:43:51 | evan | putting the .rb along with the .rbc is another option. |
| 20:44:06 | dbussink | evan: we have some datamapper api ideas which used parsetree with 1.8 |
| 20:44:28 | dbussink | but 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:41 | evan | right |
| 20:44:50 | evan | i'll probably go one step easier first |
| 20:45:07 | evan | a condensed view of rubinius bytecode |
| 20:45:15 | evan | a condensed rendering |
| 20:45:37 | dbussink | evan: it's basically like ambition: http://defunkt.github.com/ambition/ |
| 20:45:51 | dbussink | and turn that proc into a query object for dm |
| 20:45:52 | evan | right, that maes sense |
| 20:45:58 | evan | makes, rather. |
| 20:46:27 | slava | evan: so you have block inlining now? |
| 20:46:31 | evan | yep |
| 20:46:35 | evan | still not on by default |
| 20:46:41 | evan | it's causing some slowdowns in places |
| 20:46:45 | slava | that's odd |
| 20:46:46 | evan | but i should probably just flip the switch |
| 20:46:48 | evan | yeah |
| 20:46:49 | slava | due to code size blowup? |
| 20:46:51 | evan | i thought so too |
| 20:46:52 | evan | perhaps |
| 20:53:48 | boyscout | Add CAPI spec for rb_need_block - 87ba571 - Jake Douglas |
| 20:53:48 | boyscout | add rb_need_block() to rbx capi - 26e5ace - Jake Douglas |
| 20:56:05 | evan | nice |
| 20:56:17 | jakedouglas | <- bored |
| 20:57:00 | evan | hehe |
| 20:57:26 | jakedouglas | regression week at work gets me doing things like this. |
| 21:02:15 | jakedouglas | what's a reasonable spec for rb_marshal_dump |
| 21:03:02 | evan | is it the same as Marshal.dump? |
| 21:03:15 | jakedouglas | think so |
| 21:03:26 | evan | it appears to be, yeah. |
| 21:03:41 | evan | so check that it outputs the same thing as Marshal.dump for a string |
| 21:03:43 | evan | is enough |
| 21:03:54 | jakedouglas | k |
| 21:04:11 | boyscout | CI: rubinius: 26e5ace successful: 3502 files, 14368 examples, 42144 expectations, 0 failures, 0 errors |
| 21:09:31 | dbussink | jakedouglas: good there's still low hanging fruit to dip into rbx with :) |
| 21:09:50 | jakedouglas | yea lots apparently |
| 21:10:03 | jakedouglas | trying to run real apps blows lots of shit up :p |
| 21:11:43 | dbussink | nothing like real shit to blow things up with :P |
| 21:12:02 | evan | jakedouglas: don't sit on stuff |
| 21:12:03 | evan | file it. |
| 21:12:08 | evan | if you can't get to it right away. |
| 21:12:17 | evan | i'm not aware of any "blows lots of shit" problems. |
| 21:12:53 | dbussink | evan: well, missing capi methods can lead to bog blowups :P |
| 21:13:00 | dbussink | even if it's just small things |
| 21:13:10 | evan | yep |
| 21:13:15 | evan | still not aware of any! |
| 21:13:37 | evan | i know of the things we can't add |
| 21:13:41 | evan | and the things that depend on those |
| 21:13:53 | dbussink | me neither, but haven't thrown a lot of new stuff at it lately :) |
| 21:14:20 | dbussink | hopefully i can upgrade some stuff in our product soonish, so i can try that with rbx :) |
| 21:14:27 | jakedouglas | well |
| 21:14:45 | jakedouglas | i have 2 seg faults and that Dir.glob bug filed |
| 21:14:57 | jakedouglas | im not sitting on anything else, just kind of blocked on those |
| 21:14:59 | evan | are you getting those segfaults everytime? |
| 21:15:04 | jakedouglas | yes |
| 21:15:06 | evan | oh. |
| 21:15:09 | evan | ok |
| 21:16:04 | evan | the dir one i've got fixed |
| 21:16:06 | evan | i'll commit that. |
| 21:16:14 | jakedouglas | k |
| 21:16:19 | dbussink | reliable segfaults are usually a good thing |
| 21:16:27 | dbussink | better than those spurious ones |
| 21:16:46 | evan | yeah |
| 21:17:37 | jakedouglas | yea so far i think i have been able to reproduce these every time |
| 21:18:49 | dbussink | jakedouglas: also outside the project? with an empty project with the same gemlist for example? |
| 21:18:54 | dbussink | jakedouglas: for that bundler one? |
| 21:19:06 | jakedouglas | have not tried that |
| 21:27:15 | jakedouglas | what should rb_marshal_dump go under |
| 21:27:20 | jakedouglas | spec-wise |
| 21:27:31 | jakedouglas | make a new file? |
| 21:27:46 | evan | new file. |
| 21:29:03 | jakedouglas | k |
| 21:37:16 | boyscout | Fix crash bug using the debugger. Create Scope heap_aliases properly. - 80243b7 - Evan Phoenix |
| 21:37:16 | boyscout | Add spec for Dir.glob preserving path seperators - d4cd5a9 - Evan Phoenix |
| 21:37:16 | boyscout | Preserve path seperators in Dir.glob. Fixes #420. - ddd91ad - Evan Phoenix |
| 21:46:01 | boyscout | CI: rubinius: ddd91ad successful: 3502 files, 14370 examples, 42146 expectations, 0 failures, 0 errors |
| 21:49:26 | evan | I wonder if the version number on trunk should be the next version or the last released version... |
| 21:53:38 | brixen | could be 1.1.0dev |
| 21:53:48 | brixen | probably shouldn't be 1.0.1 still |
| 21:53:54 | brixen | and 1.1.0 would also be misleading |
| 21:53:58 | evan | right, thats my thinking |
| 21:54:00 | evan | yep |
| 21:54:15 | boyscout | Add spec for define_method argument handling - e3ab0c9 - Evan Phoenix |
| 21:54:15 | boyscout | Allow splat arguments in define_method. Fixes #419. - f98c08c - Evan Phoenix |
| 21:54:54 | evan | jakedouglas: hm. any way you can isolate those segfaults any? |
| 21:55:24 | jakedouglas | the bundler one, maybe. theres so much insanity going on with regard to the other one though, im not sure |
| 21:55:31 | evan | k |
| 21:55:32 | evan | :/ |
| 21:55:40 | evan | it's super hard to figure out where to start with no repro |
| 21:56:01 | jakedouglas | would having access to gdb on my unit help? |
| 21:56:11 | evan | sure |
| 21:56:34 | jakedouglas | i mean, is it possible that you could find the cause using gdb, without narrowing the repro down? |
| 21:56:51 | evan | yes. |
| 21:57:00 | jakedouglas | ok. would you have time tomorrow? |
| 21:57:09 | evan | i'll make time. |
| 21:57:12 | evan | when? |
| 21:57:47 | jakedouglas | we seem to keep roughly the same hours. ill have to see in the morning what the work day looks like |
| 21:58:02 | evan | ok. |
| 21:58:06 | evan | i've got a hunch. |
| 21:58:08 | jakedouglas | maybe around 10, otherwise after lunch |
| 21:58:09 | evan | i'm going to check. |
| 21:58:14 | evan | maybe i'll have it fixed! |
| 21:58:19 | jakedouglas | hehe ok :) |
| 21:58:21 | evan | morning is better |
| 21:58:24 | jakedouglas | for which one? the bundler one? |
| 21:58:26 | evan | but either is fine |
| 21:58:29 | evan | the AR one |
| 21:58:34 | jakedouglas | ah. |
| 21:59:56 | jakedouglas | is 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:23 | jakedouglas | i.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:38 | jakedouglas | or can i just hook up the test object directly to rb_marshal_dump |
| 22:00:55 | evan | yeah, you need to |
| 22:00:55 | jakedouglas | oh. i guess i cant can i |
| 22:00:58 | jakedouglas | doh. |
| 22:01:02 | evan | otherwise you have to hook up the self differetly |
| 22:01:06 | jakedouglas | yea. |
| 22:01:09 | jakedouglas | silly me |
| 22:01:10 | evan | if i make a change, can you rerun the AR tests? |
| 22:01:19 | jakedouglas | hmm yea |
| 22:01:32 | jakedouglas | might take me a while to get the environment setup but yea |
| 22:02:46 | evan | k |
| 22:02:55 | evan | looking at the related code |
| 22:02:57 | boyscout | CI: rubinius: f98c08c successful: 3502 files, 14371 examples, 42148 expectations, 0 failures, 0 errors |
| 22:03:02 | evan | and thinking there might be an edge case thats missed. |
| 22:03:04 | evan | that i can fix |
| 22:03:10 | evan | but i won't be able to see here if it helps |
| 22:03:15 | jakedouglas | yea |
| 22:03:23 | evan | because i'm not certain of the way to create the edge case. |
| 22:12:57 | evan | jakedouglas: was that generated on a 32bit or 64bit machine? |
| 22:13:15 | jakedouglas | 64 |
| 22:13:30 | evan | k |
| 22:13:31 | jakedouglas | snow leopard |
| 22:13:35 | evan | k |
| 22:15:30 | jarib | oh joy |
| 22:15:41 | jarib | rubinius builds on my arch linux netbook, finally |
| 22:16:33 | tarcieri | hrmm |
| 22:16:34 | tarcieri | segv |
| 22:16:59 | tarcieri | on rbx 1.0.1 |
| 22:17:23 | tarcieri | http://gist.github.com/483688 |
| 22:17:43 | tarcieri | can't repro either, yay |
| 22:17:56 | jakedouglas | i was about to say, get in line :p |
| 22:18:17 | tarcieri | lol |
| 22:25:17 | evan | jakedouglas: :/ |
| 22:25:24 | jakedouglas | ? |
| 22:25:30 | evan | "get in line " |
| 22:25:40 | jakedouglas | sorry. didn't mean to be rude. |
| 22:26:04 | evan | np |
| 22:26:07 | boyscout | Try and isolate crashing edge case - daf02c5 - Evan Phoenix |
| 22:26:45 | evan | jakedouglas: ok, try that. |
| 22:26:56 | jakedouglas | ok. ill try to get to it sometime today |
| 22:26:59 | jakedouglas | thanks |
| 22:27:35 | evan | k |
| 22:27:37 | evan | no prob. |
| 22:29:13 | jakedouglas | and that's for the 'AR' code right? |
| 22:31:10 | evan | yep |
| 22:31:50 | thelinuxlich | evan. now rubinius is running my cukes without any problems :) |
| 22:31:59 | evan | yay! |
| 22:32:05 | evan | cukes all around! |
| 22:32:41 | tarcieri | I'd care about my segv except it seems to be completely unreproductible |
| 22:33:11 | evan | well, then go on. |
| 22:33:28 | jakedouglas | so, how do I make it detect when I have changed rubyspec.h? i don't really want to rake clean && rake again |
| 22:33:46 | evan | umm |
| 22:35:23 | brixen | jakedouglas: change rubyspec.h before you edit the spec .c file |
| 22:35:25 | evan | jakedouglas: i'm not sure, but you can just do "rm spec/ruby/optional/capi/ext/*.bundle" |
| 22:35:32 | brixen | editing the c. file will cause the specs to reubild |
| 22:35:34 | evan | do what brixen says. |
| 22:35:37 | jakedouglas | heh, k |
| 22:36:09 | brixen | the dependencies in c-api specs are still ad hoc, but the .c -> .so/.bundle work |
| 22:37:00 | boyscout | CI: rubinius: daf02c5 successful: 3502 files, 14371 examples, 42148 expectations, 0 failures, 0 errors |
| 22:37:57 | brixen | jakedouglas: alternatively, you could add to/refactor lines 23-26 of spec/ruby/optional/capi/spec_helper.rb |
| 22:38:22 | jakedouglas | ah hah. |
| 22:39:34 | jakedouglas | could i get some input on http://gist.github.com/483714 |
| 22:40:04 | brixen | - "should |
| 22:40:10 | jakedouglas | k |
| 22:40:12 | brixen | + "marshals |
| 22:40:27 | jakedouglas | k |
| 22:40:28 | brixen | otherwise, seems good |
| 22:40:38 | jakedouglas | k |
| 22:41:12 | brixen | you can use IOStub to catch stdout/stderr rather than using StringIO |
| 22:41:16 | brixen | if that is more simple |
| 22:41:44 | jakedouglas | dont think it would be more simple than what i have |
| 22:41:45 | evan | jakedouglas: i might have a lead on your bundler crash. |
| 22:41:52 | jakedouglas | evan: yay :) |
| 22:41:52 | evan | yep, looks like I do. |
| 22:41:59 | slava | hi brixen |
| 22:42:12 | brixen | jakedouglas: grep for IOStub, it generally means you don't have to rewind etc |
| 22:42:16 | slava | i'm at the convention center with bakkdoor |
| 22:42:17 | brixen | hi slava |
| 22:42:20 | brixen | ok cool |
| 22:42:21 | jakedouglas | brixen: oh ok |
| 22:42:28 | slava | just bumped into headius |
| 22:42:36 | brixen | slava: are you guys making dinner plans yet? |
| 22:42:36 | bakkdoor | hi brixen |
| 22:42:41 | brixen | bakkdoor: hey! |
| 22:42:54 | bakkdoor | btw, brixen & evan: i started porting the codegen stuff from rubinius :) |
| 22:43:01 | brixen | bakkdoor: sweet! |
| 22:43:09 | brixen | I'm working on codegen for pegarus now |
| 22:43:12 | bakkdoor | its pretty straight forward actually |
| 22:43:14 | bakkdoor | cool |
| 22:43:15 | brixen | yep |
| 22:43:15 | evan | bakkdoor: woo! |
| 22:43:38 | brixen | bakkdoor: I should head that way in a bit |
| 22:44:02 | bakkdoor | there 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:07 | slava | brixen: headius mentioned something |
| 22:44:07 | bakkdoor | ok cool |
| 22:44:09 | slava | brixen: I might tag along |
| 22:44:21 | brixen | slava: ok, I'll try to find y'all |
| 22:45:04 | brixen | gotta run an errand, then I'll head over |
| 22:45:16 | slava | I'm in the speaker's lounge |
| 22:45:19 | brixen | k |
| 22:45:39 | evan | slava: i'm in my personal lounge |
| 22:45:39 | evan | i win. |
| 22:46:09 | slava | evan: we can't all be as cool as you, there's only so much coolness to go around |
| 22:46:16 | evan | thats true. |
| 22:46:17 | evan | good point. |
| 22:46:33 | bakkdoor | :P |
| 22:46:47 | evan | bakkdoor: :D |
| 22:47:09 | bakkdoor | :) |
| 22:52:48 | jakedouglas | isnt it generally moar better to use File.join(some_path,"foo.txt") than some_path + "/foo.txt" ? |
| 22:53:20 | Defiler | In theory, but ruby handles / as the separator even on Windows |
| 22:53:28 | Defiler | so there aren't actually any ruby platforms that care |
| 22:53:35 | jakedouglas | hmm |
| 22:53:43 | Defiler | (I personally use join) |
| 22:54:37 | evan | "#{some_path}/foo.txt" |
| 22:54:45 | evan | is a lot faster than File.join though |
| 22:54:51 | jakedouglas | oh. |
| 22:54:52 | evan | so i take that into consideration sometimes |
| 22:55:26 | Defiler | yeah very true |
| 22:55:31 | Defiler | I never ever ever use String#+ |
| 22:55:44 | jakedouglas | well….its probably ok in the spec_helper eh |
| 22:55:49 | evan | yeah |
| 22:55:49 | Defiler | yeah |
| 22:55:54 | jakedouglas | k. |
| 22:55:55 | Defiler | sweet unicode elipsis |
| 22:55:56 | evan | rbx has a nice optimization for "#{}..." too |
| 22:56:10 | evan | where it calculates the target size first |
| 22:56:25 | jakedouglas | that's nice |
| 23:01:05 | jakedouglas | does this look okay? http://gist.github.com/483729 |
| 23:03:29 | evan | seems ok to me |
| 23:03:30 | evan | brixen: ? |
| 23:05:33 | jarib | how would i go about debugging this: |
| 23:05:34 | jarib | rbx: vm/linkedlist.hpp:36: void LinkedList::Node::remove_linkage(): Assertion `next_->prev() == this' failed. |
| 23:05:48 | evan | get a gdb backtrace |
| 23:06:28 | jarib | evan: it doesn't crash, just prints that |
| 23:06:35 | evan | thats crashing |
| 23:06:36 | jarib | oh, it might be in a forked process |
| 23:07:17 | jarib | the parent process doesn't crash |
| 23:07:50 | jarib | is not a gdb expert |
| 23:07:54 | evan | maybe in a for |
| 23:07:55 | evan | fork |
| 23:07:57 | evan | what was running? |
| 23:08:09 | jarib | yes, it's a fork |
| 23:08:17 | jarib | running specs for a gem i maintain (selenium-webdriver) |
| 23:08:57 | evan | hm |
| 23:08:57 | evan | ok |
| 23:09:05 | evan | well, see if you can't isolate it. |
| 23:09:09 | jarib | the specs runs a rack server in a fork |
| 23:09:10 | jarib | will o |
| 23:09:13 | jarib | *o |
| 23:09:15 | jarib | heh |
| 23:09:23 | jarib | will do. |
| 23:16:54 | brixen | jakedouglas: the changes are fine |
| 23:16:59 | jakedouglas | k |
| 23:17:04 | brixen | fyi, File.join on windows only uses '/' |
| 23:17:13 | jakedouglas | k |
| 23:17:27 | brixen | you are insane to use anything but on windows because your paths will cause you much anguish |
| 23:17:58 | brixen | and all windows shit should understand / in paths these days, including the terrible cmd.exe |
| 23:18:40 | brixen | also, generally prefer File.expand_path(path, __FILE__) to File.join(File.dirname(__FILE__), blah) |
| 23:18:57 | brixen | ok, I'm out, bbl... |
| 23:20:00 | jarib | hmm, getting an ObjectBoundsExeceededError using spec/autorun |
| 23:20:11 | tarcieri | brixen: problem with File.expand_path is it's not File.expand_path(path, __FILE__), it's File.expand_path("../#{path}", __FILE__) :( |
| 23:20:55 | evan | jarib: ok, get a ruby backtrace |
| 23:20:57 | evan | and open an issue. |
| 23:21:31 | tarcieri | all of that relative code loading shit sucks balls anyway |
| 23:23:10 | jarib | evan: http://github.com/evanphx/rubinius/issues/issue/422 |
| 23:23:26 | jarib | that's probably not related to the assertion failure though. i'll keep trying to reproduce that |
| 23:23:52 | evan | jarib: ok |
| 23:23:57 | evan | thanks for the report |
| 23:24:02 | evan | i'll take a look. |
| 23:40:29 | boyscout | Add a CAPI spec for rb_marshal_dump - 7e01efb - Jake Douglas |
| 23:40:29 | boyscout | make the C-API spec helper rebuild a spec extension when rubyspec.h has changed - dc42348 - Jake Douglas |
| 23:40:29 | boyscout | add rb_marshal_dump to rbx capi - d14e77d - Jake Douglas |
| 23:42:05 | evan | jakedouglas: you're on a roll today |
| 23:42:20 | jakedouglas | :p |
| 23:42:29 | jakedouglas | i believe in rubinius! |
| 23:42:45 | jakedouglas | i also believe there are not enough people working on it :( |
| 23:42:58 | evan | we'll fix that one person at a time :) |
| 23:43:08 | jakedouglas | heh |
| 23:45:11 | jakedouglas | jeremyevans: your stuff is fixed now. i closed the ticket |
| 23:50:56 | boyscout | CI: rubinius: d14e77d successful: 3503 files, 14373 examples, 42150 expectations, 0 failures, 0 errors |
| 23:57:31 | evan | jarib: that last webrick thing is a rack issue |
| 23:57:33 | evan | not rbx |
| 23:57:56 | evan | they moved the signal handler |
| 23:58:03 | evan | and it broke stuff. |
| 23:59:28 | evan | jarib: poke? |