Show enters and exits. Hide enters and exits.
| 00:02:31 | jvoorhis | looking forward to breaking your code again ;) |
| 00:02:44 | jvoorhis | heading out now |
| 00:03:15 | evan | bye. |
| 00:03:38 | duncanbeevers | We also had to skip loading hpricot, but it looks like that's a known problem. |
| 00:03:56 | jvoorhis | hpricot isn't maintained iiuc |
| 00:04:02 | jvoorhis | i wouldn't miss it |
| 00:47:23 | boyscout | Spec for alias+super interaction with included modules - 44fa18d - Evan Phoenix |
| 00:47:23 | boyscout | Alias needs to hang on to the included module, not the module. - eb787d5 - Evan Phoenix |
| 00:47:40 | evan | jvoorhis: ^^ |
| 00:47:45 | evan | duncanbeevers: ^^ |
| 00:55:40 | boyscout | CI: rubinius: eb787d5 successful: 3441 files, 13540 examples, 41058 expectations, 0 failures, 0 errors |
| 05:10:52 | postmodern | http://pastie.org/992763 |
| 05:11:03 | postmodern | im getting US encoding errors when compiling rubinius on 1.8.7? |
| 05:14:14 | brixen | um, ruby -v ? |
| 05:14:47 | brixen | something seems messed up there |
| 05:15:03 | brixen | I kinda wish ppl would just build rbx in the source dir rather than via rvm :/ |
| 05:48:21 | postmodern | brixen, ruby 1.8.7 (2009-06-12 patchlevel 174) [x86_64-linux] |
| 05:48:25 | postmodern | brixen, this is under rvm |
| 05:48:45 | postmodern | brixen, i am building it in the source directory |
| 05:48:59 | postmodern | brixen, but since my default system ruby is 1.9.1, i have to switch to 1.8.7 using rvm |
| 05:49:12 | postmodern | brixen, since rubinius'es build system is not compatible with 1.9.1 |
| 08:06:16 | evan | postmodern: it says 1.8.7, but it's clearly still 1.9.1 |
| 08:06:19 | evan | this tells me so: |
| 08:06:25 | evan | /home/hal/rubinius/rakelib/vm.rake:694:in `block in <top (required)>' |
| 08:06:38 | evan | 1.8 never generates a backtrace line like that. |
| 08:06:50 | evan | nor does it ever raise encoding errors. |
| 08:21:06 | postmodern | evan, ah interesting |
| 08:21:12 | postmodern | evan, then it looks like a bug in rvm |
| 08:28:57 | postmodern | evan, or at some point the build system breaks out of rvm, and explicitly executes system ruby |
| 12:35:44 | lypanov | brixen: just finished the dalvik talk. its excellent. |
| 12:35:52 | lypanov | anyone with time should watch the last 30 minutes of it. |
| 12:36:28 | lypanov | they have a great self verification system which reruns any side effect free blocks within the interpreter and verifies mem writes against the jit |
| 12:37:10 | lypanov | dunno how well that plays with truly advanced opts. but still. its neat. |
| 12:37:30 | lypanov | disappears to code and listen to lada gaga again |
| 19:16:42 | jslabovitz | i'm having build troubles. the actual builds are succeeding, but tests are failing with a crash on test_SingleBlockAllocator_allocate (in Suite TestImmixGC). this is on OS X 10.6.3, latest git head, with both ruby1.8.7 and llvm are from macports. is this a known issue? |
| 19:18:32 | Defiler | hopefully the rbx build process correctly ignores the (not usable) macports llvm |
| 19:18:37 | Defiler | but if it isn't, that might be your problem |
| 19:18:43 | jslabovitz | ah, i think it does not. |
| 19:18:58 | Defiler | can you do a build with rake --trace and make a gist (or your preferred paste site) out of it? |
| 19:19:26 | jslabovitz | i mean, it clearly did not download another version. i figured it would work, since the macports version seemed (?) to be the same as the required one. maybe not. |
| 19:19:49 | Defiler | it's a little tricky until the next stable version of llvm comes out |
| 19:20:13 | Defiler | rubinius relies on a bunch of bugfixes and improvements, not a few of which evan fixed and contributed upstream. heh |
| 19:21:04 | jslabovitz | okay, i'll try it out w/o the macports llvm, and see if i get farther along. thanks. |
| 19:21:14 | Defiler | good luck; hopefully that fixes it |
| 19:21:36 | Defiler | llvm-config --version just says '2.6' but in reality rbx needs a specific patch level or later |
| 19:34:18 | evan | well, we should be able to use 2.6 release |
| 19:34:25 | evan | thast what the prebuilts are from |
| 19:34:38 | evan | but for some reason, people seem to get other versions of 2.6 installed |
| 19:34:41 | evan | that cause troubles. |
| 19:35:01 | evan | jslabovitz: run ./configure, what does it output? gist that. |
| 19:35:07 | jslabovitz | 'port info llvm' claims 'llvm @2.6, Revision 2' |
| 19:35:30 | jslabovitz | sorry, i already removed macport's llvm, so i don't think the ./configure output will be relevant. |
| 19:35:59 | evan | ok |
| 19:36:03 | evan | well, give that a shot |
| 19:36:07 | evan | be sure to run 'rake clean' though |
| 19:36:12 | evan | after you run ./configure |
| 19:36:17 | jslabovitz | it's already working far better. |
| 19:36:43 | evan | ok cool. |
| 19:43:09 | jslabovitz | okay, that build & test worked. so definitely it's an issue with whatever llvm macports is pulling in. |
| 19:54:40 | evan | jslabovitz: ok great! |
| 20:03:29 | Defiler | evan: I love you, rails: https://gist.github.com/b334efbd305d202ee05b |
| 20:04:22 | evan | wow. |
| 20:04:23 | evan | WOW. |
| 20:04:25 | evan | thats so terrible. |
| 20:04:46 | evan | fuck them. |
| 20:05:08 | evan | doesn't even run under 1.8?! |
| 20:05:10 | Defiler | right |
| 20:05:22 | Defiler | ::fatal pwtf**INT_MAX |
| 20:06:05 | evan | wait wait |
| 20:06:09 | evan | that doesn't run on ANY ruby |
| 20:06:28 | Defiler | right |
| 20:06:33 | Defiler | totally not valid syntax |
| 20:06:44 | evan | where the fuck is that coming from?! |
| 20:07:17 | Defiler | do you really want to see? |
| 20:07:19 | Defiler | because.. |
| 20:07:20 | Defiler | ObjectSpace.each_object(class << sup; self; end) do |k| |
| 20:07:21 | Defiler | if k != sup && (k.name.blank? || eval("defined?(::#{k}) && ::#{k}.object_id == k.object_id")) |
| 20:07:37 | evan | oh man, i didn't. |
| 20:07:44 | evan | so MRI is returning fatal as a Class? |
| 20:07:48 | Defiler | yes |
| 20:08:00 | evan | did this code ever work then? |
| 20:08:01 | evan | i can't have |
| 20:08:07 | evan | MRI can't have just started returning it. |
| 20:08:22 | Defiler | it only happens when you have enough juice loaded |
| 20:08:24 | evan | oh, you called subclasses on Exception |
| 20:08:28 | Defiler | yeah |
| 20:08:30 | evan | thats probably the deal. |
| 20:08:34 | evan | they've never tested doing that. |
| 20:08:38 | evan | *eyeroll* |
| 20:08:45 | evan | ok, i'm off to get some cuban food and go to ikea. |
| 20:08:48 | Defiler | awesome |
| 20:08:53 | evan | hope that NYC is nice today! |
| 20:09:03 | Defiler | dunno; stuck in the office working ;) |
| 20:09:03 | evan | it's 80 here (so it will be 90 in the valley) |
| 20:09:07 | evan | :( |
| 20:09:17 | evan | ok, well, get outside! |
| 20:09:18 | evan | :) |
| 20:09:19 | evan | later. |
| 20:09:25 | Defiler | have fun |
| 20:29:55 | Defiler | evan: https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4774-patch-exceptionsubclasses-f ails-with-syntax-error |
| 22:29:58 | lypanov | wtf. |
| 22:30:04 | Defiler | I know, right? |
| 22:35:23 | dreinull | maybe stupid question but is rubinius as fast as mri? |
| 22:36:04 | dreinull | if it's written in ruby where is it interpreted itself? |
| 22:36:32 | dreinull | otherwise it's really interesting to read rubinius code and see how some methods are implemented. |
| 22:36:59 | michaeltomer | It depends on the task. |
| 22:37:40 | lypanov | dreinull_: its not interpreted. its compiled. |
| 22:38:50 | lypanov | dreinull_: in some (many) benchmarks rubinius is faster. in some slower. |
| 22:38:50 | dreinull | lypanov: ruby code can also be compiled? |
| 22:39:04 | michaeltomer | Rubinius can be smart about its code in a way that few other implementations can. |
| 22:39:16 | lypanov | dreinull_: compilation and interpretation are funny terms. |
| 22:39:32 | lypanov | dreinull_: java is compiled to bytecode right? |
| 22:39:34 | michaeltomer | Macruby, Rubinius, IronRuby, and JRuby all offer some form of compilation. |
| 22:39:36 | lypanov | dreinull_: rubineus the same. |
| 22:39:48 | lypanov | if i could spell. |
| 22:40:16 | michaeltomer | C# is compiled to CIL, it's the same idea. |
| 22:40:20 | dreinull | lypanov: no expert on this. |
| 22:40:20 | lypanov | dreinull_: not sure if users of rubinius compile. never used it. |
| 22:40:37 | Defiler | So, here's how it works |
| 22:40:41 | lypanov | either way. rubinius will be the fastest vm in a year or so unless the jvm guys wake up. |
| 22:40:52 | michaeltomer | Rubinius offers JIT, which is still compilation. |
| 22:40:55 | lypanov | and until then its fast enough. so if it runs your stuff. use it. :P |
| 22:40:57 | Defiler | there is some code somewhere that doesn't require ruby, and is native to the platform you are running on |
| 22:41:04 | lypanov | michaeltomer: its not really compilation. |
| 22:41:12 | Defiler | sometimes that is because you wrote it in C, other times it is because you generated machine code in some other way |
| 22:41:17 | lypanov | shuts up and lets Defiler speak |
| 22:41:41 | michaeltomer | lypanov: That's arguable. |
| 22:41:45 | Defiler | in the case of rubinius 1.0, that is a very cool library called LLVM, along with C++ code written to implement that underlying layer for rubinius |
| 22:42:02 | lypanov | michaeltomer: yup thusly "not exactly" :P |
| 22:42:06 | Defiler | in earlier versions, it worked various different ways that I won't confuse this answer by listing out |
| 22:42:28 | Defiler | So, what happens when you type 'rbx myprogram.rb'.. |
| 22:42:31 | lypanov | michaeltomer: i personally don't count jitting as compilation. its no more compilation than linking is compilation imo. |
| 22:42:57 | Defiler | the bootstrap binary loads up just enough code to load the kernel/core/etc of rubinius, which is written in ruby |
| 22:43:21 | Defiler | but, importantly, in the file you download when you say 'gimme rubinius 1.01', already compiled to rubinius bytecode (using ruby) |
| 22:43:38 | Defiler | so that gives you the 'pull yourself out of the rabbit hole' trick you need to get the loader running |
| 22:43:51 | Defiler | at that point, it's just a matter of efficiently turning all that stuff into native machine code at runtime |
| 22:43:57 | Defiler | 'just' |
| 22:44:01 | lypanov | :P |
| 22:44:04 | Defiler | (and that's where LLVM comes in) |
| 22:44:23 | lypanov | still very happy he shoved llvm down everyones throats at the right time |
| 22:44:43 | Defiler | at the end of the day, after startup, you're using llvm to spit out machine code and then jumping into that region of memory |
| 22:44:49 | Defiler | just like C |
| 22:45:03 | lypanov | Defiler: saw the dalvik vm talk @ google i/o 2010 on youtube? |
| 22:45:08 | Defiler | nope |
| 22:45:32 | Defiler | http://www.youtube.com/watch?v=Ls0tM-c4Vfo |
| 22:45:34 | Defiler | that? |
| 22:45:58 | Defiler | man, they really needed this |
| 22:46:02 | dreinull | sounds compelling. I will definitely try it. |
| 22:46:04 | Defiler | the android vm is sooo slow |
| 22:46:12 | lypanov | Defiler: they did some damn neat stuff in it. |
| 22:46:20 | lypanov | Defiler: skip the first half. jump to the non native guy. |
| 22:46:45 | dreinull | I always thought it was some kind of show off thing. Lets interpret ruby with a ruby ruby ruby... |
| 22:46:46 | lypanov | summary of first half: tracing jit and we rule at keeping mem usage low. |
| 22:46:47 | lypanov | (they do) |
| 22:47:00 | lypanov | dreinull_: naah, its just the Right Thing to do. |
| 22:47:30 | lypanov | was playing with such concepts many a year back |
| 22:47:56 | Defiler | dreinull_: Not to show off; because if you look at MRI, the jump between C and back into ruby is extremely expensive |
| 22:48:08 | Defiler | and rbx doesn't need to make that leap |
| 22:48:48 | lypanov | all signs of mah first attempt at a vm have disappeared (mono + ruby) |
| 22:49:47 | dreinull | rvm install rbx |
| 22:51:18 | jslabovitz | Just for fun (and because I enjoyed talking to Brian Ford yesterday @ OSBridge), I tried building Rubinius on my BeagleBoard. Unfortunately, it failed: <http://gist.github.com/427073>. Any gcc gurus out there? |
| 22:51:52 | Defiler | oh man hehe |
| 22:52:06 | Defiler | I don't think rbx builds on 4.4 yet, actually.. but I might be out of date |
| 23:42:30 | dreinull | 1:0 for mri, code 50% faster. |
| 23:43:01 | dreinull | doing some db searching, ie. crunching the db returns. |