Show enters and exits. Hide enters and exits.
| 00:08:52 | dewd leaves the room. | |
| 00:09:40 | imajes leaves the room. | |
| 00:11:48 | srbaker enters the room. | |
| 00:19:13 | anteaya leaves the room. | |
| 00:21:01 | riffraff leaves the room. | |
| 00:24:26 | srbaker leaves the room. | |
| 00:26:55 | Arjen_ leaves the room. | |
| 00:29:17 | dewd enters the room. | |
| 00:41:27 | dctanner enters the room. | |
| 00:42:11 | trythil_ enters the room. | |
| 00:42:11 | trythil leaves the room. | |
| 00:43:07 | dctanner_ enters the room. | |
| 00:43:07 | dctanner leaves the room. | |
| 00:45:47 | ttmrichter enters the room. | |
| 00:47:07 | benny leaves the room. | |
| 00:50:14 | lstoll leaves the room. | |
| 00:56:56 | twbray enters the room. | |
| 01:01:44 | trythil_ leaves the room. | |
| 01:06:44 | lvmc enters the room. | |
| 01:06:52 | lvmc | evan, how are you? |
| 01:06:58 | evan | i'm good. |
| 01:08:29 | ujwalic leaves the room. | |
| 01:09:49 | wycats leaves the room. | |
| 01:11:19 | lvmc | evan, any news about mod_rubinius design? |
| 01:12:49 | evan | rue is currently working on it |
| 01:12:54 | evan | you'll have to talk to him |
| 01:13:18 | lvmc | rue, how are you? |
| 01:14:06 | twbray leaves the room. | |
| 01:18:17 | agile enters the room. | |
| 01:25:05 | hornbeck leaves the room. | |
| 01:29:34 | trythil enters the room. | |
| 01:42:28 | lstoll enters the room. | |
| 01:47:55 | twbray enters the room. | |
| 01:49:23 | agardiner enters the room. | |
| 01:50:47 | lvmc leaves the room. | |
| 01:50:54 | dctanner_ leaves the room. | |
| 01:51:58 | anteaya enters the room. | |
| 02:00:44 | srbaker enters the room. | |
| 02:01:10 | ezmobius leaves the room. | |
| 02:01:33 | ezmobius enters the room. | |
| 02:03:53 | twbray leaves the room. | |
| 02:04:56 | yugui enters the room. | |
| 02:05:26 | xhanjian_ enters the room. | |
| 02:08:35 | jtoy enters the room. | |
| 02:10:01 | aotearoa enters the room. | |
| 02:18:07 | lopex leaves the room. | |
| 02:18:35 | xhanjian leaves the room. | |
| 02:20:13 | MenTaLguY enters the room. | |
| 02:20:24 | MenTaLguY | hello! |
| 02:20:47 | ezmobius | hey there |
| 02:29:35 | VVSiz_ enters the room. | |
| 02:31:21 | zimbatm leaves the room. | |
| 02:47:45 | VVSiz leaves the room. | |
| 03:07:18 | ezmobius leaves the room. | |
| 03:07:25 | radarek leaves the room. | |
| 03:07:39 | ezmobius enters the room. | |
| 03:13:56 | obvio171 enters the room. | |
| 03:14:36 | agardiner leaves the room. | |
| 03:16:29 | ixx leaves the room. | |
| 03:16:33 | ixx enters the room. | |
| 03:22:34 | srbaker leaves the room. | |
| 03:29:44 | twbray enters the room. | |
| 03:30:18 | trythil leaves the room. | |
| 03:30:40 | obvio leaves the room. | |
| 03:31:21 | twbray leaves the room. | |
| 03:31:47 | lstoll_ enters the room. | |
| 03:32:55 | lstoll leaves the room. | |
| 03:33:00 | dlee enters the room. | |
| 03:36:46 | ruivaldo enters the room. | |
| 03:36:52 | srbaker enters the room. | |
| 03:38:52 | twbray enters the room. | |
| 03:41:37 | jzj enters the room. | |
| 03:43:26 | jzj | can i find the defination of ruby ast nodes? |
| 03:45:31 | atmos leaves the room. | |
| 03:45:34 | atmos enters the room. | |
| 03:48:05 | hornbeck enters the room. | |
| 03:51:01 | twbray leaves the room. | |
| 03:52:41 | ruivaldo leaves the room. | |
| 03:54:41 | wmoxam enters the room. | |
| 03:56:17 | trythil enters the room. | |
| 04:06:48 | imajes enters the room. | |
| 04:10:08 | VVSiz_ leaves the room. | |
| 04:10:33 | VVSiz_ enters the room. | |
| 04:11:23 | yugui leaves the room. | |
| 04:14:36 | obvio171_ enters the room. | |
| 04:15:30 | ezmobius leaves the room. | |
| 04:15:53 | ezmobius enters the room. | |
| 04:17:12 | rue | jzj: You mean a listing or? |
| 04:24:30 | mernen leaves the room. | |
| 04:28:22 | srbaker leaves the room. | |
| 04:28:41 | jzj | rue: im not understandoing some nodes' meaning |
| 04:28:47 | jzj | just like Negate |
| 04:29:08 | jzj | Snippet |
| 04:32:32 | obvio171 leaves the room. | |
| 04:35:13 | dewd leaves the room. | |
| 04:35:30 | enebo enters the room. | |
| 04:47:00 | blakewatters enters the room. | |
| 04:51:22 | nicksieger enters the room. | |
| 04:52:04 | twbray enters the room. | |
| 04:57:56 | mernen enters the room. | |
| 05:08:16 | rue | evan, ezmobius: I am now at the point where I do not foresee trashing the entire repo every Tuesday so I will start pushing to Github once I finish this input rewrite and the verification code. Looks like you both have accounts there so I will add you once it is there |
| 05:08:39 | ezmobius | rue: killer, looking forward to seeing it |
| 05:09:09 | rue | Then I will move the rest of the stuff in as I go through it |
| 05:09:59 | rue | Mercurial has been pretty nice, definitely dig the "porcelain" layer. But git has so many useful features that in the end it is just not a contender |
| 05:10:45 | ezmobius | i havent looked much at hg yet |
| 05:11:06 | rue | jzj: Sorry, I wandered out for a bit there. I think the ParseTree tests are actually the best place to look for some of the node definitions |
| 05:11:34 | rue | jzj: I started to document the nodes in the compiler at some point but had promptly forgotten about that until now |
| 05:12:05 | jzj | thanks rue! |
| 05:12:06 | rue | ezmobius: Consider it time saved :) With git around, there really is no point |
| 05:14:36 | rue | Also, LeechBlock is the best FF extension ever. |
| 05:17:26 | ezmobius leaves the room. | |
| 05:23:21 | atmos leaves the room. | |
| 05:23:31 | be9 enters the room. | |
| 05:28:16 | mernen leaves the room. | |
| 05:44:31 | enebo leaves the room. | |
| 05:54:35 | enebo enters the room. | |
| 06:04:28 | trythil leaves the room. | |
| 06:04:51 | hornbeck leaves the room. | |
| 06:34:23 | wycats enters the room. | |
| 06:38:16 | crafterm enters the room. | |
| 06:43:07 | Yurik enters the room. | |
| 06:43:37 | imajes leaves the room. | |
| 06:44:49 | imajes enters the room. | |
| 06:50:21 | MenTaLguY leaves the room. | |
| 06:50:50 | Yurik leaves the room. | |
| 06:50:54 | Yurik enters the room. | |
| 06:52:40 | Yurik leaves the room. | |
| 06:52:44 | Skip enters the room. | |
| 06:52:45 | Yurik enters the room. | |
| 06:54:06 | jzj | 1 if /x/ fails |
| 06:54:10 | jzj | in rubinius |
| 06:54:19 | jzj | lacking the node for match |
| 06:54:41 | rue | Hm, sec |
| 06:55:20 | rue | It should be $_, right? |
| 06:55:41 | evan | fails how? |
| 06:56:24 | Yurik leaves the room. | |
| 06:56:27 | jzj | Compiler::Error: Unable to resolve match from Compiler#convert_sexp at lib/compiler/compiler.rb:209 |
| 06:56:37 | Yurik enters the room. | |
| 06:56:44 | evan | hm. |
| 06:56:45 | jzj | no defination for Match there |
| 06:57:26 | evan | huh. |
| 06:57:26 | evan | yep. |
| 06:57:38 | evan | the compiler doesn't handle the match node |
| 06:57:42 | evan | i don't even know what it's supposed to do |
| 06:57:58 | rue | It matches against $_ |
| 06:58:10 | rue | Well, should :) |
| 06:58:27 | evan | lo |
| 06:58:28 | evan | so |
| 06:58:31 | evan | 1 if /x/ |
| 06:58:32 | evan | is the same al |
| 06:58:38 | evan | 1 if /x/.match($_) |
| 06:58:43 | evan | s/al/as/ |
| 06:58:56 | wmoxam leaves the room. | |
| 06:58:59 | rue | Yep |
| 06:59:13 | rue | I can write it in unless you are halfway there already :P |
| 06:59:31 | evan | please go for it. |
| 06:59:56 | rue | jzj: Also, completely forgot to mention it before and you may already know but `shotgun/rubinius describe <file.rb>` will give you the sexp |
| 07:02:57 | dctanner enters the room. | |
| 07:05:49 | jzj | rue: i know this :) |
| 07:10:39 | aotearoa leaves the room. | |
| 07:19:31 | dctanner leaves the room. | |
| 07:21:20 | ezmobius enters the room. | |
| 07:21:22 | EugZol leaves the room. | |
| 07:21:44 | gnufied enters the room. | |
| 07:25:59 | blakewatters leaves the room. | |
| 07:28:03 | benny enters the room. | |
| 07:29:28 | yugui enters the room. | |
| 07:32:40 | rue | evan: The compiler asm format tests seem a bit frail.. have you given any thought to them? |
| 07:32:56 | evan | which? |
| 07:33:01 | evan | spec/compiler? |
| 07:35:46 | enebo leaves the room. | |
| 07:35:51 | enebo_ enters the room. | |
| 07:36:26 | rue | evan: Yeah |
| 07:36:32 | evan | frail how? |
| 07:36:40 | evan | they're precise. |
| 07:37:09 | imajes leaves the room. | |
| 07:39:15 | rue | Yeah.. I dunno, it is a vague feeling. I might just be happier with verifying that sexp_a produces a certain set of nodes and then separately that node_a produces a certain bytecode stream |
| 07:39:33 | rue | Not sure, though, so I wondered if you had had any ideas in the area |
| 07:40:05 | evan | no |
| 07:40:11 | evan | sexp verification is bad. |
| 07:40:31 | evan | a had tests long ago that did that |
| 07:40:34 | evan | they were super brittle |
| 07:40:52 | evan | i like the format of the current ones |
| 07:40:56 | evan | being decoupled from the sexp |
| 07:41:04 | evan | mildly. |
| 07:41:06 | rue | I am not sure what you mean |
| 07:41:15 | rue | Or do you mean s/sexp/AST/ |
| 07:41:23 | evan | not having the tests verify sexp form |
| 07:41:27 | evan | actually driving the compiler |
| 07:41:32 | evan | and verifying what the compiler did |
| 07:41:42 | evan | they are compiler tests afterall |
| 07:41:43 | rue | Well, there is no need to do that.. since we already have the sexp |
| 07:42:13 | evan | you have to drive the compiler |
| 07:42:17 | evan | and verify what it does in some way |
| 07:42:24 | evan | the way we do currently I think works well. |
| 07:42:28 | rue | nodes.rb does manipulation also, it is not just an object rep of the sexp |
| 07:42:32 | evan | got a better way? |
| 07:42:43 | evan | rue: course. so? |
| 07:43:05 | rue | So it would not be sexp verification to ensure that some sexp produces some AST branch |
| 07:43:43 | evan | who said anything about sexp verification? |
| 07:43:55 | rue | You, about 1:32 ago :P |
| 07:44:03 | evan | i said we didn't need it. |
| 07:44:12 | rue | Yeees, but I never suggested we did |
| 07:44:18 | evan | i'm totally confused. |
| 07:44:18 | gnufied leaves the room. | |
| 07:44:30 | evan | i'll just assume you like how they are currently then. |
| 07:44:51 | rue | OK, I said that I thought it might be a possibility that we could spec the sexp -> AST behaviour, and then the AST->bytecode behaviour |
| 07:45:04 | rue | And you said "no, sexp verification is bad" |
| 07:45:19 | evan | rue: ok, but why? |
| 07:45:22 | evan | what would that buy us? |
| 07:45:41 | evan | from a unit test standpoint, sure. |
| 07:46:03 | evan | but if you consider the Node tree to be an internal datastructure of the compiler (which it is), then it's 'private' data |
| 07:46:12 | rue | Slight more tolerance and composability to the specs |
| 07:46:37 | evan | tolerance to what? |
| 07:46:45 | rue | Format changes |
| 07:46:46 | evan | if you want to, go ahead and implement it. |
| 07:46:55 | evan | i just don't see the need currently |
| 07:47:02 | evan | but perhaps i'm overlooking something |
| 07:47:07 | evan | formatting of what? |
| 07:47:16 | rue | 'S a minor point, I just happened to be in there right now |
| 07:47:43 | rue | For example, it could be beneficial to be able to say that :match produces the same code as :match2 and leave it at that. |
| 07:48:07 | evan | i don't think it does. |
| 07:48:10 | evan | but even so |
| 07:48:16 | evan | why not use a spec shared behavior |
| 07:48:16 | rue | On the other hand, it is a bunch of work to rewrite or augment. Which is why I was asking whether you had thought about it since chances are that if you had not, it is not a priority |
| 07:48:33 | evan | yeah, i guess i don't see it as a priority |
| 07:48:49 | evan | the way their tested now, the Node tree is tested as a byproduct of driving the compiler |
| 07:48:58 | evan | but i guess i could see your point |
| 07:49:11 | evan | split it up into testing that a certain sexp generates a certain Node tree |
| 07:49:21 | evan | then test that a certain Node tree gives the compiler a certain way |
| 07:49:38 | evan | i think that by and large, there would be little duplication like with match and match2 |
| 07:49:51 | rue | Yeh, there is relatively little |
| 07:50:37 | rue | Alright, I will stick it in the long-term file. I do not see any /problems/ with the current ones per se, they are just very precise |
| 07:51:09 | rue | If we shuffle it to a bit more composeable, it would probably make it easier to add a few to make sure no corner cases are being missed |
| 07:57:58 | rue | evan: Oh, hm. push_const handles the lookup, right? |
| 08:00:04 | rue | Ah, current context only. Some of these use find_const, some push_const |
| 08:00:17 | yugui leaves the room. | |
| 08:01:56 | evan | find_const takes an object to look for the constant in |
| 08:02:01 | evan | A <= push_const |
| 08:02:13 | evan | B::A <= find_const |
| 08:04:41 | twbray leaves the room. | |
| 08:05:01 | rue | Hm, reason I ask is that regexp is compiling to push_const :Regexp which would then be bad if we are in MyModule::Regexp ? |
| 08:07:42 | evan | yeah |
| 08:07:44 | evan | thats probably a bug |
| 08:07:47 | evan | it should be |
| 08:07:48 | evan | push_cpath_top |
| 08:07:51 | evan | find_const :Regexp |
| 08:10:58 | enebo_ leaves the room. | |
| 08:13:40 | dlee leaves the room. | |
| 08:14:25 | Maledictus enters the room. | |
| 08:16:40 | yaroslav enters the room. | |
| 08:19:53 | ezmobius leaves the room. | |
| 08:21:50 | thehcdreamer enters the room. | |
| 08:23:57 | rue | OK |
| 08:23:59 | Arjen_ enters the room. | |
| 08:25:38 | rue | What about this nil test? It looks like we omit the regexp construction if the variable is nil (although it is also used for literals), but it does not omit the nil =~ whatever check.. is there something preventing just dropping a nil on the stack and calling it good? |
| 08:26:19 | evan | thats because a regexp is constructed the first time it's seen |
| 08:26:22 | evan | but not again |
| 08:26:28 | evan | the first time through, the literal is nil. |
| 08:26:39 | evan | the regexp is constructed and saved back into literals |
| 08:28:09 | rue | Ah! I see, misread the intention |
| 08:28:57 | evan | perhaps that should be eliminated |
| 08:29:14 | evan | moved to some once-per-script initialization method |
| 08:29:17 | evan | thats run up front |
| 08:29:24 | evan | but thats for another day |
| 08:30:07 | rue | Or, wait.. did I? |
| 08:31:26 | rue | http://pastie.org/191634 |
| 08:33:24 | rue | I realise that is not the best example but /x/ =~ "blah" uses the same order |
| 08:33:56 | evan | something is not correct |
| 08:33:57 | evan | the |
| 08:33:59 | evan | push_literal nil |
| 08:34:02 | evan | is invalid bytecode. |
| 08:34:12 | sudoer enters the room. | |
| 08:34:25 | evan | decode might be confused. |
| 08:34:32 | crafterm leaves the room. | |
| 08:34:33 | evan | oh wait. |
| 08:34:36 | evan | no, thats correct |
| 08:34:43 | evan | decode is confused. |
| 08:34:53 | evan | i'm changing that in the decode output |
| 08:35:06 | evan | thats telling you that it's going to push a literal in a slot, which currently holds nil |
| 08:35:19 | evan | the output should tell you which number literal, not just the current value in that literal |
| 08:35:24 | evan | thats why it's confusing. |
| 08:36:02 | jzj leaves the room. | |
| 08:36:45 | evan | well |
| 08:36:47 | evan | i'm headed to bed. |
| 08:36:49 | evan | ite. |
| 08:36:58 | rue | Nites |
| 08:37:10 | rue | That clarifies that bit too, thankew |
| 08:37:33 | evan | np |
| 08:37:34 | evan | nite. |
| 08:40:30 | TheVoice enters the room. | |
| 08:41:20 | mkrauskopf enters the room. | |
| 08:41:43 | jtoy leaves the room. | |
| 08:42:23 | mkrauskopf leaves the room. | |
| 08:42:38 | mkrauskopf enters the room. | |
| 08:43:15 | rubuildius_ppc leaves the room. | |
| 08:43:19 | rubuildius_ppc enters the room. | |
| 08:53:51 | wycats leaves the room. | |
| 08:57:16 | mutle enters the room. | |
| 08:59:04 | brainopia enters the room. | |
| 09:00:52 | rubuildius_ppc | Marnen Laibow-Koser: 206cea31c; 2097 files, 6821 examples, 24581 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/191640 |
| 09:27:44 | lstoll_ leaves the room. | |
| 09:33:16 | qwert666 enters the room. | |
| 09:51:07 | yaroslav leaves the room. | |
| 09:57:45 | chris2 enters the room. | |
| 09:59:02 | mutle leaves the room. | |
| 09:59:16 | mutle enters the room. | |
| 10:06:33 | GMFlash leaves the room. | |
| 10:08:51 | yaroslav enters the room. | |
| 10:21:25 | benny leaves the room. | |
| 10:21:36 | benny enters the room. | |
| 10:30:01 | TheVoice leaves the room. | |
| 10:32:35 | lstoll enters the room. | |
| 10:33:34 | brainopia enters the room. | |
| 10:39:07 | Erlang00t enters the room. | |
| 10:39:48 | boyscout | 2 commits by Eero Saynatkari |
| 10:39:49 | boyscout | * Compiler support for the :match node, implicit $_ match in conditionals.; 8b9f71b |
| 10:39:50 | boyscout | * Spec for :match node, implicit Regexp matches against $_.; 398d5de |
| 10:45:24 | flori enters the room. | |
| 10:47:45 | rubuildius_amd64 | Eero Saynatkari: 8b9f71ba3; 2097 files, 6821 examples, 24558 expectations, 0 failures, 0 errors; http://rafb.net/p/qujGch28.html |
| 10:53:12 | w1rele55 enters the room. | |
| 11:01:59 | rue | Geez, will someone give Guy Decoux commit rights to Ruby already :P |
| 11:02:43 | mkrauskopf leaves the room. | |
| 11:05:09 | rubuildius_ppc | Eero Saynatkari: 8b9f71ba3; 2097 files, 6823 examples, 24584 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/191662 |
| 11:22:56 | webmat enters the room. | |
| 11:23:07 | webmat leaves the room. | |
| 11:24:05 | webmat enters the room. | |
| 11:25:37 | boyscout | 2 commits by Eero Saynatkari |
| 11:25:38 | boyscout | * Method call parsing spec from Jim Kingdon with minor addition.; 503aae7 |
| 11:25:39 | boyscout | * Load pp in mspec if needed.; 37d4825 |
| 11:27:59 | sudoer leaves the room. | |
| 11:31:49 | benny leaves the room. | |
| 11:35:22 | Erlang00t leaves the room. | |
| 11:37:44 | rubuildius_amd64 | Eero Saynatkari: 503aae7cd; 2097 files, 6822 examples, 24565 expectations, 0 failures, 0 errors; http://rafb.net/p/qa7q4314.html |
| 11:40:44 | rubuildius_ppc | Eero Saynatkari: 503aae7cd; 2097 files, 6824 examples, 24591 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/191670 |
| 11:44:54 | Skip leaves the room. | |
| 11:52:48 | Skip enters the room. | |
| 12:02:28 | benny enters the room. | |
| 12:27:49 | flori leaves the room. | |
| 12:28:34 | flori enters the room. | |
| 12:28:37 | radarek enters the room. | |
| 12:40:27 | chris2 leaves the room. | |
| 12:41:08 | radarek__ enters the room. | |
| 12:43:03 | Fishy5 enters the room. | |
| 12:43:31 | webmat enters the room. | |
| 12:44:11 | radarek_ enters the room. | |
| 12:44:27 | ctennis leaves the room. | |
| 12:54:02 | benny leaves the room. | |
| 12:54:19 | Fishy5 leaves the room. | |
| 12:54:41 | radarek leaves the room. | |
| 12:57:45 | radarek__ leaves the room. | |
| 13:02:38 | wdperson enters the room. | |
| 13:14:37 | hornbeck enters the room. | |
| 13:18:44 | vertiginous enters the room. | |
| 13:21:23 | rue | plays a cheery jaunt |
| 13:21:37 | dbussink | lalalalala |
| 13:22:01 | dbussink | just read headius is going be at the ruby on rails event in amsterdam here on june 10th |
| 13:22:47 | Arjen | What ruby on rails event? |
| 13:24:23 | dbussink | rubyenrails 2008 |
| 13:24:32 | dbussink | http://2008.rubyenrails.nl/ |
| 13:24:52 | _mutle enters the room. | |
| 13:26:52 | mutle leaves the room. | |
| 13:26:52 | twbray enters the room. | |
| 13:27:22 | radarek_ leaves the room. | |
| 13:28:10 | Arjen | dbussink, yikes, I'm in that picture! |
| 13:28:22 | dbussink | hehe, where are you? |
| 13:28:42 | Arjen | Behind Dr. Nic. Blue shirt, red ribbon. |
| 13:29:56 | Arjen | Most right, i'd say. |
| 13:30:25 | radarek enters the room. | |
| 13:30:47 | dbussink | first one left of him? |
| 13:31:54 | Arjen | No, 2nd. Without the glasses. |
| 13:32:50 | dbussink | the only who did shave in this picture probably :p |
| 13:33:37 | twbray leaves the room. | |
| 13:35:01 | boyscout | 1 commit by Adam Gardiner |
| 13:35:02 | boyscout | * Add column headers to debugger output; e7d0e8e |
| 13:35:14 | Arjen | Hehe. |
| 13:35:36 | Arjen | dbussink, impressive line-up though. Maybe I'll go. |
| 13:35:56 | dbussink | i'll probably go, just hanging around a bit |
| 13:36:18 | anteaya leaves the room. | |
| 13:36:35 | Arjen | dbussink, yeah me too. |
| 13:37:06 | Arjen | Good reminder though, I haven't received my last year's prize yet... |
| 13:38:04 | radarek leaves the room. | |
| 13:40:43 | mkrauskopf enters the room. | |
| 13:41:12 | rue | Mhehee.. you Dutch think your language is indecipherable, but my cunning use of German, English and Swedish has cracked the code! |
| 13:43:00 | rubuildius_amd64 | Adam Gardiner: e7d0e8e10; 2097 files, 6822 examples, 24565 expectations, 0 failures, 0 errors; http://rafb.net/p/I59xJ614.html |
| 13:43:30 | obvio leaves the room. | |
| 13:43:47 | vertiginous leaves the room. | |
| 13:49:22 | rubuildius_ppc | Adam Gardiner: e7d0e8e10; 2097 files, 6824 examples, 24591 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/191695 |
| 14:01:44 | _mutle enters the room. | |
| 14:02:38 | mutle leaves the room. | |
| 14:06:46 | radarek enters the room. | |
| 14:08:28 | AndrewO enters the room. | |
| 14:09:11 | binary42 leaves the room. | |
| 14:14:04 | twbray enters the room. | |
| 14:21:04 | twbray_ enters the room. | |
| 14:22:57 | twbray_ leaves the room. | |
| 14:26:10 | dbussink | rue: hehe, that helps :) |
| 14:26:28 | binary42 enters the room. | |
| 14:26:47 | dbussink | rue: i can read scandinavian languages reasonably, only the pronunciation sound like complete jibberisch to me |
| 14:27:56 | rue | Yep, the combination of the three is pretty effective. I imagine Danish would be the best |
| 14:30:10 | dbussink | difference between swedish / danish is not that big |
| 14:32:11 | twbray_ enters the room. | |
| 14:36:00 | marnen enters the room. | |
| 14:36:12 | boyscout | 2 commits by Marnen Laibow-Koser |
| 14:36:13 | boyscout | * Define BigDecimal#ver.; 098decd |
| 14:36:14 | boyscout | * BigDecimal#new: Make space between '-' and 'Infinity' unparsable, as per spec.; f6f1fe6 |
| 14:36:31 | GMFlash enters the room. | |
| 14:40:51 | wmoxam enters the room. | |
| 14:40:57 | twbray_ leaves the room. | |
| 14:41:35 | twbray leaves the room. | |
| 14:46:04 | Yurik leaves the room. | |
| 14:47:46 | rubuildius_amd64 | Marnen Laibow-Koser: 098decdf5; 2097 files, 6824 examples, 24572 expectations, 0 failures, 0 errors; http://rafb.net/p/OV76jg45.html |
| 14:51:02 | marnen_ enters the room. | |
| 14:51:34 | rubuildius_ppc | Marnen Laibow-Koser: 098decdf5; 2097 files, 6826 examples, 24598 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/191716 |
| 14:53:06 | Spakman leaves the room. | |
| 14:53:33 | fbuilesv enters the room. | |
| 14:56:15 | boyscout | 1 commit by Adam Gardiner |
| 14:56:16 | boyscout | * Add support for output types to Debugger::Output; f08736a |
| 14:56:30 | flori leaves the room. | |
| 14:56:30 | qwert666 leaves the room. | |
| 14:57:18 | Spakman enters the room. | |
| 14:58:20 | flori enters the room. | |
| 14:58:23 | marnen leaves the room. | |
| 15:01:04 | wmoxam leaves the room. | |
| 15:05:49 | imajes enters the room. | |
| 15:07:48 | rubuildius_amd64 | Adam Gardiner: f08736a5d; 2097 files, 6824 examples, 24572 expectations, 0 failures, 0 errors; http://rafb.net/p/igXdiJ33.html |
| 15:11:24 | rubuildius_ppc | Adam Gardiner: f08736a5d; 2097 files, 6826 examples, 24598 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/191725 |
| 15:14:55 | qwert666 enters the room. | |
| 15:15:03 | rphillips enters the room. | |
| 15:20:22 | qwert666 leaves the room. | |
| 15:23:48 | wmoxam enters the room. | |
| 15:27:35 | jtoy enters the room. | |
| 15:40:11 | Skip leaves the room. | |
| 15:44:02 | agile leaves the room. | |
| 15:52:31 | dctanner enters the room. | |
| 15:56:19 | dctanner leaves the room. | |
| 15:57:47 | dlee enters the room. | |
| 15:59:36 | therealadam enters the room. | |
| 16:00:19 | Skip enters the room. | |
| 16:03:37 | ttmrichter leaves the room. | |
| 16:08:29 | benstiglitz enters the room. | |
| 16:08:39 | enebo enters the room. | |
| 16:09:10 | dmpk2k leaves the room. | |
| 16:30:39 | yaroslav leaves the room. | |
| 16:30:46 | dctanner enters the room. | |
| 16:30:57 | marnen_ leaves the room. | |
| 16:31:50 | marnen_ enters the room. | |
| 16:32:55 | srbaker enters the room. | |
| 16:35:53 | srbaker leaves the room. | |
| 16:38:31 | fearoffish leaves the room. | |
| 16:38:52 | fearoffish enters the room. | |
| 16:40:47 | fearoffish leaves the room. | |
| 16:40:53 | wdperson leaves the room. | |
| 16:41:06 | fearoffish enters the room. | |
| 16:42:32 | wdperson enters the room. | |
| 16:42:57 | lstoll leaves the room. | |
| 16:43:37 | lstoll enters the room. | |
| 16:48:35 | marnen | d'oh...I learned some very interesting things from writing this BigDecimal library...for example, did you know that 31 / 3 = 103.3333? :D |
| 16:48:50 | rue | Well, irrationally |
| 16:50:12 | sudoer enters the room. | |
| 16:52:41 | marnen_ leaves the room. | |
| 16:53:33 | agile enters the room. | |
| 16:54:20 | boyscout | 1 commit by Federico Builes |
| 16:54:21 | boyscout | * One more case for YAML.load specs; 7db8c2b |
| 16:59:39 | jlindley enters the room. | |
| 17:02:20 | atmos enters the room. | |
| 17:02:49 | rubuildius_amd64 | Federico Builes: 7db8c2b56; 2097 files, 6825 examples, 24574 expectations, 0 failures, 0 errors; http://rafb.net/p/jrtQxS90.html |
| 17:03:12 | atmos leaves the room. | |
| 17:03:18 | atmos enters the room. | |
| 17:03:40 | atmos leaves the room. | |
| 17:03:48 | atmos enters the room. | |
| 17:05:36 | sudoer leaves the room. | |
| 17:05:41 | TheProkrammer | ... |
| 17:05:43 | TheProkrammer | http://github.com/why/unholy/tree/master |
| 17:06:39 | dbussink | is it me, or is it very weird that i can't do BigDecimal(31) |
| 17:06:57 | dbussink | doesn't seem to fit with the principle of least surprise to me |
| 17:08:25 | jtoy leaves the room. | |
| 17:09:55 | rubuildius_ppc | Federico Builes: 7db8c2b56; 2097 files, 6827 examples, 24600 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/191781 |
| 17:10:04 | Arjen_ leaves the room. | |
| 17:11:57 | thehcdreamer_ enters the room. | |
| 17:13:00 | srbaker enters the room. | |
| 17:14:45 | lstoll leaves the room. | |
| 17:16:43 | Defiler | Yeah, I would expect Float#to_bigdecimal to exist, as well |
| 17:16:56 | Defiler | I guess it is because Decimal isn't a core class like Bignum |
| 17:17:09 | rue | Hm, weird. |
| 17:17:34 | rue | TheProkrammer: I would have been happy if he had written a parser |
| 17:17:38 | srbaker leaves the room. | |
| 17:18:34 | radarek_ enters the room. | |
| 17:19:19 | Yurik enters the room. | |
| 17:19:56 | thehcdreamer leaves the room. | |
| 17:21:14 | dbussink | Defiler: something we should extend after we've established world domination ;) |
| 17:24:20 | lopex enters the room. | |
| 17:25:15 | nicksieger leaves the room. | |
| 17:25:17 | mutle leaves the room. | |
| 17:28:02 | benny enters the room. | |
| 17:30:38 | flori leaves the room. | |
| 17:31:10 | radarek leaves the room. | |
| 17:31:21 | atmos leaves the room. | |
| 17:31:21 | therealadam leaves the room. | |
| 17:31:21 | w1rele55 leaves the room. | |
| 17:31:21 | rubuildius_amd64 leaves the room. | |
| 17:32:32 | flori enters the room. | |
| 17:32:34 | atmos enters the room. | |
| 17:32:34 | therealadam enters the room. | |
| 17:32:34 | w1rele55 enters the room. | |
| 17:32:34 | rubuildius_amd64 enters the room. | |
| 17:33:22 | enebo leaves the room. | |
| 17:36:03 | evan | morning. |
| 17:36:03 | hoopy_ enters the room. | |
| 17:36:43 | dbussink | evening |
| 17:38:43 | thehcdreamer_ leaves the room. | |
| 17:39:36 | rue | Afternoon |
| 17:43:42 | dctanner leaves the room. | |
| 17:51:22 | hoopy leaves the room. | |
| 17:52:01 | joachimm leaves the room. | |
| 17:55:17 | RyanTM enters the room. | |
| 17:58:22 | wycats enters the room. | |
| 18:02:01 | radarek_ leaves the room. | |
| 18:02:42 | radarek enters the room. | |
| 18:04:35 | trythil enters the room. | |
| 18:06:38 | boyscout | 1 commit by Federico Builes |
| 18:06:39 | boyscout | * Adding more specs for REXML::Element; 2f3a4cc |
| 18:09:55 | boyscout | 1 commit by Marnen Laibow-Koser |
| 18:09:56 | boyscout | * Fix some bugs in BigDecimal#/. More may yet lurk.; d932230 |
| 18:10:13 | marnen enters the room. | |
| 18:13:34 | zimbatm enters the room. | |
| 18:14:20 | kamal_fariz | i had a brief chat with monty from gemstone about maglev |
| 18:14:22 | TheVoice enters the room. | |
| 18:14:25 | kamal_fariz | at barcamp portland |
| 18:15:02 | evan | oh? when was that? |
| 18:15:15 | kamal_fariz | this past weekend |
| 18:15:57 | kamal_fariz | he contributed the info that they only had to add 6 additional bytecodes to their vm |
| 18:16:02 | kamal_fariz | to get ruby running |
| 18:17:18 | lstoll enters the room. | |
| 18:17:28 | evan | i'd suffix that statement with "to get SOME ruby running" |
| 18:17:55 | rubuildius_amd64 | Marnen Laibow-Koser: d9322306e; 2103 files, 6845 examples, 24662 expectations, 0 failures, 0 errors; http://rafb.net/p/w5gYQU85.html |
| 18:18:06 | kamal_fariz | probably true |
| 18:18:17 | kamal_fariz | they haven't got mspec running yet |
| 18:18:28 | kamal_fariz | but webrick is |
| 18:20:10 | evan | interesting. |
| 18:20:17 | evan | mspec is less complicated than webrick. |
| 18:20:33 | Defiler | webrick is really friendly when you don't have perfect eval yet, though |
| 18:20:39 | evan | true |
| 18:20:43 | kamal_fariz | they are targeting to have webrick running for railsconf |
| 18:20:50 | kamal_fariz | but not rails itself |
| 18:20:54 | Defiler | whereas mspec relies on precise instance_eval |
| 18:21:04 | evan | i didn't think it did anymore |
| 18:21:11 | evan | i thought we were just using block.call |
| 18:21:21 | Defiler | We had to go back to it due to the constant behavior |
| 18:21:26 | Defiler | as I recall |
| 18:21:50 | Defiler | I haven't looked recently, though |
| 18:22:15 | evan | weird. |
| 18:22:21 | evan | when I run the compiler specs under MRI |
| 18:22:25 | macournoyer enters the room. | |
| 18:22:28 | evan | i get a bunch of extra output |
| 18:22:29 | evan | it's odd. |
| 18:22:40 | evan | i wonder if I just did that. |
| 18:24:28 | anteaya enters the room. | |
| 18:25:30 | evan | oop, it was me. |
| 18:25:31 | evan | :) |
| 18:26:47 | Defiler | I like the idea of returning to a state where we can bootstrap |
| 18:26:50 | Defiler | (easily) |
| 18:27:05 | Defiler | I think it frees us up to make more drastic changes if we want |
| 18:27:20 | evan | thats my thinking too |
| 18:27:31 | evan | we've had too many bootstrap problems |
| 18:27:41 | evan | related to bootstraping using a broken rubinius |
| 18:27:46 | evan | which should clear those up |
| 18:27:50 | brixen | Defiler: we're not using instance_eval in mspec (yet) |
| 18:28:00 | evan | but since we have to run eval and such, we're not going to neglect the compiler running inside rubinius either |
| 18:28:08 | Defiler | Yeah. Throwing away MRI compatibility doesn't gain us anything but 'street cred' |
| 18:28:15 | evan | which was the original reason I abandoned MRI bootstrapping |
| 18:28:28 | evan | well, we'll be able to bootstrap on any ruby now. |
| 18:28:28 | Defiler | Yeah, 99% of the time we will be self-hosting |
| 18:28:39 | rubuildius_ppc | Marnen Laibow-Koser: d9322306e; 2103 files, 6847 examples, 24688 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/191825 |
| 18:28:40 | rubuildius_ppc | Federico Builes: 2f3a4cc14; 2103 files, 6846 examples, 24623 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/191824 |
| 18:30:37 | imajes_ enters the room. | |
| 18:31:17 | dmpk2k enters the room. | |
| 18:31:18 | imajes leaves the room. | |
| 18:33:15 | Defiler | def cookie_time is my favorite Merb method so far |
| 18:33:42 | manveru | Defiler: oh, did i mention that ramaze runs on rubinius now? |
| 18:33:52 | evan | manveru: oh? yay! |
| 18:33:54 | manveru | thanks again :) |
| 18:33:54 | Defiler | Cool |
| 18:33:55 | evan | under webrick? |
| 18:33:59 | manveru | webrick and mongrel |
| 18:34:04 | evan | double awesome! |
| 18:34:08 | evan | manveru: could you blog that news? |
| 18:34:19 | manveru | though mongrel has to be modified... fastthread.so doesn't like rubinius |
| 18:34:30 | manveru | so i took out that require and it worked |
| 18:34:32 | evan | thats expected. |
| 18:34:36 | manveru | well, not yet |
| 18:34:42 | manveru | rubinius is missing abbrev.rb |
| 18:34:42 | evan | it never will |
| 18:34:42 | Defiler | Yeah, we should make a lib/fastthread.rb that is a no-op for us |
| 18:34:47 | evan | yeah |
| 18:34:47 | manveru | so it doesn't work out of the box |
| 18:34:59 | evan | oh, we can add abbrev.rb back in |
| 18:35:00 | Defiler | manveru: abbrev.rb works, so we can move it to lib now. I have that locally, but haven't checked it in |
| 18:35:02 | evan | i removed it because I thought it was dead |
| 18:35:13 | manveru | i use abbrev a lot :) |
| 18:35:21 | evan | hm, maybe i'm thinking of something else. |
| 18:35:31 | manveru | and it's a quite small lib |
| 18:35:49 | evan | yeah, i must be thinking of something else. |
| 18:36:06 | manveru | after putting abbrev.rb from 1.8 into lib/ it worked |
| 18:36:13 | evan | yay! |
| 18:36:29 | evan | manveru: would you put abbrev.rb into the right place in the rubinius tree and commit it? |
| 18:36:54 | manveru | sure |
| 18:37:12 | manveru | though i still need access :) |
| 18:37:20 | evan | oh? |
| 18:37:28 | evan | hook me up with an ssh key |
| 18:37:30 | evan | and i'll fix that. |
| 18:38:16 | manveru | evan: http://manveru.net/id_dsa.pub |
| 18:39:28 | evan | ok, added |
| 18:39:34 | manveru | thanks |
| 18:42:30 | evan | thank you. |
| 18:43:53 | wycats leaves the room. | |
| 18:44:37 | benny leaves the room. | |
| 18:48:40 | atmos leaves the room. | |
| 18:50:22 | antares enters the room. | |
| 18:52:09 | boyscout | 1 commit by Michael Fellinger |
| 18:52:10 | boyscout | * Adding lib/abbrev.rb; 7059fd4 |
| 18:52:22 | manveru | yay, my first commit ^^; |
| 18:52:57 | evan | and there was much rejoicing |
| 18:53:26 | dbussink | let's do the hamster dance! |
| 18:53:55 | scoopr | let the hamPsterdance die. |
| 18:54:17 | dbussink | scoopr: hehe |
| 18:56:25 | fbuilesv | pastie: hi |
| 18:56:43 | pastie | http://pastie.org/191846 by fbuilesv. |
| 18:57:10 | fbuilesv | With that in /etc/hosts our TCPSocket.gethostbyname is getting different answers from MRI's implementation |
| 18:57:32 | dbussink | fbuilesv: i think i've written that |
| 18:57:50 | dbussink | fbuilesv: this is that i've used getaddrinfo internally and not the gethostbyname c call |
| 18:57:57 | dbussink | which is kinda semi deprecated |
| 18:58:06 | dbussink | so that could result in differences in certain cases |
| 18:58:27 | fbuilesv | dbussink: getaddrinfo always returns korobushka.local for me with taht hosts, on MRI or rbx |
| 18:58:41 | dbussink | fbuilesv: hmm, and gethostbyname? |
| 18:58:44 | fbuilesv | fbuilesv: so I was wondering how the MRI impl does gethostbyname to get "localhost" instead of that |
| 18:59:01 | fbuilesv | I don't fully get what make_hostent_internal's doing |
| 18:59:02 | evan | getaddrinfo gives you multiple entries |
| 18:59:04 | evan | as I recall |
| 18:59:14 | evan | so perhaps it loops through them, looking for localhost |
| 18:59:27 | fbuilesv | evan: yes, but it returns korobushka.local twice |
| 18:59:34 | evan | hm, interesting. |
| 18:59:42 | evan | where is the rubinius code that is returning it twice? |
| 19:00:03 | dbussink | gethostbyname is a different c call |
| 19:00:10 | dbussink | that apparently behaves different in this case |
| 19:00:12 | fbuilesv | evan: socket.rb but it will return it too for MRI, they change in the last parameter |
| 19:02:48 | rubuildius_amd64 | Michael Fellinger: 7059fd4f9; 2103 files, 6845 examples, 24662 expectations, 0 failures, 0 errors; http://rafb.net/p/MIKWoK58.html |
| 19:04:26 | dbussink | but i'm off now, will be back later |
| 19:05:23 | manveru | hmm |
| 19:05:50 | rby_ enters the room. | |
| 19:06:10 | manveru | evan: seems like the scope bug is still around... |
| 19:06:17 | evan | which? |
| 19:07:07 | manveru | 1.times{ bar = 1 }; p bar |
| 19:08:01 | evan | i looked |
| 19:08:06 | evan | something broke in the parser. |
| 19:08:15 | evan | because check out the sexp for that under rubinius |
| 19:08:20 | evan | it has bar as an lvar |
| 19:08:27 | evan | on the end |
| 19:08:51 | benburkert leaves the room. | |
| 19:09:04 | manveru | well, just wanted to ask if that's a known bug |
| 19:09:08 | rubuildius_ppc | Michael Fellinger: 7059fd4f9; 2103 files, 6847 examples, 24688 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/191855 |
| 19:09:24 | evan | no |
| 19:09:25 | manveru | searching for a ticket didn't yield anything |
| 19:09:30 | evan | it's just been exposed in the last few days |
| 19:09:32 | evan | please open a ticket |
| 19:09:39 | evan | include the sexp output in the ticket |
| 19:09:45 | manveru | uhm |
| 19:09:45 | evan | and the expected sexp output |
| 19:10:02 | manveru | and... how am i supposed to know either? |
| 19:10:15 | evan | it should be a :vcall node. |
| 19:10:24 | evan | open up rubinius and do |
| 19:10:33 | evan | "10.times { bar = 1 }; bar".to_sexp |
| 19:10:36 | evan | to get the current sexp |
| 19:11:01 | manveru | btw, is there some kind of irb for rubinius? |
| 19:11:06 | evan | just start it |
| 19:11:12 | evan | it starts irb by default. |
| 19:11:30 | manveru | oh, it just takes a while to start |
| 19:11:34 | evan | irb is big. |
| 19:11:39 | evan | it's not instant |
| 19:11:41 | evan | a few seconds. |
| 19:11:47 | rue | Huh. strncmp() is adding two characters |
| 19:12:55 | manveru | and what's the expected sexp? |
| 19:13:26 | evan | instead of [:lvar, :bar] on the end, it should be [:vcall, :bar] |
| 19:13:41 | wycats enters the room. | |
| 19:15:35 | rue | Did you say it parsed correctly through IRB? |
| 19:15:50 | evan | yeah, oddly. |
| 19:15:52 | benny enters the room. | |
| 19:16:20 | rue | But -e fails; are those still in the same loop? |
| 19:16:40 | rue | I know there is the depth issue between eval and non-eval but that does not seem to be the problem |
| 19:17:53 | evan | same loop? |
| 19:17:57 | evan | it's not eval related |
| 19:18:05 | evan | because the sexp is wrong coming out of the parser |
| 19:18:10 | evan | thats where it needs to be addressed |
| 19:18:27 | evan | it works in irb because the statements are parsed seperatel |
| 19:18:46 | evan | because you do '10.times { bar = 1 }' <enter> |
| 19:18:48 | evan | then 'bar' |
| 19:18:54 | evan | so the parser is invoked twice |
| 19:18:58 | evan | thats why irb works. |
| 19:19:09 | rue | Ah, I thought you meant the same line with colon |
| 19:19:15 | evan | no |
| 19:21:02 | manveru | well, have fun: http://rubinius.lighthouseapp.com/projects/5089-rubinius/tickets/522-local-variables-in-blocks-lea k-their-existence |
| 19:21:23 | benburkert enters the room. | |
| 19:33:08 | ShayArnett enters the room. | |
| 19:33:11 | rue | Awky, MRI, be back in a bit |
| 19:33:50 | ShayArnett leaves the room. | |
| 19:34:02 | ShayArnett enters the room. | |
| 19:37:18 | tomy_ enters the room. | |
| 19:39:30 | anteaya leaves the room. | |
| 19:40:05 | imajes leaves the room. | |
| 19:40:32 | anteaya enters the room. | |
| 19:49:50 | marnen leaves the room. | |
| 19:49:57 | GMFlash leaves the room. | |
| 19:50:29 | twbray enters the room. | |
| 19:50:48 | knowtheory enters the room. | |
| 19:52:09 | knowtheory | So! Anybody catch why's attempt to compile ruby into python? http://hackety.org/2008/05/05/sneakingRubyThroughGoogleAppEngine.html |
| 19:52:14 | evan | yep |
| 19:52:20 | evan | should be interesting |
| 19:52:30 | evan | he's right, that the bytecode formats are very similar |
| 19:52:34 | evan | ditto for rubinius |
| 19:52:35 | knowtheory | Yeah, you think that any mass'll build up behind it? |
| 19:52:41 | evan | but the execution model is pretty different |
| 19:52:41 | imajes enters the room. | |
| 19:52:44 | evan | as is the core library |
| 19:53:02 | knowtheory | yeah, it's one of those things that seems like a missing piece of all the stuff that's been happening |
| 19:53:04 | evan | you could write code that looks like ruby, but runs with python's execution model |
| 19:53:07 | evan | but thats not ruby. |
| 19:53:17 | knowtheory | No indeed not |
| 19:53:29 | evan | thats pretty much what _why is doing. |
| 19:53:43 | evan | unless he plans to translate the rubinius kernel to python |
| 19:53:50 | evan | now THAT would be interesting. |
| 19:54:05 | knowtheory | Right well if you begin with a trivial example it's hard to evaluate what real examples will look like |
| 19:54:10 | tarcieri | that'd be insane |
| 19:54:31 | evan | insane is clearly one of _why's middle names |
| 19:54:34 | evan | so I don't put it past him. |
| 19:54:36 | tarcieri | heh |
| 19:55:01 | tarcieri | would like to see that done for Tamarin/SWF bytecode |
| 19:55:11 | tarcieri | something like HotRuby, but uhh, usable? |
| 19:55:18 | evan | does anyone know if AppEngine uses pypy? |
| 19:55:35 | tarcieri | sounds like it does from what _why's saying |
| 19:55:50 | evan | he might just be guessing |
| 19:55:52 | evan | like everyone else. |
| 19:56:10 | tarcieri | heh |
| 19:56:30 | knowtheory | yeah i think you'd have to get a googler on the line to actually answer that question |
| 19:56:41 | lopex | heh, googling for google app engine pypy, gives why_'s page as first one |
| 19:56:53 | evan | heh |
| 19:57:16 | evan | because last I heard, pypy wasn't mature or fast enough for that |
| 19:57:23 | evan | so I'm doubting google would hitch their wagon to that |
| 19:57:41 | evan | unless they've got their own internal pypy that they're not releasing |
| 19:57:42 | knowtheory | not without pouring some google dev into it |
| 19:58:07 | knowtheory | although that doesn't much sound like them (although they could be holding back on releasing it until further testing or something) |
| 19:58:07 | tarcieri | well they do have Guido and all... |
| 19:58:37 | evan | but guido has stated many times he's not working on pypy |
| 19:59:00 | lopex | and they have infninite amount of money |
| 19:59:17 | knowtheory | guido's off to python3k land isn't he? |
| 19:59:24 | evan | knowtheory: last I heard, yeah. |
| 19:59:45 | evan | but since they have an expert in the CPython runtime |
| 19:59:55 | evan | i'd doubt they would NOT use that knowledge. |
| 20:01:50 | evan | but, it's all speculation |
| 20:01:54 | evan | i know zilch. |
| 20:02:32 | knowtheory | So, how 'bout i quiz you about somethig you know more about? ;) |
| 20:02:41 | evan | sure! :) |
| 20:02:49 | tarcieri | I bet the next language App Engine will support is Java |
| 20:02:56 | tarcieri | in which case, just use JRuby... problem solved |
| 20:02:56 | wycats_ enters the room. | |
| 20:03:05 | evan | tarcieri: probaby via their android runtime though |
| 20:03:10 | knowtheory | Well, like i said, headius's post makes me more interested in contributing to rubinius |
| 20:03:16 | evan | which post? |
| 20:03:26 | tarcieri | evan: Urgh... you really think so? |
| 20:03:31 | knowtheory | the long one a couple days ago, to which you wrote your retort |
| 20:03:55 | knowtheory | i'm trying to figure out whether i should just be trying to help add to specs or something else |
| 20:04:01 | tarcieri | I don't see why they'd need Android for something hosted |
| 20:04:30 | knowtheory | poking through the bug tracker atm as well |
| 20:05:51 | knowtheory | Rather, my question is, what background knowledge and reading should one do before looking for things to actually help with? |
| 20:05:59 | knowtheory | is reading through bits of the spec going to be useful? |
| 20:09:03 | evan | knowtheory: ah! ok. |
| 20:09:04 | evan | yeah |
| 20:09:11 | evan | reading through the spec is useful |
| 20:09:20 | evan | to understand the behavior of methods |
| 20:09:27 | evan | you could run the specs and fix some failures |
| 20:12:52 | brixen | knowtheory: if you go here and look at the right sidebar, there is some "howto" docs: http://rubinius.lighthouseapp.com/projects/5089-rubinius/overview |
| 20:13:06 | tomy | evan: I have a question about inlline method caching. |
| 20:13:12 | evan | tomy_: hit me. |
| 20:13:21 | brixen | knowtheory: there's also a "stuff to read" paage if you want some theory :) |
| 20:13:35 | tomy | How do you deal with instance methods. You can't just look at the class. |
| 20:13:43 | knowtheory | brixen: thanks man, i'm poking through the spec overview and associated docs atm :) |
| 20:13:52 | brixen | knowtheory: cool |
| 20:14:49 | knowtheory | but yes, i'd very much like some theory. I caught wilson's interview with infoq, which i found quite intresting. I think he mentioned the blue book in it. |
| 20:14:53 | tomy | What I mean is class Foo implements a method bar, and a and b are instances of this class but 'a' reimplments bar on it's instances |
| 20:15:12 | tomy | Instance singular |
| 20:15:33 | evan | tomy_: in that case |
| 20:15:43 | evan | you actually don't use Foo in the cache |
| 20:15:46 | evan | you use a's metaclass |
| 20:15:57 | evan | as the cache validator |
| 20:16:38 | tomy | So metaclasses are indexed just like classes? |
| 20:16:52 | evan | indexed? |
| 20:17:17 | tomy | I have been playing with PICs in llvm using a switch statement for various method dispatches |
| 20:17:27 | anteaya leaves the room. | |
| 20:17:43 | evan | ooooooh |
| 20:17:48 | GMFlash enters the room. | |
| 20:17:52 | evan | ok. |
| 20:18:01 | tomy | I was switching on a class ID, but obviously my naive assumptions about ruby have bitten me |
| 20:18:06 | evan | so, you store the objects metaclass in the PIC |
| 20:18:22 | evan | or rather, you compare the objects metaclass against the classes stored in the PIC |
| 20:18:34 | evan | tomy_: ruby has no class id's |
| 20:18:51 | evan | but if it did, yes, metaclasses would have a unique class id |
| 20:19:02 | tomy | Okay, is the meta class only created when needed? IE, in my example the b instance wouldn't have a metaclass |
| 20:19:12 | qwert666 enters the room. | |
| 20:19:16 | evan | you use whatever object is located directly in the klass slot of the object as the PIC key |
| 20:19:24 | evan | yes, the metaclass is allocated lazily |
| 20:19:41 | evan | tomy_: are you trying to generate llvm for ruby? |
| 20:19:50 | tomy | Oh, doh, so the metaclass is inserted between the original class and the instance. |
| 20:19:54 | anteaya enters the room. | |
| 20:19:55 | evan | yep |
| 20:20:01 | evan | before |
| 20:20:03 | evan | obj.class == Foo |
| 20:20:04 | evan | after |
| 20:20:18 | evan | obj.class == #<MetaClass superclass=Foo> |
| 20:20:27 | tomy | I'm just playing with dynamic dispatch in a mini language to better understand things and to try some ideas. |
| 20:20:32 | evan | sweet |
| 20:20:34 | tomy | Using llvm. |
| 20:20:35 | evan | i'd love to talk |
| 20:20:42 | evan | i was thinking about llvm all weekend. |
| 20:21:17 | tomy | I have been playing with treating all methods with the same name as one method with a switch on class type |
| 20:21:33 | tomy | And reordering on the fly |
| 20:21:59 | evan | interesting. |
| 20:22:13 | evan | so you've flip'd the class/method relationship |
| 20:22:33 | evan | thats similar to a scheme that ianp and I talked about |
| 20:22:43 | evan | when you move method binding semantics into the selector |
| 20:23:02 | tomy | Exactly |
| 20:23:02 | evan | you let the selector know everyone that implements it, and how to find the implementation |
| 20:23:37 | evan | which has nice properties base on the fact that the field of selector names is wide and shallow |
| 20:23:40 | evan | usually |
| 20:23:45 | evan | s/base/based/ |
| 20:23:47 | tomy | Yes |
| 20:24:02 | evan | how is it coming? |
| 20:24:03 | tomy | Wider than classes in the stats I have produced |
| 20:24:12 | fbuilesv leaves the room. | |
| 20:25:59 | tomy | Well, it still a little dynamic language without too much notion of classes, but when I read you were rewriting the VM in C++ I became interested, since you pretty much have to do llvm in C++ |
| 20:26:20 | tomy | though I have thought about writing Ruby bindings for the llvm api |
| 20:27:04 | twbray leaves the room. | |
| 20:28:30 | scoopr | I was thinking doing pure-ruby llvm-ir generator, but that's on my forever-projects-list |
| 20:28:50 | evan | tomy_: yep |
| 20:29:02 | evan | tomy_: i'm interested in LLVM ruby bindings as well |
| 20:29:06 | evan | you should check out Rice |
| 20:29:19 | evan | it's a framework for writing ruby extensions in C++ |
| 20:29:36 | evan | it might be easier to generate a Rice extension that glues in LLVM |
| 20:29:41 | tomy | You'd still want all those backend optimization tools. I toyed with the same idea. |
| 20:30:04 | evan | i've been thinking about LLVM use not in a standalone sense |
| 20:30:07 | tomy | I just saw Rice the other day. I've started playing with it. It looks well done. |
| 20:30:21 | evan | ie, not turning ruby into pure ir that can run in an empty environment |
| 20:30:43 | evan | but rather, ir that highly depends on running in an environment |
| 20:30:48 | evan | thats not at all standalone |
| 20:30:58 | evan | but still lets you leverage llvm for optimizations and code generation |
| 20:31:01 | tomy | More like just being able to compile methods on demand? |
| 20:31:05 | evan | yeah |
| 20:31:32 | evan | i'm thinking enough code to take a rubinius bytecode CompiledMethod object and generate an LLVM Function that performs the same duties |
| 20:31:49 | evan | but that Function object would be highly intertwined with the environment |
| 20:32:04 | evan | i'm thinking that generating standalone ir is really too big of a job. |
| 20:32:25 | evan | even the JVM doesn't do that. |
| 20:32:37 | VVSiz_ enters the room. | |
| 20:32:37 | evan | the internal JIT is tied to that running of the JVM |
| 20:33:10 | tomy | Yeah, that might be true. But the part that interests me is the data flow analysis (SSA) that could be used to determine that "a + 3" was always going to be an integer add. |
| 20:33:49 | evan | sure |
| 20:34:04 | tomy | Look for example at the bm_app_fib.rb. |
| 20:34:23 | mapar enters the room. | |
| 20:34:24 | tomy | At least a big win on microbenchmarks :-) |
| 20:34:50 | evan | :) |
| 20:35:01 | evan | the key is how to put the guards in |
| 20:35:17 | evan | so that the guards don't cost you so much to execute that you waste the optimization |
| 20:35:56 | tomy | Yeah. I was reading something the other day that muddied that for me. Putting guards in for the programmer that changes something in the debugger, sigh. |
| 20:37:00 | hornbeck leaves the room. | |
| 20:37:24 | hornbeck enters the room. | |
| 20:37:57 | tomy | Does the kernel make heavy use of "eval". Is it possible to determine a program is "closed" |
| 20:38:18 | evan | no |
| 20:38:21 | evan | almost no use of eval |
| 20:38:25 | evan | i highly frown upon it. |
| 20:38:43 | evan | there are eval like features that call into eval |
| 20:38:46 | evan | module_eval, class_eval, etc. |
| 20:38:47 | VVSiz leaves the room. | |
| 20:38:54 | knowtheory | too "clever", or "magical"? |
| 20:38:55 | evan | but they are all cordined off |
| 20:39:04 | evan | knowtheory: both |
| 20:39:04 | tomy | Okay |
| 20:39:06 | evan | plus, too dependent |
| 20:39:13 | evan | and never performant |
| 20:41:44 | tomy | evan, is there a way in the MRI to know a method has been overridden in a subclass, even for the built-in classes? |
| 20:41:57 | evan | no |
| 20:42:09 | evan | but it could be added |
| 20:42:22 | evan | when a method is added, the superclass could be notified |
| 20:42:25 | evan | so it can take actions |
| 20:42:32 | evan | but MRI doesn't do that |
| 20:42:37 | tomy | That sucks. I want to build statistics rather than speculate. |
| 20:42:41 | evan | MRI has a VERY simple cache clearing strategy |
| 20:42:58 | evan | when you add a method of name, say, blah |
| 20:43:06 | evan | it clears the entire cache of all methods named blah |
| 20:43:15 | evan | without considering scope or anything |
| 20:43:26 | tomy | Ugh. |
| 20:43:31 | evan | yep. |
| 20:43:32 | evan | :) |
| 20:46:16 | tomy | Well, I'm going to continue to play with llvm, and watch your VM work. Maybe I can come up with a jitter. |
| 20:47:28 | evan | are you putting your work anywhere? |
| 20:47:30 | evan | i'd love to see. |
| 20:48:12 | tomy | Not yet, but I plan to soon. I think I might have a go at Rice/LLVM, since it would be nice to be able to generate code inside irb. |
| 20:48:22 | evan | agreed. |
| 20:48:34 | tomy | And play with llvm classes with compiling. |
| 20:48:52 | tomy | without compiling. |
| 20:49:59 | evan | ok, lunch time. |
| 20:50:14 | tomy | I only get to spend about an hour a day working on it on my bus commute. The rest of the day is Rails development. |
| 20:50:30 | tomy | I'll let you know when I have something up. |
| 20:54:49 | ezmobius enters the room. | |
| 21:00:37 | joachimm enters the room. | |
| 21:02:42 | benny leaves the room. | |
| 21:05:01 | chris2 enters the room. | |
| 21:11:32 | ShayArnett leaves the room. | |
| 21:20:40 | enebo enters the room. | |
| 21:20:40 | dctanner enters the room. | |
| 21:22:26 | Maledictus leaves the room. | |
| 21:22:52 | enebo leaves the room. | |
| 21:27:03 | xhanjian enters the room. | |
| 21:32:26 | dewd enters the room. | |
| 21:32:27 | qwert666_ enters the room. | |
| 21:35:46 | rue | Back |
| 21:36:50 | xhanjian1 enters the room. | |
| 21:37:04 | evan | yo |
| 21:39:36 | xhanjian_ leaves the room. | |
| 21:49:22 | xhanjian leaves the room. | |
| 21:49:47 | qwert666 leaves the room. | |
| 21:50:07 | rue | Huu, interesting. XML parser with parsing speed "approaching strlen over the same data" |
| 21:50:18 | rue | http://rapidxml.sourceforge.net/ |
| 21:50:30 | evan | yeah, i saw that |
| 21:50:31 | evan | pretty cool. |
| 21:50:32 | rue | In a header file too :P |
| 21:50:42 | evan | yeah, it doesn't copy the data either. |
| 21:50:53 | evan | it references the input char* via pointers only |
| 21:51:09 | rue | Wonder if anyone would notice if we secretly killed REXML, took its skin and put the cyborg inside? |
| 21:51:26 | evan | people use the internals sometimes |
| 21:51:38 | evan | but if you made it lazily allocate objects |
| 21:51:42 | evan | i'll bet no one would notice. |
| 21:52:20 | rue | Eh, people who use internals should disappear too |
| 21:52:30 | djwhitt | rapidxml doesn't support sax as far as I could tell |
| 21:52:58 | djwhitt | or any kind of even based parsing for that matter |
| 21:53:01 | djwhitt | *event |
| 21:55:32 | rue | Could fake it |
| 21:55:58 | djwhitt | sure, but wouldn't that mean you'd have to read everything into memory? |
| 21:55:59 | rue | OR erase everybody's memory so no-one remembers there is such a thing as SAX... decisions, decisions |
| 21:56:50 | evan | bitchin |
| 21:56:57 | evan | added stack depth calculate to the compiler |
| 21:56:58 | evan | it was easy too |
| 21:57:02 | evan | thanks to agardiner |
| 21:57:05 | rue | Nice |
| 21:57:20 | ShayArnett enters the room. | |
| 21:57:21 | rue | djwhitt: Yeah, or at least the branch in question |
| 21:57:39 | Defiler | We should just make the VM docs output executable code |
| 21:57:43 | Defiler | rather than vice versa |
| 21:57:58 | rue | Heh, that would be fun |
| 21:58:07 | evan | wow, i wonder if this is right.... |
| 21:58:14 | evan | there are some big methods |
| 21:58:16 | evan | lots of opcodes |
| 21:58:23 | evan | with like a stack depth of 9. |
| 21:58:35 | evan | i guess that makes sense |
| 21:58:48 | evan | the stack only gets deeper with nested statements |
| 21:58:51 | evan | not with method length |
| 22:00:19 | be9 leaves the room. | |
| 22:01:25 | twbray enters the room. | |
| 22:04:03 | mapar leaves the room. | |
| 22:07:50 | binary42 leaves the room. | |
| 22:14:44 | ctennis enters the room. | |
| 22:19:01 | qwert666_ leaves the room. | |
| 22:27:11 | twbray leaves the room. | |
| 22:30:55 | srbaker enters the room. | |
| 22:31:12 | jlindley leaves the room. | |
| 22:43:13 | imajes leaves the room. | |
| 22:45:56 | macournoyer leaves the room. | |
| 22:46:07 | srbaker leaves the room. | |
| 22:47:00 | mkrauskopf leaves the room. | |
| 22:49:57 | srbaker enters the room. | |
| 22:55:29 | twbray enters the room. | |
| 23:01:42 | twbray__ enters the room. | |
| 23:03:06 | bitbang enters the room. | |
| 23:09:09 | imajes enters the room. | |
| 23:13:22 | imajes leaves the room. | |
| 23:13:33 | srbaker leaves the room. | |
| 23:14:47 | wmoxam leaves the room. | |
| 23:16:58 | trythil leaves the ro |