[#5524] Division weirdness in 1.9 — "Florian Frank" <flori@...>
Hi,
[#5536] bug in variable assignment — Mauricio Fern疣dez <mfp@...>
Hi,
On Mon, Aug 08, 2005 at 11:36:22AM +0900, nobuyoshi nakada wrote:
hi,
Hi,
[#5552] Exceptions in threads all get converted to a TypeError — Paul van Tilburg <paul@...>
Hey all,
[#5563] Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...>
Lately, I've been thinking about the future of ruby
On 8/19/05, Eric Mahurin <eric_mahurin@yahoo.com> wrote:
--- Austin Ziegler <halostatue@gmail.com> wrote:
Just wanted to add a few things.
On 8/19/05, TRANS <transfire@gmail.com> wrote:
Hi --
--- "David A. Black" <dblack@wobblini.net> wrote:
On 8/20/05, Eric Mahurin <eric_mahurin@yahoo.com> wrote:
On 8/20/05, TRANS <transfire@gmail.com> wrote:
On 8/19/05, Eric Mahurin <eric_mahurin@yahoo.com> wrote:
--- Austin Ziegler <halostatue@gmail.com> wrote:
On 20 Aug 2005, at 02:05, Eric Mahurin wrote:
Eric Hodel wrote:
Eric Mahurin wrote:
Hi,
--- SASADA Koichi <ko1@atdot.net> wrote:
Hi,
--- SASADA Koichi <ko1@atdot.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
Evan Webb wrote:
In article <43094510.6090406@magical-cat.org>,
[#5651] File.extname edge case bug? — Daniel Berger <Daniel.Berger@...>
Hi all,
[#5662] Postgrey — Shugo Maeda <shugo@...>
Hi,
[#5676] uri test failures. (Re: [ruby-cvs] ruby/lib, ruby/lib/uri: Lovely RDOC patches from mathew (metaATpoboxDOTcom) on URI/* and getoptlong.rb) — Tanaka Akira <akr@...17n.org>
In article <20050824050801.5B4E0C671F@lithium.ruby-lang.org>,
[#5680] Problem with mkmf and spaces in directory names? — noreply@...
Bugs item #2308, was opened at 2005-08-25 13:42
[#5685] Wilderness Project — "Charles E. Thornton" <ruby-core@...>
OK - I see where ELTS_SHARED is used to implement COPY-ON-WRITE
Re: Non-overridable and non-redefinable methods
On 8/20/05, Eric Mahurin <eric_mahurin@yahoo.com> wrote: > This would be a nice feature to have and would probably be a > better thing to use rather than "private", but I don't think it > really helps from an optimization standpoint. I would assume > C#x could still be redefined at some point so you couldn't > easily inline it. Yes, you're right. It doesn't really address optimization. > Using the same private/protected/public/localized way for > tagging methods, here is what I'm talking about: > > class C > def a; "a"; end > > # can't be redefined > freeze_method :a > > def b; "b"; end > > # can't be overriden in derived classes > # should also imply that you can't redefine > final :b > > end > > class C > # error - trying to redefine > def a; "redefine-a"; end > # error - trying to redefine > def b; "redefine-c"; end > # no problem > def c; "add-c"; end > end > > class D < C > # no problem - C#a is left in tact > def a; "derived-a"; end > # error - trying to override #b > def b; "derived-b"; end > end > > c = C.new > > class << c > # no problem - C#a is left in tact > # we are operating on an anonymous meta class at this point > # c effectively has a new class - its meta class > def a; "meta-a"; end > # error - trying to override #b > # the meta class is a derived class of C > def b; "meta-b"; end > end > > > Having the ability to prevent methods from being redefined is > really just a subset of what Class#freeze does. Having the > ability to prevent methods from being overridden is new and at > least useful in a few methods in Object. One could argue that no methods should be redefinable. That classes ought to be subclassed if they are to change at all. I think there is good support for this. Furthermore, if there is such a thing as a proper means of class alternation it is surely AOP. T.