Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 1:58 AM, Tom Rodriguez wrote: > but test is some ugly goo because of boxing.  It's relatively easy to get the > optimizer to fold away the boxing for boolean but sadly it doesn't help the > performance at all.  Additionally that ends up touching a fair amount of > common

hg: mlvm/mlvm: netbeans/meth project

2011-05-26 Thread john . r . rose
Changeset: fc655b960f84 Author:jrose Date: 2011-05-26 00:30 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/rev/fc655b960f84 netbeans/meth project ! netbeans/meth/nbproject/project.properties ___ mlvm-dev mailing list mlvm-dev@openjdk.ja

hg: mlvm/mlvm/jdk: meth: roll up separate patch sets into 7032323

2011-05-26 Thread john . r . rose
Changeset: fe290680d179 Author:jrose Date: 2011-05-26 00:45 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/fe290680d179 meth: roll up separate patch sets into 7032323 - meth-doc-7014005.2.patch - meth-doc-7014005.patch ! meth-review-7032323.patch ! series

Re: Danger Will Robinson! Missing API!

2011-05-26 Thread John Rose
On May 25, 2011, at 11:04 PM, Charles Oliver Nutter wrote: > I don't say it's not clever. It's just not something anyone is > typically going to figure out on their own. There will be constant > questions "if I can invalidate a SwitchPoint, why can't I ask if it > has been invalidated?" You are r

hg: mlvm/mlvm/hotspot: meth: add upcoming fixes; add experimental bimorphic MH inlining; cherry pick more hotspot-comp changes

2011-05-26 Thread john . r . rose
Changeset: 2e2b46407389 Author:jrose Date: 2011-05-26 00:48 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/hotspot/rev/2e2b46407389 meth: add upcoming fixes; add experimental bimorphic MH inlining; cherry pick more hotspot-comp changes + meth-bim.patch + meth-gc-7018355.patch ! m

hg: mlvm/mlvm/jdk: meth: respond to review comments; add experimental SwitchPoint.isValid

2011-05-26 Thread john . r . rose
Changeset: 48d38f4983fd Author:jrose Date: 2011-05-26 01:20 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/48d38f4983fd meth: respond to review comments; add experimental SwitchPoint.isValid ! meth-review-7032323.patch ___ mlvm-

Re: review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

2011-05-26 Thread John Rose
On May 25, 2011, at 11:58 PM, Tom Rodriguez wrote: > Overall it seems ok. A few minor oddities: > > MethodHandle.java > > variable arity is sometimes hyphenated. It seems more correct without but be > consistent. Replaced hyphen by space. > AdapterMethodHandle.java: > > The new value srcSl

Re: Good news, bad news

2011-05-26 Thread John Rose
On May 26, 2011, at 12:15 AM, Charles Oliver Nutter wrote: > It is definitely frustrating to see that perf has degraded so much the > past couple weeks and still not be there with the reverted code. I second that. I did some more cherry-picking this evening and the mlvm patch queue is now close

Re: Good news, bad news

2011-05-26 Thread Christian Thalinger
On May 26, 2011, at 9:15 AM, Charles Oliver Nutter wrote: > On Thu, May 26, 2011 at 1:58 AM, Tom Rodriguez > wrote: >> but test is some ugly goo because of boxing. It's relatively easy to get >> the optimizer to fold away the boxing for boolean but sadly it doesn't help >> the performance at a

hg: mlvm/mlvm/jdk: meth: clarify security manager check #3

2011-05-26 Thread john . r . rose
Changeset: a2a393ea78d5 Author:jrose Date: 2011-05-26 01:54 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/a2a393ea78d5 meth: clarify security manager check #3 ! meth-review-7032323.patch ___ mlvm-dev mailing list mlvm-dev@openj

Re: Good news, bad news

2011-05-26 Thread Christian Thalinger
On May 26, 2011, at 10:42 AM, Christian Thalinger wrote: > On May 26, 2011, at 9:15 AM, Charles Oliver Nutter wrote: >> On Thu, May 26, 2011 at 1:58 AM, Tom Rodriguez >> wrote: >>> but test is some ugly goo because of boxing. It's relatively easy to get >>> the optimizer to fold away the boxing

Re: Good news, bad news

2011-05-26 Thread Ola Bini
On 2011-05-26 14.04, John Rose wrote: > On May 26, 2011, at 12:15 AM, Charles Oliver Nutter wrote: > >> It is definitely frustrating to see that perf has degraded so much the >> past couple weeks and still not be there with the reverted code. > > I second that. > > I did some more cherry-picking

Re: Good news, bad news

2011-05-26 Thread John Rose
On May 26, 2011, at 1:42 AM, Christian Thalinger wrote: > Using Tom's new code doesn't make a difference since I think the meth.jar > from John includes the reverted GWT code. I just added a hook to test whether the GWT change matters or not. Choose either flag setting: java -Djava.lang.invo

hg: mlvm/mlvm/jdk: meth: fix patch skew

2011-05-26 Thread john . r . rose
Changeset: 7ec927cb3df3 Author:jrose Date: 2011-05-26 02:16 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/7ec927cb3df3 meth: fix patch skew ! meth-deprecate.patch ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.

Re: Good news, bad news

2011-05-26 Thread John Rose
On May 26, 2011, at 2:12 AM, Ola Bini wrote: > Hey John, > > Something in the patch queue fails to apply cleanly: That was quick! I noticed that when I spun the meth.jar. Fixed! -- John ___ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.

Re: Good news, bad news

2011-05-26 Thread Jochen Theodorou
Am 26.05.2011 11:03, schrieb Christian Thalinger: [...] > I looked at the inlining tree of fib and everything looks good and is > inlined. There is one invokeExact which is: > > @ 43 java.lang.invoke.MethodHandle::invokeExact (42 bytes) too > big > > but bumping the MaxInlineSize just shows th

Re: Good news, bad news

2011-05-26 Thread Christian Thalinger
On May 26, 2011, at 11:24 AM, Jochen Theodorou wrote: > Am 26.05.2011 11:03, schrieb Christian Thalinger: > [...] >> I looked at the inlining tree of fib and everything looks good and is >> inlined. There is one invokeExact which is: >> >> @ 43 java.lang.invoke.MethodHandle::invokeExact (42 byt

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 3:34 AM, John Rose wrote: > I did some more cherry-picking this evening and the mlvm patch queue is now > closer to the reality of what's in jdk7 b144. > > I also pushed Tom's bimorphic MH inlining code, on an experimental basis. Ok, I'll rebuild and use current stuff for

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 4:03 AM, Christian Thalinger wrote: > Is there some additional code that got added to the GWT logic or maybe some > additional code on the JRuby side that would explain the slowdown? The current logic is 2x faster on the 5/13 build (b141ish maybe?) of macosx port than on

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 4:47 AM, Charles Oliver Nutter wrote: > The current logic is 2x faster on the 5/13 build (b141ish maybe?) of By "current logic" I mean "the logic in JRuby master right now". Same JRuby logic, compared between an earlier macosx build and current mlvm build, and the macosx b

Re: Danger Will Robinson! Missing API!

2011-05-26 Thread Rémi Forax
On 05/26/2011 10:16 AM, John Rose wrote: > On May 25, 2011, at 11:04 PM, Charles Oliver Nutter wrote: > >> I don't say it's not clever. It's just not something anyone is >> typically going to figure out on their own. There will be constant >> questions "if I can invalidate a SwitchPoint, why can't

Re: Danger Will Robinson! Missing API!

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 3:16 AM, John Rose wrote: > You are right about the questions.  That's one of the first things to annoy > me about an API:  mutators w/o queries. > > We omitted it because it's not a very trustworthy query.  But it's easy to > add. > > Here's possible javadoc: > >    /**

Re: Danger Will Robinson! Missing API!

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 4:52 AM, Rémi Forax wrote: > As John says,  if isValid return true, > you know nothing because it's perhaps not true anymore. Not true. You know if it was valid when you queried it. That will be enough for many use cases (including mine). Your assertion could also be made

hg: mlvm/mlvm/jdk: meth: add experimental GWT knob

2011-05-26 Thread john . r . rose
Changeset: 4e1bd8a521ea Author:jrose Date: 2011-05-26 02:03 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/4e1bd8a521ea meth: add experimental GWT knob ! meth-review-7032323.patch ___ mlvm-dev mailing list mlvm-dev@openjdk.java.

Re: Danger Will Robinson! Missing API!

2011-05-26 Thread Rémi Forax
On 05/26/2011 11:56 AM, Charles Oliver Nutter wrote: > On Thu, May 26, 2011 at 4:52 AM, Rémi Forax wrote: >> As John says, if isValid return true, >> you know nothing because it's perhaps not true anymore. > Not true. You know if it was valid when you queried it. That will be > enough for many us

Re: More performance explorations

2011-05-26 Thread Rémi Forax
As far as I know there is no specific optimization of SwitchPoint i.e there is still a volatile read in the middle of the pattern. Rémi On 05/26/2011 08:40 AM, Charles Oliver Nutter wrote: > Now for something completely different: SwitchPoint-based "constant" > lookup in JRuby. > > It's certainly

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 3:42 AM, Christian Thalinger wrote: > I also did some performance testing.  I used a recent HS repository, applied > Tom's patch, used a recent meth.jar provided by John and this is what I got: Somehow I stumbled past this reply...comments inline below. > intelsdv07:~/ml

Re: Good news, bad news

2011-05-26 Thread Rémi Forax
Charles, why do you use IRubyObject exactly ? why not using Object instead ? I use Object in PHP.reboot and see no problem. Rémi On 05/26/2011 09:15 AM, Charles Oliver Nutter wrote: > On Thu, May 26, 2011 at 1:58 AM, Tom Rodriguez > wrote: >> but test is some ugly goo because of boxing. It's

hg: mlvm/mlvm/jdk: meth: respond to review comments

2011-05-26 Thread john . r . rose
Changeset: d3c86218c3f5 Author:jrose Date: 2011-05-26 03:29 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/d3c86218c3f5 meth: respond to review comments ! meth-review-7032323.patch ___ mlvm-dev mailing list mlvm-dev@openjdk.java

Re: Danger Will Robinson! Missing API!

2011-05-26 Thread John Rose
On May 26, 2011, at 3:02 AM, Rémi Forax wrote: >> ...which pretty much >> describes all concurrently mutable state, doesn't it? ;) > > You're right :) > >> - Charlie > > Rémi Caught me. :-) That didn't take long. -- John ___ mlvm-dev mailing list

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 5:25 AM, Rémi Forax wrote: > Charles, > why do you use IRubyObject exactly ? > why not using Object instead ? > > I use Object in PHP.reboot and see no problem. Legacy, mostly... JRuby still supports Java 5 and 6, which limits how specialized we can make call paths. Requir

hg: mlvm/mlvm/jdk: meth: fix unit test, tweak doc

2011-05-26 Thread john . r . rose
Changeset: 1006116d2e9b Author:jrose Date: 2011-05-26 03:47 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/1006116d2e9b meth: fix unit test, tweak doc ! meth-review-7032323.patch ___ mlvm-dev mailing list mlvm-dev@openjdk.java.n

Re: Good news, bad news

2011-05-26 Thread Rémi Forax
On 05/26/2011 12:33 PM, Charles Oliver Nutter wrote: > On Thu, May 26, 2011 at 5:25 AM, Rémi Forax wrote: >> Charles, >> why do you use IRubyObject exactly ? >> why not using Object instead ? >> >> I use Object in PHP.reboot and see no problem. > Legacy, mostly... JRuby still supports Java 5 and 6

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 6:18 AM, Rémi Forax wrote: > For the metaclass, the idea is to not retrieve the metaclass in the fast > path, > if you have one Java class for one ruby class and a 1 to 1 relation between > a class and a metaclass, checking the class and the SwitchPoint of the > metaclass >

Re: review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

2011-05-26 Thread Tom Rodriguez
isValid looks fine. tom On May 26, 2011, at 1:31 AM, John Rose wrote: > On May 25, 2011, at 11:58 PM, Tom Rodriguez wrote: > >> Overall it seems ok. A few minor oddities: >> >> MethodHandle.java >> >> variable arity is sometimes hyphenated. It seems more correct without but >> be consisten

Re: review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

2011-05-26 Thread Y. S. Ramakrishna
John, you state that validity is not a stable property. Is invalidity a stable property, or not even that is. -- ramki (who doesn't yet know what a switchpoint is) On 05/26/11 10:11, Tom Rodriguez wrote: > isValid looks fine. > > tom > > On May 26, 2011, at 1:31 AM, John Rose wrote: > >> On Ma

Re: review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

2011-05-26 Thread Rémi Forax
On 05/26/2011 09:10 PM, Y. S. Ramakrishna wrote: > John, you state that validity is not a stable property. > Is invalidity a stable property, or not even that is. yes, once invalidated a switch point can't be reverted to a valid state. http://download.java.net/jdk7/docs/api/java/lang/invoke/Switch

Re: review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

2011-05-26 Thread Y. S. Ramakrishna
Ah, i found the doc comment that "invalidity can't be reversed" which i take to mean that invalidity is a stable property. Under that understanding, it would seem that isInvalid() is a better API than isValid() (on the other hand i don't know how this query is used, since i haven't followed the dis

Re: review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

2011-05-26 Thread John Rose
Invalidity is stable because it is permanent. -- John (on my iPhone) On May 26, 2011, at 12:10 PM, "Y. S. Ramakrishna" wrote: > John, you state that validity is not a stable property. > Is invalidity a stable property, or not even that is. > ___ m

Re: review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

2011-05-26 Thread Charles Oliver Nutter
The method comes from a request by me, and isInvalid seems a bit double-negativy to me. If it returns false, it's not invalid, which means not not valid, which means valid. From a language perspective, it seems clearer to ask if it's valid, and not have a false value negate a negative (even if that

Re: review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

2011-05-26 Thread John Rose
On May 26, 2011, at 1:21 PM, Charles Oliver Nutter wrote: > isInvalid seems a bit double-negativy to me. That's my hesitation. Consider the use case: void maybeCleanUpMess(SwitchPoint sp) { if (!mysp.isInvalid()) return; ... // do cleanup after invalidation } It reads better as:

hg: mlvm/mlvm/jdk: meth-deprecate: adjust doc, remove strawmen

2011-05-26 Thread john . r . rose
Changeset: 5ebf0fbafd90 Author:jrose Date: 2011-05-26 13:40 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/5ebf0fbafd90 meth-deprecate: adjust doc, remove strawmen ! meth-deprecate.patch ___ mlvm-dev mailing list mlvm-dev@openjd

hg: mlvm/mlvm/jdk: meth-deprecate: move experimenta GWT hook into its own patch; tweak doc

2011-05-26 Thread john . r . rose
Changeset: a58ad137e1de Author:jrose Date: 2011-05-26 13:49 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/a58ad137e1de meth-deprecate: move experimenta GWT hook into its own patch; tweak doc + meth-experiment.patch ! meth-review-7032323.patch ! series ___

Re: review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

2011-05-26 Thread Y. S. Ramakrishna
Yes, agreed. But one could also write: > void maybeCleanUpMess(SwitchPoint sp) { > if (mysp.isInvalid()) { > ... // do cleanup after invalidation } // else nothing to do > } I don't know if one style is better than the other generally. It's just that doing something bas

Re: Good news, bad news

2011-05-26 Thread Tom Rodriguez
There's something deeply bizarro about that assembly. It looks like x64 assembly decoded by the 32 assembler. I think your hsdis wasn't built right. tom On May 26, 2011, at 2:13 PM, Charles Oliver Nutter wrote: > On Thu, May 26, 2011 at 1:58 AM, Tom Rodriguez > wrote: >>> Great to hear this

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
Hmm, I'll look into it. I used the amd64 build from the hsdis project on kenai... On Thu, May 26, 2011 at 4:27 PM, Tom Rodriguez wrote: > There's something deeply bizarro about that assembly.  It looks like x64 > assembly decoded by the 32 assembler.  I think your hsdis wasn't built right. > > t

Re: Good news, bad news

2011-05-26 Thread John Rose
On May 26, 2011, at 2:43 PM, Charles Oliver Nutter wrote: > Hmm, I'll look into it. I used the amd64 build from the hsdis project I posted the bsd/amd64 libdis when I was desperate for something that would at least link and partially decode instructions. But that hsdis binary doesn't really kn

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
I see someone tagged that build as "broken" now on Kenai. Can someone with the appropriate skills do a non-broken build? I've never build the hsdis plugin (but I'm attempting to now. - Charlie On Thu, May 26, 2011 at 4:43 PM, Charles Oliver Nutter wrote: > Hmm, I'll look into it. I used the amd6

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 5:16 PM, John Rose wrote: > I posted the bsd/amd64 libdis when I was desperate for something that would > at least link and partially decode instructions.  But that hsdis binary > doesn't really know about x64 disassembly.  (The base project doesn't support > x64.  The g

Re: Good news, bad news

2011-05-26 Thread John Rose
On May 26, 2011, at 3:45 PM, Charles Oliver Nutter wrote: > Ahh...well is there another binary you can point me at? Otherwise, > I'll just do i386 asm for now. I tagged it. It's broken in the sense that it's a brutal 64-bit build of code designed only for 32-bit disassembly. I suggest doing at

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 6:00 PM, John Rose wrote: > I tagged it.  It's broken in the sense that it's a brutal 64-bit build of > code designed only for 32-bit disassembly. > > I suggest doing at least some of these investigations with 32-bit builds.   > (But, we do need a binutils-based hsdis!) N

Re: Good news, bad news

2011-05-26 Thread Tom Rodriguez
I'll see what I can do on my mac. tom On May 26, 2011, at 3:45 PM, Charles Oliver Nutter wrote: > On Thu, May 26, 2011 at 5:16 PM, John Rose wrote: >> I posted the bsd/amd64 libdis when I was desperate for something that would >> at least link and partially decode instructions. But that hsdis

Re: review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

2011-05-26 Thread John Rose
On May 26, 2011, at 10:11 AM, Tom Rodriguez wrote: > isValid looks fine. Thanks Tom. I also corrected the javadoc, added a demo of isValid and copied the javadoc example into the unit tests. -- John diff --git a/src/share/classes/java/lang/invoke/SwitchPoint.java b/src/share/classes/java/lan

hg: mlvm/mlvm/jdk: meth: fix javadoc example for SwitchPoint; make jcheck happy

2011-05-26 Thread john . r . rose
Changeset: d00ba9ebe2c7 Author:jrose Date: 2011-05-26 16:43 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/d00ba9ebe2c7 meth: fix javadoc example for SwitchPoint; make jcheck happy ! meth-review-7032323.patch ___ mlvm-dev mailin

Re: More performance explorations

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 5:20 AM, Rémi Forax wrote: > As far as I know there is no specific optimization of SwitchPoint > i.e there is still a volatile read in the middle of the pattern. If that's true I'm not sure how this is better than a regular GWT with a volatile read in the test. - Charlie

Re: More performance explorations

2011-05-26 Thread Rémi Forax
On 05/27/2011 01:53 AM, Charles Oliver Nutter wrote: > On Thu, May 26, 2011 at 5:20 AM, Rémi Forax wrote: >> As far as I know there is no specific optimization of SwitchPoint >> i.e there is still a volatile read in the middle of the pattern. > If that's true I'm not sure how this is better than a

Re: More performance explorations

2011-05-26 Thread John Rose
On May 26, 2011, at 4:53 PM, Charles Oliver Nutter wrote: > On Thu, May 26, 2011 at 5:20 AM, Rémi Forax wrote: >> As far as I know there is no specific optimization of SwitchPoint >> i.e there is still a volatile read in the middle of the pattern. > > If that's true I'm not sure how this is bett

Re: More performance explorations

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 7:09 PM, Rémi Forax wrote: > It will be better when SwitchPoint will be optimized, > the major point of having the SwitchPoint API is, > like most of the API of java.lang.invoke, > that these API are/will be recognized and optimized by the VM. Ok, whew...I thought I misund

Re: More performance explorations

2011-05-26 Thread John Rose
What Remi said. -- John On May 26, 2011, at 5:09 PM, Rémi Forax wrote: > the major point of having the SwitchPoint API is, > like most of the API of java.lang.invoke, > that these API are/will be recognized and optimized by the VM. ___ mlvm-dev mailin

Re: More performance explorations

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 7:13 PM, John Rose wrote: > It's probably about the same as GWT+volatile right now; actually there's a > MCS with a memory barrier in the present code. > But since SwitchPoint is a clear pattern it can be optimized in the future. >  It's clear the user of a SwitchPoint want

Re: More performance explorations

2011-05-26 Thread John Rose
On May 26, 2011, at 5:18 PM, Charles Oliver Nutter wrote: > Some combination of > these flags will be enabled by default as they get optimized in > Hotspot. That should allow having things "on" as they're ready to be > on by default. That's the way we do it in the JVM also, on works-in-progress w

Re: Good news, bad news

2011-05-26 Thread Charles Oliver Nutter
Oh, forgot to include dynopt numbers under that older macosx build: ~/projects/jruby ➔ jruby -Xcompile.dynopt=true -Xinvokedynamic.invocation=false --server -J-d32 bench/bench_fib_recursive.rb 5 35 9227465 1.366000 0.00 1.366000 ( 1.293000) 9227465 0.949000 0.00 0.949000 ( 0.

SwitchPoint strategy for JRuby class modification invalidation

2011-05-26 Thread Charles Oliver Nutter
I wanted to outline how I plan to make JRuby's current class modification check eventually be all SwitchPoint driven. JRuby, like some other dynamic languages, allows runtime modification of pretty much every class in the system. Usually this only happens at boot time, but since it can potentially

Re: More performance explorations

2011-05-26 Thread Charles Oliver Nutter
Another data point...bench_method_dispatch_only. Review: this bench benchmarks the overhead of a while loop and dynamic invocations of a trivial Ruby method. It is intended to benchmark (mostly) the overhead of making a dyncall, and the ability of the VM to optimize away mostly-dead logic. The ben

Re: More performance explorations

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 8:40 PM, Charles Oliver Nutter wrote: > dynopt is interesting for comparison: > > ~/projects/jruby ➔ jruby --server -J-d32 -Xjit.threshold=2 > -Xcompile.invokedynamic=false -Xcompile.dynopt=true > -Xinvokedynamic.constants=false > bench/language/bench_method_dispatch_only.r

Re: SwitchPoint strategy for JRuby class modification invalidation

2011-05-26 Thread John Rose
That sounds right. On May 26, 2011, at 6:31 PM, Charles Oliver Nutter wrote: > * For a descendant hierarchy of N classes, I'll need to do N > invalidateAll calls. This is not ideal, since those calls are very > heavy. Fully optimized invalidations will use safepoints. The point of using an arra

Re: SwitchPoint strategy for JRuby class modification invalidation

2011-05-26 Thread Charles Oliver Nutter
On Thu, May 26, 2011 at 9:02 PM, John Rose wrote: > Fully optimized invalidations will use safepoints.  The point of using an > array is to allow any number of switchpoints to ride on one safepoint.  Can > you batch all the invalidations in a given hierarchy of N classes?  Or is > there an orde

Current Crash status

2011-05-26 Thread Ola Bini
Hi, I just built a new JDK and ran everything with it. The good news is that the problem with the missing class doesn't show up anymore. However, I still see the ShouldNotReachHere problem: # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (frame.cpp:1158),

Differences in asType between MLVM/bsdport and JDK7

2011-05-26 Thread Ola Bini
Hi, It seems there is still a difference in how asType MHs work between what is in current JDK7 repo, and what you get from building bsdport with mlvm patches. Specifically, when running things with bsdport/mlvm they work. When running on JDK7 (built about 30 minutes ago) I get this: Caused by: j

Re: Differences in asType between MLVM/bsdport and JDK7

2011-05-26 Thread John Rose
On May 26, 2011, at 11:38 PM, Ola Bini wrote: > It seems there is still a difference in how asType MHs work between what > is in current JDK7 repo, and what you get from building bsdport with > mlvm patches. Specifically, when running things with bsdport/mlvm they > work. When running on JDK7 (bui