Index

Show enters and exits. Hide enters and exits.

00:04:10haruki_zaemonGrr. I hate it when MRI does things that aren't in a spec :(
00:06:26brixenharuki_zaemon: you mean some behavior there is no rubyspec for?
00:07:26haruki_zaemonbrixen: MRI understands #to_ary on any object, rubinius doesn't. Last time I checked, there was no spec for it. Need to have a look now and see.
00:07:51brixenharuki_zaemon: do you have some code?
00:08:42haruki_zaemonyeah some failing specs
00:16:39jvoorhiswhat do you mean by 'understands #to_ary on any object'?
00:17:30jvoorhisit's not defined for every object
00:20:06haruki_zaemonjvoorhis: if an object responds to #to_ary, MRI will call it to expand arguments to a block or method call
00:21:47evanharuki_zaemon: we should be calling to_ary in those context
00:21:51evando you have an example where we don't?
00:22:51haruki_zaemonevan: Yeah, just finding the example... it works _sometimes_
00:23:11evanuntil i see otherwise, it works perfectly!
00:23:15haruki_zaemonHahaha
00:23:17haruki_zaemonAgreed
00:23:18haruki_zaemon :D
00:25:17brixenin the absence of evidence to the contrary, there is no evidence to the contrary :)
00:28:50haruki_zaemonevan: OK, I have an example, albeit obscure: http://gist.github.com/400667
00:29:18evanthats not very obscure
00:29:27evanwe're clearly not calling #to_ary there.
00:29:31evanwe'll have to fix that.
00:29:50brixenharuki_zaemon: is there a spec for that?
00:30:10haruki_zaemonbrixen: As I said, I couldn't find one last time I looked :)
00:30:15brixenok
00:30:23haruki_zaemonhence the "I hate it when MRI does stuff that doesn't have a spec" hehee
00:30:39brixenharuki_zaemon: but this is a perfect opportunity to write one!
00:30:55brixenit's like MRI delivered you a little gift in a bento box :)
00:31:00haruki_zaemonHahaha
00:42:17wayneeseguinbrixen: Issue with rvm?
00:42:35wayneeseguinI haven't had any issues reported yet
00:45:25haruki_zaemonbrixen: What project should I commit the spec to?
00:45:41brixenwayneeseguin: I don't know of any definitively, just trying to remove moving parts
00:45:51brixenharuki_zaemon: do you have commit rights to rbx?
00:46:10haruki_zaemonno, but happy to fork and submit a patch
00:46:27evanif it's just a spec, a rubyspec patch would be better I think.
00:46:41brixenyeah, rubyspec patch is fine
00:47:54haruki_zaemonok
00:48:05haruki_zaemonsomething else to learn :D
00:48:39haruki_zaemonI'll submit a rubyspec ticket
00:49:14evanhrm, ok, nokogiri seems to install fine
00:49:17evannot sure what was up.
00:54:07haruki_zaemonbrixen: Where should I add the spec (I've cloned rubyspec)
00:54:26haruki_zaemonbrixen: Or should I just submit a ticket with the sample?
00:55:00brixenharuki_zaemon: have a look at the language/yield specs
00:55:20brixenharuki_zaemon: alternatively, you could just file a ticket with the example
00:55:33brixenbbiab... caffeine required
00:56:13haruki_zaemonbrixen: Whatever is easiest :)
00:57:28haruki_zaemonok ticket submitted
00:57:35haruki_zaemonson is awake
01:11:15wayneeseguinbrixen: OK, if you identify anything please let me know and I will address it for you.
01:12:03evanwayneeseguin: ok.
01:18:43brixenwayneeseguin: of course :)
01:46:47stanevan: if you're around.. this is what I got yesterday that froze my mac (unicorn/sinatra pbm from before) http://gist.github.com/400709
01:47:27stanevan: can't reproduce anymore though (plus I dont really look forward to it)
01:48:28stanevan: now when I 'rvm rbx' I get this new problem (works fine with 1.8.7 and 1.9.1) on pid file http://gist.github.com/400694
01:49:19stanevan: finally, if I remove the need for pid, I get this other error.. http://gist.github.com/400712
01:49:54evanstan_: ok, you're further along
01:50:01evani fixed that last error your seeing on master
01:50:09evanif you update, it should work fine.
01:50:15stanevan: all of the above when I run 'unicorn -c unicorn.conf.rb'
01:50:20evansure
01:53:52stanfor the initial issue http://gist.github.com/400021 I'll see with the rvm guys when I have some time, seems more rvm related
02:08:43evanstan_: ok, be sure to bring it up with wayneeseguin
02:28:50boyscoutMoved laces tests to spec dir. - 7e9a6e9 - Brian Ford
02:28:51boyscoutRemoved test dir, use MRI or rubygems tests from the respective repos. - a6ee22c - Brian Ford
02:28:51boyscoutUpdates for most files under doc directory. - 63553ff - Brian Ford
02:28:59brixenman, we had so much cruft
02:29:16brixenI hope there is nothing terribly misleading under doc now
02:29:25brixenexcept I did not edit anything in doc/vm yet
02:29:46brixengotta run...
02:36:50boyscoutCI: rubinius: 63553ff successful: 3457 files, 13596 examples, 41216 expectations, 0 failures, 0 errors
03:08:17kesis rubinius support llvm 2.7?
03:32:17cremeskes: no, not until after rubinius 1.0 is released
06:20:26brixencremes: did you try to build the 0mq C ext with rbx?
06:20:42brixencremes: also, jruby rsize is 110mb vs 8mb for mri?
06:20:49brixenzoinks
06:42:48brixencremes: what the eff @ ruby C ext for 2mq?
06:43:03brixenit uses ZMQ_PAIR which is not in 2.0.6 beta
06:59:29brixencremes: I have the C ext running in rbx
06:59:38brixencremes: at least until I get to #bind
06:59:56brixenit'd be great to have an actual example of how to use this
07:00:04brixenthe wiki is no help :/
07:21:01dbussinkevan: i have a really nice issue for you...
07:21:23dbussinkbrixen: or you for that matter :)
13:30:16cremesbrixen: the jruby rsize is so huge because of its default settings; charlie said i could probably reduce that as low as 20MB and have it work
13:30:20cremesi'll try that this weekend
13:31:04cremesalso, i haven't tried building the existing C ext under rbx; i'll give that a go this weekend too
13:31:35cremesand lastly, the docs explaining zmq usage are far from complete or helpful; as usual, code is the best documentation
13:51:32lukemelianew to rubinius. thought I would try out our app. Installed rubinius 1.0.0-rc5 with rvm. But I'm stalled trying to install nokogiri. When I do it, memory consumption shoots to aout 5.5 GB and stays there and the operation doesn't seem to complete. This is on OS X Snow Leopard. Ideas?
14:00:50brynarylukemelia: not a solution, but just a bit of info in case it helps: Nokogiri install worked without issue on my laptop yesterday
14:01:25lukemeliaabout how long did it take?
14:03:07brynarylukemelia: not long enough for me to notice it during a `bundle install`
14:03:15brynaryI'll run it again
14:04:27brynarylukemelia: http://gist.github.com/401179
14:04:38brynarythat's with rbx-head
14:04:41cremeslukemelia: did you use rvm to install rbx or rbx-head?
14:04:42brynaryas of yesterday afternoon
14:05:05brynaryat this point, rbx-head is only rbx RC + bug fixes right?
14:06:08cremesbrynary: as far as i know, that is correct
14:16:58lukemeliacremes: i did rvm install rbx
14:17:10lukemeliaand it installed rubinius 1.0.0-rc5
14:17:39cremeslukemelia: do "rvm install rbx-head" and try to install nokogiri again; head has more fixes than rc5 which is about a week old
14:17:51lukemeliacremes: will do
15:01:47lukemeliacremes: brynary: nokogiri installed fine with rbx-head. thanks
15:05:01cremesyou're welcome
15:22:43lukemeliaI got a lot farther in setting up our dependencies this time. failures installing the following gems: hpricot, system_timer, curb and raspell. and when I try to load our app, I get a crash from the memcached gem http://gist.github.com/401284
15:25:01kronos_vanolukemelia, You don't need in system_timer. It is only for Ruby 1.8
15:25:30lukemeliakronos_vano: cool. scratching that one off the list
15:28:41kronos_vanoit is very easy to add rb_big2ull
15:28:51kronos_vanowriting the patch
16:03:51brixencremes: I have the C ext built with rbx and running
16:04:17brixencremes: I had to change rb_define_alloc_func proto in ruby.h
16:04:45brixencremes: what I really need is a complete example to test with, could you show me your complete steps you used to run the ffi comparisons?
16:09:05evanmorning gents.
16:09:33kronos_vanohi
16:09:35Defileryarr
16:11:37evanug. we have a bug in our Numeric tower.
16:11:41evanwe define a Numeric#==
16:11:43evanbut 1.8 doesn't.
16:11:52evanthats going to have to be fixed post 1.0
16:12:16brixen:/
16:12:26brixenwe have plenty to fix post 1.0 :)
16:16:08cremesbrixen: does your C ext have a perf subdirectory?
16:17:00cremesif so, you need to open 2 terminal windows to run the sample program
16:17:30brixencremes: doh! it does
16:17:33cremesin one window run "rbx local_lat.rb tcp://127.0.0.1 1024 100"; execute this one first
16:17:38brixencremes: le'me investigate more
16:17:49brixencremes: thanks, this is helpful
16:18:06cremesin the second window run "rbx remote_lat.rb tcp://127.0.0.1:5555 1024 100" (add :5555 to the tcp line in the first window)
16:18:09kronos_vanoWhat about rb_big2ull? post 1.0 ?
16:18:14brixencremes: sweet
16:18:23cremesit should send 100 1024 byte messages between them and print the latency
16:18:30evankronos_vano: since it's completely missing atm, it can't hurt to add it
16:18:33evanlets see how it's defined...
16:19:16kronos_vanoMay be this help http://gist.github.com/401339
16:19:22evanactually,
16:19:29evanbig2ull can be an alias for num2ull
16:19:34brixenevan: acceptable? http://gist.github.com/401340
16:19:35kronos_vanooO
16:19:51brixenevan: I couldn't find any reason it was defined as before, and this fix matches 1.8.7
16:20:27evanbrixen: hrm. please try and build nokogiri, mongrel, and sqlite3 with that change
16:20:39evanas a sanity check.
16:20:53brixenevan: will do
16:21:08evanbig2ull is easy
16:21:18evanjust call num2ull
16:21:26evanwe can do that for 1.0
16:23:36brixencremes: woot! http://gist.github.com/401344
16:23:42brixencremes: are those good numbers? :)
16:24:41cremesbrixen: rerun it and change 100 to 100_000 and repost the results
16:24:50cremesit's too hard to tell on a short run with only 100 msgs
16:25:13evanactually, we've got big2ll
16:25:29evanso i can copy it and change a couple things to add big2ull
16:26:01brixencremes: ok, will in a sec..
16:26:06cremesbrixen: this next run should be done in under a minute
16:26:38brixencremes: what happens if I wait longer than a minute to do it?
16:26:42brixen:)
16:27:09cremeskaboom!
16:27:11brixenheh
16:33:09evanT-27 minutes to full code cutoff.
16:33:19evan10am PDT
16:34:24brixenevan: you install just 'sqlite3'? it's telling me 1.9.1 is required
16:34:39brixensqlite3-ruby installs
16:34:40evaner.
16:34:41evanyeah
16:34:42evansqlite3-ruby
16:34:50evanok, also try 1.3.0.beta.1
16:35:00brixenk
16:35:05evanyou'll need to do --version on the install to get it.
16:35:13brixenmongrel installs
16:36:04brixen1.3.0beta1 installs
16:36:12brixenis there a nokogiri version I should install?
16:36:34evanlatest is fine
16:36:37brixenk
16:36:38evan1.4.1 I believe.
16:37:13brixeninstalls
16:38:27evank
16:38:30evango ahead and commit it.
16:38:35brixenthey all load when I require them
16:38:37brixenok
16:39:29brixencremes: when I run this, do I have to worry about activity on the computer?
16:39:46brixencremes: like, if I'm using flash and 50% of my cpu is burning
16:40:02cremesyes, each instance of ruby will run pretty hot
16:40:15cremes(you must be running flash on OSX)
16:40:17cremes:)
16:40:19brixencremes: so, I should pretend I'm benchmarking and shut everything down?
16:40:45cremesif you want the numbers to be accurate, yes. otherwise i can give it a shot on my mac pro
16:41:08brixencremes: well, I'm pushing the fix i needed to install the C ext
16:41:24cremescool, i can give it a shot a bit later
16:41:25brixencremes: as soon as the specs finish, so if you wanted to give it a run
16:41:28brixensweet
16:41:53brixencremes: as you may guess, I'm feeling competitive with jruby :)
16:42:11brixencremes: also, really curious about our rsize too
16:43:24cremesof course; competition is good...
16:43:48cremesthis weekend i will work up a whole set of latency comparisons between MRI, rbx and jruby for zeromq
16:43:58brixensweet
16:44:02cremestoo bad rbx doesn't have up to date ffi bindings...
16:44:28brixenwell, that's a slightly bigger task probably, but I could probably get it working
16:44:38brixenwould be interesting to compare our own C ext vs our FFI
16:44:48cremesprecisely
16:45:03brixensince we have evan's tomato-based sauce in the FFI callsites :)
16:45:35boyscoutFixed proto for rb_define_alloc_func. - 54dcc04 - Brian Ford
16:46:09evanthe ffi api situation sadens me.
16:46:24brixenindeed
16:46:39brixenevan: we should just make our 2.0 api
16:46:49brixenthat leaves all existing usage an upgrade path
16:46:56evanwell, there are a whole bunch of things that don't work well in the current API
16:46:58evanthat I want to fix.
16:47:02brixenright
16:47:12brixenbut rather than try to match the divergence
16:47:17brixenjust iterate to 2.0
16:47:24brixens/match/fix/
16:47:44evanwell, thats pretty harsh for the users
16:47:54evani'm mainly sad that I didn't have time to help with the MRI port
16:47:55brixenwhy is that?
16:48:00evanand thusly it went all wild and crazy.
16:48:15brixenusers would then have 2 apis and an upgrade path
16:48:30brixensince we don't want to match the divergence as it is
16:49:37evanwe don't want to?
16:49:48evani'm not sure thats true.
16:49:49brixennot all the pointer stuff
16:49:57brixenanyway, just a thought
16:50:02evani've come around on a few of those things.
16:50:19evanah crap, that reminds me that I didn't fix finalizers :/
16:50:22evanoh well, post 1.0
16:51:24boyscoutAdd rb_big2ull - 5a658af - Evan Phoenix
16:52:47evani worked on trying to solve some of the problems I saw in the additions that were made to the FFI API
16:52:59evanand while I can be a stick in the mud about some of them
16:53:11evanusers seem to want to use APIs that I think cause problems
16:53:37brixenhmm
16:53:40brixenok
16:53:57brixencremes: here's updated numbers http://gist.github.com/401344
16:54:07evansome of those APIs are definitely more convenient than the alternatives
16:54:13evanso in a way, we should probably support them.
16:54:29brixenof course, there is always a line
16:54:38brixenI'm fine supporting whatever makes good software
16:54:38boyscoutCI: rubinius: 54dcc04 successful: 3457 files, 13596 examples, 41216 expectations, 0 failures, 0 errors
16:54:44brixenRHASH() was easy too
16:54:47brixenas a counter argument
16:54:52evantrue enough.
16:55:02cremesbrixen: very good numbers
16:55:08evanyay!
16:55:13brixencremes: woot!
16:55:26evancremes: does the 0mq bindings use a lot of ruby?
16:55:36evani wondering if the JIT probably kicked in heavy and hard
16:55:46cremesaside from testing the C ext api, that is stressing string creation (and probably the GC too)
16:55:50brixenevan: I'll rerun with -Xint
16:56:01evanah ok
16:56:04evanso probably not that much ruby
16:56:07evanstill good.
16:56:20evanT-4 minutes to code closure.
16:56:28cremesevan: just string creation; it also memcpy's from existing strings to native memory before transmitting
16:56:32cremesso not a lot of ruby
16:56:44cremesand all the ruby is from the C side
16:56:54brixenno appreciable difference, mean latency went to 56.170
16:56:56evancremes: using RSTRING()->ptr ?
16:57:02cremesT-3 minutes; history in the making!
16:57:16cremesevan: let me check
16:57:25evanspeak now for hold your peace (until 1.0.1)
16:57:29evaner.
16:57:32evanor hold your peace.
16:57:41Defilerso, did I hear that memcache was failing to build?
16:57:47Defileror was that just a config problem on that system?
16:57:49cremesevan: memcpy (zmq_msg_data (&msg), RSTRING_PTR (msg_), RSTRING_LEN (msg_));
16:58:06evangotcha.
16:58:07cremesit's using the macros
16:58:10brixenevan: yeah, it is
16:58:25evanDefiler: it was failing to run because big2ull was missing, I added it.
16:58:29brixenDefiler: failed to resolve a symbol on load, evan's fixed it
16:58:31evanbut I'm not going beyond that.
16:58:32Defileraah, cool
16:58:34cremeson the receive side, it's doing: message = rb_str_new ((char*) zmq_msg_data (&msg),
16:58:34cremes zmq_msg_size (&msg))
16:58:44evancremes: ok.
16:58:53cremesso like i said, not a lot of ruby :)
16:58:54evanRSTRING_PTR == RSTRING()->ptr
16:58:56evanreally
16:59:09evansince the char* thats returned has to be strongly associated with the string object
17:00:18evanCODE CLOSED
17:00:34brixenextracts fingers just in time
17:01:26brixenunfortunately, we had no sirens and lights and A-team actors to celebrate the occasion
17:01:37evanhah
17:01:40brixennor any slamming steal doors made of other than steel
17:01:43evani'm going to run the rails 3 tests again.
17:01:46brixenok
17:02:29cremestag it, baby!
17:02:52cremeswonders if this means we can open post 1.0 issues now...
17:03:16evancremes: once it's really out, then you can.
17:03:27evanOR you could be nice and wait til monday
17:03:31evanand let us bask in the glow all day
17:03:41cremesi'll be extra nice and wait until tuesday
17:03:44DefilerYeah, way to be a jerk :)
17:04:25dbussinkevan: hmm, too bad, just found a tricky one this morning ;)
17:04:33evandbussink: too late!
17:04:41evanit will have to wait.
17:04:51dbussinkevan: but i bet you want to know the details on it ;)
17:04:57dbussinkit's probably not an easy fix anyway
17:04:58evanactually, no.
17:05:00evannot really.
17:05:02evannot atm.
17:05:03cremesdbussink: let them bask in the glow!!!
17:05:11cremescan't you feel it?
17:05:15brixendbussink: you can pm me the issue
17:05:19brixenis a masochist :)
17:05:36dbussinkit's the numeric tower btw, just read the back log :0
17:05:37dbussink:0
17:05:38dbussink:)
17:05:45dbussinkdefining Numeric#==
17:05:54brixendbussink: oh, you're going to be at railsconf right?
17:06:13evandbussink: yeah, i'm aware of that.
17:06:39Defilerrunning my rails test suite on this rev myself
17:06:41Defileralmost done
17:06:42cremesit might be fun to produce a bunch of stats concerning the effort to get to rbx 1.0
17:07:01cremeslines of ruby written, C, C++, prototypes thrown away, rubyspec, etc
17:07:01brixencremes: you mean, like how many gray hairs I have now? :)
17:07:13cremesbrixen: at least you still have hair!
17:07:20brixencremes: good point!
17:07:22cremesalways looking on the bright side
17:07:44evanbrixen: also, not fair, but I think I have more than you!
17:07:53Defileraah, system_timer
17:07:56Defilerthat's not supported, right?
17:07:59evanright
17:08:04brixenevan: hah, but yours are hidden in the blond ones
17:08:07Defilerrb_thread_critical aha
17:08:15evanpost 1.0 i'm going to work with the system_timer author to make it rbx aware
17:08:22evanbasically, it needs to just not do anything on rbx
17:08:24evansince it's not needed
17:08:27dbussinkbrixen: going to railsconf yeah
17:08:28brixenyes, various gem authors
17:08:33brixenlinecache for instance
17:08:35evanif one of you fine contributers want to take point on that
17:08:38evanyou're welcome to.
17:08:40brixendbussink: awesome!
17:09:47evanhehe, got an email via the fonc list for paper submissions for: International Workshop on Smalltalk Technologies
17:09:58brixennice
17:10:05brixenS3 is in tokyo this year too
17:10:08brixenwants to go
17:11:17evanyou should!
17:11:30brixenI'll check into it
17:15:25Defilerman, rbx is amazing now
17:15:33evanok, rails tests look good.
17:15:58evanoh man, i just got chills editing configure to make the version 1.0.0
17:16:07Defilerlook at this awesomeness: https://gist.github.com/d4c17c10ae8e80ea62fb
17:16:25evan:D
17:16:38dbussinkevan: be sure to update the date too :)
17:16:42brixenDefiler: man oh man! :)
17:16:50evandbussink: I will!
17:17:15cremessomebody ping wayneeseguin about cutting an rvm update!
17:17:27brixenwayneeseguin: ping
17:17:35brixenheh
17:18:20Defilerhrm
17:18:27Defilerwhen I do script/console, I get unrecognized option --simple-prompt
17:18:54evanDefiler: sounds like it's not starting it right.
17:18:57evanare you using rvm?
17:19:08evanrvm probably needs to use "ruby -S irb" for irb, rather than just "ruby"
17:19:18evanwayneeseguin: poke poke
17:19:22dbussinkDefiler: this is probably rails right?
17:19:28dbussinkrails passing that option to irb
17:19:35dbussinkbut ./bin/rbx doesn't accept those options
17:19:39Defileryeah
17:19:57Defilerevan: yeah, I'm using rvm
17:21:17Defilerso, I've got this initializer that does 'include SomeModule'
17:21:27Defilerexpecting include into main to work
17:21:38Defilerbut it seems like in rbx, I don't get those constants brought in the same way
17:21:43Defilerworking on making sure it isn't me though
17:24:15brixenDefiler: hmm, just toplevel include SomeModule?
17:24:19Defileryeah
17:24:27brixena trivial example works
17:24:29Defilerchanging it to class Object; include SomeModule; end doesn't change it though
17:24:33Defilerso that's not it
17:24:37brixencodez?
17:24:52brixenany autoloadz in the mix?
17:25:08Defilerno, but let me make you a paste
17:25:12brixenk
17:32:42cremesbasking in the glow of helping a new ruby runtime get launched
18:05:10boyscoutUpdate version number for 1.0.0! Break out the champagne! - e6c32af - Evan Phoenix
18:05:17evanwebsite is deploying now.
18:06:50brixenawesome!
18:06:59brixen^5s all around
18:07:27brixenI actually do have champagne in the fridge, will have to wait till tonight though :)
18:09:59evanwho put in an issue right now?!
18:10:02evancome on guys!
18:10:03evan:)
18:10:23brixenhaha
18:10:27brixenjust saw that too
18:10:34evanit's for some tagged specs.
18:10:35evanno biggy.
18:10:39brixenyeah
18:10:49brixen*obviously* not someone in channel
18:10:54brixenhaha
18:12:24cremeswhoever opened the issue also included a patch; they have the honor of the first patch to 1.0.1 :P
18:12:35dbussinki wonder how long it will take until someone finds something critical and there will be a 1.0.1 :)
18:12:45dbussinkmurphy always hits in those cases
18:13:37evanhttp://skitch.com/evanphx/dd1qw/cam
18:14:21boyscoutCI: rubinius: e6c32af successful: 3457 files, 13596 examples, 41216 expectations, 0 failures, 0 errors
18:14:57brixendbussink: we can't wait for 1.0.1
18:15:08brixendbussink: you can't keep the awesome down :)
18:15:38cremesevan: i'm pretty sure i see a grey hair
18:15:50evancremes: :D
18:15:54evanmy beard is turning grey
18:15:59evanbut I think thats from leveling up.
18:16:02evani'm becoming a grey beard.
18:16:03cremesheh
18:16:06brixenhaha
18:16:32brixenincidentally, there are lots of graybeards cycling around pdx
18:16:52brixenI'm inclined to think they are either uni lit profs or old unix devs
18:16:59brixenbut I haven't dared to ask one yet
18:17:14brixenby cycling, I mean in spandex :)
18:17:30evanyou should!
18:17:34brixenI know
18:17:38brixenbut they look mean!
18:18:52LongLifeRubiniusheh. Now you reopen all tickets marked as post 1.0?
18:20:00brixenLongLifeRubinius: there is a 48 hour moratorium on new tickets after a 1.0 release
18:20:11evanto celebrate!
18:20:13tarcieriOHAI!
18:20:15brixen:)
18:20:21tarciericongratulations on 1.0!
18:20:24LongLifeRubinius:D
18:20:27brixentarcieri: ZOMG, thank you!
18:20:40jakedouglascongrats
18:20:45brixentarcieri: we almost took over the world with Actors, but you abandoned us :P
18:20:52brixentarcieri: maybe we'll lure you back :)
18:20:55tarcieridoes this mean I can completely stop using MRI now and go all Rubinius and JRuby? :)
18:21:02cohitreis the "Announcment" typo on the top link on the rubini.us page intentional?
18:21:03tarcieribrixen: heh, maybe!
18:21:08brixenhahah
18:21:15brixenoh man, did we typo?
18:21:19brixenwas the proofreader
18:21:24brixenle sigh :)
18:21:37brixenhah, we did
18:21:39brixenevan!
18:21:56brixencohitre: that's the evan spelling of Announcement
18:22:06brixencohitre: it's a dialect of old english :)
18:22:18evanhah
18:22:20evani'll fix it.
18:22:29evani'm doing a couple of abby spied typos atm.
18:22:32brixenjakedouglas: thanks man
18:25:28tarcieriRubinius: Ruby Done Rite Fo Real?
18:25:49brixenheh
18:26:21jaribcongratulations guys, awesome work
18:26:25evanthanks!
18:27:12evanso where should I get my rubinius tattoo?
18:27:29tarcieriget a tramp stamp
18:27:39cohitreget a tramp stamp that says "Announcment"
18:28:56evani'm no tramp!
18:29:39DefilerJust broke out the wine at the office to celebrate the occasion
18:29:43vborjaHey guys, congrats for 1.0 !
18:29:45DefilerWell done, guys
18:30:00brixenDefiler: many thanks to you as well man
18:30:05brixenvborja: thanks!
18:30:26DefilerYou guys did all the hard stuff after I left :)
18:30:35brixenhaha, not even
18:31:36evanDefiler: I will never forget when you stood up and said "um, I think that pp just loaded and worked flawlessly..."
18:31:57DefilerThat was a fun moment; that was in that Orlando sprint?
18:32:08evanin SF as I recall
18:32:12evanway before the orlando sprint.
18:32:12Defileroh, right
18:32:53evanha! and now the issues start showing up.
18:32:55evanoh well!
18:32:57evanthats software for ya.
18:33:02brixenyeah
18:33:05Defilerparticularly software ending in .0
18:33:09brixena release is just a ticket tease
18:33:13brixenbut it works! :)
18:33:22dbussinki still remember Defiler complaining about caller two years ago :)
18:33:30wayneeseguinevan: poke poke, was at lunch
18:33:35Defilerand it still sucks exactly as much :)
18:33:43dbussinkbut congrats on the release :)
18:33:47dbussinkhehe, true :)
18:33:48evanwayneeseguin: could you update rvm to install rbx 1.0?
18:36:41wayneeseguinevan: yeah working on it it's a little trickier than others because of the different 'patchlevel' scheme
18:37:47evanoh?
18:37:50evansorry about that.
18:39:37wayneeseguinhehe
18:39:47wayneeseguinBiggest 'pain' in RVM is having to accommodate many many url schemes
18:39:51wayneeseguinree is the worst
18:39:58wayneeseguinbecause they use rubyforge
18:40:02wayneeseguinand the url is NEVER consistent
18:40:35evanoh, ack, yeah, i removed the -<sub> entirely
18:40:42evanrather than having it be -0
18:41:33evanwell shit.
18:41:36evanwhat do I do now?! :D
18:41:58Defilersymlink :)
18:42:36dbussinkevan: you mean your purpose in life is gone after 1.0? ;)
18:43:28malumalucongratulations for 1.0 :)
18:43:36antaresevan: congratulations and thank you for your hard work
18:43:53evandbussink: i hope not!!
18:43:55evanantares_: thanks!
18:43:58evanmalumalu: thanks!
18:52:09dbussinkevan: dunno how much people read it, but maybe write something to the google group?
18:52:17evanah yes
18:52:18evanok
19:00:26brixenezmobius is trying to congratulate us, but his IRC messages runneth over :(
19:00:29brixener :)
19:00:30brixenheh
19:00:44LongLifeRubinius!
19:01:21kronos_vanoready to work on 1.1
19:01:30brixenme too
19:01:35brixenalso, ready for lunch
19:01:43kronos_vanohah
19:01:54lopexcongrats folks!
19:02:01brixenlopex: thank you!
19:02:41kronos_vanobrixen, "Приятного аппетита" as Russian talk before eating
19:03:45brixenkronos_vano: ahh cool!
19:05:36kronos_vano14 May should be "Rubinius hack day".
19:06:00brixengood idea!
19:12:14asarihsomeone needs to update Wikipedia to commemorate the 1.0.0 release. http://en.wikipedia.org/wiki/Rubinius
19:12:36asarihas you know, until Wikipedia says so, it's not official.
19:12:56evan:D
19:13:41asarih;-)
19:13:55evanupdated!
19:14:19asarihw00t!
19:21:07dbussinkevan: you should add datamapper to the supported list :)
19:21:44dbussinkevan: running rspec and bundler etc, the whole shebang :)
19:22:05evanya!
19:25:56earcarYAY!
19:26:58evan:D
19:27:03brixenheh
19:27:09brixenfireworks all around!
19:27:12earcarsuper awesome!
19:27:17earcar:D
19:37:32earcar1 question: where are gem binaries on osx by default?
19:38:32evanearcar: use -S <bin> to access them
19:38:46evanwe don't put them in a normal dir in your PATH because it's too easy to make a mess.
19:38:59earcargood idea
19:40:52dwaitebrixen: poke
19:42:01dbussinkevan: just 10000+ datamapper rspec examples through the postgres backend :)
19:42:13evanwoo!
19:47:34brixendwaite: ouch!
19:47:53brixen|Blaze||: thanks!
19:51:05dwaiteso happy about this :)
19:56:05dbussinkevan: btw, http://rubini.us/about/changelog isn't updated yet either
19:56:17dbussinksorry if i'm spoiling the fun btw :P
20:00:26earcaryou are on rvm right now ;)
20:24:25jaciusHi all, congrats on the 1.0 release. :)
20:25:49brixenthanks jacius!
20:30:12jaciusI'm hoping to get Rubygame running on Rubinius (using FFI) :D
21:04:31jaciusHaving trouble compiling 1.0. rbx-build segfaults whenever I run it. :\ https://gist.github.com/1a81976e84bca47cb9ad
21:04:43stephenjudkinshow much work would it take to get Rubinius to target the JVM instead of of LLVM?
21:04:57dwaiteyou mean jruby?
21:05:04stephenjudkins(clearly a lot, but what would have to be done?)
21:06:01stephenjudkinsdwaite: jruby's great! i'm curious about rubinius though, since its design seems like it could accommodate multiple backends
21:06:04evanstephenjudkins: lots and lots and lots and lots.
21:06:14evanwe only use LLVM for the JIT
21:06:19evanthe VM and GC, etc are in C++
21:06:35evanfor the JVM you wouldn't need the GC, but you still need an interpreter
21:06:39evanjruby is pretty much on this track
21:06:47evanthey're just not implementing things in ruby
21:06:49stephenjudkinsevan: i take it the mapping between rubinius bytecode and JVM bytecode isn't particularly clear either?
21:07:06evanjacius: hm...
21:07:25evannot, not at all.
21:08:13stephenjudkinswhere can I find a high-level summary of the rubinius VM's design and features? is it register- or stack-based?
21:08:29evanjacius: did you already try and it build it? it appears that libtommath didn't build...
21:08:44evanstephenjudkins: it's stack based
21:09:03evani don't think i've written a good single summary of the VM in a while
21:09:05evanprobably should do that soon
21:09:12evani'm happy to answer any questions you have though
21:09:17evani'll incorporate the answers into the summar.
21:09:19evansummary.
21:12:26jaciusevan: When I do "rake" again, it gets the same spot, fails when using rbx-build to run extconf.rb in lib/ext/melbourne
21:12:34stephenjudkinsi don't have a particularly deep knowledge of VM design or implementation, so forgive my questions
21:12:49stephenjudkinswhat are the biggest differences between the rubinius VM and the JVM?
21:12:50evanjacius: could you do 'rake distclean; rake'
21:13:14evanstephenjudkins: all the instruction in the rubinius VM are designed for running ruby code
21:13:26evanso, for instance, there is a send instruction, that does a ruby method call
21:14:11evanthe JVM, for instance, has a number of invoke instructions, like invokevirtual, which does the java virtual method logic and invocation
21:14:25evanso the instructions are designed for the target language
21:16:14stephenjudkinsevan: how realistic would it be for someone not experienced in this stuff to write a very slow, naive implementation of the rubinius VM?
21:16:38Defilerevan: That question is so awesome, ironic, appropriate, and perfect
21:16:40evanprobably pretty easy.
21:16:48evanDefiler: :D
21:17:01Defilerbecause all he has to do is check out 2006 version from the repo
21:17:04Defilerand there you go :)
21:17:04evanstephenjudkins: if you had experience with a VM, then it would be pretty easy probably.
21:17:10evanyep.
21:17:30evanthe instructions that require knowledge of object setup, like send, etc are the most complicated
21:17:43evanmainly because they require that you've got stuff like objects, classes, method tables, etc.
21:18:02dbussinkthe core of it is just a giant case statement ;)
21:18:22dbussinkevan: how well are the instructions documented actually?
21:18:43stephenjudkinsevan: so the bytecode generator is written in ruby. how does your bootstrapping work? do you use another ruby implementation?
21:19:00evandbussink: decently, some are missing docs.
21:19:03brixenstephenjudkins: doc/bootstrapping.txt
21:19:20brixendbussink: most have docs, some don't
21:19:22stephenjudkinsbrixen: thanks!
21:19:31brixenvm/instructions.def
21:20:16brixenstephenjudkins: there are also some rubinius posts on engine yard's blog that give a high level overview
21:20:52brixenstephenjudkins: if you want to play with a basic ruby vm, there is also tinyrb
21:21:08brixenstephenjudkins: but really, you should play with rubinius :)
21:21:23stephenjudkinsbrixen: it's a damn cool project.
21:21:30Defilerrbx is definitely a project where starting from an older revision can help you understand it
21:22:01stephenjudkinsi've been following the PyPy guys but jesus, their stuff relies on some incredibly sophisticated ideas.
21:25:00jaciusevan: "rake distclean" helped, thanks! Looks like it was probably just some cruft from a very old compile.
21:25:18evanjacius: oh good!
21:25:22evani was hoping so
21:26:54kronos_vanoevan, Is method inlining in rubinius something like inline directive in C++? I read article on EY blog but don't understand inlining yet :(
21:27:10evankronos_vano: yes, it's the same
21:27:19kronos_vanooh. good.
21:27:35dbussinkkronos_vano: it's not explicit like the inline directive though
21:27:45evanyes, it's much better than C++'s inline actually
21:27:51evanbecause it's based on profiled results
21:28:04evanso it can inline methods that are being heavily used now
21:28:08evanrather than the programmer guessing
21:39:59dohzyaHi
21:40:09evanhello.
21:40:48dohzyacongratulation ! :-)
21:41:01rueNicely done
21:41:31dohzya(ok, I have nothing else to say, just I'm happy :p)
21:41:40mutlecongrats, rubinius team!
21:41:55brixenthanks folks!
21:42:10evandohzya: thanks!
21:45:51jaciusevan: Just tried a fresh clone (instead of updating my old one), it worked fine. It was definitely just some cruft in my old clone, nothing your fault :)
21:46:21evanah, wonderful you got it working well.
21:46:58evanit must be morning in japan
21:47:13evanmatz and Psych just tweeted about 1.0
21:47:48toulmeanevan: hey, I'm Antoine, just chatted about RJB with you over github messages
21:48:02evantoulmean: ah hello!
21:48:07evanthis is a bit easier to chat :)
21:48:13brixenheh, matz double tweeted it, he must be excited :)
21:48:15toulmeansorry again for the misread at first
21:48:16toulmeanoh yes
21:48:24evantoulmean: oh, no prob.
21:48:44toulmeanevan: ok forking RJB now - how would you identify that it is Rubinius in C code
21:49:06brixenwe have a define
21:49:12toulmeanapparently I need to change the line #if RJB_RUBY_VERSION_CODE < 190
21:49:26toulmeanto say #if RJB_RUBY_VERSION_CODE < 190 || IS_RUBINIUS
21:49:51evantoulmean: there is a #ifdef you can use directly.
21:49:52brixen#ifdef RUBINIUS
21:50:06evanyep.
21:50:11evantoulmean: you can do
21:50:12toulmeanbrixen: so || ifdef RUBINIUS ?
21:50:18evan#if .... || defined(RUBINIUS)
21:50:23toulmeanah ok
21:50:28toulmeanok thanks guys.
21:50:30toulmeanawesome
21:50:57evantoulmean: as for replacing rjb, we can certainly discuss that
21:51:11brixenis rjb ruby java bridge?
21:51:15evanbrixen: yeah.
21:51:19brixenahh ok
21:51:37toulmeanevan: ok.
21:51:56toulmeanRJB is a pain in the back to install.
21:52:05brixentoulmean: I want to just run jvm bytecode on the rbx vm :)
21:52:14evantoulmean: jruby is certainly going to have the best story for java integration
21:52:15toulmeanI am actually thinking of making buildr completely ruby, and stop doing fancy stuff that requires native libs
21:52:17evansince there is no bridge.
21:52:19brixenbut I haven't gotten very far on that project yet
21:52:44toulmeanbrixen: well you are almost there. With RJB it's possible
21:57:48dbussinknice interface on top of github issues: http://githubissues.heroku.com/#evanphx/rubinius
21:59:19JamesKiltonCurious. I'm trying to build a C-ext library of mine that uses st.h with Rbx 1.0, but st.h itself isn't compiling.
21:59:31dbussinkevan: btw, that's the plan with stuff like #284, is that tracked somewhere else? so it's not forgotten?
21:59:55evanJamesKilton: hm. we've got a bit of a strange st.h right now
21:59:58evanwhat issue are you having?
22:00:42JamesKiltoni'll gist the compiler output, one sec
22:00:56evanJamesKilton: ok.
22:01:30JamesKiltonhttp://gist.github.com/401724
22:02:46brixendbussink: nice? not nice :( terrible
22:03:12dohzyanot mac fanboy ?
22:03:34brixenit's a bunch of candy and doesn't even look that good
22:03:36dbussinkbrixen: my biggest issues with the github interface itself it that it's navigation always borks on various cases for me
22:03:37evaneh?
22:03:42evanwhat did i miss in that 20 seconds
22:03:44dbussinkhere it works better imho
22:04:03brixenover 1/2 my screen has nothing to do with the issue txt
22:04:11brixenwhich is the most important thing
22:04:33brixenanyone who thinks this ui is nice should *not* be writing software that humans use
22:04:36brixensorry :)
22:04:54JamesKiltonyou talking about the new Cappucino-built issues interface?
22:05:00brixenyes
22:05:18brixenif that's what http://githubissues.heroku.com/#evanphx/rubinius is
22:05:24JamesKiltonyes
22:05:32brixennot a fan
22:05:51JamesKiltoni think it's pretty awesome, but I understand your concerns
22:06:07dbussinkhaven't actually used it, so in that regard i don't know if it works nice :)
22:06:10brixendoes no one read alan cooper?
22:06:12dohzyabrixen: which is really nice is the techno used. The UI is a question of taste
22:06:22toulmeanevan:brixen: http://gist.github.com/401735
22:06:30dbussinkbut when clicking through it i had less navigation issues than the github issues pages themselves
22:06:35toulmeangot past the first exception, hit the second wave
22:07:03dbussinkhmm, found the first issue there too
22:08:03toulmeanevan: brixen: pushed the first fix here: http://github.com/atoulme/rjb
22:08:19toulmeanI have to step away from kb in 10, will resume hacking at some point.
22:08:24evantoulmean: we don't support RBASIC
22:08:34evanwhich is what IS_RJB_OBJECT is using
22:08:40jaciusHm, I thought if I did "configure --prefix=/usr/local/", it would install things into /usr/local/bin/, /usr/local/lib/, etc. But it made /usr/local/rubinius/1.0/bin/, etc.
22:08:46evanusing RBASIC()->klass is always a bug.
22:08:54evanthat code should use rb_obj_class() instead
22:09:03toulmeanevan: ok
22:09:11toulmeanso if I do a massive replace it will work ?
22:09:12brixenjacius: you have to specify dirs individually, it does not splat stuff in multiple dirs with --prefix
22:09:21evantoulmean: just change the IS_RJB_OBJECT macro
22:09:26jaciusOkay
22:09:27toulmeans/RBASIC/rb_obj_class ?
22:09:30evanbut anywhere else RBASIC is changed should be used too
22:09:31toulmeanlemme see
22:09:32brixenjacius: we've considered adding that, but it depends on the fs layout
22:09:37toulmeanok thx evan
22:09:43brixenjacius: so, we just give you the individual options
22:09:51evantoulmean: ah yeah, i see a bunch of places
22:09:56evanevery single one is a bug
22:10:01toulmeanevan: this code is old
22:10:03evan100% of RBASIC()->klass is a bug
22:10:13evanin all extension code.
22:10:35toulmeanevan: so how do you replace ?
22:10:39toulmeanoh ok
22:10:41toulmeannm
22:11:01toulmeanI just apply s/RBASIC->klass/rb_obj_class()
22:11:04evanRBASIC(expr)->klass becomes rb_obj_class(expr)
22:11:05toulmeanevan: ^^ correct ?
22:11:10toulmeanok cool
22:11:27evandon't let anyone tell you "no, RBASIC()->klass is fine"
22:11:28evanthey're wrong.
22:11:38evansend them to talk to me if they don't believe you.
22:12:02evanoh man
22:12:04dbussinkevan: write a faq entry for it ;)
22:12:04evanhold on
22:12:10evantoulmean: hold on
22:12:14evani think this code is being extra clever.
22:12:46toulmeanevan: this code was not written by Chuck Norris. This is impossible.
22:12:58evanheh
22:13:26evanthe code on line 1738 is, i think, trying to add methods to class's singleton class, ie, class methods
22:15:07toulmeanevan: got this:
22:15:08toulmeanrjb.c: In function ‘rjb_s_unload’:
22:15:08toulmeanrjb.c:1783: error: called object ‘1’ is not a function
22:15:08toulmeanrjb.c: In function ‘register_class’:
22:15:09toulmeanrjb.c:2296: error: called object ‘1’ is not a function
22:15:18toulmeanafter replacing the RBASIC goop
22:16:06evanwhat does line 1738 look like?
22:16:20toulmeanevan: 1738: rb_define_method(rb_obj_class(jklass), "forName", rjb_class_forname, -1);
22:16:21evanthose lines need to use rb_singleton_class rather than rb_obj_class
22:16:28toulmeanooh
22:16:36evanbecause i think thats the intent
22:16:57toulmeanso like that rb_define_method(rb_singleton_class(jklass), "forName", rjb_class_forname, -1);
22:17:10evanyeah
22:17:22toulmeanok - still hitting the same compile errors as stated earlier
22:17:37toulmean1783 is st_foreach(RHASH_TBL(rjb_loaded_classes), clear_classes, 0);
22:17:55JamesKiltonevan: should i open a ticket about st.h for a record of the problem?
22:18:17evantoulmean: oh damn
22:18:19evanit uses RHASH
22:18:32evanwe'll have to figure out how to recode that.
22:18:38evanwe don't support RHASH
22:18:44evanJamesKilton: sure.
22:19:46toulmeanevan: pushing latest changes and running to appointment
22:20:39toulmeank, pushed
22:20:43toulmeanthx for all the help
22:21:06toulmeanevan: don't worry I'll read about RHASH and will come back to you
22:21:47evantoulmean: no prob.
22:22:02evantoulmean: ok
22:22:45dohzyaweird : I've installed rbx 1.0 using rvm (with success) but I couldn't compile it from source (using ruby 1.9.1) "no such file to load -- ext/digest/sha1/sha1"... I tried using rbx 1.0 (which I installed using rvm) : it is running...
22:23:12evandohzya: yes, you can't use 1.9 to build it currently.
22:23:22evanthats something we'll address soon.
22:23:48dohzyaok, no problem, just I now I'm not too bad for rake :p
22:24:41dohzyanow I know*
22:35:59dohzyahehe, one failure !
22:36:07dohzya(in test suite)
22:36:11evanwhich?
22:36:35dohzyaUDPSocket.bind receives a hostname and a port FAILED (Expected "0.0.0.0" to equal "127.0.0.1")
22:36:50dohzya(I'm on an ubuntu 10.04 x64)
22:37:26dohzyaok, it's special, maybe a conf problem
22:37:31slavacongratulations on 1.0!
22:37:48evanslava: THANKKSS
22:37:57evandohzya: ah yeah, that was reported
22:38:01evanseems to be something about linux
22:38:02evanit's harmless
22:45:00dohzyaand 1.9.1 returns the same result
22:50:16evandohzya: oh good.
22:50:20evanit's probably a bad spec then.
22:50:40evanor, rather, not bad, but needs to deal with platforms somehow.
22:51:18dohzyayes
22:54:19slavaman, the algorithm for interference testing on SSA is so elegant
22:54:43slavaevan: I'm looking forward to hearing about further JIT work now that 1.0 is out :)
23:04:27evanslava: yeah! me too!
23:16:27dwaitehaving a problem downloading 1.0.0
23:17:15evandwaite: what kind of "problem" ?
23:17:23evanis it exciting you too much?
23:24:17dohzyaevan: in the evan.taskpaper "what is the pragma comment" ?
23:24:18dohzyathe @comment form ?
23:25:49evandohzya: thats a comment in the form
23:25:53evan# *-* thing *-*
23:25:57evanor is it -*-
23:26:02evanone of those
23:26:06evananyway, I added it
23:26:14evanyou can activate compiler plugins using it.
23:26:46evan-*- is it
23:27:21dohzyaI don't know at all : is there an explanation somewhere ? (except if you want to explain it now :p)
23:27:32evanyeah, thats fine
23:27:34evanyou don't need to
23:27:45dohzyahaha ok
23:27:54evanit's a way of communicating information out of band to the parser and compiler
23:29:14dohzyaoh nice :-) have you a use case in example ?
23:29:15brixendohzya: git show d0f736008
23:35:32dohzyaok (I didn't understood all the code, but I suppose the big picture is ok). Have you a typical example of use ?
23:35:59dohzya(just because it's a kind of feature I love :p)
23:41:01brixendohzya: evan has an example somewhere
23:41:13brixenthe point is really that you can do some powerful stuff with it
23:41:21brixenand the basic machinery is in place
23:41:32evanhttp://gist.github.com/401839
23:41:37evanthats a simple example
23:41:38brixenI'm off to see some folks about some beers
23:41:49brixenevan: cherio mate! and congrats
23:41:50evanthe -*- array_zen -*- activates the array zen compiler plugin
23:42:17evancherio and congrats to you too!
23:42:28brixenheh, thanks :)
23:44:26dohzyaarray zen is a form of list comprehension ?
23:53:10kronos_vano+[ x+y , x.in([1,2,3]), y.in([5,6,7])] doesn't work :( :)
23:53:51dohzya(good night)