Index

Show enters and exits. Hide enters and exits.

00:01:07brixenslava: it is possible to run it with fork, but not with threads
00:01:16brixenalthough, I'm sure I could rectify that :)
00:01:30slavayou could make your spec runs twice as fast or whatever on a dual core
00:01:37brixensure
00:02:40brixenlopex: did you see the recent theory that there was no big bang?
00:02:58lopexbrixen: where was it ?
00:02:59brixenlopex: and that attempts to explain expansion without dark matter?
00:03:07brixenlopex: le'me see if I can find it...
00:03:31slavarubyspec specs look neat
00:03:31lopexbrixen: otoh, big bang theory never claimed there was "nothing" before
00:04:13brixenlopex: http://www.technologyreview.com/blog/arxiv/25492/
00:04:32brixenlopex: right, but this is interesting
00:04:38evanfor http://gist.github.com/505551, I love output like:
00:04:57evanhttps://gist.github.com/aaecbff10c0dcd6321d5
00:05:48brixenwoot!
00:06:22brixenso will some sorry sucker that doesn't realize he's concurrently updating a string :)
00:10:24evan:D
00:18:49lopexbrixen: I dont have enough comsmological knowledge to evalutate that, but hey that's why we have theories
00:19:07lopex(in scientifical meaning)
00:19:46brixenlopex: yeah, it's just interesting to ponder
00:19:48lopexI'm ok with big bang theory being abandomend one day potentially
00:20:00lopexyeah
00:20:04lopexas always
00:20:17brixenI'm hoping they figure out the connection between general relativity and QM in my lifetime
00:20:28lopexthe UAT ?
00:20:38brixenyeah
00:20:53brixenor GUT
00:21:01lopexah, yeah
00:21:04lopexgrand
00:21:30lopexI have more difficulties memorizing these since I'm not english native
00:21:57brixen:)
00:22:14evanhehehe
00:22:15evan 33.235426 0.081886 33.317312 ( 17.785480)
00:22:22evanmore user time than real time.
00:22:23evanlove it.
00:22:28brixenalso, I'm hoping to see atomic energy devices the size of small batteries
00:22:37brixenevan: yay!
00:27:07evanmy new favorite gdb command: thread apply all bt 10
00:27:27brixenah cool
00:27:52evani'm running the thread specs now
00:28:01evangot a hang on "Thread.critical= is reentrant"
00:28:03evanoh the irony.
00:28:10brixenheh
00:39:48evanoh joy, the Thread specs.
00:41:28brixenoh ugh :(
00:41:44brixenwe were going to rewrite those once time in SF
00:41:54brixener one time*
00:46:47evanyeah, we were.
00:53:05evanman, these Thread#critical specs are sillypants.
00:56:29brixenno surprise there
00:59:57evansome of these specs make seriously no sense.
01:00:05evani feel like maybe there is some justification
01:00:10evanbut each need a paragraph explanation
01:00:24evannot => it "killing dying running does nothing" do
01:00:37brixenhaha
01:00:51brixenoh man, I love that spec description
01:00:59brixenpure poetry
01:00:59evanwe should put that on a shirt.
01:01:04brixenyes!
01:01:09brixenI'm going to do that
01:01:23evanactually, i'm thinking about doing new rubinius shirts for rubyconf
01:01:41brixencool
01:31:42dwaiteI want a new rubinius shirt! :O
01:31:49dwaiteto replace my previously nonexisting shirt
01:34:20DefilerI love my rubinius shirt, but the cut on it is sooooo weird
01:34:30Defilereasily the weirdest-fitting shirt I own, and I collect t-shirts heh
01:34:37DefilerI should get it tailored
01:38:04dwaitemight I suggest for the T-shirt http://img14.imageshack.us/img14/6545/reubensandwich.jpg
01:38:23dwaite(aww, that would have been way better if I had shortened the URL :-/
01:38:52dwaiteif you go to conferences, you might happen to collect cheaply-made t-shirts
01:39:38dwaiteI 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:36DefilerWell, the rubinius shirt isn't a conference shirt
01:40:45DefilerIt is a limited edition super-lightweight racing shirt.
01:40:57DefilerIn fact, we should really be talking about it in Italian.
01:42:53brixenhaha
01:42:58brixenindeed
01:43:49DefilerRBX Superleggera
01:44:22brixendwaite: also, you get your shirt when you have kireru running
01:50:01dwaitebrixen: thats so not fair :P
01:50:14dwaitein that case, I don't think I'll share my second t-shirt idea http://img38.imageshack.us/img38/7186/rubenapkin.png
01:51:58brixendwaite: seems fair to me :)
01:53:03dwaiteso I screwed up my vacation plans, and probably will have to make it up on comp time
01:53:25dwaitesoo .. probably won't have a chance to really think hard about tofu or kikeru until the 18th :-/
01:55:11dwaitewhat was on the first rubinius shirt?
01:55:21dwaiteI imagine it was either a bird or a turtle
01:55:42dwaites/turtle/series of turtles/
01:55:50DefilerIt's just text
01:55:54Defilerand a small rubinius logo
01:56:36dwaiteoh thats not interesting
01:56:52dwaitea sandwich or rube goldberg machine would be much better
01:57:18DefilerWhere were you when it was happening? Probably sleeping or thinking about sleeping.
01:57:21DefilerSo lazy.
01:57:30DefilerWe were out here breaking rocks with our faces.
01:57:35brixenhaha
01:57:38dwaite:(
01:57:40Defilerand we needed a shirt to keep the sun off
01:57:42dwaiteso thats how that happened, Defiler
01:57:53DefilerYes that is why the kids point and scream
01:58:15Defilerespecially when I say 'We did this for youuuuu' and lumber toward them
01:58:45dwaitemaybe if you weren't carrying the two pick axes
01:58:47brixenyou know when you see someone pointing a gun at their feet, and you are inclined to say, "hey be careful there guy"
01:58:52dwaitebut I understand, after breaking rocks with your face
01:58:55brixeninstead help them to point it at their head
01:59:18DefilerDear Youtube; what is your freaking problem?
01:59:23dwaitegive 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:33brixendwaite: priceless
02:00:20dwaiteI am weakening on trying kikeru btw. I just don't think I have the knowledge to succeed at it currently
02:00:56brixendwaite: who ever has the knowledge to succeed without first trying?
02:01:06dwaitewell me on most projects
02:01:33brixendwaite: besides, you should put that vast and painful java experience to good use
02:01:35dwaitemy motto is, be a well-prepared know-it-all
02:02:12dwaite...by continuing my involvement in java /cry
02:02:56DefilerI try to avoid doing anything again after I master it.
02:04:21dwaitedo you try to avoid mastering essential things?
02:04:42brixenDefiler: we should design a dy-static site generator, I have some ideas
02:04:54Defilercool
02:05:02DefilerI want to rework my blog so I can, uhh, post on it.
02:05:06DefilerRight now it's just too irritating
02:05:07dwaitedy-static site generator sounds like a physics term
02:05:09brixenDefiler: basically, I want to generate static content from something like Markdown for the rbx doc tool
02:05:32brixenbut have the ability to embed dynamic shit, like Agent results for the rbx instance running the cods
02:05:36brixener docs
02:05:48dwaiteyou should embed those parts vis XHR
02:05:50dwaitevia
02:05:54brixengeez, shit asss wifi makes me dyslexic
02:06:02Defileryarr
02:06:08dwaitewhy don't you find a more decent place to work?
02:06:38brixendwaite: because I'm drinking my beer and when I asked for a to-go cup, they said no
02:08:22brixenDefiler: yeah, I'd like to use this for my blog too
02:08:47dwaitebrixen, you have a blog?
02:08:58brixendwaite: no, I have a graveyard
02:09:10brixenif ill-thought ideas and rants
02:09:21brixens/if/of/
02:09:30dwaiteahh yeah
02:09:33dwaitegood rants never die
02:09:41dwaitejust ask mel gibson
02:10:45brixenunfortunatel, 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:46dwaiteI guess I came into the ruby community too late to know, zed shaw = good overall?
02:12:03dwaiteplus: created mongrel
02:12:08dwaitenegative: created mongrel2
02:12:48brixenheh, what's wrong with mongrel2?
02:13:02brixenhe's giving you two options for hating him
02:13:31brixenI think zed generally rocks, having actually talked to him
02:13:50brixenbut if I only knew him from his rants, my opinion would not be much diminished
02:14:10dwaitenot be?
02:14:34dwaiteahh actually he changed the license
02:14:42dwaitehe originally put it up as AGPL3
02:14:55dwaitethe most annoying license ever
02:16:34dwaiteso brixen, how do you propose I start on kikeru?
02:17:54brixenwell, 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:39brixentranslating java bytecode directly where possible and calling support routines where necessary
02:18:44brixenas a first cut
02:19:09brixenso I can create a .rbc file for the .class file
02:19:20brixenwhich you would then run
02:26:57dwaitehow are classes resolved in rubinius bytecode?
02:27:16dwaiteis it a Class stored under a global constant corresponding to its name?
02:35:13brixendwaite: classes are referenced by symbols in a constants table depending on the scope in which the class is created
02:35:46brixendwaite: bin/rbx compile -B is your friend
02:35:52brixenand works with -e also
02:36:13brixeneg bin/rbx compile -B -e 'class F; class G; end; end'
05:45:37dwaitebin/rbx compile -B -e 'class F; class G; end; end'
07:02:14dbussinkevan: 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:38evani am
07:02:43evani'm going through them now
07:02:50evangetting them to run without crashing and hanging
08:07:24dbussinkevan: ah, sorry, did see you replied
08:07:56dbussinkbut this line fails for me not every time, but pretty frequent: t2 = Thread.new { raise NotImplementedError.new("whatever") }
08:08:01dbussinklike 1 in 10 times or so
08:08:07dbussinki've caught it in gdb various times
12:40:39seydarnow i don't mean to brag...
12:40:49seydarbut rbx just passed every single test on my machine
12:40:50dbussinkseydar: so brag :)
12:40:51seydarnbd
12:41:21seydarI have only once experienced this kind of euphoria
12:41:32dbussinkseydar: what does hell's thermostate give you?
12:41:33seydarand that was on a headless linux box whose IP is now MIA
12:42:04seydarit's giving me about a 21 degrees celsius
12:42:32seydarand I'm gonna start commenting up the gc.cpp code because it's terribly uncommented
12:42:52seydarand by start, i mean start sometimes 12 hours from now
12:44:22seydarbut off to work!
12:44:36seydardbussink: what do you do in your day job?
12:44:47dbussinkseydar: mostly developing stuff
12:51:33dbussinkseydar: and you?
12:54:55seydardbussink: i work at a networking shop
12:55:05seydarlearning my share about prefixes, asns, and BGP
12:55:12seydardeveloping stuff
12:55:37seydargadurgle! http://pastie.org/1072821 and http://pastie.org/1072825
12:55:43seydarbugs with rbx
12:55:44dbussinkseydar: ah ok, thought you were stil in school?
12:55:54dbussinkseydar: or a summertime job?
12:56:02seydardbussink: well I just graduated high school, so this is a summer job before I head off to college
12:57:32dbussinkseydar: ah ok, also moving for college then?
12:58:48seydarindeed! but at the end of august
13:00:41dbussinkseydar: ah ok, cool, where are you going to
13:00:43dbussink?
13:00:58seydaruniversity of michigan
13:01:02seydarout in ann arbor, MI
13:01:31seydaralright, i gotta bounce
13:01:35seydartime for work
13:01:44dbussinkah, near detroit according to google maps :P
13:01:44seydarand this futures bug has stumped me thus far
13:01:51dbussinkisn't from the usa
13:02:03seydaryou're from the land of the dutch
13:02:23seydarspeaking of dutch, i used to know a kid named hidde
13:02:29seydargood times, good times
13:02:38seydarleaves
13:12:00seydardbussink: i did some thinking on my bike to work
13:12:12seydarand I decided that rbx's behavior (in those links I posted
13:12:13seydar)
13:12:23seydaris the correct behavior, and MRI is being too kind
13:12:49seydarand 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:28seydarboyscout: botsnack
13:13:38seydardamn, i've lost my touch
13:13:40seydarbotsnack
13:16:26seydarso then why is MRI being too kind
13:25:15dbussinkseydar: well, it's probably that mri has more in c that makes it behave different
13:28:00seydarwell now I need to rewrite my futures implementation
13:30:26dbussinkseydar: you depend on this error?
13:30:34dbussinkseydar: i see a backtrace in both pasties
13:30:51seydarit's just that this error doesn't occur in MRI
13:30:57seydarwhen it sounds like it should
13:31:04seydarbecause the errors make perfect sense
13:42:44dbussinkseydar: can you further simplify it? maybe we can fix it relatively easily
13:43:18seydarwell 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:34seydarassume there is no value yet
13:43:52seydarthen if I call a method, it won't exist, so it will create a future to call that method
13:44:25seydarwhich immediately calls the block it's supposed to be running, which will fail, which will create another future, ad infinitum
13:47:29seydardoes that line up with your interpretation of the code, dbussink?
13:48:42dbussinkseydar: well, the reason that mri works is because inspect doesn't to_s things normally it seems
13:49:19seydarthat explains the second one
13:50:04seydarwhere is #inspect defined?
13:50:42dbussinkseydar: btw, why aren't you joining in the method missing?
13:51:02dbussinkoh, wait, you want a new future
13:51:15seydaryeah. although I COULD join, since a new future == a new thread
13:51:29seydaractually holy shizznizzle
13:51:44seydari'm at work right now where they don't have ruby, so i can't try this out
13:52:00seydarbut I thinking joining in the new future would fix it
13:52:07seydarit would stop it from going down the rabbit hole
13:52:26seydarnormally it would loop until the original thread finishes
13:52:37seydarbut if we do a join, it holds there
13:52:39seydarfuck yeah!
13:54:00seydardbussink, thoughts?
13:54:25dbussinkseydar: you have to hold at some point :)
13:54:40dbussinkso depending on your needs it might happen earlier or later
13:55:49seydarcan you explain the "earlier or later" bit, and whether holding in #method_missing classifies as "earlier" or "later"?
13:56:37dbussinkseydar: well, it could also return another lazy future
13:57:38seydaris there such a thing as an eager future?
13:57:43dbussinkseydar: but does this all work with mri then?
13:57:54dbussinkbecause this http://pastie.org/1072821 seems mri or isn't it?
13:58:10dbussinkseydar: or are your irb names weird?
13:58:23dbussinkah, wait, i see some rbx stuff in there
13:58:40seydaryeah, i wasn't too sure it was rbx at first too, but it was
13:58:46seydarit all works with mri
14:02:36seydarso what's the difference between a lazy future and an eager future/
14:06:33dbussinkseydar: well, if you have a future consisting of another future, is it ok to wait for that dependent future to finish first
14:06:34dbussinkor not
14:07:05seydarlet's say future a contains future b
14:07:17seydaris it ok for future a to BLOCK while waiting for future b? no
14:07:41seydaris it ok for future a to spawn a new thread which waits for future b? yes
14:07:58seydarbecause spawning a new thread will remove the blocking of the main thread
14:08:11seydarand joining future b will prevent us from going down the rabbit hole
14:08:47seydaram i making sense?
14:08:55dbussinkseydar: i think i know what you mean yeah
14:09:12dbussinkbut you should wait on the other future inside the block there yeah
14:10:44seydaryeah, that was a really good idea that you suggested
14:11:07seydarwow that's a relief
14:11:10seydarto have that sorted out now
14:11:20seydari should probably file a bug report with MRI
14:25:33goyox86morning!
14:30:37seydarmizornizzling, goyox86!
15:57:22seydarwhat's new in the world of the rbx
15:57:24seydarspecifically
15:57:29seydarwhat's new in the past 6 months
15:58:26DefilerPower overwhelming!
15:58:41seydarwhat does that mea
15:58:42seydarn
15:59:00DefilerIt means things keep getting better
15:59:10Defilerevan's working on the GIL these days
16:03:05seydaroho.
16:03:31seydarcan 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:01seydarDefiler: and what have you been working on?
16:07:35Defilerhttp://knowmore.com/
16:08:16seydarnice!
16:10:44Defilergoing to public beta soon
16:10:49Defilerit's pretty badass actually
16:11:03DefilerJust got to get Cassandra wrangled properly, pretty much
16:15:45seydarwell she pretty much tells the future
16:16:05seydarand can you explain the GIL love-hate issue?
16:18:02brixenseydar: the global interpreter lock (GIL) is a lock that prevents more than one thread from executing Ruby code at the same time
16:18:08DefilerWell, I'm not sure there's any love for the GIL
16:18:09Defilerheh
16:18:15seydarwhy does it exist
16:18:17Defilerit's just the easiest way to develop a system like this
16:18:19seydarwhat is its purpose
16:18:22brixenseydar: this is because the data structures for things like Array are not thread safe yet
16:18:43seydarand that is basically the only reason?
16:18:44brixenseydar: so, removing the GIL is a process of making everything threadsafe
16:18:45DefilerImagine you are calling into the C++ code that adds an item to an array in memory
16:19:01Defilerand some other code is in the same code, two 'lines' ahead of you, working on the same array
16:19:18DefilerThe lock is there to make sure each one sees what they pushed onto the array as the last thing on the array
16:19:31brixenseydar: consider this case http://gist.github.com/505551
16:19:44seydaryargh, i understand threadsafe.
16:20:05seydarso is the GIL only used for unthreadsafe activities?
16:20:15brixenseydar: you can still get jumbled stuff like this https://gist.github.com/aaecbff10c0dcd6321d5
16:20:19DefilerWithout the GIL, there are no threadsafe activities
16:20:46brixenbut the String object itself is sane, ie, its size is correct, its internal fields are consistent
16:21:03brixenseydar: it does not mean your multi-threaded program will be correct
16:21:12seydarindeed
16:21:26brixenit means the VM and data structures aren't broken when you concurrently update a single object
16:21:31DefilerThink 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:31seydarso 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:43brixenseydar: look at the hydra branch
16:21:54Defilerif 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:10seydarhow do you deal with array updates?
16:22:19brixenby using a lock
16:22:23DefilerThe GIL is how operations like that are made 'atomic'
16:22:24brixenaround that small part of code
16:22:33seydarso at some level you HAVE to have a lock?
16:22:35brixenrather than a huge lock around everything (GIL)
16:22:44brixenseydar: of course :)
16:22:48DefilerThere are also lock-free data structures
16:22:59seydargortcha gortcha gortcha
16:23:00brixenindeed
16:23:05seydari.... AM.... LEARNING
16:23:09Defiler(but they can't be used to solve every problem)
16:23:49seydar1337h4><
16:25:25seydarso 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:44seydars/how is there/is there
16:29:53DefilerNope!
16:30:58seydarhuh
16:31:01seydarinteresting
16:31:34evanseydar: if there was a big list
16:31:43evanthen we would have done it a while ago.
16:32:20brixenseydar: there is a big list in the sense that lewis and clark had a big list of campgrounds to visit going west
16:32:26seydarhm. that could've been an RSOC project
16:32:30seydarbrixen: hahaha
16:32:49brixenseydar: it's evan's RSoC project :)
16:33:03seydaryeah, but it's something I could've/should've submitted
16:33:43evanno, it really couldn't have been a RSoC project.
16:34:11evanit's not achievable in a summer by someone unfamaliar with the code base.
16:35:55evana SoC project should produce discret deliverables and be achievable
16:36:34brixenseydar: now that evan's here, let's discuss code documenting
16:36:51evanok
16:36:53seydarok!
16:36:55brixenI would perfer to see the docs outside the code
16:37:02brixenin our doc dir
16:37:07seydarevan: I'd like to go and doc up gc.cpp
16:37:08brixenalso prefer
16:37:09seydarand friends
16:37:52goyox86evan: hi!, hydra still does run specs now?
16:38:00evansomewhat
16:38:06evani'm working on the thread specs now.
16:38:12evanthere are still hangs and crashes
16:38:37evanseydar: ok. please use doxygen formatting then.
16:38:45seydarbrixen: are you adverse to comments within the code, or would you just like to see them outside?
16:38:57brixenI'd really like to see the docs separate
16:39:05goyox86evan: that's why ask yesterday i got a Deadlock :]
16:39:05brixenyou can use the function name as a link
16:39:16evangoyox86: yep, thats expected.
16:39:21evangoyox86: working on a bunch of those today.
16:39:26brixenseydar: I'm trying to put a rbx doc system together
16:39:42goyox86eager waits :]
16:39:43brixenseydar: and I'm not a fan of embedded docs, at all
16:39:50evanbrixen: the new doc system would support C++ as well then?
16:40:09evani'd like it cross referenced with the code at some level
16:40:14brixenevan: the docs could use function name as a cross reference
16:40:22evanok
16:40:28brixenlike a normal link, that could read the source inline even
16:40:50goyox86who's working a the new doc system?
16:40:52evansure.
16:40:52brixenI don't like the churn in the code
16:41:21seydarbrixen, 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:50brixenseydar: sure, just start in doc/vm/gc.txt
16:42:01seydardealio
16:42:02evango for it.
16:42:03brixenseydar: actually, could you use Markdown syntax?
16:42:12seydaryeah
16:42:15brixensweet
16:43:39seydarwhat's your doc system gonna be like?
16:44:03brixenseydar: a mix between a static site generator and a dynamic site
16:44:15brixenso we can embed runtime system info like Agent results
16:44:24brixenbut for most docs, it just formats the source to html
16:44:26seydarwhat are agent results?
16:44:38brixenseydar: oh, you missed out on the Agent
16:44:53brixenseydar: you should watch evan's webinar
16:45:01brixenI'll find you a link..
16:45:56brixenhttp://www.engineyard.com/video/13279747
16:50:58seydarso agent is like gdb for rbx?
16:51:19evanmmm
16:51:20evansort of.
16:51:31evanit's an API for inquerying
16:53:21evangiving it actual debug capabilities is on the todo lits
16:53:22evanlist
16:54:15evansweet, i got some code sync'ing properly and the thread specs are running much better.
16:54:37brixenseydar: 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:50brixenevan: yay!
16:55:18Defilerbrixen: I'm definitely down to help with the doc generation
16:55:28Defilerthough you will need to compartmentalize some tasks for me
16:55:33brixenDefiler: awesome
16:55:56brixenDefiler: I will have a list of questions for you after I do a bit more research
16:56:34Defilercool
17:05:47seydareats lunch
17:09:13DefilerKnow what else is cool? http://www.diydrones.com/
17:09:32dbussinkevan: cool, my crashes are probably already on the radar then too (if you're looking at thread specs)
17:09:40evanyep.
17:09:44dbussinkDefiler: nobody picked up the sc2 reference? :)
17:09:52evanthe thread specs are crazy sauce.
17:10:12dbussinkevan: they are yeah
17:10:20evanand I don't mean crazy like: http://www.panix.com/~clay/cookbook/images/gates-bbq-sauce.jpg
17:10:32dbussinkevan: btw, that drb failure i untagged looks like a race condition too
17:10:32Defilerdbussink: I like to confuse the issue of where my nickname comes from
17:10:39evandbussink: yep.
17:11:49dbussinkevan: asking another thread to stop and expecting it to be stopped at the return of the notification
17:12:25evanyeah
17:12:35evanwell, it does a busy wait for a thread to begin sleeping
17:13:15dbussinkevan: what i looked it does a thread.kill to stop the listening thread
17:13:36evanwell, it does that to start the thread exiting
17:13:38dbussinkevan: but how should cases like this be handled?
17:13:52evanbecause it defines all these things for how a dying thread should behave
17:14:35evandbussink: i'm just making them pass without worrying too much about the methodolopy
17:14:38evanmethodology
17:14:55evanprimarily, i needed locking around a thread going to sleep and being woken up
17:14:58dbussinkevan: the thread ones yeah, but this drb spec is already an issue with current master
17:15:02evanso that it can be woken when it's actually sleeping
17:15:15evandbussink: i don't know whats up with the drb spec
17:15:17evani'd have to look.
17:15:39dbussinkevan: it's pretty stupid, it starts and stops a drb server 10 times
17:15:51dbussinkand it expects the server to be stopped immediately after the stop call
17:15:51brixendbussink: that spec is garbage
17:15:53evanyeah, I saw that
17:15:57dbussinkbrixen: yeah
17:15:57brixenI will rewrite it
17:15:59evanthat spec needs to be fixed
17:16:03brixenthe whole mess is garbage
17:19:22cremesare the thread specs worse than the pack/unpack specs? :-P
17:20:00dbussinkthreads in mri are also crazytown
17:20:05dbussinknot only the specs ;)
17:22:18brixencremes: they are pretty bad
17:22:29cremesheh
18:15:13boyscoutBenchmarks for pack Xx@. - efd98b3 - Brian Ford
18:15:13boyscoutFixed poor performance of pack @. - 079cb11 - Brian Ford
18:15:13boyscoutSpecs for String#unpack AaZ. - 0e46b1f - Brian Ford
18:15:13boyscoutSpecs for Array#pack DdEeFfGg. - d1f83c1 - Brian Ford
18:15:13boyscoutBenchmarks for pack DdEeFfGg. - f5c7d45 - Brian Ford
18:15:49brixen... and other stuff
18:19:22evanmuch more!
18:20:41boyscoutCI: Commit 1be4127 failed. http://github.com/evanphx/rubinius/commit/1be4127576357db245417c7b597744c6d7754d50
18:21:57goyox86boyscout: fuck you ;)
18:22:05brixengcc fuck you
18:38:05boyscoutFix compiling pack. - 060b748 - Brian Ford
18:55:52boyscoutCI: rubinius: 060b748 successful: 3508 files, 15009 examples, 42823 expectations, 0 failures, 0 errors
19:55:29DefilerMan, I want real-deal parallel work out of ruby so badly
19:55:42DefilerI run into a use case for 'real' threads about once every hour and a half
20:26:01cremesDefiler: jruby to the rescue
20:29:00Defilercremes: Unfortunately I need real-deal forking.
20:30:19Defilerspecifically, this needs to work: http://github.com/wilson/revenant/blob/master/lib/revenant/manager.rb
20:32:21cremesthreads *and* forking? then right now you are SOL :{
20:32:27DefilerYeah
20:50:07brixenpack HhBb are so weird
20:54:38slavastill working on pack? lawl
20:54:54brixenslava: fuck Perl and the horse you rode in on :)
20:59:54brixenKingPhilroy: welcome, what finds ye wandering amongst the peasant fields?
21:01:05evanDefiler: forking and true concurrency? no problem!
21:01:12evanI gotcha covered.
21:01:36Defilerhighfives evan
21:01:49evanchest bumps Defiler
21:02:05Defilerboom!
21:54:08evanperhaps 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:24sbryanthah
21:57:23brixennice!
21:57:37brixenwas that Defiler's submission?
21:57:44evanthats from the kanye + new yorker cartoon page
21:57:50brixenahh
21:57:54evanhttp://www.buzzfeed.com/bfeld/kanyenewyorkertweets
21:59:07brixenlulz
23:22:39boyscoutGet thread specs running (still a few random crashes) - 8d6875d - Evan Phoenix (hydra)
23:29:10brixenit "doesn't encode new line chars" -> ["\nA"].pack('M').should == "\nA=\n"
23:29:13brixenorly