From: Austin Ziegler Date: 2005-08-20T22:26:29+09:00 Subject: Re: Non-overridable and non-redefinable methods On 8/20/05, Eric Mahurin wrote: > --- Austin Ziegler wrote: >> On 8/19/05, Eric Mahurin wrote: >>> Fixnum# >>> String# >>> Object# >> 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