Show enters and exits. Hide enters and exits.
| 00:25:30 | goyox86 | brixen: I was looking at the ByteCodeCompiler i don't know if you remember i told you taht i wanted to write some high level docs |
| 00:26:39 | brixen | I don't specifically remember, but sure |
| 00:27:25 | goyox86 | brixen: and i read some code, and the compilation is modeled as a series of "Stages", with certain intermediate representation between those stages? |
| 00:27:36 | brixen | yes |
| 00:27:50 | brixen | I should write a quick doc on that |
| 00:28:26 | goyox86 | brixen: ok, just for validating my thoughts :] |
| 00:28:33 | brixen | heh |
| 00:29:13 | brixen | String#unpack specs are just the saddest little creatures in the universe of codez |
| 00:31:51 | evan | poor guys. |
| 03:58:41 | asap18 | /j ##iOS |
| 07:50:17 | dbussink | evan: heavily supporting netherlands too? :P |
| 07:59:15 | dbussink | brixen: how's the fight with packing coming along? |
| 07:59:57 | brixen | swell |
| 08:00:07 | brixen | so swell in fact, that I'm going to sleep :) |
| 08:00:18 | brixen | dbussink: congrats to the futbol team :) |
| 08:01:08 | dbussink | brixen: awesome game yeah |
| 08:01:18 | dbussink | too much of a thrill at the end though :P |
| 08:01:24 | brixen | heh |
| 08:03:30 | brixen | well, another big day tomorrow with de vs es |
| 08:03:45 | brixen | catch y'all on the flip side :) |
| 08:06:40 | dbussink | night! |
| 11:18:42 | Plymouth | hi |
| 11:19:03 | Plymouth | anyone here know about the embedded ivars in 1.9 objects? |
| 11:19:23 | Plymouth | i need to knw whether it's always the first 3 that are embedded, or only the first 3 if the number of ivars <= 3 |
| 11:28:04 | dbussink | Plymouth: how do you mean? |
| 11:28:17 | dbussink | Plymouth: whether rubinius embeds ivars in the memory layout for an object? |
| 11:28:30 | Plymouth | oh sorry i was taling about yarv :/ |
| 11:28:58 | Plymouth | i ask here just because ppl on this chan seem to know more about mri/yarv internals than those on other chans |
| 11:48:42 | dbussink | ah ok, i don't know how yarv does it |
| 11:49:01 | dbussink | and people here don't usually know too much about the internals, mostly about general design of virtual machines etc. |
| 11:49:12 | dbussink | Plymouth: but rubinius packs ivars into objects ;) |
| 11:49:48 | Plymouth | thanks |
| 12:07:08 | dbussink | Plymouth: was added pretty recently actually |
| 12:07:34 | dbussink | it keeps track of ivars that are used in the code |
| 12:07:45 | dbussink | and packs them into the object the first time an instance is created |
| 16:24:58 | brixen | morning! |
| 16:25:29 | cremes | morning, all |
| 16:25:30 | brixen | evan: doing your calisthenics? |
| 16:25:39 | evan | :D :D |
| 16:25:43 | evan | i'm setting up my demos |
| 16:25:48 | brixen | sweet |
| 16:25:50 | cremes | i hear #pack/#unpack is coming along well |
| 16:25:51 | evan | thats pretty much calisthenics for programmers, yeah. |
| 16:26:03 | brixen | cremes: yep! got unpack Cc working last night |
| 16:26:20 | brixen | cremes: still need to finish fixing up unpack Cc specs though |
| 16:26:26 | brixen | they are dismal |
| 16:26:36 | brixen | and benchmark this |
| 16:26:43 | cremes | glad to hear it's coming along so nicely |
| 16:27:35 | brixen | this is fun http://www.rubyist.net/~matz/slides/rc2002/index.html |
| 16:27:59 | brixen | this is also fun http://twitter.com/brixen/status/17932264097 |
| 16:30:55 | cremes | reading through matz's slides on "good looking" code, it makes me sad that so much ruby is so ugly (stdlib, i'm looking at you) |
| 16:32:08 | cremes | geez, they had no idea in 2002 that ruby was about to take off |
| 16:34:34 | brixen | but they had some idea about 1.9 and lo! here it is :) |
| 16:35:05 | BrianRice-work | how would they have known? |
| 16:35:33 | brixen | heh magic 8 ball? :) |
| 16:36:08 | cremes | there's no way they would have known; i'm just remarking on the wild-eyed optimism |
| 16:38:33 | BrianRice-work | hey, look, you guys just implemented the "bytecode interpreter" of slide: http://www.rubyist.net/~matz/slides/rc2002/mgp00025.html |
| 16:39:42 | brixen | and a pretty good gc |
| 16:39:58 | brixen | native threads and soon without the gil |
| 16:40:04 | brixen | we're almost 3/4 there :) |
| 16:40:15 | brixen | who wants to work on the new parser? |
| 16:40:39 | brixen | notices everyone looking with mock business at their other work... |
| 17:15:27 | jvoorhis | brixen: new parser? |
| 17:16:35 | brixen | jvoorhis_: we were discussing this slide http://www.rubyist.net/~matz/slides/rc2002/mgp00025.html |
| 17:16:47 | brixen | and I mentioned we are about 3/4 of the way there |
| 17:16:55 | brixen | but someone needs to work on the parser :) |
| 17:17:06 | cremes | i didn't think any GIL work had been done yet? |
| 17:17:21 | brixen | cremes: actually, evan has been laying the groundwork |
| 17:17:34 | brixen | in particular, thread local allocation |
| 17:17:37 | cremes | didn't know that... |
| 17:18:17 | jvoorhis | oh excellent |
| 17:27:27 | patmat | hello everyone, i got some mysterious problems with building rubinius 1.0.1 |
| 17:27:37 | brixen | hi patmat |
| 17:27:40 | brixen | got a gist? |
| 17:28:04 | patmat | gist? |
| 17:28:12 | patmat | one moment i will post it in a second |
| 17:41:54 | patmat | ok got the error again, maybe someone of you have an idea.. |
| 17:42:30 | patmat | http://www.pastie.org/1034644 thats it |
| 17:43:02 | patmat | the first stuff at beginning works fine, after a while that happens :/ |
| 17:43:03 | brixen | patmat: what platform |
| 17:43:10 | patmat | Linux fedora |
| 17:43:24 | brixen | you need ruby dev package installed |
| 17:43:29 | patmat | version 13 |
| 17:43:33 | brixen | I'm not sure what it's called on fedora |
| 17:44:16 | brixen | I think the package is ruby-devel |
| 17:45:00 | brixen | here's what I installed to get f8 running: ruby, ruby-devel, ruby-libs, ruby-irb, ruby-rdoc, rubygems, then gem install rake |
| 17:45:29 | patmat | thanks for that, brixen! i installed the ruby devel package and try it again |
| 17:46:02 | brixen | ok, let me know how it goes |
| 17:46:05 | patmat | you know, ruby is my first real programming language. i only played around as kid with qbasic and got some "basic" skills |
| 17:46:18 | brixen | cool! ruby is a great language |
| 17:46:19 | patmat | so i heard good stuff from a colleague who works at google, hes a ruby addict |
| 17:46:19 | slava | hey man, are you saying qbasic is not a real language??? blasphemy!!!!! |
| 17:46:36 | brixen | slava: heh, I programmed in qbasic too :) |
| 17:46:41 | patmat | he likes rubinius so i try it |
| 17:46:48 | brixen | patmat: awesome |
| 17:46:58 | patmat | but, eh sorry, i really don't know whats the difference for me :P |
| 17:47:06 | patmat | if i use "normal ruby 1.9" or rubinius hehe |
| 17:47:23 | brixen | patmat: well, rubinius is 1.8.7 compatible, not 1.9 |
| 17:47:50 | brixen | patmat: but generally we are faster than 1.8.7 and we will support 1.9 soon(ish) |
| 17:47:58 | patmat | i understand |
| 17:48:06 | brixen | patmat: but use whatever works best for you while you are learning ruby |
| 17:48:10 | patmat | but at the end, with some words, what is the difference with it? |
| 17:48:38 | brixen | rubinius is a modern bytecode virtual machine with a good garbage collector and a JIT |
| 17:48:46 | patmat | ah, ok |
| 17:48:49 | brixen | the rubinius technology is way ahead of MRI |
| 17:48:52 | patmat | so it is much faster than normal ruby? |
| 17:48:55 | patmat | oh i understand |
| 17:48:58 | brixen | MRI is the japanese dev version of ruby |
| 17:49:04 | patmat | so maybe, if its more developed it becomes st andard? |
| 17:49:08 | brixen | it's faster on some things and slower on some |
| 17:49:16 | sbryant | Who knows? |
| 17:49:18 | brixen | but we are working on the slower parts all the time |
| 17:49:34 | brixen | patmat: it's not up to us to become the standard |
| 17:49:45 | brixen | if everyone uses it, it will be the one everyone uses :) |
| 17:49:52 | brixen | we are just trying to build the best system we can |
| 17:50:00 | patmat | now i got another error |
| 17:50:13 | patmat | http://www.pastie.org/1034666 |
| 17:50:32 | brixen | ok, you need the zlib package |
| 17:50:35 | sbryant | And rubyspec is ensuring compatibility between the rubies |
| 17:50:39 | patmat | i understand brixen, so let me guess. you guys are programmers for profession? |
| 17:51:02 | brixen | patmat: evan and I are employed by engine yard to work on rubinius |
| 17:51:10 | patmat | oh :O |
| 17:51:18 | patmat | yes i know about evan, saw some interview or smthn |
| 17:51:20 | BrianRice-work | lucky dudes |
| 17:51:31 | patmat | i work in the IT too, but dont laugh :/ |
| 17:51:39 | patmat | i'm in a support team |
| 17:51:48 | sbryant | Speaking of EY, moving the app I'm working on to EY |
| 17:51:53 | brixen | patmat: try installing zlib-devel |
| 17:51:54 | patmat | little bit of administration, but most of the time... windows support, set up computers and more |
| 17:52:23 | patmat | oki, cause i already got zlib |
| 17:52:26 | brixen | sbryant: woot |
| 17:53:06 | sbryant | brixen: my manager (who is awesome because I never see him in the role of a manager) setup our ey deploy rake task |
| 17:53:21 | sbryant | so I'm just waiting on something, maybe give him my key to deploy and start the transition |
| 17:53:24 | patmat | so brixen we could say you are some more professional ruby programmer ;D |
| 17:53:36 | sbryant | And no more freakin' sysadmin crazy bash scripts to rsync crap. |
| 17:54:16 | brixen | patmat: I think so, I've been doing ruby dev for over 6 years |
| 17:54:45 | patmat | after installing the zlib devel package: http://www.pastie.org/1034676 |
| 17:54:49 | patmat | oh wow |
| 17:55:02 | patmat | so its your favourite programming language? |
| 17:55:12 | patmat | i hope i chose the right language to start and its not too hard |
| 17:55:20 | brixen | patmat: ok, I'm guessing you don't have readline-devel installed |
| 17:55:23 | patmat | not much jobs for that here.. but i dont care, i want to do what i want |
| 17:55:42 | brixen | patmat: I think ruby is a great language, but there are a lot of languages out there |
| 17:55:44 | patmat | i'm not interested in java or c#, i met a java course 2 years ago or something, its not my place |
| 17:56:28 | brixen | patmat: ruby is a fine language to start with, but there is a lot of programming concepts you need to learn regardless of the language |
| 17:56:44 | patmat | you mean.. theory? |
| 17:56:55 | sbryant | Scheme is a great place to learn conceps |
| 17:56:58 | sbryant | concepts |
| 17:57:01 | sbryant | but that's just me. |
| 17:57:04 | brixen | well, data structures, object-oriented design, etc |
| 17:57:37 | brixen | patmat: try installing readline-devel |
| 17:57:44 | patmat | after installing the readline-devel http://www.pastie.org/1034686 |
| 17:57:48 | patmat | yup did so, thank you |
| 17:58:04 | brixen | ok -lcrypto ... |
| 17:58:11 | slava | sbryant: scheme is a great place to learn how to balance parentheses |
| 17:58:12 | brixen | I don't know what package that is |
| 17:58:31 | sbryant | slava: hey now, the parens are a beautiful thing |
| 17:59:41 | goyox86 | guys, evan's webcast started? |
| 17:59:44 | brixen | patmat: could you try installing openssl-devel if that package exists |
| 17:59:55 | brixen | goyox86: it's ending in about 2 minutes |
| 18:00:41 | brixen | goyox86: it should be recorded though |
| 18:01:20 | goyox86 | brixen :[ fucksdsing timezones :s, yeah i must see the recorded version |
| 18:01:27 | patmat | brixen yup found that on google, installing right now |
| 18:01:33 | brixen | goyox86: :( |
| 18:01:37 | brixen | patmat: ok |
| 18:02:07 | patmat | so everyone here is employed as programmer? |
| 18:02:21 | brixen | no, not everyone |
| 18:02:38 | brixen | we have some bots like boyscout that report commits and build failures :) |
| 18:02:55 | patmat | hehe |
| 18:03:08 | goyox86 | brixen: even now is giving a webcast about, Apple's Keynote App lol |
| 18:03:22 | brixen | heh |
| 18:03:24 | patmat | i'm just a supporter who has enough of too much bullshit-questions |
| 18:03:52 | patmat | so i look around what i can do else :) |
| 18:04:28 | brixen | patmat: we'll have to add a section for Fedora 13 in doc/getting_started.txt |
| 18:04:38 | brixen | patmat: do you have the whole list of what you installed ? |
| 18:04:46 | goyox86 | brixen: how is your spanish? :] |
| 18:04:48 | patmat | yup one moment |
| 18:05:02 | patmat | i just wait if everything works fine |
| 18:05:32 | patmat | which OS do you use, brixen? |
| 18:05:34 | brixen | goyox86: mas o menos, hace mucho que he hablado regularmente |
| 18:05:58 | brixen | patmat: I'm still using os x leopard |
| 18:06:11 | patmat | thats what my girlfriend is using ;D |
| 18:06:26 | patmat | another mac user! |
| 18:06:29 | patmat | nah its fine :) |
| 18:07:12 | brixen | patmat: I've used linux a lot |
| 18:07:22 | goyox86 | brixen: alemania o españa? |
| 18:07:28 | brixen | but I'm not a sysadmin and I don't like tinkering with my system |
| 18:07:32 | brixen | I just want to get work done |
| 18:07:39 | patmat | brixen i understand what you mean :) |
| 18:07:49 | patmat | i use it just to play around mostly |
| 18:07:53 | brixen | goyox86: españa, como no! :) |
| 18:07:58 | patmat | and test things, sometimes its very horrible |
| 18:08:02 | patmat | like... now :P |
| 18:08:32 | brixen | patmat: yeah, it's often hard to get all the deps installed to just install some software |
| 18:08:54 | goyox86 | patmat: what OS do you use? |
| 18:09:13 | patmat | private i have a linux notebook and an old windows xp workstation |
| 18:09:20 | patmat | at work we use windows 7 |
| 18:09:43 | patmat | but im not a microsoft friend |
| 18:10:24 | dbussink | brixen: so, any change of showing some ragel awesomeness soon? |
| 18:11:16 | brixen | dbussink: working on unpack Cc benchmarks atm |
| 18:11:26 | patmat | well done, nice brixen thanks, rubinius works! |
| 18:11:28 | brixen | dbussink: I'll push some stuff today |
| 18:11:32 | brixen | patmat: awesome! |
| 18:11:34 | patmat | so one second, i tell you the packages list |
| 18:11:39 | brixen | ok, cool |
| 18:11:51 | dbussink | brixen: cool :) |
| 18:12:06 | brixen | dbussink: mostly I needed to figure out the approach |
| 18:12:14 | brixen | dbussink: should be pretty easy to add stuff now |
| 18:12:18 | dbussink | brixen: for adding different formats you mean? |
| 18:12:27 | brixen | dbussink: but I'm fixing the specs as I go, and they are horrid |
| 18:12:36 | brixen | yeah, to add formats |
| 18:12:56 | brixen | dbussink: you can look at it here http://github.com/brixen/rapa |
| 18:14:04 | patmat | openssl-devel, readline-devel, zlib-devel, ruby-devel (everything installed with yum) |
| 18:14:04 | evan | i'm back |
| 18:14:18 | brixen | patmat: ok, thanks, I'll add it to the docs |
| 18:14:20 | brixen | wb evan |
| 18:14:24 | patmat | so that should be everything, thanks |
| 18:14:26 | patmat | hello evan :) |
| 18:14:38 | dbussink | evan: how did it go? |
| 18:14:44 | evan | good good. |
| 18:14:46 | dbussink | evan: just in time for the other semi final ;) |
| 18:14:50 | evan | the video will be online in a few days |
| 18:14:51 | evan | dbussink: yep! |
| 18:14:59 | evan | dbussink: have fun last night :D |
| 18:15:01 | evan | ? |
| 18:16:06 | sbryant | evan: what did you video up? |
| 18:16:15 | evan | rubinius webinar |
| 18:16:36 | sbryant | oh neat-o |
| 18:17:01 | dbussink | evan: i definitely did yeah :) |
| 18:17:05 | dbussink | crazytown over here |
| 18:17:10 | dbussink | last minutes were killing me |
| 18:17:18 | evan | i'll bet! |
| 18:17:23 | evan | a goal in the 91st minute will do that! |
| 18:17:27 | patmat | brixen, evan: so maybe rubinius will be out for windows too? i could play around at work then :P |
| 18:18:12 | evan | we need help from windows devs |
| 18:18:13 | brixen | patmat: soon! luis lavena, the Ruby installer maintainer is helping us get rubinius to build on windows |
| 18:18:27 | patmat | oh, great |
| 18:18:30 | brixen | patmat: but yeah, we need more windows devs to help |
| 18:18:43 | patmat | maybe in years.. :P |
| 18:18:44 | dbussink | evan: http://www.flickr.com/photos/proud2share/4769611226/in/set-72157624313899427/ |
| 18:18:50 | dbussink | evan: that was here in town |
| 18:18:55 | evan | hah |
| 18:18:56 | evan | nice. |
| 18:19:19 | patmat | no, not football! |
| 18:19:41 | patmat | walk to them with a cross in your hand and theyll leave |
| 18:20:15 | patmat | evan, brixen solved my problem with installing rubinius on fedora 13, some packages must be installed |
| 18:20:25 | evan | cool. |
| 18:20:41 | dbussink | patmat: haha, guess you don't like it then :P |
| 18:20:49 | patmat | ;D |
| 18:21:00 | dbussink | at least you call it by the proper name ;) |
| 18:21:13 | patmat | i'm just kidding because Austria isnt in the game |
| 18:21:24 | patmat | no, i just dont care about football :P |
| 18:21:47 | dbussink | people here who don't care are getting excited now though :) |
| 18:23:58 | dbussink | evan: did you prep something for that heap dump stuff etc. |
| 18:24:11 | dbussink | would be nice to have that in a blog or link a video to the webinar |
| 18:24:16 | evan | I had a dump already done and the rails app already running |
| 18:24:27 | evan | yeah, when the video goes up |
| 18:24:29 | evan | i'll put a link to it. |
| 18:27:25 | goyox86 | the match is just about to start! :] yay! |
| 18:28:05 | goyox86 | oh man the hsbc, advertising just before the match's kickoff is worldwide? |
| 18:28:17 | dbussink | like right now |
| 18:28:18 | dbussink | ? |
| 18:28:22 | dbussink | no advertisement here |
| 18:29:50 | goyox86 | here in venezuela, just before start the matches, i mean all of them, somebody puts an HSBC advertising :-s |
| 18:33:41 | boyscout | Allocate cleanup phase 1 - 7cdde43 - Evan Phoenix |
| 18:33:47 | brixen | woot! |
| 18:33:55 | evan | slabs are in. |
| 18:35:22 | brixen | dbussink: here's a teaser for ya :P http://gist.github.com/467065 |
| 18:36:46 | dbussink | brixen: that's pretty similar to 1.8.7 now then :) |
| 18:36:58 | dbussink | brixen: how's 1.9? much faster or pretty much the same? |
| 18:37:02 | brixen | same |
| 18:37:06 | evan | BUT |
| 18:37:11 | evan | i've got a trick up my sleeve. |
| 18:37:14 | evan | sleave? |
| 18:37:14 | evan | anyway. |
| 18:37:18 | brixen | sleeve |
| 18:37:33 | brixen | what's the trick?! |
| 18:37:40 | evan | i'm going to teach the JIT about some forms on pack/unpack |
| 18:37:42 | evan | so, for instance |
| 18:37:52 | evan | unpack("N").first |
| 18:38:03 | evan | will be inline code. |
| 18:38:06 | evan | in the JIT |
| 18:38:13 | brixen | sweet |
| 18:38:47 | scoopr | cheating! |
| 18:39:00 | brixen | scoopr: the whole JIT is cheating :) |
| 18:39:09 | brixen | scoopr: oh, and cheaters win :) |
| 18:39:26 | evan | cheaters are the first winners. |
| 18:40:20 | scoopr | the local lottery thingy has a slogan "if you don't play, you can't win", in casual speech it has turned into "if you don't cheat, you can't win" |
| 18:42:00 | dbussink | look at the dutch team, they don't play as nice as they do sometimes, but they're in the final :) |
| 18:42:03 | dbussink | and that's what matters :) |
| 18:42:44 | brixen | I wonder how much the plane ticket would cost to come party with y'all if they win the final? :) |
| 18:45:37 | dbussink | brixen: last time i went from amsterdam to portland it was around 700 euro's :P |
| 18:45:53 | boyscout | CI: rubinius: 7cdde43 successful: 3457 files, 13668 examples, 41247 expectations, 0 failures, 0 errors |
| 18:46:15 | dbussink | evan: do you know how i can call a variable argument function from a variable argument function? so basically just passing the arguments down the chain? |
| 18:46:29 | evan | in C? |
| 18:46:30 | dbussink | adding rb_yield_values by calling rb_funcall2 |
| 18:46:35 | dbussink | yeah, c / c++ |
| 18:46:51 | dbussink | both take a number of arguments and a variable list |
| 18:47:02 | dbussink | i can pack that up, but if that's not necessary, that would be nice |
| 18:47:03 | evan | you don't. |
| 18:47:20 | evan | you have to unpack them and pass them as a fixed number out |
| 18:47:22 | evan | generally. |
| 18:47:33 | dbussink | i was suspecting as much |
| 18:48:22 | brixen | C/C++ could really use a foo(*args) mechanism :) |
| 18:48:41 | evan | because ANSI C is fixed caller, variable callee |
| 18:48:50 | evan | the caller has to put the arguments in the specific positions |
| 18:48:52 | evan | and remove them |
| 18:49:09 | evan | let me check, i think there is a hack to do it. |
| 18:50:56 | evan | dbussink: http://stackoverflow.com/questions/150543/forward-an-invocation-of-a-variadic-function-in-c |
| 18:51:49 | evan | that whole thing is all about vfprintf |
| 18:51:57 | evan | but they cover the answer at the top |
| 18:52:32 | dbussink | yeah, but looks like it's not really recommended |
| 19:03:15 | dbussink | evan: i've made this out of it: https://gist.github.com/8e0142ff50373d9459ba |
| 19:10:21 | patmat | brr i'm too dumb to create an environment variable for rubinius |
| 19:13:00 | evan | dbussink: you didn't free vars |
| 19:13:10 | dbussink | evan: i've changed it to use alloca |
| 19:13:12 | evan | dbussink: use alloca instead of calloc |
| 19:13:13 | evan | k |
| 19:13:22 | dbussink | evan: updated the gist |
| 19:15:49 | evan | dbussink: looks good. |
| 19:23:02 | patmat | do you guys recommend a special book for learning ruby? |
| 19:23:44 | patmat | at the moment i use "Beginning Ruby, From Novice to Professional - Second Edition", apress by Peter Cooper |
| 19:25:22 | boyscout | Add specs for rb_yield_values - 499c584 - Dirkjan Bussink |
| 19:25:22 | boyscout | Add implementation for rb_yield_values - 1cb7812 - Dirkjan Bussink |
| 19:26:40 | dbussink | evan: RREGEXP is probably out of the question right? |
| 19:27:08 | evan | yeah, it is. |
| 19:27:13 | evan | because it exposes the raw re* |
| 19:27:45 | patmat | thanks for yor help guys, see you soon! |
| 19:28:42 | evan | ok, lunch time! |
| 19:29:22 | dbussink | evan: btw, #395 is another tricky exception handling one |
| 19:29:30 | dbussink | evan: dunno if you read my smaller repro for it |
| 19:34:52 | boyscout | CI: rubinius: 1cb7812 successful: 3457 files, 13668 examples, 41247 expectations, 0 failures, 0 errors |
| 20:00:22 | dbussink | evan: looks like i have a working valgrind now on my os x :) |
| 20:13:23 | blowmage | so macruby is working on removing the gil, and hasn’t jruby already removed it? |
| 20:13:40 | dbussink | jruby hasn't had it for a long time |
| 20:13:50 | dbussink | and evan started on work so it can be removed in rubinius too |
| 20:13:50 | blowmage | i’m just wondering how rubinius will differ from those? will it be in how values in memory will be copied from thread to thread? |
| 20:14:00 | blowmage | but its more than just a parser, right? the vm need to coordinate more as well, right? |
| 20:14:19 | dbussink | well, what you do is getting more and more fine grained checks where it's important |
| 20:14:27 | dbussink | so evan changed things in memory allocation |
| 20:14:37 | dbussink | so it can use finer grained locks |
| 20:14:45 | dbussink | so there is no global lock needed in the end |
| 20:15:56 | blowmage | ah, so rubinius will lock access to memory to a given thread? |
| 20:16:30 | dbussink | not always, if you don't want to blow up, you always need to lock stuff like that |
| 20:16:30 | blowmage | so it is still one big shared pool of memory? |
| 20:16:47 | dbussink | well, you have a shared pool anyway because how threads work |
| 20:17:16 | dbussink | the jvm also needs locks to manage that |
| 20:17:49 | dbussink | removing a global lock always means using more finer grained locks because there always will be area's that you need to protect |
| 20:18:04 | blowmage | gotcha |
| 20:18:23 | dbussink | memory pool management is one of those things |
| 20:18:44 | blowmage | right, i talked with mentalguy a while ago about this, and i guess we were talkin about an approach considered by the macruby team for copying values from thread to thread when needed |
| 20:19:16 | dbussink | well, then you still need to be sure that for example stuff isn't modified while being copied |
| 20:19:21 | dbussink | you can end up with invalid objects that way |
| 20:19:27 | blowmage | but i don’t get concurrency real well and so i think i jumbled a lot of our discussion in my head. :) |
| 20:19:31 | dbussink | so you need to lock things there probably too |
| 20:20:41 | blowmage | right, but for 1.9 to 2.0, the approach is to add a finer grain of locks to remove the gil, and rubinius’ approach is similar? |
| 20:22:06 | dbussink | well, that's basically the approach you have to take if you don't want a gil |
| 20:22:31 | blowmage | so the new parser is needed to add the locks at the right level? |
| 20:22:40 | dbussink | but you have to be very careful, for example python did an experiment long time ago but it slowed the single threaded performance down by a factor of 2 |
| 20:23:03 | dbussink | nah, parsing isn't really related much to it actually |
| 20:23:27 | dbussink | more the moment of actual code loading that can be tricky |
| 20:23:28 | blowmage | so why is a new parser needed to remove the gil? |
| 20:24:01 | dbussink | you can get very nasty situations if you have multiple threads creating new classes for example |
| 20:24:08 | dbussink | they said it's needed in mri? |
| 20:24:20 | dbussink | because because it's tightly coupled to that |
| 20:24:37 | dbussink | parsing in itself is pretty thread safe |
| 20:24:55 | dbussink | it get's tricky when you want to use the parsed result and for example make a class available |
| 20:25:25 | blowmage | ah, that’s what you meant by ‘more the moment of actual code loading’? |
| 20:27:32 | blowmage | as i understand it, even 1.9 can’t use more than 1 core. because of the gil. |
| 20:28:05 | blowmage | agree that parallelism is up to the user, but we really can’t do that within a process today |
| 20:31:18 | blowmage | thx all. still trying to understand and this helped! |
| 20:33:07 | dbussink | blowmage: another big issue will be extensions |
| 20:34:07 | blowmage | dbussink: yeah, weren’t supporting 1.8 extensions a major reason for 1.9 not removing the gil? |
| 20:34:28 | dbussink | blowmage: not that i know of |
| 20:34:37 | blowmage | i thought i heard that somewhere |
| 20:34:45 | dbussink | blowmage: but removing the gil without a new and much smarter gc will be pretty useless |
| 20:34:54 | dbussink | because then removing the gil will kill performance |
| 20:35:15 | blowmage | good thing rubinius has a smarter gc then... |
| 20:35:42 | dbussink | it's necessary if you want to have finer grained locks and not get swamped in locking and context switching :) |
| 20:58:01 | dbussink | evan: interested in a valgrind trace? |
| 20:59:08 | evan | sure. |
| 20:59:27 | dbussink | evan: no idea how useful it is |
| 20:59:40 | dbussink | but i was able to compile a svn revision through macports |
| 21:00:11 | dbussink | evan: this is in interpreted mode: https://gist.github.com/ccedf69c1a92b8f4a67c |
| 21:01:55 | evan | dbussink: hrm |
| 21:02:00 | evan | better if you can tell me how you ran this |
| 21:02:03 | evan | since to do anything withit |
| 21:02:08 | evan | i'll need to rerun valgrind. |
| 21:02:14 | dbussink | evan: the command is at the top |
| 21:02:18 | dbussink | valgrind --dsymutil=yes --tool=memcheck --leak-check=full --show-reachable=yes ./bin/rbx -Xint --version |
| 21:02:34 | evan | when was valgrind fixed for 10.6? |
| 21:02:38 | dbussink | evan: i've installed valgrind-devel through macport |
| 21:02:40 | dbussink | macports |
| 21:03:04 | evan | so this is running irb then? |
| 21:03:37 | dbussink | evan: just running ./bin/rbx --version |
| 21:03:49 | dbussink | evan: http://code.google.com/p/data-race-test/wiki/ValgrindOnSnowLeopard |
| 21:03:58 | dbussink | i guess macports applies those patches too then |
| 21:04:28 | evan | i'm going run it on linux |
| 21:04:32 | evan | first. |
| 21:04:40 | evan | i worry about a cutting edge valgrind |
| 21:04:41 | evan | personally. |
| 21:05:04 | dbussink | well, just wanted to let you know it at least runs ;) |
| 21:05:09 | evan | yep :D |
| 23:14:49 | justin-george | brixen: pong. |
| 23:15:08 | brixen | justin-george: ping |
| 23:15:30 | brixen | causes time to reverse |
| 23:16:29 | justin-george | good meeting you last night. That was you, right? |
| 23:16:54 | brixen | justin-george: yep! ditto |
| 23:17:18 | justin-george | best 'ruby' code wtf of the day: (x || '') == (y || '') |
| 23:17:34 | justin-george | if that was C, I would assume they were being intentionally malicious. |
| 23:17:47 | brixen | hmm |
| 23:18:33 | brixen | justin-george: do you think if I came to give a talk to the powers that be about rbx, you'd get time to work on rbx compat for new relic? |
| 23:19:19 | justin-george | well, I'm taking time for rbx compat regardless, so yes? :) |
| 23:19:26 | brixen | heh |
| 23:19:34 | brixen | ok, well if I can help with that, do let me know |
| 23:31:03 | brixen | alexsuraci: any chance you're going to emerging lang or oscon? |
| 23:31:46 | alexsuraci | brixen: nope, though I'm not sure you meant to type my name :P |
| 23:32:56 | brixen | alexsuraci: heh, I did |
| 23:33:08 | brixen | alexsuraci: I lurk in #slate :) |
| 23:33:17 | alexsuraci | oh, haha |
| 23:33:23 | brixen | I was just wondering how many people I'm going to get to meet there |
| 23:34:13 | alexsuraci | gotcha |
| 23:35:20 | alexsuraci | would be fun, but I don't plan on going and probably wouldn't be able to |
| 23:36:41 | brixen | bummer |
| 23:36:52 | brixen | I hear slava is hanging out with us the whole week :) |
| 23:37:10 | brixen | and by "hanging out" I wonder if that means drinking beer in a strip club... |
| 23:37:45 | BrianRice-work | I'll be mostly there on an after-work basis |
| 23:38:09 | BrianRice-work | or at least after-3 |
| 23:38:58 | brixen | BrianRice-work: woot, does that include drinking beer in the strip club? :) |
| 23:39:12 | BrianRice-work | depends on the strip club - I have standards :) |
| 23:39:18 | brixen | heh |
| 23:39:35 | BrianRice-work | as does my girlfriend (who, granted, lives in Seattle) |
| 23:39:58 | brixen | I hear there's a dancer named Ruby in one, but I missed that event |
| 23:40:36 | evan | well, in Seattle, it's hard to have strip club standards |
| 23:40:42 | brixen | however, the person that could give you a first-person account is often in this channel |
| 23:40:48 | evan | since there is only like one. |
| 23:41:04 | BrianRice-work | evan, there are multiple, and they're all horrid and exploitative |
| 23:41:24 | evan | thats sad |
| 23:41:39 | BrianRice-work | yes, that's a word I've used on occasion when dragged to one |
| 23:42:57 | brixen | oh kay, I was just kidding about the strip clubs |
| 23:43:06 | brixen | let's hang out, drink beer, and talk vms :) |
| 23:43:17 | parndt_away | thats a word i'd always use with strip clubs :p |
| 23:45:20 | BrianRice-work | hopefully we can get the smalltalkers out of their shells |
| 23:45:36 | BrianRice-work | (pun semi-intended) |
| 23:45:51 | alexsuraci | nicely done |
| 23:49:31 | evan | wish i could be there. |
| 23:49:34 | evan | but comic-con calls. |
| 23:50:51 | brixen | psha :) |
| 23:50:56 | BrianRice-work | really? disappointing :) |
| 23:51:48 | evan | well, the issue is we get comic-con tix 8 months in advance. |
| 23:51:53 | evan | so it's hard to work around. |
| 23:52:32 | brixen | craigslist would help you with that, I'm sure :) |