Index

Show enters and exits. Hide enters and exits.

02:06:56ajsiehi
02:07:08ajsieare there any reasons i should use rubinius instead of mri?
02:07:29ajsiewhich one would i get if i just type rvm install ruby-1.9.2?
02:34:02andrewvcHi all, I'm trying to get the ffi-rzmq gem running on rubinius, and I was wondering if anyone had any idea about an error I'm getting
02:35:42andrewvchttp://github.com/chuckremes/ffi-rzmq/blob/master/lib/ffi-rzmq/wrapper.rb#L57 I get an error, no method '+' on flags:Symbol.
02:44:02Defilerffi gem changed the api without contributing back :(
02:44:16Defilerso there are things that depend on ffi now that don't work suddenly on rbx
02:44:21Defilerneeds to be reconciled
02:51:43andrewvcah
02:52:00andrewvcso, is this something I should wait for RBX to fix then?
03:06:08cremesandrewvc: if you really need it i suggest working on a patch for rbx yourself
03:06:14cremesi would certainly appreciate it!
03:06:26andrewvchi Chuck, fancy seeing you here :)
03:06:37cremesi'm everywhere... ;)
03:06:55andrewvcapparently, hehe
03:07:25cremesthe problem is that the ffi gem changed its api about 9 months ago; rbx has its own implementation and the api hasn't been updated to match yet
03:07:41cremesevan already added callbacks which is the really hard one
03:07:57cremesthe remaining issues are related to parsing FFI::Struct layouts (i think)
03:08:19andrewvcgotcha, unfortunately, seeing as how I don't know C, and have no FFI experience, this might be out of my reach.
03:08:45andrewvcbut it does seem like a challenge for a later day :)
03:08:58cremesluckily the code in question is all in ruby
03:09:11andrewvcreally, hmmm, when I have some time I'd like to dive in then
03:09:11cremesno C required
03:09:35cremescool; if you write the patch, you'll get a commit bit to rubinius which is nice
03:09:46andrewvcnice
03:09:48cremesoh, and don't forget the specs (the hard part)
03:09:51andrewvclol
03:09:54andrewvcyes
03:09:57andrewvcbtw, how's xreq/xrep support in ffi-rzmq? I've been meaning to take a look at that
03:10:17cremesit's in there now in master
03:10:30cremesi need to cut a new release but i wanted to add some specs first
03:10:49cremesclone master and build a gem from there; it should work fine
03:10:53cremesi use xreq/xrep daily now
03:10:57andrewvcdid that this afternoon
03:11:05cremesok
03:11:09andrewvchad a question about it though
03:11:17cremesit is?
03:11:43andrewvcI mean, there are no official docs about using it yet, correct?
03:11:50andrewvcor is my google-fu failing me
03:12:17cremesusing which?
03:12:25cremesthe ffi-rzmq gem or 0mq in general?
03:12:31andrewvcoh, no, xreq/xrep
03:12:44cremesyou are in luck; they just committed some docs this morning
03:13:00cremesthey are a bit sparse but better than nothing
03:13:19cremestake a look at the 2.0.8 release; it has the improved docs
03:13:33andrewvccool, downloading now
03:13:52cremesalso, pieter has been working on a 0mq guide (examples in C)
03:14:09cremesit's really quite good and it's applicable to any language bindings
03:14:35andrewvcsweet, I need to take a look at that
03:14:59andrewvcmaybe translate that into ffi-rzmq for others
03:15:06andrewvcI've just been using your stuff from example/
03:15:37cremesyeah, sorry those examples kind of suck...
03:15:51andrewvchehe, well, thanks for writing the gem, it's pretty awesome
03:15:54cremesi wrote them in about 10 minutes
03:16:09cremesyou are welcome; keep building cool stuff with it and that's thanks enough
03:16:23cremesbtw, i just committed the first attempt at some 0mq devices to zmqmachine
03:16:29andrewvcsweet
03:16:31cremesspecifically the queue and forwarder devices
03:16:33cremes*very* useful
03:16:41cremesplus i fixed a nasty bug in the timers
03:16:48andrewvcI've been meaning to let you know, I found a bug in zmqmachine
03:16:59cremesi'd be surprised if you hadn't!
03:17:08andrewvcI wasn't able to instantiate two sub sockets in one process both subscribing to a single publisher
03:17:22andrewvcNot sure if that was intentional
03:17:42cremeswas the publisher binding to a socket and the sub sockets were connecting? that should work.
03:17:54cremesbut flip it around and that won't work regardless of langugage binding
03:18:06andrewvcno, the publisher was bound
03:18:20cremesif you have a small example, open an issue on it and i'll get it fixed
03:18:26andrewvcsure thing
03:18:26cremesthat should definitely work
03:18:46andrewvcso, question, why ZMQ::Machine from scratch instead of EventMachine ?
03:19:15cremesbecause hacking on EM requires more c++ skill than i currently posess
03:19:34cremesand 0mq sockets don't play well with the select/epoll/kqueue event handling in EM
03:19:48andrewvcinteresting
03:20:03cremesthe upcoming 0mq 2.1 should resolve some of that problem in which case i'll add support for regular sockets to zmqmachine
03:20:05andrewvcI've been mixing EM and ffi-rzmq
03:20:17cremesshould work
03:20:18andrewvcbut just running the zmq stuff in a separate thread, nothing fancy
03:20:56cremesyep
03:21:14cremesi think we've hijacked this channel long enough... see you in the 0mq channel
03:21:22andrewvcsure
06:05:13boyscoutSpecs for String#unpack DdEeFfGg. - ffd51b7 - Brian Ford
06:05:13boyscoutFixed Config deprecation warning for 1.9.3. - 49d57e2 - Brian Ford
06:05:13boyscoutAdded pack DdEeFfGg. - 0467a74 - Brian Ford
06:05:37boyscoutCI: Commit 0467a74 failed. http://github.com/evanphx/rubinius/commit/0467a74e6986e67b72058ca968fe73b87bc6827b
06:06:00brixenum...
06:11:02brixengcc is such a pile
06:18:37postmodernbrixen, good job, down to 5 failin specs with Process.kill
06:18:48postmodernbrixen, almost all of my code passes their specs on rubinius
06:19:26brixenpostmodern: sweet
06:19:32brixenyou mean, you app code?
06:19:41brixener your app code
06:19:51brixenalso, what are the failures on Process.kill?
06:20:39boyscoutRemoved function confusing GCC. - b3033b4 - Brian Ford
06:20:52postmodernrubinius specs have those 5 issues with Process.kill
06:21:03postmodernexpected nil, got 55
06:21:06postmoderner 99
06:21:13postmoderner expected nil to equal 99
06:22:21brixenon what platform?
06:23:10brixenerg, this is the selinux thing, right?
06:26:52postmodernbrixen, correct, selinux amd64
06:27:00brixenk
06:27:03brixenwhat distro?
06:27:04postmodernbrixen, still the Process.wait specs now pass
06:27:13postmodernbrixen, fedora 13
06:27:24brixenhmm, I think I have that...
06:27:29brixenfires up vbox
06:28:17postmodernbrixen, make sure to update to the latest changes, new kernel just got released
06:39:53boyscoutCI: rubinius: b3033b4 successful: 3520 files, 15244 examples, 43093 expectations, 0 failures, 0 errors
06:55:32dbussinkpostmodern: that selinux issue is likely a bug in libffi though
06:55:52dbussinkpostmodern: evan had to fix things there for the non selinux case
06:57:59postmodernmakes sense
06:58:19dbussinkso i don't know how much we can do to fix it
06:58:34dbussinkapart from not using ffi :P
07:00:49postmodernwell Process.wait specs used to fail, now they do not
07:00:58postmodernim guessing those are related to the Process.kill specs
07:01:01postmodernand somehow fixable
07:04:20brixenpostmodern: we'll fix them
07:05:24brixenpostmodern: I ran software update, but don't see anything about a new kernel
07:05:55postmodernbrixen, it should probably update yum first
07:06:08postmodernbrixen, then it should reload the update program, and you'll see ~70 packages
07:06:18brixenok
07:06:34brixenbingo
07:06:39brixen391 updates
07:06:43postmodernhaha
07:06:44brixenyowza
07:06:55postmodernhope that's running on an SSD :)
07:07:02brixen:(
07:07:50brixenI'll just let it run overnight
08:01:48dbussinkbrixen: still there?
16:38:21brixendbussink: I am now :)
16:38:41brixensilly fedora, I let you run all night and you're still not done? :(
16:41:40dbussinkbrixen: i went through rbx a bit and also changed Config to RbConfig where needed, ok if i commit that?
16:41:42dbussinkbrixen: it's still working? that's nasty :)
16:41:59brixenyeah, I just rebooted it
16:42:07brixenyeah, that's fine to change
16:42:15brixen1.9.3 deprecates Config
16:42:39brixenRbConfig has been available for years
16:42:54brixenas long as we still provide Config, it's fine to use RbConfig
16:43:25dbussinkbrixen: yeah, i just switch the alias
16:43:34dbussinkbrixen: Config = RbConfig and use RbConfig everywhere
16:43:46brixenok
16:55:05boyscoutUse RbConfig instead of Config - bd6aef7 - Dirkjan Bussink
16:55:14dbussinkevan: ping?
16:55:22evanhey
16:58:22dbussinkevan: i made this change in hydra, but this is also an issue in master
16:58:33evanwhat change?
16:58:40dbussinkargh
16:58:43dbussinkhttp://github.com/evanphx/rubinius/commit/ff3dedc1865feac144eacc8849c5aaf24d63b31e
16:58:44dbussinkthat one
16:58:57dbussinkdoes this make sense as the master version of that fix? https://gist.github.com/ce0c459a342c8bb95897
16:59:00evanah right
16:59:16evanyeah
16:59:18evanthat looks fine.
16:59:20dbussinkis passes the torture test with that change
16:59:22dbussink:)
17:00:12dbussinkevan: so what's to do for a 1.1 release?
17:00:31evanwell
17:00:39evani'm working on fixing the GIL problem
17:00:46boyscoutFix fallback to ObjectMemory allocation if no new slab can be allocated - 52e591c - Dirkjan Bussink
17:00:48evanwe need to get the FFI::Struct API issue sorted
17:01:19evanand we need to go through the docs and just fix/delete outdated ones
17:02:41dbussinkman, crazy weather here today
17:02:44dbussinkstreets are flooded
17:02:56dbussinkas much rain in a day as usually in a month
17:03:58brixendbussink: hopefully they make wooden boots, those shoes would get pretty wet :)
17:04:16dbussinkbrixen: i'm wearing mine as we speak of course :P
17:04:20brixenheh
17:05:52dbussinkon http://github.com/evanphx/rubinius/issues#issue/437, would we want to define RUBY_VM ?
17:06:03dbussinkor should we tell oci8 people to do a proper HAVE_ test?
17:07:03boyscoutCI: rubinius: bd6aef7 successful: 3520 files, 15244 examples, 43093 expectations, 0 failures, 0 errors
17:10:43brixendbussink: that needs proper HAVE_ defines, tests
17:11:14dbussinkbrixen: well, it borks because they do weird checks whether rb_blocking_function_t is available or not
17:11:49brixenyes, they need to fix that
17:12:01brixenand we need to ensure we have the proper HAVE_ defines for it
17:12:38dbussinkthere's already a HAVE_RB_THREAD_BLOCKING_REGION defined
17:12:43dbussinkso that should be ok
17:14:38brixenk
17:22:30dbussinkbrixen: also mailed a guy who might know some of the oci8 people
17:22:51brixencool
18:33:54wyhainesevan: Making any progress on the GIL bug?
18:34:46evanwyhaines: getting ther..
18:34:49evanthere
18:35:43evanI was reading http://bugs.python.org/issue7946
18:36:03evanit discusses how the new python GIL effects IO bound threads
18:37:17wyhainesCool. I am taking a look.
18:37:39evanbasically, the old behavior might have better IO performance
18:37:59evanbecause a thread could unlock the GIL, do some IO that doesn't block, then lock the GIL
18:38:05evanwithout giving another thread a chance to run
18:39:24evanwhere as making sure there are equatible distributions mean that unlocking the GIL forces another thread to run
18:42:16evani think there is a way to allow for that behavior still though
18:43:34evanthis is all making it crystal clear how important hydra is now too.
18:49:14evanwyhaines: poke
18:49:17evanwyhaines: could you apply http://gist.github.com/551957
18:49:24evanand see what the results are like on that ubuntu machine
18:51:13wyhainesevan. Sure
20:33:53evanwyhaines: any results?
21:28:07pyonpyonhehe got it working on the iphone (both emulator and device), seems very slow to boot though
21:29:15pyonpyoni just love the iphone platform, it runs everything i throw at it, porting is virtually effortless
21:32:04BrianRice-workrubinius/rbx on iOS?
21:32:20BrianRice-workis that in jailbreak or using the SDK?
21:32:37pyonpyonyeah, no jailbreak needed
21:33:23BrianRice-worknice
21:35:06evanpyonpyon: awesome!
21:35:21pyonpyonhehe not really it was quite straightforward
21:37:04pyonpyonbesides it's not using llvm jit, which i kind of doubt could be used, given the mprotect issue. i'll see how it compares to yarv
21:38:11pyonpyonand kudos to you guys for writing portable code :3
21:42:42brixengcc keeps getting more stupid with every release
21:43:23brixenevan: to build your gil patch on 4.4.4 (fedora 13), global_lock.hpp needs to include stdint.h
21:43:54rues/stupid/strict/
21:43:56brixenif you try to include cstdint, gcc fails with a warning about having to explicitly turn on -std=gnu++0x
21:44:36brixenrue: stupid
21:45:03evanbrixen: k
21:46:42brixenevan: I'll give you a diff once I get it to build
21:46:48evank
21:46:51evanthere is still some bugs
21:46:53evani'm sorting out
21:46:55brixenok
21:46:56devinusthe gil is being removed!?
21:46:57evanso it's not a final thing
21:47:03rueI prefer not being able to do willy-nilly stuff but whatever
21:47:04evandevinus: yep!
21:47:08devinusoh joy!!!
21:47:13evandevinus: not for 1.1
21:47:18evanbut it's in the hydra branch
21:47:21evanif you wanna check it out.
21:47:54evanrue: eh?
21:48:06brixenrue: there's no willy-nilly about it, cstdint has been around for a long time, if 4.4.whatever wants to put c++0x shit in it, it should conditionalize it
21:48:09brixennot just fail
21:48:10evanrue: oh, gcc
21:48:12evangotcha
21:48:44devinusit's going to be hard to ignore rubinius as a real contender now
21:48:53evandevinus: we hope so!
21:49:54devinusevan: weren't you also working on upgrading to latest llvm as well?
21:50:03evanyep
21:50:13evanit fell by the wayside slightly
21:50:15devinusnice
21:50:17evanprobably won't be in 1.1 now
21:50:22evanbut i might get it in
21:50:29evanit was an easy upgrade to 2.7 actually
21:50:46devinusmeh, as both are in 1.2 or 1.5 or whatever the next version after 1.0 then that's great
21:50:56devinusafter 1.1 i mean
21:51:25evanyeah, the LLVM upgrade will be quite soon after 1.1 i'm guessing if i don't get it in before.
21:54:16brixenevan: ok, looks like just stdint.h and sys/time.h needed in vm/global_lock.hpp
21:54:21evank
21:54:30wyhainesevan: Yeah. I didn't have a copy of the repo, and I appear to be bandwidth-poor today. Taking forever to get it cloned. I'll let you know for sure as soon as possible.
21:54:43evanwyhaines: ok, no prob.
21:54:59evanwyhaines: i've got to sit on it until you can give me the thumbs up
22:00:16evaninterestingly
22:00:21brixenevan: looks like I have a hang
22:00:29evanthe new GIL handshake protocol makes some specs run slower
22:00:34brixenhmm
22:00:36evanbut thats because the spec is silly.
22:00:37evanyeah
22:00:43evanlet me get you a new patch
22:00:45evanit fixes that hang.
22:00:45brixenok
22:02:45evanpreviously, Thread.pass was, well, it was a misnomer.
22:03:03evanwe'd unlock and then relock the GIL so quickly
22:03:08evanit would rarely actually pass control
22:03:22evanthe handshake means that Thread.pass actually passes everytime.
22:03:57brixensounds better
22:04:01evanbrixen: try http://gist.github.com/552349
22:04:05brixenk
22:04:09evanI added those includes
22:04:14brixencool
22:04:20evanthere is still some debugging output
22:04:21evanbtw.
22:06:12brixenk
22:19:37evanok, i have to pick up abby's car
22:19:39evanbbiab.
22:19:44brixenk
22:20:56evanbrixen: let me know how that patch works out.
22:21:06brixenrunning specs now
22:21:51brixenI see mostly timeout requesting drop, with a few waiting on handshake
22:22:04brixenmost of the really slow specs have no gil related debug output
22:22:59brixenI need to find out what these really slow specs are
22:23:31brixenok, even with the debug output, this ran in 353s vs ~370s before the patch
22:23:34brixenI'll rerun both
22:43:14brixenevan: 343s with gil patch, 368s without on 2nd runs