From: Eric Mahurin Date: 2005-08-23T23:39:20+09:00 Subject: Re: Non-overridable and non-redefinable methods --- SASADA Koichi wrote: > > Any opinion about the other topic I had - non-overridable > > methods? I'm mainly talking about stuff in Object - > __send__, > > __id__, equal?, nil?, etc. If you knew these couldn't be > > overridden (in a derived class - all other classes) or > > redefined, you could in-line these as soon as you saw them. > > > Much easier than the Fixnum#+ case discussed above where > you > > have to figure out that the object is always a Fixnum. > > I've abandoned static ruby program analysis :P What I'm talking about above (inlining certain methods in Object tagged as non-overridable) wouldn't require any static analysis because these methods would be independent of class. It is unfortunate that you've abandoned static analysis. I think you could see huge performance improvements if you went that route. I believe you could approach C/C++ performance - like Java is on every release. To really go down this path, you would have to recompile a method for each set of classes it is called with (recursively). So for one method in ruby, it might be compiled into many methods statically typed and possibly some partially or not static typed. And you could also in-line in the right places easily - because you know the class. Of course the big problem to all of this is redefinable methods. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com