[#28007] [Feature:trunk] optional reverse_lookup argument for IPSocket#{addr,peeraddr} and Socket.getaddrinfo — Nobuyoshi Nakada <nobu@...>
Hi,
Hi,
[#28015] RCR: RUBY_VERSION_INT — Roger Pack <rogerdpack2@...>
Situation:
Roger Pack:
[#28029] [Bug #2709] $VERBOSE, $DEBUG and Kernel#sprintf — Patrik Wenger <redmine@...>
Bug #2709: $VERBOSE, $DEBUG and Kernel#sprintf
[#28036] [Bug #2710] Kernel#load loads a relative path — Brian Ford <redmine@...>
Bug #2710: Kernel#load loads a relative path
[#28037] Floating Point Bug in 1.8.6-p398 — Austin Ziegler <halostatue@...>
Doing some quick testing with multiruby on something, I see that every
> Doing some quick testing with multiruby on something, I see that every
[#28072] [Bug #2715] Optimization to avoid spawning shell in Kernel#system call should check for failure conditions — Tomasz Wegrzanowski <redmine@...>
Bug #2715: Optimization to avoid spawning shell in Kernel#system call should check for failure conditions
[#28077] Re: [ruby-cvs:33755] Ruby:r26540 (trunk): * enum.c (enum_each_entry): new method #each_entry to pack values — "Akinori MUSHA" <knu@...>
At Tue, 2 Feb 2010 17:54:56 +0900 (JST),
[#28100] [Bug #2721] OpenSSL::Random.random_bytes(1) is very slow the first time on Windows — Greg Hazel <redmine@...>
Bug #2721: OpenSSL::Random.random_bytes(1) is very slow the first time on Windows
[#28103] [Bug #2722] gets on a large file takes a very very long time — Greg Hazel <redmine@...>
Bug #2722: gets on a large file takes a very very long time
Hi,
[#28113] [Bug #2723] $: length affects re-require time of already loaded files — Greg Hazel <redmine@...>
Bug #2723: $: length affects re-require time of already loaded files
[#28141] [Bug #2731] FileUtils.copy prints error message in $DEBUG mode when destination doesn't exist — Kornelius Kalnbach <redmine@...>
Bug #2731: FileUtils.copy prints error message in $DEBUG mode when destination doesn't exist
[#28147] [Bug #2737] StringConstant +"string literal" (unspaced) raises exception — Joe Lapp <redmine@...>
Bug #2737: StringConstant +"string literal" (unspaced) raises exception
[#28151] [Bug #2739] ruby 1.8.7 built with pthreads hangs under some circumstances — Joel Ebel <redmine@...>
Bug #2739: ruby 1.8.7 built with pthreads hangs under some circumstances
Issue #2739 has been updated by Lucas Nussbaum.
[#28154] [Bug #2740] Extend const_missing to pass in the nesting — Yehuda Katz <redmine@...>
Bug #2740: Extend const_missing to pass in the nesting
[#28204] [Bug #2756] Issues with Math and Complex behavior on 1.9 — Brian Ford <redmine@...>
Bug #2756: Issues with Math and Complex behavior on 1.9
[#28206] Is Math module a wrapper of libm? — Yusuke ENDOH <mame@...>
Hi matz --
Hi,
Hi,
Hi,
Hi,
Hi,
Hi
Hi!
Hi,
So here's a summary of the changes that Kenta and I propose, followed
Hi,
Hi,
Hi,
Hi,
On 2010/03/02 14:15, Marc-Andre Lafortune wrote:
[#28215] Removing Syck from ruby — Aaron Patterson <aaron@...>
Hello,
> I would like to remove Syck from ruby, and release it as a gem that I
On Thu, Feb 18, 2010 at 11:28:20PM +0900, Jon wrote:
[#28235] [Feature #2759] Regexp /g and /G options — Michael Fellinger <redmine@...>
Feature #2759: Regexp /g and /G options
Issue #2759 has been updated by caleb clausen.
(2010/03/04 14:53), caleb clausen wrote:
On 3/4/10, NARUSE, Yui <naruse@airemix.jp> wrote:
[#28237] [Bug #2760] unable to cross-compile win32.c — Roger Pack <redmine@...>
Bug #2760: unable to cross-compile win32.c
[#28238] weird behaviour of readline on OSX 10.6 — Andrew Eberbach <eberbach@...>
Hi
[#28273] [Feature #2772] Matrix: Calculating determinant using Bareiss algorithm [patch] — Marc-Andre Lafortune <redmine@...>
Feature #2772: Matrix: Calculating determinant using Bareiss algorithm [patch]
[#28281] [Bug:trunk] add explicit constraints for WONTFIX IO bug — Yusuke ENDOH <mame@...>
Hi, all
[#28300] [Bug #2781] crash when gc_mark()ing already free'd locals of cloned scope — "coderrr ." <redmine@...>
Bug #2781: crash when gc_mark()ing already free'd locals of cloned scope
[#28318] [Bug #2784] The formatting options hash passed to the to_yaml methods do nothing. — Anshul Khandelwal <redmine@...>
Bug #2784: The formatting options hash passed to the to_yaml methods do nothing.
[#28329] [ANN] Ruby 1.9.2dev has passed RubySpec! — Yusuke ENDOH <mame@...>
Hi,
Hi,
On Wed, Feb 24, 2010 at 4:41 PM, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
Hi,
[#28355] [ANN] Toward rich diversity of Ruby development. — Urabe Shyouhei <shyouhei@...>
A short announcement: thanks to some helps of GitHub people, I now have
Hi,
Vladimir Sizikov wrote:
[#28365] Indentifying key MRI-on-Windows issues — Jon <jon.forums@...>
In an effort to begin summarizing key MRI-on-Windows open issues I'm starting this thread in hopes that those interested will respond with details on the key MRI issues they feel need resolution for Windows users.
> My key concern is http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-=
On Tue, Mar 16, 2010 at 10:30 AM, Roger Pack <rogerdpack2@gmail.com> wrote:
> JRuby does do encoding support, though it's not complete yet. I think
Hi Roger, Charles,
> > The snippets in
[#28366] [Bug #2823] IRB Crashes When Completing Method Names of BasicObjects — Run Paint Run Run <redmine@...>
Bug #2823: IRB Crashes When Completing Method Names of BasicObjects
[ruby-core:28157] [Feature #2740] Extend const_missing to pass in the nesting
Issue #2740 has been updated by Kornelius Kalnbach.
> In order to achieve this, I propose that we extend the const_missing
> method to take an optional second parameter containing the nesting:
>
> class Foo
> class Bar
> def self.const_missing(id, nesting)
> id == :Baz
> nesting == [Foo::Bar] # first case
> nesting == [Foo::Bar, Foo] # second case
> end
> end
> end
>
> This would allow people who wish to do their own custom constant
> loading (such as Rails) to do so in a way that is consistent with Ruby's
> own constant lookup. In order to avoid backward-compatibility issues, we
> can check the arity of the const_missing method, and only pass in the
> nesting if a second parameter was provided.
Interesting idea. However, I see two problems with the proposal:
1. It changes the const_missing API, breaking code. It would be nice to
find a way around this.
2. The feature Module.nesting is dependent on the "point of the call".
As you described, const_missing is not. I'm not sure about the
implications; Module.nesting is defined in eval.c, while
const_missing and const_get are defined in variable.c.
There may be another way around this. method_missing makes it possible to use Ruby's inheritance chain again by calling super. So, what if we just follow the constant lookup nesting chain again when const_missing didn't return anything?
You wouldn't even have to write the logic yourself. The implementation could look something like this:
class Module
# classic-style const_missing
def const_missing(id)
namespace = "#{name}::" unless self == Object
puts "Searching for #{namespace}#{id}..."
nil
end
end
class Module
# new-style constant lookup, given nesting
# This would have to be implemented in C.
def const_get2 id, nesting
nesting += [Object] # Don't forget top level.
# As usual: Try to find existing constant (without const_missing).
for mod in nesting
# imitating constant lookup without const_missing
if mod.constants.map { |c| c.to_sym }.include? id.to_sym
return mod.const_get(id)
end
end
# New style: Call const_missing on each nesting level.
for mod in nesting
value = mod.const_missing id
return value if value
end
# As usual: Raise NameError if nothing was found.
raise NameError, "uninitialized constant #{name}::#{id}"
end
end
class Foo
class Bar
const_get2(:Baz, Module.nesting)
# >> Searching for Foo::Bar::Baz...
# >> Searching for Foo::Baz...
# >> Searching for Baz...
#~> uninitialized constant Foo::Bar::Baz (NameError)
end
end
class Foo::Bar
const_get2(:Baz, Module.nesting)
# >> Searching for Foo::Bar::Baz...
# >> Searching for Baz...
#~> uninitialized constant Foo::Bar::Baz (NameError)
end
This solves 1., but not 2. Calling const_get and would still depend on Module.nesting.
Also, a constant with a value of nil or false would be interpreted as "not found". Maybe we could define a protocol for this, something like StopIteration?
NoConstantError = Class.new NameError
class Module
def const_missing(id)
...
raise NoConstantError
end
end
class Module
def const_get2 id, nesting
...
for mod in nesting
begin
return mod.const_missing(id)
rescue NoConstantError
# continue
end
end
...
end
end
On the other hand, maybe implicit constant lookup through the module nesting *and* automatic loading is a bit too much ;-)
----------------------------------------
http://redmine.ruby-lang.org/issues/show/2740
----------------------------------------
http://redmine.ruby-lang.org