Index

Show enters and exits. Hide enters and exits.

06:13:34boyscoutAdded be_computed_by matcher. - f738f37 - Brian Ford
06:13:34boyscoutFixed String#inspect specs. - 22e6c9e - Brian Ford
06:13:34boyscoutUpdated CI tag for changed spec description. - 0c6ccdf - Brian Ford
06:13:34boyscoutFixed String#inspect handling of '#'. - a26c83a - Brian Ford
06:13:34boyscoutUpdated CType specs for '#' String#inspect mapping. - 5e70490 - Brian Ford
07:09:08brianmariois there an equiv of rubysig.h in rbx at the moment?
07:09:19brianmarioI'm specifically looking for TRAP_BEG and TRAP_END
15:03:30brixenwhat the hell boyscout
15:03:42brixenglad I didn't wait all night for results
15:05:23matthewdbrixen: I thought that was an odd time for you to be committing :)
15:05:45brixenmatthewd: heh, not that odd, just unusual these days :)
15:06:01brixenused to be a prime commit time
15:06:39matthewdWell yeah, that. And admittedly I didn't actually do the math to work out what time it was.
15:07:52brixenheh
15:08:35brixenI ran the specs with those commits on the CI server first
15:08:45brixenso dunno what's up with boyscout
15:31:52kronos_vanoboyscout, We need you! Come back, dear!
16:33:59evanCI got hung for some reason.
16:46:10brixenevan: got this the other day http://gist.github.com/394434
16:46:21brixendunno why both threads in that process were in spin_lock
16:46:54evanlooks normal actually
16:46:54brixenalso, need to track down why I can't get print_backtrace to work in these situations
16:47:00brixenreally?
16:47:03evanyeah
16:47:07brixenboth threads would be in spin_lock?
16:47:09evanbecause you've got one thread waiting in wait()
16:47:25brixenthat's a different process though
16:47:32evansure
16:47:38evanthats why it's not moving forward
16:47:42evanit's waiting for another process
16:47:46brixenright
16:47:50evanyou didn't get backtraces from the threads using spinlock
16:47:56brixenthe other process has both threads in spinlock
16:47:56evanso i have no way to know if it's expected or not
16:47:59brixenok
16:48:07evangiven that at least one thread is in pretty normal code
16:48:09brixenwell, how would I get bts?
16:48:12evani'd assume it's normal.
16:48:29evanoh, weird
16:48:32evani see there are backtraces
16:48:33brixenwell, something must be abnormal here
16:48:35evanbut with ?? in them
16:48:38evanso no clue how to get them
16:48:41brixenbecause rbx should not just hang
16:48:51evanwell, sure.
16:49:06evanbut I can't say the spinlock'd threads have anything to do with that
16:49:19evanin this case
16:49:20brixenthat seems to be a deadlock to me
16:49:24evanyou need to look at the OTHER rbx process
16:49:26evanit does?
16:49:27evannot to me
16:49:32evanwhy didn't the subprocess exit?
16:49:35evanthats the real question
16:49:37brixenthere are 2 rbx processes in that gist
16:49:42evanright
16:49:51brixenthe wait process is waiting on the one with both threads in spin_lock
16:49:53evanoh wait.
16:49:54evanone sec.
16:50:00evani didn't realize there were 2 processes
16:50:01evanhold on.
16:50:27evanhuh.
16:50:28evanok
16:50:29evanyeah
16:50:33evannevermind what I said
16:50:37evansomething is wonky
16:50:40evanno fucking clue though.
16:50:52brixenok
16:51:14brixenI also could not attach to the rbx CI on elle, so no info about why it was hung
16:53:01evanhrm
16:59:08evanbakkdoor: well, should we worry about this for rc5?
16:59:32evanack
16:59:35brixenheh
16:59:37evanbrixen: should we worry about this for rc5?
16:59:44brixenprobably not, I get it rarely
16:59:48evank
17:00:05evanso, is there any outstanding items for 1.0 then?
17:00:49brixennot that I know of
17:01:00brixenI'm looking at redmine tests again, but i wouldn't worry about that
17:01:04evank
17:01:10evani'm running ci on elle now
17:01:14evanif that comes up clean
17:01:17brixenk
17:01:20evani'll start cutting rc5!
17:01:27brixenI ran it last night before I pushed and it was clean
17:01:31evank
17:07:57evanbrixen: so, i decided to read over some of macruby
17:08:01evanwhich I do once in a while
17:08:14evanand I'm completly baffled by their method cache setup
17:08:27ezmobiusevan, brixen rubinus report was awesome thanks
17:08:35evanezmobius: great!
17:09:07brixenezmobius: super
17:09:18brixenevan: where are you looking?
17:09:43evancompile_mcache and method_cache_get
17:09:49evanin compiler.cpp and vm.cpp
17:09:58brixenk
17:10:02evanit appears they use a single cache struct for every use of a selector
17:10:17evanie, everywhere #== is used, they use the same cache entry
17:10:22evanwhich makes absolutely no sense at all.
17:11:16brixenis updating source
17:11:20brixengotta love svn
17:12:34evanseriously, it's so wrong I'm trying to figure out of i'm reading it wrong.
17:14:51boyscoutCI: rubinius: 5e70490 successful: 3457 files, 13596 examples, 41216 expectations, 0 failures, 0 errors
17:23:23brixenwhat do the SEL sel actually look like?
17:24:12brixenunless the sel has more info than just the method name, the single mcache map is searched only for sel
17:24:21brixenso what you said seems like the way it works
17:24:29brixenbuilds macruby
17:24:35evana SEL is a symbol basicaly
17:24:46brixenbut I wonder what it actually looks like
17:24:49evanit's a uniqued char* is all.
17:24:52brixenhmm
17:25:11evanthe only thing you can do is compare it against other SEL's
17:25:16evanit's got no data value
17:25:53brixenare you building macruby?
17:26:41brixenI wish they'd bundle llvm or make it as easy to build as we do
17:26:51brixenwhat is it with painful build processes
17:26:54Malediktushi all, I'm trying to reproduce the libexecinfo stuff on freebsd. I'm doing a clean build. It fails here right now:http://bsdpaste.bsdgroup.de/14903 but I'm going to add -fPIC
17:26:59evanno, i'm not building it.
17:27:34evanhrm.
17:27:41evanthats in building the openssl extension...
17:28:57Malediktuswith -fPIC it works
17:29:11evanwith -fPIC where?
17:29:14evanpatch please!
17:29:45Malediktusworking on it. But I'm not sure how to handle the other OSes. maybe just add -fPIC for them too?
17:32:04evanMalediktus: hurry! i'm in the process of doing the rc5 release
17:32:08evani can sneak this in
17:32:20evani just need to know where you put the -fPIC
17:33:48Malediktushttp://bsdpaste.bsdgroup.de/14904
17:35:52Malediktusevan: I think it shouldn't brake anywhere.
17:36:02evanbrake?
17:36:05evanyou mean break?
17:36:06Malediktusbreak
17:36:09Malediktussorry
17:40:50evanMalediktus: yeah, I think that should be fine
17:40:54evanMalediktus: anything else?
17:43:16Malediktushttp://github.com/evanphx/rubinius/issues/issue/272/#comment_236721
17:43:19Malediktusjust sent it :)
17:43:20evanwell, we can't put it into the Makefile, since the makefile is autogenerated.
17:43:29Malediktusuh
17:43:31Malediktusok
17:43:35Malediktusfrom where?
17:43:49Malediktusah, I see
17:44:03evanneeds to be in extconf.rb
17:44:05evanwhich is easy.
17:44:13Malediktusok
17:45:46Malediktusevan: what do you think about the omit-frame-pointer situation?
17:45:57evanfreebsd is broken
17:46:02evanis my opinion on it.
17:46:06Malediktuskinda
17:46:27evanbacktrace() should certainly not just randomly segfault
17:46:29MalediktusI don't know why it does that. I didn't find any place where it's defined by defualt
17:46:39evanand we're not going to build with -fno-omit-frame-pointer by default
17:46:46Malediktusit's not randomly
17:46:53evanwe use trampolines in critical places
17:47:17Malediktusyou need the frame pointer for that too I guess?
17:49:59evanjust the opposite
17:50:08evanwe need to allow gcc to not have a frame pointer for that
17:50:38evanusing backtrace() isn't critical at all
17:50:44evanit just aids in debugging
17:50:54evanthats all.
17:50:59evanVM debugging, that il.
17:51:32Malediktusah, hmm. and backtrace() works on mac and linux without frame-pointers?
17:52:24evanyep
17:54:16Malediktusinteresting
18:02:30evanMalediktus: so, the better fix is to put -fPIC into rbconfig.rb
18:02:33evanwhich i'm doing
18:02:41evanotherwise you won't be able to build other extensions either
18:02:56Malediktusthank you
18:05:38brixenI thought I added -fPIC to rbconfig.rb
18:06:11evanonly for linux
18:06:12brixenoh, for linux
18:06:14brixenyeah
18:06:14evani'm adding it for everyone
18:06:25evansince we hardcode gcc atm anyway
18:06:29brixensure
18:06:48Malediktusanyone tried using clang to compile the vm?
18:07:18evani haven't
18:07:24evani'd be interested to hear how it goes though
18:07:43Malediktusc++ support is not really complete afaik
18:07:59boyscoutUse -fPIC on all platforms since we mandate gcc atm - c7c7d02 - Evan Phoenix
18:08:01evanthey're getting there
18:08:01brixenit compiles llvm itself I believe
18:08:05evanbut yeah, they've still got holes
18:08:10brixenor does it just parse it all
18:08:14evanwe're pretty conservative with our c++ usage
18:08:28evanbrixen: no, they can code gen it too
18:08:32brixensweet
18:08:43Malediktusbrixen: yes it does. there is a freebsd branch, it can compile all of freebsd too (very little c++ though)
18:08:48brixenseems like 2.7 would probably compile rbx
18:09:24Malediktuswhat about using llvm 2.7 for the jit stuff like now with 2.6 does that work already?
18:10:01scooprI've been using self-hosting clang for a while testing stuff
18:10:18scooprthey've got fair bit of boost working
18:10:21Malediktusscoopr: nice, rubinius too?
18:10:23Malediktusor mri
18:10:53evanMalediktus: you mean upgrade to 2.7?
18:10:57Malediktusyes
18:11:04evanpost 1.0
18:11:06evani'll be doing that.
18:11:07Malediktusok
18:11:42scooprnah, not rbx or mri
18:11:47scoopryet at least
18:16:09evanso, i'm not going to do OS X packages for rc5
18:16:23evansince we're going to turn around and (hopefully) make it 1.0 in a few days
18:16:57boyscoutCI: rubinius: c7c7d02 successful: 3457 files, 13596 examples, 41216 expectations, 0 failures, 0 errors
18:21:27evanok, testing a release build...
18:28:23Malediktusevan: I get a SIGBUS while executing mspec ci with this backtrace: http://bsdpaste.bsdgroup.de/14911
18:28:44Malediktusframe #8 and higher are not known
18:28:55Malediktuslike ?? ()
18:29:00evanumm.
18:29:06evando
18:29:08evanframe 4
18:29:14evanp call_frame->print_backtrace(state)
18:29:33MalediktusYou can't do that without a process to debug.
18:29:38MalediktusI only have the .core
18:29:53Malediktuscan I start mspec in gdb?
18:30:47evanbin/mspec ci --gdb
18:31:06Malediktusrunning
18:32:17MalediktusProgram received signal SIGEMT, Emulation trap.
18:32:22Malediktusok, never seen that before
18:32:47Malediktushttp://bsdpaste.bsdgroup.de/14912
18:32:53evanthats probably ok
18:32:59Malediktuscontinue?
18:33:00evanyeah
18:33:02evancontinue
18:34:05brianmarioanyone happen to see my question from last night about TRAP_BEG/TRAP_END in rbx?
18:34:16brianmarioor rubysig.h for that matter
18:34:21evanbrianmario: we don't support it.
18:34:24brianmarioah ok
18:34:27brianmarioanything similar?
18:34:30evanno.
18:34:32brianmariok
18:34:45evanwe can support something similar
18:35:02evanbut otherwise those could be noops pretty safely
18:35:10brianmariotrying to get mysql2 compatible with rbx
18:35:30brianmarioeric wong contributed some patches, one of which "emulates" rb_thread_blocking_region for 1.8
18:35:41brianmariousing those trap macros
18:36:15evanwhere are you putting that?
18:36:21evanaround blocking mysql calls?
18:36:26brianmarioyeah
18:37:02evanTRAP_BEG and TRAP_END aren't really the equiv
18:37:16evanand they're likely to screw up mysql
18:37:44evanbecause what those say is that it's the process should be sent a unix signal if it waits too long
18:37:54brianmariofrom his email: "Since 1.8 doesn't use native threads, the emulated 1.8 version just defers signal handling until TRAP_END. Having Ruby signal handlers fire while executing blocking C functions is dangerous, since they can clobber errno and the thread stack. If you look at the MRI 1.8 code, you can see it's used in every place where the interpreter makes an interruptible system call."
18:37:57evani doubt any mysql function wil handle them properly.
18:38:53brianmariohe was diving pretty deep into the mysql C api sources to see how things worked, and these patches were sortof the bi-product of his findings
18:39:29Malediktushttp://bsdpaste.bsdgroup.de/14913
18:39:49evanbrianmario: could I see the patch?
18:40:19brianmariosure sec
18:40:33evanMalediktus: hrm.
18:40:43evanMalediktus: well, it's really too late in the release cycle to fix these.
18:40:55evanwe're going to have to tear a bunch of stuff apart to figure out whats up
18:41:33Malediktusevan: ok, no problem
18:42:01brianmarioevan: http://github.com/brianmario/mysql2/commit/fa213c9892e7f11d0fdbc3e514f2bd3c3313b110
18:42:25brianmariothere's a few more, mostly wrapping the rest of the [potentially] blocking calls
18:42:49evani have a bad feeling about it
18:43:44evanwhat does mysql_query do when the process is sent SIGVTALRM?
18:44:35brianmarioto be honest, I know very little about his research into the C api or how things work for that matter
18:44:49brianmariobut I'll definitely ask him these questions
18:46:11evanalso, if mysql_query is going to return early
18:46:19evanthen you need to put code in place to have it retry
18:46:38evanatm, the code assumes that mysql_query actually ignores the signal and will alway return a result
18:46:58evanbut if TRAP_BEG actually causes mysql_query to return early, then the return value will be invalid
18:47:01evanand you'll need to retry
18:47:36evanso there is one of 2 bugs here
18:47:44brianmarioI'm not using mysql_query, using mysql_send_query, which always returns immediately (I'm pretty sure at least)
18:47:57brianmarioif that matters
18:48:05evanmysql_query ignores the signal or you don't redo a query
18:48:20evanwell, something in here must be blocking
18:48:24evanmysql_connect is at least
18:48:27brianmarioyeah
18:48:32brianmariothat one is
18:48:40evanso if mysql_connect honors the signal
18:48:44evanyou have a bug because you assume it worked
18:50:18boyscoutUpdate version number to rc5 - 214e23b - Evan Phoenix
18:52:10brianmarioevan: will definitely look into all this, maybe I should revert these patches and keep em in a branch for now
18:52:21evanwell, if you want
18:52:34evanremove the TRAP_BEG and TRAP_END and just put CHECK_INT after TRAP_END
18:52:36evaner.
18:52:41evanwhere TRAP_END is.
18:52:59brianmarioso only CHECK_INT after the blocking call?
18:53:06evaner, CHECK_INTS
18:53:09evanyeah
18:53:30brianmariosince I'm new to all this - what's the diff?
18:53:36evanthat will at least catch if the user hits ^C while mysql_connect is blocked
18:53:42brianmarioah
18:55:02brianmariomy goal ultimately is to be compatible with rbx, 1.9.x, 1.8.6+, and maybe macruby - but to also release the GVL where at all possible for blocking C calls
18:55:41brianmariorelease the GVL might not be the right terminology, but I think you get what I mean :P
18:55:55Defilerunleash the hounds
18:56:40evanbrianmario: we can certainly provide a rb_block_region call
18:56:45evanthats what you'd use in rbx
18:57:03brianmariothat exists today/
18:57:09brianmario?
18:57:10evannegative.
18:57:15brianmariok
18:57:17evanwe'd need to add it.
18:58:17boyscoutCI: rubinius: 214e23b successful: 3457 files, 13596 examples, 41216 expectations, 0 failures, 0 errors
19:16:21kronos_vanooh. I should fix bug with shifting bits for negative numbers before 1.0 is out
19:16:30evanum
19:16:31evanno.
19:16:34evanit's too late.
19:16:37evanyou've missed the window.
19:16:56kronos_vanoSo you will release with known bug?
19:16:59evanyep
19:17:14evanonly critical fixes for the rest of the week
19:18:42evanwe can't do everything before 1.0
19:18:47evani have to draw the line somewhere
19:19:20kronos_vanonp, I'll commit after 1.0 :)
19:54:09evanyep
19:54:22evani'm going to delay doing so unless we need to
19:54:48evanthere will be a 1.0.x branch though
19:57:26radarekI have some trouble with running rbx tests after building, it just hangs
19:57:34radarekhttp://pastie.org/private/c0val4spwt5rf3gnrdwnw
19:57:42radarekit hangs after last F
19:58:03evanradarek: you're going to have to debug it
19:58:07evanfind out what spec is hanging.
19:58:30radarekis there easy way to do it?
19:58:32brixenradarek: run bin/mspec ci -V -fs
19:58:38radarekok
20:02:16radarekok found
20:02:20radarekTCPSocket.new
20:02:20radarek- requires a hostname and a port as arguments
20:02:21radarek- refuses the connection when there is no server to connect to
20:02:21radarek- connects to a listening server
20:02:23radarekthe last one
20:04:16brixenradarek: when it is hung, do ps ux | grep rbx, then gdb -p <pid> for each rbx process
20:04:37brixenradarek: do info threads, the thr N and bt
20:04:46brixenwhen N is the thread number
20:04:50radarekk
20:06:21radarekhttp://pastie.org/private/j81rudarnwwrtyrnhfhdq
20:06:21gnufiedcongratulations guys, giving master a spin.
20:06:33radarekbrixen: is it ok?
20:07:25brixenradarek: was that the only rbx process?
20:07:41brixenI mean, that part is good, but is there another?
20:08:11radarekno there is only one rbx process
20:08:12brixenradarek: also, paste everything from the invocation of the command on
20:08:14brixenhmm
20:08:31radarek$ ps ax | grep rbx | grep -v grep
20:08:31radarek24327 s001 RN+ 1:17.47 bin/rbx -v /Users/radarek/opt/src/rubinius/mspec/bin/mspec-ci -V -fs
20:08:59brixeninteresting
20:09:01radarekbrixen: whic command? mspec or gdb?
20:09:06radarek*which
20:09:16brixengdb
20:09:23radarekok
20:09:28brixenradarek: does this happen every time?
20:09:35brixenie, is it easily repeatable?
20:10:14radarekbrixen: http://pastie.org/private/nrpml0yijdxjhnct41kmna
20:10:19brixenradarek: which spec file was this in?
20:10:29radarekbrixen: yes, it's repeatable
20:10:48brixenk
20:10:48evanoh, it might be a DNS timeout issue
20:10:50evanin the specs
20:10:55radarekbrixen: /Users/radarek/opt/src/rubinius/spec/ruby/library/socket/tcpsocket/new_spec.rb
20:10:58evangiven that it's waiting in connect.
20:13:09evanradarek: run just that one file
20:13:13evanand see if it hangs.
20:15:05radarekevan: yes, it does
20:15:12evanwhich spec
20:15:19evan-fs should show you which it line is hanging.
20:15:26radarekbin/mspec ci -V -fs spec/ruby/library/socket/tcpsocket/new_spec.rb
20:15:29evanno
20:15:31evanwhich line.
20:15:34radarek- connects to a listening server
20:15:38radarekthat spec
20:15:45radarekthere is no line
20:15:49radarekjust name of spec
20:15:51evanthats what i mean.
20:15:54radarekok
20:15:59brixenevan: it's in spec/ruby/library/socket/tcpsocket/shared/new.rb
20:16:02evanyep
20:16:03evani know.
20:16:21evani don't know why this would hang
20:16:27evanin connect no less
20:16:38evanother than your machine has some really strange hostname setup
20:17:09brixenthat's what I was wondering
20:17:28radarekit hangs on: conn = server.accept
20:17:40radarek(i did simple puts debugging)
20:18:00evanwell
20:18:00evanthats not a hang
20:18:04evanbecause it waiting for someone to connect
20:18:08evanwhat about the other thread
20:18:11evanthe main thread
20:18:13radarekah right
20:18:26evani'd imagine it gets to right before TCPSocket.send
20:18:28radarekso where is the other thread which trys to connect?:)
20:18:41evanprint out @hostname and SocketSpecs.port
20:18:46evanwhat are those values?
20:19:07radarek192.150.8.118
20:19:08radarek40001
20:19:31evanis that your ip address?
20:20:11radarekIP Information: 89.75.43.221, local is 10.0.0.100
20:20:12radarek:)
20:20:35evanwell what the hell.
20:20:44evanyou sure?
20:20:55evanthis is using Socket.getaddrinfo to figure out your address
20:21:04evanplease try that in MRI
20:21:05evanSocket.getaddrinfo("127.0.0.1", nil)[0][2]
20:21:12radarekexternal checked with http://whatismyipaddress.com/, local with ifconfig
20:21:36radarekwow
20:21:37radarek>> Socket.getaddrinfo("127.0.0.1", nil)[0][2]
20:21:37radarek=> "192.150.8.118"
20:21:42radarekruby 1.8.7
20:21:43evanthere ya go.
20:21:48radarekwtf?
20:21:49evanthat is your address.
20:22:14evani do see a potential issue in socket wrt. connect
20:22:20evanthat i'll investigate after lunch.
20:22:26Defilerifconfig -a |grep 192
20:22:31Defilergrep 192 /etc/hosts
20:22:32Defilerheh
20:22:50Defilerthe first entry in /etc/hosts for localhost will be the one picked up by getaddrinfo for 127, on most systems
20:22:53Defiler(including mac os)
20:23:04slavayo evan
20:23:14slavaI'm rewriting my FFI so that parameter boxing and unboxing is done inline rather than with subroutine calls
20:23:31radarekDefiler: ah, there it is, but first entry in my /etc/hosts point to 127.0.0.1
20:23:51Defileris it 'localhost 127.0.0.1'?
20:23:56Defileror is it a different name?
20:24:05radarekDefiler: but there are other ips which point to localhost and one of them is 192.150.8.118
20:24:25radarekDefiler: first uncommeted line is: 127.0.0.1 localhost
20:24:36Defilerhuh. what os is this?
20:24:43radarekmac os x
20:25:03Defilerinteresting; I've only observed it picking up the first one, but it wouldn't surprise me if that changed with every release
20:25:26Defilerat first I was thinking it was a byte order deal, so I converted 192.150.8.118 to binary and reversed it
20:25:32Defilerbut that is 154.210.212.187 heh
20:25:37radarekit doesn't make sense
20:26:00radarekwhy it picks random one?
20:26:00evanradarek: remove the "or !ready" in that spec and see if it fixes your issue
20:26:46evanbe back shortly.
20:27:38radarekevan: no, it doesn't, still hangs
20:28:46radarekevan: but when I delete all entries from /etc/hosts and leave only one with 127.0.0.1 localhost it works
20:30:48radarekok, all spec passes
20:30:54radareksorry for trouble
20:34:38brixenradarek: good news
21:01:06gnufieddid anyone got rcov working on rubinius ?
21:01:24Defilergnufied: not supported
21:01:42DefilerIt uses tracing features of the MRI C API that rubinius does not have
21:03:11gnufiedDefiler: what rubinius provide as an alternative? (not rcov alternative, but tracing features)
21:03:39Defilerrubinius has a full-speed debugger and a full-speed sampling profiler
21:03:57Defilersomeone just needs to use those parts to implement an rcov-compatible lib that does the same stuff
21:04:22gnufiedokay point taken.
21:04:41gnufiedone more thing, is there any alternative of "re.h" ?
21:04:53gnufiedI can't build some extensions because of that.
21:05:12DefilerThat, I don't know; brixen may know though
21:05:23gnufiedfail enough.
21:06:18gnufieds/fail/fair
21:16:26evanDefiler: we'll likely never support re.h
21:16:42evani guess we could bundle 1.8's regex library and let people use it.
21:16:59evanbut if they want to do re_search(RREGEXP(thing)->blah, ...)
21:17:01evanthat won't work.
21:17:27Defileryeah
21:24:56radarekcucumber depends on gherkin gem which use C ext which use re.h :(
21:26:30Defilerdoes polyglot even run on rbx?
21:29:48evanwell that was a bad move on gherkin's part.
21:30:02evanDefiler: it should.
21:30:55Defilerhttp://github.com/cjheath/polyglot/blob/master/lib/polyglot.rb
21:30:58Defileryeah, looks fine I guess
21:31:31DefilerThat NestedLoadError#reraise will be interesting
21:31:40Defilerbut should be fine
21:32:36evanradarek: is there no pure ruby version of gherkin?
21:32:41evanit appears to be a ragel parser
21:32:51evanand I see something about ruby output
21:33:14evanand it appears to only support 1.9
21:33:18evanoh aslak...
21:33:40DefilerI sat next to him at my very first rubyconf
21:33:53Defilerand I see he is still aslak'in it up :)
21:34:43radarekDefiler: examples from homepage http://polyglot.rubyforge.org/ works fine on rbx (there is one error there, it should be passed TOPLEVEL_BINGING to Kernel.eval method)
21:34:56radarekevan: dunno
21:35:33evanradarek: i haven't had anyone ask about it up to now
21:35:38evanso we didn't spend any time on it
21:35:44evanwe'll check it out post 1.0
21:35:53radarekok, np
21:36:35radarekI try to run my rails app with rbx and the first step is install bundler and try to install rbx -S bundle install
21:36:43radareknow I have problem with libxml-ruby
21:36:44radarekruby_xml_xpath_context.c: In function ‘rxml_xpath_context_register_namespaces’:
21:36:44radarekruby_xml_xpath_context.c:223: error: called object ‘1’ is not a function
21:36:58radarekand that line is: st_foreach(RHASH_TBL(nslist), iterate_ns_hash, self);
21:37:01radarekweird
21:37:48brixenugh
21:38:00radarekI see...
21:38:04radarek./vm/capi/mri/compat.h: * Never use RHASH(obj)->tbl or RHASH_TBL().
21:38:05radarek:)
21:38:10brixenexactly
21:38:12radareklibxml-ruby use it
21:38:29radarekit's nightmare
21:38:59brixenwhy does libxml-ruby exist?
21:39:52brixenthat's a rhetorical question
21:40:18radarekfrom description: "The Libxml-Ruby project provides Ruby language bindings for the GNOME Libxml2 XML toolkit. It is free software, released under the MIT License. Libxml-ruby's primary advantage over REXML is performance - if speed is your need, these are good libraries to consider, as demonstrated by the informal benchmark below. "
21:40:36brixenblah blah blah :)
21:40:39radarek:
21:40:40radarek:)
21:41:05brixenanyway, real issue is that most people wrote their C extensions without the slightest regard for portability
21:41:12slavahi brixen
21:41:17brixenreaching into the object layout on MRI is insane
21:41:21brixeneven if MRI allows it
21:41:24brixenhi slava
21:41:41brixenslava: your Smalltalk impl in Factor came up on the FoNC list this weekend
21:41:50brixenslava: I had forgotten about it :)
21:41:59radarekbrixen: yep, it's true
21:42:06slavabrixen: its a pretty useless impl
21:42:13slavaI postponed work on it until our VM can do fast non-local returns
21:42:21brixenslava: heh, well it's a nice PoC
21:42:35evanthere was talk by Alan Kay about a OMeta lib for Factor even
21:42:41brixenyeah
21:42:44slavathe vpri guys are pretty opaque
21:42:48slavanobody really knows that they're working on
21:42:54brixennot exactly
21:43:10brixenlots of newer stuff here http://www.vpri.org/html/writings.php
21:43:23brixenand Alan has been writing volumes on the ML this weekend
21:43:35slavathe Nile DSL for graphics code mentioned in their 2009 report looks neat
21:43:41brixenyeah
21:43:48evanyeah, Dan, who wrote it, is/was a ruby programmer
21:43:55evanI went and had lunch with those guys a couple years ago
21:44:08evanDan said we had met at a RubyConf
21:51:23radarekok I had to commet out almost all gems from Gemfile which use native c ext because they didn't compile
21:51:44radarekmysql, nokogiri, hpricot, happymapper (use libxml-ruby)
21:51:49radarekand cucumber
21:52:46Defilermysql and nokogiri should work fine
21:53:21evanyes, mysql and nokogiri are tested
21:53:41radarekok I'll try install it separately without bundler
21:55:16radarekwhere gems are installed? (without sudo) I cannot find it in ~/.gem/rbx/**/
21:55:49evanwhy would they be in .gem?
21:55:53evanbundler puts them there i think
21:55:57evanbut thats not where they go normally
21:56:11evanif you installed rubinius, it's under the install dir
21:57:27radarekevan: I mean when I install it by: rbx -S gem install (without sudo and bundler's help), I though that they should go to ~/.gem/rbx/
21:57:35Defilerradarek: bundle exec gem env
21:57:38Defilerrbx -S gem env
21:57:44evanradarek: no
21:57:44Defiler..and compare
21:57:52evanbundler puts stuff in ~/.gem/rbx only
21:57:59evanthats never where stuff goes normally.
21:58:03Defilerdepends, actually
21:58:17Defilerrvm, for example, has a special install path for bundler-installed gems
21:58:22evanoh oh
21:58:25evani'm sorry.
21:58:27evani'm confused.
21:58:43Defilere.g. /Users/wilson/.rvm/gems/ruby-1.8.7-p249/bundler/gems vs. /Users/wilson/.rvm/gems/ruby-1.8.7-p249
21:58:45evanrubygems has the user install stuff that will use ~/.gem I believe.
21:58:47Defiler(in my case)
21:58:56evanwhich I believe rbx will use.
21:59:06DefilerIt does for me, yeah
21:59:17Defilerthough these days I'm using rbx via rvm generally
22:00:43radarekit install gems to /Users/radarek/opt/src/rubinius/gems/ directory, strange :)
22:01:45radarekok mysql installed without errors (I had to put --with-mysql-dir with custom path)
22:03:59radarekok, nokogiri also works fine, it was false alarm for mysql and nokogiri not working on rbx :)
22:04:21evan:)
22:04:34evanwe had to release 1.0 before we dealt with all extensions
22:04:42evanthe list is just too long for us to deal with 100% of them
22:04:45evanwe'll get better over time.
22:05:32radarekyes, you are right, it will be never ending story with fixing those c ext
22:06:05slavawhen is 1.0 due?
22:06:29radarekI think that when peaple will start using rbx they also will be fixing those c ext
22:06:31slavaman, I need some architecture block diagrams for the factor home page
22:06:34evanslava: probably friday.
22:06:43slavain fact, the exact same ones from rubini.us apply 100%
22:06:44evanradarek: i hope so.
22:06:59evanslava: :D
22:07:17evanjust put a "see http://rubini.us block diagram" note on your webpage
22:07:18evan:)
22:07:26slavahaha
22:08:46radarekwow, rbx handle my not so small rails app and it can display login page without error :) (there are used many gems and rails plugins)
22:09:59evanwoo!
22:10:59radarekevan: rbx says for one model file that there is syntax error but with MRI it's ok
22:11:09evanhm, interesting...
22:11:23evancould you paste the file and/or the syntax error?
22:11:51radarekbut I have to cut it to smallest case becasue I cannot paste whole file (it's my company app)
22:12:21evanok
22:12:22evansure
22:12:24radarekevan: error is
22:12:26radarekA syntax error has occured:
22:12:26radarek app/models/website.rb:703: expecting $end
22:12:26evanif you could isolate the error
22:12:26radarek near line app/models/website.rb:703, column 31
22:12:26radarekCode:
22:12:27radarek negative_dimensions.each do |dimension|
22:12:27radarek ^
22:12:37evan:/
22:12:43radarekbut I guess it doesn't make sense to you :)
22:12:45evanno
22:12:48evanit doesn't
22:12:55radarekok try to cut it
22:12:58evank
22:23:13radarekevan: the problem is that when I try cut it there show different syntax error
22:23:22radarekso I have that one (different than before I show)
22:23:23radarekhttp://pastie.org/private/egotsxhdynm9mwjyy3tna
22:23:58radarekwhen you fix that one I will try one more time to check whole file
22:25:37evanha
22:25:41evanwell, lets...
22:26:43evanug.
22:26:49evanthe :do confused things
22:26:51evanthats... weird.
22:28:44evanok
22:28:45evanafter_transition :do => :update_chcecked_at
22:28:50evanis a minimum repro
22:29:59Defilerdoes rbx still support the colon-delimited where clauses and stuff?
22:30:05Defilercould be an issue related to that grammar
22:30:10evani believe so.
22:53:01radarekevan: is it hard to fix?
22:53:08evanit's not simple.
22:53:10evani'm working on it now.
22:53:18evani have to track it through the parser.
22:53:18radarekok
22:53:54radarekparsers are for me black magic :)
22:58:15radarekok, I have to go sleep (GMT +2h), bye
22:58:19evannite
23:06:11brixenzoinks http://gist.github.com/396662
23:07:29evan*facepalm*
23:07:45brixenhaha
23:17:19kronos_vano:D
23:20:04evanok, this syntax error is critical enough to fix
23:20:07evanand I believe I have a fix
23:20:23evanadditionally, i'm going to slip a trivial fix for -c in
23:20:30evanit's off by one because 0 was passed in as the start line
23:20:40brixenahh
23:20:49evanseem ok?
23:21:39brixenyeah
23:36:53boyscoutHandle :do in a method call properly - 5b99467 - Evan Phoenix
23:47:06boyscoutCI: rubinius: 5b99467 successful: 3457 files, 13596 examples, 41216 expectations, 0 failures, 0 errors