Show enters and exits. Hide enters and exits.
| 00:00:00 | crafterm enters the room. | |
| 00:00:26 | nexcastellan | HA! |
| 00:00:41 | nexcastellan | That's what I say. HA! |
| 00:00:56 | seydar | hm.. odd. |
| 00:01:09 | seydar | i just pulled a fresh install from github |
| 00:01:25 | seydar | and i'm going to commit the changes in autoload.rb that i helped on |
| 00:01:26 | rubuildius_amd64 | Evan Phoenix: 6f4472691; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 00:01:49 | seydar | and i see that two config files in onig have been modified |
| 00:01:59 | nexcastellan | How would the following work: message = buffer.read_string if you don't tell it the number of bytes to read? If buffer is a MemoryPointer? |
| 00:01:59 | NoKarma leaves the room. | |
| 00:02:24 | drbrain | it looks for NUL |
| 00:02:28 | drbrain | "\000" |
| 00:02:35 | nexcastellan | Ah ha. |
| 00:02:47 | nexcastellan | I think that's a bad assumption in this part of socket.rb. In fact, I know it is. |
| 00:02:52 | nexcastellan | Thanks, drbrain. |
| 00:03:26 | evan | yes |
| 00:03:27 | evan | it is |
| 00:03:35 | mass | I'm still trying to figure out what to do with my new @rubini.us alias |
| 00:03:50 | evan | please don't use it as a spam trap. |
| 00:03:59 | mass | perhaps sending out nigerian scam mails? |
| 00:04:06 | drbrain | mass: score with fly ladies? |
| 00:04:10 | mass | would they still be nigerian scam mails if I'm not nigerian? |
| 00:04:46 | boyscout | 1 commit by Ryan Davis |
| 00:04:47 | boyscout | * Read err and raise the output if non-empty; ddb5eb8 |
| 00:04:52 | mass | drbrain: if you know fly ladies who are turned on by vanity email addresses I'm open to introductions |
| 00:05:04 | seydar | mass: the @rubini.us is a great hit with the ladies |
| 00:05:26 | mass | just finished installing the final iphone sdk |
| 00:06:14 | mass | I'm planning to start working on an app or two under the sim so I'm ready to test and sell them when I get mine :) |
| 00:06:23 | dfg59 enters the room. | |
| 00:06:39 | evan | mass: what ya going to write? |
| 00:06:51 | nexcastellan | Is Mutex implemented in Ruby or in C? |
| 00:07:02 | evan | Ruby |
| 00:07:06 | evan | using Channels |
| 00:07:11 | evan | which use some C parts |
| 00:07:21 | nexcastellan | Oh noes! |
| 00:07:25 | mass | my mom has played this variation of russian solitaire called railroad solitaire on her palm forever |
| 00:07:46 | mass | she's totally addicted to it, to the point that she still uses some palm os emu to play it under wince |
| 00:07:51 | evan | nexcastellan: why? |
| 00:08:13 | nexcastellan | "NoMethodError: No method 'sleep' on an instance of Mutex." |
| 00:08:22 | evan | just needs to be implemented |
| 00:08:24 | mass | so I figure that would be a good start, since it'd be her #1 feature for a new phone. While I'm at it, I'll add support for a few of my favs too |
| 00:08:24 | evan | probably |
| 00:08:29 | mass | I'm a big fan of chessboard |
| 00:08:33 | evan | i didn't even know there was a Mutex#sleep |
| 00:09:01 | nexcastellan | Yeap, I'm not _convinced_ there is meant to be one. But I'll take a look tomorrow morning. udpsockets now pass all specs but I want to get resolv.rb working properly before I push everything out. |
| 00:09:06 | nexcastellan | And my bus arrives in five minutes. :) |
| 00:09:33 | evan | ok, see ya later. |
| 00:09:39 | nexcastellan | Later all. |
| 00:09:43 | seydar | adiaux |
| 00:09:59 | rubuildius_ppc | Ryan Davis: ddb5eb849; 2539 files, 8461 examples, 28479 expectations, 0 failures, 0 errors |
| 00:10:43 | drbrain | seydar: isn't that french? |
| 00:10:53 | seydar | ... |
| 00:11:03 | seydar | french is au revoir |
| 00:11:06 | seydar | that was esperanto |
| 00:11:14 | seydar | and you call yourself a geek! |
| 00:11:36 | drbrain | ok, because if it was french, I'd have to report you to INS as an illegal immigrant |
| 00:11:42 | drbrain | sneaking across the border from Canada |
| 00:11:58 | seydar | drbrain: on a slightly unrelated note, i found out this guy and his wife at dartmouth speaks Elvish. fluently |
| 00:13:20 | rubuildius_ey64 | Ryan Davis: ddb5eb849; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 00:15:43 | imperator leaves the room. | |
| 00:16:26 | rubuildius_amd64 | Ryan Davis: ddb5eb849; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 00:16:28 | boyscout | 1 commit by Ryan Davis |
| 00:16:29 | boyscout | * I hate popen3, apache, net/http, and children; e2f07cd |
| 00:16:56 | vintrepid enters the room. | |
| 00:18:59 | wmoxam enters the room. | |
| 00:19:05 | seydar | zenspider: how much did GoRuCo pay its speakers? |
| 00:19:25 | rue | seydar: AdiEux is French |
| 00:19:25 | zenspider | seydar: I don't remember |
| 00:19:49 | jbarnette | seydar: they pay in froot roll-ups and beef jerky |
| 00:20:07 | rue | And beer |
| 00:20:42 | seydar | rue: oh, à dieu is french |
| 00:20:48 | seydar | adiaux is esperanto |
| 00:20:51 | zenspider | mmmmm rollups |
| 00:20:56 | zenspider | wait no |
| 00:21:00 | zenspider | mmmm beef |
| 00:21:12 | seydar | would pancakes and maple syrup cut the mustard? |
| 00:21:12 | crafterm leaves the room. | |
| 00:21:21 | antares enters the room. | |
| 00:21:55 | seydar | drbrain: yea, i was being dumb and overconfident with my recent defeat of autoload. even though i didnt even do that one alone |
| 00:22:04 | seydar | drbrain: you're thinking of "à dieu" |
| 00:22:11 | rubuildius_ppc | Ryan Davis: e2f07cd59; 2539 files, 8461 examples, 28479 expectations, 0 failures, 0 errors |
| 00:22:26 | drbrain | no, we were trying to see if you were an illegal canadian immigrant |
| 00:22:37 | drbrain | since you know so much about the canadian border patrol |
| 00:23:45 | seydar | dude, I-91 has so much cocaine and weed from canada |
| 00:24:14 | boyscout | 1 commit by Ari Brown |
| 00:24:15 | boyscout | * staking my claim with autoload.rb. Das Dragon hast been killed!; cc67051 |
| 00:24:26 | seydar | boyscout: action pounds it |
| 00:24:26 | boyscout | pounds it |
| 00:24:39 | seydar | boyscout: help |
| 00:24:39 | boyscout | Commands I know: action, help, save!, say, update_git |
| 00:24:54 | seydar | how can i teach boyscout a new trick? |
| 00:24:56 | drbrain | hey, keep boyscout out of your canadian weed and cocaine |
| 00:25:15 | seydar | drbrain: i fully expect you to come to AwesomeConf in april |
| 00:25:32 | drbrain | don't conflict with SXSW |
| 00:25:36 | drbrain | or MountainWest |
| 00:25:47 | seydar | SXSW? |
| 00:25:58 | drbrain | South by SouthWest |
| 00:26:27 | rubuildius_amd64 | Ryan Davis: e2f07cd59; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 00:27:37 | seydar | drbrain: wont conflict with either |
| 00:28:30 | boyscout | 1 commit by Ryan Davis |
| 00:28:30 | boyscout | * Fixed url for rubyspecs; 7ae426c |
| 00:31:40 | seydar | drbrain: which... means you're coming |
| 00:32:08 | drbrain | heh |
| 00:32:53 | Defiler | where we goin' |
| 00:33:39 | roo leaves the room. | |
| 00:34:13 | seydar | itd be *extra* nice if rubinius would make a presentation at a potential conference in NH |
| 00:34:13 | rubuildius_ppc | Ryan Davis: 7ae426cef; 2539 files, 8461 examples, 28479 expectations, 0 failures, 0 errors |
| 00:34:14 | rubuildius_ppc | Ari Brown: cc6705156; 2539 files, 8461 examples, 28479 expectations, 0 failures, 0 errors |
| 00:34:16 | roo enters the room. | |
| 00:34:24 | seydar | rubuildius_amd64: action pounds it with seydar |
| 00:35:36 | drbrain | this is why corundum's say is restricted to me |
| 00:35:45 | seydar | hehe |
| 00:35:57 | seydar | give them the ability to pound it! |
| 00:36:08 | drbrain | no |
| 00:36:18 | seydar | dont you want your bots to be cool? |
| 00:38:46 | drbrain | corundum: are you cool? |
| 00:38:47 | corundum | no idea |
| 00:39:18 | seydar | corundum: you are cool |
| 00:39:19 | corundum | but you are <reply> I am here for everyone's benefit or an ri bot, because ri is everybody's friend |
| 00:40:04 | seydar | i give up! |
| 00:40:35 | drbrain | corundum: you are also cool |
| 00:40:36 | corundum | done |
| 00:41:27 | seydar | corundum: are you cool? |
| 00:41:27 | corundum | dunno |
| 00:41:54 | drbrain | corundum: you? |
| 00:41:55 | corundum | I am here for everyone's benefit or an ri bot, because ri is everybody's friend or cool |
| 00:42:38 | rubuildius_amd64 | Ryan Davis: 7ae426cef; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 00:42:39 | rubuildius_amd64 | Ari Brown: cc6705156; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 00:42:40 | rubuildius_amd64 | pounds it with seydar |
| 00:43:06 | seydar | whoever did that, thank you :-) |
| 00:43:08 | rubuildius_ey64 | Ryan Davis: 7ae426cef; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 00:43:09 | rubuildius_ey64 | Ari Brown: cc6705156; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 00:43:10 | rubuildius_ey64 | Ryan Davis: e2f07cd59; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 00:43:42 | drbrain | I think it got stuck in the output queue |
| 00:44:02 | seydar | oh... |
| 00:45:52 | roo leaves the room. | |
| 00:46:34 | rue leaves the room. | |
| 00:47:22 | trythil enters the room. | |
| 00:51:47 | roo enters the room. | |
| 00:51:51 | lopex leaves the room. | |
| 00:55:31 | vintrepid leaves the room. | |
| 00:55:36 | heycarsten enters the room. | |
| 00:56:02 | seydar | evan: hows LLVM going with the cpp branch? |
| 00:57:31 | evan | going good. |
| 00:57:52 | seydar | what do you have going atm? |
| 00:58:19 | Fullmoon enters the room. | |
| 00:59:07 | evan | well |
| 00:59:18 | evan | i've got it going 2x as fast as the old code |
| 00:59:23 | evan | and thats when compiled in debug mode |
| 00:59:32 | seydar | wow |
| 00:59:48 | seydar | like, way wow |
| 00:59:53 | boyscout | 1 commit by Ryan Davis |
| 00:59:54 | boyscout | * use rake instead; 6677721 |
| 01:00:28 | drfreeze leaves the room. | |
| 01:00:38 | seydar | evan: i'd really like to help out with the C++ branch, but alas, C++ is not my forte. is there anything else I can do? |
| 01:00:52 | evan | keep fixin' those bugs in ruby! |
| 01:01:07 | evan | we're going to be using all that code in the C++ branch |
| 01:01:29 | drfreeze enters the room. | |
| 01:01:40 | seydar | ok |
| 01:02:40 | wmoxam leaves the room. | |
| 01:02:50 | imperator enters the room. | |
| 01:04:13 | rubuildius_ppc | Ryan Davis: 667772136; 2539 files, 8461 examples, 28479 expectations, 0 failures, 0 errors |
| 01:07:19 | zenspider | evan: why is LLVM an external dependency? |
| 01:07:34 | evan | cause it hasn't been made an internal one |
| 01:07:42 | zenspider | k |
| 01:08:00 | rubuildius_ey64 | Ryan Davis: 667772136; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 01:11:17 | heycarsten leaves the room. | |
| 01:11:24 | rubuildius_amd64 | Ryan Davis: 667772136; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 01:20:29 | trythil leaves the room. | |
| 01:25:46 | brapse enters the room. | |
| 01:28:04 | yugui enters the room. | |
| 01:28:51 | jbarnette leaves the room. | |
| 01:33:44 | qrush enters the room. | |
| 01:35:45 | binary42 enters the room. | |
| 01:35:53 | hemulen leaves the room. | |
| 01:39:55 | benburkert enters the room. | |
| 01:40:08 | drfreeze leaves the room. | |
| 01:40:33 | atduskgreg enters the room. | |
| 01:40:48 | mutle_ enters the room. | |
| 01:41:47 | drfreeze enters the room. | |
| 01:46:46 | binary42 leaves the room. | |
| 01:46:50 | jtoy enters the room. | |
| 01:46:51 | binary42 enters the room. | |
| 01:49:00 | mutle leaves the room. | |
| 01:49:50 | dfg59 leaves the room. | |
| 01:49:59 | cored enters the room. | |
| 01:56:30 | Ingmar_ enters the room. | |
| 02:06:56 | AndrewO enters the room. | |
| 02:07:30 | Ingmar leaves the room. | |
| 02:09:35 | rphillips leaves the room. | |
| 02:10:00 | robin_dewd leaves the room. | |
| 02:19:03 | c0sin leaves the room. | |
| 02:20:02 | seydar | zenspider: for missing file methods, you know i knocked off 3 from your list? |
| 02:20:30 | seydar | zenspider: gonna try to get three more tonight |
| 02:23:12 | seydar | are those methods on the File class or on File instances? |
| 02:23:26 | seydar | file class methods. got it |
| 02:23:43 | antares leaves the room. | |
| 02:24:21 | VVSiz_ enters the room. | |
| 02:26:36 | ryanlowe leaves the room. | |
| 02:28:33 | seydar | should we even implement lchown and lchmod? they're not available on most systems |
| 02:32:58 | _eric enters the room. | |
| 02:39:14 | seydar leaves the room. | |
| 02:39:20 | neelance leaves the room. | |
| 02:42:03 | VVSiz leaves the room. | |
| 02:45:30 | roo leaves the room. | |
| 02:51:20 | roo enters the room. | |
| 02:51:39 | binary42 leaves the room. | |
| 02:51:45 | benny enters the room. | |
| 03:00:49 | Fullmoon leaves the room. | |
| 03:06:07 | lchin enters the room. | |
| 03:09:32 | obvio leaves the room. | |
| 03:19:19 | fbuilesv enters the room. | |
| 03:24:06 | ezmobius leaves the room. | |
| 03:26:44 | stepheneb enters the room. | |
| 03:29:50 | seydar enters the room. | |
| 03:30:43 | boyscout | 1 commit by Ari Brown |
| 03:30:44 | boyscout | * added a few missing File class methods; 3126aa4 |
| 03:30:51 | seydar | man |
| 03:30:55 | seydar | that _never_ gets old |
| 03:30:58 | seydar leaves the room. | |
| 03:36:34 | rubuildius_ppc | Ari Brown: 3126aa45d; 2539 files, 8461 examples, 28479 expectations, 0 failures, 0 errors |
| 03:37:46 | fbuilesv leaves the room. | |
| 03:39:50 | binary42 enters the room. | |
| 03:40:09 | fbuilesv enters the room. | |
| 03:41:26 | rubuildius_amd64 | Ari Brown: 3126aa45d; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 03:42:47 | rubuildius_ey64 | Ari Brown: 3126aa45d; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 03:44:57 | cored leaves the room. | |
| 03:47:45 | brapse leaves the room. | |
| 04:03:07 | dysinger leaves the room. | |
| 04:05:40 | benburkert_ enters the room. | |
| 04:15:59 | benburkert leaves the room. | |
| 04:25:42 | brapse enters the room. | |
| 04:37:58 | obvio171 enters the room. | |
| 04:38:31 | dysinger enters the room. | |
| 04:39:24 | stepheneb leaves the room. | |
| 04:39:34 | benburkert leaves the room. | |
| 04:42:36 | trythil enters the room. | |
| 04:44:56 | roo leaves the room. | |
| 04:48:16 | benburkert enters the room. | |
| 04:49:36 | seydar enters the room. | |
| 04:50:02 | rphillips enters the room. | |
| 04:50:51 | roo enters the room. | |
| 04:52:03 | atmos leaves the room. | |
| 04:53:30 | seydar leaves the room. | |
| 04:54:44 | atduskgreg leaves the room. | |
| 04:56:42 | edwardam_ enters the room. | |
| 04:57:34 | edwardam leaves the room. | |
| 05:03:11 | nicksieger leaves the room. | |
| 05:03:48 | nicksieger enters the room. | |
| 05:17:00 | AndrewO leaves the room. | |
| 05:20:21 | atduskgreg enters the room. | |
| 05:21:06 | fbuilesv leaves the room. | |
| 05:22:10 | fbuilesv enters the room. | |
| 05:33:36 | atmos enters the room. | |
| 05:37:40 | fbuilesv enters the room. | |
| 05:54:08 | dary enters the room. | |
| 05:54:17 | atduskgreg leaves the room. | |
| 05:55:10 | blakewatters leaves the room. | |
| 06:00:24 | blakewatters enters the room. | |
| 06:02:14 | blakewatters_ enters the room. | |
| 06:03:45 | blakewatters leaves the room. | |
| 06:13:15 | brapse leaves the room. | |
| 06:20:23 | benburkert leaves the room. | |
| 06:23:53 | atmos leaves the room. | |
| 06:28:00 | jackdempsey leaves the room. | |
| 06:28:22 | nicksieger leaves the room. | |
| 06:33:42 | thehcdreamer enters the room. | |
| 06:34:14 | dfg59 enters the room. | |
| 06:37:00 | gnufied enters the room. | |
| 06:40:14 | tarcieri | *boggle* @ ML |
| 06:40:30 | tarcieri | "I'd like to learn more about compilers and virtual machines [...] Can anyone recommend any books or online resources that will get me up to speed?" |
| 06:40:41 | tarcieri | "There are quite a few good resources on line as well. For openers, there's "Structure and Interpetation of Computer Programs". That's more oriented towards Scheme [than your question, but EVERYTHING'S REALLY JUST LISP, MAN]" |
| 06:40:59 | tarcieri | SICP is great and all... |
| 06:46:18 | w1rele55 enters the room. | |
| 07:01:00 | thehcdreamer leaves the room. | |
| 07:06:39 | wyhaines leaves the room. | |
| 07:10:29 | gnufied leaves the room. | |
| 07:12:46 | mass | all modern programming languages are just attempts to reimplement lisp with fewer parens |
| 07:12:49 | mass | ;-) |
| 07:13:40 | tarcieri | <3 grammars more complex than Lisp |
| 07:13:49 | evan | thats all of them. |
| 07:13:55 | tarcieri | heh |
| 07:14:05 | evan | binary operators are more complex than lisp grammar. |
| 07:15:33 | tarcieri | perhaps I should say <3 big ugly grammars that functional people hate because they're so far from Lisp |
| 07:15:52 | tarcieri | and therfore hard to munge with something macro-like |
| 07:16:30 | evan | I should make a shirt that on the back has a lambda in a circle with a line through it |
| 07:16:37 | evan | and on the front "I <3 state" |
| 07:16:42 | tarcieri | haha |
| 07:17:15 | tarcieri | I'm still yet to figure out why Erlang people hate multiple assignment so much |
| 07:17:18 | evan | or, more nerdy, on the front "state based human" |
| 07:18:33 | tarcieri | i'm in ur objects mutatin' ur state |
| 07:19:01 | evan | I'm in ur neurons, settin' ur state |
| 07:19:44 | brixen | I can understand why folks like pure functions |
| 07:19:52 | brixen | it's just not much fun to write programs with them |
| 07:20:00 | tarcieri | it's annoying and constrictive |
| 07:20:03 | evan | cause their control freaks? |
| 07:20:07 | evan | s/their/they're/ |
| 07:20:08 | brixen | heh |
| 07:21:21 | tarcieri | you can have methods that "modify" a receiver by reassigning it implicitly |
| 07:21:36 | tarcieri | even in a language with immutable state |
| 07:21:38 | tarcieri | but OMG SIDE EFFECTS |
| 07:21:43 | evan | RUN |
| 07:21:46 | evan | SIDE EFFECTS! |
| 07:23:15 | tarcieri | I have a branch of Reia where multiple assignment is almost working by compiling to SSA form |
| 07:23:57 | tarcieri | I tell the people on #erlang about it and they're like "wow I just completely lost interest in what you're doing" |
| 07:24:13 | tarcieri | apparently multiple assignment is AIDS |
| 07:24:16 | evan | hah |
| 07:24:19 | evan | let them leave. |
| 07:24:41 | trythil leaves the room. | |
| 07:57:27 | jackdempsey enters the room. | |
| 08:11:02 | jackdempsey leaves the room. | |
| 08:11:45 | dary leaves the room. | |
| 08:15:21 | thehcdreamer enters the room. | |
| 08:16:19 | dfg59 leaves the room. | |
| 08:29:41 | blakewatters_ leaves the room. | |
| 08:30:11 | Arjen_ enters the room. | |
| 08:36:34 | rue enters the room. | |
| 08:37:40 | neelance enters the room. | |
| 08:44:02 | dary enters the room. | |
| 08:44:10 | dary leaves the room. | |
| 08:44:29 | roo leaves the room. | |
| 08:45:22 | roo enters the room. | |
| 08:58:34 | atduskgreg enters the room. | |
| 09:02:13 | rue | Huh |
| 09:03:35 | wvdschel enters the room. | |
| 09:06:20 | obvio171 leaves the room. | |
| 09:06:37 | obvio171 enters the room. | |
| 09:11:01 | rue_XIV enters the room. | |
| 09:19:41 | atduskgr_ enters the room. | |
| 09:22:14 | roo leaves the room. | |
| 09:24:37 | NoKarma enters the room. | |
| 09:26:52 | neelance leaves the room. | |
| 09:29:24 | octopod enters the room. | |
| 09:32:46 | pauldix enters the room. | |
| 09:36:06 | atduskgreg leaves the room. | |
| 09:48:47 | enebo leaves the room. | |
| 09:50:03 | edwardam_ leaves the room. | |
| 09:51:41 | krsh enters the room. | |
| 09:51:42 | Arjen_ leaves the room. | |
| 10:07:26 | Yurik leaves the room. | |
| 10:10:22 | atduskgr_ leaves the room. | |
| 10:12:21 | pauldix leaves the room. | |
| 10:18:19 | octopod leaves the room. | |
| 10:18:20 | octopod_ enters the room. | |
| 10:26:07 | gnufied enters the room. | |
| 10:35:18 | antares enters the room. | |
| 10:48:21 | yasuhito enters the room. | |
| 11:12:55 | jtoy leaves the room. | |
| 11:13:37 | Maledictus enters the room. | |
| 11:22:51 | Fullmoon enters the room. | |
| 11:23:34 | Fullmoon leaves the room. | |
| 11:37:28 | hemulen enters the room. | |
| 11:40:37 | joachimm enters the room. | |
| 11:41:34 | hemulen leaves the room. | |
| 11:48:41 | imajes enters the room. | |
| 11:48:54 | krsh leaves the room. | |
| 11:52:25 | imajes_office leaves the room. | |
| 12:00:36 | yasuhito leaves the room. | |
| 12:10:45 | webmat enters the room. | |
| 12:32:26 | BlackEdder enters the room. | |
| 12:35:10 | chris2 enters the room. | |
| 13:03:37 | atduskgreg enters the room. | |
| 13:04:37 | joachimm leaves the room. | |
| 13:05:52 | ljulliar enters the room. | |
| 13:21:11 | cremes leaves the room. | |
| 13:21:33 | rubuildius_ppc leaves the room. | |
| 13:27:02 | lchin leaves the room. | |
| 13:27:27 | lchin enters the room. | |
| 13:30:26 | benny leaves the room. | |
| 13:33:55 | obvio171 leaves the room. | |
| 13:35:16 | benny enters the room. | |
| 13:35:24 | lchin leaves the room. | |
| 13:41:52 | atduskgreg leaves the room. | |
| 13:56:20 | joachimm enters the room. | |
| 13:58:48 | jtoy enters the room. | |
| 14:08:55 | krsh enters the room. | |
| 14:10:59 | heycarsten enters the room. | |
| 14:11:40 | binary42 leaves the room. | |
| 14:12:31 | michalw enters the room. | |
| 14:13:40 | benburkert enters the room. | |
| 14:17:05 | trythil enters the room. | |
| 14:17:43 | jtoy leaves the room. | |
| 14:19:29 | hemulen enters the room. | |
| 14:20:51 | trythil leaves the room. | |
| 14:23:10 | hemulen enters the room. | |
| 14:36:26 | BlackEdder enters the room. | |
| 14:36:30 | moofbong enters the room. | |
| 14:37:54 | pauldix enters the room. | |
| 14:39:29 | pauldix leaves the room. | |
| 14:39:56 | pauldix enters the room. | |
| 14:40:32 | robin_dewd enters the room. | |
| 14:42:09 | imajes leaves the room. | |
| 14:45:33 | pauldix leaves the room. | |
| 14:46:04 | pauldix enters the room. | |
| 14:48:02 | pauldix leaves the room. | |
| 14:48:14 | imajes enters the room. | |
| 14:48:29 | pauldix enters the room. | |
| 14:49:06 | pauldix leaves the room. | |
| 14:50:08 | pauldix enters the room. | |
| 15:00:53 | wyhaines enters the room. | |
| 15:00:56 | stepheneb enters the room. | |
| 15:06:18 | stepheneb_ enters the room. | |
| 15:08:12 | stepheneb_ leaves the room. | |
| 15:08:27 | stepheneb leaves the room. | |
| 15:08:45 | stepheneb enters the room. | |
| 15:15:57 | cremes enters the room. | |
| 15:17:49 | wmoxam enters the room. | |
| 15:23:05 | fbuilesv leaves the room. | |
| 15:25:37 | loincloth enters the room. | |
| 15:32:31 | jackdempsey enters the room. | |
| 15:33:02 | pauldix leaves the room. | |
| 15:35:09 | gnufied leaves the room. | |
| 15:35:16 | cremes leaves the room. | |
| 15:35:29 | cremes enters the room. | |
| 15:36:00 | benburkert leaves the room. | |
| 15:37:07 | pauldix enters the room. | |
| 15:41:14 | Yurik enters the room. | |
| 15:41:35 | yugui leaves the room. | |
| 15:44:47 | benny leaves the room. | |
| 15:53:05 | joachimm leaves the room. | |
| 15:53:05 | loincloth leaves the room. | |
| 15:54:43 | krsh leaves the room. | |
| 15:54:59 | loincloth enters the room. | |
| 15:57:54 | jackdempsey leaves the room. | |
| 16:02:37 | brapse enters the room. | |
| 16:04:02 | michalw leaves the room. | |
| 16:04:07 | dysinger enters the room. | |
| 16:09:58 | benburkert enters the room. | |
| 16:14:44 | yasuhito enters the room. | |
| 16:17:23 | blakewatters enters the room. | |
| 16:24:55 | anonuser leaves the room. | |
| 16:30:14 | anonuser enters the room. | |
| 16:36:18 | stepheneb_ enters the room. | |
| 16:41:27 | dfg59 enters the room. | |
| 16:47:16 | benny enters the room. | |
| 16:48:04 | lopex enters the room. | |
| 16:52:28 | stepheneb leaves the room. | |
| 16:53:06 | headius enters the room. | |
| 16:56:27 | ijcd enters the room. | |
| 16:58:33 | nicksieger enters the room. | |
| 17:03:13 | drfreeze leaves the room. | |
| 17:05:07 | wvdschel leaves the room. | |
| 17:10:45 | atmos enters the room. | |
| 17:10:46 | neelance enters the room. | |
| 17:12:46 | BlackEdder enters the room. | |
| 17:13:04 | atduskgreg enters the room. | |
| 17:14:34 | seydar enters the room. | |
| 17:18:48 | chris2 leaves the room. | |
| 17:19:53 | w1rele55 leaves the room. | |
| 17:20:07 | seydar | hazzah, yard runs on rubinius |
| 17:23:11 | hemulen leaves the room. | |
| 17:25:25 | brixen | seydar: sweet |
| 17:28:26 | ijcd leaves the room. | |
| 17:28:53 | antares | brixen: what's the state of cpp branch? is it soon-to-be-merged into master? |
| 17:32:08 | brixen | antares: precise ETA I don't know, but yes, it will be merged RSN |
| 17:32:31 | seydar | when installing gems, do i need to run `rake install` first? |
| 17:32:33 | brixen | antares: we should have better instructions in the README for trying it out |
| 17:33:22 | chad | seydar: you can do rbx gem install, regardless of where rbx is in your path... |
| 17:33:30 | chad | seydar: so, you shouldn't have to do rake install first |
| 17:33:46 | seydar | chad: but i dont have an 'rbx' command. i've been using shotgun/rubinius |
| 17:34:00 | chad | bin/rbx? |
| 17:34:20 | seydar | ahah! should i have been using that? |
| 17:34:45 | chad | i think they're the same thing |
| 17:34:51 | headius | brixen: is cpp branch functional right now? |
| 17:35:07 | chad | yea they are |
| 17:35:10 | chad | they're symlnked :) |
| 17:35:40 | seydar | chad: what did you do to make it so you only had to type 'rbx', and could do it from anywhere? alias it? |
| 17:35:48 | chad | yea |
| 17:35:48 | chad | alias |
| 17:36:01 | thehcdreamer leaves the room. | |
| 17:36:36 | brixen | headius: you can run the test, it runs some code afaik |
| 17:36:48 | headius | cool, performance looking better? |
| 17:37:03 | brixen | according to evan, 2x compiled in dev mode |
| 17:37:05 | headius | I started trying to build it but there were a lot of knobs to twist |
| 17:37:06 | brixen | so, a bit |
| 17:37:12 | evan | morning. |
| 17:37:16 | brixen | yeah, we'll smooth those out this week |
| 17:37:20 | brixen | morning evan |
| 17:37:32 | chad | heya evan |
| 17:38:08 | chad | yea, the cpp branch barfed on me last week when I tried to compile it, but I didn't have any tolerance for error-hunting at that time, so I forgot about it :) |
| 17:38:45 | evan | there are some build bugs with it, yeah. |
| 17:38:45 | seydar enters the room. | |
| 17:39:09 | brixen | chad: I want to chat with you about Hash at some point, but you're not here that much. best way to do that? |
| 17:39:26 | chad | i just forgot to log in this weekend. |
| 17:39:30 | chad | otherwise i'll be here quite a bit :) |
| 17:39:35 | hemulen enters the room. | |
| 17:39:37 | chad | also i'll send you my AIM info |
| 17:39:46 | brixen | sweet, thanks |
| 17:40:36 | chad | you wanted to chat with me about Hash eh? |
| 17:42:33 | brixen | yeah, organization-wise |
| 17:42:43 | brixen | pure ruby version, since we've replaced our C parts |
| 17:42:44 | yasuhito leaves the room. | |
| 17:43:25 | brixen | chad: gotta run to class now though. I'll ping ya later |
| 17:43:34 | chad | ok cool |
| 17:43:53 | evan | chad: hows the RCL going? |
| 17:44:19 | chad | i haven't done anything since Array. back to it this evening. got distracted by the Job :\ |
| 17:44:37 | evan | releases the hounds on rich |
| 17:44:42 | evan | is Array done? |
| 17:44:43 | chad | maybe i'll take a coffee break today and work on it a bit :) |
| 17:44:58 | chad | i haven't moved stuff into bootstrap on Array |
| 17:45:06 | chad | but I've moved stuff into common |
| 17:45:14 | evan | cool |
| 17:45:16 | evan | so getting there. |
| 17:45:23 | jbarnette enters the room. | |
| 17:45:24 | chad | still could move more, but I modified some of the things to move them over. |
| 17:45:34 | evan | thats fine. |
| 17:45:37 | Arjen_ enters the room. | |
| 17:45:53 | chad | i'll hit avi up today for some help setting up maglev to use it |
| 17:46:00 | chad | that will be more motivating |
| 17:46:14 | chad | since the end result of rearranging in rubinius is the same code continues to work :) |
| 17:46:48 | evan | yep! |
| 17:46:51 | evan | heh |
| 17:46:54 | evan | well, yeah |
| 17:47:05 | evan | you're reward for it working is more work :D |
| 17:48:30 | seydar | that sounds like a excellent deal |
| 17:49:07 | evan | and it can be yours for the low, low price of $0! |
| 17:49:37 | ljulliar leaves the room. | |
| 17:49:45 | seydar | evan: how are you all doc'ing the VM? |
| 17:50:14 | ljulliar enters the room. | |
| 17:50:30 | evan | well, i've got doxygen setup |
| 17:50:34 | evan | this morning |
| 17:50:40 | evan | i'm getting the tests running 100% again |
| 17:51:03 | evan | then i'll spend a little while adding some docs |
| 17:52:03 | seydar | is the C branch all doc'd? |
| 17:52:10 | evan | i wish |
| 17:52:11 | evan | but no. |
| 17:53:22 | seydar | hm. sounds like you need DocerMan |
| 17:53:35 | evan | we do. |
| 17:53:47 | seydar | oh damn |
| 17:54:11 | seydar | i was about to offer to be docerman, because i have rediscovered how much fun doc'ing is, but i realized that i have work to do |
| 17:55:18 | seydar | but i'll go doc up two core files today, how bout that? |
| 17:55:46 | evan | wonderful |
| 17:55:53 | evan | it's not a full time job |
| 17:55:59 | evan | just someone that has the eye for it |
| 17:56:10 | evan | can do it when they have the time. |
| 17:56:15 | evan | ideally, we'd all be doing it. |
| 17:56:56 | headius | pure-ruby hash eh? |
| 17:57:05 | seydar | *coughcough*yard*coughcough* |
| 17:57:32 | evan | seydar: we're not going to use yard now |
| 17:57:46 | evan | headius: eyah, our hash is already pure ruby |
| 17:57:50 | seydar | meanie. |
| 17:58:14 | headius | what are the dependencies? |
| 17:58:22 | evan | Tuple |
| 17:58:28 | evan | pretty sure thats it. |
| 17:58:45 | evan | but we should actually refactor that out |
| 17:58:52 | evan | and have a Hash::Bucket class instead |
| 17:58:54 | headius | I need to just slap together a tuple in jruby so I can try it |
| 17:59:29 | evan | it should be trivially easy |
| 17:59:34 | evan | thats the idea of the Tuple |
| 17:59:41 | headius | yeah |
| 18:01:33 | nicksieger leaves the room. | |
| 18:02:00 | nicksieger enters the room. | |
| 18:07:22 | chad | what is this yard thing you keep mentioning seydar |
| 18:07:38 | evan | Portuguese sounds so... funny. |
| 18:07:51 | evan | chad: it's a rdoc replacement |
| 18:08:03 | chad | ahh |
| 18:08:07 | chad | compatible with rdoc i hope? |
| 18:08:07 | seydar | chad: its a sweet (at least i think) documentation tool. like rdoc, but more extensible. PLUS (hopefully) it will have support for doc'ing C |
| 18:08:14 | seydar | oh, totally compatible |
| 18:08:51 | seydar | if it can get C/C++ parsing, then i would *really* push for rubinius to use it, because the entire project would be doc'd under one system |
| 18:09:51 | evan | chad: rdoc can doc C |
| 18:10:03 | evan | thats how the core of 1.8 is doc'd |
| 18:10:05 | chad | evan: i don't think you mean that message for me. |
| 18:10:09 | seydar | well then, rdoc has yard beat atm |
| 18:10:10 | evan | probably not. |
| 18:10:19 | chad | evan: I have Doc'd C with RDoc :) |
| 18:10:26 | evan | :D |
| 18:10:27 | evan | me too! |
| 18:10:37 | seydar | in which case i should *probably* eat my hat and start doc'ing the VM |
| 18:10:38 | evan | it doesn't really parse C |
| 18:10:42 | evan | it just looks for C comments |
| 18:10:54 | evan | and uses explicit context |
| 18:11:24 | edwardam enters the room. | |
| 18:11:28 | seydar | then why aren't we doc'ing the VM with rdoc? |
| 18:12:26 | evan | well |
| 18:12:37 | tarcieri | does RDoc have a mode that isn't intrinsically tied to Ruby C extensions? |
| 18:12:39 | evan | because it assumes what you're doc'ing is C code thats hooked up to ruby |
| 18:12:44 | evan | and thats not the case for the VM |
| 18:12:52 | evan | tarcieri: no |
| 18:12:53 | evan | it doesn't. |
| 18:13:05 | seydar | what does it do that assumes its hooked up to ruby? |
| 18:13:42 | evan | cause thats what it was coded to do |
| 18:13:48 | evan | yard will probably have the same assumption. |
| 18:14:30 | seydar | but *what* does it assume? |
| 18:14:31 | tarcieri | seydar: I believe it looks at function names and uses those to figure out what comments map to what |
| 18:14:50 | evan | seydar: if you have a C function, say, blah, and you doc it |
| 18:15:00 | evan | it tries to figure out how blah is callable from ruby |
| 18:15:20 | evan | ie, you use rb_define_method(a_class, "blah", blah, 0); |
| 18:15:22 | evan | at the bottom |
| 18:15:31 | evan | it will doc 'blah' as 'MyClass#blah' |
| 18:15:45 | seydar | gotcha |
| 18:16:05 | seydar | well then i'll have to make sure that the C parser doesnt get tied to ruby |
| 18:16:29 | evan | cool |
| 18:17:28 | drbrain | I just wanted you all to know |
| 18:17:34 | c0sin enters the room. | |
| 18:17:45 | drbrain | I was watching pictures on my Mac via UPnP on the PS3 last night |
| 18:17:59 | evan | i saw! |
| 18:18:02 | evan | very cool. |
| 18:18:15 | evan | hows the upnp thing coming? |
| 18:18:29 | evan | ironicly, i wrote a very simple upnp listener many years ago |
| 18:18:55 | evan | 2003, I believe |
| 18:19:05 | evan | it was one of my first little ruby scripts |
| 18:19:10 | octopod leaves the room. | |
| 18:19:36 | drbrain | great |
| 18:19:48 | seydar | whats cuby_primitives.rb doing in shotgun/lib? |
| 18:19:48 | drbrain | I spent two hours on a stupid bug |
| 18:19:58 | evan | seydar: clutter up the place. |
| 18:20:01 | drbrain | probably bitrotting |
| 18:20:09 | seydar | permission to delete? |
| 18:20:24 | evan | granted. |
| 18:20:54 | seydar | Deletion in progress. |
| 18:21:14 | evan | ok, the tests are running again in the cpp branch |
| 18:21:26 | evan | not fully clean, but they compile and run now |
| 18:21:31 | evan | 99% clean |
| 18:21:45 | evan | Failed 4 of 450 tests |
| 18:21:45 | evan | Success rate: 99% |
| 18:22:49 | drfreeze enters the room. | |
| 18:24:14 | evan | drfreeze: see pm |
| 18:24:57 | boyscout | 1 commit by Ari Brown |
| 18:24:58 | boyscout | * another day, another commit. trashed some bitrot; 856e0ef |
| 18:25:43 | neelance_ enters the room. | |
| 18:26:03 | seydar | boyscout: action pounds it with seydar |
| 18:26:04 | boyscout | pounds it with seydar |
| 18:26:20 | boyscout | Commands I know: action, help, save!, say, update_git |
| 18:27:51 | neelance leaves the room. | |
| 18:33:12 | rubuildius_ey64 | Ari Brown: 856e0ef22; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 18:34:53 | stepheneb_ leaves the room. | |
| 18:35:25 | stepheneb enters the room. | |
| 18:36:26 | rubuildius_amd64 | Ari Brown: 856e0ef22; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 18:38:39 | moofbong leaves the room. | |
| 18:42:34 | dgtized | evan: I get a cpp test failure that kills the runner.cpp |
| 18:42:57 | evan | um. |
| 18:43:01 | evan | could ya pastie the output? |
| 18:43:12 | ryanlowe enters the room. | |
| 18:43:48 | dgtized | evan: http://pastie.org/233986 |
| 18:44:12 | evan | thats... odd. |
| 18:44:19 | evan | could you do a 'rake clean' and try again? |
| 18:44:29 | drbrain | EPNS |
| 18:44:33 | drbrain | e-penis? |
| 18:44:59 | evan | that would be C++'s awesome name mangling at work. |
| 18:45:12 | dary enters the room. | |
| 18:45:15 | Defiler | evan: What triggers make to know about the 'GEN' concept? What executable is running when 'GEN' shows in the make output? |
| 18:45:26 | evan | it's in the Rakefile |
| 18:45:30 | Defiler | aha |
| 18:46:08 | dgtized | evan: rake clean, rake build, rake test -- same thing |
| 18:46:13 | evan | hrm. |
| 18:46:26 | evan | linux, right? |
| 18:46:36 | dgtized | yea, ubuntu 8.04 |
| 18:46:40 | dgtized | i386 |
| 18:46:45 | evan | k, i'll try it on a linux machine |
| 18:46:50 | seydar | in the Rakefile which generates some configure stuff, does it have access to all things normal ruby does? |
| 18:47:02 | Defiler | http://pastie.org/233990.txt |
| 18:47:08 | Defiler | that's what I get on HEAD right now. just pulled |
| 18:47:40 | dgtized | Defiler: I just pulled 5 minutes ago |
| 18:47:57 | Defiler | (on my macbook pro) |
| 18:47:59 | seydar | configure.rake, specifically |
| 18:48:23 | pauldix leaves the room. | |
| 18:48:53 | evan | Defiler: yep, thats what i'm getting. |
| 18:50:25 | Defiler | wild shit happens when I just run 'rake' out of the root instead of in '/vm' |
| 18:50:56 | drbrain | seydar: I think the answer you're looking for is 'yes' |
| 18:51:05 | evan | Defiler: yep. |
| 18:51:08 | evan | Defiler: it's busted. |
| 18:51:10 | evan | from there |
| 18:51:10 | seydar | drbrain: merci |
| 18:51:13 | evan | currently |
| 18:51:15 | seydar | drbrain: err, i meant thanks |
| 18:51:48 | drbrain | seydar: ha! I'm going to report you to the NH border patrol now |
| 19:00:42 | evan | hrm. socket.rb is letting -1 returns from Foreign.socket slip by |
| 19:01:18 | Defiler | we should split that file up |
| 19:01:19 | evan | oh. |
| 19:01:23 | evan | this code is just wrong. |
| 19:01:24 | Defiler | and have lib/socket/unix_socket.rb etc |
| 19:01:30 | evan | someone refactored incorrectly |
| 19:01:30 | nexcastellan | Which part of socket.rb? |
| 19:02:05 | evan | tcp_setup |
| 19:02:07 | nexcastellan | I am tracking down a race condition in resolv.rb and hope to push out some changes to socket.rb later today. My changes to socket.rb are primarily wrt UDPSocket, though. |
| 19:02:29 | evan | yeah, this is crazy town. |
| 19:03:07 | nexcastellan | Actually, I'm thinking of ripping out the threading code in resolv.rb altogether, I'm not sure the race conditions are solvable in rubinius. |
| 19:03:37 | Defiler | It is crazy hard to use threads inside a library implementation |
| 19:03:56 | nexcastellan | Threads are hard at the best of times, and it's making me rip my hair out in resolv.rb. |
| 19:04:13 | evan | nexcastellan: they have to be solvable. |
| 19:04:25 | evan | rewriting resolv.rb is not a solution. |
| 19:04:38 | evan | because wild code will use the same thing |
| 19:04:45 | evan | or use a bundled version of resolv.rb |
| 19:04:51 | nexcastellan | Okay, let me explain what I think is happening in resolv.rb. |
| 19:06:01 | nexcastellan | Depending on the thread ordering, we either execute the UDP socket send OR the UDP socket recv first. What's meant to happen is that the recv will go to sleep if it doesn't have any data. But (more) |
| 19:06:18 | nexcastellan | when it goes to sleep, everything goes to sleep. (more) |
| 19:06:42 | nexcastellan | So if you do the send first, then the recv, life is good. If you do it the other way around, you are never going to wake up. |
| 19:07:08 | evan | then we have to fix our Socket |
| 19:07:09 | Defiler | if something needs a particular ordering it needs a lock |
| 19:07:11 | nexcastellan | I'm not 100% sure this is what is happening, but certainly my calls to Resolv.getaddress work SOMETIMES and not other times, depending on the ordering. |
| 19:07:18 | Defiler | or it needs to not use threads |
| 19:07:24 | evan | no |
| 19:07:26 | evan | thats not a solution. |
| 19:07:31 | drbrain | Defiler: resolv.rb uses threads |
| 19:07:36 | drbrain | and that's how it's supposed to work |
| 19:07:36 | evan | we have to make resolv.rb work untouched |
| 19:08:00 | drbrain | recvfrom must only block the thread it was called in |
| 19:08:00 | Defiler | what's how it is supposed to work? |
| 19:08:03 | Defiler | aah |
| 19:08:17 | evan | the weirdness of resolv.rb needs to be refactored into specs |
| 19:08:18 | evan | on Socket and Thread, probably |
| 19:08:21 | nexcastellan | Heh. |
| 19:08:41 | evan | thats someone using blocking foreign calls when they shouldn't |
| 19:08:46 | drbrain | yeah, we only use C blocking calls in thread |
| 19:08:51 | evan | no |
| 19:08:54 | drbrain | because it's easy :) |
| 19:08:55 | evan | we NEVER use blocking C calls. |
| 19:08:58 | evan | if we are |
| 19:09:00 | evan | thats broken. |
| 19:09:09 | drbrain | err, C blocking calls in socket! |
| 19:09:12 | drbrain | yup |
| 19:09:18 | evan | we shouldn't be using them in socket |
| 19:09:20 | seydar | what identifies a blocking C call? |
| 19:09:25 | evan | seydar: the man page. |
| 19:09:27 | nexcastellan | recv(2) is blocking, unless you set NONBLOCK. And resolv.rb calls Socket::recv. |
| 19:09:33 | nexcastellan | #recv. |
| 19:09:37 | evan | nexcastellan: then Socket#recv is wrong |
| 19:09:39 | evan | very wrong. |
| 19:09:44 | drbrain | we never uses NONBLOCK |
| 19:09:49 | Defiler | Aren't there parts of the socket API that are meant to block? |
| 19:09:52 | Defiler | in MRI? |
| 19:09:54 | evan | full stop. |
| 19:09:59 | drbrain | no |
| 19:10:06 | drbrain | ... Defiler: no |
| 19:10:09 | nexcastellan | (Always take what I say with a grain of salt, mind you...) |
| 19:10:17 | evan | ruby code may NEVER call a blocking C function without knowing it wont block |
| 19:10:20 | smparkes leaves the room. | |
| 19:10:24 | evan | and the way you know is by using the Scheduler |
| 19:10:27 | drbrain | internally MRI does nonblocking operations and thread-switches |
| 19:10:37 | evan | drbrain: no |
| 19:10:40 | evan | it doesn't use nonblocking ops |
| 19:10:54 | evan | it uses select() to know that when it calls something, it wont block. |
| 19:11:05 | Defiler | Doesn't select block? |
| 19:11:23 | ezmobius enters the room. | |
| 19:11:40 | drbrain | evan: ruby_connect() |
| 19:11:46 | nexcastellan | How do you set NONBLOCK in Windows, by the way? |
| 19:11:54 | drbrain | fcntl(fd, F_SETFL, mode|NONBLOCKING); |
| 19:12:08 | nexcastellan | I think that doesn't work in Windows, though I could be thinking O_NONBLOCK. |
| 19:12:18 | drbrain | windows is all busted with respect to IO |
| 19:12:35 | Defiler | Yeah, we are going to have a bunch of these functions overridden in the win32 platform files |
| 19:12:35 | smparkes enters the room. | |
| 19:12:38 | eventualbuddha enters the room. | |
| 19:12:40 | Defiler | When we get to that, I suspect |
| 19:12:47 | evan | drbrain: check out io.c |
| 19:12:53 | evan | and when it does a read() or fread() |
| 19:13:00 | evan | it doesn't put the fd in NONBLOCK mode |
| 19:13:00 | drbrain | yeah |
| 19:13:18 | evan | it uses rb_io_check_readable to know that the function wont block |
| 19:13:24 | evan | thats what I mean |
| 19:13:37 | smparkes leaves the room. | |
| 19:13:56 | drbrain | evan: I'm assigning you a task |
| 19:14:01 | evan | k |
| 19:14:05 | evan | that is? |
| 19:14:15 | drbrain | document Scheduler so that people can figure out how to use it |
| 19:14:24 | drbrain | because I have absolutely no clue how to use the thing |
| 19:14:25 | evan | i thought it was documented some... |
| 19:14:29 | evan | thats bad. |
| 19:14:29 | drbrain | or channels |
| 19:14:31 | evan | ok |
| 19:14:34 | evan | thats a big fail |
| 19:14:35 | Defiler | Yeah I have no idea how those work |
| 19:14:42 | evan | because you can't writing socket.rb without knowing how to use them. |
| 19:15:00 | evan | all attempts will result in this problem we have with resolv.rb |
| 19:15:02 | Defiler | My cargo cult in socket.rb has a whole priesthood hierarchy |
| 19:15:12 | evan | i'll write it right now. |
| 19:15:17 | drbrain | $ grep -c \# kernel/bootstrap/scheduler.rb |
| 19:15:18 | evan | it's fairly short. |
| 19:15:20 | drbrain | 0 |
| 19:15:24 | Defiler | haha |
| 19:15:33 | drbrain | examples too, please |
| 19:15:45 | evan | k. |
| 19:15:48 | evan | writing now. |
| 19:17:25 | drbrain | #642 is now yours |
| 19:17:52 | nexcastellan | How was rb_io_check_readable ensure that a recv won't block? It seems to just check if the descriptor is open for reading, not whether there's anything to read. |
| 19:19:19 | evan | no |
| 19:19:22 | evan | it checks it's readable too. |
| 19:19:26 | evan | using rb_schedule() |
| 19:19:31 | drbrain | rb_io_wait_readable() |
| 19:19:42 | evan | oh, yes thats what I mean. |
| 19:20:02 | drbrain | and rb_thread_wait_fd() |
| 19:20:15 | drbrain | rb_thread_schedule() is the magic |
| 19:20:42 | eventualbuddha leaves the room. | |
| 19:21:25 | Defiler | rb_sword_turn(EVERY_WAY); |
| 19:23:20 | ezmobius leaves the room. | |
| 19:24:00 | dysinger leaves the room. | |
| 19:24:37 | ljulliar leaves the room. | |
| 19:25:07 | smparkes enters the room. | |
| 19:25:34 | eventualbuddha enters the room. | |
| 19:25:38 | ijcd enters the room. | |
| 19:26:20 | dysinger enters the room. | |
| 19:32:53 | Defiler | evan: Didn't that "on_stack?" for variables go away? |
| 19:33:37 | evan | yeah |
| 19:33:43 | evan | the compiler still has some code for them though |
| 19:33:45 | evan | but it's never used |
| 19:33:52 | dary leaves the room. | |
| 19:33:57 | evan | no variables are allocated on the stack |
| 19:34:35 | Defiler | OK, so if I am fixing some code in bytecode.rb, and I see a check for 'on_stack?', I can refactor the code as if it would always be false? |
| 19:35:22 | evan | yep |
| 19:35:40 | stepheneb_ enters the room. | |
| 19:37:47 | enebo enters the room. | |
| 19:42:18 | seydar | is MethodDescription in bytecode.rb still needed? its commented as a precursor to CompiledMethod |
| 19:42:40 | seydar | i lie. loooks like its still needed |
| 19:42:48 | ezmobius enters the room. | |
| 19:43:28 | seydar | but why is MethodDesc still there if its been "replaced" by CompiledMethod? |
| 19:44:35 | drbrain | maybe they documentation lies |
| 19:45:10 | seydar | maybe |
| 19:45:21 | seydar | we seek evan for this issue |
| 19:48:21 | evan | it lies |
| 19:48:25 | evan | it's not replaced. |
| 19:48:29 | evan | they're different classes. |
| 19:48:41 | evan | a precursor doesn't mean their the same |
| 19:48:58 | evan | it means that the contents of a MethodDescription are used to construct a CompiledMethod object |
| 19:49:52 | binary42 enters the room. | |
| 19:50:29 | Defiler | ooh, this is a fun compiler bug |
| 19:51:50 | binary42_ enters the room. | |
| 19:51:53 | binary42 leaves the room. | |
| 19:52:08 | moofbong enters the room. | |
| 19:52:17 | stepheneb leaves the room. | |
| 19:52:22 | michalw enters the room. | |
| 19:54:23 | Defiler | evan: got a second to look at lib/compiler/nodes.rb with me for a sec? |
| 19:54:35 | Defiler | line 1235 in master |
| 19:56:05 | evan | I will shortly. |
| 19:56:14 | Defiler | k |
| 19:57:10 | boyscout | 8 commits by Christopher Thompson |
| 19:57:12 | boyscout | * Return full message (bytes_read) on socket.; 44665db |
| 19:57:13 | boyscout | * There isn't a Mutex#sleep, use Kernel#sleep.; bc23bf6 |
| 19:57:14 | boyscout | * Add recvfrom_nonblock.; a1ce03f |
| 19:57:15 | boyscout | * Add IPSocket#recvfrom(); 137c169 |
| 19:57:16 | boyscout | * Ooops, remove call to debugger.; e5e2568 |
| 19:57:17 | boyscout | ... |
| 19:59:06 | seydar | drbrain: can you help me get some doc for Kernel#select and IO#select? |
| 19:59:19 | drbrain | seydar: man select |
| 19:59:34 | seydar | lame |
| 19:59:49 | seydar | how long should i make the description? |
| 20:00:25 | drbrain | I believe select can be described in 2 paragraphs reasonably well |
| 20:03:26 | michaellatta enters the room. | |
| 20:04:28 | seydar | i should make this two commits |
| 20:05:26 | boyscout | 2 commits by Evan Phoenix |
| 20:05:27 | boyscout | * Channel documentation; be813e6 |
| 20:05:28 | boyscout | * Documentation for Scheduler; 172952d |
| 20:05:30 | evan | drbrain: take a gander at that. |
| 20:06:23 | rubuildius_amd64 | Christopher Thompson: 44665db23; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 20:11:01 | seydar | drbrain: http://pastie.org/234083 |
| 20:15:26 | Defiler | evan: away from the keyboard for a second, but this is the scenario.. http://pastie.org/234082 |
| 20:15:53 | Defiler | evan: no hurry, but when you are free, maybe you could explain the difference between '@defaults' and '@optional' in the compiler. It seems redundant |
| 20:16:05 | evan | one sec |
| 20:16:07 | evan | i'm looking |
| 20:16:11 | rubuildius_ey64 | Evan Phoenix: be813e67f; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 20:16:12 | rubuildius_ey64 | Christopher Thompson: 44665db23; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 20:17:59 | michaellatta leaves the room. | |
| 20:18:26 | rubuildius_amd64 | Evan Phoenix: be813e67f; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 20:19:06 | seydar leaves the room. | |
| 20:19:12 | evan | Defiler: why is b showing up in the args at all? |
| 20:19:15 | evan | should it? |
| 20:19:18 | evan | i read |
| 20:19:22 | evan | def foo(a = b = nil) |
| 20:19:37 | evan | to be that you're creating a local called b, but that it's not an arg |
| 20:21:32 | Defiler | a has a default value of 'create a local called b' |
| 20:21:35 | Defiler | I believe is how it reads |
| 20:21:46 | Defiler | (got this from ticket 634) |
| 20:21:59 | evan | ok |
| 20:22:07 | evan | so why is B showing up in the Arguments node then? |
| 20:22:10 | evan | it shouldn't |
| 20:22:14 | evan | if it's just a local |
| 20:22:19 | Defiler | describe "a method definition that sets more than one default parameter all to the same value" do |
| 20:22:21 | evan | thats a parser bug |
| 20:22:24 | Defiler | is the description of the spec |
| 20:22:42 | Defiler | so I guess we are reading it wrong.. it's really multiple defaults? |
| 20:22:44 | Defiler | wacky |
| 20:23:09 | Defiler | I wonder if that is a trustworthy understanding of the MRI intent |
| 20:25:50 | evan | well |
| 20:25:59 | evan | PT shows b as an argument too |
| 20:26:27 | evan | yep |
| 20:26:30 | Defiler | note this code I pointed us at though |
| 20:26:33 | evan | PT has it same as our sexp |
| 20:26:35 | Defiler | most of it is about some parsetree bug |
| 20:26:42 | Defiler | so that makes me trust it less |
| 20:27:22 | evan | true |
| 20:27:31 | Defiler | That and that ryan character was involved |
| 20:27:52 | evan | esp. since http://pastie.org/234107 |
| 20:28:00 | evan | see how, if you pass in an arg |
| 20:28:03 | evan | a is set, but not b. |
| 20:28:32 | Defiler | oh, yeah |
| 20:28:41 | evan | so a is the arg |
| 20:28:43 | evan | not b. |
| 20:28:45 | Defiler | that makes it pretty clear. that spec is named improperly |
| 20:28:46 | evan | so PT and rbx are wrong. |
| 20:28:52 | smparkes leaves the room. | |
| 20:28:57 | evan | headius: *poke* |
| 20:29:02 | evan | lets see what jruby says... |
| 20:29:10 | smparkes enters the room. | |
| 20:29:56 | smparkes leaves the room. | |
| 20:30:01 | smparkes enters the room. | |
| 20:30:58 | smparkes1 enters the room. | |
| 20:31:07 | smparkes1 leaves the room. | |
| 20:31:53 | evan | smparkes: please stop it |
| 20:31:58 | octopod enters the room. | |
| 20:33:21 | heycarsten leaves the room. | |
| 20:33:51 | heycarsten enters the room. | |
| 20:34:54 | headius | wazzat |
| 20:35:16 | headius | oh, yes, funky local stuff |
| 20:35:18 | headius | what about it |
| 20:35:36 | evan | def foo(a = b = 1) |
| 20:35:40 | headius | yep |
| 20:35:40 | evan | a is the argument, right? not b. |
| 20:35:47 | headius | a is the argument, yes |
| 20:35:50 | evan | b is a local thats created when the default expression is run. |
| 20:35:51 | evan | ok. |
| 20:35:54 | evan | so PT is wrong. |
| 20:36:17 | headius | I dunno how your parser works, also, but for us b gets the second local slote |
| 20:36:19 | Defiler | but b should be initialized to nil even if a value is supplied for a? |
| 20:36:19 | headius | confounding |
| 20:36:20 | Defiler | Because I notice we don't get a nameerror there |
| 20:36:32 | headius | Defiler: b is still a local var, it's just an unassigned ar |
| 20:36:38 | headius | so defaults to nil |
| 20:36:55 | evan | yeah |
| 20:36:56 | Defiler | yeah |
| 20:37:01 | evan | it should just be nil if you call foo(1) |
| 20:37:09 | headius | it's odd behavior, but ola pointed out one use for it |
| 20:37:12 | Defiler | So our sexp input is wrong here |
| 20:37:17 | evan | yep |
| 20:37:25 | headius | def foo(a = (used_default = true; 1)) |
| 20:37:25 | Defiler | ugh |
| 20:37:31 | headius | to know if you ended up with a default value |
| 20:37:37 | headius | obscure, naturally |
| 20:37:44 | Defiler | clever |
| 20:38:16 | evan | nice. |
| 20:38:37 | evan | PT gets that one wrong too |
| 20:38:46 | Fullmoon enters the room. | |
| 20:38:58 | evan | it must be searching and using the last one one seen |
| 20:39:26 | Defiler | we're expecting an array of lvars here and only getting one, for that matter |
| 20:40:10 | boyscout | 1 commit by Ari Brown |
| 20:40:11 | boyscout | * Doc'd core/io.rb and core/symbol.rb; dbe4f9b |
| 20:40:27 | evan | Defiler: where do you think we're expecting an array of lvars? |
| 20:40:30 | evan | in the sexp? |
| 20:40:59 | evan | the only thing thats wrong in the sexp is that it's got [:args, :b, ...] instead of [:args, :a, .... ] |
| 20:41:02 | Defiler | lib/compiler/bytecode.rb line around 2143 (I have added some comments locally) |
| 20:41:17 | Defiler | but there is @optional.each |
| 20:41:32 | Defiler | which is our opportunity to init the lvar correctly, it seems to me |
| 20:41:34 | Defiler | maybe I am wrong |
| 20:41:35 | evan | oh, thats not that big of a deal |
| 20:41:40 | evan | you're wrong |
| 20:41:43 | evan | because the simple case of |
| 20:41:47 | evan | def foo(a = 1) |
| 20:41:52 | evan | doesn't generate an array |
| 20:41:54 | evan | and it works fine. |
| 20:42:04 | Defiler | it does I believe |
| 20:42:06 | evan | rather, the sexp doesn't have an array |
| 20:42:10 | Defiler | I always get an array object for @optional |
| 20:42:11 | evan | but the compiler figures it out |
| 20:42:14 | Defiler | oh, yes |
| 20:42:18 | Defiler | agreed |
| 20:42:22 | Defiler | I meant after we get our hands on it |
| 20:42:27 | Defiler | coming out of Argument#consume |
| 20:42:34 | raganwald enters the room. | |
| 20:42:38 | headius | what does pt output for things like def foo(a = (def foo; false; end; true)) |
| 20:44:52 | evan | one sec |
| 20:45:13 | rubuildius_ey64 | Ari Brown: dbe4f9bb1; build failed! nopaste error: something bad happened, stack trace follows |
| 20:45:25 | evan | [[:class, :Blah, [:const, :Object], [:defn, :foo, [:scope, [:block, [:args, :a, [:block, [:lasgn, :a, [:block, [:defn, :foo, [:scope, [:block, [:args], [:false]]]], [:true]]]]], [:lvar, :a]]]]]] |
| 20:45:31 | evan | ack. bigger than I thought |
| 20:46:25 | Defiler | that looks pretty sane to me, right? |
| 20:46:30 | evan | yeah |
| 20:46:32 | evan | thats fine. |
| 20:46:45 | evan | i think the only bug is PT is reporting the wrong argument name |
| 20:47:04 | evan | Defiler: you know |
| 20:47:11 | evan | you can use the Compiler API directly |
| 20:47:14 | evan | and feed it any sexp you want |
| 20:47:17 | evan | to test stuff out. |
| 20:47:21 | Defiler | Oh, yeah. I should do that |
| 20:50:03 | rubuildius_ey64 leaves the room. | |
| 20:50:16 | raganwald leaves the room. | |
| 20:51:25 | rubuildius_amd64 | Ari Brown: dbe4f9bb1; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 20:51:38 | dary enters the room. | |
| 20:52:06 | bitsweat enters the room. | |
| 21:01:35 | rubuildius_ey64 enters the room. | |
| 21:01:55 | jbarnette leaves the room. | |
| 21:12:50 | rubuildius_ey64 | Ari Brown: dbe4f9bb1; 2539 files, 8459 examples, 28445 expectations, 0 failures, 0 errors |
| 21:13:46 | dary leaves the room. | |
| 21:20:54 | brapse leaves the room. | |
| 21:25:07 | jbarnette enters the room. | |
| 21:28:12 | benburkert leaves the room. | |
| 21:32:12 | benburkert enters the room. | |
| 21:32:36 | octopod leaves the room. | |
| 21:34:11 | imajes enters the room. | |
| 21:34:39 | jbarnette leaves the room. | |
| 21:36:12 | dgtized | who is chris thompson? |
| 21:37:49 | Defiler | Is that nexcastellan's real name? |
| 21:37:58 | Defiler | yeah |
| 21:37:58 | dgtized | just swapping thread.rb from @mutex.sleep to sleep doesn't fix thread |
| 21:38:00 | nexcastellan | Yeap. |
| 21:38:02 | dgtized | it's still broken |
| 21:38:18 | nexcastellan | It was working for my specs, now committed to rubyspecs. |
| 21:38:26 | nexcastellan | I freely admit that it may not be the right solution, though. |
| 21:38:39 | dgtized | http://pastie.org/234197 |
| 21:38:52 | dgtized | it's an instant deadlock |
| 21:39:22 | nexcastellan | Okay, thanks, I'll take a look at that this afternoon. I'm working on something else right at the moment. |
| 21:39:52 | nexcastellan | I wonder why resolv.rb worked. Perhaps it just never hit that bit. |
| 21:39:56 | imajes leaves the room. | |
| 21:40:10 | dgtized | k, I put in a fix that passed that test but that somehow broke webrick |
| 21:40:46 | nexcastellan | Note that @mutex.sleep would always have failed before, as that method didn't exist. Not having seen your fix, I'm not sure how you managed to break Webrick. |