Nicely done, Attila! I will follow up with the bugs you have found as soon as I’m done with the one I’m currently working on.
For a sanity check, can you run some octane benchmarks and make sure we didn’t lose any performance. I don’t think you need a full run. It should suffice to compare 3-4 iterations with —log=const and diff against same in tip to make sure that no callsites are missed that were picked up before. +1 in that case. Regard Marcus > On 06 Nov 2014, at 14:41, Attila Szegedi <[email protected]> wrote: > > Please review JDK-8062308 at > <http://cr.openjdk.java.net/~attila/8062308/webrev.00> for > <https://bugs.openjdk.java.net/browse/JDK-8062308> > > The gist of the issue is that we must maintain GlobalConstants objects per > Context, and not as a single systemwide static in Global. Furthermore, as > soon as the Context creates its second Global, we must disable the constant > linking forever in that Context. Constant linking creates an intimate > coupling between a Global and the compiled code, and is thus not compatible > with multi-Global Contexts. > > I have also reduced the synchronization burden in GlobalConstants somewhat > (only synchronizing when state needs to be accessed), and reduced the need to > even access GlobalConstants from ScriptObject when it's clear that the script > object in question is not a Global. > > Thanks, > Attila.
