From vicente.romero at oracle.com Tue Oct 1 22:29:40 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Tue, 01 Oct 2019 22:29:40 +0000 Subject: hg: amber/amber: sealed: only infer the permits clause inside the same CU Message-ID: <201910012229.x91MTe9i027411@aojmv0008.oracle.com> Changeset: 4a89d252a4ef Author: vromero Date: 2019-10-01 18:28 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/4a89d252a4ef sealed: only infer the permits clause inside the same CU ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! test/langtools/tools/javac/sealed/CheckSubtypesOfSealedTest.java ! test/langtools/tools/javac/sealed/CheckingAttributeAtRuntimeTest.java ! test/langtools/tools/javac/sealed/SealedCompilationTests.java ! test/langtools/tools/javac/sealed/SealedDiffConfigurationsTest.java ! test/langtools/tools/javac/sealed/annotations/AnnotationProcessorOnSealedTypesTest.java - test/langtools/tools/javac/sealed/sealedExtensionNeg/SealedExtensionNegTest.java From maurizio.cimadamore at oracle.com Tue Oct 1 22:36:11 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 01 Oct 2019 22:36:11 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910012236.x91MaCI1001506@aojmv0008.oracle.com> Changeset: 144bf23fdc90 Author: mcimadamore Date: 2019-10-01 22:35 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/144bf23fdc90 Automatic merge with records-and-sealed - test/langtools/tools/javac/sealed/sealedExtensionNeg/SealedExtensionNegTest.java From harold.seigel at oracle.com Wed Oct 2 15:02:45 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Wed, 02 Oct 2019 15:02:45 +0000 Subject: hg: amber/amber: Summary: fix tests by adding sealed, non-sealed, or finaal Message-ID: <201910021502.x92F2koo005294@aojmv0008.oracle.com> Changeset: 9cc77bf8fd8c Author: hseigel Date: 2019-10-02 15:02 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/9cc77bf8fd8c Summary: fix tests by adding sealed, non-sealed, or finaal ! test/hotspot/jtreg/runtime/sealedTypes/abstractSealedTest.java ! test/hotspot/jtreg/runtime/sealedTypes/getPermittedSubtypesTest.java ! test/hotspot/jtreg/runtime/sealedTypes/overrideSealedTest.java ! test/hotspot/jtreg/runtime/sealedTypes/sealedTest.java From maurizio.cimadamore at oracle.com Wed Oct 2 15:06:09 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 02 Oct 2019 15:06:09 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910021506.x92F69r7008200@aojmv0008.oracle.com> Changeset: fb489259f857 Author: mcimadamore Date: 2019-10-02 15:05 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/fb489259f857 Automatic merge with records-and-sealed From harold.seigel at oracle.com Wed Oct 2 18:50:52 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Wed, 02 Oct 2019 18:50:52 +0000 Subject: hg: amber/amber: Summary: Add reflection support for RecordComponent types Message-ID: <201910021850.x92IoqRp004862@aojmv0008.oracle.com> Changeset: a1911597233f Author: hseigel Date: 2019-10-02 18:50 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/a1911597233f Summary: Add reflection support for RecordComponent types Reviewed-by: coleenp ! make/hotspot/symbols/symbols-unix ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/prims/jvm.cpp ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java ! src/java.base/share/native/libjava/Class.c From maurizio.cimadamore at oracle.com Wed Oct 2 18:56:04 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 02 Oct 2019 18:56:04 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910021856.x92Iu5Kx009995@aojmv0008.oracle.com> Changeset: 33cf13558c73 Author: mcimadamore Date: 2019-10-02 18:55 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/33cf13558c73 Automatic merge with records-and-sealed From harold.seigel at oracle.com Thu Oct 3 13:59:31 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Thu, 03 Oct 2019 13:59:31 +0000 Subject: hg: amber/amber: Summary: Remove function GetRecordComponentNames() Message-ID: <201910031359.x93DxVYZ023750@aojmv0008.oracle.com> Changeset: cd8f99d469d1 Author: hseigel Date: 2019-10-03 13:59 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/cd8f99d469d1 Summary: Remove function GetRecordComponentNames() Reviewed-by: vromero ! make/hotspot/symbols/symbols-unix ! src/hotspot/share/include/jvm.h ! src/hotspot/share/prims/jvm.cpp ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/native/libjava/Class.c From maurizio.cimadamore at oracle.com Thu Oct 3 14:14:04 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Thu, 03 Oct 2019 14:14:04 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910031414.x93EE5UW004617@aojmv0008.oracle.com> Changeset: 3ce38da35509 Author: mcimadamore Date: 2019-10-03 14:13 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/3ce38da35509 Automatic merge with records-and-sealed From vicente.romero at oracle.com Fri Oct 4 21:36:42 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 04 Oct 2019 21:36:42 +0000 Subject: hg: amber/amber: fixing bug on annotations on records, adding more tests Message-ID: <201910042136.x94Lag0k010818@aojmv0008.oracle.com> Changeset: b4e1bbf8b012 Author: vromero Date: 2019-10-04 17:34 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/b4e1bbf8b012 fixing bug on annotations on records, adding more tests ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! test/langtools/tools/javac/records/annotations/AnnoProcessorOnRecordsTest.java From maurizio.cimadamore at oracle.com Fri Oct 4 21:41:30 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 04 Oct 2019 21:41:30 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910042141.x94LfUII014976@aojmv0008.oracle.com> Changeset: bcf0c9df4334 Author: mcimadamore Date: 2019-10-04 21:41 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/bcf0c9df4334 Automatic merge with records-and-sealed ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java From vicente.romero at oracle.com Fri Oct 4 23:16:19 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 04 Oct 2019 23:16:19 +0000 Subject: hg: amber/amber: implementating several methods at j.l.r.RecordComponent, plus removing Class::getRecordAccessors in favor or Class::getRecordComponents Message-ID: <201910042316.x94NGJnQ009690@aojmv0008.oracle.com> Changeset: df2722d9f9d0 Author: vromero Date: 2019-10-04 19:14 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/df2722d9f9d0 implementating several methods at j.l.r.RecordComponent, plus removing Class::getRecordAccessors in favor or Class::getRecordComponents ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java ! test/langtools/tools/javac/records/RecordReflectionTest.java From maurizio.cimadamore at oracle.com Fri Oct 4 23:21:16 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 04 Oct 2019 23:21:16 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910042321.x94NLGa9013226@aojmv0008.oracle.com> Changeset: 9b887af4d85a Author: mcimadamore Date: 2019-10-04 23:21 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/9b887af4d85a Automatic merge with records-and-sealed From vicente.romero at oracle.com Fri Oct 4 23:36:16 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Fri, 4 Oct 2019 19:36:16 -0400 Subject: implementation for java.lang.reflect.RecordComponent Message-ID: Hi, I have pushed which is the first stab in the implementation of java.lang.reflect.RecordComponent, see full code at [1]. I have also removed method Class::getRecordAccessors, in favor or Class::getRecordComponents. The former method was being used by serialization to get the canonical constructor, but adapting the serialization code to the new API shouldn't be too painful. Kudos to Harold for the support he provided in the VM runtime. Thanks, Vicente [1] http://hg.openjdk.java.net/amber/amber/file/df2722d9f9d0/src/java.base/share/classes/java/lang/reflect/RecordComponent.java From harold.seigel at oracle.com Mon Oct 7 15:15:08 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Mon, 07 Oct 2019 15:15:08 +0000 Subject: hg: amber/amber: Summary: Update test to use new RecordComponent reflection API's. Message-ID: <201910071515.x97FF8Gn008873@aojmv0008.oracle.com> Changeset: 8f7d9b788cdc Author: hseigel Date: 2019-10-07 15:14 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/8f7d9b788cdc Summary: Update test to use new RecordComponent reflection API's. ! test/hotspot/jtreg/runtime/records/recordAccessorsTest.java From maurizio.cimadamore at oracle.com Mon Oct 7 15:21:14 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Mon, 07 Oct 2019 15:21:14 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910071521.x97FLEQo013417@aojmv0008.oracle.com> Changeset: 8c425809b165 Author: mcimadamore Date: 2019-10-07 15:21 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/8c425809b165 Automatic merge with records-and-sealed From chris.hegarty at oracle.com Mon Oct 7 16:25:25 2019 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Mon, 7 Oct 2019 17:25:25 +0100 Subject: implementation for java.lang.reflect.RecordComponent In-Reply-To: References: Message-ID: Vicente, > On 5 Oct 2019, at 00:36, Vicente Romero wrote: > > Hi, > > I have pushed which is the first stab in the implementation of java.lang.reflect.RecordComponent, see full code at [1]. I have also removed method Class::getRecordAccessors, in favor or Class::getRecordComponents. Class:: getRecordComponents is not explicit about the ordering of the components. I assume that the returned order is that of the declaration order. Should this be explicit? -Chris. From vicente.romero at oracle.com Mon Oct 7 16:55:52 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Mon, 07 Oct 2019 16:55:52 +0000 Subject: hg: amber/amber: make javax.lang.model.element.RecordComponentElement a top level element Message-ID: <201910071655.x97Gtrh3018562@aojmv0008.oracle.com> Changeset: cf64ea74503e Author: vromero Date: 2019-10-07 12:55 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/cf64ea74503e make javax.lang.model.element.RecordComponentElement a top level element ! src/java.compiler/share/classes/javax/annotation/processing/RoundEnvironment.java ! src/java.compiler/share/classes/javax/lang/model/element/Element.java ! src/java.compiler/share/classes/javax/lang/model/element/ElementVisitor.java ! src/java.compiler/share/classes/javax/lang/model/element/RecordComponentElement.java + src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor8.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementFilter.java + src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor7.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor8.java - src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitorRecord.java + src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner6.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner7.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner8.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java + src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor7.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor8.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PubapiVisitor.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassUseMapper.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ElementsTable.java ! test/langtools/jdk/javadoc/tool/modules/ModuleTestBase.java ! test/langtools/jdk/javadoc/tool/reporter_generates_warnings/pkg/MyDoclet.java ! test/langtools/tools/javac/6402516/CheckLocalElements.java ! test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java ! test/langtools/tools/javac/modules/AnnotationProcessing.java ! test/langtools/tools/javac/processing/model/TestSymtabItems.java ! test/langtools/tools/javac/records/OriginTest.java ! test/langtools/tools/javac/records/annotations/JavaxLangModelForRecords.java From maurizio.cimadamore at oracle.com Mon Oct 7 17:01:17 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Mon, 07 Oct 2019 17:01:17 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910071701.x97H1Ik8021771@aojmv0008.oracle.com> Changeset: 1c25d41a2e7f Author: mcimadamore Date: 2019-10-07 17:01 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/1c25d41a2e7f Automatic merge with records-and-sealed - src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitorRecord.java From chris.hegarty at oracle.com Tue Oct 8 09:55:17 2019 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Tue, 8 Oct 2019 10:55:17 +0100 Subject: implementation for java.lang.reflect.RecordComponent In-Reply-To: References: Message-ID: <393893D1-17C7-4512-973A-BD3CB988F6C9@oracle.com> Vicente, > On 7 Oct 2019, at 17:25, Chris Hegarty wrote: > > Vicente, > >> On 5 Oct 2019, at 00:36, Vicente Romero wrote: >> >> Hi, >> >> I have pushed which is the first stab in the implementation of java.lang.reflect.RecordComponent, see full code at [1]. I have also removed method Class::getRecordAccessors, in favor or Class::getRecordComponents. > > Class:: getRecordComponents is not explicit about the ordering of the components. I assume that the returned order is that of the declaration order. Should this be explicit? Two minor suggestions for Class::getRecordComponents: 1) Explicitly specify the return order to be the same order that the components are declared in the record header. ( similar wording to that of the JSL draft spec ) 2) Clarify the behavior for non-record classes and records with no components. +++ b/src/java.base/share/classes/java/lang/Class.java @@ -2252,10 +2252,13 @@ /** * Returns an array containing {@code RecordComponent} objects reflecting all the - * declared record components of the record represented by this {@code Class} object - * - * @return the array of {@code RecordComponent} objects representing all the - * record components of this record + * declared record components of the record represented by this {@code Class} object. + * The components are returned in the same order that they are declared in the + * record header. + * + * @return The array of {@code RecordComponent} objects representing all the + * record components of this record. The array is empty if this class + * is not a record, or if this class is a record with no components. * @throws SecurityException * If a security manager, s, is present and any of the * following conditions is met: RecordRefletorTest already covers these cases. I can push this change if we agree. -Chris. From vicente.romero at oracle.com Tue Oct 8 12:50:52 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Tue, 8 Oct 2019 08:50:52 -0400 Subject: implementation for java.lang.reflect.RecordComponent In-Reply-To: <393893D1-17C7-4512-973A-BD3CB988F6C9@oracle.com> References: <393893D1-17C7-4512-973A-BD3CB988F6C9@oracle.com> Message-ID: <97db4cb0-859a-5855-1626-d7b7b460ad84@oracle.com> On 10/8/19 5:55 AM, Chris Hegarty wrote: > Vicente, > >> On 7 Oct 2019, at 17:25, Chris Hegarty wrote: >> >> Vicente, >> >>> On 5 Oct 2019, at 00:36, Vicente Romero wrote: >>> >>> Hi, >>> >>> I have pushed which is the first stab in the implementation of java.lang.reflect.RecordComponent, see full code at [1]. I have also removed method Class::getRecordAccessors, in favor or Class::getRecordComponents. >> Class:: getRecordComponents is not explicit about the ordering of the components. I assume that the returned order is that of the declaration order. Should this be explicit? > > Two minor suggestions for Class::getRecordComponents: > > 1) Explicitly specify the return order to be the same order that the components are declared in the record header. ( similar wording to that of the JSL draft spec ) > > 2) Clarify the behavior for non-record classes and records with no components. > > +++ b/src/java.base/share/classes/java/lang/Class.java > @@ -2252,10 +2252,13 @@ > > /** > * Returns an array containing {@code RecordComponent} objects reflecting all the > - * declared record components of the record represented by this {@code Class} object > - * > - * @return the array of {@code RecordComponent} objects representing all the > - * record components of this record > + * declared record components of the record represented by this {@code Class} object. > + * The components are returned in the same order that they are declared in the > + * record header. > + * > + * @return The array of {@code RecordComponent} objects representing all the > + * record components of this record. The array is empty if this class > + * is not a record, or if this class is a record with no components. > * @throws SecurityException > * If a security manager, s, is present and any of the > * following conditions is met: > > RecordRefletorTest already covers these cases. I can push this change if we agree. yes I agree with the change, looks good to me, > -Chris. Thanks, Vicente From harold.seigel at oracle.com Tue Oct 8 15:25:29 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Tue, 08 Oct 2019 15:25:29 +0000 Subject: hg: amber/amber: Summary: enhance test cases Message-ID: <201910081525.x98FPULh006635@aojmv0008.oracle.com> Changeset: eba93be51780 Author: hseigel Date: 2019-10-08 15:25 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/eba93be51780 Summary: enhance test cases - test/hotspot/jtreg/runtime/records/recordAccessorsTest.java + test/hotspot/jtreg/runtime/records/recordReflectionTest.java From maurizio.cimadamore at oracle.com Tue Oct 8 15:31:10 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 08 Oct 2019 15:31:10 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910081531.x98FVB9Z010349@aojmv0008.oracle.com> Changeset: d37da910a3b6 Author: mcimadamore Date: 2019-10-08 15:30 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/d37da910a3b6 Automatic merge with records-and-sealed - test/hotspot/jtreg/runtime/records/recordAccessorsTest.java From vicente.romero at oracle.com Tue Oct 8 21:00:51 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Tue, 08 Oct 2019 21:00:51 +0000 Subject: hg: amber/amber: fixing bug on type annotations on records Message-ID: <201910082100.x98L0pwi010767@aojmv0008.oracle.com> Changeset: af83845c7b3e Author: vromero Date: 2019-10-08 17:00 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/af83845c7b3e fixing bug on type annotations on records ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! test/langtools/tools/javac/records/annotations/CheckingTypeAnnotationsOnRecords.java From maurizio.cimadamore at oracle.com Tue Oct 8 21:06:07 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 08 Oct 2019 21:06:07 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910082106.x98L68rn014399@aojmv0008.oracle.com> Changeset: fd9176455f5e Author: mcimadamore Date: 2019-10-08 21:05 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/fd9176455f5e Automatic merge with records-and-sealed ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java From forax at univ-mlv.fr Tue Oct 8 21:54:00 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Tue, 8 Oct 2019 23:54:00 +0200 (CEST) Subject: Type annotation on record component doesn't seem to be supported by javac ? Message-ID: <2099618191.1114660.1570571640361.JavaMail.zimbra@u-pem.fr> Hi all, with a type annnotation on a record component defined like this @Target(ElementType.TYPE_PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface TypeAnn { } I get: ./src/main/java/fr.umlv.record/jdk14/AllStructures.java:11: error: annotation type not applicable to this kind of declaration record RecordSubType(@Ann int component1, @TypeAnn String component2) { Note: i'm using jdk 14-amber+0-df2722d9f9d0, i will test with the current source asap. regards, R?mi From forax at univ-mlv.fr Tue Oct 8 22:26:58 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Wed, 9 Oct 2019 00:26:58 +0200 (CEST) Subject: Type annotation on record component doesn't seem to be supported by javac ? In-Reply-To: <2099618191.1114660.1570571640361.JavaMail.zimbra@u-pem.fr> References: <2099618191.1114660.1570571640361.JavaMail.zimbra@u-pem.fr> Message-ID: <1877577547.1117211.1570573618002.JavaMail.zimbra@u-pem.fr> Answering to myself, I use TYPE_PARAMETER instead of TYPE_USE when declaring the annotation (facepalm) but anyway, with TYPE_USE @Target(ElementType.TYPE_USE) @Retention(RetentionPolicy.RUNTIME) public @interface TypeAnn { } I get: /src/main/java/fr.umlv.record/jdk14/AllStructures.java:9: error: scoping construct cannot be annotated with type-use annotation: @jdk14.TypeAnn record RecordSubType(@Ann int component1, @TypeAnn String component2) { I have no idea what a scoping construct is ? R?mi ----- Mail original ----- > De: "Remi Forax" > ?: "amber-dev" > Envoy?: Mardi 8 Octobre 2019 23:54:00 > Objet: Type annotation on record component doesn't seem to be supported by javac ? > Hi all, > with a type annnotation on a record component defined like this > > @Target(ElementType.TYPE_PARAMETER) > @Retention(RetentionPolicy.RUNTIME) > public @interface TypeAnn { } > > I get: > ./src/main/java/fr.umlv.record/jdk14/AllStructures.java:11: error: annotation > type not applicable to this kind of declaration > record RecordSubType(@Ann int component1, @TypeAnn String component2) { > > Note: i'm using jdk 14-amber+0-df2722d9f9d0, i will test with the current source > asap. > > regards, > R?mi From vicente.romero at oracle.com Wed Oct 9 04:02:46 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Wed, 09 Oct 2019 04:02:46 +0000 Subject: hg: amber/amber: adding test to access type annotations in record components through reflection, minor bug fix Message-ID: <201910090402.x9942kJs000602@aojmv0008.oracle.com> Changeset: 2e54665b87b7 Author: vromero Date: 2019-10-08 23:59 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/2e54665b87b7 adding test to access type annotations in record components through reflection, minor bug fix ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java ! test/langtools/tools/javac/records/RecordReflectionTest.java From maurizio.cimadamore at oracle.com Wed Oct 9 04:06:12 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 09 Oct 2019 04:06:12 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910090406.x9946CJU003594@aojmv0008.oracle.com> Changeset: 2a8a54468aae Author: mcimadamore Date: 2019-10-09 04:05 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/2a8a54468aae Automatic merge with records-and-sealed From vicente.romero at oracle.com Wed Oct 9 04:07:47 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Wed, 9 Oct 2019 00:07:47 -0400 Subject: Type annotation on record component doesn't seem to be supported by javac ? In-Reply-To: <1877577547.1117211.1570573618002.JavaMail.zimbra@u-pem.fr> References: <2099618191.1114660.1570571640361.JavaMail.zimbra@u-pem.fr> <1877577547.1117211.1570573618002.JavaMail.zimbra@u-pem.fr> Message-ID: Hi Remi, Getting that error messages looks weird, what's the full test case? Thanks, Vicente On 10/8/19 6:26 PM, Remi Forax wrote: > Answering to myself, > I use TYPE_PARAMETER instead of TYPE_USE when declaring the annotation (facepalm) > > but anyway, with TYPE_USE > @Target(ElementType.TYPE_USE) > @Retention(RetentionPolicy.RUNTIME) > public @interface TypeAnn { } > > I get: > /src/main/java/fr.umlv.record/jdk14/AllStructures.java:9: error: scoping construct cannot be annotated with type-use annotation: @jdk14.TypeAnn > record RecordSubType(@Ann int component1, @TypeAnn String component2) { > > I have no idea what a scoping construct is ? > > R?mi > > ----- Mail original ----- >> De: "Remi Forax" >> ?: "amber-dev" >> Envoy?: Mardi 8 Octobre 2019 23:54:00 >> Objet: Type annotation on record component doesn't seem to be supported by javac ? >> Hi all, >> with a type annnotation on a record component defined like this >> >> @Target(ElementType.TYPE_PARAMETER) >> @Retention(RetentionPolicy.RUNTIME) >> public @interface TypeAnn { } >> >> I get: >> ./src/main/java/fr.umlv.record/jdk14/AllStructures.java:11: error: annotation >> type not applicable to this kind of declaration >> record RecordSubType(@Ann int component1, @TypeAnn String component2) { >> >> Note: i'm using jdk 14-amber+0-df2722d9f9d0, i will test with the current source >> asap. >> >> regards, >> R?mi From forax at univ-mlv.fr Wed Oct 9 08:16:42 2019 From: forax at univ-mlv.fr (forax at univ-mlv.fr) Date: Wed, 9 Oct 2019 10:16:42 +0200 (CEST) Subject: Type annotation on record component doesn't seem to be supported by javac ? In-Reply-To: References: <2099618191.1114660.1570571640361.JavaMail.zimbra@u-pem.fr> <1877577547.1117211.1570573618002.JavaMail.zimbra@u-pem.fr> Message-ID: <346149445.1234167.1570609002220.JavaMail.zimbra@u-pem.fr> It's a test with sealed + record. package jdk14; public sealed interface AllStructures { final class ClassSubType implements AllStructures { } record RecordSubType(@Ann int component1, @TypeAnn String component2) implements AllStructures { } } with: package jdk14; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.RECORD_COMPONENT) @Retention(RetentionPolicy.CLASS) public @interface Ann { } and: package jdk14; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.TYPE_USE) @Retention(RetentionPolicy.RUNTIME) public @interface TypeAnn { } and i'm using the branch "records-and-sealed", so it can be a bad merge ? cheers, R?mi ----- Mail original ----- > De: "Vicente Romero" > ?: "Remi Forax" , "amber-dev" > Envoy?: Mercredi 9 Octobre 2019 06:07:47 > Objet: Re: Type annotation on record component doesn't seem to be supported by javac ? > Hi Remi, > > Getting that error messages looks weird, what's the full test case? > > Thanks, > Vicente > > On 10/8/19 6:26 PM, Remi Forax wrote: >> Answering to myself, >> I use TYPE_PARAMETER instead of TYPE_USE when declaring the annotation >> (facepalm) >> >> but anyway, with TYPE_USE >> @Target(ElementType.TYPE_USE) >> @Retention(RetentionPolicy.RUNTIME) >> public @interface TypeAnn { } >> >> I get: >> /src/main/java/fr.umlv.record/jdk14/AllStructures.java:9: error: scoping >> construct cannot be annotated with type-use annotation: @jdk14.TypeAnn >> record RecordSubType(@Ann int component1, @TypeAnn String component2) { >> >> I have no idea what a scoping construct is ? >> >> R?mi >> >> ----- Mail original ----- >>> De: "Remi Forax" >>> ?: "amber-dev" >>> Envoy?: Mardi 8 Octobre 2019 23:54:00 >>> Objet: Type annotation on record component doesn't seem to be supported by javac >>> ? >>> Hi all, >>> with a type annnotation on a record component defined like this >>> >>> @Target(ElementType.TYPE_PARAMETER) >>> @Retention(RetentionPolicy.RUNTIME) >>> public @interface TypeAnn { } >>> >>> I get: >>> ./src/main/java/fr.umlv.record/jdk14/AllStructures.java:11: error: annotation >>> type not applicable to this kind of declaration >>> record RecordSubType(@Ann int component1, @TypeAnn String component2) { >>> >>> Note: i'm using jdk 14-amber+0-df2722d9f9d0, i will test with the current source >>> asap. >>> >>> regards, > >> R?mi From vicente.romero at oracle.com Wed Oct 9 15:18:57 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Wed, 09 Oct 2019 15:18:57 +0000 Subject: hg: amber/amber: use same vartype for record constructor arguments Message-ID: <201910091518.x99FIwCR024735@aojmv0008.oracle.com> Changeset: 962901003905 Author: vromero Date: 2019-10-09 11:18 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/962901003905 use same vartype for record constructor arguments ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! test/langtools/tools/javac/records/annotations/CheckingTypeAnnotationsOnRecords.java From maurizio.cimadamore at oracle.com Wed Oct 9 15:21:15 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 09 Oct 2019 15:21:15 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910091521.x99FLG5Q027504@aojmv0008.oracle.com> Changeset: d5e639d4a145 Author: mcimadamore Date: 2019-10-09 15:20 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/d5e639d4a145 Automatic merge with records-and-sealed From vicente.romero at oracle.com Wed Oct 9 15:30:12 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Wed, 9 Oct 2019 11:30:12 -0400 Subject: Type annotation on record component doesn't seem to be supported by javac ? In-Reply-To: <346149445.1234167.1570609002220.JavaMail.zimbra@u-pem.fr> References: <2099618191.1114660.1570571640361.JavaMail.zimbra@u-pem.fr> <1877577547.1117211.1570573618002.JavaMail.zimbra@u-pem.fr> <346149445.1234167.1570609002220.JavaMail.zimbra@u-pem.fr> Message-ID: <1125a181-3769-df44-9442-d223e947f746@oracle.com> Hi Remi, This error message can be reproduced without records: import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.TYPE_USE) @Retention(RetentionPolicy.RUNTIME) @interface TypeAnn {} class TypeAnnosErrorMsg { ??? public TypeAnnosErrorMsg (@TypeAnn java.lang.String annotated) {} } This seems to be supported by the spec section: 9.7.4 Where Annotations May Appear where it says: A type annotation is admissible if both of the following are true: ? The simple name to which the annotation is closest is classified as a TypeName, not a PackageName. ? If the simple name to which the annotation is closest is followed by " . " and another TypeName - that is, the annotation appears as @Foo T.U - then U denotes an inner class of T . Of course the user of the record you wrote would be bugged as he wrote the type of the record component as: `String` not `java.lang.String`. The record constructor is automatically generated by the compiler, and for the generation of its arguments the full qualified type was being used. I have fixed this in order to use the same type as written by the user. If you update your repo your test case should compile, Thanks, Vicente On 10/9/19 4:16 AM, forax at univ-mlv.fr wrote: > It's a test with sealed + record. > > package jdk14; > > public sealed interface AllStructures { > final class ClassSubType implements AllStructures { } > record RecordSubType(@Ann int component1, @TypeAnn String component2) implements AllStructures { } > } > > with: > package jdk14; > > import java.lang.annotation.ElementType; > import java.lang.annotation.Retention; > import java.lang.annotation.RetentionPolicy; > import java.lang.annotation.Target; > > @Target(ElementType.RECORD_COMPONENT) > @Retention(RetentionPolicy.CLASS) > public @interface Ann { > > } > > and: > package jdk14; > > import java.lang.annotation.ElementType; > import java.lang.annotation.Retention; > import java.lang.annotation.RetentionPolicy; > import java.lang.annotation.Target; > > @Target(ElementType.TYPE_USE) > @Retention(RetentionPolicy.RUNTIME) > public @interface TypeAnn { > > } > > and i'm using the branch "records-and-sealed", so it can be a bad merge ? > > cheers, > R?mi > > > ----- Mail original ----- >> De: "Vicente Romero" >> ?: "Remi Forax" , "amber-dev" >> Envoy?: Mercredi 9 Octobre 2019 06:07:47 >> Objet: Re: Type annotation on record component doesn't seem to be supported by javac ? >> Hi Remi, >> >> Getting that error messages looks weird, what's the full test case? >> >> Thanks, >> Vicente >> >> On 10/8/19 6:26 PM, Remi Forax wrote: >>> Answering to myself, >>> I use TYPE_PARAMETER instead of TYPE_USE when declaring the annotation >>> (facepalm) >>> >>> but anyway, with TYPE_USE >>> @Target(ElementType.TYPE_USE) >>> @Retention(RetentionPolicy.RUNTIME) >>> public @interface TypeAnn { } >>> >>> I get: >>> /src/main/java/fr.umlv.record/jdk14/AllStructures.java:9: error: scoping >>> construct cannot be annotated with type-use annotation: @jdk14.TypeAnn >>> record RecordSubType(@Ann int component1, @TypeAnn String component2) { >>> >>> I have no idea what a scoping construct is ? >>> >>> R?mi >>> >>> ----- Mail original ----- >>>> De: "Remi Forax" >>>> ?: "amber-dev" >>>> Envoy?: Mardi 8 Octobre 2019 23:54:00 >>>> Objet: Type annotation on record component doesn't seem to be supported by javac >>>> ? >>>> Hi all, >>>> with a type annnotation on a record component defined like this >>>> >>>> @Target(ElementType.TYPE_PARAMETER) >>>> @Retention(RetentionPolicy.RUNTIME) >>>> public @interface TypeAnn { } >>>> >>>> I get: >>>> ./src/main/java/fr.umlv.record/jdk14/AllStructures.java:11: error: annotation >>>> type not applicable to this kind of declaration >>>> record RecordSubType(@Ann int component1, @TypeAnn String component2) { >>>> >>>> Note: i'm using jdk 14-amber+0-df2722d9f9d0, i will test with the current source >>>> asap. >>>> >>>> regards, >>>> R?mi From alex.buckley at oracle.com Wed Oct 9 18:12:38 2019 From: alex.buckley at oracle.com (Alex Buckley) Date: Wed, 9 Oct 2019 11:12:38 -0700 Subject: Type annotation on record component doesn't seem to be supported by javac ? In-Reply-To: <1125a181-3769-df44-9442-d223e947f746@oracle.com> References: <2099618191.1114660.1570571640361.JavaMail.zimbra@u-pem.fr> <1877577547.1117211.1570573618002.JavaMail.zimbra@u-pem.fr> <346149445.1234167.1570609002220.JavaMail.zimbra@u-pem.fr> <1125a181-3769-df44-9442-d223e947f746@oracle.com> Message-ID: <255b021c-c5da-6f37-cf3a-6a17b47340b1@oracle.com> On 10/9/2019 8:30 AM, Vicente Romero wrote: > Of course the user of the record you wrote would be bugged as he wrote > the type of the record component was: `String` not `java.lang.String`. > The record constructor is automatically generated by the compiler, and > for the generation of its arguments the full qualified type was being > used. I have fixed this in order to use the same type as written by the > user. If you update your repo your test case should compile, By carrying over the terms written in the original source code, you have smartly and speedily paid off the fee charged by type annotations, where the (in)ability to annotate terms which syntactically look like type _uses_ but are actually mere "scoping constructs" (package _names_, type _names_) was a deliberate JSR 308 policy. Alex From forax at univ-mlv.fr Wed Oct 9 18:21:12 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Wed, 9 Oct 2019 20:21:12 +0200 (CEST) Subject: Type annotation on record component doesn't seem to be supported by javac ? In-Reply-To: <255b021c-c5da-6f37-cf3a-6a17b47340b1@oracle.com> References: <2099618191.1114660.1570571640361.JavaMail.zimbra@u-pem.fr> <1877577547.1117211.1570573618002.JavaMail.zimbra@u-pem.fr> <346149445.1234167.1570609002220.JavaMail.zimbra@u-pem.fr> <1125a181-3769-df44-9442-d223e947f746@oracle.com> <255b021c-c5da-6f37-cf3a-6a17b47340b1@oracle.com> Message-ID: <910422442.1579925.1570645272358.JavaMail.zimbra@u-pem.fr> At the same time, it means that String is not equivalent to java.lang.String, which is, let say not fun to be polite, when you generate Java code. R?mi ----- Mail original ----- > De: "Alex Buckley" > ?: "amber-dev" > Envoy?: Mercredi 9 Octobre 2019 20:12:38 > Objet: Re: Type annotation on record component doesn't seem to be supported by javac ? > On 10/9/2019 8:30 AM, Vicente Romero wrote: >> Of course the user of the record you wrote would be bugged as he wrote >> the type of the record component was: `String` not `java.lang.String`. >> The record constructor is automatically generated by the compiler, and >> for the generation of its arguments the full qualified type was being >> used. I have fixed this in order to use the same type as written by the >> user. If you update your repo your test case should compile, > > By carrying over the terms written in the original source code, you have > smartly and speedily paid off the fee charged by type annotations, where > the (in)ability to annotate terms which syntactically look like type > _uses_ but are actually mere "scoping constructs" (package _names_, type > _names_) was a deliberate JSR 308 policy. > > Alex From vicente.romero at oracle.com Wed Oct 9 20:51:39 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Wed, 09 Oct 2019 20:51:39 +0000 Subject: hg: amber/amber: several bug fixes, adding accessors to record components, etc Message-ID: <201910092051.x99KpeCi019569@aojmv0008.oracle.com> Changeset: 7595231489b3 Author: vromero Date: 2019-10-09 16:51 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/7595231489b3 several bug fixes, adding accessors to record components, etc ! src/java.compiler/share/classes/javax/lang/model/util/Elements.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java + test/langtools/tools/javac/records/MapAccessorToComponent.java From maurizio.cimadamore at oracle.com Wed Oct 9 20:56:11 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 09 Oct 2019 20:56:11 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910092056.x99KuBVn024336@aojmv0008.oracle.com> Changeset: 5a45d798b37e Author: mcimadamore Date: 2019-10-09 20:55 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/5a45d798b37e Automatic merge with records-and-sealed ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java From Morgan.Davies at ibm.com Thu Oct 10 12:43:36 2019 From: Morgan.Davies at ibm.com (Morgan Davies) Date: Thu, 10 Oct 2019 13:43:36 +0100 Subject: Introduction to Amber - Baby Steps Message-ID: I recently subscribed to this mailing list after researching project amber and its aim and was wondering how I can contribute to this project considering I'm new to the codebase. If someone could point me towards a soft bug or enhancement to get me started, I would be very grateful. Kind Regards, Morgan Davies ------------ Slack: @morgan.davies Email: morgan.davies at ibm.com Working hours: Monday - Friday (9am-5pm) Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU From forax at univ-mlv.fr Thu Oct 10 13:33:17 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Thu, 10 Oct 2019 15:33:17 +0200 (CEST) Subject: Introduction to Amber - Baby Steps In-Reply-To: References: Message-ID: <1595211689.1926885.1570714397690.JavaMail.zimbra@u-pem.fr> Hi Morgan, welcome on board :) ----- Mail original ----- > De: "Morgan Davies" > ?: "amber-dev" > Envoy?: Jeudi 10 Octobre 2019 14:43:36 > Objet: Introduction to Amber - Baby Steps > I recently subscribed to this mailing list after researching project amber > and its aim and was wondering how I can contribute to this project > considering I'm new to the codebase. > > If someone could point me towards a soft bug or enhancement to get me > started, I would be very grateful. so as you know, Amber is mostly about patching/enhancing the compiler, javac, the current JEPs we are working are JEP 305 (pattern matching instanceof), JEP 359 (record) and JEP 360 (sealed type). as usual with a compiler, the main issue is not to fix bugs but to find them, so if you can take a spec, take a real source code like Maven, gradle, whatever applications you want, and covert the source code to use the new feature, i'm sure you will find bug to fix. By example, the JEP 305 will land soon in the JDK and Java has a lot of way to express the control flow, switch/expression switch/while/do...while/for/for(:)/break/continue/return/try...catch so i'm pretty sure we don't have JTreg tests that cover all of the combinations. > > Kind Regards, > > Morgan Davies best regards, R?mi > ------------ > Slack: @morgan.davies > Email: morgan.davies at ibm.com > Working hours: Monday - Friday (9am-5pm) > Unless stated otherwise above: > IBM United Kingdom Limited - Registered in England and Wales with number > 741598. > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU From vicente.romero at oracle.com Thu Oct 10 13:36:42 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Thu, 10 Oct 2019 09:36:42 -0400 Subject: Type annotation on record component doesn't seem to be supported by javac ? In-Reply-To: <255b021c-c5da-6f37-cf3a-6a17b47340b1@oracle.com> References: <2099618191.1114660.1570571640361.JavaMail.zimbra@u-pem.fr> <1877577547.1117211.1570573618002.JavaMail.zimbra@u-pem.fr> <346149445.1234167.1570609002220.JavaMail.zimbra@u-pem.fr> <1125a181-3769-df44-9442-d223e947f746@oracle.com> <255b021c-c5da-6f37-cf3a-6a17b47340b1@oracle.com> Message-ID: On 10/9/19 2:12 PM, Alex Buckley wrote: > On 10/9/2019 8:30 AM, Vicente Romero wrote: >> Of course the user of the record you wrote would be bugged as he >> wrote the type of the record component was: `String` not >> `java.lang.String`. The record constructor is automatically generated >> by the compiler, and for the generation of its arguments the full >> qualified type was being used. I have fixed this in order to use the >> same type as written by the user. If you update your repo your test >> case should compile, > > By carrying over the terms written in the original source code, you > have smartly and speedily paid off the fee charged by type > annotations, where the (in)ability to annotate terms which > syntactically look like type _uses_ but are actually mere "scoping > constructs" (package _names_, type _names_) was a deliberate JSR 308 > policy. yep luckily :) > > Alex Vicente From vicente.romero at oracle.com Thu Oct 10 16:11:28 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 10 Oct 2019 16:11:28 +0000 Subject: hg: amber/amber: 2 new changesets Message-ID: <201910101611.x9AGBTIh012677@aojmv0008.oracle.com> Changeset: b1ab905e1621 Author: vromero Date: 2019-10-09 19:44 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/b1ab905e1621 modifications to test: CheckingAttributeAtRuntimeTest ! test/langtools/tools/javac/sealed/CheckingAttributeAtRuntimeTest.java Changeset: d16c08f341e8 Author: vromero Date: 2019-10-10 12:10 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/d16c08f341e8 move the code that checks for returns in the canonical constructor to Attr ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrContext.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java From maurizio.cimadamore at oracle.com Thu Oct 10 16:16:19 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Thu, 10 Oct 2019 16:16:19 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910101616.x9AGGJlf015676@aojmv0008.oracle.com> Changeset: 027c1e2a196b Author: mcimadamore Date: 2019-10-10 16:16 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/027c1e2a196b Automatic merge with records-and-sealed ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java From brian.goetz at oracle.com Thu Oct 10 17:32:29 2019 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Thu, 10 Oct 2019 17:32:29 +0000 Subject: hg: amber/amber: 2 new changesets Message-ID: <201910101732.x9AHWUJB001686@aojmv0008.oracle.com> Changeset: 23ec0e46de0e Author: briangoetz Date: 2019-10-09 15:51 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/23ec0e46de0e Refactor support for compilation-driven test ct cases + test/langtools/lib/combo/tools/javac/combo/CompilationTestCase.java ! test/langtools/lib/combo/tools/javac/combo/Diagnostics.java ! test/langtools/lib/combo/tools/javac/combo/JavacTemplateTestBase.java ! test/langtools/lib/combo/tools/javac/combo/Template.java ! test/langtools/lib/combo/tools/javac/combo/TemplateTest.java ! test/langtools/tools/javac/expswitch/ExpSwitchNestingTest.java ! test/langtools/tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java ! test/langtools/tools/javac/records/RecordCompilationTests.java ! test/langtools/tools/javac/sealed/SealedCompilationTests.java Changeset: 4e5c9c683088 Author: briangoetz Date: 2019-10-10 13:31 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/4e5c9c683088 Merge From maurizio.cimadamore at oracle.com Thu Oct 10 17:36:15 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Thu, 10 Oct 2019 17:36:15 +0000 Subject: hg: amber/amber: Automatic merge with records-and-sealed Message-ID: <201910101736.x9AHaFAP004809@aojmv0008.oracle.com> Changeset: c3e3f3b41490 Author: mcimadamore Date: 2019-10-10 17:36 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/c3e3f3b41490 Automatic merge with records-and-sealed ! test/langtools/lib/combo/tools/javac/combo/Diagnostics.java ! test/langtools/lib/combo/tools/javac/combo/JavacTemplateTestBase.java ! test/langtools/lib/combo/tools/javac/combo/Template.java ! test/langtools/lib/combo/tools/javac/combo/TemplateTest.java ! test/langtools/tools/javac/expswitch/ExpSwitchNestingTest.java ! test/langtools/tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java ! test/langtools/tools/javac/sealed/SealedCompilationTests.java From vicente.romero at oracle.com Thu Oct 10 17:55:27 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 10 Oct 2019 17:55:27 +0000 Subject: hg: amber/amber: dont allow native methods in records Message-ID: <201910101755.x9AHtSRk018227@aojmv0008.oracle.com> Changeset: c78c8c9fcda5 Author: vromero Date: 2019-10-10 13:52 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/c78c8c9fcda5 dont allow native methods in records ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! test/langtools/tools/javac/records/RecordCompilationTests.java From vicente.romero at oracle.com Thu Oct 10 18:30:26 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 10 Oct 2019 18:30:26 +0000 Subject: hg: amber/amber: sealed interfaces or abstract classes with an empty permits clause must have subtypes Message-ID: <201910101830.x9AIURGu009868@aojmv0008.oracle.com> Changeset: 543585aa050d Author: vromero Date: 2019-10-10 14:29 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/543585aa050d sealed interfaces or abstract classes with an empty permits clause must have subtypes ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/sealed/SealedCompilationTests.java From forax at univ-mlv.fr Thu Oct 10 18:36:04 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Thu, 10 Oct 2019 20:36:04 +0200 (CEST) Subject: Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not present Message-ID: <1364147384.2052748.1570732564698.JavaMail.zimbra@u-pem.fr> As the title says, Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not present. regards, R?mi From vicente.romero at oracle.com Thu Oct 10 19:25:21 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 10 Oct 2019 19:25:21 +0000 Subject: hg: amber/amber: quick fix for the build Message-ID: <201910101925.x9AJPLat013589@aojmv0008.oracle.com> Changeset: 13f970ffb7d6 Author: vromero Date: 2019-10-10 15:20 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/13f970ffb7d6 quick fix for the build ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java From vicente.romero at oracle.com Thu Oct 10 19:42:51 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Thu, 10 Oct 2019 15:42:51 -0400 Subject: Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not present In-Reply-To: <1364147384.2052748.1570732564698.JavaMail.zimbra@u-pem.fr> References: <1364147384.2052748.1570732564698.JavaMail.zimbra@u-pem.fr> Message-ID: that shouldn't happen, the compiler would generate the accessor if not present, I guess the VM should verify for that too Vicente On 10/10/19 2:36 PM, Remi Forax wrote: > As the title says, > Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not present. > > regards, > R?mi From brian.goetz at oracle.com Thu Oct 10 19:43:37 2019 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Thu, 10 Oct 2019 19:43:37 +0000 Subject: hg: amber/amber: 2 new changesets Message-ID: <201910101943.x9AJhbLB024381@aojmv0008.oracle.com> Changeset: 4e67cff3547b Author: briangoetz Date: 2019-10-10 15:36 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/4e67cff3547b More test cases for sealed classes ! test/langtools/lib/combo/tools/javac/combo/CompilationTestCase.java ! test/langtools/tools/javac/sealed/SealedCompilationTests.java Changeset: 2fe9842c2913 Author: briangoetz Date: 2019-10-10 15:43 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/2fe9842c2913 Merge ! test/langtools/tools/javac/sealed/SealedCompilationTests.java From harold.seigel at oracle.com Thu Oct 10 19:55:26 2019 From: harold.seigel at oracle.com (Harold Seigel) Date: Thu, 10 Oct 2019 15:55:26 -0400 Subject: Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not present In-Reply-To: References: <1364147384.2052748.1570732564698.JavaMail.zimbra@u-pem.fr> Message-ID: The VM should throw a NoSuchMethodError exception in that case? Thanks, Harold On 10/10/2019 3:42 PM, Vicente Romero wrote: > that shouldn't happen, the compiler would generate the accessor if not > present, I guess the VM should verify for that too > > Vicente > > On 10/10/19 2:36 PM, Remi Forax wrote: >> As the title says, >> Class.getRecordComponent() javadoc doesn't specify its behavior if >> the accessor of a record component is not present. >> >> regards, >> R?mi > From maurizio.cimadamore at oracle.com Thu Oct 10 20:03:23 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 10 Oct 2019 21:03:23 +0100 Subject: Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not present In-Reply-To: References: <1364147384.2052748.1570732564698.JavaMail.zimbra@u-pem.fr> Message-ID: <0075df55-fd45-23b8-738f-4a58fc3c6a51@oracle.com> It's the usual question: do we fail when we access things reflectively that don't seem to be there (either fully or partially) ? Or do we silently ignore? I know that we have examples of both; for instance, nestmates went the 'throw an exception' path if a member of the nest cannot be found; but annotations went a different path, and annotations that are not found are simply discarded. One might argue that annotations are 'metadata' so less crucial than properties such as record component-ness or nestmate-ness. But still there's a choice. And, whatever we do, we should probably be consistent with any kind of error that could popup when parsing the record component attribute, such as illegal modifiers and such. But, I guess for missing annotations on a record component we should be consistent with the rest of the JDK, and just drop them on the floor. Maurizio On 10/10/2019 20:55, Harold Seigel wrote: > The VM should throw a NoSuchMethodError exception in that case? > > Thanks, Harold > > On 10/10/2019 3:42 PM, Vicente Romero wrote: >> that shouldn't happen, the compiler would generate the accessor if >> not present, I guess the VM should verify for that too >> >> Vicente >> >> On 10/10/19 2:36 PM, Remi Forax wrote: >>> As the title says, >>> Class.getRecordComponent() javadoc doesn't specify its behavior if >>> the accessor of a record component is not present. >>> >>> regards, >>> R?mi >> From brian.goetz at oracle.com Thu Oct 10 20:19:33 2019 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Thu, 10 Oct 2019 20:19:33 +0000 Subject: hg: amber/amber: Spec updates for Record.java and bootstrap builders Message-ID: <201910102019.x9AKJXLF015854@aojmv0008.oracle.com> Changeset: c7f838a6621e Author: briangoetz Date: 2019-10-10 16:19 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/c7f838a6621e Spec updates for Record.java and bootstrap builders ! src/java.base/share/classes/java/lang/Record.java ! src/java.base/share/classes/java/lang/invoke/ObjectMethodBuilders.java From vicente.romero at oracle.com Thu Oct 10 20:32:45 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 10 Oct 2019 20:32:45 +0000 Subject: hg: amber/amber: more on checking for return inside a canonical constructor Message-ID: <201910102032.x9AKWkVu023897@aojmv0008.oracle.com> Changeset: ac78a894d47c Author: vromero Date: 2019-10-10 16:32 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/ac78a894d47c more on checking for return inside a canonical constructor ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrContext.java From brian.goetz at oracle.com Thu Oct 10 20:46:33 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Thu, 10 Oct 2019 16:46:33 -0400 Subject: Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not present In-Reply-To: <0075df55-fd45-23b8-738f-4a58fc3c6a51@oracle.com> References: <1364147384.2052748.1570732564698.JavaMail.zimbra@u-pem.fr> <0075df55-fd45-23b8-738f-4a58fc3c6a51@oracle.com> Message-ID: <6962fd00-36ab-60f8-c632-2826703eb289@oracle.com> Most reflective methods err on the side of returning null rather than failing.? We could argue about whether that's the right choice, but that's the precedent that was set early on (just as many methods return arrays, when we'd rather they return lists.) On 10/10/2019 4:03 PM, Maurizio Cimadamore wrote: > It's the usual question: do we fail when we access things reflectively > that don't seem to be there (either fully or partially) ? Or do we > silently ignore? > > I know that we have examples of both; for instance, nestmates went the > 'throw an exception' path if a member of the nest cannot be found; but > annotations went a different path, and annotations that are not found > are simply discarded. > > One might argue that annotations are 'metadata' so less crucial than > properties such as record component-ness or nestmate-ness. But still > there's a choice. > > And, whatever we do, we should probably be consistent with any kind of > error that could popup when parsing the record component attribute, > such as illegal modifiers and such. But, I guess for missing > annotations on a record component we should be consistent with the > rest of the JDK, and just drop them on the floor. > > Maurizio > > On 10/10/2019 20:55, Harold Seigel wrote: >> The VM should throw a NoSuchMethodError exception in that case? >> >> Thanks, Harold >> >> On 10/10/2019 3:42 PM, Vicente Romero wrote: >>> that shouldn't happen, the compiler would generate the accessor if >>> not present, I guess the VM should verify for that too >>> >>> Vicente >>> >>> On 10/10/19 2:36 PM, Remi Forax wrote: >>>> As the title says, >>>> Class.getRecordComponent() javadoc doesn't specify its behavior if >>>> the accessor of a record component is not present. >>>> >>>> regards, >>>> R?mi >>> From vicente.romero at oracle.com Thu Oct 10 21:15:46 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 10 Oct 2019 21:15:46 +0000 Subject: hg: amber/amber: move j.l.i.ObjectMethodBuilders to j.l.r.ObjectMethods and adapt the compiler accordingly Message-ID: <201910102115.x9ALFkrD019722@aojmv0008.oracle.com> Changeset: 3525f011e46d Author: vromero Date: 2019-10-10 16:43 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/3525f011e46d move j.l.i.ObjectMethodBuilders to j.l.r.ObjectMethods and adapt the compiler accordingly - src/java.base/share/classes/java/lang/invoke/ObjectMethodBuilders.java + src/java.base/share/classes/java/lang/runtime/ObjectMethods.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! test/hotspot/jtreg/runtime/records/recordAttribute.jcod From forax at univ-mlv.fr Thu Oct 10 21:36:23 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Thu, 10 Oct 2019 23:36:23 +0200 (CEST) Subject: Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not present In-Reply-To: References: <1364147384.2052748.1570732564698.JavaMail.zimbra@u-pem.fr> Message-ID: <1388388639.2073794.1570743383193.JavaMail.zimbra@u-pem.fr> Given that it's a call from the reflection API, it should be translated to a NoSuchMethodException. ----- Mail original ----- > De: "Harold David Seigel" > ?: "amber-dev" > Envoy?: Jeudi 10 Octobre 2019 21:55:26 > Objet: Re: Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not > present > The VM should throw a NoSuchMethodError exception in that case? > > Thanks, Harold > > On 10/10/2019 3:42 PM, Vicente Romero wrote: >> that shouldn't happen, the compiler would generate the accessor if not >> present, I guess the VM should verify for that too >> >> Vicente >> >> On 10/10/19 2:36 PM, Remi Forax wrote: >>> As the title says, >>> Class.getRecordComponent() javadoc doesn't specify its behavior if >>> the accessor of a record component is not present. >>> >>> regards, >>> R?mi From forax at univ-mlv.fr Thu Oct 10 21:42:37 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Thu, 10 Oct 2019 23:42:37 +0200 (CEST) Subject: Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not present In-Reply-To: <6962fd00-36ab-60f8-c632-2826703eb289@oracle.com> References: <1364147384.2052748.1570732564698.JavaMail.zimbra@u-pem.fr> <0075df55-fd45-23b8-738f-4a58fc3c6a51@oracle.com> <6962fd00-36ab-60f8-c632-2826703eb289@oracle.com> Message-ID: <36200470.2074717.1570743757138.JavaMail.zimbra@u-pem.fr> You also have a lot of methods that throw a NoSuchMethodException when a method is not found. The feature is Record, no record component, so i believe that ignoring the wrongly formatted record component is not what we want. I don't recall that there is a method in the reflection API that returns null for an array of members so i think the best is to throw exceptions if there is not corresponding accessor and as Maurizio said, ignore unknown annotations. R?mi ----- Mail original ----- > De: "Brian Goetz" > ?: "Maurizio Cimadamore" , "Harold David Seigel" , "amber-dev" > > Envoy?: Jeudi 10 Octobre 2019 22:46:33 > Objet: Re: Class.getRecordComponent() javadoc doesn't specify its behavior if the accessor of a record component is not > present > Most reflective methods err on the side of returning null rather than > failing.? We could argue about whether that's the right choice, but > that's the precedent that was set early on (just as many methods return > arrays, when we'd rather they return lists.) > > On 10/10/2019 4:03 PM, Maurizio Cimadamore wrote: >> It's the usual question: do we fail when we access things reflectively >> that don't seem to be there (either fully or partially) ? Or do we >> silently ignore? >> >> I know that we have examples of both; for instance, nestmates went the >> 'throw an exception' path if a member of the nest cannot be found; but >> annotations went a different path, and annotations that are not found >> are simply discarded. >> >> One might argue that annotations are 'metadata' so less crucial than >> properties such as record component-ness or nestmate-ness. But still >> there's a choice. >> >> And, whatever we do, we should probably be consistent with any kind of >> error that could popup when parsing the record component attribute, >> such as illegal modifiers and such. But, I guess for missing >> annotations on a record component we should be consistent with the >> rest of the JDK, and just drop them on the floor. >> >> Maurizio >> >> On 10/10/2019 20:55, Harold Seigel wrote: >>> The VM should throw a NoSuchMethodError exception in that case? >>> >>> Thanks, Harold >>> >>> On 10/10/2019 3:42 PM, Vicente Romero wrote: >>>> that shouldn't happen, the compiler would generate the accessor if >>>> not present, I guess the VM should verify for that too >>>> >>>> Vicente >>>> >>>> On 10/10/19 2:36 PM, Remi Forax wrote: >>>>> As the title says, >>>>> Class.getRecordComponent() javadoc doesn't specify its behavior if >>>>> the accessor of a record component is not present. >>>>> >>>>> regards, >>>>> R?mi From joe.darcy at oracle.com Thu Oct 10 23:24:55 2019 From: joe.darcy at oracle.com (joe.darcy at oracle.com) Date: Thu, 10 Oct 2019 23:24:55 +0000 Subject: hg: amber/amber: Fix printing processor and TestRecordDesugar.java for record component elements. Message-ID: <201910102324.x9ANOtuq005821@aojmv0008.oracle.com> Changeset: 6b2b5e4c01a7 Author: darcy Date: 2019-10-10 16:24 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/6b2b5e4c01a7 Fix printing processor and TestRecordDesugar.java for record component elements. ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! test/langtools/tools/javac/processing/model/element/TestRecordDesugar.java From jonathan.gibbons at oracle.com Fri Oct 11 00:26:05 2019 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Fri, 11 Oct 2019 00:26:05 +0000 Subject: hg: amber/amber: 2 new changesets Message-ID: <201910110026.x9B0Q7JA011008@aojmv0008.oracle.com> Changeset: 22a2bee294f4 Author: jjg Date: 2019-10-10 17:14 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/22a2bee294f4 Update doc for Record.equals to reference Objects.equals ! src/java.base/share/classes/java/lang/Record.java Changeset: 05ce0bfac260 Author: jjg Date: 2019-10-10 17:23 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/05ce0bfac260 update support for records and sealed types ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Contents.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/CommentUtils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/PackageSummaryWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Resources.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PackageSummaryBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/ParamTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/CommentHelper.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/JavadocMemberEnter.java ! test/langtools/jdk/javadoc/doclet/testRecordTypes/TestRecordTypes.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/BinaryNode.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Coords.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Holder.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Node.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Point.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/jdk11/element-list ! test/langtools/jdk/javadoc/doclet/testSealedTypes/TestSealedTypes.java ! test/langtools/jdk/javadoc/lib/javadoc/tester/JavadocTester.java From joe.darcy at oracle.com Fri Oct 11 01:54:46 2019 From: joe.darcy at oracle.com (joe.darcy at oracle.com) Date: Fri, 11 Oct 2019 01:54:46 +0000 Subject: hg: amber/amber: Fix printing processor and TestRecord.java for record components as enclosed elements. Message-ID: <201910110154.x9B1skce001787@aojmv0008.oracle.com> Changeset: 6b5311b6bf73 Author: darcy Date: 2019-10-10 18:54 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/6b5311b6bf73 Fix printing processor and TestRecord.java for record components as enclosed elements. ! test/langtools/tools/javac/processing/model/element/TestRecord.java From vicente.romero at oracle.com Fri Oct 11 02:09:25 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 11 Oct 2019 02:09:25 +0000 Subject: hg: amber/amber: dont allow sealed or non-sealed local classes Message-ID: <201910110209.x9B29Pt8010450@aojmv0008.oracle.com> Changeset: a6b0ad4c98ab Author: vromero Date: 2019-10-10 22:08 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/a6b0ad4c98ab dont allow sealed or non-sealed local classes ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/sealed/SealedCompilationTests.java From vicente.romero at oracle.com Fri Oct 11 02:24:05 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 11 Oct 2019 02:24:05 +0000 Subject: hg: amber/amber: local classes cant extend sealed classes Message-ID: <201910110224.x9B2O6MO019710@aojmv0008.oracle.com> Changeset: 5fbd6bd20a5b Author: vromero Date: 2019-10-10 22:23 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/5fbd6bd20a5b local classes cant extend sealed classes ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/sealed/SealedCompilationTests.java From brandileefehn5 at gmail.com Wed Oct 2 03:53:49 2019 From: brandileefehn5 at gmail.com (brandileefehn5) Date: Tue, 01 Oct 2019 20:53:49 -0700 Subject: OBA Self-Reg Implementation Guide - What Everyone Needs to Know.pdf Message-ID: <5da057ad.1c69fb81.4b924.75a4@mx.google.com> Sent from my Sprint Samsung Galaxy S? 6. From chris.hegarty at oracle.com Fri Oct 11 10:28:46 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Fri, 11 Oct 2019 10:28:46 +0000 Subject: hg: amber/amber: Class::getRecordComponents clarification and test update Message-ID: <201910111028.x9BASlFe018152@aojmv0008.oracle.com> Changeset: d45c1a111e21 Author: chegar Date: 2019-10-11 11:27 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/d45c1a111e21 Class::getRecordComponents clarification and test update ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java ! test/langtools/tools/javac/records/RecordReflectionTest.java From chris.hegarty at oracle.com Fri Oct 11 10:54:07 2019 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Fri, 11 Oct 2019 11:54:07 +0100 Subject: implementation for java.lang.reflect.RecordComponent In-Reply-To: <97db4cb0-859a-5855-1626-d7b7b460ad84@oracle.com> References: <393893D1-17C7-4512-973A-BD3CB988F6C9@oracle.com> <97db4cb0-859a-5855-1626-d7b7b460ad84@oracle.com> Message-ID: > On 8 Oct 2019, at 13:50, Vicente Romero wrote: > >> ... >> +++ b/src/java.base/share/classes/java/lang/Class.java >> @@ -2252,10 +2252,13 @@ >> /** >> * Returns an array containing {@code RecordComponent} objects reflecting all the >> - * declared record components of the record represented by this {@code Class} object >> - * >> - * @return the array of {@code RecordComponent} objects representing all the >> - * record components of this record >> + * declared record components of the record represented by this {@code Class} object. >> + * The components are returned in the same order that they are declared in the >> + * record header. >> + * >> + * @return The array of {@code RecordComponent} objects representing all the >> + * record components of this record. The array is empty if this class >> + * is not a record, or if this class is a record with no components. >> * @throws SecurityException >> * If a security manager, s, is present and any of the >> * following conditions is met: >> >> RecordRefletorTest already covers these cases. I can push this change if we agree. > yes I agree with the change, looks good to me, Pushed, http://hg.openjdk.java.net/amber/amber/rev/d45c1a111e21 -Chris. From chris.hegarty at oracle.com Fri Oct 11 14:32:36 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Fri, 11 Oct 2019 14:32:36 +0000 Subject: hg: amber/amber: Initial implementation of the serializable records proposal Message-ID: <201910111432.x9BEWaMt018433@aojmv0008.oracle.com> Changeset: e72a614f2a15 Author: chegar Date: 2019-10-11 15:31 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/e72a614f2a15 Initial implementation of the serializable records proposal ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java + test/jdk/java/io/Serializable/records/AbsentStreamValuesTest.java + test/jdk/java/io/Serializable/records/BadValues.java + test/jdk/java/io/Serializable/records/BasicRecordSer.java + test/jdk/java/io/Serializable/records/ConstructorAccessTest.java + test/jdk/java/io/Serializable/records/ConstructorPermissionTest.java + test/jdk/java/io/Serializable/records/CycleTest.java + test/jdk/java/io/Serializable/records/ProhibitedMethods.java + test/jdk/java/io/Serializable/records/RecordClassTest.java + test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java + test/jdk/java/io/Serializable/records/StreamRefTest.java + test/jdk/java/io/Serializable/records/ThrowingConstructorTest.java + test/jdk/java/io/Serializable/records/WriteReplaceTest.java + test/jdk/java/io/Serializable/records/empty_security.policy + test/jdk/java/io/Serializable/records/migration/AbstractTest.java + test/jdk/java/io/Serializable/records/migration/AssignableFrom.java + test/jdk/java/io/Serializable/records/migration/AssignableFromTest.java + test/jdk/java/io/Serializable/records/migration/DefaultValues.java + test/jdk/java/io/Serializable/records/migration/DefaultValuesTest.java + test/jdk/java/io/Serializable/records/migration/Point.java + test/jdk/java/io/Serializable/records/migration/SuperStreamFields.java + test/jdk/java/io/Serializable/records/migration/SuperStreamFieldsTest.java + test/jdk/java/io/Serializable/records/migration/plain/AssignableFromImpl.java + test/jdk/java/io/Serializable/records/migration/plain/DefaultValuesImpl.java + test/jdk/java/io/Serializable/records/migration/plain/PointImpl.java + test/jdk/java/io/Serializable/records/migration/plain/SuperStreamFieldsImpl.java + test/jdk/java/io/Serializable/records/migration/record/AssignableFromImpl.java + test/jdk/java/io/Serializable/records/migration/record/DefaultValuesImpl.java + test/jdk/java/io/Serializable/records/migration/record/PointImpl.java + test/jdk/java/io/Serializable/records/migration/record/SuperStreamFieldsImpl.java ! test/langtools/tools/javac/records/RecordCompilationTests.java ! test/lib/jdk/test/lib/ByteCodeLoader.java From jr at qsm.co.il Fri Oct 11 17:18:24 2019 From: jr at qsm.co.il (Jonathan Rosenne) Date: Fri, 11 Oct 2019 17:18:24 +0000 Subject: JEP 359: Records Message-ID: May I suggest that the compiler detect suitable existing classes that could be records and treat them as such? For example the often used Point class, or the Integer class? Best Regards, Jonathan Rosenne From vicente.romero at oracle.com Fri Oct 11 18:05:09 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 11 Oct 2019 18:05:09 +0000 Subject: hg: amber/amber: dont allow sealed, non-sealed enums Message-ID: <201910111805.x9BI5Avf008414@aojmv0008.oracle.com> Changeset: 7de9b5158d21 Author: vromero Date: 2019-10-11 13:43 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/7de9b5158d21 dont allow sealed, non-sealed enums ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! test/langtools/tools/javac/sealed/SealedCompilationTests.java From brian.goetz at oracle.com Fri Oct 11 18:23:29 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Fri, 11 Oct 2019 14:23:29 -0400 Subject: JEP 359: Records In-Reply-To: References: Message-ID: <5edda194-232d-3f21-ae41-ee1ed6a7adaa@oracle.com> Well, what do you mean by "suitable"?? If a class has private fields, by what right would the compiler expose public accessors for them?? (And, if there already are public accessors, what would the benefit be of "treating them like records"?) The purpose of having a new declaration form is so that the author can communicate their design intent.? WHen you say "record", you are making it crystal clear what you want -- that you intend that this class is a transparent, shallowly immutable carrier for a specified tuple of data.? And, even if the compiler could figure out by analyzing the code that a given class conforms to the requirements for record _today_, that doesn't stop you from evolving the class in a different direction tomorrow (say, by adding mutable fields), and now you've got an incompatibility. Much better to let the programmer say what they mean. On 10/11/2019 1:18 PM, Jonathan Rosenne wrote: > May I suggest that the compiler detect suitable existing classes that could be records and treat them as such? For example the often used Point class, or the Integer class? > > Best Regards, > > Jonathan Rosenne > From john.r.rose at oracle.com Fri Oct 11 19:10:26 2019 From: john.r.rose at oracle.com (John Rose) Date: Fri, 11 Oct 2019 12:10:26 -0700 Subject: JEP 359: Records In-Reply-To: References: Message-ID: <3A34C928-7B11-42A5-8DD1-3494431E88DF@oracle.com> On Oct 11, 2019, at 10:18 AM, Jonathan Rosenne wrote: > > May I suggest that the compiler detect suitable existing classes that could be records and treat them as such? For example the often used Point class, or the Integer class? This is a job for the IDE, not the language processor. IDEs are good at suggesting improvements like this. For the reasons Brian explained, the IDE must then ask the user for permission to formally and explicitly mark the class as a record. From jr at qsm.co.il Fri Oct 11 19:14:19 2019 From: jr at qsm.co.il (Jonathan Rosenne) Date: Fri, 11 Oct 2019 19:14:19 +0000 Subject: JEP 359: Records In-Reply-To: <3A34C928-7B11-42A5-8DD1-3494431E88DF@oracle.com> References: <3A34C928-7B11-42A5-8DD1-3494431E88DF@oracle.com> Message-ID: Thanks for your reply. So will classes such as Integer and other suitable classes in the JDK be upgraded to records? Can they? And what about existing classes in the code base that no one wants to touch? The IDE only does things to classes you edit. Best Regards, Jonathan Rosenne From: John Rose [mailto:john.r.rose at oracle.com] Sent: Friday, October 11, 2019 10:10 PM To: Jonathan Rosenne Cc: amber-dev at openjdk.java.net Subject: Re: JEP 359: Records On Oct 11, 2019, at 10:18 AM, Jonathan Rosenne > wrote: May I suggest that the compiler detect suitable existing classes that could be records and treat them as such? For example the often used Point class, or the Integer class? This is a job for the IDE, not the language processor. IDEs are good at suggesting improvements like this. For the reasons Brian explained, the IDE must then ask the user for permission to formally and explicitly mark the class as a record. From jonathan.gibbons at oracle.com Fri Oct 11 19:22:11 2019 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Fri, 11 Oct 2019 19:22:11 +0000 Subject: hg: amber/amber: update javadoc for serializable records Message-ID: <201910111922.x9BJMC8Y000869@aojmv0008.oracle.com> Changeset: f1e0a5a1295c Author: jjg Date: 2019-10-11 12:19 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f1e0a5a1295c update javadoc for serializable records ! .hgignore ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/SerializedFormBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Point.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/SerializablePoint.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/SerializableProxy.java From john.r.rose at oracle.com Fri Oct 11 19:25:18 2019 From: john.r.rose at oracle.com (John Rose) Date: Fri, 11 Oct 2019 12:25:18 -0700 Subject: JEP 359: Records In-Reply-To: References: <3A34C928-7B11-42A5-8DD1-3494431E88DF@oracle.com> Message-ID: <300F863D-FD13-419F-8C95-823017A470E1@oracle.com> On Oct 11, 2019, at 12:14 PM, Jonathan Rosenne wrote: > > So will classes such as Integer and other suitable classes in the JDK be upgraded to records? If it makes sense. And not, if it doesn?t. > Can they? Of course there?s no general answer to this question. ?It depends?? Also ?I hope so, in many cases." > And what about existing classes in the code base that no one wants to touch? The IDE only does things to classes you edit. Again ?it depends.? If no one wants to touch them, presumably there are good reasons for leaving them alone. An old Sun colleague, Jim Kempf, used to say, ?If you touch it it will break.? I think of this as ?Kempf?s Law of Software Development.? Any observable change of behavior has the potential to break somebody?s code downstream. And the JDK is upstream of lots of people. We have learned by bitter experience that the safest default is maximum backward compatibility, which means invisible optimizations are OK (if you didn?t break the optimizer), and everything else has to be approach carefully and explicitly. Having a machine do your edits for you invisibly doesn?t prevent Kempf-style bugs; it just makes it harder to find out what broke. From brian.goetz at oracle.com Fri Oct 11 19:28:35 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Fri, 11 Oct 2019 15:28:35 -0400 Subject: JEP 359: Records In-Reply-To: References: <3A34C928-7B11-42A5-8DD1-3494431E88DF@oracle.com> Message-ID: <9dbfe297-71a9-2ae2-28cd-7e3851db23cd@oracle.com> > So will classes such as Integer and other suitable classes in the JDK be upgraded to records? For classes that we are sure that it is our design intent, now and forever, to expose as transparent carriers for a fixed stable tuple of data, we could consider migrating them to records.? But, let me turn it around: why would this matter to you?? From the outside, whether Integer is a class or a record, doesn't really make a difference; it has the same set of members either way.? What benefit _to the client_ are you imagining records to have over equivalent classes? From vicente.romero at oracle.com Fri Oct 11 20:25:56 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 11 Oct 2019 20:25:56 +0000 Subject: hg: amber/amber: records: bug fix annotations were being wiped out if record component was varargs Message-ID: <201910112025.x9BKPuFA009276@aojmv0008.oracle.com> Changeset: 8c1f50b35d4e Author: vromero Date: 2019-10-11 16:25 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/8c1f50b35d4e records: bug fix annotations were being wiped out if record component was varargs ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! test/langtools/tools/javac/records/annotations/CheckingTypeAnnotationsOnRecords.java From vicente.romero at oracle.com Fri Oct 11 20:49:39 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 11 Oct 2019 20:49:39 +0000 Subject: hg: amber/amber: 383 new changesets Message-ID: <201910112050.x9BKo1fI022331@aojmv0008.oracle.com> Changeset: cfd0f43fdf5f Author: dholmes Date: 2019-09-05 18:39 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/cfd0f43fdf5f 8227563: jvmti/scenarios/contention/TC05/tc05t001 fails due to "ERROR: tc05t001.cpp, 278: (waitedThreadCpuTime - waitThreadCpuTime) < (EXPECTED_ACCURACY * 1000000)" Reviewed-by: amenkov, cjplummer, sspitsyn ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001/TestDescription.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001/tc05t001.cpp Changeset: 1e3f58d409f7 Author: darcy Date: 2019-09-05 15:55 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/1e3f58d409f7 8230681: Add @since tag to java.io.Serial Reviewed-by: lancea, bpb ! src/java.base/share/classes/java/io/Serial.java Changeset: 930551e8ac62 Author: bpb Date: 2019-09-05 16:26 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/930551e8ac62 8187898: PrintStream should override FilterOutputStream#write(byte[]) with a method that has no throws clause Reviewed-by: alanb, rriggs, lancea, darcy ! src/java.base/share/classes/java/io/PrintStream.java + test/jdk/java/io/PrintStream/WriteBytes.java Changeset: 7ac4273bb49b Author: naoto Date: 2019-09-05 17:38 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/7ac4273bb49b 8229831: Upgrade Character.isUnicodeIdentifierStart/Part() methods to the latest standard Reviewed-by: rriggs ! make/data/characterdata/CharacterData00.java.template ! make/data/characterdata/CharacterData01.java.template ! make/data/characterdata/CharacterData02.java.template ! make/data/characterdata/CharacterData0E.java.template ! make/data/characterdata/CharacterDataLatin1.java.template + make/data/unicodedata/DerivedCoreProperties.txt ! make/gensrc/GensrcCharacterData.gmk ! make/jdk/src/classes/build/tools/generatecharacter/GenerateCharacter.java ! make/jdk/src/classes/build/tools/generatecharacter/PropList.java ! src/java.base/share/classes/java/lang/Character.java ! test/jdk/java/lang/Character/CharPropTest.java ! test/jdk/java/lang/Character/CheckProp.java ! test/jdk/lib/testlibrary/java/lang/UCDFiles.java Changeset: 66c880e5d21d Author: shade Date: 2019-09-06 09:26 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/66c880e5d21d 8230671: x86_32 build failures after JDK-8229496 Reviewed-by: thartmann ! src/hotspot/cpu/x86/x86_32.ad Changeset: d6e2dbf20eaa Author: rrich Date: 2019-08-30 09:24 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d6e2dbf20eaa 8230363: C2: Let ConnectionGraph::not_global_escape(Node* n) return false if n is not in the CG Reviewed-by: thartmann, mdoerr ! src/hotspot/share/opto/escape.cpp Changeset: 5aaf53d4fe63 Author: dfuchs Date: 2019-09-06 14:04 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/5aaf53d4fe63 8230694: http.keepAlive system property is inconsistently/incorrectly documented Summary: trivially fixed the net-properties.html file Reviewed-by: alanb ! src/java.base/share/classes/java/net/doc-files/net-properties.html Changeset: 1ebc2f316e45 Author: clanger Date: 2019-09-06 15:13 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/1ebc2f316e45 8230666: Exclude serviceability/sa/TestInstanceKlassSize.java on linuxppc64 and linuxppc64le Reviewed-by: dcubed ! test/hotspot/jtreg/ProblemList.txt Changeset: 9162feb63c42 Author: kbarrett Date: 2019-09-06 13:38 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/9162feb63c42 8230404: Refactor logged card refinement support in G1DirtyCardQueueSet Summary: Separate concurrent refinement from STW refinement. Reviewed-by: sjohanss, tschatzl ! src/hotspot/share/gc/g1/g1CardTableEntryClosure.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1DirtyCardQueue.cpp ! src/hotspot/share/gc/g1/g1DirtyCardQueue.hpp ! src/hotspot/share/gc/g1/g1HotCardCache.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp Changeset: 318cd16cc202 Author: dlong Date: 2019-09-06 14:54 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/318cd16cc202 8230680: latest Graal unittests depend on jdk.internal.module Reviewed-by: iignatyev ! make/test/JtregGraalUnit.gmk Changeset: 378007c18687 Author: erikj Date: 2019-09-06 12:41 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/378007c18687 8230715: Baseline compare build on Windows fails intermittently in file type for jvm.pdb Reviewed-by: mikael ! make/scripts/compare.sh Changeset: aa3715655834 Author: redestad Date: 2019-09-07 15:44 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/aa3715655834 8230662: Remove dead code from MethodTypeForm Reviewed-by: vlivanov, mchung ! src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! src/java.base/share/classes/java/lang/invoke/MethodType.java ! src/java.base/share/classes/java/lang/invoke/MethodTypeForm.java Changeset: c7374ff3f3a3 Author: zgu Date: 2019-09-07 10:04 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/c7374ff3f3a3 8230730: UseCompressedOops test crash with assertion failure Reviewed-by: stefank, eosterlund ! src/hotspot/share/oops/compressedOops.cpp Changeset: d99af76d7689 Author: iveresov Date: 2019-09-07 10:05 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/d99af76d7689 8226953: AOT: assert(oopDesc::is_oop(obj)) failed: not an oop Reviewed-by: dlong ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotForeignCallLinkage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl.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/replacements/ThreadSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/ForeignCallStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/MethodSubstitutionTest.java Changeset: d8902e9c307c Author: dholmes Date: 2019-09-07 18:48 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/d8902e9c307c 8230422: Convert uninterruptible os::sleep calls to os::naked_short_sleep Reviewed-by: kbarrett, dcubed, shade ! src/hotspot/cpu/x86/rdtsc_x86.cpp ! src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp ! src/hotspot/share/gc/cms/parNewGeneration.cpp ! src/hotspot/share/gc/parallel/psCardTable.cpp ! src/hotspot/share/gc/parallel/psOldGen.cpp ! src/hotspot/share/gc/parallel/psPromotionManager.inline.hpp ! src/hotspot/share/gc/serial/tenuredGeneration.cpp ! src/hotspot/share/gc/shared/taskqueue.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/jvmci/jvmciCompiler.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/runtime/safepoint.cpp ! test/hotspot/gtest/gc/g1/test_g1FreeIdSet.cpp ! test/hotspot/gtest/gc/shared/test_ptrQueueBufferAllocator.cpp ! test/hotspot/gtest/utilities/test_singleWriterSynchronizer.cpp Changeset: 95c206a3e53c Author: xgong Date: 2019-09-09 11:19 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/95c206a3e53c 8230129: Add jtreg "serviceability/sa/ClhsdbInspect.java" to graal problem list. Reviewed-by: dlong, thartmann ! test/hotspot/jtreg/ProblemList-graal.txt Changeset: 647d623650d3 Author: rehn Date: 2019-09-09 09:05 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/647d623650d3 8228758: assert(_no_handle_mark_nesting == 0) failed: allocating handle inside NoHandleMark Reviewed-by: coleenp, dcubed, dholmes ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/interfaceSupport.inline.hpp Changeset: 3277a7454dc5 Author: stefank Date: 2019-09-04 11:05 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/3277a7454dc5 8224599: Remove globals_ext.hpp Reviewed-by: coleenp, kvn, gziemski, ehelin ! src/hotspot/share/gc/cms/jvmFlagConstraintsCMS.hpp ! src/hotspot/share/gc/g1/jvmFlagConstraintsG1.hpp ! src/hotspot/share/gc/parallel/jvmFlagConstraintsParallel.hpp ! src/hotspot/share/gc/shared/jvmFlagConstraintsGC.hpp ! src/hotspot/share/runtime/flags/jvmFlag.cpp ! src/hotspot/share/runtime/flags/jvmFlag.hpp ! src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp ! src/hotspot/share/runtime/flags/jvmFlagRangeList.cpp ! src/hotspot/share/runtime/flags/jvmFlagWriteableList.cpp ! src/hotspot/share/runtime/globals.cpp ! src/hotspot/share/runtime/globals.hpp - src/hotspot/share/runtime/globals_ext.hpp ! src/hotspot/share/runtime/globals_extension.hpp ! src/hotspot/share/runtime/os_ext.hpp ! test/hotspot/gtest/runtime/test_globals.cpp Changeset: a0a67b6b8183 Author: stefank Date: 2019-09-04 11:38 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/a0a67b6b8183 8230561: Remove logTag_ext.hpp Reviewed-by: dholmes, coleenp ! src/hotspot/share/logging/logTag.hpp - src/hotspot/share/logging/logTag_ext.hpp Changeset: 7efe5923cfdc Author: stefank Date: 2019-09-04 13:06 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/7efe5923cfdc 8230562: Remove g1HeapSizingPolicy_ext.cpp Reviewed-by: dholmes, sjohanss ! src/hotspot/share/gc/g1/g1HeapSizingPolicy.cpp - src/hotspot/share/gc/g1/g1HeapSizingPolicy_ext.cpp Changeset: 01905d6a828b Author: stefank Date: 2019-09-04 13:06 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/01905d6a828b 8230563: Remove arguments_ext.cpp Reviewed-by: dholmes, coleenp ! src/hotspot/share/runtime/arguments.cpp - src/hotspot/share/runtime/arguments_ext.cpp Changeset: 8009a9c36251 Author: stefank Date: 2019-09-04 13:07 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8009a9c36251 8230564: Remove os_ext.hpp Reviewed-by: coleenp, dholmes ! src/hotspot/share/runtime/init.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp - src/hotspot/share/runtime/os_ext.hpp Changeset: 9fba708740d6 Author: glaubitz Date: 2019-09-09 15:14 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/9fba708740d6 8230708: Hotspot fails to build on linux-sparc with gcc-9 Reviewed-by: dholmes, phh ! src/hotspot/cpu/sparc/nativeInst_sparc.hpp Changeset: 505e28fe1769 Author: mdoerr Date: 2019-09-09 15:42 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/505e28fe1769 8230669: [s390] C1: assert(is_bound() || is_unused()) failed: Label was never bound to a location, but it was used as a jmp target Reviewed-by: phh, xliu ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/share/c1/c1_Compilation.hpp Changeset: bc4e7a84e89d Author: dfuchs Date: 2019-09-09 16:13 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/bc4e7a84e89d 8230132: java/net/NetworkInterface/NetworkInterfaceRetrievalTests.java to skip Teredo Tunneling Pseudo-Interface Summary: The test is updated to skip Teredo pseudo interfaces on windows. Reviewed-by: michaelm, vtewari, aefimov Contributed-by: patrick.concannon at oracle.com ! test/jdk/java/net/NetworkInterface/NetworkInterfaceRetrievalTests.java Changeset: 1a296c9064dc Author: jpai Date: 2019-08-24 09:31 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/1a296c9064dc 8177389: Hyphen "-" should be removed in URL class documentation Summary: javadoc of java.net.URL constructor updated to remove an unnecessary hyphen Reviewed-by: dfuchs ! src/java.base/share/classes/java/net/URL.java Changeset: ee230ad8cfef Author: darcy Date: 2019-09-09 10:13 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/ee230ad8cfef 8230723: Remove default constructors from java.lang and java.io Reviewed-by: bpb, rriggs ! src/java.base/share/classes/java/io/InputStream.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/java/io/OutputStream.java ! src/java.base/share/classes/java/lang/InheritableThreadLocal.java ! src/java.base/share/classes/java/lang/LiveStackFrame.java ! src/java.base/share/classes/java/lang/ThreadDeath.java ! src/java.base/share/classes/java/lang/invoke/ClassSpecializer.java ! src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java ! src/java.base/share/classes/java/lang/reflect/Modifier.java Changeset: 734f7711f87c Author: dfuchs Date: 2019-09-09 18:23 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/734f7711f87c 8230526: jdk.internal.net.http.PlainProxyConnection is never reused by HttpClient Summary: fixed the PlainProxyConnection lookup key. Reviewed-by: chegar ! src/java.net.http/share/classes/jdk/internal/net/http/ConnectionPool.java + test/jdk/java/net/httpclient/PlainProxyConnectionTest.java Changeset: db92a157dd70 Author: bchristi Date: 2019-09-09 11:04 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/db92a157dd70 8212117: Class.forName may return a reference to a loaded but not linked Class Reviewed-by: dholmes, mchung ! make/hotspot/symbols/symbols-unix ! src/hotspot/share/include/jvm.h ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvm_misc.hpp ! src/hotspot/share/runtime/globals.hpp ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/sun/launcher/LauncherHelper.java ! src/java.base/share/native/libjava/Class.c ! test/hotspot/jtreg/gc/logging/TestMetaSpaceLog.java + test/hotspot/jtreg/serviceability/jvmti/ClassStatus/ClassStatus.java + test/hotspot/jtreg/serviceability/jvmti/ClassStatus/libClassStatus.c Changeset: f894baf8d871 Author: amenkov Date: 2019-09-09 12:00 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f894baf8d871 8230516: invalid html in jdwp-protocol.html Reviewed-by: dtitov, sspitsyn ! make/jdk/src/classes/build/tools/jdwpgen/ConstantNode.java ! make/jdk/src/classes/build/tools/jdwpgen/ConstantSetNode.java Changeset: b553ad95acf0 Author: naoto Date: 2019-09-09 12:42 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/b553ad95acf0 8230284: Accounting currency format support does not cope with explicit number system Reviewed-by: rriggs ! make/jdk/src/classes/build/tools/cldrconverter/Bundle.java ! make/jdk/src/classes/build/tools/cldrconverter/CLDRConverter.java ! make/jdk/src/classes/build/tools/cldrconverter/LDMLParseHandler.java ! src/java.base/share/classes/sun/util/locale/provider/LocaleResources.java ! test/jdk/java/text/Format/NumberFormat/DFSMinusPerCentMill.java ! test/jdk/java/util/Locale/bcp47u/CurrencyFormatTests.java ! test/jdk/sun/text/resources/LocaleData.cldr ! test/jdk/sun/text/resources/LocaleDataTest.java Changeset: baa4dd528de0 Author: kbarrett Date: 2019-09-09 16:54 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/baa4dd528de0 8221361: Eliminate two-phase initialization for PtrQueueSet classes Summary: Move allocator and CBL monitor init to constructor. Reviewed-by: tschatzl, shade ! src/hotspot/share/gc/g1/g1BarrierSet.cpp ! src/hotspot/share/gc/g1/g1BarrierSet.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1DirtyCardQueue.cpp ! src/hotspot/share/gc/g1/g1DirtyCardQueue.hpp ! src/hotspot/share/gc/g1/g1RedirtyCardsQueue.cpp ! src/hotspot/share/gc/g1/g1SATBMarkQueueSet.cpp ! src/hotspot/share/gc/g1/g1SATBMarkQueueSet.hpp ! src/hotspot/share/gc/shared/ptrQueue.cpp ! src/hotspot/share/gc/shared/ptrQueue.hpp ! src/hotspot/share/gc/shared/satbMarkQueue.cpp ! src/hotspot/share/gc/shared/satbMarkQueue.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahSATBMarkQueueSet.hpp Changeset: 44f3609f46af Author: godin Date: 2019-09-10 07:42 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/44f3609f46af 8207800: always_do_update_barrier is unused Reviewed-by: shade, tschatzl Contributed-by: Evgeny Mandrikov ! src/hotspot/share/gc/cms/cmsHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/shared/genArguments.cpp ! src/hotspot/share/oops/oop.cpp ! src/hotspot/share/oops/oop.hpp Changeset: fafba5cf3546 Author: chagedorn Date: 2019-09-10 08:43 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/fafba5cf3546 8225653: Provide more information when hitting SIGILL from HaltNode Summary: Add information string for each HaltNode which is printed if hit at runtime. Reviewed-by: vlivanov, thartmann ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/adlc/main.cpp ! src/hotspot/share/adlc/output_c.cpp ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/machnode.hpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/rootnode.cpp ! src/hotspot/share/opto/rootnode.hpp Changeset: 65cad575ace3 Author: xgong Date: 2019-09-10 14:52 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/65cad575ace3 8230454: [Graal] Add "com/sun/crypto/provider/KeyFactory/TestProviderLeak.java" to Graal problem list. Reviewed-by: dlong ! test/jdk/ProblemList-graal.txt Changeset: d8f60e5bb4a6 Author: mbaesken Date: 2019-09-06 16:15 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d8f60e5bb4a6 8230711: ConnectionGraph::unique_java_object(Node* N) return NULL if n is not in the CG Reviewed-by: mdoerr ! src/hotspot/share/opto/escape.cpp Changeset: 3fee0e6b54f5 Author: mbaesken Date: 2019-09-09 16:34 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/3fee0e6b54f5 8230769: BufImg_SetupICM add ReleasePrimitiveArrayCritical call in early return Reviewed-by: prr, stuefe ! src/java.desktop/share/native/libawt/awt/image/BufImgSurfaceData.c Changeset: 8407928b9fe5 Author: pliden Date: 2019-09-10 11:11 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8407928b9fe5 8230566: ZGC: Don't substitute klass pointer during array clearing Reviewed-by: stefank, eosterlund ! src/hotspot/share/gc/z/zBarrier.cpp ! src/hotspot/share/gc/z/zBarrier.hpp ! src/hotspot/share/gc/z/zBarrier.inline.hpp ! src/hotspot/share/gc/z/zHeap.hpp ! src/hotspot/share/gc/z/zHeap.inline.hpp ! src/hotspot/share/gc/z/zHeapIterator.cpp ! src/hotspot/share/gc/z/zMark.cpp ! src/hotspot/share/gc/z/zMark.hpp ! src/hotspot/share/gc/z/zMark.inline.hpp ! src/hotspot/share/gc/z/zMarkStackEntry.hpp ! src/hotspot/share/gc/z/zObjArrayAllocator.cpp ! src/hotspot/share/gc/z/zObjArrayAllocator.hpp ! src/hotspot/share/gc/z/zRelocate.cpp ! src/hotspot/share/gc/z/zRootsIterator.cpp ! src/hotspot/share/gc/z/zRootsIterator.hpp ! src/hotspot/share/gc/z/zThreadLocalData.hpp Changeset: 8a066d872553 Author: hannesw Date: 2019-09-10 15:30 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8a066d872553 8230766: Changed message in IllegalMonitorStateException Reviewed-by: attila, jlaskey ! test/nashorn/script/basic/javaexceptions.js.EXPECTED Changeset: 336687518f92 Author: hannesw Date: 2019-09-10 15:35 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/336687518f92 8230709: Array index out of bounds in ES6 mode Reviewed-by: attila ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/LexicalContext.java + test/nashorn/script/basic/es6/JDK-8230709.js Changeset: 6eca527d3689 Author: igerasim Date: 2019-09-10 09:08 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/6eca527d3689 8230303: JDB hangs when running monitor command Reviewed-by: sspitsyn ! src/jdk.jdi/share/classes/com/sun/tools/example/debug/tty/TTY.java + test/hotspot/jtreg/vmTestbase/nsk/jdb/monitor/monitor002/monitor002.java + test/hotspot/jtreg/vmTestbase/nsk/jdb/monitor/monitor002/monitor002a.java Changeset: 6488adc963b8 Author: lmesnik Date: 2019-09-10 09:12 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/6488adc963b8 8230781: Add JTREG_FAILURE_HANDLER_TIMEOUT to control timeout handler timeout Reviewed-by: erikj ! make/RunTests.gmk Changeset: 874edfe72c3e Author: darcy Date: 2019-09-10 10:24 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/874edfe72c3e 8225761: Update --release 13 symbol information after JDK 13 GA Reviewed-by: jlahoda ! make/data/symbols/java.base-D.sym.txt + make/data/symbols/java.security.jgss-D.sym.txt ! make/data/symbols/jdk.compiler-D.sym.txt + make/data/symbols/jdk.jartool-D.sym.txt ! make/data/symbols/symbols Changeset: 41f119856e7c Author: mchung Date: 2019-09-10 10:35 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/41f119856e7c 8229785: MethodType::fromMethodDescriptorString should require security permission if loader is null Reviewed-by: vromero ! src/java.base/share/classes/java/lang/constant/MethodTypeDescImpl.java ! src/java.base/share/classes/java/lang/invoke/MethodType.java ! src/java.base/share/classes/sun/invoke/util/BytecodeDescriptor.java + test/jdk/java/lang/constant/methodTypeDesc/ResolveConstantDesc.java + test/jdk/java/lang/constant/methodTypeDesc/jdk.unsupported/sun/misc/Test.java + test/jdk/java/lang/constant/methodTypeDesc/test.policy ! test/jdk/java/lang/invoke/FindClassSecurityManager.java + test/jdk/java/lang/invoke/MethodTypeSecurityManager.java - test/jdk/java/lang/invoke/findclass.security.policy + test/jdk/java/lang/invoke/getclassloader.policy Changeset: 8db87a43a1ce Author: shade Date: 2019-09-10 19:58 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8db87a43a1ce 8230813: Add JDK-8010500 to compiler/loopopts/superword/TestFuzzPreLoop.java bug list Reviewed-by: zgu ! test/hotspot/jtreg/compiler/loopopts/superword/TestFuzzPreLoop.java Changeset: 931799bfbc10 Author: naoto Date: 2019-09-10 12:51 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/931799bfbc10 8229960: Remove sun.nio.cs.map system property Reviewed-by: alanb ! make/data/charsetmapping/charsets ! make/data/charsetmapping/stdcs-linux ! make/data/charsetmapping/stdcs-windows ! src/java.base/share/classes/sun/nio/cs/StandardCharsets.java.template ! src/java.base/share/lib/security/default.policy ! src/jdk.charsets/share/classes/sun/nio/cs/ext/ExtendedCharsets.java.template ! test/jdk/java/nio/charset/coders/Check.java - test/jdk/java/nio/charset/coders/SJISMappingPropTest.java - test/jdk/java/nio/charset/coders/SJISPropTest.java - test/jdk/java/nio/charset/coders/ref.windows-31j ! test/jdk/java/nio/charset/spi/default-pol ! test/jdk/sun/nio/cs/TestMS5022X.java Changeset: 8b08eaf9a0eb Author: tschatzl Date: 2019-09-11 10:19 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8b08eaf9a0eb 8230794: Improve assert to get more information about the JDK-8227695 failure Reviewed-by: kbarrett, sjohanss ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp Changeset: 9046db64ca39 Author: lkorinth Date: 2019-09-11 14:16 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/9046db64ca39 8227168: Cleanup usage of NEW_C_HEAP_ARRAY Reviewed-by: coleenp, dholmes, kbarrett, tschatzl ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/aix/os_perf_aix.cpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/solaris/os_perf_solaris.cpp ! src/hotspot/os/solaris/os_solaris.cpp ! src/hotspot/os/windows/os_perf_windows.cpp ! src/hotspot/os/windows/perfMemory_windows.cpp ! src/hotspot/share/classfile/moduleEntry.cpp ! src/hotspot/share/compiler/oopMap.cpp ! src/hotspot/share/gc/cms/parNewGeneration.cpp ! src/hotspot/share/gc/parallel/psCompactionManager.cpp ! src/hotspot/share/gc/shared/cardTableRS.cpp ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/gc/shared/workgroup.cpp ! src/hotspot/share/interpreter/oopMapCache.cpp ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/perfData.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/services/memoryManager.cpp Changeset: cddef3bde924 Author: lkorinth Date: 2019-09-11 14:16 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/cddef3bde924 8230398: Remove NULL checks before FREE_C_HEAP_ARRAY Reviewed-by: dholmes, kbarrett, tschatzl ! src/hotspot/os/aix/perfMemory_aix.cpp ! src/hotspot/os/bsd/perfMemory_bsd.cpp ! src/hotspot/os/linux/perfMemory_linux.cpp ! src/hotspot/os/solaris/os_perf_solaris.cpp ! src/hotspot/os/solaris/os_solaris.cpp ! src/hotspot/os/solaris/perfMemory_solaris.cpp ! src/hotspot/os/windows/os_perf_windows.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os/windows/perfMemory_windows.cpp ! src/hotspot/share/aot/aotCodeHeap.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/code/codeBlob.cpp ! src/hotspot/share/gc/cms/gSpaceCounters.cpp ! src/hotspot/share/gc/epsilon/epsilonMonitoringSupport.cpp ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1RemSetSummary.cpp ! src/hotspot/share/gc/g1/heapRegionManager.cpp ! src/hotspot/share/gc/g1/sparsePRT.cpp ! src/hotspot/share/gc/parallel/spaceCounters.cpp ! src/hotspot/share/gc/serial/cSpaceCounters.cpp ! src/hotspot/share/gc/shared/cardTableRS.cpp ! src/hotspot/share/gc/shared/collectorCounters.cpp ! src/hotspot/share/gc/shared/generationCounters.cpp ! src/hotspot/share/gc/shared/hSpaceCounters.cpp ! src/hotspot/share/gc/shared/workgroup.cpp ! src/hotspot/share/gc/z/zArray.inline.hpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/jfr/utilities/jfrHashtable.hpp ! src/hotspot/share/jvmci/jvmciCodeInstaller.cpp ! src/hotspot/share/memory/allocation.cpp ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/prims/unsafe.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/runtime/os_perf.hpp ! src/hotspot/share/runtime/perfData.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/services/diagnosticArgument.cpp ! src/hotspot/share/utilities/hashtable.cpp Changeset: d52f77f0acb5 Author: naoto Date: 2019-09-11 08:50 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/d52f77f0acb5 8230136: DateTimeFormatterBuilder.FractionPrinterParser#parse fails to verify minWidth Reviewed-by: joehw, scolebourne, rriggs ! src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java ! test/jdk/java/time/test/java/time/format/TestFractionPrinterParser.java Changeset: 03964761a23c Author: bobv Date: 2019-09-11 17:30 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/03964761a23c 8229202: Docker reporting causes secondary crashes in error handling Reviewed-by: coleenp, hseigel, mseledtsov ! src/hotspot/os/linux/osContainer_linux.hpp Changeset: e2de6e166880 Author: amenkov Date: 2019-09-11 11:55 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/e2de6e166880 8192057: com/sun/jdi/BadHandshakeTest.java fails with java.net.ConnectException Reviewed-by: sspitsyn, rrich ! test/jdk/com/sun/jdi/BadHandshakeTest.java Changeset: e64fec9f1773 Author: bpb Date: 2019-09-11 12:32 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/e64fec9f1773 8230342: LineNumberReader.getLineNumber() returns inconsistent results after EOF Reviewed-by: rriggs, dfuchs ! src/java.base/share/classes/java/io/BufferedReader.java ! src/java.base/share/classes/java/io/LineNumberReader.java ! test/jdk/java/io/LineNumberReader/Read.java Changeset: 91bc4d6c4054 Author: iklam Date: 2019-09-11 13:28 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/91bc4d6c4054 8230674: Heap dumps should exclude dormant CDS archived objects of unloaded classes Reviewed-by: dholmes, jiangli ! src/hotspot/share/services/heapDumper.cpp Changeset: c0cc906cb29c Author: darcy Date: 2019-09-11 16:06 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/c0cc906cb29c 8230734: Remove default constructors from java.compiler Reviewed-by: jjg ! src/java.compiler/share/classes/javax/tools/DiagnosticCollector.java ! src/java.compiler/share/classes/javax/tools/ToolProvider.java Changeset: b00b4706ec0f Author: afarley Date: 2019-09-11 23:10 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/b00b4706ec0f 8229378: jdwp library loader in linker_md.c quietly truncates on buffer overflow Summary: Check buffer overflow when the jdwp agent full dll name is built Reviewed-by: cjplummer, sspitsyn ! src/jdk.jdwp.agent/unix/native/libjdwp/linker_md.c ! src/jdk.jdwp.agent/windows/native/libjdwp/linker_md.c Changeset: 50e1d346a126 Author: lmesnik Date: 2019-09-11 16:25 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/50e1d346a126 8230830: No required ResourceMark in src/hotspot/share/prims/jvmtiImpl.cpp:JvmtiSuspendControl::print() Reviewed-by: dholmes, cjplummer, sspitsyn ! src/hotspot/share/prims/jvmtiImpl.cpp Changeset: 0f6c749acd15 Author: jwilhelm Date: 2019-09-12 03:21 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/0f6c749acd15 Added tag jdk-14+14 for changeset cddef3bde924 ! .hgtags Changeset: adc72cd1d1f2 Author: dholmes Date: 2019-09-11 22:09 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/adc72cd1d1f2 8230423: Move os::sleep to JavaThread::sleep Reviewed-by: rehn, dcubed ! src/hotspot/cpu/x86/rdtsc_x86.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/jvmci/jvmciCompiler.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! test/hotspot/gtest/gc/g1/test_g1FreeIdSet.cpp ! test/hotspot/gtest/gc/shared/test_ptrQueueBufferAllocator.cpp ! test/hotspot/gtest/utilities/test_singleWriterSynchronizer.cpp Changeset: 0d97bf7cf8a4 Author: iklam Date: 2019-09-11 18:31 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/0d97bf7cf8a4 8230586: Encapsulate fields in filemap.hpp Reviewed-by: ccheung ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/include/cds.h ! src/hotspot/share/interpreter/abstractInterpreter.cpp ! src/hotspot/share/memory/dynamicArchive.cpp ! src/hotspot/share/memory/dynamicArchive.hpp ! src/hotspot/share/memory/filemap.cpp ! src/hotspot/share/memory/filemap.hpp ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/memory/metaspaceShared.hpp ! src/hotspot/share/prims/cdsoffsets.cpp ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArchiveConsistency.java Changeset: fa0514bdc09b Author: mbaesken Date: 2019-09-11 16:54 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/fa0514bdc09b 8230861: missing ReleaseStringUTFChars in Java_sun_security_pkcs11_wrapper_PKCS11_connect Reviewed-by: alanb, stuefe ! src/jdk.crypto.cryptoki/unix/native/libj2pkcs11/p11_md.c Changeset: ea93d6a9f720 Author: mbaesken Date: 2019-09-11 16:13 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ea93d6a9f720 8230856: Java_java_net_NetworkInterface_getByName0 on unix misses ReleaseStringUTFChars in early return Reviewed-by: dfuchs, stuefe, vtewari ! src/java.base/unix/native/libnet/NetworkInterface.c Changeset: b2a4b22f8cf2 Author: roland Date: 2019-08-23 14:22 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b2a4b22f8cf2 8229701: aarch64: C2 OSR compilation fails with "shouldn't process one node several times" in final graph reshaping Reviewed-by: thartmann, kvn ! src/hotspot/share/opto/compile.cpp + test/hotspot/jtreg/compiler/c2/aarch64/ConvI2LWideningAssertTooStrong.java Changeset: 689a80d20550 Author: chagedorn Date: 2019-09-12 12:12 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/689a80d20550 8230762: Change MacroAssembler::debug32/64 to use fatal instead of assert Summary: Always call fatal from debug32/64 to also crash in product build as a follow-up to JDK-8225653. Reviewed-by: roland, thartmann ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_32.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp Changeset: 46e11f978852 Author: chagedorn Date: 2019-09-12 12:23 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/46e11f978852 8220416: Comparison of klass pointers is not optimized any more Summary: Enables dead klass pointer optimization (since JDK-6964458) again. Reviewed-by: roland, thartmann ! src/hotspot/share/opto/subnode.cpp Changeset: efcda145fb2c Author: stuefe Date: 2019-09-12 12:51 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/efcda145fb2c 8230888: jfrVirtualMemory.cpp should include globals.hpp Reviewed-by: dholmes, mgronlun ! src/hotspot/share/jfr/recorder/storage/jfrVirtualMemory.cpp Changeset: 79186d82463e Author: roland Date: 2019-09-03 09:28 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/79186d82463e 8230470: Shenandoah doesn't need change from JDK-8212610 anymore Reviewed-by: thartmann ! src/hotspot/share/opto/loopPredicate.cpp ! src/hotspot/share/opto/loopnode.hpp Changeset: 5302477c8285 Author: dfuchs Date: 2019-09-12 15:46 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/5302477c8285 8230858: Replace wildcard address with loopback or local host in tests - part 23 Summary: Add new traces for better diagnosis, refrain binding to the wildcard address when possible. Reviewed-by: chegar, xuelei ! test/jdk/java/net/CookieHandler/CookieManagerTest.java ! test/jdk/java/net/Socket/HttpProxy.java ! test/jdk/java/net/Socket/NullHost.java ! test/jdk/sun/net/www/http/KeepAliveCache/B5045306.java ! test/jdk/sun/net/www/protocol/https/HttpsClient/ServerIdentityTest.java ! test/jdk/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java ! test/jdk/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java ! test/jdk/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java ! test/jdk/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java ! test/jdk/sun/net/www/protocol/https/HttpsURLConnection/Identities.java ! test/jdk/sun/net/www/protocol/https/HttpsURLConnection/ImpactOnSNI.java ! test/jdk/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java ! test/jdk/sun/net/www/protocol/jar/B4957695.java Changeset: 85e1de070bef Author: ccheung Date: 2019-09-12 09:59 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/85e1de070bef 8186988: use log_warning() and log_error() instead of tty->print_cr for CDS warning and error messages Reviewed-by: stuefe, iklam, dholmes ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/memory/filemap.cpp ! src/hotspot/share/memory/metaspaceShared.cpp Changeset: f63f50a4bf43 Author: igerasim Date: 2019-09-12 11:07 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f63f50a4bf43 8230829: Matcher matches a surrogate pair that crosses border of the region Reviewed-by: naoto ! src/java.base/share/classes/java/util/regex/Pattern.java ! test/jdk/java/util/regex/RegExTest.java Changeset: 48d51def09f9 Author: pliden Date: 2019-09-13 08:40 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/48d51def09f9 8230845: ZGC: Implement ZLock using os::PlatformMutex Reviewed-by: stefank ! src/hotspot/share/gc/z/zLock.hpp ! src/hotspot/share/gc/z/zLock.inline.hpp Changeset: 70aebd567a5c Author: pliden Date: 2019-09-13 08:40 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/70aebd567a5c 8230846: ZGC: Make ZUtils::alloc_aligned() posix-specific Reviewed-by: stefank + src/hotspot/os/posix/gc/z/zUtils_posix.cpp - src/hotspot/share/gc/z/zUtils.cpp Changeset: dc792fa77da0 Author: pliden Date: 2019-09-13 08:40 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/dc792fa77da0 8230877: Rename THREAD_LOCAL_DECL to THREAD_LOCAL Reviewed-by: kbarrett, dholmes ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/utilities/globalDefinitions_gcc.hpp ! src/hotspot/share/utilities/globalDefinitions_solstudio.hpp ! src/hotspot/share/utilities/globalDefinitions_visCPP.hpp ! src/hotspot/share/utilities/globalDefinitions_xlc.hpp Changeset: 9b4717ca9bd1 Author: pliden Date: 2019-09-13 08:40 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/9b4717ca9bd1 8230878: ZGC: Use THREAD_LOCAL instead of __thread Reviewed-by: kbarrett ! src/hotspot/share/gc/z/zCPU.cpp ! src/hotspot/share/gc/z/zCPU.hpp ! src/hotspot/share/gc/z/zStat.cpp ! src/hotspot/share/gc/z/zStat.hpp ! src/hotspot/share/gc/z/zThread.cpp ! src/hotspot/share/gc/z/zThread.hpp Changeset: 1def54255e93 Author: prappo Date: 2019-09-13 11:00 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/1def54255e93 8151678: com/sun/jndi/ldap/LdapTimeoutTest.java failed due to timeout on DeadServerNoTimeoutTest is incorrect Reviewed-by: dfuchs, martin, robm ! src/java.naming/share/classes/com/sun/jndi/ldap/DefaultLdapDnsProvider.java ! src/java.naming/share/classes/com/sun/jndi/ldap/LdapDnsProviderService.java ! test/jdk/ProblemList.txt ! test/jdk/com/sun/jndi/ldap/LdapTimeoutTest.java ! test/jdk/com/sun/jndi/ldap/lib/BaseLdapServer.java Changeset: 41082cd965cc Author: lmesnik Date: 2019-09-13 09:34 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/41082cd965cc 8230881: serviceability/sa/TestJmapCore tests fail with java.lang.RuntimeException: Could not find dump file Reviewed-by: dholmes, cjplummer ! test/hotspot/jtreg/serviceability/sa/TestJmapCore.java Changeset: 88bbe06ab8d6 Author: bchristi Date: 2019-09-13 09:33 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/88bbe06ab8d6 8230937: Update bugid in ProblemList for vmTestbase/nsk/jdb/eval/eval001/eval001.java Reviewed-by: dholmes, mchung ! test/hotspot/jtreg/ProblemList.txt Changeset: ff0eae1719d0 Author: dcubed Date: 2019-09-13 18:54 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/ff0eae1719d0 8230938: Deprecate MonitorBound Reviewed-by: dholmes ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/globals.hpp Changeset: 3054503bad7d Author: bpb Date: 2019-09-13 16:03 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/3054503bad7d 8230085: (fs) FileStore::isReadOnly is always true on macOS Catalina Reviewed-by: alanb ! src/java.base/macosx/classes/sun/nio/fs/BsdFileStore.java ! src/java.base/macosx/classes/sun/nio/fs/BsdNativeDispatcher.java ! src/java.base/macosx/native/libnio/fs/BsdNativeDispatcher.c ! src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java Changeset: caa25ab47aca Author: mgronlun Date: 2019-09-14 14:40 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/caa25ab47aca 8225797: OldObjectSample event creates unexpected amount of checkpoint data Reviewed-by: egahlin ! src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp ! src/hotspot/share/jfr/jfr.cpp ! src/hotspot/share/jfr/leakprofiler/chains/edgeStore.cpp ! src/hotspot/share/jfr/leakprofiler/chains/edgeStore.hpp ! src/hotspot/share/jfr/leakprofiler/chains/pathToGcRootsOperation.cpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.hpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleWriter.cpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp ! src/hotspot/share/jfr/leakprofiler/sampling/objectSample.hpp ! src/hotspot/share/jfr/leakprofiler/sampling/objectSampler.cpp ! src/hotspot/share/jfr/leakprofiler/sampling/objectSampler.hpp ! src/hotspot/share/jfr/leakprofiler/sampling/sampleList.hpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.hpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.cpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.hpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointWriter.cpp ! src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointWriter.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp - src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetWriter.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceId.inline.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdBits.inline.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdEpoch.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/traceid/jfrTraceIdMacros.hpp ! src/hotspot/share/jfr/recorder/repository/jfrChunkState.cpp ! src/hotspot/share/jfr/recorder/repository/jfrChunkState.hpp ! src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.cpp ! src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.hpp ! src/hotspot/share/jfr/recorder/service/jfrRecorderService.cpp + src/hotspot/share/jfr/recorder/stacktrace/jfrStackTrace.cpp + src/hotspot/share/jfr/recorder/stacktrace/jfrStackTrace.hpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.cpp ! src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.hpp ! src/hotspot/share/jfr/recorder/storage/jfrMemorySpace.hpp ! src/hotspot/share/jfr/recorder/storage/jfrMemorySpace.inline.hpp ! src/hotspot/share/jfr/support/jfrKlassExtension.hpp ! src/hotspot/share/jfr/support/jfrThreadLocal.cpp ! src/hotspot/share/jfr/support/jfrThreadLocal.hpp ! src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp + src/hotspot/share/jfr/utilities/jfrBlob.cpp + src/hotspot/share/jfr/utilities/jfrBlob.hpp ! src/hotspot/share/jfr/utilities/jfrHashtable.hpp ! src/hotspot/share/jfr/utilities/jfrTypes.hpp + src/hotspot/share/jfr/writers/jfrTypeWriterHost.hpp ! src/hotspot/share/jfr/writers/jfrWriterHost.inline.hpp Changeset: 515fc9f6b2d6 Author: mgronlun Date: 2019-09-14 18:45 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/515fc9f6b2d6 8231025: Incorrect method tag offset for big endian platform Reviewed-by: egahlin ! src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp Changeset: 51cd29502ea9 Author: dl Date: 2019-09-14 11:16 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/51cd29502ea9 8229442: AQS and lock classes refresh Reviewed-by: martin ! src/java.base/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java ! src/java.base/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java ! src/java.base/share/classes/java/util/concurrent/locks/Lock.java ! src/java.base/share/classes/java/util/concurrent/locks/LockSupport.java ! src/java.base/share/classes/java/util/concurrent/locks/ReentrantLock.java ! src/java.base/share/classes/java/util/concurrent/locks/StampedLock.java ! test/jdk/java/util/concurrent/locks/Lock/CheckedLockLoops.java ! test/jdk/java/util/concurrent/locks/Lock/FlakyMutex.java ! test/jdk/java/util/concurrent/locks/Lock/TimedAcquireLeak.java ! test/jdk/java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java ! test/jdk/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java ! test/jdk/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java ! test/jdk/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java ! test/jdk/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java Changeset: 2081ff900d65 Author: dl Date: 2019-09-14 11:20 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/2081ff900d65 8227235: rare failures in testForkHelpQuiesce tck tests Reviewed-by: martin, alanb ! test/jdk/java/util/concurrent/tck/ForkJoinTask8Test.java ! test/jdk/java/util/concurrent/tck/ForkJoinTaskTest.java Changeset: f689a48dba4b Author: dl Date: 2019-09-14 11:24 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f689a48dba4b 8221168: java/util/concurrent/CountDownLatch/Basic.java fails Reviewed-by: martin, alanb ! test/jdk/java/util/concurrent/CountDownLatch/Basic.java Changeset: 6a556bcd94fc Author: dl Date: 2019-09-14 11:26 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/6a556bcd94fc 8145138: CyclicBarrier/Basic.java failed with "3 not equal to 4" Reviewed-by: martin, alanb ! test/jdk/java/util/concurrent/CyclicBarrier/Basic.java Changeset: 1e4270f875ee Author: dl Date: 2019-09-14 11:26 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/1e4270f875ee 8225490: Miscellaneous changes imported from jsr166 CVS 2019-09 Reviewed-by: martin, alanb ! src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java ! src/java.base/share/classes/java/util/concurrent/Phaser.java ! src/java.base/share/classes/java/util/concurrent/ThreadLocalRandom.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicInteger.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicLong.java ! src/java.base/share/classes/java/util/concurrent/package-info.java ! test/jdk/java/util/Map/Get.java ! test/jdk/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java ! test/jdk/java/util/concurrent/ConcurrentHashMap/MapCheck.java ! test/jdk/java/util/concurrent/ConcurrentHashMap/MapLoops.java ! test/jdk/java/util/concurrent/ConcurrentHashMap/ToArray.java ! test/jdk/java/util/concurrent/ConcurrentQueues/OfferRemoveLoops.java ! test/jdk/java/util/concurrent/FutureTask/BlockingTaskExecutor.java ! test/jdk/java/util/concurrent/FutureTask/CancelledFutureLoops.java ! test/jdk/java/util/concurrent/FutureTask/DoneTimedGetLoops.java ! test/jdk/java/util/concurrent/Phaser/FickleRegister.java ! test/jdk/java/util/concurrent/Phaser/TieredArriveLoops.java ! test/jdk/java/util/concurrent/ScheduledThreadPoolExecutor/GCRetention.java ! test/jdk/java/util/concurrent/TimeUnit/Basic.java ! test/jdk/java/util/concurrent/atomic/DoubleAdderDemo.java ! test/jdk/java/util/concurrent/tck/AbstractQueuedLongSynchronizerTest.java ! test/jdk/java/util/concurrent/tck/AbstractQueuedSynchronizerTest.java ! test/jdk/java/util/concurrent/tck/ArrayBlockingQueueTest.java ! test/jdk/java/util/concurrent/tck/BlockingQueueTest.java ! test/jdk/java/util/concurrent/tck/ConcurrentLinkedDequeTest.java ! test/jdk/java/util/concurrent/tck/CountDownLatchTest.java ! test/jdk/java/util/concurrent/tck/CyclicBarrierTest.java ! test/jdk/java/util/concurrent/tck/DelayQueueTest.java ! test/jdk/java/util/concurrent/tck/DoubleAccumulatorTest.java ! test/jdk/java/util/concurrent/tck/ForkJoinPool9Test.java ! test/jdk/java/util/concurrent/tck/FutureTaskTest.java ! test/jdk/java/util/concurrent/tck/JSR166TestCase.java ! test/jdk/java/util/concurrent/tck/LinkedBlockingDequeTest.java ! test/jdk/java/util/concurrent/tck/LinkedBlockingQueueTest.java ! test/jdk/java/util/concurrent/tck/LinkedTransferQueueTest.java ! test/jdk/java/util/concurrent/tck/LongAccumulatorTest.java ! test/jdk/java/util/concurrent/tck/MapTest.java ! test/jdk/java/util/concurrent/tck/PhaserTest.java ! test/jdk/java/util/concurrent/tck/PriorityBlockingQueueTest.java ! test/jdk/java/util/concurrent/tck/ScheduledExecutorSubclassTest.java ! test/jdk/java/util/concurrent/tck/ScheduledExecutorTest.java ! test/jdk/java/util/concurrent/tck/SemaphoreTest.java ! test/jdk/java/util/concurrent/tck/SynchronousQueueTest.java ! test/jdk/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java ! test/jdk/java/util/concurrent/tck/ThreadPoolExecutorTest.java ! test/jdk/java/util/concurrent/tck/TimeUnitTest.java Changeset: 593005ac5a0a Author: stooke Date: 2019-09-15 07:47 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/593005ac5a0a 8216354: Syntax error in toolchain_windows.m4 Reviewed-by: erikj, dholmes, clanger ! make/autoconf/toolchain_windows.m4 Changeset: a6f653312b19 Author: stuefe Date: 2019-09-15 08:41 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/a6f653312b19 8230910: libsspi_bridge does not build on Windows 32bit Reviewed-by: alanb, weijun ! src/java.security.jgss/windows/native/libsspi_bridge/sspi.cpp Changeset: a6c85c21aa39 Author: darcy Date: 2019-09-15 13:23 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/a6c85c21aa39 8230882: Use @index in javax.lang.model javadoc Reviewed-by: jjg ! src/java.compiler/share/classes/javax/lang/model/package-info.java Changeset: 24df796eef3d Author: dholmes Date: 2019-09-15 21:00 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/24df796eef3d 8231033: Problemlist ReservedStackTest 8231034: ProblemList failing ThreadMXBean tests Reviewed-by: darcy ! test/hotspot/jtreg/ProblemList.txt ! test/jdk/ProblemList.txt Changeset: b35771556cd0 Author: clanger Date: 2019-09-16 09:21 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b35771556cd0 8230850: Test sun/tools/jcmd/TestProcessHelper.java fails intermittently Reviewed-by: stuefe, cjplummer, sgehwolf ! test/jdk/sun/tools/jcmd/TestProcessHelper.java Changeset: d003b3ef8b60 Author: clanger Date: 2019-09-16 09:28 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d003b3ef8b60 8230854: Cleanup SuppressWarnings in test lib and remove noisy traces in StreamPumper Reviewed-by: stuefe, dholmes ! test/lib/jdk/test/lib/Platform.java ! test/lib/jdk/test/lib/Utils.java ! test/lib/jdk/test/lib/process/ProcessTools.java ! test/lib/jdk/test/lib/process/StreamPumper.java Changeset: 00aebe177a71 Author: thartmann Date: 2019-09-16 13:53 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/00aebe177a71 8230742: Make AggressiveUnboxing a diagnostic flag Summary: AggressiveUnboxing is enabled by default. It should therefore be a diagnostic flag. Reviewed-by: roland, shade ! src/hotspot/share/opto/c2_globals.hpp Changeset: 6a30ad1cfeec Author: mbaesken Date: 2019-09-13 11:04 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/6a30ad1cfeec 8230901: missing ReleaseStringUTFChars in serviceability native code Reviewed-by: stuefe, sspitsyn ! src/java.instrument/share/native/libinstrument/JPLISAgent.c ! src/jdk.hotspot.agent/solaris/native/libsaproc/saproc.cpp Changeset: d349347d6b5f Author: mbaesken Date: 2019-09-13 07:43 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d349347d6b5f 8230900: missing ReleaseStringUTFChars in java.desktop native code Reviewed-by: clanger, prr ! src/java.desktop/unix/native/common/awt/fontpath.c ! src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp Changeset: 272910ccd7bb Author: pliden Date: 2019-09-17 09:51 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/272910ccd7bb 8230796: Remove BarrierSet::oop_equals_operator_allowed() Reviewed-by: tschatzl, shade ! src/hotspot/share/gc/shared/barrierSet.hpp ! src/hotspot/share/oops/oopsHierarchy.cpp ! src/hotspot/share/oops/oopsHierarchy.hpp Changeset: 470af058bd5f Author: pliden Date: 2019-09-17 09:51 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/470af058bd5f 8230808: Remove Access::equals() Reviewed-by: tschatzl, shade ! src/hotspot/share/gc/shared/barrierSet.hpp - src/hotspot/share/oops/access.cpp ! src/hotspot/share/oops/access.hpp ! src/hotspot/share/oops/access.inline.hpp ! src/hotspot/share/oops/accessBackend.hpp ! src/hotspot/share/oops/oop.hpp Changeset: 4932dce35882 Author: pliden Date: 2019-09-17 09:51 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/4932dce35882 8230841: Remove oopDesc::equals() Reviewed-by: rkennke, tschatzl ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciObjectFactory.cpp ! src/hotspot/share/ci/ciObjectFactory.hpp ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/classfile/classLoaderStats.hpp ! src/hotspot/share/classfile/dictionary.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.inline.hpp ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/classfile/protectionDomainCache.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/code/dependencies.cpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/gc/shared/referenceProcessor.cpp ! src/hotspot/share/gc/shared/referenceProcessor.hpp ! src/hotspot/share/gc/shared/stringdedup/stringDedupTable.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/interpreter/bytecodeInterpreter.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/jvmci/jvmciCompiler.cpp ! src/hotspot/share/memory/heapShared.hpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/oops/compressedOops.inline.hpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/objArrayKlass.cpp ! src/hotspot/share/oops/oop.hpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiTagMap.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/prims/stackwalk.cpp ! src/hotspot/share/prims/unsafe.cpp ! src/hotspot/share/runtime/biasedLocking.cpp ! src/hotspot/share/runtime/handles.hpp ! src/hotspot/share/runtime/jniHandles.inline.hpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/vframe.cpp ! src/hotspot/share/services/memoryManager.hpp ! src/hotspot/share/services/memoryPool.hpp ! src/hotspot/share/services/threadService.cpp ! src/hotspot/share/utilities/exceptions.cpp ! src/hotspot/share/utilities/growableArray.hpp Changeset: bb1aaed00341 Author: pliden Date: 2019-09-17 09:51 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/bb1aaed00341 8231051: Remove check_obj_alignment() and replace with is_object_aligned() Reviewed-by: tschatzl, shade ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/memory/heapShared.inline.hpp ! src/hotspot/share/oops/compressedOops.inline.hpp ! src/hotspot/share/oops/oopsHierarchy.hpp Changeset: 8ee083465318 Author: coffeys Date: 2019-09-17 11:07 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/8ee083465318 8223490: Optimize search algorithm for determining default time zone Reviewed-by: naoto, rriggs ! src/java.base/unix/native/libjava/TimeZone_md.c Changeset: 2f301425af62 Author: jiefu Date: 2019-09-17 20:38 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/2f301425af62 8230943: False deadlock detection with -XX:+CIPrintCompileQueue after JDK-8163511 Reviewed-by: dholmes, thartmann ! src/hotspot/share/compiler/compileBroker.cpp + test/hotspot/jtreg/compiler/print/PrintCompileQueue.java Changeset: 9adf95692a3d Author: zgu Date: 2019-09-17 08:22 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/9adf95692a3d 8230350: Shenandoah: Assertion failed when GC is cancelled by a worker thread Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 8a8e87e8a4fd Author: coffeys Date: 2019-09-17 16:39 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/8a8e87e8a4fd 8231124: Missing closedir call with JDK-8223490 Reviewed-by: naoto ! src/java.base/unix/native/libjava/TimeZone_md.c Changeset: 6a05019acb67 Author: lancea Date: 2019-09-17 14:00 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/6a05019acb67 8230870: (zipfs) Add a ZIP FS test that is similar to test/jdk/java/util/zip/EntryCount64k.java Reviewed-by: clanger, martin + test/jdk/jdk/nio/zipfs/LargeEntriesTest.java Changeset: a82fe7a88ce4 Author: jiefu Date: 2019-09-17 09:20 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/a82fe7a88ce4 8231024: Improve the debug info when the output is truncated Reviewed-by: iklam, dholmes ! src/hotspot/share/utilities/ostream.cpp Changeset: cea6839598e8 Author: dholmes Date: 2019-09-17 19:09 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/cea6839598e8 8230424: Use platform independent code for Thread.interrupt support 8231094: os::sleep in assert message should be changed to JavaThread::sleep Reviewed-by: rehn, dcubed ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/solaris/os_solaris.cpp ! src/hotspot/os/windows/osThread_windows.cpp ! src/hotspot/os/windows/osThread_windows.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiEnv.cpp ! src/hotspot/share/prims/jvmtiRawMonitor.cpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/os.hpp ! src/hotspot/share/runtime/osThread.cpp ! src/hotspot/share/runtime/osThread.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp Changeset: c46407f651a9 Author: serb Date: 2019-09-17 19:52 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/c46407f651a9 8231027: Correct typos Reviewed-by: lancea, dholmes, erikj ! make/autoconf/buildjdk-spec.gmk.in ! make/autoconf/spec.gmk.in ! src/hotspot/share/opto/block.hpp ! src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java ! src/java.xml/share/classes/com/sun/xml/internal/stream/StaxXMLInputSource.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/doubleconv/BignumDtoa.java ! test/jdk/java/awt/GradientPaint/LinearColorSpaceGradientTest.java ! test/jdk/java/awt/Graphics2D/DrawString/XRenderElt254TextTest.java ! test/jdk/java/nio/channels/Selector/WakeupSpeed.java ! test/jdk/java/text/Format/DecimalFormat/FormatMicroBenchmark.java Changeset: a45cce906207 Author: mbaesken Date: 2019-07-23 16:52 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/a45cce906207 8228482: fix xlc16/xlclang comparison of distinct pointer types and string literal conversion warnings Reviewed-by: clanger, mdoerr ! src/hotspot/os/aix/libodm_aix.cpp ! src/hotspot/os/aix/libodm_aix.hpp ! src/hotspot/os/aix/os_aix.cpp ! src/java.base/aix/native/libjli/java_md_aix.c ! src/java.base/unix/native/libnet/NetworkInterface.c ! src/java.desktop/aix/native/libawt/porting_aix.c Changeset: dfd434203aa0 Author: jlahoda Date: 2019-09-18 10:41 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/dfd434203aa0 8228460: bootstrap class path not set in conjunction with -source 11 Summary: Ensuring implicit system module path is checked for the no-bootclasspath warning for -source >= 9. Reviewed-by: vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/BaseFileManager.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties + test/langtools/tools/javac/diags/examples/SourceNoSystemModulesPath.java + test/langtools/tools/javac/options/BCPOrSystemNotSpecified.java ! test/langtools/tools/javac/var_implicit_lambda/VarInImplicitLambdaNegTest01_source10.out Changeset: 0f3c23c374a4 Author: phh Date: 2019-09-18 05:41 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/0f3c23c374a4 8207266: ThreadMXBean::getThreadAllocatedBytes() can be quicker for self thread Summary: Add com.sun.management.getCurrentThreadAllocatedBytes, implement getThreadAllocatedBytes(long) independent of getThreadAllocatedBytes(long[]) Reviewed-by: mchung, dholmes, sspitsyn ! src/hotspot/share/include/jmm.h ! src/hotspot/share/services/management.cpp ! src/java.management/share/classes/java/lang/management/ThreadMXBean.java ! src/java.management/share/classes/sun/management/ThreadImpl.java ! src/java.management/share/native/libmanagement/ThreadImpl.c ! src/jdk.management/share/classes/com/sun/management/ThreadMXBean.java ! src/jdk.management/share/classes/com/sun/management/internal/HotSpotThreadImpl.java ! test/jdk/com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java Changeset: 377f47ccc20b Author: jlahoda Date: 2019-09-18 15:13 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/377f47ccc20b 8231176: Test tools/javac/options/BCPOrSystemNotSpecified.java broken on Windows Summary: Temporarily disabling BCPOrSystemNotSpecified.java test on Windows. Reviewed-by: vromero ! test/langtools/ProblemList.txt Changeset: 8c44ac2a908e Author: epavlova Date: 2019-09-18 10:58 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/8c44ac2a908e 8231145: [Graal] org.graalvm.compiler.debug.test.DebugContextTest fails because DebugContextTest.testLogging.input is not available Reviewed-by: erikj, iveresov, ihse ! make/test/JtregGraalUnit.gmk ! test/hotspot/jtreg/ProblemList-graal.txt Changeset: 0368f3a073a9 Author: jwilhelm Date: 2019-09-06 17:50 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/0368f3a073a9 Added tag jdk-13-ga for changeset 9c250a7600e1 ! .hgtags Changeset: f43c809a27bd Author: jwilhelm Date: 2019-09-18 11:48 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f43c809a27bd Merge ! .hgtags Changeset: b1a394e15ae9 Author: rkennke Date: 2019-09-18 20:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b1a394e15ae9 8231085: C2/GC: Better GC-interface for expanding clone Reviewed-by: eosterlund ! src/hotspot/share/gc/shared/c2/barrierSetC2.cpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/opto/macro.hpp ! src/hotspot/share/opto/macroArrayCopy.cpp Changeset: 0d7877278adf Author: rkennke Date: 2019-09-18 20:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/0d7877278adf 8231086: Shenandoah: Stronger invariant for object-arraycopy Reviewed-by: shade ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.hpp Changeset: bc0648405d67 Author: rkennke Date: 2019-09-18 20:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/bc0648405d67 8231087: Shenandoah: Self-fixing load reference barriers for C1/C2 Reviewed-by: shade ! src/hotspot/cpu/aarch64/gc/shenandoah/c1/shenandoahBarrierSetC1_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/x86/gc/shenandoah/c1/shenandoahBarrierSetC1_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.hpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: 2c4185d7276a Author: amenkov Date: 2019-09-18 12:13 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/2c4185d7276a 8186825: some memory leak issues in the transport_startTransport Reviewed-by: sspitsyn, phh ! src/jdk.jdwp.agent/share/native/libjdwp/transport.c Changeset: b73753eff8b7 Author: godin Date: 2019-09-18 21:20 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b73753eff8b7 8066774: Rename the annotations arrays names in ClassFileParser Reviewed-by: shade, coleenp, dholmes Contributed-by: Evgeny Mandrikov ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp Changeset: ee37c9b2eb61 Author: dholmes Date: 2019-09-18 17:31 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/ee37c9b2eb61 8231162: JVMTI RawMonitorWait triggers assertion failure: Only JavaThreads can be interruptible Reviewed-by: dcubed ! src/hotspot/share/prims/jvmtiEnv.cpp Changeset: 778fc2dcbdaa Author: dcubed Date: 2019-09-18 20:49 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/778fc2dcbdaa 8231210: [BACKOUT] JDK-8207266 ThreadMXBean::getThreadAllocatedBytes() can be quicker for self thread Reviewed-by: phh, dholmes ! src/hotspot/share/include/jmm.h ! src/hotspot/share/services/management.cpp ! src/java.management/share/classes/java/lang/management/ThreadMXBean.java ! src/java.management/share/classes/sun/management/ThreadImpl.java ! src/java.management/share/native/libmanagement/ThreadImpl.c ! src/jdk.management/share/classes/com/sun/management/ThreadMXBean.java ! src/jdk.management/share/classes/com/sun/management/internal/HotSpotThreadImpl.java ! test/jdk/com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java Changeset: 94f71d633542 Author: jwilhelm Date: 2019-09-19 00:19 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/94f71d633542 Added tag jdk-14+15 for changeset 778fc2dcbdaa ! .hgtags Changeset: 4eebb9aadbe3 Author: shade Date: 2019-09-19 09:50 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/4eebb9aadbe3 8231201: hs_err should print coalesced safepoint operations in Events section Reviewed-by: phh, dholmes ! src/hotspot/share/runtime/vmThread.cpp Changeset: 408c445d04e8 Author: rehn Date: 2019-09-19 10:52 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/408c445d04e8 8226705: [REDO] Deoptimize with handshakes Reviewed-by: eosterlund, dcubed, dlong, pchilanomate ! src/hotspot/share/aot/aotCodeHeap.cpp ! src/hotspot/share/aot/aotCompiledMethod.cpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/code/compiledMethod.cpp ! src/hotspot/share/code/compiledMethod.hpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/nmethod.hpp ! src/hotspot/share/gc/z/zBarrierSetNMethod.cpp ! src/hotspot/share/gc/z/zNMethod.cpp ! src/hotspot/share/jvmci/jvmciEnv.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/prims/jvmtiEventController.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/biasedLocking.cpp ! src/hotspot/share/runtime/biasedLocking.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/deoptimization.hpp ! src/hotspot/share/runtime/mutex.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/tieredThresholdPolicy.cpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/services/dtraceAttacher.cpp + test/hotspot/jtreg/compiler/codecache/stress/UnexpectedDeoptimizationAllTest.java Changeset: 722a19a45994 Author: pliden Date: 2019-09-19 16:05 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/722a19a45994 8231113: Remove CollectedHeap::check_oop_location() Reviewed-by: stefank, eosterlund, tschatzl ! src/hotspot/share/gc/cms/cmsHeap.hpp ! src/hotspot/share/gc/g1/g1OopClosures.inline.hpp ! src/hotspot/share/gc/serial/markSweep.inline.hpp ! src/hotspot/share/gc/shared/collectedHeap.cpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zCollectedHeap.hpp ! src/hotspot/share/oops/compressedOops.inline.hpp ! src/hotspot/share/oops/oop.cpp Changeset: 0ff1aeedc338 Author: joehw Date: 2019-09-19 16:53 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/0ff1aeedc338 8230814: Enable SAX ContentHandler to handle XML Declaration Reviewed-by: lancea, dfuchs, alanb ! src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java ! src/java.xml/share/classes/org/xml/sax/ContentHandler.java + test/jaxp/javax/xml/jaxp/unittest/sax/DeclarationTest.java Changeset: 13e041be4e5c Author: shade Date: 2019-09-19 20:26 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/13e041be4e5c 8231197: Shenandoah: JVMTI heap walking cleanup crashes with NULL forwardee Reviewed-by: zgu, rkennke ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: de9d23469c68 Author: shade Date: 2019-09-19 20:26 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/de9d23469c68 8231198: Shenandoah: heap walking should visit all roots most of the time Reviewed-by: zgu, rkennke ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 89033e6641ed Author: shade Date: 2019-09-19 20:26 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/89033e6641ed 8231244: Shenandoah: all-roots heap walking misses some weak roots Reviewed-by: zgu, rkennke ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp Changeset: 0cc0fd308822 Author: bpb Date: 2019-09-19 12:01 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/0cc0fd308822 8231149: (fs) Small verbiage errors in java.nio.file package documentation Reviewed-by: lancea, alanb ! src/java.base/share/classes/java/nio/file/package-info.java Changeset: 932b94295034 Author: stefank Date: 2019-09-10 17:07 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/932b94295034 8230756: ZGC: Remove redundant memset in ZStatValue Reviewed-by: tschatzl, pliden ! src/hotspot/share/gc/z/zStat.cpp Changeset: 312126722609 Author: stefank Date: 2019-09-10 17:07 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/312126722609 8230758: ZGC: Add missing precompiled include and fix friend declaration Reviewed-by: tschatzl, pliden ! src/hotspot/share/gc/z/zForwardingEntry.hpp ! src/hotspot/share/gc/z/zNUMA.cpp Changeset: 944b58cbaf93 Author: stefank Date: 2019-09-11 09:47 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/944b58cbaf93 8230759: ZGC: Fix integer types Reviewed-by: pliden ! src/hotspot/share/gc/z/zAttachedArray.hpp ! src/hotspot/share/gc/z/zAttachedArray.inline.hpp ! src/hotspot/share/gc/z/zForwarding.cpp ! src/hotspot/share/gc/z/zForwarding.hpp ! src/hotspot/share/gc/z/zForwarding.inline.hpp ! src/hotspot/share/gc/z/zNMethodData.cpp ! src/hotspot/share/gc/z/zRelocate.cpp ! src/hotspot/share/gc/z/zStat.cpp ! src/hotspot/share/gc/z/zUncommitter.cpp ! test/hotspot/gtest/gc/z/test_zForwarding.cpp Changeset: 3386b9a8ef4d Author: redestad Date: 2019-09-19 23:38 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/3386b9a8ef4d 8230768: Arrays of SoftReferences in MethodTypeForm should not be @Stable Reviewed-by: mchung ! src/java.base/share/classes/java/lang/invoke/MethodTypeForm.java Changeset: 046533575954 Author: cito Date: 2019-01-26 15:47 +0900 URL: https://hg.openjdk.java.net/amber/amber/rev/046533575954 8216565: Specifying the same path creates a new directory in JFR.configure Reviewed-by: ysuenaga, egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/Repository.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/SecuritySupport.java ! test/jdk/jdk/jfr/jcmd/TestJcmdConfigure.java Changeset: 33de7752835c Author: tschatzl Date: 2019-09-20 11:33 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/33de7752835c 8231242: G1CollectedHeap::print_regions_on() does not print description for "OA" and "CA" regions Reviewed-by: tschatzl, jiangli Contributed-by: huangjia at loongson.cn ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp Changeset: 94bb65cb37d3 Author: jboes Date: 2019-09-20 11:07 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/94bb65cb37d3 8230648: Replace @exception tag with @throws in java.base Summary: Minor coding style update of javadoc tag in any file in java.base Reviewed-by: prappo, lancea ! src/java.base/share/classes/java/io/BufferedInputStream.java ! src/java.base/share/classes/java/io/BufferedOutputStream.java ! src/java.base/share/classes/java/io/BufferedReader.java ! src/java.base/share/classes/java/io/BufferedWriter.java ! src/java.base/share/classes/java/io/CharArrayReader.java ! src/java.base/share/classes/java/io/CharArrayWriter.java ! src/java.base/share/classes/java/io/DataInput.java ! src/java.base/share/classes/java/io/DataInputStream.java ! src/java.base/share/classes/java/io/DataOutputStream.java ! src/java.base/share/classes/java/io/Externalizable.java ! src/java.base/share/classes/java/io/FileDescriptor.java ! src/java.base/share/classes/java/io/FileInputStream.java ! src/java.base/share/classes/java/io/FileOutputStream.java ! src/java.base/share/classes/java/io/FilePermission.java ! src/java.base/share/classes/java/io/FileReader.java ! src/java.base/share/classes/java/io/FilterInputStream.java ! src/java.base/share/classes/java/io/FilterOutputStream.java ! src/java.base/share/classes/java/io/FilterReader.java ! src/java.base/share/classes/java/io/FilterWriter.java ! src/java.base/share/classes/java/io/InputStream.java ! src/java.base/share/classes/java/io/InputStreamReader.java ! src/java.base/share/classes/java/io/LineNumberInputStream.java ! src/java.base/share/classes/java/io/ObjectInput.java ! src/java.base/share/classes/java/io/ObjectInputValidation.java ! src/java.base/share/classes/java/io/ObjectOutput.java ! src/java.base/share/classes/java/io/OutputStream.java ! src/java.base/share/classes/java/io/OutputStreamWriter.java ! src/java.base/share/classes/java/io/PipedInputStream.java ! src/java.base/share/classes/java/io/PipedOutputStream.java ! src/java.base/share/classes/java/io/PipedReader.java ! src/java.base/share/classes/java/io/PipedWriter.java ! src/java.base/share/classes/java/io/PushbackInputStream.java ! src/java.base/share/classes/java/io/PushbackReader.java ! src/java.base/share/classes/java/io/RandomAccessFile.java ! src/java.base/share/classes/java/io/Reader.java ! src/java.base/share/classes/java/io/SequenceInputStream.java ! src/java.base/share/classes/java/io/StreamTokenizer.java ! src/java.base/share/classes/java/io/StringReader.java ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/ClassLoader.java ! src/java.base/share/classes/java/lang/Integer.java ! src/java.base/share/classes/java/lang/Package.java ! src/java.base/share/classes/java/lang/ProcessHandleImpl.java ! src/java.base/share/classes/java/lang/SecurityManager.java ! src/java.base/share/classes/java/lang/String.java ! src/java.base/share/classes/java/lang/invoke/MethodHandleInfo.java ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/java/lang/invoke/VarForm.java ! src/java.base/share/classes/java/lang/reflect/Array.java ! src/java.base/share/classes/java/lang/reflect/Constructor.java ! src/java.base/share/classes/java/lang/reflect/Field.java ! src/java.base/share/classes/java/lang/reflect/Method.java ! src/java.base/share/classes/java/net/ContentHandler.java ! src/java.base/share/classes/java/net/DatagramPacket.java ! src/java.base/share/classes/java/net/DatagramSocket.java ! src/java.base/share/classes/java/net/DatagramSocketImpl.java ! src/java.base/share/classes/java/net/HttpURLConnection.java ! src/java.base/share/classes/java/net/InetAddress.java ! src/java.base/share/classes/java/net/JarURLConnection.java ! src/java.base/share/classes/java/net/MulticastSocket.java ! src/java.base/share/classes/java/net/NetworkInterface.java ! src/java.base/share/classes/java/net/ProxySelector.java ! src/java.base/share/classes/java/net/ServerSocket.java ! src/java.base/share/classes/java/net/Socket.java ! src/java.base/share/classes/java/net/SocketImpl.java ! src/java.base/share/classes/java/net/SocketInputStream.java ! src/java.base/share/classes/java/net/SocketOptions.java ! src/java.base/share/classes/java/net/SocketOutputStream.java ! src/java.base/share/classes/java/net/SocketPermission.java ! src/java.base/share/classes/java/net/URL.java ! src/java.base/share/classes/java/net/URLClassLoader.java ! src/java.base/share/classes/java/net/URLConnection.java ! src/java.base/share/classes/java/net/URLPermission.java ! src/java.base/share/classes/java/net/URLStreamHandler.java ! src/java.base/share/classes/java/nio/Buffer.java ! src/java.base/share/classes/java/nio/MappedByteBuffer.java ! src/java.base/share/classes/java/security/AccessControlContext.java ! src/java.base/share/classes/java/security/AccessController.java ! src/java.base/share/classes/java/security/AlgorithmParameterGenerator.java ! src/java.base/share/classes/java/security/AlgorithmParameterGeneratorSpi.java ! src/java.base/share/classes/java/security/AlgorithmParameters.java ! src/java.base/share/classes/java/security/AlgorithmParametersSpi.java ! src/java.base/share/classes/java/security/AllPermission.java ! src/java.base/share/classes/java/security/BasicPermission.java ! src/java.base/share/classes/java/security/Certificate.java ! src/java.base/share/classes/java/security/DigestInputStream.java ! src/java.base/share/classes/java/security/DigestOutputStream.java ! src/java.base/share/classes/java/security/DomainLoadStoreParameter.java ! src/java.base/share/classes/java/security/Guard.java ! src/java.base/share/classes/java/security/GuardedObject.java ! src/java.base/share/classes/java/security/Identity.java ! src/java.base/share/classes/java/security/IdentityScope.java ! src/java.base/share/classes/java/security/KeyFactory.java ! src/java.base/share/classes/java/security/KeyFactorySpi.java ! src/java.base/share/classes/java/security/KeyPairGenerator.java ! src/java.base/share/classes/java/security/KeyPairGeneratorSpi.java ! src/java.base/share/classes/java/security/KeyRep.java ! src/java.base/share/classes/java/security/KeyStore.java ! src/java.base/share/classes/java/security/KeyStoreSpi.java ! src/java.base/share/classes/java/security/MessageDigest.java ! src/java.base/share/classes/java/security/MessageDigestSpi.java ! src/java.base/share/classes/java/security/PKCS12Attribute.java ! src/java.base/share/classes/java/security/PermissionCollection.java ! src/java.base/share/classes/java/security/Permissions.java ! src/java.base/share/classes/java/security/Policy.java ! src/java.base/share/classes/java/security/Provider.java ! src/java.base/share/classes/java/security/SecureClassLoader.java ! src/java.base/share/classes/java/security/Signature.java ! src/java.base/share/classes/java/security/SignatureSpi.java ! src/java.base/share/classes/java/security/SignedObject.java ! src/java.base/share/classes/java/security/Signer.java ! src/java.base/share/classes/java/security/URIParameter.java ! src/java.base/share/classes/java/security/cert/CertPath.java ! src/java.base/share/classes/java/security/cert/CertPathValidator.java ! src/java.base/share/classes/java/security/cert/CertPathValidatorSpi.java ! src/java.base/share/classes/java/security/cert/Certificate.java ! src/java.base/share/classes/java/security/cert/CertificateFactory.java ! src/java.base/share/classes/java/security/cert/CertificateFactorySpi.java ! src/java.base/share/classes/java/security/cert/CollectionCertStoreParameters.java ! src/java.base/share/classes/java/security/cert/Extension.java ! src/java.base/share/classes/java/security/cert/LDAPCertStoreParameters.java ! src/java.base/share/classes/java/security/cert/PKIXCertPathChecker.java ! src/java.base/share/classes/java/security/cert/PolicyQualifierInfo.java ! src/java.base/share/classes/java/security/cert/X509CRL.java ! src/java.base/share/classes/java/security/cert/X509CRLEntry.java ! src/java.base/share/classes/java/security/cert/X509Certificate.java ! src/java.base/share/classes/java/security/interfaces/DSAKeyPairGenerator.java ! src/java.base/share/classes/java/security/spec/DSAGenParameterSpec.java ! src/java.base/share/classes/java/security/spec/ECFieldF2m.java ! src/java.base/share/classes/java/security/spec/ECFieldFp.java ! src/java.base/share/classes/java/security/spec/ECParameterSpec.java ! src/java.base/share/classes/java/security/spec/ECPoint.java ! src/java.base/share/classes/java/security/spec/ECPrivateKeySpec.java ! src/java.base/share/classes/java/security/spec/ECPublicKeySpec.java ! src/java.base/share/classes/java/security/spec/EllipticCurve.java ! src/java.base/share/classes/java/security/spec/MGF1ParameterSpec.java ! src/java.base/share/classes/java/security/spec/PSSParameterSpec.java ! src/java.base/share/classes/java/security/spec/RSAOtherPrimeInfo.java ! src/java.base/share/classes/java/text/AttributedString.java ! src/java.base/share/classes/java/text/BreakIterator.java ! src/java.base/share/classes/java/text/ChoiceFormat.java ! src/java.base/share/classes/java/text/CollationKey.java ! src/java.base/share/classes/java/text/Collator.java ! src/java.base/share/classes/java/text/CompactNumberFormat.java ! src/java.base/share/classes/java/text/DateFormat.java ! src/java.base/share/classes/java/text/DateFormatSymbols.java ! src/java.base/share/classes/java/text/DecimalFormat.java ! src/java.base/share/classes/java/text/DecimalFormatSymbols.java ! src/java.base/share/classes/java/text/DigitList.java ! src/java.base/share/classes/java/text/Format.java ! src/java.base/share/classes/java/text/MergeCollation.java ! src/java.base/share/classes/java/text/MessageFormat.java ! src/java.base/share/classes/java/text/NumberFormat.java ! src/java.base/share/classes/java/text/RBTableBuilder.java ! src/java.base/share/classes/java/text/RuleBasedCollator.java ! src/java.base/share/classes/java/text/SimpleDateFormat.java ! src/java.base/share/classes/java/text/spi/BreakIteratorProvider.java ! src/java.base/share/classes/java/text/spi/CollatorProvider.java ! src/java.base/share/classes/java/text/spi/DateFormatProvider.java ! src/java.base/share/classes/java/text/spi/DateFormatSymbolsProvider.java ! src/java.base/share/classes/java/text/spi/DecimalFormatSymbolsProvider.java ! src/java.base/share/classes/java/text/spi/NumberFormatProvider.java ! src/java.base/share/classes/java/util/Calendar.java ! src/java.base/share/classes/java/util/Currency.java ! src/java.base/share/classes/java/util/Date.java ! src/java.base/share/classes/java/util/Dictionary.java ! src/java.base/share/classes/java/util/Enumeration.java ! src/java.base/share/classes/java/util/GregorianCalendar.java ! src/java.base/share/classes/java/util/Hashtable.java ! src/java.base/share/classes/java/util/JapaneseImperialCalendar.java ! src/java.base/share/classes/java/util/Locale.java ! src/java.base/share/classes/java/util/Properties.java ! src/java.base/share/classes/java/util/PropertyPermission.java ! src/java.base/share/classes/java/util/ResourceBundle.java ! src/java.base/share/classes/java/util/SimpleTimeZone.java ! src/java.base/share/classes/java/util/StringTokenizer.java ! src/java.base/share/classes/java/util/TimeZone.java ! src/java.base/share/classes/java/util/jar/Attributes.java ! src/java.base/share/classes/java/util/jar/JarEntry.java ! src/java.base/share/classes/java/util/jar/JarInputStream.java ! src/java.base/share/classes/java/util/jar/JarOutputStream.java ! src/java.base/share/classes/java/util/jar/Manifest.java ! src/java.base/share/classes/java/util/jar/Pack200.java ! src/java.base/share/classes/java/util/regex/Matcher.java ! src/java.base/share/classes/java/util/spi/CurrencyNameProvider.java ! src/java.base/share/classes/java/util/spi/LocaleNameProvider.java ! src/java.base/share/classes/java/util/spi/TimeZoneNameProvider.java ! src/java.base/share/classes/java/util/zip/CheckedInputStream.java ! src/java.base/share/classes/java/util/zip/CheckedOutputStream.java ! src/java.base/share/classes/java/util/zip/Deflater.java ! src/java.base/share/classes/java/util/zip/DeflaterOutputStream.java ! src/java.base/share/classes/java/util/zip/GZIPInputStream.java ! src/java.base/share/classes/java/util/zip/GZIPOutputStream.java ! src/java.base/share/classes/java/util/zip/InflaterInputStream.java ! src/java.base/share/classes/java/util/zip/ZipInputStream.java ! src/java.base/share/classes/java/util/zip/ZipOutputStream.java Changeset: c67f514fdd54 Author: coleenp Date: 2019-09-20 10:23 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/c67f514fdd54 8225628: Remove unused Thread::muxAcquireW function Reviewed-by: dcubed, hseigel ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp Changeset: da8673f61e94 Author: darcy Date: 2019-09-20 09:32 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/da8673f61e94 8199424: consider removing ObjectInputStream and ObjectOutputStream native methods Reviewed-by: bpb, rriggs, redestad ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java - src/java.base/share/native/libjava/ObjectInputStream.c - src/java.base/share/native/libjava/ObjectOutputStream.c Changeset: bff49841aabe Author: lmesnik Date: 2019-09-20 13:14 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/bff49841aabe 8229853: Problemlist compiler/codecache/jmx/PoolsIndependenceTest.java Reviewed-by: thartmann ! test/hotspot/jtreg/ProblemList.txt Changeset: 3c8f89e2ec03 Author: valeriep Date: 2019-09-20 21:33 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/3c8f89e2ec03 8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism Summary: Disable mechanisms with partial support, e.g. can decrypt but cannot encrypt Reviewed-by: xuelei ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/SunPKCS11.java Changeset: 3aef3bccfae3 Author: joehw Date: 2019-09-20 22:11 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/3aef3bccfae3 8231083: Clarify SAX documentation Reviewed-by: lancea, alanb ! src/java.xml/share/classes/org/xml/sax/AttributeList.java ! src/java.xml/share/classes/org/xml/sax/Attributes.java ! src/java.xml/share/classes/org/xml/sax/ContentHandler.java ! src/java.xml/share/classes/org/xml/sax/DTDHandler.java ! src/java.xml/share/classes/org/xml/sax/DocumentHandler.java ! src/java.xml/share/classes/org/xml/sax/EntityResolver.java ! src/java.xml/share/classes/org/xml/sax/ErrorHandler.java ! src/java.xml/share/classes/org/xml/sax/HandlerBase.java ! src/java.xml/share/classes/org/xml/sax/InputSource.java ! src/java.xml/share/classes/org/xml/sax/Locator.java ! src/java.xml/share/classes/org/xml/sax/Parser.java ! src/java.xml/share/classes/org/xml/sax/SAXException.java ! src/java.xml/share/classes/org/xml/sax/SAXNotRecognizedException.java ! src/java.xml/share/classes/org/xml/sax/SAXNotSupportedException.java ! src/java.xml/share/classes/org/xml/sax/SAXParseException.java ! src/java.xml/share/classes/org/xml/sax/XMLFilter.java ! src/java.xml/share/classes/org/xml/sax/XMLReader.java ! src/java.xml/share/classes/org/xml/sax/ext/Attributes2.java ! src/java.xml/share/classes/org/xml/sax/ext/Attributes2Impl.java ! src/java.xml/share/classes/org/xml/sax/ext/DeclHandler.java ! src/java.xml/share/classes/org/xml/sax/ext/DefaultHandler2.java ! src/java.xml/share/classes/org/xml/sax/ext/EntityResolver2.java ! src/java.xml/share/classes/org/xml/sax/ext/LexicalHandler.java ! src/java.xml/share/classes/org/xml/sax/ext/Locator2.java ! src/java.xml/share/classes/org/xml/sax/ext/Locator2Impl.java ! src/java.xml/share/classes/org/xml/sax/ext/package-info.java ! src/java.xml/share/classes/org/xml/sax/helpers/AttributeListImpl.java ! src/java.xml/share/classes/org/xml/sax/helpers/AttributesImpl.java ! src/java.xml/share/classes/org/xml/sax/helpers/DefaultHandler.java ! src/java.xml/share/classes/org/xml/sax/helpers/LocatorImpl.java ! src/java.xml/share/classes/org/xml/sax/helpers/NamespaceSupport.java ! src/java.xml/share/classes/org/xml/sax/helpers/NewInstance.java ! src/java.xml/share/classes/org/xml/sax/helpers/ParserAdapter.java ! src/java.xml/share/classes/org/xml/sax/helpers/ParserFactory.java ! src/java.xml/share/classes/org/xml/sax/helpers/XMLFilterImpl.java ! src/java.xml/share/classes/org/xml/sax/helpers/XMLReaderAdapter.java ! src/java.xml/share/classes/org/xml/sax/helpers/XMLReaderFactory.java ! src/java.xml/share/classes/org/xml/sax/helpers/package-info.java ! src/java.xml/share/classes/org/xml/sax/package-info.java Changeset: e6231dbaa862 Author: jjiang Date: 2019-09-21 08:06 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/e6231dbaa862 8180837: SunPKCS11-NSS tests failing with CKR_ATTRIBUTE_READ_ONLY and CKR_MECHANISM_PARAM_INVALID Reviewed-by: xuelei ! test/jdk/ProblemList.txt ! test/jdk/sun/security/pkcs11/PKCS11Test.java ! test/jdk/sun/security/pkcs11/Secmod/AddTrustedCert.java ! test/jdk/sun/security/pkcs11/tls/TestKeyMaterial.java Changeset: 14c1ff687621 Author: dcubed Date: 2019-09-21 10:13 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/14c1ff687621 8231323: ProblemList jdk/jfr/jcmd/TestJcmdConfigure.java Reviewed-by: ysuenaga ! test/jdk/ProblemList.txt Changeset: 704e4ff399a2 Author: iklam Date: 2019-09-22 17:16 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/704e4ff399a2 8231125: Improve testing of parallel loading of shared classes by the boot class loader Reviewed-by: ccheung, coleenp, dholmes ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/oops/klass.hpp ! test/hotspot/jtreg/runtime/cds/appcds/ParallelLoadTest.java ! test/hotspot/jtreg/runtime/cds/appcds/test-classes/ParallelLoad.java Changeset: 01c5971b0a2c Author: iklam Date: 2019-09-22 17:17 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/01c5971b0a2c 8231275: Remove null check in the beginning of SystemDictionary::load_shared_class() Reviewed-by: ccheung, coleenp ! src/hotspot/share/classfile/systemDictionary.cpp Changeset: 001153ffc143 Author: tschatzl Date: 2019-09-23 11:36 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/001153ffc143 8231117: Remove G1EvacuationRootClosures::raw_strong_oops() Reviewed-by: kbarrett, sjohanss ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/g1RootClosures.cpp ! src/hotspot/share/gc/g1/g1RootClosures.hpp Changeset: 4fbc534fdf69 Author: tschatzl Date: 2019-09-23 11:37 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/4fbc534fdf69 8159984: Remove call to ClassLoaderDataGraph::clear_claimed_marks during the initial mark pause Summary: The CLDG is only iterated once during garbage collection, so we do not need to claim CLDs any more. Reviewed-by: sjohanss, kbarrett ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp ! src/hotspot/share/gc/g1/g1OopClosures.cpp ! src/hotspot/share/gc/g1/g1OopClosures.hpp ! src/hotspot/share/gc/g1/g1RootClosures.cpp ! src/hotspot/share/gc/g1/g1RootClosures.hpp ! src/hotspot/share/gc/g1/g1RootProcessor.cpp ! src/hotspot/share/gc/g1/g1RootProcessor.hpp ! src/hotspot/share/gc/g1/g1SharedClosures.hpp ! test/hotspot/jtreg/gc/g1/TestGCLogMessages.java ! test/jdk/jdk/jfr/event/gc/collection/TestG1ParallelPhases.java Changeset: 4e96939a5746 Author: tschatzl Date: 2019-09-23 11:37 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/4e96939a5746 8231189: Rename worker_i parameters to worker_id Reviewed-by: kbarrett, sjohanss ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp ! src/hotspot/share/gc/g1/g1DirtyCardQueue.hpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp ! src/hotspot/share/gc/g1/g1HotCardCache.cpp ! src/hotspot/share/gc/g1/g1HotCardCache.hpp ! src/hotspot/share/gc/g1/g1OopClosures.hpp ! src/hotspot/share/gc/g1/g1OopClosures.inline.hpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/g1RemSet.hpp ! src/hotspot/share/gc/g1/g1RootProcessor.cpp ! src/hotspot/share/gc/g1/g1RootProcessor.hpp Changeset: 577e17cab93f Author: clanger Date: 2019-09-23 12:32 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/577e17cab93f 8230857: Avoid reflection in sun.tools.common.ProcessHelper Reviewed-by: sspitsyn, dholmes - src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java + src/jdk.jcmd/linux/classes/sun/tools/common/ProcessHelper.java ! src/jdk.jcmd/share/classes/sun/tools/common/ProcessArgumentMatcher.java ! src/jdk.jcmd/share/classes/sun/tools/common/ProcessHelper.java ! test/jdk/sun/tools/jcmd/TestProcessHelper.java Changeset: 501df37ce76b Author: zgu Date: 2019-09-23 07:45 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/501df37ce76b 8231293: Shenandoah: Traversal should not revive dead weak roots Reviewed-by: shade ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: acc7ea6bf0b4 Author: thartmann Date: 2019-09-23 14:30 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/acc7ea6bf0b4 8231058: VerifyOops crashes with assert(_offset >= 0) failed: offset for non comment? Summary: Offset method should only be called for comments. Reviewed-by: roland, dholmes ! src/hotspot/share/asm/codeBuffer.cpp + test/hotspot/jtreg/runtime/CheckUnhandledOops/TestVerifyOops.java Changeset: bc696d87d032 Author: shade Date: 2019-09-23 16:24 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/bc696d87d032 8231249: Shenandoah: GC retries are too aggressive for tests that expect OOME Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 7a8de392f9e1 Author: erikj Date: 2019-09-23 09:00 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/7a8de392f9e1 8150741: make not equivalent to make Reviewed-by: mchung ! make/Main.gmk Changeset: 2921ee5e9881 Author: erikj Date: 2019-09-23 08:52 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/2921ee5e9881 8206125: [windows] cannot pass relative path to --with-boot-jdk Reviewed-by: tbell ! make/autoconf/basics.m4 ! make/autoconf/basics_windows.m4 Changeset: e27564cd10e3 Author: zgu Date: 2019-09-23 14:39 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/e27564cd10e3 8231250: Shenandoah: Traversal GC should keep alive weak load from heap Reviewed-by: rkennke ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp Changeset: 08a5148e7c4e Author: lfoltan Date: 2019-09-23 14:49 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/08a5148e7c4e 8230505: Replace JVM type comparisons to T_OBJECT and T_ARRAY with call to is_reference_type Summary: Consistently use is_reference_type when comparing type for T_OBJECT or T_ARRAY. Reviewed-by: dlong, coleenp, hseigel Contributed-by: lois.foltan at oracle.com, john.r.rose at oracle.com ! src/hotspot/cpu/aarch64/c1_FrameMap_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/c1_LIRGenerator_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/g1/g1BarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shared/modRefBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/c1/shenandoahBarrierSetC1_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/sparc/c1_FrameMap_sparc.cpp ! src/hotspot/cpu/sparc/c1_LIRAssembler_sparc.cpp ! src/hotspot/cpu/sparc/c1_LIRGenerator_sparc.cpp ! src/hotspot/cpu/sparc/gc/g1/g1BarrierSetAssembler_sparc.cpp ! src/hotspot/cpu/sparc/gc/shared/modRefBarrierSetAssembler_sparc.cpp ! src/hotspot/cpu/sparc/sharedRuntime_sparc.cpp ! src/hotspot/cpu/x86/c1_FrameMap_x86.cpp ! src/hotspot/cpu/x86/c1_LIRAssembler_x86.cpp ! src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp ! src/hotspot/cpu/x86/gc/g1/g1BarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shared/modRefBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/c1/shenandoahBarrierSetC1_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/c1/c1_Optimizer.cpp ! src/hotspot/share/ci/bcEscapeAnalyzer.cpp ! src/hotspot/share/ci/ciArray.cpp ! src/hotspot/share/ci/ciConstant.cpp ! src/hotspot/share/ci/ciConstant.hpp ! src/hotspot/share/ci/ciField.cpp ! src/hotspot/share/ci/ciMethod.cpp ! src/hotspot/share/ci/ciObjectFactory.cpp ! src/hotspot/share/ci/ciType.cpp ! src/hotspot/share/ci/ciType.hpp ! src/hotspot/share/ci/ciTypeFlow.cpp ! src/hotspot/share/classfile/bytecodeAssembler.cpp ! src/hotspot/share/gc/shared/c1/barrierSetC1.hpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shared/c2/cardTableBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp ! src/hotspot/share/gc/z/zBarrierSet.cpp ! src/hotspot/share/interpreter/bytecodeTracer.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/memory/heapShared.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/oops/methodData.cpp ! src/hotspot/share/opto/arraycopynode.cpp ! src/hotspot/share/opto/doCall.cpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/macroArrayCopy.cpp ! src/hotspot/share/opto/parse3.cpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/runtime/fieldDescriptor.cpp ! src/hotspot/share/runtime/frame.cpp ! src/hotspot/share/runtime/javaCalls.cpp ! src/hotspot/share/runtime/reflection.cpp Changeset: 71f50513d5e6 Author: shade Date: 2019-09-23 21:46 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/71f50513d5e6 8231375: AArch64 build failure after JDK-8230505 Reviewed-by: dcubed ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp Changeset: 2dedeaa537a2 Author: erikj Date: 2019-09-23 12:56 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/2dedeaa537a2 8210794: Incorrect escaping of in native test libraries Reviewed-by: tbell ! make/common/TestFilesCompilation.gmk Changeset: 1e57d3774190 Author: bpb Date: 2019-09-23 13:59 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/1e57d3774190 8231254: (fs) Add test for macOS Catalina changes to protect system software Reviewed-by: alanb + test/jdk/java/nio/file/etc/MacVolumesTest.java Changeset: 00a98f0aa1b3 Author: iklam Date: 2019-09-23 19:54 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/00a98f0aa1b3 8231257: Avoid calling FileMapInfo::write_region twice Reviewed-by: ccheung ! src/hotspot/share/memory/dynamicArchive.cpp ! src/hotspot/share/memory/filemap.cpp ! src/hotspot/share/memory/filemap.hpp ! src/hotspot/share/memory/metaspaceShared.cpp Changeset: e47b459b315c Author: iklam Date: 2019-09-23 19:55 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/e47b459b315c 8231278: Rename FileMapHeader::_read_only_tables_start to _serialized_data_start Reviewed-by: ccheung ! src/hotspot/share/memory/dynamicArchive.cpp ! src/hotspot/share/memory/filemap.hpp ! src/hotspot/share/memory/metaspaceShared.cpp Changeset: 448fe2bfd505 Author: rehn Date: 2019-09-24 08:54 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/448fe2bfd505 8229778: TestJstatdDefaults.java failed due to "fatal error: LEAF method calling lock?" Reviewed-by: dholmes, dcubed ! src/hotspot/share/runtime/thread.cpp Changeset: ef8c8cf9256a Author: mbaesken Date: 2019-09-20 10:28 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ef8c8cf9256a 8231171: remove remaining sun.java.launcher.pid references Reviewed-by: alanb, dholmes ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! src/java.base/macosx/native/libjli/java_md_macosx.m ! src/java.base/share/native/libjli/java.c ! src/java.base/share/native/libjli/java.h ! src/java.base/unix/native/libjli/java_md_solinux.c ! src/java.base/windows/native/libjli/java_md.c ! test/jdk/tools/launcher/TestSpecialArgs.java Changeset: 49836127542b Author: mbaesken Date: 2019-09-23 17:02 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/49836127542b 8231222: fix pkcs11 P11_DEBUG guarded native traces Reviewed-by: clanger ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_general.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_objmgmt.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_sessmgmt.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c Changeset: 03fce7b04b42 Author: dholmes Date: 2019-09-24 03:28 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/03fce7b04b42 8230395: Code checks for NULL value returned from NEW_C_HEAP_ARRAY which can not happen Reviewed-by: lkorinth, hseigel, thartmann, dnsimon ! src/hotspot/os/aix/os_perf_aix.cpp ! src/hotspot/os/bsd/os_perf_bsd.cpp ! src/hotspot/os/linux/os_perf_linux.cpp ! src/hotspot/os/solaris/os_perf_solaris.cpp ! src/hotspot/os/windows/os_perf_windows.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/aot/aotCodeHeap.cpp ! src/hotspot/share/aot/aotLoader.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/prims/unsafe.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! 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 Changeset: cdce40c3286f Author: shade Date: 2019-09-24 09:38 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/cdce40c3286f 8231395: Backout JDK-8231249 Reviewed-by: tschatzl ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Changeset: 59f7c242ccb8 Author: rpatil Date: 2019-09-24 10:16 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/59f7c242ccb8 8231098: (tz) Upgrade time-zone data to tzdata2019c Reviewed-by: martin, naoto ! make/data/tzdata/VERSION ! make/data/tzdata/asia ! make/data/tzdata/australasia ! make/data/tzdata/europe ! make/data/tzdata/leapseconds ! make/data/tzdata/northamerica ! make/data/tzdata/southamerica Changeset: 1182ff8929cc Author: roland Date: 2019-08-28 15:51 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/1182ff8929cc 8230061: # assert(mode == ControlAroundStripMined && use == sfpt) failed: missed a node Reviewed-by: thartmann, neliasso ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp + test/hotspot/jtreg/compiler/loopstripmining/DeadNodesInOuterLoopAtLoopCloning.java Changeset: e4d90117c5de Author: hannesw Date: 2019-09-24 11:49 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/e4d90117c5de 8231122: @index tag with newline causes tag search to fail Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Links.java ! test/langtools/jdk/javadoc/doclet/testSearchScript/TestSearchScript.java ! test/langtools/jdk/javadoc/doclet/testSearchScript/listpkg/Nolist.java ! test/langtools/jdk/javadoc/doclet/testSearchScript/mapmodule/mappkg/Map.java Changeset: a7f16447085e Author: eosterlund Date: 2019-09-24 10:04 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/a7f16447085e 8224820: ZGC: Support discontiguous heap reservations Reviewed-by: pliden, stefank - src/hotspot/os/linux/gc/z/zVirtualMemory_linux.cpp + src/hotspot/os/posix/gc/z/zVirtualMemory_posix.cpp ! src/hotspot/share/gc/z/zPageAllocator.cpp ! src/hotspot/share/gc/z/zVirtualMemory.cpp ! src/hotspot/share/gc/z/zVirtualMemory.hpp Changeset: 48e480e56aad Author: jboes Date: 2019-09-24 09:43 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/48e480e56aad 8231186: Replace html tag foo with javadoc tag {@code foo} in java.base Summary: Minor coding style update of javadoc tag in any file in java.base Reviewed-by: bchristi, lancea ! src/java.base/share/classes/java/io/BufferedInputStream.java ! src/java.base/share/classes/java/io/BufferedOutputStream.java ! src/java.base/share/classes/java/io/BufferedReader.java ! src/java.base/share/classes/java/io/CharArrayReader.java ! src/java.base/share/classes/java/io/DataInputStream.java ! src/java.base/share/classes/java/io/DataOutput.java ! src/java.base/share/classes/java/io/DataOutputStream.java ! src/java.base/share/classes/java/io/EOFException.java ! src/java.base/share/classes/java/io/File.java ! src/java.base/share/classes/java/io/FileFilter.java ! src/java.base/share/classes/java/io/FileInputStream.java ! src/java.base/share/classes/java/io/FileNotFoundException.java ! src/java.base/share/classes/java/io/FileOutputStream.java ! src/java.base/share/classes/java/io/FilePermission.java ! src/java.base/share/classes/java/io/FileSystem.java ! src/java.base/share/classes/java/io/FilenameFilter.java ! src/java.base/share/classes/java/io/FilterInputStream.java ! src/java.base/share/classes/java/io/FilterOutputStream.java ! src/java.base/share/classes/java/io/FilterReader.java ! src/java.base/share/classes/java/io/FilterWriter.java ! src/java.base/share/classes/java/io/InputStream.java ! src/java.base/share/classes/java/io/InputStreamReader.java ! src/java.base/share/classes/java/io/InterruptedIOException.java ! src/java.base/share/classes/java/io/InvalidObjectException.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java ! src/java.base/share/classes/java/io/ObjectStreamField.java ! src/java.base/share/classes/java/io/OptionalDataException.java ! src/java.base/share/classes/java/io/OutputStream.java ! src/java.base/share/classes/java/io/OutputStreamWriter.java ! src/java.base/share/classes/java/io/PipedInputStream.java ! src/java.base/share/classes/java/io/PipedOutputStream.java ! src/java.base/share/classes/java/io/PipedReader.java ! src/java.base/share/classes/java/io/PipedWriter.java ! src/java.base/share/classes/java/io/PushbackInputStream.java ! src/java.base/share/classes/java/io/PushbackReader.java ! src/java.base/share/classes/java/io/Reader.java ! src/java.base/share/classes/java/io/SequenceInputStream.java ! src/java.base/share/classes/java/io/Serializable.java ! src/java.base/share/classes/java/io/SerializablePermission.java ! src/java.base/share/classes/java/io/StringBufferInputStream.java ! src/java.base/share/classes/java/io/StringReader.java ! src/java.base/share/classes/java/io/UTFDataFormatException.java ! src/java.base/share/classes/java/lang/AbstractMethodError.java ! src/java.base/share/classes/java/lang/ArrayStoreException.java ! src/java.base/share/classes/java/lang/AssertionError.java ! src/java.base/share/classes/java/lang/ClassCastException.java ! src/java.base/share/classes/java/lang/ClassFormatError.java ! src/java.base/share/classes/java/lang/ClassNotFoundException.java ! src/java.base/share/classes/java/lang/CloneNotSupportedException.java ! src/java.base/share/classes/java/lang/Cloneable.java ! src/java.base/share/classes/java/lang/ConditionalSpecialCasing.java ! src/java.base/share/classes/java/lang/ExceptionInInitializerError.java ! src/java.base/share/classes/java/lang/IllegalAccessError.java ! src/java.base/share/classes/java/lang/IllegalAccessException.java ! src/java.base/share/classes/java/lang/IllegalArgumentException.java ! src/java.base/share/classes/java/lang/IllegalMonitorStateException.java ! src/java.base/share/classes/java/lang/IllegalStateException.java ! src/java.base/share/classes/java/lang/IllegalThreadStateException.java ! src/java.base/share/classes/java/lang/IncompatibleClassChangeError.java ! src/java.base/share/classes/java/lang/InstantiationError.java ! src/java.base/share/classes/java/lang/InternalError.java ! src/java.base/share/classes/java/lang/InterruptedException.java ! src/java.base/share/classes/java/lang/NegativeArraySizeException.java ! src/java.base/share/classes/java/lang/NoClassDefFoundError.java ! src/java.base/share/classes/java/lang/NoSuchFieldError.java ! src/java.base/share/classes/java/lang/NoSuchMethodError.java ! src/java.base/share/classes/java/lang/NoSuchMethodException.java ! src/java.base/share/classes/java/lang/NumberFormatException.java ! src/java.base/share/classes/java/lang/Runnable.java ! src/java.base/share/classes/java/lang/RuntimePermission.java ! src/java.base/share/classes/java/lang/SecurityManager.java ! src/java.base/share/classes/java/lang/StackOverflowError.java ! src/java.base/share/classes/java/lang/UnknownError.java ! src/java.base/share/classes/java/lang/UnsatisfiedLinkError.java ! src/java.base/share/classes/java/lang/UnsupportedClassVersionError.java ! src/java.base/share/classes/java/lang/UnsupportedOperationException.java ! src/java.base/share/classes/java/lang/VerifyError.java ! src/java.base/share/classes/java/lang/VirtualMachineError.java ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/java/lang/invoke/package-info.java ! src/java.base/share/classes/java/lang/ref/Reference.java ! src/java.base/share/classes/java/text/AttributedString.java ! src/java.base/share/classes/java/text/Bidi.java ! src/java.base/share/classes/java/text/BreakIterator.java ! src/java.base/share/classes/java/text/CharacterIteratorFieldDelegate.java ! src/java.base/share/classes/java/text/ChoiceFormat.java ! src/java.base/share/classes/java/text/CollationElementIterator.java ! src/java.base/share/classes/java/text/CollationKey.java ! src/java.base/share/classes/java/text/Collator.java ! src/java.base/share/classes/java/text/DateFormat.java ! src/java.base/share/classes/java/text/DateFormatSymbols.java ! src/java.base/share/classes/java/text/DigitList.java ! src/java.base/share/classes/java/text/FieldPosition.java ! src/java.base/share/classes/java/text/Format.java ! src/java.base/share/classes/java/text/MessageFormat.java ! src/java.base/share/classes/java/text/Normalizer.java ! src/java.base/share/classes/java/text/NumberFormat.java ! src/java.base/share/classes/java/text/ParsePosition.java ! src/java.base/share/classes/java/text/RuleBasedCollator.java ! src/java.base/share/classes/java/text/SimpleDateFormat.java ! src/java.base/share/classes/java/text/StringCharacterIterator.java ! src/java.base/share/classes/java/text/spi/BreakIteratorProvider.java ! src/java.base/share/classes/java/text/spi/CollatorProvider.java ! src/java.base/share/classes/java/text/spi/DateFormatProvider.java ! src/java.base/share/classes/java/text/spi/DateFormatSymbolsProvider.java ! src/java.base/share/classes/java/text/spi/DecimalFormatSymbolsProvider.java ! src/java.base/share/classes/java/text/spi/NumberFormatProvider.java ! src/java.base/share/classes/java/time/ZoneId.java ! src/java.base/share/classes/java/util/Calendar.java ! src/java.base/share/classes/java/util/ConcurrentModificationException.java ! src/java.base/share/classes/java/util/Currency.java ! src/java.base/share/classes/java/util/GregorianCalendar.java ! src/java.base/share/classes/java/util/IllformedLocaleException.java ! src/java.base/share/classes/java/util/ListResourceBundle.java ! src/java.base/share/classes/java/util/Locale.java ! src/java.base/share/classes/java/util/PropertyPermission.java ! src/java.base/share/classes/java/util/PropertyResourceBundle.java ! src/java.base/share/classes/java/util/ResourceBundle.java ! src/java.base/share/classes/java/util/SimpleTimeZone.java ! src/java.base/share/classes/java/util/TimeZone.java ! src/java.base/share/classes/java/util/TooManyListenersException.java ! src/java.base/share/classes/java/util/jar/JarEntry.java ! src/java.base/share/classes/java/util/jar/JarInputStream.java ! src/java.base/share/classes/java/util/jar/JarOutputStream.java ! src/java.base/share/classes/java/util/jar/package-info.java ! src/java.base/share/classes/java/util/regex/Pattern.java ! src/java.base/share/classes/java/util/regex/package-info.java ! src/java.base/share/classes/java/util/spi/CalendarNameProvider.java ! src/java.base/share/classes/java/util/spi/CurrencyNameProvider.java ! src/java.base/share/classes/java/util/spi/LocaleNameProvider.java ! src/java.base/share/classes/java/util/spi/LocaleServiceProvider.java ! src/java.base/share/classes/java/util/spi/TimeZoneNameProvider.java ! src/java.base/share/classes/java/util/zip/CheckedInputStream.java ! src/java.base/share/classes/java/util/zip/GZIPInputStream.java ! src/java.base/share/classes/java/util/zip/InflaterInputStream.java ! src/java.base/share/classes/java/util/zip/ZipException.java ! src/java.base/share/classes/java/util/zip/ZipInputStream.java Changeset: 3a79d4cccbcb Author: pconcannon Date: 2019-09-23 16:53 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/3a79d4cccbcb 8217825: Verify @AfterTest is used correctly in WebSocket tests Summary: Remove @AfterTest tags; added in explicit closing of resources e.g. httpServer, webSocket, etc Reviewed-by: dfuchs, prappo ! test/jdk/java/net/httpclient/websocket/Abort.java ! test/jdk/java/net/httpclient/websocket/AutomaticPong.java ! test/jdk/java/net/httpclient/websocket/SendTest.java ! test/jdk/java/net/httpclient/websocket/WebSocketTest.java Changeset: a013100f7a35 Author: coleenp Date: 2019-09-24 10:12 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/a013100f7a35 8213150: Add verification for locking by VMThread Summary: extend verification for all locking not just VMOperations, and fix CLDG lock to not be taken by VM thread. Reviewed-by: rehn, dholmes ! src/hotspot/share/classfile/classLoaderDataGraph.cpp ! src/hotspot/share/classfile/classLoaderDataGraph.hpp ! src/hotspot/share/gc/shared/memAllocator.cpp ! src/hotspot/share/oops/constantPool.cpp ! src/hotspot/share/runtime/mutex.cpp ! src/hotspot/share/runtime/mutex.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/runtime/vmThread.cpp ! src/hotspot/share/utilities/concurrentHashTable.inline.hpp ! src/hotspot/share/utilities/events.hpp Changeset: a8f06f2b84b0 Author: pliden Date: 2019-09-24 17:08 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/a8f06f2b84b0 8231251: ZGC: Fix ZHeap includes Reviewed-by: stefank, eosterlund ! src/hotspot/share/gc/z/zHeap.cpp ! src/hotspot/share/gc/z/zHeap.hpp ! src/hotspot/share/gc/z/zHeap.inline.hpp Changeset: f2bd6a3993a7 Author: pliden Date: 2019-09-24 17:08 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/f2bd6a3993a7 8231266: ZGC: Minor cleanups in ZCollectedHeap and ZHeap Reviewed-by: stefank, eosterlund ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zHeap.cpp ! src/hotspot/share/gc/z/zHeap.hpp ! src/hotspot/share/gc/z/zHeap.inline.hpp Changeset: 872465abbfe3 Author: pliden Date: 2019-09-24 17:08 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/872465abbfe3 8231270: ZGC: Remove ZAddressSpace* and ZAddressReserved* Reviewed-by: stefank, eosterlund ! src/hotspot/cpu/aarch64/gc/z/zGlobals_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/z/zGlobals_aarch64.hpp ! src/hotspot/cpu/x86/gc/z/zGlobals_x86.cpp ! src/hotspot/cpu/x86/gc/z/zGlobals_x86.hpp ! src/hotspot/share/gc/z/vmStructs_z.hpp ! src/hotspot/share/gc/z/zAddress.cpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zDebug.gdb ! src/hotspot/share/gc/z/zGlobals.cpp ! src/hotspot/share/gc/z/zGlobals.hpp Changeset: 7973073dd048 Author: michaelm Date: 2019-09-24 16:19 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/7973073dd048 8231187: SelectorProvider.inheritedChannel() returns TCP socket channel for Unix domain socket Reviewed-by: alanb, chegar ! src/java.base/macosx/classes/sun/nio/ch/KQueueSelectorProvider.java ! src/java.base/unix/classes/sun/nio/ch/InheritedChannel.java + src/java.base/unix/classes/sun/nio/ch/UnixDomainSocketChannelImpl.java ! src/java.base/unix/native/libnio/ch/InheritedChannel.c ! test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java ! test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.java + test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/UnixDomainChannelTest.java ! test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/UnixDomainSocket.java ! test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/libInheritedChannel.c Changeset: 7b534a5088d9 Author: erikj Date: 2019-09-24 11:39 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/7b534a5088d9 8231351: Add notes for PKCS11 tests in the test doc Reviewed-by: erikj, jjiang Contributed-by: huangjia at loongson.cn ! doc/testing.html ! doc/testing.md Changeset: 01f7ba3a4905 Author: naoto Date: 2019-09-24 08:55 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/01f7ba3a4905 8230531: API Doc for CharsetEncoder.maxBytesPerChar() should be clearer about BOMs Reviewed-by: martin, alanb ! src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template Changeset: 0152ad7b38b8 Author: epavlova Date: 2019-09-24 08:54 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/0152ad7b38b8 8231376: Unproblem list compiler/unsafe/Unsafe{Off,On}HeapBooleanTest.java tests Reviewed-by: iignatyev ! test/hotspot/jtreg/ProblemList-graal.txt Changeset: 6df94ce3ab2f Author: dlong Date: 2019-09-24 12:47 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/6df94ce3ab2f 8229201: 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.test/src/jdk/tools/jaotc/test/NativeOrderOutputStreamTest.java ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/Collector.java ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/MarkId.java ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/MetadataBuilder.java ! src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/HotSpotGraalManagement.java ! src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/HotSpotGraalRuntimeMBean.java ! src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/package-info.java ! src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.libgraal/src/jdk/internal/vm/compiler/libgraal/LibGraal.java ! src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.libgraal/src/jdk/internal/vm/compiler/libgraal/LibGraalScope.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/BlackholeDirectiveTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/ControlFlowAnchorDirectiveTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/IterationDirectiveTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/OpaqueDirectiveTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.aarch64/src/org/graalvm/compiler/asm/aarch64/AArch64Assembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.aarch64/src/org/graalvm/compiler/asm/aarch64/AArch64MacroAssembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.amd64/src/org/graalvm/compiler/asm/amd64/AMD64AsmOptions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.amd64/src/org/graalvm/compiler/asm/amd64/AMD64Assembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.amd64/src/org/graalvm/compiler/asm/amd64/AMD64BaseAssembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.amd64/src/org/graalvm/compiler/asm/amd64/AMD64MacroAssembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.sparc/src/org/graalvm/compiler/asm/sparc/SPARCAssembler.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.asm/src/org/graalvm/compiler/asm/Assembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm/src/org/graalvm/compiler/asm/Buffer.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm/src/org/graalvm/compiler/asm/Label.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.code/src/org/graalvm/compiler/code/DataSection.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.code/src/org/graalvm/compiler/code/HexCodeFileDisassemblerProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64.test/src/org/graalvm/compiler/core/aarch64/test/AArch64CbzTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64LIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64LoweringProviderMixin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64ReadNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64SuitesCreator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64.test/src/org/graalvm/compiler/core/amd64/test/AMD64MatchRuleTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64ArithmeticLIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64LIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64LoweringProviderMixin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64NodeMatchRules.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/Fields.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/FieldsScanner.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/GraalOptions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/LIRKind.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/SpeculativeExecutionAttacksMitigations.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/calc/CanonicalCondition.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/cfg/AbstractBlockBase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/cfg/CFGVerifier.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/cfg/Loop.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/spi/ForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/type/AbstractObjectStamp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/type/AbstractPointerStamp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/type/FloatStamp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/type/IllegalStamp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/type/IntegerStamp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/type/PrimitiveStamp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/type/Stamp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/type/VoidStamp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/util/TypeReader.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/util/TypeWriter.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/util/UnsafeArrayTypeReader.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/util/UnsignedLong.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.match.processor/src/org/graalvm/compiler/core/match/processor/MatchProcessor.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.sparc/src/org/graalvm/compiler/core/sparc/SPARCLIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.sparc/src/org/graalvm/compiler/core/sparc/SPARCNodeMatchRules.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.sparc/src/org/graalvm/compiler/core/sparc/SparcLoweringProviderMixin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/BasePhaseBinaryGraphTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CanonicalizedConversionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CheckGraalInvariants.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CompareCanonicalizerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CompareCanonicalizerTest2.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CompareCanonicalizerTest3.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ConditionalEliminationTest10.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ConditionalEliminationTest13.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ConditionalEliminationTest14.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ConditionalEliminationTest15.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ConditionalEliminationTest2.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ConditionalEliminationTestBase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ConditionalNodeTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CopyOfVirtualizationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CountedLoopTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CustomizedBytecodePatternTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/DumpPathTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/EnumSwitchTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/FinalizableSubclassTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/FindUniqueConcreteMethodBugTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/FloatingReadTest.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/GraphEncoderTest.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/GraphPrinterTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/GraphResetDebugTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/GuardPrioritiesTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/IfCanonicalizerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ImplicitNullCheckTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/IntegerEqualsCanonicalizerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/LockEliminationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/LoopFullUnrollTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/LoopUnswitchTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/MergeCanonicalizerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/NestedLoopTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/NewInstanceTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/NodePropertiesTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/OptionsVerifierTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/PushNodesThroughPiTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/PushThroughIfTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ReadAfterCheckCastTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ReassociateAndCanonicalTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ReferenceGetLoopTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ScalarTypeSystemTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/SchedulingTest2.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/StampCanonicalizerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/StraighteningTest.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/SubprocessTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/SwitchCanonicalizerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/SwitchDyingLoopTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/TypeSystemTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/TypeWriterTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/UnbalancedMonitorsTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/UnsafeReadEliminationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/UnsafeVirtualizationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/UnusedArray.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyBailoutUsage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyCallerSensitiveMethods.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyDebugUsage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyFoldableMethods.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyGetOptionsUsage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyGraphAddUsage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyInstanceOfUsage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifySystemPropertyUsage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyUpdateUsages.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyUsageWithEquals.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyVirtualizableUsage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/backend/BackendTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/deopt/CompiledMethodTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/deopt/RethrowDeoptMaterializeTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/deopt/SynchronizedMethodDeoptimizationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ea/EATestBase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ea/EscapeAnalysisTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ea/PoorMansEATest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ea/UnsafeCompareAndSwapVirtualizationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/inlining/NestedLoopEffectsPhaseComplexityTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/inlining/PolymorphicInliningTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/tutorial/StaticAnalysis.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/tutorial/StaticAnalysisTests.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/CompilationPrinter.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/CompilationWrapper.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/GraalCompilerOptions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/LIRGenerationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/gen/DebugInfoBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/gen/LIRCompilerBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/gen/LIRGenerationProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/gen/NodeMatchRules.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/match/MatchContext.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/match/MatchPattern.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/match/MatchStatement.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/match/MatchableNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/EconomyLowTier.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/EconomyMidTier.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/GraphChangeMonitoringPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/HighTier.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/LowTier.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/MidTier.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/target/Backend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/DebugContext.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/DebugOptions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/GlobalMetrics.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/IgvDumpChannel.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/MemUseTrackerKey.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/PathUtilities.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.debug/src/org/graalvm/compiler/debug/TTY.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/Edges.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/Graph.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/IterableNodeType.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/Node.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeClass.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeList.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeMap.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeSourcePosition.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackendFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotJumpToExceptionHandlerInCallerOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotLIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotLoweringProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64IndirectCallOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64.test/src/org/graalvm/compiler/hotspot/amd64/test/StubAVXTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64.test/src/org/graalvm/compiler/hotspot/amd64/test/UnaryMathStubTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64ArrayIndexOfStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotBackendFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotJumpToExceptionHandlerInCallerOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotLIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotStrategySwitchOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64X87MathIntrinsicNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64X87MathSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.jdk9.test/src/org/graalvm/compiler/hotspot/jdk9/test/MathDoubleFMATest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.jdk9.test/src/org/graalvm/compiler/hotspot/jdk9/test/MathFMAConstantInputTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.jdk9.test/src/org/graalvm/compiler/hotspot/jdk9/test/MathFloatFMATest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.jdk9.test/src/org/graalvm/compiler/hotspot/jdk9/test/StringUTF16ToBytesGetCharsTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.lir.test/src/org/graalvm/compiler/hotspot/lir/test/BenchmarkCounterOverflowTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotBackendFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotForeignCallsProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotLIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotLoweringProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.sparc/src/org/graalvm/compiler/hotspot/sparc/SPARCHotSpotMove.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/AheadOfTimeCompilationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/ArrayCopyIntrinsificationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CRC32CSubstitutionsTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CompilationWrapperTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CompileTheWorld.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CompileTheWorldTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CompressedOopTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/ConstantPoolSubstitutionsTests.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/EliminateRedundantInitializationPhaseTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/GraalOSRTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/GraalOSRTestBase.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotClassInitializationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotCryptoSubstitutionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotGraalCompilerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotGraalManagementTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotInvokeDynamicPluginTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotLazyInitializationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HsErrLogTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/JVMCIInfopointErrorTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/LoadJavaMirrorWithKlassTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/MemoryUsageBenchmark.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/ObjectHashCodeInliningTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/OptionsInFileTest.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/PolymorphicInliningTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/ReplaceConstantNodesPhaseTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/ReservedStackAccessTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/TestIntrinsicCompiles.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/WriteBarrierAdditionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/BootstrapWatchDog.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationCounters.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationTask.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationWatchDog.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilerConfigurationFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfigVersioned.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/HotSpotBackendFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotCompiledCodeBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotForeignCallLinkage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotForeignCallLinkageImpl.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/HotSpotGraalJVMCIServiceLocator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalOptionValues.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalRuntime.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalServices.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotHostBackend.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotLIRGenerationResult.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotReplacementsImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotTTYStreamProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/SymbolicSnippetEncoder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/debug/BenchmarkCounters.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/lir/HotSpotZapRegistersPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/AddressLoweringHotSpotSuitesProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/DefaultHotSpotLoweringProvider.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotAOTClassInitializationPlugin.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotClassInitializationPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotForeignCallsProviderImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraalConstantFieldProvider.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/HotSpotInvocationPlugins.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotJITClassInitializationPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotProviders.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotStampProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotSuitesProvider.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/meta/HotSpotWordOperationPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/AllocaNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/DimensionsNode.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/KlassBeingInitializedCheckNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/MonitorCounterNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/nodes/type/KlassPointerStamp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/AheadOfTimeVerificationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/LoadJavaMirrorWithKlassPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/AOTInliningPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/EliminateRedundantInitializationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/ReplaceConstantNodesPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/profiling/FinalizeProfileNodesPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/AssertionSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HotSpotClassSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HotSpotReplacementsUtil.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/InstanceOfSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/MonitorSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/NewObjectSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/ObjectCloneNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA2Substitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHA5Substitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/SHASubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/StringUTF16Substitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/ThreadSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/UnsafeLoadSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/CreateExceptionStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/ExceptionHandlerStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/ForeignCallStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/OutOfBoundsExceptionStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/SnippetStub.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.hotspot/src/org/graalvm/compiler/hotspot/stubs/StubUtil.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/stubs/UnwindExceptionToCallerStub.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/BciBlockMapping.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/BytecodeParser.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/FrameStateBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/GraphBuilderPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/JsrScope.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.jtt/src/org/graalvm/compiler/jtt/jdk/System_currentTimeMillis02.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.jtt/src/org/graalvm/compiler/jtt/jdk/System_nanoTime02.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.jtt/src/org/graalvm/compiler/jtt/lang/Math_log10.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.jtt/src/org/graalvm/compiler/jtt/lang/UnaryMath.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.jtt/src/org/graalvm/compiler/jtt/optimize/IfNodeCanonicalizationsTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.jtt/src/org/graalvm/compiler/jtt/optimize/NestedLoop_EA.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.jtt/src/org/graalvm/compiler/jtt/threads/SynchronizedLoopExit01.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64ArithmeticLIRGeneratorTool.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64Call.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64Compare.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64ControlFlow.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64Move.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64RestoreRegistersOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64SaveRegistersOp.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64ZeroMemoryOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64ArrayCompareToOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64ArrayIndexOfOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64Binary.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64BinaryConsumer.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64MathCosOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64MathExpOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64MathIntrinsicBinaryOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64MathIntrinsicUnaryOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64MathLog10Op.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64MathLogOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64MathPowOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64MathSinOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64MathTanOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64Move.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64RestoreRegistersOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64SaveRegistersOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64StringLatin1InflateOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64StringUTF16CompressOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64VZeroUpper.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64ZapRegistersOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/vector/AMD64VectorCompareOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/vector/AMD64VectorMove.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.sparc/src/org/graalvm/compiler/lir/sparc/SPARCSaveRegistersOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/BailoutAndRestartBackendException.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIR.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIRInstructionVerifier.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIRVerifier.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/StandardOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/LinearScanLifetimeAnalysisPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/alloc/lsra/LinearScanWalker.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/asm/CompilationResultBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/asm/CompilationResultBuilderFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/constopt/ConstantLoadOptimization.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/dfa/LocationMarkerPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/framemap/FrameMap.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/framemap/FrameMapBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/framemap/FrameMapBuilderImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/framemap/VirtualStackSlotRange.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/ArithmeticLIRGeneratorTool.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/DiagnosticLIRGeneratorTool.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/LIRGenerationResult.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/LIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/LIRGeneratorTool.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/ssa/SSAVerifier.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/stackslotalloc/LSStackSlotAllocator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/stackslotalloc/SimpleStackSlotAllocator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/ContextlessLoopPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/ConvertDeoptimizeToGuardPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopFullUnrollPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopPartialUnrollPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopPeelingPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopSafepointEliminationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopTransformations.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.test/src/org/graalvm/compiler/loop/test/LoopPartialUnrollTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/CountedLoopInfo.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/DefaultLoopPolicies.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopEx.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopFragmentInside.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.microbenchmarks/src/org/graalvm/compiler/microbenchmarks/graal/ConditionalEliminationBenchmark.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.test/src/org/graalvm/compiler/nodes/test/IfNodeCanonicalizationTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes.test/src/org/graalvm/compiler/nodes/test/LoopPhiCanonicalizerTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes.test/src/org/graalvm/compiler/nodes/test/PrimitiveStampBoundaryTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes.test/src/org/graalvm/compiler/nodes/test/ShortCircuitOrNodeTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/AbstractFixedGuardNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/CallTargetNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/ComputeObjectAddressNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/ControlSplitNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/DeoptimizingNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/FixedGuardNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/FrameState.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.nodes/src/org/graalvm/compiler/nodes/IfNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/Invoke.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/InvokeNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/InvokeWithExceptionNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/LogicNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/LoopBeginNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/LoopExitNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/PiNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/SimplifyingGraphDecoder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/StructuredGraph.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/ValueNode.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/AbstractNormalizeCompareNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/CompareNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/ConditionalNode.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/FloatNormalizeCompareNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerConvertNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerDivRemNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerEqualsNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerLessThanNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerLowerThanNode.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerNormalizeCompareNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerTestNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IsNullNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NarrowNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NormalizeCompareNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/PointerEqualsNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/ReinterpretNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/cfg/Block.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/cfg/ControlFlowGraph.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/ArrayRangeWrite.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/BranchProbabilityNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/ForeignCallNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/GuardedUnsafeLoadNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/IntegerSwitchNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/JavaWriteNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/LoadHubNode.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/LoadHubOrNullNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/MultiGuardNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/SwitchNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/graphbuilderconf/GeneratedInvocationPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderConfiguration.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderTool.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/graphbuilderconf/InlineInvokePlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/graphbuilderconf/IntrinsicContext.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/graphbuilderconf/MethodSubstitutionPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/AbstractNewObjectNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/ArrayLengthNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/LoadIndexedNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/MonitorExitNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/NewArrayNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/NewInstanceNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/StoreFieldNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/StoreIndexedNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/TypeSwitchNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/AbstractWriteNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/FixedAccessNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/HeapAccess.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/address/IndexAddressNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/DelegatingReplacements.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/LoweringProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/LoweringTool.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/Replacements.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/StampProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/type/NarrowOopStamp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/util/GraphUtil.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/util/IntegerHelper.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/util/SignedIntegerHelper.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/util/UnsignedIntegerHelper.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options.processor/src/org/graalvm/compiler/options/processor/OptionProcessor.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/ModuleSupport.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/Option.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionDescriptor.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionKey.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionValues.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionsParser.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/AddressLoweringByUsePhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/CanonicalizerPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/ConditionalEliminationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/DeoptimizationGroupingPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/ExpandLogicPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/FixReadsPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/FrameStateAssignmentPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/IncrementalCanonicalizerPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/LoweringPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/NodeCounterPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/OptimizeDivPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/PropagateDeoptimizeProbabilityPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/RemoveValueProxyPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/UseTrappingNullChecksPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/InliningUtil.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/info/elem/InlineableGraph.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/policy/AbstractInliningPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/policy/GreedyInliningPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/policy/InlineEverythingPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/policy/InlineMethodSubstitutionsPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/inlining/policy/InliningPolicy.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/util/EconomicSetNodeEventListener.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/PhaseSuite.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/VerifyPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/graph/ReentrantBlockIterator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/tiers/HighTierContext.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/tiers/LowTierContext.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/tiers/MidTierContext.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/util/GraphOrder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/util/Providers.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/BinaryGraphPrinter.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/GraalDebugHandlersFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/GraphPrinter.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/GraphPrinterDumpHandler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64GraphBuilderPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64IntegerArithmeticSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64ArrayIndexOf.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64ArrayIndexOfNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64GraphBuilderPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64StringLatin1Substitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64StringSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64StringUTF16Substitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.processor/src/org/graalvm/compiler/replacements/processor/GeneratedFoldPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.processor/src/org/graalvm/compiler/replacements/processor/GeneratedPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/ArraysSubstitutionsTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/DeoptimizeOnExceptionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/DerivedOopTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/FoldTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/IntegerExactExceptionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/IntegerExactFoldTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/InvokerSignatureMismatchTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/MethodSubstitutionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/PEGraphDecoderTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/ReplacementsParseTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/SnippetsTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StandardMethodSubstitutionsTest.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StringCompareToAVX512Test.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StringCompareToTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StringCompressInflateTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StringIndexOfCharTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StringIndexOfConstantTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StringIndexOfTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StringIndexOfTestBase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StringSubstitutionTestBase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/StringSubstitutionsTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/SubstitutionNodeSourcePositionTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/SubstitutionsTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/classfile/ClassfileBytecodeProviderTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/classfile/RedefineIntrinsicTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/ArraySubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/CachingPEGraphDecoder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/ConstantBindingParameterPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/ConstantStringIndexOfSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/DefaultJavaLoweringProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/GraphKit.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/InlineDuringParsingPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/IntrinsicGraphBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/MethodHandlePlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/PEGraphDecoder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/ReplacementsImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/SnippetCounter.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/SnippetCounterNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/SnippetTemplate.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/StandardGraphBuilderPlugins.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/TargetGraphBuilderPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/arraycopy/ArrayCopyCallNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileBytecodeProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/ArrayEqualsNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/ArrayRegionEqualsNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/BasicArrayCopyNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/BasicObjectCloneNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/MacroNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/MethodHandleNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/ReadRegisterNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/WriteRegisterNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/ZeroMemoryNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/arithmetic/IntegerAddExactNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/arithmetic/IntegerExactArithmeticSplitNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/SpeculationEncodingAdapter.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/UnencodedSpeculationReason.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/ExportingClassLoader.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/GraalTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/JLModule.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/ModuleSupport.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/SubprocessUtil.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/EarlyReadEliminationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/EffectsClosure.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/EffectsPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/GraphEffectList.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/PEReadEliminationClosure.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/PartialEscapeClosure.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/PartialEscapePhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/Word.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/WordOperationPlugin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.word/src/org/graalvm/compiler/word/WordTypes.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphOutput.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/GraphProtocol.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/ProtocolImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/package-info.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.util.test/src/org/graalvm/util/test/CollectionSizeTest.java Changeset: c3b93d6603f5 Author: iklam Date: 2019-09-24 10:36 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/c3b93d6603f5 8231367: [TESTBUG] ParallelLoadTest.java fails with "test.dynamic.dump not supported" Reviewed-by: ccheung ! test/hotspot/jtreg/runtime/cds/appcds/ParallelLoadTest.java ! test/hotspot/jtreg/runtime/cds/appcds/TestCommon.java Changeset: b7192797f434 Author: prappo Date: 2019-09-24 22:57 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/b7192797f434 8228580: DnsClient TCP socket timeout Reviewed-by: vtewari, chegar, prappo Contributed-by: Milan Mimica ! src/jdk.naming.dns/share/classes/com/sun/jndi/dns/DnsClient.java ! src/jdk.naming.dns/share/classes/module-info.java + test/jdk/com/sun/jndi/dns/ConfigTests/TcpTimeout.dns + test/jdk/com/sun/jndi/dns/ConfigTests/TcpTimeout.java Changeset: c6f8b2c3dc66 Author: darcy Date: 2019-09-24 18:25 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/c6f8b2c3dc66 8231334: Suppress warnings on non-serializable instance fields in client libs serializable classes Reviewed-by: prr ! src/java.desktop/share/classes/java/applet/Applet.java ! src/java.desktop/share/classes/java/awt/Component.java ! src/java.desktop/share/classes/java/awt/Container.java ! src/java.desktop/share/classes/java/awt/Event.java ! src/java.desktop/share/classes/java/awt/FileDialog.java ! src/java.desktop/share/classes/java/awt/MediaTracker.java ! src/java.desktop/share/classes/java/awt/MenuComponent.java ! src/java.desktop/share/classes/java/awt/ScrollPaneAdjustable.java ! src/java.desktop/share/classes/java/awt/SentEvent.java ! src/java.desktop/share/classes/java/awt/SequencedEvent.java ! src/java.desktop/share/classes/java/awt/Window.java ! src/java.desktop/share/classes/java/awt/desktop/FilesEvent.java ! src/java.desktop/share/classes/java/awt/event/AdjustmentEvent.java ! src/java.desktop/share/classes/java/awt/event/InvocationEvent.java ! src/java.desktop/share/classes/java/awt/event/ItemEvent.java ! src/java.desktop/share/classes/java/beans/PropertyChangeEvent.java ! src/java.desktop/share/classes/java/beans/beancontext/BeanContextChildSupport.java ! src/java.desktop/share/classes/java/beans/beancontext/BeanContextEvent.java ! src/java.desktop/share/classes/java/beans/beancontext/BeanContextMembershipEvent.java ! src/java.desktop/share/classes/java/beans/beancontext/BeanContextServicesSupport.java ! src/java.desktop/share/classes/java/beans/beancontext/BeanContextSupport.java ! src/java.desktop/share/classes/javax/imageio/metadata/IIOInvalidTreeException.java ! src/java.desktop/share/classes/javax/imageio/spi/DigraphNode.java ! src/java.desktop/share/classes/javax/print/attribute/AttributeSetUtilities.java ! src/java.desktop/share/classes/javax/print/event/PrintJobAttributeEvent.java ! src/java.desktop/share/classes/javax/print/event/PrintServiceAttributeEvent.java ! src/java.desktop/share/classes/javax/sound/sampled/LineEvent.java ! src/java.desktop/share/classes/sun/awt/EmbeddedFrame.java Changeset: 81134def991d Author: ccheung Date: 2019-09-24 20:16 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/81134def991d 8231097: [TESTBUG] runtime/cds/appcds/DirClasspathTest.java can fail with a mapping error Summary: Check output for mapping failure and throw a SkippedException. Reviewed-by: iklam, dholmes ! test/hotspot/jtreg/runtime/cds/appcds/TestCommon.java Changeset: 88fce7eea1f6 Author: roland Date: 2019-09-23 16:49 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/88fce7eea1f6 8229483: Sinking load out of loop may trigger: assert(found_sfpt) failed: no node in loop that's not input to safepoint Reviewed-by: thartmann, neliasso ! src/hotspot/share/opto/loopopts.cpp + test/hotspot/jtreg/compiler/loopstripmining/AntiDependentLoadInOuterStripMinedLoop.java Changeset: ce960527ecee Author: alanb Date: 2019-09-25 09:17 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/ce960527ecee 8231413: Several test/hotspot/jtreg/runtime tests updates to run with --illegal-access=deny Reviewed-by: hseigel, lfoltan, dholmes ! test/hotspot/jtreg/runtime/InvocationTests/invocationC1Tests.java ! test/hotspot/jtreg/runtime/InvocationTests/invocationGraalTests.java ! test/hotspot/jtreg/runtime/InvocationTests/invokeinterfaceTests.java ! test/hotspot/jtreg/runtime/InvocationTests/invokespecialTests.java ! test/hotspot/jtreg/runtime/InvocationTests/invokevirtualTests.java ! test/hotspot/jtreg/runtime/Unsafe/InternalErrorTest.java Changeset: 8a2bc12d2a9a Author: michaelm Date: 2019-09-25 09:38 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/8a2bc12d2a9a 8231450: Copyright header line omitted from 8231187 changeset Reviewed-by: chegar ! test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.java Changeset: 170b727a240a Author: psadhukhan Date: 2019-08-26 11:20 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/170b727a240a Merge - make/jdk/src/classes/build/tools/tzdb/ZoneRules.java - src/hotspot/cpu/aarch64/aarch64_call.cpp - src/hotspot/cpu/aarch64/aarch64_linkage.S - src/hotspot/cpu/aarch64/cpustate_aarch64.hpp - src/hotspot/cpu/aarch64/decode_aarch64.hpp - src/hotspot/os_cpu/linux_aarch64/linux_aarch64.S - src/hotspot/share/gc/parallel/gcTaskManager.cpp - src/hotspot/share/gc/parallel/gcTaskManager.hpp - src/hotspot/share/gc/parallel/gcTaskThread.cpp - src/hotspot/share/gc/parallel/gcTaskThread.hpp - src/hotspot/share/gc/parallel/pcTasks.cpp - src/hotspot/share/gc/parallel/pcTasks.hpp - src/hotspot/share/gc/parallel/psTasks.cpp - src/hotspot/share/gc/parallel/psTasks.hpp - src/hotspot/share/oops/markOop.cpp - src/hotspot/share/oops/markOop.hpp - src/hotspot/share/oops/markOop.inline.hpp - src/java.base/share/classes/java/security/acl/Acl.java - src/java.base/share/classes/java/security/acl/AclEntry.java - src/java.base/share/classes/java/security/acl/AclNotFoundException.java - src/java.base/share/classes/java/security/acl/Group.java - src/java.base/share/classes/java/security/acl/LastOwnerException.java - src/java.base/share/classes/java/security/acl/NotOwnerException.java - src/java.base/share/classes/java/security/acl/Owner.java - src/java.base/share/classes/java/security/acl/Permission.java - src/java.base/share/classes/java/security/acl/package-info.java - test/hotspot/jtreg/runtime/SharedArchiveFile/ArchiveDoesNotExist.java - test/hotspot/jtreg/runtime/SharedArchiveFile/BootAppendTests.java - test/hotspot/jtreg/runtime/SharedArchiveFile/CdsDifferentCompactStrings.java - test/hotspot/jtreg/runtime/SharedArchiveFile/CdsDifferentObjectAlignment.java - test/hotspot/jtreg/runtime/SharedArchiveFile/CdsSameObjectAlignment.java - test/hotspot/jtreg/runtime/SharedArchiveFile/CheckDefaultArchiveFile.java - test/hotspot/jtreg/runtime/SharedArchiveFile/CheckSharingWithDefaultArchive.java - test/hotspot/jtreg/runtime/SharedArchiveFile/DumpSharedDictionary.java - test/hotspot/jtreg/runtime/SharedArchiveFile/DumpSymbolAndStringTable.java - test/hotspot/jtreg/runtime/SharedArchiveFile/LoadClass.java - test/hotspot/jtreg/runtime/SharedArchiveFile/MaxMetaspaceSize.java - test/hotspot/jtreg/runtime/SharedArchiveFile/NonBootLoaderClasses.java - test/hotspot/jtreg/runtime/SharedArchiveFile/PrintSharedArchiveAndExit.java - test/hotspot/jtreg/runtime/SharedArchiveFile/SharedArchiveFile.java - test/hotspot/jtreg/runtime/SharedArchiveFile/SharedBaseAddress.java - test/hotspot/jtreg/runtime/SharedArchiveFile/SharedStrings.java - test/hotspot/jtreg/runtime/SharedArchiveFile/SharedStringsDedup.java - test/hotspot/jtreg/runtime/SharedArchiveFile/SharedStringsRunAuto.java - test/hotspot/jtreg/runtime/SharedArchiveFile/SharedStringsWb.java - test/hotspot/jtreg/runtime/SharedArchiveFile/SharedSymbolTableBucketSize.java - test/hotspot/jtreg/runtime/SharedArchiveFile/SpaceUtilizationCheck.java - test/hotspot/jtreg/runtime/SharedArchiveFile/TestInterpreterMethodEntries.java - test/hotspot/jtreg/runtime/SharedArchiveFile/javax/annotation/processing/FilerException.jasm - test/hotspot/jtreg/runtime/SharedArchiveFile/javax/sound/sampled/MyClass.jasm - test/hotspot/jtreg/runtime/SharedArchiveFile/nonjdk/myPackage/MyClass.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/ReplaceCriticalClasses.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/ReplaceCriticalClassesForSubgraphs.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/Implementor.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/Interface.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/SubClass.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/SuperClazz.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TestEntry.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformInterfaceAndImplementor.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformRelatedClasses.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformSuperAndSubClasses.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformSuperSubTwoPckgs.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/TransformTestCommon.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/myPkg1/SuperClazz.java - test/hotspot/jtreg/runtime/SharedArchiveFile/serviceability/transformRelatedClasses/myPkg2/SubClass.java - test/hotspot/jtreg/runtime/appcds/AppCDSOptions.java - test/hotspot/jtreg/runtime/appcds/AppendClasspath.java - test/hotspot/jtreg/runtime/appcds/BootClassPathMismatch.java - test/hotspot/jtreg/runtime/appcds/CDSandJFR.java - test/hotspot/jtreg/runtime/appcds/CaseSensitiveClassPath.java - test/hotspot/jtreg/runtime/appcds/ClassLoaderTest.java - test/hotspot/jtreg/runtime/appcds/ClassPathAttr.java - test/hotspot/jtreg/runtime/appcds/CommandLineFlagCombo.java - test/hotspot/jtreg/runtime/appcds/CommandLineFlagComboNegative.java - test/hotspot/jtreg/runtime/appcds/CompilerUtils.java - test/hotspot/jtreg/runtime/appcds/DirClasspathTest.java - test/hotspot/jtreg/runtime/appcds/DumpClassList.java - test/hotspot/jtreg/runtime/appcds/ExtraSymbols.invalid_1.txt - test/hotspot/jtreg/runtime/appcds/ExtraSymbols.invalid_2.txt - test/hotspot/jtreg/runtime/appcds/ExtraSymbols.invalid_3.txt - test/hotspot/jtreg/runtime/appcds/ExtraSymbols.java - test/hotspot/jtreg/runtime/appcds/ExtraSymbols.symbols.txt - test/hotspot/jtreg/runtime/appcds/FieldAnnotationsTest.java - test/hotspot/jtreg/runtime/appcds/FreeUnusedMetadata.java - test/hotspot/jtreg/runtime/appcds/GraalWithLimitedMetaspace.java - test/hotspot/jtreg/runtime/appcds/HelloExtTest.java - test/hotspot/jtreg/runtime/appcds/HelloTest.java - test/hotspot/jtreg/runtime/appcds/IgnoreEmptyClassPaths.java - test/hotspot/jtreg/runtime/appcds/JarBuilder.java - test/hotspot/jtreg/runtime/appcds/JvmtiAddPath.java - test/hotspot/jtreg/runtime/appcds/LongClassListPath.java - test/hotspot/jtreg/runtime/appcds/LotsOfClasses.java - test/hotspot/jtreg/runtime/appcds/MissingSuperTest.java - test/hotspot/jtreg/runtime/appcds/MoveJDKTest.java - test/hotspot/jtreg/runtime/appcds/MultiProcessSharing.java - test/hotspot/jtreg/runtime/appcds/MultiReleaseJars.java - test/hotspot/jtreg/runtime/appcds/OldClassTest.java - test/hotspot/jtreg/runtime/appcds/PackageSealing.java - test/hotspot/jtreg/runtime/appcds/ParallelLoad2.java - test/hotspot/jtreg/runtime/appcds/ParallelLoadTest.java - test/hotspot/jtreg/runtime/appcds/PrintSharedArchiveAndExit.java - test/hotspot/jtreg/runtime/appcds/ProhibitedPackage.java - test/hotspot/jtreg/runtime/appcds/ProtectionDomain.java - test/hotspot/jtreg/runtime/appcds/RelativePath.java - test/hotspot/jtreg/runtime/appcds/RewriteBytecodesTest.java - test/hotspot/jtreg/runtime/appcds/SharedArchiveConsistency.java - test/hotspot/jtreg/runtime/appcds/SharedBaseAddress.java - test/hotspot/jtreg/runtime/appcds/SharedPackages.java - test/hotspot/jtreg/runtime/appcds/SignedJar.java - test/hotspot/jtreg/runtime/appcds/SpecifySysLoaderProp.java - test/hotspot/jtreg/runtime/appcds/TestCommon.java - test/hotspot/jtreg/runtime/appcds/TestWithProfiler.java - test/hotspot/jtreg/runtime/appcds/TraceLongClasspath.java - test/hotspot/jtreg/runtime/appcds/UnusedCPDuringDump.java - test/hotspot/jtreg/runtime/appcds/UseAppCDS_Test.java - test/hotspot/jtreg/runtime/appcds/VerifierTest.java - test/hotspot/jtreg/runtime/appcds/VerifierTest_0.java - test/hotspot/jtreg/runtime/appcds/VerifierTest_1A.java - test/hotspot/jtreg/runtime/appcds/VerifierTest_1B.java - test/hotspot/jtreg/runtime/appcds/VerifierTest_2.java - test/hotspot/jtreg/runtime/appcds/WideIloadTest.java - test/hotspot/jtreg/runtime/appcds/WrongClasspath.java - test/hotspot/jtreg/runtime/appcds/XShareAutoWithChangedJar.java - test/hotspot/jtreg/runtime/appcds/cacheObject/ArchivedIntegerCacheTest.java - test/hotspot/jtreg/runtime/appcds/cacheObject/ArchivedModuleComboTest.java - test/hotspot/jtreg/runtime/appcds/cacheObject/ArchivedModuleCompareTest.java - test/hotspot/jtreg/runtime/appcds/cacheObject/ArchivedModuleWithCustomImageTest.java - test/hotspot/jtreg/runtime/appcds/cacheObject/CheckArchivedModuleApp.java - test/hotspot/jtreg/runtime/appcds/cacheObject/CheckCachedMirrorApp.java - test/hotspot/jtreg/runtime/appcds/cacheObject/CheckCachedMirrorTest.java - test/hotspot/jtreg/runtime/appcds/cacheObject/CheckCachedResolvedReferences.java - test/hotspot/jtreg/runtime/appcds/cacheObject/CheckCachedResolvedReferencesApp.java - test/hotspot/jtreg/runtime/appcds/cacheObject/CheckIntegerCacheApp.java - test/hotspot/jtreg/runtime/appcds/cacheObject/DifferentHeapSizes.java - test/hotspot/jtreg/runtime/appcds/cacheObject/DumpTimeVerifyFailure.config.txt - test/hotspot/jtreg/runtime/appcds/cacheObject/DumpTimeVerifyFailure.java - test/hotspot/jtreg/runtime/appcds/cacheObject/GCStress.config.txt - test/hotspot/jtreg/runtime/appcds/cacheObject/GCStressApp.java - test/hotspot/jtreg/runtime/appcds/cacheObject/GCStressTest.java - test/hotspot/jtreg/runtime/appcds/cacheObject/InstrumentationAgent.mf - test/hotspot/jtreg/runtime/appcds/cacheObject/MirrorWithReferenceFieldsApp.java - test/hotspot/jtreg/runtime/appcds/cacheObject/MirrorWithReferenceFieldsTest.java - test/hotspot/jtreg/runtime/appcds/cacheObject/MyException.java - test/hotspot/jtreg/runtime/appcds/cacheObject/MyOuter.java - test/hotspot/jtreg/runtime/appcds/cacheObject/OpenArchiveRegion.java - test/hotspot/jtreg/runtime/appcds/cacheObject/PrimitiveTypesApp.java - test/hotspot/jtreg/runtime/appcds/cacheObject/PrimitiveTypesTest.java - test/hotspot/jtreg/runtime/appcds/cacheObject/PrintSystemModulesApp.java - test/hotspot/jtreg/runtime/appcds/cacheObject/RedefineClassApp.java - test/hotspot/jtreg/runtime/appcds/cacheObject/RedefineClassTest.java - test/hotspot/jtreg/runtime/appcds/cacheObject/src/test/jdk/test/Test.java - test/hotspot/jtreg/runtime/appcds/cacheObject/src/test/module-info.java - test/hotspot/jtreg/runtime/appcds/cdsutils/DynamicDumpHelper.java - test/hotspot/jtreg/runtime/appcds/condy/CondyHello.jasm - test/hotspot/jtreg/runtime/appcds/condy/CondyHelloApp.java - test/hotspot/jtreg/runtime/appcds/condy/CondyHelloTest.java - test/hotspot/jtreg/runtime/appcds/customLoader/ClassListFormatA.java - test/hotspot/jtreg/runtime/appcds/customLoader/ClassListFormatB.java - test/hotspot/jtreg/runtime/appcds/customLoader/ClassListFormatBase.java - test/hotspot/jtreg/runtime/appcds/customLoader/ClassListFormatC.java - test/hotspot/jtreg/runtime/appcds/customLoader/ClassListFormatD.java - test/hotspot/jtreg/runtime/appcds/customLoader/ClassListFormatE.java - test/hotspot/jtreg/runtime/appcds/customLoader/CustomLoaderApp.java - test/hotspot/jtreg/runtime/appcds/customLoader/HelloCustom.java - test/hotspot/jtreg/runtime/appcds/customLoader/HelloCustom_JFR.java - test/hotspot/jtreg/runtime/appcds/customLoader/LoaderSegregationTest.java - test/hotspot/jtreg/runtime/appcds/customLoader/ParallelTestBase.java - test/hotspot/jtreg/runtime/appcds/customLoader/ParallelTestMultiFP.java - test/hotspot/jtreg/runtime/appcds/customLoader/ParallelTestSingleFP.java - test/hotspot/jtreg/runtime/appcds/customLoader/ProhibitedPackageNamesTest.java - test/hotspot/jtreg/runtime/appcds/customLoader/ProtectionDomain.java - test/hotspot/jtreg/runtime/appcds/customLoader/SameNameInTwoLoadersTest.java - test/hotspot/jtreg/runtime/appcds/customLoader/UnintendedLoadersTest.java - test/hotspot/jtreg/runtime/appcds/customLoader/UnloadUnregisteredLoaderTest.java - test/hotspot/jtreg/runtime/appcds/customLoader/UnsupportedPlatforms.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/CustomInterface2_ia.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/CustomInterface2_ib.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/CustomLoadee.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/CustomLoadee2.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/CustomLoadee3.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/CustomLoadee3Child.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/Hello.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/HelloUnload.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/InProhibitedPkg.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/LoaderAPI.mf - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/LoaderSegregation.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/OnlyBuiltin.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/OnlyUnregistered.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/ProtDomain.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/SameNameUnrelatedLoaders.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/SimpleHello.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/UnintendedLoaders.java - test/hotspot/jtreg/runtime/appcds/customLoader/test-classes/UnloadUnregisteredLoader.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/AppendClasspath.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/ArchiveConsistency.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/ArrayKlasses.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/ClassResolutionFailure.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/DynamicArchiveTestBase.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/DynamicFlag.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/DynamicLotsOfClasses.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/ExcludedClasses.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/HelloDynamic.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/HelloDynamicCustom.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/HelloDynamicCustomUnload.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/JITInteraction.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/MainModuleOnly.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/MethodSorting.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/MissingArchive.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/NoClassToArchive.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/RelativePath.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/SharedArchiveFileOption.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/UnsupportedBaseArchive.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/UnusedCPDuringDump.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/WrongTopClasspath.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/test-classes/ArrayKlassesApp.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/test-classes/ExcludedClassesApp.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/test-classes/LoadClasses.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/test-classes/MethodSortingApp.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/test-classes/MissingDependent.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/test-classes/StrConcatApp.java - test/hotspot/jtreg/runtime/appcds/dynamicArchive/test-classes/TestJIT.java - test/hotspot/jtreg/runtime/appcds/javaldr/AnonVmClassesDuringDump.java - test/hotspot/jtreg/runtime/appcds/javaldr/AnonVmClassesDuringDumpTransformer.java - test/hotspot/jtreg/runtime/appcds/javaldr/AnonVmClassesDuringDumpTransformer.mf - test/hotspot/jtreg/runtime/appcds/javaldr/ArrayTest.java - test/hotspot/jtreg/runtime/appcds/javaldr/ArrayTestHelper.java - test/hotspot/jtreg/runtime/appcds/javaldr/GCDuringDump.java - test/hotspot/jtreg/runtime/appcds/javaldr/GCDuringDumpTransformer.java - test/hotspot/jtreg/runtime/appcds/javaldr/GCDuringDumpTransformer.mf - test/hotspot/jtreg/runtime/appcds/javaldr/GCSharedStringsDuringDump.java - test/hotspot/jtreg/runtime/appcds/javaldr/GCSharedStringsDuringDumpWb.java - test/hotspot/jtreg/runtime/appcds/javaldr/HumongousDuringDump.java - test/hotspot/jtreg/runtime/appcds/javaldr/HumongousDuringDumpTransformer.java - test/hotspot/jtreg/runtime/appcds/javaldr/HumongousDuringDumpTransformer.mf - test/hotspot/jtreg/runtime/appcds/jigsaw/CheckUnsupportedDumpingOptions.java - test/hotspot/jtreg/runtime/appcds/jigsaw/JigsawOptionsCombo.java - test/hotspot/jtreg/runtime/appcds/jigsaw/PatchModule/AppClassInCP.java - test/hotspot/jtreg/runtime/appcds/jigsaw/PatchModule/CustomPackage.java - test/hotspot/jtreg/runtime/appcds/jigsaw/PatchModule/MismatchedPatchModule.java - test/hotspot/jtreg/runtime/appcds/jigsaw/PatchModule/PatchDir.java - test/hotspot/jtreg/runtime/appcds/jigsaw/PatchModule/PatchJavaBase.java - test/hotspot/jtreg/runtime/appcds/jigsaw/PatchModule/PatchMain.java - test/hotspot/jtreg/runtime/appcds/jigsaw/PatchModule/Simple.java - test/hotspot/jtreg/runtime/appcds/jigsaw/PatchModule/SubClassOfPatchedClass.java - test/hotspot/jtreg/runtime/appcds/jigsaw/PatchModule/TwoJars.java - test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/BootAppendTests.java - test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/ClassPathTests.java - test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/DummyClassesInBootClassPath.java - test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/EmptyClassInBootClassPath.java - test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/src/com/sun/tools/javac/Main.jasm - test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/src/com/sun/tools/javac/MyMain.jasm - test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/src/jdk/test/Main.java - test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/src/sun/nio/cs/ext/MyClass.java - test/hotspot/jtreg/runtime/appcds/jigsaw/classpathtests/src/sun/nio/cs/ext1/MyClass.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddModules.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddOpens.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/AddReads.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/ExportModule.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/JvmtiAddPath.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/MainModuleOnly.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/ModulePathAndCP.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/ModulePathAndCP_JFR.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/com.greetings/com/greetings/Main.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/com.greetings/module-info.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/com.hello/com/hello/Main.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/com.hello/module-info.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/com.nomodule/com/nomodule/Main.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/com.norequires/com/norequires/Main.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/com.norequires/module-info.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/com.simple/com/simple/Main.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/com.simple/module-info.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/org.astro/module-info.java - test/hotspot/jtreg/runtime/appcds/jigsaw/modulepath/src/org.astro/org/astro/World.java - test/hotspot/jtreg/runtime/appcds/jigsaw/overridetests/OverrideTests.java - test/hotspot/jtreg/runtime/appcds/jigsaw/overridetests/src/java.net.http/java/net/http/HttpTimeoutException.java - test/hotspot/jtreg/runtime/appcds/jigsaw/overridetests/src/java.net.http/module-info.java - test/hotspot/jtreg/runtime/appcds/jigsaw/overridetests/src/jdk.compiler/com/sun/tools/javac/Main.java - test/hotspot/jtreg/runtime/appcds/jigsaw/overridetests/src/jdk.compiler/module-info.java - test/hotspot/jtreg/runtime/appcds/jigsaw/overridetests/src/test/jdk/test/Main.java - test/hotspot/jtreg/runtime/appcds/jigsaw/overridetests/src/test/module-info.java - test/hotspot/jtreg/runtime/appcds/jvmti/ClassFileLoadHook.java - test/hotspot/jtreg/runtime/appcds/jvmti/ClassFileLoadHookTest.java - test/hotspot/jtreg/runtime/appcds/jvmti/InstrumentationAgent.mf - test/hotspot/jtreg/runtime/appcds/jvmti/InstrumentationApp.java - test/hotspot/jtreg/runtime/appcds/jvmti/InstrumentationClassFileTransformer.java - test/hotspot/jtreg/runtime/appcds/jvmti/InstrumentationRegisterClassFileTransformer.java - test/hotspot/jtreg/runtime/appcds/jvmti/InstrumentationTest.java - test/hotspot/jtreg/runtime/appcds/jvmti/dumpingWithAgent/DumpingWithJavaAgent.java - test/hotspot/jtreg/runtime/appcds/jvmti/dumpingWithAgent/DumpingWithJvmtiAgent.java - test/hotspot/jtreg/runtime/appcds/jvmti/dumpingWithAgent/SimpleAgent.java - test/hotspot/jtreg/runtime/appcds/jvmti/dumpingWithAgent/SimpleAgent.mf - test/hotspot/jtreg/runtime/appcds/jvmti/dumpingWithAgent/libAddToSystemCLSearchOnLoad.c - test/hotspot/jtreg/runtime/appcds/jvmti/parallelLoad/ParallelClassesTransform.java - test/hotspot/jtreg/runtime/appcds/jvmti/parallelLoad/ParallelLoadAndTransformTest.java - test/hotspot/jtreg/runtime/appcds/jvmti/transformRelatedClasses/TransformInterfaceImplementorAppCDS.java - test/hotspot/jtreg/runtime/appcds/jvmti/transformRelatedClasses/TransformRelatedClassesAppCDS.java - test/hotspot/jtreg/runtime/appcds/jvmti/transformRelatedClasses/TransformSuperSubAppCDS.java - test/hotspot/jtreg/runtime/appcds/redefineClass/RedefineBasic.java - test/hotspot/jtreg/runtime/appcds/redefineClass/RedefineBasicTest.java - test/hotspot/jtreg/runtime/appcds/redefineClass/RedefineRunningMethods_Shared.java - test/hotspot/jtreg/runtime/appcds/redefineClass/RedefineRunningMethods_SharedHelper.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/ExerciseGC.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/ExtraSharedInput.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/FlagCombo.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/HelloString.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/HelloStringGC.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/HelloStringPlus.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/InternSharedString.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/InternStringTest.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/InvalidFileFormat.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/LargePages.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/LockSharedStrings.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/LockStringTest.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/LockStringValueTest.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/SharedStringsBasic.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/SharedStringsBasic.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/SharedStringsBasicPlus.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/SharedStringsHumongous.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/SharedStringsStress.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/SharedStringsUtils.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/SharedStringsWb.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/SharedStringsWbTest.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/SysDictCrash.java - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/CorruptDataLine.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/InvalidDataType.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/InvalidHeader.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/InvalidString.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/InvalidStringFormat.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/InvalidSymbol.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/InvalidSymbolFormat.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/InvalidVersion.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/LengthOverflow.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/OverflowPrefix.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/TruncatedString.txt - test/hotspot/jtreg/runtime/appcds/sharedStrings/invalidFormat/UnrecognizedPrefix.txt - test/hotspot/jtreg/runtime/appcds/test-classes/ArrayListTest.java - test/hotspot/jtreg/runtime/appcds/test-classes/BootClassPathAppendHelper.java - test/hotspot/jtreg/runtime/appcds/test-classes/C1.java - test/hotspot/jtreg/runtime/appcds/test-classes/C2.java - test/hotspot/jtreg/runtime/appcds/test-classes/Child.java - test/hotspot/jtreg/runtime/appcds/test-classes/CpAttr1.java - test/hotspot/jtreg/runtime/appcds/test-classes/CpAttr2.java - test/hotspot/jtreg/runtime/appcds/test-classes/CpAttr3.java - test/hotspot/jtreg/runtime/appcds/test-classes/CpAttr4.java - test/hotspot/jtreg/runtime/appcds/test-classes/CpAttr5.java - test/hotspot/jtreg/runtime/appcds/test-classes/DummyClassHelper.java - test/hotspot/jtreg/runtime/appcds/test-classes/EmptyClassHelper.java - test/hotspot/jtreg/runtime/appcds/test-classes/FieldAnnotationsApp.java - test/hotspot/jtreg/runtime/appcds/test-classes/ForNameTest.java - test/hotspot/jtreg/runtime/appcds/test-classes/GenericTestApp.java - test/hotspot/jtreg/runtime/appcds/test-classes/GetFlightRecorder.java - test/hotspot/jtreg/runtime/appcds/test-classes/Greet.java - test/hotspot/jtreg/runtime/appcds/test-classes/Hello.java - test/hotspot/jtreg/runtime/appcds/test-classes/HelloExt.java - test/hotspot/jtreg/runtime/appcds/test-classes/HelloExtApp.java - test/hotspot/jtreg/runtime/appcds/test-classes/HelloExtExt.java - test/hotspot/jtreg/runtime/appcds/test-classes/HelloMore.java - test/hotspot/jtreg/runtime/appcds/test-classes/HelloWB.java - test/hotspot/jtreg/runtime/appcds/test-classes/Hi.java - test/hotspot/jtreg/runtime/appcds/test-classes/Iloadw.jasm - test/hotspot/jtreg/runtime/appcds/test-classes/IloadwMain.java - test/hotspot/jtreg/runtime/appcds/test-classes/JimageClassPackage.java - test/hotspot/jtreg/runtime/appcds/test-classes/JimageClassProtDomain.java - test/hotspot/jtreg/runtime/appcds/test-classes/JvmtiApp.java - test/hotspot/jtreg/runtime/appcds/test-classes/MethodNoReturn.jasm - test/hotspot/jtreg/runtime/appcds/test-classes/MissingSuper.java - test/hotspot/jtreg/runtime/appcds/test-classes/MultiProcClass.java - test/hotspot/jtreg/runtime/appcds/test-classes/MyAnnotation.java - test/hotspot/jtreg/runtime/appcds/test-classes/MyThread.java - test/hotspot/jtreg/runtime/appcds/test-classes/PackageSealingTest.java - test/hotspot/jtreg/runtime/appcds/test-classes/PackageTest.java - test/hotspot/jtreg/runtime/appcds/test-classes/ParallelClasses.java - test/hotspot/jtreg/runtime/appcds/test-classes/ParallelLoad.java - test/hotspot/jtreg/runtime/appcds/test-classes/Prohibited.jasm - test/hotspot/jtreg/runtime/appcds/test-classes/ProhibitedHelper.java - test/hotspot/jtreg/runtime/appcds/test-classes/ProtDomain.java - test/hotspot/jtreg/runtime/appcds/test-classes/ProtDomainB.java - test/hotspot/jtreg/runtime/appcds/test-classes/ReportMyLoader.java - test/hotspot/jtreg/runtime/appcds/test-classes/RewriteBytecodes.java - test/hotspot/jtreg/runtime/appcds/test-classes/Super.java - test/hotspot/jtreg/runtime/appcds/test-classes/TestClassLoader.java - test/hotspot/jtreg/runtime/appcds/test-classes/TestWithProfilerHelper.java - test/hotspot/jtreg/runtime/appcds/test-classes/TrySwitchMyLoader.java - test/hotspot/jtreg/runtime/appcds/test-classes/Util.java - test/hotspot/jtreg/runtime/appcds/test-classes/VerifierTest0.java - test/hotspot/jtreg/runtime/appcds/test-classes/com/sun/tools/javac/Main.jasm - test/hotspot/jtreg/runtime/appcds/test-classes/cpattr1.mf - test/hotspot/jtreg/runtime/appcds/test-classes/cpattr1_long.mf - test/hotspot/jtreg/runtime/appcds/test-classes/cpattr2.mf - test/hotspot/jtreg/runtime/appcds/test-classes/cpattr3.mf - test/hotspot/jtreg/runtime/appcds/test-classes/cpattr4.mf - test/hotspot/jtreg/runtime/appcds/test-classes/cpattr5_extra_long.mf - test/hotspot/jtreg/runtime/appcds/test-classes/java/net/HttpCookie.jasm - test/hotspot/jtreg/runtime/appcds/test-classes/javax/transaction/InvalidTransactionException.jasm - test/hotspot/jtreg/runtime/appcds/test-classes/package_seal.mf - test/hotspot/jtreg/serviceability/sa/ClhsdbRegionDetailsScanOopsForG1.java - test/hotspot/jtreg/serviceability/sa/LingeredAppWithLargeArray.java - test/hotspot/jtreg/serviceability/sa/LingeredAppWithLargeStringArray.java - test/hotspot/jtreg/serviceability/sa/TestHeapDumpForLargeArray.java ! test/jdk/ProblemList.txt - test/jdk/java/net/Socket/reset/Test.java - test/jdk/sun/util/calendar/zi/tzdata/VERSION - test/jdk/sun/util/calendar/zi/tzdata/africa - test/jdk/sun/util/calendar/zi/tzdata/antarctica - test/jdk/sun/util/calendar/zi/tzdata/asia - test/jdk/sun/util/calendar/zi/tzdata/australasia - test/jdk/sun/util/calendar/zi/tzdata/backward - test/jdk/sun/util/calendar/zi/tzdata/etcetera - test/jdk/sun/util/calendar/zi/tzdata/europe - test/jdk/sun/util/calendar/zi/tzdata/factory - test/jdk/sun/util/calendar/zi/tzdata/gmt - test/jdk/sun/util/calendar/zi/tzdata/iso3166.tab - test/jdk/sun/util/calendar/zi/tzdata/jdk11_backward - test/jdk/sun/util/calendar/zi/tzdata/leapseconds - test/jdk/sun/util/calendar/zi/tzdata/northamerica - test/jdk/sun/util/calendar/zi/tzdata/pacificnew - test/jdk/sun/util/calendar/zi/tzdata/solar87 - test/jdk/sun/util/calendar/zi/tzdata/solar88 - test/jdk/sun/util/calendar/zi/tzdata/solar89 - test/jdk/sun/util/calendar/zi/tzdata/southamerica - test/jdk/sun/util/calendar/zi/tzdata/systemv - test/jdk/sun/util/calendar/zi/tzdata/zone.tab - test/jdk/sun/util/calendar/zi/tzdata_jdk/gmt - test/jdk/sun/util/calendar/zi/tzdata_jdk/jdk11_full_backward Changeset: 07556f8cd819 Author: serb Date: 2019-08-27 04:43 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/07556f8cd819 8146238: [macosx] Java2D Queue Flusher crash on OSX after switching between user accounts Reviewed-by: prr, avu ! src/java.desktop/macosx/classes/sun/java2d/opengl/CGLSurfaceData.java ! src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl/CGLSurfaceData.m ! src/java.desktop/share/classes/sun/java2d/opengl/OGLSurfaceData.java ! src/java.desktop/share/native/common/java2d/opengl/OGLSurfaceData.c ! src/java.desktop/share/native/common/java2d/opengl/OGLSurfaceData.h ! src/java.desktop/unix/classes/sun/java2d/opengl/GLXSurfaceData.java ! src/java.desktop/unix/native/common/java2d/opengl/GLXSurfaceData.c ! src/java.desktop/windows/classes/sun/java2d/opengl/WGLSurfaceData.java ! src/java.desktop/windows/native/libawt/java2d/opengl/WGLSurfaceData.c Changeset: 718496767a7d Author: prr Date: 2019-08-28 09:13 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/718496767a7d 8229800: WindowsServerCore 1809 does not provide d2d1.dll library required by awt.dll Reviewed-by: jdv, serb, aaivanov ! src/java.desktop/windows/native/common/awt/systemscale/systemScale.cpp ! src/java.desktop/windows/native/libawt/windows/awt_Win32GraphicsDevice.cpp Changeset: ddd26bd764e8 Author: psadhukhan Date: 2019-08-29 16:11 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/ddd26bd764e8 Merge - src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.cpp - src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.hpp - src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.cpp - src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingPath_linux_aarch64.hpp - src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.cpp - src/hotspot/os_cpu/linux_aarch64/gc/z/zPhysicalMemoryBacking_linux_aarch64.hpp - src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.cpp - src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.hpp - src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.cpp - src/hotspot/os_cpu/linux_x86/gc/z/zBackingPath_linux_x86.hpp - src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.cpp - src/hotspot/os_cpu/linux_x86/gc/z/zPhysicalMemoryBacking_linux_x86.hpp - src/hotspot/share/classfile/sharedPathsMiscInfo.cpp - src/hotspot/share/classfile/sharedPathsMiscInfo.hpp ! test/jdk/ProblemList.txt - test/jdk/javax/xml/jaxp/testng/validation/jdk8037819/BasicTest1.java Changeset: f39420849ae9 Author: trebari Date: 2019-09-04 22:18 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/f39420849ae9 8194944: Regression automated test 'open/test/jdk/javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java' fails Reviewed-by: jdv, arapte ! test/jdk/ProblemList.txt ! test/jdk/javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java Changeset: 18e7ed2cd7d1 Author: mbaesken Date: 2019-09-04 10:12 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/18e7ed2cd7d1 8230480: check malloc/calloc results in java.desktop Reviewed-by: rriggs ! src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_Ports.cpp ! src/java.desktop/unix/native/common/awt/X11Color.c ! src/java.desktop/unix/native/common/awt/fontpath.c ! src/java.desktop/unix/native/libawt_xawt/awt/gtk_interface.c Changeset: 3020baa4efa4 Author: serb Date: 2019-09-07 11:38 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/3020baa4efa4 8229515: [macos] access to window property of NSView on wrong thread Reviewed-by: prr, dmarkov ! src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m Changeset: 7f55aad34ac4 Author: lbourges Date: 2019-09-10 21:20 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/7f55aad34ac4 8230728: Thin stroked shapes are not rendered if affine transform has flip bit Summary: use abs(at.getDeterminant()) in userSpaceLineWidth() to ensure positive value Reviewed-by: prr, jdv ! src/java.desktop/share/classes/sun/java2d/marlin/DMarlinRenderingEngine.java ! src/java.desktop/share/classes/sun/java2d/marlin/MarlinRenderingEngine.java ! src/java.desktop/share/classes/sun/java2d/marlin/Version.java + test/jdk/sun/java2d/marlin/FlipBitTest.java Changeset: 5028ccc17275 Author: pbansal Date: 2019-09-11 15:58 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/5028ccc17275 8225805: Java Access Bridge does not close the logger Reviewed-by: dmarkov, jdv ! src/jdk.accessibility/windows/native/libwindowsaccessbridge/WinAccessBridge.cpp Changeset: 7b3101216e61 Author: serb Date: 2019-09-12 22:20 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/7b3101216e61 8225101: Crash at sun.awt.X11.XlibWrapper.XkbGetUpdatedMap when change keybord map Reviewed-by: prr, pbansal ! src/java.desktop/unix/classes/sun/awt/X11/XToolkit.java Changeset: 0aba35254e00 Author: serb Date: 2019-09-13 17:35 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/0aba35254e00 8229896: Delete an unused code in the BufferedContext Reviewed-by: prr, jdv ! src/java.desktop/macosx/classes/sun/java2d/opengl/CGLGraphicsConfig.java ! src/java.desktop/share/classes/sun/java2d/opengl/OGLContext.java ! src/java.desktop/share/classes/sun/java2d/pipe/BufferedContext.java ! src/java.desktop/share/classes/sun/java2d/pipe/BufferedOpCodes.java ! src/java.desktop/share/native/common/java2d/opengl/OGLRenderQueue.c ! src/java.desktop/unix/classes/sun/java2d/opengl/GLXGraphicsConfig.java ! src/java.desktop/windows/classes/sun/java2d/d3d/D3DContext.java ! src/java.desktop/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DContext.cpp ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DContext.h ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DRenderQueue.cpp ! test/jdk/sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java - test/jdk/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java Changeset: d32a3b1ca84a Author: serb Date: 2019-09-09 12:23 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/d32a3b1ca84a 8225372: accessibility errors in tables in java.desktop files Reviewed-by: aivanov ! src/java.desktop/share/classes/java/awt/BorderLayout.java ! src/java.desktop/share/classes/java/awt/Button.java ! src/java.desktop/share/classes/java/awt/Checkbox.java ! src/java.desktop/share/classes/java/awt/CheckboxGroup.java ! src/java.desktop/share/classes/java/awt/CheckboxMenuItem.java ! src/java.desktop/share/classes/java/awt/Choice.java ! src/java.desktop/share/classes/java/awt/FlowLayout.java ! src/java.desktop/share/classes/java/awt/Frame.java ! src/java.desktop/share/classes/java/awt/GridBagLayout.java ! src/java.desktop/share/classes/java/awt/GridLayout.java ! src/java.desktop/share/classes/java/awt/Label.java ! src/java.desktop/share/classes/java/awt/List.java ! src/java.desktop/share/classes/java/awt/MenuBar.java ! src/java.desktop/share/classes/java/awt/MenuItem.java ! src/java.desktop/share/classes/java/awt/Scrollbar.java ! src/java.desktop/share/classes/java/awt/TextArea.java ! src/java.desktop/share/classes/java/awt/TextField.java ! src/java.desktop/share/classes/java/awt/Window.java ! src/java.desktop/share/classes/java/awt/doc-files/DesktopProperties.html ! src/java.desktop/share/classes/java/awt/doc-files/Modality.html ! src/java.desktop/share/classes/java/awt/font/NumericShaper.java ! src/java.desktop/share/classes/java/awt/geom/Path2D.java ! src/java.desktop/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html ! src/java.desktop/share/classes/javax/imageio/metadata/doc-files/tiff_metadata.html ! src/java.desktop/share/classes/javax/print/attribute/standard/Finishings.java ! src/java.desktop/share/classes/javax/swing/BoxLayout.java ! src/java.desktop/share/classes/javax/swing/JLayeredPane.java ! src/java.desktop/share/classes/javax/swing/JRootPane.java ! src/java.desktop/share/classes/javax/swing/JScrollPane.java ! src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html ! src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/synthFileFormat.html ! src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java Changeset: 34b6db069d68 Author: akolarkunnu Date: 2019-09-18 07:18 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/34b6db069d68 8165828: [TEST_BUG] The reg case:javax/swing/plaf/metal/MetalIcons/MetalHiDPIIconsTest.java failed as No Metal Look and Feel Reviewed-by: psadhukhan Contributed-by: jagjot.singh at oracle.com ! test/jdk/javax/swing/plaf/metal/MetalIcons/MetalHiDPIIconsTest.java Changeset: d07dea54170b Author: psadhukhan Date: 2019-09-23 13:08 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/d07dea54170b Merge - src/hotspot/os_cpu/linux_aarch64/gc/z/zArguments_linux_aarch64.cpp - src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.cpp - src/hotspot/os_cpu/linux_aarch64/gc/z/zGlobals_linux_aarch64.hpp - src/hotspot/os_cpu/linux_x86/gc/z/zArguments_linux_x86.cpp - src/hotspot/os_cpu/linux_x86/gc/z/zGlobals_linux_x86.cpp - src/hotspot/os_cpu/linux_x86/gc/z/zGlobals_linux_x86.hpp - src/hotspot/share/gc/g1/g1HeapSizingPolicy_ext.cpp - src/hotspot/share/gc/z/zUtils.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.hpp - src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetWriter.hpp - src/hotspot/share/logging/logTag_ext.hpp - src/hotspot/share/oops/access.cpp - src/hotspot/share/runtime/arguments_ext.cpp - src/hotspot/share/runtime/globals_ext.hpp - src/hotspot/share/runtime/os_ext.hpp - src/java.base/share/native/libjava/ObjectInputStream.c - src/java.base/share/native/libjava/ObjectOutputStream.c ! src/java.desktop/unix/native/common/awt/fontpath.c - src/jdk.hotspot.agent/share/classes/META-INF/services/com.sun.jdi.connect.Connector ! test/jdk/ProblemList.txt - test/jdk/java/lang/invoke/findclass.security.policy - test/jdk/java/nio/charset/coders/SJISMappingPropTest.java - test/jdk/java/nio/charset/coders/SJISPropTest.java - test/jdk/java/nio/charset/coders/ref.windows-31j - test/jdk/java/security/testlibrary/CertUtils.java - test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithCMS.java - test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithDefNew.java - test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithG1.java - test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithParNew.java - test/jdk/jdk/jfr/event/gc/detailed/TestStressAllocationGCEventsWithParallel.java - test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithCMS.java - test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithDefNew.java - test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithG1.java - test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithParNew.java - test/jdk/jdk/jfr/event/gc/detailed/TestStressBigAllocationGCEventsWithParallel.java Changeset: fe46ee1d42ee Author: dmarkov Date: 2019-09-23 17:18 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/fe46ee1d42ee 8230782: Robot.createScreenCapture() fails if ???awt.robot.gtk??? is set to false Reviewed-by: prr, serb ! src/java.desktop/unix/native/libawt_xawt/awt/multiVis.c Changeset: 483f14c3e0a2 Author: psadhukhan Date: 2019-09-25 13:40 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/483f14c3e0a2 Merge - src/hotspot/os/linux/gc/z/zVirtualMemory_linux.cpp ! src/java.desktop/share/classes/java/awt/Window.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/inlining/PolymorphicInliningTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotClassInitializationPlugin.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NormalizeCompareNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/JLModule.java - src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java Changeset: de8e08015d51 Author: psadhukhan Date: 2019-09-25 14:48 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/de8e08015d51 Merge Changeset: e4ce29f6094e Author: weijun Date: 2019-09-25 17:54 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/e4ce29f6094e 8228659: Record which Java methods are called by native codes in JGSS and JAAS Reviewed-by: mullan ! src/java.security.jgss/macosx/native/libosxkrb5/nativeccache.c ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/GSSCredElement.java ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/GSSLibStub.java ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/GSSNameElement.java ! src/java.security.jgss/share/classes/sun/security/jgss/wrapper/NativeGSSContext.java ! src/java.security.jgss/share/classes/sun/security/krb5/Credentials.java ! src/java.security.jgss/share/classes/sun/security/krb5/EncryptionKey.java ! src/java.security.jgss/share/classes/sun/security/krb5/PrincipalName.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddress.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/HostAddresses.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/KerberosTime.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/Krb5.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/Ticket.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/TicketFlags.java ! src/java.security.jgss/windows/native/libw2k_lsa_auth/NativeCreds.c ! src/jdk.security.auth/share/classes/com/sun/security/auth/module/NTSystem.java ! src/jdk.security.auth/share/classes/com/sun/security/auth/module/UnixSystem.java Changeset: b311681bc3f9 Author: roland Date: 2019-09-17 15:58 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b311681bc3f9 8231055: C2: arraycopy with same non escaping src and dest but different positions causes wrong execution Reviewed-by: thartmann, vlivanov ! src/hotspot/share/opto/macro.cpp ! test/hotspot/jtreg/compiler/escapeAnalysis/TestSelfArrayCopy.java Changeset: f642ad5c655f Author: rkennke Date: 2019-09-25 12:33 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/f642ad5c655f 8231447: Shenandoah: Compilation-time regression after JDK-8231086 Reviewed-by: shade ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp + src/hotspot/share/gc/shenandoah/shenandoahBarrierSetClone.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp Changeset: cfef85f63f47 Author: cito Date: 2019-09-25 20:32 +0900 URL: https://hg.openjdk.java.net/amber/amber/rev/cfef85f63f47 8231317: jdk/jfr/jcmd/TestJcmdConfigure.java fails with "java.lang.RuntimeException: assertTrue: expected true, was false" Reviewed-by: ysuenaga, dcubed ! test/jdk/ProblemList.txt ! test/jdk/jdk/jfr/jcmd/TestJcmdConfigure.java Changeset: 8573d94a3a00 Author: azeller Date: 2019-09-24 14:46 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8573d94a3a00 8230110: TestLinkageErrorInGenerateOopMap times out Reviewed-by: stuefe, clanger, thartmann ! test/hotspot/jtreg/compiler/linkage/TestLinkageErrorInGenerateOopMap.java Changeset: 270abce77942 Author: phh Date: 2019-09-25 08:29 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/270abce77942 8231387: java.security.Provider.getService returns random result due to race condition with mutating methods in the same class Summary: Synchronize access to legacyMap in Provider.getService. Reviewed-by: valeriep Contributed-by: Tianmin Shi ! src/java.base/share/classes/java/security/Provider.java + test/jdk/java/security/Provider/GetServiceRace.java Changeset: faf791c5a710 Author: darcy Date: 2019-09-25 09:37 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/faf791c5a710 8231442: Suppress warnings on non-serializable instance fields in java.sql.* modules Reviewed-by: lancea ! src/java.sql.rowset/share/classes/javax/sql/rowset/BaseRowSet.java ! src/java.sql.rowset/share/classes/javax/sql/rowset/serial/SerialArray.java ! src/java.sql.rowset/share/classes/javax/sql/rowset/serial/SerialBlob.java ! src/java.sql.rowset/share/classes/javax/sql/rowset/serial/SerialClob.java ! src/java.sql.rowset/share/classes/javax/sql/rowset/serial/SerialJavaObject.java ! src/java.sql.rowset/share/classes/javax/sql/rowset/serial/SerialRef.java ! src/java.sql.rowset/share/classes/javax/sql/rowset/serial/SerialStruct.java ! src/java.sql.rowset/share/classes/javax/sql/rowset/spi/SyncProviderException.java ! src/java.sql/share/classes/java/sql/SQLClientInfoException.java ! src/java.sql/share/classes/javax/sql/StatementEvent.java Changeset: c7d9df2e470c Author: shade Date: 2019-09-25 12:21 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/c7d9df2e470c 8231410: Shenandoah: clone barrier should use base pointer Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.hpp + test/hotspot/jtreg/gc/shenandoah/compiler/TestClone.java Changeset: f4abe950c3b0 Author: dtitov Date: 2019-09-25 11:10 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f4abe950c3b0 8185005: Improve performance of ThreadMXBean.getThreadInfo(long ids[], int maxDepth) Reviewed-by: sspitsyn, dholmes, dcubed, rehn ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/threadSMR.cpp + src/hotspot/share/services/threadIdTable.cpp + src/hotspot/share/services/threadIdTable.hpp Changeset: 21a03fa2f6b6 Author: bpb Date: 2019-09-25 11:44 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/21a03fa2f6b6 8231174: (fs) FileTime should have 100ns resolution (win) Reviewed-by: alanb ! src/java.base/windows/classes/sun/nio/fs/WindowsFileAttributes.java ! test/jdk/java/nio/file/attribute/BasicFileAttributeView/SetTimesNanos.java Changeset: d29f0181ba42 Author: darcy Date: 2019-09-25 13:37 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/d29f0181ba42 8231443: Add java.io.Serial to list of platform annotations for annotation processing Reviewed-by: jjg ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Changeset: ac24594d2c8c Author: bchristi Date: 2019-09-25 14:33 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/ac24594d2c8c 8221623: Add StackWalker micro benchmarks to jdk repo Reviewed-by: dfuchs, mchung, redestad + test/micro/org/openjdk/bench/java/lang/StackWalkBench.java + test/micro/org/openjdk/bench/java/util/logging/LoggingRuntimeMicros.java + test/micro/org/openjdk/bench/vm/lang/ThrowableRuntimeMicros.java Changeset: c29e49148be7 Author: phh Date: 2019-09-25 15:22 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/c29e49148be7 8231209: [REDO] ThreadMXBean::getThreadAllocatedBytes() can be quicker for self thread Summary: Add com.sun.management.getCurrentThreadAllocatedBytes, implement getThreadAllocatedBytes(long) independent of getThreadAllocatedBytes(long[]) Reviewed-by: mchung, dholmes, sspitsyn ! src/hotspot/share/include/jmm.h ! src/hotspot/share/services/management.cpp ! src/java.management/share/classes/java/lang/management/ThreadMXBean.java ! src/java.management/share/classes/sun/management/ThreadImpl.java ! src/java.management/share/native/libmanagement/ThreadImpl.c ! src/jdk.management/share/classes/com/sun/management/ThreadMXBean.java ! src/jdk.management/share/classes/com/sun/management/internal/HotSpotThreadImpl.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/BaseBehaviorTest.README ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/ThreadMXBean/GetThreadAllocatedBytes/BaseBehaviorTest.java ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/server/ServerThreadMXBeanNew.java ! test/jdk/com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java Changeset: 894a3d15c344 Author: jwilhelm Date: 2019-09-26 04:20 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/894a3d15c344 Added tag jdk-14+16 for changeset d29f0181ba42 ! .hgtags Changeset: e23e560afbcb Author: darcy Date: 2019-09-25 21:26 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/e23e560afbcb 8231414: Mark various instance fields of javac internal types as transient Reviewed-by: jjg ! src/jdk.compiler/share/classes/com/sun/tools/doclint/DocLint.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.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/CompileStates.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java Changeset: d322bf161e31 Author: thartmann Date: 2019-09-26 09:16 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d322bf161e31 8231223: C2's conditional move optimization fails with assert(bol->Opcode() == Op_Bool) failed Summary: Bail out if the range check If has an Opaque4Node input instead of a BoolNode. Reviewed-by: roland, kvn ! src/hotspot/share/opto/loopPredicate.cpp ! src/hotspot/share/opto/loopopts.cpp + test/hotspot/jtreg/compiler/loopopts/TestCMovWithOpaque.java Changeset: 3a5f417e68a1 Author: mbaesken Date: 2019-09-25 09:15 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/3a5f417e68a1 8231445: check ZALLOC return values in awt coding Reviewed-by: clanger, prr ! src/java.desktop/unix/native/libawt_xawt/awt/awt_GraphicsEnv.c Changeset: 146bb7afdcf4 Author: eosterlund Date: 2019-09-26 10:00 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/146bb7afdcf4 8219724: ZGC: Make inline cache cleaning more robust Reviewed-by: pliden ! src/hotspot/share/gc/z/zNMethod.cpp Changeset: e6b5ec45ab9e Author: phedlin Date: 2019-09-12 11:44 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/e6b5ec45ab9e 8229499: Node budget assert in fuzzed test. Reviewed-by: thartmann, neliasso ! src/hotspot/share/opto/loopTransform.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopnode.hpp + test/hotspot/jtreg/compiler/loopopts/LoopUnrollBadNodeBudget.java Changeset: de246fd65587 Author: pliden Date: 2019-09-26 13:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/de246fd65587 8231294: ZGC: vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted002 fails Reviewed-by: shade, dholmes ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted002/TestDescription.java Changeset: feff88c68082 Author: mbaesken Date: 2019-09-26 14:04 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/feff88c68082 8231448: s390 and ppc - replace JVM type comparisons to T_OBJECT and T_ARRAY with call to is_reference_type Reviewed-by: coleenp, lfoltan ! src/hotspot/cpu/ppc/c1_FrameMap_ppc.cpp ! src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp ! src/hotspot/cpu/ppc/c1_LIRGenerator_ppc.cpp ! src/hotspot/cpu/ppc/gc/g1/g1BarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/shared/modRefBarrierSetAssembler_ppc.cpp ! src/hotspot/cpu/ppc/gc/shared/modRefBarrierSetAssembler_ppc.hpp ! src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp ! src/hotspot/cpu/s390/c1_FrameMap_s390.cpp ! src/hotspot/cpu/s390/c1_LIRAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/g1/g1BarrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/gc/shared/modRefBarrierSetAssembler_s390.cpp ! src/hotspot/cpu/s390/sharedRuntime_s390.cpp Changeset: d658f4379c63 Author: coleenp Date: 2019-09-26 09:22 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/d658f4379c63 8226690: SIGSEGV in MetadataOnStackClosure::do_metadata Summary: Dont create nmethod if classes have been redefined since compilation start. Reviewed-by: sspitsyn, dlong, eosterlund, gdub ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciEnv.hpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/jvmci/jvmciEnv.cpp ! src/hotspot/share/jvmci/jvmciEnv.hpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiExport.hpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp Changeset: ad863044567e Author: erikj Date: 2019-09-26 07:20 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/ad863044567e 8231467: Missing make prerequisite declaration corrupts make dependency files on Windows Reviewed-by: ihse, tbell ! make/common/NativeCompilation.gmk Changeset: 628c12967b02 Author: rriggs Date: 2019-09-26 11:10 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/628c12967b02 8231314: java.time serialization warning cleanup Reviewed-by: chegar, naoto, plevart ! src/java.base/share/classes/java/time/Ser.java ! src/java.base/share/classes/java/time/chrono/AbstractChronology.java ! src/java.base/share/classes/java/time/chrono/Ser.java ! src/java.base/share/classes/java/time/zone/Ser.java Changeset: cf7c6f013d6d Author: darcy Date: 2019-09-26 12:13 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/cf7c6f013d6d 8231546: Suppress warnings on non-serializable instance fields in java.prefs module Reviewed-by: rriggs ! src/java.prefs/share/classes/java/util/prefs/NodeChangeEvent.java Changeset: 2c87d191056c Author: cjplummer Date: 2019-09-26 14:41 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/2c87d191056c 8228625: [TESTBUG] sun/tools/jhsdb/JShellHeapDumpTest.java fails with RuntimeException 'JShellToolProvider' missing from stdout/stderr Summary: Give jshell process time to fully startup and stablize before requesting heap dump Reviewed-by: sspitsyn, amenkov ! test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Changeset: 73950479184b Author: chegar Date: 2019-09-27 09:55 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/73950479184b 8231504: Update networking tests to avoid implicit dependency on the system proxies Reviewed-by: dfuchs ! test/jdk/java/net/CookieHandler/LocalHostCookie.java ! test/jdk/java/net/HttpURLConnection/SetAuthenticator/HTTPTest.java ! test/jdk/java/net/ProxySelector/NullSelector.java ! test/jdk/java/net/ResponseCache/B6181108.java ! test/jdk/java/net/ResponseCache/ResponseCacheTest.java ! test/jdk/java/net/ResponseCache/getResponseCode.java ! test/jdk/java/net/URLConnection/B5052093.java ! test/jdk/java/net/URLConnection/DisconnectAfterEOF.java ! test/jdk/java/net/URLConnection/HttpContinueStackOverflow.java ! test/jdk/java/net/URLConnection/Redirect307Test.java ! test/jdk/java/net/URLConnection/Responses.java ! test/jdk/java/net/URLConnection/URLConnectionHeaders.java ! test/jdk/java/net/URLConnection/contentHandler/UserContentHandler.java ! test/jdk/java/net/URLPermission/OpenURL.java ! test/jdk/java/net/httpclient/ManyRequestsLegacy.java ! test/jdk/java/net/httpclient/PlainProxyConnectionTest.java ! test/jdk/java/net/httpclient/ProxyTest.java ! test/jdk/sun/net/www/http/KeepAliveCache/KeepAliveTimerThread.java ! test/jdk/sun/net/www/protocol/http/UserAuth.java ! test/jdk/sun/net/www/protocol/http/UserCookie.java Changeset: 222a91b9438a Author: roland Date: 2019-09-26 17:49 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/222a91b9438a 8231405: [Shenandoah] guarantee(d != NULL) failed: Null dominator info Reviewed-by: shade, rkennke ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp + test/hotspot/jtreg/gc/shenandoah/compiler/CallMultipleCatchProjs.java Changeset: b3ca57ddfc92 Author: redestad Date: 2019-09-27 12:46 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b3ca57ddfc92 8231471: Obsolete -XX:CompilationPolicyChoice Reviewed-by: kvn, dholmes, thartmann ! src/hotspot/share/compiler/compilerDefinitions.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/compilationPolicy.cpp ! src/hotspot/share/runtime/compilationPolicy.hpp ! src/hotspot/share/runtime/globals.hpp - src/hotspot/share/runtime/rframe.cpp - src/hotspot/share/runtime/rframe.hpp Changeset: 43c4fb8ba96b Author: roland Date: 2019-07-16 08:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/43c4fb8ba96b 8227384: C2 compilation fails with "graph should be schedulable" when running with -XX:-EliminateLocks Reviewed-by: thartmann, kvn ! src/hotspot/share/opto/callnode.cpp ! src/hotspot/share/opto/callnode.hpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/opto/type.hpp + test/hotspot/jtreg/compiler/escapeAnalysis/TestEliminateLocksOffCrash.java Changeset: a1eba2e37671 Author: coleenp Date: 2019-09-27 07:56 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/a1eba2e37671 8231472: Clean up Monitor::_safepoint_check usage to Mutex::_safepoint_check Summary: Change Monitor:: to Mutex:: when allocating a Mutex, and in mutexLocker. Reviewed-by: rehn, dholmes ! src/hotspot/share/classfile/classLoaderData.cpp ! src/hotspot/share/gc/g1/g1RootProcessor.cpp ! src/hotspot/share/gc/g1/heapRegionRemSet.cpp ! src/hotspot/share/oops/methodData.cpp ! src/hotspot/share/oops/methodData.hpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/services/memoryManager.cpp Changeset: d10b732966ba Author: jiefu Date: 2019-09-27 20:06 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/d10b732966ba 8231567: minimal build failed after JDK-8226690 Reviewed-by: shade, coleenp ! src/hotspot/share/prims/jvmtiExport.hpp Changeset: 975f2d30f6b3 Author: rehn Date: 2019-09-27 15:15 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/975f2d30f6b3 8231321: compiler/codecache/stress/UnexpectedDeoptimizationAllTest.java failed assertion Reviewed-by: thartmann, eosterlund ! src/hotspot/share/code/nmethod.cpp Changeset: 98ea90226198 Author: dfuchs Date: 2019-09-27 14:43 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/98ea90226198 8231037: java/net/InetAddress/ptr/Lookup.java fails intermittently due to reverse lookup failed Summary: The test is updated to verify whether reverse lookup is altogether possible. Reviewed-by: chegar ! test/jdk/java/net/InetAddress/ptr/Lookup.java Changeset: 8511c662083b Author: darcy Date: 2019-09-27 08:57 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/8511c662083b 8231557: Suppress warnings on non-serializable instance fields in jdk.scripting.nashorn module Reviewed-by: jlaskey ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Property.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/RecompilableScriptFunctionData.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SharedPropertyMap.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/StoredScript.java Changeset: 9a3a700ca571 Author: lmesnik Date: 2019-09-27 10:48 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/9a3a700ca571 8230942: Support compressed cores in SA tests Reviewed-by: dholmes, sspitsyn ! test/hotspot/jtreg/serviceability/sa/ClhsdbCDSCore.java ! test/hotspot/jtreg/serviceability/sa/TestJmapCore.java ! test/lib/jdk/test/lib/SA/SATestUtils.java Changeset: 489532b89775 Author: dl Date: 2019-09-27 12:20 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/489532b89775 8231032: ThreadMXBean locking tests fail after JSR 166 refresh Reviewed-by: martin, mchung, dholmes ! src/java.base/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java ! src/java.base/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java ! test/jdk/ProblemList.txt ! test/jdk/java/util/concurrent/tck/JSR166TestCase.java ! test/jdk/java/util/concurrent/tck/ReentrantLockTest.java ! test/jdk/java/util/concurrent/tck/ReentrantReadWriteLockTest.java ! test/jdk/java/util/concurrent/tck/tck.policy Changeset: 693c1eb29b8d Author: dl Date: 2019-09-27 12:20 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/693c1eb29b8d 8231036: vmTestbase monitoring tests fail after JSR 166 refresh Reviewed-by: martin, dholmes ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/vmTestbase/nsk/monitoring/share/thread/SynchronizerLockingThreads.java Changeset: c5b80da6b561 Author: bobv Date: 2019-09-27 18:27 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/c5b80da6b561 8231431: JAOTC issues with JAR path containing spaces Reviewed-by: kvn ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/collect/FileSupport.java Changeset: a819c684964b Author: igerasim Date: 2019-09-27 17:50 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/a819c684964b 8230415: Avoid redundant permission checking in FilePermissionCollection and SocketPermissionCollection Reviewed-by: mullan ! src/java.base/share/classes/java/io/FilePermission.java ! src/java.base/share/classes/java/net/SocketPermission.java Changeset: 31524b016783 Author: cjplummer Date: 2019-09-28 12:33 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/31524b016783 8231287: JMap should do a better job of reporting exception it catches Summary: Retrhow any caught exception, and always print exceptions before exiting Reviewed-by: sspitsyn, phh ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/JMap.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/Tool.java ! test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Changeset: 4107e5a422b6 Author: azeller Date: 2019-09-28 17:52 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/4107e5a422b6 8231457: Asserts on AIX because os::elapsed_counter() is not monotonic Summary: replace gettimeofday with javaTimeNanos Reviewed-by: dholmes, stuefe ! src/hotspot/os/aix/os_aix.cpp Changeset: 0df9370fee29 Author: chagedorn Date: 2019-09-30 09:29 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/0df9370fee29 8230062: assert(i == p->size()-1) failed: must be last element of the pack Summary: Avoids vectorization of reduction chain in which an intermediate result is used. Reviewed-by: roland, thartmann ! src/hotspot/share/opto/superword.cpp Changeset: b1c3d24553e0 Author: tschatzl Date: 2019-09-30 10:21 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b1c3d24553e0 8231553: Deprecate unused G1RSetScanBlockSize command line option Reviewed-by: lkorinth, sjohanss ! src/hotspot/share/runtime/arguments.cpp Changeset: 2d40e6a7ce8e Author: vkempik Date: 2019-09-24 14:54 +0300 URL: https://hg.openjdk.java.net/amber/amber/rev/2d40e6a7ce8e 8229872: (fs) Increase buffer size used with getmntent Summary: Dynamically allocate memory for getmntent Reviewed-by: alanb ! src/java.base/linux/classes/sun/nio/fs/LinuxFileSystem.java ! src/java.base/linux/classes/sun/nio/fs/LinuxNativeDispatcher.java ! src/java.base/linux/native/libnio/fs/LinuxNativeDispatcher.c ! src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java ! src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c Changeset: ff559f979c4b Author: redestad Date: 2019-09-30 14:04 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ff559f979c4b 8231616: Simplify compilation policy hierarchy Reviewed-by: thartmann, neliasso ! src/hotspot/share/runtime/compilationPolicy.cpp ! src/hotspot/share/runtime/compilationPolicy.hpp ! src/hotspot/share/runtime/tieredThresholdPolicy.hpp Changeset: 752bf4d5fbb7 Author: rkennke Date: 2019-09-30 17:00 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/752bf4d5fbb7 8231499: Shenandoah: compiler/arraycopy/TestDefaultMethodArrayCloneDeoptC2 fails Reviewed-by: shade, roland ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSetClone.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.hpp Changeset: 3764371e022f Author: lucy Date: 2019-09-30 17:18 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/3764371e022f 8231403: [ppc]: Align ReservedCodeCacheSize default value with other platforms Reviewed-by: goetz ! src/hotspot/cpu/ppc/c2_globals_ppc.hpp Changeset: b14643d898d3 Author: shade Date: 2019-09-30 18:02 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b14643d898d3 8231583: Shenandoah: Fix register clash in SBSA::resolve_forwarding_pointer() borrowing Reviewed-by: rkennke ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp Changeset: 2c06226003aa Author: pconcannon Date: 2019-09-30 17:19 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/2c06226003aa 8229338: clean up test/jdk/java/util/RandomAccess/Basic.java Summary: General refactoring of code and increased test coverage Reviewed-by: lancea, aefimov ! test/jdk/java/util/RandomAccess/Basic.java Changeset: a595e67d6683 Author: coleenp Date: 2019-09-30 13:10 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/a595e67d6683 8184732: Deadlock detection improvements for 'special' locks Summary: Assert that special ranked locks cannot safepoint and allow_vm_block and remove locks from the exceptional lock list in no_safepoint_verifier. Reviewed-by: dholmes, eosterlund ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/mutex.cpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/vmThread.cpp + test/hotspot/jtreg/runtime/Safepoint/NoSafepointVerifier.java ! test/lib/sun/hotspot/WhiteBox.java Changeset: a074e637aeee Author: coleenp Date: 2019-09-30 13:22 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/a074e637aeee Merge Changeset: cece74021580 Author: joehw Date: 2019-09-30 17:54 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/cece74021580 8016914: CoreDocumentImpl.setXmlVersion NPE Reviewed-by: lancea ! src/java.xml/share/classes/com/sun/org/apache/xerces/internal/dom/CoreDocumentImpl.java + test/jaxp/javax/xml/jaxp/unittest/transform/StAX2DOMTest.java + test/jaxp/javax/xml/jaxp/unittest/transform/StAX2DOMTest.xml + test/jaxp/javax/xml/jaxp/unittest/transform/StAX2DOMTest1.xml Changeset: 35cbd86e088a Author: mbaesken Date: 2019-09-26 13:51 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/35cbd86e088a 8231357: sun/security/pkcs11/Cipher/TestKATForGCM.java fails on SLES11 using mozilla-nss-3.14 Reviewed-by: clanger, valeriep ! test/jdk/sun/security/pkcs11/Cipher/TestKATForGCM.java Changeset: 6fc57e391539 Author: neliasso Date: 2019-10-01 11:43 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/6fc57e391539 8226721: Missing intrinsics for Math.ceil, floor, rint Reviewed-by: neliasso, vlivanov, ecaspole Contributed-by: jatin.bhateja at intel.com ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/classfile/vmSymbols.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/convertnode.cpp ! src/hotspot/share/opto/convertnode.hpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/superword.cpp ! src/hotspot/share/opto/vectornode.cpp ! src/hotspot/share/opto/vectornode.hpp ! src/java.base/share/classes/java/lang/Math.java ! test/hotspot/jtreg/compiler/c2/cr6340864/TestDoubleVect.java + test/micro/org/openjdk/bench/java/math/FpRoundingBenchmark.java Changeset: d7dbabd226ff Author: pliden Date: 2019-10-01 12:27 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d7dbabd226ff 8231296: ZGC: vmTestbase/nsk/jvmti/Allocate/alloc001/ fails Reviewed-by: sspitsyn, dcubed, iignatyev ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Allocate/alloc001/TestDescription.java Changeset: 54de0c861d32 Author: dfuchs Date: 2019-10-01 12:10 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/54de0c861d32 8231506: Fix some instabilities in a few networking tests Reviewed-by: alanb, chegar, msheppar ! test/jdk/java/net/MulticastSocket/UnreferencedMulticastSockets.java ! test/jdk/java/net/SocketImpl/SocketImplCombinations.java ! test/jdk/java/net/httpclient/DigestEchoServer.java Changeset: 94ca05133eb2 Author: jboes Date: 2019-09-26 12:35 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/94ca05133eb2 8209178: Proxied HttpsURLConnection doesn't send BODY when retrying POST request Summary: Preserve BODY in poster output stream before sending CONNECT request Reviewed-by: dfuchs, vtewari ! src/java.base/share/classes/sun/net/www/http/HttpClient.java + test/jdk/sun/net/www/http/HttpClient/B8209178.java Changeset: f4a4804ab3e6 Author: roland Date: 2019-09-30 17:58 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/f4a4804ab3e6 8231665: 8231055 broke escapeAnalysis/TestSelfArrayCopy.java Reviewed-by: thartmann ! test/hotspot/jtreg/compiler/escapeAnalysis/TestSelfArrayCopy.java Changeset: ed5e399d967d Author: rschmelter Date: 2019-10-01 14:09 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ed5e399d967d 8191521: handle long relative path specified in -Xbootclasspath/a on windows Reviewed-by: ccheung, clanger ! src/hotspot/os/windows/os_windows.cpp ! test/hotspot/gtest/runtime/test_os_windows.cpp ! test/hotspot/jtreg/runtime/LoadClass/LongBCP.java Changeset: d9b2b4085f9a Author: clanger Date: 2019-10-01 14:51 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d9b2b4085f9a 8223869: Problem list java/awt/FontMetrics/MaxAdvanceIsMax.java on more platforms Reviewed-by: goetz ! test/jdk/ProblemList.txt Changeset: 9b644c06226f Author: shade Date: 2019-10-01 15:38 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/9b644c06226f 8231503: [TESTBUG] compiler/{jvmci,aot} tests should not run with GCs that do not support JVMCI/AOT Reviewed-by: kvn, dlong, stefank ! test/jtreg-ext/requires/VMProps.java Changeset: eba8b29bf528 Author: shade Date: 2019-10-01 15:38 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/eba8b29bf528 8231667: Shenandoah: Full GC should take empty regions into slices for compaction Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: 814156987833 Author: bpb Date: 2019-10-01 07:37 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/814156987833 8229333: java/io/File/SetLastModified.java timed out Reviewed-by: lancea, rriggs ! test/jdk/java/io/File/SetLastModified.java Changeset: c8b0dcab20d7 Author: erikj Date: 2019-10-01 08:11 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/c8b0dcab20d7 8231594: Configure fails on some Linux systems Reviewed-by: tbell, ihse ! make/autoconf/basics.m4 Changeset: a7c95e2f8814 Author: fweimer Date: 2019-09-28 11:04 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/a7c95e2f8814 8231600: Avoid GCC 8 strncpy error in jdk.jdwp.agent Reviewed-by: cjplummer, amenkov ! src/jdk.jdwp.agent/share/native/libdt_socket/socketTransport.c Changeset: 91d236715160 Author: darcy Date: 2019-10-01 20:07 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/91d236715160 8231545: Suppress warnings on non-serializable instance fields in jdk.jshell module Reviewed-by: rfield ! src/jdk.jshell/share/classes/jdk/jshell/ExpressionToTypeInfo.java Changeset: 1181f58f30e2 Author: chagedorn Date: 2019-10-02 08:27 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/1181f58f30e2 8231626: DeoptimizeRandom should not be a product flag Summary: The DeoptimizeRandom flag is changed to develop since it has no effect in production. Reviewed-by: neliasso, thartmann ! src/hotspot/share/runtime/globals.hpp ! test/hotspot/jtreg/compiler/codecache/stress/UnexpectedDeoptimizationAllTest.java ! test/hotspot/jtreg/compiler/codecache/stress/UnexpectedDeoptimizationTest.java Changeset: b25362cec8ce Author: alanb Date: 2019-10-02 09:16 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/b25362cec8ce 8231603: (se) Selector implementations do not need to use cancelledKeys Reviewed-by: chegar, bpb ! src/java.base/share/classes/java/nio/channels/spi/AbstractSelectionKey.java ! src/java.base/share/classes/java/nio/channels/spi/AbstractSelector.java ! src/java.base/share/classes/sun/nio/ch/SelectorImpl.java Changeset: 299756f23687 Author: lkorinth Date: 2019-10-02 16:08 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/299756f23687 8231671: Fix copyright headers in hotspot (missing comma after year) Reviewed-by: tschatzl, dholmes ! src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp ! src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp ! src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp ! src/hotspot/share/logging/logSelectionList.hpp ! src/hotspot/share/prims/jvmtiThreadState.hpp Changeset: ed0058d06107 Author: bpb Date: 2019-10-02 07:50 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/ed0058d06107 8229022: BufferedReader performance can be improved by using StringBuilder Reviewed-by: igerasim, vtewari, dfuchs ! src/java.base/share/classes/java/io/BufferedReader.java Changeset: 0aa2cdae73ce Author: erikj Date: 2019-10-02 10:04 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/0aa2cdae73ce 8231505: Bump required boot jdk version to 13 Reviewed-by: darcy, ihse ! make/autoconf/version-numbers ! make/conf/jib-profiles.js Changeset: 5c83830390ba Author: rriggs Date: 2019-10-02 13:57 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/5c83830390ba 8231663: Incorrect GPL header in some RMI/SQL package-info.java files Reviewed-by: bpb, iris, lancea ! src/java.rmi/share/classes/java/rmi/activation/package-info.java ! src/java.rmi/share/classes/java/rmi/dgc/package-info.java ! src/java.rmi/share/classes/java/rmi/package-info.java ! src/java.rmi/share/classes/java/rmi/registry/package-info.java ! src/java.rmi/share/classes/java/rmi/server/package-info.java ! src/java.sql/share/classes/javax/sql/package-info.java Changeset: 319173c62caa Author: ccheung Date: 2019-10-02 16:55 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/319173c62caa 8231606: _method_ordering is not set during CDS dynamic dump time Summary: Add the missing DynamicDumpSharedSpaces check in sort_methods(); replace the (DumpSharedSpaces || DynamicDumpSharedSpaces) with the Arguments::is_dumping_archive() function call. Reviewed-by: iklam, coleenp, jiangli ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoader.hpp ! src/hotspot/share/classfile/classLoader.inline.hpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/classfile/compactHashtable.cpp ! src/hotspot/share/classfile/dictionary.cpp ! src/hotspot/share/classfile/klassFactory.cpp ! src/hotspot/share/classfile/symbolTable.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/verificationType.cpp ! src/hotspot/share/jfr/recorder/jfrRecorder.cpp ! src/hotspot/share/memory/filemap.cpp ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/memory/universe.cpp ! src/hotspot/share/oops/constMethod.hpp ! src/hotspot/share/oops/cpCache.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/runtime/arguments.cpp ! src/hotspot/share/runtime/arguments.hpp ! src/hotspot/share/runtime/thread.cpp ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamic.java Changeset: f45278353668 Author: cjplummer Date: 2019-10-02 17:56 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f45278353668 8231288: "jhsdb jmap" test needed to reproduce issues that used to be reproduced by JShellHeapDumpTest Reviewed-by: sgehwolf, sspitsyn ! test/jdk/ProblemList.txt + test/jdk/sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java ! test/jdk/sun/tools/jhsdb/JShellHeapDumpTest.java Changeset: e606e9b6ba7a Author: jwilhelm Date: 2019-10-03 07:10 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/e606e9b6ba7a Added tag jdk-14+17 for changeset 5c83830390ba ! .hgtags Changeset: 67b3480882b4 Author: shade Date: 2019-10-03 07:38 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/67b3480882b4 8231713: x86_32 build failures after JDK-8226721 (Missing intrinsics for Math.ceil, floor, rint) Reviewed-by: kvn ! src/hotspot/cpu/x86/x86.ad Changeset: 389e50d98dc3 Author: stefank Date: 2019-09-27 09:01 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/389e50d98dc3 8231563: ZGC: Fails to warn when user sets the max heap size to larger than 16TB Reviewed-by: tschatzl, pliden ! src/hotspot/cpu/aarch64/gc/z/zGlobals_aarch64.hpp ! src/hotspot/cpu/x86/gc/z/zGlobals_x86.hpp Changeset: 61437e06602a Author: pliden Date: 2019-10-03 10:54 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/61437e06602a 8231774: ZGC: ZVirtualMemoryManager unmaps incorrect address Reviewed-by: kbarrett, stefank ! src/hotspot/os/posix/gc/z/zVirtualMemory_posix.cpp Changeset: ca80b8395923 Author: pliden Date: 2019-10-03 10:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ca80b8395923 8231776: ZGC: Fix incorrect address space description Reviewed-by: eosterlund ! src/hotspot/cpu/aarch64/gc/z/zGlobals_aarch64.cpp ! src/hotspot/cpu/x86/gc/z/zGlobals_x86.cpp Changeset: d873ce07465d Author: redestad Date: 2019-10-03 13:45 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d873ce07465d 8231707: Improve Mutex inlining Reviewed-by: rehn, dholmes, coleenp ! src/hotspot/share/runtime/mutex.cpp ! src/hotspot/share/runtime/mutex.hpp Changeset: 9759972b4f1c Author: darcy Date: 2019-10-03 08:49 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/9759972b4f1c 8231777: Remove extraneous @serial javadoc tag in NodeChangeEvent.java Reviewed-by: alanb, chegar ! src/java.prefs/share/classes/java/util/prefs/NodeChangeEvent.java Changeset: 7a4183b8062f Author: lmesnik Date: 2019-10-03 08:50 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/7a4183b8062f 8231768: Remove duplicate if/else in vmTestbase/nsk/share/jdi/Binder.java Reviewed-by: sspitsyn, phh, cjplummer ! test/hotspot/jtreg/vmTestbase/nsk/share/jdi/Binder.java Changeset: 3ab9f0464a7d Author: lmesnik Date: 2019-10-03 08:51 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/3ab9f0464a7d Merge Changeset: e25b317d0350 Author: jboes Date: 2019-10-03 18:59 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/e25b317d0350 8231161: Wrong return type in code sample in Collector API documentation Summary: Correct declaration of container from R to A and add compilation test Reviewed-by: smarks, lancea ! src/java.base/share/classes/java/util/stream/Collector.java + test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/CollectorExample.java Changeset: 13f29c43b6c7 Author: fmatte Date: 2019-10-04 07:54 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/13f29c43b6c7 8216352: SA: ClhsdbLauncher should throw errors on Unrecognized commands Reviewed-by: cjplummer, sspitsyn ! test/hotspot/jtreg/serviceability/sa/ClhsdbLauncher.java Changeset: 26f0ed77734e Author: ecaspole Date: 2019-10-04 12:00 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/26f0ed77734e 8215521: add microbenchmark to measure AccessController.getContext Reviewed-by: redestad, alanb + test/micro/org/openjdk/bench/java/security/GetContext.java Changeset: c6f1226cfb72 Author: vdeshpande Date: 2019-10-04 11:45 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/c6f1226cfb72 8221092: UseAVX=3 has performance degredation on Skylake (X7) processors Summary: Fix for UseAVX=3 has performance degredation on Skylake (X7) processors Reviewed-by: kvn ! src/hotspot/cpu/x86/globals_x86.hpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/vm_version_x86.cpp ! src/hotspot/cpu/x86/vm_version_x86.hpp ! src/hotspot/cpu/x86/x86.ad Changeset: ff45c1bf8129 Author: lancea Date: 2019-10-04 15:51 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/ff45c1bf8129 8223771: FileSystemProvider.newFileSystem(Path, Map) should throw IOException when called with a file that cannot be open Reviewed-by: alanb ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java + test/jdk/jdk/nio/zipfs/NonExistentPathTests.java Changeset: 72ef2c0faf47 Author: lancea Date: 2019-10-06 13:08 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/72ef2c0faf47 8231093: Document the ZIP FS properties noCompression and releaseVersion Reviewed-by: clanger, martin, alanb ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/JarFileSystem.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystemProvider.java ! src/jdk.zipfs/share/classes/module-info.java + test/jdk/jdk/nio/zipfs/CompressionModeTest.java ! test/jdk/jdk/nio/zipfs/jarfs/MultiReleaseJarTest.java Changeset: 97cd0aa39787 Author: pliden Date: 2019-10-07 07:53 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/97cd0aa39787 8231825: ZGC: Remove ZMaxHeapSize and ZMaxHeapSizeShift Reviewed-by: tschatzl, eosterlund ! src/hotspot/cpu/aarch64/gc/z/zGlobals_aarch64.hpp ! src/hotspot/cpu/x86/gc/z/zGlobals_x86.hpp ! src/hotspot/share/gc/z/zArguments.cpp ! src/hotspot/share/gc/z/zGlobals.hpp ! src/hotspot/share/gc/z/zVirtualMemory.cpp Changeset: ccbb5a2bf3ab Author: redestad Date: 2019-10-07 12:06 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ccbb5a2bf3ab 8231895: Avoid String allocations in JVM_FindLoadedClass Reviewed-by: jiangli, dholmes, iklam ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/prims/jvm.cpp Changeset: 8991796c17d4 Author: roland Date: 2019-10-01 10:28 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8991796c17d4 8231620: assert(bol->is_Bool()) crash during split if due to FastLockNode Reviewed-by: vlivanov, thartmann ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/split_if.cpp + test/hotspot/jtreg/compiler/loopopts/SplitIfSharedFastLockBehindCastPP.java Changeset: bada0782842a Author: roland Date: 2019-10-02 17:32 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/bada0782842a 8231550: C2: ShouldNotReachHere() in verify_strip_mined_scheduling Reviewed-by: vlivanov, thartmann ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/opto/loopnode.cpp + test/hotspot/jtreg/compiler/loopstripmining/TestConservativeAntiDep.java Changeset: b1da055915ef Author: clanger Date: 2019-10-07 13:32 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/b1da055915ef 8231885: Fix/remove malformed assert in os_windows.cpp Reviewed-by: dcubed, stuefe, kbarrett ! src/hotspot/os/windows/os_windows.cpp Changeset: 74094a60d018 Author: shade Date: 2019-10-07 15:00 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/74094a60d018 8231930: Windows build fails after JDK-8191521 Reviewed-by: dholmes, clanger ! test/hotspot/gtest/runtime/test_os_windows.cpp Changeset: d148a7e7160c Author: hannesw Date: 2019-10-07 15:58 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d148a7e7160c 8220217: Javadoc missing link to member method Reviewed-by: jjg ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/package-info.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java ! test/langtools/jdk/javadoc/doclet/testMemberInheritance/TestMemberInheritance.java + test/langtools/jdk/javadoc/doclet/testMemberInheritance/pkg2/DocumentedNonGenericChild.java + test/langtools/jdk/javadoc/doclet/testMemberInheritance/pkg2/UndocumentedGenericParent.java Changeset: 35ce0ad5870a Author: coleenp Date: 2019-10-07 10:04 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/35ce0ad5870a 8229900: RedefineDeleteJmethod.java fails with -Xcheck:jni Summary: Remove RedefineClasses adjustment and test, but improve checking for method/class matching. Reviewed-by: dholmes, sspitsyn ! src/hotspot/share/prims/jniCheck.cpp ! src/hotspot/share/prims/jniCheck.hpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineDeleteJmethod.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/libRedefineDeleteJmethod.c Changeset: 8ca46e186a63 Author: cito Date: 2019-10-07 16:44 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8ca46e186a63 8225694: Destination option missing in FlightRecorderMXBeanImpl Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/PlatformRecording.java ! src/jdk.jfr/share/classes/jdk/jfr/internal/management/ManagementSupport.java ! src/jdk.management.jfr/share/classes/jdk/management/jfr/FlightRecorderMXBeanImpl.java ! src/jdk.management.jfr/share/classes/jdk/management/jfr/MBeanUtils.java ! test/jdk/jdk/jfr/jmx/TestRecordingOptions.java Changeset: 48a73ec3a817 Author: redestad Date: 2019-10-07 16:55 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/48a73ec3a817 8230043: Lazily load libverify 8230140: Remove unused mutex and monitor declarations Reviewed-by: hseigel, erikj, alanb, dholmes ! make/lib/CoreLibraries.gmk ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/os.cpp ! src/java.base/share/native/libjava/Class.c ! src/java.base/share/native/libjava/ClassLoader.c + src/java.base/share/native/libjava/check_classname.c + src/java.base/share/native/libjava/check_classname.h - src/java.base/share/native/libjava/verify_stub.c ! src/java.base/share/native/libverify/check_code.c - src/java.base/share/native/libverify/check_format.c ! test/hotspot/jtreg/serviceability/sa/ClhsdbPmap.java Changeset: b4c660a75b54 Author: shade Date: 2019-10-07 17:12 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b4c660a75b54 8231932: Shenandoah: conc/par GC threads ergonomics overrides user settings Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp ! test/hotspot/jtreg/gc/shenandoah/TestGCThreadGroups.java ! test/hotspot/jtreg/gc/shenandoah/options/TestThreadCounts.java + test/hotspot/jtreg/gc/shenandoah/options/TestThreadCountsOverride.java Changeset: f48737be4fd7 Author: shade Date: 2019-10-07 17:12 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/f48737be4fd7 8231946: Remove obsolete and unused ShenandoahVerifyObjectEquals flag Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Changeset: dcb418f5aabd Author: jiangli Date: 2019-10-07 11:29 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/dcb418f5aabd 8231630: Optimize boot loader with no bootclasspath append entry. Summary: Optimize SystemDictionary::load_instance_class for boot loader. Immediately return NULL if the requested class is either in the unnamed package or unnamed module, or in a module not defined to the boot loader, when there is no bootclasspath append entry. Reviewed-by: martin, aeubanks, dthomson, redestad, lfoltan, iklam ! src/hotspot/share/classfile/classLoader.hpp ! src/hotspot/share/classfile/systemDictionary.cpp Changeset: 43f63f904bbc Author: dlong Date: 2019-10-07 13:56 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/43f63f904bbc 8231902: Build of jdk.internal.vm.compiler.management/module-info.java.extra failed Reviewed-by: kvn, ihse, erikj ! make/gensrc/Gensrc-jdk.internal.vm.compiler.management.gmk Changeset: 165b193b30dd Author: dholmes Date: 2019-10-07 18:44 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/165b193b30dd 8231289: Disentangle JvmtiRawMonitor from ObjectMonitor and clean it up Reviewed-by: sspitsyn, dcubed, coleenp ! src/hotspot/share/prims/jvmtiEnv.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/jvmtiRawMonitor.cpp ! src/hotspot/share/prims/jvmtiRawMonitor.hpp ! src/hotspot/share/runtime/objectMonitor.hpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp ! src/hotspot/share/services/threadService.cpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/RawMonitorWait/rawmnwait005/rawmnwait005.cpp Changeset: 2faeaa5933a6 Author: valeriep Date: 2019-10-08 00:01 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/2faeaa5933a6 8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4 Summary: For CK_GCM_PARAMS, try the spec definition first before falling back to the header file definition Reviewed-by: xuelei ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11AEADCipher.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Digest.java ! src/jdk.crypto.cryptoki/share/classes/sun/security/pkcs11/P11Mac.java ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_crypt.c ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c + src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11gcm2.h ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11t.h ! src/jdk.crypto.cryptoki/share/native/libj2pkcs11/pkcs11wrapper.h ! src/jdk.crypto.cryptoki/unix/native/libj2pkcs11/p11_md.h ! src/jdk.crypto.cryptoki/windows/native/libj2pkcs11/p11_md.h ! test/jdk/sun/security/pkcs11/Cipher/TestGCMKeyAndIvCheck.java Changeset: 5b5de2618756 Author: smarks Date: 2019-10-07 17:13 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/5b5de2618756 8231977: Discuss serializability of collections Reviewed-by: darcy, plevart, chegar ! src/java.base/share/classes/java/util/Collection.java Changeset: 452ad8f882c6 Author: mbaesken Date: 2019-10-02 10:01 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/452ad8f882c6 8231751: on aix handle Power 9 in os::get_summary_cpu_info Reviewed-by: clanger, mdoerr ! src/hotspot/os/aix/os_aix.cpp Changeset: 227ddf1ff93d Author: mbaesken Date: 2019-10-08 09:33 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/227ddf1ff93d 8231753: use more Posix functionality in aix os::print_os_info Reviewed-by: clanger, dholmes ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/posix/os_posix.cpp Changeset: 55a8d95c7787 Author: redestad Date: 2019-10-08 10:24 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/55a8d95c7787 8231355: Remove unused utility methods in libjava Reviewed-by: dholmes, jrose, alanb ! src/hotspot/share/classfile/javaClasses.cpp ! src/java.base/share/native/libjava/VM.c ! src/java.base/share/native/libjava/jdk_util.h ! src/java.base/share/native/libjava/jni_util.c ! src/java.base/share/native/libjava/jni_util.h - src/java.base/unix/native/libjava/jdk_util_md.c ! src/java.base/windows/native/libjava/jdk_util_md.c Changeset: 7f34de3cdfe9 Author: alanb Date: 2019-10-08 10:58 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/7f34de3cdfe9 8231921: (se) SelectorImpl.register does not need to set the attachment when it is null Reviewed-by: bpb ! src/java.base/share/classes/java/nio/channels/SelectionKey.java ! src/java.base/share/classes/sun/nio/ch/SelectorImpl.java Changeset: b0a731a6642b Author: shade Date: 2019-10-08 15:08 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b0a731a6642b 8231931: [TESTBUG] serviceability/sa/TestUniverse.java looks for wrong string with Shenandoah Reviewed-by: rkennke ! test/hotspot/jtreg/serviceability/sa/TestUniverse.java Changeset: d62c7224d5b7 Author: redestad Date: 2019-10-08 15:48 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d62c7224d5b7 8231993: Remove redundant pkg_str param from is_shared_class_visible_for_classloader Reviewed-by: hseigel, coleenp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp Changeset: 03165abce4cc Author: jlahoda Date: 2019-10-08 15:43 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/03165abce4cc 8230162: ScopeImpl.remove() has O(N) performance Reviewed-by: jlahoda Contributed-by: bcorso at google.com ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Scope.java ! test/langtools/tools/javac/lib/DPrinter.java ! test/langtools/tools/javac/scope/RemoveSymbolUnitTest.java Changeset: 6fc4a729763e Author: pconcannon Date: 2019-10-08 14:56 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/6fc4a729763e 8230946: Clarify security manager behaviour of a connected DatagramSocket and DatagramChannel Summary: Update to API, to clarify that packets are dropped in the receive method of non-connected sockets if they fail the security manager checks Reviewed-by: alanb, chegar, dfuchs ! src/java.base/share/classes/java/net/DatagramSocket.java ! src/java.base/share/classes/java/nio/channels/DatagramChannel.java Changeset: 7cb1218ef4d0 Author: pconcannon Date: 2019-10-08 15:03 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/7cb1218ef4d0 8222829: DatagramSocket.setSoTimeout does not specify IAE when timeout is negative Summary: Clarifies behaviour of setSoTimeout() method when given negative timeout value. Reviewed-by: alanb, chegar, dfuchs ! src/java.base/share/classes/java/net/DatagramSocket.java ! test/jdk/java/net/DatagramSocket/DatagramTimeout.java Changeset: 726a3945e934 Author: dtitov Date: 2019-10-08 09:13 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/726a3945e934 8170299: Debugger does not stop inside the low memory notifications code Reviewed-by: sspitsyn, dholmes ! src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp + src/hotspot/share/runtime/notificationThread.cpp + src/hotspot/share/runtime/notificationThread.hpp ! src/hotspot/share/runtime/serviceThread.cpp ! src/hotspot/share/runtime/serviceThread.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/services/diagnosticFramework.cpp ! src/hotspot/share/services/gcNotifier.cpp ! src/hotspot/share/services/lowMemoryDetector.cpp ! src/hotspot/share/services/lowMemoryDetector.hpp ! src/hotspot/share/services/management.cpp + src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/NotificationThread.java ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/Threads.java + test/jdk/com/sun/jdi/JdbStopInNotificationThreadTest.java Changeset: 94dd00d2da29 Author: dtitov Date: 2019-10-08 09:39 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/94dd00d2da29 8231666: ThreadIdTable::grow() invokes invalid thread transition Reviewed-by: dholmes, rehn ! src/hotspot/share/runtime/serviceThread.cpp ! src/hotspot/share/services/threadIdTable.cpp ! src/hotspot/share/services/threadIdTable.hpp + test/jdk/javax/management/mxbean/ThreadStartTest.java Changeset: c16f3a24a6fc Author: coleenp Date: 2019-10-08 13:18 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/c16f3a24a6fc 8225681: vmTestbase/nsk/jvmti/RedefineClasses/StressRedefine fails due a) MT-unsafe modification of inline cache Summary: allow old methods in CompiledStaticDirectCall::set_to_interpreted Reviewed-by: sspitsyn, eosterlund ! src/hotspot/cpu/aarch64/compiledIC_aarch64.cpp ! src/hotspot/cpu/arm/compiledIC_arm.cpp ! src/hotspot/cpu/ppc/compiledIC_ppc.cpp ! src/hotspot/cpu/s390/compiledIC_s390.cpp ! src/hotspot/cpu/sparc/compiledIC_sparc.cpp ! src/hotspot/cpu/x86/compiledIC_x86.cpp ! src/hotspot/share/code/compiledIC.cpp ! src/hotspot/share/code/compiledIC.hpp Changeset: dfe3d11378cc Author: dtitov Date: 2019-10-08 11:18 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/dfe3d11378cc 8199136: Dead code in src/jdk.jcmd/share/classes/sun/tools/common/ProcessArgumentMatcher.java Reviewed-by: dholmes, dtitov Contributed-by: mandrikov at gmail.com ! src/jdk.jcmd/share/classes/sun/tools/common/ProcessArgumentMatcher.java Changeset: 7c1d0616828c Author: redestad Date: 2019-10-08 20:47 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/7c1d0616828c 8232006: Remove dead code from klassVtable Reviewed-by: coleenp, jiangli, lfoltan ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/oops/klassVtable.hpp Changeset: d6058bd73982 Author: kbarrett Date: 2019-10-08 15:15 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/d6058bd73982 8231153: Improve concurrent refinement statistics 8043505: G1RemSet::_conc_refine_cards is incremented unsynchronized Summary: Added refinement rates and counts, removed _conc_refine_cards Reviewed-by: tschatzl, sjohanss ! src/hotspot/share/gc/g1/g1Analytics.cpp ! src/hotspot/share/gc/g1/g1Analytics.hpp ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp ! src/hotspot/share/gc/g1/g1ConcurrentRefine.hpp ! src/hotspot/share/gc/g1/g1ConcurrentRefineThread.cpp ! src/hotspot/share/gc/g1/g1ConcurrentRefineThread.hpp ! src/hotspot/share/gc/g1/g1DirtyCardQueue.cpp ! src/hotspot/share/gc/g1/g1DirtyCardQueue.hpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/g1RemSet.hpp ! src/hotspot/share/gc/g1/g1RemSetSummary.cpp ! src/hotspot/share/gc/g1/g1RemSetSummary.hpp ! test/hotspot/jtreg/gc/g1/TestRemsetLoggingThreads.java ! test/hotspot/jtreg/gc/g1/TestRemsetLoggingTools.java Changeset: 7b41c88f8432 Author: dholmes Date: 2019-10-08 17:30 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/7b41c88f8432 8231737: Cleanup JvmtiRawMonitor code Reviewed-by: sspitsyn, pliden, coleenp, dcubed ! src/hotspot/share/prims/jvmtiRawMonitor.cpp ! src/hotspot/share/prims/jvmtiRawMonitor.hpp Changeset: 23a06a5eeddd Author: darcy Date: 2019-10-08 15:27 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/23a06a5eeddd 8231368: Suppress warnings on non-serializable non-transient instance fields in java.security.jgss Reviewed-by: mullan, coffeys ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java Changeset: eb68d459ba6a Author: pliden Date: 2019-10-09 08:09 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/eb68d459ba6a 8231489: GC watermark_0_1 failed due to "metaspace.gc.Fault: GC has happened too rare" Reviewed-by: tschatzl, sjohanss ! test/hotspot/jtreg/vmTestbase/metaspace/gc/HighWaterMarkTest.java ! test/hotspot/jtreg/vmTestbase/metaspace/gc/watermark_0_1/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/gc/watermark_10_20/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/gc/watermark_70_80/TestDescription.java ! test/hotspot/jtreg/vmTestbase/metaspace/gc/watermark_99_100/TestDescription.java ! test/jtreg-ext/requires/VMProps.java Changeset: 5185bc8dcbb1 Author: rrich Date: 2019-10-08 15:30 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/5185bc8dcbb1 8230677: Should disable Escape Analysis if JVMTI capability can_get_owned_monitor_info was taken Reviewed-by: sspitsyn, dholmes, kvn ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciEnv.hpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiExport.hpp ! src/hotspot/share/prims/jvmtiManageCapabilities.cpp + test/hotspot/jtreg/serviceability/jvmti/GetOwnedMonitorInfo/GetOwnedMonitorInfoWithEATest.java + test/hotspot/jtreg/serviceability/jvmti/GetOwnedMonitorInfo/libGetOwnedMonitorInfoWithEATest.c + test/hotspot/jtreg/serviceability/jvmti/GetOwnedMonitorStackDepthInfo/GetOwnedMonitorStackDepthInfoWithEATest.java + test/hotspot/jtreg/serviceability/jvmti/GetOwnedMonitorStackDepthInfo/libGetOwnedMonitorStackDepthInfoWithEATest.c Changeset: 7605e97c9491 Author: coffeys Date: 2019-10-09 10:14 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/7605e97c9491 8231770: Test java/util/zip/FlaterTest.java fails with -Xcheck:jni Reviewed-by: alanb, coffeys, chegar Contributed-by: kiran.sidhartha.ravikumar at oracle.com ! src/java.base/share/native/libzip/Deflater.c ! test/jdk/java/util/zip/FlaterTest.java Changeset: 270fdb5898f2 Author: coffeys Date: 2019-10-09 10:15 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/270fdb5898f2 8214560: Use {@systemProperty} for definitions of system properties (httpserver) Reviewed-by: dfuchs, coffeys, chegar Contributed-by: kiran.sidhartha.ravikumar at oracle.com ! src/jdk.httpserver/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java Changeset: 8f849d3ec1e5 Author: sgehwolf Date: 2019-10-08 15:30 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8f849d3ec1e5 8232003: (fs) Files.write can leak file descriptor in the exception case Summary: Be sure to close the leaked OutputStream in all cases Reviewed-by: alanb, bpb, clanger ! src/java.base/share/classes/java/nio/file/Files.java Changeset: d376d86b0a01 Author: eosterlund Date: 2019-10-09 12:30 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/d376d86b0a01 8230565: ZGC: Redesign C2 load barrier to expand on the MachNode level Reviewed-by: pliden, stefank, neliasso Contributed-by: erik.osterlund at oracle.com, per.liden at oracle.com, stefan.karlsson at oracle.com, nils.eliasson at oracle.com ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/gc/z/z_aarch64.ad ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/register_aarch64.hpp ! src/hotspot/cpu/x86/gc/z/zArguments_x86.cpp ! src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.hpp ! src/hotspot/cpu/x86/gc/z/z_x86_64.ad ! src/hotspot/cpu/x86/x86.ad ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/compiler/compilerDirectives.hpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.hpp ! src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp ! src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp ! src/hotspot/share/gc/z/zBarrierSetAssembler.hpp ! 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/loopnode.cpp ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/machnode.hpp ! src/hotspot/share/opto/matcher.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/output.cpp ! src/hotspot/share/opto/output.hpp ! src/hotspot/share/opto/phaseX.cpp Changeset: 252e7f4c4d92 Author: erikj Date: 2019-10-09 09:23 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/252e7f4c4d92 8231974: Build fails if no common legal notices are present Reviewed-by: dholmes, mchung, ihse ! make/CreateJmods.gmk Changeset: 705c3f88a409 Author: dfuchs Date: 2019-10-09 17:38 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/705c3f88a409 8231260: (dc) DatagramChannel::disconnect changes the port of the local address to 0 (lnx) Summary: DatagramChannel::disconnect will attempt to rebind to the original port if the local port switches back to 0 after the association is disolved by the system. Reviewed-by: alanb, chegar, fweimer ! src/java.base/share/classes/java/nio/channels/DatagramChannel.java ! src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java + test/jdk/java/nio/channels/DatagramChannel/AddressesAfterDisconnect.java Changeset: 6e017b301287 Author: darcy Date: 2019-10-09 09:57 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/6e017b301287 8231262: Suppress warnings on non-serializable instance fields in security libs serializable classes Reviewed-by: mullan, chegar ! src/java.base/share/classes/java/security/GuardedObject.java ! src/java.base/share/classes/java/security/SecureRandom.java ! src/java.base/share/classes/javax/crypto/CryptoPermission.java ! src/java.base/share/classes/javax/security/auth/PrivateCredentialPermission.java ! src/java.base/share/classes/javax/security/auth/Subject.java ! src/java.base/share/classes/javax/security/auth/callback/UnsupportedCallbackException.java ! src/java.base/share/classes/sun/security/internal/spec/TlsKeyMaterialSpec.java ! src/java.base/share/classes/sun/security/provider/PolicyParser.java ! src/java.base/share/classes/sun/security/provider/SubjectCodeSource.java ! src/java.base/share/classes/sun/security/provider/certpath/X509CertPath.java ! src/java.base/share/classes/sun/security/rsa/RSAPrivateCrtKeyImpl.java ! src/java.base/share/classes/sun/security/rsa/RSAPrivateKeyImpl.java ! src/java.base/share/classes/sun/security/rsa/RSAPublicKeyImpl.java ! src/java.base/share/classes/sun/security/util/ObjectIdentifier.java ! src/java.base/share/classes/sun/security/validator/ValidatorException.java ! src/java.base/share/classes/sun/security/x509/AlgorithmId.java ! src/java.base/share/classes/sun/security/x509/X509CertImpl.java ! src/java.base/share/classes/sun/security/x509/X509Key.java Changeset: e036ee8bae56 Author: darcy Date: 2019-10-09 10:17 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/e036ee8bae56 8231202: Suppress warnings on non-serializable non-transient instance fields in serializable classes Reviewed-by: rriggs, chegar ! src/java.base/share/classes/java/lang/Throwable.java ! src/java.base/share/classes/java/lang/invoke/SerializedLambda.java ! src/java.base/share/classes/java/lang/reflect/Proxy.java ! src/java.base/share/classes/java/time/Clock.java ! src/java.base/share/classes/java/time/chrono/ChronoPeriodImpl.java ! src/java.base/share/classes/java/util/AbstractMap.java ! src/java.base/share/classes/java/util/ArrayPrefixHelpers.java ! src/java.base/share/classes/java/util/Arrays.java ! src/java.base/share/classes/java/util/ArraysParallelSortHelpers.java ! src/java.base/share/classes/java/util/Collections.java ! src/java.base/share/classes/java/util/Comparators.java ! src/java.base/share/classes/java/util/PriorityQueue.java ! src/java.base/share/classes/java/util/TreeMap.java ! src/java.base/share/classes/java/util/Vector.java ! src/java.base/share/classes/java/util/jar/JarVerifier.java ! src/java.base/share/classes/sun/net/www/protocol/http/NegotiateAuthentication.java ! src/java.base/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java ! src/java.base/share/classes/sun/reflect/annotation/AnnotationTypeMismatchExceptionProxy.java Changeset: 55d2e10ea134 Author: cushon Date: 2019-10-09 10:02 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/55d2e10ea134 8231990: Remove unnecessary else-if branch in Types.union Reviewed-by: mcimadamore Contributed-by: Brad Corso ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java Changeset: 17a34e111667 Author: pliden Date: 2019-10-09 20:12 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/17a34e111667 8232056: GetOwnedMonitorInfoWithEATest.java fails with ZGC: Heap too small Reviewed-by: dholmes, rrich ! test/hotspot/jtreg/serviceability/jvmti/GetOwnedMonitorInfo/GetOwnedMonitorInfoWithEATest.java ! test/hotspot/jtreg/serviceability/jvmti/GetOwnedMonitorStackDepthInfo/GetOwnedMonitorStackDepthInfoWithEATest.java Changeset: fb3d408c7a7e Author: epavlova Date: 2019-10-09 10:59 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/fb3d408c7a7e 8231903: [Graal] Update com.oracle.mxtool.junit classes Reviewed-by: kvn ! test/hotspot/jtreg/ProblemList-graal.txt + test/hotspot/jtreg/compiler/graalunit/CoreAarch64Test.java + test/hotspot/jtreg/compiler/graalunit/CoreJdk9Test.java - test/hotspot/jtreg/compiler/graalunit/EA9Test.java ! test/hotspot/jtreg/compiler/graalunit/TestPackages.txt ! test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/FindClassesByAnnotatedMethods.java - test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/JLModule.java + test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/ModuleSupport.java ! test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/MxJUnitWrapper.java ! test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/TextRunListener.java ! test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/TimingDecorator.java ! test/hotspot/jtreg/compiler/graalunit/common/GraalUnitTestLauncher.java Changeset: e84d8379815b Author: rhalade Date: 2019-10-09 12:21 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/e84d8379815b 8231887: ComodoCA.java fails because certificate was revoked Reviewed-by: mullan, clanger ! test/jdk/security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java Changeset: f9cc0141574c Author: never Date: 2019-10-09 16:35 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f9cc0141574c 8231586: enlarge encoding space for OopMapValue offsets Reviewed-by: dlong ! src/hotspot/share/compiler/oopMap.cpp ! src/hotspot/share/compiler/oopMap.hpp ! src/hotspot/share/opto/buildOopMap.cpp ! src/hotspot/share/runtime/interfaceSupport.cpp ! src/hotspot/share/runtime/interfaceSupport.inline.hpp ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/compiler/OopMapValue.java Changeset: d0519b8bd8d9 Author: ccheung Date: 2019-10-09 16:42 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/d0519b8bd8d9 8231529: [TESTBUG] runtime/cds/appcds/dynamicArchive/DynamicLotsOfClasses.java shouldn't wrap SkippedException into Exception Summary: Removed the try-catch in the test. Reviewed-by: iklam, lfoltan ! test/hotspot/jtreg/runtime/cds/appcds/LotsOfClasses.java ! test/hotspot/jtreg/runtime/cds/appcds/TestCommon.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicLotsOfClasses.java Changeset: 36cdb1cab7b0 Author: jwilhelm Date: 2019-10-10 01:48 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/36cdb1cab7b0 Added tag jdk-14+18 for changeset e84d8379815b ! .hgtags Changeset: 865c889ce351 Author: sspitsyn Date: 2019-10-10 01:10 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/865c889ce351 8231595: [TEST] develop a test case for SuspendThreadList including current thread Summary: Extend test coverage for SuspendThreadList Reviewed-by: amenkov, cjplummer, dholmes + test/hotspot/jtreg/serviceability/jvmti/SuspendWithCurrentThread/SuspendWithCurrentThread.java + test/hotspot/jtreg/serviceability/jvmti/SuspendWithCurrentThread/libSuspendWithCurrentThread.cpp Changeset: 9b40d05c9f66 Author: darcy Date: 2019-10-09 18:23 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/9b40d05c9f66 8232076: Suppress warnings on non-serializable non-transient instance fields java.naming Reviewed-by: lancea ! src/java.naming/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java ! src/java.naming/share/classes/javax/naming/Binding.java ! src/java.naming/share/classes/javax/naming/CannotProceedException.java ! src/java.naming/share/classes/javax/naming/LinkException.java ! src/java.naming/share/classes/javax/naming/NamingException.java ! src/java.naming/share/classes/javax/naming/event/NamingEvent.java ! src/java.naming/share/classes/javax/naming/spi/ResolveResult.java Changeset: b4f2e13d20ea Author: darcy Date: 2019-10-09 19:38 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/b4f2e13d20ea 8232078: Suppress warnings on non-serializable non-transient instance fields in java.datatransfer Reviewed-by: serb ! src/java.datatransfer/share/classes/java/awt/datatransfer/MimeType.java Changeset: 46b0b7fe255c Author: dlong Date: 2019-10-09 21:53 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/46b0b7fe255c 8231973: Update Graal Reviewed-by: kvn ! src/jdk.aot/share/classes/jdk.tools.jaotc/src/jdk/tools/jaotc/collect/FileSupport.java ! src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/HotSpotGraalManagement.java ! src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/HotSpotGraalRuntimeMBean.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/JMXServiceProvider.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/package-info.java ! src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.libgraal/src/jdk/internal/vm/compiler/libgraal/OptionsEncoder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.aarch64/src/org/graalvm/compiler/asm/aarch64/AArch64MacroAssembler.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64LIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.aarch64/src/org/graalvm/compiler/core/aarch64/AArch64LoweringProviderMixin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64LIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64LoweringProviderMixin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.sparc/src/org/graalvm/compiler/core/sparc/SparcLoweringProviderMixin.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CheckGraalInvariants.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/GraphUtilOriginalValueTests.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifySystemPropertyUsage.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph.test/src/org/graalvm/compiler/graph/test/graphio/GraphOutputTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeClass.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeList.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/NodeMap.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackendFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotLIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotRegisterAllocationConfig.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.lir.test/src/org/graalvm/compiler/hotspot/lir/test/MitigateExceedingMaxOopMapStackOffsetTest.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/ConstantPoolSubstitutionsTests.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalManagementRegistration.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalRuntime.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/JVMCIVersionCheck.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/replacements/NewObjectSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/BciBlockMapping.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/BytecodeParser.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/FrameStateBuilder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.jtt/src/org/graalvm/compiler/jtt/reflect/Field_set02.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64ZeroMemoryOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.sparc/src/org/graalvm/compiler/lir/sparc/SPARCControlFlow.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/LIRGeneratorTool.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopFragmentInside.java + src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes.test/src/org/graalvm/compiler/nodes/test/ExceptionLivenessTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/AbstractBeginNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/IfNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/AbsNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/AddNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/AndNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/BinaryArithmeticNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/FloatConvertNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/FloatDivNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerConvertNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/IntegerMulHighNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/LeftShiftNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/MulNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NarrowNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NegateNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NotNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/ObjectEqualsNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/OrNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/RemNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/RightShiftNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/ShiftNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/SignExtendNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/SqrtNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/SubNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/UnaryArithmeticNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/UnsignedRightShiftNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/XorNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/ZeroExtendNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/IntegerSwitchNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/spi/LoweringProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/util/GraphUtil.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.aarch64/src/org/graalvm/compiler/replacements/aarch64/AArch64GraphBuilderPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.amd64/src/org/graalvm/compiler/replacements/amd64/AMD64FloatConvertNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/classfile/ClassfileBytecodeProviderTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/StandardGraphBuilderPlugins.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/ZeroMemoryNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/nodes/arithmetic/UnsignedMulHighNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.graphio/src/org/graalvm/graphio/DefaultGraphTypes.java Changeset: 6c4f71874b36 Author: yzhou Date: 2019-10-10 14:43 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/6c4f71874b36 8231213: Migrate SimpleDateFormatConstTest to JDK Repo Reviewed-by: naoto + test/jdk/java/text/Format/DateFormat/SimpleDateFormatPatternTest.java Changeset: ccb7bf459cbd Author: mbaesken Date: 2019-10-09 09:57 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ccb7bf459cbd 8232045: cleanup AIX 5.3 workarounds from libnio/ch/Net.c Reviewed-by: alanb, clanger, chegar ! src/java.base/unix/native/libnio/ch/Net.c Changeset: 1b76d17440a0 Author: chagedorn Date: 2019-10-10 10:27 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/1b76d17440a0 8231720: Some perf regressions after 8225653 Summary: Fixed emitting of unused assembly code in 8225653??? which had a negative impact on performance in tight loops. Reviewed-by: kvn, thartmann ! src/hotspot/cpu/x86/macroAssembler_x86.cpp Changeset: 30a9612a657d Author: redestad Date: 2019-10-10 13:26 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/30a9612a657d 8232050: Improve inlining of Klass accessors Reviewed-by: lfoltan, tschatzl, coleenp, dholmes, jiangli ! src/hotspot/cpu/arm/abstractInterpreter_arm.cpp ! src/hotspot/cpu/ppc/abstractInterpreter_ppc.cpp ! src/hotspot/cpu/s390/abstractInterpreter_s390.cpp ! src/hotspot/cpu/sparc/abstractInterpreter_sparc.cpp ! src/hotspot/cpu/x86/abstractInterpreter_x86.cpp ! src/hotspot/share/aot/aotCodeHeap.cpp ! src/hotspot/share/aot/aotCompiledMethod.cpp ! src/hotspot/share/c1/c1_LIRGenerator.cpp ! src/hotspot/share/classfile/verificationType.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVMInit.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/klass.inline.hpp Changeset: 8bc609fcd691 Author: iklam Date: 2019-10-10 10:47 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/8bc609fcd691 8231986: [SA] Consolidate parts of the Linux and MacOSX versions of ps_core.c Reviewed-by: sspitsyn, cjplummer ! src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c ! src/jdk.hotspot.agent/macosx/native/libsaproc/ps_core.c + src/jdk.hotspot.agent/share/native/libsaproc/ps_core_common.c + src/jdk.hotspot.agent/share/native/libsaproc/ps_core_common.h Changeset: 94fe833a244b Author: iklam Date: 2019-10-10 10:48 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/94fe833a244b 8232071: Avoid shared dictionary lookup when the class name is not shared Reviewed-by: jiangli, ccheung ! src/hotspot/share/classfile/systemDictionaryShared.cpp ! src/hotspot/share/classfile/systemDictionaryShared.hpp Changeset: a7a606f6311c Author: shade Date: 2019-10-10 21:54 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/a7a606f6311c 8232102: Shenandoah: print everything in proper units Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahStaticHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPacer.cpp ! src/hotspot/share/gc/shenandoah/shenandoahStrDedupQueue.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp Changeset: 8b60ae8a2569 Author: shade Date: 2019-10-10 21:54 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8b60ae8a2569 8231947: Shenandoah: cleanup ShenandoahHumongousMoves flag treatment Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp + test/hotspot/jtreg/gc/shenandoah/options/TestHumongousMoves.java Changeset: 725244418646 Author: xliu Date: 2019-10-09 12:43 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/725244418646 8165056: move JIT Compiler related files from runtime/ to compiler/ directory Reviewed-by: kvn, coleenp, dholmes ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/code/codeCache.cpp + src/hotspot/share/compiler/compilationPolicy.cpp + src/hotspot/share/compiler/compilationPolicy.hpp ! src/hotspot/share/compiler/compileBroker.cpp + src/hotspot/share/compiler/tieredThresholdPolicy.cpp + src/hotspot/share/compiler/tieredThresholdPolicy.hpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/interpreter/linkResolver.cpp ! src/hotspot/share/jvmci/compilerRuntime.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/methodData.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/prims/whitebox.cpp - src/hotspot/share/runtime/compilationPolicy.cpp - src/hotspot/share/runtime/compilationPolicy.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/java.cpp ! src/hotspot/share/runtime/javaCalls.cpp ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/sweeper.cpp - src/hotspot/share/runtime/tieredThresholdPolicy.cpp - src/hotspot/share/runtime/tieredThresholdPolicy.hpp Changeset: d94a76f5d883 Author: redestad Date: 2019-10-11 01:11 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d94a76f5d883 8232150: aarch64 build broken after JDK-8232050 Reviewed-by: dholmes ! src/hotspot/cpu/aarch64/abstractInterpreter_aarch64.cpp Changeset: 7d6ba925590f Author: mbaesken Date: 2019-10-10 08:46 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/7d6ba925590f 8232060: add some initializations using sigemptyset in os_aix.cpp Reviewed-by: clanger, stuefe ! src/hotspot/os/aix/os_aix.cpp Changeset: 430b9a492a05 Author: mbaesken Date: 2019-10-09 14:07 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/430b9a492a05 8232052: use string literal for format string when handling PauseAtStartupFile Reviewed-by: clanger, stuefe ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/solaris/os_solaris.cpp ! src/hotspot/os/windows/os_windows.cpp Changeset: 9d9317fad3fe Author: ihse Date: 2019-10-11 09:43 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/9d9317fad3fe 8065704: Set LC_ALL=C for all relevant commands in the build system Reviewed-by: naoto, erikj ! make/RunTestsPrebuilt.gmk ! make/RunTestsPrebuiltSpec.gmk ! make/autoconf/basics.m4 ! make/autoconf/build-performance.m4 ! make/autoconf/configure ! make/autoconf/spec.gmk.in ! make/common/JavaCompilation.gmk ! make/scripts/compare.sh Changeset: e98509cb3867 Author: mbaesken Date: 2019-10-11 09:55 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/e98509cb3867 8230957: [TESTBUG] containers/docker/TestJcmdWithSideCar.java sporadic failures Reviewed-by: clanger, bobv, mseledtsov ! test/hotspot/jtreg/containers/docker/EventGeneratorLoop.java ! test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java Changeset: 85e5124b0376 Author: pliden Date: 2019-10-11 10:16 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/85e5124b0376 8232070: ZGC: Remove unused ZVerifyLoadBarriers Reviewed-by: tschatzl ! src/hotspot/share/gc/z/z_globals.hpp Changeset: 906a9dd5d8e8 Author: tschatzl Date: 2019-10-11 11:21 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/906a9dd5d8e8 8231956: Remove seq_add_card/reference from PerRegionTable class Reviewed-by: sjohanss, pliden ! src/hotspot/share/gc/g1/heapRegionRemSet.hpp ! src/hotspot/share/gc/g1/heapRegionRemSet.inline.hpp Changeset: 516db52daad6 Author: sgehwolf Date: 2019-09-23 20:26 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/516db52daad6 8196969: JTreg Failure: serviceability/sa/ClhsdbJstack.java causes NPE Summary: Account for serialized null scopes in NMethod Reviewed-by: aph, never ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/code/NMethod.java + test/hotspot/jtreg/serviceability/sa/ClhsdbJstackXcompStress.java + test/hotspot/jtreg/serviceability/sa/LingeredAppWithRecComputation.java Changeset: 8c3c39710a08 Author: jiefu Date: 2019-10-11 17:49 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/8c3c39710a08 8232151: Minimal VM build broken after JDK-8232050 Reviewed-by: dholmes, clanger ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/arm/sharedRuntime_arm.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp ! src/hotspot/cpu/ppc/templateTable_ppc_64.cpp ! src/hotspot/cpu/ppc/vtableStubs_ppc_64.cpp ! src/hotspot/cpu/s390/sharedRuntime_s390.cpp ! src/hotspot/cpu/s390/vtableStubs_s390.cpp ! src/hotspot/cpu/sparc/sharedRuntime_sparc.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/share/opto/library_call.cpp Changeset: 7252d89e3a4e Author: coleenp Date: 2019-10-11 08:49 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/7252d89e3a4e 8231769: Test tools/javac/tree/MakeTypeTest.java fails with -Xcheck:jni Summary: Delete local jni handles in create_from_platform_dependent_str() after upcall to Java. Reviewed-by: dholmes, hseigel ! src/hotspot/share/classfile/javaClasses.cpp Changeset: ff8716224f35 Author: adinn Date: 2019-10-10 10:59 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/ff8716224f35 8232046: AArch64 build failure after JDK-8225681 Reviewed-by: eosterlund ! src/hotspot/cpu/aarch64/compiledIC_aarch64.cpp ! src/hotspot/cpu/aarch64/nativeInst_aarch64.cpp Changeset: cf3205fdb6dc Author: eosterlund Date: 2019-10-11 13:07 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/cf3205fdb6dc 8232116: ZGC: Remove redundant ZLock in ZNMethodTable Reviewed-by: stefank, pliden ! src/hotspot/share/gc/z/zLock.inline.hpp ! src/hotspot/share/gc/z/zNMethodTable.cpp ! src/hotspot/share/gc/z/zNMethodTable.hpp ! src/hotspot/share/gc/z/zSafeDelete.hpp ! src/hotspot/share/gc/z/zSafeDelete.inline.hpp Changeset: 67daaa6c8d2b Author: erikj Date: 2019-10-11 06:38 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/67daaa6c8d2b 8232133: Change to GCC 8.3 for building on Linux at Oracle Reviewed-by: kbarrett, dholmes, ihse ! doc/building.html ! doc/building.md ! make/conf/jib-profiles.js ! make/devkit/Tools.gmk Changeset: 06bd38a9bc5a Author: erikj Date: 2019-10-11 06:31 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/06bd38a9bc5a 8232134: Change to Visual Studio 2017 15.9.16 for building on Windows at Oracle Reviewed-by: ihse ! doc/building.html ! doc/building.md ! make/conf/jib-profiles.js ! make/devkit/createWindowsDevkit2017.sh Changeset: 5a4b4544b810 Author: jvernee Date: 2019-10-11 06:57 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/5a4b4544b810 8232167: Visual Studio install found through --with-tools-dir value is discarded Reviewed-by: erikj, ihse ! make/autoconf/toolchain_windows.m4 Changeset: 3968bf3673c5 Author: aleonard Date: 2019-10-10 10:28 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/3968bf3673c5 8231717: Improve performance of charset decoding when charset is always compactable Reviewed-by: rriggs, redestad, alanb ! make/data/charsetmapping/SingleByte-X.java.template ! make/jdk/src/classes/build/tools/charsetmapping/SBCS.java ! src/java.base/share/classes/java/lang/StringCoding.java ! src/java.base/share/classes/sun/nio/cs/ArrayDecoder.java ! src/java.base/share/classes/sun/nio/cs/SingleByte.java Changeset: e43ac61b89ab Author: coleenp Date: 2019-10-11 11:50 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/e43ac61b89ab 8232120: com/sun/jdi/InvokeTest fails with -Xcheck:jni: assert(k->is_instance_klass()) failed: cast to InstanceKlass Summary: Should have allowed recv klass to be an array. Reviewed-by: hseigel, dcubed ! src/hotspot/share/prims/jniCheck.cpp Changeset: 78bbb5dde2a3 Author: never Date: 2019-10-10 11:40 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/78bbb5dde2a3 8231659: [JVMCI] Could not work PrintAssembly for JVMCI installed code Reviewed-by: ysuenaga ! src/hotspot/share/jvmci/jvmciCodeInstaller.cpp Changeset: 218a1a642c6f Author: iignatyev Date: 2019-10-11 09:43 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/218a1a642c6f 8225654: rework vmTestbase/jit/graph Reviewed-by: thartmann, neliasso ! test/hotspot/jtreg/TEST.quick-groups ! test/hotspot/jtreg/vmTestbase/jit/graph/CGT.java - test/hotspot/jtreg/vmTestbase/jit/graph/CGTThread.java ! test/hotspot/jtreg/vmTestbase/jit/graph/Globals.java ! test/hotspot/jtreg/vmTestbase/jit/graph/MethodData.java ! test/hotspot/jtreg/vmTestbase/jit/graph/Node.java ! test/hotspot/jtreg/vmTestbase/jit/graph/RBTree.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt0.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt0/cgt0.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt1.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt1/cgt1.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt10.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt10/cgt10.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt11.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt11/cgt11.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt2.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt2/cgt2.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt3.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt3/cgt3.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt4.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt4/cgt4.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt5.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt5/cgt5.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt6.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt6/cgt6.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt7.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt7/cgt7.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt8.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt8/cgt8.java + test/hotspot/jtreg/vmTestbase/jit/graph/cgt9.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt9/cgt9.java ! test/hotspot/jtreg/vmTestbase/jit/graph/test1.java ! test/hotspot/jtreg/vmTestbase/jit/graph/test2.java ! test/hotspot/jtreg/vmTestbase/jit/graph/test3.java ! test/hotspot/jtreg/vmTestbase/jit/graph/test4.java ! test/hotspot/jtreg/vmTestbase/jit/graph/test5.java ! test/hotspot/jtreg/vmTestbase/jit/graph/test6.java Changeset: baa5969ecf34 Author: rriggs Date: 2019-10-11 13:11 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/baa5969ecf34 8231427: Warning cleanup in tests of java.io.Serializable Reviewed-by: darcy, lancea ! test/jdk/java/io/ObjectInputStream/ResolveProxyClass.java ! test/jdk/java/io/ObjectInputStream/TestObjectStreamClass.java ! test/jdk/java/io/Serializable/ClassCastExceptionDetail/Read.java ! test/jdk/java/io/Serializable/ClassCastExceptionDetail/Write.java ! test/jdk/java/io/Serializable/GetField/Read2.java ! test/jdk/java/io/Serializable/InvalidClassException/noargctor/DefaultPackage.java ! test/jdk/java/io/Serializable/InvalidClassException/noargctor/Serialize/SubclassAcrossPackage.java ! test/jdk/java/io/Serializable/NPEProvoker/NPEProvoker.java ! test/jdk/java/io/Serializable/NoClassDefFoundErrorTrap/NoClassDefFoundErrorTrap.java ! test/jdk/java/io/Serializable/PutField/Write2.java ! test/jdk/java/io/Serializable/badSerialPersistentField/BadSerialPersistentField.java ! test/jdk/java/io/Serializable/badSerialVersionUID/BadSerialVersionUID.java ! test/jdk/java/io/Serializable/badSubstByReplace/BadSubstByReplace.java ! test/jdk/java/io/Serializable/checkModifiers/CheckModifiers.java ! test/jdk/java/io/Serializable/class/SerialA_2/A.java ! test/jdk/java/io/Serializable/classDescFlagConflict/Foo.java ! test/jdk/java/io/Serializable/classDescGetField/GetField.java ! test/jdk/java/io/Serializable/classDescHooks/CNFException.java ! test/jdk/java/io/Serializable/classDescHooks/ClassDescHooks.java ! test/jdk/java/io/Serializable/classDescHooks/ExternLoopback.java ! test/jdk/java/io/Serializable/classDescHooks/Loopback.java ! test/jdk/java/io/Serializable/cloneArray/CloneArray.java ! test/jdk/java/io/Serializable/concurrentClassDescLookup/ConcurrentClassDescLookup.java ! test/jdk/java/io/Serializable/defaultDataEnd/DefaultDataEnd.java ! test/jdk/java/io/Serializable/defaultReadObjectCNFException/DefaultReadObjectCNFException.java ! test/jdk/java/io/Serializable/defaulted/GetFieldRead.java ! test/jdk/java/io/Serializable/defaulted/GetFieldWrite.java ! test/jdk/java/io/Serializable/enum/classObject/Test.java ! test/jdk/java/io/Serializable/enum/ignoreSerializationFields/Test.java ! test/jdk/java/io/Serializable/enum/ignoreSerializationMethods/Test.java ! test/jdk/java/io/Serializable/enum/mismatchedTypecode/Test.java ! test/jdk/java/io/Serializable/evolution/AddedExternField/ReadAddedField.java ! test/jdk/java/io/Serializable/evolution/AddedExternField/WriteAddedField.java ! test/jdk/java/io/Serializable/evolution/AddedField/ReadAddedField.java ! test/jdk/java/io/Serializable/evolution/AddedField/WriteAddedField.java ! test/jdk/java/io/Serializable/evolution/AddedSuperClass/ReadAddedSuperClass2.java ! test/jdk/java/io/Serializable/evolution/AddedSuperClass/WriteAddedSuperClass.java ! test/jdk/java/io/Serializable/expectedStackTrace/ExpectedStackTrace.java ! test/jdk/java/io/Serializable/explicitCNFException/ExplicitCNFException.java ! test/jdk/java/io/Serializable/failureAtomicity/Bar.template ! test/jdk/java/io/Serializable/failureAtomicity/Foo.template ! test/jdk/java/io/Serializable/failureAtomicity/SerialRef.java ! test/jdk/java/io/Serializable/fieldTypeString/Write.java ! test/jdk/java/io/Serializable/finalFields/FinalFields.java ! test/jdk/java/io/Serializable/getSuidClinitError/GetSuidClinitError.java ! test/jdk/java/io/Serializable/lookupInterfaceDesc/LookupInterfaceDesc.java ! test/jdk/java/io/Serializable/misplacedArrayClassDesc/MisplacedArrayClassDesc.java ! test/jdk/java/io/Serializable/modifyStaticFields/ModifyStaticFields.java ! test/jdk/java/io/Serializable/nestedReplace/NestedReplace.java ! test/jdk/java/io/Serializable/noSuchFieldClarification/NoSuchFieldClarification.java ! test/jdk/java/io/Serializable/notAvailable/NotAvailable.java ! test/jdk/java/io/Serializable/oldTests/AnnotateClass.java ! test/jdk/java/io/Serializable/oldTests/ArrayTest.java ! test/jdk/java/io/Serializable/oldTests/ArraysOfArrays.java ! test/jdk/java/io/Serializable/oldTests/BinaryTree.java ! test/jdk/java/io/Serializable/oldTests/CheckForException.java ! test/jdk/java/io/Serializable/oldTests/CheckingEquality.java ! test/jdk/java/io/Serializable/oldTests/CircularList.java ! test/jdk/java/io/Serializable/oldTests/PrimitivesTest.java ! test/jdk/java/io/Serializable/oldTests/ValidateClass.java ! test/jdk/java/io/Serializable/optionalDataEnd/OptionalDataEnd.java ! test/jdk/java/io/Serializable/packageAccess/B.java ! test/jdk/java/io/Serializable/packageAccess/C.java ! test/jdk/java/io/Serializable/packageAccess/D.java ! test/jdk/java/io/Serializable/packageAccess/PackageAccessTest.java ! test/jdk/java/io/Serializable/parents/EvolvedClass.java ! test/jdk/java/io/Serializable/parents/OriginalClass.java ! test/jdk/java/io/Serializable/partialClassDesc/PartialClassDesc.java ! test/jdk/java/io/Serializable/primitiveClasses/PrimitiveClasses.java ! test/jdk/java/io/Serializable/proxy/Basic.java ! test/jdk/java/io/Serializable/proxy/replace/Test.java ! test/jdk/java/io/Serializable/proxy/skipMissing/Handler.java ! test/jdk/java/io/Serializable/proxy/skipMissing/Write.java ! test/jdk/java/io/Serializable/readObjectNoData/Read.java ! test/jdk/java/io/Serializable/recursiveClassDescLookup/Test.java ! test/jdk/java/io/Serializable/replaceStringArray/ReplaceStringArray.java ! test/jdk/java/io/Serializable/resolveClass/MethodTest.java ! test/jdk/java/io/Serializable/resolveClass/consTest/ConsTest.java ! test/jdk/java/io/Serializable/resolveClass/deserializeButton/DeserializeButtonTest.java ! test/jdk/java/io/Serializable/resolveClass/deserializeButton/Foo.java ! test/jdk/java/io/Serializable/resolveClassException/ResolveClassException.java ! test/jdk/java/io/Serializable/resolveProxyClass/NonPublicInterface.java ! test/jdk/java/io/Serializable/sanityCheck/SanityCheck.java ! test/jdk/java/io/Serializable/serialFilter/SerialFilterTest.java ! test/jdk/java/io/Serializable/serialver/classpath/ClasspathTest.java ! test/jdk/java/io/Serializable/serialver/nested/NestedTest.java ! test/jdk/java/io/Serializable/skipToEndOfBlockData/SkipToEndOfBlockData.java ! test/jdk/java/io/Serializable/skipWriteObject/Write.java ! test/jdk/java/io/Serializable/skippedObjCNFException/Read.java ! test/jdk/java/io/Serializable/skippedObjCNFException/Write.java ! test/jdk/java/io/Serializable/stopCustomDeserialization/Read.java ! test/jdk/java/io/Serializable/stopCustomDeserialization/Write.java ! test/jdk/java/io/Serializable/subclass/AbstractObjectInputStream.java ! test/jdk/java/io/Serializable/subclass/SubclassTest.java ! test/jdk/java/io/Serializable/subclass/XObjectInputStream.java ! test/jdk/java/io/Serializable/subclass/XObjectOutputStream.java ! test/jdk/java/io/Serializable/superclassDataLoss/A.java ! test/jdk/java/io/Serializable/superclassDataLoss/B.java ! test/jdk/java/io/Serializable/superclassDataLoss/SuperclassDataLossTest.java ! test/jdk/java/io/Serializable/survivePrematureClose/SurvivePrematureClose.java ! test/jdk/java/io/Serializable/typeSafeEnum/TypeSafeEnum.java ! test/jdk/java/io/Serializable/typeStringBackRef/TypeStringBackRef.java ! test/jdk/java/io/Serializable/underlyingOutputStreamException/UnderlyingOutputStreamException.java ! test/jdk/java/io/Serializable/unnamedPackageSwitch/UnnamedPackageSwitchTest.java ! test/jdk/java/io/Serializable/unresolvableObjectStreamClass/UnresolvableObjectStreamClass.java ! test/jdk/java/io/Serializable/unresolvedClassDesc/Foo.java ! test/jdk/java/io/Serializable/unshared/Write.java ! test/jdk/java/io/Serializable/userRWObjError/UserRWObjError.java ! test/jdk/java/io/Serializable/validate/Validate.java ! test/jdk/java/io/Serializable/verifyDynamicObjHandleTable/VerifyDynamicObjHandleTable.java ! test/jdk/java/io/Serializable/writeObjectMemory/WriteObjectMemory.java ! test/jdk/java/io/Serializable/writeReplace/WriteReplace.java ! test/jdk/java/io/Serializable/wrongReturnTypes/Read.java ! test/jdk/java/io/Serializable/wrongReturnTypes/Write.java Changeset: afbb7ec84228 Author: rriggs Date: 2019-10-11 13:14 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/afbb7ec84228 8232135: Add diagnostic output to test java/util/ProcessBuilder/Basic.java Reviewed-by: lancea ! test/jdk/java/lang/ProcessBuilder/Basic.java Changeset: 6c1f645bd601 Author: naoto Date: 2019-10-11 11:06 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/6c1f645bd601 8225435: Upgrade IANA Language Subtag Registry to the latest for JDK14 Reviewed-by: rriggs ! make/data/lsrdata/language-subtag-registry.txt ! test/jdk/java/util/Locale/Bug8040211.java Changeset: 79da7db7e9b1 Author: mseledtsov Date: 2019-10-11 13:14 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/79da7db7e9b1 8230865: [TESTBUG] jdk/jfr/event/io/EvilInstrument.java fails at-run shell MakeJAR.sh target Summary: Prebuilding the test class before adding it into a jar file Reviewed-by: iignatyev, egahlin ! test/jdk/jdk/jfr/event/io/EvilInstrument.java From maurizio.cimadamore at oracle.com Fri Oct 11 20:55:43 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 11 Oct 2019 20:55:43 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910112055.x9BKthph026716@aojmv0008.oracle.com> Changeset: 908286329070 Author: mcimadamore Date: 2019-10-11 20:55 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/908286329070 Automatic merge with default - src/hotspot/os/linux/gc/z/zVirtualMemory_linux.cpp - src/hotspot/share/gc/g1/g1HeapSizingPolicy_ext.cpp - src/hotspot/share/gc/z/zUtils.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.hpp - src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetWriter.hpp - src/hotspot/share/logging/logTag_ext.hpp - src/hotspot/share/oops/access.cpp - src/hotspot/share/runtime/arguments_ext.cpp - src/hotspot/share/runtime/compilationPolicy.cpp - src/hotspot/share/runtime/compilationPolicy.hpp - src/hotspot/share/runtime/globals_ext.hpp - src/hotspot/share/runtime/os_ext.hpp - src/hotspot/share/runtime/rframe.cpp - src/hotspot/share/runtime/rframe.hpp - src/hotspot/share/runtime/tieredThresholdPolicy.cpp - src/hotspot/share/runtime/tieredThresholdPolicy.hpp - src/java.base/share/native/libjava/ObjectInputStream.c - src/java.base/share/native/libjava/ObjectOutputStream.c - src/java.base/share/native/libjava/verify_stub.c - src/java.base/share/native/libverify/check_format.c - src/java.base/unix/native/libjava/jdk_util_md.c - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/JMXServiceProvider.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/package-info.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/inlining/PolymorphicInliningTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotClassInitializationPlugin.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NormalizeCompareNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/JLModule.java - src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java - test/hotspot/jtreg/compiler/graalunit/EA9Test.java - test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/JLModule.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineDeleteJmethod.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/libRedefineDeleteJmethod.c - test/hotspot/jtreg/vmTestbase/jit/graph/CGTThread.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt0/cgt0.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt1/cgt1.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt10/cgt10.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt11/cgt11.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt2/cgt2.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt3/cgt3.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt4/cgt4.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt5/cgt5.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt6/cgt6.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt7/cgt7.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt8/cgt8.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt9/cgt9.java - test/jdk/java/lang/invoke/findclass.security.policy - test/jdk/java/nio/charset/coders/SJISMappingPropTest.java - test/jdk/java/nio/charset/coders/SJISPropTest.java - test/jdk/java/nio/charset/coders/ref.windows-31j - test/jdk/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java From maurizio.cimadamore at oracle.com Fri Oct 11 20:56:09 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 11 Oct 2019 20:56:09 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910112056.x9BKu9Hd027099@aojmv0008.oracle.com> Changeset: 06b404e35860 Author: mcimadamore Date: 2019-10-11 20:55 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/06b404e35860 Automatic merge with default - src/hotspot/os/linux/gc/z/zVirtualMemory_linux.cpp - src/hotspot/share/gc/g1/g1HeapSizingPolicy_ext.cpp - src/hotspot/share/gc/z/zUtils.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.hpp - src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetWriter.hpp - src/hotspot/share/logging/logTag_ext.hpp - src/hotspot/share/oops/access.cpp - src/hotspot/share/runtime/arguments_ext.cpp - src/hotspot/share/runtime/compilationPolicy.cpp - src/hotspot/share/runtime/compilationPolicy.hpp - src/hotspot/share/runtime/globals_ext.hpp - src/hotspot/share/runtime/os_ext.hpp - src/hotspot/share/runtime/rframe.cpp - src/hotspot/share/runtime/rframe.hpp - src/hotspot/share/runtime/tieredThresholdPolicy.cpp - src/hotspot/share/runtime/tieredThresholdPolicy.hpp - src/java.base/share/native/libjava/ObjectInputStream.c - src/java.base/share/native/libjava/ObjectOutputStream.c - src/java.base/share/native/libjava/verify_stub.c - src/java.base/share/native/libverify/check_format.c - src/java.base/unix/native/libjava/jdk_util_md.c ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/CompileStates.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/JMXServiceProvider.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/package-info.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/inlining/PolymorphicInliningTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotClassInitializationPlugin.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NormalizeCompareNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/JLModule.java - src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java - test/hotspot/jtreg/compiler/graalunit/EA9Test.java - test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/JLModule.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineDeleteJmethod.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/libRedefineDeleteJmethod.c - test/hotspot/jtreg/vmTestbase/jit/graph/CGTThread.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt0/cgt0.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt1/cgt1.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt10/cgt10.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt11/cgt11.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt2/cgt2.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt3/cgt3.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt4/cgt4.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt5/cgt5.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt6/cgt6.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt7/cgt7.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt8/cgt8.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt9/cgt9.java - test/jdk/java/lang/invoke/findclass.security.policy - test/jdk/java/nio/charset/coders/SJISMappingPropTest.java - test/jdk/java/nio/charset/coders/SJISPropTest.java - test/jdk/java/nio/charset/coders/ref.windows-31j - test/jdk/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ! test/langtools/tools/javac/lib/DPrinter.java From maurizio.cimadamore at oracle.com Fri Oct 11 20:56:45 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 11 Oct 2019 20:56:45 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910112056.x9BKujMk027578@aojmv0008.oracle.com> Changeset: f60f449f3959 Author: mcimadamore Date: 2019-10-11 20:56 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/f60f449f3959 Automatic merge with default - src/hotspot/os/linux/gc/z/zVirtualMemory_linux.cpp - src/hotspot/share/gc/g1/g1HeapSizingPolicy_ext.cpp - src/hotspot/share/gc/z/zUtils.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.hpp - src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetWriter.hpp - src/hotspot/share/logging/logTag_ext.hpp - src/hotspot/share/oops/access.cpp - src/hotspot/share/runtime/arguments_ext.cpp - src/hotspot/share/runtime/compilationPolicy.cpp - src/hotspot/share/runtime/compilationPolicy.hpp - src/hotspot/share/runtime/globals_ext.hpp - src/hotspot/share/runtime/os_ext.hpp - src/hotspot/share/runtime/rframe.cpp - src/hotspot/share/runtime/rframe.hpp - src/hotspot/share/runtime/tieredThresholdPolicy.cpp - src/hotspot/share/runtime/tieredThresholdPolicy.hpp - src/java.base/share/native/libjava/ObjectInputStream.c - src/java.base/share/native/libjava/ObjectOutputStream.c - src/java.base/share/native/libjava/verify_stub.c - src/java.base/share/native/libverify/check_format.c - src/java.base/unix/native/libjava/jdk_util_md.c ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/JMXServiceProvider.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/package-info.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/inlining/PolymorphicInliningTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotClassInitializationPlugin.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NormalizeCompareNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/JLModule.java - src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java - test/hotspot/jtreg/compiler/graalunit/EA9Test.java - test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/JLModule.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineDeleteJmethod.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/libRedefineDeleteJmethod.c - test/hotspot/jtreg/vmTestbase/jit/graph/CGTThread.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt0/cgt0.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt1/cgt1.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt10/cgt10.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt11/cgt11.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt2/cgt2.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt3/cgt3.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt4/cgt4.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt5/cgt5.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt6/cgt6.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt7/cgt7.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt8/cgt8.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt9/cgt9.java - test/jdk/java/lang/invoke/findclass.security.policy - test/jdk/java/nio/charset/coders/SJISMappingPropTest.java - test/jdk/java/nio/charset/coders/SJISPropTest.java - test/jdk/java/nio/charset/coders/ref.windows-31j - test/jdk/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java From maurizio.cimadamore at oracle.com Fri Oct 11 20:57:10 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 11 Oct 2019 20:57:10 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910112057.x9BKvAw7027932@aojmv0008.oracle.com> Changeset: 9e3829305823 Author: mcimadamore Date: 2019-10-11 20:56 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/9e3829305823 Automatic merge with default - src/hotspot/os/linux/gc/z/zVirtualMemory_linux.cpp - src/hotspot/share/gc/g1/g1HeapSizingPolicy_ext.cpp - src/hotspot/share/gc/z/zUtils.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.hpp - src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetWriter.hpp - src/hotspot/share/logging/logTag_ext.hpp - src/hotspot/share/oops/access.cpp - src/hotspot/share/runtime/arguments_ext.cpp - src/hotspot/share/runtime/compilationPolicy.cpp - src/hotspot/share/runtime/compilationPolicy.hpp - src/hotspot/share/runtime/globals_ext.hpp - src/hotspot/share/runtime/os_ext.hpp - src/hotspot/share/runtime/rframe.cpp - src/hotspot/share/runtime/rframe.hpp - src/hotspot/share/runtime/tieredThresholdPolicy.cpp - src/hotspot/share/runtime/tieredThresholdPolicy.hpp - src/java.base/share/native/libjava/ObjectInputStream.c - src/java.base/share/native/libjava/ObjectOutputStream.c - src/java.base/share/native/libjava/verify_stub.c - src/java.base/share/native/libverify/check_format.c - src/java.base/unix/native/libjava/jdk_util_md.c ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/JMXServiceProvider.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/package-info.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/inlining/PolymorphicInliningTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotClassInitializationPlugin.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NormalizeCompareNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/JLModule.java - src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java - test/hotspot/jtreg/compiler/graalunit/EA9Test.java - test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/JLModule.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineDeleteJmethod.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/libRedefineDeleteJmethod.c - test/hotspot/jtreg/vmTestbase/jit/graph/CGTThread.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt0/cgt0.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt1/cgt1.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt10/cgt10.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt11/cgt11.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt2/cgt2.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt3/cgt3.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt4/cgt4.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt5/cgt5.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt6/cgt6.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt7/cgt7.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt8/cgt8.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt9/cgt9.java - test/jdk/java/lang/invoke/findclass.security.policy - test/jdk/java/nio/charset/coders/SJISMappingPropTest.java - test/jdk/java/nio/charset/coders/SJISPropTest.java - test/jdk/java/nio/charset/coders/ref.windows-31j - test/jdk/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java From jr at qsm.co.il Fri Oct 11 21:07:25 2019 From: jr at qsm.co.il (Jonathan Rosenne) Date: Fri, 11 Oct 2019 21:07:25 +0000 Subject: JEP 359: Records In-Reply-To: <9dbfe297-71a9-2ae2-28cd-7e3851db23cd@oracle.com> References: <3A34C928-7B11-42A5-8DD1-3494431E88DF@oracle.com> <9dbfe297-71a9-2ae2-28cd-7e3851db23cd@oracle.com> Message-ID: Thanks for taking time to reply. Best Regards, Jonathan Rosenne -----Original Message----- From: Brian Goetz [mailto:brian.goetz at oracle.com] Sent: Friday, October 11, 2019 10:29 PM To: Jonathan Rosenne; John Rose Cc: amber-dev at openjdk.java.net Subject: Re: JEP 359: Records > So will classes such as Integer and other suitable classes in the JDK be upgraded to records? For classes that we are sure that it is our design intent, now and forever, to expose as transparent carriers for a fixed stable tuple of data, we could consider migrating them to records.? But, let me turn it around: why would this matter to you?? From the outside, whether Integer is a class or a record, doesn't really make a difference; it has the same set of members either way.? What benefit _to the client_ are you imagining records to have over equivalent classes? From vicente.romero at oracle.com Fri Oct 11 21:47:14 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 11 Oct 2019 21:47:14 +0000 Subject: hg: amber/amber: manual, an painful, merge with default Message-ID: <201910112147.x9BLlF2b025116@aojmv0008.oracle.com> Changeset: 64c573c4f08b Author: vromero Date: 2019-10-11 17:46 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/64c573c4f08b manual, an painful, merge with default ! .hgtags ! doc/building.html ! doc/testing.html ! doc/testing.md ! make/Main.gmk ! make/RunTests.gmk ! make/autoconf/spec.gmk.in ! make/data/tzdata/VERSION ! make/data/tzdata/asia ! make/data/tzdata/australasia ! make/data/tzdata/europe ! make/data/tzdata/northamerica ! make/hotspot/symbols/symbols-unix ! make/jdk/src/classes/build/tools/jdwpgen/ConstantSetNode.java ! src/hotspot/cpu/aarch64/aarch64.ad ! src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/c1/shenandoahBarrierSetC1_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/gc/z/zGlobals_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/z/zGlobals_aarch64.hpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp ! src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp ! src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp ! src/hotspot/cpu/arm/sharedRuntime_arm.cpp ! src/hotspot/cpu/ppc/macroAssembler_ppc.cpp ! src/hotspot/cpu/ppc/sharedRuntime_ppc.cpp ! src/hotspot/cpu/s390/sharedRuntime_s390.cpp ! src/hotspot/cpu/sparc/sharedRuntime_sparc.cpp ! src/hotspot/cpu/x86/assembler_x86.cpp ! src/hotspot/cpu/x86/assembler_x86.hpp ! src/hotspot/cpu/x86/gc/shenandoah/c1/shenandoahBarrierSetC1_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.hpp ! src/hotspot/cpu/x86/gc/z/zArguments_x86.cpp ! src/hotspot/cpu/x86/gc/z/zGlobals_x86.cpp ! src/hotspot/cpu/x86/gc/z/zGlobals_x86.hpp ! src/hotspot/cpu/x86/macroAssembler_x86.cpp ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/cpu/x86/sharedRuntime_x86_64.cpp ! src/hotspot/cpu/x86/stubGenerator_x86_64.cpp ! src/hotspot/cpu/x86/x86_64.ad ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/bsd/os_bsd.cpp - src/hotspot/os/linux/gc/z/zVirtualMemory_linux.cpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/perfMemory_linux.cpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/solaris/os_solaris.cpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/share/adlc/formssel.cpp ! src/hotspot/share/aot/aotCodeHeap.cpp ! src/hotspot/share/c1/c1_GraphBuilder.cpp ! src/hotspot/share/c1/c1_Runtime1.cpp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/classLoader.hpp ! src/hotspot/share/classfile/classLoaderDataGraph.cpp ! src/hotspot/share/classfile/classLoaderExt.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/symbolTable.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/code/codeCache.cpp ! src/hotspot/share/code/compiledMethod.hpp ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/nmethod.hpp ! src/hotspot/share/compiler/compileBroker.cpp ! src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp ! src/hotspot/share/gc/g1/g1Analytics.cpp ! src/hotspot/share/gc/g1/g1Analytics.hpp ! src/hotspot/share/gc/g1/g1CardTableEntryClosure.hpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1CollectionSet.cpp ! src/hotspot/share/gc/g1/g1ConcurrentRefine.cpp ! src/hotspot/share/gc/g1/g1ConcurrentRefine.hpp ! src/hotspot/share/gc/g1/g1ConcurrentRefineThread.cpp ! src/hotspot/share/gc/g1/g1DirtyCardQueue.cpp ! src/hotspot/share/gc/g1/g1DirtyCardQueue.hpp ! src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp ! src/hotspot/share/gc/g1/g1FullGCMarker.inline.hpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp - src/hotspot/share/gc/g1/g1HeapSizingPolicy_ext.cpp ! src/hotspot/share/gc/g1/g1OopClosures.inline.hpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp ! src/hotspot/share/gc/g1/g1RedirtyCardsQueue.cpp ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/g1RemSet.hpp ! src/hotspot/share/gc/parallel/psCardTable.cpp ! src/hotspot/share/gc/serial/markSweep.inline.hpp ! src/hotspot/share/gc/shared/c2/barrierSetC2.hpp ! src/hotspot/share/gc/shared/collectedHeap.hpp ! src/hotspot/share/gc/shared/memAllocator.cpp ! src/hotspot/share/gc/shared/ptrQueue.hpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.hpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.hpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahCodeRoots.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp ! src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp ! src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp ! src/hotspot/share/gc/z/zCollectedHeap.cpp ! src/hotspot/share/gc/z/zCollectedHeap.hpp ! src/hotspot/share/gc/z/zHeap.cpp ! src/hotspot/share/gc/z/zHeap.hpp ! src/hotspot/share/gc/z/zHeapIterator.cpp ! src/hotspot/share/gc/z/zMark.cpp ! src/hotspot/share/gc/z/zNMethod.cpp ! src/hotspot/share/gc/z/zObjArrayAllocator.cpp ! src/hotspot/share/gc/z/zRootsIterator.cpp ! src/hotspot/share/gc/z/zRootsIterator.hpp ! src/hotspot/share/gc/z/zStat.cpp - src/hotspot/share/gc/z/zUtils.cpp ! src/hotspot/share/include/cds.h ! src/hotspot/share/include/jvm.h ! src/hotspot/share/interpreter/bytecodeInterpreter.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/jfr/leakprofiler/chains/edgeStore.cpp ! src/hotspot/share/jfr/leakprofiler/chains/pathToGcRootsOperation.cpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.cpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleCheckpoint.hpp ! src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.cpp - src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.cpp - src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetWriter.hpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/jvmciEnv.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/logging/logTag.hpp - src/hotspot/share/logging/logTag_ext.hpp ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/memory/filemap.cpp ! src/hotspot/share/memory/filemap.hpp ! src/hotspot/share/memory/heapShared.cpp ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/memory/universe.cpp - src/hotspot/share/oops/access.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/klass.cpp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/oops/klass.inline.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/oop.cpp ! src/hotspot/share/oops/oop.hpp ! src/hotspot/share/oops/oopsHierarchy.hpp ! src/hotspot/share/opto/c2_globals.hpp ! src/hotspot/share/opto/c2compiler.cpp ! src/hotspot/share/opto/classes.hpp ! src/hotspot/share/opto/compile.cpp ! src/hotspot/share/opto/escape.cpp ! src/hotspot/share/opto/graphKit.cpp ! src/hotspot/share/opto/library_call.cpp ! src/hotspot/share/opto/loopnode.cpp ! src/hotspot/share/opto/loopopts.cpp ! src/hotspot/share/opto/macro.cpp ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/opto/node.cpp ! src/hotspot/share/opto/node.hpp ! src/hotspot/share/opto/type.cpp ! src/hotspot/share/prims/cdsoffsets.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/jvmtiEventController.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/prims/jvmtiTagMap.cpp ! src/hotspot/share/prims/unsafe.cpp ! src/hotspot/share/prims/whitebox.cpp ! src/hotspot/share/runtime/arguments.cpp - src/hotspot/share/runtime/arguments_ext.cpp ! src/hotspot/share/runtime/biasedLocking.cpp ! src/hotspot/share/runtime/biasedLocking.hpp - src/hotspot/share/runtime/compilationPolicy.cpp - src/hotspot/share/runtime/compilationPolicy.hpp ! src/hotspot/share/runtime/deoptimization.cpp ! src/hotspot/share/runtime/flags/jvmFlag.cpp ! src/hotspot/share/runtime/flags/jvmFlagRangeList.cpp ! src/hotspot/share/runtime/globals.hpp - src/hotspot/share/runtime/globals_ext.hpp ! src/hotspot/share/runtime/interfaceSupport.inline.hpp ! src/hotspot/share/runtime/mutex.cpp ! src/hotspot/share/runtime/mutex.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/hotspot/share/runtime/mutexLocker.hpp ! src/hotspot/share/runtime/objectMonitor.cpp ! src/hotspot/share/runtime/objectMonitor.hpp ! src/hotspot/share/runtime/os.cpp ! src/hotspot/share/runtime/os.hpp - src/hotspot/share/runtime/os_ext.hpp - src/hotspot/share/runtime/rframe.cpp - src/hotspot/share/runtime/rframe.hpp ! src/hotspot/share/runtime/safepoint.cpp ! src/hotspot/share/runtime/serviceThread.cpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/synchronizer.cpp ! src/hotspot/share/runtime/thread.cpp ! src/hotspot/share/runtime/thread.hpp - src/hotspot/share/runtime/tieredThresholdPolicy.cpp - src/hotspot/share/runtime/tieredThresholdPolicy.hpp ! src/hotspot/share/runtime/vframe.cpp ! src/hotspot/share/runtime/vmOperations.cpp ! src/hotspot/share/runtime/vmOperations.hpp ! src/hotspot/share/runtime/vmStructs.cpp ! src/hotspot/share/runtime/vmThread.cpp ! src/hotspot/share/services/dtraceAttacher.cpp ! src/java.base/aix/native/libjli/java_md_aix.c ! src/java.base/share/classes/java/io/File.java ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/Math.java ! src/java.base/share/classes/java/lang/String.java ! src/java.base/share/classes/java/lang/Throwable.java ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/java/lang/reflect/Method.java ! src/java.base/share/classes/java/lang/reflect/Proxy.java ! src/java.base/share/classes/java/net/InetAddress.java ! src/java.base/share/classes/java/net/NetworkInterface.java ! src/java.base/share/classes/java/net/ServerSocket.java ! src/java.base/share/classes/java/net/URL.java ! src/java.base/share/classes/java/net/URLStreamHandler.java ! src/java.base/share/classes/java/nio/MappedByteBuffer.java ! src/java.base/share/classes/java/security/SecureRandom.java ! src/java.base/share/classes/java/text/NumberFormat.java ! src/java.base/share/classes/java/util/Calendar.java ! src/java.base/share/classes/java/util/Collections.java ! src/java.base/share/classes/java/util/Locale.java ! src/java.base/share/classes/java/util/TreeMap.java ! src/java.base/share/classes/java/util/regex/Pattern.java ! src/java.base/share/classes/sun/security/x509/AlgorithmId.java ! src/java.base/share/native/libjava/Class.c - src/java.base/share/native/libjava/ObjectInputStream.c - src/java.base/share/native/libjava/ObjectOutputStream.c - src/java.base/share/native/libjava/verify_stub.c - src/java.base/share/native/libverify/check_format.c ! src/java.base/unix/classes/sun/nio/fs/UnixNativeDispatcher.java - src/java.base/unix/native/libjava/jdk_util_md.c ! src/java.base/unix/native/libnet/NetworkInterface.c ! src/java.desktop/aix/native/libawt/porting_aix.c ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.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/Resolve.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/JMXServiceProvider.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/package-info.java ! src/jdk.internal.vm.compiler/share/classes/jdk.internal.vm.compiler.libgraal/src/jdk/internal/vm/compiler/libgraal/OptionsEncoder.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64ArithmeticLIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64LIRGenerator.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/GraalOptions.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/inlining/PolymorphicInliningTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/CompilationWrapper.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/Node.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackendFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.lir.test/src/org/graalvm/compiler/hotspot/lir/test/MitigateExceedingMaxOopMapStackOffsetTest.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/src/org/graalvm/compiler/hotspot/CompilationTask.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationWatchDog.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilerConfigurationFactory.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.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/HotSpotGraalServices.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotReplacementsImpl.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotTTYStreamProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/JVMCIVersionCheck.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/DefaultHotSpotLoweringProvider.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotClassInitializationPlugin.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/HotSpotUnsafeSubstitutions.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/MonitorSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/NewObjectSnippets.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/BytecodeParser.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.aarch64/src/org/graalvm/compiler/lir/aarch64/AArch64Move.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64ArrayIndexOfOp.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/gen/LIRGeneratorTool.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.test/src/org/graalvm/compiler/loop/test/LoopPartialUnrollTest.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopEx.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/IfNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NormalizeCompareNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/IntegerSwitchNode.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/ConditionalEliminationPhase.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/DefaultJavaLoweringProvider.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.serviceprovider/src/org/graalvm/compiler/serviceprovider/GraalServices.java ! src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/GraalTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/JLModule.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java - src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! src/jdk.zipfs/share/classes/module-info.java ! test/hotspot/jtreg/ProblemList-graal.txt ! test/hotspot/jtreg/ProblemList.txt - test/hotspot/jtreg/compiler/graalunit/EA9Test.java - test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/JLModule.java ! test/hotspot/jtreg/containers/docker/EventGeneratorLoop.java ! test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java ! test/hotspot/jtreg/gc/g1/TestGCLogMessages.java ! test/hotspot/jtreg/gc/shenandoah/TestGCThreadGroups.java ! test/hotspot/jtreg/runtime/cds/appcds/LotsOfClasses.java ! test/hotspot/jtreg/runtime/cds/appcds/ParallelLoadTest.java ! test/hotspot/jtreg/runtime/cds/appcds/TestCommon.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/ArchiveConsistency.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicLotsOfClasses.java ! test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/HelloDynamic.java ! test/hotspot/jtreg/runtime/cds/appcds/test-classes/ParallelLoad.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineDeleteJmethod.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/libRedefineDeleteJmethod.c - test/hotspot/jtreg/vmTestbase/jit/graph/CGTThread.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt0/cgt0.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt1/cgt1.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt10/cgt10.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt11/cgt11.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt2/cgt2.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt3/cgt3.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt4/cgt4.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt5/cgt5.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt6/cgt6.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt7/cgt7.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt8/cgt8.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt9/cgt9.java ! test/jdk/ProblemList.txt - test/jdk/java/lang/invoke/findclass.security.policy ! test/jdk/java/net/HttpURLConnection/SetAuthenticator/HTTPTest.java ! test/jdk/java/net/NetworkInterface/NetworkInterfaceRetrievalTests.java - test/jdk/java/nio/charset/coders/SJISMappingPropTest.java - test/jdk/java/nio/charset/coders/SJISPropTest.java - test/jdk/java/nio/charset/coders/ref.windows-31j ! test/jdk/java/nio/file/attribute/BasicFileAttributeView/SetTimesNanos.java ! test/jdk/jdk/jfr/event/gc/collection/TestG1ParallelPhases.java - test/jdk/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ! test/jtreg-ext/requires/VMProps.java ! test/langtools/tools/javac/lib/DPrinter.java ! test/lib/jdk/test/lib/process/ProcessTools.java From maurizio.cimadamore at oracle.com Fri Oct 11 21:51:06 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 11 Oct 2019 21:51:06 +0000 Subject: hg: amber/amber: Automatic merge with pattern-runtime Message-ID: <201910112151.x9BLp6RV028490@aojmv0008.oracle.com> Changeset: df5e1c317777 Author: mcimadamore Date: 2019-10-11 21:50 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/df5e1c317777 Automatic merge with pattern-runtime From eolivelli at gmail.com Sat Oct 12 05:57:05 2019 From: eolivelli at gmail.com (Enrico Olivelli) Date: Sat, 12 Oct 2019 07:57:05 +0200 Subject: JEP 359: Records In-Reply-To: References: <3A34C928-7B11-42A5-8DD1-3494431E88DF@oracle.com> <9dbfe297-71a9-2ae2-28cd-7e3851db23cd@oracle.com> Message-ID: Jonathan, Did you also take a look to Valhalla project/inline classes? I feel that 'records' play really well with inline classes, and maybe you are more looking for the features delivered my the latter. Hope that helps Enrico Il ven 11 ott 2019, 23:21 Jonathan Rosenne ha scritto: > Thanks for taking time to reply. > > Best Regards, > > Jonathan Rosenne > > > -----Original Message----- > From: Brian Goetz [mailto:brian.goetz at oracle.com] > Sent: Friday, October 11, 2019 10:29 PM > To: Jonathan Rosenne; John Rose > Cc: amber-dev at openjdk.java.net > Subject: Re: JEP 359: Records > > > > So will classes such as Integer and other suitable classes in the JDK be > upgraded to records? > > For classes that we are sure that it is our design intent, now and > forever, to expose as transparent carriers for a fixed stable tuple of > data, we could consider migrating them to records. But, let me turn it > around: why would this matter to you? From the outside, whether Integer > is a class or a record, doesn't really make a difference; it has the > same set of members either way. What benefit _to the client_ are you > imagining records to have over equivalent classes? > > > From srikanth.adayapalam at oracle.com Mon Oct 14 05:15:03 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Mon, 14 Oct 2019 05:15:03 +0000 Subject: hg: amber/amber: Initial commit for branch local-methods Message-ID: <201910140515.x9E5F3xP029383@aojmv0008.oracle.com> Changeset: bb5ae57852b6 Author: srikanth Date: 2019-10-14 10:41 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/bb5ae57852b6 Initial commit for branch local-methods From jonathan.gibbons at oracle.com Mon Oct 14 18:15:06 2019 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Mon, 14 Oct 2019 18:15:06 +0000 Subject: hg: amber/amber: tweak text for variations of record .equals method Message-ID: <201910141815.x9EIF6Vo015264@aojmv0008.oracle.com> Changeset: 92ee7d6cfbbd Author: jjg Date: 2019-10-14 11:09 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/92ee7d6cfbbd tweak text for variations of record .equals method ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! test/langtools/jdk/javadoc/doclet/testRecordTypes/TestRecordTypes.java From srikanth.adayapalam at oracle.com Tue Oct 15 05:06:49 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Tue, 15 Oct 2019 05:06:49 +0000 Subject: hg: amber/amber: [local-methods] Initial implementation brought forward from Maurizio's earlier work (fails 7 tests - under investigation) Message-ID: <201910150506.x9F56nYw002108@aojmv0008.oracle.com> Changeset: 2d9a265926ac Author: sadayapalam Date: 2019-10-15 10:32 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/2d9a265926ac [local-methods] Initial implementation brought forward from Maurizio's earlier work (fails 7 tests - under investigation) ! 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/LambdaToMethod.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.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/main/JavaCompiler.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.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java From maurizio.cimadamore at oracle.com Tue Oct 15 05:10:07 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Oct 2019 05:10:07 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910150510.x9F5A8OL003586@aojmv0008.oracle.com> Changeset: 0a63c9612436 Author: mcimadamore Date: 2019-10-15 05:09 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/0a63c9612436 Automatic merge with default From maurizio.cimadamore at oracle.com Tue Oct 15 05:10:48 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Oct 2019 05:10:48 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910150510.x9F5AmBP004068@aojmv0008.oracle.com> Changeset: 198fcfd16db1 Author: mcimadamore Date: 2019-10-15 05:10 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/198fcfd16db1 Automatic merge with default ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties From maurizio.cimadamore at oracle.com Tue Oct 15 05:11:09 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Oct 2019 05:11:09 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910150511.x9F5BAYN004930@aojmv0008.oracle.com> Changeset: 35114ceea341 Author: mcimadamore Date: 2019-10-15 05:10 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/35114ceea341 Automatic merge with default ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.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.compiler/share/classes/com/sun/tools/javac/util/Names.java From maurizio.cimadamore at oracle.com Tue Oct 15 05:11:31 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Oct 2019 05:11:31 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910150511.x9F5BVmZ005388@aojmv0008.oracle.com> Changeset: 7668209a3b1a Author: mcimadamore Date: 2019-10-15 05:11 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/7668209a3b1a Automatic merge with default From srikanth.adayapalam at oracle.com Tue Oct 15 05:16:37 2019 From: srikanth.adayapalam at oracle.com (Srikanth) Date: Tue, 15 Oct 2019 10:46:37 +0530 Subject: hg: amber/amber: Automatic merge with default In-Reply-To: <201910150511.x9F5BVmZ005388@aojmv0008.oracle.com> References: <201910150511.x9F5BVmZ005388@aojmv0008.oracle.com> Message-ID: <9eb1fa9a-fa87-d360-7ba6-9f96dad66ce8@oracle.com> Folks, My sincere apologies - some strip operations I had to do on my local clone automatically resulted in a change of branch and I seem to have inadvertently pushed what was meant to go into the branch "local-methods" into default by mistake. I see that automatic merges are pulling these changes into other branches in amber resulting in a cascade :-( I am figuring how what is the recommended way to reverse this badness. In the meantime it may be a good idea to hold any pushes to amber repo until this mess is cleared. Very very sorry about this. Thanks Srikanth On 15/10/19 10:41 AM, maurizio.cimadamore at oracle.com wrote: > Changeset: 7668209a3b1a > Author: mcimadamore > Date: 2019-10-15 05:11 +0000 > URL: https://hg.openjdk.java.net/amber/amber/rev/7668209a3b1a > > Automatic merge with default > > From srikanth.adayapalam at oracle.com Tue Oct 15 05:34:00 2019 From: srikanth.adayapalam at oracle.com (Srikanth) Date: Tue, 15 Oct 2019 11:04:00 +0530 Subject: Requested ops@openjdk to reverse the inadvertent push to default in amber/amber In-Reply-To: <201910150511.x9F5BVmZ005388@aojmv0008.oracle.com> References: <201910150511.x9F5BVmZ005388@aojmv0008.oracle.com> Message-ID: Folks, I have sent a note to the maintainers to address the badness caused by the misdirected push that resulted in http://hg.openjdk.java.net/amber/amber/rev/2d9a265926ac Hopefully sanity will be restored soon. My apologies. Appreciate your patience. Srikanth From srikanth.adayapalam at oracle.com Tue Oct 15 05:37:29 2019 From: srikanth.adayapalam at oracle.com (Srikanth) Date: Tue, 15 Oct 2019 11:07:29 +0530 Subject: Please hold off push/pulls to/from amber/amber remote In-Reply-To: References: <201910150511.x9F5BVmZ005388@aojmv0008.oracle.com> Message-ID: <5393a28c-8731-b816-0f5c-2b0167b1363b@oracle.com> Till the following is resolved by the maintainers, it may be prudent to hold off any pushes and pull wrt amber/amber. Thanks Srikanth On 15/10/19 11:04 AM, Srikanth wrote: > Folks, > > I have sent a note to the maintainers to address the badness caused by > the misdirected push that resulted in > http://hg.openjdk.java.net/amber/amber/rev/2d9a265926ac > > Hopefully sanity will be restored soon. > > My apologies. Appreciate your patience. > Srikanth From chris.hegarty at oracle.com Tue Oct 15 07:37:25 2019 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Tue, 15 Oct 2019 08:37:25 +0100 Subject: hg: amber/amber: Automatic merge with default In-Reply-To: <9eb1fa9a-fa87-d360-7ba6-9f96dad66ce8@oracle.com> References: <201910150511.x9F5BVmZ005388@aojmv0008.oracle.com> <9eb1fa9a-fa87-d360-7ba6-9f96dad66ce8@oracle.com> Message-ID: Srikanth, There may be a simple fix? When then next changeset comes into the default branch ( from jdk/jdk ), then it will create two heads in the default branch. Allow that changeset to propagate to the other downstream branches ( which will happen automatically ). Then just ?closed? the bad sub-branch. I can try this locally to see how it works. -Chris. > On 15 Oct 2019, at 06:16, Srikanth wrote: > > Folks, > > My sincere apologies - some strip operations I had to do on my local clone automatically resulted in a change of branch and I seem to have inadvertently pushed what was meant to go into the branch "local-methods" into default by mistake. > > I see that automatic merges are pulling these changes into other branches in amber resulting in a cascade :-( > > I am figuring how what is the recommended way to reverse this badness. In the meantime it may be a good idea to hold any pushes to amber repo until this mess is cleared. > > Very very sorry about this. > Thanks > Srikanth > > On 15/10/19 10:41 AM, maurizio.cimadamore at oracle.com wrote: >> Changeset: 7668209a3b1a >> Author: mcimadamore >> Date: 2019-10-15 05:11 +0000 >> URL: https://hg.openjdk.java.net/amber/amber/rev/7668209a3b1a >> >> Automatic merge with default >> >> > From maurizio.cimadamore at oracle.com Tue Oct 15 07:57:28 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 15 Oct 2019 08:57:28 +0100 Subject: hg: amber/amber: Automatic merge with default In-Reply-To: References: <201910150511.x9F5BVmZ005388@aojmv0008.oracle.com> <9eb1fa9a-fa87-d360-7ba6-9f96dad66ce8@oracle.com> Message-ID: <8063b2df-9069-ab7f-e330-072f7133e226@oracle.com> Hi Chris, was thinking the same, but the changeset has been picked up by 3-4 different branches already, so this time looks more complex. Wouldn't that invalidate the process somewhat? (the other times we did it, there was no other change "on top" of the bad one) Maurizio On 15/10/2019 08:37, Chris Hegarty wrote: > Srikanth, > > There may be a simple fix? When then next changeset comes into the default branch ( from jdk/jdk ), then it will create two heads in the default branch. Allow that changeset to propagate to the other downstream branches ( which will happen automatically ). Then just ?closed? the bad sub-branch. > > I can try this locally to see how it works. > > -Chris. > >> On 15 Oct 2019, at 06:16, Srikanth wrote: >> >> Folks, >> >> My sincere apologies - some strip operations I had to do on my local clone automatically resulted in a change of branch and I seem to have inadvertently pushed what was meant to go into the branch "local-methods" into default by mistake. >> >> I see that automatic merges are pulling these changes into other branches in amber resulting in a cascade :-( >> >> I am figuring how what is the recommended way to reverse this badness. In the meantime it may be a good idea to hold any pushes to amber repo until this mess is cleared. >> >> Very very sorry about this. >> Thanks >> Srikanth >> >> On 15/10/19 10:41 AM, maurizio.cimadamore at oracle.com wrote: >>> Changeset: 7668209a3b1a >>> Author: mcimadamore >>> Date: 2019-10-15 05:11 +0000 >>> URL: https://hg.openjdk.java.net/amber/amber/rev/7668209a3b1a >>> >>> Automatic merge with default >>> >>> From chris.hegarty at oracle.com Tue Oct 15 09:26:41 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Tue, 15 Oct 2019 09:26:41 +0000 Subject: hg: amber/amber: 15 new changesets Message-ID: <201910150926.x9F9QhfA022154@aojmv0008.oracle.com> Changeset: dcc760954243 Author: akozlov Date: 2019-10-11 14:49 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/dcc760954243 8231584: Deadlock with ClassLoader.findLibrary and System.loadLibrary call Reviewed-by: mchung ! src/java.base/share/classes/java/lang/ClassLoader.java ! src/java.base/share/classes/java/lang/Runtime.java ! src/java.base/share/classes/java/lang/System.java + test/jdk/java/lang/Runtime/loadLibrary/LoadLibraryTest.java + test/jdk/java/lang/Runtime/loadLibrary/src/Target.java + test/jdk/java/lang/Runtime/loadLibrary/src/Target2.java Changeset: ab9aa7fc50f5 Author: chegar Date: 2019-10-15 09:20 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/ab9aa7fc50f5 closing bad head on default Changeset: 77b970f34937 Author: chegar Date: 2019-10-15 09:32 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/77b970f34937 [pattern-runtime] manual merge to by-pass bad changeset Changeset: 7dee65c66482 Author: chegar Date: 2019-10-15 09:35 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/7dee65c66482 [pattern-runtime] closing bad head Changeset: 30a4c0a91adb Author: chegar Date: 2019-10-15 09:38 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/30a4c0a91adb [stats-before-this-super] manual merge to by-pass bad changeset Changeset: 79aaa16a8028 Author: chegar Date: 2019-10-15 09:39 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/79aaa16a8028 [stats-before-this-super] closing bad head Changeset: f260a4e45b48 Author: chegar Date: 2019-10-15 09:40 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/f260a4e45b48 [lambda-leftovers] manual merge to by-pass bad changeset Changeset: bfc5a6e98ffd Author: chegar Date: 2019-10-15 09:41 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/bfc5a6e98ffd [lambda-leftovers] closing bad head Changeset: 7eecf2911eb9 Author: chegar Date: 2019-10-15 09:42 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/7eecf2911eb9 [local-methods] manual merge to by-pass bad changeset Changeset: fd4527d8f87d Author: chegar Date: 2019-10-15 09:43 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/fd4527d8f87d [local-methods] closing bad head Changeset: 6941d77417f4 Author: kbarrett Date: 2019-10-12 00:22 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/6941d77417f4 8232147: Remove notproduct option IgnoreLockingAssertions Summary: Removed option. Reviewed-by: coleenp, dholmes ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/mutexLocker.cpp Changeset: e0f8e1818ca7 Author: chegar Date: 2019-10-15 09:48 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/e0f8e1818ca7 [pattern-runtime] manual merge with default Changeset: f1af159d9dc6 Author: chegar Date: 2019-10-15 09:48 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/f1af159d9dc6 [stats-before-this-super)] manual merge with default Changeset: 70390d8c925d Author: chegar Date: 2019-10-15 09:49 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/70390d8c925d [lambda-leftovers] manual merge with default Changeset: bab4d28b4b13 Author: chegar Date: 2019-10-15 09:50 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/bab4d28b4b13 [local-methods] manual merge with default From maurizio.cimadamore at oracle.com Tue Oct 15 09:56:51 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Oct 2019 09:56:51 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910150956.x9F9upvI010012@aojmv0008.oracle.com> Changeset: 449afd3008d5 Author: mcimadamore Date: 2019-10-15 09:56 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/449afd3008d5 Automatic merge with default From maurizio.cimadamore at oracle.com Tue Oct 15 09:58:23 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Oct 2019 09:58:23 +0000 Subject: hg: amber/amber: Automatic merge with pattern-runtime Message-ID: <201910150958.x9F9wOvr011776@aojmv0008.oracle.com> Changeset: 0b7596867dd8 Author: mcimadamore Date: 2019-10-15 09:58 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/0b7596867dd8 Automatic merge with pattern-runtime ! src/hotspot/share/oops/klassVtable.cpp ! src/hotspot/share/runtime/globals.hpp ! src/hotspot/share/runtime/mutexLocker.cpp ! src/java.base/share/classes/java/lang/System.java From maurizio.cimadamore at oracle.com Tue Oct 15 10:02:09 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 15 Oct 2019 11:02:09 +0100 Subject: Please hold off push/pulls to/from amber/amber remote In-Reply-To: <5393a28c-8731-b816-0f5c-2b0167b1363b@oracle.com> References: <201910150511.x9F5BVmZ005388@aojmv0008.oracle.com> <5393a28c-8731-b816-0f5c-2b0167b1363b@oracle.com> Message-ID: <1c466ee2-1622-a030-067d-48eab61fb776@oracle.com> All is back to normal, thanks to the valiant Chris' efforts :-) If you happened to pull the 'bad' change (or pull from a branch which pulled the bad change) you might need to 'force' the `hg update' (as the update is not linear) when you decide to pull/update again. Maurizio On 15/10/2019 06:37, Srikanth wrote: > Till the following is resolved by the maintainers, it may be prudent > to hold off any pushes and pull wrt amber/amber. > > Thanks > Srikanth > > > On 15/10/19 11:04 AM, Srikanth wrote: >> Folks, >> >> I have sent a note to the maintainers to address the badness caused >> by the misdirected push that resulted in >> http://hg.openjdk.java.net/amber/amber/rev/2d9a265926ac >> >> Hopefully sanity will be restored soon. >> >> My apologies. Appreciate your patience. >> Srikanth > From srikanth.adayapalam at oracle.com Tue Oct 15 13:00:08 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Tue, 15 Oct 2019 13:00:08 +0000 Subject: hg: amber/amber: [local-methods] Initial implementation brought forward from Maurizio's earlier work plus a few defect fixes Message-ID: <201910151300.x9FD08ZT028823@aojmv0008.oracle.com> Changeset: a9b56e28abf9 Author: sadayapalam Date: 2019-10-15 18:29 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/a9b56e28abf9 [local-methods] Initial implementation brought forward from Maurizio's earlier work plus a few defect fixes ! 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/LambdaToMethod.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.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/main/JavaCompiler.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.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! test/langtools/tools/javac/diags/examples.not-yet.txt From chris.hegarty at oracle.com Tue Oct 15 14:02:49 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Tue, 15 Oct 2019 14:02:49 +0000 Subject: hg: amber/amber: Fix permission check in j.l.r.ObjectMethods. Message-ID: <201910151402.x9FE2nJe008160@aojmv0008.oracle.com> Changeset: 64e8965edd76 Author: chegar Date: 2019-10-15 15:02 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/64e8965edd76 Fix permission check in j.l.r.ObjectMethods. ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java From chris.hegarty at oracle.com Tue Oct 15 14:42:11 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Tue, 15 Oct 2019 14:42:11 +0000 Subject: hg: amber/amber: Align serialization implementation with draft proposal .04 Message-ID: <201910151442.x9FEgBlw003412@aojmv0008.oracle.com> Changeset: 798ffaa498fb Author: chegar Date: 2019-10-15 15:41 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/798ffaa498fb Align serialization implementation with draft proposal .04 ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! test/jdk/java/io/Serializable/records/ProhibitedMethods.java + test/jdk/java/io/Serializable/records/ReadResolveTest.java ! test/langtools/tools/javac/records/RecordCompilationTests.java From chris.hegarty at oracle.com Tue Oct 15 14:43:31 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Tue, 15 Oct 2019 14:43:31 +0000 Subject: hg: amber/amber: Remove executable bit from RecordCompilationTests.java Message-ID: <201910151443.x9FEhWm1004499@aojmv0008.oracle.com> Changeset: 8e8b8da559d7 Author: chegar Date: 2019-10-15 15:43 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/8e8b8da559d7 Remove executable bit from RecordCompilationTests.java From vicente.romero at oracle.com Wed Oct 16 02:34:56 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Tue, 15 Oct 2019 22:34:56 -0400 Subject: please dont push to the records-and-sealed repo Message-ID: <30f8f1c6-a767-4afc-3a52-71bacf6270dc@oracle.com> Hi, I'm extracting the record bits from the records-and-sealed types to create an independent repo, please don't push any record related code until the new repo is available, Thanks, Vicente From srikanth.adayapalam at oracle.com Wed Oct 16 06:48:34 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Wed, 16 Oct 2019 06:48:34 +0000 Subject: hg: amber/amber: [local-methods] Javac overeagerly attempts to parse a local method upon seeing the token void Message-ID: <201910160648.x9G6mY7a005068@aojmv0008.oracle.com> Changeset: 43cf41429b19 Author: sadayapalam Date: 2019-10-16 12:18 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/43cf41429b19 [local-methods] Javac overeagerly attempts to parse a local method upon seeing the token void ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java From srikanth.adayapalam at oracle.com Wed Oct 16 09:25:21 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Wed, 16 Oct 2019 09:25:21 +0000 Subject: hg: amber/amber: [local-methods] Javac parser attempts to parse beyond EOF and runs out of memory Message-ID: <201910160925.x9G9PMqo003951@aojmv0008.oracle.com> Changeset: 0a07c39a8c6d Author: sadayapalam Date: 2019-10-16 14:54 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/0a07c39a8c6d [local-methods] Javac parser attempts to parse beyond EOF and runs out of memory ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java From vicente.romero at oracle.com Wed Oct 16 21:03:33 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Wed, 16 Oct 2019 21:03:33 +0000 Subject: hg: amber/amber: 2 new changesets Message-ID: <201910162103.x9GL3XmG021424@aojmv0008.oracle.com> Changeset: 42f09686678d Author: vromero Date: 2019-10-16 17:00 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/42f09686678d bulk push records branch Changeset: e7a60c0654d6 Author: vromero Date: 2019-10-16 17:02 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/e7a60c0654d6 records implementation ! make/hotspot/symbols/symbols-unix ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/memory/heapInspection.hpp ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp + src/hotspot/share/oops/recordComponent.cpp + src/hotspot/share/oops/recordComponent.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp ! src/hotspot/share/prims/jvmtiClassFileReconstituter.hpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java ! src/java.base/share/classes/java/lang/Class.java + src/java.base/share/classes/java/lang/Record.java ! src/java.base/share/classes/java/lang/annotation/ElementType.java + src/java.base/share/classes/java/lang/reflect/RecordComponent.java + src/java.base/share/classes/java/lang/runtime/ObjectMethods.java ! src/java.base/share/classes/module-info.java ! src/java.base/share/classes/sun/reflect/annotation/TypeAnnotation.java ! src/java.base/share/native/libjava/Class.c ! src/java.compiler/share/classes/javax/annotation/processing/RoundEnvironment.java ! src/java.compiler/share/classes/javax/lang/model/SourceVersion.java ! src/java.compiler/share/classes/javax/lang/model/element/Element.java ! src/java.compiler/share/classes/javax/lang/model/element/ElementKind.java ! src/java.compiler/share/classes/javax/lang/model/element/ElementVisitor.java + src/java.compiler/share/classes/javax/lang/model/element/RecordComponentElement.java ! src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java ! src/java.compiler/share/classes/javax/lang/model/element/package-info.java + src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor8.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementFilter.java + src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor7.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor8.java + src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner6.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner7.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner8.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java ! src/java.compiler/share/classes/javax/lang/model/util/Elements.java + src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor7.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor8.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java + src/jdk.compiler/share/classes/com/sun/source/doctree/AccessorTree.java ! src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java ! src/jdk.compiler/share/classes/com/sun/source/doctree/DocTreeVisitor.java ! src/jdk.compiler/share/classes/com/sun/source/util/DocTreeFactory.java ! src/jdk.compiler/share/classes/com/sun/source/util/DocTreeScanner.java ! src/jdk.compiler/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTrees.java + src/jdk.compiler/share/classes/com/sun/tools/javac/code/Accessors.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Kinds.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Preview.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/SymbolMetadata.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/AttrContext.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Enter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.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/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/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/PoolConstant.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.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/processing/JavacProcessingEnvironment.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocPretty.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocTreeMaker.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Dependencies.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PubapiVisitor.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Contents.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ClassWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/CommentUtils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/PackageSummaryWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Resources.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ClassBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PackageSummaryBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/SerializedFormBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties + src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/AccessorTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/ParamTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassUseMapper.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/CommentHelper.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/TypeElementCatalog.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ElementsTable.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/JavadocMemberEnter.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/Record_attribute.java ! src/jdk.jdeps/share/classes/com/sun/tools/javap/AttributeWriter.java ! src/jdk.jshell/share/classes/jdk/jshell/CompletenessAnalyzer.java ! src/jdk.jshell/share/classes/jdk/jshell/ReplParser.java + test/hotspot/jtreg/runtime/records/recordAttribute.jcod + test/hotspot/jtreg/runtime/records/recordAttributeTest.java + test/hotspot/jtreg/runtime/records/recordReflectionTest.java + test/jdk/java/io/Serializable/records/AbsentStreamValuesTest.java + test/jdk/java/io/Serializable/records/BadValues.java + test/jdk/java/io/Serializable/records/BasicRecordSer.java + test/jdk/java/io/Serializable/records/ConstructorAccessTest.java + test/jdk/java/io/Serializable/records/ConstructorPermissionTest.java + test/jdk/java/io/Serializable/records/CycleTest.java + test/jdk/java/io/Serializable/records/ProhibitedMethods.java + test/jdk/java/io/Serializable/records/ReadResolveTest.java + test/jdk/java/io/Serializable/records/RecordClassTest.java + test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java + test/jdk/java/io/Serializable/records/StreamRefTest.java + test/jdk/java/io/Serializable/records/ThrowingConstructorTest.java + test/jdk/java/io/Serializable/records/WriteReplaceTest.java + test/jdk/java/io/Serializable/records/empty_security.policy + test/jdk/java/io/Serializable/records/migration/AbstractTest.java + test/jdk/java/io/Serializable/records/migration/AssignableFrom.java + test/jdk/java/io/Serializable/records/migration/AssignableFromTest.java + test/jdk/java/io/Serializable/records/migration/DefaultValues.java + test/jdk/java/io/Serializable/records/migration/DefaultValuesTest.java + test/jdk/java/io/Serializable/records/migration/Point.java + test/jdk/java/io/Serializable/records/migration/SuperStreamFields.java + test/jdk/java/io/Serializable/records/migration/SuperStreamFieldsTest.java + test/jdk/java/io/Serializable/records/migration/plain/AssignableFromImpl.java + test/jdk/java/io/Serializable/records/migration/plain/DefaultValuesImpl.java + test/jdk/java/io/Serializable/records/migration/plain/PointImpl.java + test/jdk/java/io/Serializable/records/migration/plain/SuperStreamFieldsImpl.java + test/jdk/java/io/Serializable/records/migration/record/AssignableFromImpl.java + test/jdk/java/io/Serializable/records/migration/record/DefaultValuesImpl.java + test/jdk/java/io/Serializable/records/migration/record/PointImpl.java + test/jdk/java/io/Serializable/records/migration/record/SuperStreamFieldsImpl.java ! test/langtools/jdk/javadoc/doclet/testNewLanguageFeatures/TestNewLanguageFeatures.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/TestRecordTypes.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/BinaryNode.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Coords.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Holder.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Node.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Point.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/SerializablePoint.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/SerializableProxy.java + test/langtools/jdk/javadoc/doclet/testRecordTypes/jdk11/element-list ! test/langtools/jdk/javadoc/doclet/testTaglets/TestTaglets.out ! test/langtools/jdk/javadoc/lib/javadoc/tester/JavadocTester.java ! test/langtools/jdk/javadoc/tool/api/basic/GetTask_DiagListenerTest.java ! test/langtools/jdk/javadoc/tool/modules/ModuleTestBase.java ! test/langtools/jdk/javadoc/tool/reporter_generates_warnings/pkg/MyDoclet.java ! test/langtools/jdk/jshell/CompletenessTest.java ! test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java + test/langtools/lib/combo/tools/javac/combo/CompilationTestCase.java ! test/langtools/lib/combo/tools/javac/combo/Diagnostics.java ! test/langtools/lib/combo/tools/javac/combo/JavacTemplateTestBase.java ! test/langtools/lib/combo/tools/javac/combo/Template.java ! test/langtools/lib/combo/tools/javac/combo/TemplateTest.java ! test/langtools/tools/javac/6402516/CheckLocalElements.java ! test/langtools/tools/javac/AnonymousClass/AnonymousClassFlags.java ! test/langtools/tools/javac/MethodParameters/AttributeVisitor.java ! test/langtools/tools/javac/annotations/repeatingAnnotations/NoTargetOnContainer.java ! test/langtools/tools/javac/annotations/repeatingAnnotations/NoTargetOnContainer2.java ! test/langtools/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java ! test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotatedImport.out ! test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotatedPackage1.out ! test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotatedPackage2.out ! test/langtools/tools/javac/diags/examples.not-yet.txt ! test/langtools/tools/javac/diags/examples/Expected3.java ! test/langtools/tools/javac/diags/examples/IllegalStartOfStmt.java + test/langtools/tools/javac/doctree/AccessorsTest.java ! test/langtools/tools/javac/doctree/DocCommentTester.java ! test/langtools/tools/javac/enum/EnumMembersOrder.out ! test/langtools/tools/javac/launcher/SourceLauncherTest.java ! test/langtools/tools/javac/lib/DPrinter.java ! test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java ! test/langtools/tools/javac/modules/AnnotationProcessing.java ! test/langtools/tools/javac/parser/JavacParserTest.java ! test/langtools/tools/javac/parser/SingleCommaAnnotationValueFail.out ! test/langtools/tools/javac/parser/extend/TrialParser.java ! test/langtools/tools/javac/processing/model/TestSourceVersion.java ! test/langtools/tools/javac/processing/model/TestSymtabItems.java ! test/langtools/tools/javac/processing/model/element/TestElementKindPredicates.java + test/langtools/tools/javac/processing/model/element/TestRecord.java + test/langtools/tools/javac/processing/model/element/TestRecordDesugar.java + test/langtools/tools/javac/records/BadRecord.java + test/langtools/tools/javac/records/BadRecord.out + test/langtools/tools/javac/records/MapAccessorToComponent.java + test/langtools/tools/javac/records/OriginTest.java + test/langtools/tools/javac/records/RecordCompilationTests.java + test/langtools/tools/javac/records/RecordMemberTests.java + test/langtools/tools/javac/records/RecordReflectionTest.java + test/langtools/tools/javac/records/VarargsRecordsTest.java + test/langtools/tools/javac/records/annotations/AnnoProcessorOnRecordsTest.java + test/langtools/tools/javac/records/annotations/CheckingTypeAnnotationsOnRecords.java + test/langtools/tools/javac/records/annotations/JavaxLangModelForRecords.java + test/langtools/tools/javac/records/mandated_members/CheckRecordMembers.java + test/langtools/tools/javac/records/mandated_members/read_resolve_method/CheckReadResolveMethodTest.java + test/langtools/tools/javac/records/writeread/Record.java + test/langtools/tools/javac/records/writeread/WriteReadTest.java ! test/langtools/tools/lib/toolbox/ToolBox.java ! test/lib/jdk/test/lib/ByteCodeLoader.java From vicente.romero at oracle.com Wed Oct 16 21:08:11 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Wed, 16 Oct 2019 17:08:11 -0400 Subject: please dont push to the records-and-sealed repo In-Reply-To: <30f8f1c6-a767-4afc-3a52-71bacf6270dc@oracle.com> References: <30f8f1c6-a767-4afc-3a52-71bacf6270dc@oracle.com> Message-ID: I have created a new branch named: `records` that should from now on contain all the code for records. The former records-and-sealed will still be open for a while for reference etc but please push any new code for records into the new branch, Thanks, Vicente On 10/15/19 10:34 PM, Vicente Romero wrote: > Hi, > > I'm extracting the record bits from the records-and-sealed types to > create an independent repo, please don't push any record related code > until the new repo is available, > > Thanks, > Vicente From vicente.romero at oracle.com Wed Oct 16 22:04:56 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Wed, 16 Oct 2019 18:04:56 -0400 Subject: please dont push to the records-and-sealed repo In-Reply-To: References: <30f8f1c6-a767-4afc-3a52-71bacf6270dc@oracle.com> Message-ID: I will put the old records-and-sealed branch to depend on the new records branch, please don't push just yet till I have done that merge, Thanks, Vicente On 10/16/19 5:08 PM, Vicente Romero wrote: > I have created a new branch named: `records` that should from now on > contain all the code for records. The former records-and-sealed will > still be open for a while for reference etc but please push any new > code for records into the new branch, > > Thanks, > Vicente > > On 10/15/19 10:34 PM, Vicente Romero wrote: >> Hi, >> >> I'm extracting the record bits from the records-and-sealed types to >> create an independent repo, please don't push any record related code >> until the new repo is available, >> >> Thanks, >> Vicente > From vicente.romero at oracle.com Wed Oct 16 22:36:26 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Wed, 16 Oct 2019 22:36:26 +0000 Subject: hg: amber/amber: manual merge with records branch Message-ID: <201910162236.x9GMaQJn016588@aojmv0008.oracle.com> Changeset: 24e7f63093ac Author: vromero Date: 2019-10-16 18:36 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/24e7f63093ac manual merge with records branch ! deps.txt ! make/hotspot/symbols/symbols-unix ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/memory/allocation.hpp ! src/hotspot/share/memory/heapInspection.hpp ! src/hotspot/share/memory/metaspaceShared.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp ! src/hotspot/share/oops/recordComponent.cpp ! src/hotspot/share/oops/recordComponent.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp ! src/hotspot/share/prims/jvmtiClassFileReconstituter.hpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/Record.java ! src/java.base/share/classes/java/lang/annotation/ElementType.java ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java ! src/java.base/share/classes/module-info.java ! src/java.base/share/native/libjava/Class.c ! src/java.compiler/share/classes/javax/lang/model/SourceVersion.java ! src/java.compiler/share/classes/javax/lang/model/element/Element.java ! src/java.compiler/share/classes/javax/lang/model/element/ElementKind.java ! src/java.compiler/share/classes/javax/lang/model/element/RecordComponentElement.java ! src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementFilter.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/Elements.java ! src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java ! src/jdk.compiler/share/classes/com/sun/source/doctree/DocTreeVisitor.java ! src/jdk.compiler/share/classes/com/sun/source/util/DocTreeFactory.java ! src/jdk.compiler/share/classes/com/sun/source/util/DocTreeScanner.java ! src/jdk.compiler/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTrees.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Accessors.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Preview.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.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/TypeAnnotations.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/AttrContext.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Enter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.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/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/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.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/processing/JavacProcessingEnvironment.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocPretty.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocTreeMaker.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Dependencies.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/ClassWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/CommentUtils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ClassBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PackageSummaryBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/AccessorTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/ParamTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/CommentHelper.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/TypeElementCatalog.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ElementsTable.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/JavadocMemberEnter.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/ClassWriter.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/Record_attribute.java ! src/jdk.jdeps/share/classes/com/sun/tools/javap/AttributeWriter.java ! src/jdk.jshell/share/classes/jdk/jshell/CompletenessAnalyzer.java ! src/jdk.jshell/share/classes/jdk/jshell/ReplParser.java ! test/hotspot/jtreg/runtime/records/recordAttribute.jcod ! test/hotspot/jtreg/runtime/records/recordAttributeTest.java ! test/hotspot/jtreg/runtime/records/recordReflectionTest.java ! test/jdk/java/io/Serializable/records/ProhibitedMethods.java ! test/jdk/java/io/Serializable/records/ReadResolveTest.java ! test/langtools/jdk/javadoc/doclet/testRecordTypes/TestRecordTypes.java ! test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Coords.java ! test/langtools/jdk/javadoc/doclet/testRecordTypes/examples/Point.java ! test/langtools/jdk/jshell/CompletenessTest.java ! test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java ! test/langtools/lib/combo/tools/javac/combo/CompilationTestCase.java ! test/langtools/lib/combo/tools/javac/combo/JavacTemplateTestBase.java ! test/langtools/lib/combo/tools/javac/combo/Template.java ! test/langtools/tools/javac/MethodParameters/AttributeVisitor.java ! test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotatedImport.out ! test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotatedPackage1.out ! test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotatedPackage2.out ! test/langtools/tools/javac/diags/examples.not-yet.txt ! test/langtools/tools/javac/doctree/AccessorsTest.java ! test/langtools/tools/javac/doctree/DocCommentTester.java ! test/langtools/tools/javac/enum/EnumMembersOrder.out ! test/langtools/tools/javac/lib/DPrinter.java ! test/langtools/tools/javac/parser/JavacParserTest.java ! test/langtools/tools/javac/parser/SingleCommaAnnotationValueFail.out ! test/langtools/tools/javac/parser/extend/TrialParser.java ! test/langtools/tools/javac/processing/model/TestSourceVersion.java ! test/langtools/tools/javac/processing/model/element/TestRecord.java ! test/langtools/tools/javac/processing/model/element/TestRecordDesugar.java ! test/langtools/tools/javac/records/BadRecord.java ! test/langtools/tools/javac/records/BadRecord.out ! test/langtools/tools/javac/records/OriginTest.java ! test/langtools/tools/javac/records/RecordCompilationTests.java ! test/langtools/tools/javac/records/RecordMemberTests.java ! test/langtools/tools/javac/records/RecordReflectionTest.java ! test/langtools/tools/javac/records/VarargsRecordsTest.java ! test/langtools/tools/javac/records/annotations/AnnoProcessorOnRecordsTest.java ! test/langtools/tools/javac/records/annotations/CheckingTypeAnnotationsOnRecords.java ! test/langtools/tools/javac/records/annotations/JavaxLangModelForRecords.java ! test/langtools/tools/javac/records/mandated_members/CheckRecordMembers.java ! test/langtools/tools/javac/records/writeread/Record.java ! test/langtools/tools/javac/records/writeread/WriteReadTest.java From vicente.romero at oracle.com Wed Oct 16 22:37:17 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Wed, 16 Oct 2019 18:37:17 -0400 Subject: please dont push to the records-and-sealed repo In-Reply-To: References: <30f8f1c6-a767-4afc-3a52-71bacf6270dc@oracle.com> Message-ID: <7241a90e-6679-7614-7600-ffd5a8bbcab5@oracle.com> done, now any new sealed code should go to: records-and-sealed, Thanks, Vicente On 10/16/19 6:04 PM, Vicente Romero wrote: > I will put the old records-and-sealed branch to depend on the new > records branch, please don't push just yet till I have done that merge, > > Thanks, > Vicente > > > On 10/16/19 5:08 PM, Vicente Romero wrote: >> I have created a new branch named: `records` that should from now on >> contain all the code for records. The former records-and-sealed will >> still be open for a while for reference etc but please push any new >> code for records into the new branch, >> >> Thanks, >> Vicente >> >> On 10/15/19 10:34 PM, Vicente Romero wrote: >>> Hi, >>> >>> I'm extracting the record bits from the records-and-sealed types to >>> create an independent repo, please don't push any record related >>> code until the new repo is available, >>> >>> Thanks, >>> Vicente >> > From vicente.romero at oracle.com Thu Oct 17 01:05:48 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 17 Oct 2019 01:05:48 +0000 Subject: hg: amber/amber: fixing sealed test Message-ID: <201910170105.x9H15mO1015817@aojmv0008.oracle.com> Changeset: 6c59e0facf56 Author: vromero Date: 2019-10-16 21:05 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/6c59e0facf56 fixing sealed test ! test/langtools/tools/javac/processing/model/element/TestSealed.java From srikanth.adayapalam at oracle.com Thu Oct 17 05:37:00 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Thu, 17 Oct 2019 05:37:00 +0000 Subject: hg: amber/amber: 8232368: [local-methods] Fix bogus unreachable statement error (due to bad patch application) Message-ID: <201910170537.x9H5b0S9016001@aojmv0008.oracle.com> Changeset: ace7fad5a6dc Author: sadayapalam Date: 2019-10-17 11:06 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/ace7fad5a6dc 8232368: [local-methods] Fix bogus unreachable statement error (due to bad patch application) ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java + test/langtools/tools/javac/localmethods/BogusUnreachableMessage.java From jonathan.gibbons at oracle.com Thu Oct 17 18:26:11 2019 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Thu, 17 Oct 2019 18:26:11 +0000 Subject: hg: amber/amber: remove dead code; update tests Message-ID: <201910171826.x9HIQCah026452@aojmv0008.oracle.com> Changeset: 66452d80d350 Author: jjg Date: 2019-10-17 11:23 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/66452d80d350 remove dead code; update tests ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/AccessorTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! test/langtools/jdk/javadoc/doclet/testTaglets/TestTaglets.out From maurizio.cimadamore at oracle.com Thu Oct 17 18:31:09 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Thu, 17 Oct 2019 18:31:09 +0000 Subject: hg: amber/amber: Automatic merge with records Message-ID: <201910171831.x9HIV9IF029166@aojmv0008.oracle.com> Changeset: 5e804498315e Author: mcimadamore Date: 2019-10-17 18:30 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/5e804498315e Automatic merge with records ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets.properties - src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/AccessorTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java From jonathan.gibbons at oracle.com Thu Oct 17 18:50:31 2019 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Thu, 17 Oct 2019 18:50:31 +0000 Subject: hg: amber/amber: remove more dead code, for DocTrees for unused taglets Message-ID: <201910171850.x9HIoV7r010897@aojmv0008.oracle.com> Changeset: 60b7c8024c5f Author: jjg Date: 2019-10-17 11:47 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/60b7c8024c5f remove more dead code, for DocTrees for unused taglets - src/jdk.compiler/share/classes/com/sun/source/doctree/AccessorTree.java ! src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java ! src/jdk.compiler/share/classes/com/sun/source/util/DocTreeFactory.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocTreeMaker.java From vicente.romero at oracle.com Thu Oct 17 18:54:27 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 17 Oct 2019 18:54:27 +0000 Subject: hg: amber/amber: cleaning record code Message-ID: <201910171854.x9HIsRA7014499@aojmv0008.oracle.com> Changeset: 3732be3c579d Author: vromero Date: 2019-10-17 14:53 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/3732be3c579d cleaning record code ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java ! src/java.compiler/share/classes/javax/lang/model/SourceVersion.java ! src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java ! src/java.compiler/share/classes/javax/lang/model/util/Elements.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.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/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/PoolConstant.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.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 ! test/langtools/tools/javac/records/RecordReflectionTest.java From maurizio.cimadamore at oracle.com Thu Oct 17 18:56:08 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Thu, 17 Oct 2019 18:56:08 +0000 Subject: hg: amber/amber: Automatic merge with records Message-ID: <201910171856.x9HIu8nm015789@aojmv0008.oracle.com> Changeset: e62676fdb665 Author: mcimadamore Date: 2019-10-17 18:55 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/e62676fdb665 Automatic merge with records - src/jdk.compiler/share/classes/com/sun/source/doctree/AccessorTree.java ! src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java ! src/jdk.compiler/share/classes/com/sun/source/util/DocTreeFactory.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocTreeMaker.java From vicente.romero at oracle.com Thu Oct 17 19:43:07 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Thu, 17 Oct 2019 15:43:07 -0400 Subject: RFR: JEP 359-Records: javadoc code Message-ID: <914ab35b-ff07-1b9e-472c-9a04f7bc49dc@oracle.com> Hi, Please review the javadoc code for JEP 359 (Records), this webrev contains only the javadoc code as we have decided to split the new code in clusters to make the review process easier. Thanks in advance for the feedback, Vicente PS, Jon is the author of this code please keep him in the loop http://cr.openjdk.java.net/~vromero/records.review/javadoc/webrev.00/ From jonathan.gibbons at oracle.com Thu Oct 17 19:45:02 2019 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Thu, 17 Oct 2019 12:45:02 -0700 Subject: RFR: JEP 359-Records: javadoc code In-Reply-To: <914ab35b-ff07-1b9e-472c-9a04f7bc49dc@oracle.com> References: <914ab35b-ff07-1b9e-472c-9a04f7bc49dc@oracle.com> Message-ID: <4f0ee8fc-22bc-7ff9-7af6-88e9e436b583@oracle.com> cc: javadoc-dev at openjdk.java.net --Jon On 10/17/2019 12:43 PM, Vicente Romero wrote: > Hi, > > Please review the javadoc code for JEP 359 (Records), this webrev > contains only the javadoc code as we have decided to split the new > code in clusters to make the review process easier. > > Thanks in advance for the feedback, > Vicente > > PS, Jon is the author of this code please keep him in the loop > > http://cr.openjdk.java.net/~vromero/records.review/javadoc/webrev.00/ From jonathan.gibbons at oracle.com Thu Oct 17 20:45:09 2019 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Thu, 17 Oct 2019 20:45:09 +0000 Subject: hg: amber/amber: remove more remnants of AccessorTree Message-ID: <201910172045.x9HKjATg012725@aojmv0008.oracle.com> Changeset: 5b80d7a64254 Author: jjg Date: 2019-10-17 13:42 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/5b80d7a64254 remove more remnants of AccessorTree ! src/jdk.compiler/share/classes/com/sun/source/doctree/DocTreeVisitor.java ! src/jdk.compiler/share/classes/com/sun/source/util/DocTreeFactory.java ! src/jdk.compiler/share/classes/com/sun/source/util/DocTreeScanner.java ! src/jdk.compiler/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocPretty.java ! test/langtools/tools/javac/doctree/DocCommentTester.java From harold.seigel at oracle.com Fri Oct 18 11:49:49 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Fri, 18 Oct 2019 11:49:49 +0000 Subject: hg: amber/amber: Summary: Add support for class redefinition of classes with Record attributes Message-ID: <201910181149.x9IBnnhg009901@aojmv0008.oracle.com> Changeset: 4cf6af46e13b Author: hseigel Date: 2019-10-18 11:49 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/4cf6af46e13b Summary: Add support for class redefinition of classes with Record attributes ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/logging/logTag.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/recordComponent.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmti.xml ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.hpp ! src/java.instrument/share/native/libinstrument/JavaExceptions.c + test/hotspot/jtreg/runtime/records/RedefineRecord.java + test/jdk/java/lang/instrument/RedefineRecordAttr/Host/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/Host/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostA/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostA/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostAB/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostAB/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostABC/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostABC/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostABCD/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostABD/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostAC/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostACB/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostB/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostBA/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostBAC/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostBCA/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostCAB/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/HostCBA/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttr/TestRecordAttr.java + test/jdk/java/lang/instrument/RedefineRecordAttrGenericSig/Host/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttrGenericSig/Host/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttrGenericSig/HostA/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttrGenericSig/HostA/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttrGenericSig/HostB/redef/Host.java + test/jdk/java/lang/instrument/RedefineRecordAttrGenericSig/TestRecordAttrGenericSig.java From harold.seigel at oracle.com Fri Oct 18 12:28:13 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Fri, 18 Oct 2019 12:28:13 +0000 Subject: hg: amber/amber: Summary: Add --enable-preview to tests that redefine Records Message-ID: <201910181228.x9ICSEEM001464@aojmv0008.oracle.com> Changeset: 4cbc18406d31 Author: hseigel Date: 2019-10-18 12:27 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/4cbc18406d31 Summary: Add --enable-preview to tests that redefine Records ! test/hotspot/jtreg/runtime/records/RedefineRecord.java ! test/jdk/java/lang/instrument/RedefineRecordAttr/TestRecordAttr.java ! test/jdk/java/lang/instrument/RedefineRecordAttrGenericSig/TestRecordAttrGenericSig.java From maurizio.cimadamore at oracle.com Fri Oct 18 12:28:45 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Fri, 18 Oct 2019 13:28:45 +0100 Subject: RFR: JEP 359-Records: javadoc code In-Reply-To: <4f0ee8fc-22bc-7ff9-7af6-88e9e436b583@oracle.com> References: <914ab35b-ff07-1b9e-472c-9a04f7bc49dc@oracle.com> <4f0ee8fc-22bc-7ff9-7af6-88e9e436b583@oracle.com> Message-ID: <434628a6-90c9-f77e-3231-e68082f8b791@oracle.com> I went through the javadoc changes and, although I'm no javadoc expert, they seem clean enough, to the point that I could follow the logic quite easily. One high-level gripe which is pointing at a failure of the j.l.model API is the lack of a way to get to the canonical constructor directly; we have this issue both in core reflection and source reflection, and I think we should address that, as both serialization and javadoc has to DYI around that. Maurizio On 17/10/2019 20:45, Jonathan Gibbons wrote: > cc: javadoc-dev at openjdk.java.net > > --Jon > > > On 10/17/2019 12:43 PM, Vicente Romero wrote: >> Hi, >> >> Please review the javadoc code for JEP 359 (Records), this webrev >> contains only the javadoc code as we have decided to split the new >> code in clusters to make the review process easier. >> >> Thanks in advance for the feedback, >> Vicente >> >> PS, Jon is the author of this code please keep him in the loop >> >> http://cr.openjdk.java.net/~vromero/records.review/javadoc/webrev.00/ > From harold.seigel at oracle.com Fri Oct 18 17:03:17 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Fri, 18 Oct 2019 17:03:17 +0000 Subject: hg: amber/amber: Summary: require --enable-preview and proper minor class file version for classes that are Records. Message-ID: <201910181703.x9IH3Hpq024743@aojmv0008.oracle.com> Changeset: dde7ecc58c36 Author: hseigel Date: 2019-10-18 17:02 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/dde7ecc58c36 Summary: require --enable-preview and proper minor class file version for classes that are Records. ! src/hotspot/share/classfile/classFileParser.cpp From vicente.romero at oracle.com Fri Oct 18 17:38:11 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 18 Oct 2019 17:38:11 +0000 Subject: hg: amber/amber: fixing several failing regression tests, adding diagnostic examples Message-ID: <201910181738.x9IHcBf0015601@aojmv0008.oracle.com> Changeset: 4d3851fa6bfd Author: vromero Date: 2019-10-18 13:37 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/4d3851fa6bfd fixing several failing regression tests, adding diagnostic examples ! test/langtools/lib/combo/tools/javac/combo/JavacTemplateTestBase.java + test/langtools/tools/javac/diags/examples/CanonicalConstructorCantHaveReturn.java + test/langtools/tools/javac/diags/examples/CanonicalConstructorMustBePublic.java + test/langtools/tools/javac/diags/examples/IllegalRecordComponentName.java + test/langtools/tools/javac/diags/examples/IllegalRecordMember.java + test/langtools/tools/javac/diags/examples/InvalidSuperTypeRecord.java + test/langtools/tools/javac/diags/examples/MethodCantThrowCheckedException.java + test/langtools/tools/javac/diags/examples/Records.java ! test/langtools/tools/javac/enum/EnumMembersOrder.out ! test/langtools/tools/javac/expswitch/ExpSwitchNestingTest.java ! test/langtools/tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java ! test/langtools/tools/javac/lib/DPrinter.java From vicente.romero at oracle.com Fri Oct 18 18:44:34 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Fri, 18 Oct 2019 14:44:34 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code Message-ID: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Hi, Please review the hotspot runtime and serviceability code for JEP 359 (Records). Thanks in advance for the feedback, Vicente PS, Thanks to Harold for the development [1] http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ From chris.hegarty at oracle.com Fri Oct 18 19:29:15 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Fri, 18 Oct 2019 19:29:15 +0000 Subject: hg: amber/amber: records: Enable preview features in serializable record tests Message-ID: <201910181929.x9IJTFio011674@aojmv0008.oracle.com> Changeset: 057cf61f4072 Author: chegar Date: 2019-10-18 20:28 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/057cf61f4072 records: Enable preview features in serializable record tests ! test/jdk/java/io/Serializable/records/AbsentStreamValuesTest.java ! test/jdk/java/io/Serializable/records/BasicRecordSer.java ! test/jdk/java/io/Serializable/records/ConstructorAccessTest.java ! test/jdk/java/io/Serializable/records/ConstructorPermissionTest.java ! test/jdk/java/io/Serializable/records/CycleTest.java ! test/jdk/java/io/Serializable/records/ProhibitedMethods.java ! test/jdk/java/io/Serializable/records/ReadResolveTest.java ! test/jdk/java/io/Serializable/records/RecordClassTest.java ! test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java ! test/jdk/java/io/Serializable/records/StreamRefTest.java ! test/jdk/java/io/Serializable/records/ThrowingConstructorTest.java ! test/jdk/java/io/Serializable/records/WriteReplaceTest.java ! test/jdk/java/io/Serializable/records/migration/AbstractTest.java ! test/jdk/java/io/Serializable/records/migration/AssignableFromTest.java ! test/jdk/java/io/Serializable/records/migration/DefaultValuesTest.java ! test/jdk/java/io/Serializable/records/migration/SuperStreamFieldsTest.java From jonathan.gibbons at oracle.com Sat Oct 19 01:16:35 2019 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Fri, 18 Oct 2019 18:16:35 -0700 Subject: RFR: JEP 359-Records: javadoc code In-Reply-To: <434628a6-90c9-f77e-3231-e68082f8b791@oracle.com> References: <914ab35b-ff07-1b9e-472c-9a04f7bc49dc@oracle.com> <4f0ee8fc-22bc-7ff9-7af6-88e9e436b583@oracle.com> <434628a6-90c9-f77e-3231-e68082f8b791@oracle.com> Message-ID: <4161060b-cdca-b290-8697-2852481fdb5f@oracle.com> Generally, for historical reasons I accept, the jx.l.m model API has not been very friendly with helpful utility methods, going for a more minimalist approach, although I sense that is changing, maybe in part because of default methods. With respect to accessing the canonical constructor, I would like to see jx.l.m provide utility methods either for all the derived features of a record (canonical constructor, fields, accessors) or none, depending on the level of convenience desired.? Having a mix of some but not others is just confusing.?? Access to `equals` and `hashCode` can/should be provided by more general methods that need not be specific to records. -- Jon On 10/18/19 5:28 AM, Maurizio Cimadamore wrote: > I went through the javadoc changes and, although I'm no javadoc > expert, they seem clean enough, to the point that I could follow the > logic quite easily. > > One high-level gripe which is pointing at a failure of the j.l.model > API is the lack of a way to get to the canonical constructor directly; > we have this issue both in core reflection and source reflection, and > I think we should address that, as both serialization and javadoc has > to DYI around that. > > Maurizio > > On 17/10/2019 20:45, Jonathan Gibbons wrote: >> cc: javadoc-dev at openjdk.java.net >> >> --Jon >> >> >> On 10/17/2019 12:43 PM, Vicente Romero wrote: >>> Hi, >>> >>> Please review the javadoc code for JEP 359 (Records), this webrev >>> contains only the javadoc code as we have decided to split the new >>> code in clusters to make the review process easier. >>> >>> Thanks in advance for the feedback, >>> Vicente >>> >>> PS, Jon is the author of this code please keep him in the loop >>> >>> http://cr.openjdk.java.net/~vromero/records.review/javadoc/webrev.00/ >> From forax at univ-mlv.fr Sat Oct 19 08:11:11 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Sat, 19 Oct 2019 10:11:11 +0200 (CEST) Subject: state of the branch sealed-and-record ? Message-ID: <1554366256.2775451.1571472671151.JavaMail.zimbra@u-pem.fr> Hi all, the branch sealed-and-record currently doesn't compile. https://travis-ci.org/forax/java-next/jobs/599808071#L1819 what is the state of this branch, should it compile or is it a branch that will be removed soon ? R?mi From brian.goetz at oracle.com Sat Oct 19 12:42:08 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Sat, 19 Oct 2019 08:42:08 -0400 Subject: state of the branch sealed-and-record ? In-Reply-To: <1554366256.2775451.1571472671151.JavaMail.zimbra@u-pem.fr> References: <1554366256.2775451.1571472671151.JavaMail.zimbra@u-pem.fr> Message-ID: <6ADE5123-FD86-4592-8E8F-E1ACF417FB33@oracle.com> Vicente is currently refactoring so we have a reviewable patch set for Just records, stay tuned. Sent from my MacBook Wheel > On Oct 19, 2019, at 4:11 AM, Remi Forax wrote: > > ?Hi all, > the branch sealed-and-record currently doesn't compile. > > https://travis-ci.org/forax/java-next/jobs/599808071#L1819 > > what is the state of this branch, should it compile or is it a branch that will be removed soon ? > > R?mi From vicente.romero at oracle.com Sun Oct 20 14:08:52 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Sun, 20 Oct 2019 10:08:52 -0400 Subject: state of the branch sealed-and-record ? In-Reply-To: <1554366256.2775451.1571472671151.JavaMail.zimbra@u-pem.fr> References: <1554366256.2775451.1571472671151.JavaMail.zimbra@u-pem.fr> Message-ID: Hi Remi, A new branch named `records` was created which contains only the records code. The former records-and-sealed branch should contain only the sealed code but as it depends on the record branch, from the user perspective will continue to have the code of both projects. It could happen though that the automatic merge can't figure out what to do at some point an as a result the records-and-sealed branch could be broken we will try to keep it working but it could fall off the cliff from time to time, Thanks, Vicente On 10/19/19 4:11 AM, Remi Forax wrote: > Hi all, > the branch sealed-and-record currently doesn't compile. > > https://travis-ci.org/forax/java-next/jobs/599808071#L1819 > > what is the state of this branch, should it compile or is it a branch that will be removed soon ? > > R?mi From org.openjdk at io7m.com Sun Oct 20 14:21:06 2019 From: org.openjdk at io7m.com (Mark Raynsford) Date: Sun, 20 Oct 2019 15:21:06 +0100 Subject: state of the branch sealed-and-record ? In-Reply-To: References: <1554366256.2775451.1571472671151.JavaMail.zimbra@u-pem.fr> Message-ID: <20191020152106.3d362994@almond.int.arc7.info> On 2019-10-20T10:08:52 -0400 Vicente Romero wrote: > Hi Remi, > > A new branch named `records` was created which contains only the records > code. The former records-and-sealed branch should contain only the > sealed code but as it depends on the record branch, from the user > perspective will continue to have the code of both projects. It could > happen though that the automatic merge can't figure out what to do at > some point an as a result the records-and-sealed branch could be broken > we will try to keep it working but it could fall off the cliff from time > to time, Hello! I'm about to try doing an experimental rewrite of a small documentation language compiler I have using both sealed types and records. To clarify: Which branch should I be using? -- Mark Raynsford | http://www.io7m.com From brian.goetz at oracle.com Sun Oct 20 14:25:55 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Sun, 20 Oct 2019 10:25:55 -0400 Subject: state of the branch sealed-and-record ? In-Reply-To: <20191020152106.3d362994@almond.int.arc7.info> References: <1554366256.2775451.1571472671151.JavaMail.zimbra@u-pem.fr> <20191020152106.3d362994@almond.int.arc7.info> Message-ID: <40186A92-C738-486E-9104-5664AB1F2243@oracle.com> There will temporarily not be a branch that merges these; once we finish staging records for review, we?ll re-parent a sealed type branch on it. Or, you can use an older revision on the rcords-and-sealed branch in the meantime. > On Oct 20, 2019, at 10:21 AM, Mark Raynsford wrote: > > On 2019-10-20T10:08:52 -0400 > Vicente Romero wrote: > >> Hi Remi, >> >> A new branch named `records` was created which contains only the records >> code. The former records-and-sealed branch should contain only the >> sealed code but as it depends on the record branch, from the user >> perspective will continue to have the code of both projects. It could >> happen though that the automatic merge can't figure out what to do at >> some point an as a result the records-and-sealed branch could be broken >> we will try to keep it working but it could fall off the cliff from time >> to time, > > Hello! > > I'm about to try doing an experimental rewrite of a small documentation > language compiler I have using both sealed types and records. To > clarify: Which branch should I be using? > > -- > Mark Raynsford | http://www.io7m.com > From org.openjdk at io7m.com Sun Oct 20 14:36:17 2019 From: org.openjdk at io7m.com (Mark Raynsford) Date: Sun, 20 Oct 2019 15:36:17 +0100 Subject: state of the branch sealed-and-record ? In-Reply-To: <40186A92-C738-486E-9104-5664AB1F2243@oracle.com> References: <1554366256.2775451.1571472671151.JavaMail.zimbra@u-pem.fr> <20191020152106.3d362994@almond.int.arc7.info> <40186A92-C738-486E-9104-5664AB1F2243@oracle.com> Message-ID: <20191020153617.02395108@almond.int.arc7.info> On 2019-10-20T10:25:55 -0400 Brian Goetz wrote: > There will temporarily not be a branch that merges these; once we finish staging records for review, we?ll re-parent a sealed type branch on it. Or, you can use an older revision on the rcords-and-sealed branch in the meantime. > Ok, thanks! I'll pause my enthusiasm temporarily. :) -- Mark Raynsford | http://www.io7m.com From vicente.romero at oracle.com Sun Oct 20 15:14:26 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Sun, 20 Oct 2019 15:14:26 +0000 Subject: hg: amber/amber: fixing merge issues Message-ID: <201910201514.x9KFERkY007715@aojmv0008.oracle.com> Changeset: 64a9225f91bf Author: vromero Date: 2019-10-20 11:14 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/64a9225f91bf fixing merge issues ! test/langtools/tools/javac/expswitch/ExpSwitchNestingTest.java ! test/langtools/tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java ! test/langtools/tools/javac/tree/JavacTreeScannerTest.java ! test/langtools/tools/javac/tree/SourceTreeScannerTest.java From vicente.romero at oracle.com Sun Oct 20 15:20:09 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Sun, 20 Oct 2019 11:20:09 -0400 Subject: state of the branch sealed-and-record ? In-Reply-To: <20191020153617.02395108@almond.int.arc7.info> References: <1554366256.2775451.1571472671151.JavaMail.zimbra@u-pem.fr> <20191020152106.3d362994@almond.int.arc7.info> <40186A92-C738-486E-9104-5664AB1F2243@oracle.com> <20191020153617.02395108@almond.int.arc7.info> Message-ID: <6ec18ead-9ec3-0c5c-481c-38a19223b475@oracle.com> Hi Mark, As Brian said you can clone the `records-and-sealed` branch and update to a changeset before we started extracting the bits for the new `records` branch. I would say you can safely update to changeset: changeset:?? 58339:798ffaa498fb branch:????? records-and-sealed user:??????? chegar date:??????? Tue Oct 15 15:41:11 2019 +0100 summary:???? Align serialization implementation with draft proposal .04 you probably wont have all the latest bits but it will be very close to the latest code. Thanks, Vicente On 10/20/19 10:36 AM, Mark Raynsford wrote: > On 2019-10-20T10:25:55 -0400 > Brian Goetz wrote: > >> There will temporarily not be a branch that merges these; once we finish staging records for review, we?ll re-parent a sealed type branch on it. Or, you can use an older revision on the rcords-and-sealed branch in the meantime. >> > Ok, thanks! I'll pause my enthusiasm temporarily. :) > From vicente.romero at oracle.com Sun Oct 20 19:22:31 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Sun, 20 Oct 2019 19:22:31 +0000 Subject: hg: amber/amber: adding preview comments to APIs, enabling preview for records Message-ID: <201910201922.x9KJMVc8007085@aojmv0008.oracle.com> Changeset: eea7ef983baa Author: vromero Date: 2019-10-20 15:22 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/eea7ef983baa adding preview comments to APIs, enabling preview for records ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/Record.java ! src/java.base/share/classes/java/lang/annotation/ElementType.java ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java ! src/java.base/share/classes/sun/reflect/annotation/TypeAnnotation.java ! src/java.compiler/share/classes/javax/lang/model/element/ElementKind.java ! src/java.compiler/share/classes/javax/lang/model/element/ElementVisitor.java ! src/java.compiler/share/classes/javax/lang/model/element/RecordComponentElement.java ! src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementFilter.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java ! src/java.compiler/share/classes/javax/lang/model/util/Elements.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java ! src/jdk.compiler/share/classes/com/sun/source/doctree/DocTree.java ! src/jdk.compiler/share/classes/com/sun/source/util/DocTreeFactory.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Accessors.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! 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/processing/JavacProcessingEnvironment.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PubapiVisitor.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/CommentUtils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ClassBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/ParamTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassUseMapper.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ElementsTable.java ! test/langtools/jdk/javadoc/tool/api/basic/GetTask_DiagListenerTest.java ! test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotatedImport.out ! test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotatedPackage1.out ! test/langtools/tools/javac/annotations/typeAnnotations/failures/AnnotatedPackage2.out ! test/langtools/tools/javac/launcher/SourceLauncherTest.java ! test/langtools/tools/javac/parser/SingleCommaAnnotationValueFail.out ! test/langtools/tools/javac/processing/model/element/TestRecord.java ! test/langtools/tools/javac/records/mandated_members/CheckRecordMembers.java From vicente.romero at oracle.com Sun Oct 20 19:24:23 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Sun, 20 Oct 2019 19:24:23 +0000 Subject: hg: amber/amber: updating api comment Message-ID: <201910201924.x9KJONkI007641@aojmv0008.oracle.com> Changeset: c6eb43a894cc Author: vromero Date: 2019-10-20 15:24 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/c6eb43a894cc updating api comment ! src/java.compiler/share/classes/javax/lang/model/element/ElementKind.java From vicente.romero at oracle.com Mon Oct 21 01:36:41 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Mon, 21 Oct 2019 01:36:41 +0000 Subject: hg: amber/amber: more diags tests Message-ID: <201910210136.x9L1agTV008583@aojmv0008.oracle.com> Changeset: a69ac8d0dc21 Author: vromero Date: 2019-10-20 21:03 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/a69ac8d0dc21 more diags tests ! 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 ! test/langtools/tools/javac/diags/examples.not-yet.txt + test/langtools/tools/javac/diags/examples/AccessorReturnTypeDoesntMatch.java + test/langtools/tools/javac/diags/examples/CanonicalConstructorArgumentMismatch.java ! test/langtools/tools/javac/diags/examples/CanonicalConstructorCantHaveReturn.java ! test/langtools/tools/javac/diags/examples/CanonicalConstructorMustBePublic.java + test/langtools/tools/javac/diags/examples/ConstructorWithSameErasureAsCanonical.java ! test/langtools/tools/javac/diags/examples/Expected3.java ! test/langtools/tools/javac/diags/examples/IllegalRecordComponentName.java ! test/langtools/tools/javac/diags/examples/IllegalRecordMember.java ! test/langtools/tools/javac/diags/examples/IllegalStartOfStmt.java ! test/langtools/tools/javac/diags/examples/InvalidSuperTypeRecord.java ! test/langtools/tools/javac/diags/examples/MethodCantThrowCheckedException.java + test/langtools/tools/javac/diags/examples/MethodMustBePublic.java + test/langtools/tools/javac/diags/examples/RecordFieldsMustBeInHeader.java ! test/langtools/tools/javac/diags/examples/Records.java + test/langtools/tools/javac/diags/examples/RecordsCanNotBeAbstract.java + test/langtools/tools/javac/diags/examples/RecordsCantDeclareComponentModifiers.java + test/langtools/tools/javac/diags/examples/RecordsCantDeclareDuplicateComponents.java From gavin.bierman at oracle.com Mon Oct 21 09:50:11 2019 From: gavin.bierman at oracle.com (Gavin Bierman) Date: Mon, 21 Oct 2019 10:50:11 +0100 Subject: Draft JLS spec for JEP 305: Pattern matching for instanceof In-Reply-To: References: Message-ID: <2596DE6A-0154-488A-9EDC-031A6E300CF0@oracle.com> A second, and hopefully final, draft language spec for JEP 305 (Pattern matching for instanceof) is available at: http://cr.openjdk.java.net/~gbierman/jep305/jep305-20191021/specs/patterns-instanceof-jls.html Apart from a small number of minor corrections, the two main changes are: 1. We are relaxing the conditions around the typing of the instanceof operator, as discussed on the EG list a little while ago. The second operand is no longer required to be a reifiable type, but we require the type of the expression can be convertible to the type by casting conversion, and that casting conversion does not make use of an unchecked narrowing reference conversion. 2. The specification for patterns will not now appear in a new chapter, but in a new section 14.30. (Sections 14.22-14.29 will remain unused for now, to allow for further language evolution.) As always, please email me any comments/thoughts/bugs. Thanks, Gavin > On 19 Sep 2019, at 10:28, Gavin Bierman wrote: > > A draft language spec for JEP 305 (Pattern Matching for instanceof) is available at: > > http://cr.openjdk.java.net/~gbierman/jep305/jep305-20190918/specs/patterns-instanceof-jls.html > > Comments are welcomed on all aspects, but I draw your attention to a couple of things that we?d like your feedback on: > > 1. The instanceof operator restricts the type to be a reifiable reference type. The spec currently keeps that restriction for type test patterns too. But should we go further, i.e. will people expect to be able to say the following (given that this *declares* a pattern variable l)? > > if (o instanceof List l) { > ? > } > > 2. We?d like to keep the possibility open for merging of multiple pattern declarations, where it makes sense. For example: > > if (a instanceof Foo f || b instanceof Foo f) { > ? // Like to be able to use f here > } > > The current spec explicitly calls out cases like these as compile-time errors, to allow for forwards compatibility if we add this feature. But what do you think of this feature? (We have textually multiple declarations of a pattern variable, but they are ?merged?, so they are really the same thing?) > > 3. [Only for spec nerds] I am proposing to add a new Chapter 16 to discuss patterns (at the moment it?s short, but we?re planning for it to grow). The existing Chapters 16-19 will be renumbered to 17-20. Will this renumbering cause problems for anyone? > > > Thanks, > Gavin From maurizio.cimadamore at oracle.com Mon Oct 21 09:57:37 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 21 Oct 2019 10:57:37 +0100 Subject: Draft JLS spec for JEP 305: Pattern matching for instanceof In-Reply-To: <2596DE6A-0154-488A-9EDC-031A6E300CF0@oracle.com> References: <2596DE6A-0154-488A-9EDC-031A6E300CF0@oracle.com> Message-ID: <3f7f3479-7af0-cfeb-0f36-cb8fc513182a@oracle.com> Hi Gavin, looks good, and I note that you also tweaked instanceof to use a "bi-modal" semantics - e.g. instanceof Type | Pattern. On that note, I find that the section which speaks about 'type instance of' could use same cleanup you did on patterns: " If a cast of the /RelationalExpression/ to the /ReferenceType/ would be rejected as a compile-time error (15.16 ), then the |instanceof| expression likewise produces a compile-time error. In such a situation, the result of the |instanceof| expression could never be true. If the casting conversion of the /RelationalExpression/ to the /ReferenceType/ makes use of a narrowing reference conversion which is unchecked (5.1.6.2 ), then a compile-time error occurs. " The text here looks a bit redundant, and similar to what you had in the previous version of the spec. Perhaps you could use same cleanups as what you did in 14.30.2 (which, btw, looks great!) Maurizio On 21/10/2019 10:50, Gavin Bierman wrote: > A second, and hopefully final, draft language spec for JEP 305 (Pattern matching for instanceof) is available at: > > http://cr.openjdk.java.net/~gbierman/jep305/jep305-20191021/specs/patterns-instanceof-jls.html > > Apart from a small number of minor corrections, the two main changes are: > > 1. We are relaxing the conditions around the typing of the instanceof operator, as discussed on the EG list a little while ago. The second operand is no longer required to be a reifiable type, but we require the type of the expression can be convertible to the type by casting conversion, and that casting conversion does not make use of an unchecked narrowing reference conversion. > > 2. The specification for patterns will not now appear in a new chapter, but in a new section 14.30. (Sections 14.22-14.29 will remain unused for now, to allow for further language evolution.) > > As always, please email me any comments/thoughts/bugs. > > Thanks, > Gavin > >> On 19 Sep 2019, at 10:28, Gavin Bierman wrote: >> >> A draft language spec for JEP 305 (Pattern Matching for instanceof) is available at: >> >> http://cr.openjdk.java.net/~gbierman/jep305/jep305-20190918/specs/patterns-instanceof-jls.html >> >> Comments are welcomed on all aspects, but I draw your attention to a couple of things that we?d like your feedback on: >> >> 1. The instanceof operator restricts the type to be a reifiable reference type. The spec currently keeps that restriction for type test patterns too. But should we go further, i.e. will people expect to be able to say the following (given that this *declares* a pattern variable l)? >> >> if (o instanceof List l) { >> ? >> } >> >> 2. We?d like to keep the possibility open for merging of multiple pattern declarations, where it makes sense. For example: >> >> if (a instanceof Foo f || b instanceof Foo f) { >> ? // Like to be able to use f here >> } >> >> The current spec explicitly calls out cases like these as compile-time errors, to allow for forwards compatibility if we add this feature. But what do you think of this feature? (We have textually multiple declarations of a pattern variable, but they are ?merged?, so they are really the same thing?) >> >> 3. [Only for spec nerds] I am proposing to add a new Chapter 16 to discuss patterns (at the moment it?s short, but we?re planning for it to grow). The existing Chapters 16-19 will be renumbered to 17-20. Will this renumbering cause problems for anyone? >> >> >> Thanks, >> Gavin From srikanth.adayapalam at oracle.com Mon Oct 21 10:09:00 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Mon, 21 Oct 2019 10:09:00 +0000 Subject: hg: amber/amber: 8232703: [local-methods] Jshell test langtools/jdk/jshell/ComputeFQNsTest.java fails Message-ID: <201910211009.x9LA90qS014480@aojmv0008.oracle.com> Changeset: 06d652252bc5 Author: sadayapalam Date: 2019-10-21 15:38 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/06d652252bc5 8232703: [local-methods] Jshell test langtools/jdk/jshell/ComputeFQNsTest.java fails ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysisImpl.java From gavin.bierman at oracle.com Mon Oct 21 11:22:42 2019 From: gavin.bierman at oracle.com (Gavin Bierman) Date: Mon, 21 Oct 2019 12:22:42 +0100 Subject: New candidate JEP: 361: Switch Expressions (Standard) In-Reply-To: <7E8C18C5-726B-4F2C-9F3B-AC386CC97B82@oracle.com> References: <20190925223215.EDE103084E1@eggemoggin.niobe.net> <7E8C18C5-726B-4F2C-9F3B-AC386CC97B82@oracle.com> Message-ID: Just a gentle reminder if you have any feedback based on your experience with using this feature. Gavin > On 27 Sep 2019, at 17:45, Gavin Bierman wrote: > > Please note that we are considering making this a permanent feature, so this is your last chance to provide substantive feedback based on any new experience you may have had with this feature. > > A new, draft language spec for JEP 361 (Switch Expressions) is available at: > > http://cr.openjdk.java.net/~gbierman/jep361/jep361-20190927/specs/switch-expressions-jls.html > > This is identical to the version made available for JEP354, apart from some cosmetic changes around terminology following some feedback. > > [For spec nerds: The primary change is that what was previously called a "switch labeled rule" is now called, more simply, a "switch rule?. ?Switch labeled expression? is now a ?switch rule expression?, ?switch labeled block? is now a ?switch rule block? and a ?switch labeled throw statement? is now a ?switch rule throw statement?.] > > All feedback welcomed! > Gavin > >> On 25 Sep 2019, at 23:32, mark.reinhold at oracle.com wrote: >> >> https://openjdk.java.net/jeps/361 >> >> - Mark > From gavin.bierman at oracle.com Mon Oct 21 12:02:23 2019 From: gavin.bierman at oracle.com (Gavin Bierman) Date: Mon, 21 Oct 2019 13:02:23 +0100 Subject: Draft JLS spec for JEP 305: Pattern matching for instanceof In-Reply-To: <3f7f3479-7af0-cfeb-0f36-cb8fc513182a@oracle.com> References: <2596DE6A-0154-488A-9EDC-031A6E300CF0@oracle.com> <3f7f3479-7af0-cfeb-0f36-cb8fc513182a@oracle.com> Message-ID: <2D62B016-0B07-4D20-A5C8-7A432ADABC5C@oracle.com> Thanks Maurizio. I have tweaked the two definitions to be more clearly aligned. Gavin > On 21 Oct 2019, at 10:57, Maurizio Cimadamore wrote: > > Hi Gavin, > looks good, and I note that you also tweaked instanceof to use a "bi-modal" semantics - e.g. instanceof Type | Pattern. > > On that note, I find that the section which speaks about 'type instance of' could use same cleanup you did on patterns: > > " > > If a cast of the RelationalExpression to the ReferenceType would be rejected as a compile-time error (15.16 ), then the instanceof expression likewise produces a compile-time error. In such a situation, the result of the instanceof expression could never be true. > > If the casting conversion of the RelationalExpression to the ReferenceType makes use of a narrowing reference conversion which is unchecked (5.1.6.2 ), then a compile-time error occurs. > " > > The text here looks a bit redundant, and similar to what you had in the previous version of the spec. Perhaps you could use same cleanups as what you did in 14.30.2 (which, btw, looks great!) > > Maurizio > > > > On 21/10/2019 10:50, Gavin Bierman wrote: >> A second, and hopefully final, draft language spec for JEP 305 (Pattern matching for instanceof) is available at: >> >> http://cr.openjdk.java.net/~gbierman/jep305/jep305-20191021/specs/patterns-instanceof-jls.html >> >> Apart from a small number of minor corrections, the two main changes are: >> >> 1. We are relaxing the conditions around the typing of the instanceof operator, as discussed on the EG list a little while ago. The second operand is no longer required to be a reifiable type, but we require the type of the expression can be convertible to the type by casting conversion, and that casting conversion does not make use of an unchecked narrowing reference conversion. >> >> 2. The specification for patterns will not now appear in a new chapter, but in a new section 14.30. (Sections 14.22-14.29 will remain unused for now, to allow for further language evolution.) >> >> As always, please email me any comments/thoughts/bugs. >> >> Thanks, >> Gavin >> >>> On 19 Sep 2019, at 10:28, Gavin Bierman wrote: >>> >>> A draft language spec for JEP 305 (Pattern Matching for instanceof) is available at: >>> >>> http://cr.openjdk.java.net/~gbierman/jep305/jep305-20190918/specs/patterns-instanceof-jls.html >>> >>> Comments are welcomed on all aspects, but I draw your attention to a couple of things that we?d like your feedback on: >>> >>> 1. The instanceof operator restricts the type to be a reifiable reference type. The spec currently keeps that restriction for type test patterns too. But should we go further, i.e. will people expect to be able to say the following (given that this *declares* a pattern variable l)? >>> >>> if (o instanceof List l) { >>> ? >>> } >>> >>> 2. We?d like to keep the possibility open for merging of multiple pattern declarations, where it makes sense. For example: >>> >>> if (a instanceof Foo f || b instanceof Foo f) { >>> ? // Like to be able to use f here >>> } >>> >>> The current spec explicitly calls out cases like these as compile-time errors, to allow for forwards compatibility if we add this feature. But what do you think of this feature? (We have textually multiple declarations of a pattern variable, but they are ?merged?, so they are really the same thing?) >>> >>> 3. [Only for spec nerds] I am proposing to add a new Chapter 16 to discuss patterns (at the moment it?s short, but we?re planning for it to grow). The existing Chapters 16-19 will be renumbered to 17-20. Will this renumbering cause problems for anyone? >>> >>> >>> Thanks, >>> Gavin From maurizio.cimadamore at oracle.com Mon Oct 21 12:13:58 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 21 Oct 2019 13:13:58 +0100 Subject: Draft JLS spec for JEP 305: Pattern matching for instanceof In-Reply-To: <2D62B016-0B07-4D20-A5C8-7A432ADABC5C@oracle.com> References: <2596DE6A-0154-488A-9EDC-031A6E300CF0@oracle.com> <3f7f3479-7af0-cfeb-0f36-cb8fc513182a@oracle.com> <2D62B016-0B07-4D20-A5C8-7A432ADABC5C@oracle.com> Message-ID: <0a34cbd6-eb99-c5ac-93fd-a7d99759743d@oracle.com> Looks good, thanks Maurizio On 21/10/2019 13:02, Gavin Bierman wrote: > Thanks Maurizio. I have tweaked the two definitions to be more clearly > aligned. > > Gavin > >> On 21 Oct 2019, at 10:57, Maurizio Cimadamore >> > > wrote: >> >> Hi Gavin, >> looks good, and I note that you also tweaked instanceof to use a >> "bi-modal" semantics - e.g. instanceof Type | Pattern. >> >> On that note, I find that the section which speaks about 'type >> instance of' could use same cleanup you did on patterns: >> >> " >> >> If a cast of the /RelationalExpression/ to the /ReferenceType/ would >> be rejected as a compile-time error (15.16 >> ), >> then the |instanceof| expression likewise produces a compile-time >> error. In such a situation, the result of the |instanceof| expression >> could never be true. >> >> If the casting conversion of the /RelationalExpression/ to the >> /ReferenceType/ makes use of a narrowing reference conversion which >> is unchecked (5.1.6.2 >> ), >> then a compile-time error occurs. >> " >> >> The text here looks a bit redundant, and similar to what you had in >> the previous version of the spec. Perhaps you could use same cleanups >> as what you did in 14.30.2 (which, btw, looks great!) >> >> Maurizio >> >> >> On 21/10/2019 10:50, Gavin Bierman wrote: >>> A second, and hopefully final, draft language spec for JEP 305 (Pattern matching for instanceof) is available at: >>> >>> http://cr.openjdk.java.net/~gbierman/jep305/jep305-20191021/specs/patterns-instanceof-jls.html >>> >>> Apart from a small number of minor corrections, the two main changes are: >>> >>> 1. We are relaxing the conditions around the typing of the instanceof operator, as discussed on the EG list a little while ago. The second operand is no longer required to be a reifiable type, but we require the type of the expression can be convertible to the type by casting conversion, and that casting conversion does not make use of an unchecked narrowing reference conversion. >>> >>> 2. The specification for patterns will not now appear in a new chapter, but in a new section 14.30. (Sections 14.22-14.29 will remain unused for now, to allow for further language evolution.) >>> >>> As always, please email me any comments/thoughts/bugs. >>> >>> Thanks, >>> Gavin >>> >>>> On 19 Sep 2019, at 10:28, Gavin Bierman wrote: >>>> >>>> A draft language spec for JEP 305 (Pattern Matching for instanceof) is available at: >>>> >>>> http://cr.openjdk.java.net/~gbierman/jep305/jep305-20190918/specs/patterns-instanceof-jls.html >>>> >>>> Comments are welcomed on all aspects, but I draw your attention to a couple of things that we?d like your feedback on: >>>> >>>> 1. The instanceof operator restricts the type to be a reifiable reference type. The spec currently keeps that restriction for type test patterns too. But should we go further, i.e. will people expect to be able to say the following (given that this *declares* a pattern variable l)? >>>> >>>> if (o instanceof List l) { >>>> ? >>>> } >>>> >>>> 2. We?d like to keep the possibility open for merging of multiple pattern declarations, where it makes sense. For example: >>>> >>>> if (a instanceof Foo f || b instanceof Foo f) { >>>> ? // Like to be able to use f here >>>> } >>>> >>>> The current spec explicitly calls out cases like these as compile-time errors, to allow for forwards compatibility if we add this feature. But what do you think of this feature? (We have textually multiple declarations of a pattern variable, but they are ?merged?, so they are really the same thing?) >>>> >>>> 3. [Only for spec nerds] I am proposing to add a new Chapter 16 to discuss patterns (at the moment it?s short, but we?re planning for it to grow). The existing Chapters 16-19 will be renumbered to 17-20. Will this renumbering cause problems for anyone? >>>> >>>> >>>> Thanks, >>>> Gavin > From vicente.romero at oracle.com Mon Oct 21 12:31:44 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Mon, 21 Oct 2019 08:31:44 -0400 Subject: RFR: JEP 359-Records: compiler code Message-ID: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> Hi, Please review the compiler code for JEP 359 (Records) [1] Thanks in advance for the feedback, Vicente [1] http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ From chris.hegarty at oracle.com Mon Oct 21 13:42:09 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Mon, 21 Oct 2019 13:42:09 +0000 Subject: hg: amber/amber: records: clean up in Serialization code Message-ID: <201910211342.x9LDg94h002513@aojmv0008.oracle.com> Changeset: b3e8bdfcb968 Author: chegar Date: 2019-10-21 14:41 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/b3e8bdfcb968 records: clean up in Serialization code ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java ! test/jdk/java/io/Serializable/records/WriteReplaceTest.java From chris.hegarty at oracle.com Mon Oct 21 14:49:30 2019 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Mon, 21 Oct 2019 15:49:30 +0100 Subject: Draft JLS spec for JEP 305: Pattern matching for instanceof In-Reply-To: <2596DE6A-0154-488A-9EDC-031A6E300CF0@oracle.com> References: <2596DE6A-0154-488A-9EDC-031A6E300CF0@oracle.com> Message-ID: > On 21 Oct 2019, at 10:50, Gavin Bierman wrote: > > A second, and hopefully final, draft language spec for JEP 305 (Pattern matching for instanceof) is available at: > > http://cr.openjdk.java.net/~gbierman/jep305/jep305-20191021/specs/patterns-instanceof-jls.html While proofreading, I came across a minor issue in 15.20.2: "? The expression RelationalExpression is compatible with the type ReferenceType if (i) RelationalExpression can be converted to type ReferenceType by casting conversion (5.5), and (ii) the casting conversion does not make use of a narrowing reference conversion which is unchecked (5.1.6.2). If ReferenceType is not compatible with ReferenceType then a compile-time error occurs." Should be: If *RelationalExpression* is not compatible with ReferenceType then a compile-time error occurs. -Chris. From chris.hegarty at oracle.com Mon Oct 21 16:26:30 2019 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Mon, 21 Oct 2019 17:26:30 +0100 Subject: RFR: JEP 359-Records: javadoc code In-Reply-To: <434628a6-90c9-f77e-3231-e68082f8b791@oracle.com> References: <914ab35b-ff07-1b9e-472c-9a04f7bc49dc@oracle.com> <4f0ee8fc-22bc-7ff9-7af6-88e9e436b583@oracle.com> <434628a6-90c9-f77e-3231-e68082f8b791@oracle.com> Message-ID: <016E1A04-93C1-4586-9CC3-6467AC66BB41@oracle.com> > On 18 Oct 2019, at 13:28, Maurizio Cimadamore wrote: > > ... > > One high-level gripe which is pointing at a failure of the j.l.model API is the lack of a way to get to the canonical constructor directly; we have this issue both in core reflection and source reflection, and I think we should address that, as both serialization and javadoc has to DYI around that. Core reflection adds just a couple of primitives for record support: 1) Class::isRecord, and 2) Class::getRecordComponents The getRecordComponents method returns an empty array if the class is not a record or is a record with no components. The not-a-record-class scenario is not ideal, but seems like a reasonable ( given what we have ). If we were to add ( the fingersome ) Class::getRecordCanonicalConsructor, then this method would likely throw an appropriate exception if the class is not a record. If we do this, then maybe the this-class-is-not-a-record behavior of getRecordComponents should be re-examined? I also think that ?record? would likely need to be in the method name too, as I?m not sure that the term ?canonical constructor? will be enough by itself. BTW - I agree that such a method would be useful. It also promotes the notion of the ?canonical constructor?, even more than is already done by java.lang.Record. -Chris. From forax at univ-mlv.fr Mon Oct 21 17:03:10 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Mon, 21 Oct 2019 19:03:10 +0200 (CEST) Subject: Draft JLS spec for JEP 305: Pattern matching for instanceof In-Reply-To: <2596DE6A-0154-488A-9EDC-031A6E300CF0@oracle.com> References: <2596DE6A-0154-488A-9EDC-031A6E300CF0@oracle.com> Message-ID: <567606180.421662.1571677390932.JavaMail.zimbra@u-pem.fr> 14.30.3 is weird to me, why use the cast operation that doesn't raise an exception instead of instanceof granting the null case is handled before ? R?mi > De: "Gavin Bierman" > ?: "amber-spec-experts" > Cc: "amber-dev" > Envoy?: Lundi 21 Octobre 2019 11:50:11 > Objet: Draft JLS spec for JEP 305: Pattern matching for instanceof > A second, and hopefully final, draft language spec for JEP 305 (Pattern matching > for instanceof) is available at: > [ > http://cr.openjdk.java.net/~gbierman/jep305/jep305-20191021/specs/patterns-instanceof-jls.html > | > http://cr.openjdk.java.net/~gbierman/jep305/jep305-20191021/specs/patterns-instanceof-jls.html > ] > Apart from a small number of minor corrections, the two main changes are: > 1. We are relaxing the conditions around the typing of the instanceof operator, > as discussed on the EG list a little while ago. The second operand is no longer > required to be a reifiable type, but we require the type of the expression can > be convertible to the type by casting conversion, and that casting conversion > does not make use of an unchecked narrowing reference conversion. > 2. The specification for patterns will not now appear in a new chapter, but in a > new section 14.30. (Sections 14.22-14.29 will remain unused for now, to allow > for further language evolution.) > As always, please email me any comments/thoughts/bugs. > Thanks, > Gavin >> On 19 Sep 2019, at 10:28, Gavin Bierman < [ mailto:gavin.bierman at oracle.com | >> gavin.bierman at oracle.com ] > wrote: >> A draft language spec for JEP 305 (Pattern Matching for instanceof) is available >> at: >> [ >> http://cr.openjdk.java.net/~gbierman/jep305/jep305-20190918/specs/patterns-instanceof-jls.html >> | >> http://cr.openjdk.java.net/~gbierman/jep305/jep305-20190918/specs/patterns-instanceof-jls.html >> ] >> Comments are welcomed on all aspects, but I draw your attention to a couple of >> things that we?d like your feedback on: >> 1. The instanceof operator restricts the type to be a reifiable reference type. >> The spec currently keeps that restriction for type test patterns too. But >> should we go further, i.e. will people expect to be able to say the following >> (given that this *declares* a pattern variable l)? >>> if (o instanceof List l) { >>> ? >>> } >> 2. We?d like to keep the possibility open for merging of multiple pattern >> declarations, where it makes sense. For example: >>> if (a instanceof Foo f || b instanceof Foo f) { >>> ? // Like to be able to use f here >>> } >> The current spec explicitly calls out cases like these as compile-time errors, >> to allow for forwards compatibility if we add this feature. But what do you >> think of this feature? (We have textually multiple declarations of a pattern >> variable, but they are ?merged?, so they are really the same thing?) >> 3. [Only for spec nerds] I am proposing to add a new Chapter 16 to discuss >> patterns (at the moment it?s short, but we?re planning for it to grow). The >> existing Chapters 16-19 will be renumbered to 17-20. Will this renumbering >> cause problems for anyone? >> Thanks, >> Gavin From maurizio.cimadamore at oracle.com Mon Oct 21 18:01:58 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 21 Oct 2019 19:01:58 +0100 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> Message-ID: <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> Hi Vicente, I did a pretty thorough pass on most of the code. I didn't look at tests, and I also didn't look at Lower. Comments below: * Flags.java - VARARGS flag for records components; I wonder, instead of a new flag, can we use the internal VARARGS flag we have for methods, and attach that to the record symbol? That should also lead to more direct code in TypeHelper * Symbol.java - I think the override for 'erasure' is redundant - isn't that the impl from supertype? * Symbol.java (and others) in general this webrev shuld be updated as soon as Jan push the @Preview work, as I see that methods implementing preview API are using the 'deprecate for removal' annotation * Symbol.java - I wonder if accessor list with Pair isn't a premature generalization; we should just add a getter symbol and that's it * Attr.java - I think we might want to leave the door open for a check which forces all constructors of a record to go through the canonical one (depending on where the spec lands) * Check.java - understanding checkpoint: when we see an annotation on a record component, first we check it's one of the kinds which are allowed (if not, error), and, if it's allowed, we add all record component annotations to record component elements, and we also filter away all annotations that have nothing to do with the element in which they appear. If my understanding is correct, I think this logic should be documented more clearly; I found the comment after the "if (isRecordField)" to be a bit obscure. * Enter.java - why are you removing the static flag on records? I don't see anything similar around for enums. * Flow.java - not sure I get the changes to checkInit; typically checkInit is called at the use-site of DA/DU variables. Here it seems you suppress some of the errors emitted for accessing record fields inside the canonical constructor - but I hope that code like this record Foo(int x) { ?? Foo(int x) { ?????? print(this.x); ?? } } Still give errors? If this works correctly, which errors does the 'guard' around the error generation is supposed to protect against? * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only used here... * TypeEnter.java - implicit super calls are added in Attr::visitMethod for regular calls; we should do the same for records (or add all in TypeEnter - that is records and class should be consistent) * TypeEnter.java - on finishClass - you are calling memberEnter on record fields, which I think you already did in the new RecordsPhase * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal with _all_ record members (e.g. including accessors), not just some? * TypeEnter.java - checkForSerializationMember should probably be moved to MemberEnter::visitVar, or even to Attr (note that the code for the check is doing a little visit :-)) * TypeEnter.java - again on check timings; while it's ok for the code in here to add new synthetic members, I think it's less ok to add more global error checks (such as make sure that the canonical declaration whose parameter names match the record components in order); these should live in Attr. More generally, I think that we should only check stuff here if we think that the check will add any value to annotation processing. Every other check can be deferred, and take place in a more 'deterministic' part of javac. * TypeEnter.java - I think finishClass should be a bit better at determining as to whether default constructor is needed or not - for instance, this check: if ((sym.flags() & INTERFACE) == 0 && 928 !TreeInfo.hasConstructors(tree.defs)) { Should be generalized to something that works for both classes and records; for classes you need to check if there's no other constructor; for records you need to check if there's no other constructor _with same signature_ as the canonical one. Then you can simplify addRecordMembers and remove the dependency on the boolean 'generatedConstructor' parameter. In other words the code should: 1) check if default/canonical constructor generation is required 2) if so, use the appropriate helper to generate the code 3) at the end, add the remaining record members (under the assumption that the canonical constructor has already been added in (1), if that was missing) *TypeEnter.java - addAccessor can be simplified if we only worry about getters. Again, the checks in here feel more Attr check than MemberEnter checks. *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we create a tree for a member, and then we visit the member tree with memberEnter, just to add it to the scope. I understand that, currently addEnumMembers does the same, but this looks very roundabout; I wonder if there's a way to make all this process a bit simpler - create a symbol and add that to the scope. Or are there important checks in MemberEnter that we would lose? *JCTree.java/TreeMaker.java - I don't think there's any need to store accessors in the field AST; these are only used from TypeEnter, and TypeEnter can do whatever it does by looking at which record components there are in the record class, and add a getter for each. Let's make the code simpler and more direct * ClassReader.java - should we just silently ignore record attributes when not in preview mode - or should we issue classfile errors? * ClassReader.java - what kind of validation should we do on record attributes? Currently javac does nothing. Should we check that we have (i) getters (ii) toString/hashCode/equals implementations and (iii) a canonical constructor (ad fail if we don't) ? At the very least I would add code to _parse_ the attribute, even if we do nothing with it, so that at least we throw a classfile error if the attribute is badly broken * Tokens.java - for "var", "yields" and other context-dependent keywords we never added a token. We just handled that in JavacParser. Why the difference here? I think it's best to stick to current style and maybe fix all of them (assuming that's what we want to do) in a followup cleanup. Actually, after looking at parser, it seems like you already handle that manually, so I just suggest to revert the changed to Tokens * TreeInfo.java - how is 'isCanonicalConstructor' not returning 'true' for all constructors inside a record, as opposed to only return true for the canonical one? * TreeInfo.java - There is some code reuse possible between "recordFieldTypes" and "recordFields" * Names.java - what is 'oldEquals' ? * JavacParser.java - timing of checks; I don't think we should check for illegal record component names in here * JavacParser.java - code can be simplified somewhat by getting rid of accessors in VarDef AST. On 21/10/2019 13:31, Vicente Romero wrote: > Hi, > > Please review the compiler code for JEP 359 (Records) [1] > > Thanks in advance for the feedback, > Vicente > > [1] > http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ From vicente.romero at oracle.com Mon Oct 21 18:32:01 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Mon, 21 Oct 2019 14:32:01 -0400 Subject: RFR: JEP 359-Records: serialization code and API changes Message-ID: Hi all, Please review the serialization changes to support records. Thanks, Vicente http://cr.openjdk.java.net/~vromero/records.review/serialization/webrev.00/ From lois.foltan at oracle.com Mon Oct 21 18:40:44 2019 From: lois.foltan at oracle.com (Lois Foltan) Date: Mon, 21 Oct 2019 14:40:44 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Message-ID: On 10/18/2019 2:44 PM, Vicente Romero wrote: > Hi, > > Please review the hotspot runtime and serviceability code for JEP 359 > (Records). > > Thanks in advance for the feedback, > Vicente > > PS, Thanks to Harold for the development > > > [1] > http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ Harold, Vicente, Overall this looks good!? Some comments: src/hotspot/share/classfile/classFileParser.cpp - line #3226: I mentiond this below that I would like to see the comment from jvmtiClassFileReconstituter.cp ahead of ClassFileParser::parse_classfile_record_attribute() so it is easy to follow the expected layout. - line #3275: Ahead of the for loop it would be good to add a comment listing what the expected attributes are for Records. - line #4732: The added check of "!major_gte_14" looks incorrect for final abstract classes.? That isn't relevant to Records, correct? src/hotspot/share/prims/jvm.cpp - line #1737 - #1739: use oopFactory::new_objArrayHandle() instead of breaking this accross 2 lines. - line #1751: please add a comment that indicates the behavior when the InstanceKlass is not a record.? It seems like an empty array is returned? src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp - copyright update needed. - line #427-438: I like the comment, can you add that ahead of ClassFileParser::parse_classfile_record_attribute(). src/hotspot/share/prims/jvmtiRedefineClasses.cpp - line #839 - comment "of" should be "if"? src/hotspot/share/oops/recordComponent.hpp - line #95 - determination of TBD comment needed before committing. I still need to review the tests. Thanks, Lois From maurizio.cimadamore at oracle.com Mon Oct 21 20:44:19 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 21 Oct 2019 21:44:19 +0100 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> Message-ID: <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> And here are some comments on Lower - findMethodOrFailSilently? doesn't seem to be used anywhere; this should be removed and associated changes in Resolve reverted - findUserDefinedAccessors - this seems to have to do with setting the record component symbol straight - this should happen well before Lower, otherwise I'm not even sure what annotations processor will see? This code should go in TypeEnter, where you already look up for existing accessor. - related; not 100% as to why in visitRecordDef you protect against accessor not being there - which means you need to do a lookup. You need to get to this part of the code where all accessors have been set. Then the code can be simplified. - As pointed out previously, getting rid of the Pair accessor will result in cascading simplification in few methods in Lower too - both the signature generator and the indy machinery are shared between LambdaToMethod and Lower - so we should probably put them somewhere in a common superclass which can be used by the various backend steps - I guess the main translation strategy for record members is to generate an indy - where the runtime gives you back some constant callsite which wraps a method handle with the right signature. If so, some comments should be sprinkled around to clarify that this is indeed the case. - I also guess that the if/else in generateRecordMethod is to avoid generating a tree if an explicit member has been declared by the user - again, correct, but some comments please ;-) Also some comments? on tests: * test/langtools/tools/javac/6402516/CheckLocalElements.java - why the change? * test/langtools/tools/javac/AnonymousClass/AnonymousClassFlags.java -? why the change from @run to @compile? * test/langtools/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java - who is using the new target? * diags/** in general, for all new diagnostics added it would be nice to have an html of the output (I have a script for doing that, let me know if you need it) * examples-not-yet - why no test for local records? That should be easy to add (I hope)? * test/langtools/tools/javac/parser/JavacParserTest.java - here I wonder if we should have different messages depending on the version (eg. we don't want to say 'expected records' if compiling with -source 12?) *? test/langtools/tools/javac/tree/JavacTreeScannerTest.java, test/langtools/tools/javac/tree/SourceTreeScannerTest.java, src/jdk.compiler/share/classes/com/sun/tools/javac/code/Accessors.java - seems like these probably depend on the accessor pairs being in the AST? * test/langtools/tools/javac/doctree/AccessorsTest.java - not sure about this, does it even belong to this patch? I'd be surprised if DocTree does anything special with accessors? * test/langtools/tools/javac/doctree/AccessorsTest.java - this tests that ElementFilter and getAccessor() agree, but doesn't test that they actually yield the correct result * more generally, certain tests (e.g. signature mismatches, record component names order mismatches, reflection tests, serialization tests) have a certain ad-hoc nature to them - in the sense that they test one record shape or two and that's it. E.g. test/langtools/tools/javac/records/mandated_members/read_resolve_method/CheckReadResolveMethodTest.java I'd like to see a more combinatorial-oriented approach to such tests, where at least we tests all primitive types plus a reference type of choice, with varying degrees of arity (and w/, w/o varargs). That's all for now Thanks Maurizio On 21/10/2019 19:01, Maurizio Cimadamore wrote: > Hi Vicente, > I did a pretty thorough pass on most of the code. I didn't look at > tests, and I also didn't look at Lower. Comments below: > > * Flags.java - VARARGS flag for records components; I wonder, instead > of a new flag, can we use the internal VARARGS flag we have for > methods, and attach that to the record symbol? That should also lead > to more direct code in TypeHelper > > * Symbol.java - I think the override for 'erasure' is redundant - > isn't that the impl from supertype? > > * Symbol.java (and others) in general this webrev shuld be updated as > soon as Jan push the @Preview work, as I see that methods implementing > preview API are using the 'deprecate for removal' annotation > > * Symbol.java - I wonder if accessor list with Pair > isn't a premature generalization; we should just add a getter symbol > and that's it > > * Attr.java - I think we might want to leave the door open for a check > which forces all constructors of a record to go through the canonical > one (depending on where the spec lands) > > * Check.java - understanding checkpoint: when we see an annotation on > a record component, first we check it's one of the kinds which are > allowed (if not, error), and, if it's allowed, we add all record > component annotations to record component elements, and we also filter > away all annotations that have nothing to do with the element in which > they appear. If my understanding is correct, I think this logic should > be documented more clearly; I found the comment after the "if > (isRecordField)" to be a bit obscure. > > * Enter.java - why are you removing the static flag on records? I > don't see anything similar around for enums. > > * Flow.java - not sure I get the changes to checkInit; typically > checkInit is called at the use-site of DA/DU variables. Here it seems > you suppress some of the errors emitted for accessing record fields > inside the canonical constructor - but I hope that code like this > > record Foo(int x) { > ?? Foo(int x) { > ?????? print(this.x); > ?? } > } > > Still give errors? If this works correctly, which errors does the > 'guard' around the error generation is supposed to protect against? > > * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only used > here... > > * TypeEnter.java - implicit super calls are added in Attr::visitMethod > for regular calls; we should do the same for records (or add all in > TypeEnter - that is records and class should be consistent) > > * TypeEnter.java - on finishClass - you are calling memberEnter on > record fields, which I think you already did in the new RecordsPhase > > * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal > with _all_ record members (e.g. including accessors), not just some? > > * TypeEnter.java - checkForSerializationMember should probably be > moved to MemberEnter::visitVar, or even to Attr (note that the code > for the check is doing a little visit :-)) > > * TypeEnter.java - again on check timings; while it's ok for the code > in here to add new synthetic members, I think it's less ok to add more > global error checks (such as make sure that the canonical declaration > whose parameter names match the record components in order); these > should live in Attr. More generally, I think that we should only check > stuff here if we think that the check will add any value to annotation > processing. Every other check can be deferred, and take place in a > more 'deterministic' part of javac. > > * TypeEnter.java - I think finishClass should be a bit better at > determining as to whether default constructor is needed or not - for > instance, this check: > > if ((sym.flags() & INTERFACE) == 0 && > ?928???????????????? !TreeInfo.hasConstructors(tree.defs)) { > > Should be generalized to something that works for both classes and > records; for classes you need to check if there's no other > constructor; for records you need to check if there's no other > constructor _with same signature_ as the canonical one. Then you can > simplify addRecordMembers and remove the dependency on the boolean > 'generatedConstructor' parameter. In other words the code should: > > 1) check if default/canonical constructor generation is required > 2) if so, use the appropriate helper to generate the code > 3) at the end, add the remaining record members (under the assumption > that the canonical constructor has already been added in (1), if that > was missing) > > *TypeEnter.java - addAccessor can be simplified if we only worry about > getters. Again, the checks in here feel more Attr check than > MemberEnter checks. > > *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we > create a tree for a member, and then we visit the member tree with > memberEnter, just to add it to the scope. I understand that, currently > addEnumMembers does the same, but this looks very roundabout; I wonder > if there's a way to make all this process a bit simpler - create a > symbol and add that to the scope. Or are there important checks in > MemberEnter that we would lose? > > *JCTree.java/TreeMaker.java - I don't think there's any need to store > accessors in the field AST; these are only used from TypeEnter, and > TypeEnter can do whatever it does by looking at which record > components there are in the record class, and add a getter for each. > Let's make the code simpler and more direct > > * ClassReader.java - should we just silently ignore record attributes > when not in preview mode - or should we issue classfile errors? > > * ClassReader.java - what kind of validation should we do on record > attributes? Currently javac does nothing. Should we check that we have > (i) getters (ii) toString/hashCode/equals implementations and (iii) a > canonical constructor (ad fail if we don't) ? At the very least I > would add code to _parse_ the attribute, even if we do nothing with > it, so that at least we throw a classfile error if the attribute is > badly broken > > * Tokens.java - for "var", "yields" and other context-dependent > keywords we never added a token. We just handled that in JavacParser. > Why the difference here? I think it's best to stick to current style > and maybe fix all of them (assuming that's what we want to do) in a > followup cleanup. Actually, after looking at parser, it seems like you > already handle that manually, so I just suggest to revert the changed > to Tokens > > * TreeInfo.java - how is 'isCanonicalConstructor' not returning 'true' > for all constructors inside a record, as opposed to only return true > for the canonical one? > > * TreeInfo.java - There is some code reuse possible between > "recordFieldTypes" and "recordFields" > > * Names.java - what is 'oldEquals' ? > > * JavacParser.java - timing of checks; I don't think we should check > for illegal record component names in here > > * JavacParser.java - code can be simplified somewhat by getting rid of > accessors in VarDef AST. > > > > > > On 21/10/2019 13:31, Vicente Romero wrote: >> Hi, >> >> Please review the compiler code for JEP 359 (Records) [1] >> >> Thanks in advance for the feedback, >> Vicente >> >> [1] >> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ From vicente.romero at oracle.com Mon Oct 21 21:10:09 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Mon, 21 Oct 2019 17:10:09 -0400 Subject: RFR: JEP 359-Records: reflection code Message-ID: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> Hi, Please review the reflection code for JEP 359 (Records) at [1]. There is a class here that is special [2] this contain the bootstrap methods for equals, hashCode and toString methods in records. Thanks in advance for the feedback, Vicente [1] http://cr.openjdk.java.net/~vromero/records.review/reflection/webrev.00/ [2] http://cr.openjdk.java.net/~vromero/records.review/reflection/webrev.00/src/java.base/share/classes/java/lang/runtime/ObjectMethods.java.html From vicente.romero at oracle.com Mon Oct 21 21:20:31 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Mon, 21 Oct 2019 17:20:31 -0400 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> Message-ID: <81b4e85f-1c7c-7cf1-a52d-d4ee4515fbb5@oracle.com> Hi Maurizio, Thanks a lot for the review, working on your comments, Vicente On 10/21/19 4:44 PM, Maurizio Cimadamore wrote: > And here are some comments on Lower > > - findMethodOrFailSilently? doesn't seem to be used anywhere; this > should be removed and associated changes in Resolve reverted > > - findUserDefinedAccessors - this seems to have to do with setting the > record component symbol straight - this should happen well before > Lower, otherwise I'm not even sure what annotations processor will > see? This code should go in TypeEnter, where you already look up for > existing accessor. > > - related; not 100% as to why in visitRecordDef you protect against > accessor not being there - which means you need to do a lookup. You > need to get to this part of the code where all accessors have been > set. Then the code can be simplified. > > - As pointed out previously, getting rid of the Pair > accessor will result in cascading simplification in few methods in > Lower too > > - both the signature generator and the indy machinery are shared > between LambdaToMethod and Lower - so we should probably put them > somewhere in a common superclass which can be used by the various > backend steps > > - I guess the main translation strategy for record members is to > generate an indy - where the runtime gives you back some constant > callsite which wraps a method handle with the right signature. If so, > some comments should be sprinkled around to clarify that this is > indeed the case. > > - I also guess that the if/else in generateRecordMethod is to avoid > generating a tree if an explicit member has been declared by the user > - again, correct, but some comments please ;-) > > > Also some comments? on tests: > > * test/langtools/tools/javac/6402516/CheckLocalElements.java - why the > change? > > * test/langtools/tools/javac/AnonymousClass/AnonymousClassFlags.java > -? why the change from @run to @compile? > > * > test/langtools/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java > - who is using the new target? > > * diags/** in general, for all new diagnostics added it would be nice > to have an html of the output (I have a script for doing that, let me > know if you need it) > > * examples-not-yet - why no test for local records? That should be > easy to add (I hope)? > > * test/langtools/tools/javac/parser/JavacParserTest.java - here I > wonder if we should have different messages depending on the version > (eg. we don't want to say 'expected records' if compiling with -source > 12?) > > *? test/langtools/tools/javac/tree/JavacTreeScannerTest.java, > test/langtools/tools/javac/tree/SourceTreeScannerTest.java, > src/jdk.compiler/share/classes/com/sun/tools/javac/code/Accessors.java > - seems like these probably depend on the accessor pairs being in the > AST? > > * test/langtools/tools/javac/doctree/AccessorsTest.java - not sure > about this, does it even belong to this patch? I'd be surprised if > DocTree does anything special with accessors? > > * test/langtools/tools/javac/doctree/AccessorsTest.java - this tests > that ElementFilter and getAccessor() agree, but doesn't test that they > actually yield the correct result > > * more generally, certain tests (e.g. signature mismatches, record > component names order mismatches, reflection tests, serialization > tests) have a certain ad-hoc nature to them - in the sense that they > test one record shape or two and that's it. E.g. > > test/langtools/tools/javac/records/mandated_members/read_resolve_method/CheckReadResolveMethodTest.java > > > I'd like to see a more combinatorial-oriented approach to such tests, > where at least we tests all primitive types plus a reference type of > choice, with varying degrees of arity (and w/, w/o varargs). > > > That's all for now > > Thanks > Maurizio > > On 21/10/2019 19:01, Maurizio Cimadamore wrote: >> Hi Vicente, >> I did a pretty thorough pass on most of the code. I didn't look at >> tests, and I also didn't look at Lower. Comments below: >> >> * Flags.java - VARARGS flag for records components; I wonder, instead >> of a new flag, can we use the internal VARARGS flag we have for >> methods, and attach that to the record symbol? That should also lead >> to more direct code in TypeHelper >> >> * Symbol.java - I think the override for 'erasure' is redundant - >> isn't that the impl from supertype? >> >> * Symbol.java (and others) in general this webrev shuld be updated as >> soon as Jan push the @Preview work, as I see that methods >> implementing preview API are using the 'deprecate for removal' >> annotation >> >> * Symbol.java - I wonder if accessor list with Pair >> isn't a premature generalization; we should just add a getter symbol >> and that's it >> >> * Attr.java - I think we might want to leave the door open for a >> check which forces all constructors of a record to go through the >> canonical one (depending on where the spec lands) >> >> * Check.java - understanding checkpoint: when we see an annotation on >> a record component, first we check it's one of the kinds which are >> allowed (if not, error), and, if it's allowed, we add all record >> component annotations to record component elements, and we also >> filter away all annotations that have nothing to do with the element >> in which they appear. If my understanding is correct, I think this >> logic should be documented more clearly; I found the comment after >> the "if (isRecordField)" to be a bit obscure. >> >> * Enter.java - why are you removing the static flag on records? I >> don't see anything similar around for enums. >> >> * Flow.java - not sure I get the changes to checkInit; typically >> checkInit is called at the use-site of DA/DU variables. Here it seems >> you suppress some of the errors emitted for accessing record fields >> inside the canonical constructor - but I hope that code like this >> >> record Foo(int x) { >> ?? Foo(int x) { >> ?????? print(this.x); >> ?? } >> } >> >> Still give errors? If this works correctly, which errors does the >> 'guard' around the error generation is supposed to protect against? >> >> * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only used >> here... >> >> * TypeEnter.java - implicit super calls are added in >> Attr::visitMethod for regular calls; we should do the same for >> records (or add all in TypeEnter - that is records and class should >> be consistent) >> >> * TypeEnter.java - on finishClass - you are calling memberEnter on >> record fields, which I think you already did in the new RecordsPhase >> >> * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal >> with _all_ record members (e.g. including accessors), not just some? >> >> * TypeEnter.java - checkForSerializationMember should probably be >> moved to MemberEnter::visitVar, or even to Attr (note that the code >> for the check is doing a little visit :-)) >> >> * TypeEnter.java - again on check timings; while it's ok for the code >> in here to add new synthetic members, I think it's less ok to add >> more global error checks (such as make sure that the canonical >> declaration whose parameter names match the record components in >> order); these should live in Attr. More generally, I think that we >> should only check stuff here if we think that the check will add any >> value to annotation processing. Every other check can be deferred, >> and take place in a more 'deterministic' part of javac. >> >> * TypeEnter.java - I think finishClass should be a bit better at >> determining as to whether default constructor is needed or not - for >> instance, this check: >> >> if ((sym.flags() & INTERFACE) == 0 && >> ?928???????????????? !TreeInfo.hasConstructors(tree.defs)) { >> >> Should be generalized to something that works for both classes and >> records; for classes you need to check if there's no other >> constructor; for records you need to check if there's no other >> constructor _with same signature_ as the canonical one. Then you can >> simplify addRecordMembers and remove the dependency on the boolean >> 'generatedConstructor' parameter. In other words the code should: >> >> 1) check if default/canonical constructor generation is required >> 2) if so, use the appropriate helper to generate the code >> 3) at the end, add the remaining record members (under the assumption >> that the canonical constructor has already been added in (1), if that >> was missing) >> >> *TypeEnter.java - addAccessor can be simplified if we only worry >> about getters. Again, the checks in here feel more Attr check than >> MemberEnter checks. >> >> *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we >> create a tree for a member, and then we visit the member tree with >> memberEnter, just to add it to the scope. I understand that, >> currently addEnumMembers does the same, but this looks very >> roundabout; I wonder if there's a way to make all this process a bit >> simpler - create a symbol and add that to the scope. Or are there >> important checks in MemberEnter that we would lose? >> >> *JCTree.java/TreeMaker.java - I don't think there's any need to store >> accessors in the field AST; these are only used from TypeEnter, and >> TypeEnter can do whatever it does by looking at which record >> components there are in the record class, and add a getter for each. >> Let's make the code simpler and more direct >> >> * ClassReader.java - should we just silently ignore record attributes >> when not in preview mode - or should we issue classfile errors? >> >> * ClassReader.java - what kind of validation should we do on record >> attributes? Currently javac does nothing. Should we check that we >> have (i) getters (ii) toString/hashCode/equals implementations and >> (iii) a canonical constructor (ad fail if we don't) ? At the very >> least I would add code to _parse_ the attribute, even if we do >> nothing with it, so that at least we throw a classfile error if the >> attribute is badly broken >> >> * Tokens.java - for "var", "yields" and other context-dependent >> keywords we never added a token. We just handled that in JavacParser. >> Why the difference here? I think it's best to stick to current style >> and maybe fix all of them (assuming that's what we want to do) in a >> followup cleanup. Actually, after looking at parser, it seems like >> you already handle that manually, so I just suggest to revert the >> changed to Tokens >> >> * TreeInfo.java - how is 'isCanonicalConstructor' not returning >> 'true' for all constructors inside a record, as opposed to only >> return true for the canonical one? >> >> * TreeInfo.java - There is some code reuse possible between >> "recordFieldTypes" and "recordFields" >> >> * Names.java - what is 'oldEquals' ? >> >> * JavacParser.java - timing of checks; I don't think we should check >> for illegal record component names in here >> >> * JavacParser.java - code can be simplified somewhat by getting rid >> of accessors in VarDef AST. >> >> >> >> >> >> On 21/10/2019 13:31, Vicente Romero wrote: >>> Hi, >>> >>> Please review the compiler code for JEP 359 (Records) [1] >>> >>> Thanks in advance for the feedback, >>> Vicente >>> >>> [1] >>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ From forax at univ-mlv.fr Mon Oct 21 22:02:21 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Tue, 22 Oct 2019 00:02:21 +0200 (CEST) Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> Message-ID: <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> The class ObjectMethods is in the package java.lang.invoke if you take a look to the source but in the package java.lang.runtime if you trust the webrev. It should be in java.lang.invoke so Claes (or someone else) will be able to optimize it later, otherwise if we want to use an internal non public MethodHandle, we will have to rely on a special SharedSecret class. I really dislike the bootstrap protocol: - first it means that you can not have more than 250 fields - the same call works for equals/hashCode and toString, so depending on the methods some arguments are not used or not (names is used only in toString). - theClass and lookup.lookupClass are the same if used from invokedynamic. - the whole "if the methodType is null, then return a MethodHandle instead of the callsite" is a hack that leak to the public interface. - the format 'names' is not the same as the one in the StringConcatFactory and what if the name are not the name of the record components or in wrong order. I propose the following design to fix these issues: All invokedynamic should takes the same constant dynamic as parameters typed as an Object. This object should be an instance of an internal class of ObjectMethods (let say RecordMirror) created or populated by the VM from the Record attribute, from inside the constant dynamic BSM, so there will be only one upcall and one downcall instead of one upcall per getter. This class can store the property names using the StringConcatFactory format and all the getters (the constant method handles). A kick and simple implementation can use Class.getRecordComponents() on the lookup.lookupClass() to populate the instance of RecordMirror. I will be less efficient than calling one native method that fills the RecordMirror instance but this can be optimized later. So the bootstrap method is just: public static Object bootstrap(Lookup lookup, String methodName, TypeDescriptor type, Object recordMirrorObject) The bootstrap can easy validate the recordMirrorObject just by doing a cast to RecordMirror. regards, R?mi ----- Mail original ----- > De: "Vicente Romero" > ?: "amber-dev" , "compiler-dev" > Envoy?: Lundi 21 Octobre 2019 23:10:09 > Objet: RFR: JEP 359-Records: reflection code > Hi, > > Please review the reflection code for JEP 359 (Records) at [1]. There is > a class here that is special [2] this contain the bootstrap methods for > equals, hashCode and toString methods in records. > > Thanks in advance for the feedback, > Vicente > > [1] http://cr.openjdk.java.net/~vromero/records.review/reflection/webrev.00/ > [2] > http://cr.openjdk.java.net/~vromero/records.review/reflection/webrev.00/src/java.base/share/classes/java/lang/runtime/ObjectMethods.java.html From maurizio.cimadamore at oracle.com Mon Oct 21 22:32:04 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 21 Oct 2019 23:32:04 +0100 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> Message-ID: <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> On 21/10/2019 23:02, Remi Forax wrote: > - the same call works for equals/hashCode and toString, so depending on the methods some arguments are not used or not I too found this a bit odd when looking at the javac code - it took me sometime to figure out what was going on. The question I have here is - is the decision of having a single point a deliberate decision that we think it's going to pay off in the long run? Or was it more a way to quickly bootstrap the javac implementation? If the latter, we should probably revert to one bootstrap per Object method. Maurizio From forax at univ-mlv.fr Mon Oct 21 23:31:01 2019 From: forax at univ-mlv.fr (forax at univ-mlv.fr) Date: Tue, 22 Oct 2019 01:31:01 +0200 (CEST) Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> Message-ID: <983359174.462351.1571700661292.JavaMail.zimbra@u-pem.fr> ----- Mail original ----- > De: "Maurizio Cimadamore" > ?: "Remi Forax" , "Vicente Romero" > Cc: "amber-dev" , "compiler-dev" > Envoy?: Mardi 22 Octobre 2019 00:32:04 > Objet: Re: RFR: JEP 359-Records: reflection code > On 21/10/2019 23:02, Remi Forax wrote: >> - the same call works for equals/hashCode and toString, so depending on the >> methods some arguments are not used or not > > I too found this a bit odd when looking at the javac code - it took me > sometime to figure out what was going on. > > The question I have here is - is the decision of having a single point a > deliberate decision that we think it's going to pay off in the long run? > Or was it more a way to quickly bootstrap the javac implementation? If > the latter, we should probably revert to one bootstrap per Object method. Having one bootstrap method makes the code more compact, because the boostrap method descriptor is shared inside the constant pool. But, you still have several boostrap method infos inside the BootstrapMethods attributes because the arguments of each BSM call is different. Having the same constant dynamic constant as argument for all bootstrap method calls allows more sharing. If we want more sharing, we can also make a new kind of constant pool constant to store the record components. It's not straightforward because a constant pool constant has to have a fixed size, so it can not store directly the record components but a constant pool constant can reference an attribute (the Record attribute) just by it's name and no value. With that, the bootstrap method calls will be able to load directly all the info needed to implement equals/hashCode and toString by reifying the record attribute into a RecordDescriptor. > > Maurizio R?mi From vicente.romero at oracle.com Tue Oct 22 02:40:34 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Mon, 21 Oct 2019 22:40:34 -0400 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> Message-ID: <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> On 10/21/19 6:32 PM, Maurizio Cimadamore wrote: > > On 21/10/2019 23:02, Remi Forax wrote: >> - the same call works for equals/hashCode and toString, so depending >> on the methods some arguments are not used or not > > I too found this a bit odd when looking at the javac code - it took me > sometime to figure out what was going on. > > The question I have here is - is the decision of having a single point > a deliberate decision that we think it's going to pay off in the long > run? it was a deliberate decision, the first implementation actually had different bootstrap methods but then we got a table with three bootstrap methods per every humble record, so having only one bootstrap method is a space gain. > Or was it more a way to quickly bootstrap the javac implementation? If > the latter, we should probably revert to one bootstrap per Object method. > > Maurizio > Vicente From srikanth.adayapalam at oracle.com Tue Oct 22 07:10:09 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Tue, 22 Oct 2019 07:10:09 +0000 Subject: hg: amber/amber: 8232763: [local-methods] Javac may invoke LambdaToMethod needlessly Message-ID: <201910220710.x9M7A9PD005355@aojmv0008.oracle.com> Changeset: 48f8da9e2fd9 Author: sadayapalam Date: 2019-10-22 12:39 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/48f8da9e2fd9 8232763: [local-methods] Javac may invoke LambdaToMethod needlessly ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java + test/langtools/tools/javac/policy/test2/LocalMethodsL2MTest.java + test/langtools/tools/javac/policy/test2/LocalMethodsL2MTest.out + test/langtools/tools/javac/policy/test2/LocalMethodsNoL2MTest.java + test/langtools/tools/javac/policy/test2/LocalMethodsNoL2MTest.out From maurizio.cimadamore at oracle.com Tue Oct 22 07:57:23 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 22 Oct 2019 08:57:23 +0100 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> Message-ID: <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> Ok, so the goal is share of CP entries (should be documented somewhere). I think in that case I would at least advocate for replacing the compiler generated string of names with some runtime concatenation using getter names; the concatenation is done at runtime, after all. Currently the code uses 'String::split' in the bootstrap which is not great, e.g. sometimes it inserts additional empty strings in the middle ( e.g. "foo;;bar"), and it's probably as expensive (if not more) as constructing the string from scratch (since it involves regex matching). I note that the bootstrap code protects against lengths mismatches with an 'assert', but the assert will not be run in production code, so there could be some surprising crashes there. If the code is kept this way I suggest at least replacing assert with a runtime exception (throw new AssertionError). E.g. I'm fine with assert keywords when it comes to checking invariants that are under control of the implementation (in which case, you run tests with assertion enabled to shake possible issues); but in this case the invariant depends on what names string the client has passed to the BSM, so I think some real validation is in order here. Maurizio On 22/10/2019 03:40, Vicente Romero wrote: > > > On 10/21/19 6:32 PM, Maurizio Cimadamore wrote: >> >> On 21/10/2019 23:02, Remi Forax wrote: >>> - the same call works for equals/hashCode and toString, so depending >>> on the methods some arguments are not used or not >> >> I too found this a bit odd when looking at the javac code - it took >> me sometime to figure out what was going on. >> >> The question I have here is - is the decision of having a single >> point a deliberate decision that we think it's going to pay off in >> the long run? > > it was a deliberate decision, the first implementation actually had > different bootstrap methods but then we got a table with three > bootstrap methods per every humble record, so having only one > bootstrap method is a space gain. >> Or was it more a way to quickly bootstrap the javac implementation? >> If the latter, we should probably revert to one bootstrap per Object >> method. >> >> Maurizio >> > Vicente From maurizio.cimadamore at oracle.com Tue Oct 22 07:59:07 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 22 Oct 2019 08:59:07 +0100 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> Message-ID: <2c61392a-a492-5bfb-06b5-48a517002396@oracle.com> > If the code is kept this way I suggest at least replacing assert with > a runtime exception (throw new AssertionError). E.g. I'm fine with > assert keywords when it comes to checking invariants that are under > control of the implementation (in which case, you run tests with > assertion enabled to shake possible issues); but in this case the > invariant depends on what names string the client has passed to the > BSM, so I think some real validation is in order here. My bad - there is a real validation, in the main BSM code: if (nameList.size() != getterList.size()) 342 throw new IllegalArgumentException("Name list and accessor list do not match"); So, the plain assert is fine in the toString impl. Maurizio > Maurizio > > > On 22/10/2019 03:40, Vicente Romero wrote: >> >> >> On 10/21/19 6:32 PM, Maurizio Cimadamore wrote: >>> >>> On 21/10/2019 23:02, Remi Forax wrote: >>>> - the same call works for equals/hashCode and toString, so >>>> depending on the methods some arguments are not used or not >>> >>> I too found this a bit odd when looking at the javac code - it took >>> me sometime to figure out what was going on. >>> >>> The question I have here is - is the decision of having a single >>> point a deliberate decision that we think it's going to pay off in >>> the long run? >> >> it was a deliberate decision, the first implementation actually had >> different bootstrap methods but then we got a table with three >> bootstrap methods per every humble record, so having only one >> bootstrap method is a space gain. >>> Or was it more a way to quickly bootstrap the javac implementation? >>> If the latter, we should probably revert to one bootstrap per Object >>> method. >>> >>> Maurizio >>> >> Vicente From forax at univ-mlv.fr Tue Oct 22 08:43:42 2019 From: forax at univ-mlv.fr (forax at univ-mlv.fr) Date: Tue, 22 Oct 2019 10:43:42 +0200 (CEST) Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> Message-ID: <1495460856.584807.1571733822969.JavaMail.zimbra@u-pem.fr> ----- Mail original ----- > De: "Maurizio Cimadamore" > ?: "Vicente Romero" , "Remi Forax" > Cc: "amber-dev" , "compiler-dev" > Envoy?: Mardi 22 Octobre 2019 09:57:23 > Objet: Re: RFR: JEP 359-Records: reflection code > Ok, so the goal is share of CP entries (should be documented somewhere). > > I think in that case I would at least advocate for replacing the > compiler generated string of names with some runtime concatenation using > getter names; the concatenation is done at runtime, after all. Getting the name from a method handle is not that simple. Usually you can't. In this peculiar example you can because you can call revealDirect [1] on the lookup because the same lookup is used to create the getters and calling the BSM. But i still think it's better to do not send any arguments and use getRecordComponents() at runtime or to enable object sharing between the BSM calls to use one constant dynamic as argument and initialize it with the calls to getRecordComponents(). [...] > Maurizio R?mi [1] https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/invoke/MethodHandles.Lookup.html#revealDirect(java.lang.invoke.MethodHandle) > > > On 22/10/2019 03:40, Vicente Romero wrote: >> >> >> On 10/21/19 6:32 PM, Maurizio Cimadamore wrote: >>> >>> On 21/10/2019 23:02, Remi Forax wrote: >>>> - the same call works for equals/hashCode and toString, so depending >>>> on the methods some arguments are not used or not >>> >>> I too found this a bit odd when looking at the javac code - it took >>> me sometime to figure out what was going on. >>> >>> The question I have here is - is the decision of having a single >>> point a deliberate decision that we think it's going to pay off in >>> the long run? >> >> it was a deliberate decision, the first implementation actually had >> different bootstrap methods but then we got a table with three >> bootstrap methods per every humble record, so having only one >> bootstrap method is a space gain. >>> Or was it more a way to quickly bootstrap the javac implementation? >>> If the latter, we should probably revert to one bootstrap per Object >>> method. >>> >>> Maurizio >>> > > Vicente From maurizio.cimadamore at oracle.com Tue Oct 22 08:51:03 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 22 Oct 2019 09:51:03 +0100 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <1495460856.584807.1571733822969.JavaMail.zimbra@u-pem.fr> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> <1495460856.584807.1571733822969.JavaMail.zimbra@u-pem.fr> Message-ID: <0290bcd0-f2a2-083a-0fff-29cd80df8a31@oracle.com> On 22/10/2019 09:43, forax at univ-mlv.fr wrote: > ----- Mail original ----- >> De: "Maurizio Cimadamore" >> ?: "Vicente Romero" , "Remi Forax" >> Cc: "amber-dev" , "compiler-dev" >> Envoy?: Mardi 22 Octobre 2019 09:57:23 >> Objet: Re: RFR: JEP 359-Records: reflection code >> Ok, so the goal is share of CP entries (should be documented somewhere). >> >> I think in that case I would at least advocate for replacing the >> compiler generated string of names with some runtime concatenation using >> getter names; the concatenation is done at runtime, after all. > Getting the name from a method handle is not that simple. > Usually you can't. In this peculiar example you can because you can call revealDirect [1] on the lookup because the same lookup is used to create the getters and calling the BSM. Let me rephrase. We have Class::getRecordComponents; and we have RecordComponent::accessor. What is the need to pass _anything_ to the BSM, other than the record class (e.g. Point.class) AND the method name (e.g. toString) ? The BSM can take the .class, and get the components; from there: - you can easily derive names - you can also easily derive accessor MHs (just a lookup away) I was _not_ advocating for extracting a name from a direct method handle - that seems brittle, given that the compiler implementation might change, eventually. But doubling down on the reflection API seems the right thing to do? Maurizio > > But i still think it's better to do not send any arguments and use getRecordComponents() at runtime or to enable object sharing between the BSM calls to use one constant dynamic as argument and initialize it with the calls to getRecordComponents(). > > [...] > >> Maurizio > R?mi > > [1] https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/invoke/MethodHandles.Lookup.html#revealDirect(java.lang.invoke.MethodHandle) > > >> >> On 22/10/2019 03:40, Vicente Romero wrote: >>> >>> On 10/21/19 6:32 PM, Maurizio Cimadamore wrote: >>>> On 21/10/2019 23:02, Remi Forax wrote: >>>>> - the same call works for equals/hashCode and toString, so depending >>>>> on the methods some arguments are not used or not >>>> I too found this a bit odd when looking at the javac code - it took >>>> me sometime to figure out what was going on. >>>> >>>> The question I have here is - is the decision of having a single >>>> point a deliberate decision that we think it's going to pay off in >>>> the long run? >>> it was a deliberate decision, the first implementation actually had >>> different bootstrap methods but then we got a table with three >>> bootstrap methods per every humble record, so having only one >>> bootstrap method is a space gain. >>>> Or was it more a way to quickly bootstrap the javac implementation? >>>> If the latter, we should probably revert to one bootstrap per Object >>>> method. >>>> >>>> Maurizio >>>> >>> Vicente From srikanth.adayapalam at oracle.com Tue Oct 22 09:30:10 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Tue, 22 Oct 2019 09:30:10 +0000 Subject: hg: amber/amber: 8232764: [local-methods] Javac crashes compiling a method local to an initializer block Message-ID: <201910220930.x9M9UBdp013280@aojmv0008.oracle.com> Changeset: eecb73c873b5 Author: sadayapalam Date: 2019-10-22 14:59 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/eecb73c873b5 8232764: [local-methods] Javac crashes compiling a method local to an initializer block ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java + test/langtools/tools/javac/localmethods/MethodsInInitBlocksTest.java From chris.hegarty at oracle.com Tue Oct 22 09:41:28 2019 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Tue, 22 Oct 2019 10:41:28 +0100 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <0290bcd0-f2a2-083a-0fff-29cd80df8a31@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> <1495460856.584807.1571733822969.JavaMail.zimbra@u-pem.fr> <0290bcd0-f2a2-083a-0fff-29cd80df8a31@oracle.com> Message-ID: > On 22 Oct 2019, at 09:51, Maurizio Cimadamore wrote: > > .. > > Let me rephrase. We have Class::getRecordComponents; and we have RecordComponent::accessor. > > What is the need to pass _anything_ to the BSM, other than the record class (e.g. Point.class) AND the method name (e.g. toString) ? > > The BSM can take the .class, and get the components; from there: > > - you can easily derive names > - you can also easily derive accessor MHs (just a lookup away) > > I was _not_ advocating for extracting a name from a direct method handle - that seems brittle, given that the compiler implementation might change, eventually. But doubling down on the reflection API seems the right thing to do? A quick change shows that this simplifies the code a lot ( since there is less arg checking ) http://cr.openjdk.java.net/~chegar/records/ObjectMethods.00/ Q: the TypeDescriptor arg can be used for linking a dynamic constant. Is this still needed? -Chris. From maurizio.cimadamore at oracle.com Tue Oct 22 10:01:47 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 22 Oct 2019 11:01:47 +0100 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> <1495460856.584807.1571733822969.JavaMail.zimbra@u-pem.fr> <0290bcd0-f2a2-083a-0fff-29cd80df8a31@oracle.com> Message-ID: <07953f08-579e-9490-4c94-82c2949aa17c@oracle.com> Thinking more, I think the fundamental reason as to why the bootstrap method leaves me not 100% convinced is that, on the one hand, ObjectMethods tries hard to be a _general_ helper class, offering a bootstrap method to compute equals/hashCode/toString on _all_ classes, not just records. And, I think, it is because of that generality that the bootstrap method receives a bunch of getter method handles - so that e.g. other language implementation can still use these methods on regular POJOs. But, if this is meant to be a general building block, then I don't understand e.g. why we are unifying all the signatures. If a client wants hashCode, I think it is kind of a design flaw that (i) there's no such BSM with that name (the BSM is just called "bootstrap") and (ii) that there still a requirement to pass a 'name list', which is ignored by the BSM. So, the _general_ building block case seems to push for one BSM per Object method, whereas the record translation use case seems to push towards a single unified BSM. I think we can actually have our cake and eat it too: 1) ObjectMethods could expose several BSMs - one for each Object method, with the _right_ static argument list and names, to make it easy for clients to find them. Of course, for generality, these methods should be expressed in terms of MethodHandle[], since we can't rely on the class being a record 2) We coud add a j.l.Record.bootstrap, which, using core reflection could extract the required ingredients, before delegating to the _right_ BSM in ObjectMethods (e.g. the MH list and the names list) This way we get the best of both worlds: sharp BSMs for clients that just want to implement object methods (which also works on things that are not records); unified BSM which act as a record translation target. Maurizio On 22/10/2019 10:41, Chris Hegarty wrote: > > >> On 22 Oct 2019, at 09:51, Maurizio Cimadamore >> > > wrote: >> >> .. >> >> Let me rephrase. We have Class::getRecordComponents; and we have >> RecordComponent::accessor. >> >> What is the need to pass _anything_ to the BSM, other than the record >> class (e.g. Point.class) AND the method name (e.g. toString) ? >> >> The BSM can take the .class, and get the components; from there: >> >> - you can easily derive names >> - you can also easily derive accessor MHs (just a lookup away) >> >> I was _not_ advocating for extracting a name from a direct method >> handle - that seems brittle, given that the compiler implementation >> might change, eventually. But doubling down on the reflection API >> seems the right thing to do? > > A quick change shows that this simplifies the code a lot ( since there > is less arg checking ) > > http://cr.openjdk.java.net/~chegar/records/ObjectMethods.00/ > > Q: the TypeDescriptor arg can be used for linking a dynamic constant. > Is this still needed? > > -Chris. From chris.hegarty at oracle.com Tue Oct 22 10:26:46 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Tue, 22 Oct 2019 10:26:46 +0000 Subject: hg: amber/amber: records: review comments - SUID is allowable but ignored during deserialization Message-ID: <201910221026.x9MAQkUH013521@aojmv0008.oracle.com> Changeset: 52a9226db842 Author: chegar Date: 2019-10-22 11:26 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/52a9226db842 records: review comments - SUID is allowable but ignored during deserialization ! src/java.base/share/classes/java/io/ObjectStreamClass.java ! test/jdk/java/io/Serializable/records/RecordClassTest.java + test/jdk/java/io/Serializable/records/SerialVersionUIDTest.java ! test/jdk/java/io/Serializable/records/migration/plain/AssignableFromImpl.java ! test/jdk/java/io/Serializable/records/migration/record/AssignableFromImpl.java From chris.hegarty at oracle.com Tue Oct 22 12:41:59 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Tue, 22 Oct 2019 12:41:59 +0000 Subject: hg: amber/amber: records: review comments - add missing license header and at since javadoc tag Message-ID: <201910221242.x9MCg09j026698@aojmv0008.oracle.com> Changeset: 31b6ebe43579 Author: chegar Date: 2019-10-22 13:41 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/31b6ebe43579 records: review comments - add missing license header and at since javadoc tag ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java From chris.hegarty at oracle.com Tue Oct 22 12:44:14 2019 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Tue, 22 Oct 2019 13:44:14 +0100 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> Message-ID: > On 21 Oct 2019, at 22:10, Vicente Romero wrote: > > Hi, > > Please review the reflection code for JEP 359 (Records) at [1]. There is a class here that is special [2] this contain the bootstrap methods for equals, hashCode and toString methods in records. > > Thanks in advance for the feedback, > Vicente > > [1] http://cr.openjdk.java.net/~vromero/records.review/reflection/webrev.00/ A few minor comments to get out of the way: 1) missing license header, and 2) missing @since javadoc tag Pushed to the records branch: https://hg.openjdk.java.net/amber/amber/rev/31b6ebe43579 -Chris. From chris.hegarty at oracle.com Tue Oct 22 12:48:01 2019 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Tue, 22 Oct 2019 13:48:01 +0100 Subject: RFR: JEP 359-Records: serialization code and API changes In-Reply-To: References: Message-ID: > On 21 Oct 2019, at 19:32, Vicente Romero wrote: > > Hi all, > > Please review the serialization changes to support records. > > Thanks, > Vicente > > http://cr.openjdk.java.net/~vromero/records.review/serialization/webrev.00/ Peter has raised an issue over on amber-spec-experts [1], which has been addressed in the records branch. -Chris. [1] https://mail.openjdk.java.net/pipermail/amber-spec-experts/2019-October/001731.html From gavin.bierman at oracle.com Tue Oct 22 13:34:15 2019 From: gavin.bierman at oracle.com (Gavin Bierman) Date: Tue, 22 Oct 2019 14:34:15 +0100 Subject: Draft JLS spec for JEP 305: Pattern matching for instanceof In-Reply-To: References: <2596DE6A-0154-488A-9EDC-031A6E300CF0@oracle.com> Message-ID: <26B46A27-B3B8-4686-9758-56B99E5F86FA@oracle.com> > On 21 Oct 2019, at 15:49, Chris Hegarty wrote: > > > >> On 21 Oct 2019, at 10:50, Gavin Bierman wrote: >> >> A second, and hopefully final, draft language spec for JEP 305 (Pattern matching for instanceof) is available at: >> >> http://cr.openjdk.java.net/~gbierman/jep305/jep305-20191021/specs/patterns-instanceof-jls.html > > While proofreading, I came across a minor issue in 15.20.2: > > "? The expression RelationalExpression is compatible with the type ReferenceType if (i) RelationalExpression can be converted to type ReferenceType by casting conversion (5.5), and (ii) the casting conversion does not make use of a narrowing reference conversion which is unchecked (5.1.6.2). If ReferenceType is not compatible with ReferenceType then a compile-time error occurs." > > Should be: > If *RelationalExpression* is not compatible with ReferenceType then a compile-time error occurs. Thanks. Will fix. Gavin From harold.seigel at oracle.com Tue Oct 22 13:43:27 2019 From: harold.seigel at oracle.com (Harold Seigel) Date: Tue, 22 Oct 2019 09:43:27 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Message-ID: Thanks Lois! Please see comments inline. On 10/21/2019 2:40 PM, Lois Foltan wrote: > On 10/18/2019 2:44 PM, Vicente Romero wrote: >> Hi, >> >> Please review the hotspot runtime and serviceability code for JEP 359 >> (Records). >> >> Thanks in advance for the feedback, >> Vicente >> >> PS, Thanks to Harold for the development >> >> >> [1] >> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ > > Harold, Vicente, > > Overall this looks good!? Some comments: > > src/hotspot/share/classfile/classFileParser.cpp > - line #3226: I mentiond this below that I would like to see the > comment from jvmtiClassFileReconstituter.cp ahead of > ClassFileParser::parse_classfile_record_attribute() so it is easy to > follow the expected layout. Done. > - line #3275: Ahead of the for loop it would be good to add a comment > listing what the expected attributes are for Records. Done. > - line #4732: The added check of "!major_gte_14" looks incorrect for > final abstract classes.? That isn't relevant to Records, correct? That's a bug!? Thanks for finding it.? I'll remove the "!major_gte_14". > > src/hotspot/share/prims/jvm.cpp > - line #1737 - #1739: use oopFactory::new_objArrayHandle() instead of > breaking this accross 2 lines. I don't think this should be done because of the CHECK_NULL: ????? objArrayOop record_components = oopFactory::new_objArray(SystemDictionary::RecordComponent_klass(), length, CHECK_NULL); ????? objArrayHandle components_h (THREAD, record_components); > - line #1751: please add a comment that indicates the behavior when > the InstanceKlass is not a record.? It seems like an empty array is > returned? Done. > > src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp > - copyright update needed. > - line #427-438: I like the comment, can you add that ahead of > ClassFileParser::parse_classfile_record_attribute(). Done. > > src/hotspot/share/prims/jvmtiRedefineClasses.cpp > - line #839 - comment "of" should be "if"? Done. > > src/hotspot/share/oops/recordComponent.hpp > - line #95 - determination of TBD comment needed before committing. Done. > > I still need to review the tests. Thanks! Harold > > Thanks, > Lois > From vicente.romero at oracle.com Tue Oct 22 14:45:28 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Tue, 22 Oct 2019 10:45:28 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Message-ID: Hi Lois, Thanks for the review, Vicente On 10/21/19 2:40 PM, Lois Foltan wrote: > On 10/18/2019 2:44 PM, Vicente Romero wrote: >> Hi, >> >> Please review the hotspot runtime and serviceability code for JEP 359 >> (Records). >> >> Thanks in advance for the feedback, >> Vicente >> >> PS, Thanks to Harold for the development >> >> >> [1] >> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ > > Harold, Vicente, > > Overall this looks good!? Some comments: > > src/hotspot/share/classfile/classFileParser.cpp > - line #3226: I mentiond this below that I would like to see the > comment from jvmtiClassFileReconstituter.cp ahead of > ClassFileParser::parse_classfile_record_attribute() so it is easy to > follow the expected layout. > - line #3275: Ahead of the for loop it would be good to add a comment > listing what the expected attributes are for Records. > - line #4732: The added check of "!major_gte_14" looks incorrect for > final abstract classes.? That isn't relevant to Records, correct? > > src/hotspot/share/prims/jvm.cpp > - line #1737 - #1739: use oopFactory::new_objArrayHandle() instead of > breaking this accross 2 lines. > - line #1751: please add a comment that indicates the behavior when > the InstanceKlass is not a record.? It seems like an empty array is > returned? > > src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp > - copyright update needed. > - line #427-438: I like the comment, can you add that ahead of > ClassFileParser::parse_classfile_record_attribute(). > > src/hotspot/share/prims/jvmtiRedefineClasses.cpp > - line #839 - comment "of" should be "if"? > > src/hotspot/share/oops/recordComponent.hpp > - line #95 - determination of TBD comment needed before committing. > > I still need to review the tests. > > Thanks, > Lois > From jan.lahoda at oracle.com Tue Oct 22 15:21:19 2019 From: jan.lahoda at oracle.com (Jan Lahoda) Date: Tue, 22 Oct 2019 17:21:19 +0200 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> Message-ID: <4d312903-7d01-3055-aff1-6c4e19866b71@oracle.com> Hi, In addition to Maurizio's comments, a few more comments: -for tests, "--enable-preview -source 14" is used on many places. This will cause issues when JDK 15 is started (and --enable-preview -source 14 will be replaced with --enable-preview -source 15). On all places where that is possible, "--enable-preview -source ${jdk.version}" should be used, or a programmatic equivalent. -for code like this: ---$ cat R.java public record R(int i) {} --- compiling without --enable-preview: --- $ javac R.java /tmp/R.java:1: error: class, interface, or enum expected public record R(int i) {} ^ 1 error --- it would be nice if we could provide some helpful note that to get support for records, --enable-preview needs to be used. It may not be possible to embed that into the error esp. for nested records, but at least a warning. Just so that the user would get a hint what they are doing wrong if records don't work for them. -in Flags, it would be nice to document on which Symbols given flag may appear. That would be useful in order to partition the Flags into separate Symbol-kind specific sub-sets. -in Lower, there is method "recordVars, which looks at the superclasses of a record, to see if these have a state component - is a record superclass of a record allowed? (I thought it isn't.) -there seem to be commented debugs in Check, like: + //System.out.println("at Check.validateAnnotation: flags: " + Flags.toString(s.flags_field) + ", declaration tree " + declarationTree); Ideally, these would be removed -in: test/langtools/tools/javac/launcher/SourceLauncherTest.javathere are changes like: - file + ":1: error: class, interface, or enum expected\n" + + file + ":1: error: class, interface, enum expected\n" + are these intentional? These seem suspicious to me. -in: test/langtools/tools/javac/processing/model/element/TestRecord.java and: test/langtools/tools/javac/processing/model/element/TestRecordDesugar.java there is @bug 8888888 - that seems like a placeholder number. Thanks, Jan On 21. 10. 19 22:44, Maurizio Cimadamore wrote: > And here are some comments on Lower > > - findMethodOrFailSilently? doesn't seem to be used anywhere; this > should be removed and associated changes in Resolve reverted > > - findUserDefinedAccessors - this seems to have to do with setting the > record component symbol straight - this should happen well before Lower, > otherwise I'm not even sure what annotations processor will see? This > code should go in TypeEnter, where you already look up for existing > accessor. > > - related; not 100% as to why in visitRecordDef you protect against > accessor not being there - which means you need to do a lookup. You need > to get to this part of the code where all accessors have been set. Then > the code can be simplified. > > - As pointed out previously, getting rid of the Pair > accessor will result in cascading simplification in few methods in Lower > too > > - both the signature generator and the indy machinery are shared between > LambdaToMethod and Lower - so we should probably put them somewhere in a > common superclass which can be used by the various backend steps > > - I guess the main translation strategy for record members is to > generate an indy - where the runtime gives you back some constant > callsite which wraps a method handle with the right signature. If so, > some comments should be sprinkled around to clarify that this is indeed > the case. > > - I also guess that the if/else in generateRecordMethod is to avoid > generating a tree if an explicit member has been declared by the user - > again, correct, but some comments please ;-) > > > Also some comments? on tests: > > * test/langtools/tools/javac/6402516/CheckLocalElements.java - why the > change? > > * test/langtools/tools/javac/AnonymousClass/AnonymousClassFlags.java - > why the change from @run to @compile? > > * > test/langtools/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java > - who is using the new target? > > * diags/** in general, for all new diagnostics added it would be nice to > have an html of the output (I have a script for doing that, let me know > if you need it) > > * examples-not-yet - why no test for local records? That should be easy > to add (I hope)? > > * test/langtools/tools/javac/parser/JavacParserTest.java - here I wonder > if we should have different messages depending on the version (eg. we > don't want to say 'expected records' if compiling with -source 12?) > > *? test/langtools/tools/javac/tree/JavacTreeScannerTest.java, > test/langtools/tools/javac/tree/SourceTreeScannerTest.java, > src/jdk.compiler/share/classes/com/sun/tools/javac/code/Accessors.java - > seems like these probably depend on the accessor pairs being in the AST? > > * test/langtools/tools/javac/doctree/AccessorsTest.java - not sure about > this, does it even belong to this patch? I'd be surprised if DocTree > does anything special with accessors? > > * test/langtools/tools/javac/doctree/AccessorsTest.java - this tests > that ElementFilter and getAccessor() agree, but doesn't test that they > actually yield the correct result > > * more generally, certain tests (e.g. signature mismatches, record > component names order mismatches, reflection tests, serialization tests) > have a certain ad-hoc nature to them - in the sense that they test one > record shape or two and that's it. E.g. > > test/langtools/tools/javac/records/mandated_members/read_resolve_method/CheckReadResolveMethodTest.java > > > I'd like to see a more combinatorial-oriented approach to such tests, > where at least we tests all primitive types plus a reference type of > choice, with varying degrees of arity (and w/, w/o varargs). > > > That's all for now > > Thanks > Maurizio > > On 21/10/2019 19:01, Maurizio Cimadamore wrote: >> Hi Vicente, >> I did a pretty thorough pass on most of the code. I didn't look at >> tests, and I also didn't look at Lower. Comments below: >> >> * Flags.java - VARARGS flag for records components; I wonder, instead >> of a new flag, can we use the internal VARARGS flag we have for >> methods, and attach that to the record symbol? That should also lead >> to more direct code in TypeHelper >> >> * Symbol.java - I think the override for 'erasure' is redundant - >> isn't that the impl from supertype? >> >> * Symbol.java (and others) in general this webrev shuld be updated as >> soon as Jan push the @Preview work, as I see that methods implementing >> preview API are using the 'deprecate for removal' annotation >> >> * Symbol.java - I wonder if accessor list with Pair >> isn't a premature generalization; we should just add a getter symbol >> and that's it >> >> * Attr.java - I think we might want to leave the door open for a check >> which forces all constructors of a record to go through the canonical >> one (depending on where the spec lands) >> >> * Check.java - understanding checkpoint: when we see an annotation on >> a record component, first we check it's one of the kinds which are >> allowed (if not, error), and, if it's allowed, we add all record >> component annotations to record component elements, and we also filter >> away all annotations that have nothing to do with the element in which >> they appear. If my understanding is correct, I think this logic should >> be documented more clearly; I found the comment after the "if >> (isRecordField)" to be a bit obscure. >> >> * Enter.java - why are you removing the static flag on records? I >> don't see anything similar around for enums. >> >> * Flow.java - not sure I get the changes to checkInit; typically >> checkInit is called at the use-site of DA/DU variables. Here it seems >> you suppress some of the errors emitted for accessing record fields >> inside the canonical constructor - but I hope that code like this >> >> record Foo(int x) { >> ?? Foo(int x) { >> ?????? print(this.x); >> ?? } >> } >> >> Still give errors? If this works correctly, which errors does the >> 'guard' around the error generation is supposed to protect against? >> >> * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only used >> here... >> >> * TypeEnter.java - implicit super calls are added in Attr::visitMethod >> for regular calls; we should do the same for records (or add all in >> TypeEnter - that is records and class should be consistent) >> >> * TypeEnter.java - on finishClass - you are calling memberEnter on >> record fields, which I think you already did in the new RecordsPhase >> >> * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal >> with _all_ record members (e.g. including accessors), not just some? >> >> * TypeEnter.java - checkForSerializationMember should probably be >> moved to MemberEnter::visitVar, or even to Attr (note that the code >> for the check is doing a little visit :-)) >> >> * TypeEnter.java - again on check timings; while it's ok for the code >> in here to add new synthetic members, I think it's less ok to add more >> global error checks (such as make sure that the canonical declaration >> whose parameter names match the record components in order); these >> should live in Attr. More generally, I think that we should only check >> stuff here if we think that the check will add any value to annotation >> processing. Every other check can be deferred, and take place in a >> more 'deterministic' part of javac. >> >> * TypeEnter.java - I think finishClass should be a bit better at >> determining as to whether default constructor is needed or not - for >> instance, this check: >> >> if ((sym.flags() & INTERFACE) == 0 && >> ?928???????????????? !TreeInfo.hasConstructors(tree.defs)) { >> >> Should be generalized to something that works for both classes and >> records; for classes you need to check if there's no other >> constructor; for records you need to check if there's no other >> constructor _with same signature_ as the canonical one. Then you can >> simplify addRecordMembers and remove the dependency on the boolean >> 'generatedConstructor' parameter. In other words the code should: >> >> 1) check if default/canonical constructor generation is required >> 2) if so, use the appropriate helper to generate the code >> 3) at the end, add the remaining record members (under the assumption >> that the canonical constructor has already been added in (1), if that >> was missing) >> >> *TypeEnter.java - addAccessor can be simplified if we only worry about >> getters. Again, the checks in here feel more Attr check than >> MemberEnter checks. >> >> *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we >> create a tree for a member, and then we visit the member tree with >> memberEnter, just to add it to the scope. I understand that, currently >> addEnumMembers does the same, but this looks very roundabout; I wonder >> if there's a way to make all this process a bit simpler - create a >> symbol and add that to the scope. Or are there important checks in >> MemberEnter that we would lose? >> >> *JCTree.java/TreeMaker.java - I don't think there's any need to store >> accessors in the field AST; these are only used from TypeEnter, and >> TypeEnter can do whatever it does by looking at which record >> components there are in the record class, and add a getter for each. >> Let's make the code simpler and more direct >> >> * ClassReader.java - should we just silently ignore record attributes >> when not in preview mode - or should we issue classfile errors? >> >> * ClassReader.java - what kind of validation should we do on record >> attributes? Currently javac does nothing. Should we check that we have >> (i) getters (ii) toString/hashCode/equals implementations and (iii) a >> canonical constructor (ad fail if we don't) ? At the very least I >> would add code to _parse_ the attribute, even if we do nothing with >> it, so that at least we throw a classfile error if the attribute is >> badly broken >> >> * Tokens.java - for "var", "yields" and other context-dependent >> keywords we never added a token. We just handled that in JavacParser. >> Why the difference here? I think it's best to stick to current style >> and maybe fix all of them (assuming that's what we want to do) in a >> followup cleanup. Actually, after looking at parser, it seems like you >> already handle that manually, so I just suggest to revert the changed >> to Tokens >> >> * TreeInfo.java - how is 'isCanonicalConstructor' not returning 'true' >> for all constructors inside a record, as opposed to only return true >> for the canonical one? >> >> * TreeInfo.java - There is some code reuse possible between >> "recordFieldTypes" and "recordFields" >> >> * Names.java - what is 'oldEquals' ? >> >> * JavacParser.java - timing of checks; I don't think we should check >> for illegal record component names in here >> >> * JavacParser.java - code can be simplified somewhat by getting rid of >> accessors in VarDef AST. >> >> >> >> >> >> On 21/10/2019 13:31, Vicente Romero wrote: >>> Hi, >>> >>> Please review the compiler code for JEP 359 (Records) [1] >>> >>> Thanks in advance for the feedback, >>> Vicente >>> >>> [1] >>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ From brian.goetz at oracle.com Tue Oct 22 16:26:56 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 22 Oct 2019 12:26:56 -0400 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> Message-ID: > The class ObjectMethods is in the package java.lang.invoke if you take a look to the source but in the package java.lang.runtime if you trust the webrev. > > It should be in java.lang.invoke so Claes (or someone else) will be able to optimize it later, otherwise if we want to use an internal non public MethodHandle, > we will have to rely on a special SharedSecret class. No. Going forward, _all_ language-support runtime is moving to java.lang.runtime. We got where we are today honestly, first by putting LambdaMetafactory there, and then string concat, but going forward, JLI is not the place for the language support runtime, and we need to reverse this trend. JLI is for the java.lang.invoke implementation. We?re in the process of disentangling the dependence of LMF and string concat on JLI internals. > I propose the following design to fix these issues: > All invokedynamic should takes the same constant dynamic as parameters typed as an Object. > This object should be an instance of an internal class of ObjectMethods (let say RecordMirror) created or populated by the VM from the Record attribute, from inside the constant dynamic BSM, so there will be only one upcall and one downcall instead of one upcall per getter. I think you?re suggesting something like: interface ObjectMethodsMirror { int numParams(); String paramName(int n); MethodHandle paramAccessor(int n); } or something similar? And then some code to derive such a thing from a record? I don?t intrinsically object to this approach, but I?m also not entirely convinced. Don?t forget, this is not just for records. Value types, and other language compilers that have similar mechanisms, may want to use this as well, so anything with ?record? in the name is likely wrong. > This class can store the property names using the StringConcatFactory format and all the getters (the constant method handles). Aligning the name format is reasonable. > So the bootstrap method is just: > public static Object bootstrap(Lookup lookup, String methodName, TypeDescriptor type, Object recordMirrorObject) BZZT, you used the R-word :) If w?ere going this way, I would much prefer to use an interface. Then we need a condy bootstrap to serve up the mirror ? the sensible version of which, hmm, looks a lot like the current bootstrap?. From forax at univ-mlv.fr Tue Oct 22 16:28:57 2019 From: forax at univ-mlv.fr (forax at univ-mlv.fr) Date: Tue, 22 Oct 2019 18:28:57 +0200 (CEST) Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <07953f08-579e-9490-4c94-82c2949aa17c@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> <1495460856.584807.1571733822969.JavaMail.zimbra@u-pem.fr> <0290bcd0-f2a2-083a-0fff-29cd80df8a31@oracle.com> <07953f08-579e-9490-4c94-82c2949aa17c@oracle.com> Message-ID: <1949854612.811379.1571761737354.JavaMail.zimbra@u-pem.fr> Maurizio, This seems a good idea to separate the API in (1) and (2). I think the BSM of (1) should return a MethodHandle instead of a CallSite and don't have a be real BSM but an API method that can be called by a BSM (see below). There is still an issue with (2). As i understand you will have to extract the ingredients each time you call the BSM, so once for each toString/equals/hashCode instead of once for all of them. To be able to share the extraction of the ingredients, the simplest way is to have a contstant dynamic that create an instance of the class that will contains the ingredient (i wonder if there is a bonus point to use a record class for that :) ) so the ingredients are extracted once and stored in an opaque object in the constant pool then each invokedynamic call inside toString/equals/hashCode can take that object as their argument. And for the trick to return a constant method handle because in the future maybe we will be able to use a MethodHandle instead of a ConstantCallSite + a MethodHandle, the BSM (2) should have a relaxed signature (return an Object) but the implementation doesn't have to support that now and when we will need it, it believe the best way to do that will be to document that in the future this BSM may return a MethodHandle instead of a CallSite so user code should be ready to deal with that. R?mi > De: "Maurizio Cimadamore" > ?: "Chris Hegarty" > Cc: "Remi Forax" , "amber-dev" , > "compiler-dev" > Envoy?: Mardi 22 Octobre 2019 12:01:47 > Objet: Re: RFR: JEP 359-Records: reflection code > Thinking more, > I think the fundamental reason as to why the bootstrap method leaves me not 100% > convinced is that, on the one hand, ObjectMethods tries hard to be a _general_ > helper class, offering a bootstrap method to compute equals/hashCode/toString > on _all_ classes, not just records. And, I think, it is because of that > generality that the bootstrap method receives a bunch of getter method handles > - so that e.g. other language implementation can still use these methods on > regular POJOs. > But, if this is meant to be a general building block, then I don't understand > e.g. why we are unifying all the signatures. If a client wants hashCode, I > think it is kind of a design flaw that (i) there's no such BSM with that name > (the BSM is just called "bootstrap") and (ii) that there still a requirement to > pass a 'name list', which is ignored by the BSM. > So, the _general_ building block case seems to push for one BSM per Object > method, whereas the record translation use case seems to push towards a single > unified BSM. > I think we can actually have our cake and eat it too: > 1) ObjectMethods could expose several BSMs - one for each Object method, with > the _right_ static argument list and names, to make it easy for clients to find > them. Of course, for generality, these methods should be expressed in terms of > MethodHandle[], since we can't rely on the class being a record > 2) We coud add a j.l.Record.bootstrap, which, using core reflection could > extract the required ingredients, before delegating to the _right_ BSM in > ObjectMethods (e.g. the MH list and the names list) > This way we get the best of both worlds: sharp BSMs for clients that just want > to implement object methods (which also works on things that are not records); > unified BSM which act as a record translation target. > Maurizio > On 22/10/2019 10:41, Chris Hegarty wrote: >>> On 22 Oct 2019, at 09:51, Maurizio Cimadamore < [ >>> mailto:maurizio.cimadamore at oracle.com | maurizio.cimadamore at oracle.com ] > >>> wrote: >>> .. >>> Let me rephrase. We have Class::getRecordComponents; and we have >>> RecordComponent::accessor. >>> What is the need to pass _anything_ to the BSM, other than the record class >>> (e.g. Point.class) AND the method name (e.g. toString) ? >>> The BSM can take the .class, and get the components; from there: >>> - you can easily derive names >>> - you can also easily derive accessor MHs (just a lookup away) >>> I was _not_ advocating for extracting a name from a direct method handle - that >>> seems brittle, given that the compiler implementation might change, eventually. >>> But doubling down on the reflection API seems the right thing to do? >> A quick change shows that this simplifies the code a lot ( since there is less >> arg checking ) >> [ http://cr.openjdk.java.net/~chegar/records/ObjectMethods.00/ | >> http://cr.openjdk.java.net/~chegar/records/ObjectMethods.00/ ] >> Q: the TypeDescriptor arg can be used for linking a dynamic constant. Is this >> still needed? >> -Chris. From brian.goetz at oracle.com Tue Oct 22 16:34:13 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 22 Oct 2019 12:34:13 -0400 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <07953f08-579e-9490-4c94-82c2949aa17c@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1385583467.451521.1571695341077.JavaMail.zimbra@u-pem.fr> <60453a78-b284-19cd-4b11-c5db07c50b6b@oracle.com> <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> <1495460856.584807.1571733822969.JavaMail.zimbra@u-pem.fr> <0290bcd0-f2a2-083a-0fff-29cd80df8a31@oracle.com> <07953f08-579e-9490-4c94-82c2949aa17c@oracle.com> Message-ID: <26F16E3F-E993-4FFF-8084-3DF32B8D68C6@oracle.com> I think there?s something in between ?specific to records? and ?general building block?. It definitely, 100% was intended to NOT be specific to records. But, it is still not general, in the sense that no human user will ever call this API. So it is (or should be) optimized for what makes sense from a runtime performance / class file impact perspective. 100% of the clients of this API will be compilers and frameworks. It may well be used by Javac for value types, and could be used by other language compilers as well. So that?s the target profile we?re aiming at. > On Oct 22, 2019, at 6:01 AM, Maurizio Cimadamore wrote: > > But, if this is meant to be a general building block, then I don't understand e.g. why we are unifying all the signatures. If a client wants hashCode, I think it is kind of a design flaw that (i) there's no such BSM with that name (the BSM is just called "bootstrap") and (ii) that there still a requirement to pass a 'name list', which is ignored by the BSM. > > From brian.goetz at oracle.com Tue Oct 22 16:48:00 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 22 Oct 2019 12:48:00 -0400 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <4d312903-7d01-3055-aff1-6c4e19866b71@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> <4d312903-7d01-3055-aff1-6c4e19866b71@oracle.com> Message-ID: This doesn?t work when you invoke the tests through `make run-test`, which is why I used the explicit 14. > On Oct 22, 2019, at 11:21 AM, Jan Lahoda wrote: > > -for tests, "--enable-preview -source 14" is used on many places. This will cause issues when JDK 15 is started (and --enable-preview -source 14 will be replaced with --enable-preview -source 15). On all places where that is possible, "--enable-preview -source ${jdk.version}" should be used, or a programmatic equivalent. From jan.lahoda at oracle.com Tue Oct 22 17:27:11 2019 From: jan.lahoda at oracle.com (Jan Lahoda) Date: Tue, 22 Oct 2019 19:27:11 +0200 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> <4d312903-7d01-3055-aff1-6c4e19866b71@oracle.com> Message-ID: <6da6b929-0492-4ef6-319d-f90d023c8ba4@oracle.com> On 22. 10. 19 18:48, Brian Goetz wrote: > This doesn?t work when you invoke the tests through `make run-test`, > which is why I used the explicit 14. Maybe it does not work for the "jdk" tests (due to https://bugs.openjdk.java.net/browse/JDK-8219408), but we use -source ${jdk.version} is langtools tests extensively. Jan > >> On Oct 22, 2019, at 11:21 AM, Jan Lahoda > > wrote: >> >> -for tests, "--enable-preview -source 14" is used on many places. This >> will cause issues when JDK 15 is started (and --enable-preview -source >> 14 will be replaced with --enable-preview -source 15). On all places >> where that is possible, "--enable-preview -source ${jdk.version}" >> should be used, or a programmatic equivalent. > From jonathan.gibbons at oracle.com Tue Oct 22 17:25:41 2019 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 22 Oct 2019 10:25:41 -0700 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> <4d312903-7d01-3055-aff1-6c4e19866b71@oracle.com> Message-ID: Brian, What doesn't work with "make run-test"??? Are you saying there's a problem with "--enable-preview -source ${jdk.version}", or with the general methodology of specifying --enable-preview and -source? If there's an issue with the jtreg support for ${jdk.version}, I guess I'd like to know. -- Jon On 10/22/19 9:48 AM, Brian Goetz wrote: > This doesn?t work when you invoke the tests through `make run-test`, which is why I used the explicit 14. > >> On Oct 22, 2019, at 11:21 AM, Jan Lahoda wrote: >> >> -for tests, "--enable-preview -source 14" is used on many places. This will cause issues when JDK 15 is started (and --enable-preview -source 14 will be replaced with --enable-preview -source 15). On all places where that is possible, "--enable-preview -source ${jdk.version}" should be used, or a programmatic equivalent. From brian.goetz at oracle.com Tue Oct 22 17:30:51 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 22 Oct 2019 13:30:51 -0400 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> <4d312903-7d01-3055-aff1-6c4e19866b71@oracle.com> Message-ID: <8ACBD981-359A-4212-8598-A9A428817DF2@oracle.com> Yes, I found these tests to fail when running make run-test TEST=?jtreg:/path/to/tests? It was barfing on ?unrecognized source version?, which I took to mean the variable wasn?t being expanded. > On Oct 22, 2019, at 1:25 PM, Jonathan Gibbons wrote: > > Brian, > > What doesn't work with "make run-test"? Are you saying there's a problem with "--enable-preview -source ${jdk.version}", or with the general methodology of specifying --enable-preview and -source? > > If there's an issue with the jtreg support for ${jdk.version}, I guess I'd like to know. > > -- Jon > > On 10/22/19 9:48 AM, Brian Goetz wrote: >> This doesn?t work when you invoke the tests through `make run-test`, which is why I used the explicit 14. >> >>> On Oct 22, 2019, at 11:21 AM, Jan Lahoda wrote: >>> >>> -for tests, "--enable-preview -source 14" is used on many places. This will cause issues when JDK 15 is started (and --enable-preview -source 14 will be replaced with --enable-preview -source 15). On all places where that is possible, "--enable-preview -source ${jdk.version}" should be used, or a programmatic equivalent. From jonathan.gibbons at oracle.com Tue Oct 22 17:48:28 2019 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 22 Oct 2019 10:48:28 -0700 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <8ACBD981-359A-4212-8598-A9A428817DF2@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> <4d312903-7d01-3055-aff1-6c4e19866b71@oracle.com> <8ACBD981-359A-4212-8598-A9A428817DF2@oracle.com> Message-ID: <331dbf13-d2a5-ac48-2ad8-5c2deca44fc7@oracle.com> Yes, thanks; I followed up on the JBS issue in Jan's comment. I see that the substitution feature is disabled in the jdk repo. I'll work with Igor et al to see if we can get the feature enabled there.? For what it's worth, it's not specifically related to "make run-test". -- Jon On 10/22/19 10:30 AM, Brian Goetz wrote: > Yes, I found these tests to fail when running > make run-test TEST=?jtreg:/path/to/tests? > > It was barfing on ?unrecognized source version?, which I took to mean the variable wasn?t being expanded. > >> On Oct 22, 2019, at 1:25 PM, Jonathan Gibbons wrote: >> >> Brian, >> >> What doesn't work with "make run-test"? Are you saying there's a problem with "--enable-preview -source ${jdk.version}", or with the general methodology of specifying --enable-preview and -source? >> >> If there's an issue with the jtreg support for ${jdk.version}, I guess I'd like to know. >> >> -- Jon >> >> On 10/22/19 9:48 AM, Brian Goetz wrote: >>> This doesn?t work when you invoke the tests through `make run-test`, which is why I used the explicit 14. >>> >>>> On Oct 22, 2019, at 11:21 AM, Jan Lahoda wrote: >>>> >>>> -for tests, "--enable-preview -source 14" is used on many places. This will cause issues when JDK 15 is started (and --enable-preview -source 14 will be replaced with --enable-preview -source 15). On all places where that is possible, "--enable-preview -source ${jdk.version}" should be used, or a programmatic equivalent. From forax at univ-mlv.fr Tue Oct 22 18:39:54 2019 From: forax at univ-mlv.fr (Remi Forax) Date: Tue, 22 Oct 2019 20:39:54 +0200 (CEST) Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <26F16E3F-E993-4FFF-8084-3DF32B8D68C6@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <1b2d8725-1203-bcc8-8c1f-0902683e300c@oracle.com> <7d32c089-2887-ca8e-a56d-51c97b1d79ef@oracle.com> <1495460856.584807.1571733822969.JavaMail.zimbra@u-pem.fr> <0290bcd0-f2a2-083a-0fff-29cd80df8a31@oracle.com> <07953f08-579e-9490-4c94-82c2949aa17c@oracle.com> <26F16E3F-E993-4FFF-8084-3DF32B8D68C6@oracle.com> Message-ID: <1703176468.832852.1571769594984.JavaMail.zimbra@u-pem.fr> > De: "Brian Goetz" > ?: "Maurizio Cimadamore" > Cc: "amber-dev" , "compiler-dev" > , "Chris Hegarty" > Envoy?: Mardi 22 Octobre 2019 18:34:13 > Objet: Re: RFR: JEP 359-Records: reflection code > I think there?s something in between ?specific to records? and ?general building > block?. > It definitely, 100% was intended to NOT be specific to records. But, it is still > not general, in the sense that no human user will ever call this API. So it is > (or should be) optimized for what makes sense from a runtime performance / > class file impact perspective. 100% of the clients of this API will be > compilers and frameworks. It may well be used by Javac for value types, and > could be used by other language compilers as well. So that?s the target profile > we?re aiming at. With my language runtime dev hat, the way to find the getters is language dependent, so it makes sense to have an API with 3 entrypoints which is based on getters for equals/hashCode or getters + string format for toString but for records but at the same time from the class format perspective it makes little sense to send the getters for a record so it's better to use another entry point. I like Maurizio's idea to separate the API in: - 3 reusable entry points: defaultObjectEquals(getters), defaultObjectHashCode(getters), defaultObjectToString(getters + stringconcat format) that are public method handles that returns MethodHandle - 1 boostrap method for records recordObjectMethodsBootstrap(Lookup lookup, String methodName, MethodType type) that uses reflection to create the getters and delegate to the methods above For inline types, we will add a new boostrap method inlineObjectMethodsBootstrap that may use different parameters. For other languages, unlike the lambdaMetaFactory that spins bytecode so restrict which kind of method refs can be used, here all methods defaultObject*() are directly reusable so a language like Groovy which is bean based can use the Introspector to find all the properties and then use methods defaultObject*(). My idea of using a constant dynamic in the middle is an optimization that can be done later because records are released has a preview feature we can still change the bytecode encoding in the next release. R?mi >> On Oct 22, 2019, at 6:01 AM, Maurizio Cimadamore < [ >> mailto:maurizio.cimadamore at oracle.com | maurizio.cimadamore at oracle.com ] > >> wrote: >> But, if this is meant to be a general building block, then I don't understand >> e.g. why we are unifying all the signatures. If a client wants hashCode, I >> think it is kind of a design flaw that (i) there's no such BSM with that name >> (the BSM is just called "bootstrap") and (ii) that there still a requirement to >> pass a 'name list', which is ignored by the BSM. From harold.seigel at oracle.com Tue Oct 22 18:42:00 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Tue, 22 Oct 2019 18:42:00 +0000 Subject: hg: amber/amber: Summary: Add changes based on review comments from Coleen, Ioi, and Lois Message-ID: <201910221842.x9MIg16J012303@aojmv0008.oracle.com> Changeset: 37e6365f53ba Author: hseigel Date: 2019-10-22 18:41 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/37e6365f53ba Summary: Add changes based on review comments from Coleen, Ioi, and Lois ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/recordComponent.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp + test/hotspot/jtreg/runtime/records/abstractRecord.jcod + test/hotspot/jtreg/runtime/records/badRecordAttribute.jcod + test/hotspot/jtreg/runtime/records/notFinalRecord.jcod + test/hotspot/jtreg/runtime/records/oldRecordAttribute.jcod - test/hotspot/jtreg/runtime/records/recordAttribute.jcod ! test/hotspot/jtreg/runtime/records/recordAttributeTest.java + test/hotspot/jtreg/runtime/records/shortRecordAttribute.jcod + test/hotspot/jtreg/runtime/records/superNotJLRecord.jcod + test/hotspot/jtreg/runtime/records/twoRecordAttributes.jcod ! test/jdk/java/lang/instrument/RedefineRecordAttr/TestRecordAttr.java ! test/jdk/java/lang/instrument/RedefineRecordAttrGenericSig/TestRecordAttrGenericSig.java From vicente.romero at oracle.com Tue Oct 22 20:43:02 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Tue, 22 Oct 2019 20:43:02 +0000 Subject: hg: amber/amber: 2 new changesets Message-ID: <201910222043.x9MKh3HI015592@aojmv0008.oracle.com> Changeset: 479f9d657715 Author: vromero Date: 2019-10-22 16:42 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/479f9d657715 fixing tests ! test/langtools/tools/javac/records/MapAccessorToComponent.java ! test/langtools/tools/javac/records/RecordReflectionTest.java ! test/langtools/tools/javac/records/annotations/AnnoProcessorOnRecordsTest.java + test/langtools/tools/javac/records/annotations/AnnotatedRecords.java + test/langtools/tools/javac/records/annotations/AnnotatedRecords2.java ! test/langtools/tools/javac/records/annotations/CheckingTypeAnnotationsOnRecords.java ! test/langtools/tools/javac/records/annotations/JavaxLangModelForRecords.java ! test/langtools/tools/javac/records/mandated_members/CheckRecordMembers.java Changeset: a06475cac3d9 Author: vromero Date: 2019-10-22 16:42 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/a06475cac3d9 removing accessors, additional VARARGS flag - src/jdk.compiler/share/classes/com/sun/tools/javac/code/Accessors.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeMaker.java From vicente.romero at oracle.com Tue Oct 22 20:57:14 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Tue, 22 Oct 2019 20:57:14 +0000 Subject: hg: amber/amber: 122 new changesets Message-ID: <201910222057.x9MKvLG5023801@aojmv0008.oracle.com> Changeset: 05dd6144d434 Author: rehn Date: 2019-10-14 08:59 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/05dd6144d434 8218543: ThreadsList handling during error reporting can crash Reviewed-by: dcubed, dholmes ! src/hotspot/share/runtime/threadSMR.cpp ! src/hotspot/share/utilities/decoder.cpp ! src/hotspot/share/utilities/vmError.cpp ! src/hotspot/share/utilities/vmError.hpp Changeset: adbd1504c998 Author: shade Date: 2019-10-14 11:03 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/adbd1504c998 8232176: Shenandoah: new assert in ShenandoahEvacuationTask is too strong Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp Changeset: e69d6f076a6a Author: dtitov Date: 2019-10-14 11:24 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/e69d6f076a6a 8227231: JDWP help information shows use of obsolete Xdebug flag Reviewed-by: dholmes, sspitsyn, amenkov ! src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c Changeset: cd9c4e6aa631 Author: redestad Date: 2019-10-14 20:58 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/cd9c4e6aa631 8232165: Reduce allocations in ValueStack copying constructor Reviewed-by: neliasso, kvn ! src/hotspot/share/c1/c1_ValueStack.cpp ! src/hotspot/share/c1/c1_ValueStack.hpp ! src/hotspot/share/ci/ciMetadata.hpp Changeset: 90412c2a04c2 Author: lmesnik Date: 2019-10-14 12:22 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/90412c2a04c2 8231981: Refactor test definitions to split RT and SVC tests Reviewed-by: sspitsyn, dholmes ! test/hotspot/jtreg/TEST.groups Changeset: f28a9893d521 Author: mseledtsov Date: 2019-10-14 14:40 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f28a9893d521 8232224: [TESTBUG] problemlist JFR TestLargeRootSet.java Summary: Problem listed the test Reviewed-by: egahlin, dcubed ! test/jdk/ProblemList.txt Changeset: 45a085445a8c Author: fyang Date: 2019-10-11 16:52 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/45a085445a8c 8231988: Unexpected test result caused by C2 IdealLoopTree::do_remove_empty_loop Summary: Duplicate cmp node in empty loop if it has other users Reviewed-by: neliasso, thartmann Contributed-by: wanghuang3 at huawei.com, xietuo at huawei.com ! src/hotspot/share/opto/loopTransform.cpp + test/hotspot/jtreg/compiler/loopopts/TestRemoveEmptyLoop.java Changeset: 97974e906efb Author: dholmes Date: 2019-10-14 22:20 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/97974e906efb 8232182: RedefineNestmateAttr/TestNestmateAttr.java failes due to ObjectCollectedException Reviewed-by: phh, sspitsyn ! test/jdk/com/sun/jdi/RedefineNestmateAttr/TestNestmateAttr.java Changeset: 9770ff6f0b20 Author: mbaesken Date: 2019-10-10 14:20 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/9770ff6f0b20 8232107: support ThreadPriorityPolicy flag on AIX Reviewed-by: clanger, dholmes ! src/hotspot/os/aix/os_aix.cpp Changeset: fd7e7bb190aa Author: clanger Date: 2019-07-09 15:58 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/fd7e7bb190aa 8227441: Enhance logging when reading the fontconfig info file Reviewed-by: prr, mbaesken Contributed-by: matthias.baesken at sap.com, christoph.langer at sap.com ! src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java Changeset: da02c2254989 Author: prr Date: 2019-09-24 09:09 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/da02c2254989 8231243: [TESTBUG] CustomFont.java cannot find font file Reviewed-by: serb ! test/jdk/java/awt/print/PrinterJob/CustomFont/CustomFont.java Changeset: 2ddb4fc49ca6 Author: psadhukhan Date: 2019-09-25 14:52 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/2ddb4fc49ca6 Merge - src/hotspot/os/linux/gc/z/zVirtualMemory_linux.cpp - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/inlining/PolymorphicInliningTest.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotClassInitializationPlugin.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/calc/NormalizeCompareNode.java - src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.test/src/org/graalvm/compiler/test/JLModule.java - src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java Changeset: fa9f28a0e175 Author: aivanov Date: 2019-09-25 22:45 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/fa9f28a0e175 8231144: Wrap contents of plain HTML files into contentContainer Reviewed-by: prr, serb ! src/java.desktop/share/classes/java/awt/doc-files/AWTThreadIssues.html ! src/java.desktop/share/classes/java/awt/doc-files/DesktopProperties.html ! src/java.desktop/share/classes/java/awt/doc-files/FocusSpec.html ! src/java.desktop/share/classes/java/awt/doc-files/Modality.html ! src/java.desktop/share/classes/javax/imageio/metadata/doc-files/bmp_metadata.html ! src/java.desktop/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html ! src/java.desktop/share/classes/javax/imageio/metadata/doc-files/jpeg_metadata.html ! src/java.desktop/share/classes/javax/imageio/metadata/doc-files/png_metadata.html ! src/java.desktop/share/classes/javax/imageio/metadata/doc-files/standard_metadata.html ! src/java.desktop/share/classes/javax/imageio/metadata/doc-files/tiff_metadata.html ! src/java.desktop/share/classes/javax/imageio/metadata/doc-files/wbmp_metadata.html ! src/java.desktop/share/classes/javax/swing/plaf/multi/doc-files/multi_tsc.html ! src/java.desktop/share/classes/javax/swing/plaf/nimbus/doc-files/properties.html ! src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html ! src/java.desktop/share/classes/javax/swing/plaf/synth/doc-files/synthFileFormat.html Changeset: acbc26afebb6 Author: serb Date: 2019-09-30 22:36 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/acbc26afebb6 8231335: [macos] Delete unused and partly implemented JOGL/Java2D bridge Reviewed-by: jdv ! src/java.desktop/macosx/classes/sun/java2d/opengl/CGLSurfaceData.java Changeset: 4ff14948c6a1 Author: serb Date: 2019-10-01 10:28 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/4ff14948c6a1 7124404: [macosx] no awt.multiClickInterval desktop property Reviewed-by: dmarkov ! src/java.desktop/macosx/classes/sun/lwawt/macosx/LWCToolkit.java ! src/java.desktop/macosx/native/libawt_lwawt/awt/LWCToolkit.m + test/jdk/java/awt/Toolkit/GetMulticlickTime/GetMulticlickTime.java Changeset: bdf0a922ae8a Author: serb Date: 2019-10-03 18:17 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/bdf0a922ae8a 8228676: Cleanup the native code related to fonts on Unix Reviewed-by: jdv ! src/java.desktop/unix/native/common/awt/X11Color.c ! src/java.desktop/unix/native/common/awt/awt_Font.c - src/java.desktop/unix/native/common/awt/awt_Font.h ! src/java.desktop/unix/native/common/awt/awt_p.h ! src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c Changeset: a9b346a481d7 Author: serb Date: 2019-10-09 17:06 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/a9b346a481d7 8229810: [macos] NullPointerException getting bounds of GraphicsConfiguration Reviewed-by: jdv ! src/java.desktop/macosx/classes/sun/awt/CGraphicsDevice.java Changeset: 7a57470d0500 Author: psadhukhan Date: 2019-10-11 12:08 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/7a57470d0500 Merge - src/hotspot/share/runtime/compilationPolicy.cpp - src/hotspot/share/runtime/compilationPolicy.hpp - src/hotspot/share/runtime/rframe.cpp - src/hotspot/share/runtime/rframe.hpp - src/hotspot/share/runtime/tieredThresholdPolicy.cpp - src/hotspot/share/runtime/tieredThresholdPolicy.hpp - src/java.base/share/native/libjava/verify_stub.c - src/java.base/share/native/libverify/check_format.c - src/java.base/unix/native/libjava/jdk_util_md.c - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/JMXServiceProvider.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/package-info.java - test/hotspot/jtreg/compiler/graalunit/EA9Test.java - test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/JLModule.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineDeleteJmethod.java - test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/libRedefineDeleteJmethod.c Changeset: 70968bcc110c Author: psadhukhan Date: 2019-10-12 08:49 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/70968bcc110c 8223158: Docked MacBook cannot start any Java Swing applications Reviewed-by: prr, serb ! src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl/CGLGraphicsConfig.m Changeset: d97e1ee31e2b Author: psadhukhan Date: 2019-10-15 14:19 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/d97e1ee31e2b Merge - test/hotspot/jtreg/vmTestbase/jit/graph/CGTThread.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt0/cgt0.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt1/cgt1.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt10/cgt10.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt11/cgt11.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt2/cgt2.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt3/cgt3.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt4/cgt4.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt5/cgt5.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt6/cgt6.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt7/cgt7.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt8/cgt8.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt9/cgt9.java Changeset: 2312d1a04c49 Author: naoto Date: 2019-10-15 09:25 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/2312d1a04c49 8212749: DecimalFormat.setGroupingSize(int) allows setting negative grouping size 8231984: Clarify semantics of DecimalFormat.getGroupingSize(0) Reviewed-by: rriggs ! src/java.base/share/classes/java/text/DecimalFormat.java + test/jdk/java/text/Format/DecimalFormat/SetGroupingSizeTest.java Changeset: 791217cdc433 Author: shade Date: 2019-10-15 19:38 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/791217cdc433 8232205: Shenandoah: missing "Update References" -> "Update Roots" tracing Reviewed-by: rkennke, zgu ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp Changeset: 10db6989907f Author: shade Date: 2019-10-15 19:45 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/10db6989907f 8232051: Epsilon should warn about Xms/Xmx/AlwaysPreTouch configuration Reviewed-by: zgu ! src/hotspot/share/gc/epsilon/epsilonArguments.cpp ! test/hotspot/jtreg/gc/epsilon/TestAlwaysPretouch.java Changeset: fbfc72ec8e6b Author: darcy Date: 2019-10-15 13:25 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/fbfc72ec8e6b 8232234: Suppress warnings on non-serializable non-transient instance fields in java.rmi Reviewed-by: rriggs ! src/java.rmi/share/classes/java/rmi/activation/ActivationGroup.java ! src/java.rmi/share/classes/java/rmi/activation/ActivationGroupID.java ! src/java.rmi/share/classes/java/rmi/server/UnicastRemoteObject.java ! src/java.rmi/share/classes/sun/rmi/server/ActivatableServerRef.java ! src/java.rmi/share/classes/sun/rmi/server/Activation.java ! src/java.rmi/share/classes/sun/rmi/server/ActivationGroupImpl.java Changeset: 94710bb2a5bb Author: michaelm Date: 2019-03-25 17:15 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/94710bb2a5bb 8217997: Better socket support Reviewed-by: alanb, ahgross, chegar, igerasim ! src/java.base/share/classes/java/net/NetPermission.java ! src/java.base/share/classes/java/net/ServerSocket.java ! src/java.base/share/classes/java/net/Socket.java ! src/java.base/share/classes/sun/security/util/SecurityConstants.java Changeset: 53ddf218eddd Author: weijun Date: 2019-04-19 10:22 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/53ddf218eddd 8220302: Better Kerberos ccache handling Reviewed-by: valeriep ! src/java.base/share/conf/security/java.security ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/JavaxSecurityAuthKerberosAccessImpl.java ! src/java.security.jgss/share/classes/javax/security/auth/kerberos/KerberosTicket.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5MechFactory.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5NameElement.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5ProxyCredential.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Util.java ! src/java.security.jgss/share/classes/sun/security/krb5/Credentials.java ! src/java.security.jgss/share/classes/sun/security/krb5/JavaxSecurityAuthKerberosAccess.java ! src/java.security.jgss/share/classes/sun/security/krb5/Realm.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/CCacheOutputStream.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/Credentials.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/CredentialsCache.java ! src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java ! src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Klist.java ! src/jdk.security.auth/share/classes/com/sun/security/auth/module/Krb5LoginModule.java Changeset: 32aff2b7585b Author: weijun Date: 2019-04-22 13:01 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/32aff2b7585b 8209901: Canonical file handling Reviewed-by: mullan, alanb, ahgross ! src/java.base/share/classes/java/io/FilePermission.java ! src/java.base/share/classes/sun/security/util/FilePermCompat.java ! src/java.base/share/conf/security/java.security ! test/jdk/java/security/testlibrary/Proc.java ! test/jdk/sun/security/util/FilePermCompat/Flag.java Changeset: eb09ad30eccb Author: prr Date: 2019-04-23 11:59 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/eb09ad30eccb 8220186: Improve use of font temporary files Reviewed-by: serb, psadhukhan, mschoene, rhalade ! src/java.desktop/share/classes/sun/font/FileFont.java ! src/java.desktop/share/classes/sun/font/FontScaler.java ! src/java.desktop/share/classes/sun/font/FreetypeFontScaler.java ! src/java.desktop/share/native/libfontmanager/freetypeScaler.c Changeset: 29624901d8bc Author: aefimov Date: 2019-05-03 19:42 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/29624901d8bc 8223326: Regression introduced by CPU sync: java.security.AccessControlException: access denied ("java.net.NetPermission" "setSocketImpl") Reviewed-by: dfuchs, alanb Contributed-by: Alan Bateman ! src/java.base/share/classes/sun/nio/ch/ServerSocketAdaptor.java ! src/java.base/share/classes/sun/nio/ch/SocketAdaptor.java Changeset: d5ea3bde1ebe Author: prr Date: 2019-05-15 12:44 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/d5ea3bde1ebe 8222690: Better Glyph Images Reviewed-by: serb, psadhukhan, mschoene, rhalade ! src/java.desktop/share/classes/sun/font/GlyphList.java ! src/java.desktop/share/native/libfontmanager/DrawGlyphList.c ! src/java.desktop/share/native/libfontmanager/freetypeScaler.c ! src/java.desktop/unix/classes/sun/font/XRGlyphCache.java ! src/java.desktop/unix/classes/sun/font/XRTextRenderer.java ! src/java.desktop/unix/native/common/java2d/x11/X11FontScaler_md.c Changeset: be9ef671a1b6 Author: serb Date: 2019-05-19 17:20 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/be9ef671a1b6 8221497: Optional Panes in Swing Reviewed-by: prr, alitvinov, mschoene, rhalade ! src/java.desktop/share/native/common/java2d/opengl/OGLBlitLoops.c + test/jdk/java/awt/image/DrawImage/IncorrectManagedImageSourceOffset.java ! test/jdk/java/awt/image/DrawImage/IncorrectUnmanagedImageSourceOffset.java + test/jdk/java/awt/image/DrawImage/SimpleManagedImage.java + test/jdk/java/awt/image/DrawImage/SimpleUnmanagedImage.java Changeset: 037ca385e957 Author: aefimov Date: 2019-05-20 15:57 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/037ca385e957 8213429: Windows file handling redux Reviewed-by: alanb, dfuchs, weijun, bpb, rhalade, ahgross ! src/java.base/share/classes/java/io/FilePermission.java Changeset: a95e1f6757c7 Author: weijun Date: 2019-05-21 08:37 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/a95e1f6757c7 8224025: Fix for JDK-8220302 is not complete Reviewed-by: ahgross, mullan, valeriep ! src/java.security.jgss/macosx/native/libosxkrb5/nativeccache.c Changeset: 979b58a3bb97 Author: rriggs Date: 2019-04-30 16:45 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/979b58a3bb97 8221858: Build Better Processes Reviewed-by: alanb, rhalade, ahgross, darcy ! src/java.base/windows/classes/java/lang/ProcessImpl.java Changeset: ca5f1bf5a054 Author: joehw Date: 2019-05-21 13:02 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/ca5f1bf5a054 8223505: Better pattern compilation Reviewed-by: rriggs, lancea, dfuchs, mschoene ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/XPathParser.java ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java Changeset: 17300b6f751f Author: prr Date: 2019-05-22 08:42 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/17300b6f751f 8223886: Add in font table referene Reviewed-by: serb, psadhukhan, mschoene, rhalade ! src/java.desktop/share/native/libfontmanager/hb-jdk-font.cc Changeset: 1b4ab3ebc51b Author: rriggs Date: 2019-05-22 13:31 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/1b4ab3ebc51b 8224505: TestQuotedLogOutput failure after ProcessBuilder changes Reviewed-by: alanb ! test/hotspot/jtreg/serviceability/logging/TestQuotedLogOutputs.java Changeset: 2ffbbd3c662c Author: igerasim Date: 2019-05-22 19:41 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/2ffbbd3c662c 8222684: Better support for patterns 8223163: Better pattern recognition Reviewed-by: ahgross, bchristi, jeff, rhalade, rriggs, smarks ! src/java.base/share/classes/java/util/regex/Pattern.java Changeset: 26867ad686e9 Author: hannesw Date: 2019-05-24 16:53 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/26867ad686e9 8223518: Unexpected exception in jjs Reviewed-by: sundar, mschoene, rhalade, jlaskey ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/JdkRegExp.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/regexp/JoniRegExp.java Changeset: 9b54aee889b4 Author: thartmann Date: 2019-05-27 01:36 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/9b54aee889b4 8224062: Improve String index handling Reviewed-by: kvn, rhalade, mschoene ! src/hotspot/cpu/x86/macroAssembler_x86.cpp Changeset: a9ed3d93cca3 Author: alitvinov Date: 2019-05-31 18:16 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/a9ed3d93cca3 8218877: Help transform transformers Reviewed-by: serb, prr, mschoene, bpb, ssahoo ! src/java.desktop/share/native/common/java2d/opengl/OGLBlitLoops.c ! src/java.desktop/share/native/libawt/java2d/loops/GraphicsPrimitiveMgr.h ! src/java.desktop/share/native/libawt/java2d/loops/LoopMacros.h ! src/java.desktop/windows/native/libawt/java2d/d3d/D3DContext.cpp Changeset: 92a18902b92c Author: joehw Date: 2019-05-31 10:58 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/92a18902b92c 8224532: Better Path supports Reviewed-by: rriggs, lancea, dfuchs, mschoene ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPath.java ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Compiler.java ! src/java.xml/share/classes/com/sun/org/apache/xpath/internal/res/XPATHErrorResources.java Changeset: 874e94940351 Author: prr Date: 2019-06-19 15:23 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/874e94940351 8225597: Enhance font glyph mapping Reviewed-by: serb, psadhukhan, mschoene, rhalade ! src/java.desktop/share/classes/sun/font/CMap.java Changeset: 2ede50a0f67d Author: prr Date: 2019-06-19 15:24 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/2ede50a0f67d 8225286: Better rendering of native glyphs Reviewed-by: serb, psadhukhan, mschoene, rhalade ! src/java.desktop/share/native/libfontmanager/freetypeScaler.c Changeset: 6b93cc7741ba Author: chegar Date: 2019-06-21 10:51 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/6b93cc7741ba 8225298: Improve TLS connection support Reviewed-by: dfuchs, igerasim, michaelm, rhalade, skoivu ! src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Changeset: 36c5e85b8597 Author: aefimov Date: 2019-06-25 00:07 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/36c5e85b8597 8223892: Improved handling of jar files Reviewed-by: dfuchs, chegar, michaelm, rhalade, ahgross ! src/java.base/share/classes/java/net/URL.java ! src/java.base/share/classes/sun/net/www/protocol/jar/Handler.java Changeset: fbab568169c4 Author: prr Date: 2019-06-14 20:33 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/fbab568169c4 8224915: Better serial attributes Reviewed-by: serb, psadhukhan, mschoene, rhalade ! src/java.desktop/share/classes/java/awt/Font.java Changeset: 0c518cbf1dcc Author: prr Date: 2019-06-16 13:14 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/0c518cbf1dcc 8225292: Better Graphics2D drawing Reviewed-by: serb, psadhukhan, mschoene, rhalade ! src/java.desktop/share/classes/sun/java2d/SunGraphics2D.java Changeset: da71aa13f86b Author: prr Date: 2019-07-18 07:25 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/da71aa13f86b 8227662: freetype seeks to index at the end of the font data Reviewed-by: serb, psadhukhan ! src/java.desktop/share/native/libfontmanager/freetypeScaler.c + test/jdk/java/awt/FontMetrics/SpaceAdvance.java Changeset: 06d7236d6ef6 Author: rriggs Date: 2019-01-17 10:44 -0500 URL: https://hg.openjdk.java.net/amber/amber/rev/06d7236d6ef6 8227601: Better collection of references Reviewed-by: smarks, ahgross, skoivu, rhalade ! src/java.rmi/share/classes/sun/rmi/registry/RegistryImpl_Skel.java ! src/java.rmi/share/classes/sun/rmi/registry/RegistryImpl_Stub.java ! src/java.rmi/share/classes/sun/rmi/transport/DGCImpl_Skel.java ! src/java.rmi/share/classes/sun/rmi/transport/DGCImpl_Stub.java ! src/java.rmi/share/classes/sun/rmi/transport/StreamRemoteCall.java ! test/jdk/java/rmi/testlibrary/TestSocketFactory.java Changeset: dbca9d2b4080 Author: hannesw Date: 2019-08-06 20:39 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/dbca9d2b4080 8226765: Commentary on Javadoc comments Reviewed-by: jjg, rhalade, skoivu ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/JavaScriptScanner.java ! test/langtools/jdk/javadoc/tool/TestScriptInComment.java Changeset: d66bdf0e2dfe Author: ascarpino Date: 2019-10-04 13:44 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/d66bdf0e2dfe 8228825: Enhance ECDSA operations Reviewed-by: mullan ! src/java.base/share/classes/sun/security/ssl/SupportedGroupsExtension.java Changeset: 7be56b2ac50d Author: henryjen Date: 2019-10-14 21:01 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/7be56b2ac50d Merge ! src/hotspot/cpu/x86/macroAssembler_x86.cpp - src/hotspot/share/runtime/compilationPolicy.cpp - src/hotspot/share/runtime/compilationPolicy.hpp - src/hotspot/share/runtime/tieredThresholdPolicy.cpp - src/hotspot/share/runtime/tieredThresholdPolicy.hpp - src/java.base/unix/native/libjava/jdk_util_md.c ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java ! src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/JMXServiceProvider.java - src/jdk.internal.vm.compiler.management/share/classes/org.graalvm.compiler.hotspot.management/src/org/graalvm/compiler/hotspot/management/package-info.java - test/hotspot/jtreg/compiler/graalunit/EA9Test.java - test/hotspot/jtreg/compiler/graalunit/com.oracle.mxtool.junit/com/oracle/mxtool/junit/JLModule.java - test/hotspot/jtreg/vmTestbase/jit/graph/CGTThread.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt0/cgt0.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt1/cgt1.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt10/cgt10.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt11/cgt11.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt2/cgt2.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt3/cgt3.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt4/cgt4.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt5/cgt5.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt6/cgt6.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt7/cgt7.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt8/cgt8.java - test/hotspot/jtreg/vmTestbase/jit/graph/cgt9/cgt9.java Changeset: e0bb6b38a6f6 Author: henryjen Date: 2019-10-15 21:33 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/e0bb6b38a6f6 Merge - src/java.desktop/unix/native/common/awt/awt_Font.h Changeset: 55fe0d93bdd3 Author: zgu Date: 2019-10-15 22:22 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/55fe0d93bdd3 8229919: Support JNI Critical functions in object pinning API on x86_32 platforms Reviewed-by: rkennke, adinn ! src/hotspot/cpu/x86/sharedRuntime_x86_32.cpp ! test/hotspot/jtreg/gc/CriticalNativeArgs.java ! test/hotspot/jtreg/gc/stress/CriticalNativeStress.java Changeset: b381e5328461 Author: mdoerr Date: 2019-10-16 11:52 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b381e5328461 8232106: [x86] C2: SIGILL due to usage of SSSE3 instructions on processors which don't support it Reviewed-by: kvn, thartmann ! src/hotspot/cpu/x86/x86.ad Changeset: 64597a6fd186 Author: tschatzl Date: 2019-10-16 12:36 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/64597a6fd186 8232260: Remove g1 prefix in G1CollectedHeap::g1_hot_card_cache() getter Reviewed-by: kbarrett, sjohanss ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.hpp ! src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp Changeset: 6b6bf0de534b Author: dfuchs Date: 2019-10-16 14:50 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/6b6bf0de534b 8231449: HttpClient???s client ssl certificate authentication seems to be broken. Summary: SSLFlowDelegate.Reader and SubscriberWrapper are changed to better cooperate on when more demand should be requested from upstream. The issue encountered in this scenario was triggered by a large certificate which caused the SSLFlowDelegate to stop requesting data from upstream during the handshake although the engine handshake status was NEED_UNWRAP. Reviewed-by: chegar ! src/java.net.http/share/classes/jdk/internal/net/http/common/SSLFlowDelegate.java ! src/java.net.http/share/classes/jdk/internal/net/http/common/SubscriberWrapper.java + test/jdk/java/net/httpclient/HttpSlowServerTest.java + test/jdk/java/net/httpclient/LargeHandshakeTest.java + test/jdk/java/net/httpclient/LargeResponseTest.java Changeset: d068b1e534de Author: yzheng Date: 2019-10-16 16:54 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d068b1e534de 8231754: [JVMCI] Make r27 unconditionally reserved in JVMCI Summary: Reserve r27 (heap base register) on AArch64 unconditionally Reviewed-by: adinn, dlong ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotRegisterConfig.java Changeset: 9b67dd88a931 Author: manc Date: 2019-10-14 18:48 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/9b67dd88a931 8232232: G1RemSetSummary::_rs_threads_vtimes is not initialized to zero Summary: Fix error in "Concurrent refinement threads times" in GC log and cleanup. Reviewed-by: tschatzl, kbarrett ! src/hotspot/share/gc/g1/g1RemSet.cpp ! src/hotspot/share/gc/g1/g1RemSetSummary.cpp ! src/hotspot/share/gc/g1/g1RemSetSummary.hpp Changeset: 71fef5fae9cc Author: igerasim Date: 2019-10-16 14:32 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/71fef5fae9cc 8230407: SocketPermission and FilePermission action list allows leading comma Reviewed-by: chegar Contributed-by: Ivan Gerasimov , Chris Hegarty ! src/java.base/share/classes/java/io/FilePermission.java ! src/java.base/share/classes/java/net/SocketPermission.java ! test/jdk/java/io/FilePermission/SpecTests.java ! test/jdk/java/net/SocketPermission/Ctor.java Changeset: 562bf1878089 Author: redestad Date: 2019-10-17 00:00 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/562bf1878089 8232211: Remove dead code from os.hpp|cpp Reviewed-by: dholmes, dcubed, rehn ! src/hotspot/os/aix/os_aix.cpp ! src/hotspot/os/aix/os_aix.hpp ! src/hotspot/os/aix/os_aix.inline.hpp ! src/hotspot/os/bsd/os_bsd.cpp ! src/hotspot/os/bsd/os_bsd.inline.hpp ! src/hotspot/os/linux/os_linux.cpp ! src/hotspot/os/linux/os_linux.hpp ! src/hotspot/os/linux/os_linux.inline.hpp ! src/hotspot/os/posix/os_posix.cpp ! src/hotspot/os/solaris/os_solaris.cpp ! src/hotspot/os/solaris/os_solaris.hpp ! src/hotspot/os/solaris/os_solaris.inline.hpp ! src/hotspot/os/windows/os_windows.cpp ! src/hotspot/os/windows/os_windows.inline.hpp ! src/hotspot/os_cpu/solaris_sparc/os_solaris_sparc.cpp ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/runtime/os.hpp Changeset: 21a92562f0c2 Author: redestad Date: 2019-10-17 00:19 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/21a92562f0c2 8232207: Linux os::available_memory re-reads cgroup configuration on every invocation Reviewed-by: bobv, sgehwolf ! src/hotspot/os/linux/osContainer_linux.cpp ! src/hotspot/os/linux/osContainer_linux.hpp Changeset: 7322c48a84cf Author: weijun Date: 2019-10-17 07:31 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/7322c48a84cf 8232357: Compare version info of Santuario to legal notice Reviewed-by: mullan ! src/java.xml.crypto/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java + test/jdk/javax/xml/crypto/dsig/Versions.java Changeset: 6252605fb005 Author: darcy Date: 2019-10-16 16:55 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/6252605fb005 8232230: Suppress warnings on non-serializable non-transient instance fields in java.util.concurrent Reviewed-by: martin ! src/java.base/share/classes/java/util/concurrent/ArrayBlockingQueue.java ! src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java ! src/java.base/share/classes/java/util/concurrent/ConcurrentSkipListMap.java ! src/java.base/share/classes/java/util/concurrent/ConcurrentSkipListSet.java ! src/java.base/share/classes/java/util/concurrent/ForkJoinTask.java ! src/java.base/share/classes/java/util/concurrent/LinkedBlockingDeque.java ! src/java.base/share/classes/java/util/concurrent/LinkedBlockingQueue.java ! src/java.base/share/classes/java/util/concurrent/PriorityBlockingQueue.java ! src/java.base/share/classes/java/util/concurrent/RecursiveTask.java ! src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicReference.java ! src/java.base/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java ! src/java.base/share/classes/java/util/concurrent/atomic/DoubleAccumulator.java ! src/java.base/share/classes/java/util/concurrent/atomic/LongAccumulator.java Changeset: 55866aa5fb54 Author: jwilhelm Date: 2019-10-17 02:49 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/55866aa5fb54 Added tag jdk-14+19 for changeset 9b67dd88a931 ! .hgtags Changeset: 4113f16d5109 Author: igerasim Date: 2019-10-16 18:47 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/4113f16d5109 8231859: Extra dash after the exception name in @throws clause of javadoc Reviewed-by: weijun ! src/java.base/share/classes/java/net/SocketPermission.java ! src/java.base/share/classes/java/security/AllPermission.java ! src/java.base/share/classes/java/security/BasicPermission.java ! src/java.base/share/classes/java/security/PermissionCollection.java ! src/java.base/share/classes/java/security/Policy.java ! src/java.base/share/classes/java/util/PropertyPermission.java ! src/java.management/share/classes/com/sun/jmx/mbeanserver/Introspector.java Changeset: 7a81cc7ca25c Author: mli Date: 2019-10-17 13:18 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/7a81cc7ca25c 8209824: Improve the code coverage for ThreadLocal Reviewed-by: dholmes, alanb + test/jdk/java/lang/ThreadLocal/ReplaceStaleEntry.java Changeset: d2108d9fc4f5 Author: mli Date: 2019-10-17 13:34 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/d2108d9fc4f5 8134599: TEST_BUG: java/rmi/transport/closeServerSocket/CloseServerSocket.java fails intermittently with Address already in use Reviewed-by: weijun, darcy, rriggs, coffeys ! test/jdk/java/rmi/transport/closeServerSocket/CloseServerSocket.java Changeset: 5b7a967da646 Author: rrich Date: 2019-10-16 17:03 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/5b7a967da646 8232162: Object reallocation in Deoptimization::fetch_unroll_info_helper should not depend on EliminateNestedLocks Reviewed-by: thartmann, neliasso ! src/hotspot/share/runtime/deoptimization.cpp Changeset: 11a574b352d0 Author: ihse Date: 2019-10-17 10:35 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/11a574b352d0 8223998: Missing MakeDir in ExecuteWithLog Reviewed-by: tbell, erikj ! make/common/MakeBase.gmk Changeset: e3618c902d17 Author: goetz Date: 2019-10-14 11:36 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/e3618c902d17 8218628: Add detailed message to NullPointerException describing what is null. Summary: This is the implementation of JEP 358: Helpful NullPointerExceptions. Reviewed-by: coleenp, clanger, rschmelter, rriggs, forax, mr ! make/hotspot/symbols/symbols-unix ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h + src/hotspot/share/interpreter/bytecodeUtils.cpp + src/hotspot/share/interpreter/bytecodeUtils.hpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/runtime/globals.hpp ! src/java.base/share/classes/java/lang/NullPointerException.java + src/java.base/share/native/libjava/NullPointerException.c + test/hotspot/jtreg/runtime/exceptionMsgs/NullPointerException/NPEInHiddenTopFrameTest.java + test/hotspot/jtreg/runtime/exceptionMsgs/NullPointerException/NullPointerExceptionTest.java + test/hotspot/jtreg/runtime/exceptionMsgs/NullPointerException/SuppressMessagesTest.java Changeset: eda750f21308 Author: coleenp Date: 2019-10-17 07:35 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/eda750f21308 8232112: MDO extra_data_lock leaks during class unloading Summary: call the MDO destructor during class unloading. Reviewed-by: dholmes, eosterlund ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/oops/methodData.hpp Changeset: 931ec3339786 Author: ihse Date: 2019-10-17 14:20 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/931ec3339786 8213239: Configure cannot handle command overrides with arguments Reviewed-by: erikj ! make/autoconf/basics.m4 Changeset: 06cc25fe0ca3 Author: darcy Date: 2019-10-17 09:38 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/06cc25fe0ca3 8232448: Suppress warnings on non-serializable non-transient instance fields in jdk.jdi Reviewed-by: sspitsyn ! src/jdk.jdi/share/classes/com/sun/jdi/InvocationException.java ! src/jdk.jdi/share/classes/com/sun/jdi/connect/IllegalConnectorArgumentsException.java ! src/jdk.jdi/share/classes/com/sun/jdi/connect/VMStartException.java Changeset: 42a3a8941418 Author: zgu Date: 2019-10-17 13:14 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/42a3a8941418 8231999: Shenandoah: Traversal failed compiler/jsr292/CallSiteDepContextTest.java Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: 0cc52a55fce4 Author: shade Date: 2019-10-17 20:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/0cc52a55fce4 8232534: Shenandoah: guard against reentrant ShenandoahHeapLock locking Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahLock.hpp Changeset: 92e7d617897e Author: shade Date: 2019-10-17 20:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/92e7d617897e 8232573: Shenandoah: cleanup and add more logging for in-pause phases Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp Changeset: 5f14a659a8cb Author: clanger Date: 2019-10-17 22:41 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/5f14a659a8cb 8232370: Refactor some com.sun.jdi tests to enable IDE integration Reviewed-by: amenkov, cjplummer, sspitsyn ! test/jdk/com/sun/jdi/MonitorEventTest.java ! test/jdk/com/sun/jdi/MonitorFrameInfo.java ! test/jdk/com/sun/jdi/RedefineImplementor.java Changeset: 9f5b92d5a1b2 Author: ysuenaga Date: 2019-10-18 09:57 +0900 URL: https://hg.openjdk.java.net/amber/amber/rev/9f5b92d5a1b2 8232084: HotSpot build failed with GCC 9.2.1 Reviewed-by: sspitsyn, cjplummer, dholmes, iklam ! src/hotspot/cpu/x86/macroAssembler_x86.hpp ! src/hotspot/share/services/diagnosticArgument.cpp ! src/hotspot/share/utilities/compilerWarnings.hpp ! src/hotspot/share/utilities/compilerWarnings_gcc.hpp Changeset: 2e0462f4cf4e Author: jiefu Date: 2019-10-18 14:15 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/2e0462f4cf4e 8232593: [TESTBUG] runtime/cds/CheckDefaultArchiveFile.java fails when cds is disabled Reviewed-by: iklam, dholmes ! test/hotspot/jtreg/runtime/cds/CheckDefaultArchiveFile.java Changeset: 4b13a908c2d0 Author: mbaesken Date: 2019-10-18 14:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/4b13a908c2d0 8232381: add result NULL-checking to freetypeScaler.c Reviewed-by: clanger, prr ! src/java.desktop/share/native/libfontmanager/freetypeScaler.c Changeset: 0279391875bf Author: zgu Date: 2019-10-18 11:36 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/0279391875bf 8231324: Shenandoah: avoid duplicated weak root works during final traversal Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: 72e605a88500 Author: ccheung Date: 2019-10-18 09:17 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/72e605a88500 8232030: HelloDynamic.java fails with latest Graal Summary: Include the dynamic dumping condition when setting up the merged_ordering array in merge_in_new_methods() of defaultMethods.cpp. Reviewed-by: iklam, coleenp ! src/hotspot/share/classfile/defaultMethods.cpp Changeset: 294fe0fef773 Author: zgu Date: 2019-10-18 12:20 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/294fe0fef773 8232009: Shenandoah: C2 load barrier does not match interpreter version Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp Changeset: eb172a3b1c1c Author: jboes Date: 2019-10-17 08:56 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/eb172a3b1c1c 8225499: InetSocketAddress::toString not friendly to IPv6 literal addresses Summary: Enclose IPv6 literal in brackets and adjust string format for unresolved addresses Reviewed-by: dfuchs, chegar ! src/java.base/share/classes/java/net/InetSocketAddress.java ! test/jdk/java/net/InetSocketAddress/ToString.java Changeset: 04946947ca79 Author: pconcannon Date: 2019-10-16 11:12 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/04946947ca79 8231719: Correct contradictions in timeout range descriptions. Summary: Clarified verbiage in method descriptions. Reviewed-by: chegar, dfuchs ! src/java.base/share/classes/java/net/DatagramSocket.java ! src/java.base/share/classes/java/net/ServerSocket.java ! src/java.base/share/classes/java/net/Socket.java Changeset: 3f35a9efd7de Author: zgu Date: 2019-10-18 13:07 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/3f35a9efd7de 8232010: Shenandoah: implement self-fixing native barrier Reviewed-by: rkennke ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.hpp ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.hpp Changeset: 199ee1bf9b3b Author: zgu Date: 2019-10-18 14:03 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/199ee1bf9b3b 8232008: Shenandoah: C1 load barrier does not match interpreter version Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/c1/shenandoahBarrierSetC1.cpp Changeset: f7df2861be47 Author: cjplummer Date: 2019-10-18 14:07 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f7df2861be47 8232276: Problem list serviceability/sa/ClhsdbJstackXcompStress.java Reviewed-by: sgehwolf, dholmes ! test/hotspot/jtreg/ProblemList.txt Changeset: b7465577320f Author: jiefu Date: 2019-10-18 20:28 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/b7465577320f 8232616: JVMCI_lock fails to get initialized when cds is disabled Reviewed-by: iklam, dholmes ! src/hotspot/share/runtime/mutexLocker.cpp Changeset: f87353679927 Author: amlu Date: 2019-10-21 14:04 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/f87353679927 8232195: Enable BigInteger tests: DivisionOverflow, SymmetricRangeTests and StringConstructorOverflow Reviewed-by: bpb, darcy ! test/jdk/TEST.ROOT - test/jdk/java/math/BigInteger/DivisionOverflow.java - test/jdk/java/math/BigInteger/StringConstructorOverflow.java - test/jdk/java/math/BigInteger/SymmetricRangeTests.java + test/jdk/java/math/BigInteger/largeMemory/DivisionOverflow.java + test/jdk/java/math/BigInteger/largeMemory/StringConstructorOverflow.java + test/jdk/java/math/BigInteger/largeMemory/SymmetricRangeTests.java Changeset: 5d10ba4a0468 Author: pliden Date: 2019-10-21 09:51 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/5d10ba4a0468 8232001: ZGC: Ignore metaspace GC threshold until GC is warm Reviewed-by: eosterlund ! src/hotspot/share/gc/z/zDirector.cpp ! src/hotspot/share/gc/z/zDirector.hpp ! src/hotspot/share/gc/z/zDriver.cpp ! src/hotspot/share/gc/z/zStat.cpp ! src/hotspot/share/gc/z/zStat.hpp Changeset: 215308c0d5e8 Author: pliden Date: 2019-10-21 09:55 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/215308c0d5e8 8231943: ZGC: Enable serviceability/dcmd/gc/RunGCTest Reviewed-by: tschatzl, eosterlund, sspitsyn ! test/hotspot/jtreg/serviceability/dcmd/gc/RunGCTest.java Changeset: c203d10291e1 Author: pliden Date: 2019-10-21 09:55 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/c203d10291e1 8231940: ZGC: Print correct low/high capacity Reviewed-by: eosterlund ! src/hotspot/share/gc/z/zStat.cpp ! src/hotspot/share/gc/z/zStat.hpp Changeset: 8b16701b4636 Author: pliden Date: 2019-10-21 09:55 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/8b16701b4636 8231996: ZGC: Replace ZStatisticsForceTrace with check if JFR event is enabled Reviewed-by: eosterlund ! src/hotspot/share/gc/z/zStat.cpp ! src/hotspot/share/gc/z/zStat.hpp ! src/hotspot/share/gc/z/zTracer.cpp ! src/hotspot/share/gc/z/zTracer.hpp ! src/hotspot/share/gc/z/zTracer.inline.hpp ! src/hotspot/share/gc/z/z_globals.hpp ! src/jdk.jfr/share/conf/jfr/default.jfc ! src/jdk.jfr/share/conf/jfr/profile.jfc Changeset: f5662bdbee4a Author: pliden Date: 2019-10-21 09:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/f5662bdbee4a 8232235: ZGC: Move ZValue inline funtions to zValue.inline.hpp Reviewed-by: tschatzl ! src/hotspot/share/gc/z/zObjectAllocator.cpp ! src/hotspot/share/gc/z/zObjectAllocator.hpp ! src/hotspot/share/gc/z/zPageCache.cpp ! src/hotspot/share/gc/z/zPageCache.inline.hpp ! src/hotspot/share/gc/z/zReferenceProcessor.cpp ! src/hotspot/share/gc/z/zRelocate.cpp ! src/hotspot/share/gc/z/zThreadLocalAllocBuffer.cpp ! src/hotspot/share/gc/z/zValue.hpp + src/hotspot/share/gc/z/zValue.inline.hpp ! src/hotspot/share/gc/z/zWeakRootsProcessor.hpp Changeset: d8e211419aaf Author: pliden Date: 2019-10-21 09:56 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/d8e211419aaf 8232236: ZGC: Move ZThread inline funtions to zThread.inline.hpp Reviewed-by: tschatzl ! src/hotspot/share/gc/z/zHeap.cpp ! src/hotspot/share/gc/z/zLiveMap.cpp ! src/hotspot/share/gc/z/zMark.cpp ! src/hotspot/share/gc/z/zObjectAllocator.cpp ! src/hotspot/share/gc/z/zRelocate.cpp ! src/hotspot/share/gc/z/zThread.cpp ! src/hotspot/share/gc/z/zThread.hpp + src/hotspot/share/gc/z/zThread.inline.hpp ! src/hotspot/share/gc/z/zValue.inline.hpp Changeset: 810409af12f1 Author: pliden Date: 2019-10-21 09:57 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/810409af12f1 8232237: ZGC: Move ZArray inline funtions to zArray.inline.hpp Reviewed-by: tschatzl ! src/hotspot/share/gc/z/zArray.hpp ! src/hotspot/share/gc/z/zArray.inline.hpp Changeset: f74ec3cbfcc0 Author: pliden Date: 2019-10-21 09:58 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/f74ec3cbfcc0 8232238: ZGC: Move ZList inline funtions to zList.inline.hpp Reviewed-by: eosterlund ! src/hotspot/share/gc/z/zList.hpp ! src/hotspot/share/gc/z/zList.inline.hpp ! src/hotspot/share/gc/z/zMemory.inline.hpp ! src/hotspot/share/gc/z/zPage.cpp ! src/hotspot/share/gc/z/zPage.hpp Changeset: 662d9e1e2a60 Author: pliden Date: 2019-10-21 09:58 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/662d9e1e2a60 8232239: ZGC: Inline ZCPU::count() and ZCPU:id() Reviewed-by: tschatzl ! src/hotspot/os/linux/gc/z/zNUMA_linux.cpp ! src/hotspot/share/gc/z/zCPU.cpp ! src/hotspot/share/gc/z/zCPU.hpp + src/hotspot/share/gc/z/zCPU.inline.hpp ! src/hotspot/share/gc/z/zStat.cpp ! src/hotspot/share/gc/z/zValue.inline.hpp Changeset: ff3eab78554f Author: shade Date: 2019-10-21 15:11 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ff3eab78554f 8232674: Fix build and rename ShenandoahBarrierSet::oop_load_from_native_barrier Reviewed-by: zgu ! src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp ! src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahRuntime.cpp Changeset: 765ecbffe88a Author: shade Date: 2019-10-21 15:11 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/765ecbffe88a 8232575: Shenandoah: asynchronous object/region pinning Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalAggressiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.hpp ! src/hotspot/share/gc/shenandoah/shenandoahHeuristics.cpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp ! src/hotspot/share/gc/shenandoah/shenandoahPhaseTimings.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Changeset: 14e098407bb0 Author: shade Date: 2019-10-21 15:11 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/14e098407bb0 8232702: Shenandoah: gc/shenandoah/TestVerifyJCStress.java uses non-existent -XX:+VerifyObjectEquals Reviewed-by: rkennke ! test/hotspot/jtreg/gc/shenandoah/TestVerifyJCStress.java Changeset: ad69fd32778e Author: jlahoda Date: 2019-10-21 15:38 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ad69fd32778e 8226585: Improve javac messages for using a preview API Summary: Avoiding deprecation for removal for APIs associated with preview features, the features are marked with an annotation, and errors/warnings are produced for them based on the annotation. Reviewed-by: erikj, mcimadamore, alanb Contributed-by: joe.darcy at oracle.com, jan.lahoda at oracle.com ! make/CompileInterimLangtools.gmk ! make/Docs.gmk + make/jdk/src/classes/build/tools/taglet/Preview.java ! src/java.base/share/classes/java/lang/String.java + src/java.base/share/classes/jdk/internal/PreviewFeature.java ! src/java.base/share/classes/module-info.java ! src/jdk.compiler/share/classes/com/sun/source/tree/CaseTree.java ! src/jdk.compiler/share/classes/com/sun/source/tree/SwitchExpressionTree.java ! src/jdk.compiler/share/classes/com/sun/source/tree/Tree.java ! src/jdk.compiler/share/classes/com/sun/source/tree/TreeVisitor.java ! src/jdk.compiler/share/classes/com/sun/source/tree/YieldTree.java ! src/jdk.compiler/share/classes/com/sun/source/util/SimpleTreeVisitor.java ! src/jdk.compiler/share/classes/com/sun/source/util/TreeScanner.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskPool.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/Preview.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/comp/Annotate.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/Lower.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/file/BaseFileManager.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.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/Pretty.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeCopier.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! test/jdk/java/lang/String/Formatted.java ! test/jdk/java/lang/String/StripIndent.java ! test/jdk/java/lang/String/TranslateEscapes.java ! test/langtools/tools/javac/diags/examples.not-yet.txt ! test/langtools/tools/javac/lib/combo/ComboInstance.java + test/langtools/tools/javac/preview/PreviewErrors.java ! test/langtools/tools/javac/tree/NoPrivateTypesExported.java ! test/langtools/tools/jdeps/listdeps/ListModuleDeps.java Changeset: ae0af9fb3dbb Author: erikj Date: 2019-10-21 09:26 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/ae0af9fb3dbb 8232572: Add hooks for custom output dir in Bundles.gmk Reviewed-by: tbell ! make/Bundles.gmk Changeset: cba8afa5cfed Author: lfoltan Date: 2019-10-21 13:13 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/cba8afa5cfed 8231844: Enhance type signature characters in classfile_constants.h and improve the JVM to use type signature characters more consistently Summary: Increase the use of type signature constants instead of hard coded characters within the JVM. Reviewed-by: coleenp, dholmes, fparain Contributed-by: lois.foltan at oracle.com, john.r.rose at oracle.com ! src/hotspot/share/aot/aotCodeHeap.cpp ! src/hotspot/share/c1/c1_InstructionPrinter.cpp ! src/hotspot/share/ci/ciEnv.cpp ! src/hotspot/share/ci/ciInstanceKlass.cpp ! src/hotspot/share/ci/ciObjArrayKlass.cpp ! src/hotspot/share/ci/ciObjectFactory.cpp ! src/hotspot/share/ci/ciReplay.cpp ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classLoader.cpp ! src/hotspot/share/classfile/javaAssertions.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/modules.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/verificationType.cpp ! src/hotspot/share/classfile/verificationType.hpp ! src/hotspot/share/classfile/verifier.cpp ! src/hotspot/share/classfile/vmSymbols.cpp ! src/hotspot/share/compiler/methodMatcher.cpp ! src/hotspot/share/interpreter/interpreterRuntime.cpp ! src/hotspot/share/jvmci/compilerRuntime.cpp ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/memory/heapInspection.cpp ! src/hotspot/share/oops/generateOopMap.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/objArrayKlass.cpp ! src/hotspot/share/oops/symbol.cpp ! src/hotspot/share/prims/jni.cpp ! src/hotspot/share/prims/jvmtiEnvBase.cpp ! src/hotspot/share/prims/jvmtiExport.cpp ! src/hotspot/share/prims/jvmtiImpl.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/hotspot/share/prims/jvmtiTagMap.cpp ! src/hotspot/share/prims/methodHandles.cpp ! src/hotspot/share/prims/nativeLookup.cpp ! src/hotspot/share/runtime/fieldType.cpp ! src/hotspot/share/runtime/fieldType.hpp ! src/hotspot/share/runtime/sharedRuntime.cpp ! src/hotspot/share/runtime/signature.cpp ! src/hotspot/share/runtime/signature.hpp ! src/hotspot/share/utilities/globalDefinitions.cpp ! src/hotspot/share/utilities/globalDefinitions.hpp ! src/java.base/share/native/include/classfile_constants.h.template Changeset: 559c46cd0e8b Author: erikj Date: 2019-10-21 10:32 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/559c46cd0e8b 8232569: Use test image from different jib profile for testing Reviewed-by: tbell ! make/conf/jib-profiles.js Changeset: 190ec5fae2af Author: zgu Date: 2019-10-21 14:26 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/190ec5fae2af 8232712: Shenandoah: SIGBUS in load_reference_barrier_native Reviewed-by: shade, rkennke ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.hpp Changeset: 449555c346d9 Author: jjg Date: 2019-10-21 11:35 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/449555c346d9 8232639: Change module graph images to use SVG instead of PNG format. Reviewed-by: mchung, ihse ! make/Docs.gmk ! make/jdk/src/classes/build/tools/taglet/ModuleGraph.java Changeset: fa1f838b5486 Author: jjg Date: 2019-10-21 13:25 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/fa1f838b5486 8231587: Memory leak in WorkArounds.serializedForms Reviewed-by: hannesw Contributed-by: fw at deneb.enyo.de ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WorkArounds.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java Changeset: 6d5c7f91e0b5 Author: aivanov Date: 2019-10-21 21:36 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/6d5c7f91e0b5 8232624: Java cannot start: NewStringPlatform missing Reviewed-by: dholmes, alanb, redestad ! src/hotspot/share/classfile/javaClasses.cpp ! src/java.base/share/native/libjava/jni_util.c ! src/java.base/share/native/libjava/jni_util.h Changeset: 15f4471787b9 Author: shade Date: 2019-10-21 22:44 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/15f4471787b9 8232730: Shenandoah: Traversal should not CAS the roots Reviewed-by: zgu, rkennke ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp ! src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp ! src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Changeset: ca620b06b5c9 Author: shade Date: 2019-10-21 22:44 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ca620b06b5c9 8232729: Shenandoah: assert ShenandoahHeap::cas_oop addresses are aligned Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Changeset: de395bbd7a93 Author: jiefu Date: 2019-10-21 17:27 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/de395bbd7a93 8232692: [TESTBUG] compiler/aot/fingerprint/SelfChangedCDS.java fails when cds is disabled Reviewed-by: kvn ! test/hotspot/jtreg/compiler/aot/fingerprint/SelfChangedCDS.java Changeset: d2da05214592 Author: jiefu Date: 2019-10-22 11:32 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/d2da05214592 8232757: VM fails to report an error for DumpLoadedClassList when cds is disabled Reviewed-by: iklam, dholmes ! src/hotspot/share/runtime/arguments.cpp Changeset: 24d411cb3a90 Author: ihse Date: 2019-10-22 08:57 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/24d411cb3a90 8223400: Replace some enums with static const members in hotspot/runtime Reviewed-by: iklam, coleenp ! src/hotspot/share/oops/klass.hpp ! src/hotspot/share/prims/jvm.cpp Changeset: a39cdab8fac1 Author: shade Date: 2019-10-22 14:05 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/a39cdab8fac1 8232778: Shenandoah: SBSA::arraycopy_prologue checks wrong register Reviewed-by: rkennke ! src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp Changeset: ef2b75750838 Author: zgu Date: 2019-10-22 11:59 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/ef2b75750838 8232747: Shenandoah: Concurrent GC should deactivate SATB before processing weak roots Reviewed-by: shade ! src/hotspot/share/gc/shenandoah/shenandoahConcurrentMark.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp ! src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp ! src/hotspot/share/gc/shenandoah/shenandoahMarkCompact.cpp Changeset: 2b0c5800fb1c Author: mchung Date: 2019-10-22 09:20 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/2b0c5800fb1c 8232617: Update the outdated code comments in java.lang.System class Reviewed-by: dholmes, bchristi ! src/java.base/share/classes/java/lang/System.java Changeset: 259b54092265 Author: shade Date: 2019-10-22 18:53 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/259b54092265 8232791: Shenandoah: passive mode should disable pacing Reviewed-by: zgu ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.cpp ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahPassiveHeuristics.hpp Changeset: 62e16c1e0f66 Author: shade Date: 2019-10-22 18:53 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/62e16c1e0f66 8232802: Shenandoah: transition between "cset" and "pinned_cset" does not require cancelled gc Reviewed-by: zgu ! src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp From maurizio.cimadamore at oracle.com Tue Oct 22 21:00:17 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 22 Oct 2019 21:00:17 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910222100.x9ML0IIO025054@aojmv0008.oracle.com> Changeset: e456af74284b Author: mcimadamore Date: 2019-10-22 21:00 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/e456af74284b Automatic merge with default ! src/java.base/share/classes/module-info.java - src/java.desktop/unix/native/common/awt/awt_Font.h - test/jdk/java/math/BigInteger/DivisionOverflow.java - test/jdk/java/math/BigInteger/StringConstructorOverflow.java - test/jdk/java/math/BigInteger/SymmetricRangeTests.java From maurizio.cimadamore at oracle.com Tue Oct 22 21:00:59 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 22 Oct 2019 21:00:59 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910222100.x9ML0x8I025517@aojmv0008.oracle.com> Changeset: 3b6f4e82ff91 Author: mcimadamore Date: 2019-10-22 21:00 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/3b6f4e82ff91 Automatic merge with default - src/java.desktop/unix/native/common/awt/awt_Font.h ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties - test/jdk/java/math/BigInteger/DivisionOverflow.java - test/jdk/java/math/BigInteger/StringConstructorOverflow.java - test/jdk/java/math/BigInteger/SymmetricRangeTests.java From maurizio.cimadamore at oracle.com Tue Oct 22 21:01:23 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 22 Oct 2019 21:01:23 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910222101.x9ML1Ni9025937@aojmv0008.oracle.com> Changeset: 2f5e996d2a10 Author: mcimadamore Date: 2019-10-22 21:01 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/2f5e996d2a10 Automatic merge with default - src/java.desktop/unix/native/common/awt/awt_Font.h ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.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.compiler/share/classes/com/sun/tools/javac/util/Names.java - test/jdk/java/math/BigInteger/DivisionOverflow.java - test/jdk/java/math/BigInteger/StringConstructorOverflow.java - test/jdk/java/math/BigInteger/SymmetricRangeTests.java From maurizio.cimadamore at oracle.com Tue Oct 22 21:01:52 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 22 Oct 2019 21:01:52 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910222101.x9ML1qQR026447@aojmv0008.oracle.com> Changeset: eb93059431cd Author: mcimadamore Date: 2019-10-22 21:01 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/eb93059431cd Automatic merge with default - src/java.desktop/unix/native/common/awt/awt_Font.h ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.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/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.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.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java - test/jdk/java/math/BigInteger/DivisionOverflow.java - test/jdk/java/math/BigInteger/StringConstructorOverflow.java - test/jdk/java/math/BigInteger/SymmetricRangeTests.java ! test/langtools/tools/javac/diags/examples.not-yet.txt From maurizio.cimadamore at oracle.com Tue Oct 22 22:29:09 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 22 Oct 2019 23:29:09 +0100 Subject: RFR: JEP 359-Records: javadoc code In-Reply-To: <434628a6-90c9-f77e-3231-e68082f8b791@oracle.com> References: <914ab35b-ff07-1b9e-472c-9a04f7bc49dc@oracle.com> <4f0ee8fc-22bc-7ff9-7af6-88e9e436b583@oracle.com> <434628a6-90c9-f77e-3231-e68082f8b791@oracle.com> Message-ID: Answering to myself here: On 18/10/2019 13:28, Maurizio Cimadamore wrote: > > > One high-level gripe which is pointing at a failure of the j.l.model > API is the lack of a way to get to the canonical constructor directly; > we have this issue both in core reflection and source reflection, and > I think we should address that, as both serialization and javadoc has > to DYI around that. We discussed more about this offline today and we concluded that, for the time being, this is a non-issue, both for core reflection and for source reflection. These API are traditionally 'lumpy' meaning that e.g. records and classes have the same representation (e.g. j.l.Class and j.l.model.TypeElement). So, adding an extra method like 'getCanonicalConstructor' feels yet of another of those arguable API moves where we add a method X which only makes sense if the predicate Y yields true. Moving forward we will have better ways to deal with lumpy APIs like these (see pattern matching) - in the meantime, we think it's better to leave this alone and avoid excessive pollution of the reflective APIs. Of course, should this ever become an usability pain point, we can always add helper methods later, as the records feature exits its preview period. Cheers Maurizio > > Maurizio > > On 17/10/2019 20:45, Jonathan Gibbons wrote: >> cc: javadoc-dev at openjdk.java.net >> >> --Jon >> >> >> On 10/17/2019 12:43 PM, Vicente Romero wrote: >>> Hi, >>> >>> Please review the javadoc code for JEP 359 (Records), this webrev >>> contains only the javadoc code as we have decided to split the new >>> code in clusters to make the review process easier. >>> >>> Thanks in advance for the feedback, >>> Vicente >>> >>> PS, Jon is the author of this code please keep him in the loop >>> >>> http://cr.openjdk.java.net/~vromero/records.review/javadoc/webrev.00/ >> From david.holmes at oracle.com Tue Oct 22 23:01:02 2019 From: david.holmes at oracle.com (David Holmes) Date: Wed, 23 Oct 2019 09:01:02 +1000 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Message-ID: Hi Vicente, I plan to look at this ASAP. Cheers, David On 19/10/2019 4:44 am, Vicente Romero wrote: > Hi, > > Please review the hotspot runtime and serviceability code for JEP 359 > (Records). > > Thanks in advance for the feedback, > Vicente > > PS, Thanks to Harold for the development > > > [1] > http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ > From vicente.romero at oracle.com Wed Oct 23 00:50:04 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Wed, 23 Oct 2019 00:50:04 +0000 Subject: hg: amber/amber: manual merge with default Message-ID: <201910230050.x9N0o4di023944@aojmv0008.oracle.com> Changeset: 3e6ad3a4a05d Author: vromero Date: 2019-10-22 20:49 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/3e6ad3a4a05d manual merge with default ! make/hotspot/symbols/symbols-unix ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/classfile/vmSymbols.hpp ! src/hotspot/share/include/jvm.h ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/prims/jvm.cpp ! src/hotspot/share/prims/jvmtiRedefineClasses.cpp ! src/java.base/share/classes/module-info.java - src/java.desktop/unix/native/common/awt/awt_Font.h ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Preview.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/comp/Annotate.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/Lower.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/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.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeMaker.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 - test/jdk/java/math/BigInteger/DivisionOverflow.java - test/jdk/java/math/BigInteger/StringConstructorOverflow.java - test/jdk/java/math/BigInteger/SymmetricRangeTests.java ! test/langtools/tools/javac/diags/examples.not-yet.txt From vicente.romero at oracle.com Wed Oct 23 12:08:29 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Wed, 23 Oct 2019 08:08:29 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Message-ID: <54cefcaa-af01-9043-afd1-8cc17f9aced5@oracle.com> Thanks David, Vicente On 10/22/19 7:01 PM, David Holmes wrote: > Hi Vicente, > > I plan to look at this ASAP. > > Cheers, > David > > On 19/10/2019 4:44 am, Vicente Romero wrote: >> Hi, >> >> Please review the hotspot runtime and serviceability code for JEP 359 >> (Records). >> >> Thanks in advance for the feedback, >> Vicente >> >> PS, Thanks to Harold for the development >> >> >> [1] >> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ >> From harold.seigel at oracle.com Wed Oct 23 12:10:41 2019 From: harold.seigel at oracle.com (Harold Seigel) Date: Wed, 23 Oct 2019 08:10:41 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: <30f23fc5-a797-9e60-50c9-8677781428bf@oracle.com> References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> <30f23fc5-a797-9e60-50c9-8677781428bf@oracle.com> Message-ID: <3982df65-fcf5-da3b-9372-0220d3b1d4c3@oracle.com> Hi Sergei, Thanks for looking at the change. I'll fix line 7789 in jvmti.xml before the change gets pushed. Harold On 10/23/2019 3:46 AM, serguei.spitsyn at oracle.com wrote: > Hi Vicente and Harold, > > I'm still reviewing this, it looks pretty good so far. > > One quick comment about a pre-existed issue (not your fault). > The jvmti.xml has an update to add the Record attribute into the list > of attributes that must not be changed: > 7789 The retransformation must not change the NestHost, > 7790 NestMembers, or Record attributes. > The line 7789 has to say: > 7789 The redefinition must not change the NestHost, > Could you, please, fix this? > > Thanks, > Serguei > > > On 10/18/19 11:44, Vicente Romero wrote: >> Hi, >> >> Please review the hotspot runtime and serviceability code for JEP 359 >> (Records). >> >> Thanks in advance for the feedback, >> Vicente >> >> PS, Thanks to Harold for the development >> >> >> [1] >> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ > From harold.seigel at oracle.com Wed Oct 23 12:17:33 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Wed, 23 Oct 2019 12:17:33 +0000 Subject: hg: amber/amber: Summary: Change appropriate text to say "redefinition", not "retransformation" Message-ID: <201910231217.x9NCHXIX015296@aojmv0008.oracle.com> Changeset: 239cc1135ec1 Author: hseigel Date: 2019-10-23 12:16 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/239cc1135ec1 Summary: Change appropriate text to say "redefinition", not "retransformation" ! src/hotspot/share/prims/jvmti.xml From chris.hegarty at oracle.com Wed Oct 23 13:55:26 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Wed, 23 Oct 2019 13:55:26 +0000 Subject: hg: amber/amber: records: minor spec clarification to ObjectMethods and test Message-ID: <201910231355.x9NDtRrE008278@aojmv0008.oracle.com> Changeset: d622402bbb40 Author: chegar Date: 2019-10-23 14:54 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/d622402bbb40 records: minor spec clarification to ObjectMethods and test ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java + test/jdk/java/lang/invoke/ObjectMethodsTest.java + test/jdk/java/lang/invoke/empty_security.policy From vicente.romero at oracle.com Wed Oct 23 19:05:23 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Wed, 23 Oct 2019 19:05:23 +0000 Subject: hg: amber/amber: addressing review comments Message-ID: <201910231905.x9NJ5Our012547@aojmv0008.oracle.com> Changeset: 4776e9fa7703 Author: vromero Date: 2019-10-23 14:54 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/4776e9fa7703 addressing review comments ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.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/TypeEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java From vicente.romero at oracle.com Wed Oct 23 20:49:15 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Wed, 23 Oct 2019 20:49:15 +0000 Subject: hg: amber/amber: additional changes proposed in the review Message-ID: <201910232049.x9NKnFNU018399@aojmv0008.oracle.com> Changeset: b9134ce53417 Author: vromero Date: 2019-10-23 16:47 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/b9134ce53417 additional changes proposed in the review ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.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/tree/TreeInfo.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! src/jdk.jshell/share/classes/jdk/jshell/CompletenessAnalyzer.java ! test/langtools/jdk/jshell/CompletenessTest.java From david.holmes at oracle.com Wed Oct 23 23:16:03 2019 From: david.holmes at oracle.com (David Holmes) Date: Thu, 24 Oct 2019 09:16:03 +1000 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Message-ID: Hi Vicente, (and Harold!) On 19/10/2019 4:44 am, Vicente Romero wrote: > Hi, > > Please review the hotspot runtime and serviceability code for JEP 359 > (Records). I've looked at all the code, though not in great detail i.e I have not validated the code changes against the proposed specification. Support for records seems mostly "mechanical" and the patterns you have used look appropriate. A couple of comments below. src/hotspot/share/classfile/classFileParser.cpp You added the check 3704 } else if (tag == vmSymbols::tag_record()) { inside the block 3671 } else if (_major_version >= JAVA_11_VERSION) { but I would have expected to see a new block created } else if (_major_version >= JAVA_14_VERSION) { to hold this code. Style nit: 3773 const unsigned int calculated_attr_length = parse_classfile_record_attribute( 3774 cfs, 3775 cp, 3776 record_attribute_start, 3777 CHECK); The style in this file is align the args on the = character. 4928 if ((is_abstract && is_final && !major_gte_14) || As Lois mentioned already this change seems incorrect in general - is it related to sealed types perhaps? (Even then it should be tightened to actually check for a sealed type and not just allow arbitrary abstract+final classes.) --- src/hotspot/share/classfile/javaClasses.cpp + if (ik->should_be_initialized()) { + ik->initialize(CHECK_0); + } Unless the call to should_be_initialized is an inline method (which it isn't) then we may as well just call initialize unconditionally as the first thing it will do is check should_be_initialized. + jio_snprintf(sig, sig_len, "()%s", type->as_C_string()); You should use the symbolic constants for the '(' and ')' characters. --- src/hotspot/share/oops/instanceKlass.cpp Nit: 3549 if (component) { should test != NULL --- test/jdk/java/lang/instrument/RedefineRecordAttr Nice reuse of the nestmate testing pattern :) --- Thanks, David > Thanks in advance for the feedback, > Vicente > > PS, Thanks to Harold for the development > > > [1] > http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ > From harold.seigel at oracle.com Thu Oct 24 13:28:13 2019 From: harold.seigel at oracle.com (Harold Seigel) Date: Thu, 24 Oct 2019 09:28:13 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Message-ID: Thanks Serguei! I will make the changes that you suggest. Harold On 10/24/2019 2:01 AM, serguei.spitsyn at oracle.com wrote: > Hi Vicente and Harold, > > The fix looks good to me. > Nice set of tests! > > I have a couple of nits besides what other reviewers already commented. > > http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/test/jdk/java/lang/instrument/RedefineRecordAttr/HostBA/redef/Host.java.html > > 29 public Host(int A, long B, char C) { > 30 this.A = A; > 31 this.B = B; > 32 } > The lines 30 and 31 needs to be swapped to follow the other such > variants style. > > For instance the version HostBAC: > http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/test/jdk/java/lang/instrument/RedefineRecordAttr/HostBAC/redef/Host.java.html > > has constructor: > 29 public Host(int A, long B, char C) { > 30 this.B = B; > 31 this.A = A; > 32 this.C = C; > 33 } > http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/test/jdk/java/lang/instrument/RedefineRecordAttr/TestRecordAttr.java.html > 50 The basic test class is call Host and we have variants that have zero or more > > http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/test/jdk/java/lang/instrument/RedefineRecordAttrGenericSig/TestRecordAttrGenericSig.java.html > 46 The basic test class is call Host and we have variants that have record components > > It seems there is a typo in the comments above: 'is call' => 'is called'. > Maybe, I did not get it correctly. > > > Thanks, > Serguei > > > On 10/18/19 11:44, Vicente Romero wrote: >> Hi, >> >> Please review the hotspot runtime and serviceability code for JEP 359 >> (Records). >> >> Thanks in advance for the feedback, >> Vicente >> >> PS, Thanks to Harold for the development >> >> >> [1] >> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ > From chris.hegarty at oracle.com Thu Oct 24 15:12:19 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Thu, 24 Oct 2019 15:12:19 +0000 Subject: hg: amber/amber: records: minor test changes in ObjectMethodsTest Message-ID: <201910241512.x9OFCJJe012942@aojmv0008.oracle.com> Changeset: ef72ed0f807a Author: chegar Date: 2019-10-24 16:11 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/ef72ed0f807a records: minor test changes in ObjectMethodsTest ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java ! test/jdk/java/lang/invoke/ObjectMethodsTest.java From chris.hegarty at oracle.com Thu Oct 24 15:46:26 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Thu, 24 Oct 2019 15:46:26 +0000 Subject: hg: amber/amber: records: consistency and editoral changes for RecordComponent ( drop superflous links ) Message-ID: <201910241546.x9OFkQFp003117@aojmv0008.oracle.com> Changeset: 02fb3c24d5db Author: chegar Date: 2019-10-24 16:45 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/02fb3c24d5db records: consistency and editoral changes for RecordComponent ( drop superflous links ) ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java From vicente.romero at oracle.com Thu Oct 24 15:57:24 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 24 Oct 2019 15:57:24 +0000 Subject: hg: amber/amber: fix bug related to serialization members Message-ID: <201910241557.x9OFvOVc010779@aojmv0008.oracle.com> Changeset: 38d92ac3b281 Author: vromero Date: 2019-10-24 11:56 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/38d92ac3b281 fix bug related to serialization members ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! test/langtools/tools/javac/records/RecordCompilationTests.java From chris.hegarty at oracle.com Thu Oct 24 16:23:58 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Thu, 24 Oct 2019 16:23:58 +0000 Subject: hg: amber/amber: 2 new changesets Message-ID: <201910241623.x9OGNxM0028819@aojmv0008.oracle.com> Changeset: c265707c9eb1 Author: chegar Date: 2019-10-24 17:12 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/c265707c9eb1 records: move records reflection test to test/jdk/java/lang/reflect/ + test/jdk/java/lang/reflect/records/RecordReflectionTest.java - test/langtools/tools/javac/records/RecordReflectionTest.java Changeset: e980ba4150ef Author: chegar Date: 2019-10-24 17:23 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/e980ba4150ef records: fix source version in reflection test ! test/jdk/java/lang/reflect/records/RecordReflectionTest.java From vicente.romero at oracle.com Thu Oct 24 17:30:36 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 24 Oct 2019 17:30:36 +0000 Subject: hg: amber/amber: documenting the annotation processing in records, removing accessors from VarSymbol, several refactorings Message-ID: <201910241730.x9OHUaC0007587@aojmv0008.oracle.com> Changeset: 6f36468c551a Author: vromero Date: 2019-10-24 13:30 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/6f36468c551a documenting the annotation processing in records, removing accessors from VarSymbol, several refactorings ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java From harold.seigel at oracle.com Thu Oct 24 17:50:17 2019 From: harold.seigel at oracle.com (Harold Seigel) Date: Thu, 24 Oct 2019 13:50:17 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Message-ID: Hi David, Thanks for reviewing this! Here's an updated webrev containing the below changes (and one change requested by Serguei).? Could you take a look? http://cr.openjdk.java.net/~hseigel/records.review.rt.01/webrev/index.html Please also see in-line comments. On 10/23/2019 7:16 PM, David Holmes wrote: > Hi Vicente, (and Harold!) > > On 19/10/2019 4:44 am, Vicente Romero wrote: >> Hi, >> >> Please review the hotspot runtime and serviceability code for JEP 359 >> (Records). > > I've looked at all the code, though not in great detail i.e I have not > validated the code changes against the proposed specification. Support > for records seems mostly "mechanical" and the patterns you have used > look appropriate. A couple of comments below. > > src/hotspot/share/classfile/classFileParser.cpp > > You added the check > > 3704???????? } else if (tag == vmSymbols::tag_record()) { > > inside the block > > 3671?????? } else if (_major_version >= JAVA_11_VERSION) { > > but I would have expected to see a new block created > > ?????? } else if (_major_version >= JAVA_14_VERSION) { > > to hold this code. Done. > > Style nit: > > 3773???? const unsigned int calculated_attr_length = > parse_classfile_record_attribute( > 3774???????????????????????????? cfs, > 3775???????????????????????????? cp, > 3776???????????????????????????? record_attribute_start, > 3777???????????????????????????? CHECK); > > The style in this file is align the args on the = character. Done. > > 4928?? if ((is_abstract && is_final && !major_gte_14) || > > As Lois mentioned already this change seems incorrect in general - is > it related to sealed types perhaps? (Even then it should be tightened > to actually check for a sealed type and not just allow arbitrary > abstract+final classes.) The '!major_gte_14' check was initially for sealed types, but is wrong.? It's already been removed. > > --- > > src/hotspot/share/classfile/javaClasses.cpp > > +?? if (ik->should_be_initialized()) { > +???? ik->initialize(CHECK_0); > +?? } > > Unless the call to should_be_initialized is an inline method (which it > isn't) then we may as well just call initialize unconditionally as the > first thing it will do is check should_be_initialized. Done. > > +???? jio_snprintf(sig, sig_len, "()%s", type->as_C_string()); > > You should use the symbolic constants for the '(' and ')' characters. Done. > > --- > > src/hotspot/share/oops/instanceKlass.cpp > > Nit: > > 3549?????? if (component) { > > should test != NULL Done. > > --- > > ?test/jdk/java/lang/instrument/RedefineRecordAttr > > Nice reuse of the nestmate testing pattern :) Yes, that nestmate test was very helpful! Thanks, Harold > > --- > > Thanks, > David > >> Thanks in advance for the feedback, >> Vicente >> >> PS, Thanks to Harold for the development >> >> >> [1] >> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ >> From vicente.romero at oracle.com Thu Oct 24 19:56:16 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 24 Oct 2019 19:56:16 +0000 Subject: hg: amber/amber: additional refactorings, changing timing of checkings Message-ID: <201910241956.x9OJuGIa027996@aojmv0008.oracle.com> Changeset: ef9c7edce2ec Author: vromero Date: 2019-10-24 15:55 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/ef9c7edce2ec additional refactorings, changing timing of checkings ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java ! test/langtools/tools/javac/AnonymousClass/AnonymousClassFlags.java + test/langtools/tools/javac/processing/model/element/PersonalBest.java ! test/langtools/tools/javac/processing/model/element/TestRecord.java ! test/langtools/tools/javac/records/BadRecord.java ! test/langtools/tools/javac/records/RecordMemberTests.java ! test/langtools/tools/javac/records/VarargsRecordsTest.java ! test/langtools/tools/javac/records/writeread/WriteReadTest.java From vicente.romero at oracle.com Thu Oct 24 21:02:34 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Thu, 24 Oct 2019 21:02:34 +0000 Subject: hg: amber/amber: test cleanup Message-ID: <201910242102.x9OL2ZEH001573@aojmv0008.oracle.com> Changeset: 48d4397ef025 Author: vromero Date: 2019-10-24 17:02 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/48d4397ef025 test cleanup ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/diags/examples.not-yet.txt ! test/langtools/tools/javac/diags/examples/IllegalRecordComponentName.java ! test/langtools/tools/javac/launcher/SourceLauncherTest.java ! test/langtools/tools/javac/parser/JavacParserTest.java ! test/langtools/tools/javac/processing/model/element/TestRecordDesugar.java From david.holmes at oracle.com Fri Oct 25 00:40:57 2019 From: david.holmes at oracle.com (David Holmes) Date: Fri, 25 Oct 2019 10:40:57 +1000 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Message-ID: <11add7e9-0cc3-a258-a977-1a408b196a74@oracle.com> Hi Harold, On 25/10/2019 3:50 am, Harold Seigel wrote: > Hi David, > > Thanks for reviewing this! > > Here's an updated webrev containing the below changes (and one change > requested by Serguei).? Could you take a look? > > http://cr.openjdk.java.net/~hseigel/records.review.rt.01/webrev/index.html That incremental webrev looks fine. However you didn't include Serguei's earlier change request [Harold]>> I'll fix line 7789 in jvmti.xml before the change gets pushed. so just wanted to remind you on that. Thanks, David > Please also see in-line comments. > > On 10/23/2019 7:16 PM, David Holmes wrote: >> Hi Vicente, (and Harold!) >> >> On 19/10/2019 4:44 am, Vicente Romero wrote: >>> Hi, >>> >>> Please review the hotspot runtime and serviceability code for JEP 359 >>> (Records). >> >> I've looked at all the code, though not in great detail i.e I have not >> validated the code changes against the proposed specification. Support >> for records seems mostly "mechanical" and the patterns you have used >> look appropriate. A couple of comments below. >> >> src/hotspot/share/classfile/classFileParser.cpp >> >> You added the check >> >> 3704???????? } else if (tag == vmSymbols::tag_record()) { >> >> inside the block >> >> 3671?????? } else if (_major_version >= JAVA_11_VERSION) { >> >> but I would have expected to see a new block created >> >> ?????? } else if (_major_version >= JAVA_14_VERSION) { >> >> to hold this code. > Done. >> >> Style nit: >> >> 3773???? const unsigned int calculated_attr_length = >> parse_classfile_record_attribute( >> 3774???????????????????????????? cfs, >> 3775???????????????????????????? cp, >> 3776???????????????????????????? record_attribute_start, >> 3777???????????????????????????? CHECK); >> >> The style in this file is align the args on the = character. > Done. >> >> 4928?? if ((is_abstract && is_final && !major_gte_14) || >> >> As Lois mentioned already this change seems incorrect in general - is >> it related to sealed types perhaps? (Even then it should be tightened >> to actually check for a sealed type and not just allow arbitrary >> abstract+final classes.) > The '!major_gte_14' check was initially for sealed types, but is wrong. > It's already been removed. >> >> --- >> >> src/hotspot/share/classfile/javaClasses.cpp >> >> +?? if (ik->should_be_initialized()) { >> +???? ik->initialize(CHECK_0); >> +?? } >> >> Unless the call to should_be_initialized is an inline method (which it >> isn't) then we may as well just call initialize unconditionally as the >> first thing it will do is check should_be_initialized. > Done. >> >> +???? jio_snprintf(sig, sig_len, "()%s", type->as_C_string()); >> >> You should use the symbolic constants for the '(' and ')' characters. > Done. >> >> --- >> >> src/hotspot/share/oops/instanceKlass.cpp >> >> Nit: >> >> 3549?????? if (component) { >> >> should test != NULL > Done. >> >> --- >> >> ?test/jdk/java/lang/instrument/RedefineRecordAttr >> >> Nice reuse of the nestmate testing pattern :) > > Yes, that nestmate test was very helpful! > > Thanks, Harold > >> >> --- >> >> Thanks, >> David >> >>> Thanks in advance for the feedback, >>> Vicente >>> >>> PS, Thanks to Harold for the development >>> >>> >>> [1] >>> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ >>> From vicente.romero at oracle.com Fri Oct 25 02:08:09 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 25 Oct 2019 02:08:09 +0000 Subject: hg: amber/amber: more test fixing Message-ID: <201910250208.x9P289sO005866@aojmv0008.oracle.com> Changeset: 383430f2d47a Author: vromero Date: 2019-10-24 22:07 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/383430f2d47a more test fixing - test/langtools/tools/javac/processing/model/element/PersonalBest.java ! test/langtools/tools/javac/processing/model/element/TestRecord.java ! test/langtools/tools/javac/records/annotations/AnnoProcessorOnRecordsTest.java - test/langtools/tools/javac/records/annotations/AnnotatedRecords.java - test/langtools/tools/javac/records/annotations/AnnotatedRecords2.java ! test/langtools/tools/javac/records/annotations/CheckingTypeAnnotationsOnRecords.java ! test/langtools/tools/javac/records/annotations/JavaxLangModelForRecords.java ! test/langtools/tools/javac/records/mandated_members/CheckRecordMembers.java From harold.seigel at oracle.com Fri Oct 25 11:49:18 2019 From: harold.seigel at oracle.com (Harold Seigel) Date: Fri, 25 Oct 2019 07:49:18 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: <11add7e9-0cc3-a258-a977-1a408b196a74@oracle.com> References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> <11add7e9-0cc3-a258-a977-1a408b196a74@oracle.com> Message-ID: <4f7b5662-a66e-5941-82ef-9e07bd5b6fb3@oracle.com> Thanks David! I should have mentioned that I had pushed Serguei's jvmti.xml and TestRecordAttr*.java changes earlier. Harold On 10/24/2019 8:40 PM, David Holmes wrote: > Hi Harold, > > On 25/10/2019 3:50 am, Harold Seigel wrote: >> Hi David, >> >> Thanks for reviewing this! >> >> Here's an updated webrev containing the below changes (and one change >> requested by Serguei).? Could you take a look? >> >> http://cr.openjdk.java.net/~hseigel/records.review.rt.01/webrev/index.html > > That incremental webrev looks fine. > > However you didn't include Serguei's earlier change request > > [Harold]>> I'll fix line 7789 in jvmti.xml before the change gets pushed. > > so just wanted to remind you on that. > > Thanks, > David > >> Please also see in-line comments. >> >> On 10/23/2019 7:16 PM, David Holmes wrote: >>> Hi Vicente, (and Harold!) >>> >>> On 19/10/2019 4:44 am, Vicente Romero wrote: >>>> Hi, >>>> >>>> Please review the hotspot runtime and serviceability code for JEP >>>> 359 (Records). >>> >>> I've looked at all the code, though not in great detail i.e I have >>> not validated the code changes against the proposed specification. >>> Support for records seems mostly "mechanical" and the patterns you >>> have used look appropriate. A couple of comments below. >>> >>> src/hotspot/share/classfile/classFileParser.cpp >>> >>> You added the check >>> >>> 3704???????? } else if (tag == vmSymbols::tag_record()) { >>> >>> inside the block >>> >>> 3671?????? } else if (_major_version >= JAVA_11_VERSION) { >>> >>> but I would have expected to see a new block created >>> >>> ?????? } else if (_major_version >= JAVA_14_VERSION) { >>> >>> to hold this code. >> Done. >>> >>> Style nit: >>> >>> 3773???? const unsigned int calculated_attr_length = >>> parse_classfile_record_attribute( >>> 3774???????????????????????????? cfs, >>> 3775???????????????????????????? cp, >>> 3776???????????????????????????? record_attribute_start, >>> 3777???????????????????????????? CHECK); >>> >>> The style in this file is align the args on the = character. >> Done. >>> >>> 4928?? if ((is_abstract && is_final && !major_gte_14) || >>> >>> As Lois mentioned already this change seems incorrect in general - >>> is it related to sealed types perhaps? (Even then it should be >>> tightened to actually check for a sealed type and not just allow >>> arbitrary abstract+final classes.) >> The '!major_gte_14' check was initially for sealed types, but is >> wrong.? It's already been removed. >>> >>> --- >>> >>> src/hotspot/share/classfile/javaClasses.cpp >>> >>> +?? if (ik->should_be_initialized()) { >>> +???? ik->initialize(CHECK_0); >>> +?? } >>> >>> Unless the call to should_be_initialized is an inline method (which >>> it isn't) then we may as well just call initialize unconditionally >>> as the first thing it will do is check should_be_initialized. >> Done. >>> >>> +???? jio_snprintf(sig, sig_len, "()%s", type->as_C_string()); >>> >>> You should use the symbolic constants for the '(' and ')' characters. >> Done. >>> >>> --- >>> >>> src/hotspot/share/oops/instanceKlass.cpp >>> >>> Nit: >>> >>> 3549?????? if (component) { >>> >>> should test != NULL >> Done. >>> >>> --- >>> >>> ?test/jdk/java/lang/instrument/RedefineRecordAttr >>> >>> Nice reuse of the nestmate testing pattern :) >> >> Yes, that nestmate test was very helpful! >> >> Thanks, Harold >> >>> >>> --- >>> >>> Thanks, >>> David >>> >>>> Thanks in advance for the feedback, >>>> Vicente >>>> >>>> PS, Thanks to Harold for the development >>>> >>>> >>>> [1] >>>> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ >>>> From harold.seigel at oracle.com Fri Oct 25 12:42:46 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Fri, 25 Oct 2019 12:42:46 +0000 Subject: hg: amber/amber: Summary: Review comments to clean up code and move parsing of Record attribute under "if (JAVA_14_VERSION)" code block Message-ID: <201910251242.x9PCgk6j024601@aojmv0008.oracle.com> Changeset: c084dcf36e75 Author: hseigel Date: 2019-10-25 12:42 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/c084dcf36e75 Summary: Review comments to clean up code and move parsing of Record attribute under "if (JAVA_14_VERSION)" code block Reviewed-by: dholmes, sspitsyn ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/oops/instanceKlass.cpp ! test/jdk/java/lang/instrument/RedefineRecordAttr/HostBA/redef/Host.java From david.holmes at oracle.com Fri Oct 25 13:23:15 2019 From: david.holmes at oracle.com (David Holmes) Date: Fri, 25 Oct 2019 23:23:15 +1000 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: <4f7b5662-a66e-5941-82ef-9e07bd5b6fb3@oracle.com> References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> <11add7e9-0cc3-a258-a977-1a408b196a74@oracle.com> <4f7b5662-a66e-5941-82ef-9e07bd5b6fb3@oracle.com> Message-ID: <32278f15-6556-3c8c-6364-b9095a576ce3@oracle.com> On 25/10/2019 9:49 pm, Harold Seigel wrote: > Thanks David! > > I should have mentioned that I had pushed Serguei's jvmti.xml and > TestRecordAttr*.java changes earlier. Pushed under what bug id to where? This JEP is still only a Candidate. David > Harold > > On 10/24/2019 8:40 PM, David Holmes wrote: >> Hi Harold, >> >> On 25/10/2019 3:50 am, Harold Seigel wrote: >>> Hi David, >>> >>> Thanks for reviewing this! >>> >>> Here's an updated webrev containing the below changes (and one change >>> requested by Serguei).? Could you take a look? >>> >>> http://cr.openjdk.java.net/~hseigel/records.review.rt.01/webrev/index.html >>> >> >> That incremental webrev looks fine. >> >> However you didn't include Serguei's earlier change request >> >> [Harold]>> I'll fix line 7789 in jvmti.xml before the change gets pushed. >> >> so just wanted to remind you on that. >> >> Thanks, >> David >> >>> Please also see in-line comments. >>> >>> On 10/23/2019 7:16 PM, David Holmes wrote: >>>> Hi Vicente, (and Harold!) >>>> >>>> On 19/10/2019 4:44 am, Vicente Romero wrote: >>>>> Hi, >>>>> >>>>> Please review the hotspot runtime and serviceability code for JEP >>>>> 359 (Records). >>>> >>>> I've looked at all the code, though not in great detail i.e I have >>>> not validated the code changes against the proposed specification. >>>> Support for records seems mostly "mechanical" and the patterns you >>>> have used look appropriate. A couple of comments below. >>>> >>>> src/hotspot/share/classfile/classFileParser.cpp >>>> >>>> You added the check >>>> >>>> 3704???????? } else if (tag == vmSymbols::tag_record()) { >>>> >>>> inside the block >>>> >>>> 3671?????? } else if (_major_version >= JAVA_11_VERSION) { >>>> >>>> but I would have expected to see a new block created >>>> >>>> ?????? } else if (_major_version >= JAVA_14_VERSION) { >>>> >>>> to hold this code. >>> Done. >>>> >>>> Style nit: >>>> >>>> 3773???? const unsigned int calculated_attr_length = >>>> parse_classfile_record_attribute( >>>> 3774???????????????????????????? cfs, >>>> 3775???????????????????????????? cp, >>>> 3776???????????????????????????? record_attribute_start, >>>> 3777???????????????????????????? CHECK); >>>> >>>> The style in this file is align the args on the = character. >>> Done. >>>> >>>> 4928?? if ((is_abstract && is_final && !major_gte_14) || >>>> >>>> As Lois mentioned already this change seems incorrect in general - >>>> is it related to sealed types perhaps? (Even then it should be >>>> tightened to actually check for a sealed type and not just allow >>>> arbitrary abstract+final classes.) >>> The '!major_gte_14' check was initially for sealed types, but is >>> wrong.? It's already been removed. >>>> >>>> --- >>>> >>>> src/hotspot/share/classfile/javaClasses.cpp >>>> >>>> +?? if (ik->should_be_initialized()) { >>>> +???? ik->initialize(CHECK_0); >>>> +?? } >>>> >>>> Unless the call to should_be_initialized is an inline method (which >>>> it isn't) then we may as well just call initialize unconditionally >>>> as the first thing it will do is check should_be_initialized. >>> Done. >>>> >>>> +???? jio_snprintf(sig, sig_len, "()%s", type->as_C_string()); >>>> >>>> You should use the symbolic constants for the '(' and ')' characters. >>> Done. >>>> >>>> --- >>>> >>>> src/hotspot/share/oops/instanceKlass.cpp >>>> >>>> Nit: >>>> >>>> 3549?????? if (component) { >>>> >>>> should test != NULL >>> Done. >>>> >>>> --- >>>> >>>> ?test/jdk/java/lang/instrument/RedefineRecordAttr >>>> >>>> Nice reuse of the nestmate testing pattern :) >>> >>> Yes, that nestmate test was very helpful! >>> >>> Thanks, Harold >>> >>>> >>>> --- >>>> >>>> Thanks, >>>> David >>>> >>>>> Thanks in advance for the feedback, >>>>> Vicente >>>>> >>>>> PS, Thanks to Harold for the development >>>>> >>>>> >>>>> [1] >>>>> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ >>>>> From harold.seigel at oracle.com Fri Oct 25 13:32:55 2019 From: harold.seigel at oracle.com (Harold Seigel) Date: Fri, 25 Oct 2019 09:32:55 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: <32278f15-6556-3c8c-6364-b9095a576ce3@oracle.com> References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> <11add7e9-0cc3-a258-a977-1a408b196a74@oracle.com> <4f7b5662-a66e-5941-82ef-9e07bd5b6fb3@oracle.com> <32278f15-6556-3c8c-6364-b9095a576ce3@oracle.com> Message-ID: <0347120e-340c-6f45-396f-39c50da4a9ac@oracle.com> The changes were pushed to the records branch of the amber repo: http://hg.openjdk.java.net/amber/amber Harold On 10/25/2019 9:23 AM, David Holmes wrote: > On 25/10/2019 9:49 pm, Harold Seigel wrote: >> Thanks David! >> >> I should have mentioned that I had pushed Serguei's jvmti.xml and >> TestRecordAttr*.java changes earlier. > > Pushed under what bug id to where? This JEP is still only a Candidate. > > David > >> Harold >> >> On 10/24/2019 8:40 PM, David Holmes wrote: >>> Hi Harold, >>> >>> On 25/10/2019 3:50 am, Harold Seigel wrote: >>>> Hi David, >>>> >>>> Thanks for reviewing this! >>>> >>>> Here's an updated webrev containing the below changes (and one >>>> change requested by Serguei).? Could you take a look? >>>> >>>> http://cr.openjdk.java.net/~hseigel/records.review.rt.01/webrev/index.html >>>> >>> >>> That incremental webrev looks fine. >>> >>> However you didn't include Serguei's earlier change request >>> >>> [Harold]>> I'll fix line 7789 in jvmti.xml before the change gets >>> pushed. >>> >>> so just wanted to remind you on that. >>> >>> Thanks, >>> David >>> >>>> Please also see in-line comments. >>>> >>>> On 10/23/2019 7:16 PM, David Holmes wrote: >>>>> Hi Vicente, (and Harold!) >>>>> >>>>> On 19/10/2019 4:44 am, Vicente Romero wrote: >>>>>> Hi, >>>>>> >>>>>> Please review the hotspot runtime and serviceability code for JEP >>>>>> 359 (Records). >>>>> >>>>> I've looked at all the code, though not in great detail i.e I have >>>>> not validated the code changes against the proposed specification. >>>>> Support for records seems mostly "mechanical" and the patterns you >>>>> have used look appropriate. A couple of comments below. >>>>> >>>>> src/hotspot/share/classfile/classFileParser.cpp >>>>> >>>>> You added the check >>>>> >>>>> 3704???????? } else if (tag == vmSymbols::tag_record()) { >>>>> >>>>> inside the block >>>>> >>>>> 3671?????? } else if (_major_version >= JAVA_11_VERSION) { >>>>> >>>>> but I would have expected to see a new block created >>>>> >>>>> ?????? } else if (_major_version >= JAVA_14_VERSION) { >>>>> >>>>> to hold this code. >>>> Done. >>>>> >>>>> Style nit: >>>>> >>>>> 3773???? const unsigned int calculated_attr_length = >>>>> parse_classfile_record_attribute( >>>>> 3774???????????????????????????? cfs, >>>>> 3775???????????????????????????? cp, >>>>> 3776???????????????????????????? record_attribute_start, >>>>> 3777???????????????????????????? CHECK); >>>>> >>>>> The style in this file is align the args on the = character. >>>> Done. >>>>> >>>>> 4928?? if ((is_abstract && is_final && !major_gte_14) || >>>>> >>>>> As Lois mentioned already this change seems incorrect in general - >>>>> is it related to sealed types perhaps? (Even then it should be >>>>> tightened to actually check for a sealed type and not just allow >>>>> arbitrary abstract+final classes.) >>>> The '!major_gte_14' check was initially for sealed types, but is >>>> wrong.? It's already been removed. >>>>> >>>>> --- >>>>> >>>>> src/hotspot/share/classfile/javaClasses.cpp >>>>> >>>>> +?? if (ik->should_be_initialized()) { >>>>> +???? ik->initialize(CHECK_0); >>>>> +?? } >>>>> >>>>> Unless the call to should_be_initialized is an inline method >>>>> (which it isn't) then we may as well just call initialize >>>>> unconditionally as the first thing it will do is check >>>>> should_be_initialized. >>>> Done. >>>>> >>>>> +???? jio_snprintf(sig, sig_len, "()%s", type->as_C_string()); >>>>> >>>>> You should use the symbolic constants for the '(' and ')' characters. >>>> Done. >>>>> >>>>> --- >>>>> >>>>> src/hotspot/share/oops/instanceKlass.cpp >>>>> >>>>> Nit: >>>>> >>>>> 3549?????? if (component) { >>>>> >>>>> should test != NULL >>>> Done. >>>>> >>>>> --- >>>>> >>>>> ?test/jdk/java/lang/instrument/RedefineRecordAttr >>>>> >>>>> Nice reuse of the nestmate testing pattern :) >>>> >>>> Yes, that nestmate test was very helpful! >>>> >>>> Thanks, Harold >>>> >>>>> >>>>> --- >>>>> >>>>> Thanks, >>>>> David >>>>> >>>>>> Thanks in advance for the feedback, >>>>>> Vicente >>>>>> >>>>>> PS, Thanks to Harold for the development >>>>>> >>>>>> >>>>>> [1] >>>>>> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ >>>>>> From serguei.spitsyn at oracle.com Fri Oct 25 17:21:04 2019 From: serguei.spitsyn at oracle.com (serguei.spitsyn at oracle.com) Date: Fri, 25 Oct 2019 10:21:04 -0700 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> Message-ID: <5c926314-560a-0a74-b4dd-daf03406b441@oracle.com> Hi Harold, The update looks good. Thanks, Serguei On 10/24/19 10:50, Harold Seigel wrote: > Hi David, > > Thanks for reviewing this! > > Here's an updated webrev containing the below changes (and one change > requested by Serguei).? Could you take a look? > > http://cr.openjdk.java.net/~hseigel/records.review.rt.01/webrev/index.html > > Please also see in-line comments. > > On 10/23/2019 7:16 PM, David Holmes wrote: >> Hi Vicente, (and Harold!) >> >> On 19/10/2019 4:44 am, Vicente Romero wrote: >>> Hi, >>> >>> Please review the hotspot runtime and serviceability code for JEP >>> 359 (Records). >> >> I've looked at all the code, though not in great detail i.e I have >> not validated the code changes against the proposed specification. >> Support for records seems mostly "mechanical" and the patterns you >> have used look appropriate. A couple of comments below. >> >> src/hotspot/share/classfile/classFileParser.cpp >> >> You added the check >> >> 3704???????? } else if (tag == vmSymbols::tag_record()) { >> >> inside the block >> >> 3671?????? } else if (_major_version >= JAVA_11_VERSION) { >> >> but I would have expected to see a new block created >> >> ?????? } else if (_major_version >= JAVA_14_VERSION) { >> >> to hold this code. > Done. >> >> Style nit: >> >> 3773???? const unsigned int calculated_attr_length = >> parse_classfile_record_attribute( >> 3774???????????????????????????? cfs, >> 3775???????????????????????????? cp, >> 3776???????????????????????????? record_attribute_start, >> 3777???????????????????????????? CHECK); >> >> The style in this file is align the args on the = character. > Done. >> >> 4928?? if ((is_abstract && is_final && !major_gte_14) || >> >> As Lois mentioned already this change seems incorrect in general - is >> it related to sealed types perhaps? (Even then it should be tightened >> to actually check for a sealed type and not just allow arbitrary >> abstract+final classes.) > The '!major_gte_14' check was initially for sealed types, but is > wrong.? It's already been removed. >> >> --- >> >> src/hotspot/share/classfile/javaClasses.cpp >> >> +?? if (ik->should_be_initialized()) { >> +???? ik->initialize(CHECK_0); >> +?? } >> >> Unless the call to should_be_initialized is an inline method (which >> it isn't) then we may as well just call initialize unconditionally as >> the first thing it will do is check should_be_initialized. > Done. >> >> +???? jio_snprintf(sig, sig_len, "()%s", type->as_C_string()); >> >> You should use the symbolic constants for the '(' and ')' characters. > Done. >> >> --- >> >> src/hotspot/share/oops/instanceKlass.cpp >> >> Nit: >> >> 3549?????? if (component) { >> >> should test != NULL > Done. >> >> --- >> >> ?test/jdk/java/lang/instrument/RedefineRecordAttr >> >> Nice reuse of the nestmate testing pattern :) > > Yes, that nestmate test was very helpful! > > Thanks, Harold > >> >> --- >> >> Thanks, >> David >> >>> Thanks in advance for the feedback, >>> Vicente >>> >>> PS, Thanks to Harold for the development >>> >>> >>> [1] >>> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ >>> From harold.seigel at oracle.com Fri Oct 25 17:21:40 2019 From: harold.seigel at oracle.com (Harold Seigel) Date: Fri, 25 Oct 2019 13:21:40 -0400 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: <5c926314-560a-0a74-b4dd-daf03406b441@oracle.com> References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> <5c926314-560a-0a74-b4dd-daf03406b441@oracle.com> Message-ID: <0197394c-773b-8067-1dc9-3cc4e89d920e@oracle.com> Thanks Serguei! Harold On 10/25/2019 1:21 PM, serguei.spitsyn at oracle.com wrote: > Hi Harold, > > The update looks good. > > Thanks, > Serguei > > On 10/24/19 10:50, Harold Seigel wrote: >> Hi David, >> >> Thanks for reviewing this! >> >> Here's an updated webrev containing the below changes (and one change >> requested by Serguei).? Could you take a look? >> >> http://cr.openjdk.java.net/~hseigel/records.review.rt.01/webrev/index.html >> >> >> Please also see in-line comments. >> >> On 10/23/2019 7:16 PM, David Holmes wrote: >>> Hi Vicente, (and Harold!) >>> >>> On 19/10/2019 4:44 am, Vicente Romero wrote: >>>> Hi, >>>> >>>> Please review the hotspot runtime and serviceability code for JEP >>>> 359 (Records). >>> >>> I've looked at all the code, though not in great detail i.e I have >>> not validated the code changes against the proposed specification. >>> Support for records seems mostly "mechanical" and the patterns you >>> have used look appropriate. A couple of comments below. >>> >>> src/hotspot/share/classfile/classFileParser.cpp >>> >>> You added the check >>> >>> 3704???????? } else if (tag == vmSymbols::tag_record()) { >>> >>> inside the block >>> >>> 3671?????? } else if (_major_version >= JAVA_11_VERSION) { >>> >>> but I would have expected to see a new block created >>> >>> ?????? } else if (_major_version >= JAVA_14_VERSION) { >>> >>> to hold this code. >> Done. >>> >>> Style nit: >>> >>> 3773???? const unsigned int calculated_attr_length = >>> parse_classfile_record_attribute( >>> 3774???????????????????????????? cfs, >>> 3775???????????????????????????? cp, >>> 3776???????????????????????????? record_attribute_start, >>> 3777???????????????????????????? CHECK); >>> >>> The style in this file is align the args on the = character. >> Done. >>> >>> 4928?? if ((is_abstract && is_final && !major_gte_14) || >>> >>> As Lois mentioned already this change seems incorrect in general - >>> is it related to sealed types perhaps? (Even then it should be >>> tightened to actually check for a sealed type and not just allow >>> arbitrary abstract+final classes.) >> The '!major_gte_14' check was initially for sealed types, but is >> wrong.? It's already been removed. >>> >>> --- >>> >>> src/hotspot/share/classfile/javaClasses.cpp >>> >>> +?? if (ik->should_be_initialized()) { >>> +???? ik->initialize(CHECK_0); >>> +?? } >>> >>> Unless the call to should_be_initialized is an inline method (which >>> it isn't) then we may as well just call initialize unconditionally >>> as the first thing it will do is check should_be_initialized. >> Done. >>> >>> +???? jio_snprintf(sig, sig_len, "()%s", type->as_C_string()); >>> >>> You should use the symbolic constants for the '(' and ')' characters. >> Done. >>> >>> --- >>> >>> src/hotspot/share/oops/instanceKlass.cpp >>> >>> Nit: >>> >>> 3549?????? if (component) { >>> >>> should test != NULL >> Done. >>> >>> --- >>> >>> ?test/jdk/java/lang/instrument/RedefineRecordAttr >>> >>> Nice reuse of the nestmate testing pattern :) >> >> Yes, that nestmate test was very helpful! >> >> Thanks, Harold >> >>> >>> --- >>> >>> Thanks, >>> David >>> >>>> Thanks in advance for the feedback, >>>> Vicente >>>> >>>> PS, Thanks to Harold for the development >>>> >>>> >>>> [1] >>>> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ >>>> > From vicente.romero at oracle.com Fri Oct 25 17:29:28 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 25 Oct 2019 17:29:28 +0000 Subject: hg: amber/amber: fixing and relocating additional tests Message-ID: <201910251729.x9PHTSWr009548@aojmv0008.oracle.com> Changeset: 63df7c75ac89 Author: vromero Date: 2019-10-25 13:26 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/63df7c75ac89 fixing and relocating additional tests ! test/langtools/tools/javac/processing/model/element/TestRecord.java From vicente.romero at oracle.com Fri Oct 25 17:48:38 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 25 Oct 2019 17:48:38 +0000 Subject: hg: amber/amber: 45 new changesets Message-ID: <201910251748.x9PHmflr020654@aojmv0008.oracle.com> Changeset: a6c56d661d75 Author: cito Date: 2019-10-22 23:55 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/a6c56d661d75 8223697: jfr tool can't format duration values greater than 1 minute Reviewed-by: egahlin ! src/jdk.jfr/share/classes/jdk/jfr/internal/tool/PrettyWriter.java Changeset: 083bbca50d2d Author: ysuenaga Date: 2019-10-23 10:02 +0900 URL: https://hg.openjdk.java.net/amber/amber/rev/083bbca50d2d 8232592: is shown in jstack mixed mode Reviewed-by: cjplummer, phh ! src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/PStack.java Changeset: c9c3bb79861e Author: dholmes Date: 2019-10-22 22:00 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/c9c3bb79861e 8232571: Add missing SIGINFO signal Reviewed-by: dholmes, rriggs Contributed-by: Benoit Daloze ! src/hotspot/os/posix/os_posix.cpp + test/hotspot/jtreg/runtime/signal/TestSiginfo.java ! test/jdk/sun/misc/SunMiscSignalTest.java Changeset: 70e6b0d8db13 Author: mhorie Date: 2019-10-22 21:26 -0500 URL: https://hg.openjdk.java.net/amber/amber/rev/70e6b0d8db13 8231649: PPC64: Intrinsics for Math.ceil, floor, rint on Power Reviewed-by: mdoerr, vlivanov ! src/hotspot/cpu/ppc/assembler_ppc.hpp ! src/hotspot/cpu/ppc/assembler_ppc.inline.hpp ! src/hotspot/cpu/ppc/ppc.ad ! src/hotspot/share/opto/convertnode.cpp ! src/hotspot/share/opto/convertnode.hpp ! src/hotspot/share/opto/library_call.cpp Changeset: a3d208fc1b10 Author: ihse Date: 2019-10-23 09:45 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/a3d208fc1b10 8211073: Remove -Wno-extra from Hotspot Reviewed-by: dholmes, erikj, kbarrett ! make/hotspot/lib/CompileJvm.gmk Changeset: c6fd655677ec Author: ihse Date: 2019-10-23 09:48 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/c6fd655677ec 8232770: Enable more warnings on solaris studio Reviewed-by: erikj ! make/autoconf/flags-cflags.m4 ! make/common/TestFilesCompilation.gmk ! make/hotspot/gensrc/GensrcAdlc.gmk ! make/launcher/Launcher-jdk.pack.gmk ! make/lib/Awt2dLibraries.gmk ! make/lib/CoreLibraries.gmk ! make/lib/Lib-jdk.hotspot.agent.gmk ! make/lib/Lib-jdk.pack.gmk Changeset: 6e287efa5fa3 Author: jiefu Date: 2019-10-23 09:53 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/6e287efa5fa3 8232768: Configuration with --disable-cds --enable-generate-classlist should be reported as an error Reviewed-by: ihse ! make/autoconf/jdk-options.m4 Changeset: cfdd7ef808d9 Author: chagedorn Date: 2019-10-23 12:15 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/cfdd7ef808d9 8232873: Add missing test for 8220416 Summary: Adds a missing test which verifies the bug fix of 8220416. Reviewed-by: roland, thartmann + test/hotspot/jtreg/compiler/c2/CmpPNodeSubTest.java Changeset: c8d42aa9359a Author: chagedorn Date: 2019-10-23 12:17 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/c8d42aa9359a 8232874: Add missing test for 8230062 Summary: Adds a missing test which verifies the bug fix of 8230062. Reviewed-by: roland, thartmann + test/hotspot/jtreg/compiler/loopopts/superword/SuperWordIntermediateUse.java Changeset: 0f882d53c204 Author: chagedorn Date: 2019-10-23 12:21 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/0f882d53c204 8231412: C2: InitializeNode::detect_init_independence() bails out on simple IR shapes Summary: Avoids early bailout of capturing a field store to remove unnecessary zeroing in simple methods containing only non-escaping objects. Reviewed-by: roland, thartmann ! src/hotspot/share/opto/memnode.cpp ! src/hotspot/share/opto/memnode.hpp ! src/hotspot/share/opto/phaseX.cpp + test/hotspot/jtreg/compiler/escapeAnalysis/TestEliminateAllocation.java Changeset: 765710337ee1 Author: thartmann Date: 2019-10-23 13:52 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/765710337ee1 8232883: compiler/c2/CmpPNodeSubTest.java fails because test class name is wrong Summary: Renamed test file to match class name. Reviewed-by: roland - test/hotspot/jtreg/compiler/c2/CmpPNodeSubTest.java + test/hotspot/jtreg/compiler/c2/CompareKlassPointersTest.java Changeset: 9510ce1b0190 Author: tschatzl Date: 2019-10-23 14:06 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/9510ce1b0190 8232771: Revert JDK-8230794 because of environment changes Reviewed-by: pliden, sjohanss ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp Changeset: f67f4674b466 Author: erikj Date: 2019-10-23 05:48 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/f67f4674b466 8232834: RunTest sometimes fails to produce valid exitcode.txt Reviewed-by: ihse ! make/RunTests.gmk Changeset: b7aa58d7f5aa Author: redestad Date: 2019-10-23 15:48 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/b7aa58d7f5aa 8232887: Remove SystemDictionary::has_checkPackageAccess Reviewed-by: coleenp, lfoltan ! src/hotspot/share/classfile/dictionary.hpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionary.hpp Changeset: 2b13d126a2d8 Author: dfuchs Date: 2019-10-23 15:54 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/2b13d126a2d8 8232625: HttpClient redirect policy should be more conservative Summary: When enabled, HttpClient redirect is fixed to drop the body when the request method is changed, and to relay any redirection code it does not understand to the caller. Reviewed-by: chegar ! src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java ! src/java.net.http/share/classes/jdk/internal/net/http/RedirectFilter.java + test/jdk/java/net/httpclient/HttpRedirectTest.java ! test/jdk/java/net/httpclient/http2/RedirectTest.java ! test/jdk/java/net/httpclient/http2/server/Http2RedirectHandler.java Changeset: 4242e35767b5 Author: shade Date: 2019-10-23 17:35 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/4242e35767b5 8232882: GCC 4.8.5 build failure after JDK-8211073 Reviewed-by: thartmann ! src/hotspot/share/opto/memnode.cpp Changeset: 1f7f707c1aa9 Author: redestad Date: 2019-10-23 18:34 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/1f7f707c1aa9 8232881: Remove unnecessary InstanceKlass::casts Reviewed-by: coleenp ! src/hotspot/share/classfile/classListParser.cpp ! src/hotspot/share/classfile/defaultMethods.cpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/verificationType.cpp ! src/hotspot/share/jvmci/jvmciRuntime.cpp ! src/hotspot/share/prims/jniCheck.cpp Changeset: 54ffb15c4839 Author: darcy Date: 2019-10-23 13:01 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/54ffb15c4839 8232442: Suppress warnings on non-serializable non-transient instance fields in java.management.* Reviewed-by: rriggs, mchung ! src/java.management.rmi/share/classes/com/sun/jmx/remote/internal/rmi/ProxyRef.java ! src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnector.java ! src/java.management/share/classes/javax/management/Attribute.java ! src/java.management/share/classes/javax/management/AttributeChangeNotification.java ! src/java.management/share/classes/javax/management/BadAttributeValueExpException.java ! src/java.management/share/classes/javax/management/ImmutableDescriptor.java ! src/java.management/share/classes/javax/management/InvalidApplicationException.java ! src/java.management/share/classes/javax/management/NotificationFilterSupport.java ! src/java.management/share/classes/javax/management/loading/PrivateMLet.java ! src/java.management/share/classes/javax/management/monitor/MonitorNotification.java ! src/java.management/share/classes/javax/management/openmbean/CompositeDataSupport.java ! src/java.management/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java ! src/java.management/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java ! src/java.management/share/classes/javax/management/openmbean/TabularDataSupport.java ! src/java.management/share/classes/javax/management/openmbean/TabularType.java ! src/java.management/share/classes/sun/management/LazyCompositeData.java ! src/java.management/share/classes/sun/management/LockInfoCompositeData.java ! src/java.management/share/classes/sun/management/MemoryNotifInfoCompositeData.java ! src/java.management/share/classes/sun/management/MemoryUsageCompositeData.java ! src/java.management/share/classes/sun/management/MonitorInfoCompositeData.java ! src/java.management/share/classes/sun/management/ThreadInfoCompositeData.java ! src/java.management/share/classes/sun/management/counter/perf/PerfByteArrayCounter.java ! src/java.management/share/classes/sun/management/counter/perf/PerfLongArrayCounter.java ! src/java.management/share/classes/sun/management/counter/perf/PerfLongCounter.java Changeset: 24c5cad4dbfb Author: jwilhelm Date: 2019-10-24 02:58 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/24c5cad4dbfb Added tag jdk-14+20 for changeset 54ffb15c4839 ! .hgtags Changeset: 5bb426e9acc4 Author: phh Date: 2019-10-23 18:43 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/5bb426e9acc4 8231968: getCurrentThreadAllocatedBytes default implementation s/b getThreadAllocatedBytes Summary: Pass Thread.currentThread().getId() to getThreadAllocatedBytes, remove its implSpec Reviewed-by: dholmes, mchung, sspitsyn ! src/jdk.management/share/classes/com/sun/management/ThreadMXBean.java Changeset: ba524a5f7cc2 Author: redestad Date: 2019-10-24 09:57 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/ba524a5f7cc2 8232613: Move Object.registerNatives into HotSpot Reviewed-by: dholmes, adinn, coleenp, lfoltan, mchung ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/oops/method.cpp ! src/hotspot/share/oops/method.hpp ! src/hotspot/share/prims/jni.cpp ! src/java.base/share/classes/java/lang/Object.java ! src/java.base/share/native/libjava/Object.c ! test/hotspot/jtreg/compiler/dependencies/MonomorphicObjectCall/java.base/java/lang/Object.java ! test/hotspot/jtreg/runtime/8024804/RegisterNatives.java + test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineObject.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/newclass02/java.base/java/lang/Object.java Changeset: ea153023d832 Author: weijun Date: 2019-10-24 15:53 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/ea153023d832 8231598: keytool does not export sun.security.mscapi Reviewed-by: mullan ! src/java.base/share/classes/sun/security/tools/KeyStoreUtil.java + test/jdk/sun/security/mscapi/ProviderClassOption.java Changeset: 18c246ad2ff9 Author: tschatzl Date: 2019-10-24 11:08 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/18c246ad2ff9 8230706: Waiting on completion of strong nmethod processing causes long pause times with G1 Summary: Instead of globally waiting for completion of strong nmethod processing during evacuation, synchronize the nmethods processing on a per-nmethod basis so that only one thread processes one nmethod at once using a state. This state indicates what work (strong/weak processing) needs to be done and what has already been done. Reviewed-by: sjohanss, kbarrett ! src/hotspot/share/code/nmethod.cpp ! src/hotspot/share/code/nmethod.hpp ! src/hotspot/share/gc/g1/g1CodeBlobClosure.cpp ! src/hotspot/share/gc/g1/g1CodeBlobClosure.hpp ! src/hotspot/share/gc/g1/g1FullCollector.cpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp ! src/hotspot/share/gc/g1/g1RootClosures.cpp ! src/hotspot/share/gc/g1/g1RootClosures.hpp ! src/hotspot/share/gc/g1/g1RootProcessor.cpp ! src/hotspot/share/gc/g1/g1RootProcessor.hpp ! src/hotspot/share/gc/g1/g1SharedClosures.hpp ! src/hotspot/share/gc/z/zRootsIterator.cpp ! src/hotspot/share/memory/iterator.cpp ! test/hotspot/jtreg/gc/g1/TestGCLogMessages.java ! test/jdk/jdk/jfr/event/gc/collection/TestG1ParallelPhases.java Changeset: f8ffc59c2812 Author: shade Date: 2019-10-24 11:49 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/f8ffc59c2812 8232908: Shenandoah: compact heuristics has incorrect trigger "Free is lower than allocated recently" Reviewed-by: rkennke ! src/hotspot/share/gc/shenandoah/heuristics/shenandoahCompactHeuristics.cpp Changeset: 2ba609bf43bb Author: alanb Date: 2019-10-24 11:07 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/2ba609bf43bb 8231602: Deprecate Thread.suspend/resume for removal Reviewed-by: mchung, dholmes, chegar ! src/java.base/share/classes/java/lang/Thread.java ! src/java.base/share/classes/java/lang/ThreadGroup.java Changeset: 3acc15789ca3 Author: aefimov Date: 2019-10-24 11:54 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/3acc15789ca3 8232713: Update BCEL version to 6.3.1 in license file Reviewed-by: joehw ! src/java.xml/share/legal/bcel.md Changeset: d6206dda2e28 Author: bulasevich Date: 2019-10-24 15:46 +0300 URL: https://hg.openjdk.java.net/amber/amber/rev/d6206dda2e28 8231952: ARM32: Wrong assumption in assertion in LIRGenerator::atomic_xchg and LIRGenerator::atomic_add Reviewed-by: dlong, shade Contributed-by: christoph.goettschkes at microdoc.com ! src/hotspot/cpu/arm/c1_LIRGenerator_arm.cpp Changeset: 10d2642d1905 Author: coleenp Date: 2019-10-24 08:49 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/10d2642d1905 8231953: Wrong assumption in assertion in oop::register_oop Summary: On ARM32 thumb mode, the pc of the current frame is always zero Reviewed-by: coleenp, dcubed Contributed-by: christoph.goettschkes at microdoc.com ! src/hotspot/share/oops/oopsHierarchy.cpp Changeset: d55b62dbe688 Author: coleenp Date: 2019-10-24 08:52 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/d55b62dbe688 8232788: Move biased locking initalization Reviewed-by: pchilanomate, dholmes ! src/hotspot/share/classfile/systemDictionary.cpp ! src/hotspot/share/oops/instanceKlass.cpp - test/hotspot/gtest/oops/test_markOop.cpp + test/hotspot/gtest/oops/test_markWord.cpp Changeset: 9019c186ae99 Author: mdoerr Date: 2019-10-24 16:28 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/9019c186ae99 8232005: [s390, PPC64] More exception checks missing in interpreter Reviewed-by: rrich, goetz ! src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp ! src/hotspot/cpu/s390/interp_masm_s390.cpp Changeset: c6cbcc673cd3 Author: mdoerr Date: 2019-10-24 16:28 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/c6cbcc673cd3 8231949: [PPC64, s390]: Make async profiling more reliable Summary: Better checks if method from interpreter frame is valid. Reviewed-by: rrich, ghaug, goetz ! src/hotspot/os_cpu/linux_ppc/thread_linux_ppc.cpp ! src/hotspot/os_cpu/linux_s390/thread_linux_s390.cpp Changeset: 7909763ad193 Author: mgronlun Date: 2019-10-24 16:37 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/7909763ad193 8231081: TestMetadataRetention fails due to missing symbol id Reviewed-by: egahlin ! src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointManager.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrType.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.hpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.cpp ! src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp + test/jdk/jdk/jfr/jvm/TestClearStaleConstants.java Changeset: 32d39d9525f9 Author: pliden Date: 2019-10-24 17:24 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/32d39d9525f9 8231552: ZGC: Refine address space reservation Reviewed-by: eosterlund, stefank ! src/hotspot/cpu/aarch64/gc/z/zGlobals_aarch64.cpp ! src/hotspot/cpu/aarch64/gc/z/zGlobals_aarch64.hpp ! src/hotspot/cpu/x86/gc/z/zGlobals_x86.cpp ! src/hotspot/cpu/x86/gc/z/zGlobals_x86.hpp ! src/hotspot/os/posix/gc/z/zVirtualMemory_posix.cpp + src/hotspot/share/gc/z/zAddressSpaceLimit.cpp + src/hotspot/share/gc/z/zAddressSpaceLimit.hpp ! src/hotspot/share/gc/z/zArguments.cpp ! src/hotspot/share/gc/z/zGlobals.hpp ! src/hotspot/share/gc/z/zVirtualMemory.cpp ! src/hotspot/share/gc/z/zVirtualMemory.hpp ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/Allocate/alloc001/TestDescription.java Changeset: 6a147ac7a68f Author: shade Date: 2019-09-30 22:39 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/6a147ac7a68f 8222766: Shenandoah: streamline post-LRB CAS barrier (x86) Reviewed-by: rkennke ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.cpp ! src/hotspot/cpu/x86/gc/shenandoah/shenandoahBarrierSetAssembler_x86.hpp Changeset: a2dfaae89445 Author: epavlova Date: 2019-10-24 11:25 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/a2dfaae89445 8166275: vm/mlvm/meth/stress/compiler/deoptimize keeps timeouting Reviewed-by: kvn ! test/hotspot/jtreg/ProblemList.txt ! test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/compiler/deoptimize/Test.java Changeset: 5a9dba5a3eeb Author: mseledtsov Date: 2019-10-24 12:18 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/5a9dba5a3eeb 8227317: [TESTBUG] jdk docker/TestDockerMemoryMetrics.java fails on systems w/o kernel memory accounting Summary: skipping the test case if kernel memory acct not supported Reviewed-by: sgehwolf, lmesnik ! test/jdk/ProblemList.txt ! test/jdk/jdk/internal/platform/docker/TestDockerMemoryMetrics.java Changeset: 81ad1da857f6 Author: kvn Date: 2019-10-24 16:58 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/81ad1da857f6 8232904: Update JVMCI Reviewed-by: dnsimon ! src/hotspot/share/jvmci/jvmciCompilerToVM.cpp ! src/hotspot/share/jvmci/vmStructs_jvmci.cpp ! 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 ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaType.java ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotSpeculationEncoding.java ! src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java + src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/SharedHotSpotSpeculationLog.java + src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/EncodedSpeculationReason.java ! test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/TestHotSpotSpeculationLog.java Changeset: d428456b5830 Author: amlu Date: 2019-10-25 08:50 +0800 URL: https://hg.openjdk.java.net/amber/amber/rev/d428456b5830 8232922: Add java/math/BigInteger/largeMemory/SymmetricRangeTests.java to ProblemList-Xcomp Reviewed-by: bpb, darcy, iignatyev ! test/jdk/ProblemList-Xcomp.txt Changeset: 3df2bf731a87 Author: never Date: 2019-10-24 22:41 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/3df2bf731a87 8232083: Minimal VM is broken after JDK-8231586 Reviewed-by: dlong ! src/hotspot/share/compiler/oopMap.cpp Changeset: 7608c17b7463 Author: tschatzl Date: 2019-10-25 12:34 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/7608c17b7463 8232779: G1 current collection parallel time does not include optional evacuation Reviewed-by: kbarrett, sangheki ! src/hotspot/share/gc/g1/g1GCPhaseTimes.cpp ! src/hotspot/share/gc/g1/g1GCPhaseTimes.hpp Changeset: f29ca6895893 Author: tschatzl Date: 2019-10-25 12:33 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/f29ca6895893 8232777: Rename G1Policy::_max_rs_length as it is no maximum Reviewed-by: kbarrett, sjohanss ! src/hotspot/share/gc/g1/g1CollectedHeap.cpp ! src/hotspot/share/gc/g1/g1Policy.cpp ! src/hotspot/share/gc/g1/g1Policy.hpp Changeset: 08e78887ff96 Author: tschatzl Date: 2019-10-25 12:32 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/08e78887ff96 8232776: G1 should always take rs_length_diff into account when predicting rs_lengths Reviewed-by: sangheki, kbarrett ! src/hotspot/share/gc/g1/g1Analytics.cpp ! src/hotspot/share/gc/g1/g1Analytics.hpp ! src/hotspot/share/gc/g1/g1Policy.cpp Changeset: dc5d2d009d60 Author: epavlova Date: 2019-10-25 07:15 -0700 URL: https://hg.openjdk.java.net/amber/amber/rev/dc5d2d009d60 8233000: Mark vmTestbase/vm/mlvm/meth/stress/compiler/deoptimize test as stress test Reviewed-by: iveresov, lmesnik ! test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/compiler/deoptimize/Test.java Changeset: 808bbdb79916 Author: shade Date: 2019-10-25 17:30 +0200 URL: https://hg.openjdk.java.net/amber/amber/rev/808bbdb79916 8233021: Shenandoah: SBSC2::is_shenandoah_lrb_call should match all LRB shapes Reviewed-by: zgu ! src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp Changeset: 1bd307ea5497 Author: pconcannon Date: 2019-10-25 12:05 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/1bd307ea5497 8231570: (dc) Clarify implicit bind behavior of DatagramChannel Summary: Update to DatagramChannel spec to make it clear that SecurityException can be thrown in connect send and receive methods Reviewed-by: alanb, chegar, dfuchs ! src/java.base/share/classes/java/nio/channels/DatagramChannel.java From maurizio.cimadamore at oracle.com Fri Oct 25 17:50:24 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 25 Oct 2019 17:50:24 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910251750.x9PHoOuq022021@aojmv0008.oracle.com> Changeset: 83136411a3a0 Author: mcimadamore Date: 2019-10-25 17:50 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/83136411a3a0 Automatic merge with default - test/hotspot/gtest/oops/test_markOop.cpp From maurizio.cimadamore at oracle.com Fri Oct 25 17:50:46 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 25 Oct 2019 17:50:46 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910251750.x9PHokdq023134@aojmv0008.oracle.com> Changeset: 8c5aafc6c2c1 Author: mcimadamore Date: 2019-10-25 17:50 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/8c5aafc6c2c1 Automatic merge with default - test/hotspot/gtest/oops/test_markOop.cpp From maurizio.cimadamore at oracle.com Fri Oct 25 17:51:08 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 25 Oct 2019 17:51:08 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910251751.x9PHp84U023942@aojmv0008.oracle.com> Changeset: a9d1988be315 Author: mcimadamore Date: 2019-10-25 17:50 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/a9d1988be315 Automatic merge with default - test/hotspot/gtest/oops/test_markOop.cpp From maurizio.cimadamore at oracle.com Fri Oct 25 17:51:30 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 25 Oct 2019 17:51:30 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910251751.x9PHpUfI024427@aojmv0008.oracle.com> Changeset: 6bdb6d5eff06 Author: mcimadamore Date: 2019-10-25 17:51 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/6bdb6d5eff06 Automatic merge with default - test/hotspot/gtest/oops/test_markOop.cpp From maurizio.cimadamore at oracle.com Fri Oct 25 17:51:53 2019 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 25 Oct 2019 17:51:53 +0000 Subject: hg: amber/amber: Automatic merge with default Message-ID: <201910251751.x9PHpr6V025358@aojmv0008.oracle.com> Changeset: aad42e5ed1fb Author: mcimadamore Date: 2019-10-25 17:51 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/aad42e5ed1fb Automatic merge with default ! src/hotspot/share/classfile/javaClasses.cpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/classfile/systemDictionary.hpp ! src/hotspot/share/oops/instanceKlass.cpp - test/hotspot/gtest/oops/test_markOop.cpp From chris.hegarty at oracle.com Fri Oct 25 19:22:35 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Fri, 25 Oct 2019 19:22:35 +0000 Subject: hg: amber/amber: 4 new changesets Message-ID: <201910251922.x9PJMZ15015923@aojmv0008.oracle.com> Changeset: 9d16f72682ae Author: chegar Date: 2019-10-25 19:12 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/9d16f72682ae records: fix incorrect warning on preview type imports; from Jan ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java Changeset: ea2c7391952b Author: chegar Date: 2019-10-25 19:12 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/ea2c7391952b records: mark record related model API as preview ! make/CompileInterimLangtools.gmk ! src/java.base/share/classes/module-info.java ! src/java.compiler/share/classes/javax/lang/model/element/ElementKind.java ! src/java.compiler/share/classes/javax/lang/model/element/ElementVisitor.java ! src/java.compiler/share/classes/javax/lang/model/element/RecordComponentElement.java ! src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementFilter.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java ! src/java.compiler/share/classes/javax/lang/model/util/Elements.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PubapiVisitor.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/CommentUtils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ClassBuilder.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/ParamTaglet.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassUseMapper.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java ! src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ElementsTable.java Changeset: d883cdec18e3 Author: chegar Date: 2019-10-25 20:11 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/d883cdec18e3 records: mark record related core reflection APIs as preview ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/io/ObjectOutputStream.java ! src/java.base/share/classes/java/io/ObjectStreamClass.java ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/Record.java ! src/java.base/share/classes/java/lang/annotation/ElementType.java ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java ! src/java.base/share/classes/jdk/internal/PreviewFeature.java ! test/jdk/java/lang/invoke/ObjectMethodsTest.java Changeset: d10c7bed7882 Author: chegar Date: 2019-10-25 20:21 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/d10c7bed7882 records: fix failing RecordCompilationTests; it uses preview features ! test/langtools/tools/javac/records/RecordCompilationTests.java From brian.goetz at oracle.com Fri Oct 25 21:04:24 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Fri, 25 Oct 2019 17:04:24 -0400 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> Message-ID: <9f1e7585-1754-afd2-21f4-bdd1931936bf@oracle.com> Spec in Class.java: ?- Various {@code RecordComponent} should be {@link RecordComponent}. ?- Rather than say "if this class was declared as a record in the source code", instead say "is a record class", since record classes are a term defined by the JLS. ?- For isRecord/getRecordComponents, should include "@jls 8.10" link RecordComponent.java: ?- Add @jls 8.10 link ?- "Returns the name of the component represented by this record component." -> "Returns the name of this record component."? and similar in other methods.? Since RC models a record component, its clear enough what is meant. ?- For getGenericSignature, there should be a link back to @jls or @jvms that describes the format of the signature string. ?- Doesn't getAnnotation() need some spec, or an {@inheritDoc}? From vicente.romero at oracle.com Fri Oct 25 21:37:42 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Fri, 25 Oct 2019 21:37:42 +0000 Subject: hg: amber/amber: fix bug on finding the canonical constructor Message-ID: <201910252137.x9PLbgN6028125@aojmv0008.oracle.com> Changeset: f3a5f46b14cd Author: vromero Date: 2019-10-25 17:36 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/f3a5f46b14cd fix bug on finding the canonical constructor ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! test/langtools/tools/javac/records/RecordCompilationTests.java From vicente.romero at oracle.com Sat Oct 26 01:23:37 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Sat, 26 Oct 2019 01:23:37 +0000 Subject: hg: amber/amber: checking that the first statement is an invocation to the canonical constructor, plus removing more checks from TypeEnter Message-ID: <201910260123.x9Q1Ncvf022870@aojmv0008.oracle.com> Changeset: f75a89474d44 Author: vromero Date: 2019-10-25 21:23 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/f75a89474d44 checking that the first statement is an invocation to the canonical constructor, plus removing more checks from TypeEnter ! 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/TypeEnter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/langtools/tools/javac/diags/examples/ConstructorWithSameErasureAsCanonical.java + test/langtools/tools/javac/diags/examples/FirstInvocationMustBeCanonical.java ! test/langtools/tools/javac/diags/examples/InvalidSuperTypeRecord.java ! test/langtools/tools/javac/records/RecordCompilationTests.java From vicente.romero at oracle.com Sat Oct 26 02:55:25 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Sat, 26 Oct 2019 02:55:25 +0000 Subject: hg: amber/amber: minor changes to reduce unintented diffs in the review Message-ID: <201910260255.x9Q2tQcO006208@aojmv0008.oracle.com> Changeset: 1d48cf79f8a4 Author: vromero Date: 2019-10-25 22:55 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/1d48cf79f8a4 minor changes to reduce unintented diffs in the review ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/DocCommentParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocTreeMaker.java From srikanth.adayapalam at oracle.com Sat Oct 26 09:10:24 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Sat, 26 Oct 2019 09:10:24 +0000 Subject: hg: amber/amber: 8233038: [local-methods] Tests need to be written for local methods feature Message-ID: <201910260910.x9Q9APY4004874@aojmv0008.oracle.com> Changeset: b6331041e68f Author: sadayapalam Date: 2019-10-26 14:40 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/b6331041e68f 8233038: [local-methods] Tests need to be written for local methods feature + test/langtools/tools/javac/localmethods/EffectivelyFinalTest.java + test/langtools/tools/javac/localmethods/EffectivelyFinalTest.out + test/langtools/tools/javac/localmethods/ExplicitCtorCallTest.java + test/langtools/tools/javac/localmethods/LocalMethodTest.java + test/langtools/tools/javac/localmethods/MostSpecificTest.java + test/langtools/tools/javac/localmethods/MostSpecificTest.out + test/langtools/tools/javac/localmethods/NameClashTest.java + test/langtools/tools/javac/localmethods/NameClashTest.out + test/langtools/tools/javac/localmethods/NestedLocalsTest.java + test/langtools/tools/javac/localmethods/NoAbstractLocalMethodTest.java + test/langtools/tools/javac/localmethods/NoAbstractLocalMethodTest.out + test/langtools/tools/javac/localmethods/NoAbstractLocalMethodTest2.java + test/langtools/tools/javac/localmethods/NoAbstractLocalMethodTest2.out + test/langtools/tools/javac/localmethods/OnemoreLocalsTest.java From chris.hegarty at oracle.com Sat Oct 26 10:31:45 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Sat, 26 Oct 2019 10:31:45 +0000 Subject: hg: amber/amber: 2 new changesets Message-ID: <201910261031.x9QAVkPx014248@aojmv0008.oracle.com> Changeset: 51ffd9d65d2a Author: chegar Date: 2019-10-26 11:22 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/51ffd9d65d2a records: move test/jdk/java/lang/Runtime to test/jdk/java/lang/RuntimeTests in preparation for j.l.runtime - test/jdk/java/lang/Runtime/Resources.java - test/jdk/java/lang/Runtime/Version/Basic.java - test/jdk/java/lang/Runtime/Version/VersionProps.java - test/jdk/java/lang/Runtime/exec/ArgWithSpaceAndFinalBackslash.java - test/jdk/java/lang/Runtime/exec/BadEnvp.java - test/jdk/java/lang/Runtime/exec/ConcurrentRead.java - test/jdk/java/lang/Runtime/exec/Duped.java - test/jdk/java/lang/Runtime/exec/ExecCommand.java - test/jdk/java/lang/Runtime/exec/ExecEmptyString.java - test/jdk/java/lang/Runtime/exec/ExecWithDir.java - test/jdk/java/lang/Runtime/exec/ExecWithInput.java - test/jdk/java/lang/Runtime/exec/ExecWithLotsOfArgs.java - test/jdk/java/lang/Runtime/exec/ExitValue.java - test/jdk/java/lang/Runtime/exec/LotsOfDestroys.java - test/jdk/java/lang/Runtime/exec/LotsOfOutput.java - test/jdk/java/lang/Runtime/exec/SetCwd.java - test/jdk/java/lang/Runtime/exec/SleepyCat.java - test/jdk/java/lang/Runtime/exec/Space.java - test/jdk/java/lang/Runtime/exec/Status.java - test/jdk/java/lang/Runtime/exec/StreamsSurviveDestroy.java - test/jdk/java/lang/Runtime/exec/UnixCommands.java - test/jdk/java/lang/Runtime/exec/WinCommand.java - test/jdk/java/lang/Runtime/exec/setcwd.sh - test/jdk/java/lang/Runtime/loadLibrary/LoadLibraryTest.java - test/jdk/java/lang/Runtime/loadLibrary/src/Target.java - test/jdk/java/lang/Runtime/loadLibrary/src/Target2.java - test/jdk/java/lang/Runtime/shutdown/Basic.java - test/jdk/java/lang/Runtime/shutdown/ShutdownHooks.java - test/jdk/java/lang/Runtime/shutdown/ShutdownHooks.sh - test/jdk/java/lang/Runtime/shutdown/ShutdownInterruptedMain.java + test/jdk/java/lang/RuntimeTests/Resources.java + test/jdk/java/lang/RuntimeTests/Version/Basic.java + test/jdk/java/lang/RuntimeTests/Version/VersionProps.java + test/jdk/java/lang/RuntimeTests/exec/ArgWithSpaceAndFinalBackslash.java + test/jdk/java/lang/RuntimeTests/exec/BadEnvp.java + test/jdk/java/lang/RuntimeTests/exec/ConcurrentRead.java + test/jdk/java/lang/RuntimeTests/exec/Duped.java + test/jdk/java/lang/RuntimeTests/exec/ExecCommand.java + test/jdk/java/lang/RuntimeTests/exec/ExecEmptyString.java + test/jdk/java/lang/RuntimeTests/exec/ExecWithDir.java + test/jdk/java/lang/RuntimeTests/exec/ExecWithInput.java + test/jdk/java/lang/RuntimeTests/exec/ExecWithLotsOfArgs.java + test/jdk/java/lang/RuntimeTests/exec/ExitValue.java + test/jdk/java/lang/RuntimeTests/exec/LotsOfDestroys.java + test/jdk/java/lang/RuntimeTests/exec/LotsOfOutput.java + test/jdk/java/lang/RuntimeTests/exec/SetCwd.java + test/jdk/java/lang/RuntimeTests/exec/SleepyCat.java + test/jdk/java/lang/RuntimeTests/exec/Space.java + test/jdk/java/lang/RuntimeTests/exec/Status.java + test/jdk/java/lang/RuntimeTests/exec/StreamsSurviveDestroy.java + test/jdk/java/lang/RuntimeTests/exec/UnixCommands.java + test/jdk/java/lang/RuntimeTests/exec/WinCommand.java + test/jdk/java/lang/RuntimeTests/exec/setcwd.sh + test/jdk/java/lang/RuntimeTests/loadLibrary/LoadLibraryTest.java + test/jdk/java/lang/RuntimeTests/loadLibrary/src/Target.java + test/jdk/java/lang/RuntimeTests/loadLibrary/src/Target2.java + test/jdk/java/lang/RuntimeTests/shutdown/Basic.java + test/jdk/java/lang/RuntimeTests/shutdown/ShutdownHooks.java + test/jdk/java/lang/RuntimeTests/shutdown/ShutdownHooks.sh + test/jdk/java/lang/RuntimeTests/shutdown/ShutdownInterruptedMain.java Changeset: 452fbc77bc54 Author: chegar Date: 2019-10-26 11:30 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/452fbc77bc54 records: review comments - move ObjectMethods to j.l.runtime ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java + src/java.base/share/classes/java/lang/runtime/package-info.java ! src/java.base/share/classes/module-info.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java - test/jdk/java/lang/invoke/ObjectMethodsTest.java - test/jdk/java/lang/invoke/empty_security.policy + test/jdk/java/lang/runtime/ObjectMethodsTest.java + test/jdk/java/lang/runtime/empty.policy From chris.hegarty at oracle.com Sat Oct 26 11:06:05 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Sat, 26 Oct 2019 11:06:05 +0000 Subject: hg: amber/amber: records: fix two serialization tests that do not delegate to the canonical ctr Message-ID: <201910261106.x9QB66PY004012@aojmv0008.oracle.com> Changeset: 6161b40dcfcd Author: chegar Date: 2019-10-26 12:05 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/6161b40dcfcd records: fix two serialization tests that do not delegate to the canonical ctr ! test/jdk/java/io/Serializable/records/ConstructorPermissionTest.java ! test/jdk/java/io/Serializable/records/ThrowingConstructorTest.java From chris.hegarty at oracle.com Sat Oct 26 11:11:59 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Sat, 26 Oct 2019 11:11:59 +0000 Subject: hg: amber/amber: records: fix last serialization test that does not delegate to the canonical ctr Message-ID: <201910261112.x9QBC0mR006977@aojmv0008.oracle.com> Changeset: c7cc91b57357 Author: chegar Date: 2019-10-26 12:11 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/c7cc91b57357 records: fix last serialization test that does not delegate to the canonical ctr ! test/jdk/java/io/Serializable/records/StreamRefTest.java From chris.hegarty at oracle.com Sat Oct 26 11:15:46 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Sat, 26 Oct 2019 11:15:46 +0000 Subject: hg: amber/amber: records: fix cut'n'paste error in essentialAPI=true preview docs Message-ID: <201910261115.x9QBFlV8009016@aojmv0008.oracle.com> Changeset: 9fcbb7a24c61 Author: chegar Date: 2019-10-26 12:14 +0100 URL: https://hg.openjdk.java.net/amber/amber/rev/9fcbb7a24c61 records: fix cut'n'paste error in essentialAPI=true preview docs ! src/java.base/share/classes/java/lang/Record.java ! src/java.base/share/classes/java/lang/annotation/ElementType.java From vicente.romero at oracle.com Sat Oct 26 18:50:05 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Sat, 26 Oct 2019 18:50:05 +0000 Subject: hg: amber/amber: refactoring the code that finds out if a constructor must be generated for records Message-ID: <201910261850.x9QIo5AN018781@aojmv0008.oracle.com> Changeset: b20301259ced Author: vromero Date: 2019-10-26 14:49 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/b20301259ced refactoring the code that finds out if a constructor must be generated for records ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java From vicente.romero at oracle.com Sat Oct 26 19:55:06 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Sat, 26 Oct 2019 15:55:06 -0400 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> Message-ID: Hi Maurizio, Thanks again for the comments I have published another iteration at [1]. I focused on this iteration more on the implemenation than on the tests to first have an agreement on the implementation, timing, etc. Some comments inlined below. [1] http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.01/ On 10/21/19 2:01 PM, Maurizio Cimadamore wrote: > > Hi Vicente, > I did a pretty thorough pass on most of the code. I didn't look at > tests, and I also didn't look at Lower. Comments below: > > * Flags.java - VARARGS flag for records components; I wonder, instead > of a new flag, can we use the internal VARARGS flag we have for > methods, and attach that to the record symbol? That should also lead > to more direct code in TypeHelper > removed > * Symbol.java - I think the override for 'erasure' is redundant - > isn't that the impl from supertype? > yep, removed too > * Symbol.java - I wonder if accessor list with Pair > isn't a premature generalization; we should just add a getter symbol > and that's it agreed, done > * Attr.java - I think we might want to leave the door open for a check > which forces all constructors of a record to go through the canonical > one (depending on where the spec lands) > implemented in this iteration > * Check.java - understanding checkpoint: when we see an annotation on > a record component, first we check it's one of the kinds which are > allowed (if not, error), and, if it's allowed, we add all record > component annotations to record component elements, and we also filter > away all annotations that have nothing to do with the element in which > they appear. If my understanding is correct, I think this logic should > be documented more clearly; I found the comment after the "if > (isRecordField)" to be a bit obscure. > yes that's the idea, annotations that are originally applied to record components are pushed down to all generated elements in TypeEnter, and then in Check the ones that are off-site are removed > > * Enter.java - why are you removing the static flag on records? I > don't see anything similar around for enums. > the static flag is added to all records but if the record is a top level class, it is not needed, that's why that code is there > * Flow.java - not sure I get the changes to checkInit; typically > checkInit is called at the use-site of DA/DU variables. Here it seems > you suppress some of the errors emitted for accessing record fields > inside the canonical constructor - but I hope that code like this > > record Foo(int x) { > ?? Foo(int x) { > ?????? print(this.x); > ?? } > } > > Still give errors? > yes it gives an error > > If this works correctly, which errors does the 'guard' around the > error generation is supposed to protect against? > checkInit it not used only for what you mentioned above but also, see AssignAnalyzer::visitMethodDef, to check if an initial constructor, as the canonical constructor is in records, have initialized all the fields. The guard is there to don't issue an error if a canonical constructor hasn't initialized some fields, as the compiler will generate code to initialize those fields later in Lower > > * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only used > here... > removed > > * TypeEnter.java - implicit super calls are added in Attr::visitMethod > for regular calls; we should do the same for records (or add all in > TypeEnter - that is records and class should be consistent) > right we should be consistent, I have moved that code to Attr > * TypeEnter.java - on finishClass - you are calling memberEnter on > record fields, which I think you already did in the new RecordsPhase > nope, what I'm doing there is invoking MemberEnter to enter the members that hasn't been entered so far. Anyway that code changed a bit because I'm entering the constructors now at RecordPhase too but I have changed the code a bit to make more clear what is happening. > * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal > with _all_ record members (e.g. including accessors), not just some? > yep changed that too > > * TypeEnter.java - checkForSerializationMember should probably be > moved to MemberEnter::visitVar, or even to Attr (note that the code > for the check is doing a little visit :-)) > moved to Attr > > * TypeEnter.java - again on check timings; while it's ok for the code > in here to add new synthetic members, I think it's less ok to add more > global error checks (such as make sure that the canonical declaration > whose parameter names match the record components in order); these > should live in Attr. More generally, I think that we should only check > stuff here if we think that the check will add any value to annotation > processing. Every other check can be deferred, and take place in a > more 'deterministic' part of javac. > moved to Attr > * TypeEnter.java - I think finishClass should be a bit better at > determining as to whether default constructor is needed or not - for > instance, this check: > > if ((sym.flags() & INTERFACE) == 0 && > 928 !TreeInfo.hasConstructors(tree.defs)) { > > Should be generalized to something that works for both classes and > records; for classes you need to check if there's no other > constructor; for records you need to check if there's no other > constructor _with same signature_ as the canonical one. Then you can > simplify addRecordMembers and remove the dependency on the boolean > 'generatedConstructor' parameter. In other words the code should: > > 1) check if default/canonical constructor generation is required > 2) if so, use the appropriate helper to generate the code > 3) at the end, add the remaining record members (under the assumption > that the canonical constructor has already been added in (1), if that > was missing) > done, in order to do that I had to enter constructors at the RecordPhase, as mentioned earlier. > > *TypeEnter.java - addAccessor can be simplified if we only worry about > getters. Again, the checks in here feel more Attr check than > MemberEnter checks. > agreed, done > *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we > create a tree for a member, and then we visit the member tree with > memberEnter, just to add it to the scope. I understand that, currently > addEnumMembers does the same, but this looks very roundabout; I wonder > if there's a way to make all this process a bit simpler - create a > symbol and add that to the scope. Or are there important checks in > MemberEnter that we would lose? > yes there are several checks we would lose, plus we would lose consistency, but I tried to do that and several things fell apart, we need to enter not only the generated method, also it's parameters etc, which is what MemberEnter is doing. > *JCTree.java/TreeMaker.java - I don't think there's any need to store > accessors in the field AST; these are only used from TypeEnter, and > TypeEnter can do whatever it does by looking at which record > components there are in the record class, and add a getter for each. > Let's make the code simpler and more direct > yep removed > > * ClassReader.java - should we just silently ignore record attributes > when not in preview mode - or should we issue classfile errors? > > * ClassReader.java - what kind of validation should we do on record > attributes? Currently javac does nothing. Should we check that we have > (i) getters (ii) toString/hashCode/equals implementations and (iii) a > canonical constructor (ad fail if we don't) ? At the very least I > would add code to _parse_ the attribute, even if we do nothing with > it, so that at least we throw a classfile error if the attribute is > badly broken > on ClassReader, we can discuss what to do in a language meeting, I don't have any strong preference > > * Tokens.java - for "var", "yields" and other context-dependent > keywords we never added a token. We just handled that in JavacParser. > Why the difference here? I think it's best to stick to current style > and maybe fix all of them (assuming that's what we want to do) in a > followup cleanup. Actually, after looking at parser, it seems like you > already handle that manually, so I just suggest to revert the changed > to Tokens > I added the token to add it as a parameter to an error message, but I removed the token and now I'm passing a string > * TreeInfo.java - how is 'isCanonicalConstructor' not returning 'true' > for all constructors inside a record, as opposed to only return true > for the canonical one? > I have added a comment to clarify what this method is doing > > * TreeInfo.java - There is some code reuse possible between > "recordFieldTypes" and "recordFields" > yep done > > * Names.java - what is 'oldEquals' ? > removed, old code > > * JavacParser.java - timing of checks; I don't think we should check > for illegal record component names in here > removed from there > > * JavacParser.java - code can be simplified somewhat by getting rid of > accessors in VarDef AST. > done Thanks again for taking the time to do this long review, will answer the other mails separately Vicente > > > > > On 21/10/2019 13:31, Vicente Romero wrote: >> Hi, >> >> Please review the compiler code for JEP 359 (Records) [1] >> >> Thanks in advance for the feedback, >> Vicente >> >> [1] >> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ From vicente.romero at oracle.com Sat Oct 26 20:11:46 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Sat, 26 Oct 2019 16:11:46 -0400 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> Message-ID: Hi Maurizio, On 10/21/19 4:44 PM, Maurizio Cimadamore wrote: > And here are some comments on Lower > > - findMethodOrFailSilently? doesn't seem to be used anywhere; this > should be removed and associated changes in Resolve reverted done > > - findUserDefinedAccessors - this seems to have to do with setting the > record component symbol straight - this should happen well before > Lower, otherwise I'm not even sure what annotations processor will > see? This code should go in TypeEnter, where you already look up for > existing accessor. yep removed. This was to set only user defined accessors which were not set in TypeEnter as opposed to compiler generated ones. But now all accessors are set in TypeEnter regardless of origin and so this code was removed > > - related; not 100% as to why in visitRecordDef you protect against > accessor not being there - which means you need to do a lookup. You > need to get to this part of the code where all accessors have been > set. Then the code can be simplified. yep, I have simplified that code > > - As pointed out previously, getting rid of the Pair > accessor will result in cascading simplification in few methods in > Lower too yep agreed > > - both the signature generator and the indy machinery are shared > between LambdaToMethod and Lower - so we should probably put them > somewhere in a common superclass which can be used by the various > backend steps I will do that later, yes > > - I guess the main translation strategy for record members is to > generate an indy - where the runtime gives you back some constant > callsite which wraps a method handle with the right signature. If so, > some comments should be sprinkled around to clarify that this is > indeed the case. yes that's the case, I have added some comments > > - I also guess that the if/else in generateRecordMethod is to avoid > generating a tree if an explicit member has been declared by the user > - again, correct, but some comments please ;-) yep I have added some comments there too > > > Also some comments? on tests: > > * test/langtools/tools/javac/6402516/CheckLocalElements.java - why the > change? > > * test/langtools/tools/javac/AnonymousClass/AnonymousClassFlags.java > -? why the change from @run to @compile? > > * > test/langtools/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java > - who is using the new target? > > * diags/** in general, for all new diagnostics added it would be nice > to have an html of the output (I have a script for doing that, let me > know if you need it) > > * examples-not-yet - why no test for local records? That should be > easy to add (I hope)? > > * test/langtools/tools/javac/parser/JavacParserTest.java - here I > wonder if we should have different messages depending on the version > (eg. we don't want to say 'expected records' if compiling with -source > 12?) > > *? test/langtools/tools/javac/tree/JavacTreeScannerTest.java, > test/langtools/tools/javac/tree/SourceTreeScannerTest.java, > src/jdk.compiler/share/classes/com/sun/tools/javac/code/Accessors.java > - seems like these probably depend on the accessor pairs being in the > AST? > > * test/langtools/tools/javac/doctree/AccessorsTest.java - not sure > about this, does it even belong to this patch? I'd be surprised if > DocTree does anything special with accessors? > > * test/langtools/tools/javac/doctree/AccessorsTest.java - this tests > that ElementFilter and getAccessor() agree, but doesn't test that they > actually yield the correct result > > * more generally, certain tests (e.g. signature mismatches, record > component names order mismatches, reflection tests, serialization > tests) have a certain ad-hoc nature to them - in the sense that they > test one record shape or two and that's it. E.g. > > test/langtools/tools/javac/records/mandated_members/read_resolve_method/CheckReadResolveMethodTest.java > > > I'd like to see a more combinatorial-oriented approach to such tests, > where at least we tests all primitive types plus a reference type of > choice, with varying degrees of arity (and w/, w/o varargs). I have modified some tests in this iteration but I still have to revisit some of them. > > > That's all for now > > Thanks > Maurizio Thanks, Vicente > > On 21/10/2019 19:01, Maurizio Cimadamore wrote: >> Hi Vicente, >> I did a pretty thorough pass on most of the code. I didn't look at >> tests, and I also didn't look at Lower. Comments below: >> >> * Flags.java - VARARGS flag for records components; I wonder, instead >> of a new flag, can we use the internal VARARGS flag we have for >> methods, and attach that to the record symbol? That should also lead >> to more direct code in TypeHelper >> >> * Symbol.java - I think the override for 'erasure' is redundant - >> isn't that the impl from supertype? >> >> * Symbol.java (and others) in general this webrev shuld be updated as >> soon as Jan push the @Preview work, as I see that methods >> implementing preview API are using the 'deprecate for removal' >> annotation >> >> * Symbol.java - I wonder if accessor list with Pair >> isn't a premature generalization; we should just add a getter symbol >> and that's it >> >> * Attr.java - I think we might want to leave the door open for a >> check which forces all constructors of a record to go through the >> canonical one (depending on where the spec lands) >> >> * Check.java - understanding checkpoint: when we see an annotation on >> a record component, first we check it's one of the kinds which are >> allowed (if not, error), and, if it's allowed, we add all record >> component annotations to record component elements, and we also >> filter away all annotations that have nothing to do with the element >> in which they appear. If my understanding is correct, I think this >> logic should be documented more clearly; I found the comment after >> the "if (isRecordField)" to be a bit obscure. >> >> * Enter.java - why are you removing the static flag on records? I >> don't see anything similar around for enums. >> >> * Flow.java - not sure I get the changes to checkInit; typically >> checkInit is called at the use-site of DA/DU variables. Here it seems >> you suppress some of the errors emitted for accessing record fields >> inside the canonical constructor - but I hope that code like this >> >> record Foo(int x) { >> ?? Foo(int x) { >> ?????? print(this.x); >> ?? } >> } >> >> Still give errors? If this works correctly, which errors does the >> 'guard' around the error generation is supposed to protect against? >> >> * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only used >> here... >> >> * TypeEnter.java - implicit super calls are added in >> Attr::visitMethod for regular calls; we should do the same for >> records (or add all in TypeEnter - that is records and class should >> be consistent) >> >> * TypeEnter.java - on finishClass - you are calling memberEnter on >> record fields, which I think you already did in the new RecordsPhase >> >> * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal >> with _all_ record members (e.g. including accessors), not just some? >> >> * TypeEnter.java - checkForSerializationMember should probably be >> moved to MemberEnter::visitVar, or even to Attr (note that the code >> for the check is doing a little visit :-)) >> >> * TypeEnter.java - again on check timings; while it's ok for the code >> in here to add new synthetic members, I think it's less ok to add >> more global error checks (such as make sure that the canonical >> declaration whose parameter names match the record components in >> order); these should live in Attr. More generally, I think that we >> should only check stuff here if we think that the check will add any >> value to annotation processing. Every other check can be deferred, >> and take place in a more 'deterministic' part of javac. >> >> * TypeEnter.java - I think finishClass should be a bit better at >> determining as to whether default constructor is needed or not - for >> instance, this check: >> >> if ((sym.flags() & INTERFACE) == 0 && >> ?928???????????????? !TreeInfo.hasConstructors(tree.defs)) { >> >> Should be generalized to something that works for both classes and >> records; for classes you need to check if there's no other >> constructor; for records you need to check if there's no other >> constructor _with same signature_ as the canonical one. Then you can >> simplify addRecordMembers and remove the dependency on the boolean >> 'generatedConstructor' parameter. In other words the code should: >> >> 1) check if default/canonical constructor generation is required >> 2) if so, use the appropriate helper to generate the code >> 3) at the end, add the remaining record members (under the assumption >> that the canonical constructor has already been added in (1), if that >> was missing) >> >> *TypeEnter.java - addAccessor can be simplified if we only worry >> about getters. Again, the checks in here feel more Attr check than >> MemberEnter checks. >> >> *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we >> create a tree for a member, and then we visit the member tree with >> memberEnter, just to add it to the scope. I understand that, >> currently addEnumMembers does the same, but this looks very >> roundabout; I wonder if there's a way to make all this process a bit >> simpler - create a symbol and add that to the scope. Or are there >> important checks in MemberEnter that we would lose? >> >> *JCTree.java/TreeMaker.java - I don't think there's any need to store >> accessors in the field AST; these are only used from TypeEnter, and >> TypeEnter can do whatever it does by looking at which record >> components there are in the record class, and add a getter for each. >> Let's make the code simpler and more direct >> >> * ClassReader.java - should we just silently ignore record attributes >> when not in preview mode - or should we issue classfile errors? >> >> * ClassReader.java - what kind of validation should we do on record >> attributes? Currently javac does nothing. Should we check that we >> have (i) getters (ii) toString/hashCode/equals implementations and >> (iii) a canonical constructor (ad fail if we don't) ? At the very >> least I would add code to _parse_ the attribute, even if we do >> nothing with it, so that at least we throw a classfile error if the >> attribute is badly broken >> >> * Tokens.java - for "var", "yields" and other context-dependent >> keywords we never added a token. We just handled that in JavacParser. >> Why the difference here? I think it's best to stick to current style >> and maybe fix all of them (assuming that's what we want to do) in a >> followup cleanup. Actually, after looking at parser, it seems like >> you already handle that manually, so I just suggest to revert the >> changed to Tokens >> >> * TreeInfo.java - how is 'isCanonicalConstructor' not returning >> 'true' for all constructors inside a record, as opposed to only >> return true for the canonical one? >> >> * TreeInfo.java - There is some code reuse possible between >> "recordFieldTypes" and "recordFields" >> >> * Names.java - what is 'oldEquals' ? >> >> * JavacParser.java - timing of checks; I don't think we should check >> for illegal record component names in here >> >> * JavacParser.java - code can be simplified somewhat by getting rid >> of accessors in VarDef AST. >> >> >> >> >> >> On 21/10/2019 13:31, Vicente Romero wrote: >>> Hi, >>> >>> Please review the compiler code for JEP 359 (Records) [1] >>> >>> Thanks in advance for the feedback, >>> Vicente >>> >>> [1] >>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ From vicente.romero at oracle.com Sat Oct 26 20:14:07 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Sat, 26 Oct 2019 16:14:07 -0400 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> Message-ID: I forgot to mention that I have added javax.lang.model code to this iteration that wasn't part of the first iteration. I was planning to publish it as part of a different review but I realized that there was some code affected, tests, API implementation etc, which belonged to the compiler code. So I added that code in this iteration, Thanks, Vicente On 10/26/19 3:55 PM, Vicente Romero wrote: > Hi Maurizio, > > Thanks again for the comments I have published another iteration at > [1]. I focused on this iteration more on the implemenation than on the > tests to first have an agreement on the implementation, timing, etc. > Some comments inlined below. > > [1] http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.01/ > > On 10/21/19 2:01 PM, Maurizio Cimadamore wrote: >> >> Hi Vicente, >> I did a pretty thorough pass on most of the code. I didn't look at >> tests, and I also didn't look at Lower. Comments below: >> >> * Flags.java - VARARGS flag for records components; I wonder, instead >> of a new flag, can we use the internal VARARGS flag we have for >> methods, and attach that to the record symbol? That should also lead >> to more direct code in TypeHelper >> > removed > >> * Symbol.java - I think the override for 'erasure' is redundant - >> isn't that the impl from supertype? >> > yep, removed too > >> * Symbol.java - I wonder if accessor list with Pair >> isn't a premature generalization; we should just add a getter symbol >> and that's it > > agreed, done > >> * Attr.java - I think we might want to leave the door open for a >> check which forces all constructors of a record to go through the >> canonical one (depending on where the spec lands) >> > implemented in this iteration > >> * Check.java - understanding checkpoint: when we see an annotation on >> a record component, first we check it's one of the kinds which are >> allowed (if not, error), and, if it's allowed, we add all record >> component annotations to record component elements, and we also >> filter away all annotations that have nothing to do with the element >> in which they appear. If my understanding is correct, I think this >> logic should be documented more clearly; I found the comment after >> the "if (isRecordField)" to be a bit obscure. >> > yes that's the idea, annotations that are originally applied to record > components are pushed down to all generated elements in TypeEnter, and > then in Check the ones that are off-site are removed >> >> * Enter.java - why are you removing the static flag on records? I >> don't see anything similar around for enums. >> > > the static flag is added to all records but if the record is a top > level class, it is not needed, that's why that code is there > >> * Flow.java - not sure I get the changes to checkInit; typically >> checkInit is called at the use-site of DA/DU variables. Here it seems >> you suppress some of the errors emitted for accessing record fields >> inside the canonical constructor - but I hope that code like this >> >> record Foo(int x) { >> ?? Foo(int x) { >> ?????? print(this.x); >> ?? } >> } >> >> Still give errors? >> > > yes it gives an error >> >> If this works correctly, which errors does the 'guard' around the >> error generation is supposed to protect against? >> > > checkInit it not used only for what you mentioned above but also, see > AssignAnalyzer::visitMethodDef, to check if an initial constructor, as > the canonical constructor is in records, have initialized all the > fields. The guard is there to don't issue an error if a canonical > constructor hasn't initialized some fields, as the compiler will > generate code to initialize those fields later in Lower >> >> * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only used >> here... >> > removed >> >> * TypeEnter.java - implicit super calls are added in >> Attr::visitMethod for regular calls; we should do the same for >> records (or add all in TypeEnter - that is records and class should >> be consistent) >> > > right we should be consistent, I have moved that code to Attr > >> * TypeEnter.java - on finishClass - you are calling memberEnter on >> record fields, which I think you already did in the new RecordsPhase >> > > nope, what I'm doing there is invoking MemberEnter to enter the > members that hasn't been entered so far. Anyway that code changed a > bit because I'm entering the constructors now at RecordPhase too but I > have changed the code a bit to make more clear what is happening. > >> * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal >> with _all_ record members (e.g. including accessors), not just some? >> > yep changed that too >> >> * TypeEnter.java - checkForSerializationMember should probably be >> moved to MemberEnter::visitVar, or even to Attr (note that the code >> for the check is doing a little visit :-)) >> > moved to Attr >> >> * TypeEnter.java - again on check timings; while it's ok for the code >> in here to add new synthetic members, I think it's less ok to add >> more global error checks (such as make sure that the canonical >> declaration whose parameter names match the record components in >> order); these should live in Attr. More generally, I think that we >> should only check stuff here if we think that the check will add any >> value to annotation processing. Every other check can be deferred, >> and take place in a more 'deterministic' part of javac. >> > > moved to Attr > >> * TypeEnter.java - I think finishClass should be a bit better at >> determining as to whether default constructor is needed or not - for >> instance, this check: >> >> if ((sym.flags() & INTERFACE) == 0 && >> 928 !TreeInfo.hasConstructors(tree.defs)) { >> >> Should be generalized to something that works for both classes and >> records; for classes you need to check if there's no other >> constructor; for records you need to check if there's no other >> constructor _with same signature_ as the canonical one. Then you can >> simplify addRecordMembers and remove the dependency on the boolean >> 'generatedConstructor' parameter. In other words the code should: >> >> 1) check if default/canonical constructor generation is required >> 2) if so, use the appropriate helper to generate the code >> 3) at the end, add the remaining record members (under the assumption >> that the canonical constructor has already been added in (1), if that >> was missing) >> > > done, in order to do that I had to enter constructors at the > RecordPhase, as mentioned earlier. >> >> *TypeEnter.java - addAccessor can be simplified if we only worry >> about getters. Again, the checks in here feel more Attr check than >> MemberEnter checks. >> > agreed, done > >> *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we >> create a tree for a member, and then we visit the member tree with >> memberEnter, just to add it to the scope. I understand that, >> currently addEnumMembers does the same, but this looks very >> roundabout; I wonder if there's a way to make all this process a bit >> simpler - create a symbol and add that to the scope. Or are there >> important checks in MemberEnter that we would lose? >> > > yes there are several checks we would lose, plus we would lose > consistency, but I tried to do that and several things fell apart, we > need to enter not only the generated method, also it's parameters etc, > which is what MemberEnter is doing. > >> *JCTree.java/TreeMaker.java - I don't think there's any need to store >> accessors in the field AST; these are only used from TypeEnter, and >> TypeEnter can do whatever it does by looking at which record >> components there are in the record class, and add a getter for each. >> Let's make the code simpler and more direct >> > yep removed >> >> * ClassReader.java - should we just silently ignore record attributes >> when not in preview mode - or should we issue classfile errors? >> >> * ClassReader.java - what kind of validation should we do on record >> attributes? Currently javac does nothing. Should we check that we >> have (i) getters (ii) toString/hashCode/equals implementations and >> (iii) a canonical constructor (ad fail if we don't) ? At the very >> least I would add code to _parse_ the attribute, even if we do >> nothing with it, so that at least we throw a classfile error if the >> attribute is badly broken >> > on ClassReader, we can discuss what to do in a language meeting, I > don't have any strong preference >> >> * Tokens.java - for "var", "yields" and other context-dependent >> keywords we never added a token. We just handled that in JavacParser. >> Why the difference here? I think it's best to stick to current style >> and maybe fix all of them (assuming that's what we want to do) in a >> followup cleanup. Actually, after looking at parser, it seems like >> you already handle that manually, so I just suggest to revert the >> changed to Tokens >> > > I added the token to add it as a parameter to an error message, but I > removed the token and now I'm passing a string > >> * TreeInfo.java - how is 'isCanonicalConstructor' not returning >> 'true' for all constructors inside a record, as opposed to only >> return true for the canonical one? >> > I have added a comment to clarify what this method is doing >> >> * TreeInfo.java - There is some code reuse possible between >> "recordFieldTypes" and "recordFields" >> > yep done >> >> * Names.java - what is 'oldEquals' ? >> > removed, old code >> >> * JavacParser.java - timing of checks; I don't think we should check >> for illegal record component names in here >> > removed from there >> >> * JavacParser.java - code can be simplified somewhat by getting rid >> of accessors in VarDef AST. >> > > done > > Thanks again for taking the time to do this long review, will answer > the other mails separately > > Vicente >> >> >> >> >> On 21/10/2019 13:31, Vicente Romero wrote: >>> Hi, >>> >>> Please review the compiler code for JEP 359 (Records) [1] >>> >>> Thanks in advance for the feedback, >>> Vicente >>> >>> [1] >>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ > From vicente.romero at oracle.com Sat Oct 26 20:14:52 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Sat, 26 Oct 2019 20:14:52 +0000 Subject: hg: amber/amber: reverting changes in Resolve Message-ID: <201910262014.x9QKEqeg000657@aojmv0008.oracle.com> Changeset: fbb9aafcb613 Author: vromero Date: 2019-10-26 16:03 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/fbb9aafcb613 reverting changes in Resolve ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java From vicente.romero at oracle.com Sun Oct 27 01:24:21 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Sat, 26 Oct 2019 21:24:21 -0400 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <4d312903-7d01-3055-aff1-6c4e19866b71@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <0ebde608-4fd2-c0ee-f8d6-e33aa662eabf@oracle.com> <4d312903-7d01-3055-aff1-6c4e19866b71@oracle.com> Message-ID: <14abd2fb-5040-86b9-2d2c-ab571a2ccf7b@oracle.com> Hi Jan, On 10/22/19 11:21 AM, Jan Lahoda wrote: > Hi, > > In addition to Maurizio's comments, a few more comments: > -for tests, "--enable-preview -source 14" is used on many places. This > will cause issues when JDK 15 is started (and --enable-preview -source > 14 will be replaced with --enable-preview -source 15). On all places > where that is possible, "--enable-preview -source ${jdk.version}" > should be used, or a programmatic equivalent. done > -for code like this: > ---$ cat R.java > public record R(int i) {} > --- > compiling without --enable-preview: > --- $ javac R.java > /tmp/R.java:1: error: class, interface, or enum expected > public record R(int i) {} > ?????? ^ > 1 error > --- > it would be nice if we could provide some helpful note that to get > support for records, --enable-preview needs to be used. It may not be > possible to embed that into the error esp. for nested records, but at > least a warning. Just so that the user would get a hint what they are > doing wrong if records don't work for them. I will check similar code in other preview projects, > -in Flags, it would be nice to document on which Symbols given flag > may appear. That would be useful in order to partition the Flags into > separate Symbol-kind specific sub-sets. done > -in Lower, there is method "recordVars, which looks at the > superclasses of a record, to see if these have a state component - is > a record superclass of a record allowed? (I thought it isn't.) I removed that method > -there seem to be commented debugs in Check, like: > +??????? //System.out.println("at Check.validateAnnotation: flags: " + > Flags.toString(s.flags_field) + ", declaration tree " + declarationTree); > > Ideally, these would be removed done > -in: > test/langtools/tools/javac/launcher/SourceLauncherTest.javathere are > changes like: > -??????????? file + ":1: error: class, interface, or enum expected\n" + > +??????????? file + ":1: error: class, interface, enum expected\n" + > > are these intentional? These seem suspicious to me. right, fixed > > -in: > test/langtools/tools/javac/processing/model/element/TestRecord.java > and: > test/langtools/tools/javac/processing/model/element/TestRecordDesugar.java > > > there is @bug 8888888 - that seems like a placeholder number. yep removed > > Thanks, > ???? Jan Thanks for the review, Vicente PS, current iteration: http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.01/ > > > On 21. 10. 19 22:44, Maurizio Cimadamore wrote: >> And here are some comments on Lower >> >> - findMethodOrFailSilently? doesn't seem to be used anywhere; this >> should be removed and associated changes in Resolve reverted >> >> - findUserDefinedAccessors - this seems to have to do with setting >> the record component symbol straight - this should happen well before >> Lower, otherwise I'm not even sure what annotations processor will >> see? This code should go in TypeEnter, where you already look up for >> existing accessor. >> >> - related; not 100% as to why in visitRecordDef you protect against >> accessor not being there - which means you need to do a lookup. You >> need to get to this part of the code where all accessors have been >> set. Then the code can be simplified. >> >> - As pointed out previously, getting rid of the Pair >> accessor will result in cascading simplification in few methods in >> Lower too >> >> - both the signature generator and the indy machinery are shared >> between LambdaToMethod and Lower - so we should probably put them >> somewhere in a common superclass which can be used by the various >> backend steps >> >> - I guess the main translation strategy for record members is to >> generate an indy - where the runtime gives you back some constant >> callsite which wraps a method handle with the right signature. If so, >> some comments should be sprinkled around to clarify that this is >> indeed the case. >> >> - I also guess that the if/else in generateRecordMethod is to avoid >> generating a tree if an explicit member has been declared by the user >> - again, correct, but some comments please ;-) >> >> >> Also some comments? on tests: >> >> * test/langtools/tools/javac/6402516/CheckLocalElements.java - why >> the change? >> >> * test/langtools/tools/javac/AnonymousClass/AnonymousClassFlags.java >> - why the change from @run to @compile? >> >> * >> test/langtools/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java >> - who is using the new target? >> >> * diags/** in general, for all new diagnostics added it would be nice >> to have an html of the output (I have a script for doing that, let me >> know if you need it) >> >> * examples-not-yet - why no test for local records? That should be >> easy to add (I hope)? >> >> * test/langtools/tools/javac/parser/JavacParserTest.java - here I >> wonder if we should have different messages depending on the version >> (eg. we don't want to say 'expected records' if compiling with >> -source 12?) >> >> *? test/langtools/tools/javac/tree/JavacTreeScannerTest.java, >> test/langtools/tools/javac/tree/SourceTreeScannerTest.java, >> src/jdk.compiler/share/classes/com/sun/tools/javac/code/Accessors.java >> - seems like these probably depend on the accessor pairs being in the >> AST? >> >> * test/langtools/tools/javac/doctree/AccessorsTest.java - not sure >> about this, does it even belong to this patch? I'd be surprised if >> DocTree does anything special with accessors? >> >> * test/langtools/tools/javac/doctree/AccessorsTest.java - this tests >> that ElementFilter and getAccessor() agree, but doesn't test that >> they actually yield the correct result >> >> * more generally, certain tests (e.g. signature mismatches, record >> component names order mismatches, reflection tests, serialization >> tests) have a certain ad-hoc nature to them - in the sense that they >> test one record shape or two and that's it. E.g. >> >> test/langtools/tools/javac/records/mandated_members/read_resolve_method/CheckReadResolveMethodTest.java >> >> >> I'd like to see a more combinatorial-oriented approach to such tests, >> where at least we tests all primitive types plus a reference type of >> choice, with varying degrees of arity (and w/, w/o varargs). >> >> >> That's all for now >> >> Thanks >> Maurizio >> >> On 21/10/2019 19:01, Maurizio Cimadamore wrote: >>> Hi Vicente, >>> I did a pretty thorough pass on most of the code. I didn't look at >>> tests, and I also didn't look at Lower. Comments below: >>> >>> * Flags.java - VARARGS flag for records components; I wonder, >>> instead of a new flag, can we use the internal VARARGS flag we have >>> for methods, and attach that to the record symbol? That should also >>> lead to more direct code in TypeHelper >>> >>> * Symbol.java - I think the override for 'erasure' is redundant - >>> isn't that the impl from supertype? >>> >>> * Symbol.java (and others) in general this webrev shuld be updated >>> as soon as Jan push the @Preview work, as I see that methods >>> implementing preview API are using the 'deprecate for removal' >>> annotation >>> >>> * Symbol.java - I wonder if accessor list with Pair >>> isn't a premature generalization; we should just add a getter symbol >>> and that's it >>> >>> * Attr.java - I think we might want to leave the door open for a >>> check which forces all constructors of a record to go through the >>> canonical one (depending on where the spec lands) >>> >>> * Check.java - understanding checkpoint: when we see an annotation >>> on a record component, first we check it's one of the kinds which >>> are allowed (if not, error), and, if it's allowed, we add all record >>> component annotations to record component elements, and we also >>> filter away all annotations that have nothing to do with the element >>> in which they appear. If my understanding is correct, I think this >>> logic should be documented more clearly; I found the comment after >>> the "if (isRecordField)" to be a bit obscure. >>> >>> * Enter.java - why are you removing the static flag on records? I >>> don't see anything similar around for enums. >>> >>> * Flow.java - not sure I get the changes to checkInit; typically >>> checkInit is called at the use-site of DA/DU variables. Here it >>> seems you suppress some of the errors emitted for accessing record >>> fields inside the canonical constructor - but I hope that code like >>> this >>> >>> record Foo(int x) { >>> ?? Foo(int x) { >>> ?????? print(this.x); >>> ?? } >>> } >>> >>> Still give errors? If this works correctly, which errors does the >>> 'guard' around the error generation is supposed to protect against? >>> >>> * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only >>> used here... >>> >>> * TypeEnter.java - implicit super calls are added in >>> Attr::visitMethod for regular calls; we should do the same for >>> records (or add all in TypeEnter - that is records and class should >>> be consistent) >>> >>> * TypeEnter.java - on finishClass - you are calling memberEnter on >>> record fields, which I think you already did in the new RecordsPhase >>> >>> * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal >>> with _all_ record members (e.g. including accessors), not just some? >>> >>> * TypeEnter.java - checkForSerializationMember should probably be >>> moved to MemberEnter::visitVar, or even to Attr (note that the code >>> for the check is doing a little visit :-)) >>> >>> * TypeEnter.java - again on check timings; while it's ok for the >>> code in here to add new synthetic members, I think it's less ok to >>> add more global error checks (such as make sure that the canonical >>> declaration whose parameter names match the record components in >>> order); these should live in Attr. More generally, I think that we >>> should only check stuff here if we think that the check will add any >>> value to annotation processing. Every other check can be deferred, >>> and take place in a more 'deterministic' part of javac. >>> >>> * TypeEnter.java - I think finishClass should be a bit better at >>> determining as to whether default constructor is needed or not - for >>> instance, this check: >>> >>> if ((sym.flags() & INTERFACE) == 0 && >>> ?928???????????????? !TreeInfo.hasConstructors(tree.defs)) { >>> >>> Should be generalized to something that works for both classes and >>> records; for classes you need to check if there's no other >>> constructor; for records you need to check if there's no other >>> constructor _with same signature_ as the canonical one. Then you can >>> simplify addRecordMembers and remove the dependency on the boolean >>> 'generatedConstructor' parameter. In other words the code should: >>> >>> 1) check if default/canonical constructor generation is required >>> 2) if so, use the appropriate helper to generate the code >>> 3) at the end, add the remaining record members (under the >>> assumption that the canonical constructor has already been added in >>> (1), if that was missing) >>> >>> *TypeEnter.java - addAccessor can be simplified if we only worry >>> about getters. Again, the checks in here feel more Attr check than >>> MemberEnter checks. >>> >>> *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we >>> create a tree for a member, and then we visit the member tree with >>> memberEnter, just to add it to the scope. I understand that, >>> currently addEnumMembers does the same, but this looks very >>> roundabout; I wonder if there's a way to make all this process a bit >>> simpler - create a symbol and add that to the scope. Or are there >>> important checks in MemberEnter that we would lose? >>> >>> *JCTree.java/TreeMaker.java - I don't think there's any need to >>> store accessors in the field AST; these are only used from >>> TypeEnter, and TypeEnter can do whatever it does by looking at which >>> record components there are in the record class, and add a getter >>> for each. Let's make the code simpler and more direct >>> >>> * ClassReader.java - should we just silently ignore record >>> attributes when not in preview mode - or should we issue classfile >>> errors? >>> >>> * ClassReader.java - what kind of validation should we do on record >>> attributes? Currently javac does nothing. Should we check that we >>> have (i) getters (ii) toString/hashCode/equals implementations and >>> (iii) a canonical constructor (ad fail if we don't) ? At the very >>> least I would add code to _parse_ the attribute, even if we do >>> nothing with it, so that at least we throw a classfile error if the >>> attribute is badly broken >>> >>> * Tokens.java - for "var", "yields" and other context-dependent >>> keywords we never added a token. We just handled that in >>> JavacParser. Why the difference here? I think it's best to stick to >>> current style and maybe fix all of them (assuming that's what we >>> want to do) in a followup cleanup. Actually, after looking at >>> parser, it seems like you already handle that manually, so I just >>> suggest to revert the changed to Tokens >>> >>> * TreeInfo.java - how is 'isCanonicalConstructor' not returning >>> 'true' for all constructors inside a record, as opposed to only >>> return true for the canonical one? >>> >>> * TreeInfo.java - There is some code reuse possible between >>> "recordFieldTypes" and "recordFields" >>> >>> * Names.java - what is 'oldEquals' ? >>> >>> * JavacParser.java - timing of checks; I don't think we should check >>> for illegal record component names in here >>> >>> * JavacParser.java - code can be simplified somewhat by getting rid >>> of accessors in VarDef AST. >>> >>> >>> >>> >>> >>> On 21/10/2019 13:31, Vicente Romero wrote: >>>> Hi, >>>> >>>> Please review the compiler code for JEP 359 (Records) [1] >>>> >>>> Thanks in advance for the feedback, >>>> Vicente >>>> >>>> [1] >>>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ From vicente.romero at oracle.com Sun Oct 27 01:26:02 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Sun, 27 Oct 2019 01:26:02 +0000 Subject: hg: amber/amber: adding comments to new flags specifying what symbols they are applicable to Message-ID: <201910270126.x9R1Q3Ep005069@aojmv0008.oracle.com> Changeset: 4cfa1daa18f0 Author: vromero Date: 2019-10-26 21:25 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/4cfa1daa18f0 adding comments to new flags specifying what symbols they are applicable to ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java From maurizio.cimadamore at oracle.com Sun Oct 27 22:09:04 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Sun, 27 Oct 2019 22:09:04 +0000 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> Message-ID: Hi Vicente, looks a lot better, thanks. Some comments: Attr.java - Errors.FirstStatementMustBeCallToCanonical - not sure about this message , but in general, all we require is that a constructor delegates to another constructor - it can also be something other than the canonical - e.g contsructor1 -> constructor2 -> canonical Attr.java - the above situation seems to also affect some other code in Attr - where you actually check that the invoked constructor in 'this' has same signature of the canonical constructor. I think these checks should be removed - the important thing is that the canonical will be called _somehow_ - but can also be call indirectly - at least this was my understanding Attr.java - not sure about the tree.sym.isRecord in the visitMethod - it seems like the same flag is used for both record (class) and canonical constructor? I'm ok with sharing the flag, but the method name looks a bit confusing when applied to a method symbol. I suggest putting 'isRecord' inside ClassSymbol, and 'isCanonicalRecordConstructor' on MethodSymbol, so that client code cannot make mistakes. Attr.java/TypeEnter.java - overall, the checks here look nice, and they 'blend' in with existing code nicely, I think. Well done! Enter.java - I guess my question here on records and treatment with STATIC is a general question as to why isn't the code doing the same thing for records and enums - aren't the rules similar? (e.g. enums must be static, etc)? Enums are not set STATIC by default in javac parser, and that is, I think the difference here. What pushed you in this direction? TypeEnter.java: I suggest renaming "getCanonicalInitDecl" to "getCanonicalConstructorDecl" TypeEnter.java - it seems like the result of getCanonicalInitDecl is always given the RECORD flag - but later on (in Lower) I saw a comment which says that only auto-generated symbols have the RECORD flag set. Which one is it? TypeEnter.java - I think the isUnchecked methods are a leftover from previous code - now they seem to be in Attr.java (btw, I think we must have those checks somewhere else in javac, look in Check::isUnchecked) Names.java - I think this bunch of fields is also no longer used? + public final Name where; + public final Name non; + public final Name ofLazyProjection; + I have not checked the j.l.m API. Thanks Maurizio On 26/10/2019 21:14, Vicente Romero wrote: > I forgot to mention that I have added javax.lang.model code to this > iteration that wasn't part of the first iteration. I was planning to > publish it as part of a different review but I realized that there was > some code affected, tests, API implementation etc, which belonged to > the compiler code. So I added that code in this iteration, > > Thanks, > Vicente > > On 10/26/19 3:55 PM, Vicente Romero wrote: >> Hi Maurizio, >> >> Thanks again for the comments I have published another iteration at >> [1]. I focused on this iteration more on the implemenation than on >> the tests to first have an agreement on the implementation, timing, >> etc. Some comments inlined below. >> >> [1] >> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.01/ >> >> On 10/21/19 2:01 PM, Maurizio Cimadamore wrote: >>> >>> Hi Vicente, >>> I did a pretty thorough pass on most of the code. I didn't look at >>> tests, and I also didn't look at Lower. Comments below: >>> >>> * Flags.java - VARARGS flag for records components; I wonder, >>> instead of a new flag, can we use the internal VARARGS flag we have >>> for methods, and attach that to the record symbol? That should also >>> lead to more direct code in TypeHelper >>> >> removed >> >>> * Symbol.java - I think the override for 'erasure' is redundant - >>> isn't that the impl from supertype? >>> >> yep, removed too >> >>> * Symbol.java - I wonder if accessor list with Pair >>> isn't a premature generalization; we should just add a getter symbol >>> and that's it >> >> agreed, done >> >>> * Attr.java - I think we might want to leave the door open for a >>> check which forces all constructors of a record to go through the >>> canonical one (depending on where the spec lands) >>> >> implemented in this iteration >> >>> * Check.java - understanding checkpoint: when we see an annotation >>> on a record component, first we check it's one of the kinds which >>> are allowed (if not, error), and, if it's allowed, we add all record >>> component annotations to record component elements, and we also >>> filter away all annotations that have nothing to do with the element >>> in which they appear. If my understanding is correct, I think this >>> logic should be documented more clearly; I found the comment after >>> the "if (isRecordField)" to be a bit obscure. >>> >> yes that's the idea, annotations that are originally applied to >> record components are pushed down to all generated elements in >> TypeEnter, and then in Check the ones that are off-site are removed >>> >>> * Enter.java - why are you removing the static flag on records? I >>> don't see anything similar around for enums. >>> >> >> the static flag is added to all records but if the record is a top >> level class, it is not needed, that's why that code is there >> >>> * Flow.java - not sure I get the changes to checkInit; typically >>> checkInit is called at the use-site of DA/DU variables. Here it >>> seems you suppress some of the errors emitted for accessing record >>> fields inside the canonical constructor - but I hope that code like this >>> >>> record Foo(int x) { >>> ?? Foo(int x) { >>> ?????? print(this.x); >>> ?? } >>> } >>> >>> Still give errors? >>> >> >> yes it gives an error >>> >>> If this works correctly, which errors does the 'guard' around the >>> error generation is supposed to protect against? >>> >> >> checkInit it not used only for what you mentioned above but also, see >> AssignAnalyzer::visitMethodDef, to check if an initial constructor, >> as the canonical constructor is in records, have initialized all the >> fields. The guard is there to don't issue an error if a canonical >> constructor hasn't initialized some fields, as the compiler will >> generate code to initialize those fields later in Lower >>> >>> * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only >>> used here... >>> >> removed >>> >>> * TypeEnter.java - implicit super calls are added in >>> Attr::visitMethod for regular calls; we should do the same for >>> records (or add all in TypeEnter - that is records and class should >>> be consistent) >>> >> >> right we should be consistent, I have moved that code to Attr >> >>> * TypeEnter.java - on finishClass - you are calling memberEnter on >>> record fields, which I think you already did in the new RecordsPhase >>> >> >> nope, what I'm doing there is invoking MemberEnter to enter the >> members that hasn't been entered so far. Anyway that code changed a >> bit because I'm entering the constructors now at RecordPhase too but >> I have changed the code a bit to make more clear what is happening. >> >>> * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal >>> with _all_ record members (e.g. including accessors), not just some? >>> >> yep changed that too >>> >>> * TypeEnter.java - checkForSerializationMember should probably be >>> moved to MemberEnter::visitVar, or even to Attr (note that the code >>> for the check is doing a little visit :-)) >>> >> moved to Attr >>> >>> * TypeEnter.java - again on check timings; while it's ok for the >>> code in here to add new synthetic members, I think it's less ok to >>> add more global error checks (such as make sure that the canonical >>> declaration whose parameter names match the record components in >>> order); these should live in Attr. More generally, I think that we >>> should only check stuff here if we think that the check will add any >>> value to annotation processing. Every other check can be deferred, >>> and take place in a more 'deterministic' part of javac. >>> >> >> moved to Attr >> >>> * TypeEnter.java - I think finishClass should be a bit better at >>> determining as to whether default constructor is needed or not - for >>> instance, this check: >>> >>> if ((sym.flags() & INTERFACE) == 0 && >>> 928 !TreeInfo.hasConstructors(tree.defs)) { >>> >>> Should be generalized to something that works for both classes and >>> records; for classes you need to check if there's no other >>> constructor; for records you need to check if there's no other >>> constructor _with same signature_ as the canonical one. Then you can >>> simplify addRecordMembers and remove the dependency on the boolean >>> 'generatedConstructor' parameter. In other words the code should: >>> >>> 1) check if default/canonical constructor generation is required >>> 2) if so, use the appropriate helper to generate the code >>> 3) at the end, add the remaining record members (under the >>> assumption that the canonical constructor has already been added in >>> (1), if that was missing) >>> >> >> done, in order to do that I had to enter constructors at the >> RecordPhase, as mentioned earlier. >>> >>> *TypeEnter.java - addAccessor can be simplified if we only worry >>> about getters. Again, the checks in here feel more Attr check than >>> MemberEnter checks. >>> >> agreed, done >> >>> *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we >>> create a tree for a member, and then we visit the member tree with >>> memberEnter, just to add it to the scope. I understand that, >>> currently addEnumMembers does the same, but this looks very >>> roundabout; I wonder if there's a way to make all this process a bit >>> simpler - create a symbol and add that to the scope. Or are there >>> important checks in MemberEnter that we would lose? >>> >> >> yes there are several checks we would lose, plus we would lose >> consistency, but I tried to do that and several things fell apart, we >> need to enter not only the generated method, also it's parameters >> etc, which is what MemberEnter is doing. >> >>> *JCTree.java/TreeMaker.java - I don't think there's any need to >>> store accessors in the field AST; these are only used from >>> TypeEnter, and TypeEnter can do whatever it does by looking at which >>> record components there are in the record class, and add a getter >>> for each. Let's make the code simpler and more direct >>> >> yep removed >>> >>> * ClassReader.java - should we just silently ignore record >>> attributes when not in preview mode - or should we issue classfile >>> errors? >>> >>> * ClassReader.java - what kind of validation should we do on record >>> attributes? Currently javac does nothing. Should we check that we >>> have (i) getters (ii) toString/hashCode/equals implementations and >>> (iii) a canonical constructor (ad fail if we don't) ? At the very >>> least I would add code to _parse_ the attribute, even if we do >>> nothing with it, so that at least we throw a classfile error if the >>> attribute is badly broken >>> >> on ClassReader, we can discuss what to do in a language meeting, I >> don't have any strong preference >>> >>> * Tokens.java - for "var", "yields" and other context-dependent >>> keywords we never added a token. We just handled that in >>> JavacParser. Why the difference here? I think it's best to stick to >>> current style and maybe fix all of them (assuming that's what we >>> want to do) in a followup cleanup. Actually, after looking at >>> parser, it seems like you already handle that manually, so I just >>> suggest to revert the changed to Tokens >>> >> >> I added the token to add it as a parameter to an error message, but I >> removed the token and now I'm passing a string >> >>> * TreeInfo.java - how is 'isCanonicalConstructor' not returning >>> 'true' for all constructors inside a record, as opposed to only >>> return true for the canonical one? >>> >> I have added a comment to clarify what this method is doing >>> >>> * TreeInfo.java - There is some code reuse possible between >>> "recordFieldTypes" and "recordFields" >>> >> yep done >>> >>> * Names.java - what is 'oldEquals' ? >>> >> removed, old code >>> >>> * JavacParser.java - timing of checks; I don't think we should check >>> for illegal record component names in here >>> >> removed from there >>> >>> * JavacParser.java - code can be simplified somewhat by getting rid >>> of accessors in VarDef AST. >>> >> >> done >> >> Thanks again for taking the time to do this long review, will answer >> the other mails separately >> >> Vicente >>> >>> >>> >>> >>> On 21/10/2019 13:31, Vicente Romero wrote: >>>> Hi, >>>> >>>> Please review the compiler code for JEP 359 (Records) [1] >>>> >>>> Thanks in advance for the feedback, >>>> Vicente >>>> >>>> [1] >>>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ >> > From maurizio.cimadamore at oracle.com Sun Oct 27 22:33:19 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Sun, 27 Oct 2019 22:33:19 +0000 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> Message-ID: <415e23ea-8414-5964-3d5a-66a7e33cb8e8@oracle.com> Also some comments on error messages (some feedback from Alex/Jon would also be appreciated here; error messages are also crucial to convey important bits of the programming model, so I think we should try to get them right): +compiler.err.record.cant.declare.duplicate.fields=\ + records cannot declare components with the same name + I think this should be less record specific - it's just a duplicate declaration - so we should issue same error as with method/field duplicate decl? compiler.err.record.cant.declare.field.modifiers=\ + record components can not have modifiers "can not" -> "cannot" +compiler.err.record.fields.must.be.in.header=\ + instance fields in a record must be declared in the header Should it say that fields should be in the header, or should it say that a record cannot declare fields? Invalid field declaration in record (consider replacing field with record component) Or something like that. +compiler.err.canonical.constructor.must.be.public=\ + canonical constructor must be public I think I'd prefer to qualify "canonical _record_ constructor" + +compiler.err.canonical.with.name.mismatch=\ + constructor with same signature as canonical does not match by parameter names This is a tricky one. Perhaps let's try to simplify: "Invalid parameter names in record constructor" (parameter names must match the names of the declared record components) Or something similar. +compiler.err.accessor.return.type.doesnt.match=\ + type returned by the accessor is not the same as the type of the corresponding record component\n\ + required: {0}\n\ + found: {1}\n\ + Again, maybe this can be simpler: "Unexpected type in record accessor + required: {0}\n\ + found: {1}\n\ " +compiler.err.illegal.record.component.name=\ + record {0}, declares an illegal record component name: {1} Better to flip the sentence around? Illegal record component name {1} (record components cannot have same name as Object methods, ...) Maybe the first line could be enough, but if we could list the names that are 'reserved' that could be good too, assuming we can find a nice way to do that) +compiler.err.invalid.supertype.record=\ + no class can explicitly extend java.lang.Record -> "Cannot extend j.l.Record" +compiler.err.canonical.cant.have.return.statement=\ + canonical constructor can not have return statements "can not" -> "cannot" Maurizio On 27/10/2019 22:09, Maurizio Cimadamore wrote: > > Hi Vicente, looks a lot better, thanks. > > Some comments: > > Attr.java - Errors.FirstStatementMustBeCallToCanonical - not sure > about this message , but in general, all we require is that a > constructor delegates to another constructor - it can also be > something other than the canonical - e.g contsructor1 -> constructor2 > -> canonical > > Attr.java - the above situation seems to also affect some other code > in Attr - where you actually check that the invoked constructor in > 'this' has same signature of the canonical constructor. I think these > checks should be removed - the important thing is that the canonical > will be called _somehow_ - but can also be call indirectly - at least > this was my understanding > > Attr.java - not sure about the tree.sym.isRecord in the visitMethod - > it seems like the same flag is used for both record (class) and > canonical constructor? I'm ok with sharing the flag, but the method > name looks a bit confusing when applied to a method symbol. I suggest > putting 'isRecord' inside ClassSymbol, and > 'isCanonicalRecordConstructor' on MethodSymbol, so that client code > cannot make mistakes. > > Attr.java/TypeEnter.java - overall, the checks here look nice, and > they 'blend' in with existing code nicely, I think. Well done! > > Enter.java - I guess my question here on records and treatment with > STATIC is a general question as to why isn't the code doing the same > thing for records and enums - aren't the rules similar? (e.g. enums > must be static, etc)? Enums are not set STATIC by default in javac > parser, and that is, I think the difference here. What pushed you in > this direction? > > TypeEnter.java: I suggest renaming "getCanonicalInitDecl" to > "getCanonicalConstructorDecl" > > TypeEnter.java - it seems like the result of getCanonicalInitDecl is > always given the RECORD flag - but later on (in Lower) I saw a comment > which says that only auto-generated symbols have the RECORD flag set. > Which one is it? > > TypeEnter.java - I think the isUnchecked methods are a leftover from > previous code - now they seem to be in Attr.java (btw, I think we must > have those checks somewhere else in javac, look in Check::isUnchecked) > > Names.java - I think this bunch of fields is also no longer used? > > + public final Name where; > + public final Name non; > + public final Name ofLazyProjection; > + > > > I have not checked the j.l.m API. > > Thanks > Maurizio > > > > > On 26/10/2019 21:14, Vicente Romero wrote: >> I forgot to mention that I have added javax.lang.model code to this >> iteration that wasn't part of the first iteration. I was planning to >> publish it as part of a different review but I realized that there >> was some code affected, tests, API implementation etc, which belonged >> to the compiler code. So I added that code in this iteration, >> >> Thanks, >> Vicente >> >> On 10/26/19 3:55 PM, Vicente Romero wrote: >>> Hi Maurizio, >>> >>> Thanks again for the comments I have published another iteration at >>> [1]. I focused on this iteration more on the implemenation than on >>> the tests to first have an agreement on the implementation, timing, >>> etc. Some comments inlined below. >>> >>> [1] >>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.01/ >>> >>> On 10/21/19 2:01 PM, Maurizio Cimadamore wrote: >>>> >>>> Hi Vicente, >>>> I did a pretty thorough pass on most of the code. I didn't look at >>>> tests, and I also didn't look at Lower. Comments below: >>>> >>>> * Flags.java - VARARGS flag for records components; I wonder, >>>> instead of a new flag, can we use the internal VARARGS flag we have >>>> for methods, and attach that to the record symbol? That should also >>>> lead to more direct code in TypeHelper >>>> >>> removed >>> >>>> * Symbol.java - I think the override for 'erasure' is redundant - >>>> isn't that the impl from supertype? >>>> >>> yep, removed too >>> >>>> * Symbol.java - I wonder if accessor list with Pair >>>> isn't a premature generalization; we should just add a getter >>>> symbol and that's it >>> >>> agreed, done >>> >>>> * Attr.java - I think we might want to leave the door open for a >>>> check which forces all constructors of a record to go through the >>>> canonical one (depending on where the spec lands) >>>> >>> implemented in this iteration >>> >>>> * Check.java - understanding checkpoint: when we see an annotation >>>> on a record component, first we check it's one of the kinds which >>>> are allowed (if not, error), and, if it's allowed, we add all >>>> record component annotations to record component elements, and we >>>> also filter away all annotations that have nothing to do with the >>>> element in which they appear. If my understanding is correct, I >>>> think this logic should be documented more clearly; I found the >>>> comment after the "if (isRecordField)" to be a bit obscure. >>>> >>> yes that's the idea, annotations that are originally applied to >>> record components are pushed down to all generated elements in >>> TypeEnter, and then in Check the ones that are off-site are removed >>>> >>>> * Enter.java - why are you removing the static flag on records? I >>>> don't see anything similar around for enums. >>>> >>> >>> the static flag is added to all records but if the record is a top >>> level class, it is not needed, that's why that code is there >>> >>>> * Flow.java - not sure I get the changes to checkInit; typically >>>> checkInit is called at the use-site of DA/DU variables. Here it >>>> seems you suppress some of the errors emitted for accessing record >>>> fields inside the canonical constructor - but I hope that code like >>>> this >>>> >>>> record Foo(int x) { >>>> ?? Foo(int x) { >>>> ?????? print(this.x); >>>> ?? } >>>> } >>>> >>>> Still give errors? >>>> >>> >>> yes it gives an error >>>> >>>> If this works correctly, which errors does the 'guard' around the >>>> error generation is supposed to protect against? >>>> >>> >>> checkInit it not used only for what you mentioned above but also, >>> see AssignAnalyzer::visitMethodDef, to check if an initial >>> constructor, as the canonical constructor is in records, have >>> initialized all the fields. The guard is there to don't issue an >>> error if a canonical constructor hasn't initialized some fields, as >>> the compiler will generate code to initialize those fields later in >>> Lower >>>> >>>> * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only >>>> used here... >>>> >>> removed >>>> >>>> * TypeEnter.java - implicit super calls are added in >>>> Attr::visitMethod for regular calls; we should do the same for >>>> records (or add all in TypeEnter - that is records and class should >>>> be consistent) >>>> >>> >>> right we should be consistent, I have moved that code to Attr >>> >>>> * TypeEnter.java - on finishClass - you are calling memberEnter on >>>> record fields, which I think you already did in the new RecordsPhase >>>> >>> >>> nope, what I'm doing there is invoking MemberEnter to enter the >>> members that hasn't been entered so far. Anyway that code changed a >>> bit because I'm entering the constructors now at RecordPhase too but >>> I have changed the code a bit to make more clear what is happening. >>> >>>> * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal >>>> with _all_ record members (e.g. including accessors), not just some? >>>> >>> yep changed that too >>>> >>>> * TypeEnter.java - checkForSerializationMember should probably be >>>> moved to MemberEnter::visitVar, or even to Attr (note that the code >>>> for the check is doing a little visit :-)) >>>> >>> moved to Attr >>>> >>>> * TypeEnter.java - again on check timings; while it's ok for the >>>> code in here to add new synthetic members, I think it's less ok to >>>> add more global error checks (such as make sure that the canonical >>>> declaration whose parameter names match the record components in >>>> order); these should live in Attr. More generally, I think that we >>>> should only check stuff here if we think that the check will add >>>> any value to annotation processing. Every other check can be >>>> deferred, and take place in a more 'deterministic' part of javac. >>>> >>> >>> moved to Attr >>> >>>> * TypeEnter.java - I think finishClass should be a bit better at >>>> determining as to whether default constructor is needed or not - >>>> for instance, this check: >>>> >>>> if ((sym.flags() & INTERFACE) == 0 && >>>> 928 !TreeInfo.hasConstructors(tree.defs)) { >>>> >>>> Should be generalized to something that works for both classes and >>>> records; for classes you need to check if there's no other >>>> constructor; for records you need to check if there's no other >>>> constructor _with same signature_ as the canonical one. Then you >>>> can simplify addRecordMembers and remove the dependency on the >>>> boolean 'generatedConstructor' parameter. In other words the code >>>> should: >>>> >>>> 1) check if default/canonical constructor generation is required >>>> 2) if so, use the appropriate helper to generate the code >>>> 3) at the end, add the remaining record members (under the >>>> assumption that the canonical constructor has already been added in >>>> (1), if that was missing) >>>> >>> >>> done, in order to do that I had to enter constructors at the >>> RecordPhase, as mentioned earlier. >>>> >>>> *TypeEnter.java - addAccessor can be simplified if we only worry >>>> about getters. Again, the checks in here feel more Attr check than >>>> MemberEnter checks. >>>> >>> agreed, done >>> >>>> *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we >>>> create a tree for a member, and then we visit the member tree with >>>> memberEnter, just to add it to the scope. I understand that, >>>> currently addEnumMembers does the same, but this looks very >>>> roundabout; I wonder if there's a way to make all this process a >>>> bit simpler - create a symbol and add that to the scope. Or are >>>> there important checks in MemberEnter that we would lose? >>>> >>> >>> yes there are several checks we would lose, plus we would lose >>> consistency, but I tried to do that and several things fell apart, >>> we need to enter not only the generated method, also it's parameters >>> etc, which is what MemberEnter is doing. >>> >>>> *JCTree.java/TreeMaker.java - I don't think there's any need to >>>> store accessors in the field AST; these are only used from >>>> TypeEnter, and TypeEnter can do whatever it does by looking at >>>> which record components there are in the record class, and add a >>>> getter for each. Let's make the code simpler and more direct >>>> >>> yep removed >>>> >>>> * ClassReader.java - should we just silently ignore record >>>> attributes when not in preview mode - or should we issue classfile >>>> errors? >>>> >>>> * ClassReader.java - what kind of validation should we do on record >>>> attributes? Currently javac does nothing. Should we check that we >>>> have (i) getters (ii) toString/hashCode/equals implementations and >>>> (iii) a canonical constructor (ad fail if we don't) ? At the very >>>> least I would add code to _parse_ the attribute, even if we do >>>> nothing with it, so that at least we throw a classfile error if the >>>> attribute is badly broken >>>> >>> on ClassReader, we can discuss what to do in a language meeting, I >>> don't have any strong preference >>>> >>>> * Tokens.java - for "var", "yields" and other context-dependent >>>> keywords we never added a token. We just handled that in >>>> JavacParser. Why the difference here? I think it's best to stick to >>>> current style and maybe fix all of them (assuming that's what we >>>> want to do) in a followup cleanup. Actually, after looking at >>>> parser, it seems like you already handle that manually, so I just >>>> suggest to revert the changed to Tokens >>>> >>> >>> I added the token to add it as a parameter to an error message, but >>> I removed the token and now I'm passing a string >>> >>>> * TreeInfo.java - how is 'isCanonicalConstructor' not returning >>>> 'true' for all constructors inside a record, as opposed to only >>>> return true for the canonical one? >>>> >>> I have added a comment to clarify what this method is doing >>>> >>>> * TreeInfo.java - There is some code reuse possible between >>>> "recordFieldTypes" and "recordFields" >>>> >>> yep done >>>> >>>> * Names.java - what is 'oldEquals' ? >>>> >>> removed, old code >>>> >>>> * JavacParser.java - timing of checks; I don't think we should >>>> check for illegal record component names in here >>>> >>> removed from there >>>> >>>> * JavacParser.java - code can be simplified somewhat by getting rid >>>> of accessors in VarDef AST. >>>> >>> >>> done >>> >>> Thanks again for taking the time to do this long review, will answer >>> the other mails separately >>> >>> Vicente >>>> >>>> >>>> >>>> >>>> On 21/10/2019 13:31, Vicente Romero wrote: >>>>> Hi, >>>>> >>>>> Please review the compiler code for JEP 359 (Records) [1] >>>>> >>>>> Thanks in advance for the feedback, >>>>> Vicente >>>>> >>>>> [1] >>>>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ >>>>> >>> >> From david.holmes at oracle.com Sun Oct 27 22:34:43 2019 From: david.holmes at oracle.com (David Holmes) Date: Mon, 28 Oct 2019 08:34:43 +1000 Subject: RFR: JEP 359-Records: hotspot runtime and serviceability code In-Reply-To: <0347120e-340c-6f45-396f-39c50da4a9ac@oracle.com> References: <0d584ce8-e4fe-033a-9e98-191e71651f78@oracle.com> <11add7e9-0cc3-a258-a977-1a408b196a74@oracle.com> <4f7b5662-a66e-5941-82ef-9e07bd5b6fb3@oracle.com> <32278f15-6556-3c8c-6364-b9095a576ce3@oracle.com> <0347120e-340c-6f45-396f-39c50da4a9ac@oracle.com> Message-ID: <8167dced-416a-9c70-a88d-76881ce90aba@oracle.com> On 25/10/2019 11:32 pm, Harold Seigel wrote: > The changes were pushed to the records branch of the amber repo: > http://hg.openjdk.java.net/amber/amber Okay. I thought we were doing a code review ready for this to go into mainline. David ----- > Harold > > On 10/25/2019 9:23 AM, David Holmes wrote: >> On 25/10/2019 9:49 pm, Harold Seigel wrote: >>> Thanks David! >>> >>> I should have mentioned that I had pushed Serguei's jvmti.xml and >>> TestRecordAttr*.java changes earlier. >> >> Pushed under what bug id to where? This JEP is still only a Candidate. >> >> David >> >>> Harold >>> >>> On 10/24/2019 8:40 PM, David Holmes wrote: >>>> Hi Harold, >>>> >>>> On 25/10/2019 3:50 am, Harold Seigel wrote: >>>>> Hi David, >>>>> >>>>> Thanks for reviewing this! >>>>> >>>>> Here's an updated webrev containing the below changes (and one >>>>> change requested by Serguei).? Could you take a look? >>>>> >>>>> http://cr.openjdk.java.net/~hseigel/records.review.rt.01/webrev/index.html >>>>> >>>> >>>> That incremental webrev looks fine. >>>> >>>> However you didn't include Serguei's earlier change request >>>> >>>> [Harold]>> I'll fix line 7789 in jvmti.xml before the change gets >>>> pushed. >>>> >>>> so just wanted to remind you on that. >>>> >>>> Thanks, >>>> David >>>> >>>>> Please also see in-line comments. >>>>> >>>>> On 10/23/2019 7:16 PM, David Holmes wrote: >>>>>> Hi Vicente, (and Harold!) >>>>>> >>>>>> On 19/10/2019 4:44 am, Vicente Romero wrote: >>>>>>> Hi, >>>>>>> >>>>>>> Please review the hotspot runtime and serviceability code for JEP >>>>>>> 359 (Records). >>>>>> >>>>>> I've looked at all the code, though not in great detail i.e I have >>>>>> not validated the code changes against the proposed specification. >>>>>> Support for records seems mostly "mechanical" and the patterns you >>>>>> have used look appropriate. A couple of comments below. >>>>>> >>>>>> src/hotspot/share/classfile/classFileParser.cpp >>>>>> >>>>>> You added the check >>>>>> >>>>>> 3704???????? } else if (tag == vmSymbols::tag_record()) { >>>>>> >>>>>> inside the block >>>>>> >>>>>> 3671?????? } else if (_major_version >= JAVA_11_VERSION) { >>>>>> >>>>>> but I would have expected to see a new block created >>>>>> >>>>>> ?????? } else if (_major_version >= JAVA_14_VERSION) { >>>>>> >>>>>> to hold this code. >>>>> Done. >>>>>> >>>>>> Style nit: >>>>>> >>>>>> 3773???? const unsigned int calculated_attr_length = >>>>>> parse_classfile_record_attribute( >>>>>> 3774???????????????????????????? cfs, >>>>>> 3775???????????????????????????? cp, >>>>>> 3776???????????????????????????? record_attribute_start, >>>>>> 3777???????????????????????????? CHECK); >>>>>> >>>>>> The style in this file is align the args on the = character. >>>>> Done. >>>>>> >>>>>> 4928?? if ((is_abstract && is_final && !major_gte_14) || >>>>>> >>>>>> As Lois mentioned already this change seems incorrect in general - >>>>>> is it related to sealed types perhaps? (Even then it should be >>>>>> tightened to actually check for a sealed type and not just allow >>>>>> arbitrary abstract+final classes.) >>>>> The '!major_gte_14' check was initially for sealed types, but is >>>>> wrong.? It's already been removed. >>>>>> >>>>>> --- >>>>>> >>>>>> src/hotspot/share/classfile/javaClasses.cpp >>>>>> >>>>>> +?? if (ik->should_be_initialized()) { >>>>>> +???? ik->initialize(CHECK_0); >>>>>> +?? } >>>>>> >>>>>> Unless the call to should_be_initialized is an inline method >>>>>> (which it isn't) then we may as well just call initialize >>>>>> unconditionally as the first thing it will do is check >>>>>> should_be_initialized. >>>>> Done. >>>>>> >>>>>> +???? jio_snprintf(sig, sig_len, "()%s", type->as_C_string()); >>>>>> >>>>>> You should use the symbolic constants for the '(' and ')' characters. >>>>> Done. >>>>>> >>>>>> --- >>>>>> >>>>>> src/hotspot/share/oops/instanceKlass.cpp >>>>>> >>>>>> Nit: >>>>>> >>>>>> 3549?????? if (component) { >>>>>> >>>>>> should test != NULL >>>>> Done. >>>>>> >>>>>> --- >>>>>> >>>>>> ?test/jdk/java/lang/instrument/RedefineRecordAttr >>>>>> >>>>>> Nice reuse of the nestmate testing pattern :) >>>>> >>>>> Yes, that nestmate test was very helpful! >>>>> >>>>> Thanks, Harold >>>>> >>>>>> >>>>>> --- >>>>>> >>>>>> Thanks, >>>>>> David >>>>>> >>>>>>> Thanks in advance for the feedback, >>>>>>> Vicente >>>>>>> >>>>>>> PS, Thanks to Harold for the development >>>>>>> >>>>>>> >>>>>>> [1] >>>>>>> http://cr.openjdk.java.net/~vromero/records.review/hotspot_runtime/webrev.00/ >>>>>>> From vicente.romero at oracle.com Sun Oct 27 23:14:29 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Sun, 27 Oct 2019 23:14:29 +0000 Subject: hg: amber/amber: applying reflection review comments Message-ID: <201910272314.x9RNEUUD011377@aojmv0008.oracle.com> Changeset: 20c37249dd0f Author: vromero Date: 2019-10-27 19:04 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/20c37249dd0f applying reflection review comments ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java From vicente.romero at oracle.com Sun Oct 27 23:41:22 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Sun, 27 Oct 2019 19:41:22 -0400 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <9f1e7585-1754-afd2-21f4-bdd1931936bf@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <9f1e7585-1754-afd2-21f4-bdd1931936bf@oracle.com> Message-ID: <65316668-fc7c-e887-52be-2d098d4eb0a2@oracle.com> Hi Brian, Thanks for your comments. I have published another review iteration [1]. Some comments inlined below. On 10/25/19 5:04 PM, Brian Goetz wrote: > Spec in Class.java: > > ?- Various {@code RecordComponent} should be {@link RecordComponent}. we could do that but the current approach is consistent with what we are doing in similar APIs like Class::getDeclaredFields() > ?- Rather than say "if this class was declared as a record in the > source code", instead say "is a record class", since record classes > are a term defined by the JLS. fixed > ?- For isRecord/getRecordComponents, should include "@jls 8.10" link done > > RecordComponent.java: > > ?- Add @jls 8.10 link > ?- "Returns the name of the component represented by this record > component." -> "Returns the name of this record component." and > similar in other methods.? Since RC models a record component, its > clear enough what is meant. done, the javadoc was following the same approach as in java.lang.reflect.Field > ?- For getGenericSignature, there should be a link back to @jls or > @jvms that describes the format of the signature string. done, added @jvms 4.7.9.1 Signatures > ?- Doesn't getAnnotation() need some spec, or an {@inheritDoc}? yep done Thanks, Vicente [1] http://cr.openjdk.java.net/~vromero/records.review/reflection/webrev.01/ From srikanth.adayapalam at oracle.com Mon Oct 28 09:10:35 2019 From: srikanth.adayapalam at oracle.com (Srikanth) Date: Mon, 28 Oct 2019 14:40:35 +0530 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> Message-ID: Hi Vicente, I plan to make one more separate pass over annotation handling later this week, in the mean time, here are several comments. I omitted anything already called out by Maurizio or Jan. HTH, Thanks Srikanth (1) Flags.java: Is there a reason for choosing the flags for RECORD to be 1L<<61, leaving 1<<59 and 1<<60 as holes ?? (2) javadoc for flag RECORD inconsistent with the // comment (one mentions methods the other does not) (3) MemberRecordClassFlags LocalRecordFlags - naming inconsistent; former should be MemberRecordFlags ? (4) com.sun.tools.javac.parser.JavacParser#isRestrictedRecordTypeName appears unused (5) (Ignorable) Field `names' is changed from private to protected because it needs to be referenced in ReplParser I guess. This could have been worked around by reaching to token.name().table.names.record instead. (6) Javac allows a top level record to be static - is this intentional ? Top levels classes may not be. This code compiles: static public record X(int x, int y) { } (7) Local records cannot be explicitly tagged final. (Likewise annotations will be rejected) public class X { ??? public static void main(String [] args) { ??????? final record X(int x, int y) {? // <<-- does not compile ??????? } ??? } } (8) if (isRecordToken() && ??????????? (peekToken(TokenKind.IDENTIFIER, TokenKind.LPAREN) || ???????????? peekToken(TokenKind.IDENTIFIER, TokenKind.LT))) { ??????????? JCModifiers mods = modifiersOpt(); ??????????? dc = token.comment(CommentStyle.JAVADOC); ??????????? return List.of(recordDeclaration(mods, dc)); ??????? } The call to modifiersOpt - is this misplaced ? We have already seen `record' and the peek is signalling an IDENTIFIER ?? (The default is moved out of the switch - it took me a while to recognize that the semantics are unaffected. So this appears fine) (9) I was surprised to see the emission of Errors.RecordCantBeAbstract in com.sun.tools.javac.parser.JavacParser#recordDeclaration. I would have expected this check inside com.sun.tools.javac.comp.Check#checkFlags See that this latter place is where abstract enums are complained against. (10) List defs = List.nil(); inside JavacParser#recordDeclaration is a redundant initialization. (11) Likewise I was surprised to see Errors.RecordCantDeclareDuplicateFields being emitted in com.sun.tools.javac.parser.JavacParser#recordDeclaration. I would have expected this to be emitted in com.sun.tools.javac.comp.Check#checkUnique (12) Compact constructor trees are modified in in com.sun.tools.javac.parser.JavacParser#recordDeclaration to become elaborated tree - I thought this practice of modifying parse trees in the early stages is frowned upon ?? (Other parse tree transformations also happen here) (13) com.sun.tools.javac.parser.JavacParser#formalParameter() is unused ?? (14) Check.java: Seems import java.util.stream.Collectors; is unused (15) Symbol.java: several unused imports seem to have crept in. import com.sun.tools.javac.util.Name; import com.sun.tools.javac.code.MissingInfoHandler; import com.sun.tools.javac.code.Symbol; import static com.sun.tools.javac.code.Symbol.OperatorSymbol.AccessCode.FIRSTASGOP; import com.sun.tools.javac.code.Type; (16) The various isXXX methods differ in how they access the flags_field. Some use flags() while others use flags_field. I think it is better to use flags() as it will trigger completion (as it should ??) In any case the difference seems gratuitous (17) Does com.sun.tools.javac.code.Symbol.MethodSymbol#isDynamic serve a purpose - seems to be identical to super implementation ?? (18) Attr: Errors.MethodMustBePublic emission code could use the new Symbol.isPublic() (100 lines below we do use the new method) (19) Attr.isUnchecked() the new methods are mirror images of the Check.isUnchecked methods ? Is there a reason for the duplication ?? (20) Javadoc of com.sun.tools.javac.comp.Attr#checkFirstConstructorStat does not document all parameters (21) I didn't quite understand what we do this in MemberEnter for: ??? else if (v.owner.kind == MTH || (v.flags_field & (Flags.PRIVATE | Flags.FINAL | Flags.MANDATED | Flags.RECORD)) != 0) { ??????????? enclScope.enter(v); ??????? } On 21/10/19 6:01 PM, Vicente Romero wrote: > Hi, > > Please review the compiler code for JEP 359 (Records) [1] > > Thanks in advance for the feedback, > Vicente > > [1] > http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ From srikanth.adayapalam at oracle.com Mon Oct 28 12:04:36 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Mon, 28 Oct 2019 12:04:36 +0000 Subject: hg: amber/amber: 8233067: [local-methods] Source coordinates set incorrectly for local generic/void methods Message-ID: <201910281204.x9SC4aDS016829@aojmv0008.oracle.com> Changeset: ef0e9ad164da Author: sadayapalam Date: 2019-10-28 17:34 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/ef0e9ad164da 8233067: [local-methods] Source coordinates set incorrectly for local generic/void methods ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! test/langtools/tools/javac/localmethods/NameClashTest.out ! test/langtools/tools/javac/localmethods/NoAbstractLocalMethodTest2.out From vicente.romero at oracle.com Mon Oct 28 21:37:33 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Mon, 28 Oct 2019 17:37:33 -0400 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> Message-ID: <067e32b4-4d07-73f2-73d6-21a57c70c420@oracle.com> Hi Maurizio, Thanks for the comments On 10/27/19 6:09 PM, Maurizio Cimadamore wrote: > > Hi Vicente, looks a lot better, thanks. > > Some comments: > > Attr.java - Errors.FirstStatementMustBeCallToCanonical - not sure > about this message , but in general, all we require is that a > constructor delegates to another constructor - it can also be > something other than the canonical - e.g contsructor1 -> constructor2 > -> canonical > this is what the current spec for records mandates: 8.10.4 Record Constructor Declarations ... "If a record type R declares constructors other the canonical constructor, then they must satisfy both of the following: The constructor body must start with an explicit constructor invocation of the canonical constructor for the record type R." > Attr.java - the above situation seems to also affect some other code > in Attr - where you actually check that the invoked constructor in > 'this' has same signature of the canonical constructor. I think these > checks should be removed - the important thing is that the canonical > will be called _somehow_ - but can also be call indirectly - at least > this was my understanding > ditto > Attr.java - not sure about the tree.sym.isRecord in the visitMethod - > it seems like the same flag is used for both record (class) and > canonical constructor? I'm ok with sharing the flag, but the method > name looks a bit confusing when applied to a method symbol. I suggest > putting 'isRecord' inside ClassSymbol, and > 'isCanonicalRecordConstructor' on MethodSymbol, so that client code > cannot make mistakes. > I can do that if you are pretty strong about this but if we go for it those methods you are proposing will be almost useless as it is more straight forward to just do a bitwise and with the flag rather than having to cast symbols to have access to the particular flavor of the method, worst than that we would have to check if the owner of a method is actually a class before doing the cast, in preparation of local methods. What about renaming the method to: hasRecordFlagSet or similar. Or I can just remove the method and do the old faithful bitwise. > Attr.java/TypeEnter.java - overall, the checks here look nice, and > they 'blend' in with existing code nicely, I think. Well done! > cool, after shaking the box and all the pieces found their place! :) > Enter.java - I guess my question here on records and treatment with > STATIC is a general question as to why isn't the code doing the same > thing for records and enums - aren't the rules similar? (e.g. enums > must be static, etc)? Enums are not set STATIC by default in javac > parser, and that is, I think the difference here. What pushed you in > this direction? > I have updated the code to do the same we do for enums, I just found my approach simpler, but it is true that is less consistent > TypeEnter.java: I suggest renaming "getCanonicalInitDecl" to > "getCanonicalConstructorDecl" > > TypeEnter.java - it seems like the result of getCanonicalInitDecl is > always given the RECORD flag - but later on (in Lower) I saw a comment > which says that only auto-generated symbols have the RECORD flag set. > Which one is it? > the comment in Lower refers to accessors only, I will document all the cases that uses the RECORD flag, as we are running low of flags entry I have reused this one for several different uses but you have a point that it could be tricky to understand when it is used and why > TypeEnter.java - I think the isUnchecked methods are a leftover from > previous code - now they seem to be in Attr.java (btw, I think we must > have those checks somewhere else in javac, look in Check::isUnchecked) > yep I removed them from both, there was a spec change now neither accessors nor canonical constructor can have a throws clause > > Names.java - I think this bunch of fields is also no longer used? > > + public final Name where; > + public final Name non; > + public final Name ofLazyProjection; > + > > yep thanks, removed > I have not checked the j.l.m API. > > Thanks > Maurizio > Thanks, Vicente PS, I will be sending a new iteration soon > > > > On 26/10/2019 21:14, Vicente Romero wrote: >> I forgot to mention that I have added javax.lang.model code to this >> iteration that wasn't part of the first iteration. I was planning to >> publish it as part of a different review but I realized that there >> was some code affected, tests, API implementation etc, which belonged >> to the compiler code. So I added that code in this iteration, >> >> Thanks, >> Vicente >> >> On 10/26/19 3:55 PM, Vicente Romero wrote: >>> Hi Maurizio, >>> >>> Thanks again for the comments I have published another iteration at >>> [1]. I focused on this iteration more on the implemenation than on >>> the tests to first have an agreement on the implementation, timing, >>> etc. Some comments inlined below. >>> >>> [1] >>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.01/ >>> >>> On 10/21/19 2:01 PM, Maurizio Cimadamore wrote: >>>> >>>> Hi Vicente, >>>> I did a pretty thorough pass on most of the code. I didn't look at >>>> tests, and I also didn't look at Lower. Comments below: >>>> >>>> * Flags.java - VARARGS flag for records components; I wonder, >>>> instead of a new flag, can we use the internal VARARGS flag we have >>>> for methods, and attach that to the record symbol? That should also >>>> lead to more direct code in TypeHelper >>>> >>> removed >>> >>>> * Symbol.java - I think the override for 'erasure' is redundant - >>>> isn't that the impl from supertype? >>>> >>> yep, removed too >>> >>>> * Symbol.java - I wonder if accessor list with Pair >>>> isn't a premature generalization; we should just add a getter >>>> symbol and that's it >>> >>> agreed, done >>> >>>> * Attr.java - I think we might want to leave the door open for a >>>> check which forces all constructors of a record to go through the >>>> canonical one (depending on where the spec lands) >>>> >>> implemented in this iteration >>> >>>> * Check.java - understanding checkpoint: when we see an annotation >>>> on a record component, first we check it's one of the kinds which >>>> are allowed (if not, error), and, if it's allowed, we add all >>>> record component annotations to record component elements, and we >>>> also filter away all annotations that have nothing to do with the >>>> element in which they appear. If my understanding is correct, I >>>> think this logic should be documented more clearly; I found the >>>> comment after the "if (isRecordField)" to be a bit obscure. >>>> >>> yes that's the idea, annotations that are originally applied to >>> record components are pushed down to all generated elements in >>> TypeEnter, and then in Check the ones that are off-site are removed >>>> >>>> * Enter.java - why are you removing the static flag on records? I >>>> don't see anything similar around for enums. >>>> >>> >>> the static flag is added to all records but if the record is a top >>> level class, it is not needed, that's why that code is there >>> >>>> * Flow.java - not sure I get the changes to checkInit; typically >>>> checkInit is called at the use-site of DA/DU variables. Here it >>>> seems you suppress some of the errors emitted for accessing record >>>> fields inside the canonical constructor - but I hope that code like >>>> this >>>> >>>> record Foo(int x) { >>>> ?? Foo(int x) { >>>> ?????? print(this.x); >>>> ?? } >>>> } >>>> >>>> Still give errors? >>>> >>> >>> yes it gives an error >>>> >>>> If this works correctly, which errors does the 'guard' around the >>>> error generation is supposed to protect against? >>>> >>> >>> checkInit it not used only for what you mentioned above but also, >>> see AssignAnalyzer::visitMethodDef, to check if an initial >>> constructor, as the canonical constructor is in records, have >>> initialized all the fields. The guard is there to don't issue an >>> error if a canonical constructor hasn't initialized some fields, as >>> the compiler will generate code to initialize those fields later in >>> Lower >>>> >>>> * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only >>>> used here... >>>> >>> removed >>>> >>>> * TypeEnter.java - implicit super calls are added in >>>> Attr::visitMethod for regular calls; we should do the same for >>>> records (or add all in TypeEnter - that is records and class should >>>> be consistent) >>>> >>> >>> right we should be consistent, I have moved that code to Attr >>> >>>> * TypeEnter.java - on finishClass - you are calling memberEnter on >>>> record fields, which I think you already did in the new RecordsPhase >>>> >>> >>> nope, what I'm doing there is invoking MemberEnter to enter the >>> members that hasn't been entered so far. Anyway that code changed a >>> bit because I'm entering the constructors now at RecordPhase too but >>> I have changed the code a bit to make more clear what is happening. >>> >>>> * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should deal >>>> with _all_ record members (e.g. including accessors), not just some? >>>> >>> yep changed that too >>>> >>>> * TypeEnter.java - checkForSerializationMember should probably be >>>> moved to MemberEnter::visitVar, or even to Attr (note that the code >>>> for the check is doing a little visit :-)) >>>> >>> moved to Attr >>>> >>>> * TypeEnter.java - again on check timings; while it's ok for the >>>> code in here to add new synthetic members, I think it's less ok to >>>> add more global error checks (such as make sure that the canonical >>>> declaration whose parameter names match the record components in >>>> order); these should live in Attr. More generally, I think that we >>>> should only check stuff here if we think that the check will add >>>> any value to annotation processing. Every other check can be >>>> deferred, and take place in a more 'deterministic' part of javac. >>>> >>> >>> moved to Attr >>> >>>> * TypeEnter.java - I think finishClass should be a bit better at >>>> determining as to whether default constructor is needed or not - >>>> for instance, this check: >>>> >>>> if ((sym.flags() & INTERFACE) == 0 && >>>> 928 !TreeInfo.hasConstructors(tree.defs)) { >>>> >>>> Should be generalized to something that works for both classes and >>>> records; for classes you need to check if there's no other >>>> constructor; for records you need to check if there's no other >>>> constructor _with same signature_ as the canonical one. Then you >>>> can simplify addRecordMembers and remove the dependency on the >>>> boolean 'generatedConstructor' parameter. In other words the code >>>> should: >>>> >>>> 1) check if default/canonical constructor generation is required >>>> 2) if so, use the appropriate helper to generate the code >>>> 3) at the end, add the remaining record members (under the >>>> assumption that the canonical constructor has already been added in >>>> (1), if that was missing) >>>> >>> >>> done, in order to do that I had to enter constructors at the >>> RecordPhase, as mentioned earlier. >>>> >>>> *TypeEnter.java - addAccessor can be simplified if we only worry >>>> about getters. Again, the checks in here feel more Attr check than >>>> MemberEnter checks. >>>> >>> agreed, done >>> >>>> *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we >>>> create a tree for a member, and then we visit the member tree with >>>> memberEnter, just to add it to the scope. I understand that, >>>> currently addEnumMembers does the same, but this looks very >>>> roundabout; I wonder if there's a way to make all this process a >>>> bit simpler - create a symbol and add that to the scope. Or are >>>> there important checks in MemberEnter that we would lose? >>>> >>> >>> yes there are several checks we would lose, plus we would lose >>> consistency, but I tried to do that and several things fell apart, >>> we need to enter not only the generated method, also it's parameters >>> etc, which is what MemberEnter is doing. >>> >>>> *JCTree.java/TreeMaker.java - I don't think there's any need to >>>> store accessors in the field AST; these are only used from >>>> TypeEnter, and TypeEnter can do whatever it does by looking at >>>> which record components there are in the record class, and add a >>>> getter for each. Let's make the code simpler and more direct >>>> >>> yep removed >>>> >>>> * ClassReader.java - should we just silently ignore record >>>> attributes when not in preview mode - or should we issue classfile >>>> errors? >>>> >>>> * ClassReader.java - what kind of validation should we do on record >>>> attributes? Currently javac does nothing. Should we check that we >>>> have (i) getters (ii) toString/hashCode/equals implementations and >>>> (iii) a canonical constructor (ad fail if we don't) ? At the very >>>> least I would add code to _parse_ the attribute, even if we do >>>> nothing with it, so that at least we throw a classfile error if the >>>> attribute is badly broken >>>> >>> on ClassReader, we can discuss what to do in a language meeting, I >>> don't have any strong preference >>>> >>>> * Tokens.java - for "var", "yields" and other context-dependent >>>> keywords we never added a token. We just handled that in >>>> JavacParser. Why the difference here? I think it's best to stick to >>>> current style and maybe fix all of them (assuming that's what we >>>> want to do) in a followup cleanup. Actually, after looking at >>>> parser, it seems like you already handle that manually, so I just >>>> suggest to revert the changed to Tokens >>>> >>> >>> I added the token to add it as a parameter to an error message, but >>> I removed the token and now I'm passing a string >>> >>>> * TreeInfo.java - how is 'isCanonicalConstructor' not returning >>>> 'true' for all constructors inside a record, as opposed to only >>>> return true for the canonical one? >>>> >>> I have added a comment to clarify what this method is doing >>>> >>>> * TreeInfo.java - There is some code reuse possible between >>>> "recordFieldTypes" and "recordFields" >>>> >>> yep done >>>> >>>> * Names.java - what is 'oldEquals' ? >>>> >>> removed, old code >>>> >>>> * JavacParser.java - timing of checks; I don't think we should >>>> check for illegal record component names in here >>>> >>> removed from there >>>> >>>> * JavacParser.java - code can be simplified somewhat by getting rid >>>> of accessors in VarDef AST. >>>> >>> >>> done >>> >>> Thanks again for taking the time to do this long review, will answer >>> the other mails separately >>> >>> Vicente >>>> >>>> >>>> >>>> >>>> On 21/10/2019 13:31, Vicente Romero wrote: >>>>> Hi, >>>>> >>>>> Please review the compiler code for JEP 359 (Records) [1] >>>>> >>>>> Thanks in advance for the feedback, >>>>> Vicente >>>>> >>>>> [1] >>>>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ >>>>> >>> >> From vicente.romero at oracle.com Mon Oct 28 22:38:37 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Mon, 28 Oct 2019 22:38:37 +0000 Subject: hg: amber/amber: 2 new changesets Message-ID: <201910282238.x9SMcbSk004207@aojmv0008.oracle.com> Changeset: 46c9b185469e Author: vromero Date: 2019-10-28 14:56 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/46c9b185469e implementing spec change, can not have a throws clause in accessors or canonical constructors ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties + test/langtools/tools/javac/diags/examples/AccessorCantThrowException.java - test/langtools/tools/javac/diags/examples/MethodCantThrowCheckedException.java ! test/langtools/tools/javac/records/RecordCompilationTests.java Changeset: 1353a06fdba8 Author: vromero Date: 2019-10-28 18:24 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/1353a06fdba8 addresing review comments ! 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/Enter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.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.compiler/share/classes/com/sun/tools/javac/util/Names.java - test/langtools/tools/javac/diags/examples/RecordFieldsMustBeInHeader.java + test/langtools/tools/javac/diags/examples/RecordsCanNotDeclareInstanceFields.java ! test/langtools/tools/javac/records/BadRecord.out ! test/langtools/tools/javac/records/RecordCompilationTests.java From vicente.romero at oracle.com Mon Oct 28 22:48:19 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Mon, 28 Oct 2019 18:48:19 -0400 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <415e23ea-8414-5964-3d5a-66a7e33cb8e8@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <415e23ea-8414-5964-3d5a-66a7e33cb8e8@oracle.com> Message-ID: <1ae03b10-ec1d-4714-264b-138209e3bdc3@oracle.com> Hi Maurizio, I have uploaded another iteration [1], some comments inlined below. On 10/27/19 6:33 PM, Maurizio Cimadamore wrote: > > Also some comments on error messages (some feedback from Alex/Jon > would also be appreciated here; error messages are also crucial to > convey important bits of the programming model, so I think we should > try to get them right): > > +compiler.err.record.cant.declare.duplicate.fields=\ > + records cannot declare components with the same name > + > > I think this should be less record specific - it's just a duplicate > declaration - so we should issue same error as with method/field > duplicate decl? not sure what to do here, there are several error messages about duplicated elements that are also pretty specific, see for modules, annotations etc. > > compiler.err.record.cant.declare.field.modifiers=\ > + record components can not have modifiers > "can not" -> "cannot" done > > +compiler.err.record.fields.must.be.in.header=\ > + instance fields in a record must be declared in the header > Should it say that fields should be in the header, or should it say > that a record cannot declare fields? yep fixed > > Invalid field declaration in record > (consider replacing field with record component) > > Or something like that. > > +compiler.err.canonical.constructor.must.be.public=\ > + canonical constructor must be public > I think I'd prefer to qualify "canonical _record_ constructor" done > + > +compiler.err.canonical.with.name.mismatch=\ > + constructor with same signature as canonical does not match by > parameter names > This is a tricky one. Perhaps let's try to simplify: > > "Invalid parameter names in record constructor" > (parameter names must match the names of the declared record components) done > > Or something similar. > > +compiler.err.accessor.return.type.doesnt.match=\ > + type returned by the accessor is not the same as the type of the > corresponding record component\n\ > + required: {0}\n\ > + found: {1}\n\ > + > > Again, maybe this can be simpler: > > "Unexpected type in record accessor > + required: {0}\n\ > + found: {1}\n\ > " > yep agreed > +compiler.err.illegal.record.component.name=\ > + record {0}, declares an illegal record component name: {1} > > > Better to flip the sentence around? > > Illegal record component name {1} > (record components cannot have same name as Object methods, ...) > > Maybe the first line could be enough, but if we could list the names > that are 'reserved' that could be good too, assuming we can find a > nice way to do that)\\ > I would say lets let only the first part: "Illegal record component name {1}" because there are other serialization related methods and fields that cant be used as component names. Listing all the possible sources would be muddy business I think. > +compiler.err.invalid.supertype.record=\ > + no class can explicitly extend java.lang.Record > > -> "Cannot extend j.l.Record" > done > > > +compiler.err.canonical.cant.have.return.statement=\ > + canonical constructor can not have return statements > > "can not" -> "cannot" > fixed > > > Maurizio > Thanks, Vicente [1] http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.02/ > On 27/10/2019 22:09, Maurizio Cimadamore wrote: >> >> Hi Vicente, looks a lot better, thanks. >> >> Some comments: >> >> Attr.java - Errors.FirstStatementMustBeCallToCanonical - not sure >> about this message , but in general, all we require is that a >> constructor delegates to another constructor - it can also be >> something other than the canonical - e.g contsructor1 -> constructor2 >> -> canonical >> >> Attr.java - the above situation seems to also affect some other code >> in Attr - where you actually check that the invoked constructor in >> 'this' has same signature of the canonical constructor. I think these >> checks should be removed - the important thing is that the canonical >> will be called _somehow_ - but can also be call indirectly - at least >> this was my understanding >> >> Attr.java - not sure about the tree.sym.isRecord in the visitMethod - >> it seems like the same flag is used for both record (class) and >> canonical constructor? I'm ok with sharing the flag, but the method >> name looks a bit confusing when applied to a method symbol. I suggest >> putting 'isRecord' inside ClassSymbol, and >> 'isCanonicalRecordConstructor' on MethodSymbol, so that client code >> cannot make mistakes. >> >> Attr.java/TypeEnter.java - overall, the checks here look nice, and >> they 'blend' in with existing code nicely, I think. Well done! >> >> Enter.java - I guess my question here on records and treatment with >> STATIC is a general question as to why isn't the code doing the same >> thing for records and enums - aren't the rules similar? (e.g. enums >> must be static, etc)? Enums are not set STATIC by default in javac >> parser, and that is, I think the difference here. What pushed you in >> this direction? >> >> TypeEnter.java: I suggest renaming "getCanonicalInitDecl" to >> "getCanonicalConstructorDecl" >> >> TypeEnter.java - it seems like the result of getCanonicalInitDecl is >> always given the RECORD flag - but later on (in Lower) I saw a >> comment which says that only auto-generated symbols have the RECORD >> flag set. Which one is it? >> >> TypeEnter.java - I think the isUnchecked methods are a leftover from >> previous code - now they seem to be in Attr.java (btw, I think we >> must have those checks somewhere else in javac, look in >> Check::isUnchecked) >> >> Names.java - I think this bunch of fields is also no longer used? >> >> + public final Name where; >> + public final Name non; >> + public final Name ofLazyProjection; >> + >> >> >> I have not checked the j.l.m API. >> >> Thanks >> Maurizio >> >> >> >> >> On 26/10/2019 21:14, Vicente Romero wrote: >>> I forgot to mention that I have added javax.lang.model code to this >>> iteration that wasn't part of the first iteration. I was planning to >>> publish it as part of a different review but I realized that there >>> was some code affected, tests, API implementation etc, which >>> belonged to the compiler code. So I added that code in this iteration, >>> >>> Thanks, >>> Vicente >>> >>> On 10/26/19 3:55 PM, Vicente Romero wrote: >>>> Hi Maurizio, >>>> >>>> Thanks again for the comments I have published another iteration at >>>> [1]. I focused on this iteration more on the implemenation than on >>>> the tests to first have an agreement on the implementation, timing, >>>> etc. Some comments inlined below. >>>> >>>> [1] >>>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.01/ >>>> >>>> On 10/21/19 2:01 PM, Maurizio Cimadamore wrote: >>>>> >>>>> Hi Vicente, >>>>> I did a pretty thorough pass on most of the code. I didn't look at >>>>> tests, and I also didn't look at Lower. Comments below: >>>>> >>>>> * Flags.java - VARARGS flag for records components; I wonder, >>>>> instead of a new flag, can we use the internal VARARGS flag we >>>>> have for methods, and attach that to the record symbol? That >>>>> should also lead to more direct code in TypeHelper >>>>> >>>> removed >>>> >>>>> * Symbol.java - I think the override for 'erasure' is redundant - >>>>> isn't that the impl from supertype? >>>>> >>>> yep, removed too >>>> >>>>> * Symbol.java - I wonder if accessor list with Pair >>>>> isn't a premature generalization; we should just add a getter >>>>> symbol and that's it >>>> >>>> agreed, done >>>> >>>>> * Attr.java - I think we might want to leave the door open for a >>>>> check which forces all constructors of a record to go through the >>>>> canonical one (depending on where the spec lands) >>>>> >>>> implemented in this iteration >>>> >>>>> * Check.java - understanding checkpoint: when we see an annotation >>>>> on a record component, first we check it's one of the kinds which >>>>> are allowed (if not, error), and, if it's allowed, we add all >>>>> record component annotations to record component elements, and we >>>>> also filter away all annotations that have nothing to do with the >>>>> element in which they appear. If my understanding is correct, I >>>>> think this logic should be documented more clearly; I found the >>>>> comment after the "if (isRecordField)" to be a bit obscure. >>>>> >>>> yes that's the idea, annotations that are originally applied to >>>> record components are pushed down to all generated elements in >>>> TypeEnter, and then in Check the ones that are off-site are removed >>>>> >>>>> * Enter.java - why are you removing the static flag on records? I >>>>> don't see anything similar around for enums. >>>>> >>>> >>>> the static flag is added to all records but if the record is a top >>>> level class, it is not needed, that's why that code is there >>>> >>>>> * Flow.java - not sure I get the changes to checkInit; typically >>>>> checkInit is called at the use-site of DA/DU variables. Here it >>>>> seems you suppress some of the errors emitted for accessing record >>>>> fields inside the canonical constructor - but I hope that code >>>>> like this >>>>> >>>>> record Foo(int x) { >>>>> ?? Foo(int x) { >>>>> ?????? print(this.x); >>>>> ?? } >>>>> } >>>>> >>>>> Still give errors? >>>>> >>>> >>>> yes it gives an error >>>>> >>>>> If this works correctly, which errors does the 'guard' around the >>>>> error generation is supposed to protect against? >>>>> >>>> >>>> checkInit it not used only for what you mentioned above but also, >>>> see AssignAnalyzer::visitMethodDef, to check if an initial >>>> constructor, as the canonical constructor is in records, have >>>> initialized all the fields. The guard is there to don't issue an >>>> error if a canonical constructor hasn't initialized some fields, as >>>> the compiler will generate code to initialize those fields later in >>>> Lower >>>>> >>>>> * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only >>>>> used here... >>>>> >>>> removed >>>>> >>>>> * TypeEnter.java - implicit super calls are added in >>>>> Attr::visitMethod for regular calls; we should do the same for >>>>> records (or add all in TypeEnter - that is records and class >>>>> should be consistent) >>>>> >>>> >>>> right we should be consistent, I have moved that code to Attr >>>> >>>>> * TypeEnter.java - on finishClass - you are calling memberEnter on >>>>> record fields, which I think you already did in the new RecordsPhase >>>>> >>>> >>>> nope, what I'm doing there is invoking MemberEnter to enter the >>>> members that hasn't been entered so far. Anyway that code changed a >>>> bit because I'm entering the constructors now at RecordPhase too >>>> but I have changed the code a bit to make more clear what is happening. >>>> >>>>> * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should >>>>> deal with _all_ record members (e.g. including accessors), not >>>>> just some? >>>>> >>>> yep changed that too >>>>> >>>>> * TypeEnter.java - checkForSerializationMember should probably be >>>>> moved to MemberEnter::visitVar, or even to Attr (note that the >>>>> code for the check is doing a little visit :-)) >>>>> >>>> moved to Attr >>>>> >>>>> * TypeEnter.java - again on check timings; while it's ok for the >>>>> code in here to add new synthetic members, I think it's less ok to >>>>> add more global error checks (such as make sure that the canonical >>>>> declaration whose parameter names match the record components in >>>>> order); these should live in Attr. More generally, I think that we >>>>> should only check stuff here if we think that the check will add >>>>> any value to annotation processing. Every other check can be >>>>> deferred, and take place in a more 'deterministic' part of javac. >>>>> >>>> >>>> moved to Attr >>>> >>>>> * TypeEnter.java - I think finishClass should be a bit better at >>>>> determining as to whether default constructor is needed or not - >>>>> for instance, this check: >>>>> >>>>> if ((sym.flags() & INTERFACE) == 0 && >>>>> 928 !TreeInfo.hasConstructors(tree.defs)) { >>>>> >>>>> Should be generalized to something that works for both classes and >>>>> records; for classes you need to check if there's no other >>>>> constructor; for records you need to check if there's no other >>>>> constructor _with same signature_ as the canonical one. Then you >>>>> can simplify addRecordMembers and remove the dependency on the >>>>> boolean 'generatedConstructor' parameter. In other words the code >>>>> should: >>>>> >>>>> 1) check if default/canonical constructor generation is required >>>>> 2) if so, use the appropriate helper to generate the code >>>>> 3) at the end, add the remaining record members (under the >>>>> assumption that the canonical constructor has already been added >>>>> in (1), if that was missing) >>>>> >>>> >>>> done, in order to do that I had to enter constructors at the >>>> RecordPhase, as mentioned earlier. >>>>> >>>>> *TypeEnter.java - addAccessor can be simplified if we only worry >>>>> about getters. Again, the checks in here feel more Attr check than >>>>> MemberEnter checks. >>>>> >>>> agreed, done >>>> >>>>> *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we >>>>> create a tree for a member, and then we visit the member tree with >>>>> memberEnter, just to add it to the scope. I understand that, >>>>> currently addEnumMembers does the same, but this looks very >>>>> roundabout; I wonder if there's a way to make all this process a >>>>> bit simpler - create a symbol and add that to the scope. Or are >>>>> there important checks in MemberEnter that we would lose? >>>>> >>>> >>>> yes there are several checks we would lose, plus we would lose >>>> consistency, but I tried to do that and several things fell apart, >>>> we need to enter not only the generated method, also it's >>>> parameters etc, which is what MemberEnter is doing. >>>> >>>>> *JCTree.java/TreeMaker.java - I don't think there's any need to >>>>> store accessors in the field AST; these are only used from >>>>> TypeEnter, and TypeEnter can do whatever it does by looking at >>>>> which record components there are in the record class, and add a >>>>> getter for each. Let's make the code simpler and more direct >>>>> >>>> yep removed >>>>> >>>>> * ClassReader.java - should we just silently ignore record >>>>> attributes when not in preview mode - or should we issue classfile >>>>> errors? >>>>> >>>>> * ClassReader.java - what kind of validation should we do on >>>>> record attributes? Currently javac does nothing. Should we check >>>>> that we have (i) getters (ii) toString/hashCode/equals >>>>> implementations and (iii) a canonical constructor (ad fail if we >>>>> don't) ? At the very least I would add code to _parse_ the >>>>> attribute, even if we do nothing with it, so that at least we >>>>> throw a classfile error if the attribute is badly broken >>>>> >>>> on ClassReader, we can discuss what to do in a language meeting, I >>>> don't have any strong preference >>>>> >>>>> * Tokens.java - for "var", "yields" and other context-dependent >>>>> keywords we never added a token. We just handled that in >>>>> JavacParser. Why the difference here? I think it's best to stick >>>>> to current style and maybe fix all of them (assuming that's what >>>>> we want to do) in a followup cleanup. Actually, after looking at >>>>> parser, it seems like you already handle that manually, so I just >>>>> suggest to revert the changed to Tokens >>>>> >>>> >>>> I added the token to add it as a parameter to an error message, but >>>> I removed the token and now I'm passing a string >>>> >>>>> * TreeInfo.java - how is 'isCanonicalConstructor' not returning >>>>> 'true' for all constructors inside a record, as opposed to only >>>>> return true for the canonical one? >>>>> >>>> I have added a comment to clarify what this method is doing >>>>> >>>>> * TreeInfo.java - There is some code reuse possible between >>>>> "recordFieldTypes" and "recordFields" >>>>> >>>> yep done >>>>> >>>>> * Names.java - what is 'oldEquals' ? >>>>> >>>> removed, old code >>>>> >>>>> * JavacParser.java - timing of checks; I don't think we should >>>>> check for illegal record component names in here >>>>> >>>> removed from there >>>>> >>>>> * JavacParser.java - code can be simplified somewhat by getting >>>>> rid of accessors in VarDef AST. >>>>> >>>> >>>> done >>>> >>>> Thanks again for taking the time to do this long review, will >>>> answer the other mails separately >>>> >>>> Vicente >>>>> >>>>> >>>>> >>>>> >>>>> On 21/10/2019 13:31, Vicente Romero wrote: >>>>>> Hi, >>>>>> >>>>>> Please review the compiler code for JEP 359 (Records) [1] >>>>>> >>>>>> Thanks in advance for the feedback, >>>>>> Vicente >>>>>> >>>>>> [1] >>>>>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ >>>>>> >>>> >>> From chris.hegarty at oracle.com Tue Oct 29 09:54:22 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Tue, 29 Oct 2019 09:54:22 +0000 Subject: hg: amber/amber: records: less severe doc warning for non-essential preview APIs; as per JEP 12 Message-ID: <201910290954.x9T9sMvE012150@aojmv0008.oracle.com> Changeset: 534781ef8377 Author: chegar Date: 2019-10-29 09:53 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/534781ef8377 records: less severe doc warning for non-essential preview APIs; as per JEP 12 ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/classes/java/lang/reflect/RecordComponent.java ! src/java.base/share/classes/java/lang/runtime/ObjectMethods.java ! src/java.compiler/share/classes/javax/lang/model/element/ElementKind.java ! src/java.compiler/share/classes/javax/lang/model/element/ElementVisitor.java ! src/java.compiler/share/classes/javax/lang/model/element/RecordComponentElement.java ! src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java ! src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementFilter.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor14.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor6.java ! src/java.compiler/share/classes/javax/lang/model/util/ElementScanner14.java ! src/java.compiler/share/classes/javax/lang/model/util/Elements.java ! src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor14.java From chris.hegarty at oracle.com Tue Oct 29 10:00:21 2019 From: chris.hegarty at oracle.com (chris.hegarty at oracle.com) Date: Tue, 29 Oct 2019 10:00:21 +0000 Subject: hg: amber/amber: records: update incorrect import on failing ObjectMethodsTest Message-ID: <201910291000.x9TA0M7I014898@aojmv0008.oracle.com> Changeset: bd59e7022d90 Author: chegar Date: 2019-10-29 10:00 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/bd59e7022d90 records: update incorrect import on failing ObjectMethodsTest ! test/jdk/java/lang/runtime/ObjectMethodsTest.java From harold.seigel at oracle.com Tue Oct 29 13:45:31 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Tue, 29 Oct 2019 13:45:31 +0000 Subject: hg: amber/amber: Summary: Move RecordComponent::collect_statistics() to .cpp file and fix #includes. Message-ID: <201910291345.x9TDjWRZ019875@aojmv0008.oracle.com> Changeset: 367756dce66a Author: hseigel Date: 2019-10-29 13:45 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/367756dce66a Summary: Move RecordComponent::collect_statistics() to .cpp file and fix #includes. Reviewed-by: coleenp ! src/hotspot/share/oops/recordComponent.cpp ! src/hotspot/share/oops/recordComponent.hpp From chris.hegarty at oracle.com Tue Oct 29 13:49:58 2019 From: chris.hegarty at oracle.com (Chris Hegarty) Date: Tue, 29 Oct 2019 13:49:58 +0000 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> Message-ID: <3E0419C6-8EB5-4988-AC6C-D35B2A3BA6E0@oracle.com> > On 21 Oct 2019, at 22:10, Vicente Romero wrote: > > ... > [1] http://cr.openjdk.java.net/~vromero/records.review/reflection/webrev.00/ java.lang.reflect.RecordComponent 1) The `toGenericString` method is specified to include the access modifiers of the ?record component, always private and final?. Well, clearly these modifiers are related to the field that backs the record component. Is this class modelling the record components ( as in the record descriptor ), or the private final fields that back those components? If the former, then maybe the access modifiers should be dropped from the string representation. 2) I think that `RecordComponent::toString` should be added and specified ( in a similar way to that of Field or Method, without the generic type information ) -Chris. P.S. I?m happy to push changes for the above, once there is agreement. From harold.seigel at oracle.com Tue Oct 29 17:00:07 2019 From: harold.seigel at oracle.com (harold.seigel at oracle.com) Date: Tue, 29 Oct 2019 17:00:07 +0000 Subject: hg: amber/amber: Summary: remove #includes of recordComponents.hpp from header files Message-ID: <201910291700.x9TH08Dn013167@aojmv0008.oracle.com> Changeset: 049192253b05 Author: hseigel Date: 2019-10-29 16:59 +0000 URL: https://hg.openjdk.java.net/amber/amber/rev/049192253b05 Summary: remove #includes of recordComponents.hpp from header files ! src/hotspot/share/classfile/classFileParser.cpp ! src/hotspot/share/classfile/classFileParser.hpp ! src/hotspot/share/classfile/javaClasses.hpp ! src/hotspot/share/oops/instanceKlass.cpp ! src/hotspot/share/oops/instanceKlass.hpp From vicente.romero at oracle.com Tue Oct 29 18:40:50 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Tue, 29 Oct 2019 18:40:50 +0000 Subject: hg: amber/amber: fixing bug on annotation processing Message-ID: <201910291840.x9TIepY0017801@aojmv0008.oracle.com> Changeset: 14eaaf5131b1 Author: vromero Date: 2019-10-29 14:40 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/14eaaf5131b1 fixing bug on annotation processing ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java From vicente.romero at oracle.com Tue Oct 29 22:27:31 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Tue, 29 Oct 2019 22:27:31 +0000 Subject: hg: amber/amber: fixing failing tests Message-ID: <201910292227.x9TMRWa3001638@aojmv0008.oracle.com> Changeset: 7f3d81d1b021 Author: vromero Date: 2019-10-29 17:58 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/7f3d81d1b021 fixing failing tests ! test/langtools/tools/javac/annotations/repeatingAnnotations/NoTargetOnContainer.java ! test/langtools/tools/javac/annotations/repeatingAnnotations/NoTargetOnContainer2.java ! test/langtools/tools/javac/options/BCPOrSystemNotSpecified.java ! test/langtools/tools/javac/processing/model/element/TestRecordDesugar.java From joe.darcy at oracle.com Wed Oct 30 01:24:38 2019 From: joe.darcy at oracle.com (Joe Darcy) Date: Tue, 29 Oct 2019 18:24:38 -0700 Subject: RFR: JEP 359-Records: reflection code In-Reply-To: <65316668-fc7c-e887-52be-2d098d4eb0a2@oracle.com> References: <541027a7-171c-f416-3e6b-1dce1c148503@oracle.com> <9f1e7585-1754-afd2-21f4-bdd1931936bf@oracle.com> <65316668-fc7c-e887-52be-2d098d4eb0a2@oracle.com> Message-ID: <48bbd0e4-7b46-f916-5ca9-8ee4d84305e6@oracle.com> Hello, A few comments on the 01 iteration: For Class.isRecord, I suggest explicitly stating that java.lang.Record is *not* a record. It would be reasonable for ElementType to make some reference to the special annotation-handling rules for records. For the equals method operating on floating-point values, Double.compare/Float.compare comparing the result against 0 are likely to do what one wants more so than ==. I see the ObjectMethods implementation already does this. For ObjectMethods, note that void.class is regarded by core reflection as being a primitive class and should likely be treated specially. It seems odd their isn't a better return type than Object for the bootstrap method. Should the invokedynamic and dynamic constant cases be handled by the same method? I recommend some more descriptive parameter names: ??? @param theClass???? the class hosting the components => ??? @param hostClass At least in isolation, I don't think it is clear how the lookup object is used. Cheers, -Joe On 10/27/2019 4:41 PM, Vicente Romero wrote: > Hi Brian, > > Thanks for your comments. I have published another review iteration > [1]. Some comments inlined below. > > On 10/25/19 5:04 PM, Brian Goetz wrote: >> Spec in Class.java: >> >> ?- Various {@code RecordComponent} should be {@link RecordComponent}. > > we could do that but the current approach is consistent with what we > are doing in similar APIs like Class::getDeclaredFields() > >> ?- Rather than say "if this class was declared as a record in the >> source code", instead say "is a record class", since record classes >> are a term defined by the JLS. > fixed >> ?- For isRecord/getRecordComponents, should include "@jls 8.10" link > done >> >> RecordComponent.java: >> >> ?- Add @jls 8.10 link >> ?- "Returns the name of the component represented by this record >> component." -> "Returns the name of this record component." and >> similar in other methods.? Since RC models a record component, its >> clear enough what is meant. > > done, the javadoc was following the same approach as in > java.lang.reflect.Field > >> ?- For getGenericSignature, there should be a link back to @jls or >> @jvms that describes the format of the signature string. > done, added @jvms 4.7.9.1 Signatures > >> ?- Doesn't getAnnotation() need some spec, or an {@inheritDoc}? > > yep done > > Thanks, > Vicente > > [1] > http://cr.openjdk.java.net/~vromero/records.review/reflection/webrev.01/ From maurizio.cimadamore at oracle.com Wed Oct 30 08:55:59 2019 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 30 Oct 2019 08:55:59 +0000 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: <067e32b4-4d07-73f2-73d6-21a57c70c420@oracle.com> References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> <0be9bfc0-70b1-c1f8-5af1-5c88913dbb9d@oracle.com> <067e32b4-4d07-73f2-73d6-21a57c70c420@oracle.com> Message-ID: <59df4663-b46f-f4c2-0746-873d499542db@oracle.com> On 28/10/2019 21:37, Vicente Romero wrote: > Hi Maurizio, > > Thanks for the comments > > On 10/27/19 6:09 PM, Maurizio Cimadamore wrote: >> >> Hi Vicente, looks a lot better, thanks. >> >> Some comments: >> >> Attr.java - Errors.FirstStatementMustBeCallToCanonical - not sure >> about this message , but in general, all we require is that a >> constructor delegates to another constructor - it can also be >> something other than the canonical - e.g contsructor1 -> constructor2 >> -> canonical >> > > this is what the current spec for records mandates: > 8.10.4 Record Constructor Declarations > ... > "If a record type R declares constructors other the canonical > constructor, then they must satisfy both of the > following: > The constructor body must start with an explicit constructor > invocation of the canonical constructor for the > record type R." Then I would argue the spec is overly restrictive? Is it something we can fix? > >> Attr.java - the above situation seems to also affect some other code >> in Attr - where you actually check that the invoked constructor in >> 'this' has same signature of the canonical constructor. I think these >> checks should be removed - the important thing is that the canonical >> will be called _somehow_ - but can also be call indirectly - at least >> this was my understanding >> > > ditto > >> Attr.java - not sure about the tree.sym.isRecord in the visitMethod - >> it seems like the same flag is used for both record (class) and >> canonical constructor? I'm ok with sharing the flag, but the method >> name looks a bit confusing when applied to a method symbol. I suggest >> putting 'isRecord' inside ClassSymbol, and >> 'isCanonicalRecordConstructor' on MethodSymbol, so that client code >> cannot make mistakes. >> > > I can do that if you are pretty strong about this but if we go for it > those methods you are proposing will be almost useless as it is more > straight forward to just do a bitwise and with the flag rather than > having to cast symbols to have access to the particular flavor of the > method, worst than that we would have to check if the owner of a > method is actually a class before doing the cast, in preparation of > local methods. What about renaming the method to: hasRecordFlagSet or > similar. Or I can just remove the method and do the old faithful bitwise. I think isRecord() for 'is this a record class' makes sense. But for everything else feels obscure, and perhaps reverting to bitwise is not too bad... > >> Attr.java/TypeEnter.java - overall, the checks here look nice, and >> they 'blend' in with existing code nicely, I think. Well done! >> > > cool, after shaking the box and all the pieces found their place! :) > >> Enter.java - I guess my question here on records and treatment with >> STATIC is a general question as to why isn't the code doing the same >> thing for records and enums - aren't the rules similar? (e.g. enums >> must be static, etc)? Enums are not set STATIC by default in javac >> parser, and that is, I think the difference here. What pushed you in >> this direction? >> > > I have updated the code to do the same we do for enums, I just found > my approach simpler, but it is true that is less consistent thanks - I'm pushing for this because if we ever allow things like local enums, it will be easier if the code has more commonalities with records. > >> TypeEnter.java: I suggest renaming "getCanonicalInitDecl" to >> "getCanonicalConstructorDecl" >> >> TypeEnter.java - it seems like the result of getCanonicalInitDecl is >> always given the RECORD flag - but later on (in Lower) I saw a >> comment which says that only auto-generated symbols have the RECORD >> flag set. Which one is it? >> > > the comment in Lower refers to accessors only, I will document all the > cases that uses the RECORD flag, as we are running low of flags entry > I have reused this one for several different uses but you have a point > that it could be tricky to understand when it is used and why > >> TypeEnter.java - I think the isUnchecked methods are a leftover from >> previous code - now they seem to be in Attr.java (btw, I think we >> must have those checks somewhere else in javac, look in >> Check::isUnchecked) >> > > yep I removed them from both, there was a spec change now neither > accessors nor canonical constructor can have a throws clause ok >> >> Names.java - I think this bunch of fields is also no longer used? >> >> + public final Name where; >> + public final Name non; >> + public final Name ofLazyProjection; >> + >> >> > Maurizio > yep thanks, removed > >> I have not checked the j.l.m API. >> >> Thanks >> Maurizio >> > > Thanks, > Vicente > > PS, I will be sending a new iteration soon > >> >> >> >> On 26/10/2019 21:14, Vicente Romero wrote: >>> I forgot to mention that I have added javax.lang.model code to this >>> iteration that wasn't part of the first iteration. I was planning to >>> publish it as part of a different review but I realized that there >>> was some code affected, tests, API implementation etc, which >>> belonged to the compiler code. So I added that code in this iteration, >>> >>> Thanks, >>> Vicente >>> >>> On 10/26/19 3:55 PM, Vicente Romero wrote: >>>> Hi Maurizio, >>>> >>>> Thanks again for the comments I have published another iteration at >>>> [1]. I focused on this iteration more on the implemenation than on >>>> the tests to first have an agreement on the implementation, timing, >>>> etc. Some comments inlined below. >>>> >>>> [1] >>>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.01/ >>>> >>>> On 10/21/19 2:01 PM, Maurizio Cimadamore wrote: >>>>> >>>>> Hi Vicente, >>>>> I did a pretty thorough pass on most of the code. I didn't look at >>>>> tests, and I also didn't look at Lower. Comments below: >>>>> >>>>> * Flags.java - VARARGS flag for records components; I wonder, >>>>> instead of a new flag, can we use the internal VARARGS flag we >>>>> have for methods, and attach that to the record symbol? That >>>>> should also lead to more direct code in TypeHelper >>>>> >>>> removed >>>> >>>>> * Symbol.java - I think the override for 'erasure' is redundant - >>>>> isn't that the impl from supertype? >>>>> >>>> yep, removed too >>>> >>>>> * Symbol.java - I wonder if accessor list with Pair >>>>> isn't a premature generalization; we should just add a getter >>>>> symbol and that's it >>>> >>>> agreed, done >>>> >>>>> * Attr.java - I think we might want to leave the door open for a >>>>> check which forces all constructors of a record to go through the >>>>> canonical one (depending on where the spec lands) >>>>> >>>> implemented in this iteration >>>> >>>>> * Check.java - understanding checkpoint: when we see an annotation >>>>> on a record component, first we check it's one of the kinds which >>>>> are allowed (if not, error), and, if it's allowed, we add all >>>>> record component annotations to record component elements, and we >>>>> also filter away all annotations that have nothing to do with the >>>>> element in which they appear. If my understanding is correct, I >>>>> think this logic should be documented more clearly; I found the >>>>> comment after the "if (isRecordField)" to be a bit obscure. >>>>> >>>> yes that's the idea, annotations that are originally applied to >>>> record components are pushed down to all generated elements in >>>> TypeEnter, and then in Check the ones that are off-site are removed >>>>> >>>>> * Enter.java - why are you removing the static flag on records? I >>>>> don't see anything similar around for enums. >>>>> >>>> >>>> the static flag is added to all records but if the record is a top >>>> level class, it is not needed, that's why that code is there >>>> >>>>> * Flow.java - not sure I get the changes to checkInit; typically >>>>> checkInit is called at the use-site of DA/DU variables. Here it >>>>> seems you suppress some of the errors emitted for accessing record >>>>> fields inside the canonical constructor - but I hope that code >>>>> like this >>>>> >>>>> record Foo(int x) { >>>>> ?? Foo(int x) { >>>>> ?????? print(this.x); >>>>> ?? } >>>>> } >>>>> >>>>> Still give errors? >>>>> >>>> >>>> yes it gives an error >>>>> >>>>> If this works correctly, which errors does the 'guard' around the >>>>> error generation is supposed to protect against? >>>>> >>>> >>>> checkInit it not used only for what you mentioned above but also, >>>> see AssignAnalyzer::visitMethodDef, to check if an initial >>>> constructor, as the canonical constructor is in records, have >>>> initialized all the fields. The guard is there to don't issue an >>>> error if a canonical constructor hasn't initialized some fields, as >>>> the compiler will generate code to initialize those fields later in >>>> Lower >>>>> >>>>> * MemberEnter.java - why the filter for HYPOTHETICAL ? It's only >>>>> used here... >>>>> >>>> removed >>>>> >>>>> * TypeEnter.java - implicit super calls are added in >>>>> Attr::visitMethod for regular calls; we should do the same for >>>>> records (or add all in TypeEnter - that is records and class >>>>> should be consistent) >>>>> >>>> >>>> right we should be consistent, I have moved that code to Attr >>>> >>>>> * TypeEnter.java - on finishClass - you are calling memberEnter on >>>>> record fields, which I think you already did in the new RecordsPhase >>>>> >>>> >>>> nope, what I'm doing there is invoking MemberEnter to enter the >>>> members that hasn't been entered so far. Anyway that code changed a >>>> bit because I'm entering the constructors now at RecordPhase too >>>> but I have changed the code a bit to make more clear what is happening. >>>> >>>>> * TypeEnter.java - (stylistic) addRecordsMemberIfNeeded should >>>>> deal with _all_ record members (e.g. including accessors), not >>>>> just some? >>>>> >>>> yep changed that too >>>>> >>>>> * TypeEnter.java - checkForSerializationMember should probably be >>>>> moved to MemberEnter::visitVar, or even to Attr (note that the >>>>> code for the check is doing a little visit :-)) >>>>> >>>> moved to Attr >>>>> >>>>> * TypeEnter.java - again on check timings; while it's ok for the >>>>> code in here to add new synthetic members, I think it's less ok to >>>>> add more global error checks (such as make sure that the canonical >>>>> declaration whose parameter names match the record components in >>>>> order); these should live in Attr. More generally, I think that we >>>>> should only check stuff here if we think that the check will add >>>>> any value to annotation processing. Every other check can be >>>>> deferred, and take place in a more 'deterministic' part of javac. >>>>> >>>> >>>> moved to Attr >>>> >>>>> * TypeEnter.java - I think finishClass should be a bit better at >>>>> determining as to whether default constructor is needed or not - >>>>> for instance, this check: >>>>> >>>>> if ((sym.flags() & INTERFACE) == 0 && >>>>> 928 !TreeInfo.hasConstructors(tree.defs)) { >>>>> >>>>> Should be generalized to something that works for both classes and >>>>> records; for classes you need to check if there's no other >>>>> constructor; for records you need to check if there's no other >>>>> constructor _with same signature_ as the canonical one. Then you >>>>> can simplify addRecordMembers and remove the dependency on the >>>>> boolean 'generatedConstructor' parameter. In other words the code >>>>> should: >>>>> >>>>> 1) check if default/canonical constructor generation is required >>>>> 2) if so, use the appropriate helper to generate the code >>>>> 3) at the end, add the remaining record members (under the >>>>> assumption that the canonical constructor has already been added >>>>> in (1), if that was missing) >>>>> >>>> >>>> done, in order to do that I had to enter constructors at the >>>> RecordPhase, as mentioned earlier. >>>>> >>>>> *TypeEnter.java - addAccessor can be simplified if we only worry >>>>> about getters. Again, the checks in here feel more Attr check than >>>>> MemberEnter checks. >>>>> >>>> agreed, done >>>> >>>>> *TypeEnter.java - in addRecordMembersIfNeeded, I don't get why we >>>>> create a tree for a member, and then we visit the member tree with >>>>> memberEnter, just to add it to the scope. I understand that, >>>>> currently addEnumMembers does the same, but this looks very >>>>> roundabout; I wonder if there's a way to make all this process a >>>>> bit simpler - create a symbol and add that to the scope. Or are >>>>> there important checks in MemberEnter that we would lose? >>>>> >>>> >>>> yes there are several checks we would lose, plus we would lose >>>> consistency, but I tried to do that and several things fell apart, >>>> we need to enter not only the generated method, also it's >>>> parameters etc, which is what MemberEnter is doing. >>>> >>>>> *JCTree.java/TreeMaker.java - I don't think there's any need to >>>>> store accessors in the field AST; these are only used from >>>>> TypeEnter, and TypeEnter can do whatever it does by looking at >>>>> which record components there are in the record class, and add a >>>>> getter for each. Let's make the code simpler and more direct >>>>> >>>> yep removed >>>>> >>>>> * ClassReader.java - should we just silently ignore record >>>>> attributes when not in preview mode - or should we issue classfile >>>>> errors? >>>>> >>>>> * ClassReader.java - what kind of validation should we do on >>>>> record attributes? Currently javac does nothing. Should we check >>>>> that we have (i) getters (ii) toString/hashCode/equals >>>>> implementations and (iii) a canonical constructor (ad fail if we >>>>> don't) ? At the very least I would add code to _parse_ the >>>>> attribute, even if we do nothing with it, so that at least we >>>>> throw a classfile error if the attribute is badly broken >>>>> >>>> on ClassReader, we can discuss what to do in a language meeting, I >>>> don't have any strong preference >>>>> >>>>> * Tokens.java - for "var", "yields" and other context-dependent >>>>> keywords we never added a token. We just handled that in >>>>> JavacParser. Why the difference here? I think it's best to stick >>>>> to current style and maybe fix all of them (assuming that's what >>>>> we want to do) in a followup cleanup. Actually, after looking at >>>>> parser, it seems like you already handle that manually, so I just >>>>> suggest to revert the changed to Tokens >>>>> >>>> >>>> I added the token to add it as a parameter to an error message, but >>>> I removed the token and now I'm passing a string >>>> >>>>> * TreeInfo.java - how is 'isCanonicalConstructor' not returning >>>>> 'true' for all constructors inside a record, as opposed to only >>>>> return true for the canonical one? >>>>> >>>> I have added a comment to clarify what this method is doing >>>>> >>>>> * TreeInfo.java - There is some code reuse possible between >>>>> "recordFieldTypes" and "recordFields" >>>>> >>>> yep done >>>>> >>>>> * Names.java - what is 'oldEquals' ? >>>>> >>>> removed, old code >>>>> >>>>> * JavacParser.java - timing of checks; I don't think we should >>>>> check for illegal record component names in here >>>>> >>>> removed from there >>>>> >>>>> * JavacParser.java - code can be simplified somewhat by getting >>>>> rid of accessors in VarDef AST. >>>>> >>>> >>>> done >>>> >>>> Thanks again for taking the time to do this long review, will >>>> answer the other mails separately >>>> >>>> Vicente >>>>> >>>>> >>>>> >>>>> >>>>> On 21/10/2019 13:31, Vicente Romero wrote: >>>>>> Hi, >>>>>> >>>>>> Please review the compiler code for JEP 359 (Records) [1] >>>>>> >>>>>> Thanks in advance for the feedback, >>>>>> Vicente >>>>>> >>>>>> [1] >>>>>> http://cr.openjdk.java.net/~vromero/records.review/compiler/webrev.00/ >>>>>> >>>> >>> > From james.laskey at oracle.com Wed Oct 30 11:10:31 2019 From: james.laskey at oracle.com (james.laskey at oracle.com) Date: Wed, 30 Oct 2019 11:10:31 +0000 Subject: hg: amber/amber: 8233116: Escape Sequences For Line Continuation and White Space (Preview) Message-ID: <201910301110.x9UBAWBL020205@aojmv0008.oracle.com> Changeset: de266f3bd3d7 Author: jlaskey Date: 2019-10-30 08:06 -0300 URL: https://hg.openjdk.java.net/amber/amber/rev/de266f3bd3d7 8233116: Escape Sequences For Line Continuation and White Space (Preview) Reviewed-by: vromero ! make/autoconf/flags-cflags.m4 ! src/java.base/share/classes/java/lang/String.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/UnicodeReader.java ! test/langtools/tools/javac/TextBlockAPI.java ! test/langtools/tools/javac/TextBlockLang.java From srikanth.adayapalam at oracle.com Wed Oct 30 12:21:44 2019 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Wed, 30 Oct 2019 12:21:44 +0000 Subject: hg: amber/amber: 8232849: [local-methods] VerifyError: Local variable table overflow Message-ID: <201910301221.x9UCLi1l029528@aojmv0008.oracle.com> Changeset: 5cb73f6f2c33 Author: sadayapalam Date: 2019-10-30 17:51 +0530 URL: https://hg.openjdk.java.net/amber/amber/rev/5cb73f6f2c33 8232849: [local-methods] VerifyError: Local variable table overflow ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java + test/langtools/tools/javac/localmethods/VisitApplyTest.java From karim.ourrai at gmail.com Wed Oct 30 15:50:01 2019 From: karim.ourrai at gmail.com (Karim Ourrai) Date: Wed, 30 Oct 2019 16:50:01 +0100 Subject: A question about an article appeared in Oracle Blog by the title "Text Blocks Come to Java" Message-ID: <5db9b129.1c69fb81.dacbe.23d1@mx.google.com> Hello everyone. I have a question about an article written by Mala Gupta in the Oracle Blog about "Text Blocks Come to Java" https://blogs.oracle.com/javamagazine/text-blocks-come-to-java In the section Ease of Working with Multiline Values She wrote this A regex usually includes many special characters. When you wrote one as a?String?value prior to Java 13, you needed to escape some of those special characters?making it difficult to write, read, or understand such expressions. Here?s an example, prior to text blocks, which stores the regex?[0-9]{3}\-[0-9]{4}: String java12OrBeforeRegex = "[0-9]{3}\\t-[0-9]{4}"; With text blocks, you can define the same regex as follows: String java13Regex = """ [0-9]{3}\t-[0-9]{4}"""; I couldn?t find anything about this in https://openjdk.java.net/jeps/355 Because in the third section it said ?any?escape sequences?in the content are interpreted.? Wouldn?t that means that java13Regex should be wrtten like this String java13Regex = """ [0-9]{3}\\t-[0-9]{4}"""; Best regards From brian.goetz at oracle.com Wed Oct 30 15:56:43 2019 From: brian.goetz at oracle.com (Brian Goetz) Date: Wed, 30 Oct 2019 11:56:43 -0400 Subject: A question about an article appeared in Oracle Blog by the title "Text Blocks Come to Java" In-Reply-To: <5db9b129.1c69fb81.dacbe.23d1@mx.google.com> References: <5db9b129.1c69fb81.dacbe.23d1@mx.google.com> Message-ID: <149BFFEA-9C67-4BC1-88F7-958795784DA6@oracle.com> I agree, this article seems to be incorrectly conflating text blocks with an earlier _raw strings_ proposal. > On Oct 30, 2019, at 11:50 AM, Karim Ourrai wrote: > > Hello everyone. > I have a question about an article written by Mala Gupta in the Oracle Blog about "Text Blocks Come to Java" > https://blogs.oracle.com/javamagazine/text-blocks-come-to-java > In the section Ease of Working with Multiline Values > She wrote this > A regex usually includes many special characters. When you wrote one as a String value prior to Java 13, you needed to escape some of those special characters?making it difficult to write, read, or understand such expressions. Here?s an example, prior to text blocks, which stores the regex [0-9]{3}\-[0-9]{4}: > String java12OrBeforeRegex = "[0-9]{3}\\t-[0-9]{4}"; > With text blocks, you can define the same regex as follows: > String java13Regex = """ > [0-9]{3}\t-[0-9]{4}"""; > I couldn?t find anything about this in https://openjdk.java.net/jeps/355 > Because in the third section it said > any escape sequences in the content are interpreted. > Wouldn?t that means that java13Regex should be wrtten like this > String java13Regex = """ > [0-9]{3}\\t-[0-9]{4}"""; > > Best regards From vicente.romero at oracle.com Wed Oct 30 18:04:04 2019 From: vicente.romero at oracle.com (vicente.romero at oracle.com) Date: Wed, 30 Oct 2019 18:04:04 +0000 Subject: hg: amber/amber: addressing more review comments Message-ID: <201910301804.x9UI44DE015715@aojmv0008.oracle.com> Changeset: e16eb73b8a60 Author: vromero Date: 2019-10-30 13:58 -0400 URL: https://hg.openjdk.java.net/amber/amber/rev/e16eb73b8a60 addressing more review comments ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.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/MemberEnter.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.jshell/share/classes/jdk/jshell/ReplParser.java - test/langtools/tools/javac/diags/examples/RecordsCanNotBeAbstract.java ! test/langtools/tools/javac/records/RecordCompilationTests.java From vicente.romero at oracle.com Wed Oct 30 18:07:53 2019 From: vicente.romero at oracle.com (Vicente Romero) Date: Wed, 30 Oct 2019 14:07:53 -0400 Subject: RFR: JEP 359-Records: compiler code In-Reply-To: References: <1cfed5da-a0eb-be75-9008-8a0a5666a6f9@oracle.com> Message-ID: Hi Srikanth, Thanks for the review, comments inlined below. On 10/28/19 5:10 AM, Srikanth wrote: > Hi Vicente, > > I plan to make one more separate pass over annotation handling later > this week, in the > mean time, here are several comments. > > I omitted anything already called out by Maurizio or Jan. > > HTH, > Thanks > Srikanth > > > (1) Flags.java: Is there a reason for choosing the flags for RECORD to > be 1L<<61, leaving 1<<59 and 1<<60 as holes ?? no reason, I have covered the gap > > (2) javadoc for flag RECORD inconsistent with the // comment (one > mentions methods the other does not) true, I have fixed that > > (3) MemberRecordClassFlags LocalRecordFlags - naming inconsistent; > former should be MemberRecordFlags ? fixed > > (4) com.sun.tools.javac.parser.JavacParser#isRestrictedRecordTypeName > appears unused removed > > (5) (Ignorable) Field `names' is changed from private to protected > because it needs to be referenced in ReplParser I guess. This could > have been worked around by reaching to token.name().table.names.record > instead. I have fixed that too > > (6) Javac allows a top level record to be static - is this intentional > ? Top levels classes may not be. > This code compiles: > static public record X(int x, int y) { > > } correct, this was already fixed in the last iteration > > (7) Local records cannot be explicitly tagged final. (Likewise > annotations will be rejected) > > public class X { > ??? public static void main(String [] args) { > ??????? final record X(int x, int y) {? // <<-- does not compile > ??????? } > ??? } > } fixed > > > (8) if (isRecordToken() && > ??????????? (peekToken(TokenKind.IDENTIFIER, TokenKind.LPAREN) || > ???????????? peekToken(TokenKind.IDENTIFIER, TokenKind.LT))) { > ??????????? JCModifiers mods = modifiersOpt(); > ??????????? dc = token.comment(CommentStyle.JAVADOC); > ??????????? return List.of(recordDeclaration(mods, dc)); > ??????? } > > The call to modifiersOpt - is this misplaced ? We have already seen > `record' and the peek is signalling an IDENTIFIER ?? > > (The default is moved out of the switch - it took me a while to > recognize that the semantics are unaffected. So this appears fine) actually I think that you are right, the call to modifiersOpt seems to be unnecessary at that point. I have removed it > > (9) I was surprised to see the emission of Errors.RecordCantBeAbstract in > com.sun.tools.javac.parser.JavacParser#recordDeclaration. > I would have expected this check inside > com.sun.tools.javac.comp.Check#checkFlags > See that this latter place is where abstract enums are complained > against. right it was actually been also checked in Check::checkFlags, I have removed the check in JavacParser > > (10) List defs = List.nil(); inside > JavacParser#recordDeclaration is a redundant initialization. fixed > > (11) Likewise I was surprised to see > Errors.RecordCantDeclareDuplicateFields being emitted > in com.sun.tools.javac.parser.JavacParser#recordDeclaration. > I would have expected this to be emitted in > com.sun.tools.javac.comp.Check#checkUnique right, there are two opposed forces here. The check is in JavacParser because record components exists until JavacParser. From that point on, they are not record components anymore but fields and parameters to a constructor. So if they are repeated then we would be