[#9854] BUG: ruby-yarv 1.9 undefined method `close' for nil:NilClass in ensure — ville.mattila@...
Hello,
[#9864] String#upto edge case - empty string causes infinite loop — Daniel Berger <Daniel.Berger@...>
Hi,
Hi,
On 1/8/07, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
> -----Original Message-----
On 1/8/07, Berger, Daniel <Daniel.Berger@qwest.com> wrote:
> -----Original Message-----
On 1/9/07, Berger, Daniel <Daniel.Berger@qwest.com> wrote:
[#9869] a block argument within a block which argument has the same name leaks — <noreply@...>
Bugs item #7680, was opened at 2007-01-08 22:53
Hi,
On Jan 8, 2007, at 2:30 PM, Yukihiro Matsumoto wrote:
Hi,
Hi --
Hi,
Hi --
Hi,
Hi,
Evan Phoenix wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
On Jan 10, 2007, at 8:43 AM, Yukihiro Matsumoto wrote:
Hi,
Hi,
Hi,
[#9897] Time Zone printing differently for 1.8.4 and 1.8.5. — "Jim Freeze" <jim@...>
> ruby -rparsedate -ve 'puts Time.mktime(* ParseDate.parsedate("Thu Nov 02
[#9908] rdoc for 1.8.5 not creating Module docs? — James Britt <james.britt@...>
When running rdoc over the current 1.8.5 source, the resulting HTML file
[#9926] Fix for File and File::Stat to deal with bogus stat.st_size member — <noreply@...>
Patches item #7760, was opened at 2007-01-11 14:26
On Fri, 12 Jan 2007, noreply@rubyforge.org wrote:
> -----Original Message-----
On Sat, 13 Jan 2007, Berger, Daniel wrote:
[#9949] sandbox 0.4 (r115) with a new patch — _why <why@...>
Okay, here's the latest release of the freaky freaky sandbox.
[#9959] anonymous classes share single alloc function — <noreply@...>
Bugs item #7974, was opened at 2007-01-18 13:28
[#9960] Scoping and locating definitions — Jos Backus <jos@...>
Consider the following:
Jos Backus schrieb:
On Fri, Jan 19, 2007 at 06:40:03PM +0900, Pit Capitain wrote:
On Sat, Jan 20, 2007 at 02:18:19AM +0900, Jos Backus wrote:
On 1/20/07, Jos Backus <jos@catnook.com> wrote:
Jos Backus schrieb:
On Sun, Jan 21, 2007 at 04:39:52AM +0900, Pit Capitain wrote:
Jos Backus schrieb:
[#9969] Allowing Unicode in the grammar? — "Berger, Daniel" <Daniel.Berger@...>
Hi Matz,
[#9996] new method dispatch rule (matz' proposal) — SASADA Koichi <ko1@...>
Hi,
Hi,
It's late for me here, so I have just brief comments below...
Hi,
SASADA Koichi wrote:
Hi,
On Jan 23, 2007, at 7:41 AM, Yukihiro Matsumoto wrote:
On Tue, 23 Jan 2007, James Edward Gray II wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
Yukihiro Matsumoto wrote:
Hi,
The more this discussion goes on, the more I worry that Joe Q Public
Hi,
[#10019] stable branch policy & schedule for 1.8.6 — "Akinori MUSHA" <knu@...>
Core developers,
Akinori MUSHA wrote:
Charles Oliver Nutter wrote:
On Jan 23, 2007, at 22:13, Joel VanderWerf wrote:
At Wed, 24 Jan 2007 15:13:52 +0900,
Hello,
Hi,
[#10066] class variables and inheritance — <noreply@...>
Bugs item #8156, was opened at 2007-01-25 15:05
[#10068] Re: Method Dispatch (was Adding methods to String, but only in my own Module?) — gwtmp01@...
[#10085] Collaborative Ruby Language Specification — "John Lam (CLR)" <jflam@...>
Hi Everyone,
On 1/28/07, John Lam (CLR) <jflam@microsoft.com> wrote:
Hi --
>> I'm not sure what there is to be non-neutral about :-)
Hi --
On Mon, 29 Jan 2007, dblack@wobblini.net wrote:
John Lam (CLR) wrote:
> I hope such a spec would be developed "in the open" from the beginning,
M. Edward (Ed) Borasky wrote:
-----BEGIN PGP SIGNED MESSAGE-----
On 1/30/07, Eustaquio Rangel de Oliveira Jr. <eustaquiorangel@yahoo.com> wrote:
On 1/30/07, Nikolai Weibull <now@bitwi.se> wrote:
> > I was checking some CLR opinions and - correct me please if I'm wrong - seems
[#10114] add usage of uri.userinfo to open-uri.rb — <noreply@...>
Patches item #8309, was opened at 2007-01-30 15:25
On 2007/01/31, at 06:07, Yukihiro Matsumoto wrote:
Hi,
On Thu, Feb 01, 2007 at 01:19:34AM +0900, Yukihiro Matsumoto wrote:
Hi,
Hi matz,
Hi,
On Feb 2, 2007, at 7:40 PM, Yukihiro Matsumoto wrote:
[#10135] Another .document patch. — Hugh Sasse <hgs@...>
I have been looking at the tips for irb at:
Re: new method dispatch rule (matz' proposal)
Yukihiro Matsumoto wrote:
> Hi,
>
> In message "Re: new method dispatch rule (matz' proposal)"
> on Tue, 23 Jan 2007 16:13:41 +0900, Charles Oliver Nutter <charles.nutter@sun.com> writes:
>
> |> (2) send(:foo) and recv.foo (with receiver method dispatch) only skips
> |> private methods.
> |> In current Ruby, if any private method foo are there, raise exception.
> |
> |I assume this is an extension of (1), where if there are private methods
> |they're just ignored, yes?
>
> Yes.
>
> |> (3) method dispatch as function like "foo()", introduce new method
> |> search ordering.
> |>
> |> 1. search *only private methods* in inheritance tree.
> |> 2. search public methods in inheritance tree from CLASS_OF(self).
> |
> |I'm not sure I understand the justification for this. We would now have
> |to have two method caches in any implementations and do two searches for
> |all methods.
>
> Unless you don't have in-line method cache.
>
> |Further, it would greatly impact the performance of all
> |public method calls, since there would always be a "private" search in
> |the whole hierarchy first.
>
> I haven't implemented this yet, so that I can't say it for sure but I
> don't think so. Because public method calls (with explicit receiver)
> need only one hierarchy search and one method cache.
But for calls that could result in both private and public methods being
searched, this would still apply. It will require two searches up the
hierarchy, making it even slower to find the method than it is today.
>
> | So, if I have:
> |
> |class A; def bar; end; end
> |class B<A; end
> |class C<B; end
> |class D<C; end
> |class E<D; end
> |class F<E; def foo; bar; end; def bar; end; end;
> |
> |F.new.foo would result in a search of classes E, D, C, B, and A for
> |every invocation of bar, finally settling on the bar in F. Further, if
> |now a bar was added in any of those classes or the existing bar in A was
> |made private, my local bar would no longer be invoked. That seems
> |extremely counter intuitive.
>
> No, it's only for functional style method calls.
Ok, substitute in def foo; bar(); end above, or give bar some
parameters. To call bar() a full search of the hierarchy must be
performed for private methods, and then eventually it comes back to the
bar defined in F. And if the bar defined in A becomes private later on,
it will be invoked instead. That seems very strange.
> |It also makes it much harder for developers to name methods in their
> |extensions of superclasses because they must always avoid naming a
> |method after a private method somewhere else in the hierarchy. This also
> |causes private changes to those superclasses to leak into child classes;
> |if a developer now decides to add a new private "baz" method to their
> |superclass, and I have been using that name for a public method in my
> |subclass, my version will suddenly stop being called.
> |
> |- Changes to private methods in parent classes should not change the
> |behavior of method dispatch in child classes
> |- Child class implementers should not have to know about internal
> |(private) methods in superclasses when doing their implementation.
>
> I think understand what you meant here. And that's the reason for
> rule 4. By adding rule 4, any methods can not override private
> functions, since private method search starts from the defining class.
But it still means that changing method visibility in the parent will
affect which methods are called in the child. Rule four is perfectly
valid for ensuring a method foo calls a private method baz contained in
the same class, but rule three complicates things by also making child
classes that call baz hit the same method. I'll try another example
class A
def foo; bar("A foo"); end
def bar(x); puts "A bar #{x}"; end
end
class B < A
def foo; bar("B foo"); end
def bar(x); puts "B bar #{x}"; end
end
So here, as today, B.new.foo calls B's bar method. Now a change:
class A
private :bar
end
Now, because of a change in A, B.new.foo calls A's bar. When priority is
given to private methods in parent clases, parent classes can
effectively override child classes.
Now what if B's author didn't know about the "bar" method in A. Suddenly
a release of A comes out with "bar" private, and B's code breaks. Should
making a method private have the potential to break child classes? The
most it should do is ensure that A's foo always calls A's bar.
Parent classes should not be able to affect the method search order for
children by making changes to private methods.
- Charlie