Re: Unusually high polymorphic dispatch costs?

2011-04-30 Thread Charles Oliver Nutter
I have pushed a change to JRuby master that fails over to a simple inline cache after one failed GWT. This is not how I would want to do it long-term, but it does bring some benchmarks back in line with non-indy JRuby. Specifically, bench_richards 100 now runs in a normal amount of time...but i

Re: Unusually high polymorphic dispatch costs?

2011-04-30 Thread Charles Oliver Nutter
On Sat, Apr 30, 2011 at 2:27 AM, Charles Oliver Nutter wrote: > I have pushed a change to JRuby master that fails over to a simple > inline cache after one failed GWT. This is not how I would want to do > it long-term, but it does bring some benchmarks back in line with > non-indy JRuby. Specifica

InvokeDynamic

2011-04-30 Thread Daniel Latrémolière
I suggest a syntax for InvokeDynamic. It is created like a field and has a name (for referencing and bootstrapping it), then i suggest to create a new modifier "dynamic" and define InvokeDynamic like a mix of field and constructor with his bootstrap code included in it, like this: |{public|pro

Re: InvokeDynamic

2011-04-30 Thread Daniel Latrémolière
Sorry, I have forgotten the details of invoking the InvokeDynamic created by this syntax. This can be made by using a syntax like: |ClassName#indyName(...);| except if headers contains (like for "static" scope [1]): |import dynamic packageName.ClassName#indyName;| || where it can be

Re: Unusually high polymorphic dispatch costs?

2011-04-30 Thread Charles Oliver Nutter
Well it seems like the GWT-based PIC could be a *great* success, at least compared to falling back on a single-entry IC. I will shortly commit another patch to JRuby master that provides a configurable GWT chain size before giving up and going to a simple IC, and the results are spectacular. First