[#5563] Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...>

Lately, I've been thinking about the future of ruby

44 messages 2005/08/19
[#5564] Re: Non-overridable and non-redefinable methods — Austin Ziegler <halostatue@...> 2005/08/19

On 8/19/05, Eric Mahurin <eric_mahurin@yahoo.com> wrote:

[#5571] Re: Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...> 2005/08/19

--- Austin Ziegler <halostatue@gmail.com> wrote:

[#5574] Re: Non-overridable and non-redefinable methods — TRANS <transfire@...> 2005/08/20

Just wanted to add a few things.

[#5581] Re: Non-overridable and non-redefinable methods — Austin Ziegler <halostatue@...> 2005/08/20

On 8/19/05, TRANS <transfire@gmail.com> wrote:

[#5583] Re: Non-overridable and non-redefinable methods — "David A. Black" <dblack@...> 2005/08/20

Hi --

[#5585] Re: Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...> 2005/08/20

--- "David A. Black" <dblack@wobblini.net> wrote:

[#5609] Pathname#walk for traversing path nodes (patch) — ES <ruby-ml@...>

Here is a small addition to Pathname against 1.9, probably suited

20 messages 2005/08/22

Re: Non-overridable and non-redefinable methods

From: Austin Ziegler <halostatue@...>
Date: 2005-08-20 13:26:29 UTC
List: ruby-core #5582
On 8/20/05, Eric Mahurin <eric_mahurin@yahoo.com> wrote:
> --- Austin Ziegler <halostatue@gmail.com> wrote:
>> On 8/19/05, Eric Mahurin <eric_mahurin@yahoo.com> wrote:
>>> Fixnum#<most methods>
>>> String#<most methods>
>>> Object#<most methods>
>> I disagree on all three. In no way do I believe that such overriding
>> is problematic, and I would never trade this flexbility for an
>> attempt at speed. Some methods, perhaps, but only those that fit the
>> /\b__[\w\d]+__\b/ pattern and are defined in the core. That's a lot
>> fewer than you're suggesting.
> You pulled this list out of context.

I pulled the list, but I believe that I did not misrepresent as I didn't
say anything about inheritance.

> Do you seriously believe that it really makes sense to redefine
> something like Fixnum#+? When you do that, you are only affecting the
> ruby code using Fixnum's, because in typical C code they have already
> bypassed the method call altogether and effectively inlined the
> method.  You'll end up with something strangely inconsistent.

The question is whether that should be programmatically prevented -- and
if so, for what reason. It's important to note that Fixnum#+ may call
#coerce in some cases, so even a C method could end up calling a
non-optimized method.

-austin
-- 
Austin Ziegler * halostatue@gmail.com
               * Alternate: austin@halostatue.ca


In This Thread