Show enters and exits. Hide enters and exits.
| 00:08:35 | moofbong enters the room. | |
| 00:15:52 | wycats enters the room. | |
| 00:19:26 | zenspider | wow. we're being amazingly thwarted |
| 00:19:38 | evan | zenspider: my run down make sense? |
| 00:20:09 | drbrain | yeah |
| 00:20:17 | drbrain | that's what we're poking at |
| 00:20:24 | evan | i'm betting thats the case |
| 00:20:26 | w1rele55 leaves the room. | |
| 00:20:30 | evan | since i don't see AS pulling in test/unit/assertions |
| 00:20:33 | evan | before adding shit to it. |
| 00:20:42 | drbrain | which is broken |
| 00:20:45 | evan | very. |
| 00:21:20 | zenspider | evan: that's exactly the case... they do HORRIBLE things because they have no fucking clue how to properly deal with dependencies |
| 00:21:33 | evan | yp. |
| 00:21:35 | zenspider | in fact, almost all my problems go away if they just learn how to require |
| 00:21:35 | evan | yep. |
| 00:21:43 | zenspider | I can swich t/u from modules to classes as I see fit, etc. |
| 00:21:56 | evan | yeah |
| 00:22:06 | dctanner leaves the room. | |
| 00:22:25 | evan | if you want, we can counter a little |
| 00:22:33 | evan | hooking into __const_set__ |
| 00:22:39 | evan | to subvert their subversion. |
| 00:22:57 | imajes enters the room. | |
| 00:23:06 | evan | that could get ugly though. |
| 00:24:29 | yugui enters the room. | |
| 00:25:15 | moofbong leaves the room. | |
| 00:26:58 | drbrain | we're trying to get it working in MRI |
| 00:31:49 | blakewatters enters the room. | |
| 00:36:02 | pauldix enters the room. | |
| 00:42:10 | zenspider | I've got code to ferret out the offenders |
| 00:42:15 | zenspider | but there aren't any |
| 00:42:17 | zenspider | yet |
| 00:42:27 | zenspider | really what's happening is I'm tanking on bloodsugar |
| 00:42:36 | zenspider | too much protein in my lunch, not enough carbs |
| 00:43:03 | wycats | zenspider: get a donut |
| 00:43:06 | Defiler | you should just lean over and bite into a stray neck |
| 00:43:09 | Defiler | every few hours |
| 00:43:10 | wycats | we need a Rubinius donut patrol |
| 00:43:29 | Defiler | I don't understand why we don't have a network of pneumatic tubes to distribute these donuts |
| 00:45:00 | wycats | Omg... soylent donut... it's people! |
| 00:47:14 | AndrewO enters the room. | |
| 00:47:48 | pauldix leaves the room. | |
| 00:52:12 | edwardam leaves the room. | |
| 00:52:19 | edwardam enters the room. | |
| 00:52:50 | edwardam_ enters the room. | |
| 00:53:51 | edwardam leaves the room. | |
| 00:56:44 | Silva enters the room. | |
| 00:58:27 | lopex leaves the room. | |
| 01:00:23 | Fishy5 leaves the room. | |
| 01:00:42 | imajes leaves the room. | |
| 01:00:53 | lstoll enters the room. | |
| 01:02:59 | mapar leaves the room. | |
| 01:06:42 | ezmobius leaves the room. | |
| 01:14:49 | twbray enters the room. | |
| 01:16:23 | ezmobius enters the room. | |
| 01:18:27 | zenspider | one dick's cheeseburger later and I'm still not back on track... I _am_ executing more tests now. 3 errors left |
| 01:18:34 | zenspider | and prolly the same type of fix for 2 of them |
| 01:18:49 | zenspider | evan: http://rafb.net/p/K7H1Jn48.html -- ugh |
| 01:22:49 | kevinclark leaves the room. | |
| 01:24:00 | wycats | go zenspider! |
| 01:25:03 | crafterm enters the room. | |
| 01:25:38 | zenspider | such gross code. I hate that I have to do this |
| 01:25:50 | crafterm enters the room. | |
| 01:26:23 | zenspider | and honestly, I really don't trust the rails guys to fix their code... it has been a long time since they've accepted one of my patches wo breaking it |
| 01:27:07 | twbray leaves the room. | |
| 01:29:12 | wycats | zenspider: :( |
| 01:29:20 | wycats | this is why we made Merb |
| 01:29:26 | wycats | which probably isn't up to your standards either :P |
| 01:29:30 | wycats | but at least it's only 4k LOC |
| 01:29:34 | wycats | instead of 100Kloc |
| 01:29:58 | elight leaves the room. | |
| 01:29:59 | anteaya leaves the room. | |
| 01:31:23 | squeegy leaves the room. | |
| 01:32:50 | evan | zenspider: ug indeed. |
| 01:34:57 | mapar enters the room. | |
| 01:37:25 | kw leaves the room. | |
| 01:38:52 | yugui leaves the room. | |
| 01:39:42 | robin_dewd enters the room. | |
| 01:41:33 | anteaya enters the room. | |
| 01:44:22 | corp enters the room. | |
| 01:46:12 | NoKarma leaves the room. | |
| 01:47:57 | _sk enters the room. | |
| 01:48:12 | _sk | hello rubinius |
| 01:48:22 | evan | hello |
| 01:48:35 | evan | _sk: i see you're coming all the way from japan, welcome. |
| 01:48:51 | _sk | hmm, not actually from japan |
| 01:48:59 | _sk | i'm from malaysia |
| 01:49:03 | evan | ah. |
| 01:49:06 | _sk | working in a japanese company :) |
| 01:49:12 | eventualbuddha enters the room. | |
| 01:49:19 | evan | gotcha. |
| 01:49:34 | _sk | evan, i was checking the rubinius build last night |
| 01:49:39 | evan | ok. |
| 01:50:09 | _sk | and noticed, you need shotgun, as well as a compiled rbc for the compiler to actually compile the rest of the .rb files into .rbc |
| 01:50:27 | evan | yes, thats what the purpose of the stables is |
| 01:50:32 | _sk | shotgun + stable rba that's what i meant |
| 01:50:37 | evan | pre .rbc compiled versions |
| 01:50:38 | evan | yep |
| 01:50:40 | _sk | but how did you do the stables? |
| 01:50:43 | evan | because the compiler is written in ruby |
| 01:50:48 | evan | ah! |
| 01:50:54 | evan | they have evolved |
| 01:51:00 | evan | the first versions were generated by 1.8 |
| 01:51:15 | evan | until rubinius was able to produce versions itself |
| 01:51:15 | edwardam leaves the room. | |
| 01:51:18 | _sk | ic... tq very much... |
| 01:51:28 | edwardam enters the room. | |
| 01:51:30 | tarcieri | heh, bootstrapping is fun |
| 01:51:34 | tarcieri | wants to do it with Reia |
| 01:52:28 | _sk | rubinius looks fun enough in that sense |
| 01:53:29 | m7d enters the room. | |
| 02:00:37 | xhanjian leaves the room. | |
| 02:01:56 | dysinger leaves the room. | |
| 02:05:39 | dfg59 leaves the room. | |
| 02:06:42 | cored enters the room. | |
| 02:08:32 | jtoy enters the room. | |
| 02:09:06 | mapar leaves the room. | |
| 02:11:24 | shame enters the room. | |
| 02:24:26 | kevinclark enters the room. | |
| 02:30:15 | VVSiz_ enters the room. | |
| 02:31:10 | squeegy enters the room. | |
| 02:37:34 | VVSiz leaves the room. | |
| 02:44:08 | m7d leaves the room. | |
| 02:44:23 | manveru leaves the room. | |
| 02:44:32 | manveru_ enters the room. | |
| 02:44:52 | fowlduck enters the room. | |
| 02:46:41 | MenTaLguY leaves the room. | |
| 02:50:26 | MenTaLguY enters the room. | |
| 02:50:29 | MenTaLguY enters the room. | |
| 03:01:52 | radarek leaves the room. | |
| 03:03:00 | lstoll leaves the room. | |
| 03:14:22 | xhanjian enters the room. | |
| 03:15:24 | eventualbuddha leaves the room. | |
| 03:16:51 | boyscout | 2 commits by Eric Hodel |
| 03:16:52 | boyscout | * RDoc for Dir::glob.; 6fd11a4 |
| 03:16:53 | boyscout | * Fix Dir::glob to support '**/x/** patterns properly; 4caee3a |
| 03:17:15 | drbrain | woo! #562 closed! |
| 03:17:52 | brixen | drbrain: nice! |
| 03:25:43 | drbrain | I mistranslated MRI's dir.c |
| 03:25:49 | drbrain | but I finally understand |
| 03:30:07 | cored leaves the room. | |
| 03:31:08 | rubuildius_ppc | Eric Hodel: 6fd11a4da; 2175 files, 7167 examples, 25748 expectations, 0 failures, 0 errors |
| 03:31:51 | corp leaves the room. | |
| 03:33:45 | vertiginous enters the room. | |
| 03:35:45 | yipstar leaves the room. | |
| 03:37:32 | MenTaLguY leaves the room. | |
| 03:38:10 | cezarsa | hey guys, is there anyone available to review 2 patches i've submitted (564 and 565)? |
| 03:41:03 | drbrain | cezarsa: I approve of both |
| 03:41:17 | drbrain | but, I think evan should look at it to double check |
| 03:41:44 | cezarsa | drbrain: thanks! |
| 03:42:46 | fowlduck leaves the room. | |
| 03:42:52 | brixen | cezarsa: #564 doesn't change ruby.c |
| 03:42:58 | brixen | could you resubmit on that one? |
| 03:43:10 | brixen | cezarsa: otherwise, they both look good |
| 03:47:17 | edwardam leaves the room. | |
| 03:48:47 | cezarsa | brixen: but changing ruby.c isn't really needed, should i add it to the patch just for consistency? |
| 03:49:01 | rubuildius_ppc leaves the room. | |
| 03:49:34 | rubuildius_ppc enters the room. | |
| 03:49:40 | brixen | cezarsa: ah, I see. probably no need then |
| 03:50:00 | brixen | cezarsa: I should have #565 committed in just a sec |
| 03:50:23 | brixen | cezarsa: then you can use your shiny new bit to handle #564 :) |
| 03:51:48 | boyscout | 1 commit by Cezar Sá Espinola |
| 03:51:49 | boyscout | * Adding rb_str_cat2 to subtend, with specs.; a9282f1 |
| 03:52:25 | brixen | cezarsa: pastie evan your pub ssh key (preferably not generated on old debian/ubuntu :) |
| 03:54:45 | cezarsa | brixen: thx! one second i'll do the pastie, is evan still here? |
| 03:55:21 | drbrain | he is not idle on IM |
| 03:56:50 | brixen | evan: ping? |
| 04:04:01 | benny leaves the room. | |
| 04:05:08 | cezarsa | evan: if you show around here, my pub_key http://pastie.caboo.se/private/juonc0opk1fcrjyfe7puya, brixen commited #565 for me, i'd love to get a fresh rubinius bit :) |
| 04:05:43 | rubuildius_ppc | Cezar Sá Espinola: a9282f193; 2175 files, 7168 examples, 25749 expectations, 0 failures, 0 errors |
| 04:06:51 | benburkert leaves the room. | |
| 04:08:31 | ezmobius leaves the room. | |
| 04:17:16 | kw enters the room. | |
| 04:22:36 | headius_ enters the room. | |
| 04:22:44 | benburkert enters the room. | |
| 04:27:01 | charlenopires leaves the room. | |
| 04:28:59 | dysinger enters the room. | |
| 04:29:59 | jeremydurham_ enters the room. | |
| 04:30:44 | AndrewO leaves the room. | |
| 04:31:11 | jeremydurham leaves the room. | |
| 04:37:20 | michaellatta_ enters the room. | |
| 04:38:39 | headius leaves the room. | |
| 04:43:53 | Silva leaves the room. | |
| 04:51:58 | mediogre enters the room. | |
| 04:53:25 | michaellatta leaves the room. | |
| 04:59:35 | trythil enters the room. | |
| 05:10:01 | rubuildius_amd64 | Cezar Sá Espinola: a9282f193; 2175 files, 7166 examples, 25723 expectations, 0 failures, 0 errors |
| 05:10:03 | rubuildius_amd64 | Eric Hodel: 6fd11a4da; 2175 files, 7165 examples, 25722 expectations, 0 failures, 0 errors |
| 05:15:40 | RyanTM leaves the room. | |
| 05:16:43 | rue | I wonder, after the "runs Rails" milestone, can we go for the "gets Rails to unfuck their codebase" milestone? |
| 05:18:30 | jeremydurham leaves the room. | |
| 05:23:01 | benburkert leaves the room. | |
| 05:34:17 | robin_dewd leaves the room. | |
| 05:36:31 | ezmobius enters the room. | |
| 05:39:52 | corp enters the room. | |
| 05:43:53 | mernen leaves the room. | |
| 05:45:09 | corp leaves the room. | |
| 05:49:34 | rue | Huh. I am surprised my change this morning did not break stuff. |
| 05:52:32 | TheVoice leaves the room. | |
| 05:53:03 | headius | evan: ping |
| 05:53:08 | headius | looks like he's not around eh? |
| 05:53:19 | rue | Does indeed |
| 05:53:46 | edwardam enters the room. | |
| 05:54:10 | TheVoice enters the room. | |
| 05:54:11 | corp enters the room. | |
| 05:55:23 | TheVoic1 enters the room. | |
| 05:58:48 | corp leaves the room. | |
| 05:59:06 | TheVoic1 leaves the room. | |
| 05:59:20 | TheVoice leaves the room. | |
| 05:59:35 | dysinger leaves the room. | |
| 06:00:04 | evan | i'm back |
| 06:00:21 | evan | got a partial migraine after my jog |
| 06:01:58 | TheVoice enters the room. | |
| 06:02:00 | blowmage enters the room. | |
| 06:02:46 | vertiginous leaves the room. | |
| 06:16:11 | scudco enters the room. | |
| 06:20:14 | benburkert enters the room. | |
| 06:32:38 | lstoll enters the room. | |
| 06:43:02 | wycats | sends evan a o (that's a donut) |
| 06:49:11 | TheVoice leaves the room. | |
| 06:49:42 | TheVoice enters the room. | |
| 06:59:31 | anteaya leaves the room. | |
| 07:03:35 | benburkert leaves the room. | |
| 07:04:52 | kw leaves the room. | |
| 07:05:08 | Ferdinand enters the room. | |
| 07:09:24 | Ferdinand leaves the room. | |
| 07:11:58 | headius | ⊚ |
| 07:17:03 | _sk leaves the room. | |
| 07:17:25 | jzj enters the room. | |
| 07:17:29 | _sk enters the room. | |
| 07:17:44 | jzj | hi, while im testing the compiler spec |
| 07:19:17 | jzj | where is the TestGenerator#push_literal defined? |
| 07:19:40 | jzj | can't find it anywhere |
| 07:21:02 | rue | jzj: spec/compiler/spec_helper.rb. Some of the instructions may just be done through #method_missing |
| 07:21:20 | edwardam leaves the room. | |
| 07:26:34 | jzj | rue: i have checked there |
| 07:26:42 | jzj | but #method_missing isn't used there |
| 07:26:49 | jzj | in the TestGenerator |
| 07:28:23 | w1rele55 enters the room. | |
| 07:38:24 | jzj | i found it |
| 07:38:24 | jzj | thx |
| 07:38:28 | rue | jzj: It is in lines 69-80. It just grabs the instruction names |
| 07:39:09 | jzj | yeah |
| 07:39:19 | jzj | i lost this line :) |
| 07:39:22 | jzj | thx, rue |
| 07:40:31 | Maledictus enters the room. | |
| 07:53:46 | michaellatta_ leaves the room. | |
| 07:54:20 | michaellatta enters the room. | |
| 08:04:20 | rudebwoy enters the room. | |
| 08:04:33 | blowmage leaves the room. | |
| 08:10:15 | qwert666 enters the room. | |
| 08:12:18 | thehcdreamer enters the room. | |
| 08:12:31 | trythil leaves the room. | |
| 08:13:33 | dctanner enters the room. | |
| 08:29:30 | maharg_ enters the room. | |
| 08:33:43 | dbussink | morning |
| 08:35:45 | rue | Morning |
| 08:35:53 | trythil enters the room. | |
| 08:42:34 | maharg leaves the room. | |
| 08:44:29 | ezmobius leaves the room. | |
| 08:45:13 | lchin__ leaves the room. | |
| 08:47:39 | octopod enters the room. | |
| 08:49:50 | mutle enters the room. | |
| 08:54:17 | Spakman | brixen: hi! I'm around now - what's up? |
| 09:00:08 | dbussink | Spakman: he's probably asleep now |
| 09:00:22 | Spakman | dbussink: cheers |
| 09:02:31 | brixen | Spakman: rumors of my sleep have been exaggerated :) |
| 09:03:40 | brixen | Spakman: I was wondering about the BasicSocket specs, whether it would be possible to move the setup code into before :each actions |
| 09:04:11 | brixen | didn't know if you had tried that and ran into problems |
| 09:04:29 | brixen | dbussink: morning btw :) |
| 09:04:53 | dctanner leaves the room. | |
| 09:05:10 | dbussink | brixen: i shouldn't assume things i guess ;) |
| 09:06:03 | brixen | dbussink: I should be asleep, hope to be very soon |
| 09:07:22 | crafterm leaves the room. | |
| 09:09:10 | Spakman | brixen: no, I didn't play with that much because the code inside the threads are slightly different in each case. |
| 09:09:44 | brixen | ahh, yes I see that now |
| 09:09:56 | brixen | I thought only the .send was different |
| 09:10:08 | Spakman | I guess we should be able to reduce the code somewhat though, especially if more are added to the same file |
| 09:10:08 | brixen | it is rather a tough thing to spec |
| 09:10:22 | brixen | yeah, was just curious is all |
| 09:10:30 | Spakman | it's fiddly - testing send and recv kind of depend on each other |
| 09:10:37 | brixen | yep |
| 09:12:13 | Spakman | I'm trying to spec BasicSocket#recv_nonblock just now, but am a little confused about if I've found an MRI bug or not. |
| 09:15:47 | rue | One of those two should really be verified independently of the other |
| 09:16:14 | rue | May need to use external software for it, though |
| 09:18:37 | Spakman | rue: I agree - have you got any thoughts? |
| 09:18:45 | headius leaves the room. | |
| 09:20:54 | rue | The quick and dirty way would be to just use socat or netcat |
| 09:22:53 | imajes enters the room. | |
| 09:25:40 | trythil leaves the room. | |
| 09:26:49 | rue | Of course have to execute those conditionally and just do the mutually dependent ones if the system has neither |
| 09:28:31 | rue | Cannot really think of any other reasonable approaches. I am actually just writing some more mocking code for recv() but I think dropping to an untested C extension for this is less than optimal :) |
| 09:29:35 | Skip enters the room. | |
| 09:30:53 | Spakman | rue: I'd be really interested to see the mocking code once you're happy enough with it, if you don't mind |
| 09:31:56 | imajes leaves the room. | |
| 09:32:02 | _mk_ enters the room. | |
| 09:49:42 | rue | Spakman: Let me do a real quick writeup |
| 09:53:20 | wvdschel enters the room. | |
| 09:57:40 | rue | Spakman: http://pastie.org/200735 |
| 09:58:09 | rue | Still pretty evil. Really extracting it to a proper framework would clean up a bit of course |
| 10:00:12 | rue | Oh, and then of course you can access the arguments given for any of the invocations that took place |
| 10:13:54 | fmardini enters the room. | |
| 10:17:09 | benny enters the room. | |
| 10:24:40 | corundum leaves the room. | |
| 10:25:41 | corundum enters the room. | |
| 10:26:00 | drbrain_ enters the room. | |
| 10:28:13 | dctanner enters the room. | |
| 10:34:44 | drbrain leaves the room. | |
| 10:42:51 | gnufied leaves the room. | |
| 10:44:29 | BlackEdder enters the room. | |
| 10:54:24 | Spakman | rue: my implementation of BasicSocket#send and #recv is http://rubinius.lighthouseapp.com/projects/5089/tickets/567-patch-basicsocket-send-and-basicsocket -recv |
| 10:56:17 | olabini enters the room. | |
| 11:00:26 | hosiawak enters the room. | |
| 11:02:39 | zenspider | Spakman: you should be able to use __send__ instead of aliasing object_send |
| 11:03:49 | jzj leaves the room. | |
| 11:05:09 | zenspider | I've assigned it to drbrain_ |
| 11:06:36 | Spakman | zenspider: ah, I *knew* there would be a nicer way - I've been looking for that. Cheers. |
| 11:09:45 | rue | Yep. Otherwise fine |
| 11:09:56 | atmos leaves the room. | |
| 11:10:13 | jtoy leaves the room. | |
| 11:17:28 | jzj enters the room. | |
| 11:20:40 | jzj | in the Compiler, why are there @slot and @position |
| 11:21:03 | jzj | i thought they are used to index locals, right? |
| 11:24:19 | olabini leaves the room. | |
| 11:25:04 | olabini enters the room. | |
| 11:28:23 | radarek enters the room. | |
| 11:31:18 | rue | jzj: Slots are the index numbers, so more like addresses |
| 11:31:39 | jzj | how about stack_position |
| 11:32:23 | jzj | what's the different of them |
| 11:32:52 | rue | Stack position is for arguments passed on the stack |
| 11:33:30 | rue | It also takes into account the object sizes and so on |
| 11:34:18 | jzj | it is special for Argument, right? |
| 11:34:34 | jzj | slot are used to index normal locals |
| 11:38:27 | rue | Well, slots are also used for arguments so I think the more precise way to say it would be that only arguments can have a stack_position |
| 11:38:40 | dctanner leaves the room. | |
| 11:39:41 | rue | It is used in this context by the slot to locate the correct argument object |
| 11:40:47 | rue | This should all be unified a bit sometime soon too, by the way |
| 11:44:04 | jzj | thanks,rue. |
| 11:45:42 | jzj leaves the room. | |
| 11:50:16 | thehcdreamer_ enters the room. | |
| 11:55:54 | benny leaves the room. | |
| 11:59:14 | thehcdreamer leaves the room. | |
| 12:07:07 | _sk leaves the room. | |
| 12:40:25 | webmat enters the room. | |
| 12:49:19 | RyanTM enters the room. | |
| 12:53:28 | qwert666 leaves the room. | |
| 12:57:56 | anteaya enters the room. | |
| 13:04:17 | charlenopires enters the room. | |
| 13:06:28 | cezarsa leaves the room. | |
| 13:07:21 | jeremydurham enters the room. | |
| 13:19:48 | yugui enters the room. | |
| 13:21:12 | yipstar enters the room. | |
| 13:25:16 | jeremydurham leaves the room. | |
| 13:26:48 | imajes_ enters the room. | |
| 13:27:45 | imajes_ leaves the room. | |
| 13:28:14 | imajes_ enters the room. | |
| 13:30:11 | fudgie leaves the room. | |
| 13:30:12 | imajes__ enters the room. | |
| 13:36:05 | cezarsa enters the room. | |
| 13:42:45 | imajes___ enters the room. | |
| 13:42:49 | imajes leaves the room. | |
| 13:44:03 | cezarsa leaves the room. | |
| 13:44:06 | cezarsa enters the room. | |
| 13:44:34 | gnufied enters the room. | |
| 13:48:53 | imajes_ leaves the room. | |
| 13:52:19 | anteaya leaves the room. | |
| 13:53:30 | imajes__ leaves the room. | |
| 13:56:15 | fmardini leaves the room. | |
| 14:00:57 | jtoy enters the room. | |
| 14:04:27 | fbuilesv enters the room. | |
| 14:14:04 | blakewatters leaves the room. | |
| 14:24:19 | yugui leaves the room. | |
| 14:27:22 | cezarsa leaves the room. | |
| 14:28:27 | charlenopires leaves the room. | |
| 14:28:39 | robin_dewd enters the room. | |
| 14:34:30 | pauldix enters the room. | |
| 14:35:32 | yugui enters the room. | |
| 14:35:51 | anteaya enters the room. | |
| 14:38:48 | cksouza enters the room. | |
| 14:46:34 | enebo enters the room. | |
| 14:49:31 | AndrewO enters the room. | |
| 14:49:59 | fbuilesv leaves the room. | |
| 14:50:28 | fbuilesv enters the room. | |
| 14:53:19 | jeremydurham enters the room. | |
| 15:01:07 | moofbong enters the room. | |
| 15:05:59 | enebo leaves the room. | |
| 15:06:08 | RyanTM leaves the room. | |
| 15:06:21 | enebo enters the room. | |
| 15:07:02 | RyanTM enters the room. | |
| 15:09:30 | Skip leaves the room. | |
| 15:10:24 | Ski1 enters the room. | |
| 15:22:22 | wmoxam enters the room. | |
| 15:24:56 | blakewatters enters the room. | |
| 15:25:06 | jeremydurham leaves the room. | |
| 15:32:29 | cyndis leaves the room. | |
| 15:40:55 | MenTaLguY enters the room. | |
| 15:41:05 | MenTaLguY | hello |
| 15:42:20 | TheProkrammer | waves |
| 15:46:13 | rue | Morning |
| 15:48:40 | therealadam enters the room. | |
| 15:52:21 | moofbong leaves the room. | |
| 15:52:35 | moofbong enters the room. | |
| 15:58:44 | benstiglitz enters the room. | |
| 15:59:17 | RyanTM leaves the room. | |
| 15:59:30 | mediogre leaves the room. | |
| 16:00:10 | RyanTM enters the room. | |
| 16:00:52 | cyndis enters the room. | |
| 16:03:39 | yasuhito enters the room. | |
| 16:03:59 | wmoxam leaves the room. | |
| 16:04:54 | wmoxam enters the room. | |
| 16:05:26 | benburkert enters the room. | |
| 16:05:48 | foysavas leaves the room. | |
| 16:06:37 | foysavas enters the room. | |
| 16:13:57 | random8r enters the room. | |
| 16:15:59 | random8r | hey all |
| 16:18:55 | RyanTM leaves the room. | |
| 16:19:36 | RyanTM enters the room. | |
| 16:20:23 | nicksieger leaves the room. | |
| 16:21:53 | nicksieger enters the room. | |
| 16:23:29 | kw enters the room. | |
| 16:23:50 | anteaya leaves the room. | |
| 16:33:07 | chris2 enters the room. | |
| 16:34:58 | yasuhito leaves the room. | |
| 16:35:39 | yasuhito enters the room. | |
| 16:37:41 | shame leaves the room. | |
| 16:38:56 | dfg59 enters the room. | |
| 16:39:49 | trythil enters the room. | |
| 16:41:05 | dysinger enters the room. | |
| 16:41:46 | benburkert leaves the room. | |
| 16:45:26 | hosiawak leaves the room. | |
| 16:45:40 | random8r leaves the room. | |
| 16:46:18 | lstoll leaves the room. | |
| 16:49:53 | jtoy leaves the room. | |
| 16:55:10 | dctanner enters the room. | |
| 16:55:59 | yasuhito leaves the room. | |
| 17:00:17 | edwardam enters the room. | |
| 17:09:10 | mediogre enters the room. | |
| 17:09:37 | edwardam_ enters the room. | |
| 17:10:09 | edwardam_ leaves the room. | |
| 17:10:22 | edwardam_ enters the room. | |
| 17:10:35 | edwardam leaves the room. | |
| 17:11:33 | ShayArnett enters the room. | |
| 17:12:11 | joachimm enters the room. | |
| 17:12:17 | kw leaves the room. | |
| 17:13:43 | fbuilesv leaves the room. | |
| 17:18:35 | mapar enters the room. | |
| 17:18:37 | mutle leaves the room. | |
| 17:20:52 | hosiawak leaves the room. | |
| 17:21:04 | lopex enters the room. | |
| 17:22:03 | dbussink | evening people :) |
| 17:25:32 | hosiawak enters the room. | |
| 17:28:45 | brixen | evening dbussink |
| 17:30:24 | rue | Morning, oh timezonally challenged one |
| 17:30:41 | dbussink | rue: talking in self reference? ;) |
| 17:33:15 | rue | Ah, self, dbussink is here I says to myself |
| 17:33:42 | dbussink | now you're losing me :) |
| 17:40:16 | rubuildius_ppc leaves the room. | |
| 17:40:17 | dysinger leaves the room. | |
| 17:40:49 | rubuildius_ppc enters the room. | |
| 17:41:11 | thechdreamer leaves the room. | |
| 17:41:43 | mapar leaves the room. | |
| 17:42:02 | wycats leaves the room. | |
| 17:42:52 | dysinger enters the room. | |
| 17:48:10 | benburkert enters the room. | |
| 17:51:02 | joachimm leaves the room. | |
| 17:51:10 | xmlhacker enters the room. | |
| 17:53:29 | benburkert leaves the room. | |
| 17:54:14 | veek enters the room. | |
| 17:55:46 | trythil leaves the room. | |
| 17:57:18 | joachimm enters the room. | |
| 17:58:56 | octopod leaves the room. | |
| 18:00:59 | wycats enters the room. | |
| 18:01:55 | dfg59 leaves the room. | |
| 18:02:01 | charlenopires enters the room. | |
| 18:06:32 | ShayArnett leaves the room. | |
| 18:06:48 | olabini leaves the room. | |
| 18:07:07 | shame enters the room. | |
| 18:09:34 | anteaya enters the room. | |
| 18:15:13 | edwardam_ leaves the room. | |
| 18:16:06 | mapar enters the room. | |
| 18:16:26 | atmos enters the room. | |
| 18:17:13 | mkrauskopf enters the room. | |
| 18:18:57 | timo leaves the room. | |
| 18:22:43 | dctanner leaves the room. | |
| 18:27:36 | qwert666 enters the room. | |
| 18:30:49 | Yurik leaves the room. | |
| 18:31:22 | Yurik enters the room. | |
| 18:32:59 | benburkert enters the room. | |
| 18:36:01 | macournoyer enters the room. | |
| 18:36:32 | anteaya leaves the room. | |
| 18:39:44 | Yurik- enters the room. | |
| 18:39:48 | eventualbuddha enters the room. | |
| 18:40:50 | mapar leaves the room. | |
| 18:42:45 | trythil enters the room. | |
| 18:43:22 | reynard_ enters the room. | |
| 18:44:50 | Yurik-_ enters the room. | |
| 18:46:46 | Yurik-__ enters the room. | |
| 18:47:48 | mapar enters the room. | |
| 18:47:58 | evan | morning |
| 18:49:14 | dgtized | evan: two things, the symlink to external_libs from vm doesn't appear to be in the repo should I add it |
| 18:49:51 | dgtized | evan: and secondly I'm getting all kinds of warnings about casting from const char * to char * |
| 18:49:53 | joachimm_ enters the room. | |
| 18:49:59 | lchin leaves the room. | |
| 18:50:10 | dgtized | evan: which is apparently a new "feature" of g++ 4.2 |
| 18:50:41 | dgtized | evan: it seems to be related to -Wwrite-strings but I can't turn it off |
| 18:50:58 | dgtized | and it's not supposed to be automatically enabled with -Wall |
| 18:51:40 | brixen | evan: did you get the pub key pastie from cezarsa ? I committed his patch in #565 last night |
| 18:52:13 | evan | dgtized: sure, add it. |
| 18:52:20 | evan | dgtized: yeah, we should figure out how to fix that. |
| 18:52:31 | evan | brixen: let me scroll up and see. |
| 18:52:45 | trythil leaves the room. | |
| 18:52:55 | joachimm leaves the room. | |
| 18:53:19 | evan | got it |
| 18:53:20 | evan | man |
| 18:53:29 | evan | pastie throws me a 500 pretty much 50% of the time. |
| 18:55:00 | evan | brixen: ok, added his key. |
| 18:55:15 | dgtized | evan: http://www-numi.fnal.gov/offline_software/srt_public_context/WebDocs/Errors/compiling_warnings.htm l#string%20constants |
| 18:56:30 | dgtized | evan: it's an insanely annoying warning because it's trying to force you to make a shit ton of things const, and I forsee that having other problems |
| 18:56:37 | reynard_ enters the room. | |
| 18:56:39 | evan | dgtized: ok. |
| 18:56:50 | dgtized | evan: I hate const, as soon as you start adding it it just starts bleeding all over everything |
| 18:56:50 | evan | dgtized: so we need to treat all string literals as const char* then, right? |
| 18:57:00 | evan | yeah |
| 18:57:11 | Yurik leaves the room. | |
| 18:57:12 | dgtized | evan: they are, the problem is that our function definitions are char * and not const char * |
| 18:57:31 | dgtized | evan: but I don't know as we can swap them in many cases |
| 18:57:39 | xhanjian_ enters the room. | |
| 18:58:03 | evan | hm. ok. |
| 18:58:08 | dgtized | evan: I mean does it make sense for VM::new_class to take a const char *? |
| 18:58:28 | dgtized | evan: I mean we can duplicate code and make both versions but that seems idiotic as well |
| 18:58:49 | evan | yeah, i think so. |
| 18:59:07 | dgtized | evan: that's why I have been trying to figure out how to just turn it off, but it doesn't seem to allow that |
| 18:59:11 | evan | this is partly my ignorance |
| 18:59:16 | dgtized | evan: the yes was to new_class can take a const char *? |
| 18:59:20 | evan | and thats why I turned it off. |
| 18:59:27 | evan | yeah, new_class can take a const char* |
| 18:59:38 | evan | most things probably be const char* |
| 18:59:40 | dgtized | evan: but does it also need to take a char * |
| 18:59:47 | evan | how come? |
| 18:59:50 | xhanjian leaves the room. | |
| 19:01:24 | dgtized | evan: I don't know for whenever it's a user specified type? |
| 19:01:42 | Yurik- leaves the room. | |
| 19:01:53 | evan | i don't know when that would be |
| 19:02:01 | evan | it doesn't modify the name |
| 19:02:06 | evan | just creates a symbol from it. |
| 19:03:00 | dgtized | if I create a class Foo in ruby code |
| 19:03:15 | dgtized | will the symbol name :Foo be stored as a const char * or a char *? |
| 19:03:22 | evan | um. |
| 19:03:35 | evan | i don't think it even uses VM::new_class currently |
| 19:03:48 | evan | but none the less, Foo is already a symbol |
| 19:03:50 | dgtized | k, but when it does we have to deal with it again, though I guess for that we could just cast it |
| 19:03:52 | evan | so there would be no char* |
| 19:03:53 | mapar leaves the room. | |
| 19:03:55 | dgtized | k |
| 19:06:15 | Yurik-_ leaves the room. | |
| 19:08:51 | thehcdreamer enters the room. | |
| 19:09:01 | headius enters the room. | |
| 19:10:31 | eventualbuddha leaves the room. | |
| 19:11:42 | dbussink | evan: hmm, i just tested -O2 for the cpp vm, but it breaks some stuff |
| 19:13:06 | dbussink | evan: also results in some compile time warnings |
| 19:14:57 | boyscout | 1 commit by Brian Ford |
| 19:14:58 | boyscout | * Updated MSpec submodule to 3b48d1b7; 8197cb5 |
| 19:15:59 | evan | dbussink: hm, ok. |
| 19:16:09 | evan | does -O2 cause segfaults or just compile errors? |
| 19:16:35 | dbussink | evan: http://pastie.caboo.se/200983 |
| 19:16:47 | dbussink | a test failure |
| 19:16:55 | evan | thats |
| 19:16:56 | evan | awesome |
| 19:16:57 | evan | actually. |
| 19:16:58 | evan | :) |
| 19:17:10 | evan | since it shows us exactly what changed. |
| 19:17:17 | evan | in shotgun, when -O2 would break stuff |
| 19:17:22 | evan | it would take me a week to hunt it down. |
| 19:17:43 | _mk_ leaves the room. | |
| 19:18:32 | dbussink | evan: on os x, so easy reproducible |
| 19:18:41 | evan | yep. |
| 19:18:44 | evan | thats interesting |
| 19:19:07 | evan | since that was calling strlen on "strlen" |
| 19:19:14 | evan | i wonder why it got 5 instead of 6 |
| 19:19:27 | evan | unless the String didn't get created properly |
| 19:21:29 | trythil enters the room. | |
| 19:24:21 | dbussink | evan: and, any luck with it? |
| 19:24:43 | evan | i'm debugging something else atm. |
| 19:24:48 | dbussink | ah ok |
| 19:24:50 | evan | if can't get to it, open a ticket |
| 19:24:54 | evan | so I don't forget. |
| 19:24:58 | evan | er. |
| 19:25:01 | evan | if you can't get to it... |
| 19:27:26 | dgtized | evan: where is type_assert defined in the new vm? |
| 19:27:53 | evan | mmm |
| 19:27:55 | evan | object.h i believe. |
| 19:28:09 | evan | oh, it's declared thene. |
| 19:28:23 | evan | hm, i seem to have put it in the wrong place. |
| 19:28:31 | dgtized | yea it's in objects.hpp |
| 19:28:36 | dgtized | sorry object.hpp |
| 19:28:52 | evan | oh |
| 19:28:54 | evan | the body is in vm.cpp |
| 19:28:58 | evan | thats dumb place for it |
| 19:29:03 | dgtized | ah should I move it back? |
| 19:29:11 | evan | back to where? |
| 19:29:20 | rubuildius_ppc | Brian Ford: 8197cb5c4; 2175 files, 7168 examples, 25749 expectations, 0 failures, 0 errors |
| 19:29:37 | dgtized | object.cpp? |
| 19:29:52 | evan | builtin_object.cpp |
| 19:29:55 | evan | is probably where it should go. |
| 19:30:00 | evan | though |
| 19:30:03 | evan | even thats a bad place. |
| 19:30:11 | evan | hm. |
| 19:30:12 | Fullmoon enters the room. | |
| 19:30:18 | evan | but thats a better place than it currently is |
| 19:30:25 | dgtized | prelude? |
| 19:30:25 | evan | dgtized: i pushed a change to the build system |
| 19:30:27 | evan | everything ok? |
| 19:30:29 | evan | no no |
| 19:30:31 | evan | not prelude |
| 19:30:32 | evan | thats just headers |
| 19:32:14 | pauldix_ enters the room. | |
| 19:35:02 | dgtized | evan: the change from much earlier today? |
| 19:35:22 | evan | yeah |
| 19:36:31 | kw enters the room. | |
| 19:36:45 | dgtized | evan: I think it's still having some trouble further on but it's getting further anyway |
| 19:37:43 | macournoyer leaves the room. | |
| 19:39:01 | evan | k |
| 19:39:13 | evan | well, let me know what problems you have. |
| 19:41:36 | dgtized | evan: ./global_cache.hpp:68: error: no matching function for call to ‘rubinius::MethodVisibility::public_p(rubinius::VM**)’ |
| 19:41:47 | dgtized | evan: it's there but it's a VM* not ** |
| 19:41:50 | evan | huh |
| 19:41:52 | evan | thats bizarre. |
| 19:42:24 | evan | the call site doesn't have it being a ** either. |
| 19:43:04 | thehcdreamer leaves the room. | |
| 19:44:58 | dgtized | evan: it seems to think that STATE is *& for just that method |
| 19:45:20 | evan | STATE is always that. |
| 19:45:27 | evan | for everyone. |
| 19:47:13 | olabini enters the room. | |
| 19:47:26 | dgtized | evan: http://www.pastie.org/201011 |
| 19:48:13 | evan | hm. |
| 19:48:23 | evan | G++ always lists stuff wih & in the args list |
| 19:48:25 | pauldix leaves the room. | |
| 19:48:30 | evan | even if you never declare it as such. |
| 19:48:44 | dgtized | ah |
| 19:49:15 | evan | whats odd is that you're the only one that gets that. |
| 19:49:21 | evan | what g++ version are you on? |
| 19:49:36 | dgtized | gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7) |
| 19:49:49 | evan | hm, ok. |
| 19:50:01 | evan | i'm betting it's something about the version. |
| 19:50:19 | evan | hm |
| 19:50:23 | evan | thats the only place STATE is used.. |
| 19:50:26 | evan | I wonder.. |
| 19:50:28 | joachimm | evan: is this an acceptable way of testing type_to_name http://pastie.textmate.org/private/eirwara7nrlisezoa8wog |
| 19:50:42 | evan | dgtized: what file was it compiling when that happened? |
| 19:50:58 | evan | joachimm_: ack |
| 19:51:02 | evan | i was about to remove type_to_name. |
| 19:51:30 | evan | hm, actually, I can leave it in |
| 19:51:32 | evan | it's still usefull |
| 19:51:36 | evan | the answer is no though. |
| 19:51:47 | evan | well |
| 19:51:49 | evan | hm. |
| 19:52:00 | evan | i was going to say you should just pass in the type value directly |
| 19:52:11 | evan | Object::type_to_name(String::type) |
| 19:52:13 | evan | like that. |
| 19:53:14 | benburkert leaves the room. | |
| 19:53:23 | trythil leaves the room. | |
| 19:54:01 | dgtized | evan: looks like test/runner.cpp? |
| 19:54:14 | evan | interesting. |
| 19:54:31 | evan | i'm thinking that global_cache.hpp is included before prelude.hpp |
| 19:55:12 | dgtized | ah |
| 19:55:52 | dgtized | evan: no because global_cach.hpp includes objects.hpp and that includes vm.hpp and that includes prelude.hpp |
| 19:56:02 | evan | yeah |
| 19:56:04 | evan | i saw that. |
| 19:57:21 | radarek leaves the room. | |
| 19:57:51 | evan | dbussink: interesting, i get 1 instead of 5 with -O2 |
| 19:57:56 | evan | seems to be data corruption |
| 20:01:41 | dgtized | evan: so still no idea on that? I have a bunch of const char * changes but I don't want to check them in if I can't at least get to the test phase |
| 20:01:55 | stouset enters the room. | |
| 20:01:58 | evan | k |
| 20:02:59 | stouset | I've recently rewritten Pathname, since it's slow as crap and uses memory like a 747 uses gas. Any interest in replacing the version shipping with Rubinius with it, evan? |
| 20:03:21 | evan | one sec |
| 20:03:25 | evan | on the phone |
| 20:03:39 | stouset | Ok. |
| 20:04:00 | drbrain | why don't we use Berger's Pathname2? |
| 20:04:10 | drbrain | isn't it feature compatible? |
| 20:04:37 | stouset | drbrain_: pathname2 doesn't pass specs, AFAIK, and is also slow. He's got a C version, but it's not available through gems. |
| 20:04:50 | drbrain | ok |
| 20:05:08 | stouset | Also, it doesn't implement things like join correctly. He wrote a facade module, but it breaks on methods with rest args. |
| 20:06:40 | stouset | Mine passes (almost) all specs. It doesn't pass the ones that test private method functionality, and most of the rest are non-meaningful differences. i.e., sometimes it'll return a path with extra slashes, and I don't. |
| 20:06:56 | dgtized | evan: going to lunch, but the other thing is that this whole objects, object, builtin_object source files business makes finding methods confusing, any way we can consolidate? |
| 20:07:41 | brixen | stouset: sounds great. could you add a ticket with your code as a patch? |
| 20:08:03 | stouset | Yeah. I was asking first mainly to see how compatible you wanted it to be. |
| 20:08:18 | brixen | stouset: also, if the existing specs are for really odd behavior, we can submit questions/bugs to ruby-core |
| 20:09:01 | brixen | stouset: compatible as in specs or compatible as in shipping the same stdlib files as MRI? |
| 20:09:14 | stouset | There's (I think) two places where I act differently than pathname that ships with MRI, but one's a matter of consistency, and one is where I think theirs implements it incorrectly. But I can maintain a branch that has those two work like MRI. |
| 20:09:31 | stouset | As in specs. |
| 20:09:34 | brixen | sure |
| 20:09:51 | MenTaLguY | tarcieri: http://moonbase.rydia.net/mental/blog/programming/actor-object-protocol.html |
| 20:10:10 | brixen | well, the spec some mostly from just seeing what MRI does. sometimes that results in really weird specs, so we can always ask for clarification |
| 20:10:24 | brixen | spec comes* |
| 20:10:25 | evan | stouset: if it breaks with MRI in only known places, and those places are speced, we could probably use it |
| 20:10:33 | evan | we should try and get MRI to use it as well |
| 20:10:48 | evan | there is a bigger issue of what the rubinius stdlib should look like |
| 20:10:51 | stouset | Do you care about specs that test private, internal-use-only methods? |
| 20:10:56 | evan | i'd hate to have a stale version of your new pathname |
| 20:11:19 | stouset | And do you care about specs that fail on non-meaningful differences? e.g., "a//b" vs. "a/b" |
| 20:12:14 | brixen | stouset: specs like "a//b" should probably be bugs |
| 20:12:21 | bdheeman enters the room. | |
| 20:12:36 | brixen | stouset: we can guard the specs like those that fail for now and ask about them |
| 20:12:42 | stouset | Ok. |
| 20:13:17 | evan | hm |
| 20:13:26 | evan | it's how to define "non-meaningful" |
| 20:13:32 | brixen | yeah |
| 20:13:36 | evan | we have the same issue with MRI's internals |
| 20:13:37 | brixen | let's see what fails |
| 20:13:47 | evan | like, say, IO's buffering behavior |
| 20:14:03 | evan | whats intended and whats impl. artifact. |
| 20:14:04 | mediogre leaves the room. | |
| 20:14:37 | evan | if we use your version, i'll want to set it up so that it can be upgraded without having to upgrade rubinius |
| 20:14:54 | evan | ie, it's installed as a gem or something |
| 20:15:00 | evan | that goes for a lot of the stdlib too. |
| 20:15:45 | stouset | evan: Fair enough. It's a pretty straightforward library, though. Not much maintenance other than bugfixes, I suspect. |
| 20:16:10 | evan | right, but i want to plan a little for the unplanned for. |
| 20:16:18 | evan | cgi.rb is a good example of this |
| 20:16:23 | evan | since it had some NASTY bugs |
| 20:16:35 | evan | but couldn't be upgraded unless the released a whole new version of MRI |
| 20:16:50 | stouset | Yeah. Hence cgi_multipart_eof_fix :) |
| 20:16:51 | benburkert enters the room. | |
| 20:17:32 | evan | yep. |
| 20:17:52 | evan | if we can do a little prep now and avoid that kind of situation, i think well be in a better place |
| 20:17:58 | evan | stouset: oh! i should mention about pathname |
| 20:18:06 | evan | long ago I submitted a patch to pathname |
| 20:18:20 | evan | to have it use 'self.class.new(...)' to create objects |
| 20:18:26 | evan | so that Pathname could be subclassed |
| 20:18:27 | stouset | Already done. :) |
| 20:18:30 | evan | yay! |
| 20:18:35 | stouset | Actually, slightly differently. |
| 20:18:38 | stouset | String#to_path |
| 20:19:01 | stouset | And Pathname#to_path noop |
| 20:19:08 | stouset | But same effect. |
| 20:19:16 | evan | hm, not sure how that works. |
| 20:19:20 | evan | i mean so that stuff like |
| 20:19:32 | evan | Sub.new("a") + Sub.new("b") |
| 20:19:35 | evan | returns an instance of Sub |
| 20:19:58 | stouset | Ah. Hmm. |
| 20:20:31 | evan | in the curernt Pathname |
| 20:20:32 | stouset | I can look at that. I don't think that'll work as is. Everything in pathname uses to_path, which returns a pathname regardless of if it's a string or path. |
| 20:20:38 | evan | those operations typically use Pathname.new |
| 20:20:42 | stouset | Oh! |
| 20:20:43 | evan | thus defeating subclassing |
| 20:20:44 | stouset | Easy fix. |
| 20:21:17 | stouset | to_path on a pathname returns self. So it already works. |
| 20:21:32 | stouset | Subclass pathname, and to_path will still just return self. |
| 20:21:47 | evan | ok |
| 20:21:52 | stouset | Since to_path is used everywhere internally, it should be alright. |
| 20:22:20 | stouset | Out of curiosity, why did you need to subclass to_path? :) |
| 20:22:29 | stouset | s/to_path/Pathname/ |
| 20:22:59 | evan | A good question... |
| 20:23:02 | evan | i'm trying to recall. |
| 20:23:13 | edwardam enters the room. | |
| 20:23:18 | mkrauskopf leaves the room. | |
| 20:23:19 | evan | I think because I wanted to have operations on certain paths |
| 20:23:33 | evan | like |
| 20:23:42 | evan | Sub#lines_of_ruby |
| 20:23:43 | stouset | Jesus. Just benchmarked Pathname. 1 million core Pathname.new's takes 3s vs 1 for mine. 1 million joins takes 94s vs 4s for min. |
| 20:23:43 | evan | or something |
| 20:23:58 | evan | by subclassing Pathname |
| 20:24:02 | evan | i got all the path construction for free |
| 20:24:15 | stouset | Fair enough. |
| 20:24:33 | evan | wow. |
| 20:24:38 | brixen | stouset: nice |
| 20:24:39 | evan | i knew it was a hog, but wow. |
| 20:25:00 | stouset | It's on github, by the way. http://github.com/stouset/pathname3/tree/master |
| 20:25:08 | stouset | I'm cloning rubinius right now, going to make a patch for it. |
| 20:25:12 | tmm1 leaves the room. | |
| 20:25:26 | evan | ok. |
| 20:25:53 | edwardam_ enters the room. | |
| 20:26:02 | tmm1 enters the room. | |
| 20:28:11 | brixen | who worked on iconv? |
| 20:30:57 | evan | me |
| 20:31:39 | brixen | evan: heh, yeah, just git blamed |
| 20:31:50 | brixen | le'me pastie you something |
| 20:31:52 | tmm1 leaves the room. | |
| 20:32:06 | rubuildius_amd64 | Brian Ford: 8197cb5c4; 2175 files, 7166 examples, 25723 expectations, 0 failures, 0 errors |
| 20:32:19 | brixen | evan: http://pastie.org/201047 |
| 20:32:31 | brixen | apparently iconv ignores multiple close calls |
| 20:32:40 | brixen | that's a naive fix for now, was getting a double free error |
| 20:32:44 | tmm1 enters the room. | |
| 20:32:44 | evan | ah |
| 20:32:49 | evan | thats a good fix. |
| 20:32:51 | brixen | what was cool, is that rbx handles double frees in stride |
| 20:32:55 | brixen | ok, I'l push it |
| 20:33:53 | brixen | cool, we have a bunch more (failing for now) iconv specs in |
| 20:33:58 | evan | sweet. |
| 20:34:03 | evan | should be easy to fix |
| 20:34:09 | evan | i didn't write the whole API |
| 20:34:12 | brixen | yep |
| 20:34:18 | evan | probably just need methods fleshed out. |
| 20:34:23 | brixen | yeah |
| 20:34:49 | brixen | evan: oh, and the error message on double free is great |
| 20:34:56 | evan | the darwin one? |
| 20:35:02 | brixen | the rbx one |
| 20:35:06 | rue | Iconv was failing on rubuildius_amd64 when I pushed in the FFI error |
| 20:35:07 | evan | we have one? |
| 20:35:10 | evan | whats it look like |
| 20:35:10 | brixen | tells you were to break to fix it |
| 20:35:13 | brixen | or debug it |
| 20:35:15 | evan | no |
| 20:35:16 | evan | thats darwin |
| 20:35:17 | evan | not rbx |
| 20:35:19 | brixen | ahh |
| 20:35:25 | brixen | well, thanks darwin then :) |
| 20:35:31 | evan | darwin has the nice FreeBSD malloc functions |
| 20:35:35 | evan | which track errors for you |
| 20:35:44 | ezmobius enters the room. | |
| 20:36:41 | rue | dgtized: Always always add const wherever possible. It is one of the top 3 bug squashers |
| 20:37:01 | evan | ack. |
| 20:37:08 | evan | dbussink: found the problem |
| 20:37:18 | evan | i must have been doing drugs when I wrote ffi.cpp |
| 20:37:37 | evan | it stores pointers to memory returned from alloca() into an argument and returns it |
| 20:38:13 | MenTaLguY | whoops |
| 20:38:33 | tmm1 leaves the room. | |
| 20:39:04 | evan | yeah, whoops. |
| 20:39:15 | tmm1 enters the room. | |
| 20:40:21 | rue | C const is kind of useless, C++ very useful particularly since you can apply it to return values |
| 20:41:03 | edwardam leaves the room. | |
| 20:41:25 | MenTaLguY | const returns wouldn't exactly help with the alloca thing |
| 20:41:43 | dbussink | evan: ah, nice |
| 20:41:46 | MenTaLguY | actually you can return const pointers in C also though |
| 20:41:54 | MenTaLguY | C simply doesn't have references in the C++ way |
| 20:42:38 | boyscout | 3 commits by Brian Ford |
| 20:42:39 | boyscout | * Updated CI exclude tags for newest version of rubyspecs.; 5de72c0 |
| 20:42:40 | boyscout | * Fixed Iconv#close to ignore multiple calls.; e321c71 |
| 20:42:41 | boyscout | * Updated RubySpec submodule to fd97b295.; 7214e24 |
| 20:44:25 | boyscout | 1 commit by Ryan T Mulligan |
| 20:44:26 | boyscout | * Modifies INSTALL for Ubuntu; c18ecb5 |
| 20:44:44 | rue | MenTaLguY: It only warns |
| 20:45:31 | MenTaLguY | does it? |
| 20:45:35 | evan | [1]cezarsa: allo! you have commit rights now |
| 20:45:40 | MenTaLguY | I thought it required a cast if you're assigning to a non-const pointer... |
| 20:46:02 | Fullmoon leaves the room. | |
| 20:46:03 | mkrauskopf enters the room. | |
| 20:46:04 | cezarsa leaves the room. | |
| 20:46:18 | RyanTM | Is rake git:safe_push meant to be used from within a checked out branch? |
| 20:46:27 | evan | RyanTM: can be |
| 20:46:49 | RyanTM | thanks |
| 20:47:08 | rue | MenTaLguY: Nah, you just get the {assignment,initialization} discards qualifiers even with -Wall -Wextra -std=c99 -pedantic |
| 20:47:19 | dysinger leaves the room. | |
| 20:47:34 | rue | Which is not all bad, mind you. But the C++ variant seems much more useful |
| 20:47:58 | MenTaLguY | ah, hm |
| 20:49:11 | rue | There is always -Werror :) |
| 20:50:22 | dbussink | evan: pushed the fix yet? |
| 20:50:28 | evan | about to |
| 20:50:32 | evan | running the tests now. |
| 20:50:34 | evan | ok, fixed. |
| 20:50:48 | enebo leaves the room. | |
| 20:53:54 | ezmobius | sup friends |
| 20:54:12 | stouset | evan: Do you want me to submit a patch for pathname3 or link to it, so you can include via submodule? Or otherwise |
| 20:55:10 | evan | dbussink: ok, pushed. |
| 20:55:16 | brixen | howdy ezmobius, how's things |
| 20:55:17 | evan | hm |
| 20:55:24 | ezmobius | good |
| 20:55:27 | evan | stouset: well, you want to use it on MRI too, right? |
| 20:55:37 | stouset | That would be nice. |
| 20:55:47 | evan | stouset: you should submit a ticket about using your gem as rubinius' default pathname |
| 20:55:57 | evan | don't submit a patch that contains all of yours |
| 20:55:59 | ezmobius | finally finished implelenting our new protocol for distributed computing/automation on top of xmpp |
| 20:56:12 | evan | we need to consider how to make this possible and not have a big duplication of code |
| 20:56:20 | stouset | nods |
| 20:56:36 | stouset | No gem yet, unfortunately. It'll be up on github as soon as they fix their gem building support. |
| 20:56:43 | evan | ok |
| 20:56:50 | stouset | Everything's in place, but they aren't building it. |
| 20:56:56 | evan | ah |
| 20:56:59 | evan | did they turn it off? |
| 20:57:27 | stouset | Dunno. First time I've tried it. Gem builds fine on my machine from the gemspec, and I followed their instructions. Others have complained about the same. |
| 20:58:09 | evan | k |
| 20:59:20 | evan | dbussink: just did another push |
| 20:59:30 | evan | dbussink: primitives are resolved and executed now. |
| 21:00:08 | evan | dbussink: compile http://pastie.org/201070 |
| 21:00:22 | evan | using 'ruby lib/compiler/mri_compiler.rb <file>' |
| 21:00:22 | dbussink | cool! |
| 21:00:36 | evan | then 'rake vm; vm ./file.rbc' |
| 21:00:49 | evan | the architecture is starting to shine more |
| 21:00:58 | evan | wiring up primitives to be executed was trivial. |
| 21:01:12 | dbussink | is everything exported? |
| 21:01:18 | evan | just make a new VMPrimitiveMethod class with an execute() method |
| 21:01:18 | dbussink | or are the annotations used? |
| 21:01:25 | evan | annotations. |
| 21:01:38 | dbussink | cause i haven't been adding them everywhere |
| 21:01:48 | evan | thats k |
| 21:01:50 | evan | ok |
| 21:01:53 | evan | we're just starting that |
| 21:02:06 | evan | check out gen/primitives_glue.gen.cpp |
| 21:02:13 | evan | to see what the annotations create |
| 21:02:26 | dbussink | ah, i see yeah |
| 21:02:45 | evan | resolve_primitive is called just once |
| 21:02:58 | evan | to return the pointer to the primitive to use |
| 21:04:53 | dbussink | hmm, when having method overloading, Ruby.primitive! should work, shouldn't it? |
| 21:05:41 | rubuildius_ppc | Ryan T Mulligan: c18ecb5f6; 2186 files, 7157 examples, 25818 expectations, 0 failures, 0 errors |
| 21:05:42 | rubuildius_ppc | Brian Ford: 5de72c0f7; 2186 files, 7157 examples, 25818 expectations, 0 failures, 0 errors |
| 21:07:02 | evan | yep |
| 21:07:13 | evan | check the glue code is generated properly |
| 21:07:40 | RyanTM | I'm getting errors with the default rake inside of the spec/frozen submodule, is that normal right now? |
| 21:08:54 | benburkert leaves the room. | |
| 21:08:58 | RyanTM | aha, I figured it out |
| 21:10:48 | dbussink | evan: found a small bug in it |
| 21:11:13 | dbussink | evan: regexp that didn't accept the * in Float* Fixnum::add |
| 21:12:04 | evan | ok |
| 21:12:19 | cezarsa enters the room. | |
| 21:13:57 | dbussink | evan: hmm, i see the method overloading i used can become problematic |
| 21:14:06 | evan | how so? |
| 21:14:29 | dbussink | because of div uses it, although it should probably not be exposed as a direct primitive |
| 21:14:38 | dbussink | uses more than 1 argument |
| 21:14:53 | evan | which function? |
| 21:14:58 | evan | i'm looking for it |
| 21:15:00 | boyscout | 1 commit by Ryan T Mulligan |
| 21:15:01 | boyscout | * Modifies INSTALL for Ubuntu; 807f8b5 |
| 21:15:41 | dbussink | evan: Bignum::divide |
| 21:16:18 | evan | yeah |
| 21:16:28 | evan | those don't work as primitives anyway |
| 21:16:37 | evan | because it can't handle the 3rd arg |
| 21:16:55 | dbussink | true, but it could be refactored in such a way that divide just uses divmod for example |
| 21:16:58 | evan | just write a version that can work as a primitive |
| 21:17:03 | evan | that calls divmod |
| 21:17:10 | evan | that returns an array of the 2 values |
| 21:17:22 | antares enters the room. | |
| 21:17:47 | evan | Array* divmod(STATE, FIXNUM b); |
| 21:17:55 | brixen | dbussink: the general division of these methods in shotgun was pretty sane I think. just need to translate to cpp |
| 21:18:04 | brixen | evan: I tried to avoid creating the array unless necessary |
| 21:18:10 | evan | sure |
| 21:18:11 | chris2 leaves the room. | |
| 21:18:18 | dbussink | is creating that array that heavy? |
| 21:18:19 | brixen | creating the array just to pluck out the value is not sensible |
| 21:18:22 | evan | this is just for the version that will be called directly as a primitive |
| 21:18:31 | brixen | dbussink: think math ops in loops |
| 21:18:39 | brixen | we shouldn't do this naively |
| 21:18:43 | dbussink | true |
| 21:18:44 | evan | if it's heavy or not doesn't matter |
| 21:18:52 | evan | because you have to return an Array for the operation |
| 21:18:58 | brixen | the point is, it's not needed |
| 21:19:06 | dbussink | that's why i've written all of them with it in mind ;) |
| 21:19:12 | evan | >> 1.divmod(2) |
| 21:19:13 | evan | => [0, 1] |
| 21:19:13 | dbussink | but i kept being annoyed by divide |
| 21:19:16 | evan | need an array |
| 21:19:19 | dbussink | yeah, but the point is div |
| 21:19:24 | brixen | divmod is a composite operator |
| 21:19:41 | dbussink | could also not compute the mod in divide, but that introduces quite some code duplication |
| 21:19:41 | evan | so write a version that just doesn't return the remandor |
| 21:19:54 | dbussink | because the algo is the same as for divmod |
| 21:19:58 | dbussink | could also go that way |
| 21:20:02 | evan | that calls the version that computes the remainder, but doesn't do anything with it |
| 21:20:08 | brixen | dbussink: why doesn't the current way work? |
| 21:20:23 | dbussink | brixen: it doesn't make defining them as primitives very easy |
| 21:20:32 | dbussink | brixen: in combination with method overloading |
| 21:20:37 | evan | wait wait. |
| 21:20:40 | evan | i'm confused |
| 21:20:44 | evan | this seems really simple. |
| 21:20:47 | evan | whats the issue? |
| 21:21:14 | dbussink | well, brixen is worried about performance if divide calls divmod and just plucks out one element from the array |
| 21:21:26 | dbussink | because i arithmetic loops that could be heavy |
| 21:21:40 | dbussink | that's the reason behind the current construct with a pointer for the modulo |
| 21:21:46 | evan | wait |
| 21:21:47 | brixen | this wasn't necessary in shotgun, why is it necessary now? |
| 21:21:49 | evan | it doesn't have to |
| 21:22:03 | evan | it doesn't have to use the version that returns an array |
| 21:22:11 | dbussink | brixen: well, shotgun had dedicated separate primitives |
| 21:22:13 | evan | just use the version that returns the value in a pointer |
| 21:22:20 | dbussink | brixen: the new vm auto generates them from the c++ code |
| 21:22:31 | dbussink | evan: yeah, that could work too |
| 21:22:35 | brixen | dbussink: yes, but every function in the new vm doesn't have to be a primitive |
| 21:22:43 | brixen | you can still use utility functions |
| 21:22:58 | dbussink | true, but i'd love to minimize it where possible |
| 21:22:59 | brixen | primitives map to operations, not to precise functions, necessarily |
| 21:23:07 | evan | not anymore. |
| 21:23:12 | evan | that thinking is gone. |
| 21:23:13 | brixen | conceptually |
| 21:23:24 | evan | perhaps |
| 21:23:33 | brixen | it's not gone,you just annotate which function |
| 21:23:39 | brixen | unless I'm totally confused |
| 21:23:43 | evan | no, thats how. |
| 21:23:47 | evan | i think dbussink is confused |
| 21:23:54 | evan | and/or making this harder than it is. |
| 21:24:22 | brixen | math ops need to be as fast as possible, period. |
| 21:24:29 | brixen | next, make it as clean as possible |
| 21:24:35 | dbussink | not really confused, but i guess this is a case where a utility function would be most appropriate |
| 21:24:36 | brixen | don't get the primitive mapping confused with that |
| 21:24:52 | evan | dbussink: what would this utility function be called and do? |
| 21:25:13 | dbussink | evan: the current divide would not be a primitive |
| 21:25:17 | evan | dbussink: i never assumed that the functions we annotate would always be ones we also use internally |
| 21:25:21 | dbussink | and an additional function would be |
| 21:25:24 | evan | course! |
| 21:25:26 | evan | of course! |
| 21:25:27 | evan | exactly. |
| 21:25:54 | brixen | dbussink: there is also a full set of benches for the math ops. we should expect to see perf on the order of current shotgun |
| 21:25:55 | evan | I always assumed we'd have C++ functions that are only used as primitives |
| 21:26:02 | brixen | or else our impl is untenable |
| 21:26:27 | dbussink | brixen: well, i've implemented the same or more simple algorithms |
| 21:26:35 | dbussink | brixen: so that should be the case |
| 21:26:53 | evan | dbussink: there is absolutely nothing wrote with writing |
| 21:26:54 | brixen | dbussink: yeah, just saying, we should verify it |
| 21:27:08 | evan | INTEGER prim_divide(STATE, FIXNUM b); |
| 21:27:16 | dbussink | brixen: i couldn't agree more with that |
| 21:27:22 | evan | thats only reason for e |