Integrated: 8257845: Integrate JEP 390
dlsmith at openjdk.java.net
Tue Dec 8 23:07:35 UTC 2020
On Sat, 5 Dec 2020 01:46:31 GMT, Dan Smith <dlsmith at openjdk.org> wrote:
> Integration of [JEP 390](https://bugs.openjdk.java.net/browse/JDK-8249100).
> Development has been broken into 5 tasks, each with its own JBS issue:
> - [JDK-8252180](https://bugs.openjdk.java.net/browse/JDK-8252180): Deprecate wrapper class constructors for removal (rriggs)
> - [JDK-8254047](https://bugs.openjdk.java.net/browse/JDK-8254047): Revise "value-based class" & apply to wrappers (dlsmith)
> - [JDK-8252181](https://bugs.openjdk.java.net/browse/JDK-8252181):Define & apply annotation jdk.internal.ValueBased (rriggs)
> - [JDK-8252183](https://bugs.openjdk.java.net/browse/JDK-8252183): Add 'lint' warning for @ValueBased classes (sadayapalam)
> - [JDK-8257027](https://bugs.openjdk.java.net/browse/JDK-8257027): Diagnose synchronization on @ValueBased classes (lfoltan)
> All changes have been previously reviewed and integrated into the [`jep390` branch](https://github.com/openjdk/valhalla/tree/jep390) of the `valhalla` repository. See the subtasks of the 5 JBS issues for these changes, including discussion and links to reviews. (Reviewers: mchung, dlsmith, jlaskey, rriggs, lfoltan, fparain, hseigel.)
> CSRs have also been completed or are nearly complete:
> - [JDK-8254324](https://bugs.openjdk.java.net/browse/JDK-8254324) for wrapper class constructor deprecation
> - [JDK-8254944](https://bugs.openjdk.java.net/browse/JDK-8254944) for revisions to "value-based class"
> - [JDK-8256023](https://bugs.openjdk.java.net/browse/JDK-8256023) for new `javac` lint warnings
> Here's an overview of the files changed:
> - `src/hotspot`: implementing diagnostics when `monitorenter` is applied to an instance of a class tagged with `jdk.internal.ValueBased`. This enhances previous work that produced such diagnostics for the primitive wrapper classes.
> - `src/java.base/share/classes/java/lang`: deprecating for removal the wrapper class constructors; revising the definition of "value-based class" in `ValueBased.html` and the description used by linking classes; applying "value-based class" to the primitive wrapper classes; marking value-based classes with `@jdk.internal.ValueBased`.
> - `src/java.base/share/classes/java/lang/constant`: no longer designating these classes as "value-based", since they rely heavily on field inheritance.
> - `src/java.base/share/classes/java/time`: revising the description used to link to `ValueBased.html`; marking value-based classes with `@jdk.internal.ValueBased`.
> - `src/java.base/share/classes/java/util`: revising the description used to link to `ValueBased.html`; marking value-based classes with `@jdk.internal.ValueBased`.
> - `src/java.base/share/classes/jdk/internal`: define the `@jdk.internal.ValueBased` annotation.
> - `src/java.management.rmi`: removing uses of wrapper class constructors.
> - `src/java.xml`: removing uses of wrapper class constructors.
> - `src/jdk.compiler`: implementing the `synchronization` lint category, which reports attempts to synchronize on classes and interfaces annotated with `@jdk.internal.ValueBased`.
> - `src/jdk.incubator.foreign`: revising the description used to link to `ValueBased.html`. (Applying `@jdk.internal.ValueBased` would require a special module export, which was not deemed necessary for an incubating API.)
> - `src/jdk.internal.vm.compiler`: suppressing `javac` deprecation and synchronization warnings in tests
> - `src/jdk.jfr`: supplementary changes for HotSpot diagnostics
> - `test`: testing new `javac` and HotSpot behavior; removing usages of deprecated wrapper class constructors from tests, or suppressing deprecation warnings; revising the description used to link to `ValueBased.html`.
This pull request has now been integrated.
Author: Dan Smith <dlsmith at openjdk.org>
Stats: 902 lines in 114 files changed: 489 ins; 121 del; 292 mod
8257845: Integrate JEP 390
8254047: [JEP 390] Revise "value-based class" & apply to wrappers
8252181: [JEP 390] Define & apply annotation jdk.internal.ValueBased
8252183: [JEP 390] Add 'lint' warning for @ValueBased classes
8257027: [JEP 390] Diagnose synchronization on @ValueBased classes
8252180: [JEP 390] Deprecate wrapper class constructors for removal
Co-authored-by: Roger Riggs <rriggs at openjdk.org>
Co-authored-by: Srikanth Adayapalam <sadayapalam at openjdk.org>
Co-authored-by: Lois Foltan <lfoltan at openjdk.org>
Reviewed-by: rriggs, hseigel, mchung, darcy
More information about the compiler-dev