Skip to content

8257450: Start of release updates for JDK 17 #1531

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 18 commits into from

Conversation

jddarcy
Copy link
Member

@jddarcy jddarcy commented Dec 1, 2020

Start of JDK 17 updates.


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Issues

Reviewers

Download

$ git fetch https://git.openjdk.java.net/jdk pull/1531/head:pull/1531
$ git checkout pull/1531

@bridgekeeper
Copy link

bridgekeeper bot commented Dec 1, 2020

👋 Welcome back darcy! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot changed the title JDK-8257450 8257450: Start of release updates for JDK 17 Dec 1, 2020
@openjdk
Copy link

openjdk bot commented Dec 1, 2020

@jddarcy The following labels will be automatically applied to this pull request:

  • build
  • compiler
  • core-libs
  • hotspot
  • javadoc

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added javadoc javadoc-dev@openjdk.org build build-dev@openjdk.org hotspot hotspot-dev@openjdk.org core-libs core-libs-dev@openjdk.org compiler compiler-dev@openjdk.org labels Dec 1, 2020
@jddarcy
Copy link
Member Author

jddarcy commented Dec 1, 2020

/test

@openjdk
Copy link

openjdk bot commented Dec 1, 2020

Could not create test job

@jddarcy
Copy link
Member Author

jddarcy commented Dec 1, 2020

/issue 8257451
/issue 8257453

@openjdk
Copy link

openjdk bot commented Dec 1, 2020

@jddarcy
Adding additional issue to issue list: 8257451: Add SourceVersion.RELEASE_17.

@openjdk
Copy link

openjdk bot commented Dec 1, 2020

@jddarcy
Adding additional issue to issue list: 8257453: Add source 17 and target 17 to javac.

@openjdk
Copy link

openjdk bot commented Dec 1, 2020

⚠️ @jddarcy This pull request contains merges that bring in commits not present in the target repository. Since this is not a "merge style" pull request, these changes will be squashed when this pull request in integrated. If this is your intention, then please ignore this message. If you want to preserve the commit structure, you must change the title of this pull request to Merge <project>:<branch> where <project> is the name of another project in the OpenJDK organization (for example Merge jdk:master).

Copy link
Member

@dholmes-ora dholmes-ora left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good - 99% sym stuff :)

Doesn't look like the hotspot deprecated flag test will need updating this time, as no newly deprecated flags marked for obsoletion in 17.

Comment on lines 819 to 827
const Type* mt2 = t->xmeet(this);
if (mt != mt2) {
tty->print_cr("=== Meet Not Commutative ===");
tty->print("t = "); t->dump(); tty->cr();
tty->print("this = "); dump(); tty->cr();
tty->print("t meet this = "); mt2->dump(); tty->cr();
tty->print("this meet t = "); mt->dump(); tty->cr();
fatal("meet not commutative");
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merge issue??

@@ -217,7 +223,7 @@ public Target requiredTarget() {
PATTERN_MATCHING_IN_INSTANCEOF(JDK16, Fragments.FeaturePatternMatchingInstanceof, DiagKind.NORMAL),
REIFIABLE_TYPES_INSTANCEOF(JDK16, Fragments.FeatureReifiableTypesInstanceof, DiagKind.PLURAL),
RECORDS(JDK16, Fragments.FeatureRecords, DiagKind.PLURAL),
SEALED_CLASSES(JDK16, Fragments.FeatureSealedClasses, DiagKind.PLURAL),
SEALED_CLASSES(JDK17, Fragments.FeatureSealedClasses, DiagKind.PLURAL),
Copy link
Member

@dholmes-ora dholmes-ora Dec 1, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this changed because it is still preview?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right; JEP 397: "Sealed Classes (Second Preview)" is PTT for JDk 16.

@@ -24,7 +24,7 @@

#include "precompiled.hpp"

#ifdef AARCH64
#if defined(AARCH64) && !defined(ZERO)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another merge issue.

@openjdk openjdk bot removed the javadoc javadoc-dev@openjdk.org label Dec 4, 2020
@jddarcy jddarcy marked this pull request as ready for review December 4, 2020 21:14
@openjdk openjdk bot added the rfr Pull request is ready for review label Dec 4, 2020
@mlbridge
Copy link

mlbridge bot commented Dec 4, 2020

@jddarcy
Copy link
Member Author

jddarcy commented Dec 4, 2020

Usual start of release update:

  • Expected version number updates in the make system
  • New set of data files to support --release 16 in javac
  • Update to various version-related langtools APIs and tests
  • Minor N -> N+1 updates in vm and vm tests

One javadoc test that failed under the new version was fixed before this PR was sent out.

Copy link
Member

@erikj79 erikj79 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build changes look good and I'm happy there are so few of them!

@openjdk
Copy link

openjdk bot commented Dec 4, 2020

@jddarcy This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8257450: Start of release updates for JDK 17
8257451: Add SourceVersion.RELEASE_17
8257453: Add source 17 and target 17 to javac

Reviewed-by: dholmes, erikj, iris, mikael, jjg, jlahoda, jwilhelm, mchung, ihse

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been no new commits pushed to the master branch. If another commit should be pushed before you perform the /integrate command, your PR will be automatically rebased. If you prefer to avoid any potential automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Dec 4, 2020
@lahodaj
Copy link
Contributor

lahodaj commented Dec 7, 2020

The langtools changes look fine to me. There were additions/changes to jcod files under test/hotspot/jtreg/runtime/sealedClasses/ made under JDK-8246778, so these may need an update. Sorry about that.

@jddarcy
Copy link
Member Author

jddarcy commented Dec 7, 2020

The langtools changes look fine to me. There were additions/changes to jcod files under test/hotspot/jtreg/runtime/sealedClasses/ made under JDK-8246778, so these may need an update. Sorry about that.

After a merge, the tests in that directory still pass. Will keep merging in new changes and do at least more more test run before pushing. Thanks.

Copy link
Contributor

@jonathan-gibbons jonathan-gibbons left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've read all the files, and approve all the langtools related ones (i.e. not hotspot)
As you've noticed elsewhere, there's a pending conflict with Magnus' work to move files around.

@@ -107,7 +107,12 @@
/**
* 16, tbd
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "tbd" can presumably be filled in now

Comment on lines -102 to +107
{ 61, 0, Set.of()}, // JDK 17
{ 61, 0, Set.of(STATIC) }, // JDK 17
{ 61, 0, Set.of(TRANSITIVE) },
{ 61, 0, Set.of(STATIC, TRANSITIVE) },

{ 62, 0, Set.of()}, // JDK 18
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems unduly repetitive. Could this be dynamically generated, perhaps in a future release?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've had similar thoughts; that strikes me as a fine RFE for after this fork. I see what the code is doing, but haven't delved into the module system details to understand exactly the rationale for these tests. In any case, filed the RFE JDK-8257856: "Make ClassFileVersionsTest.java robust to JDK version updates."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was a change to JVMS 4.7.25 in Java 10 to add a rule for the requires_flags that are allowed. This is why this test started was created to test 53.0 vs. 54.0 class files. It wasn't intended to be a burden to update at each release so I'll re-implement it.

- compiler.warn.preview.feature.use.classfile: Bar.class, 16
- compiler.warn.preview.feature.use.classfile: Bar.class, 17
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a test can could be automated? (i.e. no manual change per release?)

* @bug 4981566 5028634 5094412 6304984 7025786 7025789 8001112 8028545 8000961 8030610 8028546 8188870 8173382 8173382 8193290 8205619 8028563 8245147 8245586
* @bug 4981566 5028634 5094412 6304984 7025786 7025789 8001112 8028545 8000961 8030610 8028546 8188870 8173382 8173382 8193290 8205619 8028563 8245147 8245586 8257453
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

long lines are annoying

@@ -293,13 +294,20 @@ protected void checksrc15(List<String> args) {
printargs("checksrc15", args);
expectedPass(args, List.of("New7.java", "New8.java", "New10.java", "New11.java",
"New14.java", "New15.java"));
// Add expectedFail after new language features added in a later release.
expectedFail(args, List.of("New16.java"));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(minor) looks like bad indentation

*
* @since 17
*/
RELEASE_17;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it make sense to have a RELEASE_LATEST for the cases that are just updated to the latest release every six months?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That kind of design was considered and rejected with the API was initially added. The use of enum constants in annotations must be an actual enum constant, not just a static final field pointing to a particular enum value. It would be possible to conceptually alias RELEASE_LATEST with whatever actual constant was the latest (16, then 17, then 18...), but that would cause issues with other uses of the API.

Copy link
Member

@magicus magicus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build changes (or should I say "change"?) looks good!

@jddarcy
Copy link
Member Author

jddarcy commented Dec 10, 2020

/integrate

@openjdk openjdk bot closed this Dec 10, 2020
@openjdk openjdk bot added integrated Pull request has been integrated and removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Dec 10, 2020
@openjdk
Copy link

openjdk bot commented Dec 10, 2020

@jddarcy Since your change was applied there have been 10 commits pushed to the master branch:

  • d163c6f: 8258015: [JVMCI] JVMCI_lock shouldn't be held while initializing box classes
  • b35401d: 8257966: Instrument test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/StateTestService.java
  • 37043b0: 8257837: Performance regression in heap byte buffer views
  • 0890620: 8258005: JDK build fails with incorrect fixpath script
  • 502a524: 8257602: Introduce JFR Event Throttling and new jdk.ObjectAllocationSample event (enabled by default)
  • 026b09c: 8257483: C2: Split immediate vector rotate from RotateLeftV and RotateRightV nodes
  • 0a0691e: 8257901: ZGC: Take virtual memory usage into account when sizing heap
  • 29ffffa: 8257997: sun/security/ssl/SSLSocketImpl/SSLSocketLeak.java again reports leaks after JDK-8257884
  • db5da96: 8257876: Avoid Reference.isEnqueued in tests
  • 4a839e9: 8256459: java/net/httpclient/ManyRequests.java and java/net/httpclient/LineBodyHandlerTest.java fail infrequently with java.net.ConnectException: Connection timed out: no further information

Your commit was automatically rebased without conflicts.

Pushed as commit 6be1f56.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

@jddarcy jddarcy deleted the JDK-8257450 branch February 9, 2021 02:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build build-dev@openjdk.org compiler compiler-dev@openjdk.org core-libs core-libs-dev@openjdk.org hotspot hotspot-dev@openjdk.org integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.