From david.holmes at oracle.com Tue Sep 5 12:34:46 2017 From: david.holmes at oracle.com (David Holmes) Date: Tue, 5 Sep 2017 22:34:46 +1000 Subject: RFR: 8187221 [Nestmates] Virtual invocation for private interface methods Message-ID: <5179dca2-3fbb-9d94-990a-957371c2d5c6@oracle.com> webrev: http://cr.openjdk.java.net/~dholmes/8187221/ Following up from JDK-8186763 this issue handles item #2: 2. Use invokeinterface for private interface method invocations, instead of invokespecial This involves three basic pieces: 1. javac issues invokeinterface instead of invokespecial 2. Verifier rules requiring invokespecial are relaxed for latest class file version (exact version TBD based on release timing) 3. Method resolution locates the expected method. As part of this change I'm also isolating the changes that allowed invokespecial to be used for nestmate method invocations. In the near future that code will be removed so that we are near final-form. Actual file changes are very simple in the end: src/share/vm/classfile/verifier.cpp Restore original (pre-nestmate) logic for invokespecial and add in the nestmate-enabling logic under the UseNewCode guard. --- src/share/vm/interpreter/linkResolver.cpp LinkResolver::resolve_interface_method: Only prohibit invokeinterface for private interface methods if : InstanceKlass::cast(current_klass)->major_version() < VIRTUAL_PRIVATE_ACCESS_VERSION LinkResolver::runtime_resolve_interface_method: Don't resolve in the receiver class if dealing with a private interface method --- src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java Removed the check for interface methods when generating virtual calls. --- With these changes in place the following test options will test the use of invokevirtual and invokeinterface for private method invocations: -javacoption:-XDdisablePrivateAccessors -javacoption:-XDvirtualizePrivateAccess If you still want to experiment with the invokespecial changes use: -javacoption:-XDdisablePrivateAccessors -javaoption:-XX:+UseNewCode (note the second one is a java option not javac) Next iteration I plan on removing the invokespecial related changes. --- Testing so far: - all runtime jtreg tests - langtools jtreg tests Cheers, David ----- From maurizio.cimadamore at oracle.com Tue Sep 5 13:20:09 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 5 Sep 2017 14:20:09 +0100 Subject: RFR: 8187221 [Nestmates] Virtual invocation for private interface methods In-Reply-To: <5179dca2-3fbb-9d94-990a-957371c2d5c6@oracle.com> References: <5179dca2-3fbb-9d94-990a-957371c2d5c6@oracle.com> Message-ID: <0addd9aa-126c-40f7-2075-267f1d382eb7@oracle.com> Langtools change looks good, VM changes also make sense. One question - I wonder why the old code assumed that link_info.current_klass() could be null? I see that your new code expects that not to be the case (otherwise the code would crash), and that's probably a consequence of the fact that you're using InstanceKlass::cast which I see asserts that value passed in is not NULL. So does it mean that this value cannot ever be NULL and that the old code was 'bogus' ? Maurizio On 05/09/17 13:34, David Holmes wrote: > webrev: http://cr.openjdk.java.net/~dholmes/8187221/ > > Following up from JDK-8186763 this issue handles item #2: > > 2. Use invokeinterface for private interface method invocations, > instead of invokespecial > > This involves three basic pieces: > > 1. javac issues invokeinterface instead of invokespecial > 2. Verifier rules requiring invokespecial are relaxed for latest class > file version (exact version TBD based on release timing) > 3. Method resolution locates the expected method. > > As part of this change I'm also isolating the changes that allowed > invokespecial to be used for nestmate method invocations. In the near > future that code will be removed so that we are near final-form. > > Actual file changes are very simple in the end: > > src/share/vm/classfile/verifier.cpp > > Restore original (pre-nestmate) logic for invokespecial and add in the > nestmate-enabling logic under the UseNewCode guard. > > --- > > src/share/vm/interpreter/linkResolver.cpp > > LinkResolver::resolve_interface_method: Only prohibit invokeinterface > for private interface methods if : > InstanceKlass::cast(current_klass)->major_version() < > VIRTUAL_PRIVATE_ACCESS_VERSION > > LinkResolver::runtime_resolve_interface_method: Don't resolve in the > receiver class if dealing with a private interface method > > --- > > src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java > > Removed the check for interface methods when generating virtual calls. > > --- > > With these changes in place the following test options will test the > use of invokevirtual and invokeinterface for private method invocations: > > -javacoption:-XDdisablePrivateAccessors > -javacoption:-XDvirtualizePrivateAccess > > If you still want to experiment with the invokespecial changes use: > > -javacoption:-XDdisablePrivateAccessors -javaoption:-XX:+UseNewCode > > (note the second one is a java option not javac) > > Next iteration I plan on removing the invokespecial related changes. > > --- > > Testing so far: > - all runtime jtreg tests > - langtools jtreg tests > > Cheers, > David > ----- From david.holmes at oracle.com Tue Sep 5 21:34:02 2017 From: david.holmes at oracle.com (David Holmes) Date: Wed, 6 Sep 2017 07:34:02 +1000 Subject: RFR: 8187221 [Nestmates] Virtual invocation for private interface methods In-Reply-To: <0addd9aa-126c-40f7-2075-267f1d382eb7@oracle.com> References: <5179dca2-3fbb-9d94-990a-957371c2d5c6@oracle.com> <0addd9aa-126c-40f7-2075-267f1d382eb7@oracle.com> Message-ID: <5fcec8d9-f9e6-c941-c327-5d6e0338d70e@oracle.com> Hi Maurizio, On 5/09/2017 11:20 PM, Maurizio Cimadamore wrote: > Langtools change looks good, You made it so simple for me to change. :) > VM changes also make sense. One question - > I wonder why the old code assumed that link_info.current_klass() could > be null? I see that your new code expects that not to be the case > (otherwise the code would crash), and that's probably a consequence of > the fact that you're using InstanceKlass::cast which I see asserts that > value passed in is not NULL. So does it mean that this value cannot ever > be NULL and that the old code was 'bogus' ? My take was that the current_klass can not possibly be null - but looking further I think that was wishful thinking. We allow for a NULL caller class: // Case where we just find the method and don't check access against the current class LinkInfo(Klass* resolved_klass, Symbol*name, Symbol* signature) : _resolved_klass(resolved_klass), _name(name), _signature(signature), _current_klass(NULL), _current_method(methodHandle()), _check_access(false), _tag(JVM_CONSTANT_Invalid) {} and I see some use of this from JavaCalls and MethodHandle code. It may be that if this code is called from JNI that there is no current klass. That particularly code path may not be tested yet ... which suggests there is no test that tries to trigger the ICCE, because it would now not throw (such a test would have to be compiled with an earlier classfile version). I'll have to dig deeper on this. Thanks, David > Maurizio > > > On 05/09/17 13:34, David Holmes wrote: >> webrev: http://cr.openjdk.java.net/~dholmes/8187221/ >> >> Following up from JDK-8186763 this issue handles item #2: >> >> 2. Use invokeinterface for private interface method invocations, >> instead of invokespecial >> >> This involves three basic pieces: >> >> 1. javac issues invokeinterface instead of invokespecial >> 2. Verifier rules requiring invokespecial are relaxed for latest class >> file version (exact version TBD based on release timing) >> 3. Method resolution locates the expected method. >> >> As part of this change I'm also isolating the changes that allowed >> invokespecial to be used for nestmate method invocations. In the near >> future that code will be removed so that we are near final-form. >> >> Actual file changes are very simple in the end: >> >> src/share/vm/classfile/verifier.cpp >> >> Restore original (pre-nestmate) logic for invokespecial and add in the >> nestmate-enabling logic under the UseNewCode guard. >> >> --- >> >> src/share/vm/interpreter/linkResolver.cpp >> >> LinkResolver::resolve_interface_method: Only prohibit invokeinterface >> for private interface methods if : >> InstanceKlass::cast(current_klass)->major_version() < >> VIRTUAL_PRIVATE_ACCESS_VERSION >> >> LinkResolver::runtime_resolve_interface_method: Don't resolve in the >> receiver class if dealing with a private interface method >> >> --- >> >> src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java >> >> Removed the check for interface methods when generating virtual calls. >> >> --- >> >> With these changes in place the following test options will test the >> use of invokevirtual and invokeinterface for private method invocations: >> >> -javacoption:-XDdisablePrivateAccessors >> -javacoption:-XDvirtualizePrivateAccess >> >> If you still want to experiment with the invokespecial changes use: >> >> -javacoption:-XDdisablePrivateAccessors -javaoption:-XX:+UseNewCode >> >> (note the second one is a java option not javac) >> >> Next iteration I plan on removing the invokespecial related changes. >> >> --- >> >> Testing so far: >> ?- all runtime jtreg tests >> ?- langtools jtreg tests >> >> Cheers, >> David >> ----- > From lois.foltan at oracle.com Wed Sep 6 00:37:29 2017 From: lois.foltan at oracle.com (Lois Foltan) Date: Tue, 5 Sep 2017 20:37:29 -0400 Subject: RFR (M): 8182367: [MVT] Byte-code verifier support for minimal value types Message-ID: <4059ba33-a5f1-11d5-0000-069bc529d081@oracle.com> Hello, Review request for verifier changes to support MVT. Webrevs: ??? http://cr.openjdk.java.net/~lfoltan/mvt_verifier_jdk.1/webrev/ http://cr.openjdk.java.net/~lfoltan/mvt_verifier_hotspot.1/webrev/ Webrevs include changes to address preliminary review comments by John Rose and Harold Seigel. Testing - hotspot jtreg tests, java/lang, java/util, java/io, JDK & Hotspot valhalla tests, jprt hotspot tests, JCK vm (in progress). Thanks, Lois From david.holmes at oracle.com Wed Sep 6 06:58:56 2017 From: david.holmes at oracle.com (David Holmes) Date: Wed, 6 Sep 2017 16:58:56 +1000 Subject: RFR: 8187221 [Nestmates] Virtual invocation for private interface methods In-Reply-To: <5fcec8d9-f9e6-c941-c327-5d6e0338d70e@oracle.com> References: <5179dca2-3fbb-9d94-990a-957371c2d5c6@oracle.com> <0addd9aa-126c-40f7-2075-267f1d382eb7@oracle.com> <5fcec8d9-f9e6-c941-c327-5d6e0338d70e@oracle.com> Message-ID: <80d15c96-55f3-03d2-1804-31a12fc68fe8@oracle.com> On 6/09/2017 7:34 AM, David Holmes wrote: > Hi Maurizio, > > On 5/09/2017 11:20 PM, Maurizio Cimadamore wrote: >> Langtools change looks good, > > You made it so simple for me to change. :) > >> VM changes also make sense. One question - I wonder why the old code >> assumed that link_info.current_klass() could be null? I see that your >> new code expects that not to be the case (otherwise the code would >> crash), and that's probably a consequence of the fact that you're >> using InstanceKlass::cast which I see asserts that value passed in is >> not NULL. So does it mean that this value cannot ever be NULL and that >> the old code was 'bogus' ? > > My take was that the current_klass can not possibly be null - but > looking further I think that was wishful thinking. We allow for a NULL > caller class: > > ? // Case where we just find the method and don't check access against > the current class > ? LinkInfo(Klass* resolved_klass, Symbol*name, Symbol* signature) : > ??? _resolved_klass(resolved_klass), > ??? _name(name), _signature(signature), _current_klass(NULL), > _current_method(methodHandle()), > ??? _check_access(false), _tag(JVM_CONSTANT_Invalid) {} > > > and I see some use of this from JavaCalls and MethodHandle code. It may > be that if this code is called from JNI that there is no current klass. Given we're dealing with an invokeinterface bytecode I can't see how JNI can possibly be involved, nor how we could fail to have a current class. I've added an assert and re-run current testing to see if it trips, but ... > That particularly code path may not be tested yet ... which suggests > there is no test that tries to trigger the ICCE, because it would now > not throw (such a test would have to be compiled with an earlier > classfile version). ... we do seem to be missing basic testing in this area, so this code path is not being exercised at present. Additionally I need to force the taking of this path by using different classfile versions which I'm not setup to do. David ----- > I'll have to dig deeper on this. > > Thanks, > David > >> Maurizio >> >> >> On 05/09/17 13:34, David Holmes wrote: >>> webrev: http://cr.openjdk.java.net/~dholmes/8187221/ >>> >>> Following up from JDK-8186763 this issue handles item #2: >>> >>> 2. Use invokeinterface for private interface method invocations, >>> instead of invokespecial >>> >>> This involves three basic pieces: >>> >>> 1. javac issues invokeinterface instead of invokespecial >>> 2. Verifier rules requiring invokespecial are relaxed for latest >>> class file version (exact version TBD based on release timing) >>> 3. Method resolution locates the expected method. >>> >>> As part of this change I'm also isolating the changes that allowed >>> invokespecial to be used for nestmate method invocations. In the near >>> future that code will be removed so that we are near final-form. >>> >>> Actual file changes are very simple in the end: >>> >>> src/share/vm/classfile/verifier.cpp >>> >>> Restore original (pre-nestmate) logic for invokespecial and add in >>> the nestmate-enabling logic under the UseNewCode guard. >>> >>> --- >>> >>> src/share/vm/interpreter/linkResolver.cpp >>> >>> LinkResolver::resolve_interface_method: Only prohibit invokeinterface >>> for private interface methods if : >>> InstanceKlass::cast(current_klass)->major_version() < >>> VIRTUAL_PRIVATE_ACCESS_VERSION >>> >>> LinkResolver::runtime_resolve_interface_method: Don't resolve in the >>> receiver class if dealing with a private interface method >>> >>> --- >>> >>> src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java >>> >>> Removed the check for interface methods when generating virtual calls. >>> >>> --- >>> >>> With these changes in place the following test options will test the >>> use of invokevirtual and invokeinterface for private method invocations: >>> >>> -javacoption:-XDdisablePrivateAccessors >>> -javacoption:-XDvirtualizePrivateAccess >>> >>> If you still want to experiment with the invokespecial changes use: >>> >>> -javacoption:-XDdisablePrivateAccessors -javaoption:-XX:+UseNewCode >>> >>> (note the second one is a java option not javac) >>> >>> Next iteration I plan on removing the invokespecial related changes. >>> >>> --- >>> >>> Testing so far: >>> ?- all runtime jtreg tests >>> ?- langtools jtreg tests >>> >>> Cheers, >>> David >>> ----- >> From maurizio.cimadamore at oracle.com Wed Sep 6 09:15:39 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 6 Sep 2017 10:15:39 +0100 Subject: RFR: 8187221 [Nestmates] Virtual invocation for private interface methods In-Reply-To: <80d15c96-55f3-03d2-1804-31a12fc68fe8@oracle.com> References: <5179dca2-3fbb-9d94-990a-957371c2d5c6@oracle.com> <0addd9aa-126c-40f7-2075-267f1d382eb7@oracle.com> <5fcec8d9-f9e6-c941-c327-5d6e0338d70e@oracle.com> <80d15c96-55f3-03d2-1804-31a12fc68fe8@oracle.com> Message-ID: <1c0b2167-01ab-02dc-7c40-cef39aa6b4c2@oracle.com> On 06/09/17 07:58, David Holmes wrote: > On 6/09/2017 7:34 AM, David Holmes wrote: >> Hi Maurizio, >> >> On 5/09/2017 11:20 PM, Maurizio Cimadamore wrote: >>> Langtools change looks good, >> >> You made it so simple for me to change. :) >> >>> VM changes also make sense. One question - I wonder why the old code >>> assumed that link_info.current_klass() could be null? I see that >>> your new code expects that not to be the case (otherwise the code >>> would crash), and that's probably a consequence of the fact that >>> you're using InstanceKlass::cast which I see asserts that value >>> passed in is not NULL. So does it mean that this value cannot ever >>> be NULL and that the old code was 'bogus' ? >> >> My take was that the current_klass can not possibly be null - but >> looking further I think that was wishful thinking. We allow for a >> NULL caller class: >> >> // Case where we just find the method and don't check access >> against the current class >> LinkInfo(Klass* resolved_klass, Symbol*name, Symbol* signature) : >> _resolved_klass(resolved_klass), >> _name(name), _signature(signature), _current_klass(NULL), >> _current_method(methodHandle()), >> _check_access(false), _tag(JVM_CONSTANT_Invalid) {} >> >> >> and I see some use of this from JavaCalls and MethodHandle code. It >> may be that if this code is called from JNI that there is no current >> klass. > > Given we're dealing with an invokeinterface bytecode I can't see how > JNI can possibly be involved, nor how we could fail to have a current > class. I've added an assert and re-run current testing to see if it > trips, but ... Was thinking about that too - seems like if you are in invokeinterface, then you are in Java-land, and then you should have some current class. But there might be special cases I don't know about :-) Anyway thx for checking, it just occurred to me when looking at the code. Probably is not too important (I think an assertion should have happened already as one is forced in the InstanceKlass::cast if the operand is NULL, if I read the code correctly). Maurizio > >> That particularly code path may not be tested yet ... which suggests >> there is no test that tries to trigger the ICCE, because it would now >> not throw (such a test would have to be compiled with an earlier >> classfile version). > > ... we do seem to be missing basic testing in this area, so this code > path is not being exercised at present. Additionally I need to force > the taking of this path by using different classfile versions which > I'm not setup to do. > > David > ----- > >> I'll have to dig deeper on this. >> >> Thanks, >> David >> >>> Maurizio >>> >>> >>> On 05/09/17 13:34, David Holmes wrote: >>>> webrev: http://cr.openjdk.java.net/~dholmes/8187221/ >>>> >>>> Following up from JDK-8186763 this issue handles item #2: >>>> >>>> 2. Use invokeinterface for private interface method invocations, >>>> instead of invokespecial >>>> >>>> This involves three basic pieces: >>>> >>>> 1. javac issues invokeinterface instead of invokespecial >>>> 2. Verifier rules requiring invokespecial are relaxed for latest >>>> class file version (exact version TBD based on release timing) >>>> 3. Method resolution locates the expected method. >>>> >>>> As part of this change I'm also isolating the changes that allowed >>>> invokespecial to be used for nestmate method invocations. In the >>>> near future that code will be removed so that we are near final-form. >>>> >>>> Actual file changes are very simple in the end: >>>> >>>> src/share/vm/classfile/verifier.cpp >>>> >>>> Restore original (pre-nestmate) logic for invokespecial and add in >>>> the nestmate-enabling logic under the UseNewCode guard. >>>> >>>> --- >>>> >>>> src/share/vm/interpreter/linkResolver.cpp >>>> >>>> LinkResolver::resolve_interface_method: Only prohibit >>>> invokeinterface for private interface methods if : >>>> InstanceKlass::cast(current_klass)->major_version() < >>>> VIRTUAL_PRIVATE_ACCESS_VERSION >>>> >>>> LinkResolver::runtime_resolve_interface_method: Don't resolve in >>>> the receiver class if dealing with a private interface method >>>> >>>> --- >>>> >>>> src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java >>>> >>>> Removed the check for interface methods when generating virtual calls. >>>> >>>> --- >>>> >>>> With these changes in place the following test options will test >>>> the use of invokevirtual and invokeinterface for private method >>>> invocations: >>>> >>>> -javacoption:-XDdisablePrivateAccessors >>>> -javacoption:-XDvirtualizePrivateAccess >>>> >>>> If you still want to experiment with the invokespecial changes use: >>>> >>>> -javacoption:-XDdisablePrivateAccessors -javaoption:-XX:+UseNewCode >>>> >>>> (note the second one is a java option not javac) >>>> >>>> Next iteration I plan on removing the invokespecial related changes. >>>> >>>> --- >>>> >>>> Testing so far: >>>> - all runtime jtreg tests >>>> - langtools jtreg tests >>>> >>>> Cheers, >>>> David >>>> ----- >>> From david.holmes at oracle.com Wed Sep 6 09:48:53 2017 From: david.holmes at oracle.com (David Holmes) Date: Wed, 6 Sep 2017 19:48:53 +1000 Subject: RFR: 8187221 [Nestmates] Virtual invocation for private interface methods In-Reply-To: <1c0b2167-01ab-02dc-7c40-cef39aa6b4c2@oracle.com> References: <5179dca2-3fbb-9d94-990a-957371c2d5c6@oracle.com> <0addd9aa-126c-40f7-2075-267f1d382eb7@oracle.com> <5fcec8d9-f9e6-c941-c327-5d6e0338d70e@oracle.com> <80d15c96-55f3-03d2-1804-31a12fc68fe8@oracle.com> <1c0b2167-01ab-02dc-7c40-cef39aa6b4c2@oracle.com> Message-ID: <7e2b2517-40d9-9473-5eaf-54968d462062@oracle.com> On 6/09/2017 7:15 PM, Maurizio Cimadamore wrote: > On 06/09/17 07:58, David Holmes wrote: >> On 6/09/2017 7:34 AM, David Holmes wrote: >>> Hi Maurizio, >>> >>> On 5/09/2017 11:20 PM, Maurizio Cimadamore wrote: >>>> Langtools change looks good, >>> >>> You made it so simple for me to change. :) >>> >>>> VM changes also make sense. One question - I wonder why the old code >>>> assumed that link_info.current_klass() could be null? I see that >>>> your new code expects that not to be the case (otherwise the code >>>> would crash), and that's probably a consequence of the fact that >>>> you're using InstanceKlass::cast which I see asserts that value >>>> passed in is not NULL. So does it mean that this value cannot ever >>>> be NULL and that the old code was 'bogus' ? >>> >>> My take was that the current_klass can not possibly be null - but >>> looking further I think that was wishful thinking. We allow for a >>> NULL caller class: >>> >>> ?? // Case where we just find the method and don't check access >>> against the current class >>> ?? LinkInfo(Klass* resolved_klass, Symbol*name, Symbol* signature) : >>> ???? _resolved_klass(resolved_klass), >>> ???? _name(name), _signature(signature), _current_klass(NULL), >>> _current_method(methodHandle()), >>> ???? _check_access(false), _tag(JVM_CONSTANT_Invalid) {} >>> >>> >>> and I see some use of this from JavaCalls and MethodHandle code. It >>> may be that if this code is called from JNI that there is no current >>> klass. >> >> Given we're dealing with an invokeinterface bytecode I can't see how >> JNI can possibly be involved, nor how we could fail to have a current >> class. I've added an assert and re-run current testing to see if it >> trips, but ... > Was thinking about that too - seems like if you are in invokeinterface, > then you are in Java-land, and then you should have some current class. > But there might be special cases I don't know about :-) > > Anyway thx for checking, it just occurred to me when looking at the > code. Probably is not too important (I think an assertion should have > happened already as one is forced in the InstanceKlass::cast if the > operand is NULL, if I read the code correctly). The InstanceKlass::cast is new code and at present there is nothing that goes down that path - hence the test coverage issue. :( David > Maurizio >> >>> That particularly code path may not be tested yet ... which suggests >>> there is no test that tries to trigger the ICCE, because it would now >>> not throw (such a test would have to be compiled with an earlier >>> classfile version). >> >> ... we do seem to be missing basic testing in this area, so this code >> path is not being exercised at present. Additionally I need to force >> the taking of this path by using different classfile versions which >> I'm not setup to do. >> >> David >> ----- >> >>> I'll have to dig deeper on this. >>> >>> Thanks, >>> David >>> >>>> Maurizio >>>> >>>> >>>> On 05/09/17 13:34, David Holmes wrote: >>>>> webrev: http://cr.openjdk.java.net/~dholmes/8187221/ >>>>> >>>>> Following up from JDK-8186763 this issue handles item #2: >>>>> >>>>> 2. Use invokeinterface for private interface method invocations, >>>>> instead of invokespecial >>>>> >>>>> This involves three basic pieces: >>>>> >>>>> 1. javac issues invokeinterface instead of invokespecial >>>>> 2. Verifier rules requiring invokespecial are relaxed for latest >>>>> class file version (exact version TBD based on release timing) >>>>> 3. Method resolution locates the expected method. >>>>> >>>>> As part of this change I'm also isolating the changes that allowed >>>>> invokespecial to be used for nestmate method invocations. In the >>>>> near future that code will be removed so that we are near final-form. >>>>> >>>>> Actual file changes are very simple in the end: >>>>> >>>>> src/share/vm/classfile/verifier.cpp >>>>> >>>>> Restore original (pre-nestmate) logic for invokespecial and add in >>>>> the nestmate-enabling logic under the UseNewCode guard. >>>>> >>>>> --- >>>>> >>>>> src/share/vm/interpreter/linkResolver.cpp >>>>> >>>>> LinkResolver::resolve_interface_method: Only prohibit >>>>> invokeinterface for private interface methods if : >>>>> InstanceKlass::cast(current_klass)->major_version() < >>>>> VIRTUAL_PRIVATE_ACCESS_VERSION >>>>> >>>>> LinkResolver::runtime_resolve_interface_method: Don't resolve in >>>>> the receiver class if dealing with a private interface method >>>>> >>>>> --- >>>>> >>>>> src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java >>>>> >>>>> Removed the check for interface methods when generating virtual calls. >>>>> >>>>> --- >>>>> >>>>> With these changes in place the following test options will test >>>>> the use of invokevirtual and invokeinterface for private method >>>>> invocations: >>>>> >>>>> -javacoption:-XDdisablePrivateAccessors >>>>> -javacoption:-XDvirtualizePrivateAccess >>>>> >>>>> If you still want to experiment with the invokespecial changes use: >>>>> >>>>> -javacoption:-XDdisablePrivateAccessors -javaoption:-XX:+UseNewCode >>>>> >>>>> (note the second one is a java option not javac) >>>>> >>>>> Next iteration I plan on removing the invokespecial related changes. >>>>> >>>>> --- >>>>> >>>>> Testing so far: >>>>> ?- all runtime jtreg tests >>>>> ?- langtools jtreg tests >>>>> >>>>> Cheers, >>>>> David >>>>> ----- >>>> > From maurizio.cimadamore at oracle.com Wed Sep 6 10:32:15 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 6 Sep 2017 11:32:15 +0100 Subject: RFR: 8187221 [Nestmates] Virtual invocation for private interface methods In-Reply-To: <7e2b2517-40d9-9473-5eaf-54968d462062@oracle.com> References: <5179dca2-3fbb-9d94-990a-957371c2d5c6@oracle.com> <0addd9aa-126c-40f7-2075-267f1d382eb7@oracle.com> <5fcec8d9-f9e6-c941-c327-5d6e0338d70e@oracle.com> <80d15c96-55f3-03d2-1804-31a12fc68fe8@oracle.com> <1c0b2167-01ab-02dc-7c40-cef39aa6b4c2@oracle.com> <7e2b2517-40d9-9473-5eaf-54968d462062@oracle.com> Message-ID: <20073172-06ac-b848-bb68-d95f69b3910b@oracle.com> On 06/09/17 10:48, David Holmes wrote: > On 6/09/2017 7:15 PM, Maurizio Cimadamore wrote: >> On 06/09/17 07:58, David Holmes wrote: >>> On 6/09/2017 7:34 AM, David Holmes wrote: >>>> Hi Maurizio, >>>> >>>> On 5/09/2017 11:20 PM, Maurizio Cimadamore wrote: >>>>> Langtools change looks good, >>>> >>>> You made it so simple for me to change. :) >>>> >>>>> VM changes also make sense. One question - I wonder why the old >>>>> code assumed that link_info.current_klass() could be null? I see >>>>> that your new code expects that not to be the case (otherwise the >>>>> code would crash), and that's probably a consequence of the fact >>>>> that you're using InstanceKlass::cast which I see asserts that >>>>> value passed in is not NULL. So does it mean that this value >>>>> cannot ever be NULL and that the old code was 'bogus' ? >>>> >>>> My take was that the current_klass can not possibly be null - but >>>> looking further I think that was wishful thinking. We allow for a >>>> NULL caller class: >>>> >>>> // Case where we just find the method and don't check access >>>> against the current class >>>> LinkInfo(Klass* resolved_klass, Symbol*name, Symbol* signature) : >>>> _resolved_klass(resolved_klass), >>>> _name(name), _signature(signature), _current_klass(NULL), >>>> _current_method(methodHandle()), >>>> _check_access(false), _tag(JVM_CONSTANT_Invalid) {} >>>> >>>> >>>> and I see some use of this from JavaCalls and MethodHandle code. It >>>> may be that if this code is called from JNI that there is no >>>> current klass. >>> >>> Given we're dealing with an invokeinterface bytecode I can't see how >>> JNI can possibly be involved, nor how we could fail to have a >>> current class. I've added an assert and re-run current testing to >>> see if it trips, but ... >> Was thinking about that too - seems like if you are in >> invokeinterface, then you are in Java-land, and then you should have >> some current class. But there might be special cases I don't know >> about :-) >> >> Anyway thx for checking, it just occurred to me when looking at the >> code. Probably is not too important (I think an assertion should have >> happened already as one is forced in the InstanceKlass::cast if the >> operand is NULL, if I read the code correctly). > > The InstanceKlass::cast is new code and at present there is nothing > that goes down that path - hence the test coverage issue. :( But isn't your code calling it? If so, if there was an assertion you should have seen it when running tests - but maybe you mean that the path: if (code == Bytecodes::_invokeinterface && resolved_method->is_private()) { Is not exercised that much in tests - so you're not even sure you even run the cast? Maurizio > David > >> Maurizio >>> >>>> That particularly code path may not be tested yet ... which >>>> suggests there is no test that tries to trigger the ICCE, because >>>> it would now not throw (such a test would have to be compiled with >>>> an earlier classfile version). >>> >>> ... we do seem to be missing basic testing in this area, so this >>> code path is not being exercised at present. Additionally I need to >>> force the taking of this path by using different classfile versions >>> which I'm not setup to do. >>> >>> David >>> ----- >>> >>>> I'll have to dig deeper on this. >>>> >>>> Thanks, >>>> David >>>> >>>>> Maurizio >>>>> >>>>> >>>>> On 05/09/17 13:34, David Holmes wrote: >>>>>> webrev: http://cr.openjdk.java.net/~dholmes/8187221/ >>>>>> >>>>>> Following up from JDK-8186763 this issue handles item #2: >>>>>> >>>>>> 2. Use invokeinterface for private interface method invocations, >>>>>> instead of invokespecial >>>>>> >>>>>> This involves three basic pieces: >>>>>> >>>>>> 1. javac issues invokeinterface instead of invokespecial >>>>>> 2. Verifier rules requiring invokespecial are relaxed for latest >>>>>> class file version (exact version TBD based on release timing) >>>>>> 3. Method resolution locates the expected method. >>>>>> >>>>>> As part of this change I'm also isolating the changes that >>>>>> allowed invokespecial to be used for nestmate method invocations. >>>>>> In the near future that code will be removed so that we are near >>>>>> final-form. >>>>>> >>>>>> Actual file changes are very simple in the end: >>>>>> >>>>>> src/share/vm/classfile/verifier.cpp >>>>>> >>>>>> Restore original (pre-nestmate) logic for invokespecial and add >>>>>> in the nestmate-enabling logic under the UseNewCode guard. >>>>>> >>>>>> --- >>>>>> >>>>>> src/share/vm/interpreter/linkResolver.cpp >>>>>> >>>>>> LinkResolver::resolve_interface_method: Only prohibit >>>>>> invokeinterface for private interface methods if : >>>>>> InstanceKlass::cast(current_klass)->major_version() < >>>>>> VIRTUAL_PRIVATE_ACCESS_VERSION >>>>>> >>>>>> LinkResolver::runtime_resolve_interface_method: Don't resolve in >>>>>> the receiver class if dealing with a private interface method >>>>>> >>>>>> --- >>>>>> >>>>>> src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java >>>>>> >>>>>> Removed the check for interface methods when generating virtual >>>>>> calls. >>>>>> >>>>>> --- >>>>>> >>>>>> With these changes in place the following test options will test >>>>>> the use of invokevirtual and invokeinterface for private method >>>>>> invocations: >>>>>> >>>>>> -javacoption:-XDdisablePrivateAccessors >>>>>> -javacoption:-XDvirtualizePrivateAccess >>>>>> >>>>>> If you still want to experiment with the invokespecial changes use: >>>>>> >>>>>> -javacoption:-XDdisablePrivateAccessors -javaoption:-XX:+UseNewCode >>>>>> >>>>>> (note the second one is a java option not javac) >>>>>> >>>>>> Next iteration I plan on removing the invokespecial related changes. >>>>>> >>>>>> --- >>>>>> >>>>>> Testing so far: >>>>>> - all runtime jtreg tests >>>>>> - langtools jtreg tests >>>>>> >>>>>> Cheers, >>>>>> David >>>>>> ----- >>>>> >> From david.holmes at oracle.com Wed Sep 6 12:12:12 2017 From: david.holmes at oracle.com (David Holmes) Date: Wed, 6 Sep 2017 22:12:12 +1000 Subject: RFR: 8187221 [Nestmates] Virtual invocation for private interface methods In-Reply-To: <20073172-06ac-b848-bb68-d95f69b3910b@oracle.com> References: <5179dca2-3fbb-9d94-990a-957371c2d5c6@oracle.com> <0addd9aa-126c-40f7-2075-267f1d382eb7@oracle.com> <5fcec8d9-f9e6-c941-c327-5d6e0338d70e@oracle.com> <80d15c96-55f3-03d2-1804-31a12fc68fe8@oracle.com> <1c0b2167-01ab-02dc-7c40-cef39aa6b4c2@oracle.com> <7e2b2517-40d9-9473-5eaf-54968d462062@oracle.com> <20073172-06ac-b848-bb68-d95f69b3910b@oracle.com> Message-ID: <552a28e1-ed58-9624-3ef1-848cd72146ff@oracle.com> On 6/09/2017 8:32 PM, Maurizio Cimadamore wrote: > On 06/09/17 10:48, David Holmes wrote: >> On 6/09/2017 7:15 PM, Maurizio Cimadamore wrote: >>> On 06/09/17 07:58, David Holmes wrote: >>>> On 6/09/2017 7:34 AM, David Holmes wrote: >>>>> Hi Maurizio, >>>>> >>>>> On 5/09/2017 11:20 PM, Maurizio Cimadamore wrote: >>>>>> Langtools change looks good, >>>>> >>>>> You made it so simple for me to change. :) >>>>> >>>>>> VM changes also make sense. One question - I wonder why the old >>>>>> code assumed that link_info.current_klass() could be null? I see >>>>>> that your new code expects that not to be the case (otherwise the >>>>>> code would crash), and that's probably a consequence of the fact >>>>>> that you're using InstanceKlass::cast which I see asserts that >>>>>> value passed in is not NULL. So does it mean that this value >>>>>> cannot ever be NULL and that the old code was 'bogus' ? >>>>> >>>>> My take was that the current_klass can not possibly be null - but >>>>> looking further I think that was wishful thinking. We allow for a >>>>> NULL caller class: >>>>> >>>>> ?? // Case where we just find the method and don't check access >>>>> against the current class >>>>> ?? LinkInfo(Klass* resolved_klass, Symbol*name, Symbol* signature) : >>>>> ???? _resolved_klass(resolved_klass), >>>>> ???? _name(name), _signature(signature), _current_klass(NULL), >>>>> _current_method(methodHandle()), >>>>> ???? _check_access(false), _tag(JVM_CONSTANT_Invalid) {} >>>>> >>>>> >>>>> and I see some use of this from JavaCalls and MethodHandle code. It >>>>> may be that if this code is called from JNI that there is no >>>>> current klass. >>>> >>>> Given we're dealing with an invokeinterface bytecode I can't see how >>>> JNI can possibly be involved, nor how we could fail to have a >>>> current class. I've added an assert and re-run current testing to >>>> see if it trips, but ... >>> Was thinking about that too - seems like if you are in >>> invokeinterface, then you are in Java-land, and then you should have >>> some current class. But there might be special cases I don't know >>> about :-) >>> >>> Anyway thx for checking, it just occurred to me when looking at the >>> code. Probably is not too important (I think an assertion should have >>> happened already as one is forced in the InstanceKlass::cast if the >>> operand is NULL, if I read the code correctly). >> >> The InstanceKlass::cast is new code and at present there is nothing >> that goes down that path - hence the test coverage issue. :( > But isn't your code calling it? If so, if there was an assertion you > should have seen it when running tests - but maybe you mean that the path: > > if (code == Bytecodes::_invokeinterface && resolved_method->is_private()) { > > > Is not exercised that much in tests - so you're not even sure you even > run the cast? Sorry, that path is executed by one of my tests - where obviously current_klass is not null. But there should be pre-existing tests that would take that path to throw the exception - those tests would fail by not throwing the exception if they existed because the version check would skip the exception. But the more I think about this the more I'm convinced we can never have a null current_klass if we're in this code. David ----- > Maurizio >> David >> >>> Maurizio >>>> >>>>> That particularly code path may not be tested yet ... which >>>>> suggests there is no test that tries to trigger the ICCE, because >>>>> it would now not throw (such a test would have to be compiled with >>>>> an earlier classfile version). >>>> >>>> ... we do seem to be missing basic testing in this area, so this >>>> code path is not being exercised at present. Additionally I need to >>>> force the taking of this path by using different classfile versions >>>> which I'm not setup to do. >>>> >>>> David >>>> ----- >>>> >>>>> I'll have to dig deeper on this. >>>>> >>>>> Thanks, >>>>> David >>>>> >>>>>> Maurizio >>>>>> >>>>>> >>>>>> On 05/09/17 13:34, David Holmes wrote: >>>>>>> webrev: http://cr.openjdk.java.net/~dholmes/8187221/ >>>>>>> >>>>>>> Following up from JDK-8186763 this issue handles item #2: >>>>>>> >>>>>>> 2. Use invokeinterface for private interface method invocations, >>>>>>> instead of invokespecial >>>>>>> >>>>>>> This involves three basic pieces: >>>>>>> >>>>>>> 1. javac issues invokeinterface instead of invokespecial >>>>>>> 2. Verifier rules requiring invokespecial are relaxed for latest >>>>>>> class file version (exact version TBD based on release timing) >>>>>>> 3. Method resolution locates the expected method. >>>>>>> >>>>>>> As part of this change I'm also isolating the changes that >>>>>>> allowed invokespecial to be used for nestmate method invocations. >>>>>>> In the near future that code will be removed so that we are near >>>>>>> final-form. >>>>>>> >>>>>>> Actual file changes are very simple in the end: >>>>>>> >>>>>>> src/share/vm/classfile/verifier.cpp >>>>>>> >>>>>>> Restore original (pre-nestmate) logic for invokespecial and add >>>>>>> in the nestmate-enabling logic under the UseNewCode guard. >>>>>>> >>>>>>> --- >>>>>>> >>>>>>> src/share/vm/interpreter/linkResolver.cpp >>>>>>> >>>>>>> LinkResolver::resolve_interface_method: Only prohibit >>>>>>> invokeinterface for private interface methods if : >>>>>>> InstanceKlass::cast(current_klass)->major_version() < >>>>>>> VIRTUAL_PRIVATE_ACCESS_VERSION >>>>>>> >>>>>>> LinkResolver::runtime_resolve_interface_method: Don't resolve in >>>>>>> the receiver class if dealing with a private interface method >>>>>>> >>>>>>> --- >>>>>>> >>>>>>> src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java >>>>>>> >>>>>>> Removed the check for interface methods when generating virtual >>>>>>> calls. >>>>>>> >>>>>>> --- >>>>>>> >>>>>>> With these changes in place the following test options will test >>>>>>> the use of invokevirtual and invokeinterface for private method >>>>>>> invocations: >>>>>>> >>>>>>> -javacoption:-XDdisablePrivateAccessors >>>>>>> -javacoption:-XDvirtualizePrivateAccess >>>>>>> >>>>>>> If you still want to experiment with the invokespecial changes use: >>>>>>> >>>>>>> -javacoption:-XDdisablePrivateAccessors -javaoption:-XX:+UseNewCode >>>>>>> >>>>>>> (note the second one is a java option not javac) >>>>>>> >>>>>>> Next iteration I plan on removing the invokespecial related changes. >>>>>>> >>>>>>> --- >>>>>>> >>>>>>> Testing so far: >>>>>>> ?- all runtime jtreg tests >>>>>>> ?- langtools jtreg tests >>>>>>> >>>>>>> Cheers, >>>>>>> David >>>>>>> ----- >>>>>> >>> > From karen.kinnear at oracle.com Wed Sep 6 16:42:15 2017 From: karen.kinnear at oracle.com (Karen Kinnear) Date: Wed, 6 Sep 2017 12:42:15 -0400 Subject: RFR (M): 8182367: [MVT] Byte-code verifier support for minimal value types In-Reply-To: <4059ba33-a5f1-11d5-0000-069bc529d081@oracle.com> References: <4059ba33-a5f1-11d5-0000-069bc529d081@oracle.com> Message-ID: Lois, Looks good. Many thanks. Very happy with the creative classFileParser containment of the temporary derived value class naming and with the clean verificationType extension. Couple of questions/comments: 1. verificationType.hpp line 180 Did I read this incorrectly? There is a Symbol alignment assumption that leaves 0x3, i.e. two bits as 0 Did you want to change that alignment check to be 0x7 for alignment so there is room for the ValueType bit? And change the hardcoded 0x3 to TypeMask? 2. verificationType.hpp line 203 Could you possibly explain to me the need for the && !is_valuetype_check()? Or is that potentially an assertion? 3. verificationType.hpp is_valuetype_assignable_from Is it worth adding an assertion that neither is_null() nor from.is_null() ? Or did you already throw an exception earlier for that case? 4. We discussed temporarily using 53.1 for value type versioning until JDK10 moves to 54 5. verifier.cpp Thank you for the vbytecodes_allowed check. I see the special checking for EnableValhalla and invoke virtual overloading. Did you want to do specific checking of EnableMVT for vbox/vunbox? 6. verifier.cpp multianewarray line 1863: there is a verify_cp_class_type ? I was expecting verify_cp_class_or_value_type? 7. VunboxErrorIndex and VboxUnbox.java Cleanup. Perhaps remove comments in former lines 98/99 - since they are no longer true, and same lines in original test. Ok to file as a follow-on rfe I don?t need to see an update, just answers to the questions to make sure I understand, thanks, Karen > On Sep 5, 2017, at 8:37 PM, Lois Foltan wrote: > > Hello, > > Review request for verifier changes to support MVT. > > Webrevs: > http://cr.openjdk.java.net/~lfoltan/mvt_verifier_jdk.1/webrev/ > http://cr.openjdk.java.net/~lfoltan/mvt_verifier_hotspot.1/webrev/ > > Webrevs include changes to address preliminary review comments by John Rose and Harold Seigel. > > Testing - hotspot jtreg tests, java/lang, java/util, java/io, JDK & Hotspot valhalla tests, jprt hotspot tests, JCK vm (in progress). > > Thanks, > Lois > > From david.holmes at oracle.com Thu Sep 7 05:15:10 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 07 Sep 2017 05:15:10 +0000 Subject: hg: valhalla/valhalla/langtools: 8187221: [Nestmates] Virtual invocation for private interface methods Message-ID: <201709070515.v875FAGO005573@aojmv0008.oracle.com> Changeset: ba88c732cfc9 Author: dholmes Date: 2017-09-07 01:11 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/ba88c732cfc9 8187221: [Nestmates] Virtual invocation for private interface methods Reviewed-by: Maurizio ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java From david.holmes at oracle.com Thu Sep 7 05:15:39 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 07 Sep 2017 05:15:39 +0000 Subject: hg: valhalla/valhalla/hotspot: 8187221: [Nestmates] Virtual invocation for private interface methods Message-ID: <201709070515.v875FdgM005764@aojmv0008.oracle.com> Changeset: e583bb68cacb Author: dholmes Date: 2017-09-07 01:09 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/e583bb68cacb 8187221: [Nestmates] Virtual invocation for private interface methods Reviewed-by: Maurizio ! src/share/vm/classfile/verifier.cpp ! src/share/vm/interpreter/linkResolver.cpp From michael.rasmussen at zeroturnaround.com Thu Sep 7 08:00:41 2017 From: michael.rasmussen at zeroturnaround.com (Michael Rasmussen) Date: Thu, 7 Sep 2017 11:00:41 +0300 Subject: [Nestmates] Questions about defineAnonymousClass replacement Message-ID: Hi, I was looking through the JEP for nestmates and noticed: " - A safe and supported replacement for the Unsafe.defineAnonymousClass() API could create the new class as a nestmate of an existing class." I've been looking though the mailing list archive, to find further information about this, but failed to find anything -- has there been any discussions about this, as to what kind of restrictions etc would be imposed on the use of that API? The reason I'm asking is, that if I can add an arbitrary mate to an existing nest, I would gain access to all private state, which is something that is now restricted reflectively in the JPMS, yet this JEP mentions that it "is not concerned with large scales of access control, such as modules.". In an extreme example, could I add a nestmate to java.lang.String, and start changing its char-array, making String mutable? Kind regards Michael Rasmussen From david.holmes at oracle.com Thu Sep 7 08:50:30 2017 From: david.holmes at oracle.com (David Holmes) Date: Thu, 7 Sep 2017 18:50:30 +1000 Subject: [Nestmates] Questions about defineAnonymousClass replacement In-Reply-To: References: Message-ID: <38650782-ac01-17d4-086c-a0ea3a1cd282@oracle.com> Hi Michael, On 7/09/2017 6:00 PM, Michael Rasmussen wrote: > Hi, > > I was looking through the JEP for nestmates and noticed: > " - A safe and supported replacement for the > Unsafe.defineAnonymousClass() API could create the new class as a > nestmate of an existing class." > > I've been looking though the mailing list archive, to find further > information about this, but failed to find anything -- has there been > any discussions about this, as to what kind of restrictions etc would > be imposed on the use of that API? The description here may shed some light: https://bugs.openjdk.java.net/browse/JDK-8172672 David ----- > The reason I'm asking is, that if I can add an arbitrary mate to an > existing nest, I would gain access to all private state, which is > something that is now restricted reflectively in the JPMS, yet this > JEP mentions that it "is not concerned with large scales of access > control, such as modules.". In an extreme example, could I add a > nestmate to java.lang.String, and start changing its char-array, > making String mutable? > > Kind regards > Michael Rasmussen > From david.holmes at oracle.com Thu Sep 7 08:54:04 2017 From: david.holmes at oracle.com (David Holmes) Date: Thu, 7 Sep 2017 18:54:04 +1000 Subject: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update Message-ID: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> webrev: http://cr.openjdk.java.net/~dholmes/8187302/webrev/ (please ignore the two hotspot test changes) This changes prepares for switching to release 11 and classfile version 54 so that I can put classfile version checks where needed, and compile tests the right way, where needed. Initially the default remains release 10 and v53, but --release 11 can be used to explicitly use v54. I think I have found everything that needs updating to allow use of release 11 and v54 classfiles. Testing so far is minimal: javac Foo.java -> v53 javac --release 11 Foo.java -> v54 langtools/tools/javac testing also conducted. Thanks, David From forax at univ-mlv.fr Thu Sep 7 09:39:58 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Thu, 7 Sep 2017 11:39:58 +0200 (CEST) Subject: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update In-Reply-To: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> References: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> Message-ID: <1918329181.1923885.1504777198468.JavaMail.zimbra@u-pem.fr> Hi David, Having 10 -> v53 and 11 -> v54 is weird, perhaps, --release 99 is better than release 11. R?mi ----- Mail original ----- > De: "David Holmes" > ?: "valhalla-dev" > Envoy?: Jeudi 7 Septembre 2017 10:54:04 > Objet: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update > webrev: http://cr.openjdk.java.net/~dholmes/8187302/webrev/ > > (please ignore the two hotspot test changes) > > This changes prepares for switching to release 11 and classfile version > 54 so that I can put classfile version checks where needed, and compile > tests the right way, where needed. > > Initially the default remains release 10 and v53, but --release 11 can > be used to explicitly use v54. > > I think I have found everything that needs updating to allow use of > release 11 and v54 classfiles. > > Testing so far is minimal: javac Foo.java -> v53 > javac --release 11 Foo.java -> v54 > > langtools/tools/javac testing also conducted. > > Thanks, > David From michael.rasmussen at zeroturnaround.com Thu Sep 7 09:45:31 2017 From: michael.rasmussen at zeroturnaround.com (Michael Rasmussen) Date: Thu, 7 Sep 2017 12:45:31 +0300 Subject: [Nestmates] Questions about defineAnonymousClass replacement In-Reply-To: <38650782-ac01-17d4-086c-a0ea3a1cd282@oracle.com> References: <38650782-ac01-17d4-086c-a0ea3a1cd282@oracle.com> Message-ID: On 7 September 2017 at 11:50, David Holmes wrote: > The description here may shed some light: > > https://bugs.openjdk.java.net/browse/JDK-8172672 > Thank you David, that indeed did shed some light into it. /Michael From david.holmes at oracle.com Thu Sep 7 10:48:00 2017 From: david.holmes at oracle.com (David Holmes) Date: Thu, 7 Sep 2017 20:48:00 +1000 Subject: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update In-Reply-To: <1918329181.1923885.1504777198468.JavaMail.zimbra@u-pem.fr> References: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> <1918329181.1923885.1504777198468.JavaMail.zimbra@u-pem.fr> Message-ID: <9de7ae0c-f10b-7b30-d645-ce3e637bff46@oracle.com> Hi Remi, On 7/09/2017 7:39 PM, Remi Forax wrote: > Hi David, > Having 10 -> v53 and 11 -> v54 is weird, How is that weird? I just incremented the value. If it turns out that 10 needs to bump to 54 then I'd bump 11 to 55. > perhaps, --release 99 is better than release 11. ??? David > R?mi > > ----- Mail original ----- >> De: "David Holmes" >> ?: "valhalla-dev" >> Envoy?: Jeudi 7 Septembre 2017 10:54:04 >> Objet: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update > >> webrev: http://cr.openjdk.java.net/~dholmes/8187302/webrev/ >> >> (please ignore the two hotspot test changes) >> >> This changes prepares for switching to release 11 and classfile version >> 54 so that I can put classfile version checks where needed, and compile >> tests the right way, where needed. >> >> Initially the default remains release 10 and v53, but --release 11 can >> be used to explicitly use v54. >> >> I think I have found everything that needs updating to allow use of >> release 11 and v54 classfiles. >> >> Testing so far is minimal: javac Foo.java -> v53 >> javac --release 11 Foo.java -> v54 >> >> langtools/tools/javac testing also conducted. >> >> Thanks, >> David From karen.kinnear at oracle.com Thu Sep 7 13:20:24 2017 From: karen.kinnear at oracle.com (Karen Kinnear) Date: Thu, 7 Sep 2017 09:20:24 -0400 Subject: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update In-Reply-To: <9de7ae0c-f10b-7b30-d645-ce3e637bff46@oracle.com> References: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> <1918329181.1923885.1504777198468.JavaMail.zimbra@u-pem.fr> <9de7ae0c-f10b-7b30-d645-ce3e637bff46@oracle.com> Message-ID: <25FAB821-C939-409B-B4B6-688B1B7AF002@oracle.com> 10 is planning to bump to 54 for condy Karen > On Sep 7, 2017, at 6:48 AM, David Holmes wrote: > > Hi Remi, > > On 7/09/2017 7:39 PM, Remi Forax wrote: >> Hi David, >> Having 10 -> v53 and 11 -> v54 is weird, > > How is that weird? I just incremented the value. If it turns out that 10 needs to bump to 54 then I'd bump 11 to 55. > >> perhaps, --release 99 is better than release 11. > > ??? > > David > >> R?mi >> ----- Mail original ----- >>> De: "David Holmes" >>> ?: "valhalla-dev" >>> Envoy?: Jeudi 7 Septembre 2017 10:54:04 >>> Objet: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update >>> webrev: http://cr.openjdk.java.net/~dholmes/8187302/webrev/ >>> >>> (please ignore the two hotspot test changes) >>> >>> This changes prepares for switching to release 11 and classfile version >>> 54 so that I can put classfile version checks where needed, and compile >>> tests the right way, where needed. >>> >>> Initially the default remains release 10 and v53, but --release 11 can >>> be used to explicitly use v54. >>> >>> I think I have found everything that needs updating to allow use of >>> release 11 and v54 classfiles. >>> >>> Testing so far is minimal: javac Foo.java -> v53 >>> javac --release 11 Foo.java -> v54 >>> >>> langtools/tools/javac testing also conducted. >>> >>> Thanks, >>> David From maurizio.cimadamore at oracle.com Thu Sep 7 14:59:08 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 7 Sep 2017 15:59:08 +0100 Subject: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update In-Reply-To: <25FAB821-C939-409B-B4B6-688B1B7AF002@oracle.com> References: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> <1918329181.1923885.1504777198468.JavaMail.zimbra@u-pem.fr> <9de7ae0c-f10b-7b30-d645-ce3e637bff46@oracle.com> <25FAB821-C939-409B-B4B6-688B1B7AF002@oracle.com> Message-ID: <9cb9b854-7079-72d3-994a-acc187cae2b5@oracle.com> As discussed individually, I believe that bumping classfile version (or source version) is not something that an experimental branch should do. The risk of doing so is that multiple developers will be doing the same change (perhaps in slightly incompatible ways) and create an integration hell. So I believe it would be best to assume that any given experimental branch adds some experimental behavior on top of the latest version (whatever that is at a given point in time). If certain features need to be constrained further (see MVT, where we don't want all classfiles to be able to exploit value opcodes), minor version can be used for that purpose. When it's time to target a specific JDK N, I think the work to setup appropriate source/version numbers should happen in the upstream repo; once that's settled, changes will flow onto the branches - which will then changed to target the desired version number. Then a patch for the branch is extracted and pushed upstream (after due review, etc.). I would not be surprised if, now that we're moving to a more regular release cadence, some of these tasks (update classfile version/source version) would be automated and automatically applied after a new version has 'forked off'. Maurizio On 07/09/17 14:20, Karen Kinnear wrote: > 10 is planning to bump to 54 for condy > > Karen > >> On Sep 7, 2017, at 6:48 AM, David Holmes wrote: >> >> Hi Remi, >> >> On 7/09/2017 7:39 PM, Remi Forax wrote: >>> Hi David, >>> Having 10 -> v53 and 11 -> v54 is weird, >> How is that weird? I just incremented the value. If it turns out that 10 needs to bump to 54 then I'd bump 11 to 55. >> >>> perhaps, --release 99 is better than release 11. >> ??? >> >> David >> >>> R?mi >>> ----- Mail original ----- >>>> De: "David Holmes" >>>> ?: "valhalla-dev" >>>> Envoy?: Jeudi 7 Septembre 2017 10:54:04 >>>> Objet: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update >>>> webrev:http://cr.openjdk.java.net/~dholmes/8187302/webrev/ >>>> >>>> (please ignore the two hotspot test changes) >>>> >>>> This changes prepares for switching to release 11 and classfile version >>>> 54 so that I can put classfile version checks where needed, and compile >>>> tests the right way, where needed. >>>> >>>> Initially the default remains release 10 and v53, but --release 11 can >>>> be used to explicitly use v54. >>>> >>>> I think I have found everything that needs updating to allow use of >>>> release 11 and v54 classfiles. >>>> >>>> Testing so far is minimal: javac Foo.java -> v53 >>>> javac --release 11 Foo.java -> v54 >>>> >>>> langtools/tools/javac testing also conducted. >>>> >>>> Thanks, >>>> David From lois.foltan at oracle.com Thu Sep 7 16:27:26 2017 From: lois.foltan at oracle.com (Lois Foltan) Date: Thu, 7 Sep 2017 12:27:26 -0400 Subject: RFR (M): 8182367: [MVT] Byte-code verifier support for minimal value types In-Reply-To: References: <4059ba33-a5f1-11d5-0000-069bc529d081@oracle.com> Message-ID: On 9/6/2017 12:42 PM, Karen Kinnear wrote: > Lois, > > Looks good. Many thanks. Hi Karen, Thank you for the review!? Comments below. > > Very happy with the creative classFileParser containment of the temporary derived value class naming > and with the clean verificationType extension. > > Couple of questions/comments: > 1. verificationType.hpp > line 180 > Did I read this incorrectly? There is a Symbol alignment assumption that leaves 0x3, i.e. two bits as 0 > Did you want to change that alignment check to be 0x7 for alignment so there is room for the ValueType bit? > And change the hardcoded 0x3 to TypeMask? Agreed, fixed. > > > 2. verificationType.hpp > line 203 > Could you possibly explain to me the need for the && !is_valuetype_check()? Or is that potentially an assertion? So this might be a bit defensive on my part.? But, I don't think there is a guarantee that is_reference() is necessarily always called with a non-check VerificationType.? As a matter of fact, I know there are cases where is_reference is called specifically with a TypeQuery (0x03) check VerificationType because I had added a more general assertion initially. Something like --> assert(!is_check(), "is_reference called with a check VerificationType"); This assert is hit right away when building the JDK, again called with a TypeQuery (0x03).? So I became concerned that if is_reference() is called with a ValueTypeQuery check VerificationType it would erroneously return true. is_reference() --> { return (ValueTypeQuery (0x08) & TypeMask (0x07)) == Reference (0x00)); } Thus the need for !is_valuetype_check(). > > 3. verificationType.hpp > is_valuetype_assignable_from > Is it worth adding an assertion that neither is_null() nor from.is_null() ? Or did you already throw an exception earlier for that > case? If either is_null() or from.is_null() is true then the current assertion that checks for is_valuetype() and from.is_valuetype() will catch that. > > 4. We discussed temporarily using 53.1 for value type versioning until JDK10 moves to 54 I have changed VALUETYPE_MAJOR_VERSION to 53 and VALUETYPE_MINOR_VERSION remains at 1.? However, tests are demonstrating that we are still trying to generate 52.0 & 53.0 version classfiles with vbytecodes.? I have entered bug https://bugs.openjdk.java.net/browse/JDK-8187320 to address? this issue.? Once resolved, we can comment out the check in verifier.cpp. > > 5. verifier.cpp > Thank you for the vbytecodes_allowed check. I see the special checking for EnableValhalla and invoke virtual overloading. > Did you want to do specific checking of EnableMVT for vbox/vunbox? Done. > > 6. verifier.cpp > multianewarray > line 1863: there is a verify_cp_class_type ? I was expecting verify_cp_class_or_value_type? Good catch, fixed. > > 7. VunboxErrorIndex and VboxUnbox.java > Cleanup. Perhaps remove comments in former lines 98/99 - since they are no longer true, and same lines in original test. > Ok to file as a follow-on rfe Done. > > I don?t need to see an update, just answers to the questions to make sure I understand, Just in case, updates posted at: http://cr.openjdk.java.net/~lfoltan/mvt_verifier_hotspot.2/webrev/ http://cr.openjdk.java.net/~lfoltan/mvt_verifier_jdk.2/webrev/ Thanks, Lois > thanks, > Karen > > >> On Sep 5, 2017, at 8:37 PM, Lois Foltan wrote: >> >> Hello, >> >> Review request for verifier changes to support MVT. >> >> Webrevs: >> http://cr.openjdk.java.net/~lfoltan/mvt_verifier_jdk.1/webrev/ >> http://cr.openjdk.java.net/~lfoltan/mvt_verifier_hotspot.1/webrev/ >> >> Webrevs include changes to address preliminary review comments by John Rose and Harold Seigel. >> >> Testing - hotspot jtreg tests, java/lang, java/util, java/io, JDK & Hotspot valhalla tests, jprt hotspot tests, JCK vm (in progress). >> >> Thanks, >> Lois >> >> From karen.kinnear at oracle.com Thu Sep 7 17:09:03 2017 From: karen.kinnear at oracle.com (Karen Kinnear) Date: Thu, 7 Sep 2017 13:09:03 -0400 Subject: RFR (M): 8182367: [MVT] Byte-code verifier support for minimal value types In-Reply-To: References: <4059ba33-a5f1-11d5-0000-069bc529d081@oracle.com> Message-ID: <5BA34004-A160-448B-9C32-59D71B2B4566@oracle.com> Code looks good to push. Thank you for the explanations. thanks, Karen > On Sep 7, 2017, at 12:27 PM, Lois Foltan wrote: > > On 9/6/2017 12:42 PM, Karen Kinnear wrote: >> Lois, >> >> Looks good. Many thanks. > > Hi Karen, > Thank you for the review! Comments below. > >> >> Very happy with the creative classFileParser containment of the temporary derived value class naming >> and with the clean verificationType extension. >> >> Couple of questions/comments: >> 1. verificationType.hpp >> line 180 >> Did I read this incorrectly? There is a Symbol alignment assumption that leaves 0x3, i.e. two bits as 0 >> Did you want to change that alignment check to be 0x7 for alignment so there is room for the ValueType bit? >> And change the hardcoded 0x3 to TypeMask? > Agreed, fixed. > >> >> >> 2. verificationType.hpp >> line 203 >> Could you possibly explain to me the need for the && !is_valuetype_check()? Or is that potentially an assertion? > So this might be a bit defensive on my part. But, I don't think there is a guarantee that is_reference() is necessarily always called with a non-check VerificationType. As a matter of fact, I know there are cases where is_reference is called specifically with a TypeQuery (0x03) check VerificationType because I had added a more general assertion initially. Something like --> assert(!is_check(), "is_reference called with a check VerificationType"); > > This assert is hit right away when building the JDK, again called with a TypeQuery (0x03). So I became concerned that if is_reference() is called with a ValueTypeQuery check VerificationType it would erroneously return true. > > is_reference() --> { return (ValueTypeQuery (0x08) & TypeMask (0x07)) == Reference (0x00)); } > > Thus the need for !is_valuetype_check(). > >> >> 3. verificationType.hpp >> is_valuetype_assignable_from >> Is it worth adding an assertion that neither is_null() nor from.is_null() ? Or did you already throw an exception earlier for that >> case? > If either is_null() or from.is_null() is true then the current assertion that checks for is_valuetype() and from.is_valuetype() will catch that. > >> >> 4. We discussed temporarily using 53.1 for value type versioning until JDK10 moves to 54 > I have changed VALUETYPE_MAJOR_VERSION to 53 and VALUETYPE_MINOR_VERSION remains at 1. However, tests are demonstrating that we are still trying to generate 52.0 & 53.0 version classfiles with vbytecodes. I have entered bug https://bugs.openjdk.java.net/browse/JDK-8187320 to address this issue. Once resolved, we can comment out the check in verifier.cpp. > >> >> 5. verifier.cpp >> Thank you for the vbytecodes_allowed check. I see the special checking for EnableValhalla and invoke virtual overloading. >> Did you want to do specific checking of EnableMVT for vbox/vunbox? > Done. > >> >> 6. verifier.cpp >> multianewarray >> line 1863: there is a verify_cp_class_type ? I was expecting verify_cp_class_or_value_type? > Good catch, fixed. > >> >> 7. VunboxErrorIndex and VboxUnbox.java >> Cleanup. Perhaps remove comments in former lines 98/99 - since they are no longer true, and same lines in original test. >> Ok to file as a follow-on rfe > Done. > >> >> I don?t need to see an update, just answers to the questions to make sure I understand, > > Just in case, updates posted at: > http://cr.openjdk.java.net/~lfoltan/mvt_verifier_hotspot.2/webrev/ > http://cr.openjdk.java.net/~lfoltan/mvt_verifier_jdk.2/webrev/ > > Thanks, > Lois > >> thanks, >> Karen >> >> >>> On Sep 5, 2017, at 8:37 PM, Lois Foltan wrote: >>> >>> Hello, >>> >>> Review request for verifier changes to support MVT. >>> >>> Webrevs: >>> http://cr.openjdk.java.net/~lfoltan/mvt_verifier_jdk.1/webrev/ >>> http://cr.openjdk.java.net/~lfoltan/mvt_verifier_hotspot.1/webrev/ >>> >>> Webrevs include changes to address preliminary review comments by John Rose and Harold Seigel. >>> >>> Testing - hotspot jtreg tests, java/lang, java/util, java/io, JDK & Hotspot valhalla tests, jprt hotspot tests, JCK vm (in progress). >>> >>> Thanks, >>> Lois >>> >>> > From lois.foltan at oracle.com Thu Sep 7 17:57:19 2017 From: lois.foltan at oracle.com (lois.foltan at oracle.com) Date: Thu, 07 Sep 2017 17:57:19 +0000 Subject: hg: valhalla/valhalla/jdk: 8182367: Byte-code verifier support for minimal value types Message-ID: <201709071757.v87HvJJo004125@aojmv0008.oracle.com> Changeset: a64b4feff72d Author: lfoltan Date: 2017-09-07 13:52 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/a64b4feff72d 8182367: Byte-code verifier support for minimal value types Summary: Support verifier recognition of new value type VerificationType and add verifier processing of minimal value type bytecodes Reviewed-by: acorn, hseigel, jrose ! test/valhalla/mvt/ConstructorTest.java ! test/valhalla/mvt/MVTAccessCheck.java ! test/valhalla/mvt/MVTReflectionTest.java ! test/valhalla/mvt/MVTTest.java ! test/valhalla/mvt/MethodHandlesTest.java ! test/valhalla/mvt/UnreflectWithersTest.java ! test/valhalla/mvt/WithFieldTest.java ! test/valhalla/mvt/point/TestPoint.java ! test/valhalla/mvt/vector/VectorTest.java From lois.foltan at oracle.com Thu Sep 7 17:57:28 2017 From: lois.foltan at oracle.com (lois.foltan at oracle.com) Date: Thu, 07 Sep 2017 17:57:28 +0000 Subject: hg: valhalla/valhalla/hotspot: 8182367: Byte-code verifier support for minimal value types Message-ID: <201709071757.v87HvSXj004178@aojmv0008.oracle.com> Changeset: cf519e23a3f1 Author: lfoltan Date: 2017-09-07 13:52 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/cf519e23a3f1 8182367: Byte-code verifier support for minimal value types Summary: Support verifier recognition of new value type VerificationType and add verifier processing of minimal value type bytecodes Reviewed-by: acorn, hseigel, jrose ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/stackMapFrame.cpp ! src/share/vm/classfile/stackMapTable.cpp ! src/share/vm/classfile/verificationType.cpp ! src/share/vm/classfile/verificationType.hpp ! src/share/vm/classfile/verifier.cpp ! src/share/vm/classfile/verifier.hpp ! test/runtime/valhalla/valuetypes/DeriveValueTypeCreation.java ! test/runtime/valhalla/valuetypes/MVTComboDebugTier1.java ! test/runtime/valhalla/valuetypes/MVTComboTier1.java ! test/runtime/valhalla/valuetypes/UninitializedValueFieldsTest.java ! test/runtime/valhalla/valuetypes/VDefaultTest.java ! test/runtime/valhalla/valuetypes/VTBufferTest.java ! test/runtime/valhalla/valuetypes/VWithFieldTest.java ! test/runtime/valhalla/valuetypes/ValueOops.java ! test/runtime/valhalla/valuetypes/ValueTypeArray.java ! test/runtime/valhalla/valuetypes/ValueTypeCreation.java ! test/runtime/valhalla/valuetypes/ValueTypeDensity.java ! test/runtime/valhalla/valuetypes/ValueTypeGetField.java ! test/runtime/valhalla/valuetypes/VboxUnbox.java + test/runtime/valhalla/valuetypes/verifier/ValueCapableClass.java + test/runtime/valhalla/valuetypes/verifier/VloadTest.java + test/runtime/valhalla/valuetypes/verifier/VunboxErrorIndex.java From david.holmes at oracle.com Thu Sep 7 21:38:07 2017 From: david.holmes at oracle.com (David Holmes) Date: Fri, 8 Sep 2017 07:38:07 +1000 Subject: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update In-Reply-To: <9cb9b854-7079-72d3-994a-acc187cae2b5@oracle.com> References: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> <1918329181.1923885.1504777198468.JavaMail.zimbra@u-pem.fr> <9de7ae0c-f10b-7b30-d645-ce3e637bff46@oracle.com> <25FAB821-C939-409B-B4B6-688B1B7AF002@oracle.com> <9cb9b854-7079-72d3-994a-acc187cae2b5@oracle.com> Message-ID: <6849ba43-1640-2b0e-05dd-4dd2ecd18830@oracle.com> Hi Maurizio, I didn't see your public comment before my private reply so I'll repeat that reply here - as there's nothing really private about it. :) On 8/09/2017 12:59 AM, Maurizio Cimadamore wrote: > As discussed individually, I believe that bumping classfile version (or > source version) is not something that an experimental branch should do. > The risk of doing so is that multiple developers will be doing the same > change (perhaps in slightly incompatible ways) and create an integration > hell. The work I'm doing _has_ to involve a change to the classfile version and I need the related changes to the javac --release so that I can control that. So regardless of whether I end up pushing this change from the nestmates branch I'm going to need the change. And the same is likely true for a project like condy. > So I believe it would be best to assume that any given experimental > branch adds some experimental behavior on top of the latest version > (whatever that is at a given point in time). If certain features need to > be constrained further (see MVT, where we don't want all classfiles to > be able to exploit value opcodes), minor version can be used for that > purpose. I don't see any difference between using v54 versus v53.1 ??? I still need a different classfile version and I still need a way to tell javac to produce it. > When it's time to target a specific JDK N, I think the work to setup > appropriate source/version numbers should happen in the upstream repo; > once that's settled, changes will flow onto the branches - which will > then changed to target the desired version number. Then a patch for the > branch is extracted and pushed upstream (after due review, etc.). I would be happy to leave this exercise to someone else in another repo to merge into mainline. But there are two significant problems with that: 1. It doesn't help me! I need to be able to work with the updated version information _now_, so that I can complete this feature. So I'm going to have to apply those changes in vahalla-nestmates even if I never intend to actually migrate them. Same would be true for the Condy folk. 2. Someone somewhere has to be given this task and work on it to ensure it is ready to push to mainline as soon as 10/18.3 has forked. If that isn't me or someone from condy then who will do it? Plus even if the version change pushes immediately after the fork, that will still delay the completion of nestmates/condy as we will have to pull those changes back into the project repos (or more likely a separate mainline sandbox by this stage) and then finish of the features so we can push them. Given that, it really makes no difference if I include these changes with nestmates, or someone from condy includes them with condy. We will both need a local variant of them anyway, and whomever does the push doesn't have a messy integration. If a third-party does the push "upstream" then we both have a messy integration. And if condy and nestmates are in different releases anyway then the exercise has to happen twice. > I would not be surprised if, now that we're moving to a more regular > release cadence, some of these tasks (update classfile version/source > version) would be automated and automatically applied after a new > version has 'forked off'. That would be nice I think, but I'd still need a way to manually trigger that _now_ so that I can base my work on it _now_. Cheers, David ----- > Maurizio > > > On 07/09/17 14:20, Karen Kinnear wrote: >> 10 is planning to bump to 54 for condy >> >> Karen >> >>> On Sep 7, 2017, at 6:48 AM, David Holmes wrote: >>> >>> Hi Remi, >>> >>> On 7/09/2017 7:39 PM, Remi Forax wrote: >>>> Hi David, >>>> Having 10 -> v53 and 11 -> v54 is weird, >>> How is that weird? I just incremented the value. If it turns out that 10 needs to bump to 54 then I'd bump 11 to 55. >>> >>>> perhaps, --release 99 is better than release 11. >>> ??? >>> >>> David >>> >>>> R?mi >>>> ----- Mail original ----- >>>>> De: "David Holmes" >>>>> ?: "valhalla-dev" >>>>> Envoy?: Jeudi 7 Septembre 2017 10:54:04 >>>>> Objet: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update >>>>> webrev:http://cr.openjdk.java.net/~dholmes/8187302/webrev/ >>>>> >>>>> (please ignore the two hotspot test changes) >>>>> >>>>> This changes prepares for switching to release 11 and classfile version >>>>> 54 so that I can put classfile version checks where needed, and compile >>>>> tests the right way, where needed. >>>>> >>>>> Initially the default remains release 10 and v53, but --release 11 can >>>>> be used to explicitly use v54. >>>>> >>>>> I think I have found everything that needs updating to allow use of >>>>> release 11 and v54 classfiles. >>>>> >>>>> Testing so far is minimal: javac Foo.java -> v53 >>>>> javac --release 11 Foo.java -> v54 >>>>> >>>>> langtools/tools/javac testing also conducted. >>>>> >>>>> Thanks, >>>>> David > From forax at univ-mlv.fr Thu Sep 7 22:14:38 2017 From: forax at univ-mlv.fr (forax at univ-mlv.fr) Date: Fri, 8 Sep 2017 00:14:38 +0200 (CEST) Subject: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update In-Reply-To: <9de7ae0c-f10b-7b30-d645-ce3e637bff46@oracle.com> References: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> <1918329181.1923885.1504777198468.JavaMail.zimbra@u-pem.fr> <9de7ae0c-f10b-7b30-d645-ce3e637bff46@oracle.com> Message-ID: <763124028.2274975.1504822478043.JavaMail.zimbra@u-pem.fr> ----- Mail original ----- > De: "David Holmes" > ?: "Remi Forax" > Cc: "valhalla-dev" > Envoy?: Jeudi 7 Septembre 2017 12:48:00 > Objet: Re: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update > Hi Remi, > > On 7/09/2017 7:39 PM, Remi Forax wrote: >> Hi David, >> Having 10 -> v53 and 11 -> v54 is weird, > > How is that weird? I just incremented the value. If it turns out that 10 > needs to bump to 54 then I'd bump 11 to 55. > >> perhaps, --release 99 is better than release 11. > > ??? Reading your patch, for me it was like you wanted something more like version_max hence '99', 99 being v54 currently. > > David R?mi > >> R?mi >> >> ----- Mail original ----- >>> De: "David Holmes" >>> ?: "valhalla-dev" >>> Envoy?: Jeudi 7 Septembre 2017 10:54:04 >>> Objet: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and >>> javac "release" update >> >>> webrev: http://cr.openjdk.java.net/~dholmes/8187302/webrev/ >>> >>> (please ignore the two hotspot test changes) >>> >>> This changes prepares for switching to release 11 and classfile version >>> 54 so that I can put classfile version checks where needed, and compile >>> tests the right way, where needed. >>> >>> Initially the default remains release 10 and v53, but --release 11 can >>> be used to explicitly use v54. >>> >>> I think I have found everything that needs updating to allow use of >>> release 11 and v54 classfiles. >>> >>> Testing so far is minimal: javac Foo.java -> v53 >>> javac --release 11 Foo.java -> v54 >>> >>> langtools/tools/javac testing also conducted. >>> >>> Thanks, > >> David From david.holmes at oracle.com Thu Sep 7 22:18:11 2017 From: david.holmes at oracle.com (David Holmes) Date: Fri, 8 Sep 2017 08:18:11 +1000 Subject: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update In-Reply-To: <763124028.2274975.1504822478043.JavaMail.zimbra@u-pem.fr> References: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> <1918329181.1923885.1504777198468.JavaMail.zimbra@u-pem.fr> <9de7ae0c-f10b-7b30-d645-ce3e637bff46@oracle.com> <763124028.2274975.1504822478043.JavaMail.zimbra@u-pem.fr> Message-ID: On 8/09/2017 8:14 AM, forax at univ-mlv.fr wrote: > ----- Mail original ----- >> De: "David Holmes" >> ?: "Remi Forax" >> Cc: "valhalla-dev" >> Envoy?: Jeudi 7 Septembre 2017 12:48:00 >> Objet: Re: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update > >> Hi Remi, >> >> On 7/09/2017 7:39 PM, Remi Forax wrote: >>> Hi David, >>> Having 10 -> v53 and 11 -> v54 is weird, >> >> How is that weird? I just incremented the value. If it turns out that 10 >> needs to bump to 54 then I'd bump 11 to 55. >> >>> perhaps, --release 99 is better than release 11. >> >> ??? > > Reading your patch, for me it was like you wanted something more like version_max hence '99', 99 being v54 currently. Do you mean the asm changes? I introduced V_MAX purely to avoid the need to edit ClassReader.java whenever the version increased. David >> >> David > > R?mi > >> >>> R?mi >>> >>> ----- Mail original ----- >>>> De: "David Holmes" >>>> ?: "valhalla-dev" >>>> Envoy?: Jeudi 7 Septembre 2017 10:54:04 >>>> Objet: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and >>>> javac "release" update >>> >>>> webrev: http://cr.openjdk.java.net/~dholmes/8187302/webrev/ >>>> >>>> (please ignore the two hotspot test changes) >>>> >>>> This changes prepares for switching to release 11 and classfile version >>>> 54 so that I can put classfile version checks where needed, and compile >>>> tests the right way, where needed. >>>> >>>> Initially the default remains release 10 and v53, but --release 11 can >>>> be used to explicitly use v54. >>>> >>>> I think I have found everything that needs updating to allow use of >>>> release 11 and v54 classfiles. >>>> >>>> Testing so far is minimal: javac Foo.java -> v53 >>>> javac --release 11 Foo.java -> v54 >>>> >>>> langtools/tools/javac testing also conducted. >>>> >>>> Thanks, >>>> David From david.holmes at oracle.com Fri Sep 8 06:20:58 2017 From: david.holmes at oracle.com (David Holmes) Date: Fri, 8 Sep 2017 16:20:58 +1000 Subject: [Nestmates] RFR: 8187360) [Nestmates] Remove invokespecial changes Message-ID: <54e622fa-a370-9101-5f44-38c86119fee7@oracle.com> webrev: http://cr.openjdk.java.net/~dholmes/8187360/webrev/ The initial proposal was extending the use of invokespecial to allow it to be used for private nestmate method invocations. To support that changes had to be made to the verifier. After JVMLS it was decided that we would use invokevirtual and invokeinterface (as appropriate) as the specification changes needed are much simpler. The switch to that approach was done under JDK-8187221 and JDK-8186763. Now we can remove the invokespecial changes that were initially put in place. Thanks, David From maurizio.cimadamore at oracle.com Fri Sep 8 08:38:19 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 8 Sep 2017 09:38:19 +0100 Subject: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update In-Reply-To: <6849ba43-1640-2b0e-05dd-4dd2ecd18830@oracle.com> References: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> <1918329181.1923885.1504777198468.JavaMail.zimbra@u-pem.fr> <9de7ae0c-f10b-7b30-d645-ce3e637bff46@oracle.com> <25FAB821-C939-409B-B4B6-688B1B7AF002@oracle.com> <9cb9b854-7079-72d3-994a-acc187cae2b5@oracle.com> <6849ba43-1640-2b0e-05dd-4dd2ecd18830@oracle.com> Message-ID: <3bf4e999-b632-1c40-77e3-fc85455d4e20@oracle.com> Hi David, I think you raise many valid points, but I also think that this discussion should not happen as part of a review in valhalla-dev We're in a transitory phase - a bit caught between different ways to do things. Organizing repos in branches is the first attempt to move things in a way so that features are hosted in separate places, so that they can target different JDK mainlines. Now we need to create rules and processes around that, so that things will go smoothly most of the times - and insert automation whenever possible. There are simply too many manual processes that need to happen right now - bump sourcefile version, bump classfile version, bump ASM to name a few - for some of which it's just matter of burping the patch - but others (esp. ASM) are far more delicate, and require several degrees of clearance to go through - all which require time. This is obviously not sustainable if we're to ship every 6 months. So, I think on this one we need to take a more holistic approach, and think about the changes that we wanna see happening that would make us confident that we'd landed in a good place - and then implement those changes. If every dev solves his/her own problems in an ad-hoc (even if correct) way, then everybody loses. I suggest we bring up this discussing in a wider mailing list, such as discuss at o.j.n and see whether we can come up with a good model for reasoning about these things in the light of the recent news about the new release model. Cheers Maurizio On 07/09/17 22:38, David Holmes wrote: > Hi Maurizio, > > I didn't see your public comment before my private reply so I'll > repeat that reply here - as there's nothing really private about it. :) > > On 8/09/2017 12:59 AM, Maurizio Cimadamore wrote: >> As discussed individually, I believe that bumping classfile version >> (or source version) is not something that an experimental branch >> should do. The risk of doing so is that multiple developers will be >> doing the same change (perhaps in slightly incompatible ways) and >> create an integration hell. > > The work I'm doing _has_ to involve a change to the classfile version > and I need the related changes to the javac --release so that I can > control that. So regardless of whether I end up pushing this change > from the nestmates branch I'm going to need the change. And the same > is likely true for a project like condy. > >> So I believe it would be best to assume that any given experimental >> branch adds some experimental behavior on top of the latest version >> (whatever that is at a given point in time). If certain features need >> to be constrained further (see MVT, where we don't want all >> classfiles to be able to exploit value opcodes), minor version can be >> used for that purpose. > > I don't see any difference between using v54 versus v53.1 ??? I still > need a different classfile version and I still need a way to tell > javac to produce it. > >> When it's time to target a specific JDK N, I think the work to setup >> appropriate source/version numbers should happen in the upstream >> repo; once that's settled, changes will flow onto the branches - >> which will then changed to target the desired version number. Then a >> patch for the branch is extracted and pushed upstream (after due >> review, etc.). > > I would be happy to leave this exercise to someone else in another > repo to merge into mainline. But there are two significant problems > with that: > > 1. It doesn't help me! I need to be able to work with the updated > version information _now_, so that I can complete this feature. So I'm > going to have to apply those changes in vahalla-nestmates even if I > never intend to actually migrate them. Same would be true for the > Condy folk. > > 2. Someone somewhere has to be given this task and work on it to > ensure it is ready to push to mainline as soon as 10/18.3 has forked. > If that isn't me or someone from condy then who will do it? Plus even > if the version change pushes immediately after the fork, that will > still delay the completion of nestmates/condy as we will have to pull > those changes back into the project repos (or more likely a separate > mainline sandbox by this stage) and then finish of the features so we > can push them. > > Given that, it really makes no difference if I include these changes > with nestmates, or someone from condy includes them with condy. We > will both need a local variant of them anyway, and whomever does the > push doesn't have a messy integration. If a third-party does the push > "upstream" then we both have a messy integration. > > And if condy and nestmates are in different releases anyway then the > exercise has to happen twice. > >> I would not be surprised if, now that we're moving to a more regular >> release cadence, some of these tasks (update classfile version/source >> version) would be automated and automatically applied after a new >> version has 'forked off'. > > That would be nice I think, but I'd still need a way to manually > trigger that _now_ so that I can base my work on it _now_. > > Cheers, > David > ----- > >> Maurizio >> >> >> On 07/09/17 14:20, Karen Kinnear wrote: >>> 10 is planning to bump to 54 for condy >>> >>> Karen >>> >>>> On Sep 7, 2017, at 6:48 AM, David Holmes >>>> wrote: >>>> >>>> Hi Remi, >>>> >>>> On 7/09/2017 7:39 PM, Remi Forax wrote: >>>>> Hi David, >>>>> Having 10 -> v53 and 11 -> v54 is weird, >>>> How is that weird? I just incremented the value. If it turns out >>>> that 10 needs to bump to 54 then I'd bump 11 to 55. >>>> >>>>> perhaps, --release 99 is better than release 11. >>>> ??? >>>> >>>> David >>>> >>>>> R?mi >>>>> ----- Mail original ----- >>>>>> De: "David Holmes" >>>>>> ?: "valhalla-dev" >>>>>> Envoy?: Jeudi 7 Septembre 2017 10:54:04 >>>>>> Objet: Initial RFR: 8187302: [Nestmates] Prepare for classfile >>>>>> version 54 and javac "release" update >>>>>> webrev:http://cr.openjdk.java.net/~dholmes/8187302/webrev/ >>>>>> >>>>>> (please ignore the two hotspot test changes) >>>>>> >>>>>> This changes prepares for switching to release 11 and classfile >>>>>> version >>>>>> 54 so that I can put classfile version checks where needed, and >>>>>> compile >>>>>> tests the right way, where needed. >>>>>> >>>>>> Initially the default remains release 10 and v53, but --release >>>>>> 11 can >>>>>> be used to explicitly use v54. >>>>>> >>>>>> I think I have found everything that needs updating to allow use of >>>>>> release 11 and v54 classfiles. >>>>>> >>>>>> Testing so far is minimal: javac Foo.java -> v53 >>>>>> javac --release 11 Foo.java -> v54 >>>>>> >>>>>> langtools/tools/javac testing also conducted. >>>>>> >>>>>> Thanks, >>>>>> David >> From forax at univ-mlv.fr Fri Sep 8 13:03:53 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Fri, 8 Sep 2017 15:03:53 +0200 (CEST) Subject: hg: valhalla/valhalla/hotspot: 8182367: Byte-code verifier support for minimal value types In-Reply-To: <201709071757.v87HvSXj004178@aojmv0008.oracle.com> References: <201709071757.v87HvSXj004178@aojmv0008.oracle.com> Message-ID: <1861014259.2565826.1504875833757.JavaMail.zimbra@u-pem.fr> Thank you Lois, i've just found one bug in the v-opcodes test suite of ASM. R?mi ----- Mail original ----- > De: "lois foltan" > ?: "valhalla-dev" > Envoy?: Jeudi 7 Septembre 2017 19:57:28 > Objet: hg: valhalla/valhalla/hotspot: 8182367: Byte-code verifier support for minimal value types > Changeset: cf519e23a3f1 > Author: lfoltan > Date: 2017-09-07 13:52 -0400 > URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/cf519e23a3f1 > > 8182367: Byte-code verifier support for minimal value types > Summary: Support verifier recognition of new value type VerificationType and add > verifier processing of minimal value type bytecodes > Reviewed-by: acorn, hseigel, jrose > > ! src/share/vm/classfile/classFileParser.cpp > ! src/share/vm/classfile/stackMapFrame.cpp > ! src/share/vm/classfile/stackMapTable.cpp > ! src/share/vm/classfile/verificationType.cpp > ! src/share/vm/classfile/verificationType.hpp > ! src/share/vm/classfile/verifier.cpp > ! src/share/vm/classfile/verifier.hpp > ! test/runtime/valhalla/valuetypes/DeriveValueTypeCreation.java > ! test/runtime/valhalla/valuetypes/MVTComboDebugTier1.java > ! test/runtime/valhalla/valuetypes/MVTComboTier1.java > ! test/runtime/valhalla/valuetypes/UninitializedValueFieldsTest.java > ! test/runtime/valhalla/valuetypes/VDefaultTest.java > ! test/runtime/valhalla/valuetypes/VTBufferTest.java > ! test/runtime/valhalla/valuetypes/VWithFieldTest.java > ! test/runtime/valhalla/valuetypes/ValueOops.java > ! test/runtime/valhalla/valuetypes/ValueTypeArray.java > ! test/runtime/valhalla/valuetypes/ValueTypeCreation.java > ! test/runtime/valhalla/valuetypes/ValueTypeDensity.java > ! test/runtime/valhalla/valuetypes/ValueTypeGetField.java > ! test/runtime/valhalla/valuetypes/VboxUnbox.java > + test/runtime/valhalla/valuetypes/verifier/ValueCapableClass.java > + test/runtime/valhalla/valuetypes/verifier/VloadTest.java > + test/runtime/valhalla/valuetypes/verifier/VunboxErrorIndex.java From forax at univ-mlv.fr Fri Sep 8 23:34:08 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Sat, 9 Sep 2017 01:34:08 +0200 (CEST) Subject: valuetypifier Message-ID: <209820455.2733645.1504913648850.JavaMail.zimbra@u-pem.fr> As i promised at the JVM Summit, i would like to introduce the valuetypifier [1] that takes a 1.8 code annotated with @ValueCapableClass and rewrite the bytecode to see the value capable class as a value type. regards, R?mi [1] https://github.com/forax/valuetypify From forax at univ-mlv.fr Sat Sep 9 14:06:51 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Sat, 9 Sep 2017 16:06:51 +0200 (CEST) Subject: [MVT] anewarray and classloading Message-ID: <1531578493.2781357.1504966011423.JavaMail.zimbra@u-pem.fr> There is a bug in hotspot, anewarray with a value type only works if the corresponding value capable class was loaded previously, otherwise, i get a NoClassDefFoundError. A way to reproduce the issue is to clone my valuetypify repo and comment the line https://github.com/forax/valuetypify/blob/master/src/test/java/fr/umlv/valuetypify/test/Hash.java#L150 regards, R?mi From david.holmes at oracle.com Mon Sep 11 02:15:32 2017 From: david.holmes at oracle.com (David Holmes) Date: Mon, 11 Sep 2017 12:15:32 +1000 Subject: [Nestmates] RFR: 8187360) [Nestmates] Remove invokespecial changes In-Reply-To: <54e622fa-a370-9101-5f44-38c86119fee7@oracle.com> References: <54e622fa-a370-9101-5f44-38c86119fee7@oracle.com> Message-ID: <47fedfe3-841f-d426-e136-5f59cc325330@oracle.com> On 8/09/2017 4:20 PM, David Holmes wrote: > webrev: http://cr.openjdk.java.net/~dholmes/8187360/webrev/ I was asked for a webrev showing diffs to jdk10/hs code to confirm things were reverted correctly: http://cr.openjdk.java.net/~dholmes/8187360/webrev.jdk10/ The changes to verifier.cpp are indentation only. Thanks, David > The initial proposal was extending the use of invokespecial to allow it > to be used for private nestmate method invocations. To support that > changes had to be made to the verifier. After JVMLS it was decided that > we would use invokevirtual and invokeinterface (as appropriate) as the > specification changes needed are much simpler. The switch to that > approach was done under JDK-8187221 and JDK-8186763. Now we can remove > the invokespecial changes that were initially put in place. > > Thanks, > David > From david.simms at oracle.com Mon Sep 11 07:30:07 2017 From: david.simms at oracle.com (David Simms) Date: Mon, 11 Sep 2017 09:30:07 +0200 Subject: [MVT] anewarray and classloading In-Reply-To: <1531578493.2781357.1504966011423.JavaMail.zimbra@u-pem.fr> References: <1531578493.2781357.1504966011423.JavaMail.zimbra@u-pem.fr> Message-ID: On 09/09/17 16:06, Remi Forax wrote: > There is a bug in hotspot, > anewarray with a value type only works if the corresponding value capable class was loaded previously, > otherwise, i get a NoClassDefFoundError. > > A way to reproduce the issue is to clone my valuetypify repo and comment the line > https://github.com/forax/valuetypify/blob/master/src/test/java/fr/umlv/valuetypify/test/Hash.java#L150 > > regards, > R?mi > Thanks Remi, I'm working on testing the fix for it now: JDK-8184919 Cheers /David Simms From maurizio.cimadamore at oracle.com Mon Sep 11 08:26:59 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 11 Sep 2017 09:26:59 +0100 Subject: [Nestmates] RFR: 8187360) [Nestmates] Remove invokespecial changes In-Reply-To: <47fedfe3-841f-d426-e136-5f59cc325330@oracle.com> References: <54e622fa-a370-9101-5f44-38c86119fee7@oracle.com> <47fedfe3-841f-d426-e136-5f59cc325330@oracle.com> Message-ID: <1b27c3d4-61e2-6ea1-4b18-796648f82784@oracle.com> Looks good Maurizio On 11/09/17 03:15, David Holmes wrote: > On 8/09/2017 4:20 PM, David Holmes wrote: >> webrev: http://cr.openjdk.java.net/~dholmes/8187360/webrev/ > > I was asked for a webrev showing diffs to jdk10/hs code to confirm > things were reverted correctly: > > http://cr.openjdk.java.net/~dholmes/8187360/webrev.jdk10/ > > The changes to verifier.cpp are indentation only. > > Thanks, > David > >> The initial proposal was extending the use of invokespecial to allow >> it to be used for private nestmate method invocations. To support >> that changes had to be made to the verifier. After JVMLS it was >> decided that we would use invokevirtual and invokeinterface (as >> appropriate) as the specification changes needed are much simpler. >> The switch to that approach was done under JDK-8187221 and >> JDK-8186763. Now we can remove the invokespecial changes that were >> initially put in place. >> >> Thanks, >> David >> From david.holmes at oracle.com Mon Sep 11 11:40:29 2017 From: david.holmes at oracle.com (David Holmes) Date: Mon, 11 Sep 2017 21:40:29 +1000 Subject: [Nestmates] RFR: 8187360) [Nestmates] Remove invokespecial changes In-Reply-To: <1b27c3d4-61e2-6ea1-4b18-796648f82784@oracle.com> References: <54e622fa-a370-9101-5f44-38c86119fee7@oracle.com> <47fedfe3-841f-d426-e136-5f59cc325330@oracle.com> <1b27c3d4-61e2-6ea1-4b18-796648f82784@oracle.com> Message-ID: Thanks Maurizio! David On 11/09/2017 6:26 PM, Maurizio Cimadamore wrote: > Looks good > > Maurizio > > > On 11/09/17 03:15, David Holmes wrote: >> On 8/09/2017 4:20 PM, David Holmes wrote: >>> webrev: http://cr.openjdk.java.net/~dholmes/8187360/webrev/ >> >> I was asked for a webrev showing diffs to jdk10/hs code to confirm >> things were reverted correctly: >> >> http://cr.openjdk.java.net/~dholmes/8187360/webrev.jdk10/ >> >> The changes to verifier.cpp are indentation only. >> >> Thanks, >> David >> >>> The initial proposal was extending the use of invokespecial to allow >>> it to be used for private nestmate method invocations. To support >>> that changes had to be made to the verifier. After JVMLS it was >>> decided that we would use invokevirtual and invokeinterface (as >>> appropriate) as the specification changes needed are much simpler. >>> The switch to that approach was done under JDK-8187221 and >>> JDK-8186763. Now we can remove the invokespecial changes that were >>> initially put in place. >>> >>> Thanks, >>> David >>> > From david.holmes at oracle.com Tue Sep 12 03:48:05 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Tue, 12 Sep 2017 03:48:05 +0000 Subject: hg: valhalla/valhalla/hotspot: 8187360: [Nestmates] Remove invokespecial changes Message-ID: <201709120348.v8C3m5Kw028220@aojmv0008.oracle.com> Changeset: 8ee20a905c42 Author: dholmes Date: 2017-09-11 23:44 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/8ee20a905c42 8187360: [Nestmates] Remove invokespecial changes Summary: revert invokespecial changes no longer needed Reviewed-by: mcicamadore ! src/share/vm/classfile/verificationType.cpp ! src/share/vm/classfile/verificationType.hpp ! src/share/vm/classfile/verifier.cpp From david.holmes at oracle.com Tue Sep 12 06:46:20 2017 From: david.holmes at oracle.com (David Holmes) Date: Tue, 12 Sep 2017 16:46:20 +1000 Subject: Initial RFR: 8187302: [Nestmates] Prepare for classfile version 54 and javac "release" update In-Reply-To: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> References: <282fba0a-f99a-ba75-450b-c82106760c52@oracle.com> Message-ID: On 7/09/2017 6:54 PM, David Holmes wrote: > webrev: http://cr.openjdk.java.net/~dholmes/8187302/webrev/ > > (please ignore the two hotspot test changes) > > This changes prepares for switching to release 11 and classfile version > 54 so that I can put classfile version checks where needed, and compile > tests the right way, where needed. > > Initially the default remains release 10 and v53, but --release 11 can > be used to explicitly use v54. I got a bit ahead of myself here. "-source 11 -target 11" work but "--release 11" is a lot more involved and beyond what I can (or need to) readily do. So ignore this for now and I'll come back with revised changes later. David ----- > I think I have found everything that needs updating to allow use of > release 11 and v54 classfiles. > > Testing so far is minimal: javac Foo.java -> v53 > ?????????????????????????? javac --release 11 Foo.java -> v54 > > langtools/tools/javac testing also conducted. > > Thanks, > David From david.simms at oracle.com Tue Sep 12 09:38:32 2017 From: david.simms at oracle.com (David Simms) Date: Tue, 12 Sep 2017 11:38:32 +0200 Subject: RFR (S): [MVT] Ensure JVMS spec rules for creation and loading of DVT are followed Message-ID: <5bbd4b3b-4119-2a3f-eed6-7fed0fe825ed@oracle.com> Greetings, Here's a patch containing further testing, and fix for MVT loading of VM derived value type class, even before touching its Value Capable Class. Throws correct exception according to draft spec (ICCE when VCC rules broken etc, http://cr.openjdk.java.net/~dlsmith/values.html#values-5.3) Bug: https://bugs.openjdk.java.net/browse/JDK-8184919 Webrev: http://cr.openjdk.java.net/~dsimms/valhalla/8184919/webrev0/ Cheers /David Simms From maurizio.cimadamore at oracle.com Tue Sep 12 10:07:07 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 12 Sep 2017 11:07:07 +0100 Subject: RFR (S): [MVT] Ensure JVMS spec rules for creation and loading of DVT are followed In-Reply-To: <5bbd4b3b-4119-2a3f-eed6-7fed0fe825ed@oracle.com> References: <5bbd4b3b-4119-2a3f-eed6-7fed0fe825ed@oracle.com> Message-ID: <5429e965-4dac-91af-0a71-35835479096a@oracle.com> Looks very good! In instanceKlass.hpp am I right that you just reordered the flags so that MVT related stuff occurs last? That is, the only change there is the added _extra_has_vcc_annotation - everything else is just reshuffling? Maurizio On 12/09/17 10:38, David Simms wrote: > Greetings, > > Here's a patch containing further testing, and fix for MVT loading of > VM derived value type class, even before touching its Value Capable > Class. Throws correct exception according to draft spec (ICCE when VCC > rules broken etc, > http://cr.openjdk.java.net/~dlsmith/values.html#values-5.3) > > Bug: https://bugs.openjdk.java.net/browse/JDK-8184919 > > Webrev: http://cr.openjdk.java.net/~dsimms/valhalla/8184919/webrev0/ > > > Cheers > > /David Simms > From david.simms at oracle.com Tue Sep 12 10:26:54 2017 From: david.simms at oracle.com (David Simms) Date: Tue, 12 Sep 2017 12:26:54 +0200 Subject: RFR (S): [MVT] Ensure JVMS spec rules for creation and loading of DVT are followed In-Reply-To: <5429e965-4dac-91af-0a71-35835479096a@oracle.com> References: <5bbd4b3b-4119-2a3f-eed6-7fed0fe825ed@oracle.com> <5429e965-4dac-91af-0a71-35835479096a@oracle.com> Message-ID: <17e4cac6-fffd-e363-54d8-8c1cfcddf800@oracle.com> Yeah, MVT stuff only after resolve fails: I tried not to break "VanillaNothingToDoWithMVT$Value" use case, so the class will be found first if it does exist. Otherwise, yeah, "has_vcc_annotation()", just for getting the correct exceptions from the appropriate places, helps with debugging. On 12/09/17 12:07, Maurizio Cimadamore wrote: > Looks very good! > > In instanceKlass.hpp am I right that you just reordered the flags so > that MVT related stuff occurs last? That is, the only change there is > the added _extra_has_vcc_annotation - everything else is just > reshuffling? > > Maurizio > > > On 12/09/17 10:38, David Simms wrote: >> Greetings, >> >> Here's a patch containing further testing, and fix for MVT loading of >> VM derived value type class, even before touching its Value Capable >> Class. Throws correct exception according to draft spec (ICCE when >> VCC rules broken etc, >> http://cr.openjdk.java.net/~dlsmith/values.html#values-5.3) >> >> Bug: https://bugs.openjdk.java.net/browse/JDK-8184919 >> >> Webrev: http://cr.openjdk.java.net/~dsimms/valhalla/8184919/webrev0/ >> >> >> Cheers >> >> /David Simms >> > From frederic.parain at oracle.com Tue Sep 12 17:37:59 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Tue, 12 Sep 2017 13:37:59 -0400 Subject: RFR (S): [MVT] Ensure JVMS spec rules for creation and loading of DVT are followed In-Reply-To: <5bbd4b3b-4119-2a3f-eed6-7fed0fe825ed@oracle.com> References: <5bbd4b3b-4119-2a3f-eed6-7fed0fe825ed@oracle.com> Message-ID: <1e6092a8-6149-c9c6-2646-3714e6394029@oracle.com> Looks good to me. Minor point: src/share/vm/runtime/fieldType.cpp: 77 static const char dvt_postfix[] = "$Value"; 78 static const int dvt_postfix_len = 6; Could we have an assert somewhere checking that dvt_postfix_len matches the dvt_postfix string? Just in case someone update the string without changing the len. Fred On 09/12/2017 05:38 AM, David Simms wrote: > Greetings, > > Here's a patch containing further testing, and fix for MVT loading of VM > derived value type class, even before touching its Value Capable Class. > Throws correct exception according to draft spec (ICCE when VCC rules > broken etc, http://cr.openjdk.java.net/~dlsmith/values.html#values-5.3) > > Bug: https://bugs.openjdk.java.net/browse/JDK-8184919 > > Webrev: http://cr.openjdk.java.net/~dsimms/valhalla/8184919/webrev0/ > > > Cheers > > /David Simms > From forax at univ-mlv.fr Tue Sep 12 21:16:34 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Tue, 12 Sep 2017 23:16:34 +0200 (CEST) Subject: RFR (S): [MVT] Ensure JVMS spec rules for creation and loading of DVT are followed In-Reply-To: <5bbd4b3b-4119-2a3f-eed6-7fed0fe825ed@oracle.com> References: <5bbd4b3b-4119-2a3f-eed6-7fed0fe825ed@oracle.com> Message-ID: <772611465.1352278.1505250994364.JavaMail.zimbra@u-pem.fr> I've applied the patch, and it fixes the bug in my test cases. So good for me :) cheers, R?mi ----- Mail original ----- > De: "David Simms" > ?: "valhalla-dev" > Envoy?: Mardi 12 Septembre 2017 11:38:32 > Objet: RFR (S): [MVT] Ensure JVMS spec rules for creation and loading of DVT are followed > Greetings, > > Here's a patch containing further testing, and fix for MVT loading of VM > derived value type class, even before touching its Value Capable Class. > Throws correct exception according to draft spec (ICCE when VCC rules > broken etc, http://cr.openjdk.java.net/~dlsmith/values.html#values-5.3) > > Bug: https://bugs.openjdk.java.net/browse/JDK-8184919 > > Webrev: http://cr.openjdk.java.net/~dsimms/valhalla/8184919/webrev0/ > > > Cheers > > /David Simms From david.simms at oracle.com Wed Sep 13 09:32:44 2017 From: david.simms at oracle.com (David Simms) Date: Wed, 13 Sep 2017 11:32:44 +0200 Subject: RFR (S): [MVT] Ensure JVMS spec rules for creation and loading of DVT are followed In-Reply-To: <1e6092a8-6149-c9c6-2646-3714e6394029@oracle.com> References: <5bbd4b3b-4119-2a3f-eed6-7fed0fe825ed@oracle.com> <1e6092a8-6149-c9c6-2646-3714e6394029@oracle.com> Message-ID: <76ddb110-feae-0526-e838-67d0a9a2b258@oracle.com> On 12/09/17 19:37, Frederic Parain wrote: > Looks good to me. > > Minor point: > src/share/vm/runtime/fieldType.cpp: > > 77 static const char dvt_postfix[] = "$Value"; > 78 static const int dvt_postfix_len = 6; > > Could we have an assert somewhere checking that dvt_postfix_len > matches the dvt_postfix string? Just in case someone update the > string without changing the len. > > Fred Added debug assert...cheers, thanks for looking at this /David Simms From david.simms at oracle.com Wed Sep 13 09:40:01 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Wed, 13 Sep 2017 09:40:01 +0000 Subject: hg: valhalla/valhalla/hotspot: 8184919: Ensure JVMS spec rules for creation and loading of DVT are followed Message-ID: <201709130940.v8D9e2SC022717@aojmv0008.oracle.com> Changeset: 5e389fdf564c Author: dsimms Date: 2017-09-13 11:37 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/5e389fdf564c 8184919: Ensure JVMS spec rules for creation and loading of DVT are followed Summary: Attempt to resolve DVT if MVT enabled and name matches mangling Reviewed-by: fparain, mcimadamore ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/runtime/fieldType.cpp ! src/share/vm/runtime/fieldType.hpp ! test/runtime/valhalla/valuetypes/DeriveValueTypeCreation.java From tobias.hartmann at oracle.com Wed Sep 13 13:20:37 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Wed, 13 Sep 2017 15:20:37 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields Message-ID: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> Hi, please review the following patch: https://bugs.openjdk.java.net/browse/JDK-8185556 http://cr.openjdk.java.net/~thartmann/8185556/webrev.00/ This change adds C2 support for non-flattened value type fields: - when loading a non-flattened field, C2 now emits a null check and either uses the default value type or loads the value type from the oop - we currently do *not* initialize the field if it's null - most changes are in valuetypenode.cpp but since we now need to forward-propagate control after the null check, I had to update all user code as well - no more code duplication in ValueType allocate and store methods - had to change IdealKit and GraphKit to work after parsing to support optimizations in CheckCastPPNode::Ideal - lots of refactoring and cleanups - greatly improved the ValueTypeTestBench and found/fixed lots of bugs in the process (see below for details) This change is based on interpreter support which was not yet integrated. Here is a detailed explanation of all other (non-trivial) changes: ciInstanceKlass.cpp - moved _nof_declared_nonstatic_fields into ciValueKlass.cpp ciValueKlass.cpp - got completely rid of _field_index_map by using a _declared_nonstatic_fields array - replaced wrapper methods by direct field array access and did lots of refactoring callGenerator.cpp - line 529: we need to check for return_type->is__Value() in the else branch because call->_tf might have been updated in CastPPNode::Ideal to a different type castnode.cpp - changed CheckCastPPNode::Ideal to use GraphKit for value type allocation and initialization because we need to emit GC barriers and complex control flow with non-flattened value type fields (and oop fields) - accomplished this by small changes to the GraphKit to work with IGVN (see below) and building re-building the JVMState from the call - changing "hook code" to detach and re-attach user nodes instead of new nodes was necessary to work with GraphKit and also simplified the code cfgnode.cpp - the PhiNode may merge different pointer types, we need to cast the type to BOTTOM - to avoid an endless loop, we need to bail out in case of a constant Phi input escape.cpp - the tagged klass was recently updated to use a TypeRawPtr (see ValueTypeNode::tagged_klass()) but the code in line 3186 was not updated graphKit.cpp - allowing to use the graphKit after parsing with IGVN - avoid uncommon trap when reading an uninitialized non-flattened value type field - changed code in GraphKit::set_results_for_java_call to execute make_slow_call_ex first to get right control edge when null-checking non-flattened value type fields graphKit.hpp - Added verification code to prevent worklist inconsistencies when using IGVN in GraphKit during incremental inlining loopopts.cpp - disabled workaround for JDK-8186716 [1] that avoids the assert but generates very inefficient code macro.cpp - line 2768: fix for "only applicable to compressed klass pointers" assert in oopDesc::klass_gap_offset_in_bytes() parse1.cpp - If we return from root in Parse::return_current, we need to make sure that all non-flattened value type fields are allocated phaseX.cpp - If we use the GraphKit with IGVN and _delay_transform, we may transform the same node multiple times. Don't use register_new_node_with_optimizer because it tries to set the type multiple times. type.cpp - support arrays for T_VALUETYPEPTR were not initialized - we need to use BOTTOM type for non-flattened value type fields in in collect_value_fields - in with_field_offset_and_offset we need to handle AddPNodes with an offset pointing to the beginning of the flattened value type array element (i.e., not pointing to a field) - TypeValueTypePtr should not define empty() as false valuetypenode.cpp - make_scalar_in_safepoint now supports non-flattened, non-allocated value type fields by maintaining a worklist and adding SafePointScalarObjectNodes "recursively" - added code to ValueTypeNode::make to update/propagate control for null checking non-flattened fields - GVN version of ValueTypeBaseNode::store did not support oop fields (no GC barriers) - completely removed the GVN version of ValueTypeBaseNode::allocate and ValueTypeBaseNode::store. We are now using the GraphKit version that correctly emits GC barriers and makes it easier to propagate the JVMState sharedRuntime.cpp - Skip assert if code is executed from compiler thread to avoid class loading assert globalDefinitions.hpp - T_VALUETYPEPTR_aelem_bytes was wrong ValueTypeTestBench.java - more runs with different flag combinations to increase coverage - added MyValue2Inline and MyValue3Inline to increase nesting of value types - marked slow tests with @Slow - we now have the following configuration switches -DSkipSlow=true: Skip all tests marked with @Slow -DVerifyIR=true: Enable C2 IR verification -DVerifyVM=true: Enable additional verification flags defined in 'verifyFlags' -DTestlist=test1,test2: Only execute the specified tests -DPrintTimes: measure and print execution time of tests -DWarmup=X: set number of warmup iterations to X - IR verification is currently disabled for the runs without field flattening - Added -XX:ValueTypesBufferMaxMemory=0 to work around interpreter buffering bugs All tests pass. Thanks, Tobias [1] https://bugs.openjdk.java.net/browse/JDK-8186716 From frederic.parain at oracle.com Wed Sep 13 19:30:34 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Wed, 13 Sep 2017 15:30:34 -0400 Subject: RFR(M): Interpreter cleanup Message-ID: <34B1938B-E0F9-428D-BF41-20A633F75E6B@oracle.com> Greetings, Please review this changeset improving interpreter performances, fixing a naked oop, and temporarily disabling value buffering: http://cr.openjdk.java.net/~fparain/interpreter_cleanup/webrev.00/index.html Thank you, Fred From frederic.parain at oracle.com Wed Sep 13 19:41:08 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Wed, 13 Sep 2017 15:41:08 -0400 Subject: RFR(M): optional flattening - interpreter/runtime part Message-ID: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> Greetings, Please review this changeset implementing optional field flattening in the interpreter and the runtime. The support for C2 is provided by Tobias in a separate changeset. http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.00/index.html Note that trying to run some programs/tests with this changeset and not Tobias? changeset is likely to cause crashes unless interpreted mode is forced and passing/returning values in registers is disabled. Thank you, Fred From karen.kinnear at oracle.com Thu Sep 14 02:15:08 2017 From: karen.kinnear at oracle.com (Karen Kinnear) Date: Wed, 13 Sep 2017 22:15:08 -0400 Subject: [Nestmates] RFR: 8187360) [Nestmates] Remove invokespecial changes In-Reply-To: <47fedfe3-841f-d426-e136-5f59cc325330@oracle.com> References: <54e622fa-a370-9101-5f44-38c86119fee7@oracle.com> <47fedfe3-841f-d426-e136-5f59cc325330@oracle.com> Message-ID: Would it work for you to make a single webrev from the current state of your nest mate repo relative to the parent? I am trying to review relative to the spec and found this changeset and the last one, but not the one before. That would it make it much easier for me to review all together. thanks very much, Karen > On Sep 10, 2017, at 10:15 PM, David Holmes wrote: > > On 8/09/2017 4:20 PM, David Holmes wrote: >> webrev: http://cr.openjdk.java.net/~dholmes/8187360/webrev/ > > I was asked for a webrev showing diffs to jdk10/hs code to confirm things were reverted correctly: > > http://cr.openjdk.java.net/~dholmes/8187360/webrev.jdk10/ > > The changes to verifier.cpp are indentation only. > > Thanks, > David > >> The initial proposal was extending the use of invokespecial to allow it to be used for private nestmate method invocations. To support that changes had to be made to the verifier. After JVMLS it was decided that we would use invokevirtual and invokeinterface (as appropriate) as the specification changes needed are much simpler. The switch to that approach was done under JDK-8187221 and JDK-8186763. Now we can remove the invokespecial changes that were initially put in place. >> Thanks, >> David From david.holmes at oracle.com Thu Sep 14 04:52:46 2017 From: david.holmes at oracle.com (David Holmes) Date: Thu, 14 Sep 2017 14:52:46 +1000 Subject: [Nestmates] RFR: 8187360) [Nestmates] Remove invokespecial changes In-Reply-To: References: <54e622fa-a370-9101-5f44-38c86119fee7@oracle.com> <47fedfe3-841f-d426-e136-5f59cc325330@oracle.com> Message-ID: <82bdcc06-2f61-3e60-86fb-ae68e2f1da32@oracle.com> On 14/09/2017 12:15 PM, Karen Kinnear wrote: > Would it work for you to make a single webrev from the current state of your nest mate repo relative > to the parent? I am trying to review relative to the spec and found this changeset and the last one, but > not the one before. Sorry Karen but I don't seem to be able to do that. For whatever reason "webrev -r default" shows me only changes that are not the nestmate ones. ?? (Have I mentioned that I loath working with branches :( ) I added changeset links to all of the bugs for which I've pushed changes. David > That would it make it much easier for me to review all together. > > thanks very much, > Karen > >> On Sep 10, 2017, at 10:15 PM, David Holmes wrote: >> >> On 8/09/2017 4:20 PM, David Holmes wrote: >>> webrev: http://cr.openjdk.java.net/~dholmes/8187360/webrev/ >> >> I was asked for a webrev showing diffs to jdk10/hs code to confirm things were reverted correctly: >> >> http://cr.openjdk.java.net/~dholmes/8187360/webrev.jdk10/ >> >> The changes to verifier.cpp are indentation only. >> >> Thanks, >> David >> >>> The initial proposal was extending the use of invokespecial to allow it to be used for private nestmate method invocations. To support that changes had to be made to the verifier. After JVMLS it was decided that we would use invokevirtual and invokeinterface (as appropriate) as the specification changes needed are much simpler. The switch to that approach was done under JDK-8187221 and JDK-8186763. Now we can remove the invokespecial changes that were initially put in place. >>> Thanks, >>> David > From tobias.hartmann at oracle.com Thu Sep 14 07:46:35 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Thu, 14 Sep 2017 09:46:35 +0200 Subject: RFR(M): optional flattening - interpreter/runtime part In-Reply-To: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> References: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> Message-ID: <72b8d1d1-153f-0ef5-5c3c-46411bde7ab5@oracle.com> Hi Fred, there seems to be a problem with the field layout: compiler.valhalla.valuetypes.MyValue1: field layout @ 16 --- instance fields start --- @ 24 "x" I @ 16 "y" J @ 32 "z" S @ 40 "o" Ljava.lang.Integer; @ 48 "oa" [I @ 56 "v1" Qcompiler.valhalla.valuetypes.MyValue2; @ 64 "v2" Qcompiler.valhalla.valuetypes.MyValue2; @ 28 "c" I @ 56 --- instance fields end --- @ 56 --- instance ends --- @176 --- static fields start --- @192 "s" I @184 "sf" J @176 "v3" Qcompiler.valhalla.valuetypes.MyValue2; @200 --- static fields end --- OopMapBlocks: 1 / 4 Offset: 40 - 64 Count: 4 "instance fields end" points to offset 56 which is not correct because the non-flattened field v2 is at offset 64. Thanks, Tobias On 13.09.2017 21:41, Frederic Parain wrote: > Greetings, > > Please review this changeset implementing optional field flattening > in the interpreter and the runtime. The support for C2 is provided by > Tobias in a separate changeset. > > http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.00/index.html > > Note that trying to run some programs/tests with this changeset and > not Tobias? changeset is likely to cause crashes unless interpreted mode > is forced and passing/returning values in registers is disabled. > > Thank you, > > Fred > From david.simms at oracle.com Thu Sep 14 11:33:25 2017 From: david.simms at oracle.com (David Simms) Date: Thu, 14 Sep 2017 13:33:25 +0200 Subject: RFR(M): Interpreter cleanup In-Reply-To: <34B1938B-E0F9-428D-BF41-20A633F75E6B@oracle.com> References: <34B1938B-E0F9-428D-BF41-20A633F75E6B@oracle.com> Message-ID: <0808163a-c932-a88b-889c-7669e1ca5343@oracle.com> Assuming all tests pass, looks good Thanks Frederic /David Simms On 13/09/17 21:30, Frederic Parain wrote: > Greetings, > > Please review this changeset improving interpreter performances, fixing > a naked oop, and temporarily disabling value buffering: > > http://cr.openjdk.java.net/~fparain/interpreter_cleanup/webrev.00/index.html > > Thank you, > > Fred > > From karen.kinnear at oracle.com Thu Sep 14 12:27:50 2017 From: karen.kinnear at oracle.com (Karen Kinnear) Date: Thu, 14 Sep 2017 08:27:50 -0400 Subject: [Nestmates] RFR: 8187360) [Nestmates] Remove invokespecial changes In-Reply-To: <82bdcc06-2f61-3e60-86fb-ae68e2f1da32@oracle.com> References: <54e622fa-a370-9101-5f44-38c86119fee7@oracle.com> <47fedfe3-841f-d426-e136-5f59cc325330@oracle.com> <82bdcc06-2f61-3e60-86fb-ae68e2f1da32@oracle.com> Message-ID: Thank you. Possible to get the big numbers? Thanks, Karen > On Sep 14, 2017, at 12:52 AM, David Holmes wrote: > >> On 14/09/2017 12:15 PM, Karen Kinnear wrote: >> Would it work for you to make a single webrev from the current state of your nest mate repo relative >> to the parent? I am trying to review relative to the spec and found this changeset and the last one, but >> not the one before. > > Sorry Karen but I don't seem to be able to do that. For whatever reason "webrev -r default" shows me only changes that are not the nestmate ones. ?? (Have I mentioned that I loath working with branches :( ) > > I added changeset links to all of the bugs for which I've pushed changes. > > David > >> That would it make it much easier for me to review all together. >> thanks very much, >> Karen >>> On Sep 10, 2017, at 10:15 PM, David Holmes wrote: >>> >>> On 8/09/2017 4:20 PM, David Holmes wrote: >>>> webrev: http://cr.openjdk.java.net/~dholmes/8187360/webrev/ >>> >>> I was asked for a webrev showing diffs to jdk10/hs code to confirm things were reverted correctly: >>> >>> http://cr.openjdk.java.net/~dholmes/8187360/webrev.jdk10/ >>> >>> The changes to verifier.cpp are indentation only. >>> >>> Thanks, >>> David >>> >>>> The initial proposal was extending the use of invokespecial to allow it to be used for private nestmate method invocations. To support that changes had to be made to the verifier. After JVMLS it was decided that we would use invokevirtual and invokeinterface (as appropriate) as the specification changes needed are much simpler. The switch to that approach was done under JDK-8187221 and JDK-8186763. Now we can remove the invokespecial changes that were initially put in place. >>>> Thanks, >>>> David From david.holmes at oracle.com Thu Sep 14 12:45:32 2017 From: david.holmes at oracle.com (David Holmes) Date: Thu, 14 Sep 2017 22:45:32 +1000 Subject: [Nestmates] RFR: 8187360) [Nestmates] Remove invokespecial changes In-Reply-To: References: <54e622fa-a370-9101-5f44-38c86119fee7@oracle.com> <47fedfe3-841f-d426-e136-5f59cc325330@oracle.com> <82bdcc06-2f61-3e60-86fb-ae68e2f1da32@oracle.com> Message-ID: <9fb134ea-e7dc-8131-660a-681271970bc0@oracle.com> On 14/09/2017 10:27 PM, Karen Kinnear wrote: > Thank you. Possible to get the big numbers? Bug numbers? :) Sure. 8187360: [Nestmates] Remove invokespecial changes 8187221: [Nestmates] Virtual invocation for private interface methods 8186763: Nestmate update for lazy validation and virtual invocation David > Thanks, > Karen > >> On Sep 14, 2017, at 12:52 AM, David Holmes wrote: >> >>> On 14/09/2017 12:15 PM, Karen Kinnear wrote: >>> Would it work for you to make a single webrev from the current state of your nest mate repo relative >>> to the parent? I am trying to review relative to the spec and found this changeset and the last one, but >>> not the one before. >> >> Sorry Karen but I don't seem to be able to do that. For whatever reason "webrev -r default" shows me only changes that are not the nestmate ones. ?? (Have I mentioned that I loath working with branches :( ) >> >> I added changeset links to all of the bugs for which I've pushed changes. >> >> David >> >>> That would it make it much easier for me to review all together. >>> thanks very much, >>> Karen >>>> On Sep 10, 2017, at 10:15 PM, David Holmes wrote: >>>> >>>> On 8/09/2017 4:20 PM, David Holmes wrote: >>>>> webrev: http://cr.openjdk.java.net/~dholmes/8187360/webrev/ >>>> >>>> I was asked for a webrev showing diffs to jdk10/hs code to confirm things were reverted correctly: >>>> >>>> http://cr.openjdk.java.net/~dholmes/8187360/webrev.jdk10/ >>>> >>>> The changes to verifier.cpp are indentation only. >>>> >>>> Thanks, >>>> David >>>> >>>>> The initial proposal was extending the use of invokespecial to allow it to be used for private nestmate method invocations. To support that changes had to be made to the verifier. After JVMLS it was decided that we would use invokevirtual and invokeinterface (as appropriate) as the specification changes needed are much simpler. The switch to that approach was done under JDK-8187221 and JDK-8186763. Now we can remove the invokespecial changes that were initially put in place. >>>>> Thanks, >>>>> David > From karen.kinnear at oracle.com Thu Sep 14 13:06:01 2017 From: karen.kinnear at oracle.com (Karen Kinnear) Date: Thu, 14 Sep 2017 09:06:01 -0400 Subject: [Nestmates] RFR: 8187360) [Nestmates] Remove invokespecial changes In-Reply-To: <9fb134ea-e7dc-8131-660a-681271970bc0@oracle.com> References: <54e622fa-a370-9101-5f44-38c86119fee7@oracle.com> <47fedfe3-841f-d426-e136-5f59cc325330@oracle.com> <82bdcc06-2f61-3e60-86fb-ae68e2f1da32@oracle.com> <9fb134ea-e7dc-8131-660a-681271970bc0@oracle.com> Message-ID: <071681AB-CE1E-4DBD-91D2-3CB31CB8E7FF@oracle.com> Thanks. That is just what I needed > On Sep 14, 2017, at 8:45 AM, David Holmes wrote: > >> On 14/09/2017 10:27 PM, Karen Kinnear wrote: >> Thank you. Possible to get the big numbers? > > Bug numbers? :) Sure. > > 8187360: [Nestmates] Remove invokespecial changes > 8187221: [Nestmates] Virtual invocation for private interface methods > 8186763: Nestmate update for lazy validation and virtual invocation > > David > >> Thanks, >> Karen >>>> On Sep 14, 2017, at 12:52 AM, David Holmes wrote: >>>> >>>> On 14/09/2017 12:15 PM, Karen Kinnear wrote: >>>> Would it work for you to make a single webrev from the current state of your nest mate repo relative >>>> to the parent? I am trying to review relative to the spec and found this changeset and the last one, but >>>> not the one before. >>> >>> Sorry Karen but I don't seem to be able to do that. For whatever reason "webrev -r default" shows me only changes that are not the nestmate ones. ?? (Have I mentioned that I loath working with branches :( ) >>> >>> I added changeset links to all of the bugs for which I've pushed changes. >>> >>> David >>> >>>> That would it make it much easier for me to review all together. >>>> thanks very much, >>>> Karen >>>>> On Sep 10, 2017, at 10:15 PM, David Holmes wrote: >>>>> >>>>> On 8/09/2017 4:20 PM, David Holmes wrote: >>>>>> webrev: http://cr.openjdk.java.net/~dholmes/8187360/webrev/ >>>>> >>>>> I was asked for a webrev showing diffs to jdk10/hs code to confirm things were reverted correctly: >>>>> >>>>> http://cr.openjdk.java.net/~dholmes/8187360/webrev.jdk10/ >>>>> >>>>> The changes to verifier.cpp are indentation only. >>>>> >>>>> Thanks, >>>>> David >>>>> >>>>>> The initial proposal was extending the use of invokespecial to allow it to be used for private nestmate method invocations. To support that changes had to be made to the verifier. After JVMLS it was decided that we would use invokevirtual and invokeinterface (as appropriate) as the specification changes needed are much simpler. The switch to that approach was done under JDK-8187221 and JDK-8186763. Now we can remove the invokespecial changes that were initially put in place. >>>>>> Thanks, >>>>>> David From frederic.parain at oracle.com Thu Sep 14 14:50:43 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Thu, 14 Sep 2017 10:50:43 -0400 Subject: RFR(M): optional flattening - interpreter/runtime part In-Reply-To: <72b8d1d1-153f-0ef5-5c3c-46411bde7ab5@oracle.com> References: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> <72b8d1d1-153f-0ef5-5c3c-46411bde7ab5@oracle.com> Message-ID: <0F3D3B61-F3F6-4AE2-9BD6-0ACEDA5D7C84@oracle.com> Tobias, Thank you for catching that. There?s a bug in the layout computation, optional flattening code moves non-flattened values from the value types section of the layout to the nonstatic_oop section, but the size of the later was not updated accordingly. Here?s an updated webrev fixing this issue: http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.01/index.html Regards, Fred > On Sep 14, 2017, at 03:46, Tobias Hartmann wrote: > > Hi Fred, > > there seems to be a problem with the field layout: > > compiler.valhalla.valuetypes.MyValue1: field layout > @ 16 --- instance fields start --- > @ 24 "x" I > @ 16 "y" J > @ 32 "z" S > @ 40 "o" Ljava.lang.Integer; > @ 48 "oa" [I > @ 56 "v1" Qcompiler.valhalla.valuetypes.MyValue2; > @ 64 "v2" Qcompiler.valhalla.valuetypes.MyValue2; > @ 28 "c" I > @ 56 --- instance fields end --- > @ 56 --- instance ends --- > @176 --- static fields start --- > @192 "s" I > @184 "sf" J > @176 "v3" Qcompiler.valhalla.valuetypes.MyValue2; > @200 --- static fields end --- > > OopMapBlocks: 1 / 4 > Offset: 40 - 64 Count: 4 > > "instance fields end" points to offset 56 which is not correct because the non-flattened field v2 is at offset 64. > > Thanks, > Tobias > > On 13.09.2017 21:41, Frederic Parain wrote: >> Greetings, >> Please review this changeset implementing optional field flattening >> in the interpreter and the runtime. The support for C2 is provided by >> Tobias in a separate changeset. >> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.00/index.html >> Note that trying to run some programs/tests with this changeset and >> not Tobias? changeset is likely to cause crashes unless interpreted mode >> is forced and passing/returning values in registers is disabled. >> Thank you, >> Fred From frederic.parain at oracle.com Thu Sep 14 14:52:28 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Thu, 14 Sep 2017 10:52:28 -0400 Subject: RFR(M): optional flattening - interpreter/runtime part In-Reply-To: <0F3D3B61-F3F6-4AE2-9BD6-0ACEDA5D7C84@oracle.com> References: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> <72b8d1d1-153f-0ef5-5c3c-46411bde7ab5@oracle.com> <0F3D3B61-F3F6-4AE2-9BD6-0ACEDA5D7C84@oracle.com> Message-ID: <4B741CDE-A404-4E8F-A66B-819F6DD631EF@oracle.com> Here?s the layouts with the fix: java.lang.__Value: field layout @ 16 --- instance fields start --- @ 16 --- instance fields end --- @ 16 --- instance ends --- @112 --- static fields start --- @112 --- static fields end --- OopMapBlocks: 0 / 0 compiler.valhalla.valuetypes.MyValue2: field layout @ 16 --- instance fields start --- @ 24 "x" I @ 28 "y" B @ 29 "b" Z @ 16 "c" J @ 32 --- instance fields end --- @ 32 --- instance ends --- @112 --- static fields start --- @112 --- static fields end --- OopMapBlocks: 0 / 0 compiler.valhalla.valuetypes.MyValue1: field layout @ 16 --- instance fields start --- @ 24 "x" I @ 16 "y" J @ 32 "z" S @ 36 "o" Ljava.lang.Integer; @ 40 "oa" [I @ 44 "v1" Qcompiler.valhalla.valuetypes.MyValue2; @ 48 "v2" Qcompiler.valhalla.valuetypes.MyValue2; @ 28 "c" I @ 56 --- instance fields end --- @ 56 --- instance ends --- @112 --- static fields start --- @128 "s" I @120 "sf" J @112 "v3" Qcompiler.valhalla.valuetypes.MyValue2; @136 --- static fields end --- OopMapBlocks: 1 / 4 Offset: 36 - 48 Count: 4 compiler.valhalla.valuetypes.MyValue3: field layout @ 16 --- instance fields start --- @ 76 "c" C @ 80 "bb" B @ 78 "s" S @ 56 "i" I @ 16 "l" J @ 84 "o" Ljava.lang.Object; @ 60 "f1" F @ 24 "f2" D @ 64 "f3" F @ 32 "f4" D @ 68 "f5" F @ 40 "f6" D @ 72 "f7" F @ 48 "f8" D @ 88 --- instance fields end --- @ 88 --- instance ends --- @112 --- static fields start --- @112 --- static fields end --- OopMapBlocks: 1 / 1 Offset: 84 - 84 Count: 1 compiler.valhalla.valuetypes.MyValue4: field layout @ 16 --- instance fields start --- @ 16 "v1" Qcompiler.valhalla.valuetypes.MyValue3; @ 20 "v2" Qcompiler.valhalla.valuetypes.MyValue3; @ 24 --- instance fields end --- @ 24 --- instance ends --- @112 --- static fields start --- @112 --- static fields end --- OopMapBlocks: 1 / 2 Offset: 16 - 20 Count: 2 compiler.valhalla.valuetypes.ValueCapableClass1$Value: field layout @ 16 --- instance fields start --- @ 16 "t" J @ 24 "x" I @ 28 "y" S @ 30 "z" S @ 32 --- instance fields end --- @ 32 --- instance ends --- @112 --- static fields start --- @112 --- static fields end --- OopMapBlocks: 0 / 0 For random generator using seed: 1551026262373040118 To re-run test with same seed value please add "-Djdk.test.lib.random.seed=1551026262373040118" to command line. compiler.valhalla.valuetypes.ValueCapableClass2$Value: field layout @ 16 --- instance fields start --- @ 16 "u" J @ 24 --- instance fields end --- @ 24 --- instance ends --- @112 --- static fields start --- @112 --- static fields end --- OopMapBlocks: 0 / 0 Fred > On Sep 14, 2017, at 10:50, Frederic Parain wrote: > > Tobias, > > Thank you for catching that. > > There?s a bug in the layout computation, optional flattening code moves non-flattened > values from the value types section of the layout to the nonstatic_oop section, but the size > of the later was not updated accordingly. > > Here?s an updated webrev fixing this issue: > > http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.01/index.html > > Regards, > > Fred > >> On Sep 14, 2017, at 03:46, Tobias Hartmann wrote: >> >> Hi Fred, >> >> there seems to be a problem with the field layout: >> >> compiler.valhalla.valuetypes.MyValue1: field layout >> @ 16 --- instance fields start --- >> @ 24 "x" I >> @ 16 "y" J >> @ 32 "z" S >> @ 40 "o" Ljava.lang.Integer; >> @ 48 "oa" [I >> @ 56 "v1" Qcompiler.valhalla.valuetypes.MyValue2; >> @ 64 "v2" Qcompiler.valhalla.valuetypes.MyValue2; >> @ 28 "c" I >> @ 56 --- instance fields end --- >> @ 56 --- instance ends --- >> @176 --- static fields start --- >> @192 "s" I >> @184 "sf" J >> @176 "v3" Qcompiler.valhalla.valuetypes.MyValue2; >> @200 --- static fields end --- >> >> OopMapBlocks: 1 / 4 >> Offset: 40 - 64 Count: 4 >> >> "instance fields end" points to offset 56 which is not correct because the non-flattened field v2 is at offset 64. >> >> Thanks, >> Tobias >> >> On 13.09.2017 21:41, Frederic Parain wrote: >>> Greetings, >>> Please review this changeset implementing optional field flattening >>> in the interpreter and the runtime. The support for C2 is provided by >>> Tobias in a separate changeset. >>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.00/index.html >>> Note that trying to run some programs/tests with this changeset and >>> not Tobias? changeset is likely to cause crashes unless interpreted mode >>> is forced and passing/returning values in registers is disabled. >>> Thank you, >>> Fred > From tobias.hartmann at oracle.com Thu Sep 14 15:03:06 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Thu, 14 Sep 2017 17:03:06 +0200 Subject: RFR(M): optional flattening - interpreter/runtime part In-Reply-To: <0F3D3B61-F3F6-4AE2-9BD6-0ACEDA5D7C84@oracle.com> References: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> <72b8d1d1-153f-0ef5-5c3c-46411bde7ab5@oracle.com> <0F3D3B61-F3F6-4AE2-9BD6-0ACEDA5D7C84@oracle.com> Message-ID: <90ff5c9a-7b37-ebbf-4193-bfd301d63944@oracle.com> Hi Fred, I've just verified that the problem is solved with your latest webrev! Thanks, Tobias On 14.09.2017 16:50, Frederic Parain wrote: > Tobias, > > Thank you for catching that. > > There?s a bug in the layout computation, optional flattening code moves non-flattened > values from the value types section of the layout to the nonstatic_oop section, but the size > of the later was not updated accordingly. > > Here?s an updated webrev fixing this issue: > > http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.01/index.html > > Regards, > > Fred > >> On Sep 14, 2017, at 03:46, Tobias Hartmann wrote: >> >> Hi Fred, >> >> there seems to be a problem with the field layout: >> >> compiler.valhalla.valuetypes.MyValue1: field layout >> @ 16 --- instance fields start --- >> @ 24 "x" I >> @ 16 "y" J >> @ 32 "z" S >> @ 40 "o" Ljava.lang.Integer; >> @ 48 "oa" [I >> @ 56 "v1" Qcompiler.valhalla.valuetypes.MyValue2; >> @ 64 "v2" Qcompiler.valhalla.valuetypes.MyValue2; >> @ 28 "c" I >> @ 56 --- instance fields end --- >> @ 56 --- instance ends --- >> @176 --- static fields start --- >> @192 "s" I >> @184 "sf" J >> @176 "v3" Qcompiler.valhalla.valuetypes.MyValue2; >> @200 --- static fields end --- >> >> OopMapBlocks: 1 / 4 >> Offset: 40 - 64 Count: 4 >> >> "instance fields end" points to offset 56 which is not correct because the non-flattened field v2 is at offset 64. >> >> Thanks, >> Tobias >> >> On 13.09.2017 21:41, Frederic Parain wrote: >>> Greetings, >>> Please review this changeset implementing optional field flattening >>> in the interpreter and the runtime. The support for C2 is provided by >>> Tobias in a separate changeset. >>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.00/index.html >>> Note that trying to run some programs/tests with this changeset and >>> not Tobias? changeset is likely to cause crashes unless interpreted mode >>> is forced and passing/returning values in registers is disabled. >>> Thank you, >>> Fred > From david.holmes at oracle.com Fri Sep 15 05:51:44 2017 From: david.holmes at oracle.com (David Holmes) Date: Fri, 15 Sep 2017 15:51:44 +1000 Subject: [Nestmates] RFR: 8187536: [Nestmates] Assertion failure when the compiler thread appears to trigger classloading Message-ID: <82880a83-1342-a4cc-3144-ca42dfafdee9@oracle.com> bug: https://bugs.openjdk.java.net/browse/JDK-8187536 webrev: http://cr.openjdk.java.net/~dholmes/8187536/webrev/ The compiler thread can hit a path that requires method resolution, which leads to an access check, which leads to a nestmate access check, which triggers the resolving (and possibly loading) of the nest-top class. That hit an assert at the top of the class-loading code in SystemDictionary::resolve_or_null. In most cases the nest-top class is already loaded, it just hasn't been resolved into the nest-top field of the nestmate being checked, so there is no requirement to abort when a compiler thread takes this initial path. This partial solution pushes the assertion deeper into the classloading mechanics to point where it is more likely that classloading actually may have to occur. This general issue needs closer examination as it may be that there can still be cases in which we actually do have to load a nest-top class, and the compiler thread must not cause an abort in that case, but potentially bail-out of compilation temporarily so the loading can be done in the interpreter. The current fix removes a roadblock to being able to build the JDK with the new nestmate logic enabled permanently. The run of a single test using -Xcomp is enough to validate the fix for now. Thanks, David ----- From mandy.chung at oracle.com Fri Sep 15 06:02:37 2017 From: mandy.chung at oracle.com (mandy chung) Date: Thu, 14 Sep 2017 23:02:37 -0700 Subject: Review Request for MVT incubator module Message-ID: Webrev: ?? http://cr.openjdk.java.net/~mchung/valhalla/webrevs/incubator/ This patch proposes to define an incubator module [1] for MVT, named `jdk.incubator.mvt`.? Specifically this movesjvm.internal.value.ValueCapableClass and jdk.experimental.value.ValueType APIto a new jdk.incubator.mvt package. -XX:+EnableMVT continues to be the runtime option to enable MVT.? I have changed the runtime to add jdk.incubator.mvt when MVT is enabled.? For compile-time, compiling @VCC classes would require to run javac with `--add-modules jdk.incubator.mvt` as incubator modules are not resolved by default. A couple points worth mentioning: java.base can't reference @VCC and ValueType class statically since they are now in a different module. In addition, @VCC can only be loaded after startup asVM startup can only load classes in java.base. jdk.incubator.mvtis defined by the platform loader (as we want it to be deprivileged for security reason) and so Class.forName to find classes in jdk.incubator.module should use the right loader. jdk.incubator.mvt.ValueType is basically a wrapper around the internal ValueTypeHolder class that is what java.base references in the implementation.? MethodHandleBuilder is kept as internal API for now.? I leave it as a future exercise if we decide to expose that API in the incubator module. The tests are updated with @modules jdk.incubator.mvt or add access to jdk.experimental I temporarily downgrade the javac incubating module warning to a note so that -Werror has no effect. We will need to revisit this warning in JDK 10. thanks Mandy [1] http://openjdk.java.net/jeps/11 From david.holmes at oracle.com Fri Sep 15 07:12:13 2017 From: david.holmes at oracle.com (David Holmes) Date: Fri, 15 Sep 2017 17:12:13 +1000 Subject: [Nestmates] RFR 8187567: [Nestmates] Enable nestmate changes in javac by default Message-ID: bug: https://bugs.openjdk.java.net/browse/JDK-8187567 webrev**: http://cr.openjdk.java.net/~dholmes/8187567/ ** test/runtime/Nestmates/privateConstructors/TestInvokeSpecial.java contains additional changes for 8187536. They will be checked in separately. While nestmates will ultimately be associated with a future source/target version of the JDK and an updated classfile version (see JDK-8187302) we want to be able to enable them by default as-if executing in that future release. The primary changes are confined to javac and are very straight-forward: - generate the nestmate attributes in the classfile - use virtual invocation bytecodes for private method invocations - don't generate private accessors With this change in place we can update the hotspot nestmate tests to not provide explicit "@compile" directives. We also add a test to verify that invokeinterface is rejected for private interface methods in pre-nestmate classfile versions (v52 works fine for this). We can now build the JDK with the new nestmate features enabled, and run tests without needing to provide additional javac options. I also added a missing testcase in test/runtime/Nestmates/privateMethods/TestInvoke.java (just to ensure there's no unexpected difference with this$0 usage). Thanks, David From maurizio.cimadamore at oracle.com Fri Sep 15 08:15:52 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 15 Sep 2017 09:15:52 +0100 Subject: [Nestmates] RFR 8187567: [Nestmates] Enable nestmate changes in javac by default In-Reply-To: References: Message-ID: <3e9091b9-f52c-4180-f787-f3d3e4b65b2b@oracle.com> Looks great. The only thing we might need (not now, maybe later) is a 'reverse' javac flag that forces generation of accessor and/or invokevirtual on private in case you want to generate classfile with latest version number but with old properties. Cheers Maurizio On 15/09/17 08:12, David Holmes wrote: > bug: https://bugs.openjdk.java.net/browse/JDK-8187567 > webrev**: http://cr.openjdk.java.net/~dholmes/8187567/ > > ** test/runtime/Nestmates/privateConstructors/TestInvokeSpecial.java > contains additional changes for 8187536. They will be checked in > separately. > > While nestmates will ultimately be associated with a future > source/target version of the JDK and an updated classfile version (see > JDK-8187302) we want to be able to enable them by default as-if > executing in that future release. > > The primary changes are confined to javac and are very straight-forward: > - generate the nestmate attributes in the classfile > - use virtual invocation bytecodes for private method invocations > - don't generate private accessors > > With this change in place we can update the hotspot nestmate tests to > not provide explicit "@compile" directives. We also add a test to > verify that invokeinterface is rejected for private interface methods > in pre-nestmate classfile versions (v52 works fine for this). > > We can now build the JDK with the new nestmate features enabled, and > run tests without needing to provide additional javac options. > > I also added a missing testcase in > test/runtime/Nestmates/privateMethods/TestInvoke.java (just to ensure > there's no unexpected difference with this$0 usage). > > Thanks, > David From david.holmes at oracle.com Fri Sep 15 09:02:19 2017 From: david.holmes at oracle.com (David Holmes) Date: Fri, 15 Sep 2017 19:02:19 +1000 Subject: [Nestmates] RFR 8187567: [Nestmates] Enable nestmate changes in javac by default In-Reply-To: <3e9091b9-f52c-4180-f787-f3d3e4b65b2b@oracle.com> References: <3e9091b9-f52c-4180-f787-f3d3e4b65b2b@oracle.com> Message-ID: <4d423b61-2cb3-acc5-9441-1566e3096fb6@oracle.com> On 15/09/2017 6:15 PM, Maurizio Cimadamore wrote: > Looks great. Thanks for taking a look Maurizio! > The only thing we might need (not now, maybe later) is a 'reverse' javac > flag that forces generation of accessor and/or invokevirtual on private > in case you want to generate classfile with latest version number but > with old properties. Yes. If we need it I'll add it. It is a pity the -XDxxx can't be more like the hotspot -XX:+xxx and -XX:-xxx flags to allow for enable/disable. Cheers, David > Cheers > Maurizio > > > On 15/09/17 08:12, David Holmes wrote: >> bug: https://bugs.openjdk.java.net/browse/JDK-8187567 >> webrev**: http://cr.openjdk.java.net/~dholmes/8187567/ >> >> ** test/runtime/Nestmates/privateConstructors/TestInvokeSpecial.java >> contains additional changes for 8187536. They will be checked in >> separately. >> >> While nestmates will ultimately be associated with a future >> source/target version of the JDK and an updated classfile version (see >> JDK-8187302) we want to be able to enable them by default as-if >> executing in that future release. >> >> The primary changes are confined to javac and are very straight-forward: >> - generate the nestmate attributes in the classfile >> - use virtual invocation bytecodes for private method invocations >> - don't generate private accessors >> >> With this change in place we can update the hotspot nestmate tests to >> not provide explicit "@compile" directives. We also add a test to >> verify that invokeinterface is rejected for private interface methods >> in pre-nestmate classfile versions (v52 works fine for this). >> >> We can now build the JDK with the new nestmate features enabled, and >> run tests without needing to provide additional javac options. >> >> I also added a missing testcase in >> test/runtime/Nestmates/privateMethods/TestInvoke.java (just to ensure >> there's no unexpected difference with this$0 usage). >> >> Thanks, >> David > From maurizio.cimadamore at oracle.com Fri Sep 15 09:05:54 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 15 Sep 2017 10:05:54 +0100 Subject: [Nestmates] RFR 8187567: [Nestmates] Enable nestmate changes in javac by default In-Reply-To: <4d423b61-2cb3-acc5-9441-1566e3096fb6@oracle.com> References: <3e9091b9-f52c-4180-f787-f3d3e4b65b2b@oracle.com> <4d423b61-2cb3-acc5-9441-1566e3096fb6@oracle.com> Message-ID: On 15/09/17 10:02, David Holmes wrote: > On 15/09/2017 6:15 PM, Maurizio Cimadamore wrote: >> Looks great. > > Thanks for taking a look Maurizio! > >> The only thing we might need (not now, maybe later) is a 'reverse' >> javac flag that forces generation of accessor and/or invokevirtual on >> private in case you want to generate classfile with latest version >> number but with old properties. > > Yes. If we need it I'll add it. It is a pity the -XDxxx can't be more > like the hotspot -XX:+xxx and -XX:-xxx flags to allow for enable/disable. > In reality, -XD is just a prefix for whatever you want - we have other -XD flags that support +/- :-) Maurizio > Cheers, > David > >> Cheers >> Maurizio >> >> >> On 15/09/17 08:12, David Holmes wrote: >>> bug: https://bugs.openjdk.java.net/browse/JDK-8187567 >>> webrev**: http://cr.openjdk.java.net/~dholmes/8187567/ >>> >>> ** test/runtime/Nestmates/privateConstructors/TestInvokeSpecial.java >>> contains additional changes for 8187536. They will be checked in >>> separately. >>> >>> While nestmates will ultimately be associated with a future >>> source/target version of the JDK and an updated classfile version >>> (see JDK-8187302) we want to be able to enable them by default as-if >>> executing in that future release. >>> >>> The primary changes are confined to javac and are very >>> straight-forward: >>> - generate the nestmate attributes in the classfile >>> - use virtual invocation bytecodes for private method invocations >>> - don't generate private accessors >>> >>> With this change in place we can update the hotspot nestmate tests >>> to not provide explicit "@compile" directives. We also add a test to >>> verify that invokeinterface is rejected for private interface >>> methods in pre-nestmate classfile versions (v52 works fine for this). >>> >>> We can now build the JDK with the new nestmate features enabled, and >>> run tests without needing to provide additional javac options. >>> >>> I also added a missing testcase in >>> test/runtime/Nestmates/privateMethods/TestInvoke.java (just to >>> ensure there's no unexpected difference with this$0 usage). >>> >>> Thanks, >>> David >> From maurizio.cimadamore at oracle.com Fri Sep 15 12:04:43 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 15 Sep 2017 13:04:43 +0100 Subject: Review Request for MVT incubator module In-Reply-To: References: Message-ID: Hi Mandy, this looks like a solid piece of work, thanks! Few comments: * I applied all patches and run all relevant tests. Hotspot and JDK are fine, but langtools is getting some new failures - more specifically, I get two of those: 1) langtools/test/tools/javac/valhalla/values/CheckNoInvokeDirect.java 2) langtools/test/tools/javac/processing/model/TestSymtabItems.java The failure in (1) seems to be related to some changes you have made to the CP entries indices. Those changes make the test fail on my setup - but that has to do with the way I run tests - I always use the -javacoption:-g option, which sometimes catches interesting issues (yes, I'm paranoid). TThat said, if the test passes or fails depending on configuration, it should be @ignored, at least for now - I've never been too much of a fan of these tests that compare javap output against some golden files, they are a maintenance nightmare. The failure in (2) is genuine, and had to do with the fact that the test is trying to complete a module (jdk.incubator.mvt) too early, which will cause an assertion error when running the test. I've discussed a similar problem wityh Jan while ago, and I came up with the workaround which I have now applied to your case (see attached patch). With the patch the issue in the test is fixes. * separately, as discussed privately, generally I'm not a big fan of making high level changes such as turning incubator warnings into notes in an experimental branch. If we feel that's the way to go, that change should go into jdk10 and then flow back here. But I understand that in this case, to make existing tests work in the face of the unsuppressible warnings, you have to tweak tests to use the --should-stop internal option - so that means you have to change tests now, and then back once the enhancement comes from jdk10. So perhaps, given the warning 2 note change is a one liner, we might be able to live with it. * I also tried several test scenarios in which custom annotations called ValueCapableClass were used instead of the 'official' one in the incubator module, but I have not been able to come up with any real issues - my concern was that the analysis that the VM applied to the annotation is mostly textual, but there seem to be a couple of saving factors: (i) if the EnableMVT flag is not used, the VM will not even attempt to look at annotations, (ii) when the flag is used, the incubator module (which is added automatically when the flag is set) will automatically supplant any classes coming from the classpath - so the right VCC will be used. In short, I have not been able to make the VM 'trip up' on some maliciously written fake VCC anno. Which is good. Cheers Maurizio On 15/09/17 07:02, mandy chung wrote: > Webrev: > http://cr.openjdk.java.net/~mchung/valhalla/webrevs/incubator/ > > This patch proposes to define an incubator module [1] for MVT, named > `jdk.incubator.mvt`. Specifically this > movesjvm.internal.value.ValueCapableClass and > jdk.experimental.value.ValueType APIto a new jdk.incubator.mvt package. > > -XX:+EnableMVT continues to be the runtime option to enable MVT. I > have changed the runtime to add jdk.incubator.mvt when MVT is > enabled. For compile-time, compiling @VCC classes would require to > run javac with `--add-modules jdk.incubator.mvt` as incubator modules > are not resolved by default. > > A couple points worth mentioning: > > java.base can't reference @VCC and ValueType class statically since > they are now in a different module. In addition, @VCC can only be > loaded after startup asVM startup can only load classes in java.base. > > jdk.incubator.mvtis defined by the platform loader (as we want it to > be deprivileged for security reason) and so Class.forName to find > classes in jdk.incubator.module should use the right loader. > > jdk.incubator.mvt.ValueType is basically a wrapper around the internal > ValueTypeHolder class that is what java.base references in the > implementation. MethodHandleBuilder is kept as internal API for now. > I leave it as a future exercise if we decide to expose that API in the > incubator module. > > The tests are updated with @modules jdk.incubator.mvt or add access to > jdk.experimental > > I temporarily downgrade the javac incubating module warning to a note > so that -Werror has no effect. We will need to revisit this warning in > JDK 10. > > thanks > Mandy > [1] http://openjdk.java.net/jeps/11 -------------- next part -------------- A non-text attachment was scrubbed... Name: langtools-test.patch Type: text/x-patch Size: 1170 bytes Desc: not available URL: From forax at univ-mlv.fr Fri Sep 15 12:49:32 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Fri, 15 Sep 2017 14:49:32 +0200 (CEST) Subject: Review Request for MVT incubator module In-Reply-To: References: Message-ID: <1493330250.3095555.1505479772825.JavaMail.zimbra@u-pem.fr> ----- Mail original ----- > De: "Maurizio Cimadamore" > ?: "mandy chung" , "valhalla-dev" > Envoy?: Vendredi 15 Septembre 2017 14:04:43 > Objet: Re: Review Request for MVT incubator module > Hi Mandy, this looks like a solid piece of work, thanks! > > Few comments: > ... > > * I also tried several test scenarios in which custom annotations called > ValueCapableClass were used instead of the 'official' one in the > incubator module, but I have not been able to come up with any real > issues - my concern was that the analysis that the VM applied to the > annotation is mostly textual, but there seem to be a couple of saving > factors: (i) if the EnableMVT flag is not used, the VM will not even > attempt to look at annotations, (ii) when the flag is used, the > incubator module (which is added automatically when the flag is set) > will automatically supplant any classes coming from the classpath - so > the right VCC will be used. In short, I have not been able to make the > VM 'trip up' on some maliciously written fake VCC anno. Which is good. maybe, create an annotation VCC in its own module, and use jlink to create your own jdk that included the module ? > > Cheers > Maurizio regards, R?mi > > > On 15/09/17 07:02, mandy chung wrote: >> Webrev: >> http://cr.openjdk.java.net/~mchung/valhalla/webrevs/incubator/ >> >> This patch proposes to define an incubator module [1] for MVT, named >> `jdk.incubator.mvt`. Specifically this >> movesjvm.internal.value.ValueCapableClass and >> jdk.experimental.value.ValueType APIto a new jdk.incubator.mvt package. >> >> -XX:+EnableMVT continues to be the runtime option to enable MVT. I >> have changed the runtime to add jdk.incubator.mvt when MVT is >> enabled. For compile-time, compiling @VCC classes would require to >> run javac with `--add-modules jdk.incubator.mvt` as incubator modules >> are not resolved by default. >> >> A couple points worth mentioning: >> >> java.base can't reference @VCC and ValueType class statically since >> they are now in a different module. In addition, @VCC can only be >> loaded after startup asVM startup can only load classes in java.base. >> >> jdk.incubator.mvtis defined by the platform loader (as we want it to >> be deprivileged for security reason) and so Class.forName to find >> classes in jdk.incubator.module should use the right loader. >> >> jdk.incubator.mvt.ValueType is basically a wrapper around the internal >> ValueTypeHolder class that is what java.base references in the >> implementation. MethodHandleBuilder is kept as internal API for now. >> I leave it as a future exercise if we decide to expose that API in the >> incubator module. >> >> The tests are updated with @modules jdk.incubator.mvt or add access to >> jdk.experimental >> >> I temporarily downgrade the javac incubating module warning to a note >> so that -Werror has no effect. We will need to revisit this warning in >> JDK 10. >> >> thanks >> Mandy > > [1] http://openjdk.java.net/jeps/11 From maurizio.cimadamore at oracle.com Fri Sep 15 14:01:59 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 15 Sep 2017 15:01:59 +0100 Subject: Review Request for MVT incubator module In-Reply-To: <1493330250.3095555.1505479772825.JavaMail.zimbra@u-pem.fr> References: <1493330250.3095555.1505479772825.JavaMail.zimbra@u-pem.fr> Message-ID: <9c716652-d9c4-767a-c00a-a2c9839c3da4@oracle.com> On 15/09/17 13:49, Remi Forax wrote: > ----- Mail original ----- >> De: "Maurizio Cimadamore" >> ?: "mandy chung" , "valhalla-dev" >> Envoy?: Vendredi 15 Septembre 2017 14:04:43 >> Objet: Re: Review Request for MVT incubator module >> Hi Mandy, this looks like a solid piece of work, thanks! >> >> Few comments: >> > ... >> * I also tried several test scenarios in which custom annotations called >> ValueCapableClass were used instead of the 'official' one in the >> incubator module, but I have not been able to come up with any real >> issues - my concern was that the analysis that the VM applied to the >> annotation is mostly textual, but there seem to be a couple of saving >> factors: (i) if the EnableMVT flag is not used, the VM will not even >> attempt to look at annotations, (ii) when the flag is used, the >> incubator module (which is added automatically when the flag is set) >> will automatically supplant any classes coming from the classpath - so >> the right VCC will be used. In short, I have not been able to make the >> VM 'trip up' on some maliciously written fake VCC anno. Which is good. > maybe, create an annotation VCC in its own module, and use jlink to create your own jdk that included the module ? That's what i did (more or less), but since MVT support add the incubator module by default, you end up with split package issues as you'd have jdk.incubator.mvt in two modules. If EnableMVT is not passed, the VM will not even bother looking at the annotation... Maurizio >> Cheers >> Maurizio > regards, > R?mi > >> >> On 15/09/17 07:02, mandy chung wrote: >>> Webrev: >>> http://cr.openjdk.java.net/~mchung/valhalla/webrevs/incubator/ >>> >>> This patch proposes to define an incubator module [1] for MVT, named >>> `jdk.incubator.mvt`. Specifically this >>> movesjvm.internal.value.ValueCapableClass and >>> jdk.experimental.value.ValueType APIto a new jdk.incubator.mvt package. >>> >>> -XX:+EnableMVT continues to be the runtime option to enable MVT. I >>> have changed the runtime to add jdk.incubator.mvt when MVT is >>> enabled. For compile-time, compiling @VCC classes would require to >>> run javac with `--add-modules jdk.incubator.mvt` as incubator modules >>> are not resolved by default. >>> >>> A couple points worth mentioning: >>> >>> java.base can't reference @VCC and ValueType class statically since >>> they are now in a different module. In addition, @VCC can only be >>> loaded after startup asVM startup can only load classes in java.base. >>> >>> jdk.incubator.mvtis defined by the platform loader (as we want it to >>> be deprivileged for security reason) and so Class.forName to find >>> classes in jdk.incubator.module should use the right loader. >>> >>> jdk.incubator.mvt.ValueType is basically a wrapper around the internal >>> ValueTypeHolder class that is what java.base references in the >>> implementation. MethodHandleBuilder is kept as internal API for now. >>> I leave it as a future exercise if we decide to expose that API in the >>> incubator module. >>> >>> The tests are updated with @modules jdk.incubator.mvt or add access to >>> jdk.experimental >>> >>> I temporarily downgrade the javac incubating module warning to a note >>> so that -Werror has no effect. We will need to revisit this warning in >>> JDK 10. >>> >>> thanks >>> Mandy >>> [1] http://openjdk.java.net/jeps/11 From mandy.chung at oracle.com Fri Sep 15 17:46:42 2017 From: mandy.chung at oracle.com (mandy chung) Date: Fri, 15 Sep 2017 10:46:42 -0700 Subject: Review Request for MVT incubator module In-Reply-To: <9c716652-d9c4-767a-c00a-a2c9839c3da4@oracle.com> References: <1493330250.3095555.1505479772825.JavaMail.zimbra@u-pem.fr> <9c716652-d9c4-767a-c00a-a2c9839c3da4@oracle.com> Message-ID: On 9/15/17 7:01 AM, Maurizio Cimadamore wrote: > >>> * I also tried several test scenarios in which custom annotations >>> called >>> ValueCapableClass were used instead of the 'official' one in the >>> incubator module, but I have not been able to come up with any real >>> issues - my concern was that the analysis that the VM applied to the >>> annotation is mostly textual, but there seem to be a couple of saving >>> factors: (i) if the EnableMVT flag is not used, the VM will not even >>> attempt to look at annotations, (ii) when the flag is used, the >>> incubator module (which is added automatically when the flag is set) >>> will automatically supplant any classes coming from the classpath - so >>> the right VCC will be used. In short, I have not been able to make the >>> VM 'trip up' on some maliciously written fake VCC anno. Which is good. >> maybe, create an annotation VCC in its own module, and use jlink to >> create your own jdk that included the module ? > That's what i did (more or less), but since MVT support add the > incubator module by default, you end up with split package issues as > you'd have jdk.incubator.mvt in two modules. > If EnableMVT is not passed, the VM will not even bother looking at the > annotation... > Yes. ? jdk.incubator.mvt is added to the boot layer when the flag is set and that would catch any split package. I could further tighten up the check.? The runtime checks if a type is value capable class if it is annotated with @VCC.? We could ensure that comes from jdk.incubator.mvt which is tied with java.base and jdk.incubator.mvt must be the one built with java.base. Mandy From maurizio.cimadamore at oracle.com Fri Sep 15 17:48:20 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 15 Sep 2017 18:48:20 +0100 Subject: Review Request for MVT incubator module In-Reply-To: References: <1493330250.3095555.1505479772825.JavaMail.zimbra@u-pem.fr> <9c716652-d9c4-767a-c00a-a2c9839c3da4@oracle.com> Message-ID: On 15/09/17 18:46, mandy chung wrote: > > > On 9/15/17 7:01 AM, Maurizio Cimadamore wrote: >> >>>> * I also tried several test scenarios in which custom annotations >>>> called >>>> ValueCapableClass were used instead of the 'official' one in the >>>> incubator module, but I have not been able to come up with any real >>>> issues - my concern was that the analysis that the VM applied to the >>>> annotation is mostly textual, but there seem to be a couple of saving >>>> factors: (i) if the EnableMVT flag is not used, the VM will not even >>>> attempt to look at annotations, (ii) when the flag is used, the >>>> incubator module (which is added automatically when the flag is set) >>>> will automatically supplant any classes coming from the classpath - so >>>> the right VCC will be used. In short, I have not been able to make the >>>> VM 'trip up' on some maliciously written fake VCC anno. Which is good. >>> maybe, create an annotation VCC in its own module, and use jlink to >>> create your own jdk that included the module ? >> That's what i did (more or less), but since MVT support add the >> incubator module by default, you end up with split package issues as >> you'd have jdk.incubator.mvt in two modules. >> If EnableMVT is not passed, the VM will not even bother looking at >> the annotation... >> > Yes. jdk.incubator.mvt is added to the boot layer when the flag is > set and that would catch any split package. > > I could further tighten up the check. The runtime checks if a type is > value capable class if it is annotated with @VCC. We could ensure > that comes from jdk.incubator.mvt which is tied with java.base and > jdk.incubator.mvt must be the one built with java.base. I think for now we're good - I really just wanted to make sure that we had some basic bases covered, and it seems we do! Maurizio > > Mandy From mandy.chung at oracle.com Fri Sep 15 19:28:18 2017 From: mandy.chung at oracle.com (mandy chung) Date: Fri, 15 Sep 2017 12:28:18 -0700 Subject: Review Request for MVT incubator module In-Reply-To: References: Message-ID: <36d67dac-a56b-8e73-e96c-f33b3b2373b3@oracle.com> On 9/15/17 5:04 AM, Maurizio Cimadamore wrote: > Hi Mandy, this looks like a solid piece of work, thanks! > > Few comments: > > * I applied all patches and run all relevant tests. Hotspot and JDK > are fine, but langtools is getting some new failures - more > specifically, I get two of those: > > 1) langtools/test/tools/javac/valhalla/values/CheckNoInvokeDirect.java > 2) langtools/test/tools/javac/processing/model/TestSymtabItems.java > Thanks for catching it.? I left the test run overnight and see TestSymtabItems.java test failed. > The failure in (1) seems to be related to some changes you have made > to the CP entries indices. Those changes make the test fail on my > setup - but that has to do with the way I run tests - I always use the > -javacoption:-g option, which sometimes catches interesting issues > (yes, I'm paranoid). TThat said, if the test passes or fails depending > on configuration, it should be @ignored, at least for now - I've never > been too much of a fan of these tests that compare javap output > against some golden files, they are a maintenance nightmare. > Alternatively, always compile with -g: + * @compile -XDenableValueTypes -g CheckNoInvokeDirect.java > The failure in (2) is genuine, and had to do with the fact that the > test is trying to complete a module (jdk.incubator.mvt) too early, > which will cause an assertion error when running the test. I've > discussed a similar problem wityh Jan while ago, and I came up with > the workaround which I have now applied to your case (see attached > patch). With the patch the issue in the test is fixes. > Thanks for the patch.? TestSymtabItems.java passed with the applied patch. > * separately, as discussed privately, generally I'm not a big fan of > making high level changes such as turning incubator warnings into > notes in an experimental branch. If we feel that's the way to go, that > change should go into jdk10 and then flow back here. But I understand > that in this case, to make existing tests work in the face of the > unsuppressible warnings, you have to tweak tests to use the > --should-stop internal option - so that means you have to change tests > now, and then back once the enhancement comes from jdk10. So perhaps, > given the warning 2 note change is a one liner, we might be able to > live with it. I agree that this issue should be addressed in jdk10.?? OK I updated the tests to workaround it with --should-stop:ifError=PARSE that continues with the incubating module and stop before it detects other errors that are not captured in the output. Here is the updated webrev: http://cr.openjdk.java.net/~mchung/valhalla/webrevs/incubator.01/ Mandy From maurizio.cimadamore at oracle.com Fri Sep 15 20:28:26 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 15 Sep 2017 21:28:26 +0100 Subject: Review Request for MVT incubator module In-Reply-To: <36d67dac-a56b-8e73-e96c-f33b3b2373b3@oracle.com> References: <36d67dac-a56b-8e73-e96c-f33b3b2373b3@oracle.com> Message-ID: <20353a07-1f6b-b942-5eb4-7063bb8b3e00@oracle.com> On 15/09/17 20:28, mandy chung wrote: > > > On 9/15/17 5:04 AM, Maurizio Cimadamore wrote: >> Hi Mandy, this looks like a solid piece of work, thanks! >> >> Few comments: >> >> * I applied all patches and run all relevant tests. Hotspot and JDK >> are fine, but langtools is getting some new failures - more >> specifically, I get two of those: >> >> 1) langtools/test/tools/javac/valhalla/values/CheckNoInvokeDirect.java >> 2) langtools/test/tools/javac/processing/model/TestSymtabItems.java >> > Thanks for catching it. I left the test run overnight and see > TestSymtabItems.java test failed. >> The failure in (1) seems to be related to some changes you have made >> to the CP entries indices. Those changes make the test fail on my >> setup - but that has to do with the way I run tests - I always use >> the -javacoption:-g option, which sometimes catches interesting >> issues (yes, I'm paranoid). TThat said, if the test passes or fails >> depending on configuration, it should be @ignored, at least for now - >> I've never been too much of a fan of these tests that compare javap >> output against some golden files, they are a maintenance nightmare. >> > Alternatively, always compile with -g: > + * @compile -XDenableValueTypes -g CheckNoInvokeDirect.java true - you can do that too - anyway those tests are half broken, don't worry too much about that; thanks for coming up with this trick. >> The failure in (2) is genuine, and had to do with the fact that the >> test is trying to complete a module (jdk.incubator.mvt) too early, >> which will cause an assertion error when running the test. I've >> discussed a similar problem wityh Jan while ago, and I came up with >> the workaround which I have now applied to your case (see attached >> patch). With the patch the issue in the test is fixes. >> > > Thanks for the patch. TestSymtabItems.java passed with the applied > patch. Good >> * separately, as discussed privately, generally I'm not a big fan of >> making high level changes such as turning incubator warnings into >> notes in an experimental branch. If we feel that's the way to go, >> that change should go into jdk10 and then flow back here. But I >> understand that in this case, to make existing tests work in the face >> of the unsuppressible warnings, you have to tweak tests to use the >> --should-stop internal option - so that means you have to change >> tests now, and then back once the enhancement comes from jdk10. So >> perhaps, given the warning 2 note change is a one liner, we might be >> able to live with it. > I agree that this issue should be addressed in jdk10. OK I updated > the tests to workaround it with --should-stop:ifError=PARSE that > continues with the incubating module and stop before it detects other > errors that are not captured in the output. > > Here is the updated webrev: > http://cr.openjdk.java.net/~mchung/valhalla/webrevs/incubator.01/ Looks great - thanks again! Maurizio > > Mandy From forax at univ-mlv.fr Fri Sep 15 20:33:05 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Fri, 15 Sep 2017 22:33:05 +0200 (CEST) Subject: [MVT] hotspot crash Message-ID: <968983738.3298309.1505507585093.JavaMail.zimbra@u-pem.fr> oops, i'm doing some modifications to my bytecode rewriter, so the generated code has a good chance to be generate an invalid class, but the VM should not crash. To reproduce download the jar here: http://www-igm.univ-mlv.fr/~forax/tmp/mvt/ and run java -XX:+EnableMVT -cp test-valuetypified.jar fr.umlv.valuetypify.test.InternalTest cheers, R?mi --- ~/java/workspace/mvt/valhalla/build/linux-x86_64-normal-server-release/jdk/bin/java -XX:+EnableMVT -cp test-valuetypified.jar fr.umlv.valuetypify.test.InternalTest # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f17dd170907, pid=17320, tid=17321 # # JRE version: OpenJDK Runtime Environment (10.0) (build 10-internal+0-adhoc.forax.valhalla) # Java VM: OpenJDK 64-Bit Server VM (10-internal+0-adhoc.forax.valhalla, mixed mode, compressed oops, g1 gc, linux-amd64) # Problematic frame: # V [libjvm.so+0xbd4907] ValueKlass::adr_extended_sig() const [clone .constprop.129]+0x7 # # Core dump will be written. Default location: Core dumps may be processed with "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I" (or dumping to /home/forax/git/valuetypify/core.17320) # # An error report file with more information is saved as: # /home/forax/git/valuetypify/hs_err_pid17320.log # # If you would like to submit a bug report, please visit: # http://bugreport.java.com/bugreport/crash.jsp # Aborted (core dumped) From forax at univ-mlv.fr Fri Sep 15 20:47:54 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Fri, 15 Sep 2017 22:47:54 +0200 (CEST) Subject: [MVT] hotspot crash In-Reply-To: <968983738.3298309.1505507585093.JavaMail.zimbra@u-pem.fr> References: <968983738.3298309.1505507585093.JavaMail.zimbra@u-pem.fr> Message-ID: <503155874.3299772.1505508474429.JavaMail.zimbra@u-pem.fr> Declaring the value capable class InternalTest.Int final fixes the crash. R?mi ----- Mail original ----- > De: "Remi Forax" > ?: "valhalla-dev" > Envoy?: Vendredi 15 Septembre 2017 22:33:05 > Objet: [MVT] hotspot crash > oops, > i'm doing some modifications to my bytecode rewriter, so the generated code has > a good chance to be generate an invalid class, but the VM should not crash. > > To reproduce download the jar here: > http://www-igm.univ-mlv.fr/~forax/tmp/mvt/ > > and run > java -XX:+EnableMVT -cp test-valuetypified.jar > fr.umlv.valuetypify.test.InternalTest > > cheers, > R?mi > > --- > > ~/java/workspace/mvt/valhalla/build/linux-x86_64-normal-server-release/jdk/bin/java > -XX:+EnableMVT -cp test-valuetypified.jar fr.umlv.valuetypify.test.InternalTest > # > # A fatal error has been detected by the Java Runtime Environment: > # > # SIGSEGV (0xb) at pc=0x00007f17dd170907, pid=17320, tid=17321 > # > # JRE version: OpenJDK Runtime Environment (10.0) (build > 10-internal+0-adhoc.forax.valhalla) > # Java VM: OpenJDK 64-Bit Server VM (10-internal+0-adhoc.forax.valhalla, mixed > mode, compressed oops, g1 gc, linux-amd64) > # Problematic frame: > # V [libjvm.so+0xbd4907] ValueKlass::adr_extended_sig() const [clone > .constprop.129]+0x7 > # > # Core dump will be written. Default location: Core dumps may be processed with > "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I" (or dumping to > /home/forax/git/valuetypify/core.17320) > # > # An error report file with more information is saved as: > # /home/forax/git/valuetypify/hs_err_pid17320.log > # > # If you would like to submit a bug report, please visit: > # http://bugreport.java.com/bugreport/crash.jsp > # > Aborted (core dumped) From mandy.chung at oracle.com Fri Sep 15 20:53:51 2017 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Fri, 15 Sep 2017 20:53:51 +0000 Subject: hg: valhalla/valhalla: Move @ValueCapableClass and ValueType API to jdk.incubator.mvt module Message-ID: <201709152053.v8FKrpnb003025@aojmv0008.oracle.com> Changeset: 8b21c1bccdfa Author: mchung Date: 2017-09-15 13:49 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/8b21c1bccdfa Move @ValueCapableClass and ValueType API to jdk.incubator.mvt module Reviewed-by: mcimadamore ! make/common/Modules.gmk From mandy.chung at oracle.com Fri Sep 15 20:53:55 2017 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Fri, 15 Sep 2017 20:53:55 +0000 Subject: hg: valhalla/valhalla/langtools: Move @ValueCapableClass and ValueType API to jdk.incubator.mvt module Message-ID: <201709152053.v8FKrtIb003279@aojmv0008.oracle.com> Changeset: f332fa52ddad Author: mchung Date: 2017-09-15 13:49 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/f332fa52ddad Move @ValueCapableClass and ValueType API to jdk.incubator.mvt module Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! test/tools/javac/processing/model/TestSymtabItems.java ! test/tools/javac/valhalla/minimalvalues/CheckClone.java ! test/tools/javac/valhalla/minimalvalues/CheckClone.out ! test/tools/javac/valhalla/minimalvalues/CheckCyclicMembership.java ! test/tools/javac/valhalla/minimalvalues/CheckCyclicMembership.out ! test/tools/javac/valhalla/minimalvalues/CheckEquals.java ! test/tools/javac/valhalla/minimalvalues/CheckEquals.out ! test/tools/javac/valhalla/minimalvalues/CheckExtends.java ! test/tools/javac/valhalla/minimalvalues/CheckExtends.out ! test/tools/javac/valhalla/minimalvalues/CheckFinal.java ! test/tools/javac/valhalla/minimalvalues/CheckFinal.out ! test/tools/javac/valhalla/minimalvalues/CheckFinalize.java ! test/tools/javac/valhalla/minimalvalues/CheckFinalize.out ! test/tools/javac/valhalla/minimalvalues/CheckIdentityHash.java ! test/tools/javac/valhalla/minimalvalues/CheckIdentityHash.out ! test/tools/javac/valhalla/minimalvalues/CheckIdentityHash01.java ! test/tools/javac/valhalla/minimalvalues/CheckIdentityHash01.out ! test/tools/javac/valhalla/minimalvalues/CheckNullAssign.java ! test/tools/javac/valhalla/minimalvalues/CheckNullAssign.out ! test/tools/javac/valhalla/minimalvalues/CheckNullCastable.java ! test/tools/javac/valhalla/minimalvalues/CheckNullCastable.out ! test/tools/javac/valhalla/minimalvalues/CheckSync.java ! test/tools/javac/valhalla/minimalvalues/CheckSync.out ! test/tools/javac/valhalla/minimalvalues/CheckSynchronized.java ! test/tools/javac/valhalla/minimalvalues/CheckSynchronized.out ! test/tools/javac/valhalla/minimalvalues/ClassFileReaderTest.java ! test/tools/javac/valhalla/minimalvalues/ClassFileReaderTest.out ! test/tools/javac/valhalla/minimalvalues/Point.java ! test/tools/javac/valhalla/values/CheckNoInvokeDirect.java From mandy.chung at oracle.com Fri Sep 15 20:53:55 2017 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Fri, 15 Sep 2017 20:53:55 +0000 Subject: hg: valhalla/valhalla/hotspot: Move @ValueCapableClass and ValueType API to jdk.incubator.mvt module Message-ID: <201709152053.v8FKruFK003286@aojmv0008.oracle.com> Changeset: 010b6b654b23 Author: mchung Date: 2017-09-15 13:49 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/010b6b654b23 Move @ValueCapableClass and ValueType API to jdk.incubator.mvt module Reviewed-by: mcimadamore ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/runtime/arguments.cpp ! test/compiler/valhalla/valuetypes/TestBoundValueTypes.java ! test/compiler/valhalla/valuetypes/TestUnloadedValueTypeArray.java ! test/compiler/valhalla/valuetypes/ValueCapableClass1.java ! test/compiler/valhalla/valuetypes/ValueCapableClass2.java ! test/compiler/valhalla/valuetypes/ValueTypeTestBench.java ! test/runtime/valhalla/valuetypes/DeriveValueTypeCreation.java ! test/runtime/valhalla/valuetypes/MVTCombo.java ! test/runtime/valhalla/valuetypes/MVTComboDebugTier1.java ! test/runtime/valhalla/valuetypes/MVTComboTier1.java ! test/runtime/valhalla/valuetypes/PersonVcc.java ! test/runtime/valhalla/valuetypes/UninitializedValueFieldsTest.java ! test/runtime/valhalla/valuetypes/VDefaultTest.java ! test/runtime/valhalla/valuetypes/VTBufferTest.java ! test/runtime/valhalla/valuetypes/VWithFieldTest.java ! test/runtime/valhalla/valuetypes/ValueCapableClass.java ! test/runtime/valhalla/valuetypes/ValueOops.java ! test/runtime/valhalla/valuetypes/VboxUnbox.java ! test/runtime/valhalla/valuetypes/verifier/ValueCapableClass.java ! test/runtime/valhalla/valuetypes/verifier/VloadTest.java ! test/runtime/valhalla/valuetypes/verifier/VunboxErrorIndex.java From mandy.chung at oracle.com Fri Sep 15 20:53:54 2017 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Fri, 15 Sep 2017 20:53:54 +0000 Subject: hg: valhalla/valhalla/jdk: Move @ValueCapableClass and ValueType API to jdk.incubator.mvt module Message-ID: <201709152053.v8FKrtsF003266@aojmv0008.oracle.com> Changeset: c3dbef9e7e8b Author: mchung Date: 2017-09-15 13:49 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/c3dbef9e7e8b Move @ValueCapableClass and ValueType API to jdk.incubator.mvt module Reviewed-by: mcimadamore ! src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/jdk/experimental/value/MethodHandleBuilder.java - src/java.base/share/classes/jdk/experimental/value/ValueType.java - src/java.base/share/classes/jvm/internal/value/ValueCapableClass.java ! src/java.base/share/classes/module-info.java ! src/java.base/share/classes/valhalla/shady/MinimalValueTypes_1_0.java + src/java.base/share/classes/valhalla/shady/ValueTypeHolder.java + src/jdk.incubator.mvt/share/classes/jdk/incubator/mvt/ValueCapableClass.java + src/jdk.incubator.mvt/share/classes/jdk/incubator/mvt/ValueType.java + src/jdk.incubator.mvt/share/classes/jdk/incubator/mvt/package-info.java + src/jdk.incubator.mvt/share/classes/module-info.java ! test/valhalla/mvt/ConstructorTest.java ! test/valhalla/mvt/Interval.java ! test/valhalla/mvt/MVTAccessCheck.java ! test/valhalla/mvt/MVTReflectionTest.java ! test/valhalla/mvt/MVTTest.java ! test/valhalla/mvt/MethodHandlesTest.java ! test/valhalla/mvt/Point.java ! test/valhalla/mvt/PrivatePoint.java + test/valhalla/mvt/TEST.properties ! test/valhalla/mvt/TestValueInValue.java ! test/valhalla/mvt/UnreflectWithersTest.java ! test/valhalla/mvt/WithFieldTest.java ! test/valhalla/mvt/modules/m/module-info.java ! test/valhalla/mvt/modules/m/p/Main.java ! test/valhalla/mvt/modules/m/p/internal/Point.java ! test/valhalla/mvt/point/Point.java ! test/valhalla/mvt/point/TestPoint.java ! test/valhalla/mvt/vector/Long2.java ! test/valhalla/mvt/vector/VectorLibrary.java ! test/valhalla/mvt/vector/VectorTest.java ! test/valhalla/mvt/vector/VectorUtils.java From rwestrel at redhat.com Mon Sep 18 09:19:02 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Mon, 18 Sep 2017 11:19:02 +0200 Subject: RFR(L): 8185265 [MVT] improve performance of return of value types with new calling convention In-Reply-To: <30afda3a-55fe-19fd-dd6b-74dbf4dbe81e@oracle.com> References: <98437076-250d-f875-c8a7-4118e91e96bc@oracle.com> <72434f66-b9ed-6c9c-7098-2c23ea16e4da@oracle.com> <184fa07f-a0f2-7716-850a-0154db749dcf@oracle.com> <30afda3a-55fe-19fd-dd6b-74dbf4dbe81e@oracle.com> Message-ID: Hi Tobias, > I was finally able to solve this. Thanks! Roland. From rwestrel at redhat.com Mon Sep 18 09:19:21 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Mon, 18 Sep 2017 11:19:21 +0200 Subject: RFR: 8185858: [MVT] "must constrain OSR typestate" crash In-Reply-To: <448230e5-725f-3664-60be-f7a3bc9c79bd@oracle.com> References: <448230e5-725f-3664-60be-f7a3bc9c79bd@oracle.com> Message-ID: > All tests pass. Pushed. Thanks. Roland. From frederic.parain at oracle.com Mon Sep 18 14:40:17 2017 From: frederic.parain at oracle.com (frederic.parain at oracle.com) Date: Mon, 18 Sep 2017 14:40:17 +0000 Subject: hg: valhalla/valhalla/hotspot: 8187625: [MVT] Interpreter cleanup Message-ID: <201709181440.v8IEeHUh019770@aojmv0008.oracle.com> Changeset: c6b48833776d Author: fparain Date: 2017-09-18 10:34 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/c6b48833776d 8187625: [MVT] Interpreter cleanup Reviewed-by: dsimms ! src/cpu/x86/vm/templateTable_x86.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp ! src/share/vm/runtime/globals.hpp From tobias.hartmann at oracle.com Tue Sep 19 10:00:05 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Tue, 19 Sep 2017 12:00:05 +0200 Subject: RFR(S): 8186716: [MVT] C2 crashes with "assert(!n->is_ValueType()) failed: value types should not be split through phis" Message-ID: <91fadd5e-8534-252c-4818-16ae9350f61f@oracle.com> Hi, please review the following patch: https://bugs.openjdk.java.net/browse/JDK-8186716 http://cr.openjdk.java.net/~thartmann/8186716/webrev.00/ C2 crashes with an assert while trying to split a value type through a PhiNode. We need to avoid this because value types are not merged through Phis but each value input needs to be merged individually. I fixed this by scalarizing value types in safepoints right after parsing (and incremental inlining) such that value type nodes are only connected to allocate nodes during loop optimizations. After removing and unlinking redundant allocations, the value type nodes are dead and no splitting is required. All tests pass. Thanks, Tobias From david.holmes at oracle.com Tue Sep 19 10:03:12 2017 From: david.holmes at oracle.com (David Holmes) Date: Tue, 19 Sep 2017 20:03:12 +1000 Subject: [Nestmates] RFR: 8187644 [Nestmates] Exclude Atomic*FieldUpdaterTest.java Message-ID: <401e960c-22f8-ffcf-6f6d-87252d92e045@oracle.com> Bug: https://bugs.openjdk.java.net/browse/JDK-8187644 webrev: http://cr.openjdk.java.net/~dholmes/8187644/webrev/ Edited the tests to exclude subtests that cause problems. Test fix being applied upstream: https://bugs.openjdk.java.net/browse/JDK-8187607 Thanks, David From david.holmes at oracle.com Tue Sep 19 10:08:42 2017 From: david.holmes at oracle.com (David Holmes) Date: Tue, 19 Sep 2017 20:08:42 +1000 Subject: [Nestmates] RFR: 8187656 [Nestmates] Exclude vm.InterfaceAccessFlagsTest.testPrivateMethodCall() subtest Message-ID: bug: https://bugs.openjdk.java.net/browse/JDK-8187656 webrev: http://cr.openjdk.java.net/~dholmes/8187656/webrev/ Comment out failing test. Thanks, David From david.holmes at oracle.com Tue Sep 19 10:15:39 2017 From: david.holmes at oracle.com (David Holmes) Date: Tue, 19 Sep 2017 20:15:39 +1000 Subject: [Nestmates] RFR: 8187663 [Nestmates] Add failing pack200 tests to ProblemList.txt Message-ID: <67db106f-8ff7-fa06-e323-1ca143be662c@oracle.com> Bug: https://bugs.openjdk.java.net/browse/JDK-8187663 webrev: http://cr.openjdk.java.net/~dholmes/8187663/webrev/ Add failing tests to ProblemList.txt Thanks, David From tobias.hartmann at oracle.com Tue Sep 19 11:52:49 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Tue, 19 Sep 2017 13:52:49 +0200 Subject: RFR(XS): 8187669: [MVT] ValueTypeHolder::unreflectWithers fails with ClassFormatError: Illegal method name Message-ID: <254ad549-885f-5de3-3468-ea2b770fdbca@oracle.com> Hi, I noticed that initialization of test/compiler/valhalla/valuetypes/ValueCapableClass2.java fails with "ClassFormatError: Illegal method name "compiler.valhalla.valuetypes.ValueCapableClass2_unreflectWithers"" if the verifier is enabled. The problem is that ValueCapableClass2 is declared in a package and ValueTypeHolder::getOrLoad uses sourceClass().getName() for the method name which contains the package path. We should use "getSimpleName": --- a/src/java.base/share/classes/valhalla/shady/ValueTypeHolder.java Fri Sep 15 13:49:03 2017 -0700 +++ b/src/java.base/share/classes/valhalla/shady/ValueTypeHolder.java Tue Sep 19 13:51:32 2017 +0200 @@ -495,7 +495,7 @@ private MethodHandle getOrLoad(Lookup lookup, ValueHandleKey key, Supplier typeSupplier, Consumer> codeBuilder) { MethodHandle result = handleMap.get(key); if (result == null) { - String handleDebugName = sourceClass().getName() + "_" + key.kind.handleName(); + String handleDebugName = sourceClass().getSimpleName() + "_" + key.kind.handleName(); result = MethodHandleBuilder.loadCode(lookup, handleDebugName, typeSupplier.get(), codeBuilder); handleMap.put(key, result); } Thanks, Tobias From tobias.hartmann at oracle.com Tue Sep 19 12:16:18 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Tue, 19 Sep 2017 14:16:18 +0200 Subject: RFR(S): 8187670: [MVT] Enable verifier for compiler tests Message-ID: <3b5d9dd5-2324-b3b0-467c-6cb28fd6396c@oracle.com> Hi, please review the following change that enables the verifier for the compiler tests by fixing some minor issues: https://bugs.openjdk.java.net/browse/JDK-8187670 http://cr.openjdk.java.net/~thartmann/8187670/webrev.00/ All tests pass. Thanks, Tobias From lois.foltan at oracle.com Tue Sep 19 14:54:41 2017 From: lois.foltan at oracle.com (Lois Foltan) Date: Tue, 19 Sep 2017 10:54:41 -0400 Subject: RFR(S): 8187670: [MVT] Enable verifier for compiler tests In-Reply-To: <3b5d9dd5-2324-b3b0-467c-6cb28fd6396c@oracle.com> References: <3b5d9dd5-2324-b3b0-467c-6cb28fd6396c@oracle.com> Message-ID: <257d05a1-7dfc-2651-efe7-a806af2f9a1f@oracle.com> Looks good! Lois On 9/19/2017 8:16 AM, Tobias Hartmann wrote: > Hi, > > please review the following change that enables the verifier for the > compiler tests by fixing some minor issues: > https://bugs.openjdk.java.net/browse/JDK-8187670 > http://cr.openjdk.java.net/~thartmann/8187670/webrev.00/ > > All tests pass. > > Thanks, > Tobias From tobias.hartmann at oracle.com Tue Sep 19 14:55:36 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Tue, 19 Sep 2017 16:55:36 +0200 Subject: RFR(S): 8187670: [MVT] Enable verifier for compiler tests In-Reply-To: <257d05a1-7dfc-2651-efe7-a806af2f9a1f@oracle.com> References: <3b5d9dd5-2324-b3b0-467c-6cb28fd6396c@oracle.com> <257d05a1-7dfc-2651-efe7-a806af2f9a1f@oracle.com> Message-ID: Thanks Lois! Best regards, Tobias On 19.09.2017 16:54, Lois Foltan wrote: > Looks good! > Lois > > On 9/19/2017 8:16 AM, Tobias Hartmann wrote: >> Hi, >> >> please review the following change that enables the verifier for the compiler tests by fixing some minor issues: >> https://bugs.openjdk.java.net/browse/JDK-8187670 >> http://cr.openjdk.java.net/~thartmann/8187670/webrev.00/ >> >> All tests pass. >> >> Thanks, >> Tobias > From tobias.hartmann at oracle.com Tue Sep 19 15:04:21 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Tue, 19 Sep 2017 17:04:21 +0200 Subject: [MVT] hotspot crash In-Reply-To: <968983738.3298309.1505507585093.JavaMail.zimbra@u-pem.fr> References: <968983738.3298309.1505507585093.JavaMail.zimbra@u-pem.fr> Message-ID: Hi Remi, thanks for reporting this crash! With a debug build, this fails with an assert [1] suggesting that we failed to resolve a class. It turns out we are about to create c2i and i2c adapters for the method 'plus' from 'fr/umlv/valuetypify/test/InternalTest' but fail because the class 'fr/umlv/valuetypify/test/InternalTest$Int$Value' is not found. Running with -XX:-ValueTypePassFieldsAsArgs -noverify correctly fails with a NoClassDefFoundError: Exception in thread "main" java.lang.NoClassDefFoundError: fr/umlv/valuetypify/test/InternalTest$Int$Value at fr.umlv.valuetypify.test.InternalTest.main(InternalTest.java:33) You are right that we should not crash in this case. I filed: https://bugs.openjdk.java.net/browse/JDK-8187679 Running with the verifier enabled fails with [2]. I guess this is a problem with your bytecode generation. Thanks, Tobias [1] # Internal Error (/oracle/valhalla/hotspot/src/share/vm/runtime/sharedRuntime.cpp:2733), pid=31260, tid=31264 # assert(k != __null && !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can resolve klass? [2] Exception in thread "main" java.lang.VerifyError: Bad local variable type Exception Details: Location: fr/umlv/valuetypify/test/InternalTest$Int.add(Qfr/umlv/valuetypify/test/InternalTest$Int$Value;)Qfr/umlv/valuetypify/test/InternalTest$Int$Value; @4: vload Reason: Type 'fr/umlv/valuetypify/test/InternalTest$Int' (current frame, locals[0]) is not assignable to value type Current Frame: bci: @4 flags: { } locals: { 'fr/umlv/valuetypify/test/InternalTest$Int', 'fr/umlv/valuetypify/test/InternalTest$Int$Value' } stack: { uninitialized 0, uninitialized 0 } Bytecode: 0000000: bb00 0359 cb00 b400 2fcb 01b4 002f 60b7 0000010: 0004 d300 2ecf at fr.umlv.valuetypify.test.InternalTest.main(InternalTest.java:33) On 15.09.2017 22:33, Remi Forax wrote: > oops, > i'm doing some modifications to my bytecode rewriter, so the generated code has a good chance to be generate an invalid class, but the VM should not crash. > > To reproduce download the jar here: > http://www-igm.univ-mlv.fr/~forax/tmp/mvt/ > > and run > java -XX:+EnableMVT -cp test-valuetypified.jar fr.umlv.valuetypify.test.InternalTest > > cheers, > R?mi > > --- > > ~/java/workspace/mvt/valhalla/build/linux-x86_64-normal-server-release/jdk/bin/java -XX:+EnableMVT -cp test-valuetypified.jar fr.umlv.valuetypify.test.InternalTest > # > # A fatal error has been detected by the Java Runtime Environment: > # > # SIGSEGV (0xb) at pc=0x00007f17dd170907, pid=17320, tid=17321 > # > # JRE version: OpenJDK Runtime Environment (10.0) (build 10-internal+0-adhoc.forax.valhalla) > # Java VM: OpenJDK 64-Bit Server VM (10-internal+0-adhoc.forax.valhalla, mixed mode, compressed oops, g1 gc, linux-amd64) > # Problematic frame: > # V [libjvm.so+0xbd4907] ValueKlass::adr_extended_sig() const [clone .constprop.129]+0x7 > # > # Core dump will be written. Default location: Core dumps may be processed with "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I" (or dumping to /home/forax/git/valuetypify/core.17320) > # > # An error report file with more information is saved as: > # /home/forax/git/valuetypify/hs_err_pid17320.log > # > # If you would like to submit a bug report, please visit: > # http://bugreport.java.com/bugreport/crash.jsp > # > Aborted (core dumped) > From lois.foltan at oracle.com Tue Sep 19 15:23:52 2017 From: lois.foltan at oracle.com (Lois Foltan) Date: Tue, 19 Sep 2017 11:23:52 -0400 Subject: RFR(XS): 8187669: [MVT] ValueTypeHolder::unreflectWithers fails with ClassFormatError: Illegal method name In-Reply-To: <254ad549-885f-5de3-3468-ea2b770fdbca@oracle.com> References: <254ad549-885f-5de3-3468-ea2b770fdbca@oracle.com> Message-ID: On 9/19/2017 7:52 AM, Tobias Hartmann wrote: > Hi, > > I noticed that initialization of > test/compiler/valhalla/valuetypes/ValueCapableClass2.java fails with > "ClassFormatError: Illegal method name > "compiler.valhalla.valuetypes.ValueCapableClass2_unreflectWithers"" if > the verifier is enabled. > > The problem is that ValueCapableClass2 is declared in a package and > ValueTypeHolder::getOrLoad uses sourceClass().getName() for the method > name which contains the package path. Hi Tobias, Test hotspot/test/runtime/valhalla/valuetypes/ValueOops.java is hitting this issue as well and I was unable to remove the "-noverify" option for it.? I entered a bug suggesting that the fully qualified binary name should be translated from '.' to '/' before reaching the JVM. ?? See bug, https://bugs.openjdk.java.net/browse/JDK-8186874.? Due to JVM access checks that now involve checks for readability/exportability of a module & package a class is defined to, I suspect that it is important for the JVM to have the fully qualified name and not the simple name. Thanks, Lois > > We should use "getSimpleName": > > --- a/src/java.base/share/classes/valhalla/shady/ValueTypeHolder.java > Fri Sep 15 13:49:03 2017 -0700 > +++ b/src/java.base/share/classes/valhalla/shady/ValueTypeHolder.java > Tue Sep 19 13:51:32 2017 +0200 > @@ -495,7 +495,7 @@ > ???? private MethodHandle getOrLoad(Lookup lookup, ValueHandleKey key, > Supplier typeSupplier, Consumer MethodHandleCodeBuilder> codeBuilder) { > ???????? MethodHandle result = handleMap.get(key); > ???????? if (result == null) { > -??????????? String handleDebugName = sourceClass().getName() + "_" + > key.kind.handleName(); > +??????????? String handleDebugName = sourceClass().getSimpleName() + > "_" + key.kind.handleName(); > ???????????? result = MethodHandleBuilder.loadCode(lookup, > handleDebugName, typeSupplier.get(), codeBuilder); > ???????????? handleMap.put(key, result); > ???????? } > > Thanks, > Tobias From tobias.hartmann at oracle.com Tue Sep 19 15:30:03 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Tue, 19 Sep 2017 17:30:03 +0200 Subject: RFR(XS): 8187669: [MVT] ValueTypeHolder::unreflectWithers fails with ClassFormatError: Illegal method name In-Reply-To: References: <254ad549-885f-5de3-3468-ea2b770fdbca@oracle.com> Message-ID: <260eb003-24a8-c6e1-b0ef-92c7d6a84696@oracle.com> Hi Lois, On 19.09.2017 17:23, Lois Foltan wrote: > Test hotspot/test/runtime/valhalla/valuetypes/ValueOops.java is hitting this issue as well and I was unable to remove > the "-noverify" option for it.? I entered a bug suggesting that the fully qualified binary name should be translated > from '.' to '/' before reaching the JVM. ?? See bug, https://bugs.openjdk.java.net/browse/JDK-8186874.? Due to JVM > access checks that now involve checks for readability/exportability of a module & package a class is defined to, I > suspect that it is important for the JVM to have the fully qualified name and not the simple name. Thanks for pointing that out, I missed the bug you've filed. I agree, it's probably better to keep the fully qualified name. I closed this bug as duplicate. Thanks, Tobias From frederic.parain at oracle.com Tue Sep 19 21:24:25 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Tue, 19 Sep 2017 17:24:25 -0400 Subject: RFR(M): optional flattening - interpreter/runtime part In-Reply-To: <90ff5c9a-7b37-ebbf-4193-bfd301d63944@oracle.com> References: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> <72b8d1d1-153f-0ef5-5c3c-46411bde7ab5@oracle.com> <0F3D3B61-F3F6-4AE2-9BD6-0ACEDA5D7C84@oracle.com> <90ff5c9a-7b37-ebbf-4193-bfd301d63944@oracle.com> Message-ID: <4860F6B1-CC35-423C-95A8-AEEAB5FB0C72@oracle.com> Here?s an updated webrev: http://cr.openjdk.java.net/~fparain/optional-flattening-push/webrev.02/index.html Changes: - code has been updated according to the recent interpreter changes - the issue with oop_map generation in layout_fields() has now a correct fix - A test in ValueOops has been commented because it has to be revisited with the introduction of optional flattening, but I?d like to discuss this topic with David Simms on a different CR. Thank you, Fred > On Sep 14, 2017, at 11:03, Tobias Hartmann wrote: > > Hi Fred, > > I've just verified that the problem is solved with your latest webrev! > > Thanks, > Tobias > > On 14.09.2017 16:50, Frederic Parain wrote: >> Tobias, >> Thank you for catching that. >> There?s a bug in the layout computation, optional flattening code moves non-flattened >> values from the value types section of the layout to the nonstatic_oop section, but the size >> of the later was not updated accordingly. >> Here?s an updated webrev fixing this issue: >> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.01/index.html >> Regards, >> Fred >>> On Sep 14, 2017, at 03:46, Tobias Hartmann wrote: >>> >>> Hi Fred, >>> >>> there seems to be a problem with the field layout: >>> >>> compiler.valhalla.valuetypes.MyValue1: field layout >>> @ 16 --- instance fields start --- >>> @ 24 "x" I >>> @ 16 "y" J >>> @ 32 "z" S >>> @ 40 "o" Ljava.lang.Integer; >>> @ 48 "oa" [I >>> @ 56 "v1" Qcompiler.valhalla.valuetypes.MyValue2; >>> @ 64 "v2" Qcompiler.valhalla.valuetypes.MyValue2; >>> @ 28 "c" I >>> @ 56 --- instance fields end --- >>> @ 56 --- instance ends --- >>> @176 --- static fields start --- >>> @192 "s" I >>> @184 "sf" J >>> @176 "v3" Qcompiler.valhalla.valuetypes.MyValue2; >>> @200 --- static fields end --- >>> >>> OopMapBlocks: 1 / 4 >>> Offset: 40 - 64 Count: 4 >>> >>> "instance fields end" points to offset 56 which is not correct because the non-flattened field v2 is at offset 64. >>> >>> Thanks, >>> Tobias >>> >>> On 13.09.2017 21:41, Frederic Parain wrote: >>>> Greetings, >>>> Please review this changeset implementing optional field flattening >>>> in the interpreter and the runtime. The support for C2 is provided by >>>> Tobias in a separate changeset. >>>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.00/index.html >>>> Note that trying to run some programs/tests with this changeset and >>>> not Tobias? changeset is likely to cause crashes unless interpreted mode >>>> is forced and passing/returning values in registers is disabled. >>>> Thank you, >>>> Fred From frederic.parain at oracle.com Tue Sep 19 21:27:49 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Tue, 19 Sep 2017 17:27:49 -0400 Subject: RFR(M): optional flattening - interpreter/runtime part In-Reply-To: <4860F6B1-CC35-423C-95A8-AEEAB5FB0C72@oracle.com> References: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> <72b8d1d1-153f-0ef5-5c3c-46411bde7ab5@oracle.com> <0F3D3B61-F3F6-4AE2-9BD6-0ACEDA5D7C84@oracle.com> <90ff5c9a-7b37-ebbf-4193-bfd301d63944@oracle.com> <4860F6B1-CC35-423C-95A8-AEEAB5FB0C72@oracle.com> Message-ID: <73A4B47E-0737-4FA7-B322-C6303AAED0E2@oracle.com> The patch has been tested by forcing the JVM into interpreted mode what ever command line argument is specified, and always disabling passing/returning values in registers. All tests in hotspot_valhalla suite pass but ValueTypeTestBench which fails because of a time out. Fred > On Sep 19, 2017, at 17:24, Frederic Parain wrote: > > Here?s an updated webrev: > > http://cr.openjdk.java.net/~fparain/optional-flattening-push/webrev.02/index.html > > Changes: > - code has been updated according to the recent interpreter changes > - the issue with oop_map generation in layout_fields() has now a correct fix > - A test in ValueOops has been commented because it has to be revisited > with the introduction of optional flattening, but I?d like to discuss this topic > with David Simms on a different CR. > > Thank you, > > Fred > > >> On Sep 14, 2017, at 11:03, Tobias Hartmann wrote: >> >> Hi Fred, >> >> I've just verified that the problem is solved with your latest webrev! >> >> Thanks, >> Tobias >> >> On 14.09.2017 16:50, Frederic Parain wrote: >>> Tobias, >>> Thank you for catching that. >>> There?s a bug in the layout computation, optional flattening code moves non-flattened >>> values from the value types section of the layout to the nonstatic_oop section, but the size >>> of the later was not updated accordingly. >>> Here?s an updated webrev fixing this issue: >>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.01/index.html >>> Regards, >>> Fred >>>> On Sep 14, 2017, at 03:46, Tobias Hartmann wrote: >>>> >>>> Hi Fred, >>>> >>>> there seems to be a problem with the field layout: >>>> >>>> compiler.valhalla.valuetypes.MyValue1: field layout >>>> @ 16 --- instance fields start --- >>>> @ 24 "x" I >>>> @ 16 "y" J >>>> @ 32 "z" S >>>> @ 40 "o" Ljava.lang.Integer; >>>> @ 48 "oa" [I >>>> @ 56 "v1" Qcompiler.valhalla.valuetypes.MyValue2; >>>> @ 64 "v2" Qcompiler.valhalla.valuetypes.MyValue2; >>>> @ 28 "c" I >>>> @ 56 --- instance fields end --- >>>> @ 56 --- instance ends --- >>>> @176 --- static fields start --- >>>> @192 "s" I >>>> @184 "sf" J >>>> @176 "v3" Qcompiler.valhalla.valuetypes.MyValue2; >>>> @200 --- static fields end --- >>>> >>>> OopMapBlocks: 1 / 4 >>>> Offset: 40 - 64 Count: 4 >>>> >>>> "instance fields end" points to offset 56 which is not correct because the non-flattened field v2 is at offset 64. >>>> >>>> Thanks, >>>> Tobias >>>> >>>> On 13.09.2017 21:41, Frederic Parain wrote: >>>>> Greetings, >>>>> Please review this changeset implementing optional field flattening >>>>> in the interpreter and the runtime. The support for C2 is provided by >>>>> Tobias in a separate changeset. >>>>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.00/index.html >>>>> Note that trying to run some programs/tests with this changeset and >>>>> not Tobias? changeset is likely to cause crashes unless interpreted mode >>>>> is forced and passing/returning values in registers is disabled. >>>>> Thank you, >>>>> Fred > From mandy.chung at oracle.com Tue Sep 19 23:26:47 2017 From: mandy.chung at oracle.com (mandy chung) Date: Tue, 19 Sep 2017 16:26:47 -0700 Subject: Review Request: JDK-8186874: [MVT] Method name generated by ValueType is illegal Message-ID: Webrev: http://cr.openjdk.java.net/~mchung/valhalla/webrevs/8186874/webrev.00/ This patch fixes the bytecode generation with a legal method name.? I test with the runtime/valuetypes and compiler/valuetypes tests with -noverify flag removed except ValueOops.java and VboxUnbox.java tests. ValueOops.java and VboxUnbox.java tests fail with a different error when verifier is enabled.? I'll look into JDK-8187696 separately. Tobias - the webrev includes your patch for JDK-8187670 to verify my fix.? Do you prefer to leave it for you to push separately?? Or I can push it for you? thanks Mandy From maurizio.cimadamore at oracle.com Tue Sep 19 23:46:52 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 20 Sep 2017 00:46:52 +0100 Subject: Review Request: JDK-8186874: [MVT] Method name generated by ValueType is illegal In-Reply-To: References: Message-ID: Looks great - thanks! Maurizio On 20/09/17 00:26, mandy chung wrote: > Webrev: > http://cr.openjdk.java.net/~mchung/valhalla/webrevs/8186874/webrev.00/ > > This patch fixes the bytecode generation with a legal method name.? I > test with the runtime/valuetypes and compiler/valuetypes tests with > -noverify flag removed except ValueOops.java and VboxUnbox.java tests. > ValueOops.java and VboxUnbox.java tests fail with a different error > when verifier is enabled.? I'll look into JDK-8187696 separately. > > Tobias - the webrev includes your patch for JDK-8187670 to verify my > fix.? Do you prefer to leave it for you to push separately?? Or I can > push it for you? > > thanks > Mandy From mandy.chung at oracle.com Wed Sep 20 04:49:40 2017 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Wed, 20 Sep 2017 04:49:40 +0000 Subject: hg: valhalla/valhalla/jdk: 8186874: [MVT] Method name generated by ValueType is illegal Message-ID: <201709200449.v8K4nerM009742@aojmv0008.oracle.com> Changeset: 96fb9cf1ca33 Author: mchung Date: 2017-09-19 21:45 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/96fb9cf1ca33 8186874: [MVT] Method name generated by ValueType is illegal Reviewed-by: mcimadamore ! src/java.base/share/classes/jdk/experimental/bytecode/ClassBuilder.java ! src/java.base/share/classes/jdk/experimental/value/MethodHandleBuilder.java ! src/java.base/share/classes/valhalla/shady/ValueTypeHolder.java From mandy.chung at oracle.com Wed Sep 20 04:49:49 2017 From: mandy.chung at oracle.com (mandy.chung at oracle.com) Date: Wed, 20 Sep 2017 04:49:49 +0000 Subject: hg: valhalla/valhalla/hotspot: 8186874: [MVT] Method name generated by ValueType is illegal Message-ID: <201709200449.v8K4nnHL009936@aojmv0008.oracle.com> Changeset: e2676828062c Author: mchung Date: 2017-09-19 21:44 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/e2676828062c 8186874: [MVT] Method name generated by ValueType is illegal Reviewed-by: mcimadamore ! test/runtime/valhalla/valuetypes/Empty.java ! test/runtime/valhalla/valuetypes/Test8186715.java From mandy.chung at oracle.com Wed Sep 20 05:14:02 2017 From: mandy.chung at oracle.com (mandy chung) Date: Tue, 19 Sep 2017 22:14:02 -0700 Subject: Review Request: JDK-8186874: [MVT] Method name generated by ValueType is illegal In-Reply-To: References: Message-ID: <7833ed73-3fdf-af2a-b2b5-b4b65823f226@oracle.com> Thanks for the review, Maurizio. Tobias - I have pushed the change without the hotspot/test/compiler/valhalla test update.? I leave it for you to push for JDK-8187670. Mandy On 9/19/17 4:46 PM, Maurizio Cimadamore wrote: > Looks great - thanks! > > Maurizio > > > On 20/09/17 00:26, mandy chung wrote: >> Webrev: >> http://cr.openjdk.java.net/~mchung/valhalla/webrevs/8186874/webrev.00/ >> >> This patch fixes the bytecode generation with a legal method name.? I >> test with the runtime/valuetypes and compiler/valuetypes tests with >> -noverify flag removed except ValueOops.java and VboxUnbox.java >> tests. ValueOops.java and VboxUnbox.java tests fail with a different >> error when verifier is enabled.? I'll look into JDK-8187696 separately. >> >> Tobias - the webrev includes your patch for JDK-8187670 to verify my >> fix.? Do you prefer to leave it for you to push separately?? Or I can >> push it for you? >> >> thanks >> Mandy > From forax at univ-mlv.fr Wed Sep 20 06:04:43 2017 From: forax at univ-mlv.fr (forax at univ-mlv.fr) Date: Wed, 20 Sep 2017 08:04:43 +0200 (CEST) Subject: [MVT] hotspot crash In-Reply-To: References: <968983738.3298309.1505507585093.JavaMail.zimbra@u-pem.fr> Message-ID: <743176707.1942146.1505887483939.JavaMail.zimbra@u-pem.fr> Hi Tobias, i'm sure that the verifier was enabled (the err log [1] seems to confirm that, no "-noverify" on the command line) You're right that the bytecode is not valid but it should not crash if the verifier is enable. It was before ValueCapableClass was renamed by Mandy, that why i think you have not reproduce the bug, i.e. in my test fr/umlv/valuetypify/test/InternalTest$Int$Value is a value type generated from the fr/umlv/valuetypify/test/InternalTest$Int which is a VCC for the VM so the class is found. R?mi [1] http://www-igm.univ-mlv.fr/~forax/tmp/mvt/hs_err_pid17320.log ----- Mail original ----- > De: "Tobias Hartmann" > ?: "Remi Forax" , "valhalla-dev" > Envoy?: Mardi 19 Septembre 2017 17:04:21 > Objet: Re: [MVT] hotspot crash > Hi Remi, > > thanks for reporting this crash! > > With a debug build, this fails with an assert [1] suggesting that we failed to > resolve a class. It turns out we are > about to create c2i and i2c adapters for the method 'plus' from > 'fr/umlv/valuetypify/test/InternalTest' but fail because > the class 'fr/umlv/valuetypify/test/InternalTest$Int$Value' is not found. > > Running with -XX:-ValueTypePassFieldsAsArgs -noverify correctly fails with a > NoClassDefFoundError: > Exception in thread "main" java.lang.NoClassDefFoundError: > fr/umlv/valuetypify/test/InternalTest$Int$Value > at fr.umlv.valuetypify.test.InternalTest.main(InternalTest.java:33) > > You are right that we should not crash in this case. I filed: > https://bugs.openjdk.java.net/browse/JDK-8187679 > > Running with the verifier enabled fails with [2]. I guess this is a problem with > your bytecode generation. > > Thanks, > Tobias > > [1] > # Internal Error > (/oracle/valhalla/hotspot/src/share/vm/runtime/sharedRuntime.cpp:2733), > pid=31260, tid=31264 > # assert(k != __null && > !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can > resolve klass? > > [2] > Exception in thread "main" java.lang.VerifyError: Bad local variable type > Exception Details: > Location: > > fr/umlv/valuetypify/test/InternalTest$Int.add(Qfr/umlv/valuetypify/test/InternalTest$Int$Value;)Qfr/umlv/valuetypify/test/InternalTest$Int$Value; > @4: vload > Reason: > Type 'fr/umlv/valuetypify/test/InternalTest$Int' (current frame, locals[0]) is > not assignable to value type > Current Frame: > bci: @4 > flags: { } > locals: { 'fr/umlv/valuetypify/test/InternalTest$Int', > 'fr/umlv/valuetypify/test/InternalTest$Int$Value' } > stack: { uninitialized 0, uninitialized 0 } > Bytecode: > 0000000: bb00 0359 cb00 b400 2fcb 01b4 002f 60b7 > 0000010: 0004 d300 2ecf > > at fr.umlv.valuetypify.test.InternalTest.main(InternalTest.java:33) > > > On 15.09.2017 22:33, Remi Forax wrote: >> oops, >> i'm doing some modifications to my bytecode rewriter, so the generated code has >> a good chance to be generate an invalid class, but the VM should not crash. >> >> To reproduce download the jar here: >> http://www-igm.univ-mlv.fr/~forax/tmp/mvt/ >> >> and run >> java -XX:+EnableMVT -cp test-valuetypified.jar >> fr.umlv.valuetypify.test.InternalTest >> >> cheers, >> R?mi >> >> --- >> >> ~/java/workspace/mvt/valhalla/build/linux-x86_64-normal-server-release/jdk/bin/java >> -XX:+EnableMVT -cp test-valuetypified.jar fr.umlv.valuetypify.test.InternalTest >> # >> # A fatal error has been detected by the Java Runtime Environment: >> # >> # SIGSEGV (0xb) at pc=0x00007f17dd170907, pid=17320, tid=17321 >> # >> # JRE version: OpenJDK Runtime Environment (10.0) (build >> 10-internal+0-adhoc.forax.valhalla) >> # Java VM: OpenJDK 64-Bit Server VM (10-internal+0-adhoc.forax.valhalla, mixed >> mode, compressed oops, g1 gc, linux-amd64) >> # Problematic frame: >> # V [libjvm.so+0xbd4907] ValueKlass::adr_extended_sig() const [clone >> .constprop.129]+0x7 >> # >> # Core dump will be written. Default location: Core dumps may be processed with >> "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I" (or dumping to >> /home/forax/git/valuetypify/core.17320) >> # >> # An error report file with more information is saved as: >> # /home/forax/git/valuetypify/hs_err_pid17320.log >> # >> # If you would like to submit a bug report, please visit: >> # http://bugreport.java.com/bugreport/crash.jsp >> # >> Aborted (core dumped) From tobias.hartmann at oracle.com Wed Sep 20 06:34:59 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Wed, 20 Sep 2017 08:34:59 +0200 Subject: Review Request: JDK-8186874: [MVT] Method name generated by ValueType is illegal In-Reply-To: <7833ed73-3fdf-af2a-b2b5-b4b65823f226@oracle.com> References: <7833ed73-3fdf-af2a-b2b5-b4b65823f226@oracle.com> Message-ID: Hi Mandy, On 20.09.2017 07:14, mandy chung wrote: > Tobias - I have pushed the change without the hotspot/test/compiler/valhalla test update.? I leave it for you to push > for JDK-8187670. Perfect, thanks a lot for fixing this so quickly! Best regards, Tobias > On 9/19/17 4:46 PM, Maurizio Cimadamore wrote: >> Looks great - thanks! >> >> Maurizio >> >> >> On 20/09/17 00:26, mandy chung wrote: >>> Webrev: >>> http://cr.openjdk.java.net/~mchung/valhalla/webrevs/8186874/webrev.00/ >>> >>> This patch fixes the bytecode generation with a legal method name.? I test with the runtime/valuetypes and >>> compiler/valuetypes tests with -noverify flag removed except ValueOops.java and VboxUnbox.java tests. ValueOops.java >>> and VboxUnbox.java tests fail with a different error when verifier is enabled.? I'll look into JDK-8187696 separately. >>> >>> Tobias - the webrev includes your patch for JDK-8187670 to verify my fix.? Do you prefer to leave it for you to push >>> separately?? Or I can push it for you? >>> >>> thanks >>> Mandy >> > From tobias.hartmann at oracle.com Wed Sep 20 06:47:37 2017 From: tobias.hartmann at oracle.com (tobias.hartmann at oracle.com) Date: Wed, 20 Sep 2017 06:47:37 +0000 Subject: hg: valhalla/valhalla/hotspot: 8187670: [MVT] Enable verifier for compiler tests Message-ID: <201709200647.v8K6lbkP026485@aojmv0008.oracle.com> Changeset: 8431727f44a1 Author: thartmann Date: 2017-09-20 08:44 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/8431727f44a1 8187670: [MVT] Enable verifier for compiler tests Reviewed-by: lfoltan ! test/compiler/valhalla/valuetypes/TestBoundValueTypes.java ! test/compiler/valhalla/valuetypes/TestUnloadedValueTypeArray.java ! test/compiler/valhalla/valuetypes/ValueCapableClass2.java ! test/compiler/valhalla/valuetypes/ValueTypeTestBench.java From tobias.hartmann at oracle.com Wed Sep 20 07:08:00 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Wed, 20 Sep 2017 09:08:00 +0200 Subject: [MVT] hotspot crash In-Reply-To: <743176707.1942146.1505887483939.JavaMail.zimbra@u-pem.fr> References: <968983738.3298309.1505507585093.JavaMail.zimbra@u-pem.fr> <743176707.1942146.1505887483939.JavaMail.zimbra@u-pem.fr> Message-ID: Hi Remi, On 20.09.2017 08:04, forax at univ-mlv.fr wrote: > i'm sure that the verifier was enabled (the err log [1] seems to confirm that, no "-noverify" on the command line) Yes, sure, but with -XX:+ValueTypePassFieldsAsArgs (which is the default), the VM crashes during adapter generation *before* the verifier catches the problem. I was just referring to the fact that there is a bytecode generation problem as well, that only shows up if ValueTypePassFieldsAsArgs is disabled (and the verifier is enabled). I was talking about these 3 cases: (1) Verifier enabled and -XX:+ValueTypePassFieldsAsArgs: Crash in adapter generation before verifier catches the problem (2) Verifier enabled and -XX:-ValueTypePassFieldsAsArgs: VerifyError: Bad local variable type (3) Verifier disabled and -XX:-ValueTypePassFieldsAsArgs: java.lang.NoClassDefFoundError I will fix (1) with JDK-8187679. > You're right that the bytecode is not valid but it should not crash if the verifier is enable. Yes, I agree. > It was before ValueCapableClass was renamed by Mandy, that why i think you have not reproduce the bug, > i.e. in my test fr/umlv/valuetypify/test/InternalTest$Int$Value is a value type generated from the fr/umlv/valuetypify/test/InternalTest$Int which is a VCC for the VM so the class is found. From looking at the stack trace, I'm pretty confident that the root cause is the same. We crash because we were unable to resolve a value type class. That's definitely a bug. I can verify if you have a reproducer with the latest version. Thanks, Tobias > ----- Mail original ----- >> De: "Tobias Hartmann" >> ?: "Remi Forax" , "valhalla-dev" >> Envoy?: Mardi 19 Septembre 2017 17:04:21 >> Objet: Re: [MVT] hotspot crash > >> Hi Remi, >> >> thanks for reporting this crash! >> >> With a debug build, this fails with an assert [1] suggesting that we failed to >> resolve a class. It turns out we are >> about to create c2i and i2c adapters for the method 'plus' from >> 'fr/umlv/valuetypify/test/InternalTest' but fail because >> the class 'fr/umlv/valuetypify/test/InternalTest$Int$Value' is not found. >> >> Running with -XX:-ValueTypePassFieldsAsArgs -noverify correctly fails with a >> NoClassDefFoundError: >> Exception in thread "main" java.lang.NoClassDefFoundError: >> fr/umlv/valuetypify/test/InternalTest$Int$Value >> at fr.umlv.valuetypify.test.InternalTest.main(InternalTest.java:33) >> >> You are right that we should not crash in this case. I filed: >> https://bugs.openjdk.java.net/browse/JDK-8187679 >> >> Running with the verifier enabled fails with [2]. I guess this is a problem with >> your bytecode generation. >> >> Thanks, >> Tobias >> >> [1] >> # Internal Error >> (/oracle/valhalla/hotspot/src/share/vm/runtime/sharedRuntime.cpp:2733), >> pid=31260, tid=31264 >> # assert(k != __null && >> !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can >> resolve klass? >> >> [2] >> Exception in thread "main" java.lang.VerifyError: Bad local variable type >> Exception Details: >> Location: >> >> fr/umlv/valuetypify/test/InternalTest$Int.add(Qfr/umlv/valuetypify/test/InternalTest$Int$Value;)Qfr/umlv/valuetypify/test/InternalTest$Int$Value; >> @4: vload >> Reason: >> Type 'fr/umlv/valuetypify/test/InternalTest$Int' (current frame, locals[0]) is >> not assignable to value type >> Current Frame: >> bci: @4 >> flags: { } >> locals: { 'fr/umlv/valuetypify/test/InternalTest$Int', >> 'fr/umlv/valuetypify/test/InternalTest$Int$Value' } >> stack: { uninitialized 0, uninitialized 0 } >> Bytecode: >> 0000000: bb00 0359 cb00 b400 2fcb 01b4 002f 60b7 >> 0000010: 0004 d300 2ecf >> >> at fr.umlv.valuetypify.test.InternalTest.main(InternalTest.java:33) >> >> >> On 15.09.2017 22:33, Remi Forax wrote: >>> oops, >>> i'm doing some modifications to my bytecode rewriter, so the generated code has >>> a good chance to be generate an invalid class, but the VM should not crash. >>> >>> To reproduce download the jar here: >>> http://www-igm.univ-mlv.fr/~forax/tmp/mvt/ >>> >>> and run >>> java -XX:+EnableMVT -cp test-valuetypified.jar >>> fr.umlv.valuetypify.test.InternalTest >>> >>> cheers, >>> R?mi >>> >>> --- >>> >>> ~/java/workspace/mvt/valhalla/build/linux-x86_64-normal-server-release/jdk/bin/java >>> -XX:+EnableMVT -cp test-valuetypified.jar fr.umlv.valuetypify.test.InternalTest >>> # >>> # A fatal error has been detected by the Java Runtime Environment: >>> # >>> # SIGSEGV (0xb) at pc=0x00007f17dd170907, pid=17320, tid=17321 >>> # >>> # JRE version: OpenJDK Runtime Environment (10.0) (build >>> 10-internal+0-adhoc.forax.valhalla) >>> # Java VM: OpenJDK 64-Bit Server VM (10-internal+0-adhoc.forax.valhalla, mixed >>> mode, compressed oops, g1 gc, linux-amd64) >>> # Problematic frame: >>> # V [libjvm.so+0xbd4907] ValueKlass::adr_extended_sig() const [clone >>> .constprop.129]+0x7 >>> # >>> # Core dump will be written. Default location: Core dumps may be processed with >>> "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I" (or dumping to >>> /home/forax/git/valuetypify/core.17320) >>> # >>> # An error report file with more information is saved as: >>> # /home/forax/git/valuetypify/hs_err_pid17320.log >>> # >>> # If you would like to submit a bug report, please visit: >>> # http://bugreport.java.com/bugreport/crash.jsp >>> # >>> Aborted (core dumped) From tobias.hartmann at oracle.com Wed Sep 20 07:16:04 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Wed, 20 Sep 2017 09:16:04 +0200 Subject: RFR(M): optional flattening - interpreter/runtime part In-Reply-To: <4860F6B1-CC35-423C-95A8-AEEAB5FB0C72@oracle.com> References: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> <72b8d1d1-153f-0ef5-5c3c-46411bde7ab5@oracle.com> <0F3D3B61-F3F6-4AE2-9BD6-0ACEDA5D7C84@oracle.com> <90ff5c9a-7b37-ebbf-4193-bfd301d63944@oracle.com> <4860F6B1-CC35-423C-95A8-AEEAB5FB0C72@oracle.com> Message-ID: <70686ccb-a93b-3c55-f718-24899c67ac0c@oracle.com> Hi Fred, On 19.09.2017 23:24, Frederic Parain wrote: > http://cr.openjdk.java.net/~fparain/optional-flattening-push/webrev.02/index.html Your changes look good to me. I tested my patches for 8185556 and 8186716 on top and all tests pass. Here are some minor suggestions: classFileParser.cpp: - line 3991: comment indentation is broken interpreterRuntime.cpp - line 279: missing whitespace after "," - line 347 and 358: variable "res" is declared twice with different types valueKlass.cpp - line 317: there is an indentation problem in the if true branch No need to send an updated webrev. Thanks, Tobias >> On Sep 14, 2017, at 11:03, Tobias Hartmann wrote: >> >> Hi Fred, >> >> I've just verified that the problem is solved with your latest webrev! >> >> Thanks, >> Tobias >> >> On 14.09.2017 16:50, Frederic Parain wrote: >>> Tobias, >>> Thank you for catching that. >>> There?s a bug in the layout computation, optional flattening code moves non-flattened >>> values from the value types section of the layout to the nonstatic_oop section, but the size >>> of the later was not updated accordingly. >>> Here?s an updated webrev fixing this issue: >>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.01/index.html >>> Regards, >>> Fred >>>> On Sep 14, 2017, at 03:46, Tobias Hartmann wrote: >>>> >>>> Hi Fred, >>>> >>>> there seems to be a problem with the field layout: >>>> >>>> compiler.valhalla.valuetypes.MyValue1: field layout >>>> @ 16 --- instance fields start --- >>>> @ 24 "x" I >>>> @ 16 "y" J >>>> @ 32 "z" S >>>> @ 40 "o" Ljava.lang.Integer; >>>> @ 48 "oa" [I >>>> @ 56 "v1" Qcompiler.valhalla.valuetypes.MyValue2; >>>> @ 64 "v2" Qcompiler.valhalla.valuetypes.MyValue2; >>>> @ 28 "c" I >>>> @ 56 --- instance fields end --- >>>> @ 56 --- instance ends --- >>>> @176 --- static fields start --- >>>> @192 "s" I >>>> @184 "sf" J >>>> @176 "v3" Qcompiler.valhalla.valuetypes.MyValue2; >>>> @200 --- static fields end --- >>>> >>>> OopMapBlocks: 1 / 4 >>>> Offset: 40 - 64 Count: 4 >>>> >>>> "instance fields end" points to offset 56 which is not correct because the non-flattened field v2 is at offset 64. >>>> >>>> Thanks, >>>> Tobias >>>> >>>> On 13.09.2017 21:41, Frederic Parain wrote: >>>>> Greetings, >>>>> Please review this changeset implementing optional field flattening >>>>> in the interpreter and the runtime. The support for C2 is provided by >>>>> Tobias in a separate changeset. >>>>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.00/index.html >>>>> Note that trying to run some programs/tests with this changeset and >>>>> not Tobias? changeset is likely to cause crashes unless interpreted mode >>>>> is forced and passing/returning values in registers is disabled. >>>>> Thank you, >>>>> Fred > From david.simms at oracle.com Wed Sep 20 08:27:21 2017 From: david.simms at oracle.com (David Simms) Date: Wed, 20 Sep 2017 10:27:21 +0200 Subject: RFR(M): optional flattening - interpreter/runtime part In-Reply-To: <70686ccb-a93b-3c55-f718-24899c67ac0c@oracle.com> References: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> <72b8d1d1-153f-0ef5-5c3c-46411bde7ab5@oracle.com> <0F3D3B61-F3F6-4AE2-9BD6-0ACEDA5D7C84@oracle.com> <90ff5c9a-7b37-ebbf-4193-bfd301d63944@oracle.com> <4860F6B1-CC35-423C-95A8-AEEAB5FB0C72@oracle.com> <70686ccb-a93b-3c55-f718-24899c67ac0c@oracle.com> Message-ID: After Tobias's comments, looks good ! On 20/09/17 09:16, Tobias Hartmann wrote: > Hi Fred, > > On 19.09.2017 23:24, Frederic Parain wrote: >> http://cr.openjdk.java.net/~fparain/optional-flattening-push/webrev.02/index.html >> > > Your changes look good to me. I tested my patches for 8185556 and > 8186716 on top and all tests pass. > > Here are some minor suggestions: > > classFileParser.cpp: > - line 3991: comment indentation is broken > > interpreterRuntime.cpp > - line 279: missing whitespace after "," > - line 347 and 358: variable "res" is declared twice with different types > > valueKlass.cpp > - line 317: there is an indentation problem in the if true branch > > No need to send an updated webrev. > > Thanks, > Tobias > >>> On Sep 14, 2017, at 11:03, Tobias Hartmann >>> wrote: >>> >>> Hi Fred, >>> >>> I've just verified that the problem is solved with your latest webrev! >>> >>> Thanks, >>> Tobias >>> >>> On 14.09.2017 16:50, Frederic Parain wrote: >>>> Tobias, >>>> Thank you for catching that. >>>> There?s a bug in the layout computation, optional flattening code >>>> moves non-flattened >>>> values from the value types section of the layout to the >>>> nonstatic_oop section, but the size >>>> of the later was not updated accordingly. >>>> Here?s an updated webrev fixing this issue: >>>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.01/index.html >>>> >>>> Regards, >>>> Fred >>>>> On Sep 14, 2017, at 03:46, Tobias Hartmann >>>>> wrote: >>>>> >>>>> Hi Fred, >>>>> >>>>> there seems to be a problem with the field layout: >>>>> >>>>> compiler.valhalla.valuetypes.MyValue1: field layout >>>>> ? @ 16 --- instance fields start --- >>>>> ? @ 24 "x" I >>>>> ? @ 16 "y" J >>>>> ? @ 32 "z" S >>>>> ? @ 40 "o" Ljava.lang.Integer; >>>>> ? @ 48 "oa" [I >>>>> ? @ 56 "v1" Qcompiler.valhalla.valuetypes.MyValue2; >>>>> ? @ 64 "v2" Qcompiler.valhalla.valuetypes.MyValue2; >>>>> ? @ 28 "c" I >>>>> ? @ 56 --- instance fields end --- >>>>> ? @ 56 --- instance ends --- >>>>> ? @176 --- static fields start --- >>>>> ? @192 "s" I >>>>> ? @184 "sf" J >>>>> ? @176 "v3" Qcompiler.valhalla.valuetypes.MyValue2; >>>>> ? @200 --- static fields end --- >>>>> >>>>> ? OopMapBlocks:?? 1? /? 4 >>>>> ??? Offset:? 40? - 64 Count:?? 4 >>>>> >>>>> "instance fields end" points to offset 56 which is not correct >>>>> because the non-flattened field v2 is at offset 64. >>>>> >>>>> Thanks, >>>>> Tobias >>>>> >>>>> On 13.09.2017 21:41, Frederic Parain wrote: >>>>>> Greetings, >>>>>> Please review this changeset implementing optional field flattening >>>>>> in the interpreter and the runtime. The support for C2 is >>>>>> provided by >>>>>> Tobias in a separate changeset. >>>>>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.00/index.html >>>>>> >>>>>> Note that trying to run some programs/tests with this changeset and >>>>>> not Tobias? changeset is likely to cause crashes unless >>>>>> interpreted mode >>>>>> is forced and passing/returning values in registers is disabled. >>>>>> Thank you, >>>>>> Fred >> From forax at univ-mlv.fr Wed Sep 20 08:42:17 2017 From: forax at univ-mlv.fr (forax at univ-mlv.fr) Date: Wed, 20 Sep 2017 10:42:17 +0200 (CEST) Subject: [MVT] hotspot crash In-Reply-To: References: <968983738.3298309.1505507585093.JavaMail.zimbra@u-pem.fr> <743176707.1942146.1505887483939.JavaMail.zimbra@u-pem.fr> Message-ID: <213857237.2047402.1505896937529.JavaMail.zimbra@u-pem.fr> ----- Mail original ----- > De: "Tobias Hartmann" > ?: forax at univ-mlv.fr > Cc: "valhalla-dev" > Envoy?: Mercredi 20 Septembre 2017 09:08:00 > Objet: Re: [MVT] hotspot crash > Hi Remi, > > On 20.09.2017 08:04, forax at univ-mlv.fr wrote: >> i'm sure that the verifier was enabled (the err log [1] seems to confirm that, >> no "-noverify" on the command line) > > Yes, sure, but with -XX:+ValueTypePassFieldsAsArgs (which is the default), the > VM crashes during adapter generation > *before* the verifier catches the problem. I was just referring to the fact that > there is a bytecode generation problem > as well, that only shows up if ValueTypePassFieldsAsArgs is disabled (and the > verifier is enabled). ok, in fact your first mail was clear, i should not try to reply to a mail without my morning coffee. > > I was talking about these 3 cases: > (1) Verifier enabled and -XX:+ValueTypePassFieldsAsArgs: Crash in adapter > generation before verifier catches the problem > (2) Verifier enabled and -XX:-ValueTypePassFieldsAsArgs: VerifyError: Bad local > variable type > (3) Verifier disabled and -XX:-ValueTypePassFieldsAsArgs: > java.lang.NoClassDefFoundError > > I will fix (1) with JDK-8187679. > >> You're right that the bytecode is not valid but it should not crash if the >> verifier is enable. > > Yes, I agree. > >> It was before ValueCapableClass was renamed by Mandy, that why i think you have >> not reproduce the bug, >> i.e. in my test fr/umlv/valuetypify/test/InternalTest$Int$Value is a value type >> generated from the fr/umlv/valuetypify/test/InternalTest$Int which is a VCC for >> the VM so the class is found. > > From looking at the stack trace, I'm pretty confident that the root cause is the > same. We crash because we were unable > to resolve a value type class. That's definitely a bug. > > I can verify if you have a reproducer with the latest version. I've just renamed all occurrences of ValueCapableClass in the jar, here is the new one: http://www-igm.univ-mlv.fr/~forax/tmp/mvt/test-valuetypified-patched.jar > > Thanks, > Tobias regards, R?mi > >> ----- Mail original ----- >>> De: "Tobias Hartmann" >>> ?: "Remi Forax" , "valhalla-dev" >>> >>> Envoy?: Mardi 19 Septembre 2017 17:04:21 >>> Objet: Re: [MVT] hotspot crash >> >>> Hi Remi, >>> >>> thanks for reporting this crash! >>> >>> With a debug build, this fails with an assert [1] suggesting that we failed to >>> resolve a class. It turns out we are >>> about to create c2i and i2c adapters for the method 'plus' from >>> 'fr/umlv/valuetypify/test/InternalTest' but fail because >>> the class 'fr/umlv/valuetypify/test/InternalTest$Int$Value' is not found. >>> >>> Running with -XX:-ValueTypePassFieldsAsArgs -noverify correctly fails with a >>> NoClassDefFoundError: >>> Exception in thread "main" java.lang.NoClassDefFoundError: >>> fr/umlv/valuetypify/test/InternalTest$Int$Value >>> at fr.umlv.valuetypify.test.InternalTest.main(InternalTest.java:33) >>> >>> You are right that we should not crash in this case. I filed: >>> https://bugs.openjdk.java.net/browse/JDK-8187679 >>> >>> Running with the verifier enabled fails with [2]. I guess this is a problem with >>> your bytecode generation. >>> >>> Thanks, >>> Tobias >>> >>> [1] >>> # Internal Error >>> (/oracle/valhalla/hotspot/src/share/vm/runtime/sharedRuntime.cpp:2733), >>> pid=31260, tid=31264 >>> # assert(k != __null && >>> !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can >>> resolve klass? >>> >>> [2] >>> Exception in thread "main" java.lang.VerifyError: Bad local variable type >>> Exception Details: >>> Location: >>> >>> fr/umlv/valuetypify/test/InternalTest$Int.add(Qfr/umlv/valuetypify/test/InternalTest$Int$Value;)Qfr/umlv/valuetypify/test/InternalTest$Int$Value; >>> @4: vload >>> Reason: >>> Type 'fr/umlv/valuetypify/test/InternalTest$Int' (current frame, locals[0]) is >>> not assignable to value type >>> Current Frame: >>> bci: @4 >>> flags: { } >>> locals: { 'fr/umlv/valuetypify/test/InternalTest$Int', >>> 'fr/umlv/valuetypify/test/InternalTest$Int$Value' } >>> stack: { uninitialized 0, uninitialized 0 } >>> Bytecode: >>> 0000000: bb00 0359 cb00 b400 2fcb 01b4 002f 60b7 >>> 0000010: 0004 d300 2ecf >>> >>> at fr.umlv.valuetypify.test.InternalTest.main(InternalTest.java:33) >>> >>> >>> On 15.09.2017 22:33, Remi Forax wrote: >>>> oops, >>>> i'm doing some modifications to my bytecode rewriter, so the generated code has >>>> a good chance to be generate an invalid class, but the VM should not crash. >>>> >>>> To reproduce download the jar here: >>>> http://www-igm.univ-mlv.fr/~forax/tmp/mvt/ >>>> >>>> and run >>>> java -XX:+EnableMVT -cp test-valuetypified.jar >>>> fr.umlv.valuetypify.test.InternalTest >>>> >>>> cheers, >>>> R?mi >>>> >>>> --- >>>> >>>> ~/java/workspace/mvt/valhalla/build/linux-x86_64-normal-server-release/jdk/bin/java >>>> -XX:+EnableMVT -cp test-valuetypified.jar fr.umlv.valuetypify.test.InternalTest >>>> # >>>> # A fatal error has been detected by the Java Runtime Environment: >>>> # >>>> # SIGSEGV (0xb) at pc=0x00007f17dd170907, pid=17320, tid=17321 >>>> # >>>> # JRE version: OpenJDK Runtime Environment (10.0) (build >>>> 10-internal+0-adhoc.forax.valhalla) >>>> # Java VM: OpenJDK 64-Bit Server VM (10-internal+0-adhoc.forax.valhalla, mixed >>>> mode, compressed oops, g1 gc, linux-amd64) >>>> # Problematic frame: >>>> # V [libjvm.so+0xbd4907] ValueKlass::adr_extended_sig() const [clone >>>> .constprop.129]+0x7 >>>> # >>>> # Core dump will be written. Default location: Core dumps may be processed with >>>> "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t %P %I" (or dumping to >>>> /home/forax/git/valuetypify/core.17320) >>>> # >>>> # An error report file with more information is saved as: >>>> # /home/forax/git/valuetypify/hs_err_pid17320.log >>>> # >>>> # If you would like to submit a bug report, please visit: >>>> # http://bugreport.java.com/bugreport/crash.jsp >>>> # > >>> Aborted (core dumped) From tobias.hartmann at oracle.com Wed Sep 20 11:17:16 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Wed, 20 Sep 2017 13:17:16 +0200 Subject: [MVT] hotspot crash In-Reply-To: <213857237.2047402.1505896937529.JavaMail.zimbra@u-pem.fr> References: <968983738.3298309.1505507585093.JavaMail.zimbra@u-pem.fr> <743176707.1942146.1505887483939.JavaMail.zimbra@u-pem.fr> <213857237.2047402.1505896937529.JavaMail.zimbra@u-pem.fr> Message-ID: <15dcebdc-5b96-3433-9a27-fedf9f5dac12@oracle.com> Hi Remi, On 20.09.2017 10:42, forax at univ-mlv.fr wrote: > I've just renamed all occurrences of ValueCapableClass in the jar, > here is the new one: > http://www-igm.univ-mlv.fr/~forax/tmp/mvt/test-valuetypified-patched.jar Okay, the patched test still crashes the VM for the same reason: we are unable to load "fr/umlv/valuetypify/test/InternalTest$Int$Value". With -XX:-ValueTypePassFieldsAsArgs we fail with: Error: Unable to initialize main class fr.umlv.valuetypify.test.InternalTest Caused by: java.lang.IncompatibleClassChangeError: ValueCapableClass class 'fr.umlv.valuetypify.test.InternalTest$Int' is not a final class Here's my fix for the crash including a regression test: http://cr.openjdk.java.net/~thartmann/8187679/webrev.00/ With the fix, we fail with IncompatibleClassChangeError in both cases. Thanks, Tobias From david.simms at oracle.com Wed Sep 20 12:55:38 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Wed, 20 Sep 2017 12:55:38 +0000 Subject: hg: valhalla/valhalla/jdk: Adjust TOS state for checkcast Message-ID: <201709201255.v8KCtc9C024113@aojmv0008.oracle.com> Changeset: b6a4294ce649 Author: dsimms Date: 2017-09-20 14:52 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/b6a4294ce649 Adjust TOS state for checkcast ! src/java.base/share/classes/jdk/experimental/bytecode/BasicClassBuilder.java ! src/java.base/share/classes/jdk/experimental/bytecode/CodeBuilder.java ! src/java.base/share/classes/jdk/experimental/bytecode/TypedCodeBuilder.java From frederic.parain at oracle.com Wed Sep 20 13:11:07 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Wed, 20 Sep 2017 09:11:07 -0400 Subject: RFR(M): optional flattening - interpreter/runtime part In-Reply-To: References: <09F1143C-A832-4158-9E98-7CD21A626457@oracle.com> <72b8d1d1-153f-0ef5-5c3c-46411bde7ab5@oracle.com> <0F3D3B61-F3F6-4AE2-9BD6-0ACEDA5D7C84@oracle.com> <90ff5c9a-7b37-ebbf-4193-bfd301d63944@oracle.com> <4860F6B1-CC35-423C-95A8-AEEAB5FB0C72@oracle.com> <70686ccb-a93b-3c55-f718-24899c67ac0c@oracle.com> Message-ID: <1FA6BCCF-3A0B-4278-8691-33050FA560D5@oracle.com> Tobias, Mr Simms, Thank you for the reviews, I?ve fixed all points reported by Tobias. Fred > On Sep 20, 2017, at 04:27, David Simms wrote: > > > After Tobias's comments, looks good ! > > > On 20/09/17 09:16, Tobias Hartmann wrote: >> Hi Fred, >> >> On 19.09.2017 23:24, Frederic Parain wrote: >>> http://cr.openjdk.java.net/~fparain/optional-flattening-push/webrev.02/index.html >> >> Your changes look good to me. I tested my patches for 8185556 and 8186716 on top and all tests pass. >> >> Here are some minor suggestions: >> >> classFileParser.cpp: >> - line 3991: comment indentation is broken >> >> interpreterRuntime.cpp >> - line 279: missing whitespace after "," >> - line 347 and 358: variable "res" is declared twice with different types >> >> valueKlass.cpp >> - line 317: there is an indentation problem in the if true branch >> >> No need to send an updated webrev. >> >> Thanks, >> Tobias >> >>>> On Sep 14, 2017, at 11:03, Tobias Hartmann wrote: >>>> >>>> Hi Fred, >>>> >>>> I've just verified that the problem is solved with your latest webrev! >>>> >>>> Thanks, >>>> Tobias >>>> >>>> On 14.09.2017 16:50, Frederic Parain wrote: >>>>> Tobias, >>>>> Thank you for catching that. >>>>> There?s a bug in the layout computation, optional flattening code moves non-flattened >>>>> values from the value types section of the layout to the nonstatic_oop section, but the size >>>>> of the later was not updated accordingly. >>>>> Here?s an updated webrev fixing this issue: >>>>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.01/index.html >>>>> Regards, >>>>> Fred >>>>>> On Sep 14, 2017, at 03:46, Tobias Hartmann wrote: >>>>>> >>>>>> Hi Fred, >>>>>> >>>>>> there seems to be a problem with the field layout: >>>>>> >>>>>> compiler.valhalla.valuetypes.MyValue1: field layout >>>>>> @ 16 --- instance fields start --- >>>>>> @ 24 "x" I >>>>>> @ 16 "y" J >>>>>> @ 32 "z" S >>>>>> @ 40 "o" Ljava.lang.Integer; >>>>>> @ 48 "oa" [I >>>>>> @ 56 "v1" Qcompiler.valhalla.valuetypes.MyValue2; >>>>>> @ 64 "v2" Qcompiler.valhalla.valuetypes.MyValue2; >>>>>> @ 28 "c" I >>>>>> @ 56 --- instance fields end --- >>>>>> @ 56 --- instance ends --- >>>>>> @176 --- static fields start --- >>>>>> @192 "s" I >>>>>> @184 "sf" J >>>>>> @176 "v3" Qcompiler.valhalla.valuetypes.MyValue2; >>>>>> @200 --- static fields end --- >>>>>> >>>>>> OopMapBlocks: 1 / 4 >>>>>> Offset: 40 - 64 Count: 4 >>>>>> >>>>>> "instance fields end" points to offset 56 which is not correct because the non-flattened field v2 is at offset 64. >>>>>> >>>>>> Thanks, >>>>>> Tobias >>>>>> >>>>>> On 13.09.2017 21:41, Frederic Parain wrote: >>>>>>> Greetings, >>>>>>> Please review this changeset implementing optional field flattening >>>>>>> in the interpreter and the runtime. The support for C2 is provided by >>>>>>> Tobias in a separate changeset. >>>>>>> http://cr.openjdk.java.net/~fparain/optional-flattening-interp/webrev.00/index.html >>>>>>> Note that trying to run some programs/tests with this changeset and >>>>>>> not Tobias? changeset is likely to cause crashes unless interpreted mode >>>>>>> is forced and passing/returning values in registers is disabled. >>>>>>> Thank you, >>>>>>> Fred >>> > From lois.foltan at oracle.com Wed Sep 20 13:13:40 2017 From: lois.foltan at oracle.com (Lois Foltan) Date: Wed, 20 Sep 2017 09:13:40 -0400 Subject: Review Request: JDK-8186874: [MVT] Method name generated by ValueType is illegal In-Reply-To: References: Message-ID: On 9/19/2017 7:26 PM, mandy chung wrote: > Webrev: > http://cr.openjdk.java.net/~mchung/valhalla/webrevs/8186874/webrev.00/ > > This patch fixes the bytecode generation with a legal method name.? I > test with the runtime/valuetypes and compiler/valuetypes tests with > -noverify flag removed except ValueOops.java and VboxUnbox.java tests. > ValueOops.java and VboxUnbox.java tests fail with a different error > when verifier is enabled.? I'll look into JDK-8187696 separately. Thanks Mandy, I can look at these.? I know the VerifyError for VboxUnbox.java is expected due to the test's testIncorrectBoxing() method which tries to use the vunbox bytecode with an illegal type. I added valhalla/valuetypes/verifier/VunboxErrorIndex.java to cover testing for this issue when -verify is specified.? I will double check with your fix to make sure. Lois > > Tobias - the webrev includes your patch for JDK-8187670 to verify my > fix.? Do you prefer to leave it for you to push separately?? Or I can > push it for you? > > thanks > Mandy From tobias.hartmann at oracle.com Wed Sep 20 13:46:35 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Wed, 20 Sep 2017 15:46:35 +0200 Subject: RFR(S): 8187679: [MVT] VM crashes with "assert(k != __null && !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can resolve klass?" Message-ID: Hi, please review the following patch: https://bugs.openjdk.java.net/browse/JDK-8187679 http://cr.openjdk.java.net/~thartmann/8187679/webrev.00/ With -XX:+ValueTypePassFieldsAsArgs (which is the default), we need to resolve all value type arguments when generating adapters for a method to collect the field types. If the klass cannot be resolved, we currently fail with an assert or crash in product. If klass lookup during adapter generation fails, we should pass the exception up and exit with a ClassNotFoundException. All tests pass. Thanks, Tobias From frederic.parain at oracle.com Wed Sep 20 13:52:23 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Wed, 20 Sep 2017 09:52:23 -0400 Subject: RFR(S): 8187679: [MVT] VM crashes with "assert(k != __null && !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can resolve klass?" In-Reply-To: References: Message-ID: <270A6F0D-F6CC-4CCF-9E6A-D527A32DB300@oracle.com> Looks good to me. Note: ValueTypePassFieldsAsArgs and ValueTypeReturnedAsFields are true by default, should they only be true if the VM is not running in interpreted only mode? (May be a change for a different CR). Fred > On Sep 20, 2017, at 09:46, Tobias Hartmann wrote: > > Hi, > > please review the following patch: > https://bugs.openjdk.java.net/browse/JDK-8187679 > http://cr.openjdk.java.net/~thartmann/8187679/webrev.00/ > > With -XX:+ValueTypePassFieldsAsArgs (which is the default), we need to resolve all value type arguments when generating adapters for a method to collect the field types. If the klass cannot be resolved, we currently fail with an assert or crash in product. > > If klass lookup during adapter generation fails, we should pass the exception up and exit with a ClassNotFoundException. > > All tests pass. > > Thanks, > Tobias From tobias.hartmann at oracle.com Wed Sep 20 15:12:43 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Wed, 20 Sep 2017 17:12:43 +0200 Subject: RFR(S): 8187679: [MVT] VM crashes with "assert(k != __null && !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can resolve klass?" In-Reply-To: <270A6F0D-F6CC-4CCF-9E6A-D527A32DB300@oracle.com> References: <270A6F0D-F6CC-4CCF-9E6A-D527A32DB300@oracle.com> Message-ID: Hi Fred, On 20.09.2017 15:52, Frederic Parain wrote: > Looks good to me. Thanks for looking at this. > Note: ValueTypePassFieldsAsArgs and ValueTypeReturnedAsFields are true by > default, should they only be true if the VM is not running in interpreted only mode? > (May be a change for a different CR). Yes, this is already on my (ever growing) TODO list. I'll fix it with a subsequent change. They should also be disabled if EnableMVT and EnableValhalla are false. Thanks, Tobias >> On Sep 20, 2017, at 09:46, Tobias Hartmann wrote: >> >> Hi, >> >> please review the following patch: >> https://bugs.openjdk.java.net/browse/JDK-8187679 >> http://cr.openjdk.java.net/~thartmann/8187679/webrev.00/ >> >> With -XX:+ValueTypePassFieldsAsArgs (which is the default), we need to resolve all value type arguments when generating adapters for a method to collect the field types. If the klass cannot be resolved, we currently fail with an assert or crash in product. >> >> If klass lookup during adapter generation fails, we should pass the exception up and exit with a ClassNotFoundException. >> >> All tests pass. >> >> Thanks, >> Tobias > From david.holmes at oracle.com Thu Sep 21 04:29:42 2017 From: david.holmes at oracle.com (David Holmes) Date: Thu, 21 Sep 2017 14:29:42 +1000 Subject: [Nestmates] RFR 8187567: [Nestmates] Enable nestmate changes in javac by default In-Reply-To: <4d423b61-2cb3-acc5-9441-1566e3096fb6@oracle.com> References: <3e9091b9-f52c-4180-f787-f3d3e4b65b2b@oracle.com> <4d423b61-2cb3-acc5-9441-1566e3096fb6@oracle.com> Message-ID: I'm preparing to push these changes. I've now performed the following test runs: - hotspot - runtime - tier_1 - tier_2_runtime - tier_2_runtime_platform_agnostic - tier3_runtime - jdk - tier1 - tier2 - tier3 I've created four bugs in relation to tests that need modification: JDK-8187698 [Nestmates][Testbug] Test java/lang/invoke/AccessControlTest.java needs updating for nestmates JDK-8187655 [Nestmates][Testbug] jdk.lambda.separate.ClassToInterfaceConverter needs updating for changed invocation rules JDK-8187645 [Nestmates] Update Pack200 and tests, to recognize and process new Nestmate attributes JDK-8187607 [Testbug] Atomic*FieldUpdaterTest.checkPrivateAccess uses nested classes and four corresponding sub-tasks (sent out for review here) to either add the tests to the ProblemList.txt file, or else disable specific failing subtests. I plan to push all these together as the final set of nestmate changes before we transition to the new consolidated repo layout. Thanks, David On 15/09/2017 7:02 PM, David Holmes wrote: > On 15/09/2017 6:15 PM, Maurizio Cimadamore wrote: >> Looks great. > > Thanks for taking a look Maurizio! > >> The only thing we might need (not now, maybe later) is a 'reverse' >> javac flag that forces generation of accessor and/or invokevirtual on >> private in case you want to generate classfile with latest version >> number but with old properties. > > Yes. If we need it I'll add it. It is a pity the -XDxxx can't be more > like the hotspot -XX:+xxx and -XX:-xxx flags to allow for enable/disable. > > Cheers, > David > >> Cheers >> Maurizio >> >> >> On 15/09/17 08:12, David Holmes wrote: >>> bug: https://bugs.openjdk.java.net/browse/JDK-8187567 >>> webrev**: http://cr.openjdk.java.net/~dholmes/8187567/ >>> >>> ** test/runtime/Nestmates/privateConstructors/TestInvokeSpecial.java >>> contains additional changes for 8187536. They will be checked in >>> separately. >>> >>> While nestmates will ultimately be associated with a future >>> source/target version of the JDK and an updated classfile version >>> (see JDK-8187302) we want to be able to enable them by default as-if >>> executing in that future release. >>> >>> The primary changes are confined to javac and are very straight-forward: >>> - generate the nestmate attributes in the classfile >>> - use virtual invocation bytecodes for private method invocations >>> - don't generate private accessors >>> >>> With this change in place we can update the hotspot nestmate tests to >>> not provide explicit "@compile" directives. We also add a test to >>> verify that invokeinterface is rejected for private interface methods >>> in pre-nestmate classfile versions (v52 works fine for this). >>> >>> We can now build the JDK with the new nestmate features enabled, and >>> run tests without needing to provide additional javac options. >>> >>> I also added a missing testcase in >>> test/runtime/Nestmates/privateMethods/TestInvoke.java (just to ensure >>> there's no unexpected difference with this$0 usage). >>> >>> Thanks, >>> David >> From david.holmes at oracle.com Thu Sep 21 05:10:42 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 05:10:42 +0000 Subject: hg: valhalla/valhalla: Merge Message-ID: <201709210510.v8L5AggN029265@aojmv0008.oracle.com> Changeset: 4eb9ce5055ea Author: dholmes Date: 2017-09-20 23:55 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/4eb9ce5055ea Merge ! make/CompileJavaModules.gmk ! make/Docs.gmk From david.holmes at oracle.com Thu Sep 21 05:10:48 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 05:10:48 +0000 Subject: hg: valhalla/valhalla/corba: Merge Message-ID: <201709210510.v8L5AmZu029398@aojmv0008.oracle.com> Changeset: 57bf3f39a3c0 Author: dholmes Date: 2017-09-20 23:55 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/corba/rev/57bf3f39a3c0 Merge From david.holmes at oracle.com Thu Sep 21 05:10:54 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 05:10:54 +0000 Subject: hg: valhalla/valhalla/hotspot: Merge Message-ID: <201709210510.v8L5AsPr029522@aojmv0008.oracle.com> Changeset: 2dfe246179c0 Author: dholmes Date: 2017-09-20 23:55 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/2dfe246179c0 Merge ! src/cpu/aarch64/vm/globals_aarch64.hpp ! src/cpu/x86/vm/globals_x86.hpp ! src/cpu/x86/vm/interp_masm_x86.cpp - src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/MiscUtils.java - src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/utils/Timer.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/LoaderConstraintEntry.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/LoaderConstraintTable.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/PlaceholderEntry.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/PlaceholderTable.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/ProtectionDomainCacheEntry.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/memory/ProtectionDomainEntry.java - src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/TwoOopHashtable.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/micro/benchmarks/ArrayDuplicationBenchmark.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/micro/benchmarks/ArrayListBenchmark.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/micro/benchmarks/BoxingBenchmark.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/micro/benchmarks/ConcurrentSkipListBenchmark.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/micro/benchmarks/GuardedIntrinsicBenchmark.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/micro/benchmarks/HashBenchmark.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/micro/benchmarks/MathFunctionBenchmark.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/micro/benchmarks/SimpleSyncBenchmark.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/micro/benchmarks/package-info.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/org/graalvm/compiler/microbenchmarks/graal/TestJMH.java - src/os_cpu/solaris_x86/vm/solaris_x86_32.il - src/os_cpu/solaris_x86/vm/solaris_x86_32.s ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.cpp ! src/share/vm/classfile/vmSymbols.hpp - src/share/vm/gc/g1/workerDataArray.cpp - src/share/vm/gc/g1/workerDataArray.hpp - src/share/vm/gc/g1/workerDataArray.inline.hpp ! src/share/vm/gc/parallel/psParallelCompact.cpp ! src/share/vm/gc/serial/markSweep.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/interpreter/rewriter.cpp ! src/share/vm/jvmci/jvmciCompilerToVM.cpp ! src/share/vm/logging/logTag.hpp ! src/share/vm/oops/arrayKlass.cpp ! src/share/vm/oops/arrayKlass.hpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/cpCache.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/klassVtable.cpp ! src/share/vm/oops/klassVtable.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/oops/methodData.cpp ! src/share/vm/oops/objArrayKlass.cpp ! src/share/vm/oops/oop.cpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/oops/oopsHierarchy.hpp ! src/share/vm/opto/classes.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/macroArrayCopy.cpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/precompiled/precompiled.hpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/whitebox.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/handles.hpp ! src/share/vm/runtime/javaCalls.cpp ! src/share/vm/runtime/reflection.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/utilities/globalDefinitions.hpp - test/native/gc/g1/test_workerDataArray.cpp ! test/runtime/CommandLine/OptionsValidation/TestOptionsWithRanges.java - test/runtime/SharedArchiveFile/LargeSharedSpace.java - test/runtime/SharedArchiveFile/LimitSharedSizes.java From david.holmes at oracle.com Thu Sep 21 05:11:00 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 05:11:00 +0000 Subject: hg: valhalla/valhalla/jaxp: Merge Message-ID: <201709210511.v8L5B0GQ029589@aojmv0008.oracle.com> Changeset: 45b34575a89c Author: dholmes Date: 2017-09-20 23:55 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/jaxp/rev/45b34575a89c Merge - src/java.xml/share/classes/com/sun/org/apache/bcel/internal/Constants.java - src/java.xml/share/classes/com/sun/org/apache/bcel/internal/ExceptionConstants.java - src/java.xml/share/classes/com/sun/org/apache/bcel/internal/generic/InstructionConstants.java - src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassLoader.java - src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassLoaderRepository.java - src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/ClassVector.java - src/java.xml/share/classes/com/sun/org/apache/bcel/internal/util/SecuritySupport.java - src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/DTMConfigurationException.java From david.holmes at oracle.com Thu Sep 21 05:11:06 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 05:11:06 +0000 Subject: hg: valhalla/valhalla/jaxws: Merge Message-ID: <201709210511.v8L5B6c0029649@aojmv0008.oracle.com> Changeset: 3992ecce558b Author: dholmes Date: 2017-09-20 23:55 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/jaxws/rev/3992ecce558b Merge From david.holmes at oracle.com Thu Sep 21 05:11:12 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 05:11:12 +0000 Subject: hg: valhalla/valhalla/jdk: Merge Message-ID: <201709210511.v8L5BCqx029715@aojmv0008.oracle.com> Changeset: 2965bd87aeef Author: dholmes Date: 2017-09-20 23:55 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/2965bd87aeef Merge ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java - src/java.base/share/classes/jdk/internal/module/SystemModuleFinder.java ! src/java.base/share/classes/jdk/internal/reflect/Reflection.java ! src/java.base/share/classes/module-info.java - src/java.base/share/classes/sun/net/www/protocol/https/DefaultHostnameVerifier.java - src/java.base/share/classes/sun/util/locale/LocaleEquivalentMaps.java ! src/java.base/share/native/libverify/check_code.c - src/jdk.security.auth/share/classes/com/sun/security/auth/PolicyFile.java - src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisPrincipal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/X500Principal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisLoginModule.java - src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisSystem.java - src/jdk.security.auth/solaris/native/libjaas/Solaris.c - test/java/lang/ClassLoader/deadlock/Alice.java - test/java/lang/ClassLoader/deadlock/Bob.java - test/java/lang/ClassLoader/deadlock/Starter.java - test/java/lang/ClassLoader/deadlock/SupAlice.java - test/java/lang/ClassLoader/deadlock/SupBob.java - test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh - test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh - test/java/lang/ClassLoader/getResource/GetResource.sh - test/java/lang/System/MacEncoding/MacJNUEncoding.sh - test/java/util/Locale/tools/EquivMapsGenerator.java - test/java/util/Locale/tools/language-subtag-registry.txt - test/tools/launcher/modules/patch/systemmodules/src1/java.base/jdk/internal/modules/SystemModules.java From david.holmes at oracle.com Thu Sep 21 05:11:18 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 05:11:18 +0000 Subject: hg: valhalla/valhalla/langtools: Merge Message-ID: <201709210511.v8L5BIHG029794@aojmv0008.oracle.com> Changeset: d31430e24f6e Author: dholmes Date: 2017-09-20 23:55 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/d31430e24f6e Merge ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java - test/jdk/jshell/MergedTabShiftTabCommandTest.java - test/jdk/jshell/MergedTabShiftTabExpressionTest.java From david.holmes at oracle.com Thu Sep 21 05:11:23 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 05:11:23 +0000 Subject: hg: valhalla/valhalla/nashorn: Merge Message-ID: <201709210511.v8L5BOkX029854@aojmv0008.oracle.com> Changeset: b9781e5119f6 Author: dholmes Date: 2017-09-20 23:55 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/nashorn/rev/b9781e5119f6 Merge - src/jdk.scripting.nashorn.shell/share/classes/jdk/nashorn/tools/jjs/EditPad.java From david.holmes at oracle.com Thu Sep 21 07:32:22 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 07:32:22 +0000 Subject: hg: valhalla/valhalla/hotspot: 2 new changesets Message-ID: <201709210732.v8L7WM6x006326@aojmv0008.oracle.com> Changeset: 64bc704066cd Author: dholmes Date: 2017-09-21 03:02 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/64bc704066cd 8187536: [Nestmates] Assertion failure when the compiler thread appears to trigger classloading Summary: move the assertion deeper into the classloading code ! src/share/vm/classfile/systemDictionary.cpp Changeset: 45cc25e93c6a Author: dholmes Date: 2017-09-21 03:03 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/45cc25e93c6a 8187567: [Nestmates] Enable nestmate changes in javac by default Summary: Remove compiler directives from tests; add new test for invokeinterface versus invokespecial Reviewed-by: mcimadamore ! test/runtime/Nestmates/membership/TestNestmateMembership.java ! test/runtime/Nestmates/privateConstructors/TestConstructorHierarchy.java ! test/runtime/Nestmates/privateConstructors/TestInvokeSpecial.java ! test/runtime/Nestmates/privateConstructors/TestMethodHandles.java ! test/runtime/Nestmates/privateFields/TestMethodHandles.java ! test/runtime/Nestmates/privateFields/TestPrivateField.java ! test/runtime/Nestmates/privateFields/TestReflection.java + test/runtime/Nestmates/privateMethods/StaticIfaceError.jcod + test/runtime/Nestmates/privateMethods/StaticIfaceGood.jcod ! test/runtime/Nestmates/privateMethods/TestInvoke.java ! test/runtime/Nestmates/privateMethods/TestInvokeErrors.java ! test/runtime/Nestmates/privateMethods/TestInvokeHierarchy.java + test/runtime/Nestmates/privateMethods/TestInvokeInterface.java ! test/runtime/Nestmates/privateMethods/TestMethodHandles.java ! test/runtime/Nestmates/privateMethods/TestReflection.java ! test/runtime/Nestmates/privateStaticFields/TestMethodHandles.java ! test/runtime/Nestmates/privateStaticFields/TestPrivateStaticField.java ! test/runtime/Nestmates/privateStaticFields/TestReflection.java ! test/runtime/Nestmates/privateStaticMethods/TestInvokeStatic.java ! test/runtime/Nestmates/privateStaticMethods/TestMethodHandles.java ! test/runtime/Nestmates/privateStaticMethods/TestReflection.java From david.holmes at oracle.com Thu Sep 21 07:32:39 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 07:32:39 +0000 Subject: hg: valhalla/valhalla/jdk: 3 new changesets Message-ID: <201709210732.v8L7WdBW006552@aojmv0008.oracle.com> Changeset: 7bf25049c9bd Author: dholmes Date: 2017-09-21 03:18 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/7bf25049c9bd 8187663: [Nestmates] Add failing pack200 tests to ProblemList.txt 8187699: [Nestmates] Add java/lang/invoke/AccessControlTest.java to ProblemList.txt ! test/ProblemList.txt Changeset: 984e5cc7b50a Author: dholmes Date: 2017-09-21 03:20 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/984e5cc7b50a 8187656: [Nestmates] Exclude vm.InterfaceAccessFlagsTest.testPrivateMethodCall() subtest ! test/jdk/lambda/vm/InterfaceAccessFlagsTest.java Changeset: 2e35275e4eea Author: dholmes Date: 2017-09-21 03:21 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/2e35275e4eea 8187644: [Nestmates] Disable failing Atomic*FieldUpdaterTest.java subtests ! test/java/util/concurrent/tck/AtomicIntegerFieldUpdaterTest.java ! test/java/util/concurrent/tck/AtomicLongFieldUpdaterTest.java ! test/java/util/concurrent/tck/AtomicReferenceFieldUpdaterTest.java From david.holmes at oracle.com Thu Sep 21 07:32:45 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Thu, 21 Sep 2017 07:32:45 +0000 Subject: hg: valhalla/valhalla/langtools: 8187567: [Nestmates] Enable nestmate changes in javac by default Message-ID: <201709210732.v8L7WjmY006641@aojmv0008.oracle.com> Changeset: 814d50024bd7 Author: dholmes Date: 2017-09-21 01:21 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/814d50024bd7 8187567: [Nestmates] Enable nestmate changes in javac by default Summary: disable private accessors and use virtual invocations for private methods when supported by the target (currently jdk10) Reviewed-by: mcimadamore ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java From david.simms at oracle.com Thu Sep 21 09:38:35 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Thu, 21 Sep 2017 09:38:35 +0000 Subject: hg: valhalla/valhalla/jdk: Fix: Use typeHelper Message-ID: <201709210938.v8L9cZUD005522@aojmv0008.oracle.com> Changeset: b13c2582053e Author: dsimms Date: 2017-09-21 11:35 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/b13c2582053e Fix: Use typeHelper ! src/java.base/share/classes/jdk/experimental/bytecode/TypedCodeBuilder.java From maurizio.cimadamore at oracle.com Thu Sep 21 10:23:53 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 21 Sep 2017 11:23:53 +0100 Subject: [Nestmates] RFR: 8187644 [Nestmates] Exclude Atomic*FieldUpdaterTest.java In-Reply-To: <401e960c-22f8-ffcf-6f6d-87252d92e045@oracle.com> References: <401e960c-22f8-ffcf-6f6d-87252d92e045@oracle.com> Message-ID: Looks good Maurizio On 19/09/17 11:03, David Holmes wrote: > Bug: https://bugs.openjdk.java.net/browse/JDK-8187644 > webrev: http://cr.openjdk.java.net/~dholmes/8187644/webrev/ > > Edited the tests to exclude subtests that cause problems. Test fix > being applied upstream: https://bugs.openjdk.java.net/browse/JDK-8187607 > > Thanks, > David From maurizio.cimadamore at oracle.com Thu Sep 21 10:24:21 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 21 Sep 2017 11:24:21 +0100 Subject: [Nestmates] RFR: 8187656 [Nestmates] Exclude vm.InterfaceAccessFlagsTest.testPrivateMethodCall() subtest In-Reply-To: References: Message-ID: <1dd2909a-f5d1-36f2-44ae-6a5f3b0be4f6@oracle.com> Looks good Maurizio On 19/09/17 11:08, David Holmes wrote: > bug: https://bugs.openjdk.java.net/browse/JDK-8187656 > webrev: http://cr.openjdk.java.net/~dholmes/8187656/webrev/ > > Comment out failing test. > > Thanks, > David From maurizio.cimadamore at oracle.com Thu Sep 21 10:24:44 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 21 Sep 2017 11:24:44 +0100 Subject: [Nestmates] RFR: 8187663 [Nestmates] Add failing pack200 tests to ProblemList.txt In-Reply-To: <67db106f-8ff7-fa06-e323-1ca143be662c@oracle.com> References: <67db106f-8ff7-fa06-e323-1ca143be662c@oracle.com> Message-ID: <7ff00e48-6580-b8d3-c415-ed6640c5324d@oracle.com> Looks good Maurizio On 19/09/17 11:15, David Holmes wrote: > Bug: https://bugs.openjdk.java.net/browse/JDK-8187663 > webrev: http://cr.openjdk.java.net/~dholmes/8187663/webrev/ > > Add failing tests to ProblemList.txt > > Thanks, > David From maurizio.cimadamore at oracle.com Thu Sep 21 10:31:58 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 21 Sep 2017 11:31:58 +0100 Subject: [Nestmates] RFR 8187567: [Nestmates] Enable nestmate changes in javac by default In-Reply-To: References: <3e9091b9-f52c-4180-f787-f3d3e4b65b2b@oracle.com> <4d423b61-2cb3-acc5-9441-1566e3096fb6@oracle.com> Message-ID: Thanks David. I've approved the three reviews I've seen related to test disabling - but I realize you have already pushed them. That's ok. Thanks for filing the test bugs to keep track for follow up activity. Maurizio On 21/09/17 05:29, David Holmes wrote: > I'm preparing to push these changes. I've now performed the following > test runs: > - hotspot > ?? - runtime > ?? - tier_1 > ?? - tier_2_runtime > ?? - tier_2_runtime_platform_agnostic > ?? - tier3_runtime > - jdk > ?? - tier1 > ?? - tier2 > ?? - tier3 > > I've created four bugs in relation to tests that need modification: > > JDK-8187698 [Nestmates][Testbug] Test > java/lang/invoke/AccessControlTest.java needs updating for nestmates > > JDK-8187655 [Nestmates][Testbug] > jdk.lambda.separate.ClassToInterfaceConverter needs updating for > changed invocation rules > > JDK-8187645 [Nestmates] Update Pack200 and tests, to recognize and > process new Nestmate attributes > > JDK-8187607 [Testbug] Atomic*FieldUpdaterTest.checkPrivateAccess uses > nested classes > > and four corresponding sub-tasks (sent out for review here) to either > add the tests to the ProblemList.txt file, or else disable specific > failing subtests. > > I plan to push all these together as the final set of nestmate changes > before we transition to the new consolidated repo layout. > > Thanks, > David > > On 15/09/2017 7:02 PM, David Holmes wrote: >> On 15/09/2017 6:15 PM, Maurizio Cimadamore wrote: >>> Looks great. >> >> Thanks for taking a look Maurizio! >> >>> The only thing we might need (not now, maybe later) is a 'reverse' >>> javac flag that forces generation of accessor and/or invokevirtual >>> on private in case you want to generate classfile with latest >>> version number but with old properties. >> >> Yes. If we need it I'll add it. It is a pity the -XDxxx can't be more >> like the hotspot -XX:+xxx and -XX:-xxx flags to allow for >> enable/disable. >> >> Cheers, >> David >> >>> Cheers >>> Maurizio >>> >>> >>> On 15/09/17 08:12, David Holmes wrote: >>>> bug: https://bugs.openjdk.java.net/browse/JDK-8187567 >>>> webrev**: http://cr.openjdk.java.net/~dholmes/8187567/ >>>> >>>> ** >>>> test/runtime/Nestmates/privateConstructors/TestInvokeSpecial.java >>>> contains additional changes for 8187536. They will be checked in >>>> separately. >>>> >>>> While nestmates will ultimately be associated with a future >>>> source/target version of the JDK and an updated classfile version >>>> (see JDK-8187302) we want to be able to enable them by default >>>> as-if executing in that future release. >>>> >>>> The primary changes are confined to javac and are very >>>> straight-forward: >>>> - generate the nestmate attributes in the classfile >>>> - use virtual invocation bytecodes for private method invocations >>>> - don't generate private accessors >>>> >>>> With this change in place we can update the hotspot nestmate tests >>>> to not provide explicit "@compile" directives. We also add a test >>>> to verify that invokeinterface is rejected for private interface >>>> methods in pre-nestmate classfile versions (v52 works fine for this). >>>> >>>> We can now build the JDK with the new nestmate features enabled, >>>> and run tests without needing to provide additional javac options. >>>> >>>> I also added a missing testcase in >>>> test/runtime/Nestmates/privateMethods/TestInvoke.java (just to >>>> ensure there's no unexpected difference with this$0 usage). >>>> >>>> Thanks, >>>> David >>> From david.holmes at oracle.com Thu Sep 21 11:33:06 2017 From: david.holmes at oracle.com (David Holmes) Date: Thu, 21 Sep 2017 21:33:06 +1000 Subject: [Nestmates] RFR 8187567: [Nestmates] Enable nestmate changes in javac by default In-Reply-To: References: <3e9091b9-f52c-4180-f787-f3d3e4b65b2b@oracle.com> <4d423b61-2cb3-acc5-9441-1566e3096fb6@oracle.com> Message-ID: <3ca60d95-8c88-5390-cfbb-c9a78bdd7186@oracle.com> On 21/09/2017 8:31 PM, Maurizio Cimadamore wrote: > Thanks David. > > I've approved the three reviews I've seen related to test disabling - > but I realize you have already pushed them. That's ok. Thanks Maurizio! David > Thanks for filing the test bugs to keep track for follow up activity. > > Maurizio > > > > On 21/09/17 05:29, David Holmes wrote: >> I'm preparing to push these changes. I've now performed the following >> test runs: >> - hotspot >> ?? - runtime >> ?? - tier_1 >> ?? - tier_2_runtime >> ?? - tier_2_runtime_platform_agnostic >> ?? - tier3_runtime >> - jdk >> ?? - tier1 >> ?? - tier2 >> ?? - tier3 >> >> I've created four bugs in relation to tests that need modification: >> >> JDK-8187698 [Nestmates][Testbug] Test >> java/lang/invoke/AccessControlTest.java needs updating for nestmates >> >> JDK-8187655 [Nestmates][Testbug] >> jdk.lambda.separate.ClassToInterfaceConverter needs updating for >> changed invocation rules >> >> JDK-8187645 [Nestmates] Update Pack200 and tests, to recognize and >> process new Nestmate attributes >> >> JDK-8187607 [Testbug] Atomic*FieldUpdaterTest.checkPrivateAccess uses >> nested classes >> >> and four corresponding sub-tasks (sent out for review here) to either >> add the tests to the ProblemList.txt file, or else disable specific >> failing subtests. >> >> I plan to push all these together as the final set of nestmate changes >> before we transition to the new consolidated repo layout. >> >> Thanks, >> David >> >> On 15/09/2017 7:02 PM, David Holmes wrote: >>> On 15/09/2017 6:15 PM, Maurizio Cimadamore wrote: >>>> Looks great. >>> >>> Thanks for taking a look Maurizio! >>> >>>> The only thing we might need (not now, maybe later) is a 'reverse' >>>> javac flag that forces generation of accessor and/or invokevirtual >>>> on private in case you want to generate classfile with latest >>>> version number but with old properties. >>> >>> Yes. If we need it I'll add it. It is a pity the -XDxxx can't be more >>> like the hotspot -XX:+xxx and -XX:-xxx flags to allow for >>> enable/disable. >>> >>> Cheers, >>> David >>> >>>> Cheers >>>> Maurizio >>>> >>>> >>>> On 15/09/17 08:12, David Holmes wrote: >>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8187567 >>>>> webrev**: http://cr.openjdk.java.net/~dholmes/8187567/ >>>>> >>>>> ** >>>>> test/runtime/Nestmates/privateConstructors/TestInvokeSpecial.java >>>>> contains additional changes for 8187536. They will be checked in >>>>> separately. >>>>> >>>>> While nestmates will ultimately be associated with a future >>>>> source/target version of the JDK and an updated classfile version >>>>> (see JDK-8187302) we want to be able to enable them by default >>>>> as-if executing in that future release. >>>>> >>>>> The primary changes are confined to javac and are very >>>>> straight-forward: >>>>> - generate the nestmate attributes in the classfile >>>>> - use virtual invocation bytecodes for private method invocations >>>>> - don't generate private accessors >>>>> >>>>> With this change in place we can update the hotspot nestmate tests >>>>> to not provide explicit "@compile" directives. We also add a test >>>>> to verify that invokeinterface is rejected for private interface >>>>> methods in pre-nestmate classfile versions (v52 works fine for this). >>>>> >>>>> We can now build the JDK with the new nestmate features enabled, >>>>> and run tests without needing to provide additional javac options. >>>>> >>>>> I also added a missing testcase in >>>>> test/runtime/Nestmates/privateMethods/TestInvoke.java (just to >>>>> ensure there's no unexpected difference with this$0 usage). >>>>> >>>>> Thanks, >>>>> David >>>> > From rwestrel at redhat.com Thu Sep 21 11:57:39 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 21 Sep 2017 13:57:39 +0200 Subject: RFR(S): 8187679: [MVT] VM crashes with "assert(k != __null && !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can resolve klass?" In-Reply-To: References: Message-ID: > http://cr.openjdk.java.net/~thartmann/8187679/webrev.00/ That looks good to me. Roland. From rwestrel at redhat.com Thu Sep 21 12:06:24 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 21 Sep 2017 14:06:24 +0200 Subject: RFR(S): 8186716: [MVT] C2 crashes with "assert(!n->is_ValueType()) failed: value types should not be split through phis" In-Reply-To: <91fadd5e-8534-252c-4818-16ae9350f61f@oracle.com> References: <91fadd5e-8534-252c-4818-16ae9350f61f@oracle.com> Message-ID: > http://cr.openjdk.java.net/~thartmann/8186716/webrev.00/ That looks reasonable to me. Why isn't a GrowableArray good enough anymore to keep track of value type nodes? Roland. From tobias.hartmann at oracle.com Thu Sep 21 12:22:41 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Thu, 21 Sep 2017 14:22:41 +0200 Subject: RFR(S): 8186716: [MVT] C2 crashes with "assert(!n->is_ValueType()) failed: value types should not be split through phis" In-Reply-To: References: <91fadd5e-8534-252c-4818-16ae9350f61f@oracle.com> Message-ID: <216f41f7-d038-f966-0139-0d989eb65b4e@oracle.com> Hi Roland, thanks for the review! On 21.09.2017 14:06, Roland Westrelin wrote: > That looks reasonable to me. Why isn't a GrowableArray good enough > anymore to keep track of value type nodes? That's because with non-flattened value type fields (see my changes for 8185556), we need to "recursively" scalarize value types in safepoints. While processing a value type node in Compile::process_value_types(), other value type nodes that are on the _value_type_nodes list may become dead and are removed from the list screwing up the GrowableArray iterator. Using a node list is the easiest way to solve this. Thanks, Tobias From tobias.hartmann at oracle.com Thu Sep 21 12:23:03 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Thu, 21 Sep 2017 14:23:03 +0200 Subject: RFR(S): 8187679: [MVT] VM crashes with "assert(k != __null && !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can resolve klass?" In-Reply-To: References: Message-ID: Hi Roland, thanks for the review! Best regards, Tobias On 21.09.2017 13:57, Roland Westrelin wrote: > >> http://cr.openjdk.java.net/~thartmann/8187679/webrev.00/ > > That looks good to me. > > Roland. > From rwestrel at redhat.com Thu Sep 21 12:33:18 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 21 Sep 2017 14:33:18 +0200 Subject: RFR(S): 8186716: [MVT] C2 crashes with "assert(!n->is_ValueType()) failed: value types should not be split through phis" In-Reply-To: <216f41f7-d038-f966-0139-0d989eb65b4e@oracle.com> References: <91fadd5e-8534-252c-4818-16ae9350f61f@oracle.com> <216f41f7-d038-f966-0139-0d989eb65b4e@oracle.com> Message-ID: > That's because with non-flattened value type fields (see my changes > for 8185556), we need to "recursively" scalarize value types in > safepoints. While processing a value type node in > Compile::process_value_types(), other value type nodes that are on the > _value_type_nodes list may become dead and are removed from the list > screwing up the GrowableArray iterator. Using a node list is the > easiest way to solve this. Ok. Roland. From david.simms at oracle.com Thu Sep 21 13:21:29 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Thu, 21 Sep 2017 13:21:29 +0000 Subject: hg: valhalla/valhalla/jdk: Fix for DUMP_CLASS_FILES breaking bootstrap, use old school io Message-ID: <201709211321.v8LDLT2O024358@aojmv0008.oracle.com> Changeset: f087b2df11b4 Author: dsimms Date: 2017-09-21 15:18 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/f087b2df11b4 Fix for DUMP_CLASS_FILES breaking bootstrap, use old school io ! src/java.base/share/classes/valhalla/shady/MinimalValueTypes_1_0.java From tobias.hartmann at oracle.com Fri Sep 22 06:11:54 2017 From: tobias.hartmann at oracle.com (tobias.hartmann at oracle.com) Date: Fri, 22 Sep 2017 06:11:54 +0000 Subject: hg: valhalla/valhalla/hotspot: 8187679: [MVT] VM crashes with "assert(k != __null && !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can resolve klass?" Message-ID: <201709220611.v8M6BtaI022922@aojmv0008.oracle.com> Changeset: a72b048d682d Author: thartmann Date: 2017-09-22 08:08 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/a72b048d682d 8187679: [MVT] VM crashes with "assert(k != __null && !(((ThreadShadow*)__the_thread__)->has_pending_exception())) failed: can resolve klass?" Reviewed-by: fparain, roland ! src/share/vm/oops/method.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp + test/compiler/valhalla/valuetypes/MyValue1.java + test/compiler/valhalla/valuetypes/TestUnresolvedValueClass.java From tobias.hartmann at oracle.com Fri Sep 22 11:54:29 2017 From: tobias.hartmann at oracle.com (tobias.hartmann at oracle.com) Date: Fri, 22 Sep 2017 11:54:29 +0000 Subject: hg: valhalla/valhalla/hotspot: 8187820: [MVT] Build failures on 32-bit x86 Message-ID: <201709221154.v8MBsTvp001907@aojmv0008.oracle.com> Changeset: 488f0d311b80 Author: thartmann Date: 2017-09-22 13:51 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/488f0d311b80 8187820: [MVT] Build failures on 32-bit x86 ! src/share/vm/memory/vtBuffer.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/thread.cpp From tobias.hartmann at oracle.com Fri Sep 22 11:54:29 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Fri, 22 Sep 2017 13:54:29 +0200 Subject: hg: valhalla/valhalla/hotspot: 8187820: [MVT] Build failures on 32-bit x86 In-Reply-To: <201709221154.v8MBsTvp001907@aojmv0008.oracle.com> References: <201709221154.v8MBsTvp001907@aojmv0008.oracle.com> Message-ID: <1bd4c002-c7e7-a43f-15b7-82e9df3a531f@oracle.com> I've also changed the implementation to only enable ValueTypePassFieldsAsArgs and ValueTypeReturnedAsFields if EnableMVT or EnableValhalla and the JIT is enabled. In addition, we issue a warning now if the user tries to enable value types and tiered compilation. Best regards, Tobias On 22.09.2017 13:54, tobias.hartmann at oracle.com wrote: > Changeset: 488f0d311b80 > Author: thartmann > Date: 2017-09-22 13:51 +0200 > URL: http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/488f0d311b80 > > 8187820: [MVT] Build failures on 32-bit x86 > > ! src/share/vm/memory/vtBuffer.cpp > ! src/share/vm/runtime/arguments.cpp > ! src/share/vm/runtime/globals.hpp > ! src/share/vm/runtime/thread.cpp > From forax at univ-mlv.fr Sat Sep 23 10:41:57 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Sat, 23 Sep 2017 12:41:57 +0200 (CEST) Subject: MVT branch ? Message-ID: <2126179775.6540598.1506163317397.JavaMail.zimbra@u-pem.fr> Hi all, Where is the MVT branch with the new 'unified' repository ? http://hg.openjdk.java.net/valhalla/valhalla/branches only list the default branch. cheers, R?mi From david.holmes at oracle.com Sat Sep 23 23:45:32 2017 From: david.holmes at oracle.com (David Holmes) Date: Sun, 24 Sep 2017 09:45:32 +1000 Subject: MVT branch ? In-Reply-To: <2126179775.6540598.1506163317397.JavaMail.zimbra@u-pem.fr> References: <2126179775.6540598.1506163317397.JavaMail.zimbra@u-pem.fr> Message-ID: <7f2dce25-851b-08fc-425c-c5f99c35abb1@oracle.com> On 23/09/2017 8:41 PM, Remi Forax wrote: > Hi all, > Where is the MVT branch with the new 'unified' repository ? > > http://hg.openjdk.java.net/valhalla/valhalla/branches only list the default branch. We've been waiting for the new repo to be created so that "we" can then add in the branches. Looks like the new repo has now been created :) Cheers, David > cheers, > R?mi > From maurizio.cimadamore at oracle.com Mon Sep 25 08:46:19 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 25 Sep 2017 09:46:19 +0100 Subject: MVT branch ? In-Reply-To: <2126179775.6540598.1506163317397.JavaMail.zimbra@u-pem.fr> References: <2126179775.6540598.1506163317397.JavaMail.zimbra@u-pem.fr> Message-ID: Hi Remi - I will be moving around valhalla and amber branches in the next few days. Cheers Maurizio On 23/09/17 11:41, Remi Forax wrote: > Hi all, > Where is the MVT branch with the new 'unified' repository ? > > http://hg.openjdk.java.net/valhalla/valhalla/branches only list the default branch. > > cheers, > R?mi From maurizio.cimadamore at oracle.com Mon Sep 25 08:48:17 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 25 Sep 2017 09:48:17 +0100 Subject: MVT branch ? In-Reply-To: References: <2126179775.6540598.1506163317397.JavaMail.zimbra@u-pem.fr> Message-ID: <61d64e1f-29c3-eb05-92a1-5c2a59801068@oracle.com> For the records - the old repo is still available here http://hg.openjdk.java.net/valhalla/valhalla10-old/ Maurizio On 25/09/17 09:46, Maurizio Cimadamore wrote: > Hi Remi - I will be moving around valhalla and amber branches in the > next few days. > > Cheers > Maurizio > > > On 23/09/17 11:41, Remi Forax wrote: >> Hi all, >> Where is the MVT branch with the new 'unified' repository ? >> >> http://hg.openjdk.java.net/valhalla/valhalla/branches only list the >> default branch. >> >> cheers, >> R?mi > From rwestrel at redhat.com Tue Sep 26 09:20:39 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Tue, 26 Sep 2017 11:20:39 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields In-Reply-To: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> References: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> Message-ID: > http://cr.openjdk.java.net/~thartmann/8185556/webrev.00/ sharedRuntime_x86_64.cpp: 486 case T_VALUETYPE: Why is that needed? Shouldn't we only see T_VALUETYPEPTR here? I'm also confused by that comment: 556 // TODO change this when we use T_VALUETYPEPTR in signature.cpp callGenerator.cpp: 442 Node* ctl = map->control(); 443 arg = ValueTypeNode::make(gvn, ctl, map->memory(), arg); 444 map->set_control(ctl); Why the set_control()? That comment confuses me, too: 2117 // TODO enable when using T_VALUETYPEPTR in escape.cpp In graphKit.cpp: 3395 Node* GraphKit::new_instance(Node* klass_node, 3396 Node* extra_slow_test, 3397 Node* *return_size_val, 3398 bool deoptimize_on_exception, 3399 ValueTypeBaseNode* value_node) { when can we pass a ValueTypePtrNode here? Using GraphKit with an igvn should only be safe if _delay_transform is true, right? Should there be an assert for _delay_transform in the GraphKit constructor? Also, usually after the graph is constructed with GraphKit, there is a pass of PhaseRemoveUseless to disconnect useless nodes. Your new use of GraphKit during igvn is not followed by PhaseRemoveUseless. I wonder if it's a problem and if some untransformed node could stay connected to graph. In phaseX.cpp, PhaseIterGVN::transform(), why the change? I find the overloaded ValueTypeNode::make() calls quite confusing after all. I think renaming them to something that's more descriptive of what they do would be better. Roland. From david.simms at oracle.com Tue Sep 26 12:44:44 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:44:44 +0000 Subject: hg: valhalla/valhalla10-old: 37 new changesets Message-ID: <201709261244.v8QCii78028196@aojmv0008.oracle.com> Changeset: f10b706d5c33 Author: jwilhelm Date: 2017-08-22 16:20 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/f10b706d5c33 Merge ! common/autoconf/generated-configure.sh Changeset: 90cdfe56f154 Author: erikj Date: 2017-08-23 08:55 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/90cdfe56f154 8186470: JDK10 hotspot integration has broken all MacOS dummy builds Reviewed-by: ctornqvi, tbell ! make/common/NativeCompilation.gmk Changeset: 79d83606d48c Author: asaha Date: 2017-08-25 04:59 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/79d83606d48c Added tag jdk-10+21 for changeset 90cdfe56f154 ! .hgtags Changeset: 3933a3e729f6 Author: jwilhelm Date: 2017-08-28 21:46 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/3933a3e729f6 Merge ! common/autoconf/generated-configure.sh Changeset: 0c85aa3795ce Author: phedlin Date: 2017-08-28 13:29 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/0c85aa3795ce 8183119: Resolve 'libkstat' dependency between open and closed part of JDK Reviewed-by: erikj, kvn ! common/autoconf/flags.m4 ! common/autoconf/generated-configure.sh Changeset: e747df9efa1e Author: jwilhelm Date: 2017-08-29 17:17 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/e747df9efa1e Merge ! common/autoconf/generated-configure.sh Changeset: 30a5133acb6b Author: glaubitz Date: 2017-08-31 15:47 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/30a5133acb6b 8186786: Name collisions with autoconf definitions on alpha and sh Reviewed-by: ihse, dholmes ! common/autoconf/generated-configure.sh ! common/autoconf/platform.m4 Changeset: 8625e8491887 Author: ctornqvi Date: 2017-08-31 10:46 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/8625e8491887 8186218: Make JIB exclude webrev from all sub-repo levels when creating source bundles Reviewed-by: erikj, ihse ! common/conf/jib-profiles.js Changeset: 73cb5527d0f7 Author: asaha Date: 2017-09-01 14:13 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/73cb5527d0f7 Added tag jdk-10+22 for changeset 8625e8491887 ! .hgtags Changeset: f49503af5d5b Author: jwilhelm Date: 2017-08-28 21:46 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/f49503af5d5b Merge ! common/autoconf/generated-configure.sh Changeset: 743f6f484fce Author: kvn Date: 2017-08-29 10:24 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/743f6f484fce 8186462: [Graal] build Graal regardless AOT build Reviewed-by: twisti, thartmann, erikj ! common/autoconf/generated-configure.sh ! common/autoconf/hotspot.m4 Changeset: 1147dee33745 Author: jwilhelm Date: 2017-08-29 17:17 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/1147dee33745 Merge ! common/autoconf/generated-configure.sh Changeset: 32dc808e9918 Author: bobv Date: 2017-08-29 15:52 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/32dc808e9918 8186248: Allow more flexibility in selecting Heap % of available RAM Reviewed-by: dholmes, drwhite ! make/RunTests.gmk Changeset: fc358dc56d82 Author: bobv Date: 2017-08-31 16:29 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/fc358dc56d82 Merge Changeset: 4c9ee37f0c66 Author: goetz Date: 2017-08-31 17:18 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/4c9ee37f0c66 8186978: Introduce configure argument enable-cds Reviewed-by: dholmes, erikj, ihse ! common/autoconf/configure.ac ! common/autoconf/generated-configure.sh ! common/autoconf/hotspot.m4 ! common/autoconf/jdk-options.m4 Changeset: 752f5fb6ca0c Author: gziemski Date: 2017-08-31 20:25 -0500 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/752f5fb6ca0c 8173715: Remove FlatProfiler Summary: Obsoleted Xprof flag, removed FlatProfiler code Reviewed-by: dholmes, erikj ! common/autoconf/generated-configure.sh ! common/autoconf/hotspot.m4 Changeset: a8d531abffc8 Author: jwilhelm Date: 2017-09-03 14:19 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/a8d531abffc8 Merge ! common/autoconf/generated-configure.sh Changeset: 2745676498c8 Author: erikj Date: 2017-09-04 13:36 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/2745676498c8 8185928: Generate OpenJDK builds for Mac platform JDK 9.0.3 and beyond in Mach 5 Reviewed-by: ihse, tbell ! common/conf/jib-profiles.js Changeset: 13a1041e2950 Author: erikj Date: 2017-09-06 16:05 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/13a1041e2950 8186983: CompileJavaModule.gmk overrides values from a custom extension gmk Reviewed-by: ihse, dholmes Contributed-by: jason_yong at uk.ibm.com ! make/CompileJavaModules.gmk Changeset: 4a19a122c9c0 Author: psadhukhan Date: 2017-05-27 12:52 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/4a19a122c9c0 6461834: Minimize WindowsLookAndFeel classes included with Unix JDKs Reviewed-by: ihse, aniyogi, prr ! make/CompileJavaModules.gmk Changeset: 0ab1563646b3 Author: prr Date: 2017-06-02 14:46 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/0ab1563646b3 Merge ! make/CompileJavaModules.gmk - test/lib/jdk/test/lib/wrappers/InfiniteLoop.java - test/lib/jdk/test/lib/wrappers/TimeLimitedRunner.java Changeset: e578a44a664d Author: prr Date: 2017-06-23 09:53 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/e578a44a664d Merge ! make/CompileJavaModules.gmk Changeset: 3c6d0016ac56 Author: prr Date: 2017-07-06 09:36 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/3c6d0016ac56 Merge Changeset: 2979523627fc Author: prr Date: 2017-07-17 09:13 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/2979523627fc Merge Changeset: bad488f91279 Author: prr Date: 2017-07-20 09:38 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/bad488f91279 Merge Changeset: b5cbad5e2d2b Author: psadhukhan Date: 2017-07-21 10:22 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/b5cbad5e2d2b 8184813: Class javax/swing/plaf/metal/MetalFontDesktopProperty is broken in JDK10 Reviewed-by: prr, serb ! make/CompileJavaModules.gmk Changeset: 7ddec150df64 Author: prr Date: 2017-07-25 14:07 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/7ddec150df64 Merge Changeset: 6ffac2137a73 Author: prr Date: 2017-07-27 12:36 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/6ffac2137a73 Merge Changeset: ff0a3ced95bb Author: prr Date: 2017-08-07 09:45 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/ff0a3ced95bb Merge Changeset: 06a8738dc385 Author: prr Date: 2017-08-14 10:48 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/06a8738dc385 Merge Changeset: b135df98eeb6 Author: prr Date: 2017-08-18 11:27 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/b135df98eeb6 Merge - common/autoconf/lib-elf.m4 ! make/CompileJavaModules.gmk Changeset: 2c6a29c6d5c7 Author: prr Date: 2017-08-23 12:05 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/2c6a29c6d5c7 Merge Changeset: 6e6404f32f75 Author: prr Date: 2017-08-29 10:48 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/6e6404f32f75 Merge Changeset: c28ca694db97 Author: prr Date: 2017-08-31 10:49 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/c28ca694db97 Merge Changeset: b32db08bea9a Author: prr Date: 2017-09-05 10:10 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/b32db08bea9a Merge Changeset: dbc0484fa215 Author: prr Date: 2017-09-07 08:52 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/dbc0484fa215 Merge ! make/CompileJavaModules.gmk Changeset: 62306e615de1 Author: lana Date: 2017-09-08 18:24 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/62306e615de1 Added tag jdk-10+23 for changeset dbc0484fa215 ! .hgtags From david.simms at oracle.com Tue Sep 26 12:44:51 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:44:51 +0000 Subject: hg: valhalla/valhalla10-old/corba: 4 new changesets Message-ID: <201709261244.v8QCipu4028352@aojmv0008.oracle.com> Changeset: 1f4456d51b07 Author: asaha Date: 2017-08-25 04:59 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/corba/rev/1f4456d51b07 Added tag jdk-10+21 for changeset 68b5f8eeac33 ! .hgtags Changeset: 094e4c4e0f9f Author: asaha Date: 2017-09-01 14:13 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/corba/rev/094e4c4e0f9f Added tag jdk-10+22 for changeset 1f4456d51b07 ! .hgtags Changeset: 479805760256 Author: jjg Date: 2017-09-01 11:48 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/corba/rev/479805760256 8186924: Fix accessibility and other HTML issues in java.corba module Reviewed-by: mchung ! src/java.corba/share/classes/org/omg/CORBA/ORB.java ! src/java.corba/share/classes/org/omg/CORBA/TCKind.java ! src/java.corba/share/classes/org/omg/CORBA/doc-files/compliance.html ! src/java.corba/share/classes/org/omg/CORBA/doc-files/generatedfiles.html ! src/java.corba/share/classes/org/omg/PortableInterceptor/Interceptors.idl Changeset: 821b4751ba97 Author: lana Date: 2017-09-08 18:24 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/corba/rev/821b4751ba97 Added tag jdk-10+23 for changeset 479805760256 ! .hgtags From david.simms at oracle.com Tue Sep 26 12:44:59 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:44:59 +0000 Subject: hg: valhalla/valhalla10-old/hotspot: 64 new changesets Message-ID: <201709261245.v8QCj0wA028410@aojmv0008.oracle.com> Changeset: bdb2dbc43ff0 Author: jwilhelm Date: 2017-08-22 16:20 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/bdb2dbc43ff0 Merge Changeset: 7bda89c08134 Author: asaha Date: 2017-08-25 04:59 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/7bda89c08134 Added tag jdk-10+21 for changeset bdb2dbc43ff0 ! .hgtags Changeset: c406559cce12 Author: mchung Date: 2017-08-25 10:49 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/c406559cce12 8186145: tools/launcher/modules/validate/ValidateModulesTest.java fails when launched with -XX:+EnableJVMCI Summary: --validate-modules runs with a boot layer resolving all system modules rather than only java.base Reviewed-by: alanb + test/compiler/jvmci/TestValidateModules.java Changeset: e015ea7eaf32 Author: dnsimon Date: 2017-08-14 14:15 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/e015ea7eaf32 8186163: [JVMCI] bad signatures should be detected by MetaAccessProvider.parseMethodDescriptor Reviewed-by: kvn, iveresov ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotSignature.java ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/MetaAccessProvider.java ! test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestMetaAccessProvider.java Changeset: f59d7a871cb5 Author: dnsimon Date: 2017-08-24 08:38 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/f59d7a871cb5 Merge Changeset: 143019ae96f5 Author: dnsimon Date: 2017-08-23 23:38 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/143019ae96f5 8186459: [JVMCI] ClassNotFoundException thrown by CompilerToVM.lookupType() should be converted to a LinkageError Reviewed-by: kvn, iveresov ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java ! test/compiler/jvmci/common/patches/jdk.internal.vm.ci/jdk/vm/ci/hotspot/CompilerToVMHelper.java ! test/compiler/jvmci/compilerToVM/FindUniqueConcreteMethodTest.java ! test/compiler/jvmci/compilerToVM/GetClassInitializerTest.java ! test/compiler/jvmci/compilerToVM/GetConstantPoolTest.java ! test/compiler/jvmci/compilerToVM/GetImplementorTest.java ! test/compiler/jvmci/compilerToVM/GetVtableIndexForInterfaceTest.java ! test/compiler/jvmci/compilerToVM/HasFinalizableSubclassTest.java ! test/compiler/jvmci/compilerToVM/ResolveMethodTest.java Changeset: 9cf835fba355 Author: mdoerr Date: 2017-08-24 14:56 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/9cf835fba355 8186734: AIX build broken after 8186166: Generalize Atomic::cmpxchg with templates Reviewed-by: goetz ! src/os_cpu/aix_ppc/vm/atomic_aix_ppc.hpp Changeset: c3e39d67f6d4 Author: ghaug Date: 2017-08-16 14:14 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/c3e39d67f6d4 8186286: [BSD] Primary thread's stack size is reported incorrectly Reviewed-by: shade, stuefe ! src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp ! src/share/vm/runtime/thread.cpp Changeset: 3a8e59bdaaac Author: dholmes Date: 2017-08-24 14:00 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/3a8e59bdaaac Merge Changeset: 7356f594f176 Author: zgu Date: 2017-08-24 15:00 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/7356f594f176 8186748: NMT: memTracker::record_virtual_memory_reserve_and_commit() does not tag the memory as committed Summary: Fixed bug that results NMT to report "Shared class space" as reserved, but not committed memory Reviewed-by: shade, coleenp ! src/share/vm/services/memTracker.hpp Changeset: 0f7a91bf2395 Author: sspitsyn Date: 2017-08-24 14:03 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/0f7a91bf2395 8185687: Fix minor bugs in jvmti specification Summary: Fix the doc Reviewed-by: ksrini, jjg, dcubed ! src/share/vm/prims/jvmti.xml ! src/share/vm/prims/jvmti.xsl Changeset: ac7eb1f61945 Author: sspitsyn Date: 2017-08-24 21:06 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/ac7eb1f61945 Merge - src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/MiscUtils.java - src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/utils/Timer.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/org/graalvm/compiler/microbenchmarks/graal/TestJMH.java Changeset: b94f3a90edeb Author: sspitsyn Date: 2017-08-24 22:37 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/b94f3a90edeb Merge Changeset: 8888f2e43fb1 Author: kvn Date: 2017-08-24 13:11 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/8888f2e43fb1 8186721: AOT tests fail with: section alignment is not valid: 128 Summary: add missing negation in assert chech, add -ea -esa to AOT testing Reviewed-by: dlong ! src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/pecoff/PECoffSection.java ! test/compiler/aot/AotCompiler.java Changeset: dd079e888b11 Author: kvn Date: 2017-08-24 22:46 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/dd079e888b11 Merge Changeset: c684649ef702 Author: kvn Date: 2017-08-24 23:54 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/c684649ef702 Merge Changeset: 316854ef2fa2 Author: martin Date: 2017-08-24 10:26 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/316854ef2fa2 8174050: Compilation errors with clang-4.0 Reviewed-by: kvn ! src/share/vm/memory/virtualspace.cpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/loopPredicate.cpp Changeset: 5e3603c1495f Author: jwilhelm Date: 2017-08-28 21:46 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/5e3603c1495f Merge - src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/MiscUtils.java - src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/utils/Timer.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/org/graalvm/compiler/microbenchmarks/graal/TestJMH.java Changeset: 36780bca7e82 Author: kvn Date: 2017-08-25 14:07 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/36780bca7e82 8186136: [Graal] some tests setting -Djvmci.Compiler=null fail with: jdk.vm.ci.common.JVMCIError: no JVMCI compiler selected Summary: removed -Djvmci.Compiler=null for tests which do JIT compilation Reviewed-by: twisti ! test/compiler/jvmci/JVM_GetJVMCIRuntimeTest.java ! test/compiler/jvmci/compilerToVM/HasCompiledCodeForOSRTest.java ! test/compiler/jvmci/compilerToVM/InvalidateInstalledCodeTest.java ! test/compiler/jvmci/compilerToVM/IsMatureVsReprofileTest.java ! test/compiler/jvmci/compilerToVM/MaterializeVirtualObjectTest.java ! test/compiler/jvmci/compilerToVM/ReprofileTest.java Changeset: 409753e9c98e Author: goetz Date: 2017-08-22 15:12 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/409753e9c98e 8186437: Lock held when compiler thread creation fails. Reviewed-by: stuefe, kvn ! src/share/vm/compiler/compileBroker.cpp Changeset: 35045bc7f7f6 Author: kvn Date: 2017-08-25 18:21 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/35045bc7f7f6 8186144: [Graal] some tests fail with: Improperly specified VM option UseJVMCICompiler: EnableJVMCI cannot be disabled Summary: disable Graal by switching off UseJVMCICompiler when JVMCI is disabled Reviewed-by: twisti ! test/compiler/jvmci/SecurityRestrictionsTest.java ! test/compiler/jvmci/compilerToVM/DisassembleCodeBlobTest.java ! test/compiler/jvmci/compilerToVM/JVM_RegisterJVMCINatives.java ! test/compiler/jvmci/events/JvmciShutdownEventTest.java Changeset: ab8afbbf2ace Author: njian Date: 2017-08-01 14:58 +0800 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/ab8afbbf2ace 8184049: AArch64: Matching rule for ubfiz Reviewed-by: aph, adinn Contributed-by: daniel.stewart at linaro.org ! src/cpu/aarch64/vm/aarch64.ad ! src/cpu/aarch64/vm/aarch64_ad.m4 Changeset: 427f4c99b29e Author: jiangli Date: 2017-08-27 15:48 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/427f4c99b29e 8186706: ArchivedObjectCache obj_hash() is broken. Summary: Use oop's identity_hash. Also use larger table size. Reviewed-by: ccheung, iklam, coleenp ! src/share/vm/memory/metaspaceShared.cpp ! src/share/vm/memory/metaspaceShared.hpp Changeset: 3c5a2af3e982 Author: glaubitz Date: 2017-08-27 20:09 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/3c5a2af3e982 8186723: Add SuperH as new architecture for linux Reviewed-by: dholmes, stuefe ! src/os/linux/vm/os_linux.cpp Changeset: ec4c21cf8ba1 Author: dholmes Date: 2017-08-28 01:09 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/ec4c21cf8ba1 Merge Changeset: 18bf814595b9 Author: rraghavan Date: 2017-08-28 02:55 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/18bf814595b9 8186666: Bug in the C2 matcher code Summary: Correctly used Op_WeakCompareAndSwapI as required Reviewed-by: shade, thartmann Contributed-by: Andrew Haley ! src/share/vm/opto/c2compiler.cpp Changeset: d78407f77172 Author: eosterlund Date: 2017-08-28 13:31 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/d78407f77172 8186476: Generalize Atomic::add with templates Reviewed-by: aph, dholmes Contributed-by: kim.barrett at oracle.com ! src/os_cpu/aix_ppc/vm/atomic_aix_ppc.hpp ! src/os_cpu/bsd_x86/vm/atomic_bsd_x86.hpp ! src/os_cpu/bsd_zero/vm/atomic_bsd_zero.hpp ! src/os_cpu/linux_aarch64/vm/atomic_linux_aarch64.hpp ! src/os_cpu/linux_arm/vm/atomic_linux_arm.hpp ! src/os_cpu/linux_ppc/vm/atomic_linux_ppc.hpp ! src/os_cpu/linux_s390/vm/atomic_linux_s390.hpp ! src/os_cpu/linux_sparc/vm/atomic_linux_sparc.hpp ! src/os_cpu/linux_x86/vm/atomic_linux_x86.hpp ! src/os_cpu/linux_zero/vm/atomic_linux_zero.hpp ! src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.hpp ! src/os_cpu/solaris_sparc/vm/solaris_sparc.il ! src/os_cpu/solaris_x86/vm/atomic_solaris_x86.hpp ! src/os_cpu/windows_x86/vm/atomic_windows_x86.hpp ! src/share/vm/gc/g1/g1CardLiveData.cpp ! src/share/vm/gc/g1/g1ConcurrentMark.cpp ! src/share/vm/gc/g1/g1HotCardCache.cpp ! src/share/vm/gc/g1/g1HotCardCache.hpp ! src/share/vm/gc/g1/g1RemSet.cpp ! src/share/vm/oops/symbol.cpp ! src/share/vm/runtime/atomic.hpp ! src/share/vm/services/mallocTracker.hpp Changeset: ecebbbda267a Author: redestad Date: 2017-08-28 00:20 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/ecebbbda267a 8179040: Avoid Ticks::now calls when EventClassLoad is not enabled Reviewed-by: ehelin, mgronlun, dholmes, iklam Contributed-by: claes.redestad at oracle.com, markus.gronlund at oracle.com ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/trace/traceDataTypes.hpp ! src/share/vm/trace/traceEvent.hpp ! src/share/vm/trace/traceEventClasses.xsl ! src/share/vm/trace/traceTypes.xsl Changeset: d8861a784135 Author: redestad Date: 2017-08-28 14:07 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/d8861a784135 Merge Changeset: c5c6aa319333 Author: coleenp Date: 2017-08-28 09:06 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/c5c6aa319333 8186042: Optimize OopMapCache lookup Summary: Use lock free access to oopMapCache Reviewed-by: dholmes, sspitsyn Contributed-by: frederic.parain at oracle.com, coleen.phillimore at oracle.com ! src/share/vm/gc/shared/vmGCOperations.cpp ! src/share/vm/interpreter/oopMapCache.cpp ! src/share/vm/interpreter/oopMapCache.hpp ! src/share/vm/logging/logTag.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/memprofiler.cpp ! src/share/vm/runtime/vframe.cpp Changeset: 735530e058e8 Author: coleenp Date: 2017-08-28 15:11 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/735530e058e8 Merge Changeset: 2ed5748b6eec Author: never Date: 2017-08-28 15:21 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/2ed5748b6eec 8181858: [JVMCI] JVMCI should update the trap counters when invalidating for Reason_not_compiled_exception_handler Reviewed-by: kvn ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/deoptimization.hpp ! src/share/vm/runtime/sharedRuntime.cpp Changeset: f3413e6d6b8f Author: never Date: 2017-08-28 16:40 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/f3413e6d6b8f Merge Changeset: 71337910df60 Author: jwilhelm Date: 2017-08-29 17:17 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/71337910df60 Merge Changeset: a7454342f29c Author: asaha Date: 2017-09-01 14:13 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/a7454342f29c Added tag jdk-10+22 for changeset 71337910df60 ! .hgtags Changeset: 8ff4215ca5fa Author: jwilhelm Date: 2017-08-28 21:46 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/8ff4215ca5fa Merge Changeset: 0c2d710aa6df Author: iveresov Date: 2017-08-28 14:43 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/0c2d710aa6df 8186850: Update Graal Reviewed-by: kvn ! src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/AOTBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.replacements/src/org/graalvm/compiler/api/replacements/ClassSubstitution.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.test/src/org/graalvm/compiler/asm/test/AssemblerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.code/src/org/graalvm/compiler/code/CompilationResult.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/GraalCompilerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/InfopointReasonTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/tutorial/InvokeGraal.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph.test/src/org/graalvm/compiler/graph/test/NodeBitMapTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeBitMap.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64RawNativeCallNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64RawNativeCallNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotUnsafeSubstitutionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalCompiler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotHostForeignCallsProvider.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotUnsafeSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/Stub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/trace/lsra/TraceInterval.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanLifetimeAnalysisPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/trace/lsra/TraceLinearScanPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/org/graalvm/compiler/microbenchmarks/lir/GraalCompilerState.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/GraphEncoder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/CFGPrinterObserver.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/CompilationPrinter.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.verifier/src/org/graalvm/compiler/replacements/verifier/ClassSubstitutionVerifier.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/PEGraphDecoder.java ! src/share/vm/aot/aotCodeHeap.cpp Changeset: 232488f21a13 Author: iveresov Date: 2017-08-28 22:45 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/232488f21a13 Merge - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64RawNativeCallNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64RawNativeCallNode.java Changeset: 38ff008318c3 Author: stuefe Date: 2017-08-18 09:05 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/38ff008318c3 8186349: [windows] Centralize dbghelp handling code Summary: Rework and fix dbghelp.dll handling; add diagnostic output to hs-err file. Reviewed-by: iklam, rrich, goetz ! src/os/windows/vm/decoder_windows.cpp ! src/os/windows/vm/decoder_windows.hpp ! src/os/windows/vm/os_windows.cpp + src/os/windows/vm/windbghelp.cpp + src/os/windows/vm/windbghelp.hpp ! src/os_cpu/windows_x86/vm/os_windows_x86.cpp ! src/share/vm/utilities/decoder.cpp ! src/share/vm/utilities/decoder.hpp ! src/share/vm/utilities/vmError.cpp Changeset: a20f0fa4c426 Author: iklam Date: 2017-08-28 23:46 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/a20f0fa4c426 Merge Changeset: 3c3e9a1d65bd Author: dbuck Date: 2017-08-29 05:33 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/3c3e9a1d65bd 8185624: G1HeapVerifier's VerifyRootsClosure prints important information on info log level Summary: Fix logging of broken oop to error log level instead of info log level Reviewed-by: mgerdin, tschatzl Contributed-by: muthusamy.chinnathambi at oracle.com ! src/share/vm/gc/g1/g1HeapVerifier.cpp Changeset: 5cd4495a3efa Author: goetz Date: 2017-08-17 17:26 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/5cd4495a3efa 8186072: dll_build_name returns true even if file is missing. Summary: Split dll_build_name into two functions and consolidate to os.cpp file. Reviewed-by: stuefe, dholmes ! src/os/aix/vm/os_aix.cpp ! src/os/bsd/vm/os_bsd.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/os_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/thread.cpp Changeset: 35670a2b20d5 Author: dholmes Date: 2017-08-29 10:41 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/35670a2b20d5 Merge Changeset: 182f9c89e337 Author: glaubitz Date: 2017-08-29 18:34 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/182f9c89e337 8186855: Multiple platforms broken after 8186476: Generalize Atomic::add with templates Reviewed-by: stuefe, coleenp ! src/os_cpu/aix_ppc/vm/atomic_aix_ppc.hpp ! src/os_cpu/bsd_zero/vm/atomic_bsd_zero.hpp ! src/os_cpu/linux_ppc/vm/atomic_linux_ppc.hpp ! src/os_cpu/linux_s390/vm/atomic_linux_s390.hpp ! src/os_cpu/linux_sparc/vm/atomic_linux_sparc.hpp ! src/os_cpu/linux_zero/vm/atomic_linux_zero.hpp Changeset: 294bd8d9088c Author: jwilhelm Date: 2017-08-29 17:17 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/294bd8d9088c Merge Changeset: 7a698e293256 Author: mgerdin Date: 2017-08-29 12:17 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/7a698e293256 8186897: semaphore_posix.hpp should not be included on OSX Reviewed-by: stefank, dholmes ! src/os/posix/vm/os_posix.cpp Changeset: 3a8e8737cb36 Author: njian Date: 2017-08-24 16:12 +0800 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/3a8e8737cb36 8186325: AArch64: jtreg test hotspot/test/gc/g1/TestJNIWeakG1/TestJNIWeakG1.java SEGV Reviewed-by: adinn, aph Contributed-by: stuart.monteith at linaro.org ! src/cpu/aarch64/vm/macroAssembler_aarch64.cpp ! src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp ! src/cpu/aarch64/vm/templateTable_aarch64.cpp Changeset: 8d5a52d81b78 Author: coleenp Date: 2017-08-30 07:18 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/8d5a52d81b78 8181170: resolved_references array leaks for RedefineClasses Summary: clear out resolved_reference from ClassLoaderData::_handles Reviewed-by: stefank, jiangli, sspitsyn ! src/share/vm/classfile/classLoaderData.cpp ! src/share/vm/classfile/classLoaderData.hpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/cpCache.hpp ! src/share/vm/oops/oopHandle.hpp Changeset: 5adfb4c2ed9c Author: coleenp Date: 2017-08-30 13:04 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/5adfb4c2ed9c Merge Changeset: f28a28fc1497 Author: zgu Date: 2017-08-30 15:48 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/f28a28fc1497 8186797: cardtable_rs in g1CollectedHeap::initialize() defined, but never used Reviewed-by: tschatzl, ehelin ! src/share/vm/gc/g1/g1CollectedHeap.cpp Changeset: 644db104e2f0 Author: coleenp Date: 2017-08-30 19:18 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/644db104e2f0 8164207: Checking missing load-acquire in relation to _pd_set in dictionary.cpp Summary: Use load_acquire for accessing DictionaryEntry::_pd_set since it's accessed outside the SystemDictionary_lock Reviewed-by: zgu, twisti, dholmes, adinn ! src/share/vm/classfile/dictionary.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/systemDictionary.cpp Changeset: 8acd232fb52a Author: rehn Date: 2017-08-31 08:18 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/8acd232fb52a 8186837: Memory ordering nmethod, _state and _stack_traversal_mark Reviewed-by: dholmes, rkennke ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/runtime/sweeper.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 3ee845ce8ea1 Author: bobv Date: 2017-08-29 15:53 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/3ee845ce8ea1 8186248: Allow more flexibility in selecting Heap % of available RAM Reviewed-by: dholmes, drwhite ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! test/Makefile ! test/runtime/CommandLine/FlagWithInvalidValue.java ! test/runtime/CommandLine/NonBooleanFlagWithInvalidBooleanPrefix.java ! test/runtime/CommandLine/VMDeprecatedOptions.java Changeset: 075c0f5b20fa Author: bobv Date: 2017-08-31 16:29 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/075c0f5b20fa Merge Changeset: b471b0c614d6 Author: stuefe Date: 2017-08-31 18:34 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/b471b0c614d6 8186982: [aix] Garbage output for CPU info in hs-err file Reviewed-by: goetz, simonis Contributed-by: arno.zeller at sap.com ! src/os/aix/vm/os_aix.cpp Changeset: 7df86c5f8b5d Author: ccheung Date: 2017-08-28 15:34 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/7df86c5f8b5d 8186842: Use Java class loaders for creating the CDS archive Reviewed-by: coleenp, jiangli, iklam, mseledtsov Contributed-by: calvin.cheung at oracle.com, ioi.lam at oracle.com ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/classfile/classLoader.hpp ! src/share/vm/classfile/classLoaderExt.hpp ! src/share/vm/classfile/dictionary.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/klassFactory.cpp ! src/share/vm/classfile/stringTable.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/interpreter/rewriter.cpp ! src/share/vm/logging/logTag.hpp ! src/share/vm/memory/metaspaceClosure.hpp ! src/share/vm/memory/metaspaceShared.cpp ! src/share/vm/oops/arrayKlass.cpp ! src/share/vm/oops/arrayKlass.hpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/cpCache.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klass.cpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/arguments.hpp ! src/share/vm/runtime/arguments_ext.hpp ! src/share/vm/runtime/javaCalls.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/utilities/exceptions.cpp ! test/runtime/SharedArchiveFile/BootAppendTests.java + test/runtime/SharedArchiveFile/NonBootLoaderClasses.java ! test/runtime/modules/PatchModule/PatchModuleCDS.java Changeset: a8ec32aa385e Author: ccheung Date: 2017-08-31 17:06 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/a8ec32aa385e Merge ! src/share/vm/runtime/arguments.cpp Changeset: 3d1150c7899c Author: kevinw Date: 2017-09-01 01:03 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/3d1150c7899c 8186902: jcmd GC.run should not be blocked by DisableExplicitGC Reviewed-by: mgerdin, sspitsyn ! src/share/vm/services/diagnosticCommand.cpp Changeset: 61c0ae8bee4e Author: gziemski Date: 2017-08-31 20:26 -0500 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/61c0ae8bee4e 8173715: Remove FlatProfiler Summary: Obsoleted Xprof flag, removed FlatProfiler code Reviewed-by: dholmes, coleenp, vlivanov, pliden ! make/lib/JvmFeatures.gmk ! src/cpu/sparc/vm/macroAssembler_sparc.cpp ! src/os/aix/vm/os_aix.cpp ! src/os/bsd/vm/os_bsd.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/solaris/vm/osThread_solaris.hpp ! src/os/solaris/vm/os_solaris.cpp ! src/os/windows/vm/os_windows.cpp ! src/os_cpu/aix_ppc/vm/thread_aix_ppc.hpp ! src/os_cpu/linux_ppc/vm/thread_linux_ppc.hpp ! src/os_cpu/linux_s390/vm/thread_linux_s390.hpp ! src/share/vm/Xusage.txt ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/compiler/disassembler.cpp ! src/share/vm/gc/g1/g1GCPhaseTimes.cpp ! src/share/vm/gc/g1/g1GCPhaseTimes.hpp ! src/share/vm/gc/g1/g1MarkSweep.cpp ! src/share/vm/gc/g1/g1RootProcessor.cpp ! src/share/vm/gc/g1/g1RootProcessor.hpp ! src/share/vm/gc/parallel/pcTasks.cpp ! src/share/vm/gc/parallel/pcTasks.hpp ! src/share/vm/gc/parallel/psMarkSweep.cpp ! src/share/vm/gc/parallel/psParallelCompact.cpp ! src/share/vm/gc/parallel/psScavenge.cpp ! src/share/vm/gc/parallel/psTasks.cpp ! src/share/vm/gc/parallel/psTasks.hpp ! src/share/vm/gc/serial/genMarkSweep.cpp ! src/share/vm/gc/shared/genCollectedHeap.cpp ! src/share/vm/memory/universe.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/arguments.hpp - src/share/vm/runtime/fprofiler.cpp - src/share/vm/runtime/fprofiler.hpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/utilities/macros.hpp ! test/gc/g1/TestGCLogMessages.java ! test/runtime/CommandLine/TestNullTerminatedFlags.java - test/runtime/MinimalVM/Xprof.java Changeset: 046eab27258f Author: gziemski Date: 2017-09-01 13:03 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/046eab27258f Merge Changeset: 86445dc6021b Author: jwilhelm Date: 2017-09-03 14:19 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/86445dc6021b Merge - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64RawNativeCallNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64RawNativeCallNode.java - src/share/vm/runtime/fprofiler.cpp - src/share/vm/runtime/fprofiler.hpp - test/runtime/MinimalVM/Xprof.java Changeset: 25b63c7d1fa3 Author: njian Date: 2017-08-31 10:28 +0800 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/25b63c7d1fa3 8187022: AArch64: UBFX instructions have wrong format string Reviewed-by: aph Contributed-by: daniel.stewart at linaro.org ! src/cpu/aarch64/vm/aarch64.ad ! src/cpu/aarch64/vm/aarch64_ad.m4 Changeset: 1a9c2e07a826 Author: jwilhelm Date: 2017-09-03 13:39 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/1a9c2e07a826 Merge Changeset: 5ab7a67bc155 Author: lana Date: 2017-09-08 18:24 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/5ab7a67bc155 Added tag jdk-10+23 for changeset 1a9c2e07a826 ! .hgtags From david.simms at oracle.com Tue Sep 26 12:45:06 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:45:06 +0000 Subject: hg: valhalla/valhalla10-old/jaxp: 4 new changesets Message-ID: <201709261245.v8QCj6EU028466@aojmv0008.oracle.com> Changeset: 588139874696 Author: asaha Date: 2017-08-25 04:59 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxp/rev/588139874696 Added tag jdk-10+21 for changeset dcd49f380d75 ! .hgtags Changeset: 47872600e78b Author: joehw Date: 2017-08-25 10:17 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxp/rev/47872600e78b 8186675: Javadoc of SAXSource contains implementation detail Reviewed-by: lancea ! src/java.xml/share/classes/javax/xml/transform/sax/SAXSource.java Changeset: 7b77f4c26025 Author: asaha Date: 2017-09-01 14:13 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxp/rev/7b77f4c26025 Added tag jdk-10+22 for changeset 47872600e78b ! .hgtags Changeset: 784201b9cfc4 Author: lana Date: 2017-09-08 18:24 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxp/rev/784201b9cfc4 Added tag jdk-10+23 for changeset 7b77f4c26025 ! .hgtags From david.simms at oracle.com Tue Sep 26 12:45:12 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:45:12 +0000 Subject: hg: valhalla/valhalla10-old/jaxws: 4 new changesets Message-ID: <201709261245.v8QCjCrp028567@aojmv0008.oracle.com> Changeset: c162c9e4c9c0 Author: asaha Date: 2017-08-25 04:59 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxws/rev/c162c9e4c9c0 Added tag jdk-10+21 for changeset 30ed8fb6a1d1 ! .hgtags Changeset: 786c1a5c82d9 Author: asaha Date: 2017-09-01 14:13 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxws/rev/786c1a5c82d9 Added tag jdk-10+22 for changeset c162c9e4c9c0 ! .hgtags Changeset: 3aaaaf69b6c3 Author: jjg Date: 2017-09-01 14:06 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxws/rev/3aaaaf69b6c3 8186947: Fix accessibility and other issues in the java.xml.ws module Reviewed-by: lancea, mchung, darcy ! src/java.xml.bind/share/classes/javax/xml/bind/JAXBPermission.java ! src/java.xml.bind/share/classes/javax/xml/bind/Marshaller.java ! src/java.xml.bind/share/classes/javax/xml/bind/Unmarshaller.java ! src/java.xml.bind/share/classes/javax/xml/bind/annotation/XmlNsForm.java ! src/java.xml.bind/share/classes/javax/xml/bind/annotation/XmlType.java ! src/java.xml.bind/share/classes/javax/xml/bind/annotation/adapters/package-info.java - src/java.xml.bind/share/classes/javax/xml/bind/annotation/adapters/package.html ! src/java.xml.bind/share/classes/javax/xml/bind/annotation/package.html ! src/java.xml.bind/share/classes/javax/xml/bind/attachment/AttachmentUnmarshaller.java ! src/java.xml.bind/share/classes/javax/xml/bind/helpers/package-info.java - src/java.xml.bind/share/classes/javax/xml/bind/helpers/package.html ! src/java.xml.bind/share/classes/javax/xml/bind/util/package-info.java - src/java.xml.bind/share/classes/javax/xml/bind/util/package.html ! src/java.xml.ws/share/classes/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java Changeset: eabfe5e1affc Author: lana Date: 2017-09-08 18:24 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxws/rev/eabfe5e1affc Added tag jdk-10+23 for changeset 3aaaaf69b6c3 ! .hgtags From david.simms at oracle.com Tue Sep 26 12:45:32 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:45:32 +0000 Subject: hg: valhalla/valhalla10-old/jdk: 127 new changesets Message-ID: <201709261245.v8QCja2j028654@aojmv0008.oracle.com> Changeset: f049b1fd90c3 Author: jlahoda Date: 2017-08-22 13:08 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/f049b1fd90c3 8182297: jshell tool: pasting multiple lines of code truncated Summary: Read input needs to be kept across ConsoleReader.readLine invocations unless consumed. Reviewed-by: rfield ! src/jdk.internal.le/share/classes/jdk/internal/jline/console/ConsoleReader.java Changeset: 2f3d9ed99e66 Author: rriggs Date: 2017-08-22 09:41 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/2f3d9ed99e66 8173817: StackOverflowError in "process reaper" thread Summary: Switch to inner class to avoid lambda stack overhead in ProcessReaper Reviewed-by: dholmes, martin ! src/java.base/share/classes/java/lang/ProcessHandleImpl.java Changeset: fe799975105c Author: jwilhelm Date: 2017-08-22 16:20 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/fe799975105c Merge Changeset: eef928e08804 Author: ssahoo Date: 2017-08-23 09:13 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/eef928e08804 8183310: java/security/modules/ModularTest.java should clean up better Summary: This require cleaning up Test files. Reviewed-by: weijun ! test/java/security/Provider/SecurityProviderModularTest.java + test/java/security/Provider/TestClient.java + test/java/security/Provider/TestProvider.java - test/java/security/Provider/TestSecurityProvider.java - test/java/security/Provider/TestSecurityProviderClient.java - test/java/security/modules/ModularTest.java ! test/javax/security/auth/login/modules/JaasClient.java ! test/javax/security/auth/login/modules/JaasClientWithDefaultHandler.java ! test/javax/security/auth/login/modules/JaasModularClientTest.java ! test/javax/security/auth/login/modules/JaasModularDefaultHandlerTest.java - test/javax/security/auth/login/modules/TEST.properties ! test/javax/security/auth/login/modules/TestLoginModule.java Changeset: d32fe43af590 Author: lancea Date: 2017-08-23 12:24 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/d32fe43af590 8184120: javax.transaction.xa.Xid fields reference obsolete method names Reviewed-by: psandoz ! src/java.sql/share/classes/javax/transaction/xa/Xid.java Changeset: 46e9f2b0a472 Author: jjg Date: 2017-08-23 10:58 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/46e9f2b0a472 8186466: Fix accessibility and other minor issues in java.base Reviewed-by: mchung, naoto, martin ! src/java.base/share/classes/java/lang/String.java ! src/java.base/share/classes/java/lang/doc-files/ValueBased.html - src/java.base/share/classes/java/lang/doc-files/capchi.gif - src/java.base/share/classes/java/lang/doc-files/capiota.gif - src/java.base/share/classes/java/lang/doc-files/capsigma.gif - src/java.base/share/classes/java/lang/doc-files/captheta.gif - src/java.base/share/classes/java/lang/doc-files/capupsil.gif - src/java.base/share/classes/java/lang/doc-files/chi.gif - src/java.base/share/classes/java/lang/doc-files/iota.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc21.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc38.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc40.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc41.gif - src/java.base/share/classes/java/lang/doc-files/sigma1.gif - src/java.base/share/classes/java/lang/doc-files/theta.gif ! src/java.base/share/classes/java/lang/doc-files/threadPrimitiveDeprecation.html - src/java.base/share/classes/java/lang/doc-files/upsilon.gif ! src/java.base/share/classes/java/time/format/DateTimeFormatter.java ! src/java.base/share/classes/java/util/Deque.java ! src/java.base/share/classes/java/util/Queue.java ! src/java.base/share/classes/java/util/ResourceBundle.java ! src/java.base/share/classes/java/util/concurrent/BlockingDeque.java ! src/java.base/share/classes/java/util/concurrent/BlockingQueue.java ! src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java ! src/java.base/share/classes/java/util/doc-files/coll-designfaq.html ! src/java.base/share/classes/java/util/doc-files/coll-index.html ! src/java.base/share/classes/java/util/doc-files/coll-overview.html ! src/java.base/share/classes/java/util/doc-files/coll-reference.html ! src/java.base/share/classes/java/util/regex/Pattern.java ! src/java.base/share/classes/java/util/spi/CalendarNameProvider.java Changeset: 49163d0109ec Author: sherman Date: 2017-08-23 21:27 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/49163d0109ec 8186142: ZipPath.{starts,ends}With(nonZipPath) throws an exception, but should return false Reviewed-by: martin ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java ! test/jdk/nio/zipfs/PathOps.java Changeset: 4e08a69241ea Author: redestad Date: 2017-08-24 15:03 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/4e08a69241ea 8186500: StringConcatFactory.makeConcatWithConstants throws AssertionError when recipe contains non-String constants Reviewed-by: shade, psandoz ! src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java ! test/java/lang/String/concat/StringConcatFactoryInvariants.java Changeset: df236bc94cde Author: vinnie Date: 2017-08-24 16:49 +0100 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/df236bc94cde 8173181: Empty string alias in KeyStore throws StringIndexOutOfBoundsException for getEntry() Reviewed-by: weijun ! src/java.base/share/classes/java/security/PKCS12Attribute.java + test/sun/security/pkcs12/EmptyAlias.java Changeset: c05f834c3e7b Author: iignatyev Date: 2017-08-24 15:40 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/c05f834c3e7b 8186613: remove ClassFileInstaller from jdk/test/lib/testlibrary Reviewed-by: mchung, igerasim ! test/jdk/internal/reflect/AnonymousNewInstance/ManyNewInstanceAnonTest.java - test/lib/testlibrary/ClassFileInstaller.java Changeset: a483aac4000b Author: jjg Date: 2017-08-24 16:52 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/a483aac4000b 8186684: Fix broken links in java.base API docs Reviewed-by: sherman, martin, mchung, bpb, lancea ! src/java.base/share/classes/java/lang/BootstrapMethodError.java ! src/java.base/share/classes/java/lang/ModuleLayer.java ! src/java.base/share/classes/java/lang/ProcessBuilder.java ! src/java.base/share/classes/java/lang/invoke/MethodHandle.java ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/java/lang/invoke/VarHandle.java ! src/java.base/share/classes/java/lang/module/Configuration.java ! src/java.base/share/classes/java/lang/module/ModuleDescriptor.java ! src/java.base/share/classes/java/net/URLStreamHandler.java ! src/java.base/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java ! src/java.base/share/classes/java/nio/channels/spi/AbstractSelector.java ! src/java.base/share/classes/java/nio/file/FileSystems.java ! src/java.base/share/classes/java/nio/file/attribute/AclEntry.java ! src/java.base/share/classes/java/util/Calendar.java ! src/java.base/share/classes/java/util/Collection.java ! src/java.base/share/classes/java/util/concurrent/ForkJoinWorkerThread.java ! src/java.base/share/classes/java/util/jar/package-info.java ! src/java.base/share/classes/java/util/stream/package-info.java ! src/java.base/share/classes/java/util/zip/Deflater.java ! src/java.base/share/classes/java/util/zip/Inflater.java Changeset: fa7582840977 Author: weijun Date: 2017-08-25 09:28 +0800 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/fa7582840977 8186576: KerberosTicket does not properly handle renewable tickets at the end of their lifetime Reviewed-by: xuelei ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/KerberosTicket.java ! src/java.security.jgss/share/classes/sun/security/krb5/KrbTgsReq.java ! src/jdk.security.auth/share/classes/com/sun/security/auth/module/Krb5LoginModule.java ! test/sun/security/krb5/auto/KDC.java + test/sun/security/krb5/auto/NullRenewUntil.java Changeset: 820a3631d030 Author: asaha Date: 2017-08-25 04:59 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/820a3631d030 Added tag jdk-10+21 for changeset 4e08a69241ea ! .hgtags Changeset: 40dec428648e Author: asaha Date: 2017-08-25 05:02 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/40dec428648e Merge - test/lib/testlibrary/ClassFileInstaller.java Changeset: 7dec03b77b26 Author: bchristi Date: 2017-08-25 10:39 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/7dec03b77b26 8186217: Remove erroneous @hidden JavaDoc tag from java.util.Properties.replace(Object, Object, Object) Reviewed-by: bpb, naoto ! src/java.base/share/classes/java/util/Properties.java Changeset: 603393a94dd7 Author: bpb Date: 2017-08-25 10:43 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/603393a94dd7 8186707: Remove libnio FileChannelImpl native close0() function Summary: Remove Java_sun_nio_ch_FileChannelImpl_close0() on Unix and Windows and Java_sun_nio_ch_FileDispatcherImpl_closeByHandle on Windows only Reviewed-by: alanb ! make/mapfiles/libnio/mapfile-linux ! make/mapfiles/libnio/mapfile-macosx ! make/mapfiles/libnio/mapfile-solaris ! src/java.base/unix/native/libnio/ch/FileChannelImpl.c ! src/java.base/windows/classes/sun/nio/ch/FileDispatcherImpl.java ! src/java.base/windows/native/libnio/ch/FileChannelImpl.c ! src/java.base/windows/native/libnio/ch/FileDispatcherImpl.c Changeset: 162c0a6e1fe3 Author: mchung Date: 2017-08-25 10:52 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/162c0a6e1fe3 8186145: tools/launcher/modules/validate/ValidateModulesTest.java fails when launched with -XX:+EnableJVMCI Summary: --validate-modules runs with a boot layer resolving all system modules rather than only java.base Reviewed-by: alanb ! src/java.base/share/classes/jdk/internal/module/ModuleBootstrap.java ! src/java.base/share/native/libjli/java.c Changeset: 965d4dde0086 Author: naoto Date: 2017-08-28 10:16 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/965d4dde0086 8171049: Era.getDisplayName doesn't work with non-IsoChronology Reviewed-by: rriggs ! src/java.base/share/classes/java/time/chrono/HijrahEra.java ! src/java.base/share/classes/java/time/chrono/JapaneseEra.java ! src/java.base/share/classes/java/time/chrono/MinguoEra.java ! src/java.base/share/classes/java/time/chrono/ThaiBuddhistEra.java + test/java/time/test/java/time/chrono/TestEraDisplayName.java Changeset: a03402163220 Author: rriggs Date: 2017-08-28 13:21 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/a03402163220 8186539: [testlibrary] TestSocketFactory should allow triggers before match/replace Reviewed-by: smarks ! test/java/rmi/testlibrary/TestSocketFactory.java Changeset: 9c9efd97932e Author: jwilhelm Date: 2017-08-28 21:46 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/9c9efd97932e Merge Changeset: ebdaa1e7ab33 Author: xuelei Date: 2017-08-29 00:01 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/ebdaa1e7ab33 8179654: New JDK 9 typos in SSLEngineResult Reviewed-by: ascarpino, wetmore ! src/java.base/share/classes/javax/net/ssl/SSLEngineResult.java Changeset: 73f03af58164 Author: nishjain Date: 2017-08-29 12:16 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/73f03af58164 8186713: Document default rounding mode in NumberFormat Reviewed-by: naoto, bpb Contributed-by: nishit.jain at oracle.com ! src/java.base/share/classes/java/text/NumberFormat.java ! src/java.base/share/classes/java/util/Formatter.java Changeset: 800352238173 Author: xiaofeya Date: 2017-08-29 07:16 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/800352238173 8186818: Enable debug option for TcpTest.java Reviewed-by: rriggs ! test/java/net/ipv6tests/TcpTest.java Changeset: 5835fd994586 Author: uvangapally Date: 2017-08-29 20:23 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/5835fd994586 8186224: javax/management/remote/mandatory/subjectDelegation/* fail with java.security.AccessControlException Summary: Edited policy files to grant permissions to all drives on windows Reviewed-by: hb, clanger Contributed-by: ujwal.vangapally at oracle.com ! test/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation1Test.java ! test/javax/management/remote/mandatory/subjectDelegation/policy11 ! test/javax/management/remote/mandatory/subjectDelegation/policy12 ! test/javax/management/remote/mandatory/subjectDelegation/policy13 ! test/javax/management/remote/mandatory/subjectDelegation/policy14 ! test/javax/management/remote/mandatory/subjectDelegation/policy15 ! test/javax/management/remote/mandatory/subjectDelegation/policy16 ! test/javax/management/remote/mandatory/subjectDelegation/policy21 ! test/javax/management/remote/mandatory/subjectDelegation/policy22 ! test/javax/management/remote/mandatory/subjectDelegation/policy23 ! test/javax/management/remote/mandatory/subjectDelegation/policy24 ! test/javax/management/remote/mandatory/subjectDelegation/policy25 ! test/javax/management/remote/mandatory/subjectDelegation/policy31 ! test/javax/management/remote/mandatory/subjectDelegation/policy32 ! test/javax/management/remote/mandatory/subjectDelegation/policy33 ! test/javax/management/remote/mandatory/subjectDelegation/policy34 ! test/javax/management/remote/mandatory/subjectDelegation/policy35 Changeset: 84953f6385d7 Author: goetz Date: 2017-08-29 17:29 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/84953f6385d7 8186719: [testbug] add @requires vm.cds to CDS tests in jdk test suite Reviewed-by: dholmes, iklam ! test/TEST.ROOT ! test/com/sun/jdi/cds/CDSBreakpointTest.java ! test/com/sun/jdi/cds/CDSDeleteAllBkptsTest.java ! test/com/sun/jdi/cds/CDSFieldWatchpoints.java Changeset: ff2928f81829 Author: smarks Date: 2017-08-29 12:16 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/ff2928f81829 8186851: fix misspellings of "dependent" and "independent" in the JDK repo Reviewed-by: bpb, psadhukhan ! src/java.base/share/classes/java/text/Collator.java ! src/java.base/share/classes/java/text/NumberFormat.java ! src/java.base/share/classes/sun/nio/ch/Net.java ! src/java.desktop/macosx/native/libsplashscreen/splashscreen_sys.m ! src/java.desktop/share/classes/java/awt/EventQueue.java ! src/java.desktop/share/classes/javax/sound/midi/MidiDevice.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicToolTipUI.java ! src/java.desktop/share/classes/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java ! src/java.desktop/share/classes/javax/swing/plaf/metal/MetalTitlePane.java ! src/java.desktop/share/classes/javax/swing/text/GlyphView.java ! src/java.desktop/share/classes/javax/swing/text/TableView.java ! src/jdk.internal.le/share/classes/jdk/internal/jline/console/ConsoleReader.java ! src/jdk.sctp/share/classes/com/sun/nio/sctp/package-info.java ! test/sanity/client/lib/SwingSet3/src/com/sun/swingset3/demos/togglebutton/LayoutControlPanel.java Changeset: 1f8498df012c Author: sspitsyn Date: 2017-08-28 00:49 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/1f8498df012c 8186776: use ReleaseStringUTFChars instead of jvmtiDeallocate to release strings Summary: Replace jvmtiDeallocate with ReleaseStringUTFChars Reviewed-by: sspitsyn, clanger Contributed-by: groeges at uk.ibm.com ! src/jdk.jdwp.agent/share/native/libjdwp/ModuleReferenceImpl.c Changeset: e78706585c43 Author: sspitsyn Date: 2017-08-28 07:53 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/e78706585c43 Merge - src/jdk.security.auth/share/classes/com/sun/security/auth/PolicyFile.java - src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisPrincipal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/X500Principal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisLoginModule.java - src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisSystem.java - src/jdk.security.auth/solaris/native/libjaas/Solaris.c Changeset: c8796a577885 Author: jwilhelm Date: 2017-08-29 17:17 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/c8796a577885 Merge Changeset: ec5f5233791e Author: redestad Date: 2017-08-30 18:45 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/ec5f5233791e 8186930: Constant fold URI constants Reviewed-by: alanb, chegar ! src/java.base/share/classes/java/net/URI.java ! src/java.base/share/classes/sun/net/www/ParseUtil.java Changeset: 787703ab9a62 Author: sherman Date: 2017-08-30 10:09 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/787703ab9a62 8186801: Add regression test to test mapping based charsets (generated at build time) Reviewed-by: alanb + make/data/charsetmapping/Big5_HKSCS.c2b + make/data/charsetmapping/Big5_HKSCS.map + make/data/charsetmapping/Big5_HKSCS.nr + make/data/charsetmapping/Big5_Solaris.map + make/data/charsetmapping/EUC_JP.map + make/data/charsetmapping/EUC_JP_LINUX.map + make/data/charsetmapping/EUC_JP_Open.map + make/data/charsetmapping/EUC_TW.map + make/data/charsetmapping/EUC_TW.nr + make/data/charsetmapping/GB18030.map + make/data/charsetmapping/IBM1140.nr + make/data/charsetmapping/IBM1141.nr + make/data/charsetmapping/IBM1142.nr + make/data/charsetmapping/IBM1143.nr + make/data/charsetmapping/IBM1144.nr + make/data/charsetmapping/IBM1145.nr + make/data/charsetmapping/IBM1146.nr + make/data/charsetmapping/IBM1147.nr + make/data/charsetmapping/IBM1148.nr + make/data/charsetmapping/IBM1149.nr + make/data/charsetmapping/MS950_HKSCS_XP.map ! make/data/charsetmapping/charsets - make/data/charsetmapping/euc_tw.map ! make/src/classes/build/tools/charsetmapping/EUC_TW.java ! src/jdk.charsets/share/classes/sun/nio/cs/ext/MS932_0213.java ! src/jdk.charsets/share/classes/sun/nio/cs/ext/SJIS_0213.java ! test/sun/nio/cs/EuroConverter.java + test/sun/nio/cs/TestCharsetMapping.java + test/sun/nio/cs/TestEBCDICLineFeed.java Changeset: 06168eefa456 Author: redestad Date: 2017-08-30 20:12 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/06168eefa456 8186517: sun.nio.cs.StandardCharsets$Aliases and Classes can be lazily loaded Reviewed-by: sherman, martin, plevart ! make/src/classes/build/tools/charsetmapping/DBCS.java ! make/src/classes/build/tools/charsetmapping/SBCS.java ! make/src/classes/build/tools/charsetmapping/SPI.java ! make/src/classes/build/tools/charsetmapping/SRC.java ! src/java.base/share/classes/java/lang/StringCoding.java ! src/java.base/share/classes/java/nio/charset/Charset.java ! src/java.base/share/classes/java/nio/charset/StandardCharsets.java ! src/java.base/share/classes/sun/nio/cs/CESU_8.java ! src/java.base/share/classes/sun/nio/cs/ISO_8859_1.java ! src/java.base/share/classes/sun/nio/cs/StandardCharsets.java.template ! src/java.base/share/classes/sun/nio/cs/US_ASCII.java ! src/java.base/share/classes/sun/nio/cs/UTF_16.java ! src/java.base/share/classes/sun/nio/cs/UTF_16BE.java ! src/java.base/share/classes/sun/nio/cs/UTF_16LE.java ! src/java.base/share/classes/sun/nio/cs/UTF_16LE_BOM.java ! src/java.base/share/classes/sun/nio/cs/UTF_32.java ! src/java.base/share/classes/sun/nio/cs/UTF_32BE.java ! src/java.base/share/classes/sun/nio/cs/UTF_32BE_BOM.java ! src/java.base/share/classes/sun/nio/cs/UTF_32LE.java ! src/java.base/share/classes/sun/nio/cs/UTF_32LE_BOM.java ! src/java.base/share/classes/sun/nio/cs/UTF_8.java Changeset: 4ab6d768430f Author: naoto Date: 2017-08-30 11:37 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/4ab6d768430f 8179246:  /  are literally visible in javadoc Reviewed-by: jjg ! src/java.base/share/classes/java/util/spi/AbstractResourceBundleProvider.java Changeset: 83b8469d9ea3 Author: jjg Date: 2017-08-30 12:45 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/83b8469d9ea3 8186932: Fix accessibility issues in the java.management module Reviewed-by: mchung ! src/java.management/share/classes/java/lang/management/LockInfo.java ! src/java.management/share/classes/java/lang/management/ManagementFactory.java ! src/java.management/share/classes/java/lang/management/ManagementPermission.java ! src/java.management/share/classes/java/lang/management/MemoryNotificationInfo.java ! src/java.management/share/classes/java/lang/management/MemoryUsage.java ! src/java.management/share/classes/java/lang/management/MonitorInfo.java ! src/java.management/share/classes/java/lang/management/RuntimeMXBean.java ! src/java.management/share/classes/java/lang/management/ThreadInfo.java ! src/java.management/share/classes/javax/management/Descriptor.java ! src/java.management/share/classes/javax/management/DescriptorKey.java ! src/java.management/share/classes/javax/management/MXBean.java ! src/java.management/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java ! src/java.management/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java ! src/java.management/share/classes/javax/management/modelmbean/ModelMBeanInfo.java ! src/java.management/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java ! src/java.management/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java ! src/java.management/share/classes/javax/management/remote/JMXConnectionNotification.java Changeset: 5a28f7ef36da Author: jjg Date: 2017-08-30 12:46 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/5a28f7ef36da 8186934: Fix accessibility issues in the java.naming module Reviewed-by: mchung ! src/java.naming/share/classes/javax/naming/CompositeName.java Changeset: 125e348a3cbf Author: naoto Date: 2017-08-31 08:35 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/125e348a3cbf 8180469: Wrong short form text for supplemental Japanese era Reviewed-by: rriggs ! src/java.base/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java ! test/java/util/Calendar/SupplementalJapaneseEraTest.java Changeset: 10498d6923ae Author: wetmore Date: 2017-08-31 12:48 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/10498d6923ae 8186093: A comment in the java.security configuration file incorrectly says that strong but "limited" is the default value Reviewed-by: mullan ! src/java.base/share/conf/security/java.security ! src/java.base/share/conf/security/policy/README.txt Changeset: 83720375178f Author: rriggs Date: 2017-08-31 17:08 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/83720375178f 8087189: RMI server-side multiplex protocol support should be removed Reviewed-by: alanb ! src/java.rmi/share/classes/sun/rmi/server/ActivatableRef.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexConnectionInfo.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexInputStream.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexOutputStream.java ! src/java.rmi/share/classes/sun/rmi/transport/tcp/TCPChannel.java ! src/java.rmi/share/classes/sun/rmi/transport/tcp/TCPTransport.java Changeset: ddc25f646c2e Author: igerasim Date: 2017-08-31 22:21 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/ddc25f646c2e 8187023: Cannot read pkcs11 config file in UTF-16 environment Reviewed-by: ascarpino ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/Config.java + test/sun/security/pkcs11/Config/ReadConfInUTF16Env.java + test/sun/security/pkcs11/Config/ReadConfInUTF16Env.sh Changeset: dde51e70f319 Author: asaha Date: 2017-09-01 14:14 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/dde51e70f319 Added tag jdk-10+22 for changeset 83720375178f ! .hgtags Changeset: 20bb4051f723 Author: asaha Date: 2017-09-01 14:15 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/20bb4051f723 Merge Changeset: 4846f1bc6d2b Author: sherman Date: 2017-09-01 08:15 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/4846f1bc6d2b 8186751: Add ISO-8859-16 Charset support Reviewed-by: alanb + make/data/charsetmapping/ISO_8859_16.map ! make/data/charsetmapping/charsets ! src/java.base/share/classes/sun/nio/cs/Unicode.java ! src/jdk.charsets/share/classes/sun/nio/cs/ext/GB18030.java.template ! test/java/nio/charset/Charset/CharsetContainmentTest.java ! test/java/nio/charset/Charset/RegisteredCharsets.java ! test/sun/nio/cs/TestCharsetMapping.java Changeset: 5fcfc9e09966 Author: dfuchs Date: 2017-09-01 18:18 +0100 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/5fcfc9e09966 8187044: HttpClient ConnectionPool may spawn several concurrent CacheCleaner and prevent early GC of HttpClient. Summary: Fixes CacheCleaner creation logic in ConnectionPool. Reviewed-by: chegar ! src/jdk.incubator.httpclient/share/classes/jdk/incubator/http/ConnectionPool.java ! test/java/net/httpclient/whitebox/Driver.java + test/java/net/httpclient/whitebox/jdk.incubator.httpclient/jdk/incubator/http/ConnectionPoolTest.java Changeset: f59720adabf8 Author: jjg Date: 2017-09-01 11:54 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/f59720adabf8 8187021: Remove 2 redundant

tags in java.base API docs Reviewed-by: darcy ! src/java.base/share/classes/java/io/FileOutputStream.java ! src/java.base/share/classes/module-info.java Changeset: daed9a0332d3 Author: jwilhelm Date: 2017-08-28 21:46 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/daed9a0332d3 Merge - src/java.base/share/classes/java/lang/doc-files/capchi.gif - src/java.base/share/classes/java/lang/doc-files/capiota.gif - src/java.base/share/classes/java/lang/doc-files/capsigma.gif - src/java.base/share/classes/java/lang/doc-files/captheta.gif - src/java.base/share/classes/java/lang/doc-files/capupsil.gif - src/java.base/share/classes/java/lang/doc-files/chi.gif - src/java.base/share/classes/java/lang/doc-files/iota.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc21.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc38.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc40.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc41.gif - src/java.base/share/classes/java/lang/doc-files/sigma1.gif - src/java.base/share/classes/java/lang/doc-files/theta.gif - src/java.base/share/classes/java/lang/doc-files/upsilon.gif - test/java/security/Provider/TestSecurityProvider.java - test/java/security/Provider/TestSecurityProviderClient.java - test/java/security/modules/ModularTest.java - test/javax/security/auth/login/modules/TEST.properties - test/lib/testlibrary/ClassFileInstaller.java Changeset: ab44eeefaac9 Author: jwilhelm Date: 2017-08-29 17:17 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/ab44eeefaac9 Merge Changeset: b55a87e91529 Author: jwilhelm Date: 2017-08-29 22:15 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/b55a87e91529 Merge Changeset: 9ab6150be6c0 Author: dsamersoff Date: 2017-08-31 21:31 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/9ab6150be6c0 8061228: Allow JDWP socket connector to accept connections from certain ip addresses only Summary: Introduce new parameter for JDWP agent, that allows to restrict connection to certain ip addresses only Reviewed-by: dcubed, clanger, rehn, sspitsyn ! src/jdk.jdwp.agent/share/native/include/jdwpTransport.h ! src/jdk.jdwp.agent/share/native/libdt_socket/socketTransport.c ! src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c ! src/jdk.jdwp.agent/share/native/libjdwp/transport.c ! src/jdk.jdwp.agent/share/native/libjdwp/transport.h + test/com/sun/jdi/BasicJDWPConnectionTest.java Changeset: e6f271a20de8 Author: gziemski Date: 2017-08-31 20:25 -0500 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/e6f271a20de8 8173715: Remove FlatProfiler Summary: Obsoleted Xprof flag, removed FlatProfiler code Reviewed-by: mchung ! src/java.base/share/classes/sun/launcher/resources/launcher.properties ! src/linux/doc/man/java.1 ! src/solaris/doc/sun/man/man1/java.1 Changeset: 90d550ad1fba Author: gziemski Date: 2017-09-01 13:03 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/90d550ad1fba Merge Changeset: 92657a0613dd Author: jwilhelm Date: 2017-09-03 14:19 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/92657a0613dd Merge Changeset: 4276a5e50032 Author: xiaofeya Date: 2017-09-04 17:46 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/4276a5e50032 8134989: java/net/MulticastSocket/TestInterfaces.java failed due to unexpected IP address Reviewed-by: rriggs, chegar, msheppar ! test/java/net/MulticastSocket/TestInterfaces.java Changeset: a6c0c022f56f Author: lbourges Date: 2017-05-17 22:05 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/a6c0c022f56f 8180055: Upgrade the Marlin renderer in Java2D Summary: added the double-precision variant + MarlinFX backports + Improved MarlinTileGenerator + higher precision of the cubic / quadratic curve Reviewed-by: flar, pnarayanan ! src/java.desktop/share/classes/sun/java2d/marlin/ArrayCacheConst.java ! src/java.desktop/share/classes/sun/java2d/marlin/ByteArrayCache.java ! src/java.desktop/share/classes/sun/java2d/marlin/CollinearSimplifier.java ! src/java.desktop/share/classes/sun/java2d/marlin/Curve.java + src/java.desktop/share/classes/sun/java2d/marlin/DCollinearSimplifier.java + src/java.desktop/share/classes/sun/java2d/marlin/DCurve.java + src/java.desktop/share/classes/sun/java2d/marlin/DDasher.java + src/java.desktop/share/classes/sun/java2d/marlin/DHelpers.java + src/java.desktop/share/classes/sun/java2d/marlin/DMarlinRenderingEngine.java + src/java.desktop/share/classes/sun/java2d/marlin/DPathConsumer2D.java + src/java.desktop/share/classes/sun/java2d/marlin/DRenderer.java + src/java.desktop/share/classes/sun/java2d/marlin/DRendererContext.java + src/java.desktop/share/classes/sun/java2d/marlin/DStroker.java + src/java.desktop/share/classes/sun/java2d/marlin/DTransformingPathConsumer2D.java ! src/java.desktop/share/classes/sun/java2d/marlin/Dasher.java + src/java.desktop/share/classes/sun/java2d/marlin/DoubleArrayCache.java ! src/java.desktop/share/classes/sun/java2d/marlin/FloatArrayCache.java ! src/java.desktop/share/classes/sun/java2d/marlin/FloatMath.java ! src/java.desktop/share/classes/sun/java2d/marlin/Helpers.java + src/java.desktop/share/classes/sun/java2d/marlin/IRendererContext.java ! src/java.desktop/share/classes/sun/java2d/marlin/IntArrayCache.java ! src/java.desktop/share/classes/sun/java2d/marlin/MarlinCache.java ! src/java.desktop/share/classes/sun/java2d/marlin/MarlinConst.java ! src/java.desktop/share/classes/sun/java2d/marlin/MarlinProperties.java + src/java.desktop/share/classes/sun/java2d/marlin/MarlinRenderer.java ! src/java.desktop/share/classes/sun/java2d/marlin/MarlinRenderingEngine.java ! src/java.desktop/share/classes/sun/java2d/marlin/MarlinTileGenerator.java ! src/java.desktop/share/classes/sun/java2d/marlin/OffHeapArray.java ! src/java.desktop/share/classes/sun/java2d/marlin/Renderer.java ! src/java.desktop/share/classes/sun/java2d/marlin/RendererContext.java ! src/java.desktop/share/classes/sun/java2d/marlin/Stroker.java ! src/java.desktop/share/classes/sun/java2d/marlin/TransformingPathConsumer2D.java ! src/java.desktop/share/classes/sun/java2d/marlin/Version.java ! src/java.desktop/share/classes/sun/java2d/pipe/RenderingEngine.java Changeset: c4822869431e Author: ssadetsky Date: 2017-05-19 07:25 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/c4822869431e 8132299: Shift + Mouse wheel ScrollPane horizontal scrolling doesn't work on Linux but works on Mac. Reviewed-by: arapte, azvegint ! src/java.desktop/unix/native/libawt_xawt/xawt/XWindow.c ! test/java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java Changeset: 8af6f583c64e Author: psadhukhan Date: 2017-05-22 11:21 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/8af6f583c64e 7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException Reviewed-by: ssadetsky, aniyogi ! src/java.desktop/share/classes/javax/swing/JOptionPane.java + test/javax/swing/JOptionPane/7042497/JOptionPaneConfirmDlgTest.java Changeset: 78765a0b65f2 Author: prr Date: 2017-05-22 09:34 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/78765a0b65f2 Merge - src/java.base/share/specs/serialization/changelog.md - src/java.base/share/specs/serialization/images/class.gif - test/java/nio/channels/DatagramChannel/NetworkConfiguration.java - test/lib/testlibrary/jdk/testlibrary/FilterClassLoader.java - test/lib/testlibrary/jdk/testlibrary/IOUtils.java - test/lib/testlibrary/jdk/testlibrary/NetworkConfiguration.java - test/lib/testlibrary/jdk/testlibrary/ParentLastURLClassLoader.java - test/lib/testlibrary/jdk/testlibrary/SerializationUtils.java - test/lib/testlibrary/jdk/testlibrary/management/InputArguments.java Changeset: 1df761aac102 Author: prr Date: 2017-05-25 09:15 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/1df761aac102 Merge - src/java.base/share/classes/sun/security/ssl/RecordType.java - test/lib/testlibrary/ModuleInfoMaker.java - test/lib/testlibrary/jdk/testlibrary/LockFreeLogManager.java - test/lib/testlibrary/jdk/testlibrary/management/ThreadMXBeanTool.java Changeset: c7bdf294af3f Author: psadhukhan Date: 2017-05-27 12:55 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/c7bdf294af3f 6461834: Minimize WindowsLookAndFeel classes included with Unix JDKs Reviewed-by: ihse, aniyogi, prr ! src/java.desktop/share/classes/module-info.java + src/java.desktop/windows/classes/module-info.java.extra ! test/com/sun/java/swing/plaf/windows/Test6824600.java ! test/javax/swing/JButton/4796987/bug4796987.java ! test/javax/swing/JComboBox/4199622/bug4199622.java ! test/javax/swing/JComboBox/8015300/Test8015300.java ! test/javax/swing/JFileChooser/8046391/bug8046391.java ! test/javax/swing/JInternalFrame/6725409/bug6725409.java ! test/javax/swing/JSlider/6524424/bug6524424.java ! test/javax/swing/JTree/8004298/bug8004298.java ! test/javax/swing/border/Test4856008.java ! test/javax/swing/border/Test6978482.java Changeset: 13f281a646ec Author: prr Date: 2017-06-02 14:45 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/13f281a646ec Merge - make/data/docs-resources/specs/resources/jdk-default.css - test/java/io/Serializable/evolution/AddedExternField/run.sh - test/java/io/Serializable/evolution/RenamePackage/run.sh - test/java/io/Serializable/maskSyntheticModifier/Test.java - test/java/io/Serializable/maskSyntheticModifier/run.sh - test/java/io/Serializable/packageAccess/Test.java - test/java/io/Serializable/packageAccess/run.sh - test/java/io/Serializable/resolveClass/consTest/Test.java - test/java/io/Serializable/resolveClass/consTest/run.sh - test/java/io/Serializable/resolveClass/deserializeButton/Test.java - test/java/io/Serializable/resolveClass/deserializeButton/run.sh - test/java/io/Serializable/serialver/classpath/Test.java - test/java/io/Serializable/serialver/classpath/run.sh - test/java/io/Serializable/serialver/nested/Test.java - test/java/io/Serializable/serialver/nested/run.sh - test/java/io/Serializable/subclass/Test.java - test/java/io/Serializable/subclass/run.sh - test/java/io/Serializable/superclassDataLoss/Test.java - test/java/io/Serializable/superclassDataLoss/run.sh - test/java/io/Serializable/unnamedPackageSwitch/Test.java - test/java/io/Serializable/unnamedPackageSwitch/run.sh - test/java/net/Socket/OldSocketImpl.sh - test/java/net/URL/B5086147.sh - test/java/net/URLClassLoader/B5077773.java - test/java/net/URLClassLoader/B5077773.sh - test/java/net/URLClassLoader/closetest/build.sh - test/java/net/URLClassLoader/closetest/build2.sh - test/java/net/URLClassLoader/getresourceasstream/test.sh - test/java/net/URLClassLoader/sealing/checksealed.sh - test/java/net/URLConnection/6212146/test.sh - test/java/net/URLConnection/UNCTest.sh - test/java/nio/Buffer/LimitDirectMemory.sh - test/java/nio/channels/AsynchronousChannelGroup/Attack.java - test/java/nio/channels/AsynchronousChannelGroup/PrivilegedThreadFactory.java - test/java/nio/channels/AsynchronousChannelGroup/run_any_task.sh - test/lib/testlibrary/JavaToolUtils.java - test/lib/testlibrary/jdk/testlibrary/FileUtils.java - test/lib/testlibrary/jdk/testlibrary/JarUtils.java - test/lib/testlibrary/jsr292/com/oracle/testlibrary/jsr292/CodeCacheOverflowProcessor.java - test/lib/testlibrary/jsr292/com/oracle/testlibrary/jsr292/Helper.java - test/tools/jar/multiRelease/data/runtimetest/base/testpackage/Helper.java - test/tools/jar/multiRelease/data/runtimetest/base/testpackage/Main.java - test/tools/jar/multiRelease/data/runtimetest/base/versionResource - test/tools/jar/multiRelease/data/runtimetest/v10/testpackage/Helper.java - test/tools/jar/multiRelease/data/runtimetest/v10/testpackage/Main.java - test/tools/jar/multiRelease/data/runtimetest/v10/versionResource - test/tools/jar/multiRelease/data/runtimetest/v9/testpackage/Helper.java - test/tools/jar/multiRelease/data/runtimetest/v9/testpackage/Main.java - test/tools/jar/multiRelease/data/runtimetest/v9/versionResource Changeset: d23d309ef85a Author: psadhukhan Date: 2017-06-06 10:58 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/d23d309ef85a 6962725: Regtest javax/swing/JFileChooser/6738668/bug6738668.java fails under Linux Reviewed-by: serb ! test/javax/swing/JFileChooser/6738668/bug6738668.java ! test/javax/swing/JFileChooser/6738668/security.policy Changeset: 7d3e0c5b5e25 Author: aghaisas Date: 2017-06-07 16:43 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/7d3e0c5b5e25 8180370: Characters are skipped on input of Korean text on OS X Reviewed-by: serb, prr Contributed-by: sreeprakash.s at oracle.com ! src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m + test/javax/swing/JTextField/MissingCharsKorean/MissingCharsKorean.java Changeset: e582ee8842d6 Author: aghaisas Date: 2017-06-13 14:32 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/e582ee8842d6 6267105: UIDefaults.getUIError dumps error message to System.err and also throws Error. Reviewed-by: prr, ssadetsky Contributed-by: shashidhara.veerabhadraiah at oracle.com ! src/java.desktop/share/classes/javax/swing/UIDefaults.java Changeset: 905ba4e83b0c Author: aghaisas Date: 2017-06-15 17:13 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/905ba4e83b0c 8181782: [TESTBUG] [Macosx] JTextAreaEmojiTest is not executed Reviewed-by: psadhukhan, aniyogi Contributed-by: sreeprakash.s at oracle.com ! test/javax/swing/JTextArea/8148555/JTextAreaEmojiTest.java Changeset: 17d2d44e306c Author: psadhukhan Date: 2017-06-16 11:07 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/17d2d44e306c 8182031: Swing's ComboBox Popup opens and closes immediately Reviewed-by: azvegint ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicComboPopup.java + test/javax/swing/JComboBox/8182031/ComboPopupTest.java Changeset: 0ec14d6528ef Author: psadhukhan Date: 2017-06-18 19:52 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/0ec14d6528ef 8177699: Some swing and awt tests are not in TEST.groups Reviewed-by: serb ! test/TEST.groups + test/com/apple/laf/TEST.properties + test/sun/applet/TEST.properties Changeset: fd9a519897e5 Author: psadhukhan Date: 2017-06-21 10:30 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/fd9a519897e5 8075918: The regression-swing case failed as the long Tab titles are not clipped with dots at the end with NimbusLookAndFeel Reviewed-by: serb, aniyogi ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthGraphicsUtils.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java ! test/javax/swing/JTabbedPane/4310381/bug4310381.java Changeset: 4cdd5d954479 Author: psadhukhan Date: 2017-06-22 19:28 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/4cdd5d954479 8043315: Nimbus: Setting Nimbus.Overrides property affects custom keymap installation Reviewed-by: serb, azvegint ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java + test/javax/swing/plaf/nimbus/TestNimbusOverride.java Changeset: a00c069b6a3b Author: prr Date: 2017-06-23 09:48 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/a00c069b6a3b Merge - src/java.base/share/classes/overview-core.html - src/java.base/share/specs/serialization/class.md - src/java.base/share/specs/serialization/examples.md - src/java.base/share/specs/serialization/exceptions.md - src/java.base/share/specs/serialization/images/version.gif - src/java.base/share/specs/serialization/index.md - src/java.base/share/specs/serialization/input.md - src/java.base/share/specs/serialization/output.md - src/java.base/share/specs/serialization/protocol.md - src/java.base/share/specs/serialization/security.md - src/java.base/share/specs/serialization/serial-arch.md - src/java.base/share/specs/serialization/version.md ! src/java.desktop/share/classes/module-info.java - src/java.desktop/share/specs/AWT_Native_Interface.html - src/java.management/share/specs/JVM-MANAGEMENT-MIB.mib ! test/TEST.groups - test/java/io/File/MacPathTest.sh - test/java/io/File/basic.sh - test/java/io/FileOutputStream/FileOpen.sh - test/java/io/FileOutputStream/FileOpenNeg.java - test/java/io/FileOutputStream/FileOpenPos.java - test/java/io/Serializable/class/NonSerialA_1.java - test/java/io/Serializable/class/NonSerialA_2.java - test/java/io/Serializable/class/SerialA.java - test/java/io/Serializable/class/SerialA_1.java - test/java/io/Serializable/class/SerialA_2.java - test/java/io/Serializable/class/SerialA_3.java - test/java/io/Serializable/class/Test.java - test/java/io/Serializable/class/run.sh - test/java/nio/channels/Selector/lots_of_updates.sh - test/java/nio/channels/SocketChannel/Open.sh - test/java/nio/channels/spi/AsynchronousChannelProvider/custom_provider.sh - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/run_tests.sh - test/java/nio/charset/Charset/default.sh - test/java/nio/charset/coders/CheckSJISMappingProp.sh - test/java/nio/charset/spi/Test.java - test/java/nio/charset/spi/basic.sh - test/java/nio/file/Files/delete_on_close.sh - test/java/nio/file/Files/walkFileTree/PrintFileTree.java - test/java/nio/file/Files/walkFileTree/find.sh - test/java/nio/file/Path/MacPathTest.sh - test/java/util/Arrays/ParallelPrefix.java - test/java/util/ResourceBundle/modules/appbasic/src/test/jdk/test/resources/MyResourcesProvider.java - test/java/util/ResourceBundle/modules/appbasic2/src/test/jdk/test/resources/MyResourcesProvider.java - test/java/util/ResourceBundle/modules/basic/src/mainbundles/jdk/test/resources/MyResourcesProvider.java - test/java/util/ResourceBundle/modules/simple/src/bundles/jdk/test/resources/MyResourcesProvider.java - test/java/util/ResourceBundle/modules/visibility/src/exported.named.bundles/jdk/test/resources/exported/classes/MyResourcesProvider.java - test/java/util/ResourceBundle/modules/visibility/src/named.bundles/jdk/test/resources/classes/MyResourcesProvider.java - test/java/util/ResourceBundle/modules/visibility/src/named.bundles/jdk/test/resources/props/MyResourcesProvider.java - test/java/util/ResourceBundle/modules/xmlformat/src/bundles/jdk/test/resources/MyResourcesProvider.java - test/lib/testlibrary/CompilerUtils.java - test/lib/testlibrary/jdk/testlibrary/TimeLimitedRunner.java - test/sun/net/InetAddress/nameservice/dns/cname.sh - test/sun/net/ftp/MarkResetTest.sh - test/sun/net/www/protocol/file/DirPermissionDenied.sh - test/sun/net/www/protocol/jar/B5105410.sh - test/sun/net/www/protocol/jar/copyin.sh - test/sun/net/www/protocol/jar/getcontenttype.sh - test/sun/net/www/protocol/jar/jarbug/run.sh - test/sun/net/www/protocol/jar/jarbug/src/test/RunAllTests.java - test/sun/net/www/protocol/jrt/other_resources.sh Changeset: f834f39cb870 Author: prr Date: 2017-06-29 13:07 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/f834f39cb870 Merge - make/src/classes/build/tools/docs/GenDocsBundlePage.java - make/src/classes/build/tools/docs/docs-bundle-page.html - make/src/classes/build/tools/docs/docs-module-groups.properties ! src/java.desktop/share/classes/javax/swing/JOptionPane.java ! src/java.desktop/share/classes/module-info.java - src/java.instrument/share/classes/java/lang/instrument/package.html - test/java/util/ServiceLoader/modules/BadProvidersTest.java - test/java/util/ServiceLoader/modules/Basic.java - test/java/util/ServiceLoader/modules/badfactories/badreturntype/ProviderFactory.java - test/java/util/ServiceLoader/modules/badfactories/classnotpublic/ProviderFactory.java - test/java/util/ServiceLoader/modules/badfactories/classnotpublic/Service.java - test/java/util/ServiceLoader/modules/badfactories/methodnotpublic/ProviderFactory.java - test/java/util/ServiceLoader/modules/badfactories/methodnotpublic/Service.java - test/java/util/ServiceLoader/modules/badfactories/returnsnull/ProviderFactory.java - test/java/util/ServiceLoader/modules/badfactories/returnsnull/Service.java - test/java/util/ServiceLoader/modules/badfactories/throwsexception/ProviderFactory.java - test/java/util/ServiceLoader/modules/badfactories/throwsexception/Service.java - test/java/util/ServiceLoader/modules/badproviders/ctornotpublic/Provider.java - test/java/util/ServiceLoader/modules/badproviders/ctornotpublic/Service.java - test/java/util/ServiceLoader/modules/badproviders/notasubtype/Provider.java - test/java/util/ServiceLoader/modules/badproviders/notpublic/Provider.java - test/java/util/ServiceLoader/modules/badproviders/notpublic/Service.java - test/java/util/ServiceLoader/modules/badproviders/throwsexception/Provider.java - test/java/util/ServiceLoader/modules/badproviders/throwsexception/Service.java - test/java/util/ServiceLoader/modules/modules/bananascript/module-info.java - test/java/util/ServiceLoader/modules/modules/bananascript/org/banana/BananaScript.java - test/java/util/ServiceLoader/modules/modules/bananascript/org/banana/BananaScriptEngineFactory.java - test/java/util/ServiceLoader/modules/modules/test1/module-info.java - test/java/util/ServiceLoader/modules/modules/test1/p/ProviderFactory.java - test/java/util/ServiceLoader/modules/modules/test1/p/Service.java - test/java/util/ServiceLoader/modules/modules/test2/module-info.java - test/java/util/ServiceLoader/modules/modules/test2/p/Provider.java - test/java/util/ServiceLoader/modules/modules/test2/p/Service.java - test/java/util/ServiceLoader/modules/src/pearscript/META-INF/services/javax.script.ScriptEngineFactory - test/java/util/ServiceLoader/modules/src/pearscript/org/pear/PearScript.java - test/java/util/ServiceLoader/modules/src/pearscript/org/pear/PearScriptEngineFactory.java - test/lib/testlibrary/jdk/testlibrary/Platform.java - test/tools/launcher/modules/permit/AttemptAccess.java - test/tools/launcher/modules/permit/PermitIllegalAccess.java Changeset: 08ec9924fcbf Author: psadhukhan Date: 2017-06-30 11:03 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/08ec9924fcbf 8182402: Tooltip for Desktop button is in English when non-English locale is set Reviewed-by: azvegint ! src/java.desktop/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java ! src/java.desktop/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java Changeset: 19098b855e42 Author: psadhukhan Date: 2017-07-01 09:56 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/19098b855e42 8075063: Context menu closes on mouse scroll Reviewed-by: ssadetsky ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicPopupMenuUI.java ! src/java.desktop/unix/classes/sun/awt/X11/XWindowPeer.java + test/javax/swing/JPopupMenu/8075063/ContextMenuScrollTest.java Changeset: e1e784e7fe35 Author: psadhukhan Date: 2017-07-01 10:00 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/e1e784e7fe35 8182577: Exception when Tab key moves focus to a JCheckbox with a custom ButtonModel Reviewed-by: ssadetsky, serb, kcr ! src/java.desktop/share/classes/javax/swing/ButtonModel.java ! src/java.desktop/share/classes/javax/swing/JToggleButton.java ! src/java.desktop/share/classes/javax/swing/LayoutFocusTraversalPolicy.java + test/javax/swing/DefaultButtonModel/DefaultButtonModelCrashTest.java Changeset: e11953665ba7 Author: psadhukhan Date: 2017-07-04 13:37 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/e11953665ba7 7190539: Nimbus LaF: JPopupMenu reacts on Ctrl+Enter Reviewed-by: ssadetsky, azvegint ! src/java.desktop/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java + test/javax/swing/JPopupMenu/4870644/bug4870644.java Changeset: 1b869adc86f2 Author: mbaesken Date: 2017-06-30 16:32 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/1b869adc86f2 8183286: Some java/awt and javax/swing tests miss headful jtreg keyword Reviewed-by: serb, clanger ! test/java/awt/Choice/ChoicePopupLocation/ChoicePopupLocation.java ! test/java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java ! test/java/awt/Frame/ObscuredFrame/ObscuredFrameTest.java ! test/java/awt/PopupMenu/PopupMenuLocation.java ! test/java/awt/Robot/HiDPIScreenCapture/ScreenCaptureTest.java ! test/java/awt/Robot/MultiScreenRobotPosition/MultiScreenRobotPosition.java ! test/java/awt/Window/WindowDeadlockTest/WindowDeadlockTest.java ! test/java/awt/font/TextLayout/ArabicDiacriticTest.java ! test/javax/accessibility/JList/AccessibleJListChildNPETest.java ! test/javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java ! test/javax/swing/JFrame/AlwaysOnTop/AlwaysOnTopImeTest.java ! test/javax/swing/JLightweightFrame/JLightweightFrameRoundTest.java ! test/javax/swing/JRadioButton/ButtonGroupFocus/ButtonGroupFocusTest.java ! test/javax/swing/JTree/4633594/JTreeFocusTest.java ! test/javax/swing/plaf/basic/BasicComboPopup/JComboBoxPopupLocation/JComboBoxPopupLocation.java ! test/javax/swing/text/html/StyleSheet/bug4936917.java Changeset: ef390b05c25d Author: aghaisas Date: 2017-07-06 16:45 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/ef390b05c25d 8165213: [TESTBUG] [PIT] consistent failure of a new regtest for 8163193 Reviewed-by: psadhukhan, serb Contributed-by: shashidhara.veerabhadraiah at oracle.com ! test/javax/swing/plaf/metal/MetalGradient/8163193/ButtonGradientTest.java Changeset: 509e7250736b Author: prr Date: 2017-07-06 09:22 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/509e7250736b Merge Changeset: 5fcac4064fdd Author: serb Date: 2017-07-06 15:54 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/5fcac4064fdd 8178403: DirectAudio in JavaSound may hang and leak Reviewed-by: prr, alitvinov ! src/java.desktop/share/classes/com/sun/media/sound/DirectAudioDevice.java ! test/ProblemList.txt ! test/javax/sound/sampled/Clip/ClipCloseLoss.java Changeset: 87cfff8aeacb Author: aghaisas Date: 2017-07-10 14:55 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/87cfff8aeacb 6919529: NPE from MultiUIDefaults.getUIError Reviewed-by: aghaisas, psadhukhan, serb Contributed-by: shashidhara.veerabhadraiah at oracle.com ! src/java.desktop/share/classes/javax/swing/MultiUIDefaults.java + test/javax/swing/MultiUIDefaults/NPECheck/MultiUIDefaultsNPECheck.java Changeset: 2e4cdfc780cd Author: serb Date: 2017-07-10 14:41 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/2e4cdfc780cd 8183576: Synchronization in BufferedImage.setRGB(int x, int y, int rgb) is not necessary Reviewed-by: prr, flar, pnarayanan ! src/java.desktop/share/classes/java/awt/image/BufferedImage.java Changeset: 72c480992841 Author: psadhukhan Date: 2017-07-13 12:14 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/72c480992841 8184016: Text in native popup is not always updated with Sogou IME Reviewed-by: ssadetsky ! src/java.desktop/windows/native/libawt/windows/awt_Component.cpp Changeset: 62976d44cbc7 Author: psadhukhan Date: 2017-07-14 10:30 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/62976d44cbc7 8183529: FilleChooser in "Detail view" does not change the Language of the column headings Reviewed-by: ssadetsky ! src/java.desktop/share/classes/sun/awt/shell/ShellFolder.java ! src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolder2.java ! src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp Changeset: 2d8f013734a2 Author: psadhukhan Date: 2017-07-15 11:15 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/2d8f013734a2 8184244: UIDefaults.addResourceBundle uses system class loader Reviewed-by: serb, ssadetsky ! src/java.desktop/share/classes/javax/swing/UIDefaults.java Changeset: 93b7bd25273e Author: jdv Date: 2017-07-17 14:18 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/93b7bd25273e 8183349: Better cleanup for jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java and WriteAfterAbort.java Reviewed-by: serb, pnarayanan ! test/javax/imageio/plugins/shared/CanWriteSequence.java ! test/javax/imageio/plugins/shared/WriteAfterAbort.java Changeset: da56caf26b5c Author: prr Date: 2017-07-17 09:14 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/da56caf26b5c Merge ! test/ProblemList.txt - test/java/lang/System/MacEncoding/MacJNUEncoding.sh Changeset: f2a6d80dd60e Author: prr Date: 2017-07-20 09:38 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/f2a6d80dd60e Merge Changeset: 134501ad7b2a Author: psadhukhan Date: 2017-07-21 10:23 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/134501ad7b2a 8184813: Class javax/swing/plaf/metal/MetalFontDesktopProperty is broken in JDK10 Reviewed-by: prr, serb ! src/java.desktop/share/classes/module-info.java - src/java.desktop/windows/classes/module-info.java.extra ! test/com/sun/java/swing/plaf/windows/Test6824600.java ! test/javax/swing/JButton/4796987/bug4796987.java ! test/javax/swing/JComboBox/4199622/bug4199622.java ! test/javax/swing/JComboBox/8015300/Test8015300.java ! test/javax/swing/JFileChooser/8046391/bug8046391.java ! test/javax/swing/JInternalFrame/6725409/bug6725409.java ! test/javax/swing/JSlider/6524424/bug6524424.java ! test/javax/swing/JTree/8004298/bug8004298.java ! test/javax/swing/border/Test4856008.java ! test/javax/swing/border/Test6978482.java Changeset: e282991b6970 Author: serb Date: 2017-07-21 16:27 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/e282991b6970 8134256: copy/paste duplicated tests in some condition statements Reviewed-by: azvegint ! src/java.desktop/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java ! src/java.desktop/share/classes/javax/swing/text/html/StyleSheet.java + test/javax/swing/plaf/nimbus/AbstractRegionPainter/PaintContextScaleValidation.java + test/javax/swing/text/html/StyleSheet/BackgroundImage/BackgroundImagePosition.java Changeset: b0d7bf900075 Author: aghaisas Date: 2017-07-24 11:54 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/b0d7bf900075 8183341: Better cleanup for javax/imageio/AllowSearch.java Reviewed-by: prr, jdv, pnarayanan Contributed-by: shashidhara.veerabhadraiah at oracle.com ! test/javax/imageio/AllowSearch.java Changeset: 971e17807496 Author: prr Date: 2017-07-25 14:07 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/971e17807496 Merge Changeset: 0ef02247a818 Author: psadhukhan Date: 2017-07-26 10:47 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/0ef02247a818 8173739: JPopupMenu does not disappear on KeyEvent Reviewed-by: serb ! src/java.desktop/share/classes/javax/swing/JInternalFrame.java + test/javax/swing/JPopupMenu/8173739/TestPopupMenu.java Changeset: 1a2ad984d501 Author: prr Date: 2017-07-27 12:36 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/1a2ad984d501 Merge - src/java.base/share/classes/sun/net/www/protocol/https/DefaultHostnameVerifier.java - src/java.base/share/classes/sun/util/locale/LocaleEquivalentMaps.java - test/java/lang/ClassLoader/deadlock/Alice.java - test/java/lang/ClassLoader/deadlock/Bob.java - test/java/lang/ClassLoader/deadlock/Starter.java - test/java/lang/ClassLoader/deadlock/SupAlice.java - test/java/lang/ClassLoader/deadlock/SupBob.java - test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh - test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh - test/java/util/Locale/tools/EquivMapsGenerator.java - test/java/util/Locale/tools/language-subtag-registry.txt Changeset: 88de64439af6 Author: psadhukhan Date: 2017-07-28 10:26 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/88de64439af6 7190581: Nimbus: PgDn at the bottom causes scrolling Reviewed-by: ssadetsky ! src/java.desktop/share/classes/javax/swing/text/DefaultEditorKit.java ! test/javax/swing/JTextArea/4697612/bug4697612.java Changeset: d4e5f053e75b Author: serb Date: 2017-07-28 14:39 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/d4e5f053e75b 8139050: -[AWTView draggingEnded:]: unrecognized selector message during drag and drop Reviewed-by: azvegint ! src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m ! test/java/awt/dnd/MissingEventsOnModalDialog/MissingEventsOnModalDialogTest.java + test/javax/swing/dnd/8139050/NativeErrorsInTableDnD.java Changeset: 59b6ea076972 Author: pkbalakr Date: 2017-08-02 11:26 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/59b6ea076972 8027154: [TESTBUG] Test java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java fails Reviewed-by: serb, arapte Contributed-by: krishna.addepalli at oracle.com ! test/java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java Changeset: c2e469517e00 Author: aghaisas Date: 2017-08-03 14:55 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/c2e469517e00 8058785: Nimbus disabled tooltip needs border Reviewed-by: serb, pkbalakr Contributed-by: shashidhara.veerabhadraiah at oracle.com ! src/java.desktop/share/classes/javax/swing/plaf/nimbus/skin.laf + test/javax/swing/plaf/nimbus/TestDisabledToolTipBorder.java Changeset: 705766d47a97 Author: serb Date: 2017-08-04 18:39 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/705766d47a97 8185093: Expensive multi-core choke point when any graphics objects are created Reviewed-by: prr, flar ! src/java.desktop/share/classes/java/awt/GraphicsEnvironment.java Changeset: 4b0d12ba70b8 Author: aghaisas Date: 2017-08-07 10:02 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/4b0d12ba70b8 8178106: There is no error message pop up when clicking 'create folder' button Reviewed-by: serb, psadhukhan Contributed-by: shashidhara.veerabhadraiah at oracle.com ! test/javax/swing/JFileChooser/8067660/FileChooserTest.java Changeset: 7975190ee1b6 Author: prr Date: 2017-08-07 09:45 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/7975190ee1b6 Merge - src/java.base/share/classes/jdk/internal/module/SystemModuleFinder.java - test/java/lang/ClassLoader/getResource/GetResource.sh - test/tools/launcher/modules/patch/systemmodules/src1/java.base/jdk/internal/modules/SystemModules.java Changeset: 8c41faaf67ba Author: dmarkov Date: 2017-08-08 14:07 +0100 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/8c41faaf67ba 8177414: Missing key events on Mac Os Reviewed-by: serb, prr ! src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m + test/java/awt/InputMethods/InputMethodKeyEventsTest/InputMethodKeyEventsTest.java Changeset: d5b73eedc4a7 Author: azvegint Date: 2017-08-10 10:41 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/d5b73eedc4a7 8178448: MenuBar item handler fired twice Reviewed-by: serb ! src/java.desktop/share/classes/java/awt/Desktop.java ! test/javax/swing/JMenuItem/ActionListenerCalledTwice/ActionListenerCalledTwiceTest.java Changeset: 9dbe51fc9d6f Author: psadhukhan Date: 2017-08-10 10:46 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/9dbe51fc9d6f 8185890: Intermittent NPE in JLightweightFrame when updating cursor aceoss multiple graphics devices Reviewed-by: azvegint ! src/java.desktop/share/classes/sun/swing/JLightweightFrame.java Changeset: 77a5ad135a29 Author: serb Date: 2017-08-10 15:17 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/77a5ad135a29 8153871: [macosx] Low-level error on OS X 10.11 with DnD in Swing Reviewed-by: azvegint ! src/java.desktop/macosx/native/libawt_lwawt/awt/CDragSource.m ! test/javax/swing/dnd/8139050/NativeErrorsInTableDnD.java Changeset: fd986bf973c6 Author: mhalder Date: 2017-08-11 18:17 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/fd986bf973c6 8136999: [macosx] NSException and NPE in a crash test Reviewed-by: serb Contributed-by: manajit.halder at oracle.com ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CDropTargetContextPeer.java ! src/java.desktop/macosx/native/libawt_lwawt/awt/CDropTarget.m + test/java/awt/dnd/RemoveDropTargetCrashTest/RemoveDropTargetCrashTest.java Changeset: aad7d9872662 Author: prr Date: 2017-08-14 10:47 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/aad7d9872662 Merge ! test/javax/swing/JMenuItem/ActionListenerCalledTwice/ActionListenerCalledTwiceTest.java Changeset: 0d9457fb89b2 Author: prr Date: 2017-08-16 11:31 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/0d9457fb89b2 Merge Changeset: 53edc766d217 Author: serb Date: 2017-08-17 13:51 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/53edc766d217 8185683: Inaccessible and unused classes can be removed from java.desktop module Reviewed-by: prr, kcr - src/java.desktop/macosx/classes/apple/laf/AquaLookAndFeel.java - src/java.desktop/macosx/classes/com/apple/eawt/ApplicationAdapter.java - src/java.desktop/macosx/classes/com/apple/eawt/ApplicationEvent.java - src/java.desktop/macosx/classes/com/apple/eawt/ApplicationListener.java - src/java.desktop/share/classes/com/sun/java/swing/Painter.java - src/java.desktop/share/classes/com/sun/java/swing/plaf/nimbus/AbstractRegionPainter.java - src/java.desktop/share/classes/com/sun/java/swing/plaf/nimbus/NimbusLookAndFeel.java ! test/javax/swing/JTable/6937798/bug6937798.java ! test/javax/swing/plaf/nimbus/Test6741426.java Changeset: c32965c8e99b Author: dbatrak Date: 2017-08-17 19:24 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/c32965c8e99b 8174744: [macos] Wrong rendering of string containing surrogate pairs Reviewed-by: prr, serb ! src/java.desktop/macosx/classes/sun/font/CCharToGlyphMapper.java + test/java/awt/FontClass/SurrogateTest/SuppCharDrawTest.java Changeset: 6e85acfe02c5 Author: lbourges Date: 2017-08-18 10:12 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/6e85acfe02c5 8186364: RFE: API for java.awt.geom.Path2D storage trimming Reviewed-by: prr, flar ! src/java.desktop/share/classes/java/awt/geom/Path2D.java ! test/java/awt/geom/Path2D/Path2DCopyConstructor.java Changeset: 7fef0f800d52 Author: prr Date: 2017-08-18 11:25 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/7fef0f800d52 Merge ! test/ProblemList.txt Changeset: ade058e0f067 Author: serb Date: 2017-08-18 14:03 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/ade058e0f067 8186263: The SunDropTargetEvent sometimes is not dispatched Reviewed-by: prr ! src/java.desktop/share/classes/java/awt/EventQueue.java ! src/java.desktop/share/classes/sun/awt/dnd/SunDropTargetEvent.java ! test/java/awt/dnd/RemoveDropTargetCrashTest/RemoveDropTargetCrashTest.java Changeset: 2d4405f3f8f8 Author: serb Date: 2017-08-22 09:41 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/2d4405f3f8f8 8186474: WColor class is superseded by the SystemColor and should be removed Reviewed-by: azvegint - src/java.desktop/windows/classes/sun/awt/windows/WColor.java ! src/java.desktop/windows/classes/sun/awt/windows/WPanelPeer.java ! src/java.desktop/windows/native/libawt/windows/awt_Color.cpp ! src/java.desktop/windows/native/libawt/windows/awt_Color.h Changeset: ac927d179ff9 Author: prr Date: 2017-08-23 09:28 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/ac927d179ff9 8184135: Remove obsolete dga code and binaries from Solaris SPARC build. Reviewed-by: serb, psadhukhan, pnarayanan ! make/lib/Awt2dLibraries.gmk ! make/mapfiles/libawt/mapfile-mawt-vers ! make/mapfiles/libawt/mapfile-vers-linux ! make/mapfiles/libawt_xawt/mapfile-vers ! src/java.desktop/unix/classes/sun/awt/X11/XToolkit.java ! src/java.desktop/unix/classes/sun/java2d/x11/X11SurfaceData.java ! src/java.desktop/unix/native/common/java2d/x11/X11SurfaceData.c ! src/java.desktop/unix/native/common/java2d/x11/X11SurfaceData.h - src/java.desktop/unix/native/libsunwjdga/dgalock.c - src/java.desktop/unix/native/libsunwjdga/jdga.h - src/java.desktop/unix/native/libsunwjdga/jdgadevice.h ! test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh Changeset: 737070667c78 Author: prr Date: 2017-08-23 12:05 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/737070667c78 Merge - src/java.base/share/classes/java/lang/doc-files/capchi.gif - src/java.base/share/classes/java/lang/doc-files/capiota.gif - src/java.base/share/classes/java/lang/doc-files/capsigma.gif - src/java.base/share/classes/java/lang/doc-files/captheta.gif - src/java.base/share/classes/java/lang/doc-files/capupsil.gif - src/java.base/share/classes/java/lang/doc-files/chi.gif - src/java.base/share/classes/java/lang/doc-files/iota.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc21.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc38.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc40.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc41.gif - src/java.base/share/classes/java/lang/doc-files/sigma1.gif - src/java.base/share/classes/java/lang/doc-files/theta.gif - src/java.base/share/classes/java/lang/doc-files/upsilon.gif - src/jdk.security.auth/share/classes/com/sun/security/auth/PolicyFile.java - src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/SolarisPrincipal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/X500Principal.java - src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisLoginModule.java - src/jdk.security.auth/share/classes/com/sun/security/auth/module/SolarisSystem.java - src/jdk.security.auth/solaris/native/libjaas/Solaris.c - test/java/security/Provider/TestSecurityProvider.java - test/java/security/Provider/TestSecurityProviderClient.java - test/java/security/modules/ModularTest.java - test/javax/security/auth/login/modules/TEST.properties Changeset: f68026915934 Author: serb Date: 2017-08-24 11:30 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/f68026915934 8186261: 4 JNI primitive type mismatch defect groups in XlibWrapper.c Reviewed-by: azvegint ! src/java.desktop/unix/native/libawt_xawt/xawt/XlibWrapper.c Changeset: 66539c09c053 Author: prr Date: 2017-08-28 11:53 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/66539c09c053 8186317: Cache font layout tables for use by harfbuzz Reviewed-by: srl, pnarayanan ! src/java.desktop/share/classes/sun/font/SunLayoutEngine.java ! src/java.desktop/share/native/common/font/fontscalerdefs.h ! src/java.desktop/share/native/libfontmanager/HBShaper.c ! src/java.desktop/share/native/libfontmanager/hb-jdk-font.cc ! src/java.desktop/share/native/libfontmanager/hb-jdk.h ! src/java.desktop/share/native/libfontmanager/sunFont.c Changeset: 77d046dced5d Author: prr Date: 2017-08-29 10:47 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/77d046dced5d Merge - test/lib/testlibrary/ClassFileInstaller.java Changeset: 9bae8d7e5b8a Author: pkbalakr Date: 2017-08-30 16:56 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/9bae8d7e5b8a 8175015: FileSystemView.isDrive(File) memory leak on "C:\" file reference Reviewed-by: serb, psadhukhan Contributed-by: krishna.addepalli at oracle.com ! src/java.desktop/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java + test/sun/awt/shell/FileSystemViewMemoryLeak.java Changeset: 892a8e0b5834 Author: serb Date: 2017-08-01 14:18 +0800 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/892a8e0b5834 8177951: Charset problem when the name of the sound device contains Chinese character Reviewed-by: amenkov, serb Contributed-by: Charlie Jiang ! make/lib/SoundLibraries.gmk + src/java.desktop/windows/native/libjsound/PLATFORM_API_WinOS_Charset_Util.cpp + src/java.desktop/windows/native/libjsound/PLATFORM_API_WinOS_Charset_Util.h ! src/java.desktop/windows/native/libjsound/PLATFORM_API_WinOS_DirectSound.cpp ! src/java.desktop/windows/native/libjsound/PLATFORM_API_WinOS_MidiIn.cpp ! src/java.desktop/windows/native/libjsound/PLATFORM_API_WinOS_MidiOut.c ! src/java.desktop/windows/native/libjsound/PLATFORM_API_WinOS_Ports.c Changeset: dbb5b171a16b Author: azvegint Date: 2017-08-31 09:28 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/dbb5b171a16b 8181786: Extra runLater causes impossible states to be possible using javafx.embed.singleThread=true Reviewed-by: kcr ! src/java.desktop/share/classes/java/awt/EventDispatchThread.java ! src/java.desktop/share/classes/java/awt/EventQueue.java Changeset: cd9b04ac647e Author: prr Date: 2017-08-31 10:51 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/cd9b04ac647e Merge - make/data/charsetmapping/euc_tw.map ! src/java.desktop/share/classes/java/awt/EventQueue.java Changeset: cb4fd968fb83 Author: prr Date: 2017-08-31 13:09 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/cb4fd968fb83 8183351: Better cleanup for jdk/test/javax/imageio/spi/AppletContextTest/BadPluginConfigurationTest.sh Reviewed-by: serb ! test/javax/imageio/spi/AppletContextTest/BadPluginConfigurationTest.sh Changeset: c6f9f9e5f186 Author: serb Date: 2017-08-31 13:00 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/c6f9f9e5f186 8181566: JavaSound javadoc clarification Reviewed-by: amenkov ! src/java.desktop/share/classes/javax/sound/midi/InvalidMidiDataException.java ! src/java.desktop/share/classes/javax/sound/midi/MetaMessage.java ! src/java.desktop/share/classes/javax/sound/midi/MidiDevice.java ! src/java.desktop/share/classes/javax/sound/midi/MidiDeviceReceiver.java ! src/java.desktop/share/classes/javax/sound/midi/MidiDeviceTransmitter.java ! src/java.desktop/share/classes/javax/sound/midi/MidiFileFormat.java ! src/java.desktop/share/classes/javax/sound/midi/MidiMessage.java ! src/java.desktop/share/classes/javax/sound/midi/MidiSystem.java ! src/java.desktop/share/classes/javax/sound/midi/MidiUnavailableException.java ! src/java.desktop/share/classes/javax/sound/midi/Receiver.java ! src/java.desktop/share/classes/javax/sound/midi/Sequencer.java ! src/java.desktop/share/classes/javax/sound/midi/ShortMessage.java ! src/java.desktop/share/classes/javax/sound/midi/SoundbankResource.java ! src/java.desktop/share/classes/javax/sound/midi/Synthesizer.java ! src/java.desktop/share/classes/javax/sound/midi/SysexMessage.java ! src/java.desktop/share/classes/javax/sound/midi/Track.java ! src/java.desktop/share/classes/javax/sound/midi/Transmitter.java ! src/java.desktop/share/classes/javax/sound/midi/VoiceStatus.java ! src/java.desktop/share/classes/javax/sound/midi/package-info.java ! src/java.desktop/share/classes/javax/sound/midi/spi/MidiFileReader.java ! src/java.desktop/share/classes/javax/sound/midi/spi/MidiFileWriter.java ! src/java.desktop/share/classes/javax/sound/midi/spi/SoundbankReader.java ! src/java.desktop/share/classes/javax/sound/midi/spi/package-info.java ! src/java.desktop/share/classes/javax/sound/sampled/AudioFileFormat.java ! src/java.desktop/share/classes/javax/sound/sampled/AudioFormat.java ! src/java.desktop/share/classes/javax/sound/sampled/AudioInputStream.java ! src/java.desktop/share/classes/javax/sound/sampled/AudioPermission.java ! src/java.desktop/share/classes/javax/sound/sampled/AudioSystem.java ! src/java.desktop/share/classes/javax/sound/sampled/BooleanControl.java ! src/java.desktop/share/classes/javax/sound/sampled/Clip.java ! src/java.desktop/share/classes/javax/sound/sampled/CompoundControl.java ! src/java.desktop/share/classes/javax/sound/sampled/Control.java ! src/java.desktop/share/classes/javax/sound/sampled/DataLine.java ! src/java.desktop/share/classes/javax/sound/sampled/Line.java ! src/java.desktop/share/classes/javax/sound/sampled/LineEvent.java ! src/java.desktop/share/classes/javax/sound/sampled/LineUnavailableException.java ! src/java.desktop/share/classes/javax/sound/sampled/Mixer.java ! src/java.desktop/share/classes/javax/sound/sampled/Port.java ! src/java.desktop/share/classes/javax/sound/sampled/ReverbType.java ! src/java.desktop/share/classes/javax/sound/sampled/SourceDataLine.java ! src/java.desktop/share/classes/javax/sound/sampled/UnsupportedAudioFileException.java ! src/java.desktop/share/classes/javax/sound/sampled/package-info.java ! src/java.desktop/share/classes/javax/sound/sampled/spi/AudioFileReader.java ! src/java.desktop/share/classes/javax/sound/sampled/spi/AudioFileWriter.java ! src/java.desktop/share/classes/javax/sound/sampled/spi/package-info.java Changeset: ad37f4ce2062 Author: serb Date: 2017-08-31 15:47 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/ad37f4ce2062 8184435: Cleanup of javadoc in javax.print package Reviewed-by: prr, psadhukhan ! src/java.desktop/share/classes/javax/print/AttributeException.java ! src/java.desktop/share/classes/javax/print/CancelablePrintJob.java ! src/java.desktop/share/classes/javax/print/Doc.java ! src/java.desktop/share/classes/javax/print/DocFlavor.java ! src/java.desktop/share/classes/javax/print/DocPrintJob.java ! src/java.desktop/share/classes/javax/print/FlavorException.java ! src/java.desktop/share/classes/javax/print/MimeType.java ! src/java.desktop/share/classes/javax/print/MultiDoc.java ! src/java.desktop/share/classes/javax/print/MultiDocPrintJob.java ! src/java.desktop/share/classes/javax/print/MultiDocPrintService.java ! src/java.desktop/share/classes/javax/print/PrintException.java ! src/java.desktop/share/classes/javax/print/PrintService.java ! src/java.desktop/share/classes/javax/print/PrintServiceLookup.java ! src/java.desktop/share/classes/javax/print/ServiceUI.java ! src/java.desktop/share/classes/javax/print/ServiceUIFactory.java ! src/java.desktop/share/classes/javax/print/SimpleDoc.java ! src/java.desktop/share/classes/javax/print/StreamPrintService.java ! src/java.desktop/share/classes/javax/print/StreamPrintServiceFactory.java ! src/java.desktop/share/classes/javax/print/URIException.java ! src/java.desktop/share/classes/javax/print/attribute/Attribute.java ! src/java.desktop/share/classes/javax/print/attribute/AttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/AttributeSetUtilities.java ! src/java.desktop/share/classes/javax/print/attribute/DateTimeSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/DocAttribute.java ! src/java.desktop/share/classes/javax/print/attribute/DocAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/EnumSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/HashAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/HashDocAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/HashPrintJobAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/HashPrintRequestAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/HashPrintServiceAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/IntegerSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/PrintJobAttribute.java ! src/java.desktop/share/classes/javax/print/attribute/PrintJobAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/PrintRequestAttribute.java ! src/java.desktop/share/classes/javax/print/attribute/PrintRequestAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/PrintServiceAttribute.java ! src/java.desktop/share/classes/javax/print/attribute/PrintServiceAttributeSet.java ! src/java.desktop/share/classes/javax/print/attribute/ResolutionSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/SetOfIntegerSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/Size2DSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/SupportedValuesAttribute.java ! src/java.desktop/share/classes/javax/print/attribute/TextSyntax.java ! src/java.desktop/share/classes/javax/print/attribute/URISyntax.java ! src/java.desktop/share/classes/javax/print/attribute/UnmodifiableSetException.java ! src/java.desktop/share/classes/javax/print/attribute/package-info.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Chromaticity.java ! src/java.desktop/share/classes/javax/print/attribute/standard/ColorSupported.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Compression.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Copies.java ! src/java.desktop/share/classes/javax/print/attribute/standard/CopiesSupported.java ! src/java.desktop/share/classes/javax/print/attribute/standard/DateTimeAtCompleted.java ! src/java.desktop/share/classes/javax/print/attribute/standard/DateTimeAtCreation.java ! src/java.desktop/share/classes/javax/print/attribute/standard/DateTimeAtProcessing.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Destination.java ! src/java.desktop/share/classes/javax/print/attribute/standard/DialogTypeSelection.java ! src/java.desktop/share/classes/javax/print/attribute/standard/DocumentName.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Fidelity.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Finishings.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobHoldUntil.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobImpressions.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobImpressionsCompleted.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobImpressionsSupported.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobKOctets.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobKOctetsProcessed.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobKOctetsSupported.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobMediaSheets.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobMediaSheetsCompleted.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobMediaSheetsSupported.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobMessageFromOperator.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobName.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobOriginatingUserName.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobPriority.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobPrioritySupported.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobSheets.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobState.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobStateReason.java ! src/java.desktop/share/classes/javax/print/attribute/standard/JobStateReasons.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Media.java ! src/java.desktop/share/classes/javax/print/attribute/standard/MediaName.java ! src/java.desktop/share/classes/javax/print/attribute/standard/MediaPrintableArea.java ! src/java.desktop/share/classes/javax/print/attribute/standard/MediaSize.java ! src/java.desktop/share/classes/javax/print/attribute/standard/MediaSizeName.java ! src/java.desktop/share/classes/javax/print/attribute/standard/MediaTray.java ! src/java.desktop/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java ! src/java.desktop/share/classes/javax/print/attribute/standard/NumberOfDocuments.java ! src/java.desktop/share/classes/javax/print/attribute/standard/NumberOfInterveningJobs.java ! src/java.desktop/share/classes/javax/print/attribute/standard/NumberUp.java ! src/java.desktop/share/classes/javax/print/attribute/standard/NumberUpSupported.java ! src/java.desktop/share/classes/javax/print/attribute/standard/OrientationRequested.java ! src/java.desktop/share/classes/javax/print/attribute/standard/OutputDeviceAssigned.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PDLOverrideSupported.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PageRanges.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PagesPerMinute.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PagesPerMinuteColor.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PresentationDirection.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrintQuality.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterInfo.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterIsAcceptingJobs.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterLocation.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterMakeAndModel.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterMessageFromOperator.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterMoreInfo.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterName.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterResolution.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterState.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterStateReason.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterStateReasons.java ! src/java.desktop/share/classes/javax/print/attribute/standard/PrinterURI.java ! src/java.desktop/share/classes/javax/print/attribute/standard/QueuedJobCount.java ! src/java.desktop/share/classes/javax/print/attribute/standard/ReferenceUriSchemesSupported.java ! src/java.desktop/share/classes/javax/print/attribute/standard/RequestingUserName.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Severity.java ! src/java.desktop/share/classes/javax/print/attribute/standard/SheetCollate.java ! src/java.desktop/share/classes/javax/print/attribute/standard/Sides.java ! src/java.desktop/share/classes/javax/print/attribute/standard/package-info.java ! src/java.desktop/share/classes/javax/print/event/PrintEvent.java ! src/java.desktop/share/classes/javax/print/event/PrintJobAdapter.java ! src/java.desktop/share/classes/javax/print/event/PrintJobAttributeEvent.java ! src/java.desktop/share/classes/javax/print/event/PrintJobAttributeListener.java ! src/java.desktop/share/classes/javax/print/event/PrintJobEvent.java ! src/java.desktop/share/classes/javax/print/event/PrintJobListener.java ! src/java.desktop/share/classes/javax/print/event/PrintServiceAttributeEvent.java ! src/java.desktop/share/classes/javax/print/event/PrintServiceAttributeListener.java ! src/java.desktop/share/classes/javax/print/event/package-info.java ! src/java.desktop/share/classes/javax/print/package-info.java Changeset: 6581f08c67b6 Author: pnarayanan Date: 2017-09-01 12:32 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/6581f08c67b6 8164971: PNG metadata does not handle ImageCreationTime Reviewed-by: prr, bpb, jdv Contributed-by: prahalad.kumar.narayanan at oracle.com ! src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java ! src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java + test/javax/imageio/plugins/png/PngCreationTimeTest.java Changeset: 70359afda5d0 Author: pnarayanan Date: 2017-09-03 19:31 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/70359afda5d0 8187113: test/javax/imageio/plugins/png/PngCreationTimeTest.java fails Reviewed-by: serb, psadhukhan Contributed-by: prahalad.kumar.narayanan at oracle.com ! test/javax/imageio/plugins/png/PngCreationTimeTest.java + test/javax/imageio/plugins/png/duke.png Changeset: f3f6f6410d2d Author: prr Date: 2017-09-05 10:09 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/f3f6f6410d2d Merge - src/java.rmi/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexConnectionInfo.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexInputStream.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexOutputStream.java Changeset: 777356696811 Author: lana Date: 2017-09-08 18:24 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/777356696811 Added tag jdk-10+23 for changeset f3f6f6410d2d ! .hgtags From david.simms at oracle.com Tue Sep 26 12:45:42 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:45:42 +0000 Subject: hg: valhalla/valhalla10-old/langtools: 10 new changesets Message-ID: <201709261245.v8QCjhKu028755@aojmv0008.oracle.com> Changeset: 0a169aac4d5c Author: jlahoda Date: 2017-08-22 13:10 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/0a169aac4d5c 8182297: jshell tool: pasting multiple lines of code truncated Summary: Read input needs to be kept across ConsoleReader.readLine invocations unless consumed. Reviewed-by: rfield, rfield ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java + test/jdk/jshell/PasteAndMeasurementsUITest.java ! test/jdk/jshell/UITesting.java Changeset: 35f9b3d5e231 Author: rfield Date: 2017-08-22 23:26 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/35f9b3d5e231 8186636: JShell tests: jtreg_4.2-b08 breaks ComputeFQNsTest.testAddImport() Reviewed-by: jlahoda ! test/jdk/jshell/ComputeFQNsTest.java Changeset: 5e5a17a1d918 Author: jjg Date: 2017-08-23 10:53 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/5e5a17a1d918 8186460: Fix stylesheet to better display multi-row headers in "striped" tables. Reviewed-by: bpatel ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css Changeset: fd3ce6210d0c Author: rfield Date: 2017-08-23 14:06 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/fd3ce6210d0c 8185108: JShell: NullPointerException when throwing exception with null message under local ExecutionControl Reviewed-by: jlahoda ! src/jdk.jshell/share/classes/jdk/jshell/Eval.java ! src/jdk.jshell/share/classes/jdk/jshell/execution/ExecutionControlForwarder.java ! src/jdk.jshell/share/classes/jdk/jshell/execution/StreamingExecutionControl.java + test/jdk/jshell/ExceptionMessageTest.java Changeset: 1e2a4e07bc70 Author: bpatel Date: 2017-08-24 12:32 -0700 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/1e2a4e07bc70 8182263: Search box and reset button needs to be a11y fixed. Reviewed-by: jjg, ksrini ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlAttr.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlTag.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/HtmlTree.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/search.js ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css ! test/jdk/javadoc/doclet/testSearch/TestSearch.java ! test/jdk/javadoc/doclet/testStylesheet/TestStylesheet.java Changeset: 4d1728416123 Author: asaha Date: 2017-08-25 04:59 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/4d1728416123 Added tag jdk-10+21 for changeset fd3ce6210d0c ! .hgtags Changeset: 151a41bda28e Author: asaha Date: 2017-08-25 05:02 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/151a41bda28e Merge Changeset: 9fa96500eb15 Author: jlahoda Date: 2017-08-25 13:48 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/9fa96500eb15 8185426: Jshell crashing on autocompletion Summary: Properly canceling completion on if needed. Reviewed-by: rfield ! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java + src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContextTestSupport.java ! test/jdk/jshell/ToolTabSnippetTest.java Changeset: 214ffa12262b Author: asaha Date: 2017-09-01 14:13 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/214ffa12262b Added tag jdk-10+22 for changeset 9fa96500eb15 ! .hgtags Changeset: 19293ea3999f Author: lana Date: 2017-09-08 18:24 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/19293ea3999f Added tag jdk-10+23 for changeset 214ffa12262b ! .hgtags From david.simms at oracle.com Tue Sep 26 12:45:48 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:45:48 +0000 Subject: hg: valhalla/valhalla10-old/nashorn: 8 new changesets Message-ID: <201709261245.v8QCjmkp028820@aojmv0008.oracle.com> Changeset: b1b810f62830 Author: asaha Date: 2017-08-25 04:59 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/nashorn/rev/b1b810f62830 Added tag jdk-10+21 for changeset 03d3d3c6bc5a ! .hgtags Changeset: b8976a6ed2bc Author: hannesw Date: 2017-08-30 18:47 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/nashorn/rev/b8976a6ed2bc 8184723: jdk.nashorn.internal.runtime.linker.JSObjectLinker.callToApply erroneously asserts given arguments Reviewed-by: sundar, hannesw Contributed-by: priya.lakshmi.muthuswamy at oracle.com ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java + test/src/jdk/nashorn/internal/runtime/linker/test/JDK_8184723_Test.java Changeset: ce5973feed58 Author: sdama Date: 2017-09-01 06:01 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/nashorn/rev/ce5973feed58 8177691: Labeled break in catch and finally works wrongly, when invoked through nashorn Summary: Added support to check if the block contains goto statements before flagging it as terminal Reviewed-by: hannesw, jlaskey Contributed-by: srinivas.dama at oracle.com ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/Block.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Parser.java + test/script/basic/JDK-8177691.js + test/script/basic/JDK-8177691.js.EXPECTED Changeset: 545d7d2a70a8 Author: sdama Date: 2017-09-01 07:07 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/nashorn/rev/545d7d2a70a8 8073640: Nashorn scripting: here document with only whitespace gives error Summary: Added support for handling trailing blank lines in here-doc string parsing Reviewed-by: hannesw, jlaskey Contributed-by: srinivas.dama at oracle.com ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Lexer.java + test/script/basic/JDK-8073640.js + test/script/basic/JDK-8073640.js.EXPECTED Changeset: bd933afd9e2e Author: sdama Date: 2017-09-01 07:55 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/nashorn/rev/bd933afd9e2e 8184720: Nashorn engine in strict mode throws a java.lang.ClassCastException when calling apply() and passing the arguments object Summary: Fixed needsCallee method to return true properly in strict mode Reviewed-by: hannesw, sundar Contributed-by: srinivas.dama at oracle.com ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/FunctionNode.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptFunctionData.java + test/script/basic/JDK-8184720.js Changeset: bea304c9ee43 Author: asaha Date: 2017-09-01 14:13 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/nashorn/rev/bea304c9ee43 Added tag jdk-10+22 for changeset bd933afd9e2e ! .hgtags Changeset: f5bdafee7f93 Author: hannesw Date: 2017-09-02 14:26 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/nashorn/rev/f5bdafee7f93 8169233: LengthNotWritableFilter extraElements.remove(index) has no effect Reviewed-by: sundar, jlaskey Contributed-by: priya.lakshmi.muthuswamy at oracle.com ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/LengthNotWritableFilter.java ! test/script/basic/JDK-8035312.js.EXPECTED + test/script/basic/JDK-8169233.js + test/script/basic/JDK-8169233.js.EXPECTED Changeset: 3397ed166912 Author: lana Date: 2017-09-08 18:24 +0000 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/nashorn/rev/3397ed166912 Added tag jdk-10+23 for changeset f5bdafee7f93 ! .hgtags From david.simms at oracle.com Tue Sep 26 12:46:02 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:46:02 +0000 Subject: hg: valhalla/valhalla10-old: Merge Message-ID: <201709261246.v8QCk2hh028921@aojmv0008.oracle.com> Changeset: 38f6246a5060 Author: dsimms Date: 2017-09-26 13:09 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/38f6246a5060 Merge ! make/CompileJavaModules.gmk From david.simms at oracle.com Tue Sep 26 12:46:08 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:46:08 +0000 Subject: hg: valhalla/valhalla10-old/corba: Merge Message-ID: <201709261246.v8QCk8nh029010@aojmv0008.oracle.com> Changeset: 8f1d8726cd4f Author: dsimms Date: 2017-09-26 13:09 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/corba/rev/8f1d8726cd4f Merge From david.simms at oracle.com Tue Sep 26 12:46:15 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:46:15 +0000 Subject: hg: valhalla/valhalla10-old/hotspot: Merge Message-ID: <201709261246.v8QCkFl3029069@aojmv0008.oracle.com> Changeset: 06b85e94a022 Author: dsimms Date: 2017-09-26 13:09 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/06b85e94a022 Merge - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64RawNativeCallNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64RawNativeCallNode.java ! src/os_cpu/linux_sparc/vm/atomic_linux_sparc.hpp ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/classfile/classLoaderData.cpp ! src/share/vm/classfile/classLoaderData.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/gc/parallel/psParallelCompact.cpp ! src/share/vm/interpreter/oopMapCache.cpp ! src/share/vm/interpreter/rewriter.cpp ! src/share/vm/logging/logTag.hpp ! src/share/vm/oops/arrayKlass.cpp ! src/share/vm/oops/arrayKlass.hpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/cpCache.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/deoptimization.hpp - src/share/vm/runtime/fprofiler.cpp - src/share/vm/runtime/fprofiler.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/javaCalls.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/services/diagnosticCommand.cpp - test/runtime/MinimalVM/Xprof.java From david.simms at oracle.com Tue Sep 26 12:46:20 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:46:20 +0000 Subject: hg: valhalla/valhalla10-old/jaxp: Merge Message-ID: <201709261246.v8QCkLVg029129@aojmv0008.oracle.com> Changeset: 3c0219d4bba4 Author: dsimms Date: 2017-09-26 13:09 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxp/rev/3c0219d4bba4 Merge From david.simms at oracle.com Tue Sep 26 12:46:26 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:46:26 +0000 Subject: hg: valhalla/valhalla10-old/jaxws: Merge Message-ID: <201709261246.v8QCkRvi029192@aojmv0008.oracle.com> Changeset: ee63986d2c73 Author: dsimms Date: 2017-09-26 13:09 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxws/rev/ee63986d2c73 Merge - src/java.xml.bind/share/classes/javax/xml/bind/annotation/adapters/package.html - src/java.xml.bind/share/classes/javax/xml/bind/helpers/package.html - src/java.xml.bind/share/classes/javax/xml/bind/util/package.html From david.simms at oracle.com Tue Sep 26 12:46:33 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:46:33 +0000 Subject: hg: valhalla/valhalla10-old/jdk: Merge Message-ID: <201709261246.v8QCkXOZ029252@aojmv0008.oracle.com> Changeset: 22f5a1a73701 Author: dsimms Date: 2017-09-26 13:09 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/22f5a1a73701 Merge - make/data/charsetmapping/euc_tw.map - src/java.base/share/classes/java/lang/doc-files/capchi.gif - src/java.base/share/classes/java/lang/doc-files/capiota.gif - src/java.base/share/classes/java/lang/doc-files/capsigma.gif - src/java.base/share/classes/java/lang/doc-files/captheta.gif - src/java.base/share/classes/java/lang/doc-files/capupsil.gif - src/java.base/share/classes/java/lang/doc-files/chi.gif - src/java.base/share/classes/java/lang/doc-files/iota.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc21.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc38.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc40.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc41.gif - src/java.base/share/classes/java/lang/doc-files/sigma1.gif - src/java.base/share/classes/java/lang/doc-files/theta.gif - src/java.base/share/classes/java/lang/doc-files/upsilon.gif ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/module-info.java - src/java.desktop/macosx/classes/apple/laf/AquaLookAndFeel.java - src/java.desktop/macosx/classes/com/apple/eawt/ApplicationAdapter.java - src/java.desktop/macosx/classes/com/apple/eawt/ApplicationEvent.java - src/java.desktop/macosx/classes/com/apple/eawt/ApplicationListener.java - src/java.desktop/share/classes/com/sun/java/swing/Painter.java - src/java.desktop/share/classes/com/sun/java/swing/plaf/nimbus/AbstractRegionPainter.java - src/java.desktop/share/classes/com/sun/java/swing/plaf/nimbus/NimbusLookAndFeel.java - src/java.desktop/unix/native/libsunwjdga/dgalock.c - src/java.desktop/unix/native/libsunwjdga/jdga.h - src/java.desktop/unix/native/libsunwjdga/jdgadevice.h - src/java.desktop/windows/classes/sun/awt/windows/WColor.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexConnectionInfo.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexInputStream.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexOutputStream.java ! test/TEST.groups - test/java/security/Provider/TestSecurityProvider.java - test/java/security/Provider/TestSecurityProviderClient.java - test/java/security/modules/ModularTest.java - test/javax/security/auth/login/modules/TEST.properties - test/lib/testlibrary/ClassFileInstaller.java From david.simms at oracle.com Tue Sep 26 12:46:39 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:46:39 +0000 Subject: hg: valhalla/valhalla10-old/langtools: Merge Message-ID: <201709261246.v8QCkdsE029396@aojmv0008.oracle.com> Changeset: 1ac90de8f3c3 Author: dsimms Date: 2017-09-26 13:09 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/1ac90de8f3c3 Merge From david.simms at oracle.com Tue Sep 26 12:46:45 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 12:46:45 +0000 Subject: hg: valhalla/valhalla10-old/nashorn: Merge Message-ID: <201709261246.v8QCkjgv029573@aojmv0008.oracle.com> Changeset: abd314804de3 Author: dsimms Date: 2017-09-26 13:09 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/nashorn/rev/abd314804de3 Merge From david.simms at oracle.com Tue Sep 26 14:40:57 2017 From: david.simms at oracle.com (David Simms) Date: Tue, 26 Sep 2017 16:40:57 +0200 Subject: Consolidating Valhalla project repo, please refrain from pushing Message-ID: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> Currently consolidating Valhalla project repo, please refrain from pushing. Testing result as we speak, will send "all clear" when done (hopefully within next 2 hours) A reminder: DO NOT push changes to "default" branch (unless you are syncing with master, in other word, just don't) Thanks /David Simms From david.simms at oracle.com Tue Sep 26 15:58:40 2017 From: david.simms at oracle.com (david.simms at oracle.com) Date: Tue, 26 Sep 2017 15:58:40 +0000 Subject: hg: valhalla/valhalla: 5 new changesets Message-ID: <201709261558.v8QFwfK6021925@aojmv0008.oracle.com> Changeset: 888855499c83 Author: dsimms Date: 2017-09-26 16:08 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/888855499c83 create branch mvt Changeset: da9ee38a81e8 Author: dsimms Date: 2017-09-26 16:12 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/da9ee38a81e8 import changes from mvt/top ! make/CompileJavaModules.gmk ! make/Docs.gmk ! make/common/Modules.gmk + test/lib/jdk/test/lib/combo/ComboInstance.java + test/lib/jdk/test/lib/combo/ComboParameter.java + test/lib/jdk/test/lib/combo/ComboTask.java + test/lib/jdk/test/lib/combo/ComboTestHelper.java + test/lib/jdk/test/lib/combo/ReusableContext.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: e99c25c2f4a6 Author: dsimms Date: 2017-09-26 16:13 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/e99c25c2f4a6 import changes from mvt/jdk ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/System.java + src/java.base/share/classes/java/lang/__Value.java ! src/java.base/share/classes/java/lang/invoke/BoundMethodHandle.java ! src/java.base/share/classes/java/lang/invoke/GenerateJLIClassesHelper.java ! src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! src/java.base/share/classes/java/lang/invoke/LambdaForm.java + src/java.base/share/classes/java/lang/invoke/LambdaFormBuilder.java ! src/java.base/share/classes/java/lang/invoke/LambdaFormEditor.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleStatics.java ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/java/lang/invoke/MethodType.java ! src/java.base/share/classes/java/lang/invoke/MethodTypeForm.java + src/java.base/share/classes/jdk/experimental/bytecode/AbstractBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/AnnotationsBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/AttributeBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/BasicClassBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/ClassBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/CodeBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/DeclBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/FieldBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/Flag.java + src/java.base/share/classes/jdk/experimental/bytecode/GrowableByteBuffer.java + src/java.base/share/classes/jdk/experimental/bytecode/MacroCodeBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/MemberBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/MethodBuilder.java + src/java.base/share/classes/jdk/experimental/bytecode/Opcode.java + src/java.base/share/classes/jdk/experimental/bytecode/PoolHelper.java + src/java.base/share/classes/jdk/experimental/bytecode/PoolTag.java + src/java.base/share/classes/jdk/experimental/bytecode/Type.java + src/java.base/share/classes/jdk/experimental/bytecode/TypeHelper.java + src/java.base/share/classes/jdk/experimental/bytecode/TypeTag.java + src/java.base/share/classes/jdk/experimental/bytecode/TypedCodeBuilder.java + src/java.base/share/classes/jdk/experimental/value/MethodHandleBuilder.java ! src/java.base/share/classes/jdk/internal/misc/JavaLangAccess.java ! src/java.base/share/classes/module-info.java ! src/java.base/share/classes/sun/invoke/util/BytecodeDescriptor.java + src/java.base/share/classes/valhalla/shady/MinimalValueTypes_1_0.java + src/java.base/share/classes/valhalla/shady/ValueTypeDesc.java + src/java.base/share/classes/valhalla/shady/ValueTypeHolder.java ! src/java.base/share/native/include/classfile_constants.h ! src/java.base/share/native/libjava/System.c ! src/java.base/share/native/libverify/check_code.c ! src/java.base/share/native/libverify/check_format.c + src/jdk.incubator.mvt/share/classes/jdk/incubator/mvt/ValueCapableClass.java + src/jdk.incubator.mvt/share/classes/jdk/incubator/mvt/ValueType.java + src/jdk.incubator.mvt/share/classes/jdk/incubator/mvt/package-info.java + src/jdk.incubator.mvt/share/classes/module-info.java ! test/jdk/TEST.groups + test/jdk/valhalla/mvt/ConstructorTest.java + test/jdk/valhalla/mvt/Interval.java + test/jdk/valhalla/mvt/MVTAccessCheck.java + test/jdk/valhalla/mvt/MVTReflectionTest.java + test/jdk/valhalla/mvt/MVTTest.java + test/jdk/valhalla/mvt/MethodHandlesTest.java + test/jdk/valhalla/mvt/Point.java + test/jdk/valhalla/mvt/PrivatePoint.java + test/jdk/valhalla/mvt/TEST.properties + test/jdk/valhalla/mvt/TestValueInValue.java + test/jdk/valhalla/mvt/UnreflectWithersTest.java + test/jdk/valhalla/mvt/WithFieldTest.java + test/jdk/valhalla/mvt/modules/Driver.java + test/jdk/valhalla/mvt/modules/m/module-info.java + test/jdk/valhalla/mvt/modules/m/p/Main.java + test/jdk/valhalla/mvt/modules/m/p/internal/Point.java + test/jdk/valhalla/mvt/point/Point.java + test/jdk/valhalla/mvt/point/TestPoint.java + test/jdk/valhalla/mvt/vector/Long2.java + test/jdk/valhalla/mvt/vector/Utils.java + test/jdk/valhalla/mvt/vector/VectorLibrary.java + test/jdk/valhalla/mvt/vector/VectorTest.java + test/jdk/valhalla/mvt/vector/VectorUtils.java Changeset: 4bded5db79fd Author: dsimms Date: 2017-09-26 16:13 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/4bded5db79fd import changes from mvt/langtools ! src/java.compiler/share/classes/javax/lang/model/element/Modifier.java ! src/jdk.compiler/share/classes/com/sun/source/tree/NewClassTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java + src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ValueCapableClassAttr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ByteCodes.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Code.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Items.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/Tokens.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/AccessFlags.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/Descriptor.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/Opcode.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/Signature.java ! src/jdk.jshell/share/classes/jdk/jshell/CompletenessAnalyzer.java ! test/langtools/tools/javac/diags/CheckResourceKeys.java ! test/langtools/tools/javac/diags/examples.not-yet.txt + test/langtools/tools/javac/diags/examples/ValueTypesDisabled.java ! test/langtools/tools/javac/processing/model/TestSymtabItems.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckClone.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckClone.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckCyclicMembership.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckCyclicMembership.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckEquals.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckEquals.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckExtends.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckExtends.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckFinal.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckFinal.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckFinalize.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckFinalize.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckIdentityHash.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckIdentityHash.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckIdentityHash01.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckIdentityHash01.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckNullAssign.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckNullAssign.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckNullCastable.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckNullCastable.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckSync.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckSync.out + test/langtools/tools/javac/valhalla/minimalvalues/CheckSynchronized.java + test/langtools/tools/javac/valhalla/minimalvalues/CheckSynchronized.out + test/langtools/tools/javac/valhalla/minimalvalues/ClassFileReaderTest.java + test/langtools/tools/javac/valhalla/minimalvalues/ClassFileReaderTest.out + test/langtools/tools/javac/valhalla/minimalvalues/Point.java + test/langtools/tools/javac/valhalla/values/CheckClone.java + test/langtools/tools/javac/valhalla/values/CheckClone.out + test/langtools/tools/javac/valhalla/values/CheckCyclicMembership.java + test/langtools/tools/javac/valhalla/values/CheckCyclicMembership.out + test/langtools/tools/javac/valhalla/values/CheckEquals.java + test/langtools/tools/javac/valhalla/values/CheckEquals.out + test/langtools/tools/javac/valhalla/values/CheckExtends.java + test/langtools/tools/javac/valhalla/values/CheckExtends.out + test/langtools/tools/javac/valhalla/values/CheckFinal.java + test/langtools/tools/javac/valhalla/values/CheckFinal.out + test/langtools/tools/javac/valhalla/values/CheckFinalize.java + test/langtools/tools/javac/valhalla/values/CheckFinalize.out + test/langtools/tools/javac/valhalla/values/CheckFlags.java + test/langtools/tools/javac/valhalla/values/CheckIdentityHash.java + test/langtools/tools/javac/valhalla/values/CheckIdentityHash.out + test/langtools/tools/javac/valhalla/values/CheckIdentityHash01.java + test/langtools/tools/javac/valhalla/values/CheckIdentityHash01.out + test/langtools/tools/javac/valhalla/values/CheckMakeDefault.java + test/langtools/tools/javac/valhalla/values/CheckMakeDefault.out + test/langtools/tools/javac/valhalla/values/CheckNoInvokeDirect.java + test/langtools/tools/javac/valhalla/values/CheckNullAssign.java + test/langtools/tools/javac/valhalla/values/CheckNullAssign.out + test/langtools/tools/javac/valhalla/values/CheckNullCastable.java + test/langtools/tools/javac/valhalla/values/CheckNullCastable.out + test/langtools/tools/javac/valhalla/values/CheckStaticValueFactory.java + test/langtools/tools/javac/valhalla/values/CheckStaticValueFactory.out + test/langtools/tools/javac/valhalla/values/CheckSuper.java + test/langtools/tools/javac/valhalla/values/CheckSuperCompileOnly.java + test/langtools/tools/javac/valhalla/values/CheckSync.java + test/langtools/tools/javac/valhalla/values/CheckSync.out + test/langtools/tools/javac/valhalla/values/CheckSynchronized.java + test/langtools/tools/javac/valhalla/values/CheckSynchronized.out + test/langtools/tools/javac/valhalla/values/CheckValueFactoryWithReference.java + test/langtools/tools/javac/valhalla/values/CheckValueFactoryWithReference.out + test/langtools/tools/javac/valhalla/values/CheckValueModifier.java + test/langtools/tools/javac/valhalla/values/CheckValueModifier.out + test/langtools/tools/javac/valhalla/values/Point.java + test/langtools/tools/javac/valhalla/values/VOpcodeTest.java + test/langtools/tools/javac/valhalla/values/ValueCreationTest.java Changeset: d4fe87089809 Author: dsimms Date: 2017-09-26 16:15 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/d4fe87089809 import changes from mvt/hotspot ! src/hotspot/cpu/aarch64/globals_aarch64.hpp ! src/hotspot/cpu/ppc/globals_ppc.hpp ! src/hotspot/cpu/sparc/globals_sparc.hpp ! src/hotspot/cpu/x86/abstractInterpreter_x86.cpp ! src/hotspot/cpu/x86/frame_x86.cpp ! src/hotspot/cpu/x86/frame_x86.hpp ! src/hotspot/cpu/x86/frame_x86.inline.hpp ! src/hotspot/cpu/x86/globals_x86.hpp ! src/hotspot/cpu/x86/interp_masm_x86.cpp ! src/hotspot/cpu/x86/interp_masm_x86.hpp ! src/hotspot/cpu/x86/interpreterRT_x86.hpp ! src/hotspot/cpu/x86/interpreterRT_x86_32.cpp ! src/hotspot/cpu/x86/interpreterRT_x86_64.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/templateInterpreterGenerator_x86.cpp ! src/hotspot/cpu/x86/templateTable_x86.cpp ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/cpu/zero/globals_zero.hpp ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_IR.hpp ! src/hotspot/share/c1/c1_LinearScan.cpp ! src/hotspot/share/ci/bcEscapeAnalyzer.cpp ! src/hotspot/share/ci/ciArray.hpp ! src/hotspot/share/ci/ciArrayKlass.cpp ! src/hotspot/share/ci/ciArrayKlass.hpp ! src/hotspot/share/ci/ciClassList.hpp ! src/hotspot/share/ci/ciConstant.cpp ! src/hotspot/share/ci/ciConstant.hpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciEnv.hpp ! src/hotspot/share/ci/ciField.cpp ! src/hotspot/share/ci/ciField.hpp ! src/hotspot/share/ci/ciInstance.cpp ! src/hotspot/share/ci/ciInstanceKlass.cpp ! src/hotspot/share/ci/ciInstanceKlass.hpp ! src/hotspot/share/ci/ciKlass.hpp ! src/hotspot/share/ci/ciMetadata.hpp ! src/hotspot/share/ci/ciMethodBlocks.cpp ! src/hotspot/share/ci/ciObjArrayKlass.cpp ! src/hotspot/share/ci/ciObject.hpp ! src/hotspot/share/ci/ciObjectFactory.cpp ! src/hotspot/share/ci/ciReplay.cpp ! src/hotspot/share/ci/ciStreams.cpp ! src/hotspot/share/ci/ciStreams.hpp ! src/hotspot/share/ci/ciSymbol.hpp ! src/hotspot/share/ci/ciType.cpp ! src/hotspot/share/ci/ciType.hpp ! src/hotspot/share/ci/ciTypeFlow.cpp ! src/hotspot/share/ci/ciTypeFlow.hpp + src/hotspot/share/ci/ciValueArray.hpp + src/hotspot/share/ci/ciValueArrayKlass.cpp + src/hotspot/share/ci/ciValueArrayKlass.hpp + src/hotspot/share/ci/ciValueKlass.cpp + src/hotspot/share/ci/ciValueKlass.hpp ! src/hotspot/share/ci/compilerInterface.hpp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderData.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/stackMapFrame.cpp ! src/hotspot/share/classfile/stackMapTable.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/classfile/verificationType.cpp ! src/hotspot/share/classfile/verificationType.hpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/verifier.hpp ! src/hotspot/share/classfile/vmSymbols.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/code/codeBlob.hpp ! src/hotspot/share/code/compiledMethod.cpp ! src/hotspot/share/code/debugInfoRec.cpp ! src/hotspot/share/code/debugInfoRec.hpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/pcDesc.hpp ! src/hotspot/share/code/scopeDesc.cpp ! src/hotspot/share/code/scopeDesc.hpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/compiler/methodLiveness.cpp ! src/hotspot/share/gc/parallel/psCompactionManager.cpp ! src/hotspot/share/gc/parallel/psParallelCompact.cpp ! src/hotspot/share/gc/parallel/psPromotionManager.cpp ! src/hotspot/share/interpreter/abstractInterpreter.hpp ! src/hotspot/share/interpreter/bytecodeInterpreter.cpp ! src/hotspot/share/interpreter/bytecodeTracer.cpp ! src/hotspot/share/interpreter/bytecodes.cpp ! src/hotspot/share/interpreter/bytecodes.hpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/interpreterRuntime.hpp ! src/hotspot/share/interpreter/linkResolver.cpp ! src/hotspot/share/interpreter/oopMapCache.cpp ! src/hotspot/share/interpreter/rewriter.cpp ! src/hotspot/share/interpreter/templateInterpreter.cpp ! src/hotspot/share/interpreter/templateInterpreter.hpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.cpp ! src/hotspot/share/interpreter/templateInterpreterGenerator.hpp ! src/hotspot/share/interpreter/templateTable.cpp ! src/hotspot/share/interpreter/templateTable.hpp ! src/hotspot/share/jvmci/jvmciCodeInstaller.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.hpp ! src/hotspot/share/jvmci/jvmciEnv.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/memory/allocation.inline.hpp ! src/hotspot/share/memory/iterator.hpp ! src/hotspot/share/memory/iterator.inline.hpp ! src/hotspot/share/memory/oopFactory.cpp ! src/hotspot/share/memory/oopFactory.hpp ! src/hotspot/share/memory/universe.inline.hpp + src/hotspot/share/memory/vtBuffer.cpp + src/hotspot/share/memory/vtBuffer.hpp ! src/hotspot/share/oops/arrayKlass.cpp ! src/hotspot/share/oops/arrayKlass.hpp ! src/hotspot/share/oops/arrayOop.hpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/constantPool.hpp ! src/hotspot/share/oops/cpCache.cpp ! src/hotspot/share/oops/cpCache.hpp ! src/hotspot/share/oops/generateOopMap.cpp ! src/hotspot/share/oops/generateOopMap.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/instanceKlass.inline.hpp ! src/hotspot/share/oops/instanceOop.hpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/klassVtable.hpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/oops/methodData.cpp ! src/hotspot/share/oops/objArrayKlass.cpp ! src/hotspot/share/oops/objArrayKlass.hpp ! src/hotspot/share/oops/oop.cpp ! src/hotspot/share/oops/oop.hpp ! src/hotspot/share/oops/oop.inline.hpp ! src/hotspot/share/oops/oopsHierarchy.hpp ! src/hotspot/share/oops/typeArrayKlass.cpp ! src/hotspot/share/oops/typeArrayOop.hpp + src/hotspot/share/oops/valueArrayKlass.cpp + src/hotspot/share/oops/valueArrayKlass.hpp + src/hotspot/share/oops/valueArrayKlass.inline.hpp + src/hotspot/share/oops/valueArrayOop.cpp + src/hotspot/share/oops/valueArrayOop.hpp + src/hotspot/share/oops/valueKlass.cpp + src/hotspot/share/oops/valueKlass.hpp + src/hotspot/share/oops/valueKlass.inline.hpp ! src/hotspot/share/opto/addnode.cpp ! src/hotspot/share/opto/buildOopMap.cpp ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/callGenerator.hpp ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/castnode.cpp ! src/hotspot/share/opto/castnode.hpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/chaitin.cpp ! src/hotspot/share/opto/classes.cpp ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/connode.cpp ! src/hotspot/share/opto/divnode.cpp ! src/hotspot/share/opto/divnode.hpp ! src/hotspot/share/opto/doCall.cpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/generateOptoStub.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/lcm.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/live.cpp ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/machnode.cpp ! src/hotspot/share/opto/machnode.hpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macro.hpp ! src/hotspot/share/opto/macroArrayCopy.cpp ! src/hotspot/share/opto/matcher.cpp ! src/hotspot/share/opto/matcher.hpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/opto/mulnode.cpp ! src/hotspot/share/opto/multnode.cpp ! src/hotspot/share/opto/multnode.hpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/parse.hpp ! src/hotspot/share/opto/parse1.cpp ! src/hotspot/share/opto/parse2.cpp ! src/hotspot/share/opto/parse3.cpp ! src/hotspot/share/opto/parseHelper.cpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/phaseX.hpp ! src/hotspot/share/opto/runtime.cpp ! src/hotspot/share/opto/runtime.hpp ! src/hotspot/share/opto/split_if.cpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/type.hpp + src/hotspot/share/opto/valuetypenode.cpp + src/hotspot/share/opto/valuetypenode.hpp ! src/hotspot/share/precompiled/precompiled.hpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jni.h ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvm.h ! src/hotspot/share/prims/jvmtiCodeBlobEvents.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/prims/jvmtiTagMap.cpp ! src/hotspot/share/prims/methodComparator.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/deoptimization.hpp ! src/hotspot/share/runtime/fieldDescriptor.cpp ! src/hotspot/share/runtime/fieldType.cpp ! src/hotspot/share/runtime/fieldType.hpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/frame.hpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/handles.cpp ! src/hotspot/share/runtime/handles.hpp ! src/hotspot/share/runtime/javaCalls.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/reflection.cpp ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sharedRuntime.hpp ! src/hotspot/share/runtime/signature.cpp ! src/hotspot/share/runtime/signature.hpp ! src/hotspot/share/runtime/stubRoutines.cpp ! src/hotspot/share/runtime/stubRoutines.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vframeArray.cpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/runtime/vm_operations.cpp ! src/hotspot/share/runtime/vm_operations.hpp ! src/hotspot/share/services/diagnosticCommand.cpp ! src/hotspot/share/services/diagnosticCommand.hpp ! src/hotspot/share/services/nmtCommon.cpp ! src/hotspot/share/shark/sharkCacheDecache.cpp ! src/hotspot/share/utilities/accessFlags.hpp ! src/hotspot/share/utilities/constantTag.cpp ! src/hotspot/share/utilities/constantTag.hpp ! src/hotspot/share/utilities/exceptions.hpp ! src/hotspot/share/utilities/globalDefinitions.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/hotspot/share/utilities/growableArray.hpp ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantPool.java ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java ! test/hotspot/jtreg/TEST.groups + test/hotspot/jtreg/compiler/valhalla/valuetypes/MyValue1.java + test/hotspot/jtreg/compiler/valhalla/valuetypes/TestBoundValueTypes.java + test/hotspot/jtreg/compiler/valhalla/valuetypes/TestUnloadedValueTypeArray.java + test/hotspot/jtreg/compiler/valhalla/valuetypes/TestUnresolvedValueClass.java + test/hotspot/jtreg/compiler/valhalla/valuetypes/ValueCapableClass1.java + test/hotspot/jtreg/compiler/valhalla/valuetypes/ValueCapableClass2.java + test/hotspot/jtreg/compiler/valhalla/valuetypes/ValueTypeTestBench.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/DeriveValueTypeCreation.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/Empty.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/IntValue.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/Long8Value.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/MVTCombo.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/MVTComboDebugTier1.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/MVTComboTier1.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/Person.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/PersonVcc.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/Point.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/Test8186715.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/UninitializedValueFieldsTest.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/VDefaultTest.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/VTBufferTest.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/VWithFieldTest.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueCapableClass.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueOops.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueTypeArray.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueTypeCreation.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueTypeDensity.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueTypeGenerator.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueTypeGetField.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/VboxUnbox.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/verifier/ValueCapableClass.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/verifier/VloadTest.java + test/hotspot/jtreg/runtime/valhalla/valuetypes/verifier/VunboxErrorIndex.java From david.simms at oracle.com Tue Sep 26 15:59:45 2017 From: david.simms at oracle.com (David Simms) Date: Tue, 26 Sep 2017 17:59:45 +0200 Subject: Valhalla project repo consolidated In-Reply-To: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> Message-ID: All clear. Closed / Deprecated: http://hg.openjdk.java.net/valhalla/valhalla10-old/? will be read-only / deleted at some point, all further changes ignored. Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ Cheers /David Simms On 26/09/17 16:40, David Simms wrote: > > Currently consolidating Valhalla project repo, please refrain from > pushing. > > Testing result as we speak, will send "all clear" when done (hopefully > within next 2 hours) > > A reminder: DO NOT push changes to "default" branch (unless you are > syncing with master, in other word, just don't) > > Thanks > > /David Simms > From karen.kinnear at oracle.com Tue Sep 26 16:07:49 2017 From: karen.kinnear at oracle.com (Karen Kinnear) Date: Tue, 26 Sep 2017 12:07:49 -0400 Subject: Valhalla project repo consolidated In-Reply-To: References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> Message-ID: <1E7E3BEC-6680-4FF0-AEE9-B34EA757DDDE@oracle.com> Many thanks! Karen > On Sep 26, 2017, at 11:59 AM, David Simms wrote: > > > All clear. > > Closed / Deprecated: http://hg.openjdk.java.net/valhalla/valhalla10-old/ will be read-only / deleted at some point, all further changes ignored. > > Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ > > Cheers > /David Simms > > On 26/09/17 16:40, David Simms wrote: >> >> Currently consolidating Valhalla project repo, please refrain from pushing. >> >> Testing result as we speak, will send "all clear" when done (hopefully within next 2 hours) >> >> A reminder: DO NOT push changes to "default" branch (unless you are syncing with master, in other word, just don't) >> >> Thanks >> >> /David Simms >> > From maurizio.cimadamore at oracle.com Tue Sep 26 16:11:28 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 26 Sep 2017 17:11:28 +0100 Subject: Valhalla project repo consolidated In-Reply-To: References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> Message-ID: <18e567d2-c2b2-4fb0-6066-9e010f18bb40@oracle.com> Thanks for taking care of this David. Much appreciated. Maurizio On 26/09/17 16:59, David Simms wrote: > > All clear. > > Closed / Deprecated: > http://hg.openjdk.java.net/valhalla/valhalla10-old/? will be read-only > / deleted at some point, all further changes ignored. > > Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ > > Cheers > /David Simms > > On 26/09/17 16:40, David Simms wrote: >> >> Currently consolidating Valhalla project repo, please refrain from >> pushing. >> >> Testing result as we speak, will send "all clear" when done >> (hopefully within next 2 hours) >> >> A reminder: DO NOT push changes to "default" branch (unless you are >> syncing with master, in other word, just don't) >> >> Thanks >> >> /David Simms >> > From frederic.parain at oracle.com Tue Sep 26 16:58:45 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Tue, 26 Sep 2017 12:58:45 -0400 Subject: Valhalla project repo consolidated In-Reply-To: References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> Message-ID: <627809a5-3c8c-df35-5651-d95c5d455440@oracle.com> New repo cloned, built and tested without any issue. Thank you very much! Fred On 09/26/2017 11:59 AM, David Simms wrote: > > All clear. > > Closed / Deprecated: > http://hg.openjdk.java.net/valhalla/valhalla10-old/? will be read-only / > deleted at some point, all further changes ignored. > > Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ > > Cheers > /David Simms > > On 26/09/17 16:40, David Simms wrote: >> >> Currently consolidating Valhalla project repo, please refrain from >> pushing. >> >> Testing result as we speak, will send "all clear" when done (hopefully >> within next 2 hours) >> >> A reminder: DO NOT push changes to "default" branch (unless you are >> syncing with master, in other word, just don't) >> >> Thanks >> >> /David Simms >> > From forax at univ-mlv.fr Tue Sep 26 19:28:33 2017 From: forax at univ-mlv.fr (Remi Forax) Date: Tue, 26 Sep 2017 21:28:33 +0200 (CEST) Subject: Valhalla project repo consolidated In-Reply-To: <627809a5-3c8c-df35-5651-d95c5d455440@oracle.com> References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> <627809a5-3c8c-df35-5651-d95c5d455440@oracle.com> Message-ID: <1451701558.2670343.1506454113236.JavaMail.zimbra@u-pem.fr> I don't want to rain on your parade but the clone is now dog slow. >From 6 mins before the consolidation to 18 mins, it's so slow that Travis stop because it exceeds the time limit [1]. R?mi [1] https://travis-ci.org/forax/valuetypify/builds/280062587 ----- Mail original ----- > De: "Frederic Parain" > ?: "valhalla-dev" > Envoy?: Mardi 26 Septembre 2017 18:58:45 > Objet: Re: Valhalla project repo consolidated > New repo cloned, built and tested without any issue. > Thank you very much! > > Fred > > On 09/26/2017 11:59 AM, David Simms wrote: >> >> All clear. >> >> Closed / Deprecated: >> http://hg.openjdk.java.net/valhalla/valhalla10-old/? will be read-only / >> deleted at some point, all further changes ignored. >> >> Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ >> >> Cheers >> /David Simms >> >> On 26/09/17 16:40, David Simms wrote: >>> >>> Currently consolidating Valhalla project repo, please refrain from >>> pushing. >>> >>> Testing result as we speak, will send "all clear" when done (hopefully >>> within next 2 hours) >>> >>> A reminder: DO NOT push changes to "default" branch (unless you are >>> syncing with master, in other word, just don't) >>> >>> Thanks >>> >>> /David Simms >>> From frederic.parain at oracle.com Tue Sep 26 19:59:49 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Tue, 26 Sep 2017 15:59:49 -0400 Subject: Valhalla project repo consolidated In-Reply-To: <1451701558.2670343.1506454113236.JavaMail.zimbra@u-pem.fr> References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> <627809a5-3c8c-df35-5651-d95c5d455440@oracle.com> <1451701558.2670343.1506454113236.JavaMail.zimbra@u-pem.fr> Message-ID: Remy, Are you experiencing this issue only with the Valhalla repo or with any consolidated repo? Fred > On Sep 26, 2017, at 15:28, Remi Forax wrote: > > I don't want to rain on your parade but the clone is now dog slow. > > From 6 mins before the consolidation to 18 mins, > it's so slow that Travis stop because it exceeds the time limit [1]. > > R?mi > > [1] https://travis-ci.org/forax/valuetypify/builds/280062587 > > ----- Mail original ----- >> De: "Frederic Parain" >> ?: "valhalla-dev" >> Envoy?: Mardi 26 Septembre 2017 18:58:45 >> Objet: Re: Valhalla project repo consolidated > >> New repo cloned, built and tested without any issue. >> Thank you very much! >> >> Fred >> >> On 09/26/2017 11:59 AM, David Simms wrote: >>> >>> All clear. >>> >>> Closed / Deprecated: >>> http://hg.openjdk.java.net/valhalla/valhalla10-old/ will be read-only / >>> deleted at some point, all further changes ignored. >>> >>> Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ >>> >>> Cheers >>> /David Simms >>> >>> On 26/09/17 16:40, David Simms wrote: >>>> >>>> Currently consolidating Valhalla project repo, please refrain from >>>> pushing. >>>> >>>> Testing result as we speak, will send "all clear" when done (hopefully >>>> within next 2 hours) >>>> >>>> A reminder: DO NOT push changes to "default" branch (unless you are >>>> syncing with master, in other word, just don't) >>>> >>>> Thanks >>>> >>>> /David Simms >>>> From forax at univ-mlv.fr Tue Sep 26 20:29:03 2017 From: forax at univ-mlv.fr (forax at univ-mlv.fr) Date: Tue, 26 Sep 2017 22:29:03 +0200 (CEST) Subject: Valhalla project repo consolidated In-Reply-To: References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> <627809a5-3c8c-df35-5651-d95c5d455440@oracle.com> <1451701558.2670343.1506454113236.JavaMail.zimbra@u-pem.fr> Message-ID: <531948310.2684117.1506457743900.JavaMail.zimbra@u-pem.fr> With the consolidated repo :( R?mi ----- Mail original ----- > De: "Frederic Parain" > ?: "Remi Forax" > Cc: "valhalla-dev" > Envoy?: Mardi 26 Septembre 2017 21:59:49 > Objet: Re: Valhalla project repo consolidated > Remy, > > Are you experiencing this issue only with the Valhalla repo or > with any consolidated repo? > > Fred > > >> On Sep 26, 2017, at 15:28, Remi Forax wrote: >> >> I don't want to rain on your parade but the clone is now dog slow. >> >> From 6 mins before the consolidation to 18 mins, >> it's so slow that Travis stop because it exceeds the time limit [1]. >> >> R?mi >> >> [1] https://travis-ci.org/forax/valuetypify/builds/280062587 >> >> ----- Mail original ----- >>> De: "Frederic Parain" >>> ?: "valhalla-dev" >>> Envoy?: Mardi 26 Septembre 2017 18:58:45 >>> Objet: Re: Valhalla project repo consolidated >> >>> New repo cloned, built and tested without any issue. >>> Thank you very much! >>> >>> Fred >>> >>> On 09/26/2017 11:59 AM, David Simms wrote: >>>> >>>> All clear. >>>> >>>> Closed / Deprecated: >>>> http://hg.openjdk.java.net/valhalla/valhalla10-old/ will be read-only / >>>> deleted at some point, all further changes ignored. >>>> >>>> Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ >>>> >>>> Cheers >>>> /David Simms >>>> >>>> On 26/09/17 16:40, David Simms wrote: >>>>> >>>>> Currently consolidating Valhalla project repo, please refrain from >>>>> pushing. >>>>> >>>>> Testing result as we speak, will send "all clear" when done (hopefully >>>>> within next 2 hours) >>>>> >>>>> A reminder: DO NOT push changes to "default" branch (unless you are >>>>> syncing with master, in other word, just don't) >>>>> >>>>> Thanks >>>>> >>>>> /David Simms From maurizio.cimadamore at oracle.com Tue Sep 26 20:38:04 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 26 Sep 2017 21:38:04 +0100 Subject: Valhalla project repo consolidated In-Reply-To: <531948310.2684117.1506457743900.JavaMail.zimbra@u-pem.fr> References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> <627809a5-3c8c-df35-5651-d95c5d455440@oracle.com> <1451701558.2670343.1506454113236.JavaMail.zimbra@u-pem.fr> <531948310.2684117.1506457743900.JavaMail.zimbra@u-pem.fr> Message-ID: Remi, this has probably nothing to do with valhalla, right? Do you have better times cloning e.g. jdk10/master? Maurizio On 26/09/17 21:29, forax at univ-mlv.fr wrote: > With the consolidated repo :( > > R?mi > > ----- Mail original ----- >> De: "Frederic Parain" >> ?: "Remi Forax" >> Cc: "valhalla-dev" >> Envoy?: Mardi 26 Septembre 2017 21:59:49 >> Objet: Re: Valhalla project repo consolidated >> Remy, >> >> Are you experiencing this issue only with the Valhalla repo or >> with any consolidated repo? >> >> Fred >> >> >>> On Sep 26, 2017, at 15:28, Remi Forax wrote: >>> >>> I don't want to rain on your parade but the clone is now dog slow. >>> >>> From 6 mins before the consolidation to 18 mins, >>> it's so slow that Travis stop because it exceeds the time limit [1]. >>> >>> R?mi >>> >>> [1] https://travis-ci.org/forax/valuetypify/builds/280062587 >>> >>> ----- Mail original ----- >>>> De: "Frederic Parain" >>>> ?: "valhalla-dev" >>>> Envoy?: Mardi 26 Septembre 2017 18:58:45 >>>> Objet: Re: Valhalla project repo consolidated >>>> New repo cloned, built and tested without any issue. >>>> Thank you very much! >>>> >>>> Fred >>>> >>>> On 09/26/2017 11:59 AM, David Simms wrote: >>>>> All clear. >>>>> >>>>> Closed / Deprecated: >>>>> http://hg.openjdk.java.net/valhalla/valhalla10-old/ will be read-only / >>>>> deleted at some point, all further changes ignored. >>>>> >>>>> Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ >>>>> >>>>> Cheers >>>>> /David Simms >>>>> >>>>> On 26/09/17 16:40, David Simms wrote: >>>>>> Currently consolidating Valhalla project repo, please refrain from >>>>>> pushing. >>>>>> >>>>>> Testing result as we speak, will send "all clear" when done (hopefully >>>>>> within next 2 hours) >>>>>> >>>>>> A reminder: DO NOT push changes to "default" branch (unless you are >>>>>> syncing with master, in other word, just don't) >>>>>> >>>>>> Thanks >>>>>> >>>>>> /David Simms From frederic.parain at oracle.com Tue Sep 26 20:39:42 2017 From: frederic.parain at oracle.com (Frederic Parain) Date: Tue, 26 Sep 2017 16:39:42 -0400 Subject: Valhalla project repo consolidated In-Reply-To: <531948310.2684117.1506457743900.JavaMail.zimbra@u-pem.fr> References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> <627809a5-3c8c-df35-5651-d95c5d455440@oracle.com> <1451701558.2670343.1506454113236.JavaMail.zimbra@u-pem.fr> <531948310.2684117.1506457743900.JavaMail.zimbra@u-pem.fr> Message-ID: <2974E86B-8A88-43C0-84DF-4CFD4A7122E7@oracle.com> Several people have reported issues while cloning consolidated repos, some of them not being able to get a full cloned repo because of timeout. The issue is being investigated but I don?t have more information about the progress. Fred > On Sep 26, 2017, at 16:29, forax at univ-mlv.fr wrote: > > With the consolidated repo :( > > R?mi > > ----- Mail original ----- >> De: "Frederic Parain" >> ?: "Remi Forax" >> Cc: "valhalla-dev" >> Envoy?: Mardi 26 Septembre 2017 21:59:49 >> Objet: Re: Valhalla project repo consolidated > >> Remy, >> >> Are you experiencing this issue only with the Valhalla repo or >> with any consolidated repo? >> >> Fred >> >> >>> On Sep 26, 2017, at 15:28, Remi Forax wrote: >>> >>> I don't want to rain on your parade but the clone is now dog slow. >>> >>> From 6 mins before the consolidation to 18 mins, >>> it's so slow that Travis stop because it exceeds the time limit [1]. >>> >>> R?mi >>> >>> [1] https://travis-ci.org/forax/valuetypify/builds/280062587 >>> >>> ----- Mail original ----- >>>> De: "Frederic Parain" >>>> ?: "valhalla-dev" >>>> Envoy?: Mardi 26 Septembre 2017 18:58:45 >>>> Objet: Re: Valhalla project repo consolidated >>> >>>> New repo cloned, built and tested without any issue. >>>> Thank you very much! >>>> >>>> Fred >>>> >>>> On 09/26/2017 11:59 AM, David Simms wrote: >>>>> >>>>> All clear. >>>>> >>>>> Closed / Deprecated: >>>>> http://hg.openjdk.java.net/valhalla/valhalla10-old/ will be read-only / >>>>> deleted at some point, all further changes ignored. >>>>> >>>>> Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ >>>>> >>>>> Cheers >>>>> /David Simms >>>>> >>>>> On 26/09/17 16:40, David Simms wrote: >>>>>> >>>>>> Currently consolidating Valhalla project repo, please refrain from >>>>>> pushing. >>>>>> >>>>>> Testing result as we speak, will send "all clear" when done (hopefully >>>>>> within next 2 hours) >>>>>> >>>>>> A reminder: DO NOT push changes to "default" branch (unless you are >>>>>> syncing with master, in other word, just don't) >>>>>> >>>>>> Thanks >>>>>> >>>>>> /David Simms From maurizio.cimadamore at oracle.com Tue Sep 26 20:41:08 2017 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 26 Sep 2017 21:41:08 +0100 Subject: Valhalla project repo consolidated In-Reply-To: <2974E86B-8A88-43C0-84DF-4CFD4A7122E7@oracle.com> References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> <627809a5-3c8c-df35-5651-d95c5d455440@oracle.com> <1451701558.2670343.1506454113236.JavaMail.zimbra@u-pem.fr> <531948310.2684117.1506457743900.JavaMail.zimbra@u-pem.fr> <2974E86B-8A88-43C0-84DF-4CFD4A7122E7@oracle.com> Message-ID: <16da9f0a-6de5-96fc-8e23-8190982443ad@oracle.com> And - I think maybe ops at openjdk.java.net might be a better mailing list for this kind of issue? Maurizio On 26/09/17 21:39, Frederic Parain wrote: > Several people have reported issues while cloning consolidated repos, > some of them not being able to get a full cloned repo because of > timeout. The issue is being investigated but I don?t have more > information about the progress. > > Fred > > >> On Sep 26, 2017, at 16:29, forax at univ-mlv.fr wrote: >> >> With the consolidated repo :( >> >> R?mi >> >> ----- Mail original ----- >>> De: "Frederic Parain" >>> ?: "Remi Forax" >>> Cc: "valhalla-dev" >>> Envoy?: Mardi 26 Septembre 2017 21:59:49 >>> Objet: Re: Valhalla project repo consolidated >>> Remy, >>> >>> Are you experiencing this issue only with the Valhalla repo or >>> with any consolidated repo? >>> >>> Fred >>> >>> >>>> On Sep 26, 2017, at 15:28, Remi Forax wrote: >>>> >>>> I don't want to rain on your parade but the clone is now dog slow. >>>> >>>> From 6 mins before the consolidation to 18 mins, >>>> it's so slow that Travis stop because it exceeds the time limit [1]. >>>> >>>> R?mi >>>> >>>> [1] https://travis-ci.org/forax/valuetypify/builds/280062587 >>>> >>>> ----- Mail original ----- >>>>> De: "Frederic Parain" >>>>> ?: "valhalla-dev" >>>>> Envoy?: Mardi 26 Septembre 2017 18:58:45 >>>>> Objet: Re: Valhalla project repo consolidated >>>>> New repo cloned, built and tested without any issue. >>>>> Thank you very much! >>>>> >>>>> Fred >>>>> >>>>> On 09/26/2017 11:59 AM, David Simms wrote: >>>>>> All clear. >>>>>> >>>>>> Closed / Deprecated: >>>>>> http://hg.openjdk.java.net/valhalla/valhalla10-old/ will be read-only / >>>>>> deleted at some point, all further changes ignored. >>>>>> >>>>>> Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ >>>>>> >>>>>> Cheers >>>>>> /David Simms >>>>>> >>>>>> On 26/09/17 16:40, David Simms wrote: >>>>>>> Currently consolidating Valhalla project repo, please refrain from >>>>>>> pushing. >>>>>>> >>>>>>> Testing result as we speak, will send "all clear" when done (hopefully >>>>>>> within next 2 hours) >>>>>>> >>>>>>> A reminder: DO NOT push changes to "default" branch (unless you are >>>>>>> syncing with master, in other word, just don't) >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> /David Simms From david.holmes at oracle.com Tue Sep 26 20:55:36 2017 From: david.holmes at oracle.com (David Holmes) Date: Wed, 27 Sep 2017 06:55:36 +1000 Subject: Valhalla project repo consolidated In-Reply-To: References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> Message-ID: Thanks Mr Simms! But to be clear only the MVT branch has been populated in the new repo so far. Nestmates is yet to come - hopefully today. David H. On 27/09/2017 1:59 AM, David Simms wrote: > > All clear. > > Closed / Deprecated: > http://hg.openjdk.java.net/valhalla/valhalla10-old/? will be read-only / > deleted at some point, all further changes ignored. > > Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ > > Cheers > /David Simms > > On 26/09/17 16:40, David Simms wrote: >> >> Currently consolidating Valhalla project repo, please refrain from >> pushing. >> >> Testing result as we speak, will send "all clear" when done (hopefully >> within next 2 hours) >> >> A reminder: DO NOT push changes to "default" branch (unless you are >> syncing with master, in other word, just don't) >> >> Thanks >> >> /David Simms >> > From david.holmes at oracle.com Wed Sep 27 05:25:06 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Wed, 27 Sep 2017 05:25:06 +0000 Subject: hg: valhalla/valhalla10-old: Merge Message-ID: <201709270525.v8R5P60m019150@aojmv0008.oracle.com> Changeset: bba05558ed41 Author: dholmes Date: 2017-09-27 01:20 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/rev/bba05558ed41 Merge ! make/CompileJavaModules.gmk From david.holmes at oracle.com Wed Sep 27 05:25:12 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Wed, 27 Sep 2017 05:25:12 +0000 Subject: hg: valhalla/valhalla10-old/corba: Merge Message-ID: <201709270525.v8R5PCQ8019235@aojmv0008.oracle.com> Changeset: 1a2316002437 Author: dholmes Date: 2017-09-27 01:20 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/corba/rev/1a2316002437 Merge From david.holmes at oracle.com Wed Sep 27 05:25:18 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Wed, 27 Sep 2017 05:25:18 +0000 Subject: hg: valhalla/valhalla10-old/hotspot: Merge Message-ID: <201709270525.v8R5PIu5019342@aojmv0008.oracle.com> Changeset: 503ddcb96bb0 Author: dholmes Date: 2017-09-27 01:20 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/hotspot/rev/503ddcb96bb0 Merge - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64RawNativeCallNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64RawNativeCallNode.java ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/gc/parallel/psParallelCompact.cpp ! src/share/vm/interpreter/oopMapCache.cpp ! src/share/vm/interpreter/rewriter.cpp ! src/share/vm/logging/logTag.hpp ! src/share/vm/oops/arrayKlass.cpp ! src/share/vm/oops/arrayKlass.hpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/cpCache.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/deoptimization.hpp - src/share/vm/runtime/fprofiler.cpp - src/share/vm/runtime/fprofiler.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/javaCalls.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! test/compiler/jvmci/events/JvmciShutdownEventTest.java - test/runtime/MinimalVM/Xprof.java From david.holmes at oracle.com Wed Sep 27 05:25:23 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Wed, 27 Sep 2017 05:25:23 +0000 Subject: hg: valhalla/valhalla10-old/jaxp: Merge Message-ID: <201709270525.v8R5PNTb019403@aojmv0008.oracle.com> Changeset: a0c9b0aabc52 Author: dholmes Date: 2017-09-27 01:20 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxp/rev/a0c9b0aabc52 Merge From david.holmes at oracle.com Wed Sep 27 05:25:29 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Wed, 27 Sep 2017 05:25:29 +0000 Subject: hg: valhalla/valhalla10-old/jaxws: Merge Message-ID: <201709270525.v8R5PTtB019497@aojmv0008.oracle.com> Changeset: e6fb631cb7f3 Author: dholmes Date: 2017-09-27 01:20 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jaxws/rev/e6fb631cb7f3 Merge - src/java.xml.bind/share/classes/javax/xml/bind/annotation/adapters/package.html - src/java.xml.bind/share/classes/javax/xml/bind/helpers/package.html - src/java.xml.bind/share/classes/javax/xml/bind/util/package.html From david.holmes at oracle.com Wed Sep 27 05:25:36 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Wed, 27 Sep 2017 05:25:36 +0000 Subject: hg: valhalla/valhalla10-old/jdk: Merge Message-ID: <201709270525.v8R5Pal7019560@aojmv0008.oracle.com> Changeset: f225a36710be Author: dholmes Date: 2017-09-27 01:20 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/jdk/rev/f225a36710be Merge - make/data/charsetmapping/euc_tw.map - src/java.base/share/classes/java/lang/doc-files/capchi.gif - src/java.base/share/classes/java/lang/doc-files/capiota.gif - src/java.base/share/classes/java/lang/doc-files/capsigma.gif - src/java.base/share/classes/java/lang/doc-files/captheta.gif - src/java.base/share/classes/java/lang/doc-files/capupsil.gif - src/java.base/share/classes/java/lang/doc-files/chi.gif - src/java.base/share/classes/java/lang/doc-files/iota.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc21.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc38.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc40.gif - src/java.base/share/classes/java/lang/doc-files/javalang.doc.anc41.gif - src/java.base/share/classes/java/lang/doc-files/sigma1.gif - src/java.base/share/classes/java/lang/doc-files/theta.gif - src/java.base/share/classes/java/lang/doc-files/upsilon.gif ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/module-info.java - src/java.desktop/macosx/classes/apple/laf/AquaLookAndFeel.java - src/java.desktop/macosx/classes/com/apple/eawt/ApplicationAdapter.java - src/java.desktop/macosx/classes/com/apple/eawt/ApplicationEvent.java - src/java.desktop/macosx/classes/com/apple/eawt/ApplicationListener.java - src/java.desktop/share/classes/com/sun/java/swing/Painter.java - src/java.desktop/share/classes/com/sun/java/swing/plaf/nimbus/AbstractRegionPainter.java - src/java.desktop/share/classes/com/sun/java/swing/plaf/nimbus/NimbusLookAndFeel.java - src/java.desktop/unix/native/libsunwjdga/dgalock.c - src/java.desktop/unix/native/libsunwjdga/jdga.h - src/java.desktop/unix/native/libsunwjdga/jdgadevice.h - src/java.desktop/windows/classes/sun/awt/windows/WColor.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexConnectionInfo.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexInputStream.java - src/java.rmi/share/classes/sun/rmi/transport/tcp/MultiplexOutputStream.java ! test/ProblemList.txt ! test/TEST.groups - test/java/security/Provider/TestSecurityProvider.java - test/java/security/Provider/TestSecurityProviderClient.java - test/java/security/modules/ModularTest.java - test/javax/security/auth/login/modules/TEST.properties - test/lib/testlibrary/ClassFileInstaller.java From david.holmes at oracle.com Wed Sep 27 05:25:42 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Wed, 27 Sep 2017 05:25:42 +0000 Subject: hg: valhalla/valhalla10-old/langtools: Merge Message-ID: <201709270525.v8R5PgrM019651@aojmv0008.oracle.com> Changeset: bd7d251a4bb5 Author: dholmes Date: 2017-09-27 01:20 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/langtools/rev/bd7d251a4bb5 Merge From david.holmes at oracle.com Wed Sep 27 05:25:48 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Wed, 27 Sep 2017 05:25:48 +0000 Subject: hg: valhalla/valhalla10-old/nashorn: Merge Message-ID: <201709270525.v8R5PmNd019887@aojmv0008.oracle.com> Changeset: dbf63d9de2e7 Author: dholmes Date: 2017-09-27 01:20 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla10-old/nashorn/rev/dbf63d9de2e7 Merge From david.holmes at oracle.com Wed Sep 27 06:19:55 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Wed, 27 Sep 2017 06:19:55 +0000 Subject: hg: valhalla/valhalla: create branch nestmates Message-ID: <201709270619.v8R6JuOa008308@aojmv0008.oracle.com> Changeset: e473a6d9755f Author: dholmes Date: 2017-09-27 02:16 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/e473a6d9755f create branch nestmates From david.holmes at oracle.com Wed Sep 27 09:37:34 2017 From: david.holmes at oracle.com (david.holmes at oracle.com) Date: Wed, 27 Sep 2017 09:37:34 +0000 Subject: hg: valhalla/valhalla: 3 new changesets Message-ID: <201709270937.v8R9bZMp027091@aojmv0008.oracle.com> Changeset: 6577a6687114 Author: dholmes Date: 2017-09-27 02:49 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/6577a6687114 import changes from nestmates/jdk ! make/mapfiles/libjava/mapfile-vers ! src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/Attribute.java ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java ! src/java.base/share/classes/jdk/internal/reflect/Reflection.java ! src/java.base/share/classes/sun/invoke/util/VerifyAccess.java ! src/java.base/share/native/include/jvm.h ! src/java.base/share/native/libjava/Reflection.c ! test/jdk/ProblemList.txt ! test/jdk/java/util/concurrent/tck/AtomicIntegerFieldUpdaterTest.java ! test/jdk/java/util/concurrent/tck/AtomicLongFieldUpdaterTest.java ! test/jdk/java/util/concurrent/tck/AtomicReferenceFieldUpdaterTest.java ! test/jdk/jdk/lambda/vm/InterfaceAccessFlagsTest.java Changeset: 6d444ebd2c3d Author: dholmes Date: 2017-09-27 02:49 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/6d444ebd2c3d import changes from nestmates/langtools ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/Attribute.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/ClassWriter.java + src/jdk.jdeps/share/classes/com/sun/tools/classfile/MemberOfNest_attribute.java + src/jdk.jdeps/share/classes/com/sun/tools/classfile/NestMembers_attribute.java ! src/jdk.jdeps/share/classes/com/sun/tools/javap/AttributeWriter.java ! test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java ! test/langtools/tools/javac/MethodParameters/AttributeVisitor.java + test/langtools/tools/javac/valhalla/nestmate/CheckNestmateAttrs.java Changeset: 0e90fbd0d05a Author: dholmes Date: 2017-09-27 03:14 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/0e90fbd0d05a import changes from nestmates/hotspot ! make/hotspot/symbols/symbols-unix ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp ! src/hotspot/share/classfile/stackMapFrame.hpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/interpreter/linkResolver.cpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/memory/heapInspection.hpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvm.h ! src/hotspot/share/runtime/reflection.cpp ! test/hotspot/jtreg/compiler/jvmci/events/JvmciNotifyBootstrapFinishedEventTest.java ! test/hotspot/jtreg/compiler/jvmci/events/JvmciNotifyInstallEventTest.java ! test/hotspot/jtreg/compiler/jvmci/events/JvmciShutdownEventTest.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveConcreteMethodTest.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveMethodTest.java ! test/hotspot/jtreg/runtime/CommandLine/OptionsValidation/TestOptionsWithRanges.java + test/hotspot/jtreg/runtime/Nestmates/classFileParsing/BadNestMembersEntry.jcod + test/hotspot/jtreg/runtime/Nestmates/classFileParsing/BadNestMembersLength.jcod + test/hotspot/jtreg/runtime/Nestmates/classFileParsing/BadNestTop.jcod + test/hotspot/jtreg/runtime/Nestmates/classFileParsing/ConflictingAttributesInNestMember.jcod + test/hotspot/jtreg/runtime/Nestmates/classFileParsing/ConflictingAttributesInNestTop.jcod + test/hotspot/jtreg/runtime/Nestmates/classFileParsing/DuplicateNestMemberEntry.jcod + test/hotspot/jtreg/runtime/Nestmates/classFileParsing/TestFinalMethodOverride.java + test/hotspot/jtreg/runtime/Nestmates/classFileParsing/TestNestmateAttributes.java + test/hotspot/jtreg/runtime/Nestmates/classFileParsing/TwoMemberOfNest.jcod + test/hotspot/jtreg/runtime/Nestmates/classFileParsing/TwoNestMembers.jcod + test/hotspot/jtreg/runtime/Nestmates/membership/ArrayNestTop.jcod + test/hotspot/jtreg/runtime/Nestmates/membership/MissingNestTop.jcod + test/hotspot/jtreg/runtime/Nestmates/membership/NotAMember.jcod + test/hotspot/jtreg/runtime/Nestmates/membership/NotAMember2.java + test/hotspot/jtreg/runtime/Nestmates/membership/NotAMember2.jcod + test/hotspot/jtreg/runtime/Nestmates/membership/PackagedNestTop.java + test/hotspot/jtreg/runtime/Nestmates/membership/PackagedNestTop.jcod + test/hotspot/jtreg/runtime/Nestmates/membership/PackagedNestTop2.java + test/hotspot/jtreg/runtime/Nestmates/membership/PackagedNestTop2Member.jcod + test/hotspot/jtreg/runtime/Nestmates/membership/TestNestmateMembership.java + test/hotspot/jtreg/runtime/Nestmates/privateConstructors/ExternalSub.jcod + test/hotspot/jtreg/runtime/Nestmates/privateConstructors/ExternalSuper.jcod + test/hotspot/jtreg/runtime/Nestmates/privateConstructors/TestConstructorHierarchy.java + test/hotspot/jtreg/runtime/Nestmates/privateConstructors/TestInvokeSpecial.java + test/hotspot/jtreg/runtime/Nestmates/privateConstructors/TestMethodHandles.java + test/hotspot/jtreg/runtime/Nestmates/privateConstructors/TestReflection.java + test/hotspot/jtreg/runtime/Nestmates/privateFields/TestMethodHandles.java + test/hotspot/jtreg/runtime/Nestmates/privateFields/TestPrivateField.java + test/hotspot/jtreg/runtime/Nestmates/privateFields/TestReflection.java + test/hotspot/jtreg/runtime/Nestmates/privateMethods/ExternalSub.jcod + test/hotspot/jtreg/runtime/Nestmates/privateMethods/ExternalSuper.jcod + test/hotspot/jtreg/runtime/Nestmates/privateMethods/MissingMethod.jcod + test/hotspot/jtreg/runtime/Nestmates/privateMethods/MissingMethodWithSuper.jcod + test/hotspot/jtreg/runtime/Nestmates/privateMethods/MissingNestTop.jcod + test/hotspot/jtreg/runtime/Nestmates/privateMethods/StaticIfaceError.jcod + test/hotspot/jtreg/runtime/Nestmates/privateMethods/StaticIfaceGood.jcod + test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestInvoke.java + test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestInvokeErrors.java + test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestInvokeHierarchy.java + test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestInvokeInterface.java + test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestMethodHandles.java + test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestReflection.java + test/hotspot/jtreg/runtime/Nestmates/privateStaticFields/TestMethodHandles.java + test/hotspot/jtreg/runtime/Nestmates/privateStaticFields/TestPrivateStaticField.java + test/hotspot/jtreg/runtime/Nestmates/privateStaticFields/TestReflection.java + test/hotspot/jtreg/runtime/Nestmates/privateStaticMethods/TestInvokeStatic.java + test/hotspot/jtreg/runtime/Nestmates/privateStaticMethods/TestMethodHandles.java + test/hotspot/jtreg/runtime/Nestmates/privateStaticMethods/TestReflection.java From david.holmes at oracle.com Wed Sep 27 09:37:37 2017 From: david.holmes at oracle.com (David Holmes) Date: Wed, 27 Sep 2017 19:37:37 +1000 Subject: Valhalla project repo consolidated In-Reply-To: References: <58719942-dc83-d53a-d228-da95add4b689@oracle.com> Message-ID: Nestmates branch is now live too. David H. On 27/09/2017 6:55 AM, David Holmes wrote: > Thanks Mr Simms! > > But to be clear only the MVT branch has been populated in the new repo > so far. Nestmates is yet to come - hopefully today. > > David H. > > On 27/09/2017 1:59 AM, David Simms wrote: >> >> All clear. >> >> Closed / Deprecated: >> http://hg.openjdk.java.net/valhalla/valhalla10-old/? will be read-only >> / deleted at some point, all further changes ignored. >> >> Open for push: http://hg.openjdk.java.net/valhalla/valhalla/ >> >> Cheers >> /David Simms >> >> On 26/09/17 16:40, David Simms wrote: >>> >>> Currently consolidating Valhalla project repo, please refrain from >>> pushing. >>> >>> Testing result as we speak, will send "all clear" when done >>> (hopefully within next 2 hours) >>> >>> A reminder: DO NOT push changes to "default" branch (unless you are >>> syncing with master, in other word, just don't) >>> >>> Thanks >>> >>> /David Simms >>> >> From tobias.hartmann at oracle.com Thu Sep 28 10:36:43 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Thu, 28 Sep 2017 12:36:43 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields In-Reply-To: References: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> Message-ID: Hi Roland, thanks for looking at this! On 26.09.2017 11:20, Roland Westrelin wrote: > sharedRuntime_x86_64.cpp: > 486 case T_VALUETYPE: > > Why is that needed? Shouldn't we only see T_VALUETYPEPTR here? Right, that's not necessary. Removed. > I'm also confused by that comment: > > 556 // TODO change this when we use T_VALUETYPEPTR > > in signature.cpp When generating the extended signature in AdapterHandlerLibrary::get_adapter0, we used T_VALUETYPE for value type arguments when ValueTypePassFieldsAsArgs was disabled. However, we should really use T_VALUETYPEPTR because we are passing a reference. I added this workaround and the TODO to later clean that up. I now fixed the code in get_adapter0, removed the workaround and added an assert to SigEntry::fill_sig_bt(). > callGenerator.cpp: > > 442 Node* ctl = map->control(); > 443 arg = ValueTypeNode::make(gvn, ctl, map->memory(), arg); > 444 map->set_control(ctl); > > Why the set_control()? That's necessary because ValueTypeNode::make may update ctl when adding a null check for a non-flattened value type field load. We need to use the new control when continuing with parsing. > That comment confuses me, too: > > 2117 // TODO enable when using T_VALUETYPEPTR > > in escape.cpp The field_type() of the FieldDescriptor for a non-flattened value type field is T_VALUETYPE (not T_VALUETYPEPTR) although we store a reference. When looking up the type of a ciField, we may now find T_VALUETYPE which needs to be treated like a reference. To fix this properly, we need to change ciField construction in ciInstanceKlass::compute_nonstatic_fields_impl() to use the type T_VALUETYPEPTR for non-flattened value type fields. I'll fix this with my next change. There are two other places where this matters and where I added a corresponding TODO: - ciValueKlass.cpp, line 90 - deoptimization.cpp, line 1039 > In graphKit.cpp: > > 3395 Node* GraphKit::new_instance(Node* klass_node, > 3396 Node* extra_slow_test, > 3397 Node* *return_size_val, > 3398 bool deoptimize_on_exception, > 3399 ValueTypeBaseNode* value_node) { > > when can we pass a ValueTypePtrNode here? Yes, when calling ValueTypeBaseNode::allocate() with a ValueTypePtrNode from CheckCastPPNode::Ideal(). It shouldn't be a problem because we just attach the ValueTypePtrNode to the AllocatedNode which goes away after macro node expansion. If necessary, we could extend ValueTypeNode::remove_redundant_allocations() to also work with ValueTypePtrNodes. > Using GraphKit with an igvn should only be safe if _delay_transform is > true, right? Should there be an assert for _delay_transform in the > GraphKit constructor? Correct, I've added an assert to the GraphKit constructor. > Also, usually after the graph is constructed with GraphKit, there is a > pass of PhaseRemoveUseless to disconnect useless nodes. Your new use of > GraphKit during igvn is not followed by PhaseRemoveUseless. I wonder if > it's a problem and if some untransformed node could stay connected to > graph. Why is that different to the version that does not use the GraphKit? All nodes that were added by the GraphKit should end up being processed by a subsequent PhaseIterGVN::optimize() because they are guaranteed to be added to the worklist - which is verified by PhaseIterGVN::verify_PhaseIterGVN(). IGVN should be "smart" enough to kill dead nodes, right? > In phaseX.cpp, PhaseIterGVN::transform(), why the change? I've mentioned this in the RFR: "If we use the GraphKit with IGVN and _delay_transform, we may transform the same node multiple times. Don't use register_new_node_with_optimizer because it tries to set the type multiple times." So with my change, PhaseIterGVN::transform() does exactly the same as before but does not fail if called multiple times on the same node if _delay_transform == true. > I find the overloaded ValueTypeNode::make() calls quite confusing after > all. I think renaming them to something that's more descriptive of what > they do would be better. Yes, I agree but would prefer to do that with a separate change. I'll take care of it with my next change. Updated and consolidated webrev: http://cr.openjdk.java.net/~thartmann/8185556/webrev.01/ Thanks, Tobias From rwestrel at redhat.com Thu Sep 28 14:47:51 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 28 Sep 2017 16:47:51 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields In-Reply-To: References: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> Message-ID: Hi Tobias, >> callGenerator.cpp: >> >> 442 Node* ctl = map->control(); >> 443 arg = ValueTypeNode::make(gvn, ctl, map->memory(), arg); >> 444 map->set_control(ctl); >> >> Why the set_control()? > > That's necessary because ValueTypeNode::make may update ctl when adding a null check for a non-flattened value type > field load. We need to use the new control when continuing with parsing. I still don't get that one. Is this the code we're talking about: Node* ValueTypeNode::make(PhaseGVN& gvn, Node*& ctl, Node* mem, Node* oop, bool null_check) { // Create and initialize a ValueTypeNode by loading all field // values from a heap-allocated version and also save the oop. const TypeValueType* type = gvn.type(oop)->is_valuetypeptr()->value_type(); ValueTypeNode* vt = new ValueTypeNode(type, oop); if (null_check && !vt->is_allocated(&gvn)) { // Add oop null check Node* chk = gvn.transform(new CmpPNode(oop, gvn.zerocon(T_VALUETYPE))); Node* tst = gvn.transform(new BoolNode(chk, BoolTest::ne)); IfNode* iff = gvn.transform(new IfNode(ctl, tst, PROB_MAX, COUNT_UNKNOWN))->as_If(); Node* not_null = gvn.transform(new IfTrueNode(iff)); Node* null = gvn.transform(new IfFalseNode(iff)); Node* region = new RegionNode(3); // Load value type from memory if oop is non-null oop = new CastPPNode(oop, TypePtr::NOTNULL); oop->set_req(0, not_null); oop = gvn.transform(oop); vt->load(gvn, not_null, mem, oop, oop, type->value_klass()); region->init_req(1, not_null); // Use default value type if oop is null Node* def = make_default(gvn, type->value_klass()); region->init_req(2, null); // Merge the two value types and update control vt = vt->clone_with_phis(&gvn, region)->as_ValueType(); vt->merge_with(&gvn, def->as_ValueType(), 2, true); ctl = gvn.transform(region); What is the use of the region then? How is it connected to the rest of the graph? Roland. From rwestrel at redhat.com Thu Sep 28 15:24:19 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 28 Sep 2017 17:24:19 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields In-Reply-To: References: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> Message-ID: > In more detail: We need a null check because non-flattened value type fields can be NULL. The null check has two > branches: in the not_null branch, we load the value type fields from the oop and in the null branch we use the default > value type. The region then merges both branches. Subsequent code now needs to use the updated ctl when we continue > parsing because the actual field values are dependent on the null check. But then you reset the control to the control that is before the null check? 442 Node* ctl = map->control(); 443 arg = ValueTypeNode::make(gvn, ctl, map->memory(), arg); 444 map->set_control(ctl); Roland. From tobias.hartmann at oracle.com Thu Sep 28 15:32:31 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Thu, 28 Sep 2017 17:32:31 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields In-Reply-To: References: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> Message-ID: <89aaf0a5-ec1c-115e-e8bf-7bc936a6109e@oracle.com> [Just noticed that I removed the alias from the recipients, sorry for that] On 28.09.2017 17:24, Roland Westrelin wrote: > But then you reset the control to the control that is before the null > check? > > 442 Node* ctl = map->control(); > 443 arg = ValueTypeNode::make(gvn, ctl, map->memory(), arg); > 444 map->set_control(ctl); > No, ctl is passed as *reference* (Node*& ctl) and updated in ValueTypeNode::make() and then the map is updated to use the new ctl. That's what I meant by "please note that it's passed as reference, so it can be updated". Best regards, Tobias From rwestrel at redhat.com Thu Sep 28 15:40:34 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 28 Sep 2017 17:40:34 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields In-Reply-To: <89aaf0a5-ec1c-115e-e8bf-7bc936a6109e@oracle.com> References: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> <89aaf0a5-ec1c-115e-e8bf-7bc936a6109e@oracle.com> Message-ID: > No, ctl is passed as *reference* (Node*& ctl) and updated in > ValueTypeNode::make() and then the map is updated to use the new ctl. Ah! Right! Roland. From rwestrel at redhat.com Thu Sep 28 16:00:12 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Thu, 28 Sep 2017 18:00:12 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields In-Reply-To: References: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> Message-ID: >> Also, usually after the graph is constructed with GraphKit, there is a >> pass of PhaseRemoveUseless to disconnect useless nodes. Your new use of >> GraphKit during igvn is not followed by PhaseRemoveUseless. I wonder if >> it's a problem and if some untransformed node could stay connected to >> graph. > > Why is that different to the version that does not use the GraphKit? > > All nodes that were added by the GraphKit should end up being processed by a subsequent PhaseIterGVN::optimize() because > they are guaranteed to be added to the worklist - which is verified by PhaseIterGVN::verify_PhaseIterGVN(). IGVN should > be "smart" enough to kill dead nodes, right? Sure if the node is transform()'ed but not always with something like: Node* n = new Node(1); n->set_req(0, some_other_node); if (some_condition) { // n unused } else { n = gvn.transform(n); } But that must not be a common code pattern. Roland. From tobias.hartmann at oracle.com Fri Sep 29 06:25:13 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Fri, 29 Sep 2017 08:25:13 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields In-Reply-To: References: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> Message-ID: Hi Roland, On 28.09.2017 18:00, Roland Westrelin wrote: >>> Also, usually after the graph is constructed with GraphKit, there is a >>> pass of PhaseRemoveUseless to disconnect useless nodes. Your new use of >>> GraphKit during igvn is not followed by PhaseRemoveUseless. I wonder if >>> it's a problem and if some untransformed node could stay connected to >>> graph. >> >> Why is that different to the version that does not use the GraphKit? >> >> All nodes that were added by the GraphKit should end up being processed by a subsequent PhaseIterGVN::optimize() because >> they are guaranteed to be added to the worklist - which is verified by PhaseIterGVN::verify_PhaseIterGVN(). IGVN should >> be "smart" enough to kill dead nodes, right? > > Sure if the node is transform()'ed but not always with something like: > > Node* n = new Node(1); > n->set_req(0, some_other_node); > > if (some_condition) { > // n unused > } else { > n = gvn.transform(n); > } Yes but Node::set_req would register the node as modified and we would at least fail with "modified node was not processed by IGVN.transform_old()" if it was not transformed. I think the main reason why we have PhaseRemoveUseless after GraphKit is because during parsing we cannot aggressively cut off dead parts of the graph but after parsing (with IGVN) we can (and will). > But that must not be a common code pattern. Right and the current use of GraphKit is very limited. If we end up using it more and above code shape shows up, it should be straight forward to fix. In my opinion, this is bad style anyway. Thanks, Tobias From rwestrel at redhat.com Fri Sep 29 06:58:54 2017 From: rwestrel at redhat.com (Roland Westrelin) Date: Fri, 29 Sep 2017 08:58:54 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields In-Reply-To: References: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> Message-ID: > Yes but Node::set_req would register the node as modified and we would at least fail with "modified node was not > processed by IGVN.transform_old()" if it was not transformed. Fair enough. Your change looks good to me. Roland. From tobias.hartmann at oracle.com Fri Sep 29 07:00:41 2017 From: tobias.hartmann at oracle.com (Tobias Hartmann) Date: Fri, 29 Sep 2017 09:00:41 +0200 Subject: RFR(L): 8185556: [MVT] C2 compiler support for non-flattened value type fields In-Reply-To: References: <36473c49-69c3-e804-3b08-5c9c9cf5ffa1@oracle.com> Message-ID: <2c2a427b-c4a2-1dce-149a-422b6f009e45@oracle.com> On 29.09.2017 08:58, Roland Westrelin wrote: >> Yes but Node::set_req would register the node as modified and we would at least fail with "modified node was not >> processed by IGVN.transform_old()" if it was not transformed. > > Fair enough. Your change looks good to me. Thanks for the thorough review! Best regards, Tobias From tobias.hartmann at oracle.com Fri Sep 29 13:15:50 2017 From: tobias.hartmann at oracle.com (tobias.hartmann at oracle.com) Date: Fri, 29 Sep 2017 13:15:50 +0000 Subject: hg: valhalla/valhalla: 3 new changesets Message-ID: <201709291315.v8TDFoTS009128@aojmv0008.oracle.com> Changeset: 3eaad6e1e845 Author: fparain Date: 2017-09-29 15:10 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/3eaad6e1e845 8188149: [MVT] Interpreter/runtime support for non-flattened value type fields Reviewed-by: dsimms, thartmann ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/oops/cpCache.cpp ! src/hotspot/share/oops/cpCache.hpp ! src/hotspot/share/oops/fieldInfo.hpp ! src/hotspot/share/oops/fieldStreams.hpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/valueKlass.cpp ! src/hotspot/share/runtime/fieldDescriptor.hpp ! test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueOops.java Changeset: b535d96f6fdb Author: thartmann Date: 2017-09-29 09:09 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/b535d96f6fdb 8185556: [MVT] C2 compiler support for non-flattened value type fields Reviewed-by: roland ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/ci/ciField.cpp ! src/hotspot/share/ci/ciField.hpp ! src/hotspot/share/ci/ciInstanceKlass.cpp ! src/hotspot/share/ci/ciInstanceKlass.hpp ! src/hotspot/share/ci/ciType.cpp ! src/hotspot/share/ci/ciType.hpp ! src/hotspot/share/ci/ciValueKlass.cpp ! src/hotspot/share/ci/ciValueKlass.hpp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/valueKlass.cpp ! src/hotspot/share/opto/callGenerator.cpp ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/castnode.cpp ! src/hotspot/share/opto/cfgnode.cpp ! src/hotspot/share/opto/doCall.cpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/graphKit.hpp ! src/hotspot/share/opto/idealKit.cpp ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/matcher.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/narrowptrnode.cpp ! src/hotspot/share/opto/parse1.cpp ! src/hotspot/share/opto/parse2.cpp ! src/hotspot/share/opto/parse3.cpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/phaseX.hpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/opto/type.hpp ! src/hotspot/share/opto/valuetypenode.cpp ! src/hotspot/share/opto/valuetypenode.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/fieldDescriptor.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/signature.cpp ! src/hotspot/share/utilities/globalDefinitions.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! test/hotspot/jtreg/compiler/valhalla/valuetypes/ValueTypeTestBench.java Changeset: 26c7b9602a1e Author: thartmann Date: 2017-09-29 15:12 +0200 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/26c7b9602a1e 8186716: [MVT] C2 crashes with "assert(!n->is_ValueType()) failed: value types should not be split through phis" Reviewed-by: roland ! src/hotspot/share/opto/castnode.cpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/compile.hpp ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/phaseX.cpp ! src/hotspot/share/opto/split_if.cpp ! src/hotspot/share/opto/valuetypenode.cpp ! src/hotspot/share/opto/valuetypenode.hpp