Index

Show enters and exits. Hide enters and exits.

04:19:43eventualbuddhainstalled the osx 10.6 binary version of rubinius earlier today. can't seem to require iconv: http://gist.github.com/452398 โ€” ideas?
05:33:00brixeneventualbuddha: what is your LD_LIBRARY_PATH set to?
07:02:26WALoeIIIDoes Rails 2.3.8 run on 1.0.1?
07:02:43WALoeIIII cannot get past route.rb but I am not sure if this is my doing rbx's
07:06:33dbussinkWALoeIII: last time i tried with 2.3.5 i could get it running with what was master at that point
07:06:40dbussinkWALoeIII: do you have a backtrace?
07:07:03WALoeIIIhttp://gist.github.com/452547
07:08:20WALoeIIIfhttp://github.com/rails/rails/blob/v2.3.8/actionpack/lib/action_controller/routing/route.rb#L205
07:08:24WALoeIIIhttp://github.com/rails/rails/blob/v2.3.8/actionpack/lib/action_controller/routing/route.rb#L205
07:08:28WALoeIIIis the line
07:08:42dbussinkWALoeIII: what's interesting here is the body code
07:09:00dbussinkWALoeIII: because apparently there's something weird in there that borks the compiler
07:09:21WALoeIIII'm not very familiar with the internals
07:09:56WALoeIIIis this the body local then being string subb'd in
07:10:05WALoeIIII could just put it all in there for shiggles and see if it works
07:12:40WALoeIIIso its something to do with MY routes
07:12:51WALoeIIIbecause I got into the console on a fresh app
07:14:17WALoeIIIok commenting out routes.rb resolves it
07:14:21WALoeIIIgoing to binary search my file
07:18:47dbussinkWALoeIII: ah ok, so not a general rails 2.3.8 issue, but probably something specific for your app
07:18:56dbussinkWALoeIII: would be great if you could isolate it
07:18:57WALoeIIIgot it down to about 5 lines
07:19:03WALoeIIIwill have it here in just a sec
07:19:09WALoeIIIscript/console is still reallly slow
07:19:38dbussinkrails loads up a huge amount of code and that's still a relalively slower part in rbx
07:19:42dbussinkso you notice that probably
07:24:01WALoeIIIdbussink: found it
07:24:03WALoeIIIwriting up a gist now
07:24:07WALoeIIIit was a bug in our code anyways
07:25:19WALoeIIIhttps://gist.github.com/60effef3719cbbe03f18
07:25:26WALoeIIIwhat was meant here is admin.root
07:25:57dbussinkWALoeIII: ah, giving '' for resource is a bit weird yeah :P
07:26:13WALoeIIIadmin.root :controller => :summaries, :action => :show
07:26:15dbussinkWALoeIII: but 1.8.7 works with this code?
07:26:17WALoeIIIits booting up now
07:26:20WALoeIIIapparently
07:26:27WALoeIIIbut I have no idea how or why
07:26:32WALoeIIIits flat out wrong
07:26:38WALoeIIIhow can you have an empty resource?
07:27:16dbussinkyou can't but if rbx blows up and 1.8.7 doesn't, there's a potential bug there for rbx
07:27:23dbussinksince it behaves different from 1.8.7
07:27:35dbussinkbut maybe it's not worth fixing, but can't tell by just this data
07:27:43dbussinkbut it's probably something really obscure :P
07:28:34WALoeIIIcreate a rails app
07:28:36WALoeIIIpaste that gist in
07:28:38WALoeIIIit breaks instantly
07:29:35dbussinkWALoeIII: could you make an issue out of it? it's ok to mark it as probably not something important, but we can at least track / remember it
07:29:42dbussinkto see if it's something important or not
07:30:15WALoeIIIsure
07:31:47WALoeIIIyeaaaaaaaaaaah
07:31:49WALoeIIIits running my tests!
07:32:24dbussinkWALoeIII: cool :)
07:32:47WALoeIIIhttp://github.com/evanphx/rubinius/issues/issue/387
07:33:24dbussinkWALoeIII: btw, i suggest mentioning exact steps to reproduce, like installing rails 2.3.8
07:33:30WALoeIIIah ok
07:33:44dbussinkadding stuff to routes.rb does not mean everyone knows it's about rails straight away :)
07:33:49dbussinkassume no such knowledge ;)
07:40:31WALoeIIIdbussink: is there an engine constant or something I can define so I can have my gem include ffi if its not on Rubinius and not if it is
07:41:02dbussinkWALoeIII: best way is to use something like defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx'
07:41:10WALoeIIIok
07:41:35WALoeIIIhttp://rubygems.org/gems/zlib-crc32_combine
07:41:43WALoeIIII guess its because I decare ffi as a runtime dependency
07:41:47dbussinkWALoeIII: but beware, the mri ffi api and the rubinius have diverged some
07:42:01WALoeIIIrubygems doesn't know about different engines does it?
07:42:12dbussinknot that i know of
07:42:58WALoeIIIheh, looks like GC doesn't get run on my tests, process is up to 1.4GB
07:44:09dbussinkWALoeIII: GC not being run is not really possible, maybe you're hitting some leak with ffi?
07:44:16dbussinkWALoeIII: or this isn't ffi stuff?
07:44:20WALoeIIInot ffi
07:44:21WALoeIIIjust ruby
07:44:25WALoeIIIprobably a leak somewhere
07:44:28WALoeIIII'll profile it later
07:44:29WALoeIIIbedtime now
07:44:41WALoeIIIso stoked to even get it running
07:45:13dbussinkWALoeIII: hehe, good night!
07:47:21WALoeIIIthere may be some id2ref crap or something going on
07:47:27WALoeIIIprofiling will help
07:49:38dbussinkWALoeIII: ah, evan and headius have ranted on that at railsconf :)
07:49:49dbussinkso hopefully people will remove it being used more and more
07:55:42WALoeIIIevan: ping
08:03:22dbussinkWALoeIII: he's probably still asleep, us west coast
08:03:33WALoeIIII'm in Seattle
08:03:34dbussinkor already asleep depending on perspective ;)
08:03:47WALoeIIIhe actually just replied to my ticket like 2 seconds before I sent that ping
08:03:50dbussinkah, 1am, that's probably already :P
08:03:54dbussinkWALoeIII: ah, ok :)
08:04:00WALoeIIIwas going to explain in here but he went away
08:04:05WALoeIIIs'ok I'll catch him tomorrow
08:04:07WALoeIIImy bed time too
16:03:17evanWALoeIII: I am now available.
16:22:31brixenmorning
16:24:13goyox86brixen: morning
16:24:41brixengoyox86: howdy
16:31:04goyox86brixen: fine!, just going out to lunch :-)
16:31:14brixenyum!
16:31:19brixenjust eating breakfast
16:31:27brixenand typing with my mouth full :)
16:31:44evanbrixen: having death grip issues?
16:31:55brixenevan: ridiculously
16:31:59evan:(
16:32:08brixenI cannot hold my phone and use it
16:32:17brixenin any comfortable configuration
16:32:25brixenit's fun watching the bars go up and down
16:32:29evanget a bumper
16:32:31evanthats what i'm doing.
16:32:34brixenI will
16:32:39brixenas soon as they are not sold out
16:32:49brixenbut seriously, Apple should comp my bumper
16:33:13evanyeah
16:33:13brixen$300 + 2 yr contract with Sh&t service == my phone should work :)
16:33:32brixenI still can't believe the display though
16:33:33evanyeah, it's definitely the worst part.
16:33:36brixenwow is all
16:33:48brixenand man is it fast
16:33:55brixenof course, compared to a 1st gen :)
16:34:50brixenthe "vulcan pinch" is thumb bottom left, index+middle finger top right
16:35:11brixenit works well except it's: 1, not comfortable, 2. not stable
16:35:13evaneven compared to the 3g
16:35:39brixenreally? noticably faster than 3g huh?
16:35:39evanis this when resting in your hand to tap on the screen?
16:35:40brixennice
16:35:45evana ton faster than the 3g
16:35:48brixenwo
16:35:51brixener wow
16:35:52evana little faster than the 3gs
16:36:01brixencool
16:36:19brixenyeah, death grip is apparently just sitting in your hand
16:36:29brixenI can't avoid touching the antennas that way
16:36:42brixenoh, I could "flat palm" it
16:36:43brixenheh
16:36:56brixenSNL should totally do a skit of iphone 4 users
16:37:02brixenman, that would be hilarious
16:37:26evanin my hand, i rest the bottom in my palm
16:37:28evanand cradle it
16:37:34evantypically.
16:38:09WALoeIIIevan: I was trying to catch you since you had replied just then on github, I followed up in the issue (http://github.com/evanphx/rubinius/issues/issue/387)
16:38:30evanWALoeIII: yep, i see.
16:38:45evanWALoeIII: it only happens when you put that route into a rails app and start script/console?
16:38:54evancould you do that and gist the output?
16:39:02WALoeIIIdbussink had suggested I file an issue, I am not sure the route was ever correct
16:39:08WALoeIIIthe gist is linked in the issue
16:39:08evanoh, i guess thats at the top.
16:39:11WALoeIIIhttp://gist.github.com/452547
16:39:23WALoeIIIits not actually the line in the route
16:39:31WALoeIIIits some magic instance_eval that rails does
16:39:39evanwtf is that "generated code" ...
16:39:42WALoeIIIto create a shortcut to speed route recognition
16:39:47evanoh
16:39:54evanit's because rails is using some instance_eval thingy.
16:40:05WALoeIIII have no idea how it all works though the router is such a black box to me
16:40:09evanit's not in the routes file at all.
16:40:16WALoeIIIcorrect
16:40:21WALoeIIIbut thats the only way I know how to trip it
16:40:24evanit's in the generated code that is written by reading the routes file
16:40:26evanok
16:40:30evani missed that in your explanation.
16:40:37evani thought you were saying the routes.rb had the syntax error.
16:40:40WALoeIIIsorry I should have clarified that
16:40:51WALoeIIIthe error shows up inside rails in the magical instance_eval
16:41:00WALoeIIII don't even know where that code is being evald' into
16:41:23evani'm betting it's some using of "def #{a.inspect}()" in rails.
16:41:34evanthey seem to do that a lot.
16:41:40evanok, let me take a look.
16:41:43evanthis should be a quicky.
16:41:44WALoeIIIits also interesting that only that route trips it
16:41:53WALoeIIIsince my actual routes file is like 400 lines
16:42:02WALoeIIIbut the rest of my tests pass! :D
16:42:47brixenwoot :)
16:43:00evanwo
16:43:01evanhm.
16:43:14evando I just need the route file change in a blank rails app?
16:43:31WALoeIIIyep
16:43:33WALoeIIIrails foo
16:43:38WALoeIIIthen paste that gist as the routes.rb
16:43:43WALoeIIIthen try to launch script/console
16:43:49evanas the noly thing in routes.rb?
16:44:08WALoeIIIyah
16:44:10WALoeIIIhttps://gist.github.com/60effef3719cbbe03f18
16:44:28WALoeIIIrbx -c should pass but booting rails will fail
16:44:31evank
16:47:44evanUG.
16:47:52evanI caused a bug.
16:51:48evanhrm
16:51:51evanseems to work here actually.
16:52:11evanusing exactly the routes.rb file you put in the gist
16:52:17WALoeIIIreaaaaly
16:52:32WALoeIIII can get it to repeatedly fail
16:52:45evanyep.
16:52:48WALoeIII09:52:41 ~ โ†’ ruby -v
16:52:48WALoeIIIrubinius 1.0.1 (1.8.7 release 2010-06-03 JI) [x86_64-apple-darwin10.4.0]
16:52:48WALoeIII09:52:43 ~ โ†’
16:52:56WALoeIIII could try HEAD
16:52:59evani'm on master
16:53:06evanok, i need to commit a fix for master real fast
16:53:07evanhold on.
16:53:45evani'm trying 1.0.1 release
16:55:49WALoeIIIyeah I just tried it again
16:55:51evanworks fine for me on 1.0.1 release too.
16:55:59WALoeIIIrhmm
16:56:12WALoeIIIwhat is different then?
16:56:34evanyou're not using a routes.rb that has other stuff in it, right?
16:56:41evanyou've got these # irrelevant comments in there
16:56:47evanwhich makes me think you're trying with code there.
16:56:48WALoeIIIyep
16:56:53WALoeIIIlet me push you my repo
16:56:56evank
16:57:12evanyou can just tar it up
16:57:24WALoeIIIaye
16:59:20WALoeIIIevan: https://x.onehub.com/transfers/3djh567w
17:01:21evanoh, i had rails 2.3.5
17:01:25evanthat might have been it.
17:01:26evanlets see.
17:02:53evanwtf.
17:03:32evanhow are you starting script/console?
17:03:45WALoeIIIliterally typing it
17:03:48WALoeIIIin the rails root
17:04:05evanscript/console is fucking stupid.
17:04:08evanit execs ruby
17:04:11evanwhich means i can't start it like
17:04:14evanrbx script/console
17:04:18evanbecause i have ruby == MRI
17:04:33WALoeIIII'm using rvm to symlink ruby to rbx
17:04:38evanok, i've got the crash on 1.0.1 release
17:04:55WALoeIIInot sure if I'm supposed to say 'yay' here
17:05:02evanis this case, yes!
17:05:03WALoeIIIat least I'm not crazy :-P
17:05:08evanmeans i'm faster to fixing it
17:05:12evancloser, rather.
17:05:28WALoeIIII'm still suprised the line even works
17:05:31WALoeIIIif you read it it makes no sense
17:05:35WALoeIIIa resource with no name?
17:05:54evani don't know what that line does
17:05:56evanhonestly.
17:07:08evanok, got the syntax error on head too
17:07:09evanfixing now.
17:07:34evanthis is not the first time we've had these kinds of bugs.
17:08:04WALoeIIILMK if you figure it out, I'm curious on the outcome
17:08:10WALoeIIInot if, when ;)
17:08:15evanshould be shortly.
17:08:35evana good repro is always the most time consuming part.
17:08:50evanug.
17:08:55evanyes, this bug was just reported.
17:09:08evanrails takes the output of Regexp#inspect and puts it straight into code.
17:09:16WALoeIIIdifferent manifestation?
17:09:18WALoeIIIah ok
17:09:34evanhere is the code that causes the error: http://gist.github.com/453133
17:09:54evansee the first \Z in the regexp
17:09:56evanit should be
17:10:04evan\Z|\/\/
17:10:10evanbut the 2nd / isn't escaped.
17:10:26brixenoh, that's another ticket
17:10:29evanand they didn't use %r!! to inject it.
17:10:30evanyeah
17:10:31evani know.
17:10:45evana confluence of a single issue.
17:10:52brixenok
17:12:32evansome of the rails code generation techniques leave something to be desired.
17:12:50brixenindeed
17:14:02evanwell, the repro is easy
17:14:16evanRegexp.new("//").inspect.should == "\/\/"
17:14:26evanRegexp.new("//").inspect.should == "/\/\//"
17:14:29evanrather.
17:18:37matthewd"/\\/\\//" rather :)
17:18:45evanno.
17:18:54evanthats String#inspect adding more \
17:18:56evanputs the output
17:19:41matthewd"\/".should == "/", though, no?
17:20:06evanhuh?
17:20:10matthewd(but yes, the extra escaping is for the string)
17:20:30evanyou don't need the extra \
17:20:41evanthat "\/" is a noop for "/"
17:20:52evansince / normally doesn't have to be escaped.
17:20:58matthewdRight
17:21:03evanoh, i see what you mean
17:21:09evanyou can't type "\/" in a string literal
17:21:17evanyou have to use "\\/" to get the \ to come through
17:21:18evangotcha
17:21:18evanyeah.
17:21:26evanthis is why this issue blows
17:21:32evansome methods add extra \
17:21:35evansome remove them.
17:21:36matthewd[or use single quotes], yeah
17:21:37evanso it's hard to debug.
17:21:49evanyes, single quotes are best.
17:22:37matthewdwonders how much would break if Regexp#inspect used r!! or something instead of //
17:22:55matthewdUndoubtedly, "lots"
17:23:28evaneh?
17:23:34evanRegexp#inspect does use %r!!
17:24:19brixenit returns a // string though
17:24:39matthewdhuh? I was [idly] suggesting: Regexp.new("//").inspect.should == "r!!"
17:24:44brixenyeah
17:24:55evanoh oh
17:25:02evanwould be nice
17:25:03evanyeah.
17:25:12evanbut people would scream bloody murder.
17:25:25brixenheh yeah
17:25:52brixenwould be nice if every alphabet had a natural meta alphabet so you never needed escaping
17:26:06brixenjust infinite (potentially) levels of meta :)
17:26:11BrianRice-workintriguing idea :)
17:26:19BrianRice-worka reflective tower for alphabets
17:27:49brixenI swear this is easier to do with an ideographic alphabet
17:29:23BrianRice-worknah, you're just not constrained by having it be your native idiom :)
17:29:52brixenthey have a much more sophisticated system for composition
17:30:24brixenmakes more sense to have chinese be a uniform world writing system than anything else we have
17:30:44brixenbecause there need be no particular phonics attached
17:33:27BrianRice-workI remember reaching a 7-year-old's reading level in Mandarin Chinese, and I must express that at least in that system, there are drawbacks
17:34:57brixensurely there are
17:35:12brixenI was about that level in japanese
17:36:08brixenthe information density is much higher than in a phonetic alphabet though
17:36:34matthewdWell, I just learnt that /\//.source != %r!/!.source, and am... more surprised than I should be
17:36:40brixenbut you can essentially turn any glyph into some sort of ideographic thing
17:37:01brixenjust wouldn't have 5k years of development behind it, for better or worse
17:40:17brixenBrianRice-work: by composition I mean that say english has only juxtaposition and that makes words ond words must conform grammatically
17:40:40brixenBrianRice-work: but the radical system in kanji is quite interesting and doesn't involve grammar per se
17:41:06BrianRice-workyeah, true
17:41:33BrianRice-workin a past life I invented an east/west convergence conlang to explore ideas like this. so I'm more or less that kind of nut :)
17:41:43brixenheh sweet
17:43:23matthewdevan: I think it should be something like: source.gsub(%r!(\\.)|/!) { $1 != '' ? $1 : '\/' }
17:43:41evanhah
17:43:51evanthis is what i'm making it
17:43:58evanjust finished testing it
17:43:58BrianRice-work(latin-ish alphabet, single lexical category, 4096 tenses)
17:43:58evan escape = source.gsub(%r!/!) { $`[-1] == ?\\ ? '/' : '\/' }
17:44:37matthewdDoes that deal with escaped \ ?
17:44:44evanyeah
17:44:51evanit sees that the thing right before it was a \
17:44:54evanand emits a / back out
17:45:14evanthough, yours is nice too
17:45:26evanjust saying "if it's an escaped character, send it out"
17:45:30matthewdI mean if the \ before is was itself escaped
17:45:38WALoeIII /play vuvuzela
17:45:46evanmatthewd: mmm.
17:46:09matthewdThough I just tried %r!\\/! and mine barfed
17:48:03evanmine is wrong too
17:48:06evanbut i can fix it.
17:48:23matthewdIf you were willing to ignore that, gsub(%r!\\?/!, '\/') should work, afaics
17:49:35evankendall :: git/rbx ยป bin/rbx
17:49:35evan>> %r!\\/!
17:49:35evan=> /\\\//
17:50:08brixenBrianRice-work: I need to delve back into my linguistics text
17:50:13matthewdAnd /\\\// round-trips?
17:54:41matthewdHeh... mine was wrong because I'd second guessed myself about $1 when it hadn't matched :P
17:54:41evanah damnit.
17:54:46evanno
17:54:50evangr.
17:54:58matthewdSeems right: source.gsub(%r!(\\.)|/!) { $1 || '\/' }
17:59:12evanyep
17:59:18evangive escapes the first chance
17:59:43matthewdOtherwise you'd have to look backwards for an odd number of \
18:00:02evanright.
18:00:20matthewdI guess you could save a few matches by changing the . to [\\/]
18:02:21matthewd(note SourceParser::Part#to_s too, if you haven't)
18:03:18evan:/
18:03:20evanyes.
18:03:26evanthanks.
18:49:41boyscoutProcess is a module, not a class. - f3e2390 - Evan Phoenix
18:49:41boyscoutFix Regexp#inspect, again. Fixes #382. - 77aae33 - Evan Phoenix
18:49:41boyscoutAdd more tests for Regexp#inspect - 395e20c - Evan Phoenix
18:57:48boyscoutCI: rubinius: 395e20c successful: 3456 files, 13607 examples, 41171 expectations, 0 failures, 0 errors
20:27:27evanbrixen: so, got an iphone case at lunch.
20:27:38evanmakes my iphone experience better
20:27:41evannot just reception wise
20:27:44evaneasier to hold
20:32:33BrianRice-workwere the edges bothersome?
20:32:58evanslightly yes, in my big hands.
20:33:12evanmy palm is wider than the whole phone
20:33:16BrianRice-workok
20:33:43evani cheap rocketfish case thats still pretty slim and tough silicon makes it much nicer.
20:33:51evani've had this problem with many, many phones, not just iphone.
20:33:57evans/i cheap/a cheap/
20:34:24evanalso, the tough silicon has a lot more friction than the glass
20:34:40evanmaking it feel easier to hold in general
20:36:24evani'm handling the iphone much less dantily with the case on
20:36:29evanso it's at least half mental.
20:37:08brixenevan: you got a case or bumper?
20:37:12evancase.
20:37:15evani called around
20:37:16brixenhm
20:37:19evancouldn't find any bumpers
20:37:27evanone sec, i'll show ya
20:38:19evanhttp://skitch.com/evanphx/djh9q/cam
20:38:35brixennice
20:38:46brixenlooks sleek enough
20:39:05sbryant evan: we cab facetime!
20:39:08sbryanterr can.
20:39:18sbryanthas one as well.
20:39:18evanbrixen: the back (and a silly face) http://skitch.com/evanphx/djh9u/cam
20:39:33brixenheh, cool
20:39:34evanit's the rocketfish smoke case
20:39:56evanthe buttons (lock and volume) are bit harder to push
20:40:01evanthats the biggest downside.
20:40:06evanbut it's pretty minor.
20:40:16sbryantI like the lock being harder to turn off and on
20:40:25evanyeah, i don't mind it
20:40:25sbryantmy pocket would constantly change that
20:40:29evanmakes me feel like i'm working for it
20:40:33evan"LOCK THAT BITCH!"
20:40:39sbryanthaha
20:40:47sbryanthave you FaceTime'd yet?
20:40:54evana few times!
20:40:58sbryantYeah same here
20:41:08evanit's awesome.
20:41:09sbryantsome of my office mates have them and we've facetimed
20:41:11sbryantyep
20:41:13sbryantand my friend.
20:41:41sbryantwas surprised, was expecting it to be all 'janky'
20:41:49sbryantbut it was flawless.
20:41:51evanyeah
20:41:52evanit's awesome
20:42:01evani've already debugging code over it with @wycats
20:42:06sbryantnice
20:42:16evanthere is going to be a nice sized market for iphone holders i think
20:42:23sbryantyeah
20:42:30evanI used quatchi's lap.
20:43:46evanhttp://skitch.com/evanphx/dj7yj/cam
20:43:58scooprso, I guess it's better quality than standard 3g-video calls? =)
20:44:25evanI guess so, never done one of those
20:44:48brixenscoopr: you smug non-us-ians :P
20:45:10scoopr=)
20:45:31brixen"The US goes wild over video calls a decade after the rest of the world. News at 11"
20:45:34brixen:)
20:46:08scooprit's like five years since I tried those, then face-directed cameras were a bit rare and *really* crappy quality itself, so the actual video stream would of been crap anyway
20:46:23evanforcing it over wifi helps
20:46:32evanmeans the streams can be higher quality
20:46:40evannow that wifi is everywhere.
20:51:48toulmeanevan: brixen: http://twitter.com/assaf/status/17035724921
20:52:11toulmeanI asked Assaf for the links and doco to repro, let me know if that's of interest.
20:53:01evantoulmean: yeah, i reply'd too
20:53:05evanasking for any details from -Xprofile
20:53:12toulmeanok cool.
20:54:39toulmeandon't mind Assaf btw, he's a professional ranter with an edge for dramatic comparisons :)
20:55:00evanhahah
20:55:12evanthanks for the heads up
20:55:25toulmeanI used to work with him :) he's an uber geek and a good coder.
20:56:12evanwell, hopefully we can win him over with kindness and responsiveness
20:57:47brixenand he's obviously not vanity testing fib(40)! :)
20:58:33devinusis there a reason rubinius isnt migrating to LLVM 2.7 yet ?
20:58:34toulmeanI don't know what he's doing. I would recommend telling him you know a good expresso shop in LA, he hangs out South often.
20:59:00brixenI'm heading to a coffee shop right now
20:59:12brixenbut probably about 1k mi north of him
20:59:46evandevinus: i've done the migration
20:59:52evanjust haven't committed it yet.
21:00:09evanit's going to blow up the user of prebuilts
21:00:21evanso I need to do it a bit coordinated to get the prebuilts rebuild.
21:00:24evanrebuilt.
21:01:15devinusevan: that's awesome!
21:01:40evanit was actually a very painless migration
21:01:44evanthey only changed a few APIs
21:01:54sbryantany benefits?
21:02:06evanthere are bunch of API benefits
21:02:14evanit didn't make everything 2x faster though, no.
21:02:54sbryantDoes it allow for moving more code to it?
21:03:11evaneh?
21:03:17evanwhat do ya mean
21:03:19sbryanterr, I am a master wordsmith.
21:03:41sbryantIs it possible to use more of it for execution (jit)
21:04:22evanstill not sure what you mean
21:04:37evanmore of it being what?
21:04:39evani haven't been holding back
21:04:52devinusevan: yes you have!
21:04:57devinusyou're hiding some jitting from us!
21:04:59devinuswhere is it!
21:05:15sbryantJust code in general. Running less ruby.
21:05:22sbryantmore code generation.
21:05:47sbryantIf I'm confusing you, then nevermind. I must not be making sense
21:05:52evanit doesn't work like that.
21:07:12brixenllvm 2.7 includes a "Turbo Ruby" button, yes
21:07:16brixen:)
21:07:20sbryantI don't mean it like that
21:07:28sbryantI just mean is there anything new to take advantage of
21:08:00evansome passes have improved
21:08:14evanwe're going to take advantage for their new metadata API
21:09:49sbryantneat-o.
21:10:05sbryantWhat kind of information will be stored?
21:13:28evantype based info
21:13:44evanthat can be propagated around
21:14:00evanfor instance, we can memoize knowledge on nodes
21:14:09evanand read it back later to know "oh, we already tested this thing is a String, don't test again"
21:14:23evanthats very highlevel type info
21:14:33evanthat we can't express at LLVMs lowlevel now.
21:19:27BrianRice-workgood idea
21:27:17devinusevan: how many people working on Rubinius are employed at Engine Yard ?
21:32:34evanjust 2
21:32:36evanbrixen and I
21:43:36devinusevan: was there really talk about vmware making an offer for EY :P
21:43:52evanthats above my pay grade, so I don't know.
21:44:26devinusevan: if vmware DID acquire EY you and Avi Bryant would work together if im not mistaken ^.^
21:44:40evaneh?
21:44:44evanavi works for twitter now.
21:44:53evanhe never worked for gemstone
21:45:16devinusevan: oh?
21:45:19devinusinteresting
21:45:28evantwitter bought dabbledb
21:45:53devinusah
21:48:24BrianRice-workright
21:48:25evanbut, funny enough, avi and I were born on the same day.
21:48:32evanas in, same month, same day, same year.
21:49:22scooprseparated at birth
21:52:04scooprbummer, valgrind's snowleopard branch almost works. But, it doesn't support sse4 opcodes or something, hence can't run cocoa stuff 'cause the system floor/ceil etc. use those
21:52:46Defilerso close. so close.
21:55:01evanscoopr: oh nice.
21:56:05scooprI guess it still has other issues too, but that's the first one I encountered running some if my stuff
21:56:14scooprif->Of
21:58:37devinusthere needs to be a isitrubinius.com
21:59:34evandevinus: you're welcome to start it.
22:28:16dwaitehello
22:32:17brixenhi dwaite
22:49:23evanbrixen: http://gist.github.com/453561
22:49:29evannew output from inline.debug
22:49:37evanshows the inlining level visually
22:49:37evan:D
22:49:38brixenwoot!
22:55:53toulmeanhey guys, sqlite3 is not supported by rbx ?
22:56:05toulmean$>rbx -S gem install sqlite
22:56:05toulmeanERROR: could not find gem sqlite locally or in a repository
22:56:14toulmean$>rbx -S gem install sqlite3
22:56:15toulmeanBuilding native extensions. This could take a while...
22:56:15toulmeanERROR: Error installing sqlite3:
22:56:15toulmean sqlite3 requires Ruby version >= 1.9.1.
22:56:24toulmeanI must be missing something.
22:56:50evantoulmean: it's sqlite3-ruby
22:56:54evanis the same of the gem.
22:57:09toulmeanok
22:57:45toulmeanevan: got the repro from vanity, there is an issue with rand. Will paste the trace in a gist for you.
22:58:04evanok
23:01:01toulmeanevan: http://gist.github.com/453571
23:01:13toulmeanevan: that sounds like something I can help fixing.
23:01:20toulmeanif I have time this week-end.
23:01:30evanthats weird.
23:02:18evandid someone break shuffle all together?
23:02:49brixenworks for me
23:02:59evanme too
23:03:11evantoulmean: figure out what rand method is being called there
23:03:25evanis ActiveSupport perhaps adding a Array#rand
23:03:29evanand thus breaking this code?
23:03:35brixenor something else
23:03:47brixencould be in the app too
23:03:55brixentoulmean: can I clone the code?
23:03:57evanyep
23:03:59evanthats what it is
23:04:04evanfucking active_support.
23:04:08brixenugh
23:04:18evan>> [].method(:rand)
23:04:18evan=> #<Method: Array#rand (defined in ActiveSupport::CoreExtensions::Array::RandomAccess at /Users/evan/git/rbx/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/array/random_acces s.rb:10)>
23:04:26evanthats an easy fix
23:04:34evanshuffle! needs to call Kernel.rand
23:07:44evantoulmean: it's a 2 second fix
23:07:55evando you want to do it? doing it now would be best.
23:22:18bcghttp://github.com/bcg/rubinius/commit/733ca3638ce7a6cfb633f207ebc8f7c3e7636bfe
23:22:47brixenbcg: sweet
23:23:02bcgI can't get any version of 1.9 to work with rubinius/spec so I'm at a loss for how to cross test RBIGNUM_SIGN (short of creating a test bed outside of spec/)
23:23:21brixenbcg: as long as it works on 1.8 you should be good
23:23:28brixenI'll fix the specs for 1.9 shortly
23:24:02brixenbcg: in bignum_spec.c, use RBIGNUM_SIGN instead of rb_big_sign(obj)
23:24:24brixenwe just want to expose RBIGNUM_SIGN as the API
23:24:29brixensince that's what MRI has
23:24:52bcgohh yea that makes sense
23:27:30brixenbcg: also, if you can give me 2 format-patchs, one for the specs and one for rbx
23:27:44brixensince I sync the specs back to rubyspec, I need those commits separate from rbx code
23:29:46toulmeanevan: happy to do it.
23:30:08toulmeanbrixen: go clone assaf/vanity and run rake test
23:30:11toulmeanenjoy
23:34:04evantoulmean: i'm about to commit it
23:34:06evanit's trivial.
23:34:14toulmeanevan: ok go.
23:34:19toulmeanI'll pull.
23:34:27toulmeanevan: anything else sticking out ?
23:34:34evannot off hand, no.
23:34:46toulmeanoh need to install garb
23:34:52brixentoulmean: a bunch of those look like missing deps
23:34:56brixenyeah, garb
23:34:57toulmeanyes.
23:35:00toulmeandoing it.
23:35:04brixenand not sure about the redis ones
23:35:04toulmeanthen updating my gist.
23:40:12toulmeanok, no more errors showing up.
23:40:23brixensweet
23:40:23toulmeanI'll install rbx.
23:40:23evanjsut the rand ones?
23:40:27boyscoutUse Kernel.rand rather than rand to avoid AS conflict - d4a4a56 - Evan Phoenix
23:40:36toulmeanjust the rand ones and probably some derived from rand
23:40:38toulmeanhard to say.
23:40:45evank
23:40:46toulmeanso doing it again with your fix. Thanks!
23:40:50evanthere is the fix for rand ^^
23:41:12toulmeanyep
23:41:18brixenwe should call those ASS conflicts (active support stupidity)
23:41:48toulmean:shrugs:
23:41:48evanhah
23:42:04toulmeanI dunno why this happened.
23:42:26brixenactives support should not overide a method and change its arity
23:42:30brixenwhich is what happened
23:42:34brixenbasically
23:42:56toulmeanah and then your code depends on that method that changed. And you didn't foolproof enough.
23:43:13toulmeanbut then you should see the problem just running the test suite for active records ?
23:43:15brixenwell, how much foolproofing do you do in OO code?
23:43:26toulmeanthat would make nice functional testing ?
23:43:27brixenI mean, that's the point, sending messages
23:43:50toulmeanI understand.
23:43:55brixenKernel methods are the public API on every object
23:44:53brixenshit like this constantly gets through MRI because *they don't send messages in core Ruby code*
23:44:57brixenthey call C functions
23:45:06brixenrbx sends messages
23:45:16evantoulmean: it's as foolproof as ruby gets
23:45:23brixenie dispatches like normal Ruby code
23:45:29evanbefore it was calling "rand" and expect to get the version in Kernel
23:45:34evanbut AS added Array#rand
23:45:38evanso by calling Kernel.rand directly
23:45:42evanthats the ruby way.
23:45:53brixenthat's the broken Ruby way
23:46:07toulmeanok.
23:46:37brixenno it is impossible for our Array#shuffle to sanely use an Array#rand
23:46:42brixens/no/now/
23:47:17brixenor any subclass of Array#rand
23:47:19evanwell, are you saying that AS could change Kernel.rand too?
23:47:55brixenno, it should define Array#rand consistant with #rand, since rand is a public API an any obj via Kernel
23:48:06brixenconsistent with Kernel#rand
23:48:37boyscoutCI: rubinius: d4a4a56 successful: 3456 files, 13607 examples, 41171 expectations, 0 failures, 0 errors
23:48:37evanagreed.
23:48:52evanoverriding a Kernel method is a no-no.
23:49:11evanand we're basically the litmus test for that kind of thing now.
23:49:15evanbecause of the amount of ruby code we run.
23:49:33brixenoverriding in a manner that does not preserve its substitutability is a no-no
23:50:04evanyes.
23:50:16brixenwe should have a website that tracks this
23:50:21toulmeanrubySpec ?
23:50:37brixenunfortunately no
23:50:38toulmeanor eventually a tool to check ?
23:50:52brixenbecause MRI would fail a ton of these
23:51:03brixenMRI's implementation is NOT OO
23:51:08toulmeanlike a tool that mocks Kernel methods, and then it runs and you see what got transformed.
23:51:25brixenit's not Kernel methods
23:51:26toulmeanit's not for MRI. It's for you to foolproof your code against those guys.
23:51:47brixenwe don't want to "foolproof" our code
23:51:48toulmeanbrixen: no, it's not Kernel methods, but they got renamed. Oh well. I hope it was a one off thing.
23:51:55brixenwe want people to write OO code
23:52:04brixenlest all our code sucks ass :P
23:52:30toulmeanok!
23:52:33brixentoulmean: do you know what the liskov substitution principle is?
23:52:39toulmeanno.
23:52:55brixenok, it's quite simple and important
23:53:11toulmeanI have 26 failures with your master.
23:53:20toulmeanNoMethodError: no method 'pair' on UNIXSocket
23:53:20brixenbasically, it says that you should be able to use a subclass anywhere you would use a superclass
23:54:12brixenany code that understands the semantics of an instance of a superclass A should function exactly the same when the instance of A is replaced by an instance of S where S < A
23:55:16brixentoulmean: could you update the gist?
23:55:42toulmeanbrixen: sorry wasn't clear again. I got 26 failures with your master branch for rubinius.
23:55:56toulmeanI can probably run rbx anyway.
23:56:06brixenwait what?
23:56:14brixenyou got 26 errors running the rbx specs?
23:56:28evantoulmean: that's not in 1.0.1 i don't think, but it's in master.
23:56:28toulmeanyes.
23:56:34toulmeanoh.
23:56:36evanUNIXSocket.pair
23:56:36toulmeandamn it.
23:56:38toulmeanyes
23:56:45toulmeanwhat's the branch I should check out ?
23:56:45evansorry :(
23:56:49evanmaster
23:56:53toulmeanevan: you are not to blame.
23:56:59toulmeanI'm on your master.
23:57:20evanyou might need to update
23:59:36evanbrixen: oh, i've got the JIT using packed ivar info to make inlined accessors faster
23:59:44evan||| inlining: read to '@next' on Hash::Entry in #each_entry (packed index: 3)