Show enters and exits. Hide enters and exits.
| 00:01:07 | brixen | slava: it is possible to run it with fork, but not with threads |
| 00:01:16 | brixen | although, I'm sure I could rectify that :) |
| 00:01:30 | slava | you could make your spec runs twice as fast or whatever on a dual core |
| 00:01:37 | brixen | sure |
| 00:02:40 | brixen | lopex: did you see the recent theory that there was no big bang? |
| 00:02:58 | lopex | brixen: where was it ? |
| 00:02:59 | brixen | lopex: and that attempts to explain expansion without dark matter? |
| 00:03:07 | brixen | lopex: le'me see if I can find it... |
| 00:03:31 | slava | rubyspec specs look neat |
| 00:03:31 | lopex | brixen: otoh, big bang theory never claimed there was "nothing" before |
| 00:04:13 | brixen | lopex: http://www.technologyreview.com/blog/arxiv/25492/ |
| 00:04:32 | brixen | lopex: right, but this is interesting |
| 00:04:38 | evan | for http://gist.github.com/505551, I love output like: |
| 00:04:57 | evan | https://gist.github.com/aaecbff10c0dcd6321d5 |
| 00:05:48 | brixen | woot! |
| 00:06:22 | brixen | so will some sorry sucker that doesn't realize he's concurrently updating a string :) |
| 00:10:24 | evan | :D |
| 00:18:49 | lopex | brixen: I dont have enough comsmological knowledge to evalutate that, but hey that's why we have theories |
| 00:19:07 | lopex | (in scientifical meaning) |
| 00:19:46 | brixen | lopex: yeah, it's just interesting to ponder |
| 00:19:48 | lopex | I'm ok with big bang theory being abandomend one day potentially |
| 00:20:00 | lopex | yeah |
| 00:20:04 | lopex | as always |
| 00:20:17 | brixen | I'm hoping they figure out the connection between general relativity and QM in my lifetime |
| 00:20:28 | lopex | the UAT ? |
| 00:20:38 | brixen | yeah |
| 00:20:53 | brixen | or GUT |
| 00:21:01 | lopex | ah, yeah |
| 00:21:04 | lopex | grand |
| 00:21:30 | lopex | I have more difficulties memorizing these since I'm not english native |
| 00:21:57 | brixen | :) |
| 00:22:14 | evan | hehehe |
| 00:22:15 | evan | 33.235426 0.081886 33.317312 ( 17.785480) |
| 00:22:22 | evan | more user time than real time. |
| 00:22:23 | evan | love it. |
| 00:22:28 | brixen | also, I'm hoping to see atomic energy devices the size of small batteries |
| 00:22:37 | brixen | evan: yay! |
| 00:27:07 | evan | my new favorite gdb command: thread apply all bt 10 |
| 00:27:27 | brixen | ah cool |
| 00:27:52 | evan | i'm running the thread specs now |
| 00:28:01 | evan | got a hang on "Thread.critical= is reentrant" |
| 00:28:03 | evan | oh the irony. |
| 00:28:10 | brixen | heh |
| 00:39:48 | evan | oh joy, the Thread specs. |
| 00:41:28 | brixen | oh ugh :( |
| 00:41:44 | brixen | we were going to rewrite those once time in SF |
| 00:41:54 | brixen | er one time* |
| 00:46:47 | evan | yeah, we were. |
| 00:53:05 | evan | man, these Thread#critical specs are sillypants. |
| 00:56:29 | brixen | no surprise there |
| 00:59:57 | evan | some of these specs make seriously no sense. |
| 01:00:05 | evan | i feel like maybe there is some justification |
| 01:00:10 | evan | but each need a paragraph explanation |
| 01:00:24 | evan | not => it "killing dying running does nothing" do |
| 01:00:37 | brixen | haha |
| 01:00:51 | brixen | oh man, I love that spec description |
| 01:00:59 | brixen | pure poetry |
| 01:00:59 | evan | we should put that on a shirt. |
| 01:01:04 | brixen | yes! |
| 01:01:09 | brixen | I'm going to do that |
| 01:01:23 | evan | actually, i'm thinking about doing new rubinius shirts for rubyconf |
| 01:01:41 | brixen | cool |
| 01:31:42 | dwaite | I want a new rubinius shirt! :O |
| 01:31:49 | dwaite | to replace my previously nonexisting shirt |
| 01:34:20 | Defiler | I love my rubinius shirt, but the cut on it is sooooo weird |
| 01:34:30 | Defiler | easily the weirdest-fitting shirt I own, and I collect t-shirts heh |
| 01:34:37 | Defiler | I should get it tailored |
| 01:38:04 | dwaite | might I suggest for the T-shirt http://img14.imageshack.us/img14/6545/reubensandwich.jpg |
| 01:38:23 | dwaite | (aww, that would have been way better if I had shortened the URL :-/ |
| 01:38:52 | dwaite | if you go to conferences, you might happen to collect cheaply-made t-shirts |
| 01:39:38 | dwaite | I have some shirts I wear under polos and the like I bought from an outlet store. get home and am like, wtf, whats that pocket doing over there? |
| 01:40:36 | Defiler | Well, the rubinius shirt isn't a conference shirt |
| 01:40:45 | Defiler | It is a limited edition super-lightweight racing shirt. |
| 01:40:57 | Defiler | In fact, we should really be talking about it in Italian. |
| 01:42:53 | brixen | haha |
| 01:42:58 | brixen | indeed |
| 01:43:49 | Defiler | RBX Superleggera |
| 01:44:22 | brixen | dwaite: also, you get your shirt when you have kireru running |
| 01:50:01 | dwaite | brixen: thats so not fair :P |
| 01:50:14 | dwaite | in that case, I don't think I'll share my second t-shirt idea http://img38.imageshack.us/img38/7186/rubenapkin.png |
| 01:51:58 | brixen | dwaite: seems fair to me :) |
| 01:53:03 | dwaite | so I screwed up my vacation plans, and probably will have to make it up on comp time |
| 01:53:25 | dwaite | soo .. probably won't have a chance to really think hard about tofu or kikeru until the 18th :-/ |
| 01:55:11 | dwaite | what was on the first rubinius shirt? |
| 01:55:21 | dwaite | I imagine it was either a bird or a turtle |
| 01:55:42 | dwaite | s/turtle/series of turtles/ |
| 01:55:50 | Defiler | It's just text |
| 01:55:54 | Defiler | and a small rubinius logo |
| 01:56:36 | dwaite | oh thats not interesting |
| 01:56:52 | dwaite | a sandwich or rube goldberg machine would be much better |
| 01:57:18 | Defiler | Where were you when it was happening? Probably sleeping or thinking about sleeping. |
| 01:57:21 | Defiler | So lazy. |
| 01:57:30 | Defiler | We were out here breaking rocks with our faces. |
| 01:57:35 | brixen | haha |
| 01:57:38 | dwaite | :( |
| 01:57:40 | Defiler | and we needed a shirt to keep the sun off |
| 01:57:42 | dwaite | so thats how that happened, Defiler |
| 01:57:53 | Defiler | Yes that is why the kids point and scream |
| 01:58:15 | Defiler | especially when I say 'We did this for youuuuu' and lumber toward them |
| 01:58:45 | dwaite | maybe if you weren't carrying the two pick axes |
| 01:58:47 | brixen | you know when you see someone pointing a gun at their feet, and you are inclined to say, "hey be careful there guy" |
| 01:58:52 | dwaite | but I understand, after breaking rocks with your face |
| 01:58:55 | brixen | instead help them to point it at their head |
| 01:59:18 | Defiler | Dear Youtube; what is your freaking problem? |
| 01:59:23 | dwaite | give a man fire, he'll be warm for a night. set a man on fire, he'll be warm the rest of his life |
| 01:59:33 | brixen | dwaite: priceless |
| 02:00:20 | dwaite | I am weakening on trying kikeru btw. I just don't think I have the knowledge to succeed at it currently |
| 02:00:56 | brixen | dwaite: who ever has the knowledge to succeed without first trying? |
| 02:01:06 | dwaite | well me on most projects |
| 02:01:33 | brixen | dwaite: besides, you should put that vast and painful java experience to good use |
| 02:01:35 | dwaite | my motto is, be a well-prepared know-it-all |
| 02:02:12 | dwaite | ...by continuing my involvement in java /cry |
| 02:02:56 | Defiler | I try to avoid doing anything again after I master it. |
| 02:04:21 | dwaite | do you try to avoid mastering essential things? |
| 02:04:42 | brixen | Defiler: we should design a dy-static site generator, I have some ideas |
| 02:04:54 | Defiler | cool |
| 02:05:02 | Defiler | I want to rework my blog so I can, uhh, post on it. |
| 02:05:06 | Defiler | Right now it's just too irritating |
| 02:05:07 | dwaite | dy-static site generator sounds like a physics term |
| 02:05:09 | brixen | Defiler: basically, I want to generate static content from something like Markdown for the rbx doc tool |
| 02:05:32 | brixen | but have the ability to embed dynamic shit, like Agent results for the rbx instance running the cods |
| 02:05:36 | brixen | er docs |
| 02:05:48 | dwaite | you should embed those parts vis XHR |
| 02:05:50 | dwaite | via |
| 02:05:54 | brixen | geez, shit asss wifi makes me dyslexic |
| 02:06:02 | Defiler | yarr |
| 02:06:08 | dwaite | why don't you find a more decent place to work? |
| 02:06:38 | brixen | dwaite: because I'm drinking my beer and when I asked for a to-go cup, they said no |
| 02:08:22 | brixen | Defiler: yeah, I'd like to use this for my blog too |
| 02:08:47 | dwaite | brixen, you have a blog? |
| 02:08:58 | brixen | dwaite: no, I have a graveyard |
| 02:09:10 | brixen | if ill-thought ideas and rants |
| 02:09:21 | brixen | s/if/of/ |
| 02:09:30 | dwaite | ahh yeah |
| 02:09:33 | dwaite | good rants never die |
| 02:09:41 | dwaite | just ask mel gibson |
| 02:10:45 | brixen | unfortunatel, I've never produced a rant of the caliber of a zed shaw rant, and I will have to atone for my shortcoming some day |
| 02:11:46 | dwaite | I guess I came into the ruby community too late to know, zed shaw = good overall? |
| 02:12:03 | dwaite | plus: created mongrel |
| 02:12:08 | dwaite | negative: created mongrel2 |
| 02:12:48 | brixen | heh, what's wrong with mongrel2? |
| 02:13:02 | brixen | he's giving you two options for hating him |
| 02:13:31 | brixen | I think zed generally rocks, having actually talked to him |
| 02:13:50 | brixen | but if I only knew him from his rants, my opinion would not be much diminished |
| 02:14:10 | dwaite | not be? |
| 02:14:34 | dwaite | ahh actually he changed the license |
| 02:14:42 | dwaite | he originally put it up as AGPL3 |
| 02:14:55 | dwaite | the most annoying license ever |
| 02:16:34 | dwaite | so brixen, how do you propose I start on kikeru? |
| 02:17:54 | brixen | well, my approach so far is to read the .class file into something like an AST that I can then use to emit rbx bytecode |
| 02:18:39 | brixen | translating java bytecode directly where possible and calling support routines where necessary |
| 02:18:44 | brixen | as a first cut |
| 02:19:09 | brixen | so I can create a .rbc file for the .class file |
| 02:19:20 | brixen | which you would then run |
| 02:26:57 | dwaite | how are classes resolved in rubinius bytecode? |
| 02:27:16 | dwaite | is it a Class stored under a global constant corresponding to its name? |
| 02:35:13 | brixen | dwaite: classes are referenced by symbols in a constants table depending on the scope in which the class is created |
| 02:35:46 | brixen | dwaite: bin/rbx compile -B is your friend |
| 02:35:52 | brixen | and works with -e also |
| 02:36:13 | brixen | eg bin/rbx compile -B -e 'class F; class G; end; end' |
| 05:45:37 | dwaite | bin/rbx compile -B -e 'class F; class G; end; end' |
| 07:02:14 | dbussink | evan: i see you were running thread specs? how far along is that coming? i have a fairly consistent crash on a one liner if you're interested :) |
| 07:02:38 | evan | i am |
| 07:02:43 | evan | i'm going through them now |
| 07:02:50 | evan | getting them to run without crashing and hanging |
| 08:07:24 | dbussink | evan: ah, sorry, did see you replied |
| 08:07:56 | dbussink | but this line fails for me not every time, but pretty frequent: t2 = Thread.new { raise NotImplementedError.new("whatever") } |
| 08:08:01 | dbussink | like 1 in 10 times or so |
| 08:08:07 | dbussink | i've caught it in gdb various times |
| 12:40:39 | seydar | now i don't mean to brag... |
| 12:40:49 | seydar | but rbx just passed every single test on my machine |
| 12:40:50 | dbussink | seydar: so brag :) |
| 12:40:51 | seydar | nbd |
| 12:41:21 | seydar | I have only once experienced this kind of euphoria |
| 12:41:32 | dbussink | seydar: what does hell's thermostate give you? |
| 12:41:33 | seydar | and that was on a headless linux box whose IP is now MIA |
| 12:42:04 | seydar | it's giving me about a 21 degrees celsius |
| 12:42:32 | seydar | and I'm gonna start commenting up the gc.cpp code because it's terribly uncommented |
| 12:42:52 | seydar | and by start, i mean start sometimes 12 hours from now |
| 12:44:22 | seydar | but off to work! |
| 12:44:36 | seydar | dbussink: what do you do in your day job? |
| 12:44:47 | dbussink | seydar: mostly developing stuff |
| 12:51:33 | dbussink | seydar: and you? |
| 12:54:55 | seydar | dbussink: i work at a networking shop |
| 12:55:05 | seydar | learning my share about prefixes, asns, and BGP |
| 12:55:12 | seydar | developing stuff |
| 12:55:37 | seydar | gadurgle! http://pastie.org/1072821 and http://pastie.org/1072825 |
| 12:55:43 | seydar | bugs with rbx |
| 12:55:44 | dbussink | seydar: ah ok, thought you were stil in school? |
| 12:55:54 | dbussink | seydar: or a summertime job? |
| 12:56:02 | seydar | dbussink: well I just graduated high school, so this is a summer job before I head off to college |
| 12:57:32 | dbussink | seydar: ah ok, also moving for college then? |
| 12:58:48 | seydar | indeed! but at the end of august |
| 13:00:41 | dbussink | seydar: ah ok, cool, where are you going to |
| 13:00:43 | dbussink | ? |
| 13:00:58 | seydar | university of michigan |
| 13:01:02 | seydar | out in ann arbor, MI |
| 13:01:31 | seydar | alright, i gotta bounce |
| 13:01:35 | seydar | time for work |
| 13:01:44 | dbussink | ah, near detroit according to google maps :P |
| 13:01:44 | seydar | and this futures bug has stumped me thus far |
| 13:01:51 | dbussink | isn't from the usa |
| 13:02:03 | seydar | you're from the land of the dutch |
| 13:02:23 | seydar | speaking of dutch, i used to know a kid named hidde |
| 13:02:29 | seydar | good times, good times |
| 13:02:38 | seydar | leaves |
| 13:12:00 | seydar | dbussink: i did some thinking on my bike to work |
| 13:12:12 | seydar | and I decided that rbx's behavior (in those links I posted |
| 13:12:13 | seydar | ) |
| 13:12:23 | seydar | is the correct behavior, and MRI is being too kind |
| 13:12:49 | seydar | and to be honest, this is the response I expected from MRI the first time, but it didn't happen, so I was a little shocked |
| 13:13:28 | seydar | boyscout: botsnack |
| 13:13:38 | seydar | damn, i've lost my touch |
| 13:13:40 | seydar | botsnack |
| 13:16:26 | seydar | so then why is MRI being too kind |
| 13:25:15 | dbussink | seydar: well, it's probably that mri has more in c that makes it behave different |
| 13:28:00 | seydar | well now I need to rewrite my futures implementation |
| 13:30:26 | dbussink | seydar: you depend on this error? |
| 13:30:34 | dbussink | seydar: i see a backtrace in both pasties |
| 13:30:51 | seydar | it's just that this error doesn't occur in MRI |
| 13:30:57 | seydar | when it sounds like it should |
| 13:31:04 | seydar | because the errors make perfect sense |
| 13:42:44 | dbussink | seydar: can you further simplify it? maybe we can fix it relatively easily |
| 13:43:18 | seydar | well i don't think there's anything to fix. The behavior clearly isn't the same as MRI's, but rbx's sounds correct |
| 13:43:34 | seydar | assume there is no value yet |
| 13:43:52 | seydar | then if I call a method, it won't exist, so it will create a future to call that method |
| 13:44:25 | seydar | which immediately calls the block it's supposed to be running, which will fail, which will create another future, ad infinitum |
| 13:47:29 | seydar | does that line up with your interpretation of the code, dbussink? |
| 13:48:42 | dbussink | seydar: well, the reason that mri works is because inspect doesn't to_s things normally it seems |
| 13:49:19 | seydar | that explains the second one |
| 13:50:04 | seydar | where is #inspect defined? |
| 13:50:42 | dbussink | seydar: btw, why aren't you joining in the method missing? |
| 13:51:02 | dbussink | oh, wait, you want a new future |
| 13:51:15 | seydar | yeah. although I COULD join, since a new future == a new thread |
| 13:51:29 | seydar | actually holy shizznizzle |
| 13:51:44 | seydar | i'm at work right now where they don't have ruby, so i can't try this out |
| 13:52:00 | seydar | but I thinking joining in the new future would fix it |
| 13:52:07 | seydar | it would stop it from going down the rabbit hole |
| 13:52:26 | seydar | normally it would loop until the original thread finishes |
| 13:52:37 | seydar | but if we do a join, it holds there |
| 13:52:39 | seydar | fuck yeah! |
| 13:54:00 | seydar | dbussink, thoughts? |
| 13:54:25 | dbussink | seydar: you have to hold at some point :) |
| 13:54:40 | dbussink | so depending on your needs it might happen earlier or later |
| 13:55:49 | seydar | can you explain the "earlier or later" bit, and whether holding in #method_missing classifies as "earlier" or "later"? |
| 13:56:37 | dbussink | seydar: well, it could also return another lazy future |
| 13:57:38 | seydar | is there such a thing as an eager future? |
| 13:57:43 | dbussink | seydar: but does this all work with mri then? |
| 13:57:54 | dbussink | because this http://pastie.org/1072821 seems mri or isn't it? |
| 13:58:10 | dbussink | seydar: or are your irb names weird? |
| 13:58:23 | dbussink | ah, wait, i see some rbx stuff in there |
| 13:58:40 | seydar | yeah, i wasn't too sure it was rbx at first too, but it was |
| 13:58:46 | seydar | it all works with mri |
| 14:02:36 | seydar | so what's the difference between a lazy future and an eager future/ |
| 14:06:33 | dbussink | seydar: well, if you have a future consisting of another future, is it ok to wait for that dependent future to finish first |
| 14:06:34 | dbussink | or not |
| 14:07:05 | seydar | let's say future a contains future b |
| 14:07:17 | seydar | is it ok for future a to BLOCK while waiting for future b? no |
| 14:07:41 | seydar | is it ok for future a to spawn a new thread which waits for future b? yes |
| 14:07:58 | seydar | because spawning a new thread will remove the blocking of the main thread |
| 14:08:11 | seydar | and joining future b will prevent us from going down the rabbit hole |
| 14:08:47 | seydar | am i making sense? |
| 14:08:55 | dbussink | seydar: i think i know what you mean yeah |
| 14:09:12 | dbussink | but you should wait on the other future inside the block there yeah |
| 14:10:44 | seydar | yeah, that was a really good idea that you suggested |
| 14:11:07 | seydar | wow that's a relief |
| 14:11:10 | seydar | to have that sorted out now |
| 14:11:20 | seydar | i should probably file a bug report with MRI |
| 14:25:33 | goyox86 | morning! |
| 14:30:37 | seydar | mizornizzling, goyox86! |
| 15:57:22 | seydar | what's new in the world of the rbx |
| 15:57:24 | seydar | specifically |
| 15:57:29 | seydar | what's new in the past 6 months |
| 15:58:26 | Defiler | Power overwhelming! |
| 15:58:41 | seydar | what does that mea |
| 15:58:42 | seydar | n |
| 15:59:00 | Defiler | It means things keep getting better |
| 15:59:10 | Defiler | evan's working on the GIL these days |
| 16:03:05 | seydar | oho. |
| 16:03:31 | seydar | can you succinctly define the GIL and the problem it presents so that I can point people to this spot in the logs from now until forever as an explanation? |
| 16:07:01 | seydar | Defiler: and what have you been working on? |
| 16:07:35 | Defiler | http://knowmore.com/ |
| 16:08:16 | seydar | nice! |
| 16:10:44 | Defiler | going to public beta soon |
| 16:10:49 | Defiler | it's pretty badass actually |
| 16:11:03 | Defiler | Just got to get Cassandra wrangled properly, pretty much |
| 16:15:45 | seydar | well she pretty much tells the future |
| 16:16:05 | seydar | and can you explain the GIL love-hate issue? |
| 16:18:02 | brixen | seydar: the global interpreter lock (GIL) is a lock that prevents more than one thread from executing Ruby code at the same time |
| 16:18:08 | Defiler | Well, I'm not sure there's any love for the GIL |
| 16:18:09 | Defiler | heh |
| 16:18:15 | seydar | why does it exist |
| 16:18:17 | Defiler | it's just the easiest way to develop a system like this |
| 16:18:19 | seydar | what is its purpose |
| 16:18:22 | brixen | seydar: this is because the data structures for things like Array are not thread safe yet |
| 16:18:43 | seydar | and that is basically the only reason? |
| 16:18:44 | brixen | seydar: so, removing the GIL is a process of making everything threadsafe |
| 16:18:45 | Defiler | Imagine you are calling into the C++ code that adds an item to an array in memory |
| 16:19:01 | Defiler | and some other code is in the same code, two 'lines' ahead of you, working on the same array |
| 16:19:18 | Defiler | The lock is there to make sure each one sees what they pushed onto the array as the last thing on the array |
| 16:19:31 | brixen | seydar: consider this case http://gist.github.com/505551 |
| 16:19:44 | seydar | yargh, i understand threadsafe. |
| 16:20:05 | seydar | so is the GIL only used for unthreadsafe activities? |
| 16:20:15 | brixen | seydar: you can still get jumbled stuff like this https://gist.github.com/aaecbff10c0dcd6321d5 |
| 16:20:19 | Defiler | Without the GIL, there are no threadsafe activities |
| 16:20:46 | brixen | but the String object itself is sane, ie, its size is correct, its internal fields are consistent |
| 16:21:03 | brixen | seydar: it does not mean your multi-threaded program will be correct |
| 16:21:12 | seydar | indeed |
| 16:21:26 | brixen | it means the VM and data structures aren't broken when you concurrently update a single object |
| 16:21:31 | Defiler | Think about the C code for String; imagine it says "ask for the length of the existing string, add a character, add one to the length, and save that as the new length" |
| 16:21:31 | seydar | so how do you go about removing the GIL? how do you make array threadsafe without mutexes (which is what a GIL sounds like) |
| 16:21:43 | brixen | seydar: look at the hydra branch |
| 16:21:54 | Defiler | if two callers of that C code are doing it at the same time, they need to make sure the size ends up as 2, not 1 |
| 16:22:10 | seydar | how do you deal with array updates? |
| 16:22:19 | brixen | by using a lock |
| 16:22:23 | Defiler | The GIL is how operations like that are made 'atomic' |
| 16:22:24 | brixen | around that small part of code |
| 16:22:33 | seydar | so at some level you HAVE to have a lock? |
| 16:22:35 | brixen | rather than a huge lock around everything (GIL) |
| 16:22:44 | brixen | seydar: of course :) |
| 16:22:48 | Defiler | There are also lock-free data structures |
| 16:22:59 | seydar | gortcha gortcha gortcha |
| 16:23:00 | brixen | indeed |
| 16:23:05 | seydar | i.... AM.... LEARNING |
| 16:23:09 | Defiler | (but they can't be used to solve every problem) |
| 16:23:49 | seydar | 1337h4>< |
| 16:25:25 | seydar | so how is there a large list of things that aren't threadsafe and need to be made threadsafe so we can remove the GIL? |
| 16:25:44 | seydar | s/how is there/is there |
| 16:29:53 | Defiler | Nope! |
| 16:30:58 | seydar | huh |
| 16:31:01 | seydar | interesting |
| 16:31:34 | evan | seydar: if there was a big list |
| 16:31:43 | evan | then we would have done it a while ago. |
| 16:32:20 | brixen | seydar: there is a big list in the sense that lewis and clark had a big list of campgrounds to visit going west |
| 16:32:26 | seydar | hm. that could've been an RSOC project |
| 16:32:30 | seydar | brixen: hahaha |
| 16:32:49 | brixen | seydar: it's evan's RSoC project :) |
| 16:33:03 | seydar | yeah, but it's something I could've/should've submitted |
| 16:33:43 | evan | no, it really couldn't have been a RSoC project. |
| 16:34:11 | evan | it's not achievable in a summer by someone unfamaliar with the code base. |
| 16:35:55 | evan | a SoC project should produce discret deliverables and be achievable |
| 16:36:34 | brixen | seydar: now that evan's here, let's discuss code documenting |
| 16:36:51 | evan | ok |
| 16:36:53 | seydar | ok! |
| 16:36:55 | brixen | I would perfer to see the docs outside the code |
| 16:37:02 | brixen | in our doc dir |
| 16:37:07 | seydar | evan: I'd like to go and doc up gc.cpp |
| 16:37:08 | brixen | also prefer |
| 16:37:09 | seydar | and friends |
| 16:37:52 | goyox86 | evan: hi!, hydra still does run specs now? |
| 16:38:00 | evan | somewhat |
| 16:38:06 | evan | i'm working on the thread specs now. |
| 16:38:12 | evan | there are still hangs and crashes |
| 16:38:37 | evan | seydar: ok. please use doxygen formatting then. |
| 16:38:45 | seydar | brixen: are you adverse to comments within the code, or would you just like to see them outside? |
| 16:38:57 | brixen | I'd really like to see the docs separate |
| 16:39:05 | goyox86 | evan: that's why ask yesterday i got a Deadlock :] |
| 16:39:05 | brixen | you can use the function name as a link |
| 16:39:16 | evan | goyox86: yep, thats expected. |
| 16:39:21 | evan | goyox86: working on a bunch of those today. |
| 16:39:26 | brixen | seydar: I'm trying to put a rbx doc system together |
| 16:39:42 | goyox86 | eager waits :] |
| 16:39:43 | brixen | seydar: and I'm not a fan of embedded docs, at all |
| 16:39:50 | evan | brixen: the new doc system would support C++ as well then? |
| 16:40:09 | evan | i'd like it cross referenced with the code at some level |
| 16:40:14 | brixen | evan: the docs could use function name as a cross reference |
| 16:40:22 | evan | ok |
| 16:40:28 | brixen | like a normal link, that could read the source inline even |
| 16:40:50 | goyox86 | who's working a the new doc system? |
| 16:40:52 | evan | sure. |
| 16:40:52 | brixen | I don't like the churn in the code |
| 16:41:21 | seydar | brixen, evan: ok. I'm thinking about writing the docs in the style of a presentation? in that it references the code, but the code isn't the meat and potatoes |
| 16:41:50 | brixen | seydar: sure, just start in doc/vm/gc.txt |
| 16:42:01 | seydar | dealio |
| 16:42:02 | evan | go for it. |
| 16:42:03 | brixen | seydar: actually, could you use Markdown syntax? |
| 16:42:12 | seydar | yeah |
| 16:42:15 | brixen | sweet |
| 16:43:39 | seydar | what's your doc system gonna be like? |
| 16:44:03 | brixen | seydar: a mix between a static site generator and a dynamic site |
| 16:44:15 | brixen | so we can embed runtime system info like Agent results |
| 16:44:24 | brixen | but for most docs, it just formats the source to html |
| 16:44:26 | seydar | what are agent results? |
| 16:44:38 | brixen | seydar: oh, you missed out on the Agent |
| 16:44:53 | brixen | seydar: you should watch evan's webinar |
| 16:45:01 | brixen | I'll find you a link.. |
| 16:45:56 | brixen | http://www.engineyard.com/video/13279747 |
| 16:50:58 | seydar | so agent is like gdb for rbx? |
| 16:51:19 | evan | mmm |
| 16:51:20 | evan | sort of. |
| 16:51:31 | evan | it's an API for inquerying |
| 16:53:21 | evan | giving it actual debug capabilities is on the todo lits |
| 16:53:22 | evan | list |
| 16:54:15 | evan | sweet, i got some code sync'ing properly and the thread specs are running much better. |
| 16:54:37 | brixen | seydar: so, in your docs, if you use these conventions it will be easy to link code: Array.new (ruby class method), Array#push (ruby instance method), Array::append (C++ function) |
| 16:54:50 | brixen | evan: yay! |
| 16:55:18 | Defiler | brixen: I'm definitely down to help with the doc generation |
| 16:55:28 | Defiler | though you will need to compartmentalize some tasks for me |
| 16:55:33 | brixen | Defiler: awesome |
| 16:55:56 | brixen | Defiler: I will have a list of questions for you after I do a bit more research |
| 16:56:34 | Defiler | cool |
| 17:05:47 | seydar | eats lunch |
| 17:09:13 | Defiler | Know what else is cool? http://www.diydrones.com/ |
| 17:09:32 | dbussink | evan: cool, my crashes are probably already on the radar then too (if you're looking at thread specs) |
| 17:09:40 | evan | yep. |
| 17:09:44 | dbussink | Defiler: nobody picked up the sc2 reference? :) |
| 17:09:52 | evan | the thread specs are crazy sauce. |
| 17:10:12 | dbussink | evan: they are yeah |
| 17:10:20 | evan | and I don't mean crazy like: http://www.panix.com/~clay/cookbook/images/gates-bbq-sauce.jpg |
| 17:10:32 | dbussink | evan: btw, that drb failure i untagged looks like a race condition too |
| 17:10:32 | Defiler | dbussink: I like to confuse the issue of where my nickname comes from |
| 17:10:39 | evan | dbussink: yep. |
| 17:11:49 | dbussink | evan: asking another thread to stop and expecting it to be stopped at the return of the notification |
| 17:12:25 | evan | yeah |
| 17:12:35 | evan | well, it does a busy wait for a thread to begin sleeping |
| 17:13:15 | dbussink | evan: what i looked it does a thread.kill to stop the listening thread |
| 17:13:36 | evan | well, it does that to start the thread exiting |
| 17:13:38 | dbussink | evan: but how should cases like this be handled? |
| 17:13:52 | evan | because it defines all these things for how a dying thread should behave |
| 17:14:35 | evan | dbussink: i'm just making them pass without worrying too much about the methodolopy |
| 17:14:38 | evan | methodology |
| 17:14:55 | evan | primarily, i needed locking around a thread going to sleep and being woken up |
| 17:14:58 | dbussink | evan: the thread ones yeah, but this drb spec is already an issue with current master |
| 17:15:02 | evan | so that it can be woken when it's actually sleeping |
| 17:15:15 | evan | dbussink: i don't know whats up with the drb spec |
| 17:15:17 | evan | i'd have to look. |
| 17:15:39 | dbussink | evan: it's pretty stupid, it starts and stops a drb server 10 times |
| 17:15:51 | dbussink | and it expects the server to be stopped immediately after the stop call |
| 17:15:51 | brixen | dbussink: that spec is garbage |
| 17:15:53 | evan | yeah, I saw that |
| 17:15:57 | dbussink | brixen: yeah |
| 17:15:57 | brixen | I will rewrite it |
| 17:15:59 | evan | that spec needs to be fixed |
| 17:16:03 | brixen | the whole mess is garbage |
| 17:19:22 | cremes | are the thread specs worse than the pack/unpack specs? :-P |
| 17:20:00 | dbussink | threads in mri are also crazytown |
| 17:20:05 | dbussink | not only the specs ;) |
| 17:22:18 | brixen | cremes: they are pretty bad |
| 17:22:29 | cremes | heh |
| 18:15:13 | boyscout | Benchmarks for pack Xx@. - efd98b3 - Brian Ford |
| 18:15:13 | boyscout | Fixed poor performance of pack @. - 079cb11 - Brian Ford |
| 18:15:13 | boyscout | Specs for String#unpack AaZ. - 0e46b1f - Brian Ford |
| 18:15:13 | boyscout | Specs for Array#pack DdEeFfGg. - d1f83c1 - Brian Ford |
| 18:15:13 | boyscout | Benchmarks for pack DdEeFfGg. - f5c7d45 - Brian Ford |
| 18:15:49 | brixen | ... and other stuff |
| 18:19:22 | evan | much more! |
| 18:20:41 | boyscout | CI: Commit 1be4127 failed. http://github.com/evanphx/rubinius/commit/1be4127576357db245417c7b597744c6d7754d50 |
| 18:21:57 | goyox86 | boyscout: fuck you ;) |
| 18:22:05 | brixen | gcc fuck you |
| 18:38:05 | boyscout | Fix compiling pack. - 060b748 - Brian Ford |
| 18:55:52 | boyscout | CI: rubinius: 060b748 successful: 3508 files, 15009 examples, 42823 expectations, 0 failures, 0 errors |
| 19:55:29 | Defiler | Man, I want real-deal parallel work out of ruby so badly |
| 19:55:42 | Defiler | I run into a use case for 'real' threads about once every hour and a half |
| 20:26:01 | cremes | Defiler: jruby to the rescue |
| 20:29:00 | Defiler | cremes: Unfortunately I need real-deal forking. |
| 20:30:19 | Defiler | specifically, this needs to work: http://github.com/wilson/revenant/blob/master/lib/revenant/manager.rb |
| 20:32:21 | cremes | threads *and* forking? then right now you are SOL :{ |
| 20:32:27 | Defiler | Yeah |
| 20:50:07 | brixen | pack HhBb are so weird |
| 20:54:38 | slava | still working on pack? lawl |
| 20:54:54 | brixen | slava: fuck Perl and the horse you rode in on :) |
| 20:59:54 | brixen | KingPhilroy: welcome, what finds ye wandering amongst the peasant fields? |
| 21:01:05 | evan | Defiler: forking and true concurrency? no problem! |
| 21:01:12 | evan | I gotcha covered. |
| 21:01:36 | Defiler | highfives evan |
| 21:01:49 | evan | chest bumps Defiler |
| 21:02:05 | Defiler | boom! |
| 21:54:08 | evan | perhaps for the new Rubinius t-shirts: http://s-ak.buzzfed.com/static/enhanced/terminal01/2010/8/3/12/enhanced-buzz-13768-1280853730-1.jp g |
| 21:54:24 | sbryant | hah |
| 21:57:23 | brixen | nice! |
| 21:57:37 | brixen | was that Defiler's submission? |
| 21:57:44 | evan | thats from the kanye + new yorker cartoon page |
| 21:57:50 | brixen | ahh |
| 21:57:54 | evan | http://www.buzzfeed.com/bfeld/kanyenewyorkertweets |
| 21:59:07 | brixen | lulz |
| 23:22:39 | boyscout | Get thread specs running (still a few random crashes) - 8d6875d - Evan Phoenix (hydra) |
| 23:29:10 | brixen | it "doesn't encode new line chars" -> ["\nA"].pack('M').should == "\nA=\n" |
| 23:29:13 | brixen | orly |