Index

Show enters and exits. Hide enters and exits.

00:00:01brixenheh
00:00:05jvoorhisi have a gist for you
00:00:05evanI just fixed the rake install issue
00:00:07jvoorhishttps://gist.github.com/63f0a0865024e2dbda24
00:00:24evanok.
00:00:37brixenso, this downloaded the prebuild
00:00:40evan:/ :\ :|
00:00:44evanwhat g++ version are you on?
00:00:47brixenand configured with --skip-system
00:00:48evanand what LLVM version
00:00:52brixen4.2.1
00:01:04jvoorhisi686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646) (dot 1)
00:01:28evannever seen this before.
00:01:39evanreally no idea...
00:01:41evanhm.
00:02:03brixenok, I was stumped too
00:02:26evando you have another llvm/Module.h somewher?
00:02:33evan /usr/local/include maybe?
00:03:14evanjvoorhis: ?
00:03:18brixenyeah
00:03:30evanyes, he does?
00:03:37brixenso, this is on the build line before -Ivm/external_libs/llvm/include
00:03:48brixenthis == /usr/local/include
00:03:53brixenI thought I fixed that
00:04:05evanyeah, i see that
00:04:12evanthats why i'm asking about /usr/local/include/llvm/Module.h
00:04:13brixenyeah, that is the issue
00:04:19brixenyes, it's there
00:04:22evanok
00:04:45evanextra should probably be last
00:04:53evanin vm.rake
00:05:06evanline 150
00:05:41brixenyeah
00:05:45evanon line 203
00:05:53evanput llvm_flags at the beginning
00:05:55evansee if that fixes it.
00:07:34brixenyeah, fixes this
00:08:03evando you want me to put that in 1.0.1?
00:08:08brixensure
00:08:13brixenI'm building too to check
00:08:33brixenlooks like jvoorhis is building fine now, but not finished yet
00:08:46jvoorhisevan: oh hi, didn't have irc open
00:09:01evanwelcome back sir.
00:09:03jvoorhisi had a stable 2.6 build
00:09:07jvoorhisin /usr/local
00:09:16jvoorhishad the same error w/ the prebuilt and system llvm
00:09:32jvoorhishacked up rakelib/vm.rake and it seems to be working now
00:09:39jvoorhisw/ brixen's help
00:10:26evani don't know why your 2.6 build didn't like that line
00:10:28evanthats weird.
00:10:46jvoorhisno idea
00:10:59jvoorhisit's worked fine otherwise
00:11:01evanplease gist the diff.
00:11:04evanso i can see.
00:11:16jvoorhissure
00:12:02jvoorhishttps://gist.github.com/cb6fdd9375ab740f75c2
00:12:25evank
00:12:29evani'll add that to 1.0.1
00:12:47evanbrixen: did that work for you?
00:13:11jvoorhisevan: if you let me commit it, we'll be even
00:13:20evanyou need to do it now.
00:13:32jvoorhis(i'd have to sneak in some case expressions also)
00:13:42evanum no.
00:13:46jvoorhishaha
00:13:52jvoorhisi don't think i have a commit bit yet
00:14:00evanthen we'll have to get you next time.
00:14:02jvoorhisbut if i did, i'd commit exactly that change
00:14:03jvoorhisok
00:14:11brixenevan: yep, builds fine
00:14:16jvoorhisthen by all means go right ahead
00:15:35evank
00:15:36evantesting here
00:15:39evanthen i'll push for CI on linux
00:15:44brixenk
00:15:46evanthen i'll finalize 1.0.1
00:15:59evanfrom master.
00:23:14brixenevan: one more issue :(
00:23:22evan:/
00:23:23brixenbuilding DL with --prefix specified
00:23:28evani fixed it.
00:23:33brixentries to run the not-yet-built rbx
00:23:36brixenyou did?
00:23:37evanfixed.
00:23:39evanyeah
00:23:40evanpushing now.
00:23:43brixenahh ok
00:23:47boyscoutVersion bumb for 1.0.1 - 98000a1 - Evan Phoenix
00:23:48boyscoutUse the system ruby to generate code for dl - 37f7d38 - Evan Phoenix
00:23:48boyscoutFlip include order so that local LLVM wins - 529664b - Evan Phoenix
00:24:12brixensweet
00:27:10brixenhm odd, getting libiconv spec failures
00:27:19brixenon jvoorhis' build
00:31:58boyscoutCI: rubinius: 529664b successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors
00:32:08jvoorhisanother gist for you
00:32:09jvoorhishttps://gist.github.com/b9c467778670387c5b3f
00:34:16evanumm
00:34:16evanno
00:34:18jvoorhisit fixed these failures: https://gist.github.com/825d30f677cf5fb831ef
00:34:18evanthats not right
00:34:19evanis it?
00:34:27jvoorhisbut brixen doesn't have that issue
00:34:36evanyeah, you're seeing something completely different.
00:34:41evani'm not going to be doing that for 1.0.1.
00:34:47jvoorhiswhat's that?
00:34:48brixenyeah, this is odd
00:34:49evanthats going to require some research.
00:34:52jvoorhisiiuc i have a stock libiconv
00:35:02evanjvoorhis: you must not, otherwise the existing code would work.
00:35:07jvoorhishm
00:36:23jvoorhiswhoops, ports
00:36:41evan /usr/include/iconv.h has them as iconv_open, etc.
00:36:56jvoorhisi'm not going on a lot of context here
00:37:06jvoorhisi ran nm on /usr/lib/libiconv.2.dylib and got an idea
00:37:09jvoorhisand tried it out
00:37:17jvoorhisand it worked but now we don't know why :)
00:37:58evankendall :: git/rails » nm /usr/lib/libiconv.dylib | grep iconv_open
00:37:58evan0000000000014d42 T _iconv_open
00:38:50evani don't see anything with libiconv_open
00:39:36evani do see:
00:39:38evankendall :: git/rails » nm /opt/local/lib/libiconv.2.dylib| grep iconv_open
00:39:38evan0000000000017f30 T _libiconv_open
00:39:42jvoorhishttps://gist.github.com/ab9b27b76dc52a2d4e54
00:39:45evanwhy the fuck ports uses a different name
00:39:47evanthats stupid.
00:39:53jvoorhisno clue
00:39:55jvoorhisi agree
00:39:56evanand i don't care atm to support taht.
00:39:59jvoorhisk
00:40:05evanbecause iconv_open is the name of the function.
00:40:18jvoorhisright
00:40:46jvoorhisexcept, this is different
00:40:47jvoorhis~/Projects/rubinius % nm /usr/lib/libiconv.2.dylib | grep iconv_open
00:40:47jvoorhis000150b5 T _iconv_open
00:40:47jvoorhis000158cc T _libiconv_open
00:41:40evanis LD_LIBRARY_PATH even the env var on OS X?
00:41:45evani thought it was DYLD_LIBRARY_PATH
00:42:09jvoorhisit's probably deprecated but i've been using it :)
00:42:16jvoorhisit works
00:43:01evanseems like it's your setup
00:43:09evani've got ports and iconv in ports and have no problems
00:43:34jvoorhisit's possible
00:43:43jvoorhisat this point, i'd even say not unlikely :)
00:44:14evanfeel free to craft a patch to support both if you'd like
00:44:24evanbut it has to try both symbols.
00:44:42jvoorhisyeah, i'd try the 'right' one first
00:44:52jvoorhisi'm really baffled
00:45:38brixenb/c of LD_LIBRARY_PATH it was picking up the /opt one first
00:45:45jvoorhisright
00:45:46brixenwhich has no symbol for iconv_open
00:45:56jvoorhisit doesn't seem like there are any variants
00:46:59brixenwho knows why the version from ports doesn't have this symbol
00:47:20brixenhttp://gist.github.com/424744
00:51:27brixenevan: 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:47evanhah
00:51:51evanwell, thats probably good
00:51:55brixenheh
00:51:57evanlet you speak more candidly.
00:52:01evanwhich i'm sure he appreciates.
00:52:34jvoorhishttp://bugs.php.net/bug.php?id=13305&edit=1
00:52:39brixenevan: oh! talked to the guy who did hiphop too
00:52:47jvoorhismissing symbol: libiconv_open
00:52:47brixenjvoorhis and I attended his talk
00:52:51evanbrixen: what did you guys talk about? (chromatic)
00:52:54jvoorhisso does php expect that to be defined?
00:53:09brixenevan: jit/dynopts stuff
00:53:17evanjvoorhis: weird.
00:53:17brixenand compiler infrastructure
00:53:20jvoorhisyeah
00:54:13evanbrixen: how was the hiphop talk?
00:54:15brixenevan: apparently, they have a gsoc student working on using llvm with parrot
00:54:23brixenevan: interesting
00:54:24evanbrixen: ah
00:54:28evanyeah, at the last LLVM dev conf
00:54:37evanLarry Wall told me Allison was looking into LLVM heavily
00:54:42brixencool
00:55:35brixenso, 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:42brixenthis is actually a use case
00:55:59brixenthey have all this logic in php, but they write some services in C++
00:56:15brixenso, instead of trying to do some ext or service protocol
00:56:34brixenthey can just compile their php app and use it directly from their C++ code
00:57:01evanbrixen: could you build the 10.5 pkg?
00:57:11brixensure
00:57:20slavaparrot is crap
00:57:25evanyou can just do "rake release:all VERSION=1.0.1 OSX=10.5"
00:57:34evanfrom on master
00:57:40evanand then upload the .zip it creates
00:57:46evanit might fail creating the tag because it's already ther
00:57:47evane
00:57:48evanbut thats ok
00:57:57brixenevan: ok
00:59:57brixenslava: tell us how you really feel :)
01:21:31brixenevan: built, tested, uploaded
01:42:24evanbrixen: danku.
04:07:06ujihisaevan: hi!
05:20:05evanujihisa: you around?
05:21:05ujihisaevan: yes!
05:21:17evani'm reviewing your issue now
05:21:19ujihisaI just went to a supermarket and cooked late dinner :-)
05:22:23evan:)
05:22:35evanhm, lets see..
05:23:41evanujihisa: what configure line did you use?
05:23:54evanjust "./configure" ?
05:24:00ujihisa./configure --prefix=`pwd`/local
05:24:18evanwhy a prefix?
05:24:31evanyou want to install it?
05:24:44evanif you're doing it like that, why not just run it out of the build dir?
05:24:51ujihisain order not to install under /usr
05:25:07ujihisa!
05:25:11evanjust run ./configure
05:25:13ujihisaok!
05:25:14evandon't use --prefix
05:25:24evanthen run
05:25:25evanrake clean
05:25:28evanrake
05:25:32evanand see if you still have the error
05:25:54ujihisanow I'm running ./configure && rake clean && rake --trace >& rakelog.txt
05:26:27evanok
05:30:26evani'll be waiting for the results
05:30:30evanso we can get this all sorted out for you
05:38:41ujihisafinished!
05:38:56ujihisahttp://gist.github.com/425002
05:40:27evanok
05:42:28evando
05:42:34Cesariohi guys, swhile we're at it : http://gist.github.com/425006 :)
05:42:37evancd lib/ext/openssl
05:43:00evan../../../bin/rbx extconf.rb
05:43:16evanany output?
05:43:53evanCesario: your system LLVM isn't working right.
05:43:57evanuse a prebuilt.
05:44:13CesarioI'm supposed to use 2.6, lemme check
05:44:38evani suggest you don't build it yourself unless you have to
05:45:08CesarioIt's from a dpkg I used, where would I get the prebuilt?
05:45:14evanjust run ./configure.
05:45:17evanit will use a prebuilt.
05:45:20Cesarioalright :)
05:45:47evanyou'll need to run 'rake clean' after you run configure
05:46:08evanujihisa: ?
05:46:26ujihisasorry I was eating the late dinner :)
05:46:46evanno prob.
05:47:20ujihisawell,
05:47:30ujihisa$ ../../../bin/rbx extconf.rb [22:46:56]
05:47:30ujihisazsh: bus error ../../../bin/rbx extconf.rb
05:47:38evanhrm.
05:47:43evan:/ :\
05:47:51ujihisa--trace'ing
05:47:54evanno no
05:47:59evannothing to trace.
05:48:01ujihisa:/
05:48:07evanthats not running rake.
05:48:15evanwhat OS are you on?
05:48:17ujihisaoh yeah
05:48:25ujihisaMac OS X Leopard
05:48:32ujihisa(not snow)
05:48:55evancould you try the binary installer?
05:49:08evanwe're about to release 1.0.1, the installer is already built
05:49:27ujihisa$ ../../../bin/rbx -e 'p 1' [22:48:14]
05:49:27ujihisazsh: bus error ../../../bin/rbx -e 'p 1'
05:49:30evanyeah
05:49:31ujihisaok!
05:49:31evani know.
05:49:36evanit's crashing for an unknown reason.
05:49:49evandownload
05:50:09evanhttp://asset.rubini.us/rubinius-1.0.1-10.5.pkg.zip
05:50:16evanunzip and run the .pkg
05:50:48evanthat will install rubinius to /usr/local/rubinius/1.0.1
05:50:57evanand a link in /usr/local/bin/rbx
05:51:05ujihisa*installing*
05:51:40ujihisacool. it ran!
05:52:07evanlets stick with that for now
05:52:18evanunless you really must build it from source
05:52:45dbussinkdoesn't attaching gdb already provide a lot of information?
05:53:17evanwe can try that now
05:53:23evanthat we know rbx can run
05:53:32ujihisayep
05:53:35evanknowning the binary installer works
05:53:40evangive me differential info.
05:53:43evangives
05:53:48ujihisaactually I must build it from source to test GC hacks
05:53:52evanujihisa: so go to the build dir and run
05:54:05evangdb --args bin/rbx -v
05:54:09evanthen run
05:54:12evanthen bt when it crashes
05:54:18ujihisaok
05:54:18evangist backtrace
05:56:01ujihisa$ echo 'run' | gdb --args bin/rbx -v >& gdb_log.txt
05:56:05ujihisahttp://gist.github.com/425023
05:56:22evanum no
05:56:24evani need the backtrace.
05:56:33ujihisaoops!
05:56:42evanalso
05:56:43evani see the problem
05:56:44evanrun
05:56:46evanrake distclean
05:56:50evanyou have a very old checkout.
05:57:02evanyour best chance of success is to grab a new clone
05:57:05evanand build that
05:57:24evanbut if you have changes you don't want to loose
05:57:27evantry
05:57:30evanrake distclean
05:57:31evanrake
05:57:58evanbrixen and I aren't happy with having to use distclean, but we'll fix that eventually.
05:58:06ujihisa$ echo "run\nbacktrace" | gdb --args bin/rbx -v |& gist
05:58:09ujihisahttp://gist.github.com/425027
05:58:14ujihisaI'll distclean again now
05:59:27ujihisanow building again
05:59:35evanyou can't echo commands into gdb like that
05:59:37evanbtw.
05:59:38evanthat didn't work
05:59:41ujihisa!
06:00:05ujihisa*cloning new rubinius*
06:00:32dbussinkujihisa: that trace does indeed look like old external library stuff
06:00:40dbussinkfailure in mp_copy
06:01:06ujihisadbussink: I see
06:01:37dbussinkujihisa: that's the bignum library we use and it was changed to be friendlier in it's memory allocation
06:01:44dbussinkbut that already happened quite some ago
06:03:51boyscoutAdded system.pid to Agent API - b2ef615 - Ian Leitch
06:03:51boyscoutAdded 'memory' to console help - ef9898c - Ian Leitch
06:05:07dbussinkevan: you should write a blog post on how to use the agent to look at rbx stuff
06:06:02evanoh, i forgot i gave Ian a commit bit
06:06:03evanhehe
06:07:43evandbussink: yeah, i should.
06:07:57evanian is working on something that uses it, he's been sending me github messages
06:09:17evanidl: ian?
06:09:23idlhey
06:09:26evanhi!
06:09:34idldid I break something?
06:09:37evannope
06:09:41evanwhy?
06:09:44idlphew :)
06:09:47evanhehe
06:09:56dbussinkboyscout hasn't come in though ;)
06:10:08dbussinkbut i'm going to head for the office
06:10:09evanidl: so, i got ahead of myself with the set stuff
06:10:19evanidl: i forgot i hadn't yet wired it up
06:10:25evani'll do that tomorrow
06:10:33evandoes what i said about one tree of variables make sense?
06:11:00idlah just read your msg, sounds good
06:11:32evanoriginally the API had a few other commands to access other internal stuff
06:11:43evanand I realized that it made more sense to expose it all as variables
06:11:47idlso there is a root, it just doesn't have a name
06:11:47evana bit like SNMP does
06:11:54evanyeah, i'm going to fix that too
06:12:00evan. will be the name of root
06:12:03evanso you can do
06:12:03boyscoutCI: rubinius: ef9898c successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors
06:12:04evanget .
06:12:08evanto read the root tree
06:12:10idlI assumed system and config were both toplevel
06:12:26idlok cool
06:12:28evanyeah, they are
06:12:38evanyou can see that in agent_components.cpp
06:12:43evanwhere the tree is built
06:12:55idlyup
06:14:18idlI'm loving all this easy access to internals
06:14:41idlMRI is such a black box
06:15:32evanyeah! thats why I added the query agent.
06:15:42evanit's great to have a nice, uniform way to export data
06:15:58idlGC's young size is fixed right?
06:16:07evanyes.
06:16:38idlcool, any objection to me adding object counts to system.memory?
06:16:54evanshould be fine
06:17:12evanbut i'm not sure i'm keeping a live total of the young objects
06:17:37evanit's easy to increment a counter
06:17:39idli guess it doesn't really matter much for young anyway
06:17:42evanbut quite hard to decrement
06:17:50evanbecause only the live objects are copied
06:17:57evanso you don't know how many you leave behind
06:18:04evanwhich is a benefit most of the time
06:19:27idlmature 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:32boyscoutAllow the variable root to be read as . - 7130147 - Evan Phoenix
06:19:34idl*monitoring
06:19:38Cesarioevan, it worked with the prebuilt LLVM! thanks a lot. I'll try that from work. thanks again
06:19:52evanCesario: no problem, glad to hear it worked out!
06:20:01evanidl: sure
06:20:06evanidl: feel free to add the counters
06:20:31evanif you're not sure about them, feel free to ask
06:21:13evani've started putting counters and such on the Stats struct
06:21:23idlshould I rename the others, so that we can have memory.large_bytes, memory.large_count ?
06:21:23evanmakes it easy to have them in one place
06:21:43evanhow about
06:21:48evansystem.objects.large
06:21:54evanor
06:21:59evansystem.memory.objects.large
06:22:16evanhaving large be a tree is ok too
06:22:21idlI like system.memory.objects.large
06:22:23evansystem.memory.large.bytes
06:22:26evansystem.memory.large.objects
06:22:45idleven better
06:23:02evani'm fine with any
06:23:08evanno one is using this API yet
06:23:11evanwe're free to do whatever.
06:23:47idlshould probably add an API version at some point
06:23:53evanyeah
06:23:56evanfor 1.1
06:24:01evanthis API will become official
06:24:20evanso we'll need to add some versioning stuff at that point
06:24:52evanok, well, i'm going to wind down my night.
06:25:02evanthanks for playing with the agent! can't wait to see your app
06:26:04idl:) good night
06:26:06evannite.
06:27:48boyscoutCI: rubinius: 7130147 successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors
06:29:29ujihisaevan: my rbx worked!!!
06:29:48ujihisayou all are awesome
06:38:42boyscoutRestructured system.memory to make way for object counts - 3340130 - Ian Leitch
06:38:42boyscoutMerge branch 'master' of github.com:evanphx/rubinius - 402540d - Ian Leitch
06:46:53boyscoutCI: rubinius: 402540d successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors
06:53:42dbussinkujihisa: cool :)
06:53:42dbussinkidl: btw, tip for next time is to use git pull --rebase
06:54:00idldbussink: will do, cheers
07:11:30dbussinkevan: still working on the release or doing it tomorrow?
07:11:42evanjust headed to bed now
07:11:46evan1.0.1 is tagged and bagged.
07:11:53evandoing the release announcement tomorrow
07:12:18dbussinkyay!
07:14:26evandbussink: nite!
07:14:50dbussinkevan: nite
07:20:40idlevan: why doesn't the agent use GCStats?
07:21:19idldo you want all the agent features available even if RBX_GC_STATS isn't defined?
07:22:45brixenidl: we're going to be changing gc stats
07:23:00brixenthe agent features should always be available
07:23:24brixengc stats are conditionally compiled now mostly as a legacy issue
07:23:40idlok, so they'll always be available in the future?
07:23:49brixenthey should be, yes
07:24:07brixenbut how they are implemented may change from how they are now
07:25:20idlI 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:36brixenok
07:25:56brixenheaded to sleep now, I'll try to discuss with evan tomorrow
07:26:17brixenI'm at a conf this week but we'll be meeting up next week at railsconf
07:26:28brixenfeel free to leave msgs in channel for us
07:26:34idlcool, sleep well!
07:26:45brixenthanks! :)
07:26:59dbussinkbrixen: when are you heading for baltimore?
07:27:21dbussinkidl: also going to railsconf?
07:27:28brixendbussink: monday, I leave ~10am I think so should get there monday eve
07:27:46idldbussink: afraid not, don't live in the US anymore
07:28:01dbussinkidl: me neither, but am going there :p
07:28:06dbussinkbrixen: ah ok, cool
07:28:16dbussinkalready leaving tomorrow myself :)
07:28:18idldbussink: haha ok.. well then I have no excuse ;)
07:28:51idldbussink: i'll go if you pay for my flights and talk to my boss?
07:29:05dbussinkidl: haha, i'm not that rich :P
07:30:46idltime for me to head home.. i'll probably be here on Sunday hacking away.. not having a computer at home really sucks :(
07:31:31idla computer nerd that doesn't own a computer.. such a contradiction ha
07:31:47idlanyway, ciao
13:25:42kronos_vanodbussink, http://habrahabr.ru/blogs/ruby/95225/ :D
13:26:25dbussinkkronos_vano: what's that?
13:26:50kronos_vanodbussink, http://belitsky.info/freelance/dirkjan-bussink/ translated in russian
13:26:59dbussinkkronos_vano: ah ok :)
13:27:01kronos_vanoYou are know famous! In russia)
13:27:03kronos_vano*now
13:32:24dbussinkkronos_vano: didn't they translate all of them?
13:32:48kronos_vanodbussink, Only 4 for no
13:32:49kronos_vanow
13:32:51kronos_vano*now
18:09:45evanhopefully 1.0.1 addresses the lion share of things people hit in 1.0.0
18:09:52Arjencongrats!
19:22:32jvoorhisevan: great to see a post-1.0 point release
19:31:08cremeswill there be any announcements to ruby-talk, the rubinius ML or other places?
20:44:09evancremes: i'll post one to the rubinius ML
20:44:44cremesgotta get the word out so folks know there is constant and steady rbx progress...
20:48:11evanyeah
20:48:19evani don't read ruby-talk anymore
20:48:29evanwhich is why I wouldn't post to it.
20:49:03evanbut if you do, please, feel free to.
20:49:12evanbrixen: how was the osbridge talk?
20:52:59jvoorhiswhat's a Rubinius::LookupTable?
20:54:51jvoorhisversus a Hash, that is
20:56:50jvoorhisand is memcache-client the preferred lib for rbxers?
21:01:38evanjvoorhis: LookupTable should probably be renamed to Rubinius::IdentityHash
21:01:47evanit's a hash table that compares keys only by identity.
21:01:59evanand is there therefore simplier.
21:02:27jvoorhiscool, we stumbled across one in Errno
21:02:29evanit and it's older brother MethodTable are classes that the VM can read directly also.
21:03:06jvoorhisfound some crazy code in our memcached client lib that looped over Errno.constants
21:03:33jvoorhisErrno::Mapping broke it
21:04:07jvoorhisso i'm hoping to just trade up to something a little cleaner; just installed memcache-client
21:07:07jvoorhisevan: are constants typically stored in a LookupTable?
21:07:26evantypically == always.
21:07:38jvoorhisheh, right
21:08:51jvoorhisembarrassing newbie question: just installed from git for the first time, setting up my $PATH; where is rbx's gem command?
21:13:15jvoorhisah, rbx -S gem
21:22:01jvoorhishit the wall: https://gist.github.com/9f94cc8fb5fd1dfbdb29
21:22:48jvoorhison duncanbeevers' machine, just installed rbx 1.0.1 using rvm
21:26:40lypanovwazzup.
21:28:35evanlypanov: yo!
21:28:42evanwalking into a meeting (virtually)
21:28:49lypanovenjoy ;)
21:28:59lypanovcongratz on teh releases
21:29:19evanthanks!
21:29:27lypanovwatching the dalvik vm talk and got to thinking about vm related stuff again
21:52:16brixenevan: talk went great
21:52:29brixenjust got out of chromatic's talk
21:52:47brixenlots of stuff to contemplate
21:52:49lypanovBRIIIIIXEEEN. etc
21:53:30brixenlllllllllllllllllllllllyyyyypanovvvvvvvvvvvvvvvvvvvvvvvvvvv!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!
21:54:17brixenlypanov: where's the dalvik talk? google tech talk?
21:54:24lypanovaye.
21:54:27brixenk
21:54:31lypanovhttp://www.youtube.com/watch?v=Ls0tM-c4Vfo&feature=player_embedded
21:54:39lypanovjust a basic boring ass tracing jit.
21:54:44brixenlypanov: http://github.com/brixen/kireru :)
21:54:56brixenI'm at a conf now, I'll watch the talk tonight
21:55:03lypanovlol.
21:55:19lypanovnow i just need to make rubinius backend to jvm and we're all cool
21:55:44brixenthat... sounds like a terrible idea :P
21:56:07lypanovanyone got bored enough to make a javascript backend?
21:56:16lypanovneeds him some ruby 2 js translation
21:56:59jvoorhisbrixen: just like hot pockets
21:57:10brixenjvoorhis: haha!
21:58:07jvoorhisbrixen: trying to get our rails app up and running on rbx 1.0.1
21:58:11brixensweet
21:58:18jvoorhisbut we hit the wall
21:58:20brixenis that segfault reproducible?
21:58:24jvoorhisoh, you saw the trace?
21:58:30brixenyeah, just looking at it
21:58:41jvoorhisit seemed deterministic, trying once more
21:58:58brixenk
21:59:58jvoorhisyeah, reproducible on duncanbeevers' machine
22:00:19jvoorhis(i'm a few libs shy of firing up webrick atm)
22:00:28brixenk
22:01:06duncanbeeversI get something slightly different if I purge all my rbc files before booting up the app.
22:01:16evanduncanbeevers: that can happen
22:01:21evanif it's reliable either way
22:01:22evanopen an issue
22:01:27evanwith as much detail as you can.
22:01:35evanif it's a full on crash
22:01:44evanstarting under gdb and getting a gdb backtrace is great too.
22:20:51jvoorhisupdated w/ gdb backtrace https://gist.github.com/9f94cc8fb5fd1dfbdb29
22:22:30evanoh interesting.
22:23:38jvoorhisyeah
22:24:35evanhow did you build rbx?
22:24:47evanwe always build with -ggdb
22:24:52evanbut it appears that yours is not.
22:25:09duncanbeeversrvm install rbx-head
22:25:31evanthats pretty odd.
22:25:33evanwhat platform?
22:25:49jvoorhissnow leopard
22:26:30evanall those warnings about newer .o files is worrysome.
22:26:56evanbecause it tells me that rbx has been compiled, but you're to running an rbx that uses those never .o files.
22:27:43evanif you wouldn't mind
22:27:50evanto provide some more info
22:27:58evaninstall the 1.0.1 pkg
22:28:05evanand try to make it crash.
22:28:14jvoorhisi have a clean build via master; he's pushing his branch and i'm going to give it a shot
22:28:21evanok.
22:29:32jvoorhisheheheheh Unable to find 'iconv_open' (FFI::NotFoundError)
22:29:52jvoorhisputs macports last in line
22:30:42jvoorhisi'm still mystified by that
22:33:43jvoorhissame backtrace
22:34:31evanany .o warnings?
22:34:37evanary argument info?
22:34:55jvoorhisno .o warnings
22:35:03jvoorhisi'm guessing that's a different issue
22:35:17evancould you gist it anyway?
22:35:28jvoorhisyeah
22:35:38jvoorhisjust noticed a failed assertion
22:35:41jvoorhisthat's different
22:36:24evanoh? thats important.
22:36:25evanshow me.
22:36:31jvoorhishttps://gist.github.com/a9d298957df3f8435902
22:36:49evanfuck that fucking assertion.
22:36:57evani fucking hate PrettyStack.
22:36:59evanGRRR
22:37:44jvoorhis3rd party lib?
22:37:48evanare you getting that assertion everytime?
22:37:51evanyeah, it's in LLVM.
22:37:55jvoorhisoh
22:37:58jvoorhisgood question
22:38:45jvoorhisno, just the first time
22:38:52evansame crash?
22:38:59evanrun it in gdb.
22:39:01jvoorhissame crash
22:39:03evanget a backtrace that way.
22:41:18boyscoutAdd missing branch for a constant to udis86 - 9e28ade - Evan Phoenix
22:41:46jvoorhishttps://gist.github.com/a9d298957df3f8435902
22:42:51evanok
22:42:52evando
22:42:53evanframe 1
22:42:59evanp call_frame->print_backtrace(state)
22:43:03evanthat will get you a ruby backtrace
22:43:04evangist that.
22:43:26jvoorhisok
22:46:05jvoorhisadded to https://gist.github.com/a9d298957df3f8435902
22:48:53evancan you figure out what the ruby code in belongs_to_without_deleted is?
22:49:03evanactually, nm
22:49:04evando
22:49:05evanrp cache->name
22:49:10boyscoutCI: rubinius: 9e28ade successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors
22:49:33jvoorhisk
22:49:58jvoorhisuhh, no command rp
22:50:17jvoorhisp cache->name prints $2 = (class rubinius::Symbol *) 0x1d5de
22:50:18evanuse
22:50:27evanp __show__(cache->name)
22:50:28evanthen
22:50:48evanrp is a gdb macro provided by .gdbinit in the build dir
22:50:51evani guess you're not in the build dir.
22:50:57jvoorhisno, i'm in the project dir
22:51:14jvoorhis:belongs_to
22:51:15jvoorhis$3 = void
22:51:21evank
22:51:49evanand this is happening everytime, yes?
22:52:04jvoorhisabsolutely
22:52:52evanok
22:53:02evanin frame 1
22:53:25evanp __show__(call_frame->module()->name())
22:53:41evani see a bug
22:53:44evanthat this might be
22:53:53evanbut i'm trying to figure out what that code is trying to do
22:54:03evansince the bug fix is to raise a NoMethodError
22:54:38jvoorhishttps://gist.github.com/b096a225cdea3e7c32ff
22:54:57evangerat.
22:54:58evangreat
22:54:58evan:/
22:55:05evanwell quit then.
22:55:05jvoorhisthat's what you expected?
22:55:07evanthat session is gone.
22:55:08evanno.
22:55:13evanit crashed trying to print it.
22:55:21jvoorhisugh
22:55:24evannow the session is every more inconsistent.
22:55:38jvoorhistrying in a new session
22:55:56evani'm going to try and to replace it
22:56:01evaner
22:56:02evanreplicate.
22:56:14jvoorhisthat makes more senes
22:56:19jvoorhissense :\
22:56:44jvoorhis(gdb) p __show__(call_frame->module()->name())
22:56:45jvoorhisCannot evaluate function -- may be inlined
22:56:49evancould you find the url for the code that is generated that code
22:57:04evanie, where is ActiveRecord::AutosaveAssociation::ClassMethods#belongs_to_without_deleted coming from.
22:57:13evanwe're going to have to figure out what that code is trying to do
22:57:19jvoorhisi'll look
22:57:37jvoorhisprobably a plugin
22:58:15evanit is
22:58:16evanok
22:58:18evaneasy repro.
22:58:28evani'm just not sure about the fix.
22:58:44evanrepro: http://gist.github.com/426056
22:59:48evantesting the fix and i'll commit it.
22:59:50jvoorhisgh
22:59:59jvoorhiserr, ugh
22:59:59evanif that code is using some method_missing stuff in module metaclasses
23:00:06evanthen i could see this happening.
23:00:53jvoorhishttps://gist.github.com/a9d298957df3f8435902#file_acts_as_paranoid_init.rb
23:01:13jvoorhisline 19
23:02:07evanthe alias_method_chain?
23:02:08evanwhat about it?
23:02:50jvoorhisthat defines ActiveRecord::AutosaveAssociation::ClassMethods#belongs_to_without_deleted :\
23:02:58jvoorhisoh
23:03:04jvoorhisfacepalm
23:03:42postmodernanyone know what this error is from?
23:03:45postmodernhttp://pastie.org/992513
23:04:02postmodernwhile compiling rubinius nkf.so
23:04:45evanug
23:04:48evannope.
23:04:49evan:/
23:06:09boyscoutValidate the starting Module of a super call. @crash - ed37e2d - Evan Phoenix
23:06:10evanjvoorhis: ok update and try this ^^
23:07:09jvoorhisevan: here's the source: https://gist.github.com/171440a1c6cf50e5481c
23:07:12jvoorhisupping
23:08:27jvoorhiswth
23:08:29jvoorhis/usr/local/rubinius/1.0/gems/bin/rake:1: Can't exec /Users/evan/git/rbx/bin/rbx (fatal)
23:08:40evandamnit
23:08:46evanwhy are people running the gem stubs directly
23:09:07evanjvoorhis: what did you run to get that
23:09:18evandid you put that gems/bin in your $PATH?
23:09:23jvoorhisjust rake
23:09:23jvoorhisyeah
23:09:24jvoorhis/usr/local/rubinius/1.0/bin:/usr/local/rubinius/1.0/gems/bin
23:09:28evandon't
23:09:30evanDON'T DO THAT.
23:09:30jvoorhisok
23:09:38jvoorhishelp me out
23:09:39evannot support.
23:09:46evanrbx -S rake
23:09:49jvoorhisah
23:09:52evandirectly running them is not supported.
23:10:01jvoorhisthanks
23:10:17jvoorhisi was trying to find documentation about that and didn't know where to look
23:11:12jvoorhisso gem-installed executables are always run w/ -S ?
23:11:30evanyes.
23:11:37jvoorhiscool, thanks
23:11:49jvoorhisbuilding...
23:11:50evanotherwise it's trivial to make a mess
23:11:59jvoorhiswhat do you use udis86 for?
23:12:05evandebugging the JIT.
23:12:12jvoorhiscool
23:12:28evanx86 assembly is a lot more consise to read than LLVM IR sometimes
23:12:57jvoorhishm
23:13:18evanyou should probably be building rbx with MRI
23:13:18jvoorhisi've never debugged x86 *in anger*
23:13:26evanwe haven't tested building rbx with rbx much.
23:13:31jvoorhisbut i kinda like IR
23:13:36jvoorhisthanks for the warning
23:13:56jvoorhisi'll see how it goes; if it doesn't pan out i'll rebuild w/ MRI
23:14:18boyscoutCI: rubinius: ed37e2d successful: 3441 files, 13538 examples, 41055 expectations, 0 failures, 0 errors
23:14:27jvoorhissfsg
23:17:18duncanbeeversjvoorhis just gray screened
23:19:04evanouch.
23:19:21evanNOT MY FAULT.
23:21:16duncanbeeversWell, we get the error you'd expect now "no superclass method 'belongs_to' on Tagging (Class) (NoMethodError)"
23:21:18jvoorhisi guess that's a sign
23:21:29evanok, thats what i figured you get
23:21:33evanthats better than a segfault though!
23:21:53jvoorhisbetter for who? :P
23:21:58evaneveryone!
23:22:07jvoorhisis irritated
23:22:12jvoorhisrestarting build...
23:22:32evanduncanbeevers: so, could you figure out what it should be calling?
23:22:42evani'll need to figure out a repro for this
23:22:52duncanbeeversYeah, it's just calling belongs_to.
23:23:03evanyou sure?
23:23:09evani mean, belong_to on what?
23:23:15evanbelong_to defined where?
23:23:22evan(don't assume I know anything about rails)
23:23:31evani know some, but don't assume i'm intimate.
23:24:19duncanbeevershttps://gist.github.com/82f2ee7afd17e29caefa
23:24:40evanduncanbeevers: where is belong_to defined?
23:24:46evanwhat should it be finding?
23:25:30jvoorhisit probably depends at least partly on plugin load order
23:25:48evani guess assume it's the only plugin.
23:26:29jvoorhiswe have two plugins that call a_m_c on belongs_to
23:27:02evanwell
23:27:07evanwhy is super being used
23:27:11evanif a_m_c is used.
23:27:20evanthose 2 technologies contradict eachother.
23:27:29jvoorhisyeah, i don't know
23:27:37jvoorhisbut that's in the rails tree
23:28:03evanle sigh.
23:28:10evani'm just trying to figure out what that code is trying to do
23:28:11evanthats all.
23:28:17evanso that i can figure out how to fix it.
23:29:04jvoorhislooks like it's a_m_c layered on top of super
23:29:09duncanbeeverssuper is used internally by rails to invoke the belongs_to behavior defined in ActiveRecord::Associations::ClassMethods and then to append autosave callbacks.
23:29:35duncanbeeversSometimes they alias_method_chain, sometimes they rely on traditional module-heirarchy lookup.
23:29:48evanok.
23:30:04evanwhen ActiveRecord::AutosaveAssociation::ClassMethods(Class)#belongs_to_without_deleted
23:30:06evancalls super
23:30:33evanbelongs_to, the original name of the method, should be found where?
23:30:43evanActiveRecord::Base's metaclass?
23:30:59duncanbeeversActiveRecord::Associations::ClassMethods
23:31:11evanwhy?
23:31:26evanis that module included into something visible from ActiveRecord::AutosaveAssociation::ClassMethods
23:31:26evan?
23:31:33evan(btw, fuck ClassMethods modules)
23:31:47jvoorhis(agreed)
23:32:08duncanbeeversActiveRecord::Base includes ActiveRecord::Associations, which, when included extends ActiveRecord::Base with ActiveRecord::Associations::ClassMethods
23:32:59evanok
23:33:07evani'll see if i can get a repro from what i think is the layout.
23:37:26evanthis works ok:
23:37:26evanhttp://gist.github.com/426087
23:38:28jvoorhissame here
23:38:56evanso there is some other level of indirection that is causing confusion
23:39:26evanTagging is what?
23:39:27evana module?
23:39:32evansubclass of AR::Base?
23:39:35jvoorhisyeah
23:39:36jvoorhismodule
23:39:38evanwhich?
23:39:53evanok, how are there these methods on them
23:39:57evanwhat includes are done to it?
23:41:01evan??
23:41:09jvoorhiswhoops, sorry
23:43:22jvoorhis(was thinking of the enclosing module instead)
23:43:47evanok..
23:46:04evanso, whats Tagging?
23:46:11jvoorhishey i nailed it
23:46:47evando tell
23:47:03jvoorhistry this: https://gist.github.com/8bdf2cda8198dbda1818
23:47:46evanthere ya go.
23:47:46jvoorhishm, my build didn't complete and i got excited when i saw the segfault
23:47:51jvoorhisdid it work for you?
23:47:56evanthese aliases shouldn't matter
23:47:57evanyeah, it crashes
23:48:01evanbut runs fine on MRI
23:48:40jvoorhisok great
23:48:50evanon, the aliases do matter...
23:51:15evani'm on it.
23:52:06jvoorhiskick ass
23:52:28evanoh, i think this is how aliasing a superclass method effects super
23:53:34jvoorhisglad to help you shake these out
23:53:43jvoorhiswe have a lot of weird code :)
23:53:46evan:D
23:53:58evanruby's concepts can become quite twisted.
23:54:06jvoorhisi know
23:54:43duncanbeeversThanks for checking this out with us.
23:54:50evanno prob.
23:55:00jvoorhisduncanbeevers' explanation above really made me do a double take
23:55:07evanhehe
23:56:17evanaliasing a superclass method is actually pretty complicated
23:56:40evanif you just put the method in your method table with a different name
23:56:43evanthen you break super
23:56:44jvoorhisas in the example, in Crash.extended(mod) ?
23:56:52evanyeah
23:57:02evanwe have to actually put an Alias object in the method table
23:57:12evanthat says what module you aliased the method from
23:57:16evanso that if you use super
23:57:17jvoorhisjust a trampolining thing?
23:57:23evanit knows where to search from
23:57:27jvoorhismakes sense
23:57:32evanit's a data object thats explicitly detected
23:57:37evanbut doing it as a tramp would work too.
23:57:44evanyou need to retain the original info somewhere too
23:58:21duncanbeeversIf you manage to fix this we'll see if we can break things in an even-more-interesting way on Monday.
23:58:50evanoh i'll manage to fix this.