Show enters and exits. Hide enters and exits.
| 00:21:31 | evan | Defiler: "It's fast! Finalyfast.com!" |
| 00:23:51 | brixen | evan: where are we using libltdl? |
| 00:23:58 | evan | we're not. |
| 00:24:04 | brixen | can I remove it? |
| 00:24:05 | evan | references to it are wrong. |
| 00:24:14 | brixen | I could find no use of it |
| 00:24:16 | evan | is it still in external_libs? |
| 00:24:19 | brixen | yep |
| 00:24:21 | evan | nuke it. |
| 00:24:23 | brixen | k |
| 00:28:23 | boyscout | Remove unused libltdl. - 24691cb - Brian Ford |
| 00:36:42 | Defiler | finallyfast has detected the presence of 'libtldl' |
| 00:37:09 | brixen | Defiler: ha ha :) |
| 00:37:46 | boyscout | CI: rubinius: 24691cb successful: 3511 files, 15076 examples, 42901 expectations, 0 failures, 0 errors |
| 00:38:56 | Defiler | I got myself a cool colo server and I'm waiting for it to get installed aaah |
| 00:38:58 | Defiler | agonizing |
| 00:42:44 | brixen | Defiler: you should have just gone with 10TB, I hear they are great :) |
| 00:43:04 | Defiler | I did actually heh |
| 00:43:09 | brixen | hah |
| 00:43:28 | brixen | you saw zed's ticket? |
| 00:43:35 | Defiler | nope |
| 00:43:58 | brixen | http://twitter.com/zedshaw/status/20663785704 |
| 00:44:16 | brixen | followed not long after with http://twitter.com/zedshaw/status/20667124260 |
| 00:44:34 | Defiler | haha |
| 00:44:46 | Defiler | well, I went with the dedicated option so hopefully it will go better |
| 00:44:50 | Defiler | I don't intend to use their software |
| 00:45:26 | brixen | also, this is pretty interesting http://twitter.com/acangiano/status/20656752154 |
| 00:45:45 | Defiler | haha that is a sick title page |
| 00:46:17 | Defiler | It should have a little legend showing the scale of 'my balls' and 'the earth' |
| 00:46:28 | brixen | haha |
| 07:24:46 | boyscout | Remove references to libldtl in build process - 1856e25 - Dirkjan Bussink |
| 07:24:51 | dbussink | brixen: ;) |
| 07:34:08 | boyscout | CI: rubinius: 1856e25 successful: 3511 files, 15076 examples, 42901 expectations, 0 failures, 0 errors |
| 07:54:42 | dbussink | postmodern: do you still have that process kill spec issue? because i had it too but properly cleaning fixed it |
| 07:55:04 | postmodern | dbussink, let me check |
| 07:55:11 | postmodern | dbussink, saw some commits on Process |
| 07:55:39 | dbussink | postmodern: yeah, they are because the error was handled incorrectly |
| 07:55:47 | dbussink | but the error itself should have been fixed some time ago |
| 07:57:29 | postmodern | make: *** No rule to make target `ruby.h', needed by `ossl_x509crl.o'. Stop. |
| 07:57:35 | postmodern | um, i might have foobared my system? |
| 08:01:59 | dbussink | postmodern: do you still have an rvm ruby active? |
| 08:02:54 | postmodern | dbussink, yeah i still have 1.9.2-rc2 installed, i just installed 1.9.2-head |
| 08:03:00 | postmodern | dbussink, not sure what happened |
| 08:03:10 | dbussink | postmodern: please do an rvm use system before trying to build rbx |
| 08:03:21 | dbussink | because otherwise GEM_PATH's can mix up things and point to the wrong gems etc. |
| 08:04:27 | postmodern | dbussink, i don't have a system ruby :P |
| 08:04:52 | dbussink | postmodern: hmm, that would be tricky |
| 08:04:52 | postmodern | dbussink, let me start with a clean shell |
| 08:05:16 | dbussink | since rvm versions setup stuff like GEM_PATH which rubinius of course picks up |
| 08:07:52 | postmodern | dbussink, ok re-configured rubinius and now it's compiling |
| 08:10:27 | postmodern | dbussink, ah yeah idk, something is messed up |
| 08:36:34 | dbussink | postmodern: does it work now? |
| 08:37:02 | postmodern | it's failing in /home/hal/src/misc/rubinius/lib/ext/nkf |
| 08:38:01 | postmodern | dbussink, im guessing because i did a rvm update --head, something broke |
| 08:38:13 | postmodern | dbussink, and rubinius cannot find the include directory for ruby.h |
| 08:39:32 | dbussink | postmodern: well, building rbx always breaks for me if i have an rvm ruby active |
| 08:39:46 | dbussink | postmodern: i always make sure i do an rvm use system before |
| 08:39:46 | postmodern | dbussink, interesting |
| 08:39:55 | postmodern | dbussink, i've been building rbx under 1.9.2 for a while now |
| 08:40:11 | dbussink | postmodern: well, 1.9.2 is fine, but an rvm version active is what's problematic |
| 08:40:16 | krainboltgreene | Ahoy. |
| 08:41:30 | dbussink | krainboltgreene: morning |
| 08:47:34 | dbussink | postmodern: just tried building with an rvm version active, it segfaulted pretty hard |
| 08:48:05 | krainboltgreene | Morning. |
| 08:49:08 | dbussink | postmodern: because it compiled the melbourne extensions against my system ruby and tries to load that extension in the MRI version |
| 08:49:13 | dbussink | rvm version i mean |
| 09:08:04 | postmodern | dbussink, ok successfully rebuild |
| 09:08:06 | postmodern | *rebuilt |
| 09:08:20 | postmodern | dbussink, and now 11 failures on Process.wait related methods |
| 09:08:31 | dbussink | postmodern: can you gist them? |
| 09:09:31 | postmodern | dbussink, http://pastebin.com/DQaBm3Su |
| 09:10:03 | dbussink | postmodern: could you try running this script in gdb? https://gist.github.com/c1373c1f0d4911e3ac71 |
| 09:11:29 | postmodern | dbussink, http://pastebin.com/Pu20hQHK |
| 09:11:52 | krainboltgreene | This is bullcrap. Conan The Destroy is on Instant Netflix, but not Conan The Barbarian? Someone will pay. |
| 09:11:53 | dbussink | postmodern: not in irb, in gdb :) |
| 09:12:03 | postmodern | dbussink, that was gdb bin/rbx |
| 09:12:30 | dbussink | postmodern: well, i see irb prompts there, could you try with just running it as a script? |
| 09:12:39 | dbussink | postmodern: gdb --args ./bin/rbx script.rb |
| 09:16:48 | postmodern | dbussink, http://pastebin.com/UVdhXiW1 |
| 09:17:10 | dbussink | postmodern: can you also include the backtrace? |
| 09:17:57 | postmodern | dbussink, http://pastebin.com/PsJWGeNq |
| 09:18:17 | dbussink | postmodern: looks like libffi wasn't rebuilt properly |
| 09:18:22 | dbussink | in vm/external_libs/libffi |
| 09:18:34 | postmodern | rake distclean ? |
| 09:18:37 | dbussink | yeah |
| 09:18:43 | dbussink | or perhaps try a new clone? |
| 09:20:04 | dbussink | krainboltgreene: apparently they don't want you to pay ;) |
| 09:20:27 | dbussink | postmodern: i had this exact same issue, was fixed with a distclean |
| 09:22:09 | krainboltgreene | I donno, Conan just punched a horse in the face. I'm pretty placated. |
| 09:25:19 | postmodern | poor horse! |
| 09:28:39 | krainboltgreene | That horse was a dick. You could see it in the eyes. |
| 09:29:50 | krainboltgreene | And now he punched a camel. Jesus. |
| 09:41:37 | postmodern | dbussink, hmm looks like i need a new clone |
| 09:50:17 | postmodern | ok done for the night |
| 13:46:53 | kronos_vano | Very intresting http://www.hokstad.com/compiler :) |
| 16:49:22 | evan | morning boys. |
| 16:56:38 | brixen | morning |
| 16:57:36 | blowmage | howdy |
| 16:58:55 | dbussink | morning |
| 17:00:16 | evan | so, one thing i've started pondering is the Rubinius Memory Model |
| 17:00:34 | evan | basically, if we're truely concurrent, we're going to have to define some rules for how changes are seen by other threads |
| 17:01:20 | evan | one thing i'm considering adding as the ability to say that all ivars in a class are volatile |
| 17:02:34 | evan | calling it volatile isn't probably the best word, but thats what java 5 calls it |
| 17:02:38 | evan | and it's the same semantics |
| 17:02:55 | evan | basically, when you read or write to a volatile ivar, the system will introduce a memory barrier |
| 17:03:06 | evan | which makes sure that the data is flushed from the cpu's cache to main memory |
| 17:03:08 | brixen | yeah, can we define volatile? |
| 17:03:16 | brixen | I'm looking at http://www.javamex.com/tutorials/synchronization_volatile.shtml |
| 17:03:17 | JamesKilton | C++ already has volitile |
| 17:03:21 | JamesKilton | volatile* |
| 17:03:24 | evan | JamesKilton: COMPLETELY different. |
| 17:03:26 | evan | 100% different. |
| 17:03:29 | JamesKilton | Yeah I realize |
| 17:03:30 | dbussink | brixen: hehe, me too :) |
| 17:03:31 | JamesKilton | but it could be confusing |
| 17:03:34 | evan | yeah |
| 17:03:49 | evan | i'm not going to use the word volatile, just establishing the cannon. |
| 17:04:08 | brixen | who else uses a word that means what we want it to mean? |
| 17:04:16 | brixen | we definitely need a word |
| 17:04:23 | evan | synchronized ivars |
| 17:04:26 | JamesKilton | so write-barrier protected ivars |
| 17:04:26 | brixen | ok |
| 17:04:40 | evan | actually, synchronized references is a better term. |
| 17:04:41 | brixen | write-barrier doesn't sound right |
| 17:04:43 | brixen | yes |
| 17:04:43 | dbussink | evan: where do you want to use theM |
| 17:04:56 | evan | because it defines that the thing being controlled is the reference, not the thing referenced. |
| 17:05:19 | evan | dbussink: well, you'd do |
| 17:05:35 | evan | class Thing; Rubinius.synchronized_ivars(self); ...; end |
| 17:05:41 | evan | or something like that. |
| 17:05:55 | evan | all instances of Thing would would have syncronized references then. |
| 17:06:35 | dbussink | evan: do you already have a use case right now in hydra for example? |
| 17:06:39 | evan | |Blaze|: lets talk about that later. |
| 17:06:51 | evan | |Blaze|: short answer: more on startup, less over time. |
| 17:07:00 | evan | dbussink: yes, the Mutex class. |
| 17:07:12 | evan | i want the @owner ivar to be volatile/synchronized |
| 17:07:41 | dbussink | |Blaze|: this has some rought numbers that might give you an idea: http://programmingzen.com/2010/07/19/the-great-ruby-shootout-july-2010/ |
| 17:08:34 | dbussink | evan: ah ok, so that being transfered is not missed |
| 17:10:36 | evan | yeah, so |
| 17:10:55 | evan | the memory model should be defined |
| 17:11:35 | brixen | evan: so, explicitly marking ivars as synchronized is required? or it will be the default? |
| 17:11:42 | brixen | for ivars |
| 17:11:45 | evan | but we need to also have something thats easier to understand than explanations that use phrases like "memory barrier" |
| 17:11:54 | evan | well, thats another good question. |
| 17:12:16 | evan | making all ivars synchronized is probably too expensive |
| 17:12:25 | evan | basically, we'd be fighting the L1 cache. |
| 17:13:10 | brixen | yeah |
| 17:14:14 | brixen | I think "sychronized reference" is good |
| 17:14:15 | evan | the easier answer is going to be "use locking mechanisms to protect shared references and data" |
| 17:14:20 | evan | Mutex, etc. |
| 17:14:32 | evan | those imply memory barriers (since they're protecting data) |
| 17:15:09 | evan | but there will be a class of people interested in how the whole model is. |
| 17:15:17 | brixen | yeah |
| 17:16:06 | brixen | so, an "object" has synchronized references? ie, all ivars are synchronized if you tag the object, not a specific ivar? |
| 17:16:56 | evan | yes |
| 17:17:00 | evan | that seemed easier. |
| 17:17:06 | evan | it's easier to implement too. |
| 17:17:12 | evan | easier to understand, easier to implement |
| 17:17:13 | brixen | this is a good example IMO of "synchronized" vs atomic update in a real use case |
| 17:17:16 | brixen | http://www.javamex.com/tutorials/synchronization_concurrency_7_atomic_updaters.shtml |
| 17:17:22 | evan | yep. |
| 17:17:25 | evan | i read that yesterday |
| 17:17:28 | brixen | ok |
| 17:17:35 | brixen | so, this should be fairly easy to explain |
| 17:18:13 | sbryant | morning |
| 17:18:18 | brixen | hi sbryant |
| 17:18:27 | evan | we can, and will likely have, an atomic updater also. |
| 17:18:33 | brixen | sure |
| 17:18:40 | evan | it's basically just CAS. |
| 17:18:55 | evan | btw, this all fits in very will with autopacked ivars. |
| 17:19:27 | evan | because it's much easier to keep the body of an object syncronized and find the address of an ivar when it's packed than when it's using a LookupTable |
| 17:19:39 | brixen | yeah, that makes sense |
| 17:20:03 | evan | very well, rather. |
| 17:29:36 | jrw | hey guys, I found a typo in the docs. (contributing.txt) line 15 it says 'it', I think it should say 'is' |
| 17:30:48 | brixen | jrw: yep, thanks |
| 17:32:04 | boyscout | Fixed typo in doc/contributing reported by jrw. - 725c432 - Brian Ford |
| 17:41:32 | boyscout | CI: rubinius: 725c432 successful: 3511 files, 15076 examples, 42901 expectations, 0 failures, 0 errors |
| 17:45:03 | evan | so, atm, i've got Rubinius.memory_barrie |
| 17:45:07 | evan | memory_barrier |
| 17:45:22 | evan | to do this whole synchonized references thing manually |
| 17:46:08 | brixen | so, are you adding a header flag for the object? |
| 17:46:43 | evan | to say that ivar references are synchronized? probably just use the class |
| 17:46:47 | evan | i'll have a flag there |
| 17:46:50 | brixen | ok |
| 17:47:17 | evan | if(self->reference_class()->synchronized_references()) atomic::memory_barrier(); |
| 17:47:22 | evan | thats 100% of the functionality. |
| 17:47:28 | Defiler | Cool |
| 17:47:44 | brixen | so Rubinius.synchronized_reference(X), where X is a class? |
| 17:48:09 | evan | brixen: yep, though thats a little confusing because the method doesn't say it effects ivars |
| 17:48:10 | evan | but yeah. |
| 17:48:15 | brixen | ok |
| 18:00:15 | evan | oh, MRI |
| 18:00:17 | evan | mega fail. |
| 18:00:31 | evan | they introduce fastthread (ie, thread.c) at some point in 1.8.7 |
| 18:00:42 | evan | and it's Mutex has slightly different semantics that Mutex in thread.rb |
| 18:00:46 | evan | :/ |
| 18:04:13 | Defiler | fastthread was so completely the wrong fix :( |
| 18:05:12 | dbussink | evan: wouldn't making it references instead of reference indicate that better? |
| 18:05:24 | dbussink | evan: in the method name that is |
| 18:05:26 | evan | huh? |
| 18:05:30 | evan | oh |
| 18:05:31 | evan | mmm |
| 18:05:32 | evan | maybe. |
| 18:05:35 | evan | i'll thinking about it |
| 18:05:43 | evan | I just wanted to get you guys thinking :) |
| 18:05:56 | evan | well, i'm off to lunch. |
| 18:06:08 | blowmage | evan: i understand matz is committed to remove the gil in 2.0. any word on what they are doing for that memory model? |
| 18:06:09 | brixen | great, now I'm hungry |
| 18:08:57 | sbryant | I just had lunch |
| 18:09:08 | dbussink | i already had dinner |
| 18:09:09 | evan | blowmage: really? where did you hear that? |
| 18:09:16 | evan | (i'm putting my shoes on) |
| 18:09:38 | blowmage | he gave a presentation at some regional conference ~ a month ago |
| 18:09:48 | blowmage | in his slides he said they were removing he gil for 2.0 |
| 18:09:51 | evan | i'd heard just the opposite. |
| 18:10:00 | evan | i'd love to see those slides |
| 18:10:15 | blowmage | i'll see if i can find it then |
| 18:10:20 | evan | k |
| 18:10:28 | blowmage | have a good lunch |
| 18:10:29 | evan | i'm off to lunch, but just paste the url in here. |
| 18:10:29 | sbryant | inconceivable! |
| 18:14:37 | brixen | hi graaff |
| 18:15:03 | graaff | brixen: hi |
| 18:15:24 | Defiler | blowmage: Is it this one? http://www.slideshare.net/ThoughtWorks0ffshore/matz-3534905 |
| 18:15:29 | brixen | graaff: how goes the gentoo packaging? need anything from us? |
| 18:15:40 | graaff | Time? :-0 |
| 18:15:45 | brixen | heh |
| 18:15:48 | brixen | man oh man |
| 18:15:56 | graaff | It seems we already had rubinius in gentoo earlier. |
| 18:16:11 | brixen | yeah, someone was working on it |
| 18:16:14 | brixen | can't remember who |
| 18:16:48 | brixen | wait what? Ruby 2.0 is coming out in 2660?! |
| 18:16:58 | brixen | starts a twitter rumor |
| 18:17:07 | graaff | brixen: looks like it was Caleb Tennis? |
| 18:17:17 | blowmage | Defiler: he gave that at mwrc, but i don't know for sure if he mentioned removing the gil there |
| 18:17:27 | blowmage | i'll watch his session and see |
| 18:17:31 | brixen | graaff: hm, not sure |
| 18:18:06 | graaff | https://bugs.gentoo.org/buglist.cgi?quicksearch=ALL+rubinius ← these are the two bugs I could find. Seems it got removed because at the time git stopped working. |
| 18:18:38 | graaff | And our ruby project was understaffed so there was no effort to put against it |
| 18:22:26 | graaff | In any case we now have more staff and a much better infrastructure for handling multiple ruby implementations. |
| 18:22:58 | brixen | graaff: awesome |
| 18:23:10 | dbussink | ah, more dutchies in here? |
| 18:23:17 | graaff | we currently ship MRI, 1.9, REE and jruby. |
| 18:23:33 | graaff | Folks are working on ironruby, so I guess all we need is rubinius |
| 18:23:36 | graaff | dbussink: yes |
| 18:23:55 | dbussink | evan: do you want hangs in hydra? |
| 18:24:04 | dbussink | evan: backtraces of them i mean :) |
| 18:24:13 | dbussink | dbussink: had to be with a name like that :) |
| 18:25:23 | dbussink | graaff: i mean ^^ |
| 18:25:50 | graaff | dbussink: yeah, people in other countries always seem to mangle it, missing an 'a' or 'f' :_) |
| 18:26:09 | Defiler | grf |
| 18:26:28 | dbussink | i had fun with people trying to pronounce my first name at railsconf :P |
| 18:31:45 | brixen | dbussink: it's not pronounced Dirk Jan? :) |
| 18:31:57 | dbussink | brixen: somewhat yeah |
| 18:31:58 | brixen | like Jerk Dan? |
| 18:32:07 | brixen | dbussink: I kid, I kid :) |
| 18:32:18 | dbussink | brixen: hehe |
| 18:32:52 | brixen | is a phonolophile |
| 18:32:57 | graaff | Durk Jen is probably more close to what they were saying :-) |
| 18:33:20 | graaff | Then again the 'g' in my name is a showstopper for the most part as well. |
| 18:36:52 | dbussink | graaff: yeah, those are killing for foreigners :) |
| 18:40:48 | graaff | brixen: any specific issue that you had with Gentoo, or was your tweet-rant more general? |
| 18:42:22 | graaff | brixen: you don't have normal versioned tarballs for download? |
| 18:42:55 | brixen | github has tarballs |
| 18:43:34 | brixen | click on the download source link or http://github.com/evanphx/rubinius/archives/master |
| 18:44:08 | brixen | graaff: my tweet was simply about all the distros doing the same things differently |
| 18:44:19 | brixen | it's a terrible waste of time to track down user issues |
| 18:44:25 | graaff | brixen: the download source link links to a symlink, and then it downloads a tarball that also has what looks like a date added to the version number. |
| 18:44:30 | brixen | there is, IMO, no need for 20 different distros |
| 18:44:56 | graaff | I would be happy to just have rubinius-1.0.1.tarsomething. |
| 18:45:37 | graaff | brixen: to some extend it can be explained by different distro's having different goals, but that won't go on for 20+ distros, agreed. |
| 18:48:56 | graaff | brixen: the "latest" link is nice, but do you also have a direct link for download of these archives, or should i go to github to get those? |
| 18:49:11 | graaff | The latest trick will break our ebuilds if you update them. |
| 18:49:41 | graaff | Because we manifest files and the our system can't distinguish between one version and the next if they have the same version. |
| 18:52:44 | brixen | graaff: http://asset.rubini.us/rubinius-1.0.1-20100603.tar.gz |
| 18:56:12 | graaff | brixen: great, thanks. |
| 18:56:18 | brixen | n/p |
| 18:57:21 | graaff | I guess the build system changed since 0.9.0 (that's the last ebuild we had before), I'll have a look |
| 18:58:19 | brixen | hm, 0.9.0 would be about 2.5 years ago I think... |
| 18:58:36 | dbussink | nothing is the same anymore :P |
| 18:58:37 | brixen | yeah, our build system has changed a bit, still basically rake though |
| 18:58:42 | dbussink | was that still with shotgun? |
| 18:58:47 | brixen | yeah |
| 18:58:48 | graaff | could be, I just thought it was easier to start with something rather than nothing. |
| 18:59:15 | brixen | actually, I can't remember when 0.9 was, but it was too long ago to remember clearly :) |
| 19:00:01 | brixen | graaff: I'm thought someone was playing with a gentoo package a couple months ago |
| 19:00:04 | graaff | Last change to the ebuild we had was on 2008-07-20, so release was before that. |
| 19:00:09 | brixen | or was that suse? |
| 19:00:24 | brixen | WHO CAN KEEP TRACK OF THESE THINGS? |
| 19:00:25 | brixen | :) |
| 19:01:14 | graaff | yeah, yeah, we all look alike to you |
| 19:01:37 | brixen | haha |
| 19:01:48 | brixen | no no, you all look *different*, that's the problem |
| 19:02:00 | graaff | haa |
| 19:04:00 | brixen | I'm going to engage in lunch-like activities, bbl... |
| 19:40:57 | graaff | Hmm, rubinius can only use llvm 2.6? On gentoo we only have 2.7. |
| 19:46:09 | graaff | Ok, this is going to be a lot harder than I anticipated. Hopefully I can do some more work on it coming weekend. |
| 19:51:29 | dbussink | evan: what's the planning btw on using llvm 2.7? |
| 20:25:32 | evan | actually, i've got a branch using 2.7 |
| 20:25:40 | evan | i didn't push it because i wanted to update all the prebuids first |
| 20:25:46 | evan | 2.6 => 2.7 was pretty easy |
| 20:25:48 | evan | one minor API change. |
| 20:25:53 | evan | was needed for us. |
| 20:26:42 | dbussink | evan: ah ok, i can build a linux 64 bit if you want |
| 20:30:24 | evan | k |
| 20:31:25 | dbussink | evan: what's the easiest way to do that? |
| 20:32:01 | evan | well, i'd like llvm to be build with certain flags |
| 20:32:08 | evan | let me refactor that into a shell script people can run |
| 21:41:07 | dbussink | evan: btw, i have a hang in hydra in gdb if you're interested |
| 21:41:16 | evan | yep |
| 21:41:19 | evan | i'm interested. |
| 21:41:24 | evan | i've found one in sysread |
| 21:41:28 | evan | that i'm looking into now. |
| 21:41:37 | evan | it appears to be running the net/http specs |
| 21:45:01 | dbussink | evan: ah, i have one there too |
| 21:45:07 | dbussink | but that's an infinite busy waiting |
| 21:45:14 | evan | k |
| 21:45:20 | evan | well, i'm interested! |
| 21:45:32 | dbussink | evan: https://gist.github.com/e68fc76efa31d0031196 |
| 21:45:50 | evan | dbussink: could you get a ruby backtrace too? |
| 21:46:25 | dbussink | evan: i added it to the gist |
| 21:47:30 | evan | k |
| 21:47:42 | evan | ok, yep |
| 21:47:46 | evan | this is the same one i've got. |
| 21:48:09 | dbussink | evan: ah ok, different manifestation? |
| 21:48:19 | evan | no, same. |
| 21:48:21 | evan | thats in net/http |
| 21:49:16 | dbussink | evan: ah ok, because you were talking about sysread |
| 21:49:23 | evan | well, check another thread |
| 21:49:29 | evan | i'll bet you'll see a thread in read() |
| 21:49:43 | evan | gist "thread apply all bt 20" |
| 21:55:09 | dbussink | evan: hmm, not seeing that |
| 21:55:27 | dbussink | evan: https://gist.github.com/ae899b373d819b6814e4 |
| 21:58:47 | evan | oh oh |
| 21:58:48 | evan | i fixed this one |
| 21:58:51 | evan | didn't push it yet |
| 21:58:52 | evan | sorry! |
| 21:59:11 | evan | we need to be checkpointing in check_interrupts as well |
| 21:59:20 | evan | i'll push it |
| 21:59:37 | dbussink | evan: but i did see the sysread one another time |
| 21:59:42 | dbussink | evan: so it does ring a bell :) |
| 22:01:30 | boyscout | Checkpoint where we check interrupts - 0a13ba5 - Evan Phoenix (hydra) |
| 22:01:31 | boyscout | Fix running the VM tests - 4a1f0ad - Evan Phoenix (hydra) |
| 22:01:38 | evan | there ya go. |
| 22:07:46 | dbussink | evan: w00t |
| 22:07:53 | dbussink | but i'm going to get some sleep |
| 22:07:59 | evan | :) |
| 22:07:59 | evan | nite! |
| 22:11:27 | dbussink | evan: having a sysread hang too yeah now |
| 22:11:32 | evan | yep |
| 22:11:45 | dbussink | but other than that it already gets pretty far |
| 22:12:16 | evan | yep |
| 22:12:20 | evan | seems to run the core specs pretty well. |
| 22:12:28 | evan | net/http is a good Thread test |
| 22:12:31 | evan | it uses them a bunch. |
| 22:16:39 | dbussink | but now really time for bed! |
| 22:35:42 | blowmage | evan: can't find the mention of removing the gil |
| 22:35:45 | blowmage | maybe i thought that because matz mentioned using stm at euruko |
| 22:35:47 | blowmage | ~38:00 here: http://www.vimeo.com/12674501 |
| 22:36:09 | evan | stm? wow, his head is really in the clouds. :) |
| 22:36:24 | blowmage | well, it was just an idea |
| 22:36:29 | evan | why the fuck can't you fast forward in vimeo. |
| 22:37:06 | evan | oh, there we go. |
| 22:37:08 | blowmage | i don't know if that is where i thought i heard they wanted to remove gil from ruby2 though |
| 22:37:57 | evan | blowmage: well, keep an ear out |
| 22:38:03 | evan | i've heard exactly the opposite from them before |
| 22:38:41 | brixen | no one thought my joke about Ruby 2.0 being released in 2660 was funny :( |
| 22:39:01 | blowmage | they think having multiple vms in a process is preferable to removing the gil? |
| 22:39:16 | brixen | blowmage: that's what I got from the slides |
| 22:39:31 | evan | blowmage: yeah, thats what i've heard |
| 22:39:33 | brixen | I will be *very* surprized to see the GIL removed in the current codebase |
| 22:39:44 | evan | course, i heard that they weren't considering a JIT for a while |
| 22:39:46 | evan | and that changed |
| 22:39:46 | brixen | er surprised also |
| 22:39:47 | evan | so who knows. |
| 22:40:21 | blowmage | in the q&a he mentions they considered using llvm as the backend in 1.9, but decided against doing that work |
| 22:40:47 | blowmage | and they were hopeful that they could get that done with the macruby team, but it didn't end up going that way |
| 22:40:56 | evan | yep. |
| 22:42:04 | evan | brixen: 2660? |
| 22:42:21 | blowmage | what is the main issues preventing the gil being removed in the current 1.9 code? |
| 22:42:49 | evan | basically the whole code base. |
| 22:43:01 | blowmage | none of the c code is threadsafe? |
| 22:43:02 | evan | they have so much C code |
| 22:43:06 | evan | and 100% of it isn't thread safe. |
| 22:43:07 | evan | yeah. |
| 22:43:46 | blowmage | and making RArray threadsafe would slow it down too much? |
| 22:44:26 | blowmage | and it would make ruby2 basically be a fully new implementation? |
| 22:44:59 | evan | it's looking that way |
| 22:45:28 | evan | using locks for all access to RArary would be slow, yes. |
| 22:47:58 | brixen | evan: matz's slides refer to a novel that happens in 2660 |
| 22:48:41 | evan | i guess i missed that. |
| 22:49:37 | brixen | http://www.slideshare.net/ThoughtWorks0ffshore/matz-3534905 |
| 22:49:42 | brixen | the first few slides |
| 22:53:27 | evan | brixen: aaah |
| 22:53:27 | evan | hehe. |
| 22:53:34 | evan | ok, i'm going for an overdue jog. |
| 22:53:42 | brixen | ok |
| 23:02:22 | tarcieri | brixen: heh, the novel whose author the Hugo is named after? |
| 23:02:24 | tarcieri | http://en.wikipedia.org/wiki/Ralph_124C_41%2B |
| 23:03:08 | tarcieri | lol I see Matz screenshotted the Wikipedia page in his presentation |
| 23:03:19 | tarcieri | along with tons of other tabs |
| 23:05:09 | tarcieri | these Matz presentations always confuse me |
| 23:05:23 | brixen | heh |
| 23:05:24 | tarcieri | he goes on and on about multicore CPUs |
| 23:05:30 | tarcieri | then doesn't talk about how to address them with Ruby |
| 23:05:35 | tarcieri | one slide mentions "multiple VM" |
| 23:05:35 | brixen | mvm |
| 23:05:36 | tarcieri | that's it |
| 23:05:38 | tarcieri | yeah |
| 23:05:39 | brixen | yeah |
| 23:05:58 | brixen | I wonder if Ruby 2.0 will be our Perl 6 |
| 23:06:03 | tarcieri | like natively multithreaded Ruby isn't even on his radar |
| 23:06:06 | tarcieri | brixen: probably |
| 23:06:16 | brixen | dude, Perl 6 is amazing |
| 23:06:21 | brixen | period |
| 23:07:04 | tarcieri | amazing how? |
| 23:07:16 | brixen | wow, just waw amazing |
| 23:07:48 | brixen | I'll probably be tending a small vegetable patch before I program in Perl 6 |
| 23:10:54 | tarcieri | heh |
| 23:11:26 | tarcieri | it seems PHP might be pragmatic to maintain and incrementally improve their ball of shit instead of trying to fix it |
| 23:12:13 | tarcieri | they're always adding new nifty features, like goto! |
| 23:12:51 | brixen | goto is underrated |
| 23:12:56 | tarcieri | it really is! |
| 23:13:21 | tarcieri | very useful for goto-driven FSMs! :) |
| 23:13:39 | brixen | also, php is eminently pragmatic... 50% of the population is below average |
| 23:13:49 | tarcieri | heh |
| 23:14:40 | tarcieri | brixen: but seriously, wonder why Matz is all "OMG MULTICORE!" and doesn't give a crap about native multithreading |
| 23:14:58 | brixen | I think he probably cares about it |
| 23:15:08 | brixen | mvm would use threads probably, not processes |
| 23:15:16 | brixen | :) |
| 23:15:19 | tarcieri | lol |
| 23:15:27 | tarcieri | well I mean Thread mapping to native threads |
| 23:15:49 | brixen | tarcieri: not everyone is like you, this you have to realize |
| 23:16:05 | tarcieri | heh whut? |
| 23:16:08 | brixen | haha |
| 23:16:13 | brixen | :D |
| 23:16:32 | brixen | all I know is, rbx will be natively threaded concurrently |
| 23:16:34 | tarcieri | threads are immediately useful to anyone with a Rails app they want to scale across multiple CPU cores with a single VM image |
| 23:16:38 | tarcieri | yay! |
| 23:17:06 | tarcieri | I have a whole blog post on multithreading in Ruby I intend to put up here in a bit |
| 23:17:18 | brixen | sweet, looking forward to it |
| 23:17:20 | tarcieri | mentions "Rubinius soon!" on the native multithreading front :) |
| 23:17:25 | brixen | just remember what I said about the 50% J) |
| 23:17:29 | brixen | er :) |
| 23:17:30 | tarcieri | heh |
| 23:17:41 | tarcieri | threads that don't share state aren't scary! |
| 23:17:44 | brixen | J) isn't a half-bad emoticon |
| 23:18:14 | tarcieri | reminds me of a bull's nose or something |
| 23:18:18 | tarcieri | ):J) |
| 23:18:23 | brixen | heh |
| 23:18:56 | brixen | tarcieri: you need to wrap that into a sound bite: threads that don't share state are like bdsm with a safeword |
| 23:19:00 | brixen | something like that |
| 23:19:07 | brixen | capture the imagination |
| 23:19:09 | tarcieri | hahaha |
| 23:19:33 | tarcieri | that's awesome |
| 23:20:17 | brixen | don't be scared, you can play too |
| 23:20:22 | tarcieri | hehe |
| 23:20:32 | brixen | I dunno, probably something you can work with there |
| 23:20:41 | BrianRice-work | or "threads that share state are like bdsm without a safeword" of course |
| 23:20:47 | tarcieri | lol yeah |
| 23:20:49 | brixen | BrianRice-work: heh |
| 23:21:06 | brixen | BrianRice-work: I'm trying to evoke a positive image |
| 23:21:15 | brixen | people are already scared |
| 23:21:47 | BrianRice-work | that metaphor will need work, then |
| 23:22:07 | brixen | yeah, kinda pulled it out of my hat there |
| 23:22:35 | tarcieri | already threw it on Twitter :) |
| 23:22:51 | brixen | heh |
| 23:23:58 | brixen | tarcieri: hah, great, now we're going to get all kinds of crazies |
| 23:24:03 | tarcieri | heh |
| 23:24:19 | brixen | some guy was trying to run his php script in rbx because the topic mentioned JSON |
| 23:24:26 | brixen | and he was having trouble with json in his app |
| 23:24:33 | tarcieri | hahaha |