Show enters and exits. Hide enters and exits.
| 00:13:37 | wayneeseguin | brixen: FWIW rvm has a gentoo package in it's source pkg/ directory |
| 00:14:28 | brixen | wayneeseguin: awesome |
| 00:14:40 | brixen | wayneeseguin: can you submit that officially or whatever? |
| 00:15:05 | wayneeseguin | brixen: Not I, as I don't want to be responsible for maintaing it ;) However it gets automatically generated at each next release |
| 00:15:09 | brixen | wayneeseguin: as I know you'd just *love* to maintain more stuff :) |
| 00:15:15 | brixen | haha |
| 00:15:21 | wayneeseguin | lol |
| 00:15:58 | brixen | we can just tell folks to use rvm |
| 00:16:27 | wayneeseguin | I'm fully willing to support rvm :) |
| 00:16:31 | wayneeseguin | and doing so ;) |
| 00:16:42 | brixen | although, we should lobby to change rvm to rvim (Ruby Version & Implementation Manager) :) |
| 00:16:47 | wayneeseguin | and it is definitely self contained as that guy was 'requiring' |
| 00:16:53 | wayneeseguin | lol |
| 00:16:58 | evan | oh about just rvoom |
| 00:16:58 | wayneeseguin | I like it! |
| 00:17:04 | evan | RVOOOOOM! |
| 00:17:04 | wayneeseguin | RViM |
| 00:17:11 | brixen | ya know, just so we don't confuse anyone |
| 00:17:33 | wayneeseguin | well I wanted to go with `ruby manager` eg `rm` however I think that would have messed with people's minds |
| 00:17:41 | brixen | hahah |
| 00:18:03 | brixen | "I tried rm -f in my root dir..." |
| 00:18:04 | brixen | oh lord |
| 00:18:48 | evan | Versions of Ruby Manager |
| 00:18:51 | evan | and then... |
| 00:18:52 | evan | VROOOOM! |
| 00:19:17 | evan | nari: hi! |
| 00:19:30 | nari | evan: hi! |
| 00:19:59 | evan | how are you? |
| 00:20:51 | nari | fine :) |
| 00:42:31 | brixen | nth_ref and back_ref done, back to 2f |
| 00:44:12 | evan | sweet |
| 00:48:11 | brixen | hmmm, defined?(SomeConst) is not the same as const_defined? :SomeConst |
| 00:48:22 | brixen | from a module's singleton method |
| 00:48:49 | brixen | that's wacky |
| 00:48:58 | brixen | states the obvious |
| 00:49:38 | brixen | this is actually a spec jruby hit in the wild somewhere |
| 00:52:09 | evan | fun! |
| 00:52:10 | evan | :/ |
| 00:53:19 | brixen | http://gist.github.com/322341 |
| 00:53:53 | brixen | defined? looks *into* modules the lookup path |
| 00:54:01 | brixen | in the* |
| 00:54:21 | evan | it's using the normal constant lookup rules |
| 00:54:32 | evan | the lexical rules |
| 00:55:26 | brixen | so it is... hm |
| 01:11:44 | brixen | hm 11.4.3.1 of the iso draft does not describe when autoload is invoked during const lookup |
| 01:15:24 | evan | RAD |
| 01:15:39 | evan | lets make it happen on the next tuesday after the const lookup |
| 01:18:45 | brixen | hah huh? |
| 01:19:20 | evan | :) |
| 01:20:18 | brixen | I prefer mondays :) |
| 01:20:38 | brixen | but since it's thursday, let's just make it today |
| 01:22:43 | brixen | I'm not sure "in the reverse order" used here is correct |
| 01:22:52 | brixen | or at least, it should be defined what it means |
| 01:23:07 | brixen | because if .included_modules gives me [M, N, Kernel] |
| 01:23:12 | brixen | and M::XXX is what is found |
| 01:23:22 | brixen | how is that looking "in the reverse order" ? |
| 01:23:47 | brixen | unless the "non-reverse" order is Kernel, N, M |
| 01:26:22 | evan | what are you trying to do? |
| 01:26:27 | evan | implement constant lookup?? |
| 01:26:32 | brixen | yes! |
| 01:26:41 | brixen | no, I'm trying to fix defined? |
| 01:27:28 | brixen | and concretize my tacit understanding of the intricacies of constant lookup |
| 01:27:31 | evan | by implementing constant lookup? |
| 01:27:36 | brixen | yes! |
| 01:27:37 | evan | ok |
| 01:27:38 | brixen | heh |
| 01:27:41 | evan | check out the code in the VM |
| 01:27:49 | brixen | yah |
| 01:27:51 | evan | it took us a while to get it all right |
| 01:28:45 | brixen | I'm just going to throw const looking into the gapping maw of my exception swallowing bytecodes and spit out nil or "constant" |
| 01:28:50 | brixen | :) |
| 01:28:59 | brixen | s/looking/lookup/ |
| 01:29:24 | brixen | but first, dinner and then 2 hours of tango dance lessons |
| 01:29:33 | brixen | if that doesn't fix defined?, what will?! |
| 01:29:45 | evan | hehe |
| 01:29:53 | evan | you'll dance circles around it! |
| 01:30:07 | brixen | hehe |
| 01:30:24 | evan | wait so |
| 01:30:33 | evan | you're just going to use the find_const bytecode? |
| 01:30:54 | brixen | I dunno, what do you think? |
| 01:30:57 | evan | thats fine |
| 01:31:00 | evan | no problem with that |
| 01:31:01 | brixen | seems the easiest |
| 01:31:02 | brixen | ok |
| 01:31:06 | brixen | might as well |
| 01:31:09 | evan | yeah, then use the maw |
| 01:31:14 | brixen | yep |
| 01:31:22 | brixen | only question is autoload |
| 01:31:23 | evan | you've discovered raw exception handlers |
| 01:31:26 | evan | your life will never be the same. |
| 01:31:28 | brixen | yep |
| 01:31:29 | brixen | never |
| 01:31:44 | brixen | if only I could utilize them in the real world :) |
| 01:31:45 | evan | this is why i really never wanted the condition check to be in the VM |
| 01:31:50 | evan | by having it just at the top of some bytecode |
| 01:31:53 | evan | it's infinitely more powerful |
| 01:32:07 | brixen | what? accident??, g.clear_exception, g.goto done |
| 01:32:15 | evan | eh? |
| 01:32:35 | brixen | I mean, if we had raw exception handling in the real world |
| 01:32:40 | evan | oh ha |
| 01:32:43 | brixen | it would be like the accident never happened |
| 01:32:44 | brixen | :) |
| 01:32:48 | evan | well, we could turn "rescue Object" into a raw handler |
| 01:33:09 | brixen | this is working fine |
| 01:33:16 | evan | or, more carefully, a compiler plugin for "rescue Rubinius::All" into a raw handler |
| 01:33:24 | evan | sure, just saying we could expose it at the ruby level if we wanted |
| 01:33:34 | evan | "rescue Rubinius::Maw" |
| 01:33:37 | brixen | ah yeah |
| 01:33:39 | brixen | cool |
| 03:02:17 | brianmario | dude, congrats on rbx passing AS and AP's tests |
| 03:04:58 | evan | brianmario: thanks! |
| 03:39:18 | evan | hold on to your horses! |
| 03:39:29 | boyscout | StringScanner only return String's, never String subclasses - c58867c - Evan Phoenix |
| 03:39:29 | boyscout | Add StringScanner test for class of returned values - 39867d2 - Evan Phoenix |
| 03:39:29 | boyscout | Introduce better base64 encode/decoding - ae2b79c - Evan Phoenix |
| 03:39:29 | boyscout | Update Rubygems to 1.3.6 - 527141f - Evan Phoenix |
| 03:39:29 | boyscout | Cleanup some conditions in #eval - 114590a - Evan Phoenix |
| 03:39:29 | boyscout | Improve Globals (better hooks, better aliases) - 8657bd9 - Evan Phoenix |
| 03:39:29 | boyscout | Rails fix: Avoid subclass clash on #[]= - 7663fc6 - Evan Phoenix |
| 03:39:30 | boyscout | Fix bug in excluding ivars from the Marshal output - e7d47c2 - Evan Phoenix |
| 03:39:30 | boyscout | Rails fix: Avoid subclass clash on String#<< - bf538bf - Evan Phoenix |
| 03:39:31 | boyscout | Cleanup style of a couple of String methods - 018d670 - Evan Phoenix |
| 03:39:31 | boyscout | Fix $KCODE check - 220de1f - Evan Phoenix |
| 03:39:32 | boyscout | Make reporting the raise location of an exception more robust - 22b3be1 - Evan Phoenix |
| 03:39:32 | boyscout | Use $stdout for showing, to allow for specing - 887b938 - Evan Phoenix |
| 03:39:33 | boyscout | Fix defined?() checking for a local remote binding - 161c444 - Evan Phoenix |
| 03:39:46 | evan | hah, there was a bunch more |
| 03:39:57 | evan | i think I got boyscout on the spam list |
| 03:49:50 | boyscout | CI: rubinius: 56fe76e successful: 3037 files, 11979 examples, 36284 expectations, 0 failures, 0 errors |
| 03:50:34 | imajes | evan! brixen! boyscout! |
| 04:16:41 | brianmario | wanted to get a quick code-review of a patch (and thoughts on it period) |
| 04:17:09 | brianmario | from current master, zlib.rb.ffi:825 - "alias :ended? :closed?" |
| 04:17:13 | brianmario | that's it ;) |
| 04:39:55 | evan | brianmario: what about that? |
| 04:40:17 | brianmario | it's in 1.8 (1.8.7 at least), and I have a lib that's using it |
| 04:40:33 | brianmario | would only add it for API compat with 1.8 I guess? |
| 04:41:16 | evan | sure, thats fine |
| 04:41:18 | brianmario | and it's an alias in 1.8 as well |
| 04:41:20 | brianmario | k |
| 04:41:21 | evan | go ahead and commit it |
| 04:41:34 | brianmario | I can't find the test/spec related to closed? though |
| 04:41:41 | brianmario | I guess maybe just rubyspec? |
| 04:42:13 | evan | just rubyspec? |
| 04:42:18 | evan | thats the only place i'd expect it to be |
| 04:43:37 | brianmario | oh ok :) |
| 04:44:01 | brianmario | sorry, been a while since I was in the codebase... wasn't sure if rbx had it's own test for it |
| 04:44:04 | brianmario | of course it's in rubyspec |
| 04:44:13 | evan | we don't bother to duplicate stuff thats in rubyspec |
| 04:44:45 | brianmario | cool |
| 04:46:12 | boyscout | Add GzipFile#ended? as an alias of GzipFile#closed? for 1.8 compat - 1373d7f - Brian Lopez |
| 04:51:28 | boyscout | CI: rubinius: 1373d7f successful: 3037 files, 11979 examples, 36284 expectations, 0 failures, 0 errors |
| 04:54:53 | brianmario | added and pushed a test in the rubyspec repo |
| 05:00:03 | evan | thanks |
| 05:47:23 | brianmario | so, I'm a dumb ass and put that alias in the wrong class |
| 05:47:34 | brianmario | was supposed to be in zstream, fixing |
| 05:49:16 | brianmario | and apparently ZStream doesn't have a closed? method to alias, so it may taking longer than I thought - want me to just revert that last one? |
| 05:54:34 | brianmario | from looking at the implementation of closed? in 1.8.7, it looks like it's just returning the boolean of the ready? state |
| 05:55:39 | brianmario | so, would it be fair to say I could just alias #ready? as #closed? and #finished? in ZStream? |
| 05:59:21 | brianmario | er sorry, #ended? not #finished? |
| 06:02:14 | boyscout | put the ended? alias in the wrong class - bfe12b6 - Brian Lopez |
| 06:07:29 | boyscout | CI: rubinius: bfe12b6 successful: 3037 files, 11979 examples, 36284 expectations, 0 failures, 0 errors |
| 11:36:23 | flujan | hello guys, i am looking at the project and I got a doubt... Is it possible to generate a standalone executable from it? |
| 11:45:01 | kronos_vano | flujan, what do you mean |
| 11:46:20 | flujan | kronos_vano: I wanna create executables binaries from a ruby source code. Since rubinius already translate the code, it will be easier to create a binary executable. |
| 11:48:28 | kronos_vano | hm. It translates a code to some internal representation. It is not a machine code. So answer for your question: No, it is not possible. |
| 11:48:56 | flujan | I wanna execute a program without the rbx. run ./code instead of bin/rbx code.rb. |
| 11:49:52 | kronos_vano | You always need the interpreter in ruby, python, php... case |
| 11:51:35 | kronos_vano | but you can run script "./code" Just put in first line of the script "#!/usr/bin/env ruby" :) |
| 11:51:56 | rue | It is possible to bundle everything necessary together into one executable. In theory |
| 11:53:39 | flujan | rue: Yeap. This is my point. If you create a option -o for instance you can generate binaries... without the need of rbx. |
| 11:53:49 | flujan | That will be amazing . |
| 11:54:14 | rue | Well, you still need rbx, it is just contained |
| 12:11:37 | flujan | rue: Yes with the current implementation, but you can integrate the rbx executable into the binary. |
| 12:12:29 | flujan | have you seen http://www.cxtools.net/default.aspx?nav=cxfrlb ? |
| 17:08:12 | brixen | morning |
| 17:08:22 | brixen | evan: so, defined? for constants... |
| 17:08:30 | brixen | it seems we have: |
| 17:08:31 | evan | yeppers |
| 17:08:51 | brixen | 1. allow autoload to trigger (worried this will cause problems in rails) |
| 17:09:14 | brixen | 2. disable autoload in normal const lookup somehow (seem like it would be messy and hard) |
| 17:09:27 | brixen | 3. impl const lookup in defined? (duplication) |
| 17:09:33 | brixen | 4. ? |
| 17:09:44 | evan | hm |
| 17:09:54 | evan | yes, 2 seems like the worst of them |
| 17:09:59 | brixen | yeah |
| 17:10:00 | evan | ack brb. |
| 17:10:02 | brixen | k |
| 17:17:28 | evan | ok back |
| 17:17:42 | evan | so, i just thought |
| 17:17:48 | evan | there is a #4 |
| 17:18:07 | evan | add a primitive that calls the same logic as the VM uses for lookup |
| 17:18:16 | brixen | ahh :D |
| 17:18:29 | brixen | and use the new primitive thingie dispatcher doodad |
| 17:18:30 | evan | the autoload call stuff happens post lookup |
| 17:18:34 | evan | sure! |
| 17:18:34 | brixen | excellent |
| 17:24:11 | evan | i'm dealing with an exception bug |
| 17:24:23 | evan | a long return clobbers $!, and it shouldn't |
| 17:30:32 | brixen | hmm |
| 17:31:27 | evan | it's because I mixed 2 concepts that need to be seperate |
| 17:58:13 | brixen | coffee shop bound, bbiab... |
| 18:58:03 | evan | hm, looks like ironruby is trying to release 1.0 mid/late April |
| 19:00:45 | brixen | interesting |
| 19:00:56 | brixen | I wonder if they are still 1.8.6 |
| 19:01:14 | brixen | haven't heard a hardly a peep from them on specs |
| 19:01:40 | evan | agreed |
| 19:01:57 | evan | well need to discuss whether we want to release 1.0 on like the same week they do |
| 19:02:00 | evan | it might be confusing |
| 19:02:07 | evan | seems like that might happen |
| 19:02:17 | evan | as random as that is. |
| 19:02:18 | brixen | hm |
| 19:02:54 | brixen | I wonder how hard it is still to install on os x |
| 19:03:00 | brixen | I should run the specs on it |
| 19:03:25 | brixen | anyway, maybe we can release 1.0 April 1 :) |
| 19:03:32 | evan | hah |
| 19:03:36 | brixen | we'll call it April 1.0 Day |
| 19:03:38 | brixen | :D |
| 19:03:53 | brixen | it will be a much better tradition than xmas day too |
| 19:03:59 | evan | hell yeah. |
| 19:04:02 | brixen | heh |
| 19:05:20 | evan | i'm sort of splitting the concept of the current exception and the exception state |
| 19:05:31 | brixen | hmm |
| 19:05:45 | evan | so that, for instance, we can do a long return (which uses the exception mechanism) without stomping on the current exception |
| 19:06:00 | brixen | oh, that makes sense |
| 19:06:13 | evan | the confusion is mostly created by us needing to maintain exception state around code |
| 19:06:22 | brixen | so, only if you deal with an exception do you look at the current exception, but otherwise just use the rewind mechanism? |
| 19:06:36 | evan | yeah |
| 19:06:46 | evan | and i'm adding one bytecode and changing another |
| 19:07:04 | evan | push_exception_state actually gives you the current exception state as on object |
| 19:07:12 | evan | that you can give to pop_exception_state to restore |
| 19:07:17 | brixen | ahh |
| 19:07:35 | evan | the man need for this comes from: |
| 19:07:45 | evan | begin; a; ensure; b; end |
| 19:08:03 | evan | if a raises an exception, then we run the ensure |
| 19:08:11 | evan | but if b calls things that raise exceptions, etc. |
| 19:08:21 | evan | but b rescues them |
| 19:08:25 | evan | then at the bottom of ensure |
| 19:08:42 | evan | the exception raised by a is the one we reraise |
| 19:08:53 | evan | so we need to save the exception state at the top of the ensure |
| 19:08:57 | evan | and restore it at the bottom |
| 19:09:00 | brixen | gotcha |
| 19:09:44 | evan | the upside is that it's a little clearer what sets $! |
| 19:10:05 | evan | and when you ask for $! you won't sometimes get a Rubinius::InternalException object |
| 19:10:10 | evan | which is what happens now |
| 19:10:13 | brixen | cool |
| 19:10:29 | evan | brixen: this also should allow you to set $! fine |
| 19:10:33 | evan | because things won't be confused |
| 19:10:40 | brixen | sweet, was just wondering that |
| 19:10:40 | evan | if we wanna support that. |
| 19:10:48 | brixen | I think we should if we can |
| 19:11:25 | evan | k |
| 19:11:27 | evan | no prob. |
| 19:11:35 | evan | i'll just add a prim to set it. |
| 19:11:49 | brixen | cool |
| 19:20:33 | brixen | kernel/delta/gem_prelude.rb uses defined?(Gem) |
| 19:20:45 | brixen | I had to move the load order after where we redefine #raise |
| 19:21:02 | brixen | since the kernel raise just prints to the screen and exits |
| 19:21:48 | brixen | oh, but actually... hm, not an issue |
| 19:22:00 | brixen | I was doing [:defined, [:const, :X]] wrong |
| 19:22:05 | evan | we don't even load gem_prelude do we? |
| 19:22:09 | brixen | yeah |
| 19:22:10 | evan | ok |
| 19:22:11 | brixen | in delta |
| 19:22:19 | evan | we should do what we talked about |
| 19:22:21 | evan | move it to lib/ |
| 19:22:25 | evan | and load it from loader.rb |
| 19:22:27 | brixen | and require it |
| 19:22:28 | brixen | ok |
| 19:22:31 | evan | so that people can do --disable-rubygems |
| 19:22:36 | brixen | yeah |
| 19:22:39 | brixen | cool |
| 19:23:24 | brixen | so far Grooveshark.com is kicking ass on both napster and pandora |
| 19:23:36 | brixen | makes pandora look so '95 actually |
| 19:24:47 | brixen | and just btw, Goldfrapp rocks :) |
| 19:25:15 | brixen | I pay for napster and it does nothing but piss me off |
| 19:25:28 | brixen | except for the drm free mp3s for $1 each |
| 19:42:24 | dbussink | evening :) |
| 19:42:58 | dbussink | evan: did you look at that huge stack issue when running rails 2.3? or do you have any ideas where i could look at? |
| 19:43:21 | evan | dbussink: going to do that today |
| 19:55:28 | rue | brixen: Heh, not terrible, the UI is a bit unpolished. Still, it found Negrocan and Afro Medusa |
| 19:55:33 | rue | Spotify? |
| 19:57:03 | brixen | interesting |
| 20:05:11 | rue | brixen: They should be opening in the U.S. in the near future |
| 20:05:30 | rue | Also, of course, Nokia Comes With Music now :D |
| 20:05:42 | brixen | nice |
| 20:29:15 | brixen | goes around and around with these defined?(Constant) specs |
| 20:29:47 | brixen | I'm gonna eat lunch... |
| 22:04:35 | brixen | hum |
| 22:04:46 | evan | hom |
| 22:04:51 | brixen | where is wycats |
| 22:05:08 | brixen | apparently, 1.9 does not exhibit the behavior in #122 |
| 22:05:23 | brixen | if this is used in rails, does 1.9 not run rails right? |
| 22:05:52 | brixen | or maybe it's calling .const_missing on something else... |
| 22:06:12 | brixen | hm, no |
| 22:06:46 | brixen | defined?(B::X) does not call const_missing for B if it doesn't exist in 1.9 |
| 22:06:58 | evan | brixen: i'll ask him |
| 22:07:55 | evan | hm |
| 22:08:01 | evan | i think 122 is for const_missing on Bar |
| 22:08:02 | evan | not Foo |
| 22:08:12 | evan | oh wait, no. nm. |
| 22:08:39 | brixen | evan: http://gist.github.com/323217 |
| 22:08:41 | brixen | for wycats |
| 22:09:38 | brixen | I have at least 17 forms of defined?() for constants |
| 22:09:45 | brixen | each form has about 3 different facets of behavior |
| 22:09:54 | evan | fun! |
| 22:09:58 | brixen | we had like 3 defined?() specs for constants before |
| 22:10:06 | evan | hehe |
| 22:28:07 | evan | brixen: wycats thinks that they probably don't depend on it anymore |
| 22:28:13 | evan | but he feels that the 1.8 behavior is correct |
| 22:28:17 | evan | i'm not sure I agree. |
| 22:28:21 | brixen | ok |
| 22:28:39 | evan | because even if const_missing returns a Module |
| 22:28:45 | evan | the defined? is aborted |
| 22:28:48 | evan | which is pretty weird. |
| 22:28:53 | evan | almost like it's a 1.8 bug. |
| 22:29:03 | brixen | aborted? |
| 22:29:05 | evan | so while const_missing is called, it's not actually integrated |
| 22:29:14 | evan | if you have const_missing return a Module |
| 22:29:24 | evan | you'd expect ::Bar to be called on it |
| 22:29:33 | evan | oh wait, maybe I screwed this up |
| 22:29:34 | evan | one sec. |
| 22:29:54 | evan | oh nm |
| 22:29:56 | evan | it's not aborted |
| 22:30:01 | evan | i screwed up my test |
| 22:30:07 | brixen | nope it's not |
| 22:30:14 | evan | http://gist.github.com/323234 |
| 22:30:18 | brixen | yeah, this is some tedious shit to test |
| 22:30:31 | brixen | yeah |
| 22:30:41 | evan | yes, quite tedious. |
| 22:30:47 | brixen | defined?() has 2 types of behaviors |
| 22:31:04 | brixen | 1. it checks for stuff, 2. it evals stuff to check for dependent stuff |
| 22:31:22 | brixen | defined?(A) checks for A; defined?(foo::A) evals foo to check for A |
| 22:31:44 | evan | right |
| 22:31:59 | brixen | defined?(A::B.c::C::D) :) |
| 22:32:06 | evan | it uses the normal evalutor up to the last sub expression |
| 22:32:11 | evan | evaluator |
| 22:32:28 | evan | then uses it's custom logic on the last sub expression |
| 23:57:50 | brixen | to say I am sick of writing defined? specs would be like saying the ocean has more water than my bathtub |
| 23:58:07 | brixen | true but hardly captures the reality of it |