Show enters and exits. Hide enters and exits.
| 00:00:01 | brixen | heh |
| 00:00:05 | jvoorhis | i have a gist for you |
| 00:00:05 | evan | I just fixed the rake install issue |
| 00:00:07 | jvoorhis | https://gist.github.com/63f0a0865024e2dbda24 |
| 00:00:24 | evan | ok. |
| 00:00:37 | brixen | so, this downloaded the prebuild |
| 00:00:40 | evan | :/ :\ :| |
| 00:00:44 | evan | what g++ version are you on? |
| 00:00:47 | brixen | and configured with --skip-system |
| 00:00:48 | evan | and what LLVM version |
| 00:00:52 | brixen | 4.2.1 |
| 00:01:04 | jvoorhis | i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646) (dot 1) |
| 00:01:28 | evan | never seen this before. |
| 00:01:39 | evan | really no idea... |
| 00:01:41 | evan | hm. |
| 00:02:03 | brixen | ok, I was stumped too |
| 00:02:26 | evan | do you have another llvm/Module.h somewher? |
| 00:02:33 | evan | /usr/local/include maybe? |
| 00:03:14 | evan | jvoorhis: ? |
| 00:03:18 | brixen | yeah |
| 00:03:30 | evan | yes, he does? |
| 00:03:37 | brixen | so, this is on the build line before -Ivm/external_libs/llvm/include |
| 00:03:48 | brixen | this == /usr/local/include |
| 00:03:53 | brixen | I thought I fixed that |
| 00:04:05 | evan | yeah, i see that |
| 00:04:12 | evan | thats why i'm asking about /usr/local/include/llvm/Module.h |
| 00:04:13 | brixen | yeah, that is the issue |
| 00:04:19 | brixen | yes, it's there |
| 00:04:22 | evan | ok |
| 00:04:45 | evan | extra should probably be last |
| 00:04:53 | evan | in vm.rake |
| 00:05:06 | evan | line 150 |
| 00:05:41 | brixen | yeah |
| 00:05:45 | evan | on line 203 |
| 00:05:53 | evan | put llvm_flags at the beginning |
| 00:05:55 | evan | see if that fixes it. |
| 00:07:34 | brixen | yeah, fixes this |
| 00:08:03 | evan | do you want me to put that in 1.0.1? |
| 00:08:08 | brixen | sure |
| 00:08:13 | brixen | I'm building too to check |
| 00:08:33 | brixen | looks like jvoorhis is building fine now, but not finished yet |
| 00:08:46 | jvoorhis | evan: oh hi, didn't have irc open |
| 00:09:01 | evan | welcome back sir. |
| 00:09:03 | jvoorhis | i had a stable 2.6 build |
| 00:09:07 | jvoorhis | in /usr/local |
| 00:09:16 | jvoorhis | had the same error w/ the prebuilt and system llvm |
| 00:09:32 | jvoorhis | hacked up rakelib/vm.rake and it seems to be working now |
| 00:09:39 | jvoorhis | w/ brixen's help |
| 00:10:26 | evan | i don't know why your 2.6 build didn't like that line |
| 00:10:28 | evan | thats weird. |
| 00:10:46 | jvoorhis | no idea |
| 00:10:59 | jvoorhis | it's worked fine otherwise |
| 00:11:01 | evan | please gist the diff. |
| 00:11:04 | evan | so i can see. |
| 00:11:16 | jvoorhis | sure |
| 00:12:02 | jvoorhis | https://gist.github.com/cb6fdd9375ab740f75c2 |
| 00:12:25 | evan | k |
| 00:12:29 | evan | i'll add that to 1.0.1 |
| 00:12:47 | evan | brixen: did that work for you? |
| 00:13:11 | jvoorhis | evan: if you let me commit it, we'll be even |
| 00:13:20 | evan | you need to do it now. |
| 00:13:32 | jvoorhis | (i'd have to sneak in some case expressions also) |
| 00:13:42 | evan | um no. |
| 00:13:46 | jvoorhis | haha |
| 00:13:52 | jvoorhis | i don't think i have a commit bit yet |
| 00:14:00 | evan | then we'll have to get you next time. |
| 00:14:02 | jvoorhis | but if i did, i'd commit exactly that change |
| 00:14:03 | jvoorhis | ok |
| 00:14:11 | brixen | evan: yep, builds fine |
| 00:14:16 | jvoorhis | then by all means go right ahead |
| 00:15:35 | evan | k |
| 00:15:36 | evan | testing here |
| 00:15:39 | evan | then i'll push for CI on linux |
| 00:15:44 | brixen | k |
| 00:15:46 | evan | then i'll finalize 1.0.1 |
| 00:15:59 | evan | from master. |
| 00:23:14 | brixen | evan: one more issue :( |
| 00:23:22 | evan | :/ |
| 00:23:23 | brixen | building DL with --prefix specified |
| 00:23:28 | evan | i fixed it. |
| 00:23:33 | brixen | tries to run the not-yet-built rbx |
| 00:23:36 | brixen | you did? |
| 00:23:37 | evan | fixed. |
| 00:23:39 | evan | yeah |
| 00:23:40 | evan | pushing now. |
| 00:23:43 | brixen | ahh ok |
| 00:23:47 | boyscout | Version bumb for 1.0.1 - 98000a1 - Evan Phoenix |
| 00:23:48 | boyscout | Use the system ruby to generate code for dl - 37f7d38 - Evan Phoenix |
| 00:23:48 | boyscout | Flip include order so that local LLVM wins - 529664b - Evan Phoenix |
| 00:24:12 | brixen | sweet |
| 00:27:10 | brixen | hm odd, getting libiconv spec failures |
| 00:27:19 | brixen | on jvoorhis' build |
| 00:31:58 | boyscout | CI: rubinius: 529664b successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors |
| 00:32:08 | jvoorhis | another gist for you |
| 00:32:09 | jvoorhis | https://gist.github.com/b9c467778670387c5b3f |
| 00:34:16 | evan | umm |
| 00:34:16 | evan | no |
| 00:34:18 | jvoorhis | it fixed these failures: https://gist.github.com/825d30f677cf5fb831ef |
| 00:34:18 | evan | thats not right |
| 00:34:19 | evan | is it? |
| 00:34:27 | jvoorhis | but brixen doesn't have that issue |
| 00:34:36 | evan | yeah, you're seeing something completely different. |
| 00:34:41 | evan | i'm not going to be doing that for 1.0.1. |
| 00:34:47 | jvoorhis | what's that? |
| 00:34:48 | brixen | yeah, this is odd |
| 00:34:49 | evan | thats going to require some research. |
| 00:34:52 | jvoorhis | iiuc i have a stock libiconv |
| 00:35:02 | evan | jvoorhis: you must not, otherwise the existing code would work. |
| 00:35:07 | jvoorhis | hm |
| 00:36:23 | jvoorhis | whoops, ports |
| 00:36:41 | evan | /usr/include/iconv.h has them as iconv_open, etc. |
| 00:36:56 | jvoorhis | i'm not going on a lot of context here |
| 00:37:06 | jvoorhis | i ran nm on /usr/lib/libiconv.2.dylib and got an idea |
| 00:37:09 | jvoorhis | and tried it out |
| 00:37:17 | jvoorhis | and it worked but now we don't know why :) |
| 00:37:58 | evan | kendall :: git/rails » nm /usr/lib/libiconv.dylib | grep iconv_open |
| 00:37:58 | evan | 0000000000014d42 T _iconv_open |
| 00:38:50 | evan | i don't see anything with libiconv_open |
| 00:39:36 | evan | i do see: |
| 00:39:38 | evan | kendall :: git/rails » nm /opt/local/lib/libiconv.2.dylib| grep iconv_open |
| 00:39:38 | evan | 0000000000017f30 T _libiconv_open |
| 00:39:42 | jvoorhis | https://gist.github.com/ab9b27b76dc52a2d4e54 |
| 00:39:45 | evan | why the fuck ports uses a different name |
| 00:39:47 | evan | thats stupid. |
| 00:39:53 | jvoorhis | no clue |
| 00:39:55 | jvoorhis | i agree |
| 00:39:56 | evan | and i don't care atm to support taht. |
| 00:39:59 | jvoorhis | k |
| 00:40:05 | evan | because iconv_open is the name of the function. |
| 00:40:18 | jvoorhis | right |
| 00:40:46 | jvoorhis | except, this is different |
| 00:40:47 | jvoorhis | ~/Projects/rubinius % nm /usr/lib/libiconv.2.dylib | grep iconv_open |
| 00:40:47 | jvoorhis | 000150b5 T _iconv_open |
| 00:40:47 | jvoorhis | 000158cc T _libiconv_open |
| 00:41:40 | evan | is LD_LIBRARY_PATH even the env var on OS X? |
| 00:41:45 | evan | i thought it was DYLD_LIBRARY_PATH |
| 00:42:09 | jvoorhis | it's probably deprecated but i've been using it :) |
| 00:42:16 | jvoorhis | it works |
| 00:43:01 | evan | seems like it's your setup |
| 00:43:09 | evan | i've got ports and iconv in ports and have no problems |
| 00:43:34 | jvoorhis | it's possible |
| 00:43:43 | jvoorhis | at this point, i'd even say not unlikely :) |
| 00:44:14 | evan | feel free to craft a patch to support both if you'd like |
| 00:44:24 | evan | but it has to try both symbols. |
| 00:44:42 | jvoorhis | yeah, i'd try the 'right' one first |
| 00:44:52 | jvoorhis | i'm really baffled |
| 00:45:38 | brixen | b/c of LD_LIBRARY_PATH it was picking up the /opt one first |
| 00:45:45 | jvoorhis | right |
| 00:45:46 | brixen | which has no symbol for iconv_open |
| 00:45:56 | jvoorhis | it doesn't seem like there are any variants |
| 00:46:59 | brixen | who knows why the version from ports doesn't have this symbol |
| 00:47:20 | brixen | http://gist.github.com/424744 |
| 00:51:27 | brixen | evan: funny story, I was having a long conversation with chromatic about parrot and rbx and didn't realize to whom I was speaking :) |
| 00:51:47 | evan | hah |
| 00:51:51 | evan | well, thats probably good |
| 00:51:55 | brixen | heh |
| 00:51:57 | evan | let you speak more candidly. |
| 00:52:01 | evan | which i'm sure he appreciates. |
| 00:52:34 | jvoorhis | http://bugs.php.net/bug.php?id=13305&edit=1 |
| 00:52:39 | brixen | evan: oh! talked to the guy who did hiphop too |
| 00:52:47 | jvoorhis | missing symbol: libiconv_open |
| 00:52:47 | brixen | jvoorhis and I attended his talk |
| 00:52:51 | evan | brixen: what did you guys talk about? (chromatic) |
| 00:52:54 | jvoorhis | so does php expect that to be defined? |
| 00:53:09 | brixen | evan: jit/dynopts stuff |
| 00:53:17 | evan | jvoorhis: weird. |
| 00:53:17 | brixen | and compiler infrastructure |
| 00:53:20 | jvoorhis | yeah |
| 00:54:13 | evan | brixen: how was the hiphop talk? |
| 00:54:15 | brixen | evan: apparently, they have a gsoc student working on using llvm with parrot |
| 00:54:23 | brixen | evan: interesting |
| 00:54:24 | evan | brixen: ah |
| 00:54:28 | evan | yeah, at the last LLVM dev conf |
| 00:54:37 | evan | Larry Wall told me Allison was looking into LLVM heavily |
| 00:54:42 | brixen | cool |
| 00:55:35 | brixen | so, one of the things that they are doing with the hiphop approach (converting to C++) is making the libs available to the C++ services that they write |
| 00:55:42 | brixen | this is actually a use case |
| 00:55:59 | brixen | they have all this logic in php, but they write some services in C++ |
| 00:56:15 | brixen | so, instead of trying to do some ext or service protocol |
| 00:56:34 | brixen | they can just compile their php app and use it directly from their C++ code |
| 00:57:01 | evan | brixen: could you build the 10.5 pkg? |
| 00:57:11 | brixen | sure |
| 00:57:20 | slava | parrot is crap |
| 00:57:25 | evan | you can just do "rake release:all VERSION=1.0.1 OSX=10.5" |
| 00:57:34 | evan | from on master |
| 00:57:40 | evan | and then upload the .zip it creates |
| 00:57:46 | evan | it might fail creating the tag because it's already ther |
| 00:57:47 | evan | e |
| 00:57:48 | evan | but thats ok |
| 00:57:57 | brixen | evan: ok |
| 00:59:57 | brixen | slava: tell us how you really feel :) |
| 01:21:31 | brixen | evan: built, tested, uploaded |
| 01:42:24 | evan | brixen: danku. |
| 04:07:06 | ujihisa | evan: hi! |
| 05:20:05 | evan | ujihisa: you around? |
| 05:21:05 | ujihisa | evan: yes! |
| 05:21:17 | evan | i'm reviewing your issue now |
| 05:21:19 | ujihisa | I just went to a supermarket and cooked late dinner :-) |
| 05:22:23 | evan | :) |
| 05:22:35 | evan | hm, lets see.. |
| 05:23:41 | evan | ujihisa: what configure line did you use? |
| 05:23:54 | evan | just "./configure" ? |
| 05:24:00 | ujihisa | ./configure --prefix=`pwd`/local |
| 05:24:18 | evan | why a prefix? |
| 05:24:31 | evan | you want to install it? |
| 05:24:44 | evan | if you're doing it like that, why not just run it out of the build dir? |
| 05:24:51 | ujihisa | in order not to install under /usr |
| 05:25:07 | ujihisa | ! |
| 05:25:11 | evan | just run ./configure |
| 05:25:13 | ujihisa | ok! |
| 05:25:14 | evan | don't use --prefix |
| 05:25:24 | evan | then run |
| 05:25:25 | evan | rake clean |
| 05:25:28 | evan | rake |
| 05:25:32 | evan | and see if you still have the error |
| 05:25:54 | ujihisa | now I'm running ./configure && rake clean && rake --trace >& rakelog.txt |
| 05:26:27 | evan | ok |
| 05:30:26 | evan | i'll be waiting for the results |
| 05:30:30 | evan | so we can get this all sorted out for you |
| 05:38:41 | ujihisa | finished! |
| 05:38:56 | ujihisa | http://gist.github.com/425002 |
| 05:40:27 | evan | ok |
| 05:42:28 | evan | do |
| 05:42:34 | Cesario | hi guys, swhile we're at it : http://gist.github.com/425006 :) |
| 05:42:37 | evan | cd lib/ext/openssl |
| 05:43:00 | evan | ../../../bin/rbx extconf.rb |
| 05:43:16 | evan | any output? |
| 05:43:53 | evan | Cesario: your system LLVM isn't working right. |
| 05:43:57 | evan | use a prebuilt. |
| 05:44:13 | Cesario | I'm supposed to use 2.6, lemme check |
| 05:44:38 | evan | i suggest you don't build it yourself unless you have to |
| 05:45:08 | Cesario | It's from a dpkg I used, where would I get the prebuilt? |
| 05:45:14 | evan | just run ./configure. |
| 05:45:17 | evan | it will use a prebuilt. |
| 05:45:20 | Cesario | alright :) |
| 05:45:47 | evan | you'll need to run 'rake clean' after you run configure |
| 05:46:08 | evan | ujihisa: ? |
| 05:46:26 | ujihisa | sorry I was eating the late dinner :) |
| 05:46:46 | evan | no prob. |
| 05:47:20 | ujihisa | well, |
| 05:47:30 | ujihisa | $ ../../../bin/rbx extconf.rb [22:46:56] |
| 05:47:30 | ujihisa | zsh: bus error ../../../bin/rbx extconf.rb |
| 05:47:38 | evan | hrm. |
| 05:47:43 | evan | :/ :\ |
| 05:47:51 | ujihisa | --trace'ing |
| 05:47:54 | evan | no no |
| 05:47:59 | evan | nothing to trace. |
| 05:48:01 | ujihisa | :/ |
| 05:48:07 | evan | thats not running rake. |
| 05:48:15 | evan | what OS are you on? |
| 05:48:17 | ujihisa | oh yeah |
| 05:48:25 | ujihisa | Mac OS X Leopard |
| 05:48:32 | ujihisa | (not snow) |
| 05:48:55 | evan | could you try the binary installer? |
| 05:49:08 | evan | we're about to release 1.0.1, the installer is already built |
| 05:49:27 | ujihisa | $ ../../../bin/rbx -e 'p 1' [22:48:14] |
| 05:49:27 | ujihisa | zsh: bus error ../../../bin/rbx -e 'p 1' |
| 05:49:30 | evan | yeah |
| 05:49:31 | ujihisa | ok! |
| 05:49:31 | evan | i know. |
| 05:49:36 | evan | it's crashing for an unknown reason. |
| 05:49:49 | evan | download |
| 05:50:09 | evan | http://asset.rubini.us/rubinius-1.0.1-10.5.pkg.zip |
| 05:50:16 | evan | unzip and run the .pkg |
| 05:50:48 | evan | that will install rubinius to /usr/local/rubinius/1.0.1 |
| 05:50:57 | evan | and a link in /usr/local/bin/rbx |
| 05:51:05 | ujihisa | *installing* |
| 05:51:40 | ujihisa | cool. it ran! |
| 05:52:07 | evan | lets stick with that for now |
| 05:52:18 | evan | unless you really must build it from source |
| 05:52:45 | dbussink | doesn't attaching gdb already provide a lot of information? |
| 05:53:17 | evan | we can try that now |
| 05:53:23 | evan | that we know rbx can run |
| 05:53:32 | ujihisa | yep |
| 05:53:35 | evan | knowning the binary installer works |
| 05:53:40 | evan | give me differential info. |
| 05:53:43 | evan | gives |
| 05:53:48 | ujihisa | actually I must build it from source to test GC hacks |
| 05:53:52 | evan | ujihisa: so go to the build dir and run |
| 05:54:05 | evan | gdb --args bin/rbx -v |
| 05:54:09 | evan | then run |
| 05:54:12 | evan | then bt when it crashes |
| 05:54:18 | ujihisa | ok |
| 05:54:18 | evan | gist backtrace |
| 05:56:01 | ujihisa | $ echo 'run' | gdb --args bin/rbx -v >& gdb_log.txt |
| 05:56:05 | ujihisa | http://gist.github.com/425023 |
| 05:56:22 | evan | um no |
| 05:56:24 | evan | i need the backtrace. |
| 05:56:33 | ujihisa | oops! |
| 05:56:42 | evan | also |
| 05:56:43 | evan | i see the problem |
| 05:56:44 | evan | run |
| 05:56:46 | evan | rake distclean |
| 05:56:50 | evan | you have a very old checkout. |
| 05:57:02 | evan | your best chance of success is to grab a new clone |
| 05:57:05 | evan | and build that |
| 05:57:24 | evan | but if you have changes you don't want to loose |
| 05:57:27 | evan | try |
| 05:57:30 | evan | rake distclean |
| 05:57:31 | evan | rake |
| 05:57:58 | evan | brixen and I aren't happy with having to use distclean, but we'll fix that eventually. |
| 05:58:06 | ujihisa | $ echo "run\nbacktrace" | gdb --args bin/rbx -v |& gist |
| 05:58:09 | ujihisa | http://gist.github.com/425027 |
| 05:58:14 | ujihisa | I'll distclean again now |
| 05:59:27 | ujihisa | now building again |
| 05:59:35 | evan | you can't echo commands into gdb like that |
| 05:59:37 | evan | btw. |
| 05:59:38 | evan | that didn't work |
| 05:59:41 | ujihisa | ! |
| 06:00:05 | ujihisa | *cloning new rubinius* |
| 06:00:32 | dbussink | ujihisa: that trace does indeed look like old external library stuff |
| 06:00:40 | dbussink | failure in mp_copy |
| 06:01:06 | ujihisa | dbussink: I see |
| 06:01:37 | dbussink | ujihisa: that's the bignum library we use and it was changed to be friendlier in it's memory allocation |
| 06:01:44 | dbussink | but that already happened quite some ago |
| 06:03:51 | boyscout | Added system.pid to Agent API - b2ef615 - Ian Leitch |
| 06:03:51 | boyscout | Added 'memory' to console help - ef9898c - Ian Leitch |
| 06:05:07 | dbussink | evan: you should write a blog post on how to use the agent to look at rbx stuff |
| 06:06:02 | evan | oh, i forgot i gave Ian a commit bit |
| 06:06:03 | evan | hehe |
| 06:07:43 | evan | dbussink: yeah, i should. |
| 06:07:57 | evan | ian is working on something that uses it, he's been sending me github messages |
| 06:09:17 | evan | idl: ian? |
| 06:09:23 | idl | hey |
| 06:09:26 | evan | hi! |
| 06:09:34 | idl | did I break something? |
| 06:09:37 | evan | nope |
| 06:09:41 | evan | why? |
| 06:09:44 | idl | phew :) |
| 06:09:47 | evan | hehe |
| 06:09:56 | dbussink | boyscout hasn't come in though ;) |
| 06:10:08 | dbussink | but i'm going to head for the office |
| 06:10:09 | evan | idl: so, i got ahead of myself with the set stuff |
| 06:10:19 | evan | idl: i forgot i hadn't yet wired it up |
| 06:10:25 | evan | i'll do that tomorrow |
| 06:10:33 | evan | does what i said about one tree of variables make sense? |
| 06:11:00 | idl | ah just read your msg, sounds good |
| 06:11:32 | evan | originally the API had a few other commands to access other internal stuff |
| 06:11:43 | evan | and I realized that it made more sense to expose it all as variables |
| 06:11:47 | idl | so there is a root, it just doesn't have a name |
| 06:11:47 | evan | a bit like SNMP does |
| 06:11:54 | evan | yeah, i'm going to fix that too |
| 06:12:00 | evan | . will be the name of root |
| 06:12:03 | evan | so you can do |
| 06:12:03 | boyscout | CI: rubinius: ef9898c successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors |
| 06:12:04 | evan | get . |
| 06:12:08 | evan | to read the root tree |
| 06:12:10 | idl | I assumed system and config were both toplevel |
| 06:12:26 | idl | ok cool |
| 06:12:28 | evan | yeah, they are |
| 06:12:38 | evan | you can see that in agent_components.cpp |
| 06:12:43 | evan | where the tree is built |
| 06:12:55 | idl | yup |
| 06:14:18 | idl | I'm loving all this easy access to internals |
| 06:14:41 | idl | MRI is such a black box |
| 06:15:32 | evan | yeah! thats why I added the query agent. |
| 06:15:42 | evan | it's great to have a nice, uniform way to export data |
| 06:15:58 | idl | GC's young size is fixed right? |
| 06:16:07 | evan | yes. |
| 06:16:38 | idl | cool, any objection to me adding object counts to system.memory? |
| 06:16:54 | evan | should be fine |
| 06:17:12 | evan | but i'm not sure i'm keeping a live total of the young objects |
| 06:17:37 | evan | it's easy to increment a counter |
| 06:17:39 | idl | i guess it doesn't really matter much for young anyway |
| 06:17:42 | evan | but quite hard to decrement |
| 06:17:50 | evan | because only the live objects are copied |
| 06:17:57 | evan | so you don't know how many you leave behind |
| 06:18:04 | evan | which is a benefit most of the time |
| 06:19:27 | idl | mature and large would be handy from a monitor POV, i.e I see a memory jump it'd be nice to know if that relates to a huge number of new objects or just a few very large ones |
| 06:19:32 | boyscout | Allow the variable root to be read as . - 7130147 - Evan Phoenix |
| 06:19:34 | idl | *monitoring |
| 06:19:38 | Cesario | evan, it worked with the prebuilt LLVM! thanks a lot. I'll try that from work. thanks again |
| 06:19:52 | evan | Cesario: no problem, glad to hear it worked out! |
| 06:20:01 | evan | idl: sure |
| 06:20:06 | evan | idl: feel free to add the counters |
| 06:20:31 | evan | if you're not sure about them, feel free to ask |
| 06:21:13 | evan | i've started putting counters and such on the Stats struct |
| 06:21:23 | idl | should I rename the others, so that we can have memory.large_bytes, memory.large_count ? |
| 06:21:23 | evan | makes it easy to have them in one place |
| 06:21:43 | evan | how about |
| 06:21:48 | evan | system.objects.large |
| 06:21:54 | evan | or |
| 06:21:59 | evan | system.memory.objects.large |
| 06:22:16 | evan | having large be a tree is ok too |
| 06:22:21 | idl | I like system.memory.objects.large |
| 06:22:23 | evan | system.memory.large.bytes |
| 06:22:26 | evan | system.memory.large.objects |
| 06:22:45 | idl | even better |
| 06:23:02 | evan | i'm fine with any |
| 06:23:08 | evan | no one is using this API yet |
| 06:23:11 | evan | we're free to do whatever. |
| 06:23:47 | idl | should probably add an API version at some point |
| 06:23:53 | evan | yeah |
| 06:23:56 | evan | for 1.1 |
| 06:24:01 | evan | this API will become official |
| 06:24:20 | evan | so we'll need to add some versioning stuff at that point |
| 06:24:52 | evan | ok, well, i'm going to wind down my night. |
| 06:25:02 | evan | thanks for playing with the agent! can't wait to see your app |
| 06:26:04 | idl | :) good night |
| 06:26:06 | evan | nite. |
| 06:27:48 | boyscout | CI: rubinius: 7130147 successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors |
| 06:29:29 | ujihisa | evan: my rbx worked!!! |
| 06:29:48 | ujihisa | you all are awesome |
| 06:38:42 | boyscout | Restructured system.memory to make way for object counts - 3340130 - Ian Leitch |
| 06:38:42 | boyscout | Merge branch 'master' of github.com:evanphx/rubinius - 402540d - Ian Leitch |
| 06:46:53 | boyscout | CI: rubinius: 402540d successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors |
| 06:53:42 | dbussink | ujihisa: cool :) |
| 06:53:42 | dbussink | idl: btw, tip for next time is to use git pull --rebase |
| 06:54:00 | idl | dbussink: will do, cheers |
| 07:11:30 | dbussink | evan: still working on the release or doing it tomorrow? |
| 07:11:42 | evan | just headed to bed now |
| 07:11:46 | evan | 1.0.1 is tagged and bagged. |
| 07:11:53 | evan | doing the release announcement tomorrow |
| 07:12:18 | dbussink | yay! |
| 07:14:26 | evan | dbussink: nite! |
| 07:14:50 | dbussink | evan: nite |
| 07:20:40 | idl | evan: why doesn't the agent use GCStats? |
| 07:21:19 | idl | do you want all the agent features available even if RBX_GC_STATS isn't defined? |
| 07:22:45 | brixen | idl: we're going to be changing gc stats |
| 07:23:00 | brixen | the agent features should always be available |
| 07:23:24 | brixen | gc stats are conditionally compiled now mostly as a legacy issue |
| 07:23:40 | idl | ok, so they'll always be available in the future? |
| 07:23:49 | brixen | they should be, yes |
| 07:24:07 | brixen | but how they are implemented may change from how they are now |
| 07:25:20 | idl | I think i'll wait for that then before adding anything more to the Agent, I don't fancy adding extra crap to ObjectMemory when it should really be in stats |
| 07:25:36 | brixen | ok |
| 07:25:56 | brixen | headed to sleep now, I'll try to discuss with evan tomorrow |
| 07:26:17 | brixen | I'm at a conf this week but we'll be meeting up next week at railsconf |
| 07:26:28 | brixen | feel free to leave msgs in channel for us |
| 07:26:34 | idl | cool, sleep well! |
| 07:26:45 | brixen | thanks! :) |
| 07:26:59 | dbussink | brixen: when are you heading for baltimore? |
| 07:27:21 | dbussink | idl: also going to railsconf? |
| 07:27:28 | brixen | dbussink: monday, I leave ~10am I think so should get there monday eve |
| 07:27:46 | idl | dbussink: afraid not, don't live in the US anymore |
| 07:28:01 | dbussink | idl: me neither, but am going there :p |
| 07:28:06 | dbussink | brixen: ah ok, cool |
| 07:28:16 | dbussink | already leaving tomorrow myself :) |
| 07:28:18 | idl | dbussink: haha ok.. well then I have no excuse ;) |
| 07:28:51 | idl | dbussink: i'll go if you pay for my flights and talk to my boss? |
| 07:29:05 | dbussink | idl: haha, i'm not that rich :P |
| 07:30:46 | idl | time for me to head home.. i'll probably be here on Sunday hacking away.. not having a computer at home really sucks :( |
| 07:31:31 | idl | a computer nerd that doesn't own a computer.. such a contradiction ha |
| 07:31:47 | idl | anyway, ciao |
| 13:25:42 | kronos_vano | dbussink, http://habrahabr.ru/blogs/ruby/95225/ :D |
| 13:26:25 | dbussink | kronos_vano: what's that? |
| 13:26:50 | kronos_vano | dbussink, http://belitsky.info/freelance/dirkjan-bussink/ translated in russian |
| 13:26:59 | dbussink | kronos_vano: ah ok :) |
| 13:27:01 | kronos_vano | You are know famous! In russia) |
| 13:27:03 | kronos_vano | *now |
| 13:32:24 | dbussink | kronos_vano: didn't they translate all of them? |
| 13:32:48 | kronos_vano | dbussink, Only 4 for no |
| 13:32:49 | kronos_vano | w |
| 13:32:51 | kronos_vano | *now |
| 18:09:45 | evan | hopefully 1.0.1 addresses the lion share of things people hit in 1.0.0 |
| 18:09:52 | Arjen | congrats! |
| 19:22:32 | jvoorhis | evan: great to see a post-1.0 point release |
| 19:31:08 | cremes | will there be any announcements to ruby-talk, the rubinius ML or other places? |
| 20:44:09 | evan | cremes: i'll post one to the rubinius ML |
| 20:44:44 | cremes | gotta get the word out so folks know there is constant and steady rbx progress... |
| 20:48:11 | evan | yeah |
| 20:48:19 | evan | i don't read ruby-talk anymore |
| 20:48:29 | evan | which is why I wouldn't post to it. |
| 20:49:03 | evan | but if you do, please, feel free to. |
| 20:49:12 | evan | brixen: how was the osbridge talk? |
| 20:52:59 | jvoorhis | what's a Rubinius::LookupTable? |
| 20:54:51 | jvoorhis | versus a Hash, that is |
| 20:56:50 | jvoorhis | and is memcache-client the preferred lib for rbxers? |
| 21:01:38 | evan | jvoorhis: LookupTable should probably be renamed to Rubinius::IdentityHash |
| 21:01:47 | evan | it's a hash table that compares keys only by identity. |
| 21:01:59 | evan | and is there therefore simplier. |
| 21:02:27 | jvoorhis | cool, we stumbled across one in Errno |
| 21:02:29 | evan | it and it's older brother MethodTable are classes that the VM can read directly also. |
| 21:03:06 | jvoorhis | found some crazy code in our memcached client lib that looped over Errno.constants |
| 21:03:33 | jvoorhis | Errno::Mapping broke it |
| 21:04:07 | jvoorhis | so i'm hoping to just trade up to something a little cleaner; just installed memcache-client |
| 21:07:07 | jvoorhis | evan: are constants typically stored in a LookupTable? |
| 21:07:26 | evan | typically == always. |
| 21:07:38 | jvoorhis | heh, right |
| 21:08:51 | jvoorhis | embarrassing newbie question: just installed from git for the first time, setting up my $PATH; where is rbx's gem command? |
| 21:13:15 | jvoorhis | ah, rbx -S gem |
| 21:22:01 | jvoorhis | hit the wall: https://gist.github.com/9f94cc8fb5fd1dfbdb29 |
| 21:22:48 | jvoorhis | on duncanbeevers' machine, just installed rbx 1.0.1 using rvm |
| 21:26:40 | lypanov | wazzup. |
| 21:28:35 | evan | lypanov: yo! |
| 21:28:42 | evan | walking into a meeting (virtually) |
| 21:28:49 | lypanov | enjoy ;) |
| 21:28:59 | lypanov | congratz on teh releases |
| 21:29:19 | evan | thanks! |
| 21:29:27 | lypanov | watching the dalvik vm talk and got to thinking about vm related stuff again |
| 21:52:16 | brixen | evan: talk went great |
| 21:52:29 | brixen | just got out of chromatic's talk |
| 21:52:47 | brixen | lots of stuff to contemplate |
| 21:52:49 | lypanov | BRIIIIIXEEEN. etc |
| 21:53:30 | brixen | lllllllllllllllllllllllyyyyypanovvvvvvvvvvvvvvvvvvvvvvvvvvv!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! |
| 21:54:17 | brixen | lypanov: where's the dalvik talk? google tech talk? |
| 21:54:24 | lypanov | aye. |
| 21:54:27 | brixen | k |
| 21:54:31 | lypanov | http://www.youtube.com/watch?v=Ls0tM-c4Vfo&feature=player_embedded |
| 21:54:39 | lypanov | just a basic boring ass tracing jit. |
| 21:54:44 | brixen | lypanov: http://github.com/brixen/kireru :) |
| 21:54:56 | brixen | I'm at a conf now, I'll watch the talk tonight |
| 21:55:03 | lypanov | lol. |
| 21:55:19 | lypanov | now i just need to make rubinius backend to jvm and we're all cool |
| 21:55:44 | brixen | that... sounds like a terrible idea :P |
| 21:56:07 | lypanov | anyone got bored enough to make a javascript backend? |
| 21:56:16 | lypanov | needs him some ruby 2 js translation |
| 21:56:59 | jvoorhis | brixen: just like hot pockets |
| 21:57:10 | brixen | jvoorhis: haha! |
| 21:58:07 | jvoorhis | brixen: trying to get our rails app up and running on rbx 1.0.1 |
| 21:58:11 | brixen | sweet |
| 21:58:18 | jvoorhis | but we hit the wall |
| 21:58:20 | brixen | is that segfault reproducible? |
| 21:58:24 | jvoorhis | oh, you saw the trace? |
| 21:58:30 | brixen | yeah, just looking at it |
| 21:58:41 | jvoorhis | it seemed deterministic, trying once more |
| 21:58:58 | brixen | k |
| 21:59:58 | jvoorhis | yeah, reproducible on duncanbeevers' machine |
| 22:00:19 | jvoorhis | (i'm a few libs shy of firing up webrick atm) |
| 22:00:28 | brixen | k |
| 22:01:06 | duncanbeevers | I get something slightly different if I purge all my rbc files before booting up the app. |
| 22:01:16 | evan | duncanbeevers: that can happen |
| 22:01:21 | evan | if it's reliable either way |
| 22:01:22 | evan | open an issue |
| 22:01:27 | evan | with as much detail as you can. |
| 22:01:35 | evan | if it's a full on crash |
| 22:01:44 | evan | starting under gdb and getting a gdb backtrace is great too. |
| 22:20:51 | jvoorhis | updated w/ gdb backtrace https://gist.github.com/9f94cc8fb5fd1dfbdb29 |
| 22:22:30 | evan | oh interesting. |
| 22:23:38 | jvoorhis | yeah |
| 22:24:35 | evan | how did you build rbx? |
| 22:24:47 | evan | we always build with -ggdb |
| 22:24:52 | evan | but it appears that yours is not. |
| 22:25:09 | duncanbeevers | rvm install rbx-head |
| 22:25:31 | evan | thats pretty odd. |
| 22:25:33 | evan | what platform? |
| 22:25:49 | jvoorhis | snow leopard |
| 22:26:30 | evan | all those warnings about newer .o files is worrysome. |
| 22:26:56 | evan | because it tells me that rbx has been compiled, but you're to running an rbx that uses those never .o files. |
| 22:27:43 | evan | if you wouldn't mind |
| 22:27:50 | evan | to provide some more info |
| 22:27:58 | evan | install the 1.0.1 pkg |
| 22:28:05 | evan | and try to make it crash. |
| 22:28:14 | jvoorhis | i have a clean build via master; he's pushing his branch and i'm going to give it a shot |
| 22:28:21 | evan | ok. |
| 22:29:32 | jvoorhis | heheheheh Unable to find 'iconv_open' (FFI::NotFoundError) |
| 22:29:52 | jvoorhis | puts macports last in line |
| 22:30:42 | jvoorhis | i'm still mystified by that |
| 22:33:43 | jvoorhis | same backtrace |
| 22:34:31 | evan | any .o warnings? |
| 22:34:37 | evan | ary argument info? |
| 22:34:55 | jvoorhis | no .o warnings |
| 22:35:03 | jvoorhis | i'm guessing that's a different issue |
| 22:35:17 | evan | could you gist it anyway? |
| 22:35:28 | jvoorhis | yeah |
| 22:35:38 | jvoorhis | just noticed a failed assertion |
| 22:35:41 | jvoorhis | that's different |
| 22:36:24 | evan | oh? thats important. |
| 22:36:25 | evan | show me. |
| 22:36:31 | jvoorhis | https://gist.github.com/a9d298957df3f8435902 |
| 22:36:49 | evan | fuck that fucking assertion. |
| 22:36:57 | evan | i fucking hate PrettyStack. |
| 22:36:59 | evan | GRRR |
| 22:37:44 | jvoorhis | 3rd party lib? |
| 22:37:48 | evan | are you getting that assertion everytime? |
| 22:37:51 | evan | yeah, it's in LLVM. |
| 22:37:55 | jvoorhis | oh |
| 22:37:58 | jvoorhis | good question |
| 22:38:45 | jvoorhis | no, just the first time |
| 22:38:52 | evan | same crash? |
| 22:38:59 | evan | run it in gdb. |
| 22:39:01 | jvoorhis | same crash |
| 22:39:03 | evan | get a backtrace that way. |
| 22:41:18 | boyscout | Add missing branch for a constant to udis86 - 9e28ade - Evan Phoenix |
| 22:41:46 | jvoorhis | https://gist.github.com/a9d298957df3f8435902 |
| 22:42:51 | evan | ok |
| 22:42:52 | evan | do |
| 22:42:53 | evan | frame 1 |
| 22:42:59 | evan | p call_frame->print_backtrace(state) |
| 22:43:03 | evan | that will get you a ruby backtrace |
| 22:43:04 | evan | gist that. |
| 22:43:26 | jvoorhis | ok |
| 22:46:05 | jvoorhis | added to https://gist.github.com/a9d298957df3f8435902 |
| 22:48:53 | evan | can you figure out what the ruby code in belongs_to_without_deleted is? |
| 22:49:03 | evan | actually, nm |
| 22:49:04 | evan | do |
| 22:49:05 | evan | rp cache->name |
| 22:49:10 | boyscout | CI: rubinius: 9e28ade successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors |
| 22:49:33 | jvoorhis | k |
| 22:49:58 | jvoorhis | uhh, no command rp |
| 22:50:17 | jvoorhis | p cache->name prints $2 = (class rubinius::Symbol *) 0x1d5de |
| 22:50:18 | evan | use |
| 22:50:27 | evan | p __show__(cache->name) |
| 22:50:28 | evan | then |
| 22:50:48 | evan | rp is a gdb macro provided by .gdbinit in the build dir |
| 22:50:51 | evan | i guess you're not in the build dir. |
| 22:50:57 | jvoorhis | no, i'm in the project dir |
| 22:51:14 | jvoorhis | :belongs_to |
| 22:51:15 | jvoorhis | $3 = void |
| 22:51:21 | evan | k |
| 22:51:49 | evan | and this is happening everytime, yes? |
| 22:52:04 | jvoorhis | absolutely |
| 22:52:52 | evan | ok |
| 22:53:02 | evan | in frame 1 |
| 22:53:25 | evan | p __show__(call_frame->module()->name()) |
| 22:53:41 | evan | i see a bug |
| 22:53:44 | evan | that this might be |
| 22:53:53 | evan | but i'm trying to figure out what that code is trying to do |
| 22:54:03 | evan | since the bug fix is to raise a NoMethodError |
| 22:54:38 | jvoorhis | https://gist.github.com/b096a225cdea3e7c32ff |
| 22:54:57 | evan | gerat. |
| 22:54:58 | evan | great |
| 22:54:58 | evan | :/ |
| 22:55:05 | evan | well quit then. |
| 22:55:05 | jvoorhis | that's what you expected? |
| 22:55:07 | evan | that session is gone. |
| 22:55:08 | evan | no. |
| 22:55:13 | evan | it crashed trying to print it. |
| 22:55:21 | jvoorhis | ugh |
| 22:55:24 | evan | now the session is every more inconsistent. |
| 22:55:38 | jvoorhis | trying in a new session |
| 22:55:56 | evan | i'm going to try and to replace it |
| 22:56:01 | evan | er |
| 22:56:02 | evan | replicate. |
| 22:56:14 | jvoorhis | that makes more senes |
| 22:56:19 | jvoorhis | sense :\ |
| 22:56:44 | jvoorhis | (gdb) p __show__(call_frame->module()->name()) |
| 22:56:45 | jvoorhis | Cannot evaluate function -- may be inlined |
| 22:56:49 | evan | could you find the url for the code that is generated that code |
| 22:57:04 | evan | ie, where is ActiveRecord::AutosaveAssociation::ClassMethods#belongs_to_without_deleted coming from. |
| 22:57:13 | evan | we're going to have to figure out what that code is trying to do |
| 22:57:19 | jvoorhis | i'll look |
| 22:57:37 | jvoorhis | probably a plugin |
| 22:58:15 | evan | it is |
| 22:58:16 | evan | ok |
| 22:58:18 | evan | easy repro. |
| 22:58:28 | evan | i'm just not sure about the fix. |
| 22:58:44 | evan | repro: http://gist.github.com/426056 |
| 22:59:48 | evan | testing the fix and i'll commit it. |
| 22:59:50 | jvoorhis | gh |
| 22:59:59 | jvoorhis | err, ugh |
| 22:59:59 | evan | if that code is using some method_missing stuff in module metaclasses |
| 23:00:06 | evan | then i could see this happening. |
| 23:00:53 | jvoorhis | https://gist.github.com/a9d298957df3f8435902#file_acts_as_paranoid_init.rb |
| 23:01:13 | jvoorhis | line 19 |
| 23:02:07 | evan | the alias_method_chain? |
| 23:02:08 | evan | what about it? |
| 23:02:50 | jvoorhis | that defines ActiveRecord::AutosaveAssociation::ClassMethods#belongs_to_without_deleted :\ |
| 23:02:58 | jvoorhis | oh |
| 23:03:04 | jvoorhis | facepalm |
| 23:03:42 | postmodern | anyone know what this error is from? |
| 23:03:45 | postmodern | http://pastie.org/992513 |
| 23:04:02 | postmodern | while compiling rubinius nkf.so |
| 23:04:45 | evan | ug |
| 23:04:48 | evan | nope. |
| 23:04:49 | evan | :/ |
| 23:06:09 | boyscout | Validate the starting Module of a super call. @crash - ed37e2d - Evan Phoenix |
| 23:06:10 | evan | jvoorhis: ok update and try this ^^ |
| 23:07:09 | jvoorhis | evan: here's the source: https://gist.github.com/171440a1c6cf50e5481c |
| 23:07:12 | jvoorhis | upping |
| 23:08:27 | jvoorhis | wth |
| 23:08:29 | jvoorhis | /usr/local/rubinius/1.0/gems/bin/rake:1: Can't exec /Users/evan/git/rbx/bin/rbx (fatal) |
| 23:08:40 | evan | damnit |
| 23:08:46 | evan | why are people running the gem stubs directly |
| 23:09:07 | evan | jvoorhis: what did you run to get that |
| 23:09:18 | evan | did you put that gems/bin in your $PATH? |
| 23:09:23 | jvoorhis | just rake |
| 23:09:23 | jvoorhis | yeah |
| 23:09:24 | jvoorhis | /usr/local/rubinius/1.0/bin:/usr/local/rubinius/1.0/gems/bin |
| 23:09:28 | evan | don't |
| 23:09:30 | evan | DON'T DO THAT. |
| 23:09:30 | jvoorhis | ok |
| 23:09:38 | jvoorhis | help me out |
| 23:09:39 | evan | not support. |
| 23:09:46 | evan | rbx -S rake |
| 23:09:49 | jvoorhis | ah |
| 23:09:52 | evan | directly running them is not supported. |
| 23:10:01 | jvoorhis | thanks |
| 23:10:17 | jvoorhis | i was trying to find documentation about that and didn't know where to look |
| 23:11:12 | jvoorhis | so gem-installed executables are always run w/ -S ? |
| 23:11:30 | evan | yes. |
| 23:11:37 | jvoorhis | cool, thanks |
| 23:11:49 | jvoorhis | building... |
| 23:11:50 | evan | otherwise it's trivial to make a mess |
| 23:11:59 | jvoorhis | what do you use udis86 for? |
| 23:12:05 | evan | debugging the JIT. |
| 23:12:12 | jvoorhis | cool |
| 23:12:28 | evan | x86 assembly is a lot more consise to read than LLVM IR sometimes |
| 23:12:57 | jvoorhis | hm |
| 23:13:18 | evan | you should probably be building rbx with MRI |
| 23:13:18 | jvoorhis | i've never debugged x86 *in anger* |
| 23:13:26 | evan | we haven't tested building rbx with rbx much. |
| 23:13:31 | jvoorhis | but i kinda like IR |
| 23:13:36 | jvoorhis | thanks for the warning |
| 23:13:56 | jvoorhis | i'll see how it goes; if it doesn't pan out i'll rebuild w/ MRI |
| 23:14:18 | boyscout | CI: rubinius: ed37e2d successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors |
| 23:14:27 | jvoorhis | sfsg |
| 23:17:18 | duncanbeevers | jvoorhis just gray screened |
| 23:19:04 | evan | ouch. |
| 23:19:21 | evan | NOT MY FAULT. |
| 23:21:16 | duncanbeevers | Well, we get the error you'd expect now "no superclass method 'belongs_to' on Tagging (Class) (NoMethodError)" |
| 23:21:18 | jvoorhis | i guess that's a sign |
| 23:21:29 | evan | ok, thats what i figured you get |
| 23:21:33 | evan | thats better than a segfault though! |
| 23:21:53 | jvoorhis | better for who? :P |
| 23:21:58 | evan | everyone! |
| 23:22:07 | jvoorhis | is irritated |
| 23:22:12 | jvoorhis | restarting build... |
| 23:22:32 | evan | duncanbeevers: so, could you figure out what it should be calling? |
| 23:22:42 | evan | i'll need to figure out a repro for this |
| 23:22:52 | duncanbeevers | Yeah, it's just calling belongs_to. |
| 23:23:03 | evan | you sure? |
| 23:23:09 | evan | i mean, belong_to on what? |
| 23:23:15 | evan | belong_to defined where? |
| 23:23:22 | evan | (don't assume I know anything about rails) |
| 23:23:31 | evan | i know some, but don't assume i'm intimate. |
| 23:24:19 | duncanbeevers | https://gist.github.com/82f2ee7afd17e29caefa |
| 23:24:40 | evan | duncanbeevers: where is belong_to defined? |
| 23:24:46 | evan | what should it be finding? |
| 23:25:30 | jvoorhis | it probably depends at least partly on plugin load order |
| 23:25:48 | evan | i guess assume it's the only plugin. |
| 23:26:29 | jvoorhis | we have two plugins that call a_m_c on belongs_to |
| 23:27:02 | evan | well |
| 23:27:07 | evan | why is super being used |
| 23:27:11 | evan | if a_m_c is used. |
| 23:27:20 | evan | those 2 technologies contradict eachother. |
| 23:27:29 | jvoorhis | yeah, i don't know |
| 23:27:37 | jvoorhis | but that's in the rails tree |
| 23:28:03 | evan | le sigh. |
| 23:28:10 | evan | i'm just trying to figure out what that code is trying to do |
| 23:28:11 | evan | thats all. |
| 23:28:17 | evan | so that i can figure out how to fix it. |
| 23:29:04 | jvoorhis | looks like it's a_m_c layered on top of super |
| 23:29:09 | duncanbeevers | super is used internally by rails to invoke the belongs_to behavior defined in ActiveRecord::Associations::ClassMethods and then to append autosave callbacks. |
| 23:29:35 | duncanbeevers | Sometimes they alias_method_chain, sometimes they rely on traditional module-heirarchy lookup. |
| 23:29:48 | evan | ok. |
| 23:30:04 | evan | when ActiveRecord::AutosaveAssociation::ClassMethods(Class)#belongs_to_without_deleted |
| 23:30:06 | evan | calls super |
| 23:30:33 | evan | belongs_to, the original name of the method, should be found where? |
| 23:30:43 | evan | ActiveRecord::Base's metaclass? |
| 23:30:59 | duncanbeevers | ActiveRecord::Associations::ClassMethods |
| 23:31:11 | evan | why? |
| 23:31:26 | evan | is that module included into something visible from ActiveRecord::AutosaveAssociation::ClassMethods |
| 23:31:26 | evan | ? |
| 23:31:33 | evan | (btw, fuck ClassMethods modules) |
| 23:31:47 | jvoorhis | (agreed) |
| 23:32:08 | duncanbeevers | ActiveRecord::Base includes ActiveRecord::Associations, which, when included extends ActiveRecord::Base with ActiveRecord::Associations::ClassMethods |
| 23:32:59 | evan | ok |
| 23:33:07 | evan | i'll see if i can get a repro from what i think is the layout. |
| 23:37:26 | evan | this works ok: |
| 23:37:26 | evan | http://gist.github.com/426087 |
| 23:38:28 | jvoorhis | same here |
| 23:38:56 | evan | so there is some other level of indirection that is causing confusion |
| 23:39:26 | evan | Tagging is what? |
| 23:39:27 | evan | a module? |
| 23:39:32 | evan | subclass of AR::Base? |
| 23:39:35 | jvoorhis | yeah |
| 23:39:36 | jvoorhis | module |
| 23:39:38 | evan | which? |
| 23:39:53 | evan | ok, how are there these methods on them |
| 23:39:57 | evan | what includes are done to it? |
| 23:41:01 | evan | ?? |
| 23:41:09 | jvoorhis | whoops, sorry |
| 23:43:22 | jvoorhis | (was thinking of the enclosing module instead) |
| 23:43:47 | evan | ok.. |
| 23:46:04 | evan | so, whats Tagging? |
| 23:46:11 | jvoorhis | hey i nailed it |
| 23:46:47 | evan | do tell |
| 23:47:03 | jvoorhis | try this: https://gist.github.com/8bdf2cda8198dbda1818 |
| 23:47:46 | evan | there ya go. |
| 23:47:46 | jvoorhis | hm, my build didn't complete and i got excited when i saw the segfault |
| 23:47:51 | jvoorhis | did it work for you? |
| 23:47:56 | evan | these aliases shouldn't matter |
| 23:47:57 | evan | yeah, it crashes |
| 23:48:01 | evan | but runs fine on MRI |
| 23:48:40 | jvoorhis | ok great |
| 23:48:50 | evan | on, the aliases do matter... |
| 23:51:15 | evan | i'm on it. |
| 23:52:06 | jvoorhis | kick ass |
| 23:52:28 | evan | oh, i think this is how aliasing a superclass method effects super |
| 23:53:34 | jvoorhis | glad to help you shake these out |
| 23:53:43 | jvoorhis | we have a lot of weird code :) |
| 23:53:46 | evan | :D |
| 23:53:58 | evan | ruby's concepts can become quite twisted. |
| 23:54:06 | jvoorhis | i know |
| 23:54:43 | duncanbeevers | Thanks for checking this out with us. |
| 23:54:50 | evan | no prob. |
| 23:55:00 | jvoorhis | duncanbeevers' explanation above really made me do a double take |
| 23:55:07 | evan | hehe |
| 23:56:17 | evan | aliasing a superclass method is actually pretty complicated |
| 23:56:40 | evan | if you just put the method in your method table with a different name |
| 23:56:43 | evan | then you break super |
| 23:56:44 | jvoorhis | as in the example, in Crash.extended(mod) ? |
| 23:56:52 | evan | yeah |
| 23:57:02 | evan | we have to actually put an Alias object in the method table |
| 23:57:12 | evan | that says what module you aliased the method from |
| 23:57:16 | evan | so that if you use super |
| 23:57:17 | jvoorhis | just a trampolining thing? |
| 23:57:23 | evan | it knows where to search from |
| 23:57:27 | jvoorhis | makes sense |
| 23:57:32 | evan | it's a data object thats explicitly detected |
| 23:57:37 | evan | but doing it as a tramp would work too. |
| 23:57:44 | evan | you need to retain the original info somewhere too |
| 23:58:21 | duncanbeevers | If you manage to fix this we'll see if we can break things in an even-more-interesting way on Monday. |
| 23:58:50 | evan | oh i'll manage to fix this. |