Index

Show enters and exits. Hide enters and exits.

00:13:37wayneeseguinbrixen: FWIW rvm has a gentoo package in it's source pkg/ directory
00:14:28brixenwayneeseguin: awesome
00:14:40brixenwayneeseguin: can you submit that officially or whatever?
00:15:05wayneeseguinbrixen: Not I, as I don't want to be responsible for maintaing it ;) However it gets automatically generated at each next release
00:15:09brixenwayneeseguin: as I know you'd just *love* to maintain more stuff :)
00:15:15brixenhaha
00:15:21wayneeseguinlol
00:15:58brixenwe can just tell folks to use rvm
00:16:27wayneeseguinI'm fully willing to support rvm :)
00:16:31wayneeseguinand doing so ;)
00:16:42brixenalthough, we should lobby to change rvm to rvim (Ruby Version & Implementation Manager) :)
00:16:47wayneeseguinand it is definitely self contained as that guy was 'requiring'
00:16:53wayneeseguinlol
00:16:58evanoh about just rvoom
00:16:58wayneeseguinI like it!
00:17:04evanRVOOOOOM!
00:17:04wayneeseguinRViM
00:17:11brixenya know, just so we don't confuse anyone
00:17:33wayneeseguinwell I wanted to go with `ruby manager` eg `rm` however I think that would have messed with people's minds
00:17:41brixenhahah
00:18:03brixen"I tried rm -f in my root dir..."
00:18:04brixenoh lord
00:18:48evanVersions of Ruby Manager
00:18:51evanand then...
00:18:52evanVROOOOM!
00:19:17evannari: hi!
00:19:30narievan: hi!
00:19:59evanhow are you?
00:20:51narifine :)
00:42:31brixennth_ref and back_ref done, back to 2f
00:44:12evansweet
00:48:11brixenhmmm, defined?(SomeConst) is not the same as const_defined? :SomeConst
00:48:22brixenfrom a module's singleton method
00:48:49brixenthat's wacky
00:48:58brixenstates the obvious
00:49:38brixenthis is actually a spec jruby hit in the wild somewhere
00:52:09evanfun!
00:52:10evan:/
00:53:19brixenhttp://gist.github.com/322341
00:53:53brixendefined? looks *into* modules the lookup path
00:54:01brixenin the*
00:54:21evanit's using the normal constant lookup rules
00:54:32evanthe lexical rules
00:55:26brixenso it is... hm
01:11:44brixenhm 11.4.3.1 of the iso draft does not describe when autoload is invoked during const lookup
01:15:24evanRAD
01:15:39evanlets make it happen on the next tuesday after the const lookup
01:18:45brixenhah huh?
01:19:20evan:)
01:20:18brixenI prefer mondays :)
01:20:38brixenbut since it's thursday, let's just make it today
01:22:43brixenI'm not sure "in the reverse order" used here is correct
01:22:52brixenor at least, it should be defined what it means
01:23:07brixenbecause if .included_modules gives me [M, N, Kernel]
01:23:12brixenand M::XXX is what is found
01:23:22brixenhow is that looking "in the reverse order" ?
01:23:47brixenunless the "non-reverse" order is Kernel, N, M
01:26:22evanwhat are you trying to do?
01:26:27evanimplement constant lookup??
01:26:32brixenyes!
01:26:41brixenno, I'm trying to fix defined?
01:27:28brixenand concretize my tacit understanding of the intricacies of constant lookup
01:27:31evanby implementing constant lookup?
01:27:36brixenyes!
01:27:37evanok
01:27:38brixenheh
01:27:41evancheck out the code in the VM
01:27:49brixenyah
01:27:51evanit took us a while to get it all right
01:28:45brixenI'm just going to throw const looking into the gapping maw of my exception swallowing bytecodes and spit out nil or "constant"
01:28:50brixen:)
01:28:59brixens/looking/lookup/
01:29:24brixenbut first, dinner and then 2 hours of tango dance lessons
01:29:33brixenif that doesn't fix defined?, what will?!
01:29:45evanhehe
01:29:53evanyou'll dance circles around it!
01:30:07brixenhehe
01:30:24evanwait so
01:30:33evanyou're just going to use the find_const bytecode?
01:30:54brixenI dunno, what do you think?
01:30:57evanthats fine
01:31:00evanno problem with that
01:31:01brixenseems the easiest
01:31:02brixenok
01:31:06brixenmight as well
01:31:09evanyeah, then use the maw
01:31:14brixenyep
01:31:22brixenonly question is autoload
01:31:23evanyou've discovered raw exception handlers
01:31:26evanyour life will never be the same.
01:31:28brixenyep
01:31:29brixennever
01:31:44brixenif only I could utilize them in the real world :)
01:31:45evanthis is why i really never wanted the condition check to be in the VM
01:31:50evanby having it just at the top of some bytecode
01:31:53evanit's infinitely more powerful
01:32:07brixenwhat? accident??, g.clear_exception, g.goto done
01:32:15evaneh?
01:32:35brixenI mean, if we had raw exception handling in the real world
01:32:40evanoh ha
01:32:43brixenit would be like the accident never happened
01:32:44brixen:)
01:32:48evanwell, we could turn "rescue Object" into a raw handler
01:33:09brixenthis is working fine
01:33:16evanor, more carefully, a compiler plugin for "rescue Rubinius::All" into a raw handler
01:33:24evansure, just saying we could expose it at the ruby level if we wanted
01:33:34evan"rescue Rubinius::Maw"
01:33:37brixenah yeah
01:33:39brixencool
03:02:17brianmariodude, congrats on rbx passing AS and AP's tests
03:04:58evanbrianmario: thanks!
03:39:18evanhold on to your horses!
03:39:29boyscoutStringScanner only return String's, never String subclasses - c58867c - Evan Phoenix
03:39:29boyscoutAdd StringScanner test for class of returned values - 39867d2 - Evan Phoenix
03:39:29boyscoutIntroduce better base64 encode/decoding - ae2b79c - Evan Phoenix
03:39:29boyscoutUpdate Rubygems to 1.3.6 - 527141f - Evan Phoenix
03:39:29boyscoutCleanup some conditions in #eval - 114590a - Evan Phoenix
03:39:29boyscoutImprove Globals (better hooks, better aliases) - 8657bd9 - Evan Phoenix
03:39:29boyscoutRails fix: Avoid subclass clash on #[]= - 7663fc6 - Evan Phoenix
03:39:30boyscoutFix bug in excluding ivars from the Marshal output - e7d47c2 - Evan Phoenix
03:39:30boyscoutRails fix: Avoid subclass clash on String#<< - bf538bf - Evan Phoenix
03:39:31boyscoutCleanup style of a couple of String methods - 018d670 - Evan Phoenix
03:39:31boyscoutFix $KCODE check - 220de1f - Evan Phoenix
03:39:32boyscoutMake reporting the raise location of an exception more robust - 22b3be1 - Evan Phoenix
03:39:32boyscoutUse $stdout for showing, to allow for specing - 887b938 - Evan Phoenix
03:39:33boyscoutFix defined?() checking for a local remote binding - 161c444 - Evan Phoenix
03:39:46evanhah, there was a bunch more
03:39:57evani think I got boyscout on the spam list
03:49:50boyscoutCI: rubinius: 56fe76e successful: 3037 files, 11979 examples, 36284 expectations, 0 failures, 0 errors
03:50:34imajesevan! brixen! boyscout!
04:16:41brianmariowanted to get a quick code-review of a patch (and thoughts on it period)
04:17:09brianmariofrom current master, zlib.rb.ffi:825 - "alias :ended? :closed?"
04:17:13brianmariothat's it ;)
04:39:55evanbrianmario: what about that?
04:40:17brianmarioit's in 1.8 (1.8.7 at least), and I have a lib that's using it
04:40:33brianmariowould only add it for API compat with 1.8 I guess?
04:41:16evansure, thats fine
04:41:18brianmarioand it's an alias in 1.8 as well
04:41:20brianmariok
04:41:21evango ahead and commit it
04:41:34brianmarioI can't find the test/spec related to closed? though
04:41:41brianmarioI guess maybe just rubyspec?
04:42:13evanjust rubyspec?
04:42:18evanthats the only place i'd expect it to be
04:43:37brianmariooh ok :)
04:44:01brianmariosorry, been a while since I was in the codebase... wasn't sure if rbx had it's own test for it
04:44:04brianmarioof course it's in rubyspec
04:44:13evanwe don't bother to duplicate stuff thats in rubyspec
04:44:45brianmariocool
04:46:12boyscoutAdd GzipFile#ended? as an alias of GzipFile#closed? for 1.8 compat - 1373d7f - Brian Lopez
04:51:28boyscoutCI: rubinius: 1373d7f successful: 3037 files, 11979 examples, 36284 expectations, 0 failures, 0 errors
04:54:53brianmarioadded and pushed a test in the rubyspec repo
05:00:03evanthanks
05:47:23brianmarioso, I'm a dumb ass and put that alias in the wrong class
05:47:34brianmariowas supposed to be in zstream, fixing
05:49:16brianmarioand 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:34brianmariofrom 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:39brianmarioso, would it be fair to say I could just alias #ready? as #closed? and #finished? in ZStream?
05:59:21brianmarioer sorry, #ended? not #finished?
06:02:14boyscoutput the ended? alias in the wrong class - bfe12b6 - Brian Lopez
06:07:29boyscoutCI: rubinius: bfe12b6 successful: 3037 files, 11979 examples, 36284 expectations, 0 failures, 0 errors
11:36:23flujanhello guys, i am looking at the project and I got a doubt... Is it possible to generate a standalone executable from it?
11:45:01kronos_vanoflujan, what do you mean
11:46:20flujankronos_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:28kronos_vanohm. 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:56flujanI wanna execute a program without the rbx. run ./code instead of bin/rbx code.rb.
11:49:52kronos_vanoYou always need the interpreter in ruby, python, php... case
11:51:35kronos_vanobut you can run script "./code" Just put in first line of the script "#!/usr/bin/env ruby" :)
11:51:56rueIt is possible to bundle everything necessary together into one executable. In theory
11:53:39flujanrue: Yeap. This is my point. If you create a option -o for instance you can generate binaries... without the need of rbx.
11:53:49flujanThat will be amazing .
11:54:14rueWell, you still need rbx, it is just contained
12:11:37flujanrue: Yes with the current implementation, but you can integrate the rbx executable into the binary.
12:12:29flujanhave you seen http://www.cxtools.net/default.aspx?nav=cxfrlb ?
17:08:12brixenmorning
17:08:22brixenevan: so, defined? for constants...
17:08:30brixenit seems we have:
17:08:31evanyeppers
17:08:51brixen1. allow autoload to trigger (worried this will cause problems in rails)
17:09:14brixen2. disable autoload in normal const lookup somehow (seem like it would be messy and hard)
17:09:27brixen3. impl const lookup in defined? (duplication)
17:09:33brixen4. ?
17:09:44evanhm
17:09:54evanyes, 2 seems like the worst of them
17:09:59brixenyeah
17:10:00evanack brb.
17:10:02brixenk
17:17:28evanok back
17:17:42evanso, i just thought
17:17:48evanthere is a #4
17:18:07evanadd a primitive that calls the same logic as the VM uses for lookup
17:18:16brixenahh :D
17:18:29brixenand use the new primitive thingie dispatcher doodad
17:18:30evanthe autoload call stuff happens post lookup
17:18:34evansure!
17:18:34brixenexcellent
17:24:11evani'm dealing with an exception bug
17:24:23evana long return clobbers $!, and it shouldn't
17:30:32brixenhmm
17:31:27evanit's because I mixed 2 concepts that need to be seperate
17:58:13brixencoffee shop bound, bbiab...
18:58:03evanhm, looks like ironruby is trying to release 1.0 mid/late April
19:00:45brixeninteresting
19:00:56brixenI wonder if they are still 1.8.6
19:01:14brixenhaven't heard a hardly a peep from them on specs
19:01:40evanagreed
19:01:57evanwell need to discuss whether we want to release 1.0 on like the same week they do
19:02:00evanit might be confusing
19:02:07evanseems like that might happen
19:02:17evanas random as that is.
19:02:18brixenhm
19:02:54brixenI wonder how hard it is still to install on os x
19:03:00brixenI should run the specs on it
19:03:25brixenanyway, maybe we can release 1.0 April 1 :)
19:03:32evanhah
19:03:36brixenwe'll call it April 1.0 Day
19:03:38brixen:D
19:03:53brixenit will be a much better tradition than xmas day too
19:03:59evanhell yeah.
19:04:02brixenheh
19:05:20evani'm sort of splitting the concept of the current exception and the exception state
19:05:31brixenhmm
19:05:45evanso that, for instance, we can do a long return (which uses the exception mechanism) without stomping on the current exception
19:06:00brixenoh, that makes sense
19:06:13evanthe confusion is mostly created by us needing to maintain exception state around code
19:06:22brixenso, only if you deal with an exception do you look at the current exception, but otherwise just use the rewind mechanism?
19:06:36evanyeah
19:06:46evanand i'm adding one bytecode and changing another
19:07:04evanpush_exception_state actually gives you the current exception state as on object
19:07:12evanthat you can give to pop_exception_state to restore
19:07:17brixenahh
19:07:35evanthe man need for this comes from:
19:07:45evanbegin; a; ensure; b; end
19:08:03evanif a raises an exception, then we run the ensure
19:08:11evanbut if b calls things that raise exceptions, etc.
19:08:21evanbut b rescues them
19:08:25evanthen at the bottom of ensure
19:08:42evanthe exception raised by a is the one we reraise
19:08:53evanso we need to save the exception state at the top of the ensure
19:08:57evanand restore it at the bottom
19:09:00brixengotcha
19:09:44evanthe upside is that it's a little clearer what sets $!
19:10:05evanand when you ask for $! you won't sometimes get a Rubinius::InternalException object
19:10:10evanwhich is what happens now
19:10:13brixencool
19:10:29evanbrixen: this also should allow you to set $! fine
19:10:33evanbecause things won't be confused
19:10:40brixensweet, was just wondering that
19:10:40evanif we wanna support that.
19:10:48brixenI think we should if we can
19:11:25evank
19:11:27evanno prob.
19:11:35evani'll just add a prim to set it.
19:11:49brixencool
19:20:33brixenkernel/delta/gem_prelude.rb uses defined?(Gem)
19:20:45brixenI had to move the load order after where we redefine #raise
19:21:02brixensince the kernel raise just prints to the screen and exits
19:21:48brixenoh, but actually... hm, not an issue
19:22:00brixenI was doing [:defined, [:const, :X]] wrong
19:22:05evanwe don't even load gem_prelude do we?
19:22:09brixenyeah
19:22:10evanok
19:22:11brixenin delta
19:22:19evanwe should do what we talked about
19:22:21evanmove it to lib/
19:22:25evanand load it from loader.rb
19:22:27brixenand require it
19:22:28brixenok
19:22:31evanso that people can do --disable-rubygems
19:22:36brixenyeah
19:22:39brixencool
19:23:24brixenso far Grooveshark.com is kicking ass on both napster and pandora
19:23:36brixenmakes pandora look so '95 actually
19:24:47brixenand just btw, Goldfrapp rocks :)
19:25:15brixenI pay for napster and it does nothing but piss me off
19:25:28brixenexcept for the drm free mp3s for $1 each
19:42:24dbussinkevening :)
19:42:58dbussinkevan: 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:21evandbussink: going to do that today
19:55:28ruebrixen: Heh, not terrible, the UI is a bit unpolished. Still, it found Negrocan and Afro Medusa
19:55:33rueSpotify?
19:57:03brixeninteresting
20:05:11ruebrixen: They should be opening in the U.S. in the near future
20:05:30rueAlso, of course, Nokia Comes With Music now :D
20:05:42brixennice
20:29:15brixengoes around and around with these defined?(Constant) specs
20:29:47brixenI'm gonna eat lunch...
22:04:35brixenhum
22:04:46evanhom
22:04:51brixenwhere is wycats
22:05:08brixenapparently, 1.9 does not exhibit the behavior in #122
22:05:23brixenif this is used in rails, does 1.9 not run rails right?
22:05:52brixenor maybe it's calling .const_missing on something else...
22:06:12brixenhm, no
22:06:46brixendefined?(B::X) does not call const_missing for B if it doesn't exist in 1.9
22:06:58evanbrixen: i'll ask him
22:07:55evanhm
22:08:01evani think 122 is for const_missing on Bar
22:08:02evannot Foo
22:08:12evanoh wait, no. nm.
22:08:39brixenevan: http://gist.github.com/323217
22:08:41brixenfor wycats
22:09:38brixenI have at least 17 forms of defined?() for constants
22:09:45brixeneach form has about 3 different facets of behavior
22:09:54evanfun!
22:09:58brixenwe had like 3 defined?() specs for constants before
22:10:06evanhehe
22:28:07evanbrixen: wycats thinks that they probably don't depend on it anymore
22:28:13evanbut he feels that the 1.8 behavior is correct
22:28:17evani'm not sure I agree.
22:28:21brixenok
22:28:39evanbecause even if const_missing returns a Module
22:28:45evanthe defined? is aborted
22:28:48evanwhich is pretty weird.
22:28:53evanalmost like it's a 1.8 bug.
22:29:03brixenaborted?
22:29:05evanso while const_missing is called, it's not actually integrated
22:29:14evanif you have const_missing return a Module
22:29:24evanyou'd expect ::Bar to be called on it
22:29:33evanoh wait, maybe I screwed this up
22:29:34evanone sec.
22:29:54evanoh nm
22:29:56evanit's not aborted
22:30:01evani screwed up my test
22:30:07brixennope it's not
22:30:14evanhttp://gist.github.com/323234
22:30:18brixenyeah, this is some tedious shit to test
22:30:31brixenyeah
22:30:41evanyes, quite tedious.
22:30:47brixendefined?() has 2 types of behaviors
22:31:04brixen1. it checks for stuff, 2. it evals stuff to check for dependent stuff
22:31:22brixendefined?(A) checks for A; defined?(foo::A) evals foo to check for A
22:31:44evanright
22:31:59brixendefined?(A::B.c::C::D) :)
22:32:06evanit uses the normal evalutor up to the last sub expression
22:32:11evanevaluator
22:32:28evanthen uses it's custom logic on the last sub expression
23:57:50brixento say I am sick of writing defined? specs would be like saying the ocean has more water than my bathtub
23:58:07brixentrue but hardly captures the reality of it