[#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
Eric Mahurin wrote: > Lately, I've been thinking about the future of ruby > performance, ruby compilers, optimizations that a ruby compiler > or VM could make, etc. I've come to the conclusion that one > big problem in ruby is that you can redefine (or remove) a > method (of an object or an instance method of a class) at any > point while running. Here are the problem I see with being > able to do this: Or to say it in another way: The language is hard to optimize, let's change it to one that's easier to optimize at the cost of sacrificing features. Note that this quote also applies here: "Researchers seeking to improve performance should improve their compilers instead of compromising their languages." -- An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes, July 1989 > To solve these problems and preserve existing functionality, > I'd propose that there be a way to tag a method to not be > redefinable or removable. I'd propose doing it similar to YARV. Optimize 1 + 2, but only if you clearly see a Fixnum.freeze at the beginning of the file. > Or am I off base? Is there another way to get this kind of > in-line performance without adding these > non-overridable/non-redefinable capabilities. It isn't easy which is why nobody has done it yet, but you can inline methods and heavily optimize them -- you just have to invalidate your optimized versions when a method has been changed. You can even compile two branches of the code -- one depending on no core class methods being overridden and the other not depending on it -- and execute the right one with an if statement. The SELF guys have done a lot of interesting optimizations like this and I'd think that at least some of them can also be applied to Ruby. The paper I quoted from: http://citeseer.ist.psu.edu/14611.html