Show enters and exits. Hide enters and exits.
| 04:19:43 | eventualbuddha | installed the osx 10.6 binary version of rubinius earlier today. can't seem to require iconv: http://gist.github.com/452398 โ ideas? |
| 05:33:00 | brixen | eventualbuddha: what is your LD_LIBRARY_PATH set to? |
| 07:02:26 | WALoeIII | Does Rails 2.3.8 run on 1.0.1? |
| 07:02:43 | WALoeIII | I cannot get past route.rb but I am not sure if this is my doing rbx's |
| 07:06:33 | dbussink | WALoeIII: last time i tried with 2.3.5 i could get it running with what was master at that point |
| 07:06:40 | dbussink | WALoeIII: do you have a backtrace? |
| 07:07:03 | WALoeIII | http://gist.github.com/452547 |
| 07:08:20 | WALoeIII | fhttp://github.com/rails/rails/blob/v2.3.8/actionpack/lib/action_controller/routing/route.rb#L205 |
| 07:08:24 | WALoeIII | http://github.com/rails/rails/blob/v2.3.8/actionpack/lib/action_controller/routing/route.rb#L205 |
| 07:08:28 | WALoeIII | is the line |
| 07:08:42 | dbussink | WALoeIII: what's interesting here is the body code |
| 07:09:00 | dbussink | WALoeIII: because apparently there's something weird in there that borks the compiler |
| 07:09:21 | WALoeIII | I'm not very familiar with the internals |
| 07:09:56 | WALoeIII | is this the body local then being string subb'd in |
| 07:10:05 | WALoeIII | I could just put it all in there for shiggles and see if it works |
| 07:12:40 | WALoeIII | so its something to do with MY routes |
| 07:12:51 | WALoeIII | because I got into the console on a fresh app |
| 07:14:17 | WALoeIII | ok commenting out routes.rb resolves it |
| 07:14:21 | WALoeIII | going to binary search my file |
| 07:18:47 | dbussink | WALoeIII: ah ok, so not a general rails 2.3.8 issue, but probably something specific for your app |
| 07:18:56 | dbussink | WALoeIII: would be great if you could isolate it |
| 07:18:57 | WALoeIII | got it down to about 5 lines |
| 07:19:03 | WALoeIII | will have it here in just a sec |
| 07:19:09 | WALoeIII | script/console is still reallly slow |
| 07:19:38 | dbussink | rails loads up a huge amount of code and that's still a relalively slower part in rbx |
| 07:19:42 | dbussink | so you notice that probably |
| 07:24:01 | WALoeIII | dbussink: found it |
| 07:24:03 | WALoeIII | writing up a gist now |
| 07:24:07 | WALoeIII | it was a bug in our code anyways |
| 07:25:19 | WALoeIII | https://gist.github.com/60effef3719cbbe03f18 |
| 07:25:26 | WALoeIII | what was meant here is admin.root |
| 07:25:57 | dbussink | WALoeIII: ah, giving '' for resource is a bit weird yeah :P |
| 07:26:13 | WALoeIII | admin.root :controller => :summaries, :action => :show |
| 07:26:15 | dbussink | WALoeIII: but 1.8.7 works with this code? |
| 07:26:17 | WALoeIII | its booting up now |
| 07:26:20 | WALoeIII | apparently |
| 07:26:27 | WALoeIII | but I have no idea how or why |
| 07:26:32 | WALoeIII | its flat out wrong |
| 07:26:38 | WALoeIII | how can you have an empty resource? |
| 07:27:16 | dbussink | you can't but if rbx blows up and 1.8.7 doesn't, there's a potential bug there for rbx |
| 07:27:23 | dbussink | since it behaves different from 1.8.7 |
| 07:27:35 | dbussink | but maybe it's not worth fixing, but can't tell by just this data |
| 07:27:43 | dbussink | but it's probably something really obscure :P |
| 07:28:34 | WALoeIII | create a rails app |
| 07:28:36 | WALoeIII | paste that gist in |
| 07:28:38 | WALoeIII | it breaks instantly |
| 07:29:35 | dbussink | WALoeIII: 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:42 | dbussink | to see if it's something important or not |
| 07:30:15 | WALoeIII | sure |
| 07:31:47 | WALoeIII | yeaaaaaaaaaaah |
| 07:31:49 | WALoeIII | its running my tests! |
| 07:32:24 | dbussink | WALoeIII: cool :) |
| 07:32:47 | WALoeIII | http://github.com/evanphx/rubinius/issues/issue/387 |
| 07:33:24 | dbussink | WALoeIII: btw, i suggest mentioning exact steps to reproduce, like installing rails 2.3.8 |
| 07:33:30 | WALoeIII | ah ok |
| 07:33:44 | dbussink | adding stuff to routes.rb does not mean everyone knows it's about rails straight away :) |
| 07:33:49 | dbussink | assume no such knowledge ;) |
| 07:40:31 | WALoeIII | dbussink: 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:02 | dbussink | WALoeIII: best way is to use something like defined?(RUBY_ENGINE) && RUBY_ENGINE == 'rbx' |
| 07:41:10 | WALoeIII | ok |
| 07:41:35 | WALoeIII | http://rubygems.org/gems/zlib-crc32_combine |
| 07:41:43 | WALoeIII | I guess its because I decare ffi as a runtime dependency |
| 07:41:47 | dbussink | WALoeIII: but beware, the mri ffi api and the rubinius have diverged some |
| 07:42:01 | WALoeIII | rubygems doesn't know about different engines does it? |
| 07:42:12 | dbussink | not that i know of |
| 07:42:58 | WALoeIII | heh, looks like GC doesn't get run on my tests, process is up to 1.4GB |
| 07:44:09 | dbussink | WALoeIII: GC not being run is not really possible, maybe you're hitting some leak with ffi? |
| 07:44:16 | dbussink | WALoeIII: or this isn't ffi stuff? |
| 07:44:20 | WALoeIII | not ffi |
| 07:44:21 | WALoeIII | just ruby |
| 07:44:25 | WALoeIII | probably a leak somewhere |
| 07:44:28 | WALoeIII | I'll profile it later |
| 07:44:29 | WALoeIII | bedtime now |
| 07:44:41 | WALoeIII | so stoked to even get it running |
| 07:45:13 | dbussink | WALoeIII: hehe, good night! |
| 07:47:21 | WALoeIII | there may be some id2ref crap or something going on |
| 07:47:27 | WALoeIII | profiling will help |
| 07:49:38 | dbussink | WALoeIII: ah, evan and headius have ranted on that at railsconf :) |
| 07:49:49 | dbussink | so hopefully people will remove it being used more and more |
| 07:55:42 | WALoeIII | evan: ping |
| 08:03:22 | dbussink | WALoeIII: he's probably still asleep, us west coast |
| 08:03:33 | WALoeIII | I'm in Seattle |
| 08:03:34 | dbussink | or already asleep depending on perspective ;) |
| 08:03:47 | WALoeIII | he actually just replied to my ticket like 2 seconds before I sent that ping |
| 08:03:50 | dbussink | ah, 1am, that's probably already :P |
| 08:03:54 | dbussink | WALoeIII: ah, ok :) |
| 08:04:00 | WALoeIII | was going to explain in here but he went away |
| 08:04:05 | WALoeIII | s'ok I'll catch him tomorrow |
| 08:04:07 | WALoeIII | my bed time too |
| 16:03:17 | evan | WALoeIII: I am now available. |
| 16:22:31 | brixen | morning |
| 16:24:13 | goyox86 | brixen: morning |
| 16:24:41 | brixen | goyox86: howdy |
| 16:31:04 | goyox86 | brixen: fine!, just going out to lunch :-) |
| 16:31:14 | brixen | yum! |
| 16:31:19 | brixen | just eating breakfast |
| 16:31:27 | brixen | and typing with my mouth full :) |
| 16:31:44 | evan | brixen: having death grip issues? |
| 16:31:55 | brixen | evan: ridiculously |
| 16:31:59 | evan | :( |
| 16:32:08 | brixen | I cannot hold my phone and use it |
| 16:32:17 | brixen | in any comfortable configuration |
| 16:32:25 | brixen | it's fun watching the bars go up and down |
| 16:32:29 | evan | get a bumper |
| 16:32:31 | evan | thats what i'm doing. |
| 16:32:34 | brixen | I will |
| 16:32:39 | brixen | as soon as they are not sold out |
| 16:32:49 | brixen | but seriously, Apple should comp my bumper |
| 16:33:13 | evan | yeah |
| 16:33:13 | brixen | $300 + 2 yr contract with Sh&t service == my phone should work :) |
| 16:33:32 | brixen | I still can't believe the display though |
| 16:33:33 | evan | yeah, it's definitely the worst part. |
| 16:33:36 | brixen | wow is all |
| 16:33:48 | brixen | and man is it fast |
| 16:33:55 | brixen | of course, compared to a 1st gen :) |
| 16:34:50 | brixen | the "vulcan pinch" is thumb bottom left, index+middle finger top right |
| 16:35:11 | brixen | it works well except it's: 1, not comfortable, 2. not stable |
| 16:35:13 | evan | even compared to the 3g |
| 16:35:39 | brixen | really? noticably faster than 3g huh? |
| 16:35:39 | evan | is this when resting in your hand to tap on the screen? |
| 16:35:40 | brixen | nice |
| 16:35:45 | evan | a ton faster than the 3g |
| 16:35:48 | brixen | wo |
| 16:35:51 | brixen | er wow |
| 16:35:52 | evan | a little faster than the 3gs |
| 16:36:01 | brixen | cool |
| 16:36:19 | brixen | yeah, death grip is apparently just sitting in your hand |
| 16:36:29 | brixen | I can't avoid touching the antennas that way |
| 16:36:42 | brixen | oh, I could "flat palm" it |
| 16:36:43 | brixen | heh |
| 16:36:56 | brixen | SNL should totally do a skit of iphone 4 users |
| 16:37:02 | brixen | man, that would be hilarious |
| 16:37:26 | evan | in my hand, i rest the bottom in my palm |
| 16:37:28 | evan | and cradle it |
| 16:37:34 | evan | typically. |
| 16:38:09 | WALoeIII | evan: 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:30 | evan | WALoeIII: yep, i see. |
| 16:38:45 | evan | WALoeIII: it only happens when you put that route into a rails app and start script/console? |
| 16:38:54 | evan | could you do that and gist the output? |
| 16:39:02 | WALoeIII | dbussink had suggested I file an issue, I am not sure the route was ever correct |
| 16:39:08 | WALoeIII | the gist is linked in the issue |
| 16:39:08 | evan | oh, i guess thats at the top. |
| 16:39:11 | WALoeIII | http://gist.github.com/452547 |
| 16:39:23 | WALoeIII | its not actually the line in the route |
| 16:39:31 | WALoeIII | its some magic instance_eval that rails does |
| 16:39:39 | evan | wtf is that "generated code" ... |
| 16:39:42 | WALoeIII | to create a shortcut to speed route recognition |
| 16:39:47 | evan | oh |
| 16:39:54 | evan | it's because rails is using some instance_eval thingy. |
| 16:40:05 | WALoeIII | I have no idea how it all works though the router is such a black box to me |
| 16:40:09 | evan | it's not in the routes file at all. |
| 16:40:16 | WALoeIII | correct |
| 16:40:21 | WALoeIII | but thats the only way I know how to trip it |
| 16:40:24 | evan | it's in the generated code that is written by reading the routes file |
| 16:40:26 | evan | ok |
| 16:40:30 | evan | i missed that in your explanation. |
| 16:40:37 | evan | i thought you were saying the routes.rb had the syntax error. |
| 16:40:40 | WALoeIII | sorry I should have clarified that |
| 16:40:51 | WALoeIII | the error shows up inside rails in the magical instance_eval |
| 16:41:00 | WALoeIII | I don't even know where that code is being evald' into |
| 16:41:23 | evan | i'm betting it's some using of "def #{a.inspect}()" in rails. |
| 16:41:34 | evan | they seem to do that a lot. |
| 16:41:40 | evan | ok, let me take a look. |
| 16:41:43 | evan | this should be a quicky. |
| 16:41:44 | WALoeIII | its also interesting that only that route trips it |
| 16:41:53 | WALoeIII | since my actual routes file is like 400 lines |
| 16:42:02 | WALoeIII | but the rest of my tests pass! :D |
| 16:42:47 | brixen | woot :) |
| 16:43:00 | evan | wo |
| 16:43:01 | evan | hm. |
| 16:43:14 | evan | do I just need the route file change in a blank rails app? |
| 16:43:31 | WALoeIII | yep |
| 16:43:33 | WALoeIII | rails foo |
| 16:43:38 | WALoeIII | then paste that gist as the routes.rb |
| 16:43:43 | WALoeIII | then try to launch script/console |
| 16:43:49 | evan | as the noly thing in routes.rb? |
| 16:44:08 | WALoeIII | yah |
| 16:44:10 | WALoeIII | https://gist.github.com/60effef3719cbbe03f18 |
| 16:44:28 | WALoeIII | rbx -c should pass but booting rails will fail |
| 16:44:31 | evan | k |
| 16:47:44 | evan | UG. |
| 16:47:52 | evan | I caused a bug. |
| 16:51:48 | evan | hrm |
| 16:51:51 | evan | seems to work here actually. |
| 16:52:11 | evan | using exactly the routes.rb file you put in the gist |
| 16:52:17 | WALoeIII | reaaaaly |
| 16:52:32 | WALoeIII | I can get it to repeatedly fail |
| 16:52:45 | evan | yep. |
| 16:52:48 | WALoeIII | 09:52:41 ~ โ ruby -v |
| 16:52:48 | WALoeIII | rubinius 1.0.1 (1.8.7 release 2010-06-03 JI) [x86_64-apple-darwin10.4.0] |
| 16:52:48 | WALoeIII | 09:52:43 ~ โ |
| 16:52:56 | WALoeIII | I could try HEAD |
| 16:52:59 | evan | i'm on master |
| 16:53:06 | evan | ok, i need to commit a fix for master real fast |
| 16:53:07 | evan | hold on. |
| 16:53:45 | evan | i'm trying 1.0.1 release |
| 16:55:49 | WALoeIII | yeah I just tried it again |
| 16:55:51 | evan | works fine for me on 1.0.1 release too. |
| 16:55:59 | WALoeIII | rhmm |
| 16:56:12 | WALoeIII | what is different then? |
| 16:56:34 | evan | you're not using a routes.rb that has other stuff in it, right? |
| 16:56:41 | evan | you've got these # irrelevant comments in there |
| 16:56:47 | evan | which makes me think you're trying with code there. |
| 16:56:48 | WALoeIII | yep |
| 16:56:53 | WALoeIII | let me push you my repo |
| 16:56:56 | evan | k |
| 16:57:12 | evan | you can just tar it up |
| 16:57:24 | WALoeIII | aye |
| 16:59:20 | WALoeIII | evan: https://x.onehub.com/transfers/3djh567w |
| 17:01:21 | evan | oh, i had rails 2.3.5 |
| 17:01:25 | evan | that might have been it. |
| 17:01:26 | evan | lets see. |
| 17:02:53 | evan | wtf. |
| 17:03:32 | evan | how are you starting script/console? |
| 17:03:45 | WALoeIII | literally typing it |
| 17:03:48 | WALoeIII | in the rails root |
| 17:04:05 | evan | script/console is fucking stupid. |
| 17:04:08 | evan | it execs ruby |
| 17:04:11 | evan | which means i can't start it like |
| 17:04:14 | evan | rbx script/console |
| 17:04:18 | evan | because i have ruby == MRI |
| 17:04:33 | WALoeIII | I'm using rvm to symlink ruby to rbx |
| 17:04:38 | evan | ok, i've got the crash on 1.0.1 release |
| 17:04:55 | WALoeIII | not sure if I'm supposed to say 'yay' here |
| 17:05:02 | evan | is this case, yes! |
| 17:05:03 | WALoeIII | at least I'm not crazy :-P |
| 17:05:08 | evan | means i'm faster to fixing it |
| 17:05:12 | evan | closer, rather. |
| 17:05:28 | WALoeIII | I'm still suprised the line even works |
| 17:05:31 | WALoeIII | if you read it it makes no sense |
| 17:05:35 | WALoeIII | a resource with no name? |
| 17:05:54 | evan | i don't know what that line does |
| 17:05:56 | evan | honestly. |
| 17:07:08 | evan | ok, got the syntax error on head too |
| 17:07:09 | evan | fixing now. |
| 17:07:34 | evan | this is not the first time we've had these kinds of bugs. |
| 17:08:04 | WALoeIII | LMK if you figure it out, I'm curious on the outcome |
| 17:08:10 | WALoeIII | not if, when ;) |
| 17:08:15 | evan | should be shortly. |
| 17:08:35 | evan | a good repro is always the most time consuming part. |
| 17:08:50 | evan | ug. |
| 17:08:55 | evan | yes, this bug was just reported. |
| 17:09:08 | evan | rails takes the output of Regexp#inspect and puts it straight into code. |
| 17:09:16 | WALoeIII | different manifestation? |
| 17:09:18 | WALoeIII | ah ok |
| 17:09:34 | evan | here is the code that causes the error: http://gist.github.com/453133 |
| 17:09:54 | evan | see the first \Z in the regexp |
| 17:09:56 | evan | it should be |
| 17:10:04 | evan | \Z|\/\/ |
| 17:10:10 | evan | but the 2nd / isn't escaped. |
| 17:10:26 | brixen | oh, that's another ticket |
| 17:10:29 | evan | and they didn't use %r!! to inject it. |
| 17:10:30 | evan | yeah |
| 17:10:31 | evan | i know. |
| 17:10:45 | evan | a confluence of a single issue. |
| 17:10:52 | brixen | ok |
| 17:12:32 | evan | some of the rails code generation techniques leave something to be desired. |
| 17:12:50 | brixen | indeed |
| 17:14:02 | evan | well, the repro is easy |
| 17:14:16 | evan | Regexp.new("//").inspect.should == "\/\/" |
| 17:14:26 | evan | Regexp.new("//").inspect.should == "/\/\//" |
| 17:14:29 | evan | rather. |
| 17:18:37 | matthewd | "/\\/\\//" rather :) |
| 17:18:45 | evan | no. |
| 17:18:54 | evan | thats String#inspect adding more \ |
| 17:18:56 | evan | puts the output |
| 17:19:41 | matthewd | "\/".should == "/", though, no? |
| 17:20:06 | evan | huh? |
| 17:20:10 | matthewd | (but yes, the extra escaping is for the string) |
| 17:20:30 | evan | you don't need the extra \ |
| 17:20:41 | evan | that "\/" is a noop for "/" |
| 17:20:52 | evan | since / normally doesn't have to be escaped. |
| 17:20:58 | matthewd | Right |
| 17:21:03 | evan | oh, i see what you mean |
| 17:21:09 | evan | you can't type "\/" in a string literal |
| 17:21:17 | evan | you have to use "\\/" to get the \ to come through |
| 17:21:18 | evan | gotcha |
| 17:21:18 | evan | yeah. |
| 17:21:26 | evan | this is why this issue blows |
| 17:21:32 | evan | some methods add extra \ |
| 17:21:35 | evan | some remove them. |
| 17:21:36 | matthewd | [or use single quotes], yeah |
| 17:21:37 | evan | so it's hard to debug. |
| 17:21:49 | evan | yes, single quotes are best. |
| 17:22:37 | matthewd | wonders how much would break if Regexp#inspect used r!! or something instead of // |
| 17:22:55 | matthewd | Undoubtedly, "lots" |
| 17:23:28 | evan | eh? |
| 17:23:34 | evan | Regexp#inspect does use %r!! |
| 17:24:19 | brixen | it returns a // string though |
| 17:24:39 | matthewd | huh? I was [idly] suggesting: Regexp.new("//").inspect.should == "r!!" |
| 17:24:44 | brixen | yeah |
| 17:24:55 | evan | oh oh |
| 17:25:02 | evan | would be nice |
| 17:25:03 | evan | yeah. |
| 17:25:12 | evan | but people would scream bloody murder. |
| 17:25:25 | brixen | heh yeah |
| 17:25:52 | brixen | would be nice if every alphabet had a natural meta alphabet so you never needed escaping |
| 17:26:06 | brixen | just infinite (potentially) levels of meta :) |
| 17:26:11 | BrianRice-work | intriguing idea :) |
| 17:26:19 | BrianRice-work | a reflective tower for alphabets |
| 17:27:49 | brixen | I swear this is easier to do with an ideographic alphabet |
| 17:29:23 | BrianRice-work | nah, you're just not constrained by having it be your native idiom :) |
| 17:29:52 | brixen | they have a much more sophisticated system for composition |
| 17:30:24 | brixen | makes more sense to have chinese be a uniform world writing system than anything else we have |
| 17:30:44 | brixen | because there need be no particular phonics attached |
| 17:33:27 | BrianRice-work | I 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:57 | brixen | surely there are |
| 17:35:12 | brixen | I was about that level in japanese |
| 17:36:08 | brixen | the information density is much higher than in a phonetic alphabet though |
| 17:36:34 | matthewd | Well, I just learnt that /\//.source != %r!/!.source, and am... more surprised than I should be |
| 17:36:40 | brixen | but you can essentially turn any glyph into some sort of ideographic thing |
| 17:37:01 | brixen | just wouldn't have 5k years of development behind it, for better or worse |
| 17:40:17 | brixen | BrianRice-work: by composition I mean that say english has only juxtaposition and that makes words ond words must conform grammatically |
| 17:40:40 | brixen | BrianRice-work: but the radical system in kanji is quite interesting and doesn't involve grammar per se |
| 17:41:06 | BrianRice-work | yeah, true |
| 17:41:33 | BrianRice-work | in 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:43 | brixen | heh sweet |
| 17:43:23 | matthewd | evan: I think it should be something like: source.gsub(%r!(\\.)|/!) { $1 != '' ? $1 : '\/' } |
| 17:43:41 | evan | hah |
| 17:43:51 | evan | this is what i'm making it |
| 17:43:58 | evan | just finished testing it |
| 17:43:58 | BrianRice-work | (latin-ish alphabet, single lexical category, 4096 tenses) |
| 17:43:58 | evan | escape = source.gsub(%r!/!) { $`[-1] == ?\\ ? '/' : '\/' } |
| 17:44:37 | matthewd | Does that deal with escaped \ ? |
| 17:44:44 | evan | yeah |
| 17:44:51 | evan | it sees that the thing right before it was a \ |
| 17:44:54 | evan | and emits a / back out |
| 17:45:14 | evan | though, yours is nice too |
| 17:45:26 | evan | just saying "if it's an escaped character, send it out" |
| 17:45:30 | matthewd | I mean if the \ before is was itself escaped |
| 17:45:38 | WALoeIII | /play vuvuzela |
| 17:45:46 | evan | matthewd: mmm. |
| 17:46:09 | matthewd | Though I just tried %r!\\/! and mine barfed |
| 17:48:03 | evan | mine is wrong too |
| 17:48:06 | evan | but i can fix it. |
| 17:48:23 | matthewd | If you were willing to ignore that, gsub(%r!\\?/!, '\/') should work, afaics |
| 17:49:35 | evan | kendall :: git/rbx ยป bin/rbx |
| 17:49:35 | evan | >> %r!\\/! |
| 17:49:35 | evan | => /\\\// |
| 17:50:08 | brixen | BrianRice-work: I need to delve back into my linguistics text |
| 17:50:13 | matthewd | And /\\\// round-trips? |
| 17:54:41 | matthewd | Heh... mine was wrong because I'd second guessed myself about $1 when it hadn't matched :P |
| 17:54:41 | evan | ah damnit. |
| 17:54:46 | evan | no |
| 17:54:50 | evan | gr. |
| 17:54:58 | matthewd | Seems right: source.gsub(%r!(\\.)|/!) { $1 || '\/' } |
| 17:59:12 | evan | yep |
| 17:59:18 | evan | give escapes the first chance |
| 17:59:43 | matthewd | Otherwise you'd have to look backwards for an odd number of \ |
| 18:00:02 | evan | right. |
| 18:00:20 | matthewd | I guess you could save a few matches by changing the . to [\\/] |
| 18:02:21 | matthewd | (note SourceParser::Part#to_s too, if you haven't) |
| 18:03:18 | evan | :/ |
| 18:03:20 | evan | yes. |
| 18:03:26 | evan | thanks. |
| 18:49:41 | boyscout | Process is a module, not a class. - f3e2390 - Evan Phoenix |
| 18:49:41 | boyscout | Fix Regexp#inspect, again. Fixes #382. - 77aae33 - Evan Phoenix |
| 18:49:41 | boyscout | Add more tests for Regexp#inspect - 395e20c - Evan Phoenix |
| 18:57:48 | boyscout | CI: rubinius: 395e20c successful: 3456 files, 13607 examples, 41171 expectations, 0 failures, 0 errors |
| 20:27:27 | evan | brixen: so, got an iphone case at lunch. |
| 20:27:38 | evan | makes my iphone experience better |
| 20:27:41 | evan | not just reception wise |
| 20:27:44 | evan | easier to hold |
| 20:32:33 | BrianRice-work | were the edges bothersome? |
| 20:32:58 | evan | slightly yes, in my big hands. |
| 20:33:12 | evan | my palm is wider than the whole phone |
| 20:33:16 | BrianRice-work | ok |
| 20:33:43 | evan | i cheap rocketfish case thats still pretty slim and tough silicon makes it much nicer. |
| 20:33:51 | evan | i've had this problem with many, many phones, not just iphone. |
| 20:33:57 | evan | s/i cheap/a cheap/ |
| 20:34:24 | evan | also, the tough silicon has a lot more friction than the glass |
| 20:34:40 | evan | making it feel easier to hold in general |
| 20:36:24 | evan | i'm handling the iphone much less dantily with the case on |
| 20:36:29 | evan | so it's at least half mental. |
| 20:37:08 | brixen | evan: you got a case or bumper? |
| 20:37:12 | evan | case. |
| 20:37:15 | evan | i called around |
| 20:37:16 | brixen | hm |
| 20:37:19 | evan | couldn't find any bumpers |
| 20:37:27 | evan | one sec, i'll show ya |
| 20:38:19 | evan | http://skitch.com/evanphx/djh9q/cam |
| 20:38:35 | brixen | nice |
| 20:38:46 | brixen | looks sleek enough |
| 20:39:05 | sbryant | evan: we cab facetime! |
| 20:39:08 | sbryant | err can. |
| 20:39:18 | sbryant | has one as well. |
| 20:39:18 | evan | brixen: the back (and a silly face) http://skitch.com/evanphx/djh9u/cam |
| 20:39:33 | brixen | heh, cool |
| 20:39:34 | evan | it's the rocketfish smoke case |
| 20:39:56 | evan | the buttons (lock and volume) are bit harder to push |
| 20:40:01 | evan | thats the biggest downside. |
| 20:40:06 | evan | but it's pretty minor. |
| 20:40:16 | sbryant | I like the lock being harder to turn off and on |
| 20:40:25 | evan | yeah, i don't mind it |
| 20:40:25 | sbryant | my pocket would constantly change that |
| 20:40:29 | evan | makes me feel like i'm working for it |
| 20:40:33 | evan | "LOCK THAT BITCH!" |
| 20:40:39 | sbryant | haha |
| 20:40:47 | sbryant | have you FaceTime'd yet? |
| 20:40:54 | evan | a few times! |
| 20:40:58 | sbryant | Yeah same here |
| 20:41:08 | evan | it's awesome. |
| 20:41:09 | sbryant | some of my office mates have them and we've facetimed |
| 20:41:11 | sbryant | yep |
| 20:41:13 | sbryant | and my friend. |
| 20:41:41 | sbryant | was surprised, was expecting it to be all 'janky' |
| 20:41:49 | sbryant | but it was flawless. |
| 20:41:51 | evan | yeah |
| 20:41:52 | evan | it's awesome |
| 20:42:01 | evan | i've already debugging code over it with @wycats |
| 20:42:06 | sbryant | nice |
| 20:42:16 | evan | there is going to be a nice sized market for iphone holders i think |
| 20:42:23 | sbryant | yeah |
| 20:42:30 | evan | I used quatchi's lap. |
| 20:43:46 | evan | http://skitch.com/evanphx/dj7yj/cam |
| 20:43:58 | scoopr | so, I guess it's better quality than standard 3g-video calls? =) |
| 20:44:25 | evan | I guess so, never done one of those |
| 20:44:48 | brixen | scoopr: you smug non-us-ians :P |
| 20:45:10 | scoopr | =) |
| 20:45:31 | brixen | "The US goes wild over video calls a decade after the rest of the world. News at 11" |
| 20:45:34 | brixen | :) |
| 20:46:08 | scoopr | it'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:23 | evan | forcing it over wifi helps |
| 20:46:32 | evan | means the streams can be higher quality |
| 20:46:40 | evan | now that wifi is everywhere. |
| 20:51:48 | toulmean | evan: brixen: http://twitter.com/assaf/status/17035724921 |
| 20:52:11 | toulmean | I asked Assaf for the links and doco to repro, let me know if that's of interest. |
| 20:53:01 | evan | toulmean: yeah, i reply'd too |
| 20:53:05 | evan | asking for any details from -Xprofile |
| 20:53:12 | toulmean | ok cool. |
| 20:54:39 | toulmean | don't mind Assaf btw, he's a professional ranter with an edge for dramatic comparisons :) |
| 20:55:00 | evan | hahah |
| 20:55:12 | evan | thanks for the heads up |
| 20:55:25 | toulmean | I used to work with him :) he's an uber geek and a good coder. |
| 20:56:12 | evan | well, hopefully we can win him over with kindness and responsiveness |
| 20:57:47 | brixen | and he's obviously not vanity testing fib(40)! :) |
| 20:58:33 | devinus | is there a reason rubinius isnt migrating to LLVM 2.7 yet ? |
| 20:58:34 | toulmean | I 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:00 | brixen | I'm heading to a coffee shop right now |
| 20:59:12 | brixen | but probably about 1k mi north of him |
| 20:59:46 | evan | devinus: i've done the migration |
| 20:59:52 | evan | just haven't committed it yet. |
| 21:00:09 | evan | it's going to blow up the user of prebuilts |
| 21:00:21 | evan | so I need to do it a bit coordinated to get the prebuilts rebuild. |
| 21:00:24 | evan | rebuilt. |
| 21:01:15 | devinus | evan: that's awesome! |
| 21:01:40 | evan | it was actually a very painless migration |
| 21:01:44 | evan | they only changed a few APIs |
| 21:01:54 | sbryant | any benefits? |
| 21:02:06 | evan | there are bunch of API benefits |
| 21:02:14 | evan | it didn't make everything 2x faster though, no. |
| 21:02:54 | sbryant | Does it allow for moving more code to it? |
| 21:03:11 | evan | eh? |
| 21:03:17 | evan | what do ya mean |
| 21:03:19 | sbryant | err, I am a master wordsmith. |
| 21:03:41 | sbryant | Is it possible to use more of it for execution (jit) |
| 21:04:22 | evan | still not sure what you mean |
| 21:04:37 | evan | more of it being what? |
| 21:04:39 | evan | i haven't been holding back |
| 21:04:52 | devinus | evan: yes you have! |
| 21:04:57 | devinus | you're hiding some jitting from us! |
| 21:04:59 | devinus | where is it! |
| 21:05:15 | sbryant | Just code in general. Running less ruby. |
| 21:05:22 | sbryant | more code generation. |
| 21:05:47 | sbryant | If I'm confusing you, then nevermind. I must not be making sense |
| 21:05:52 | evan | it doesn't work like that. |
| 21:07:12 | brixen | llvm 2.7 includes a "Turbo Ruby" button, yes |
| 21:07:16 | brixen | :) |
| 21:07:20 | sbryant | I don't mean it like that |
| 21:07:28 | sbryant | I just mean is there anything new to take advantage of |
| 21:08:00 | evan | some passes have improved |
| 21:08:14 | evan | we're going to take advantage for their new metadata API |
| 21:09:49 | sbryant | neat-o. |
| 21:10:05 | sbryant | What kind of information will be stored? |
| 21:13:28 | evan | type based info |
| 21:13:44 | evan | that can be propagated around |
| 21:14:00 | evan | for instance, we can memoize knowledge on nodes |
| 21:14:09 | evan | and read it back later to know "oh, we already tested this thing is a String, don't test again" |
| 21:14:23 | evan | thats very highlevel type info |
| 21:14:33 | evan | that we can't express at LLVMs lowlevel now. |
| 21:19:27 | BrianRice-work | good idea |
| 21:27:17 | devinus | evan: how many people working on Rubinius are employed at Engine Yard ? |
| 21:32:34 | evan | just 2 |
| 21:32:36 | evan | brixen and I |
| 21:43:36 | devinus | evan: was there really talk about vmware making an offer for EY :P |
| 21:43:52 | evan | thats above my pay grade, so I don't know. |
| 21:44:26 | devinus | evan: if vmware DID acquire EY you and Avi Bryant would work together if im not mistaken ^.^ |
| 21:44:40 | evan | eh? |
| 21:44:44 | evan | avi works for twitter now. |
| 21:44:53 | evan | he never worked for gemstone |
| 21:45:16 | devinus | evan: oh? |
| 21:45:19 | devinus | interesting |
| 21:45:28 | evan | twitter bought dabbledb |
| 21:45:53 | devinus | ah |
| 21:48:24 | BrianRice-work | right |
| 21:48:25 | evan | but, funny enough, avi and I were born on the same day. |
| 21:48:32 | evan | as in, same month, same day, same year. |
| 21:49:22 | scoopr | separated at birth |
| 21:52:04 | scoopr | bummer, 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:46 | Defiler | so close. so close. |
| 21:55:01 | evan | scoopr: oh nice. |
| 21:56:05 | scoopr | I guess it still has other issues too, but that's the first one I encountered running some if my stuff |
| 21:56:14 | scoopr | if->Of |
| 21:58:37 | devinus | there needs to be a isitrubinius.com |
| 21:59:34 | evan | devinus: you're welcome to start it. |
| 22:28:16 | dwaite | hello |
| 22:32:17 | brixen | hi dwaite |
| 22:49:23 | evan | brixen: http://gist.github.com/453561 |
| 22:49:29 | evan | new output from inline.debug |
| 22:49:37 | evan | shows the inlining level visually |
| 22:49:37 | evan | :D |
| 22:49:38 | brixen | woot! |
| 22:55:53 | toulmean | hey guys, sqlite3 is not supported by rbx ? |
| 22:56:05 | toulmean | $>rbx -S gem install sqlite |
| 22:56:05 | toulmean | ERROR: could not find gem sqlite locally or in a repository |
| 22:56:14 | toulmean | $>rbx -S gem install sqlite3 |
| 22:56:15 | toulmean | Building native extensions. This could take a while... |
| 22:56:15 | toulmean | ERROR: Error installing sqlite3: |
| 22:56:15 | toulmean | sqlite3 requires Ruby version >= 1.9.1. |
| 22:56:24 | toulmean | I must be missing something. |
| 22:56:50 | evan | toulmean: it's sqlite3-ruby |
| 22:56:54 | evan | is the same of the gem. |
| 22:57:09 | toulmean | ok |
| 22:57:45 | toulmean | evan: got the repro from vanity, there is an issue with rand. Will paste the trace in a gist for you. |
| 22:58:04 | evan | ok |
| 23:01:01 | toulmean | evan: http://gist.github.com/453571 |
| 23:01:13 | toulmean | evan: that sounds like something I can help fixing. |
| 23:01:20 | toulmean | if I have time this week-end. |
| 23:01:30 | evan | thats weird. |
| 23:02:18 | evan | did someone break shuffle all together? |
| 23:02:49 | brixen | works for me |
| 23:02:59 | evan | me too |
| 23:03:11 | evan | toulmean: figure out what rand method is being called there |
| 23:03:25 | evan | is ActiveSupport perhaps adding a Array#rand |
| 23:03:29 | evan | and thus breaking this code? |
| 23:03:35 | brixen | or something else |
| 23:03:47 | brixen | could be in the app too |
| 23:03:55 | brixen | toulmean: can I clone the code? |
| 23:03:57 | evan | yep |
| 23:03:59 | evan | thats what it is |
| 23:04:04 | evan | fucking active_support. |
| 23:04:08 | brixen | ugh |
| 23:04:18 | evan | >> [].method(:rand) |
| 23:04:18 | evan | => #<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:26 | evan | thats an easy fix |
| 23:04:34 | evan | shuffle! needs to call Kernel.rand |
| 23:07:44 | evan | toulmean: it's a 2 second fix |
| 23:07:55 | evan | do you want to do it? doing it now would be best. |
| 23:22:18 | bcg | http://github.com/bcg/rubinius/commit/733ca3638ce7a6cfb633f207ebc8f7c3e7636bfe |
| 23:22:47 | brixen | bcg: sweet |
| 23:23:02 | bcg | I 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:21 | brixen | bcg: as long as it works on 1.8 you should be good |
| 23:23:28 | brixen | I'll fix the specs for 1.9 shortly |
| 23:24:02 | brixen | bcg: in bignum_spec.c, use RBIGNUM_SIGN instead of rb_big_sign(obj) |
| 23:24:24 | brixen | we just want to expose RBIGNUM_SIGN as the API |
| 23:24:29 | brixen | since that's what MRI has |
| 23:24:52 | bcg | ohh yea that makes sense |
| 23:27:30 | brixen | bcg: also, if you can give me 2 format-patchs, one for the specs and one for rbx |
| 23:27:44 | brixen | since I sync the specs back to rubyspec, I need those commits separate from rbx code |
| 23:29:46 | toulmean | evan: happy to do it. |
| 23:30:08 | toulmean | brixen: go clone assaf/vanity and run rake test |
| 23:30:11 | toulmean | enjoy |
| 23:34:04 | evan | toulmean: i'm about to commit it |
| 23:34:06 | evan | it's trivial. |
| 23:34:14 | toulmean | evan: ok go. |
| 23:34:19 | toulmean | I'll pull. |
| 23:34:27 | toulmean | evan: anything else sticking out ? |
| 23:34:34 | evan | not off hand, no. |
| 23:34:46 | toulmean | oh need to install garb |
| 23:34:52 | brixen | toulmean: a bunch of those look like missing deps |
| 23:34:56 | brixen | yeah, garb |
| 23:34:57 | toulmean | yes. |
| 23:35:00 | toulmean | doing it. |
| 23:35:04 | brixen | and not sure about the redis ones |
| 23:35:04 | toulmean | then updating my gist. |
| 23:40:12 | toulmean | ok, no more errors showing up. |
| 23:40:23 | brixen | sweet |
| 23:40:23 | toulmean | I'll install rbx. |
| 23:40:23 | evan | jsut the rand ones? |
| 23:40:27 | boyscout | Use Kernel.rand rather than rand to avoid AS conflict - d4a4a56 - Evan Phoenix |
| 23:40:36 | toulmean | just the rand ones and probably some derived from rand |
| 23:40:38 | toulmean | hard to say. |
| 23:40:45 | evan | k |
| 23:40:46 | toulmean | so doing it again with your fix. Thanks! |
| 23:40:50 | evan | there is the fix for rand ^^ |
| 23:41:12 | toulmean | yep |
| 23:41:18 | brixen | we should call those ASS conflicts (active support stupidity) |
| 23:41:48 | toulmean | :shrugs: |
| 23:41:48 | evan | hah |
| 23:42:04 | toulmean | I dunno why this happened. |
| 23:42:26 | brixen | actives support should not overide a method and change its arity |
| 23:42:30 | brixen | which is what happened |
| 23:42:34 | brixen | basically |
| 23:42:56 | toulmean | ah and then your code depends on that method that changed. And you didn't foolproof enough. |
| 23:43:13 | toulmean | but then you should see the problem just running the test suite for active records ? |
| 23:43:15 | brixen | well, how much foolproofing do you do in OO code? |
| 23:43:26 | toulmean | that would make nice functional testing ? |
| 23:43:27 | brixen | I mean, that's the point, sending messages |
| 23:43:50 | toulmean | I understand. |
| 23:43:55 | brixen | Kernel methods are the public API on every object |
| 23:44:53 | brixen | shit like this constantly gets through MRI because *they don't send messages in core Ruby code* |
| 23:44:57 | brixen | they call C functions |
| 23:45:06 | brixen | rbx sends messages |
| 23:45:16 | evan | toulmean: it's as foolproof as ruby gets |
| 23:45:23 | brixen | ie dispatches like normal Ruby code |
| 23:45:29 | evan | before it was calling "rand" and expect to get the version in Kernel |
| 23:45:34 | evan | but AS added Array#rand |
| 23:45:38 | evan | so by calling Kernel.rand directly |
| 23:45:42 | evan | thats the ruby way. |
| 23:45:53 | brixen | that's the broken Ruby way |
| 23:46:07 | toulmean | ok. |
| 23:46:37 | brixen | no it is impossible for our Array#shuffle to sanely use an Array#rand |
| 23:46:42 | brixen | s/no/now/ |
| 23:47:17 | brixen | or any subclass of Array#rand |
| 23:47:19 | evan | well, are you saying that AS could change Kernel.rand too? |
| 23:47:55 | brixen | no, it should define Array#rand consistant with #rand, since rand is a public API an any obj via Kernel |
| 23:48:06 | brixen | consistent with Kernel#rand |
| 23:48:37 | boyscout | CI: rubinius: d4a4a56 successful: 3456 files, 13607 examples, 41171 expectations, 0 failures, 0 errors |
| 23:48:37 | evan | agreed. |
| 23:48:52 | evan | overriding a Kernel method is a no-no. |
| 23:49:11 | evan | and we're basically the litmus test for that kind of thing now. |
| 23:49:15 | evan | because of the amount of ruby code we run. |
| 23:49:33 | brixen | overriding in a manner that does not preserve its substitutability is a no-no |
| 23:50:04 | evan | yes. |
| 23:50:16 | brixen | we should have a website that tracks this |
| 23:50:21 | toulmean | rubySpec ? |
| 23:50:37 | brixen | unfortunately no |
| 23:50:38 | toulmean | or eventually a tool to check ? |
| 23:50:52 | brixen | because MRI would fail a ton of these |
| 23:51:03 | brixen | MRI's implementation is NOT OO |
| 23:51:08 | toulmean | like a tool that mocks Kernel methods, and then it runs and you see what got transformed. |
| 23:51:25 | brixen | it's not Kernel methods |
| 23:51:26 | toulmean | it's not for MRI. It's for you to foolproof your code against those guys. |
| 23:51:47 | brixen | we don't want to "foolproof" our code |
| 23:51:48 | toulmean | brixen: no, it's not Kernel methods, but they got renamed. Oh well. I hope it was a one off thing. |
| 23:51:55 | brixen | we want people to write OO code |
| 23:52:04 | brixen | lest all our code sucks ass :P |
| 23:52:30 | toulmean | ok! |
| 23:52:33 | brixen | toulmean: do you know what the liskov substitution principle is? |
| 23:52:39 | toulmean | no. |
| 23:52:55 | brixen | ok, it's quite simple and important |
| 23:53:11 | toulmean | I have 26 failures with your master. |
| 23:53:20 | toulmean | NoMethodError: no method 'pair' on UNIXSocket |
| 23:53:20 | brixen | basically, it says that you should be able to use a subclass anywhere you would use a superclass |
| 23:54:12 | brixen | any 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:16 | brixen | toulmean: could you update the gist? |
| 23:55:42 | toulmean | brixen: sorry wasn't clear again. I got 26 failures with your master branch for rubinius. |
| 23:55:56 | toulmean | I can probably run rbx anyway. |
| 23:56:06 | brixen | wait what? |
| 23:56:14 | brixen | you got 26 errors running the rbx specs? |
| 23:56:28 | evan | toulmean: that's not in 1.0.1 i don't think, but it's in master. |
| 23:56:28 | toulmean | yes. |
| 23:56:34 | toulmean | oh. |
| 23:56:36 | evan | UNIXSocket.pair |
| 23:56:36 | toulmean | damn it. |
| 23:56:38 | toulmean | yes |
| 23:56:45 | toulmean | what's the branch I should check out ? |
| 23:56:45 | evan | sorry :( |
| 23:56:49 | evan | master |
| 23:56:53 | toulmean | evan: you are not to blame. |
| 23:56:59 | toulmean | I'm on your master. |
| 23:57:20 | evan | you might need to update |
| 23:59:36 | evan | brixen: oh, i've got the JIT using packed ivar info to make inlined accessors faster |
| 23:59:44 | evan | ||| inlining: read to '@next' on Hash::Entry in #each_entry (packed index: 3) |