Show enters and exits. Hide enters and exits.
| 00:08:11 | evan | ah shit. |
| 00:08:20 | evan | you changed what --prefix does |
| 00:08:22 | evan | didn't you. |
| 00:09:07 | evan | ok, need to build the installer again. |
| 00:14:25 | brixen | evan: what did that mess up? |
| 00:14:40 | evan | using --prefix with /usr/local/rubinius/1.0.0-rc2 |
| 00:14:47 | brixen | hm |
| 00:14:48 | evan | put everything in /usr/local/rubinius/1.0.0-rc2/rubinius/ |
| 00:15:09 | evan | I manually edited config.rb and config.h to remove the extra rubinius/ in there |
| 00:15:16 | evan | for the installer |
| 00:15:24 | evan | should be fine, it's no biggy for right now |
| 00:15:35 | evan | but we'll, yet again, have to address this. |
| 00:15:48 | brixen | hm |
| 00:17:27 | brixen | I'm not exactly following, I built the package, installed to /usr/local/rubinius/1.0.0-rc2, and it runs, but I thought it created a symlink before at /usr/local/bin/rbx |
| 00:17:52 | evan | mmm |
| 00:18:01 | evan | when you did --prefix |
| 00:18:16 | evan | it didn't set the bin to /usr/local/rubinius/1.0.0-rc2/rubinius/bin |
| 00:18:17 | evan | oooh |
| 00:18:18 | evan | hah |
| 00:18:20 | evan | i know what happened |
| 00:18:24 | evan | i already had a directory there. |
| 00:18:30 | evan | from my last test of the package. |
| 00:18:32 | wayneeseguin | WTF #89 |
| 00:18:34 | wayneeseguin | :D |
| 00:19:04 | brixen | evan: yeah, my /usr/local/rubinius/1.0.0-rc2 is sane |
| 00:19:09 | evan | k |
| 00:19:10 | brixen | ie, what I'd expect to see |
| 00:19:41 | evan | yep. |
| 00:19:44 | evan | again, my mistake. |
| 00:19:56 | brixen | n/p |
| 00:19:59 | brixen | I was just confused |
| 00:20:10 | evan | first-monday-of-the-decade itis |
| 00:20:19 | brixen | so, should I have a /usr/local/bin/rbx ? |
| 00:20:25 | evan | yeah, do you? |
| 00:20:29 | brixen | nope |
| 00:20:31 | evan | ok |
| 00:20:37 | evan | then the symlink isn't in the package |
| 00:20:45 | evan | i was playing with it at one point |
| 00:20:49 | evan | should we put it in? |
| 00:20:53 | brixen | I think so |
| 00:20:54 | evan | or let the user do that |
| 00:20:59 | brixen | I'd add it |
| 00:21:02 | evan | k |
| 00:21:49 | evan | i'd rather not tag again, etc. |
| 00:21:57 | evan | so i'll send you the diff to package.rake to do this |
| 00:22:02 | evan | and then i'll commit it to rc3 |
| 00:22:06 | brixen | ok |
| 00:32:09 | evan | brixen: https://gist.github.com/e4a05f904922a275f145 |
| 00:32:23 | evan | brixen: be sure to rm -rf your /usr/loca/rubinius/1.0.0-rc2 before you package it again |
| 00:32:29 | evan | otherwise you'll get the wierd pathing problem |
| 00:33:40 | slava | evan: what are you working on |
| 00:33:55 | evan | tagging and release 1.0 rc2 atm |
| 00:33:59 | mistergibson | just wrapped up some other stuff and did a pull, you guys need me to test anything in particular? |
| 00:34:11 | evan | mistergibson: nope, nothing particular. |
| 00:34:13 | mistergibson | k |
| 00:35:01 | slava | evan: awesome |
| 00:35:28 | brixen | evan: k |
| 00:35:42 | mistergibson | ok |
| 00:39:49 | brixen | evan: what format did you want for the installer? zip, tgz ? |
| 00:39:57 | evan | zip |
| 00:40:03 | evan | use the Compress option from finder |
| 00:40:06 | evan | is the easiest. |
| 00:40:10 | seydar | brixen: amp works with rubinius! thus far... |
| 00:41:01 | brixen | seydar: sweeet! |
| 00:41:05 | brixen | evan: k |
| 00:41:16 | evan | brixen: then upload to elle and let me know |
| 00:41:20 | evan | i've got the website updated |
| 00:41:22 | evan | just need to push it. |
| 00:41:48 | slava | rubini.us => rubini => ola bini |
| 00:41:52 | slava | coincidence or conspiracy? |
| 00:42:21 | evan | there must be a 3rd option. |
| 00:43:39 | brixen | evan: uploaded to my home dir |
| 00:44:01 | evan | k |
| 00:44:53 | brixen | evan: seeing an issue with InvalidRBC const missing |
| 00:44:58 | brixen | I'm looking into it |
| 00:45:03 | evan | erk. |
| 00:45:06 | evan | damnit. |
| 00:45:08 | evan | i moved it |
| 00:45:13 | evan | i must have missed a couple of places |
| 00:45:22 | evan | you probably need to refer to it as Rubinius:: |
| 00:45:41 | evan | is it critical enough to fix in rc2? |
| 00:46:31 | evan | BAH. |
| 00:46:33 | evan | fuck. |
| 00:46:35 | evan | :/ |
| 00:46:42 | evan | yeah, we need to fix this in rc2 |
| 00:46:48 | evan | fail on me. |
| 00:46:54 | evan | i see the issue. |
| 00:47:11 | brixen | evan: I'm rebuilding the installer |
| 00:47:19 | evan | using what? |
| 00:47:24 | evan | i'm going to just retag rc2 |
| 00:47:27 | evan | and repackage |
| 00:47:36 | evan | what change did you do? |
| 00:47:45 | evan | add Rubinius:: infront of a couple places in requirer.rb? |
| 00:48:14 | evan | one place really. |
| 00:50:06 | brixen | kernel/delta/requirer.rb line 224 |
| 00:50:42 | evan | yep. |
| 00:51:36 | brixen | yep, ran specs from rbx installed from the installer |
| 00:51:41 | brixen | so just that one change |
| 00:52:57 | brixen | evan: new installer uploaded |
| 00:53:06 | evan | k |
| 00:53:18 | evan | i'm going to commit, retag, retar, repackage |
| 00:53:24 | brixen | k |
| 01:19:43 | boyscout | Update for 1.0.0-rc2 - 4e1d520 - Evan Phoenix (gh-pages) |
| 02:16:36 | marcandre | Sorry guys. Looks like everytime I try to make rbx I get a problem of some kind. |
| 02:16:38 | marcandre | vm/vmmethod.cpp:93: error: class ‘rubinius::VMMethod’ does not have any field named ‘jitted_impl_’ |
| 02:16:53 | marcandre | For once, doesn't look like stale .rbc |
| 02:55:10 | wayneeseguin | evan / brixen in case anyone asks 'rvm update --head' has rc2 support |
| 03:02:22 | brixen | wayneeseguin: sweet, thanks |
| 03:02:55 | brixen | marcandre: need more info, tarball, clone, gist?? |
| 03:03:18 | marcandre | git pull && make install. |
| 03:03:25 | marcandre | (master) |
| 03:03:39 | wayneeseguin | likely need a 'rake clean' ? |
| 03:03:53 | brixen | marcandre: command you are running? |
| 03:03:59 | brixen | and yes, rake clean if you have not |
| 03:04:13 | marcandre | Yeah, I did rake clean && rake cleandist |
| 03:04:26 | marcandre | rake install fails when compiling vmmethod.cpp |
| 03:05:02 | brixen | gist me ./configure --show |
| 03:05:52 | marcandre | http://gist.github.com/269108 |
| 03:06:30 | brixen | you are not using llvm |
| 03:06:34 | brixen | interesting |
| 03:06:38 | brixen | probably busted |
| 03:06:40 | brixen | I'll check |
| 03:07:15 | marcandre | Well, I haven't reconfigured for ages. Should I? |
| 03:07:16 | brixen | marcandre: curious, have you reconfigured? |
| 03:07:22 | brixen | yes definitely |
| 03:07:34 | brixen | it should still work without llvm |
| 03:07:38 | brixen | I'll check that |
| 03:07:52 | brixen | we'll have to figure out how to force a reconfigure I guess |
| 03:08:00 | brixen | since we are changing stuff in the script |
| 03:08:43 | brixen | yep, this is going to be a problem |
| 03:08:49 | marcandre | All right... It configured llvm and it's building now. |
| 03:08:54 | brixen | for example, the rbx version is set by the configure script |
| 03:09:16 | marcandre | Well, I'm glad that this time I might not have been completely wasting your time with my build issues... ;-) |
| 03:09:43 | brixen | I'm going to have to figure out a good way to make the rake tasks detect a stale config maybe |
| 03:10:02 | brixen | marcandre: that's why I added the --show option ;) |
| 03:10:20 | brixen | so I can hopefully see wtf is going on remotely :) |
| 03:10:25 | marcandre | BTW, I presume that once you have a v1 out, you will check for marshalling versions of .rbc, right? |
| 03:10:38 | brixen | it's checking now |
| 03:10:42 | marcandre | (not related here, I know) |
| 03:10:55 | brixen | evan just added that before releasing rc2 |
| 03:11:20 | marcandre | cool. |
| 03:11:24 | brixen | ok, build with llvm disabled fails |
| 03:11:32 | brixen | I'll look at it, but first food |
| 03:11:34 | brixen | bbl... |
| 03:11:42 | marcandre | Nice. I built without a hitch. Thanks! |
| 03:43:26 | boyscout | Add a test that chdir should call to_str on an object if a block is given - 978e9ae - Yehuda Katz |
| 03:43:26 | boyscout | call StringValue on the call to chdir whether a block was given or not - 7c89196 - Yehuda Katz |
| 03:46:48 | boyscout | CI: rubinius: 7c89196 successful: 3022 files, 11678 examples, 35869 expectations, 0 failures, 0 errors |
| 05:18:49 | boyscout | Array#product: Fixing implementation. Should even be quicker... - c417fc0 - Marc-Andre Lafortune |
| 05:18:49 | boyscout | Fix recursion for Array#hash, Hash#hash, Struct#hash, #<=>, #eql? - 09d1824 - Marc-Andre Lafortune |
| 05:18:51 | boyscout | Fixing Array#product - f649b54 - Marc-Andre Lafortune (one_nine) |
| 05:22:11 | boyscout | CI: rubinius: 09d1824 successful: 3022 files, 11688 examples, 35885 expectations, 0 failures, 0 errors |
| 05:29:33 | tarcieri | guess I should try building rubinius again there eh? |
| 05:31:52 | tarcieri | chuggah chuggah |
| 05:33:10 | tarcieri | hroom |
| 05:33:11 | tarcieri | vm/vmmethod.cpp: In constructor ‘rubinius::VMMethod::VMMethod(rubinius::VM*, rubinius::CompiledMethod*)’: |
| 05:33:14 | tarcieri | vm/vmmethod.cpp:93: error: class ‘rubinius::VMMethod’ does not have any field named ‘jitted_impl_’ |
| 05:33:17 | tarcieri | rake aborted! |
| 05:33:49 | evan | tarcieri: run ./configure again |
| 05:33:53 | tarcieri | o |
| 05:33:55 | marcandre | tarcieri: I had the same problem. |
| 05:33:57 | evan | seems i broke compiling without LLVM. |
| 05:34:03 | marcandre | yup. :-) |
| 05:34:33 | tarcieri | aight, recompiling |
| 05:34:35 | marcandre | Oups, meant yup to run ./configure... I should type faster |
| 05:35:35 | tarcieri | vm/ontology.cpp omai |
| 05:35:54 | tarcieri | rubinius defines its own ontos? |
| 05:36:02 | tarcieri | heh |
| 05:36:26 | evan | huh |
| 05:36:28 | evan | ontos? |
| 05:36:57 | tarcieri | heh, from the philosophical as opposed to computer science definition of the term, I suppose |
| 05:38:37 | boyscout | Fixed building with LLVM disabled. - b1ca50c - Brian Ford |
| 05:38:56 | tarcieri | that which is, as opposed to that which is experienced |
| 05:39:25 | evan | brixen: thanks. |
| 05:39:32 | tarcieri | yay |
| 05:39:36 | brixen | evan: n/p |
| 05:39:43 | brixen | I was doodling instead of pushing that |
| 05:39:53 | tarcieri | heh |
| 05:39:53 | brixen | fixed it a couple hrs ago heh |
| 05:39:54 | evan | i guess we'll see if we need to release rc3 sooner than usual |
| 05:40:00 | brixen | sure |
| 05:40:00 | evan | or rerelease rc2 |
| 05:40:07 | tarcieri | building rbx kills my poor laptop :( |
| 05:40:10 | tarcieri | I need a new laptop |
| 05:40:12 | brixen | we can do a rc3 sooner |
| 05:40:43 | brixen | actually, I was making chocolate chip cookies and watching hip hop dance video |
| 05:40:50 | brixen | priorities ya know :) |
| 05:41:09 | evan | i was drinking sapporo and watching mythbusters |
| 05:41:14 | brixen | heh |
| 05:41:20 | brixen | I miss mythbusters |
| 05:41:26 | brixen | need cable to get that channel here |
| 05:41:33 | evan | since LLVM is on by default |
| 05:41:34 | tarcieri | was driniking a vodka tonic then arbitrarily decided to build rbx after seeing you guys were up to rc2 |
| 05:41:46 | evan | maybe people won't notice |
| 05:42:02 | boyscout | CI: rubinius: b1ca50c successful: 3022 files, 11688 examples, 35885 expectations, 0 failures, 0 errors |
| 05:42:19 | boyscout | Removing obsolete libs (1.8.7, 1.9) - f0cffb9 - Marc-Andre Lafortune |
| 05:42:20 | brixen | I'm wondering how many ppl have been configured with llvm disabled all this time |
| 05:42:27 | brixen | hence, not using the jit at all |
| 05:42:28 | evan | lots |
| 05:42:30 | evan | most probably |
| 05:42:33 | brixen | funny |
| 05:42:37 | tarcieri | brixen: this checkout is... old |
| 05:42:39 | tarcieri | really really old |
| 05:42:47 | brixen | it's like the biggest rbx tech of the *decade* |
| 05:42:50 | tarcieri | like shotgun old |
| 05:42:52 | brixen | and it's disabled haha |
| 05:42:58 | evan | tarcieri: get another clone. |
| 05:43:05 | tarcieri | heh I should reclone |
| 05:43:07 | tarcieri | although it looks good |
| 05:43:11 | brixen | tarcieri: haha, srsly? |
| 05:43:15 | tarcieri | it's trying to run the tests now, I think |
| 05:43:17 | tarcieri | brixen: yep |
| 05:43:20 | brixen | that's funny |
| 05:43:21 | tarcieri | I haven't recloned... evar |
| 05:43:25 | brixen | wow |
| 05:43:57 | brixen | tarcieri: does this mean you're gonna come do some more Actors work on rbx? :D |
| 05:44:05 | tarcieri | haha |
| 05:44:21 | tarcieri | I'm a bit obsessively preoccupied with Reia atm |
| 05:44:29 | brixen | that's cool too |
| 05:44:32 | tarcieri | the new branch is almost running the old test suite! |
| 05:44:37 | brixen | sweet! |
| 05:44:43 | tarcieri | that's a good feeling |
| 05:44:43 | brixen | progress then |
| 05:44:47 | brixen | no doubt |
| 05:45:02 | tarcieri | durr |
| 05:45:02 | tarcieri | Running 710 tests.........................................................................................rake aborted! |
| 05:45:06 | tarcieri | Command failed with status (): [vm/test/runner...] |
| 05:45:18 | tarcieri | well that should be good enough for fucking around with |
| 05:45:30 | tarcieri | hmm |
| 05:45:31 | tarcieri | ~/src/rbx$ vm/vm |
| 05:45:31 | tarcieri | Segmentation fault |
| 05:45:40 | boyscout | CI: rubinius: f0cffb9 successful: 3022 files, 11688 examples, 35885 expectations, 0 failures, 0 errors |
| 05:46:07 | evan | tarcieri: i guess you don't really care then. :/ |
| 05:46:22 | tarcieri | yeah not sure what's up |
| 05:46:23 | evan | i'd suggest a new clone. |
| 05:46:27 | tarcieri | aight, hehe |
| 05:46:28 | brixen | tarcieri: rake distclean at least |
| 05:46:32 | evan | if it's really more than 2 years old. |
| 05:46:36 | tarcieri | I'll just reclone |
| 05:46:41 | tarcieri | yeah this is... really really old |
| 05:48:37 | evan | brixen: Added a gotcha about building without LLVM not working on rc2 |
| 05:48:46 | brixen | ok cool |
| 05:49:19 | brixen | evan: I'm thinking we might need the rake tasks to detect an old config and bail |
| 05:49:36 | brixen | oh, we could add a setting to config |
| 05:49:39 | brixen | that would work |
| 05:51:09 | brixen | just a monotonic counter |
| 05:51:30 | evan | sure |
| 05:51:36 | brixen | adding it now |
| 05:51:47 | evan | k |
| 05:51:56 | tarcieri | all right, recloned, reconfigured, and rebuilding |
| 05:52:01 | tarcieri | goes to make another drink |
| 05:52:49 | brixen | heh |
| 05:53:58 | evan | tarcieri: what OS are you on? |
| 05:54:06 | evan | you don't have to compile LLVM |
| 05:54:54 | tarcieri | snow leppard |
| 05:55:02 | tarcieri | urmm didn't go out of my way to compile it or anything |
| 05:55:32 | tarcieri | just did ./configure; rake |
| 05:55:49 | brixen | it should have fetched a prebuilt then |
| 05:56:03 | tarcieri | yeah that's what it appeared to do |
| 05:56:12 | evan | k |
| 05:56:43 | tarcieri | Unpacking prebuilt LLVM for x86_64-apple-darwin10.2.0: done! |
| 05:56:50 | evan | yep |
| 05:56:53 | evan | shouldn't take long at all. |
| 05:57:08 | tarcieri | this laptop has hardware problems and stuff... with its hard drive |
| 05:57:26 | tarcieri | been waiting to snag a fancy new one from work but they're all tied up for demos :/ |
| 06:01:40 | tarcieri | running the tests kinda slows this thing to a crawl |
| 06:01:44 | tarcieri | but yeah, SUCCESS! |
| 06:02:23 | tarcieri | recloning is a magical cure-all |
| 06:03:01 | tarcieri | it's still chewing on bin/mspec ci -B full --background |
| 06:04:17 | tarcieri | Finished in 135.913323 seconds |
| 06:04:17 | tarcieri | 3022 files, 11684 examples, 35881 expectations, 0 failures, 0 errors |
| 06:04:19 | tarcieri | yay! |
| 06:04:31 | tarcieri | bin/rbx now? |
| 06:05:31 | tarcieri | urmm spammed this like 5 bazillion times: |
| 06:05:32 | tarcieri | Object#id IS deprecated; use Object#object_id OR ELSE. |
| 06:05:49 | tarcieri | I assume due to my .irbrc |
| 06:05:56 | tarcieri | and wirble |
| 06:06:14 | tarcieri | but other than that, looks good |
| 06:07:57 | tarcieri | is it as lulz to you as it is to me all the crazy shit happening in the background when someone types 2+2 into the REPL? |
| 06:08:36 | tarcieri | and on Erlang, I don't even know the half of it |
| 06:09:15 | tarcieri | eval is a harsh mistress |
| 06:11:00 | brixen | tarcieri: yeah, have a peek at the irb code sometime |
| 06:11:08 | tarcieri | hehe |
| 06:11:08 | brixen | it's some of the oldest ruby code around |
| 06:11:16 | brixen | interesting style heh |
| 06:11:21 | tarcieri | yeah I really wonder why someone hasn't written awesomsauce ruby shell yet :( |
| 06:11:30 | tarcieri | I have peeked and it reminds me of Perl |
| 06:11:30 | brixen | there's been attempts |
| 06:11:45 | brixen | rue has a ruby shell floating around iirc |
| 06:11:51 | tarcieri | nice |
| 06:12:04 | brixen | irb is actually pretty rad |
| 06:12:11 | brixen | and wycats was refactoring it |
| 06:12:18 | tarcieri | heh |
| 06:12:19 | wycats | I was |
| 06:12:20 | brixen | wonder what happened to that effort |
| 06:12:24 | brixen | wycats: where is it? |
| 06:12:31 | wycats | brixen: I'll get back to it soon |
| 06:12:33 | brixen | ok |
| 06:12:34 | wycats | I made a lot of progress |
| 06:12:35 | brixen | n/p |
| 06:12:37 | wycats | irb2 works now |
| 06:12:37 | brixen | sweet |
| 06:12:41 | brixen | nice |
| 06:12:47 | wycats | brixen: my test commit was ok right? |
| 06:12:53 | brixen | should call it irc (irb.succ) :D |
| 06:13:00 | brixen | wycats: which? |
| 06:13:06 | wycats | brixen: lulz |
| 06:13:09 | brixen | heh |
| 06:13:13 | wycats | a small commit that revealed a bug |
| 06:13:19 | tarcieri | I'm saying like... Reia... takes your code, runs the Reia parse transforms over it, produces Erlang code, runs it through the Erlang compiler, gets compiled to core Erlang, runs is through the HiPE compiler, builds a temporary module, loads that module into the code server, calls the "toplevel" function on it at which point it's actually executed as native code, then does its cleanup |
| 06:13:43 | brixen | wycats: oh earlier, yeah all good :) |
| 06:13:45 | tarcieri | all to answer "2+2" |
| 06:14:01 | wycats | tarcieri: sounds hot |
| 06:14:06 | brixen | tarcieri: yeah, we do a little less |
| 06:14:13 | brixen | but the first parts are similar |
| 06:14:20 | tarcieri | hehe yes I imagine you have fewer layers of abstraction there |
| 06:14:51 | tarcieri | wycats: holy shit @ your heisenbug in 1.9.2 there btw |
| 06:15:00 | wycats | tarcieri: ha |
| 06:15:06 | tarcieri | broke my brain |
| 06:15:15 | wycats | tarcieri: the reaction from the ycombinator crowd was "you call that a bug!?" |
| 06:15:31 | brixen | wycats: link me up |
| 06:15:43 | brixen | I've heard about this but don't know the details |
| 06:16:00 | wycats | http://yehudakatz.com/2010/01/02/the-craziest-fing-bug-ive-ever-seen/ |
| 06:16:11 | brixen | thx |
| 06:17:25 | wycats | I'm sure you've seen crazier shit in rbx |
| 06:18:05 | tarcieri | concurrency bugs related to thread-specific data are pretty ballbusting |
| 06:18:29 | tarcieri | and Erlang perpetuates them with the silly process dictionary |
| 06:18:41 | tarcieri | Functional, concurrent programming is hard, let's go shopping! |
| 06:19:41 | brixen | wow |
| 06:20:00 | brixen | wycats: neat |
| 06:20:11 | wycats | haha |
| 06:20:14 | tarcieri | hrmm |
| 06:20:14 | wycats | brixen: yeah |
| 06:20:20 | tarcieri | what happened to String#to_sexp? |
| 06:20:20 | wycats | evan's head almost exploded |
| 06:22:11 | brixen | tarcieri: no more sexps |
| 06:22:24 | brixen | we're too sexy for our sexps |
| 06:23:03 | tarcieri | heh |
| 06:23:06 | brixen | tarcieri: it would be *really* easy to add a #to_sexp if you really needed it |
| 06:23:18 | brixen | but if you want to mess with transforms, there's a nice AST |
| 06:23:28 | tarcieri | I don't need it but it's an awesome convenience feature for parse transforms |
| 06:23:47 | brixen | actually, modifying sexps is a horrid PITA |
| 06:23:53 | brixen | that's why we removed it ;) |
| 06:23:58 | tarcieri | lol |
| 06:24:09 | brixen | would be nice to add some generic tree transforms for mucking with the AST though |
| 06:24:16 | tarcieri | psst Reia is implemented as a successive series of parse transforms |
| 06:24:20 | tarcieri | maybe pattern matching helps |
| 06:24:26 | brixen | sure |
| 06:24:39 | brixen | but parse transform does not have to mean sexp transform |
| 06:24:50 | brixen | ruby is a rich OO language |
| 06:24:59 | tarcieri | well parsing whatever patterns the parse tree is expressed as |
| 06:25:17 | tarcieri | yeah but pattern matching + OO = fail |
| 06:25:17 | brixen | defining methods on the AST nodes is a nice way to extend/modify parsing |
| 06:25:40 | brixen | why? |
| 06:25:47 | brixen | actually, what do you mean by pattern matching? |
| 06:25:50 | tarcieri | maybe with a first class syntax for interrogating the hidden state of objects as patterns |
| 06:25:56 | brixen | functions that pattern match their args? |
| 06:26:25 | tarcieri | well, Erlang uses pattern matching for *everything* |
| 06:26:44 | tarcieri | with specific pattern matching constructs as they pertain to the various core types |
| 06:27:03 | tarcieri | of course at the same time Erlang has no user-defined types |
| 06:27:22 | brixen | you could do this in ruby quite nicely I think |
| 06:27:27 | tarcieri | which sets it apart from any other language than say... Lisp/Scheme |
| 06:27:27 | tarcieri | heh |
| 06:27:51 | tarcieri | all of Reia's parse transforms are implemented as multi-clause pattern matching constructs on Erlang's core types |
| 06:28:57 | tarcieri | it's very much break-your-brain shit for anyone actually trying to understand how it's implemented :( |
| 06:29:12 | brixen | I'm not sure how pattern matching has anything to do with OO |
| 06:29:15 | slava | most lisp and scheme dialects have user defined types |
| 06:29:15 | brixen | ocaml has both |
| 06:29:18 | slava | common lisp and r6rs do |
| 06:29:31 | tarcieri | slava: not in the same way most other languages do |
| 06:29:35 | slava | why not? |
| 06:29:38 | tarcieri | slava: coupling of state with function |
| 06:29:47 | tarcieri | I guess |
| 06:30:09 | tarcieri | I know what I am and I know what I can do type of constructs |
| 06:30:20 | tarcieri | which Joe Armstrong HATES |
| 06:30:40 | tarcieri | and yet Erlang has paramaterized modules which kinda sorta try to do that shit |
| 06:31:27 | tarcieri | Erlang has zero sense of user-defined types aside from records and paramaterized modules |
| 06:31:33 | tarcieri | it has no first-class ADTs |
| 06:31:45 | tarcieri | records are a weak ass preprocessor construct |
| 06:31:54 | tarcieri | paramaterized modules are a wonky attempt at immutable objects |
| 06:34:06 | tarcieri | brixen: Erlang was my first language with a sense of pattern matching, and my gut feeling is "everything I wished massgn could do, but can't" |
| 06:35:15 | tarcieri | it's awesome you can do ((a,b),(c,(d,e))) = [[1,2],[3,[4,5]]] in Ruby and all |
| 06:36:08 | brixen | there's a gem out there that generalizes that a bit |
| 06:36:14 | brixen | haven't played with it though |
| 06:36:35 | brixen | OO is more about sending messages rather than matching values and types |
| 06:36:53 | brixen | where one is easily substitutable for the other is open to debate |
| 06:37:00 | tarcieri | yeah |
| 06:37:03 | tarcieri | Reia lets you do |
| 06:37:03 | tarcieri | ([a,b],(c,[d,e])) = ([1,2],(3,[4,5])) |
| 06:37:09 | brixen | but sending messages is extremely powerful way to organize stuff |
| 06:37:16 | tarcieri | well yes |
| 06:37:54 | tarcieri | my whole goal with Reia originally was to have objects that can only communicate with messages |
| 06:38:04 | brixen | in my experience, many ppl think "sending messages == calling a function on something" |
| 06:38:16 | brixen | and they need to go read some more alan kay |
| 06:38:17 | tarcieri | that's what it boils down to in most OO languages |
| 06:38:21 | tarcieri | an object is a lump of state |
| 06:38:23 | tarcieri | indeed! |
| 06:39:29 | tarcieri | originally I was opposed to "objects" like that in Reia but now I see the value in both |
| 06:40:19 | tarcieri | however I'm trying to separate objects-as-values and objects-as-message-processors |
| 06:40:44 | tarcieri | with the former being immutable (as everything is in Erlang/Reia) and the latter being mutable (independently garbage collected processes) |
| 06:41:48 | brixen | interesting |
| 06:43:06 | tarcieri | I really do love the idea of "objects can only communicate with messages" being enforced at the VM level |
| 06:43:30 | tarcieri | that really necessiates shared-nothing objects (or immutable state) |
| 06:46:32 | tarcieri | I dunno, in Ruby it's just too easy for object A to get ahold of object B's internal state and like, rape it, and then object A is screwed even though it wasn't directly sent any messages from B |
| 06:46:44 | tarcieri | err, vice versa there |
| 06:46:45 | tarcieri | but whatever |
| 06:48:51 | tarcieri | on an unrelated note, I just love perverting an immutable state language to the point you can do "dict[:foo] += 1" and have it work :) |
| 07:01:43 | brixen | tarcieri: for me, the number of fucked up things a person can do in a program are infinite, I have trouble getting too excited over any one of them |
| 07:01:53 | brixen | including tweaking another objects internal state |
| 07:02:16 | brixen | I'd rather focus on making it easy to express ideas than erecting fences to keep the stoopids well-caged |
| 07:04:30 | tarcieri | brixen: that's all well and good until concurrency comes into play |
| 07:04:42 | brixen | not really |
| 07:04:53 | tarcieri | :( |
| 07:05:13 | brixen | grotesquely complex logic is as painful to debug as races |
| 07:05:19 | tarcieri | things that do shit at the same time should talk to each other, not fuck with each other without the others' knowledge |
| 07:05:20 | brixen | sometimes |
| 07:06:02 | brixen | sure, but expending great energy to enforce that should not come at the expense of easily expressing ideas |
| 07:06:13 | tarcieri | sure |
| 07:06:25 | brixen | just because you *can* jump off a building doesn't mean you *do* |
| 07:06:26 | tarcieri | and the way to express that is not much different than how people do it today in Ruby |
| 07:07:04 | brixen | I don't often see code that goes around wonkily mutation random objects |
| 07:07:14 | brixen | cus that would just be dumb and you'd tell the person |
| 07:07:21 | brixen | "wtf are you doing?" |
| 07:07:24 | tarcieri | heh |
| 07:07:33 | tarcieri | script/console seems to do that and I don't even have a clue how |
| 07:08:36 | boyscout | Moved release date into configure defaults. - 4ba8f0b - Brian Ford |
| 07:08:36 | boyscout | Added config version to enable detecting stale configuration. - 84e1594 - Brian Ford |
| 07:08:51 | tarcieri | also whee just wrote the grammar for "block captures" or whatever that's called in Ruby |
| 07:09:01 | wycats | tarcieri: it's better than Python |
| 07:09:09 | wycats | in Python you can do obj.__class__ = something_else |
| 07:09:10 | tarcieri | and some crazy Erlang record-thunking shit |
| 07:09:22 | wycats | and obj.__class__.__bases__ = (tuple,of,other,shit,) |
| 07:09:42 | tarcieri | wycats: I'm allergic to Pythons although I do try to learn from them :/ |
| 07:09:50 | wycats | so I can hand a function an object and get back an object of another class which has an entirely different set of superclasses |
| 07:09:51 | wycats | yay! |
| 07:10:31 | brixen | OT it is incredibly hard to find a good pair of boots |
| 07:10:38 | brixen | I have just looked at hundreds of them |
| 07:10:46 | brixen | casual/dress casual boots |
| 07:11:11 | tarcieri | christ I cannot even begin to explain using fucking Erlang preprocessor shit in "yecc" which is another preprocessor effectively and having that all output sane Erlang code somehow it hurts my brain |
| 07:11:30 | tarcieri | oh yeah, and records+macros+yecc |
| 07:11:31 | tarcieri | OW |
| 07:11:56 | tarcieri | please take this pushdown and apply this record to this macro and output real code OKAY |
| 07:12:02 | boyscout | CI: rubinius: 84e1594 successful: 3022 files, 11688 examples, 35885 expectations, 0 failures, 0 errors |
| 07:12:43 | tarcieri | the real sad thing is how can anyone understand this bullshit but me or like... some other Erlang compiler guy :( |
| 07:13:56 | tarcieri | I really do want to move beyond the Erlang bullshit and construct the parse tree out of immutable objects, and keep the present implementation as a "bootstrap" one |
| 07:14:31 | tarcieri | not that that will help anyone understand the parser but maybe they can understand the subsequent passes |
| 07:15:22 | brixen | sounds painful heh |
| 07:15:53 | tarcieri | yes it's all an act of considerable masochism, jeezus |
| 07:16:31 | tarcieri | not that writing all that C++ for rbx isn't :) |
| 07:17:00 | tarcieri | I'm sure you're dealing with similar syntactic headgibs |
| 07:18:58 | brixen | our C++ is pretty tame |
| 07:19:06 | tarcieri | heh |
| 07:19:13 | brixen | evan has written some stuff that is headgib for me |
| 07:19:17 | brixen | but very little |
| 07:19:29 | tarcieri | this is the first time I have treated the value resulting from a nonterminal as a record |
| 07:19:32 | tarcieri | it's pretty absurd |
| 07:22:58 | brixen | I think this is the wildest C++ we have http://github.com/evanphx/rubinius/blob/84e1594d1526f1e7956f758f18efb1ffb95b8ab7/vm/on_stack.hpp |
| 07:23:46 | slava | factor VM has lots and lots of templates :) |
| 07:28:58 | tarcieri | waiting for github.com :/ |
| 07:29:27 | tarcieri | slava: while people give C++ a hard time as a preprocessor construct I think what I just did in Erlang is worse than anything I've ever seen in C++ templates and the fact it works boggles my mind |
| 07:29:59 | tarcieri | There was a problem serving the requested page. |
| 07:29:59 | tarcieri | Usually this means that an unexpected error happened while |
| 07:30:00 | tarcieri | processing your request. |
| 07:30:03 | tarcieri | :( github |
| 07:30:10 | tarcieri | there it goes |
| 07:30:33 | tarcieri | lol @ // Ok, let me explain. |
| 07:30:34 | tarcieri | hehe |
| 07:31:52 | tarcieri | slava: I am incrementally rebuilding the values resulting from nonterminals as they are parsed as Erlang records, or rather, preprocessor macros that act on Erlang records which are in turn a form of Erlang preprocessor macro |
| 07:32:08 | evan | brixen: i think i'm going to make the no LLVM fix on rc2 and retar/retag it. |
| 07:32:46 | tarcieri | slava: this is all embedded inside a yacc-style parser :( |
| 07:33:12 | brixen | evan: sure, sounds fine |
| 07:33:37 | tarcieri | evan: IT WORKS! |
| 07:33:45 | brixen | evan: want me to build another installer or do you have other fixes to push? |
| 07:33:46 | evan | tarcieri: eh? |
| 07:33:51 | evan | no need for the installer |
| 07:33:55 | brixen | k |
| 07:33:56 | evan | you don't build the installer |
| 07:33:57 | evan | :) |
| 07:34:01 | tarcieri | evan: rbx, after reclonned, reconfigured, and rebuilt |
| 07:34:08 | evan | this is strictly for the source |
| 07:34:09 | tarcieri | reclonded... |
| 07:34:14 | tarcieri | durr |
| 07:34:18 | tarcieri | third time's the charm? |
| 07:34:22 | tarcieri | RECLONED |
| 07:34:54 | tarcieri | apparently my ass old clone of rbx was causing problems somehow |
| 07:35:18 | brixen | tarcieri: I'm sure it was mostly stale external libs |
| 07:35:26 | tarcieri | yeah |
| 07:35:54 | tarcieri | who knows what old shit was lingering |
| 07:38:15 | evan | brixen: the links for the tar ball don't match the bitly ones in the login |
| 07:38:16 | evan | you gave me |
| 07:38:52 | evan | nor do the OS X installers |
| 07:39:28 | brixen | well, that's cus bit.ly created new ones for the rubinius account |
| 07:39:34 | evan | ok... |
| 07:39:36 | brixen | but you can still see the stats from the old ones |
| 07:39:42 | brixen | look at the little # |
| 07:39:45 | evan | so i thought you were going to update the website to have the new ones |
| 07:39:51 | brixen | oh really? |
| 07:39:53 | evan | so we could see the stats on bitly |
| 07:39:58 | brixen | you can |
| 07:40:07 | evan | i'm confused now |
| 07:40:07 | brixen | I didn't realize you wanted me to update them |
| 07:40:12 | evan | what would I have seen on bitly? |
| 07:40:20 | evan | no one is pointed to those bitly urls for the new stuff |
| 07:40:33 | brixen | doesn't matter |
| 07:40:38 | brixen | go to the bit.ly page |
| 07:40:43 | brixen | look at the list |
| 07:40:54 | brixen | click the little # below the big 0 |
| 07:40:55 | evan | ok, i see. |
| 07:41:20 | evan | ooh |
| 07:41:23 | evan | bitly is fucking wierd. |
| 07:41:27 | brixen | I can update the links on the website if you want |
| 07:41:34 | evan | i couldn't figure out at all why there was multiple numbers |
| 07:41:38 | brixen | it tracks all the links to a particular url |
| 07:41:43 | evan | i see now |
| 07:41:47 | brixen | yeah, it's pretty cool |
| 07:41:47 | evan | ok, nm. |
| 07:48:01 | boyscout | Add a test that chdir should call to_str on an object if a block is given - 978e9ae - Yehuda Katz (release-1.0.0-rc2) |
| 07:48:01 | boyscout | call StringValue on the call to chdir whether a block was given or not - 7c89196 - Yehuda Katz (release-1.0.0-rc2) |
| 07:48:01 | boyscout | Array#product: Fixing implementation. Should even be quicker... - c417fc0 - Marc-Andre Lafortune (release-1.0.0-rc2) |
| 07:48:01 | boyscout | Fix recursion for Array#hash, Hash#hash, Struct#hash, #<=>, #eql? - 09d1824 - Marc-Andre Lafortune (release-1.0.0-rc2) |
| 07:48:03 | boyscout | Fixed building with LLVM disabled. - b1ca50c - Brian Ford (release-1.0.0-rc2) |
| 07:48:40 | brixen | orly |
| 07:50:50 | evan | :/ |
| 07:50:54 | evan | bugger. |
| 07:51:25 | evan | seems that cherry-pick did not do what I thought it would |
| 07:51:29 | evan | and didn't verify it. |
| 07:51:41 | evan | so a bunch of stuff leaked in |
| 07:51:49 | evan | not what I wanted |
| 07:51:55 | evan | now i have to do it again. |
| 07:54:19 | evan | no, i just messed it up. |
| 07:54:21 | evan | almost redone. |
| 07:57:34 | evan | ok, there we go. |
| 08:38:24 | dbussink | morning |
| 08:40:22 | dbussink | or is everyone back to sleep again? |
| 08:48:31 | slava | yo dawg |
| 08:54:25 | dbussink | slava: ah, still day time in nz i guess :) |
| 08:55:12 | slava | yeah, 10pm |
| 08:57:45 | dbussink | slava: ah, exactly 12 hours diff with here, that's easy |
| 13:53:20 | rue | No, 11 |
| 15:13:03 | rue | Wee, "Something, something, something, Dark Side" |
| 17:27:53 | dbussink | rue: it was great :) |
| 17:46:57 | brixen | thinks he should write a book: The Joy of Specs |
| 17:48:05 | dbussink | brixen: it 'should not use should' ;) |
| 17:49:38 | brixen | yeah, thinking about micro-chapter format |
| 17:49:47 | brixen | with about 1001 should_not's ;) |
| 17:54:48 | boyscout | Allow any (? in a regexp. Fixes #146 - b2096da - Evan Phoenix |
| 17:57:39 | brixen | http://gist.github.com/269560 |
| 17:57:46 | brixen | ya know, effen shoot me |
| 17:58:11 | boyscout | CI: rubinius: b2096da successful: 3022 files, 11688 examples, 35885 expectations, 0 failures, 0 errors |
| 17:58:12 | evan | you know |
| 17:58:13 | evan | lots! |
| 17:58:18 | evan | lots is important. |
| 17:58:40 | brixen | using lots of code styles to read lots of datas is especially important |
| 17:59:18 | evan | lots of important! |
| 17:59:24 | brixen | heh |
| 17:59:30 | brixen | LE sigh |
| 17:59:37 | evan | lots of sigh! |
| 17:59:57 | brixen | I'm going to do a series of commits with msgs like "Example: Use consistent style" |
| 18:00:00 | brixen | etc |
| 18:00:58 | dbussink | brixen: well, always remember, no specs is even worse |
| 18:01:08 | brixen | dbussink: there is a fine line |
| 18:01:15 | brixen | and no, that is not absolutely true |
| 18:01:16 | brixen | sorry |
| 18:01:25 | dbussink | brixen: well, for most of the specs in rubyspec it is |
| 18:01:30 | dbussink | brixen: not in general no |
| 18:03:28 | evan | we have had specs in rubyspec that were worse than no spec. |
| 18:04:59 | brixen | I'm still puzzling over the expectation in this spec |
| 18:05:54 | evan | which? |
| 18:05:56 | evan | the lots one? |
| 18:05:58 | brixen | yeah |
| 18:06:02 | wycats | morning all |
| 18:06:09 | brixen | like, we'll trust the size of data |
| 18:06:13 | brixen | first expectation |
| 18:06:16 | brixen | but not the contents |
| 18:06:17 | evan | it's checking that it actually read all the data it wrote back in |
| 18:06:22 | brixen | actual.should == data |
| 18:06:35 | evan | yeah |
| 18:06:39 | evan | not sure why that wasn't done |
| 18:06:44 | evan | i think someone just being clever. |
| 18:06:46 | brixen | exactly |
| 18:06:51 | brixen | or not clever :P |
| 18:07:04 | brixen | heya wycats |
| 18:07:17 | wycats | evan: did you see my gist on the __FILE__ issue? |
| 18:07:23 | evan | no |
| 18:08:07 | dbussink | wycats: evan will slap you if you didn't make a ticket ;) |
| 18:08:08 | wycats | too much watching of tvz |
| 18:08:24 | wycats | dbussink: actually, evan is a little bit schizophrenic about that |
| 18:08:28 | wycats | he wants a detailed ticket |
| 18:08:28 | evan | wycats: you didn't IM or make a ticket |
| 18:08:33 | wycats | evan: I did actually ;) |
| 18:08:36 | evan | or show me in irc |
| 18:08:38 | evan | nope |
| 18:08:40 | wycats | http://gist.github.com/269143 |
| 18:08:43 | evan | i don't have it. |
| 18:08:54 | wycats | right after you said you were going to watch mythbusters :P |
| 18:09:02 | wycats | well there it is :) |
| 18:10:31 | evan | how is gem_ext.rb loaded |
| 18:10:44 | wycats | require |
| 18:10:57 | evan | gist the lines it's required. |
| 18:11:04 | wycats | require "bundler/gem_ext" |
| 18:11:04 | evan | or, better |
| 18:11:08 | evan | a github url. |
| 18:11:12 | wycats | ok |
| 18:11:13 | wycats | one sec |
| 18:11:43 | wycats | http://github.com/wycats/bundler/blob/master/lib/bundler.rb#L12 |
| 18:13:18 | evan | what is 'p __FILE__' at the toplevel of gem_ext.rb |
| 18:15:23 | wycats | evan: one sec |
| 18:16:18 | wycats | /Users/wycats/Code/active/rubinius/gems/1.8/gems/bundler-0.8.0/lib/bundler/gem_ext.rb |
| 18:16:41 | evan | hm, ok, thats good. |
| 18:16:50 | evan | what about p __FILE__ inside app_script |
| 18:17:53 | wycats | printing all 3 pieces |
| 18:17:55 | wycats | one sec |
| 18:18:28 | wycats | it seems to be called twice |
| 18:19:28 | wycats | http://gist.github.com/269574 |
| 18:19:47 | evan | what is the bottom ones? |
| 18:20:03 | wycats | I'm not sure |
| 18:20:07 | wycats | puts caller? |
| 18:20:11 | evan | sigh |
| 18:20:12 | evan | no |
| 18:20:14 | evan | you put them in there |
| 18:20:21 | evan | WHERE did you generate that data at. |
| 18:20:27 | evan | inside app_script_text? |
| 18:20:31 | wycats | yes |
| 18:20:39 | evan | you said they were the same just 30 seconds ago |
| 18:20:41 | evan | thusly i was confused. |
| 18:20:58 | wycats | somehow the method is called twice |
| 18:21:04 | wycats | but once it thinks it's in (erb) |
| 18:21:21 | wycats | backtrace is identical in both cases |
| 18:21:32 | evan | i don't know what you mean |
| 18:21:39 | evan | what is called twice? |
| 18:21:44 | wycats | app_script |
| 18:21:50 | wycats | app_script_text |
| 18:22:06 | evan | ok... |
| 18:22:12 | evan | and the 2nd time __FILE__ is all wierd? |
| 18:22:51 | wycats | http://gist.github.com/269574 |
| 18:22:54 | wycats | correct |
| 18:22:58 | evan | i have the gist. :/ |
| 18:23:16 | evan | so, it seems like erb stops of the original __FILE__ value |
| 18:23:19 | evan | stomps |
| 18:23:25 | evan | which means it's eval stomping on it. |
| 18:23:27 | wycats | update... there was extraneous stuff |
| 18:23:55 | wycats | eval of something else stomps the __FILE__ in a different method? |
| 18:24:04 | wycats | are you storing method_missing_reason in a thread-local evan? |
| 18:24:15 | evan | i'm stored your head in a jar. |
| 18:24:21 | evan | which is global. |
| 18:24:40 | evan | our __FILE__ is, unlike MRI, dynamic. |
| 18:24:54 | evan | the value of __FILE__ inside eval is confusing |
| 18:25:17 | evan | some code for injecting __FILE__ into an eval is mistakenly masking the original value |
| 18:28:37 | evan | the repro for this is trivial |
| 18:28:47 | evan | https://gist.github.com/bd43faed69ec34fcfa37 |
| 18:29:06 | evan | in fact, the code being eval'd doesn't matter |
| 18:29:12 | evan | eval at all is stomping. |
| 18:29:57 | evan | bingo. |
| 18:30:25 | evan | eval used the binding's static_scope directly |
| 18:30:31 | evan | but then changed the script attached to it |
| 18:30:37 | evan | adding a dup fixes it. |
| 18:30:54 | evan | wycats: do you have a ticket for this? |
| 18:32:39 | wycats | evan: nope |
| 18:32:42 | wycats | should I open one? |
| 18:32:50 | evan | yep. |
| 18:32:53 | wycats | ok |
| 18:33:03 | wycats | gotta head into work for a meeting |
| 18:33:05 | wycats | will have it then |
| 18:33:07 | wycats | as soon as I get in |
| 18:33:14 | evan | ok |
| 18:33:16 | evan | well the fix is done |
| 18:33:20 | evan | so i'm just waiting on the ticket. |
| 18:36:12 | dbussink | evan: added a spec? with no should in it? |
| 18:36:24 | evan | ? |
| 18:37:13 | dbussink | evan: just being annoying :) |
| 18:37:18 | evan | gee thanks. |
| 18:37:35 | Zoxc | so when are you planning to fix the rest of the unbalanced stack issues? :D |
| 18:37:49 | evan | if you report them |
| 18:37:50 | evan | i'll fix them. |
| 18:37:58 | dbussink | nah, but it seems like stuff like this is worth a spec otherwise it could break again easily in the future |
| 18:38:38 | evan | i'm writing one now. |
| 18:40:08 | dbussink | i'm running specs on windows for a project, always such fun |
| 18:40:45 | dbussink | but hey, data_objects and it's drivers officially support rubinius now too :P |
| 18:40:56 | evan | rad |
| 18:41:56 | dbussink | even use readonly in capi :) |
| 18:42:52 | evan | you don't need to do that anymore |
| 18:42:55 | evan | but it doesn't hurt |
| 18:43:24 | dbussink | ah ok, i added the compat.h stuff |
| 18:43:34 | evan | yeah, thats fine. |
| 18:43:42 | dbussink | what is the advised approach? just use RSTRING_PTR then? |
| 18:44:32 | evan | depends what you need the data for. |
| 18:44:50 | dbussink | i'm not modifying anything in them |
| 18:44:59 | dbussink | which is why adding compat.h was trivially easy |
| 18:45:25 | evan | using readonly is fine. |
| 18:45:30 | evan | probably best too. |
| 18:45:37 | evan | it's more explicit in your expectations. |
| 18:50:25 | dbussink | evan: i was wondering, that issue when running datamapper specs i was seeing, is there any way i could investigate better what it is? |
| 18:50:45 | evan | try to get the repro set smaller |
| 18:50:49 | evan | thats the #1 thing. |
| 18:50:58 | evan | try with -Xint, see if you have the same behavior |
| 18:51:28 | evan | dig in and see what is different at those strange failure points |
| 18:51:47 | dbussink | running with interpreter is a good idea ueah |
| 18:51:57 | dbussink | smaller is tricky, since it only occurs during full runs :P |
| 18:52:41 | evan | yeah, but we can't fix it until we can make it a smaller case |
| 18:53:03 | evan | so while tricky, it's imperative. |
| 18:54:52 | Zoxc | does this count as a report? http://github.com/evanphx/rubinius/issues/#issue/147 ^.^ |
| 18:55:37 | evan | yep |
| 18:57:08 | dbussink | Zoxc: auch, that's nasty code |
| 18:58:58 | Zoxc | oh that's gentle, 1.8 seems to give wierd syntax errors on the nasty ones so I left them out :) |
| 19:01:51 | brixen | hah "weird syntax errors on the nasty ones" |
| 19:01:59 | brixen | that is so many levels of hilarious |
| 19:03:51 | evan | eh gads. |
| 19:03:54 | evan | that break |
| 19:03:59 | brixen | yeah |
| 19:04:49 | evan | i almost want to not support this code. |
| 19:04:57 | evan | raise a syntax error |
| 19:05:11 | evan | btw |
| 19:05:27 | evan | it's this kind of thing that I ask for where you found a bug in the wild. |
| 19:05:35 | evan | so I can prioritize it. |
| 19:06:41 | evan | "hello #{break 2}" while true |
| 19:06:43 | evan | is the simpler case |
| 19:06:50 | evan | actually. |
| 19:06:54 | evan | "hello #{break}" while true |
| 19:08:32 | Zoxc | the code just evolved into using strings to make 1.8 happy :/ |
| 19:09:14 | evan | break like that is truely evil. |
| 19:10:11 | brixen | I don't see the value of supporting it |
| 19:10:23 | evan | i'm struggling to do the same |
| 19:10:24 | brixen | let someone file a ticket when their real app breaks |
| 19:10:28 | evan | it's non-trivial to make work. |
| 19:10:51 | evan | MRI should actualy throw a syntax error on that |
| 19:10:53 | evan | like it does for |
| 19:10:55 | evan | 1 + break |
| 19:11:08 | evan | because it's using break as a value |
| 19:11:13 | evan | when it's a statement. |
| 19:11:14 | brixen | yeah |
| 19:11:17 | brixen | yep |
| 19:11:40 | brixen | sometimes it only gives a warning like statement not reached |
| 19:11:43 | brixen | but not a syntax error |
| 19:11:49 | brixen | it's just a mess :-/ |
| 19:13:48 | evan | i'm going to say this is an MRI bug |
| 19:13:57 | Zoxc | it's not |
| 19:14:12 | evan | MRI doesn't allow you to use break as a value in any other context |
| 19:14:16 | evan | why would it allow you here? |
| 19:14:41 | Zoxc | well I don't care about 1.8 really |
| 19:14:44 | evan | i do. |
| 19:14:47 | Zoxc | but 1.9 will allow it |
| 19:15:05 | evan | from what i've seen |
| 19:15:09 | Zoxc | with variable arguments on the stack |
| 19:15:17 | evan | 1.9 has the same restrictions on break's context |
| 19:15:17 | brixen | Zoxc: p 1 + break in 1.9 |
| 19:15:22 | brixen | it's a syntax error |
| 19:15:25 | evan | or |
| 19:15:27 | evan | p 1, break |
| 19:15:55 | Zoxc | p 1, (break; 2) |
| 19:16:11 | evan | :/ |
| 19:16:49 | brixen | not so simple http://gist.github.com/269616 |
| 19:17:02 | brixen | these are edge cases that should all consistently be syntax errors |
| 19:17:04 | evan | well |
| 19:17:12 | evan | thats because you're trying to break from an eval. |
| 19:17:17 | brixen | sure |
| 19:17:43 | evan | put that in a while |
| 19:17:49 | evan | and it will likely be accepted. |
| 19:18:29 | brixen | http://gist.github.com/269616 |
| 19:18:45 | brixen | I'm just using Zoxc's example |
| 19:18:55 | brixen | point is, these are useless and stupid |
| 19:19:11 | evan | agreed |
| 19:19:21 | evan | but put a 'while true; ...; end' around that |
| 19:20:24 | brixen | like p 1, (break while true; 2) ? |
| 19:20:26 | Zoxc | 1.9 <3: puts(*[1, 2], (puts(*[1, 2], (break 3; 4)) while true)) |
| 19:20:52 | evan | throws up on Zoxc's shoes. |
| 19:21:14 | dbussink | Zoxc: where does code like this come from? |
| 19:21:16 | Zoxc | puts(*[1, 2], puts(*[1, 2], (break 3; 4)) while true) gives syntax errors for some reason :/ |
| 19:21:18 | evan | he's making it up. |
| 19:22:06 | Zoxc | popped up in my mind while figuring out how to do code generation =P |
| 19:22:09 | evan | brixen: while true; p 1, break; end |
| 19:22:16 | brixen | evan: yeah |
| 19:22:25 | brixen | but you get a warning about stmt not reached yes? |
| 19:22:26 | evan | the *[1,2] is only there to confuse the user |
| 19:22:31 | evan | it's not actually testing anything |
| 19:22:45 | evan | yeah, but it runs. |
| 19:22:55 | brixen | sure |
| 19:23:05 | Zoxc | it's just to make both stack offsets variable so you can't add code to adjust it |
| 19:26:39 | evan | well |
| 19:26:44 | evan | i'm going to put this on low priority |
| 19:26:55 | evan | throwing an unbalanced stack error isn't ideal |
| 19:27:03 | evan | but supporting this code is low on the list |
| 20:54:53 | malumalu | is there a specific version of llvm needed for rubinius? i'm getting "not defined here" errors when building |
| 20:58:11 | brixen | malumalu: gist your ./configure --show |
| 21:00:51 | brixen | gets lunch |
| 21:01:35 | malumalu | http://gist.github.com/269723 |
| 21:28:24 | dbussink | hmm, i'm suddenly seeing a lot of Object#id IS deprecated; use Object#object_id OR ELSE message when starting rubinius |
| 21:33:46 | dbussink | evan: i have a nice begin / rescue case for you :) |
| 21:40:31 | evan | dbussink: ok. |
| 21:41:19 | dbussink | evan: http://github.com/evanphx/rubinius/issues/#issue/148 |
| 21:41:50 | dbussink | evan: wanted to see whether i could get mongrel running |
| 21:42:09 | evan | mongrel runs |
| 21:42:20 | evan | at least, i've run it. |
| 21:43:02 | evan | maybe it got broken again |
| 21:43:08 | evan | though I tried it just a few days ago |
| 21:43:12 | evan | none the less, lets see. |
| 21:43:19 | brixen | malumalu: what version of llvm? |
| 21:43:51 | evan | there must be a missing pop_unwind |
| 21:43:56 | evan | lets look at the code |
| 21:44:31 | dbussink | evan: well, there's dozen of versions floating around i guess |
| 21:44:39 | dbussink | evan: this is the one i choose to try i guess |
| 21:44:46 | evan | i just tried the one in gems |
| 21:44:52 | evan | anywho |
| 21:44:57 | evan | no matter. |
| 21:45:17 | malumalu | brixen: r92166, rather up-to-date, I think |
| 21:45:28 | evan | malumalu: we don't run on LLVM trunk |
| 21:45:34 | evan | only 2.6 |
| 21:45:54 | malumalu | ok, thanks |
| 21:46:28 | evan | hm, yes. |
| 21:46:44 | evan | the retry isn't popping the unwind for the lower begin |
| 21:46:46 | evan | tricky. |
| 21:50:07 | dbussink | evan: i'm going to leave you with this puzzle, going to get some sleep |
| 21:50:13 | evan | np |
| 21:50:16 | evan | almost got it solved. |
| 22:17:53 | wycats | evan: sorry... submitting now |
| 22:19:43 | wycats | evan: http://gist.github.com/evanphx/rubinius/issues/#issue/149 |
| 22:42:09 | brixen | wow wtf vbox? |
| 22:42:29 | brixen | trying to create a windows vm and it's just sitting here pegging my cpu |
| 22:42:53 | evan | fail. |
| 22:42:58 | evan | you got the iso's i'm assuming |
| 22:43:05 | brixen | yeah |
| 22:43:10 | evan | what internet are you using now? |
| 22:43:15 | evan | now that you canceled clear |
| 22:43:19 | brixen | didn't even give me a chance to tell it |
| 22:43:23 | brixen | I'm still on comcast |
| 22:43:32 | evan | ah |
| 22:43:45 | evan | well, at least it's pretty fast then :) |
| 22:43:50 | brixen | heh, it is |
| 22:44:05 | evan | btw, mythbusters is available on them there comcast |
| 22:44:08 | brixen | I can't tell what vbox is doing, no status info whatsoever |
| 22:44:19 | brixen | ah yeah, I just have internet |
| 22:44:23 | brixen | no cable |
| 22:44:28 | boyscout | Fixes #148. Investigate better escape detection - ebf083a - Evan Phoenix |
| 22:44:28 | boyscout | Add spec for eval/__FILE__ stomping behavior - ca0efc0 - Evan Phoenix |
| 22:44:28 | boyscout | Don't change a StaticScope in eval. Fixes #149. - 93f86c4 - Evan Phoenix |
| 22:44:55 | brixen | evan: wtf @ http://github.com/rubyspec/rubyspec/commit/a399a01e0c010b2bcfbcef37e87bfb4f3c51ee73 |
| 22:45:08 | brixen | I emailed hongli, can't find him on irc atm |
| 22:47:02 | evan | perhaps it's a pre 10.6 problem |
| 22:47:25 | evan | that is the fact that mktime is kind of wierd on darwin |
| 22:47:29 | evan | that we've noticed before |
| 22:47:42 | brixen | mm, you added that code when you installed SL iirc |
| 22:47:55 | evan | let me try it here. |
| 22:48:18 | evan | seems work acutally |
| 22:48:29 | brixen | k |
| 22:48:32 | boyscout | CI: rubinius: 93f86c4 successful: 3022 files, 11689 examples, 35887 expectations, 0 failures, 0 errors |
| 22:48:38 | evan | maybe it was fixed in a 10.6 patchlevel. |
| 22:48:45 | evan | it was pretty much a darwin bug. |
| 22:49:45 | brixen | git show a1cc24cf |
| 22:49:49 | brixen | so I'm confused |
| 22:49:56 | evan | >> Time.utc(1900, 12, 31, 23, 59, 59, 0) |
| 22:49:56 | evan | => Mon Dec 31 23:59:59 UTC 1900 |
| 22:50:02 | evan | hell, even: |
| 22:50:03 | evan | >> Time.utc(1492, 12, 31, 23, 59, 59, 0) |
| 22:50:04 | evan | => Sat Dec 31 23:59:59 UTC 1492 |
| 22:50:23 | evan | look at it now. |
| 22:50:29 | evan | yeah, it seems to have fixed itself somehow. |
| 22:50:33 | brixen | ok |
| 22:51:03 | evan | we should get it re-tested on 10.6.0 and 10.6.1 |
| 22:51:12 | evan | perhaps it was fixed in .2 |
| 22:51:23 | evan | that seems within the realm of posibility |
| 22:51:28 | brixen | yeah |
| 22:51:41 | evan | i'm double checking somethincg |
| 22:58:31 | evan | well, don't see anything in google off hand |
| 22:58:37 | brixen | ok |
| 22:58:39 | brixen | no worries |
| 22:58:42 | evan | but it's something that could easily just slip into an update. |
| 22:58:57 | brixen | I just remember you adding that code and I don't have anything running SL yet |
| 22:59:00 | evan | since i'm sure they update libc on minor revs |
| 22:59:04 | brixen | so I couldn't test it |
| 22:59:14 | brixen | yeah, that's fine |
| 22:59:28 | brixen | commits like that should have more explicit details |
| 22:59:39 | evan | yeah |
| 22:59:44 | evan | like why it doesn't work |
| 22:59:49 | evan | both for us and for the internet |
| 22:59:56 | evan | since someone else will search for this at some time in the future. |
| 23:00:01 | evan | might as well do them a favor. |
| 23:00:07 | brixen | yeah, I mean hongli's commit |
| 23:00:18 | brixen | like what version of ruby, etc |
| 23:00:37 | evan | ah |
| 23:00:50 | evan | well, his commit seems fine to me |
| 23:00:52 | brixen | there is one word that will forever define Windows in my vocabulary: superfluous |
| 23:01:02 | evan | i didn't articulate what was wrong |
| 23:01:09 | evan | so he didn't know why he was removing the code. |
| 23:01:19 | brixen | yeah, but that's significant code to remove and I can't see why unless I go track him down |
| 23:01:46 | brixen | I know why you added it, cus it was causing a problem |
| 23:01:48 | evan | what would you have had him put? i'm curious |
| 23:02:00 | brixen | at the least, which version of MRI |
| 23:02:08 | brixen | how do I know that's not just 1.9 that works |
| 23:02:09 | brixen | etc |
| 23:04:07 | brixen | man, I have a blank disk, windows 7 installer, you really want to ask me as the 1st option whether I want to upgrade? |
| 23:04:38 | brixen | and the 2nd option is "custom (advanced)" |
| 23:05:28 | brixen | sweet, next screen is the disk: "Disk 0 Unallocated Space" |
| 23:08:18 | brixen | "Your computer will restart several times during installation" |
| 23:08:25 | brixen | heh oh the lulz |
| 23:11:11 | rue | It is a pretty fast install, actually |
| 23:13:05 | brixen | not really |
| 23:57:49 | evan | ok, new website is live. |
| 23:58:37 | brixen | sweet |