Re: series of switchpoints or better

2017-10-14 Thread Mark Roos
Charlie said         or finer, like switchpoint-per-class-and-method-name, which I am playing with now Did you ever come to a conclusion here? And also          polymorphic caching, with each entry being a GWT (to check type) and a SP (to check modification) What happens when the SP triggers?  

Re: series of switchpoints or better

2016-10-05 Thread Charles Oliver Nutter
On Wed, Oct 5, 2016 at 6:26 PM, Jochen Theodorou wrote: > There is one more special problem I have though: per instance meta > classes. So even if a x and y have the same class as per JVM, they can have > differing meta classes. Which means a switchpoint alone is not enough...

Re: series of switchpoints or better

2016-10-05 Thread Jochen Theodorou
On 06.10.2016 00:51, Charles Oliver Nutter wrote: [...] JRuby does this invalidation eagerly, but the cost can be high for changes to classes close to the root of the hierarchy. You have fewer guards at each call site, though. I think that is ok for Groovy. There is one more special problem I

Re: series of switchpoints or better

2016-10-05 Thread Charles Oliver Nutter
On Oct 5, 2016 17:43, "Jochen Theodorou" wrote: > I see... the problem is actually similar, only that I do not have to do something like that on a per "subclass added" event, but on a per "method crud operation" event. And instead of going up to check for a devirtualization, I

Re: series of switchpoints or better

2016-10-05 Thread Jochen Theodorou
On 05.10.2016 22:22, John Rose wrote: [...] For the classic devirtualization trick, the JVM uses something that works like a cross between a switchpoint per super-class and a switchpoint per method: When you load a new sub-class, each of its supers S is walked, causing a search for any

Re: EXT: Re: series of switchpoints or better

2016-10-05 Thread Jochen Theodorou
On 05.10.2016 21:45, Charles Oliver Nutter wrote: On Wed, Oct 5, 2016 at 1:36 PM, Jochen Theodorou > wrote: If I hear Remi saying volatile read... then it does not sound free to me actually. In my experience volatile reads still present

Re: EXT: Re: series of switchpoints or better

2016-10-05 Thread John Rose
On Oct 5, 2016, at 12:45 PM, Charles Oliver Nutter wrote: > > It is also good to hear that the old "once invalidated, it will not optimized > again - ever" is no longer valid. > > And hopefully it will stay that way as long as we keep making noise :-) Go ahead, be that

Re: series of switchpoints or better

2016-10-05 Thread John Rose
On Oct 5, 2016, at 7:00 AM, Charles Oliver Nutter wrote: > > I will say that using SwitchPoints is FAR better than our alternative > mechanism: pinging the (meta)class each time and checking a serial number. This makes my day! That's exactly what SwitchPoints are designed

Re: EXT: Re: series of switchpoints or better

2016-10-05 Thread Charles Oliver Nutter
On Wed, Oct 5, 2016 at 1:36 PM, Jochen Theodorou wrote: > If I hear Remi saying volatile read... then it does not sound free to me > actually. In my experience volatile reads still present inlining barriers. > But if Remi and all of you tell me it is still basically free, then

Re: EXT: Re: series of switchpoints or better

2016-10-05 Thread Jochen Theodorou
On 05.10.2016 18:21, MacGregor, Duncan (GE Energy Connections) wrote: I second (third?) Charlie and Remi’s comments. SwitchPoint per method has worked very nicely to reduce the amount of code invalidated by meta-programming shenanigans. You could go further and try for a class-and-method

Re: EXT: Re: series of switchpoints or better

2016-10-05 Thread MacGregor, Duncan (GE Energy Connections)
chine Project <mlvm-dev@openjdk.java.net<mailto:mlvm-dev@openjdk.java.net>> Date: Wednesday, 5 October 2016 at 15:00 To: Da Vinci Machine Project <mlvm-dev@openjdk.java.net<mailto:mlvm-dev@openjdk.java.net>> Subject: EXT: Re: series of switchpoints or better Hi Jochen!

Re: series of switchpoints or better

2016-10-05 Thread Charles Oliver Nutter
Hi Jochen! On Wed, Oct 5, 2016 at 7:37 AM, Jochen Theodorou wrote: > > If the meta class for A is changed, all handles operating on instances of > A may have to reselect. the handles for B and Object need not to be > affected. If the meta class for Object changes, I need to

Re: series of switchpoints or better

2016-10-05 Thread Remi Forax
Hi Jochen, hi Chris, > De: "Chris Seaton" <chris.sea...@oracle.com> > À: "Da Vinci Machine Project" <mlvm-dev@openjdk.java.net> > Envoyé: Mercredi 5 Octobre 2016 14:47:24 > Objet: Re: series of switchpoints or better > Hi Jochen, > I’m no

Re: series of switchpoints or better

2016-10-05 Thread Chris Seaton
Hi Jochen, I’m not an expert on the implementation of switch points, but my understanding is that they don’t appear in the dynamically compiled machine code at all. They use the safe point mechanism of the VM (the same thing that does the stop-the-world in the garbage collectors) for which

series of switchpoints or better

2016-10-05 Thread Jochen Theodorou
Hi all, I am constructing a new meta class system for Groovy (ok, I say that for several years already, but bear with me) and I was wondering about the actual performance of switchpoints. In my current scenario I would need a way to say a certain group of meta classes got updated and the