From rriggs at openjdk.org Tue Aug 2 20:19:58 2022 From: rriggs at openjdk.org (Roger Riggs) Date: Tue, 2 Aug 2022 20:19:58 GMT Subject: [lworld] RFR: 8281463: [lworld] VALUE / PRIMITIVE modifiers should be supported by reflection [v9] In-Reply-To: References: Message-ID: > Add support to java.lang.reflect.AccessFlag ACC_IDENTITY, ACC_VALUE, and ACC_PRIMITIVE. > Added corresponding flags to j.l.reflect.Modifier so the "source" of the AccessFlag is the Modifer mask. > Remove PERMITS_VALUE; moving the definition used by HotSpot to HotSpot code. > > Add comments to java.l.reflect.Modifier suggesting use of AccessFlag instead and limitations. Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 20 commits: - Resync with mainline AccessFlag changes - Merge branch '8287250-class-identity' into 8281463-value-modifiers - Merge branch 'lworld' into 8287250-class-identity - Merge branch 'lworld' into 8287250-class-identity - Merge branch 'lworld' into 8287250-class-identity - Update handling of obsolete ACC_SUPER and remove ACC_PERMITSVALUE - Re-enable StaticFactoryTest - Add Class.isIdentity hack instanceKlass.cpp: ACC_SUPER to allow ACC_IDENTITY to getModifiers - Cleanup of modifier use - Merge branch 'lworld' into 8281463-value-modifiers - ... and 10 more: https://git.openjdk.org/valhalla/compare/3dc006bd...ea58a934 ------------- Changes: https://git.openjdk.org/valhalla/pull/698/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=698&range=08 Stats: 1009 lines in 17 files changed: 882 ins; 31 del; 96 mod Patch: https://git.openjdk.org/valhalla/pull/698.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/698/head:pull/698 PR: https://git.openjdk.org/valhalla/pull/698 From rriggs at openjdk.org Tue Aug 2 20:51:37 2022 From: rriggs at openjdk.org (Roger Riggs) Date: Tue, 2 Aug 2022 20:51:37 GMT Subject: [lworld] RFR: 8281463: [lworld] VALUE / PRIMITIVE modifiers should be supported by reflection [v10] In-Reply-To: References: Message-ID: > Add support to java.lang.reflect.AccessFlag ACC_IDENTITY, ACC_VALUE, and ACC_PRIMITIVE. > Added corresponding flags to j.l.reflect.Modifier so the "source" of the AccessFlag is the Modifer mask. > Remove PERMITS_VALUE; moving the definition used by HotSpot to HotSpot code. > > Add comments to java.l.reflect.Modifier suggesting use of AccessFlag instead and limitations. Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Restore some tests and cleanup ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/698/files - new: https://git.openjdk.org/valhalla/pull/698/files/ea58a934..754c41c2 Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=698&range=09 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=698&range=08-09 Stats: 21 lines in 3 files changed: 10 ins; 1 del; 10 mod Patch: https://git.openjdk.org/valhalla/pull/698.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/698/head:pull/698 PR: https://git.openjdk.org/valhalla/pull/698 From rriggs at openjdk.org Tue Aug 2 20:55:00 2022 From: rriggs at openjdk.org (Roger Riggs) Date: Tue, 2 Aug 2022 20:55:00 GMT Subject: [lworld] RFR: 8281463: [lworld] VALUE / PRIMITIVE modifiers should be supported by reflection [v9] In-Reply-To: References: Message-ID: On Tue, 2 Aug 2022 20:19:58 GMT, Roger Riggs wrote: >> Add support to java.lang.reflect.AccessFlag ACC_IDENTITY, ACC_VALUE, and ACC_PRIMITIVE. >> Added corresponding flags to j.l.reflect.Modifier so the "source" of the AccessFlag is the Modifer mask. >> Remove PERMITS_VALUE; moving the definition used by HotSpot to HotSpot code. >> >> Add comments to java.l.reflect.Modifier suggesting use of AccessFlag instead and limitations. > > Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 20 commits: > > - Resync with mainline AccessFlag changes > - Merge branch '8287250-class-identity' into 8281463-value-modifiers > - Merge branch 'lworld' into 8287250-class-identity > - Merge branch 'lworld' into 8287250-class-identity > - Merge branch 'lworld' into 8287250-class-identity > - Update handling of obsolete ACC_SUPER and remove ACC_PERMITSVALUE > - Re-enable StaticFactoryTest > - Add Class.isIdentity > hack instanceKlass.cpp: ACC_SUPER to allow ACC_IDENTITY to getModifiers > - Cleanup of modifier use > - Merge branch 'lworld' into 8281463-value-modifiers > - ... and 10 more: https://git.openjdk.org/valhalla/compare/3dc006bd...ea58a934 The new identity, value, and primitive modifiers are included in java.lang.reflect.Modifier to provide straightforward mapping from the VM definitions of the modifier bits to those provided in the API. Added clarifications to modifier methods to indicate that the source of the modifier bits is significant, the `isXXX` methods of Modifier only give valid results when the modifier bits come from the respective class, method or field. ------------- PR: https://git.openjdk.org/valhalla/pull/698 From rriggs at openjdk.org Wed Aug 3 19:31:35 2022 From: rriggs at openjdk.org (Roger Riggs) Date: Wed, 3 Aug 2022 19:31:35 GMT Subject: [lworld] RFR: Add Class.isIdentity In-Reply-To: References: Message-ID: On Tue, 31 May 2022 18:22:33 GMT, Roger Riggs wrote: > Add j.l.Class.isIdentity() as a complement to Class.isValue() and Class.isPrimitiveClass. > > Class.getModifiers() is updated to remove VM was suppressing the ACC_IDENTITY bit (previously known as ACC_SUPER). > > Updated Class.toString() to reflect the addition of ACC_IDENTITY. > For regular identity classes and interfaces, there is no change to toString. > > Removed the obsolete test for ACC_SUPER > > This PR may need to wait for corresponding VM changes. Merged into other PR with modifiers. ------------- PR: https://git.openjdk.org/valhalla/pull/700 From rriggs at openjdk.org Wed Aug 3 19:31:45 2022 From: rriggs at openjdk.org (Roger Riggs) Date: Wed, 3 Aug 2022 19:31:45 GMT Subject: [lworld] RFR: 8281463: [lworld] VALUE / PRIMITIVE modifiers should be supported by reflection [v10] In-Reply-To: References: Message-ID: On Tue, 2 Aug 2022 20:51:37 GMT, Roger Riggs wrote: >> Add support to java.lang.reflect.AccessFlag ACC_IDENTITY, ACC_VALUE, and ACC_PRIMITIVE. >> Added corresponding flags to j.l.reflect.Modifier so the "source" of the AccessFlag is the Modifer mask. >> Remove PERMITS_VALUE; moving the definition used by HotSpot to HotSpot code. >> >> Add comments to java.l.reflect.Modifier suggesting use of AccessFlag instead and limitations. > > Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: > > Restore some tests and cleanup Note: a number of source changes are present to align the source with the main jdk development of AccessFlags to ease future merges. ------------- PR: https://git.openjdk.org/valhalla/pull/698 From rriggs at openjdk.org Wed Aug 3 19:38:33 2022 From: rriggs at openjdk.org (Roger Riggs) Date: Wed, 3 Aug 2022 19:38:33 GMT Subject: [lworld] RFR: 8281463: [lworld] VALUE / PRIMITIVE modifiers should be supported by reflection [v11] In-Reply-To: References: Message-ID: > Add support to java.lang.reflect.AccessFlag ACC_IDENTITY and ACC_VALUE. > Added corresponding flags to j.l.reflect.Modifier so the "source" of the AccessFlag is the Modifier mask. > > Add comments to java.l.reflect.Modifier suggesting use of AccessFlag instead and limitations. Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Revert additions of ACC_PRIMITIVE to Modifier and AccessFlags. The design is in flux. ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/698/files - new: https://git.openjdk.org/valhalla/pull/698/files/754c41c2..dd10bd4d Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=698&range=10 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=698&range=09-10 Stats: 20 lines in 5 files changed: 1 ins; 13 del; 6 mod Patch: https://git.openjdk.org/valhalla/pull/698.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/698/head:pull/698 PR: https://git.openjdk.org/valhalla/pull/698 From rriggs at openjdk.org Wed Aug 3 20:12:13 2022 From: rriggs at openjdk.org (Roger Riggs) Date: Wed, 3 Aug 2022 20:12:13 GMT Subject: [lworld] Withdrawn: Add Class.isIdentity In-Reply-To: References: Message-ID: <0XbUnZU_9SQD_LS9efeaS01Oevhs9vHcogHs_b95dKk=.1540a3a3-9aca-4351-ad86-d3954dd86b3a@github.com> On Tue, 31 May 2022 18:22:33 GMT, Roger Riggs wrote: > Add j.l.Class.isIdentity() as a complement to Class.isValue() and Class.isPrimitiveClass. > > Class.getModifiers() is updated to remove VM was suppressing the ACC_IDENTITY bit (previously known as ACC_SUPER). > > Updated Class.toString() to reflect the addition of ACC_IDENTITY. > For regular identity classes and interfaces, there is no change to toString. > > Removed the obsolete test for ACC_SUPER > > This PR may need to wait for corresponding VM changes. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/valhalla/pull/700 From vromero at openjdk.org Wed Aug 10 16:43:21 2022 From: vromero at openjdk.org (Vicente Romero) Date: Wed, 10 Aug 2022 16:43:21 GMT Subject: Integrated: Merge lworld Message-ID: Merge lworld into universal-tvars ------------- Commit messages: - removing compiler key from not-yet - Merge branch 'lworld' into universal-tvars_merge_lworld_last - left-overs from last type system refactoring - Merge lworld - addressing several issues in the implementation of universal tvars - Merge lworld - Merge lworld - changing universal lint warning to unchecked warning - Merge lworld - Build failing in universal tvars - ... and 22 more: https://git.openjdk.org/valhalla/compare/3dc006bd...0803db7e The merge commit only contains trivial merges, so no merge-specific webrevs have been generated. Changes: https://git.openjdk.org/valhalla/pull/721/files Stats: 1672 lines in 37 files changed: 1525 ins; 30 del; 117 mod Patch: https://git.openjdk.org/valhalla/pull/721.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/721/head:pull/721 PR: https://git.openjdk.org/valhalla/pull/721 From vromero at openjdk.org Wed Aug 10 16:43:22 2022 From: vromero at openjdk.org (Vicente Romero) Date: Wed, 10 Aug 2022 16:43:22 GMT Subject: Integrated: Merge lworld In-Reply-To: References: Message-ID: On Wed, 10 Aug 2022 16:36:03 GMT, Vicente Romero wrote: > Merge lworld into universal-tvars This pull request has now been integrated. Changeset: 0d2c03b7 Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/0d2c03b7dbaccc187e7f18944a947e3c85aed580 Stats: 2237 lines in 93 files changed: 1666 ins; 201 del; 370 mod Merge lworld ------------- PR: https://git.openjdk.org/valhalla/pull/721 From vromero at openjdk.org Mon Aug 15 23:27:32 2022 From: vromero at openjdk.org (Vicente Romero) Date: Mon, 15 Aug 2022 23:27:32 GMT Subject: [lworld] RFR: 8287768: [lw4] Record component may not have the name isValueObject Message-ID: Javac should issue an error if a record declares a record component named: `isValueObject` ------------- Commit messages: - 8287768: [lw4] Record component may not have the name isValueObject Changes: https://git.openjdk.org/valhalla/pull/722/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=722&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8287768 Stats: 5 lines in 3 files changed: 3 ins; 0 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/722.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/722/head:pull/722 PR: https://git.openjdk.org/valhalla/pull/722 From vromero at openjdk.org Tue Aug 16 02:55:31 2022 From: vromero at openjdk.org (Vicente Romero) Date: Tue, 16 Aug 2022 02:55:31 GMT Subject: [lworld] Integrated: 8287768: [lw4] Record component may not have the name isValueObject In-Reply-To: References: Message-ID: On Mon, 15 Aug 2022 23:21:46 GMT, Vicente Romero wrote: > Javac should issue an error if a record declares a record component named: `isValueObject` This pull request has now been integrated. Changeset: 8436b962 Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/8436b9626a6553772ffde469994569e64ac4773b Stats: 5 lines in 3 files changed: 3 ins; 0 del; 2 mod 8287768: [lw4] Record component may not have the name isValueObject ------------- PR: https://git.openjdk.org/valhalla/pull/722 From vromero at openjdk.org Mon Aug 22 18:03:28 2022 From: vromero at openjdk.org (Vicente Romero) Date: Mon, 22 Aug 2022 18:03:28 GMT Subject: [lworld] RFR: 8292630: [lworld] javac is accepting annotation interface declarations with modifiers: identity and value Message-ID: Please review this fix which is syncing the compiler implementation with the spec. The current spec [1] mentions that: * It is a compile-time error if an annotation interface declaration has the modifier sealed, or non-sealed, identity, or value (9.1.1.4). So code code like: value @interface I {} and identity @interface I {} should be rejected by the compiler. [1] http://cr.openjdk.java.net/~dlsmith/jep8277163/jep8277163-20220519/specs/value-objects-jls.html ------------- Commit messages: - 8292630: [lworld] javac is accepting annotation interface declarations with modifiers: identity and value Changes: https://git.openjdk.org/valhalla/pull/723/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=723&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8292630 Stats: 24 lines in 4 files changed: 22 ins; 0 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/723.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/723/head:pull/723 PR: https://git.openjdk.org/valhalla/pull/723 From vromero at openjdk.org Tue Aug 23 15:49:57 2022 From: vromero at openjdk.org (Vicente Romero) Date: Tue, 23 Aug 2022 15:49:57 GMT Subject: [lworld] Integrated: 8292630: [lworld] javac is accepting annotation interface declarations with modifiers: identity and value In-Reply-To: References: Message-ID: <7RxKDhZP1nRw-TmXu8CqBZEBck7gxIfo6vaXDg4pHbg=.4d4700e2-8528-4977-99a8-07e176704433@github.com> On Mon, 22 Aug 2022 17:54:34 GMT, Vicente Romero wrote: > Please review this fix which is syncing the compiler implementation with the spec. The current spec [1] mentions that: > > * It is a compile-time error if an annotation interface declaration has the modifier sealed, or non-sealed, identity, or value (9.1.1.4). > > So code code like: > > value @interface I {} and > identity @interface I {} > > > should be rejected by the compiler. > > [1] http://cr.openjdk.java.net/~dlsmith/jep8277163/jep8277163-20220519/specs/value-objects-jls.html This pull request has now been integrated. Changeset: 4a3131a8 Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/4a3131a875760e00c10857e5d6b9eced861506bd Stats: 24 lines in 4 files changed: 22 ins; 0 del; 2 mod 8292630: [lworld] javac is accepting annotation interface declarations with modifiers: identity and value ------------- PR: https://git.openjdk.org/valhalla/pull/723 From vromero at openjdk.org Tue Aug 23 18:33:49 2022 From: vromero at openjdk.org (Vicente Romero) Date: Tue, 23 Aug 2022 18:33:49 GMT Subject: [lworld] RFR: 8292753: [lworld] javac is accepting erroneous synchronized statements Message-ID: javac should issue an error for this code: value class C { void m(T t) { synchronized(t) {} } } as type variable T is bounded by a value class. Also code like this one should be rejected: value class C { void foo(Object o) { synchronized ((C & I)o) {} // one of the superclasses of the intersection type is a value class } } ------------- Commit messages: - 8292753: [lworld] missing javac errors for synchronized statement Changes: https://git.openjdk.org/valhalla/pull/724/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=724&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8292753 Stats: 41 lines in 3 files changed: 33 ins; 4 del; 4 mod Patch: https://git.openjdk.org/valhalla/pull/724.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/724/head:pull/724 PR: https://git.openjdk.org/valhalla/pull/724 From vromero at openjdk.org Tue Aug 23 18:36:19 2022 From: vromero at openjdk.org (Vicente Romero) Date: Tue, 23 Aug 2022 18:36:19 GMT Subject: [lworld] RFR: 8292753: [lworld] javac is accepting erroneous synchronized statements [v2] In-Reply-To: References: Message-ID: > javac should issue an error for this code: > > value class C { > void m(T t) { > synchronized(t) {} > } > } > > as type variable T is bounded by a value class. Also code like this one should be rejected: > > value class C { > void foo(Object o) { > synchronized ((C & I)o) {} // one of the superclasses of the intersection type is a value class > } > } Vicente Romero has updated the pull request incrementally with one additional commit since the last revision: forgot to add the bug number to the test ------------- Changes: - all: https://git.openjdk.org/valhalla/pull/724/files - new: https://git.openjdk.org/valhalla/pull/724/files/56b9c163..9fef9d8a Webrevs: - full: https://webrevs.openjdk.org/?repo=valhalla&pr=724&range=01 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=724&range=00-01 Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod Patch: https://git.openjdk.org/valhalla/pull/724.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/724/head:pull/724 PR: https://git.openjdk.org/valhalla/pull/724 From hseigel at openjdk.org Tue Aug 23 21:40:37 2022 From: hseigel at openjdk.org (Harold Seigel) Date: Tue, 23 Aug 2022 21:40:37 GMT Subject: [lworld] RFR: 8292812: jvm test RunWithfieldTests.java fails with VerifyError exception Message-ID: Please review this small fix for JVM test RunWithfieldTests.java. The test failed because it had out of date access flags. The fix was tested by running the test locally. Thanks, Harold ------------- Commit messages: - 8292812: jvm test RunWithfieldTests.java fails with VerifyError exception Changes: https://git.openjdk.org/valhalla/pull/725/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=725&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8292812 Stats: 7 lines in 1 file changed: 0 ins; 0 del; 7 mod Patch: https://git.openjdk.org/valhalla/pull/725.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/725/head:pull/725 PR: https://git.openjdk.org/valhalla/pull/725 From fparain at openjdk.org Tue Aug 23 23:04:08 2022 From: fparain at openjdk.org (Frederic Parain) Date: Tue, 23 Aug 2022 23:04:08 GMT Subject: [lworld] RFR: 8292812: jvm test RunWithfieldTests.java fails with VerifyError exception In-Reply-To: References: Message-ID: On Tue, 23 Aug 2022 21:34:42 GMT, Harold Seigel wrote: > Please review this small fix for JVM test RunWithfieldTests.java. The test failed because it had out of date access flags. The fix was tested by running the test locally. > Thanks, Harold LGTM ------------- Marked as reviewed by fparain (Committer). PR: https://git.openjdk.org/valhalla/pull/725 From hseigel at openjdk.org Wed Aug 24 12:14:02 2022 From: hseigel at openjdk.org (Harold Seigel) Date: Wed, 24 Aug 2022 12:14:02 GMT Subject: [lworld] RFR: 8292812: jvm test RunWithfieldTests.java fails with VerifyError exception In-Reply-To: References: Message-ID: On Tue, 23 Aug 2022 21:34:42 GMT, Harold Seigel wrote: > Please review this small fix for JVM test RunWithfieldTests.java. The test failed because it had out of date access flags. The fix was tested by running the test locally. > Thanks, Harold Thanks Fred for the review and help with this issue. ------------- PR: https://git.openjdk.org/valhalla/pull/725 From hseigel at openjdk.org Wed Aug 24 12:17:53 2022 From: hseigel at openjdk.org (Harold Seigel) Date: Wed, 24 Aug 2022 12:17:53 GMT Subject: [lworld] Integrated: 8292812: jvm test RunWithfieldTests.java fails with VerifyError exception In-Reply-To: References: Message-ID: On Tue, 23 Aug 2022 21:34:42 GMT, Harold Seigel wrote: > Please review this small fix for JVM test RunWithfieldTests.java. The test failed because it had out of date access flags. The fix was tested by running the test locally. > Thanks, Harold This pull request has now been integrated. Changeset: c9216717 Author: Harold Seigel URL: https://git.openjdk.org/valhalla/commit/c9216717ea5700640bf8df26752be3a146f9b354 Stats: 7 lines in 1 file changed: 0 ins; 0 del; 7 mod 8292812: jvm test RunWithfieldTests.java fails with VerifyError exception Reviewed-by: fparain ------------- PR: https://git.openjdk.org/valhalla/pull/725 From fparain at openjdk.org Thu Aug 25 14:18:27 2022 From: fparain at openjdk.org (Frederic Parain) Date: Thu, 25 Aug 2022 14:18:27 GMT Subject: [lworld] RFR: 8292882: [lw4] PERMITS_VALUE should be removed from all source files Message-ID: Please review those changes which remove all remains of ACC_PERMITS_VALUE. Tested with Mach5, tier1-4. Thank you. Fred ------------- Commit messages: - Remove all remains of ACC_PERMITS_VALUE Changes: https://git.openjdk.org/valhalla/pull/726/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=726&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8292882 Stats: 42 lines in 12 files changed: 0 ins; 27 del; 15 mod Patch: https://git.openjdk.org/valhalla/pull/726.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/726/head:pull/726 PR: https://git.openjdk.org/valhalla/pull/726 From dsimms at openjdk.org Thu Aug 25 14:18:28 2022 From: dsimms at openjdk.org (David Simms) Date: Thu, 25 Aug 2022 14:18:28 GMT Subject: [lworld] RFR: 8292882: [lw4] PERMITS_VALUE should be removed from all source files In-Reply-To: References: Message-ID: On Thu, 25 Aug 2022 12:07:18 GMT, Frederic Parain wrote: > Please review those changes which remove all remains of ACC_PERMITS_VALUE. > > Tested with Mach5, tier1-4. > > Thank you. > > Fred Looks good ------------- Marked as reviewed by dsimms (Committer). PR: https://git.openjdk.org/valhalla/pull/726 From fparain at openjdk.org Thu Aug 25 14:18:28 2022 From: fparain at openjdk.org (Frederic Parain) Date: Thu, 25 Aug 2022 14:18:28 GMT Subject: [lworld] RFR: 8292882: [lw4] PERMITS_VALUE should be removed from all source files In-Reply-To: References: Message-ID: On Thu, 25 Aug 2022 12:07:18 GMT, Frederic Parain wrote: > Please review those changes which remove all remains of ACC_PERMITS_VALUE. > > Tested with Mach5, tier1-4. > > Thank you. > > Fred Thanks for the review. ------------- PR: https://git.openjdk.org/valhalla/pull/726 From fparain at openjdk.org Thu Aug 25 14:22:06 2022 From: fparain at openjdk.org (Frederic Parain) Date: Thu, 25 Aug 2022 14:22:06 GMT Subject: git: openjdk/valhalla: lworld: 8292882: [lw4] PERMITS_VALUE should be removed from all source files Message-ID: <71efc499-6dd6-4483-95b6-6cfe3a3f64a0@openjdk.org> Changeset: 8c772cc3 Author: Frederic Parain Date: 2022-08-25 14:17:39 +0000 URL: https://git.openjdk.org/valhalla/commit/8c772cc314e496f7dfc73c8081eb4d02a9a2a8ac 8292882: [lw4] PERMITS_VALUE should be removed from all source files Reviewed-by: dsimms ! src/hotspot/share/classfile/classFileParser.cpp ! src/java.base/share/classes/java/lang/Class.java ! src/java.base/share/native/include/classfile_constants.h.template ! test/hotspot/jtreg/runtime/valhalla/inlinetypes/classfileparser/ACCICCETests.jcod ! test/hotspot/jtreg/runtime/valhalla/inlinetypes/classfileparser/ACC_CFETest.java ! test/hotspot/jtreg/runtime/valhalla/inlinetypes/classfileparser/ACC_ICCETest.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf006.java ! test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassModifiers/getclmdf006/getclmdf006.cpp ! test/lib/org/openjdk/asmtools/jasm/JasmTokens.java ! test/lib/org/openjdk/asmtools/jasm/Modifiers.java ! test/lib/org/openjdk/asmtools/jasm/Parser.java ! test/lib/org/openjdk/asmtools/jasm/RuntimeConstants.java From fparain at openjdk.org Thu Aug 25 14:23:19 2022 From: fparain at openjdk.org (Frederic Parain) Date: Thu, 25 Aug 2022 14:23:19 GMT Subject: [lworld] Integrated: 8292882: [lw4] PERMITS_VALUE should be removed from all source files In-Reply-To: References: Message-ID: On Thu, 25 Aug 2022 12:07:18 GMT, Frederic Parain wrote: > Please review those changes which remove all remains of ACC_PERMITS_VALUE. > > Tested with Mach5, tier1-4. > > Thank you. > > Fred This pull request has now been integrated. Changeset: 8c772cc3 Author: Frederic Parain URL: https://git.openjdk.org/valhalla/commit/8c772cc314e496f7dfc73c8081eb4d02a9a2a8ac Stats: 42 lines in 12 files changed: 0 ins; 27 del; 15 mod 8292882: [lw4] PERMITS_VALUE should be removed from all source files Reviewed-by: dsimms ------------- PR: https://git.openjdk.org/valhalla/pull/726 From vromero at openjdk.org Thu Aug 25 17:16:02 2022 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 25 Aug 2022 17:16:02 GMT Subject: [lworld] RFR: 8292817: [lworld] add binary compatibility tests Message-ID: this PR is basically covering the assertions at chapter 13 of [1] [1] http://cr.openjdk.java.net/~dlsmith/jep8277163/jep8277163-20220519/specs/value-objects-jls.html#jls-13 ------------- Commit messages: - 8292817: [lworld] add binary compatibility tests Changes: https://git.openjdk.org/valhalla/pull/728/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=728&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8292817 Stats: 758 lines in 1 file changed: 758 ins; 0 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/728.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/728/head:pull/728 PR: https://git.openjdk.org/valhalla/pull/728 From vromero at openjdk.org Thu Aug 25 17:19:47 2022 From: vromero at openjdk.org (Vicente Romero) Date: Thu, 25 Aug 2022 17:19:47 GMT Subject: [lworld] Integrated: 8292817: [lworld] add binary compatibility tests In-Reply-To: References: Message-ID: On Thu, 25 Aug 2022 17:04:39 GMT, Vicente Romero wrote: > this PR is basically covering the assertions at chapter 13 of [1] > > [1] http://cr.openjdk.java.net/~dlsmith/jep8277163/jep8277163-20220519/specs/value-objects-jls.html#jls-13 This pull request has now been integrated. Changeset: 5190d9ab Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/5190d9abb230cf03f5ec39187c2aeb22d5dccd52 Stats: 758 lines in 1 file changed: 758 ins; 0 del; 0 mod 8292817: [lworld] add binary compatibility tests ------------- PR: https://git.openjdk.org/valhalla/pull/728 From dsimms at openjdk.org Fri Aug 26 07:12:57 2022 From: dsimms at openjdk.org (David Simms) Date: Fri, 26 Aug 2022 07:12:57 GMT Subject: [lworld] RFR: 8292953: [lworld] Remove ValueCapableClass Message-ID: Removed references to "jdk.incubator.mvt" ------------- Commit messages: - 8292953: [lworld] Remove ValueCapableClass Changes: https://git.openjdk.org/valhalla/pull/729/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=729&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8292953 Stats: 249 lines in 4 files changed: 0 ins; 248 del; 1 mod Patch: https://git.openjdk.org/valhalla/pull/729.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/729/head:pull/729 PR: https://git.openjdk.org/valhalla/pull/729 From dsimms at openjdk.org Fri Aug 26 07:27:15 2022 From: dsimms at openjdk.org (David Simms) Date: Fri, 26 Aug 2022 07:27:15 GMT Subject: [lworld] Integrated: 8292953: [lworld] Remove ValueCapableClass In-Reply-To: References: Message-ID: On Fri, 26 Aug 2022 06:35:16 GMT, David Simms wrote: > Removed references to "jdk.incubator.mvt" This pull request has now been integrated. Changeset: 2b23a957 Author: David Simms URL: https://git.openjdk.org/valhalla/commit/2b23a957910bf30e96e2ce8fb00fa76fc61fd5e5 Stats: 249 lines in 4 files changed: 0 ins; 248 del; 1 mod 8292953: [lworld] Remove ValueCapableClass ------------- PR: https://git.openjdk.org/valhalla/pull/729 From rriggs at openjdk.org Fri Aug 26 21:41:55 2022 From: rriggs at openjdk.org (Roger Riggs) Date: Fri, 26 Aug 2022 21:41:55 GMT Subject: [lworld] RFR: 8281463: [lworld] VALUE / PRIMITIVE modifiers should be supported by reflection [v12] In-Reply-To: References: Message-ID: > Add support to java.lang.reflect.AccessFlag ACC_IDENTITY, ACC_VALUE, and ACC_PRIMITIVE. > Added corresponding flags to j.l.reflect.Modifier so the "source" of the AccessFlag is the Modifer mask. > Remove PERMITS_VALUE; moving the definition used by HotSpot to HotSpot code. > > Add comments to java.l.reflect.Modifier suggesting use of AccessFlag instead and limitations. Roger Riggs has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 24 commits: - Match up AccessFlag and Modifier - Merge branch 'lworld' into 8281463-value-modifiers - Revert additions of ACC_PRIMITIVE to Modifier and AccessFlags. The design is in flux. - Restore some tests and cleanup - Resync with mainline AccessFlag changes - Merge branch '8287250-class-identity' into 8281463-value-modifiers - Merge branch 'lworld' into 8287250-class-identity - Merge branch 'lworld' into 8287250-class-identity - Merge branch 'lworld' into 8287250-class-identity - Update handling of obsolete ACC_SUPER and remove ACC_PERMITSVALUE - ... and 14 more: https://git.openjdk.org/valhalla/compare/2b23a957...efdb3334 ------------- Changes: https://git.openjdk.org/valhalla/pull/698/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=698&range=11 Stats: 999 lines in 17 files changed: 876 ins; 29 del; 94 mod Patch: https://git.openjdk.org/valhalla/pull/698.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/698/head:pull/698 PR: https://git.openjdk.org/valhalla/pull/698 From dsimms at openjdk.org Mon Aug 29 05:56:16 2022 From: dsimms at openjdk.org (David Simms) Date: Mon, 29 Aug 2022 05:56:16 GMT Subject: [lworld] RFR: 8288135: [lworld] Implement HotSpot flag -XX:+EnablePrimitiveClasses Message-ID: Runtime component of -XX:+EnablePrimitiveClasses switch ------------- Commit messages: - Be explicit about which features are enabled in testing - Missed preload processing - Merge branch 'lworld' into 8288135 - Merge branch 'lworld' into 8288135 - Merge branch 'lworld' into 8288135 - Retain the classfile version checks AND enable flag - Silently disable the default on setting if Valhalla is disabled - 8288135: [lworld] Implement HotSpot flag -XX:+EnablePrimitiveClasses Changes: https://git.openjdk.org/valhalla/pull/727/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=727&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8288135 Stats: 1135 lines in 120 files changed: 804 ins; 56 del; 275 mod Patch: https://git.openjdk.org/valhalla/pull/727.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/727/head:pull/727 PR: https://git.openjdk.org/valhalla/pull/727 From vromero at openjdk.org Mon Aug 29 16:26:42 2022 From: vromero at openjdk.org (Vicente Romero) Date: Mon, 29 Aug 2022 16:26:42 GMT Subject: [lworld] Integrated: 8292753: [lworld] javac is accepting erroneous synchronized statements In-Reply-To: References: Message-ID: <5MGdaeu8X59Y1p0_l2sEytfaOBnT3ofB3iqSJA6Nm0A=.36ed3ee2-46a5-4fe2-8889-009be881500d@github.com> On Tue, 23 Aug 2022 18:25:30 GMT, Vicente Romero wrote: > javac should issue an error for this code: > > value class C { > void m(T t) { > synchronized(t) {} > } > } > > as type variable `T` is bounded by a value class. Also code like this one should be rejected: > > value class C { > void foo(Object o) { > synchronized ((C & I)o) {} // one of the superclasses of the intersection type is a value class > } > } > > > TIA This pull request has now been integrated. Changeset: 3d9b4a7f Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/3d9b4a7f2a63d393420e645dfcbb67f3e08d86a3 Stats: 42 lines in 3 files changed: 33 ins; 4 del; 5 mod 8292753: [lworld] javac is accepting erroneous synchronized statements ------------- PR: https://git.openjdk.org/valhalla/pull/724 From vromero at openjdk.org Tue Aug 30 18:56:57 2022 From: vromero at openjdk.org (Vicente Romero) Date: Tue, 30 Aug 2022 18:56:57 GMT Subject: [lworld] Integrated: 8293120: [lworld] javac is rejecting correct class declaration that has a combination of value and sealed modifiers Message-ID: <74BnrPBypFz49S7IHIluYM_wRXAFa-Os-f1gLxp_xx8=.3f0e9396-bf28-4a41-8b1c-7c5363cae7ad@github.com> Fixing a parser error that doesn't allow modifiers `sealed` + (`value` or `identity`) in a class declaration ------------- Commit messages: - 8293120: [lworld] javac is rejecting correct class declaration that has a combination of value and sealed modifiers Changes: https://git.openjdk.org/valhalla/pull/730/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=730&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8293120 Stats: 4 lines in 1 file changed: 3 ins; 0 del; 1 mod Patch: https://git.openjdk.org/valhalla/pull/730.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/730/head:pull/730 PR: https://git.openjdk.org/valhalla/pull/730 From vromero at openjdk.org Tue Aug 30 18:56:58 2022 From: vromero at openjdk.org (Vicente Romero) Date: Tue, 30 Aug 2022 18:56:58 GMT Subject: [lworld] Integrated: 8293120: [lworld] javac is rejecting correct class declaration that has a combination of value and sealed modifiers In-Reply-To: <74BnrPBypFz49S7IHIluYM_wRXAFa-Os-f1gLxp_xx8=.3f0e9396-bf28-4a41-8b1c-7c5363cae7ad@github.com> References: <74BnrPBypFz49S7IHIluYM_wRXAFa-Os-f1gLxp_xx8=.3f0e9396-bf28-4a41-8b1c-7c5363cae7ad@github.com> Message-ID: On Tue, 30 Aug 2022 18:40:57 GMT, Vicente Romero wrote: > Fixing a parser error that doesn't allow modifiers `sealed` + (`value` or `identity`) in a class declaration This pull request has now been integrated. Changeset: 8823c9b1 Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/8823c9b1f7ecfb0eb60d382c5b23cc4c93a97a54 Stats: 4 lines in 1 file changed: 3 ins; 0 del; 1 mod 8293120: [lworld] javac is rejecting correct class declaration that has a combination of value and sealed modifiers ------------- PR: https://git.openjdk.org/valhalla/pull/730 From rriggs at openjdk.org Tue Aug 30 19:41:20 2022 From: rriggs at openjdk.org (Roger Riggs) Date: Tue, 30 Aug 2022 19:41:20 GMT Subject: [lworld] RFR: 8293127: Valhalla: gcbasher update for new bytecodes Message-ID: <38foZ738NLVmwzwlHQ7pR1MhdbuJCChRAOQGdla0_8Y=.ce200a74-2bb1-485b-88a1-599c7779f88a@github.com> Update bytecode decompiler in hotspot gcbasher to be able to skip over new bytecodes. Otherwise, the gcbasher fails when it runs on a value class. ------------- Commit messages: - Merge branch 'lworld' into 8293127-gcbasher - 8293127: Valhalla: gcbasher update for new bytecodes Changes: https://git.openjdk.org/valhalla/pull/731/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=731&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8293127 Stats: 6 lines in 1 file changed: 4 ins; 0 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/731.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/731/head:pull/731 PR: https://git.openjdk.org/valhalla/pull/731 From vromero at openjdk.org Tue Aug 30 21:24:45 2022 From: vromero at openjdk.org (Vicente Romero) Date: Tue, 30 Aug 2022 21:24:45 GMT Subject: [lworld] RFR: 8293129: [lworld] remove experimental code related to methods inherited from Object Message-ID: Remove some non-specified behavior from javac. For example javac is issuing an error if a value class invokes some method from `j.l.Object` like `::wait`, `::notifyAll` etc. This is not specified in the current spec and thus seems like an experimental development that should be removed. ------------- Commit messages: - 8293129: [lworld] remove experimental code related to methods inherited from Object Changes: https://git.openjdk.org/valhalla/pull/732/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=732&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8293129 Stats: 285 lines in 15 files changed: 1 ins; 282 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/732.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/732/head:pull/732 PR: https://git.openjdk.org/valhalla/pull/732 From vromero at openjdk.org Tue Aug 30 21:31:37 2022 From: vromero at openjdk.org (Vicente Romero) Date: Tue, 30 Aug 2022 21:31:37 GMT Subject: [lworld] Integrated: 8293129: [lworld] remove experimental code related to methods inherited from Object In-Reply-To: References: Message-ID: On Tue, 30 Aug 2022 21:12:38 GMT, Vicente Romero wrote: > Remove some non-specified behavior from javac. For example javac is issuing an error if a value class invokes some method from `j.l.Object` like `::wait`, `::notifyAll` etc. This is not specified in the current spec and thus seems like an experimental development that should be removed. This pull request has now been integrated. Changeset: cdbafe56 Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/cdbafe56e14801076df030d8aa69d20490487102 Stats: 285 lines in 15 files changed: 1 ins; 282 del; 2 mod 8293129: [lworld] remove experimental code related to methods inherited from Object ------------- PR: https://git.openjdk.org/valhalla/pull/732 From vromero at openjdk.org Wed Aug 31 04:55:11 2022 From: vromero at openjdk.org (Vicente Romero) Date: Wed, 31 Aug 2022 04:55:11 GMT Subject: [lworld] RFR: 8293038: [lworld] consolidate Value Objects tests Message-ID: Refactoring tests, combining several regression tests into one test that uses the same test library we have used for records and sealed types. This way the overhead of adding new tests is reduced a lot. I also detected several issues on the existing tests with this refactoring, like repeated tests, etc. ------------- Commit messages: - more whitespace removed - removing whitespace - consolidate Value Objects tests - Merge branch 'lworld' into JDK-8293038 - 8293038: [lworld] consolidate Value Objects tests Changes: https://git.openjdk.org/valhalla/pull/733/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=733&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8293038 Stats: 1042 lines in 26 files changed: 504 ins; 538 del; 0 mod Patch: https://git.openjdk.org/valhalla/pull/733.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/733/head:pull/733 PR: https://git.openjdk.org/valhalla/pull/733 From vromero at openjdk.org Wed Aug 31 04:57:48 2022 From: vromero at openjdk.org (Vicente Romero) Date: Wed, 31 Aug 2022 04:57:48 GMT Subject: [lworld] Integrated: 8293038: [lworld] consolidate Value Objects tests In-Reply-To: References: Message-ID: On Wed, 31 Aug 2022 04:32:52 GMT, Vicente Romero wrote: > Refactoring tests, combining several regression tests into one test that uses the same test library we have used for records and sealed types. This way the overhead of adding new tests is reduced a lot. I also detected several issues on the existing tests with this refactoring, like repeated tests, etc. This pull request has now been integrated. Changeset: ec987c5c Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/ec987c5c2c86b7aa8c1371f013f10ad4a1dcff67 Stats: 1042 lines in 26 files changed: 504 ins; 538 del; 0 mod 8293038: [lworld] consolidate Value Objects tests ------------- PR: https://git.openjdk.org/valhalla/pull/733 From dsimms at openjdk.org Wed Aug 31 18:25:38 2022 From: dsimms at openjdk.org (David Simms) Date: Wed, 31 Aug 2022 18:25:38 GMT Subject: [lworld] RFR: Merge jdk Message-ID: Merge jdk ------------- Commit messages: - Trailing whitespace - Merge complete - More version flicks - Merge remote-tracking branch 'refs/remotes/origin/lworld_merge_loom' into lworld_merge_loom - Removed obsolete ToDos - Removed call verification code which does not work on aarch64 due to far calls - Merge branch 'lworld' into lworld_merge_loom - Merge remote-tracking branch 'refs/remotes/origin/lworld_merge_loom' into lworld_merge_loom - Added missing null check - Move nmethod entry barriers to the right place - ... and 1737 more: https://git.openjdk.org/valhalla/compare/ec987c5c...66353dd0 The webrevs contain the adjustments done while merging with regards to each parent branch: - lworld: https://webrevs.openjdk.org/?repo=valhalla&pr=734&range=00.0 - jdk: https://webrevs.openjdk.org/?repo=valhalla&pr=734&range=00.1 Changes: https://git.openjdk.org/valhalla/pull/734/files Stats: 791072 lines in 10070 files changed: 538250 ins; 151956 del; 100866 mod Patch: https://git.openjdk.org/valhalla/pull/734.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/734/head:pull/734 PR: https://git.openjdk.org/valhalla/pull/734 From dsimms at openjdk.org Wed Aug 31 18:36:22 2022 From: dsimms at openjdk.org (David Simms) Date: Wed, 31 Aug 2022 18:36:22 GMT Subject: [lworld] Integrated: Merge jdk In-Reply-To: References: Message-ID: On Wed, 31 Aug 2022 15:27:41 GMT, David Simms wrote: > Merge jdk This pull request has now been integrated. Changeset: 4c3231c3 Author: David Simms URL: https://git.openjdk.org/valhalla/commit/4c3231c3c163d529f64e8039d1ed228bac989058 Stats: 791072 lines in 10070 files changed: 538250 ins; 151956 del; 100866 mod Merge jdk Merge tag 'jdk-20+8' into lworld ------------- PR: https://git.openjdk.org/valhalla/pull/734 From vromero at openjdk.org Wed Aug 31 19:42:08 2022 From: vromero at openjdk.org (Vicente Romero) Date: Wed, 31 Aug 2022 19:42:08 GMT Subject: [lworld] RFR: 8293183: [lworld] add missing tests for functional interfaces Message-ID: this PR is adding some additional regression tests for functional interfaces, covering this assertion on section: 9.8 Functional Interfaces of [1]: * A functional interface is an interface that is not declared with one of the modifiers sealed, identity, or value... but this should apply too to functional interfaces which are not explicitly declared with the `identity` modifier. So this code should not be accepted: identity interface I { void m(); } @FunctionalInterface interface J extends I {} [1] http://cr.openjdk.java.net/~dlsmith/jep8277163/jep8277163-20220519/specs/value-objects-jls.html#jls-9.8 ------------- Commit messages: - 8293183: [lworld] add missing tests for functional interfaces Changes: https://git.openjdk.org/valhalla/pull/735/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=735&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8293183 Stats: 38 lines in 1 file changed: 34 ins; 2 del; 2 mod Patch: https://git.openjdk.org/valhalla/pull/735.diff Fetch: git fetch https://git.openjdk.org/valhalla pull/735/head:pull/735 PR: https://git.openjdk.org/valhalla/pull/735 From vromero at openjdk.org Wed Aug 31 19:48:27 2022 From: vromero at openjdk.org (Vicente Romero) Date: Wed, 31 Aug 2022 19:48:27 GMT Subject: [lworld] Integrated: 8293183: [lworld] add missing tests for functional interfaces In-Reply-To: References: Message-ID: On Wed, 31 Aug 2022 19:33:29 GMT, Vicente Romero wrote: > this PR is adding some additional regression tests for functional interfaces, covering this assertion on section: 9.8 Functional Interfaces of [1]: > > * A functional interface is an interface that is not declared with one of the modifiers sealed, identity, or value... > > but this should apply too to functional interfaces which are not explicitly declared with the `identity` modifier. So this code should not be accepted: > > identity interface I { > void m(); > } > > @FunctionalInterface > interface J extends I {} > > [1] http://cr.openjdk.java.net/~dlsmith/jep8277163/jep8277163-20220519/specs/value-objects-jls.html#jls-9.8 This pull request has now been integrated. Changeset: d38f3947 Author: Vicente Romero URL: https://git.openjdk.org/valhalla/commit/d38f39479671c276e86f03b56a52091d1c2ce458 Stats: 38 lines in 1 file changed: 34 ins; 2 del; 2 mod 8293183: [lworld] add missing tests for functional interfaces ------------- PR: https://git.openjdk.org/valhalla/pull/735