Show enters and exits. Hide enters and exits.
| 00:11:44 | brixen | it's very cool how many rubyspecs we are passing |
| 00:11:52 | brixen | Array: 88 files, 1305 examples, 3464 expectations, 0 failures, 0 errors |
| 00:12:33 | evan | yeah |
| 00:15:40 | boyscout | Disambiguate a vcall send to the send_method opcode. Fixes #293. - b4ad0af - Evan Phoenix |
| 00:26:01 | boyscout | CI: rubinius: b4ad0af successful: 3458 files, 13604 examples, 41228 expectations, 0 failures, 0 errors |
| 00:28:15 | brixen | evan: what's the verdict on #295? |
| 00:28:44 | evan | mm |
| 00:28:47 | evan | still considering it. |
| 00:28:59 | evan | no verdict yet. |
| 00:29:52 | brixen | k |
| 00:32:08 | boyscout | More Array specs for not calling #initialize on subclasses. - 276a2e3 - Brian Ford |
| 00:32:09 | boyscout | Sadly Barbara can't save us. Closes #301. - 3825295 - Brian Ford |
| 00:32:53 | evan | Barbara? |
| 00:33:17 | brixen | Barbara Liskov |
| 00:33:32 | evan | ah |
| 00:33:33 | evan | hehe |
| 00:33:43 | brixen | despite her excellent work, people are not writing better codez :( |
| 00:34:05 | evan | no, they are not. |
| 00:34:08 | evan | sadly. |
| 00:34:20 | brixen | this feels like thunderstorm weather |
| 00:34:52 | brixen | evan: working on #302 next unless you are |
| 00:35:15 | evan | go for it. |
| 00:35:18 | brixen | k |
| 00:35:19 | evan | i'm checking out the yard hang. |
| 00:35:24 | brixen | cool |
| 00:36:08 | brixen | amazing how little time the bytecode compiler takes now |
| 00:36:18 | brixen | 107 sec for full run compiling, 83 pre-compiled |
| 00:36:24 | brixen | that's wild |
| 00:36:34 | evan | fuck. |
| 00:36:44 | evan | why is the rspec -h output formatted for like 120 columns |
| 00:36:44 | evan | :/ |
| 00:36:55 | brixen | hah, dunno |
| 00:37:01 | brixen | I read mspec there for a sec |
| 00:37:03 | brixen | :) |
| 00:37:30 | brixen | cus all the emo rspec users have 32" apple displays? |
| 00:38:04 | brixen | real devs use test/unit, and don't need no stinkin formatting |
| 00:38:06 | brixen | just bytes |
| 00:38:10 | brixen | yarrr |
| 00:38:17 | evan | hah |
| 00:39:09 | evan | wtf. ^C send to rspec seems to make it start over. |
| 00:39:12 | evan | it's very weird. |
| 00:39:17 | brixen | heh |
| 00:39:38 | brixen | as long as it doesn't pop up a "You seem to be trying to quit... Can I..." |
| 00:39:47 | evan | hah |
| 00:39:58 | evan | "It appears you want to quit, please type exit." |
| 00:40:08 | brixen | yeah, or taht |
| 00:40:10 | boyscout | CI: rubinius: 3825295 successful: 3458 files, 13630 examples, 41268 expectations, 0 failures, 0 errors |
| 00:43:49 | evan | oh yay. |
| 00:43:52 | evan | in yard |
| 00:43:58 | evan | class StatementList < Array |
| 00:44:03 | evan | def initialize(content) |
| 00:44:04 | fbuilesv | evan, brixen: don't make fun of rspec, right now rbx is helding my terminal hostage in sinatra until I make a request :P |
| 00:44:07 | evan | :/ |
| 00:44:16 | evan | good think you just fixed that! |
| 00:45:07 | brixen | 10 lashes for yard |
| 00:45:50 | brixen | fbuilesv: that's because rbx knows better than you :) |
| 00:46:37 | fbuilesv | brixen: I don't doubt it, I've been developing some tools this weekend and I just realized I was running rbx :D |
| 00:46:53 | evan | hah! |
| 00:47:00 | evan | :D |
| 00:48:00 | brixen | fbuilesv: that's awesome! |
| 00:48:34 | fbuilesv | brixen: yup, gonna see if I can fix that Kernel#caller issue now to be able to run my Sinatra code :) |
| 00:49:15 | brixen | fbuilesv: fun |
| 00:49:39 | brixen | sunny all day, now it's pouring rain |
| 00:49:41 | brixen | bummer |
| 00:54:02 | evan | brixen: oops! there are some cases in the compiler where we don't emit the value of a break or next argument |
| 00:54:07 | evan | thats why yard is looping forever |
| 00:54:10 | evan | it's got this weird code that does |
| 00:54:28 | evan | while ....include?(ary.last.class) |
| 00:54:35 | evan | next(ary.pop) if .... |
| 00:54:42 | evan | and we don't emit bytecode for the ary.pop |
| 00:54:43 | evan | oops! |
| 00:54:57 | evan | though, i'm curious where that value is supposed to be used... |
| 00:56:49 | evan | this is a definite ruby quiz question. |
| 00:58:07 | evan | UG |
| 00:58:22 | evan | "When next is used in a loop, any values following the next are ignored." |
| 00:58:42 | evan | so I guess 1.8 evaluates them and throws them away. |
| 00:59:25 | brixen | ugh |
| 00:59:51 | evan | so yard is just being extra wonderfully clever. |
| 01:00:03 | brixen | that's just terrible code |
| 01:00:27 | brixen | even ary.pop or next if ... would be a tiny bit better |
| 01:00:29 | brixen | tiny bit |
| 01:00:42 | brixen | well, not |
| 01:00:44 | brixen | hmm |
| 01:00:46 | brixen | it's just terrible |
| 01:02:50 | evan | wow. |
| 01:02:59 | evan | yard... uses callcc. |
| 01:03:01 | evan | O_o |
| 01:03:06 | brixen | hah |
| 01:03:16 | brixen | cus, what would docs be without callcc?! |
| 01:03:17 | evan | he's made a special condition for jruby and rubinius to not use it |
| 01:03:23 | evan | which was nice of him. |
| 01:03:26 | brixen | yeah |
| 01:03:41 | brixen | should have been a HUGE RED FLAG that you don't need it |
| 01:05:03 | evan | i'm really curious why now. |
| 01:16:47 | boyscout | Evaluate next's argument even though it's ignored. Fixes #307. - b99a34d - Evan Phoenix |
| 01:25:55 | boyscout | CI: rubinius: b99a34d successful: 3458 files, 13631 examples, 41269 expectations, 0 failures, 0 errors |
| 01:31:01 | brixen | defined? you are SO crazy |
| 01:31:29 | brixen | especially when you throw good ol' haphazard 1.9 in the mix |
| 01:31:35 | evan | heh |
| 01:35:00 | boyscout | Minor spec cleanup - b0ff44f - Evan Phoenix |
| 01:35:00 | boyscout | Report path to script bodies relatively. Fixes #308. - 769d17e - Evan Phoenix |
| 01:35:07 | evan | thats a kludge. |
| 01:35:23 | evan | i'm not sure how much further we want to go with caller. |
| 01:35:37 | evan | oh wait! |
| 01:35:53 | evan | we can get better file info that looking at the CompiledMethod's file field. |
| 01:42:51 | boyscout | CI: rubinius: 769d17e successful: 3458 files, 13631 examples, 41269 expectations, 0 failures, 0 errors |
| 01:45:41 | evan | oh rad. |
| 01:45:59 | evan | i've got Location using the active_path variables that CodeLoader sets up |
| 01:46:18 | evan | so backtraces now match up better |
| 01:50:16 | brixen | nice |
| 01:55:18 | jbnx | hi guys. was wondering if there's anyone else experiencing weirdness serving up static files from rails with rbx (http://github.com/evanphx/rubinius/issues#issue/310). I'm trying to put a rails app through its paces but blocked because of this |
| 01:58:18 | evan | jbnx: i was planning on taking a look at that tomorrow |
| 01:58:26 | evan | whats the easiest way to setup a repro? |
| 02:01:11 | boyscout | Allow CompiledMethods to report their current path better - 93746c6 - Evan Phoenix |
| 02:01:49 | jbnx | evan: ok, thanks. just let me know if you need any other information |
| 02:02:10 | evan | jbnx: i need to know a minimal reproduction of the bug |
| 02:02:42 | evan | ah ok, you have it in there |
| 02:02:52 | evan | actually, i just finished with this other bug |
| 02:02:53 | evan | i'll do this now. |
| 02:03:08 | jbnx | evan: yes, and verifying it on another machine now...should have it in two minutes or so |
| 02:03:12 | fbuilesv | evan: wrt #311 (json), how comes it builds the gem just fine here? |
| 02:03:30 | evan | fbuilesv: oh it does? interesting! |
| 02:03:36 | evan | fbuilesv: i'm not sure then! |
| 02:03:41 | fbuilesv | evan: http://gist.github.com/404507 |
| 02:03:42 | evan | i know his pathing is screwy though. |
| 02:03:48 | evan | because it's trying to use MRI headers |
| 02:03:50 | fbuilesv | ya, its loading MRI headers |
| 02:03:51 | fbuilesv | ya |
| 02:03:52 | fbuilesv | its weird |
| 02:04:06 | evan | ah! thats probably why |
| 02:04:10 | fbuilesv | looks like re.h is checked in the config file but not required |
| 02:04:13 | evan | looks like json is smart enough to work without re.h |
| 02:04:16 | fbuilesv | yup |
| 02:04:21 | evan | but in his setup, re.h is sort of available. |
| 02:04:24 | evan | thus the weirdness. |
| 02:04:43 | evan | please put your gist url in a comment |
| 02:04:48 | fbuilesv | on it |
| 02:05:01 | evan | danku |
| 02:09:00 | boyscout | CI: rubinius: 93746c6 successful: 3458 files, 13631 examples, 41269 expectations, 0 failures, 0 errors |
| 02:09:34 | cremes | evan: question... why would you "fix" evaluating next's arg when it is just thrown away; shouldn't that be fixed downstream? |
| 02:09:49 | evan | cremes: nope. |
| 02:09:51 | evan | because MRI evaluates them |
| 02:09:58 | evan | but then ignores the value of the expression |
| 02:10:02 | evan | so we must as well. |
| 02:10:17 | cremes | urhg... |
| 02:10:46 | evan | jbnx: what webserver did script/server use? |
| 02:11:01 | jbnx | WEBrick |
| 02:11:03 | evan | it seems to be working ok with mongrel |
| 02:11:04 | jbnx | odd thing is |
| 02:11:05 | evan | ok, let me try that. |
| 02:11:14 | jbnx | it says it's ruby 1.8.7 |
| 02:11:25 | jbnx | evan: [2010-05-17 22:10:55] INFO ruby 1.8.7 (2010-05-14) [x86_64-unknown-linux-gnu] |
| 02:11:30 | evan | :/ |
| 02:11:33 | evan | how are you starting it? |
| 02:11:39 | jbnx | $ script/server |
| 02:11:51 | jbnx | after switching to rbx via rvm |
| 02:11:59 | cremes | btw, i'll take issue 311 in the next day or so... i need to work on my C api chops |
| 02:12:20 | evan | hrm ok. |
| 02:12:22 | jbnx | evan, $ rbx script/server shows same thing...1.8.7 |
| 02:12:28 | fbuilesv | cremes: it worked here fine. |
| 02:12:40 | jbnx | this is 64-bit Ubuntu Lucid |
| 02:12:43 | evan | jbnx: weirdness.. |
| 02:12:44 | cremes | heh, i just read the issue comments... |
| 02:12:46 | fbuilesv | :) |
| 02:12:58 | cremes | glad it's working |
| 02:12:59 | fbuilesv | somehow it's loading /Library/Frameworks... stuff, not sure how to fix that. |
| 02:13:16 | evan | jbnx: ok, it shows that here too |
| 02:13:28 | jbnx | evan: oh, ok. I'm not losing it ;) |
| 02:13:30 | evan | jbnx: it must be just reporting parts of the version info we provide. |
| 02:13:30 | cremes | fbuilesv: perhaps he's on an old rvm release; rvm update --head is your friend |
| 02:13:44 | evan | hrm |
| 02:13:54 | evan | even so, prototype.js downloads ok... |
| 02:14:02 | cremes | back to hacking... |
| 02:14:57 | jbnx | evan: ok, verified this happening on this machine as well...though interestingly it gets to byte 49188 |
| 02:15:25 | evan | jbnx: what else can you tell me about your machine |
| 02:15:25 | jbnx | evan: also interesting...it appears prototype.js is the only file it has problems with |
| 02:15:27 | evan | OS X? |
| 02:15:37 | fbuilesv | ubuntu :P |
| 02:15:41 | jbnx | wget http://localhost:3000/javascripts/effects.js works fine |
| 02:15:41 | evan | 64bit? |
| 02:15:42 | fbuilesv | ah nvm, misread |
| 02:15:54 | jbnx | 64-bit Ubuntu Lucid |
| 02:16:00 | evan | jbnx: ok, this seems silly, but double check that the file on disk is the right size |
| 02:16:04 | evan | assume nothing! |
| 02:16:39 | jbnx | evan: -rw-r--r-- 1 jbnx jbnx 129738 2010-05-17 22:10 prototype.js |
| 02:16:48 | jbnx | and, it works if I switch to 1.8.7 |
| 02:17:03 | evan | did you create the rails app under 1.8.7? |
| 02:17:16 | jbnx | evan: no |
| 02:17:20 | jbnx | under rb |
| 02:17:23 | jbnx | rbx |
| 02:17:33 | jbnx | just created a new project. same behavior |
| 02:17:35 | jbnx | very, very odd |
| 02:17:35 | evan | ok |
| 02:17:44 | evan | just trying to isolate any behaviors |
| 02:17:50 | jbnx | evan: i understand |
| 02:17:51 | evan | 64bit linux... |
| 02:17:58 | evan | could you install mongrel and see if that works? |
| 02:18:03 | jbnx | sure, one sec |
| 02:18:09 | evan | that will at least give us a few more data points. |
| 02:18:38 | evan | I suddenly feel like House doing a differential... |
| 02:19:04 | jbnx | evan: yes, mongrel serves it just fine |
| 02:19:10 | evan | ah ok! |
| 02:19:15 | jbnx | so it's a webrick+rbx thing |
| 02:19:19 | evan | yep. |
| 02:20:04 | jbnx | ok, well, this gets me far enough to continue my testing. thanks. I assume it'll be a lower priority, so just msg me if you need any further info about my setup. I appreciate your help! |
| 02:20:09 | evan | hrmzers.. |
| 02:20:14 | evan | ok! |
| 02:20:24 | evan | i've got a 32 and 64bit linux i'll spin up some testing on |
| 02:20:57 | evan | ok, i'm going to get some dinner. |
| 02:21:05 | jbnx | evan: sounds good. thank you very much. I'll continue putting rbx through its paces. Very excited you guys have brought it this far. thanks for your hard work |
| 02:21:08 | jbnx | enjoy dinner |
| 02:24:52 | fbuilesv | evan: btw, thanks for the caller fix, everything's working fine now :D |
| 02:39:28 | evan | fbuilesv: oh good! |
| 02:45:19 | fbuilesv | evan: I also think http://github.com/evanphx/rubinius/issues#issue/288 can be closed, if he used gcc instead of g++ it'd be fine :P |
| 02:51:27 | evan | ah! ha! very good point. |
| 02:51:49 | evan | fbuilesv: closed! |
| 04:09:35 | boyscout | More specs for defined? with logical connectives. - 0d44fee - Brian Ford |
| 04:09:35 | boyscout | Fixed defined?(a && b). Closes #302. - 82d6483 - Brian Ford |
| 04:18:48 | boyscout | CI: rubinius: 82d6483 successful: 3458 files, 13649 examples, 41309 expectations, 0 failures, 0 errors |
| 04:25:36 | postmodern | so whens the next version of rubinius due out? |
| 04:25:52 | postmodern | is rubinius doing weekly/monthly hot releases now? |
| 04:26:00 | postmodern | or doing the death march release cycle |
| 04:40:02 | brixen | postmodern: we'll do a bugfix release fairly soon |
| 04:40:13 | brixen | feature releases will be less frequent |
| 04:40:25 | brixen | I'm going to write up a doc that explains it shortly |
| 04:40:33 | brixen | just finishing up importing nkf |
| 04:40:44 | brixen | mechanize loads and runs for me :) |
| 04:57:53 | boyscout | Added NKF ext from MRI 1.8.7. Closes #304. - 35a1b4e - Brian Ford |
| 05:05:50 | evan | brixen: woop! |
| 05:05:55 | boyscout | CI: rubinius: 35a1b4e successful: 3458 files, 13649 examples, 41309 expectations, 0 failures, 0 errors |
| 05:06:01 | evan | NKF didn't use much in terms of c-api that we didn't have I guess? |
| 05:06:08 | evan | much == any |
| 05:06:23 | evan | postmodern: you still around? |
| 05:08:46 | brixen | evan: well, I don't have any specs for it |
| 05:08:59 | brixen | I'm going through now and cleaning up RSTRING stuff |
| 05:09:14 | brixen | but mechanize loads and processes junk from the net-tubes |
| 05:09:30 | evan | woop woop ba-doop. |
| 05:10:40 | evan | ug. rb_iterate gives evan a frowny face |
| 05:10:41 | evan | :( |
| 05:11:46 | brixen | yeah, I remember looking at it and just going, oh damn |
| 05:11:49 | evan | it creates a new NODE* containing a raw C function |
| 05:11:52 | brixen | how are you going to do it? |
| 05:11:56 | evan | and makes a block out of it. |
| 05:11:59 | brixen | yeah |
| 05:12:10 | evan | welp. |
| 05:12:33 | brixen | I love the switch with case 0: ..; default: |
| 05:12:42 | evan | yeah. |
| 05:13:01 | evan | big attention to keeping the control flow easy to understand. |
| 05:13:04 | evan | *eyeroll* |
| 05:13:18 | brixen | absolutely |
| 05:13:26 | brixen | never know when you need to add a case |
| 05:13:36 | evan | gotta be ready!@ |
| 05:13:38 | brixen | all ifs should be converted to switch |
| 05:14:40 | evan | I wonder if you can do "goto (s == 1) ? l1 : l2;" in C |
| 05:14:42 | evan | probably not. |
| 05:14:59 | evan | but you can move the goto inside the ternary for similar effect. |
| 05:15:25 | evan | for rb_iterate |
| 05:15:34 | evan | i'm really tempted to special case the shit out of it. |
| 05:15:43 | evan | and raise an error if my special case doesn't work. |
| 05:15:46 | evan | ie |
| 05:16:03 | evan | check if the 1st argument is rb_each and the 2nd is an Array |
| 05:16:12 | evan | and if so, just loop over it in C and call the function |
| 05:16:26 | evan | that seems to be the only way people use rb_iterate |
| 05:16:40 | brixen | that seems totally reasonable |
| 05:18:39 | evan | it certainly is the pragmatic approach. |
| 05:19:21 | brixen | indeed |
| 05:21:36 | evan | after watching house, then looking at the MRI internals, it really is like MRI bleeding it's internals into extensions |
| 05:22:12 | evan | and it's being doing it for long enough I think it's got sepsis. |
| 05:22:54 | postmodern | evan, back |
| 05:23:02 | postmodern | evan, yeah this is the first i've heard of NKF |
| 05:23:02 | evan | postmodern: you asked about releases |
| 05:23:10 | postmodern | evan, yeah |
| 05:23:12 | evan | i was curious if you had an opinion on it |
| 05:23:21 | evan | i'm looking for opinions on how often to be doing releases, etc. |
| 05:23:35 | postmodern | evan, i would ask dbussink and dkubb |
| 05:23:35 | evan | brixen and I worked up a scheme that should allow us to do bugfix releases often |
| 05:23:39 | postmodern | evan, or lsegal |
| 05:23:45 | postmodern | evan, they've done roling releases |
| 05:23:45 | evan | the real question is how often. |
| 05:23:59 | evan | how do you define rolling releases? |
| 05:24:07 | postmodern | evan, lsegal did whenever a user found a show stopping bug |
| 05:24:21 | postmodern | evan, datamapper has doing bi-monthly releases a while back |
| 05:24:33 | postmodern | evan, i think it's a good idea when you have lots of minor bugs that need fixing |
| 05:24:42 | evan | well, both of those are different than rbx. |
| 05:24:48 | evan | in terms of the effect of a release. |
| 05:25:13 | evan | if we release 1.0.1, 1.0.2, and 1.0.3, each 2 weeks apart. |
| 05:25:16 | evan | that might be much |
| 05:25:22 | evan | don't ya think? |
| 05:25:26 | postmodern | evan, oh definitely |
| 05:25:41 | postmodern | evan, i would do 4 digit releases |
| 05:25:46 | evan | negative. |
| 05:25:46 | postmodern | evan, or just do weekly builds |
| 05:25:51 | evan | we are not doing 4 digit releases. |
| 05:26:04 | postmodern | holding out for 5 digit vesion numbers? ;) |
| 05:26:12 | evan | weekly builds are too much work for very little payoff |
| 05:26:27 | evan | people who want something that bleeding edge are usually comfortable with using it straight from git. |
| 05:26:34 | postmodern | i suppose so, it is very easy to git pull and rebuild |
| 05:26:39 | evan | no, 3 numbers and an optional prerelease tag |
| 05:26:39 | postmodern | yeah |
| 05:26:57 | evan | any more and you add unnecessary work and confusion. |
| 05:27:05 | postmodern | i guess it comes down to being able to point to a specific version, and say my code works past that point |
| 05:27:15 | postmodern | and not have to wait a very long time for that version number |
| 05:27:20 | evan | we have to be more conservative than, say, datamapper. |
| 05:27:32 | evan | since upgrading rbx is more work than upgrading datamapper. |
| 05:27:37 | evan | and it can effect a lot more. |
| 05:27:47 | postmodern | true |
| 05:28:05 | postmodern | im not sure where rbx is in terms of compatibility |
| 05:28:06 | evan | if we release too often, it's a moving target and people can't get comfortable |
| 05:28:16 | evan | not often enough, and bugs languish in users hands |
| 05:28:29 | evan | postmodern: that doesn't matter so much wrt releases. |
| 05:28:37 | fbuilesv | evan: have you considered doing releases every roughly 3 months? That's how Linux works and seems like a sweet spot between getting new features in vs. scaring users with too many releases. |
| 05:29:04 | postmodern | evan, well i would do releases more often to clear out compatibility issues, then switch back to a conservative release cycle |
| 05:29:14 | evan | fbuilesv: well, brixen and I agreed to doing bugfix and feature releases seperate. |
| 05:29:28 | fbuilesv | evan: yup, I meant feature releases every 3 months |
| 05:29:34 | postmodern | evan, but if rbx is reaching the last 20% of things left, yeah a conservative cycle is better |
| 05:29:41 | evan | fbuilesv: thats pretty likely the scheme we'll go with |
| 05:29:45 | evan | 3-4 months for feature releases. |
| 05:30:08 | evan | postmodern: well, not sure where you've been for the last 4 years, but we're on the last 20% for sure. |
| 05:30:10 | evan | :) |
| 05:30:26 | evan | there are certainly compatibility issues we're hitting now |
| 05:30:37 | evan | since a lot of people didn't test on the rc's (even though I asked them to!) |
| 05:30:48 | evan | so for the next month or 2, it will be a little abnormal |
| 05:31:00 | evan | but I still want to prep the release cycle. |
| 05:35:07 | dbussink | evan: just curious, is the numeric#== issue still on the radar? |
| 05:35:13 | evan | yep. |
| 05:35:21 | evan | probably check it out tomorrow. |
| 05:35:35 | evan | are you hitting it? |
| 05:36:34 | dbussink | evan: i know dkubb has hit it, he also reported it |
| 05:36:46 | dbussink | but i wondered if it was on any other list since the issue was closed as post 1.0 |
| 05:37:28 | evan | there is |
| 05:37:42 | evan | brixen and I have put stuff in pivotal tracker |
| 05:38:14 | dbussink | ah ok, cool :) |
| 05:38:53 | dbussink | btw, i think doing a 1.0.1 relatively quick is probably a good idea, shows you're working actively on the bugs coming in |
| 05:39:08 | dbussink | even if you ask, people won't test as much with rc's :P |
| 05:39:15 | evan | so i've noticed! |
| 05:39:41 | brixen | bug fix releases are just rc's in reverse |
| 05:40:43 | brixen | a bug fix release, barring security issues, once a month, with a feature release every 3-4 months is probably pretty sane |
| 05:40:54 | evan | yeah |
| 05:40:56 | brixen | since we keep master usable always |
| 05:41:05 | evan | people who want to play with the new features can use them on master |
| 05:41:11 | brixen | yep |
| 05:41:33 | brixen | and that forces some to use master rather than waiting for the release |
| 05:41:44 | brixen | that's probably the best rc strategy |
| 05:42:55 | dbussink | evan: is the pivotal tracker something you'd want to be somewhat public or preferably private? |
| 05:43:04 | scoopr | remember to announce a nonsensical fibonacci benchmark numbers every now and then! |
| 05:43:12 | evan | well, i'd be open to having it public, but i'm not sure how you do that. |
| 05:43:43 | evan | ah, public access |
| 05:45:21 | evan | dbussink: brixen and I will discuss it. |
| 05:47:11 | evan | dbussink: ok |
| 05:47:12 | evan | http://www.pivotaltracker.com/projects/70057 |
| 05:47:20 | evan | we've just started using it |
| 05:47:24 | evan | so everything is in the icebox |
| 05:50:44 | scoopr | I'm curious about that 'build system' task, do you foresee any system that handles the requirements as is? |
| 05:50:56 | evan | thats a big item |
| 05:51:04 | evan | brixen and I have been discussing it for many years now. |
| 05:51:12 | evan | as scary as that sounds. |
| 05:51:13 | evan | it's true. |
| 05:51:19 | brixen | scoopr: no, I have not seen any system that does |
| 05:51:52 | brixen | including all the rake rewrites like boson |
| 05:51:56 | scoopr | because, I've kinda missed a Good Build Solution(tm) for years as well |
| 05:52:12 | scoopr | and my needs were smaller even! |
| 05:52:28 | brixen | scoopr: this must seemlessly handle building Ruby, C/C++, and external libraries |
| 05:53:03 | scoopr | used rake for a while, kinda liked it but kinda hassle.. ended up doing massively wierd gnumakefiles .. |
| 05:53:08 | brixen | and correctly deal with multiple dependency trees in a single process space |
| 05:53:29 | scoopr | how do you mean multiple dependency trees? |
| 05:53:44 | brixen | exactly what it says :) |
| 05:53:56 | scoopr | varied by configuration? |
| 05:54:38 | scoopr | ahh, process space, that is, in one invocation? |
| 05:54:43 | brixen | yes |
| 05:56:00 | brixen | and it should gracefully handle the equivalent of rake clean build |
| 05:56:37 | brixen | whereas rake resolves dependencies, then clean rm's them, then build fails because there are deps it thinks are satisfied and does not invoke the build steps |
| 05:57:44 | brixen | I was very keen on Tap for a bit, but when I tried to make a build system out of it, the syntax quickly got in the way |
| 05:58:11 | brixen | both Thor and Boson use way to wacky a method of mapping options to methods |
| 05:58:20 | brixen | too wacky* |
| 05:58:56 | evan | they're also not build systems |
| 05:59:00 | evan | in any way. |
| 05:59:03 | brixen | and I want digest based dependency tracking, not mtime based |
| 05:59:19 | evan | brixen: i think we're going to just have to build it |
| 05:59:23 | evan | honestly. |
| 05:59:29 | brixen | yes, I want to :) |
| 05:59:42 | brixen | I've been patiently waiting for 1.0 |
| 05:59:56 | scoopr | I've wanted, simple for simple stuff (in makefile SRC=($(wildcard *.cpp) foo: $(SRC) suffices mostly), sanely putting stuff in one build dir (kinda like reverse VPATH), sane handling of concurrent building (catch build output and then serialize to stdout in humane order) .. inter-project dependencies, so I can just say "I depend on that lib in that dir", without mucking too much around with how it gets built when setting (c|ld)flags |
| 06:03:16 | scoopr | also as an optimization, I've thought of using filesystem notifications and a running process to handle dependency updates as they come, maybe even compiles.. a more integrated http://github.com/scoopr/autobuild ;) |
| 06:07:29 | scoopr | I guess I'm just saying that I'm actually really interested in participating in a buildsystem project ;) |
| 06:08:02 | evan | well ok then! |
| 06:08:06 | evan | you're signed up. |
| 06:08:26 | brixen | this is more of a build rubinius project |
| 06:08:34 | brixen | if it's generally useful, super |
| 06:08:41 | scoopr | well yeah there is that |
| 06:08:41 | brixen | but that's very low on my list of features |
| 06:09:49 | evan | brixen: thats for scoopr to sort out. |
| 06:09:56 | brixen | indeed |
| 06:09:58 | scoopr | =) |
| 06:10:14 | scoopr | I guess you would like to implement it in ruby? |
| 06:10:17 | evan | different participants having different goals can be good |
| 06:10:29 | evan | scoopr: got a better idea? |
| 06:10:32 | brixen | scoopr: yes, definitely |
| 06:10:48 | brixen | it needs to run on Windows |
| 06:11:12 | brixen | and a Ruby that can run melbourne is a bootstrap requirement at this point |
| 06:12:05 | scoopr | and when you librarize rbx, then it can become a standalone executable! ;) |
| 06:12:38 | brixen | hmm |
| 06:12:50 | brixen | I don't see those 2 being related actually |
| 06:14:47 | scoopr | well yeah, not quite related, thought it would help.. dunno |
| 06:17:41 | evan | ok, time for bed! |
| 06:17:42 | evan | nite. |
| 06:36:47 | postmodern | w00t, the NKF fix totally got specs passing on my web-scraping code that used mechanize |
| 06:37:13 | brixen | postmodern: sweet |
| 06:37:49 | postmodern | one more programming-domain under rubinius'es belt |
| 06:54:06 | slava | hi evan |
| 06:58:00 | dbussink | slava: he went to bed i think |
| 09:01:41 | kronos_vano | khaase_zz, Where is on finn.de Redmine CC? I miss it :( |
| 09:40:22 | khaase | kronos_vano: http://ci.finn.de/ |
| 09:42:03 | kronos_vano | khaase, tnx |
| 12:41:48 | dbussink | khaase: ah, rbx is green :) |
| 12:42:07 | khaase | dbussink: that does not mean the tests pass |
| 12:42:30 | khaase | dbussink: it just gives the wrong return value for some reason |
| 12:42:41 | dbussink | khaase: ah, that's too bad |
| 12:42:48 | khaase | yes, it is |
| 12:42:57 | dbussink | khaase: already able to reproduce that exit status issue? |
| 12:43:30 | khaase | dbussink: have not tried, am rather short on time atm |
| 12:43:43 | khaase | one week left for implementation on my bachelor project |
| 12:44:53 | dbussink | khaase: ah, cool, what are you working on? |
| 12:45:30 | khaase | dbussink: interactive multimedia screens for pubs with seaside/smalltalk |
| 12:46:29 | dbussink | khaase: ah, colleague / friend of mine also did some interactive stuff for pubs :) |
| 12:46:37 | dbussink | not on screens, but projecting stuff on the bar itself |
| 12:46:49 | dbussink | virtual aquarium that grows around glasses of people etc. |
| 12:46:59 | khaase | actually, it's mainly about context-sensitive ads |
| 12:47:12 | khaase | which kinda sucks, as i did not know that upfront |
| 12:47:45 | khaase | dbussink: the interactive part is just to get people's attention |
| 12:47:52 | dbussink | khaase: ah, that's a bit annoying then yeah |
| 12:48:05 | dbussink | khaase: if you want to see what i was talking about: http://vimeo.com/5522487 |
| 12:48:45 | khaase | wow, that's cool |
| 12:49:12 | dbussink | khaase: guess you hoped for something similar when you started ;) |
| 12:49:22 | dbussink | it just reminded me of this, interactive and bar were the triggers :P |
| 12:51:32 | khaase | dbussink: yes, that's more like it. our 'interaction' mainly relies on folks having smartphones. but it'll be over soon. |
| 12:54:07 | dbussink | khaase: any idea what you're going to do next? master? |
| 12:54:08 | dbussink | or work? |
| 12:54:22 | khaase | master |
| 12:54:39 | khaase | plus part time work |
| 12:59:04 | dbussink | khaase: any specific master or more general computer science stuff? |
| 12:59:46 | khaase | dbussink: probably the same I'm doing as bachelor - "IT-Systems Engineering" |
| 13:00:11 | khaase | though i'm not really sure atm |
| 13:04:52 | khaase | dbussink: btw, either my internet sucks or nedap's website has some issues |
| 13:05:20 | dbussink | khaase: dunno, what page are you going to? |
| 13:05:40 | khaase | http://www.nedap.com/en/index.php |
| 13:34:26 | dbussink | khaase: looks ok to me here in safari |
| 13:39:55 | khaase | dbussink: yeah, works fine now, dunno |
| 13:41:47 | dbussink | khaase: it's not that it comes from a server across the globe :P |
| 13:41:55 | dbussink | but that website has very little information |
| 13:42:18 | khaase | was just trying to check out what you are actually doing |
| 13:42:45 | khaase | sorry, got distracted by the whole bachelor project thing (sometimes smalltalk sucks) |
| 14:34:04 | cyndis | gah, ruby-opengl is doing RARRAY_LEN() with a RArray* as the argument, how stupid |
| 14:36:11 | cyndis | breaks horribly, horribly on rubinius.. |
| 14:38:09 | matthewd | Everyone has to have their own unique bit of crazy... otherwise, where's the fun? :) |
| 14:38:43 | matthewd | Which reminds me... |
| 14:38:57 | cyndis | they could be crazy in a non-breaking way :) |
| 14:39:14 | matthewd | evan: Is rb_is_const_id() supportable / worth supporting, or is that in the "no, go away" bucket? |
| 14:40:30 | cyndis | i'm not sure this is even fixable, and gcc doesn't even give an error, so you just load the extension and get "wrong argument type UWVS�t������ (expected Array)" or something |
| 14:41:03 | matthewd | evan: First few pages of google code search only seem to show ruby-spidermonkey/Johnson (which is what I'm trying to get working, and am quite happy to change) |
| 15:07:00 | boyscout | Set rbconfig's LIBS to "" to to appease mkrf - 1212f04 - Mikko Perttunen |
| 15:07:00 | boyscout | Set rbconfig's LIBRUBYARG_SHARED to "", because we don't have a shared library yet. - 7c4aeb6 - Mikko Perttunen |
| 15:15:01 | boyscout | CI: rubinius: 7c4aeb6 successful: 3458 files, 13649 examples, 41309 expectations, 0 failures, 0 errors |
| 16:44:50 | brixen | kronos_vano: do you have that bit shift patch somewhere and the specs? |
| 16:45:01 | brixen | kronos_vano: I was going to see if I can give you a hand with the specs |
| 16:48:13 | brixen | kronos_vano: I'm going to a talk this morning, so just link me up when you're around |
| 17:26:03 | kronos_vano | brixen, I give all this stuff to you today |
| 17:27:42 | evan | kronos_vano: at the moment, the pivotal tracker is view only for everyone except for brixen and I |
| 17:27:58 | evan | kronos_vano: we're using tracker as a roadmap/todo list for the 2 of us |
| 17:28:06 | evan | we're happy to let people see that |
| 17:28:11 | kronos_vano | evan, ok, np |
| 17:28:20 | evan | but for now, we don't want other people putting things in or assigning themselves stuff. |
| 17:28:38 | evan | maybe later when we've got the hang of it as a workflo. |
| 17:28:40 | evan | workflow. |
| 17:34:09 | boyscout | Remove Numeric#== - e4efe73 - Evan Phoenix |
| 17:42:05 | boyscout | CI: rubinius: e4efe73 successful: 3458 files, 13649 examples, 41309 expectations, 0 failures, 0 errors |
| 17:42:59 | RORgasm | hey guys |
| 17:43:08 | RORgasm | i have some general questions about rubinius |
| 17:43:26 | evan | RORgasm: ok, whats up |
| 17:43:35 | RORgasm | so, rubinius essentially uses ruby to write machine code correct |
| 17:43:36 | RORgasm | ? |
| 17:44:06 | evan | well no. |
| 17:44:17 | evan | it uses LLVM to translate rubinius bytecode into machine code. |
| 17:44:23 | evan | which is in C++. |
| 17:44:37 | RORgasm | LLVM is what then? |
| 17:44:52 | evan | LLVM is a compiler infrastructure |
| 17:44:56 | RORgasm | i c |
| 17:44:57 | evan | think of gcc, but as a library. |
| 17:45:02 | RORgasm | does macruby use llvm |
| 17:45:07 | RORgasm | oh i c |
| 17:45:08 | evan | yes, it does. |
| 17:45:29 | RORgasm | whereas MRI uses gcc correct? |
| 17:45:40 | evan | well, much differently. |
| 17:45:53 | evan | i'm not talking about the compiling of the VM itself. |
| 17:46:07 | evan | but rather taking ruby code and turning that itself into machine code |
| 17:46:10 | evan | MRI does nothing like that |
| 17:46:17 | evan | it just uses gcc to compile the interpreter |
| 17:46:24 | RORgasm | i c |
| 17:46:44 | RORgasm | so in MRI.. basically ure ruby code is interpeted by c code which is compiled by gcc |
| 17:46:46 | RORgasm | correct? |
| 17:47:05 | evan | yeah |
| 17:47:09 | RORgasm | cool |
| 17:47:35 | RORgasm | so can you use LLVM with any language to write machine code |
| 17:47:36 | RORgasm | ? |
| 17:48:12 | evan | well, LLVM turns a special data structure into machine code |
| 17:48:23 | RORgasm | ok |
| 17:48:29 | evan | you can translate any language into that data structure, then it can turn that into machine code, sure. |
| 17:49:12 | kronos_vano | RORgasm, scheme is bytecode -> LLVM IR -> machine code |
| 17:50:04 | RORgasm | evan: cool |
| 17:50:17 | RORgasm | so for the recent Rubinius 1.0 milestone u guys reached |
| 17:50:20 | RORgasm | congrats btw |
| 17:50:43 | RORgasm | what ruby specs are u using ... 18.6, 1.8.7, 1.9.1 ? |
| 17:51:04 | evan | rubinius runs 1.8.7 |
| 17:51:11 | evan | or, rather, is 1.8.7 compatible. |
| 17:51:26 | RORgasm | i c |
| 17:51:46 | RORgasm | oh and last question for now |
| 17:51:48 | RORgasm | so |
| 17:52:12 | RORgasm | if u have a rubygem that requres a c library |
| 17:52:25 | RORgasm | say something like nokogiri which uses libxml |
| 17:52:43 | RORgasm | will that gem as it is in its current state with MRI work with rubinius? |
| 17:54:42 | evan | a number of them will, yes. |
| 17:54:49 | evan | we've duplicated the C api they use |
| 17:54:52 | evan | it's not complete yet though |
| 17:54:56 | evan | so some gems don't work |
| 17:55:02 | evan | but we've focused on the most popular ones first |
| 17:55:09 | evan | nokogiri, for instance, does work. |
| 17:55:51 | RORgasm | how do u duplicate the C api? |
| 17:55:54 | RORgasm | just curious |
| 17:56:10 | RORgasm | so u have to have essentially |
| 17:56:17 | evan | how? we code it. |
| 17:56:19 | RORgasm | the equivalent of that C lib |
| 17:56:25 | RORgasm | say libxml |
| 17:56:26 | evan | right. |
| 17:56:36 | RORgasm | written for LLVM |
| 17:56:37 | RORgasm | ? |
| 17:56:40 | evan | no no. |
| 17:56:46 | evan | it's unrelated to LLVM entirely. |
| 17:57:03 | evan | the C extension except certain C functions to exist, like rb_funcall() |
| 17:57:06 | evan | we simply provide them. |
| 17:57:14 | RORgasm | oh |
| 17:57:16 | evan | with implementations that hook into our system |
| 17:57:22 | RORgasm | i c |
| 17:57:28 | RORgasm | thats not too bad right |
| 17:57:41 | evan | well, some are easy |
| 17:57:43 | evan | some are terrible. |
| 17:57:48 | RORgasm | i thought u would have to recreate the C libs entirely from bootom up |
| 17:57:56 | evan | because they expose details of MRI that are hard or impossible to duplicate. |
| 17:57:59 | evan | no no. |
| 17:58:01 | RORgasm | evan: whats an example of a terrible one? |
| 17:58:07 | evan | RREGEXP() |
| 17:58:08 | evan | it's a mocr |
| 17:58:09 | evan | macro |
| 17:58:22 | RORgasm | i c |
| 17:58:27 | evan | that provides access to the exact C struct MRI uses for regexps |
| 17:58:34 | evan | which we don't use. |
| 17:58:48 | RORgasm | have u guys run any benchmarks on rubinius 1.0? where does it stand compared to MRI, jruby, and macruby? |
| 17:59:01 | evan | depends on the benchmark |
| 17:59:09 | evan | on micro benchmarks we're way way faster. |
| 17:59:18 | evan | because we implement large chunks of functionality in ruby |
| 17:59:33 | evan | the performance evens out, since it's comparing ruby code to C code at that stage. |
| 18:00:11 | tarcieri | w00t installing rbx via rvm |
| 18:00:53 | tarcieri | you guys have a debian/ubuntu package yet? |
| 18:01:02 | evan | why would we be doing that? |
| 18:01:07 | evan | we're not experts in that. |
| 18:01:15 | evan | i'd prefer someone that knows how to do it do it. |
| 18:01:17 | tarcieri | or someone graciously contributed one |
| 18:01:24 | tarcieri | apparently not! |
| 18:01:27 | evan | i've done it, but it's been a long time. |
| 18:02:14 | tarcieri | wtf @ nickname |
| 18:07:59 | kronos_vano | evan, Fixnum::MIN is wrong on rubinius |
| 18:08:16 | evan | there is no Fixnum::MIN in MRI |
| 18:08:23 | evan | so it's not wrong. |
| 18:08:44 | kronos_vano | I mean value for 64x system |
| 18:08:49 | evan | it's right for me. |
| 18:08:58 | evan | >> -4611686018427387903.class |
| 18:08:59 | evan | => Fixnum |
| 18:09:11 | evan | >> -4611686018427387904.class |
| 18:09:11 | kronos_vano | on MRI it is -4611686018427387904 |
| 18:09:11 | evan | => Bignum |
| 18:09:19 | kronos_vano | irb(main):006:0> -4611686018427387904.class |
| 18:09:19 | kronos_vano | => Fixnum |
| 18:09:22 | evan | so? |
| 18:09:33 | evan | do you mean the actual boundary? |
| 18:09:39 | evan | or the Fixnum::MIN constant? |
| 18:10:25 | kronos_vano | evan, I want to find the way to get fixnum min value on all ruby platfrom ( for test) |
| 18:10:57 | evan | ok.. |
| 18:11:46 | kronos_vano | I have the patch (for shifting). But haven't tests |
| 18:12:07 | evan | k |
| 18:18:32 | kronos_vano | brixen, http://gist.github.com/405319 |
| 18:21:10 | dbussink | kronos_vano: you could add specs for boundaries on different platforms |
| 18:21:21 | dbussink | kronos_vano: so add both mri's and rbx's case |
| 18:21:26 | kronos_vano | dbussink, er |
| 18:21:27 | kronos_vano | hm |
| 18:21:54 | dbussink | kronos_vano: dunno what jruby's case is, but you could look at that too |
| 18:22:21 | kronos_vano | dbussink, I have 1.8, 1.9, jruby |
| 18:22:35 | kronos_vano | I'll test on all and rewrite spec |
| 18:22:39 | kronos_vano | np |
| 18:22:43 | evan | k |
| 18:39:36 | evan | MRI has the strangest caching strategies. |
| 18:39:48 | evan | like rb_reg_regcomp caches a single value |
| 18:39:52 | evan | the last one it returned. |
| 18:40:09 | evan | whats the change that you're going to call rb_reg_regcomp on the same String twice back to back? |
| 18:41:18 | dwaite | evan: sounds like a very small LRU cache |
| 18:41:47 | evan | I can't see how thats likely to provide any benefit. |
| 18:44:13 | kronos_vano | evan, At least 1 people install rubinius an start to play with it after my speech. Not so bad :) |
| 18:44:23 | evan | yay! |
| 18:44:24 | evan | good job! |
| 18:44:30 | evan | yehuda said he thought it went well |
| 18:44:32 | evan | congrats! |
| 18:44:55 | kronos_vano | tnx! |
| 18:48:02 | dbussink | evan: did we make the sound sample from kronos_vano the official way how to pronounce rubinius? |
| 18:48:15 | kronos_vano | hahaha |
| 18:48:26 | evan | we could, but even I can't pronounce it so awesomely. |
| 18:49:42 | kronos_vano | evan, People asking: "What about passenger?" |
| 18:49:54 | kronos_vano | What do you think? |
| 18:50:02 | evan | it uses the capi I believe |
| 18:50:11 | evan | someone just needs to try it. |
| 18:50:12 | evan | and report back. |
| 18:52:49 | kronos_vano | and another one thing. Now on dummy rails app rubinius takes about 2x more memory rather than MRI. Is there possibility to decrease memory using for rubinius (in future)? |
| 18:53:59 | evan | maybe. |
| 18:54:03 | evan | we haven't spent a lot of time on that |
| 18:54:10 | dbussink | is enjoying a stroopwafel warmed over a cup of tea |
| 18:54:15 | evan | dbussink: WANT |
| 18:54:23 | evan | kronos_vano: rbx has a lot more runtime data than MRI |
| 18:54:32 | evan | but as the rails app grows, rbx should stay lower. |
| 18:55:01 | kronos_vano | ok |
| 18:55:08 | evan | rad, gherkin's specs pass. |
| 18:56:16 | kronos_vano | lucky man! rmagick doesn't have specs :( :) |
| 18:56:26 | evan | kronos_vano: oh btw |
| 18:56:36 | evan | we have to talk about our GetReadFile and GetWriteFile |
| 18:56:42 | evan | they're completely wrong. |
| 18:56:57 | evan | i screwed up by leaving GetOpenFile in at all |
| 18:56:59 | evan | it doesn't work. |
| 18:57:06 | kronos_vano | May be! It is not ready patch |
| 18:57:22 | kronos_vano | evan, hm, so we should patch rmagick? |
| 18:57:29 | evan | we might have to. |
| 18:57:32 | dbussink | evan: rb_iterate is weird though |
| 18:57:54 | evan | dbussink: i know. i'm about to commit a hacked up version that seems to work the way most people use it. |
| 18:58:07 | dbussink | evan: i still don't get what exactly it does :s |
| 18:58:32 | kronos_vano | evan, Ok, I'll contact with gem authors. |
| 18:58:36 | evan | it calls a function with a C function setup as a block |
| 18:58:54 | evan | so when the original function does a yield, it calls the 2nd C function |
| 18:59:15 | evan | the #1 way it's used is to iterate over an array and call a C function for each element. |
| 18:59:24 | evan | and thusly, i'm making it do just that. |
| 19:01:59 | kronos_vano | evan, Do you see rb_frame_last_func() ? Is it right? I don't sure in it |
| 19:02:41 | evan | should be, but you should use env->get_handle() |
| 19:02:47 | evan | raher than casting it directly to a ID |
| 19:04:32 | kronos_vano | ok. another one with rb_const_get_from vs rb_const_get. It is almost same (as i understand from 1.8.7 sources), but first one isn't search const in Object class. :/ |
| 19:04:52 | evan | thats fine |
| 19:04:55 | boyscout | Add hacked rb_iterate/rb_each - cc0c747 - Evan Phoenix |
| 19:04:56 | boyscout | Add rb_reg_regcomp - a3c4670 - Evan Phoenix |
| 19:04:56 | boyscout | Annotate rb_raise as not returning to fix gherkin warnings. Fixes #309. - 0c6aa86 - Evan Phoenix |
| 19:04:58 | evan | maybe make a comment about why it seems so similar. |
| 19:05:05 | kronos_vano | k |
| 19:05:49 | boyscout | Add stub of re.h - d7a3b22 - Evan Phoenix |
| 19:07:58 | evan | things seem to include re.h |
| 19:08:02 | evan | but not use anything it provides |
| 19:08:10 | evan | so i'm going to just have a stub file for it |
| 19:09:56 | kronos_vano | evan, Do you know what this defines (GetReadFile, GetWriteFile) actually do? I don't understand :( |
| 19:10:16 | evan | yeah, they expose an internal structure in MRI |
| 19:10:23 | evan | we might have to treat like we do RSTRING |
| 19:10:29 | evan | thats probably the best solution. |
| 19:14:11 | boyscout | CI: rubinius: 0c6aa86 successful: 3458 files, 13650 examples, 41311 expectations, 0 failures, 0 errors |
| 19:24:52 | kronos_vano | http://gist.github.com/405418 |
| 19:24:54 | kronos_vano | :D |
| 19:25:20 | kronos_vano | Minimal fixnum value for diffrent ruby implementation |
| 19:25:34 | boyscout | Add missing symbols for curb - 72ed7ec - Evan Phoenix |
| 19:26:49 | evan | nice. |
| 19:26:54 | evan | lunch time! |
| 19:34:43 | boyscout | CI: rubinius: 72ed7ec successful: 3458 files, 13650 examples, 41311 expectations, 0 failures, 0 errors |
| 19:40:43 | dbussink | evan: you know happens with comments like this right? |
| 19:40:45 | dbussink | "/ In MRI, rb_undef also calls the undef_method hooks, maybe we should?" |
| 19:40:47 | dbussink | ;) |
| 19:41:07 | evan | someone implements it? |
| 19:41:08 | evan | i hope. |
| 19:41:19 | dbussink | evan: more that something uses it |
| 20:06:02 | kronos_vano | I totally don't understand http://gist.github.com/405469 compare returns Fixnum, then fixnum coverts to native_int and then native_int converts to fixnum. oO |
| 20:17:08 | Defiler | kronos_vano: Well, it doesn't know if that comparison is going to succeed, so it can't really just cast the return value and go |
| 20:17:23 | Defiler | and those are templates, so it isn't really going to spend much time there in practice |
| 20:19:08 | kronos_vano | Defiler, and it doen't pass c++ tests... |
| 20:19:18 | kronos_vano | *doen't |
| 20:19:21 | kronos_vano | :( |
| 20:19:24 | kronos_vano | doesn't |
| 20:19:28 | Defiler | that's not good |
| 20:19:41 | kronos_vano | I mean if I remove this code |
| 20:20:01 | kronos_vano | If I don't touch it everything is ok |
| 20:35:19 | dbussink | kronos_vano: that does the inverse actually |
| 20:35:27 | dbussink | kronos_vano: that's why the tests fail if you remove it |
| 20:35:30 | kronos_vano | dbussink, arr |
| 20:35:34 | kronos_vano | rigth! |
| 20:35:37 | kronos_vano | :) |
| 20:35:50 | kronos_vano | *right |
| 20:35:51 | dbussink | kronos_vano: so you don't have to construct another bignum |
| 20:35:58 | dbussink | this is a cheaper strategy |
| 20:36:04 | dbussink | than allocating a bignum etc. |
| 20:36:06 | kronos_vano | got it |
| 20:36:32 | dbussink | also does it for fixnum + bignum for example, but + is symmetric, so that's easy :) |
| 20:53:14 | dbussink | evan: cool, have an object here that turns into another object :) |
| 20:53:23 | evan | huh? |
| 20:54:38 | kronos_vano | http://gist.github.com/405533 may be something like this? |
| 20:55:03 | evan | kronos_vano: we have to fix the it block |
| 20:55:13 | evan | the string description |
| 20:55:15 | evan | i don't get it. |
| 20:56:30 | evan | i also don't get the tests. |
| 20:56:42 | kronos_vano | ok. About tests |
| 20:56:49 | evan | what are you trying to assert? |
| 20:57:04 | kronos_vano | that coercing to bignum works fine |
| 20:57:27 | evan | coercing is the wrong word |
| 20:57:30 | evan | promoted |
| 20:57:33 | evan | is the word you want. |
| 20:58:10 | evan | that code is very confusing |
| 20:58:21 | evan | why is rubinius using a fixnum_min value that was <<='d in the mri block? |
| 20:58:47 | kronos_vano | because fixnum min values is diffrent on all ruby implementations |
| 20:59:05 | evan | you need 4 seperate it blocks |
| 20:59:09 | evan | one for each impl. |
| 20:59:14 | evan | if you feel the need to do this. |
| 20:59:56 | kronos_vano | Can you help with guard? |
| 21:00:35 | tarcieri | :O @ irb autoident |
| 21:00:47 | kronos_vano | tarcieri, yeo |
| 21:00:49 | kronos_vano | yep |
| 21:01:31 | kronos_vano | evan, min values is diffrent for all ruby implementation. |
| 21:01:44 | evan | kronos_vano: how is this boundary handled in other specs? |
| 21:01:48 | dbussink | is there a problem with just running all cases on all implementations? |
| 21:01:51 | evan | or do no other specs test the lower fixnum boundary? |
| 21:01:59 | evan | dbussink: they don't all pass. |
| 21:02:03 | evan | or they shouldn't. |
| 21:02:07 | evan | otherwise you don't need 4 tests. |
| 21:02:21 | kronos_vano | There is no such spec |
| 21:03:14 | tarcieri | NameError: uninitialized constant Redis::Client::ALIASES from /var/www/jcruise/root/projects/Widgets-Numericable/work/vendor/gems/jruby/1.8/gems/activesupport-2.3 .5/lib/active_support/dependencies.rb:105:in `const_missing' from /var/www/jcruise/root/projects/Widgets-Numericable/work/vendor/gems/jruby/1.8/gems/redis-namespace-0 .4.2/lib/redis/namespace.rb:128 |
| 21:03:20 | tarcieri | blah! |
| 21:03:22 | tarcieri | sorry |
| 21:03:27 | tarcieri | mispaste there |
| 21:03:35 | tarcieri | rbx-1.0.0-20100514 > end |
| 21:03:35 | tarcieri | SyntaxError: (irb):1: syntax error, unexpected kEND |
| 21:03:46 | evan | kronos_vano: so, there are no specs for the lower fixnum boundary? |
| 21:03:57 | tarcieri | oh wait |
| 21:03:58 | tarcieri | my bad |
| 21:03:59 | tarcieri | lol |
| 21:04:14 | tarcieri | resumes lurking |
| 21:04:16 | kronos_vano | evan, I think so |
| 21:04:24 | kronos_vano | I don't find it |
| 21:04:40 | evan | lets wait until brixen returns |
| 21:04:42 | evan | to discuss that. |
| 21:04:52 | evan | because if there aren't any |
| 21:04:55 | evan | perhaps we don't need any. |
| 21:06:29 | kronos_vano | I just want to test left shifting. I can perform it without edge cases. |
| 21:06:38 | evan | do that. |
| 21:06:43 | evan | ignore the edge cases |
| 21:13:23 | kronos_vano | http://gist.github.com/405562 I just added test, that don't pass before fix. |
| 21:14:16 | evan | no |
| 21:14:18 | evan | use another it block |
| 21:14:26 | evan | don't add another random should to the bottom of the existing one |
| 21:14:31 | evan | it's clearly testing somethig unique |
| 21:16:14 | evan | ug. i think i've figured out the issue with json on OS X. |
| 21:22:34 | tarcieri | heh, still doing the .rbc files eh? |
| 21:22:41 | tarcieri | Reia does the exact same thing with its compiled output |
| 21:22:47 | tarcieri | (well aside from the fact they're called .reb) |
| 21:22:51 | tarcieri | I couldn't decide if that was annoying or not |
| 21:24:40 | tarcieri | brb |
| 21:26:16 | brixen | kronos_vano: show me the case in ruby that you are trying to fix |
| 21:26:46 | evan | tarcieri: yep, still doin' them. |
| 21:27:10 | tarcieri | you thought about sticking a . in front of their names or anything like that? |
| 21:27:29 | brixen | tarcieri: it's been requested |
| 21:27:39 | brixen | the more I think about it, the more I am against it |
| 21:27:44 | tarcieri | heh |
| 21:27:54 | brixen | it's just as easy to add .gitignore line |
| 21:28:10 | tarcieri | yeah |
| 21:28:14 | brixen | or other filters |
| 21:28:14 | tarcieri | that doesn't fix ls though |
| 21:28:15 | tarcieri | heh |
| 21:28:31 | brixen | when you compile C code, you don't add . to the name |
| 21:28:42 | tarcieri | indeed |
| 21:28:54 | evan | i'm less against it than brixen |
| 21:28:58 | evan | but i'm still thinking aboutit. |
| 21:29:14 | brixen | it requires splitting every path you compile |
| 21:29:17 | brixen | for what benefit? |
| 21:29:45 | tarcieri | I dunno, they're kinda cluttery I guess... or something |
| 21:30:08 | Defiler | Yeah, using dotfiles for this would be evil I think |
| 21:30:13 | tarcieri | heh, yeah |
| 21:30:21 | brixen | we have a switch to turn them off |
| 21:30:26 | brixen | -Xcompiler.no_rbc |
| 21:30:30 | Defiler | should probably be a cache bdb file or something with a user-specified max size |
| 21:30:38 | evan | Defiler: definitely considered that |
| 21:30:42 | tarcieri | nice |
| 21:30:42 | Defiler | would be faster than doing directory traversals on modern systems anyway |
| 21:30:49 | evan | but worried about how it would interact with deleted files |
| 21:30:58 | evan | ie, the cache could just grow and grow. |
| 21:31:03 | brixen | yeah |
| 21:31:05 | tarcieri | you could perodically vacuum the cache |
| 21:31:06 | Defiler | yeah, it would need a max size / max age |
| 21:31:06 | tarcieri | or whatever |
| 21:31:10 | Defiler | hassle |
| 21:31:10 | tarcieri | yeah |
| 21:31:15 | evan | hehe |
| 21:31:20 | brixen | do like git! |
| 21:31:27 | brixen | just invoke gc at random times |
| 21:31:36 | Defiler | rrrrrebufffering |
| 21:31:36 | evan | a random call of #require! |
| 21:31:43 | brixen | "please wait while I compact your db" |
| 21:31:47 | tarcieri | lol |
| 21:31:53 | evan | can we pop up a window with a indeterminate progress bar? |
| 21:31:57 | brixen | yes |
| 21:32:02 | evan | i'm in then. |
| 21:32:04 | brixen | with a clippy |
| 21:32:20 | brixen | "it appears that you are trying to run some code. can I help you by compacting your db" |
| 21:32:25 | brixen | with no yes/no button |
| 21:32:33 | Defiler | http://www.yzzerdd.com/ |
| 21:32:33 | tarcieri | you need a popup asking the user before they run their program if they would like to maximize performance or minimize size |
| 21:32:49 | brixen | Defiler: haha |
| 21:32:55 | tarcieri | you know, like this: http://justaddwater.dk/wp-content/uploads/2006/10/windows-help-wizard.png |
| 21:33:05 | Defiler | haha I miss that wizard |
| 21:33:22 | tarcieri | imagines the discussions at Microsoft where that came about |
| 21:33:38 | Defiler | I like how microsoft can pause a decade for reflection, take careful aim, and still fail to re-invent man files correctly |
| 21:34:00 | tarcieri | "Should we optimize the find database for speed or size?" "I can see arguments for both" "It really depends what the user's doing" "I know, let's prompt the user every time they try to search for something!" "BRILLIANT! ASK THE USER!" |
| 21:34:31 | evan | hah |
| 21:36:40 | tarcieri | also awesome backtraces are still awesome |
| 21:36:55 | evan | :D |
| 21:45:57 | boyscout | Use Kernel.exit! after a forked block returns. Fixes #289. - dff9d82 - Evan Phoenix |
| 21:53:48 | boyscout | CI: rubinius: dff9d82 successful: 3458 files, 13650 examples, 41311 expectations, 0 failures, 0 errors |
| 21:54:35 | slava | evan: http://github.com/evanphx/rubinius/commit/dff9d825bc2cb824eaeab46bcb60559ca838a1b7 |
| 21:54:38 | slava | evan: I had this exact same bug in factor |
| 21:59:41 | evan | slava: ha! |
| 21:59:57 | evan | ok, i've denied the . to hide .rbc files feature. |
| 22:00:09 | evan | it introduces issues while solving others |
| 22:00:20 | evan | and python seems to deal with pyc files just fine |
| 22:00:23 | evan | so I don't see the big deal. |
| 22:02:03 | brixen | yeah, ditto |
| 22:02:24 | Defiler | my only real problem with them is that they tab-complete in vim |
| 22:02:58 | Defiler | and so :e app/mo<tab>/a<tab><tab> produces a different result after running under rbx than it did before |
| 22:03:38 | evan | hm. |
| 22:11:48 | postmodern | evan, do rbc files have an encoded version in them? |
| 22:12:23 | brixen | postmodern: yes |
| 22:12:25 | evan | yep. |
| 22:12:26 | kronos_vano | brixen, for example -4518325415524767873 << 35 |
| 22:12:52 | postmodern | brixen, evan, is that a version seperate from Rubinius's version scheme? |
| 22:12:57 | brixen | kronos_vano: is this the simplest possible example? |
| 22:12:59 | evan | postmodern: yes. |
| 22:13:11 | brixen | postmodern: it's a hash of the compile files |
| 22:13:12 | kronos_vano | brixen, 1 sec |
| 22:13:28 | brixen | postmodern: so if anything in the compiler+parser changes, the .rbc file is out of date |
| 22:13:40 | brixen | the signature mismatch causes the file to be recompiled |
| 22:13:53 | postmodern | brixen, what if one day rubinius expects a different file format? |
| 22:13:59 | brixen | what if? |
| 22:14:11 | postmodern | brixen, perhaps you should put a magic version byte at the beginning of the file |
| 22:14:13 | brixen | that would by definition be in the compiler files |
| 22:14:16 | brixen | huh? |
| 22:14:23 | evan | I thought we did |
| 22:14:26 | brixen | we did |
| 22:14:35 | evan | yeah, !RBIX |
| 22:14:39 | evan | is the 1st 5 bytes |
| 22:14:40 | kronos_vano | brixen, Fixnum::MIN << 1 |
| 22:14:51 | brixen | kronos_vano: ok, much better :) |
| 22:14:51 | kronos_vano | == 2 :) |
| 22:14:56 | evan | after than is the version/signature |
| 22:17:08 | postmodern | ah i think i got you now |
| 22:17:21 | postmodern | evan, does rubinius copy the file permissions across when creating the rbc file? |
| 22:17:41 | evan | hm, no |
| 22:17:43 | evan | but we could. |
| 22:17:50 | evan | probably should. |
| 22:17:52 | kronos_vano | brixen, I gave you link to patch above |
| 22:17:52 | brixen | yeah, probably should |
| 22:18:30 | brixen | kronos_vano: yep, thanks, I have the patch |
| 22:24:01 | brixen | kronos_vano: it's going to take me a little bit to rewrite these specs |
| 22:24:21 | brixen | kronos_vano: can you just give me a git fp of your patch and I'll push it when I'm done |
| 22:24:30 | brixen | kronos_vano: that way it's got your commit info |
| 22:24:37 | brixen | so ppl can blame you :) |
| 22:24:38 | kronos_vano | brixen, ))) ok |
| 22:24:59 | brixen | so, sometimes Ruby's free-wheeling is just kinda crazy |
| 22:25:10 | brixen | I would not allow negative arguments to #<< or #>> |
| 22:25:23 | brixen | that's just being silly |
| 22:25:29 | brixen | or worse, masking nasty bugs |
| 22:27:01 | slava | why? |
| 22:27:28 | brixen | slava: why does n << -m make any sense? |
| 22:27:46 | postmodern | brixen, you could map the negative integers to unsigned ints :P |
| 22:27:48 | brixen | if m is inadvertently negative, that's a nasty bug hiding there |
| 22:27:56 | brixen | postmodern: brilliant :P |
| 22:28:07 | postmodern | no one gets shifts correct |
| 22:28:10 | postmodern | not even gcc |
| 22:28:37 | slava | brixen: I think there should be just one shift operator |
| 22:28:49 | slava | x shift n for left shift and x shift -n for right shift |
| 22:28:53 | brixen | slava: I think there should be one value and one operation |
| 22:28:57 | brixen | 0, succ |
| 22:28:59 | postmodern | shal != shl |
| 22:29:00 | brixen | slava: :) |
| 22:29:14 | slava | I think unifying shift left and shift right makes sense |
| 22:29:21 | brixen | slava: better: let u = 0; u succ :) |
| 22:29:37 | kronos_vano | brixen, http://gist.github.com/405669 |
| 22:29:55 | slava | that way its clear what negative inputs represent |
| 22:29:56 | brixen | kronos_vano: excellent, thanks |
| 22:30:44 | slava | common lisp agrees with me |
| 22:30:52 | slava | the ash function does left and right shifts |
| 22:31:01 | brixen | slava: I'm not opposed to that |
| 22:31:31 | brixen | slava: but allowing both shifts to work in either direction is unnecessary |
| 22:31:39 | slava | brixen: yeah |
| 22:31:41 | brixen | and, I would argue, error-prone |
| 22:32:07 | brixen | and finally, makes me have to write a bunch more specs :P |
| 22:32:27 | brixen | slava: how many tests do you have for Factor now? |
| 22:32:49 | slava | the total number of unit test cases in the repository? |
| 22:32:54 | brixen | yeah |
| 22:33:48 | slava | 45kloc of tests with 10 thousand test cases |
| 22:33:58 | slava | that's the basis library, not everything that's been contributed |
| 22:34:01 | brixen | slava: ok, so a fair number |
| 22:34:47 | slava | the compiler is 30kloc and 10kloc of that is tests :) |
| 22:39:15 | slava | brixen: are there any lint-type tools for ruby/ |
| 22:41:50 | brixen | slava: there are lint-ish I guess |
| 22:42:41 | brixen | there's flog, flay |
| 22:42:46 | brixen | by ryan davis |
| 22:43:05 | brixen | diamondback ruby is doing some work with static analysis of ruby |
| 22:43:21 | brixen | you could probably build some tools on that |
| 23:04:07 | boyscout | Fix fork to allow SystemExit through properly - 823d5a4 - Evan Phoenix |
| 23:04:07 | boyscout | Add simplicit rb_thread_blocking_region - ff0fb8f - Evan Phoenix |
| 23:13:21 | boyscout | CI: rubinius: ff0fb8f successful: 3458 files, 13651 examples, 41312 expectations, 0 failures, 0 errors |
| 23:17:21 | boyscout | Provide builtin UBF macros - 290ba51 - Evan Phoenix |
| 23:22:11 | evan | so, I went ahead and add rb_thread_blocking_region to master even though it's a "new feature" |
| 23:22:23 | brixen | I saw |
| 23:22:24 | evan | because it didn't replace or effect anything |
| 23:22:30 | brixen | yeah |
| 23:22:35 | brixen | that's a fair criterion |
| 23:22:44 | brixen | replacing is the big one |
| 23:22:45 | evan | ok |
| 23:22:52 | brixen | because it's hard to predict interaction |
| 23:22:59 | brixen | if it exists, something probably uses it |
| 23:23:08 | evan | exactly. |
| 23:23:12 | brixen | and replacing it means something will likely behave differently |
| 23:23:48 | brixen | so, I'm experimenting with the language in these fixnum specs |
| 23:23:54 | evan | k |
| 23:23:58 | brixen | I'm really tempted to use more mathy language |
| 23:24:05 | brixen | I'll show you an example... |
| 23:24:19 | slava | mathy language??? oh no, you must be some kind of nerd |
| 23:24:53 | brixen | http://gist.github.com/405710 |
| 23:25:05 | brixen | the existing specs were quite terrible |
| 23:25:25 | slava | this is valid ruby code right? :) |
| 23:25:40 | brixen | and communicating the details of eg Fixnum::MAX << 1 requires some explicit constructs |
| 23:25:48 | brixen | slava: heh, not yet |
| 23:25:49 | slava | returns n when m == 0 might almost parse |
| 23:26:25 | boyscout | CI: rubinius: 290ba51 successful: 3458 files, 13651 examples, 41312 expectations, 0 failures, 0 errors |
| 23:26:26 | brixen | slava: I'm contemplating a specification language for rubyspec 2.0 that would autogen the actual ruby code to run |
| 23:26:38 | brixen | so the specs would turn into just math statements |
| 23:26:49 | brixen | definitions, operations, and equalities |
| 23:28:19 | slava | the next step then is to make it statically analyze code instead of running it |
| 23:28:23 | slava | and then you have what's called a type system! |
| 23:28:48 | brixen | slava: haha, I know! |
| 23:28:54 | brixen | sounds fun, huh? :) |
| 23:31:52 | evan | slava: a type system? Is that like a secretary pool? |
| 23:32:16 | brixen | heh |
| 23:34:41 | BrianRice-work | :) |
| 23:36:02 | spastorino1 | hi guys i'm getting errors installing linecache gem |
| 23:36:24 | evan | spastorino1: ok. |
| 23:36:40 | spastorino1 | http://pastie.org/966762 |
| 23:36:56 | evan | spastorino1: it's going to be hard |
| 23:37:02 | evan | because we don't and will not support NODE |
| 23:37:05 | postmodern | humans are the problem |
| 23:37:30 | spastorino1 | evan: ok nice |
| 23:37:39 | postmodern | no matter which fancy new committee developed language programmers pick, they always make mistakes |
| 23:38:14 | spastorino1 | evan: i wanted to try Rails 3 test suite with rubinius |
| 23:38:16 | spastorino1 | :D |
| 23:38:30 | brixen | spastorino1: just comment out the ruby-debug gems |
| 23:38:46 | brixen | spastorino1: we have our own debugger that evan is working to fix up |
| 23:39:03 | spastorino1 | brixen: ohh yeah what a fool i am |
| 23:39:21 | spastorino1 | i didn't remember that ruby-debug was on the Gemfile |
| 23:39:30 | brixen | spastorino1: yeah, it bit me too |
| 23:40:03 | spastorino1 | if RUBY_VERSION < '1.9' gem "ruby-debug", ">= 0.10.3" elsif RUBY_VERSION < '1.9.2' && !ENV['CI'] gem "ruby-debug19" end |
| 23:40:25 | brixen | yeah, that conditional is broken |
| 23:40:35 | spastorino1 | yeah |
| 23:40:46 | brixen | well, the conditional doesn't really check the RUBY_ENGINE |
| 23:40:55 | brixen | it's not a version dependency totally |
| 23:41:04 | brixen | it should also be aware of different impls |
| 23:41:47 | spastorino1 | yeah i will fix that |
| 23:42:08 | kronos_vano | How to invoke some code in rubinius before exit rbx (with or without error) |
| 23:42:35 | spastorino1 | brixen: MRI has a RUBY_ENGINE env var? |
| 23:42:39 | spastorino1 | or something like that |
| 23:42:44 | evan | no |
| 23:42:45 | evan | it doesn't. |
| 23:42:50 | brixen | 1.8 doesn't |
| 23:42:52 | brixen | 1.9 does |
| 23:43:02 | spastorino1 | ahh ok |
| 23:43:42 | brixen | kronos_vano: you mean like at_exit handler? |
| 23:44:45 | kronos_vano | brixen, may be |
| 23:44:48 | kronos_vano | kronos:rubinius kronos$ rake build |
| 23:44:48 | kronos_vano | -bash: /Developer/ruby/rubinius/gems/bin/rake: /Users/evan/git/rbx/bin/rbx: bad interpreter: No such file or directory |
| 23:44:52 | kronos_vano | :-) |
| 23:45:25 | brixen | I don't get it |
| 23:46:14 | kronos_vano | brixen, My quetion and this string isn't related :) |
| 23:46:28 | brixen | that script has the wrong hash bang in it |
| 23:46:42 | brixen | probably because it's a pre-installed gem? |
| 23:46:55 | brixen | kronos_vano: the proper way to invoke it is rbx -S rake |
| 23:47:38 | evan | yes, i'm sure it has the wrong #! |
| 23:47:44 | evan | because i never use it other than via -S |
| 23:47:48 | evan | thats the only supported way |
| 23:47:49 | evan | really. |
| 23:48:05 | brixen | yeah, that's cool |
| 23:54:02 | kronos_vano | brixen, I mean http://github.com/evanphx/rubinius/issues/issue/314 |
| 23:54:37 | brixen | ok |
| 23:57:00 | spastorino1 | hey guys did you run Rails 3 test on rubinius? |
| 23:57:19 | brixen | yes |
| 23:57:40 | evan | yep. |
| 23:57:40 | spastorino1 | brixen: what was the output? |
| 23:57:50 | evan | there were 2 weird generator failures |
| 23:57:52 | evan | last I looked. |
| 23:58:17 | spastorino1 | i'm running and i'm surprised |
| 23:59:08 | spastorino1 | for now two weird E http://pastie.org/966799 |
| 23:59:16 | spastorino1 | i don't know why |
| 23:59:23 | spastorino1 | memcache is up |
| 23:59:26 | evan | hm |
| 23:59:33 | evan | i hadn't run the memcache related tests in a while |
| 23:59:35 | evan | i'll have to spin that up |