diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index d02ef91ad86..9bb43a8b83c 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -63,7 +63,7 @@ env: jobs: build-windows: name: build - runs-on: windows-2019 + runs-on: windows-2025 defaults: run: shell: bash @@ -102,7 +102,7 @@ jobs: id: toolchain-check run: | set +e - '/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/vc/auxiliary/build/vcvars64.bat' -vcvars_ver=${{ inputs.msvc-toolset-version }} + '/c/Program Files/Microsoft Visual Studio/2022/Enterprise/vc/auxiliary/build/vcvars64.bat' -vcvars_ver=${{ inputs.msvc-toolset-version }} if [ $? -eq 0 ]; then echo "Toolchain is already installed" echo "toolchain-installed=true" >> $GITHUB_OUTPUT @@ -115,7 +115,7 @@ jobs: run: | # Run Visual Studio Installer '/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \ - modify --quiet --installPath 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise' \ + modify --quiet --installPath 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise' \ --add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }} if: steps.toolchain-check.outputs.toolchain-installed != 'true' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6ca64bb82d0..0e64ad78625 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -310,7 +310,7 @@ jobs: uses: ./.github/workflows/build-windows.yml with: platform: windows-x64 - msvc-toolset-version: '14.29' + msvc-toolset-version: '14.43' msvc-toolset-architecture: 'x86.x64' configure-arguments: ${{ github.event.inputs.configure-arguments }} make-arguments: ${{ github.event.inputs.make-arguments }} @@ -322,7 +322,7 @@ jobs: uses: ./.github/workflows/build-windows.yml with: platform: windows-aarch64 - msvc-toolset-version: '14.29' + msvc-toolset-version: '14.43' msvc-toolset-architecture: 'arm64' make-target: 'hotspot' extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin' @@ -393,5 +393,5 @@ jobs: with: platform: windows-x64 bootjdk-platform: windows-x64 - runs-on: windows-2019 + runs-on: windows-2025 debug-suffix: -debug diff --git a/.jcheck/conf b/.jcheck/conf index 6ab5c2d64c2..60881e74d2a 100644 --- a/.jcheck/conf +++ b/.jcheck/conf @@ -1,7 +1,7 @@ [general] project=jdk jbs=JDK -version=25 +version=26 [checks] error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists,copyright diff --git a/doc/starting-next-release.html b/doc/starting-next-release.html new file mode 100644 index 00000000000..421229f9fbc --- /dev/null +++ b/doc/starting-next-release.html @@ -0,0 +1,127 @@ + + + + + + + Explanation of start of release changes + + + + + +
+

Explanation of start of release changes

+
+ +

Overview

+

The start of release changes, the changes that turn JDK N +into JDK (N+1), are primarily small updates to various files +along with new files to store symbol information to allow +javac --release N ... to run on JDK (N+1).

+

The updates include changes to files holding meta-data about the +release, files under the src directory for API and tooling +updates, and incidental updates under the test +directory.

+

Details and file updates

+

As a matter of policy, there are a number of semantically distinct +concepts which get incremented separately at the start of a new +release:

+ +

The expected file updates are listed below. Additional files may need +to be updated for a particular release.

+

Meta-data files

+ +

src files

+ +

test files

+ + + diff --git a/doc/starting-next-release.md b/doc/starting-next-release.md new file mode 100644 index 00000000000..10bc364a3e4 --- /dev/null +++ b/doc/starting-next-release.md @@ -0,0 +1,68 @@ +% Explanation of start of release changes + +## Overview + +The start of release changes, the changes that turn JDK _N_ into JDK +(_N_+1), are primarily small updates to various files along with new files to +store symbol information to allow `javac --release N ...` to run on +JDK (_N_+1). + +The updates include changes to files holding meta-data about the +release, files under the `src` directory for API and tooling updates, +and incidental updates under the `test` directory. + +## Details and file updates + +As a matter of policy, there are a number of semantically distinct +concepts which get incremented separately at the start of a new +release: + +* Feature value of `Runtime.version()` +* Highest source version modeled by `javax.lang.model.SourceVersion` +* Highest class file format major version recognized by the platform +* Highest `-source`/`-target`/`--release` argument recognized by + `javac` and related tools + +The expected file updates are listed below. Additional files may need +to be updated for a particular release. + +### Meta-data files + +* `jcheck/conf`: update meta-data used by `jcheck` and the Skara tooling +* `make/conf/version-numbers.conf`: update to meta-data used in the build + +### `src` files + +* `src/hotspot/share/classfile/classFileParser.cpp`: add a `#define` + for the new version +* `src/java.base/share/classes/java/lang/classfile/ClassFile.java`: + add a constant for the new class file format version +* `src/java.base/share/classes/java/lang/reflect/ClassFileFormatVersion.java`: + add an `enum` constant for the new class file format version +* `src/java.compiler/share/classes/javax/lang/model/SourceVersion.java`: + add an `enum` constant for the new source version +* `src/java.compiler/share/classes/javax/lang/model/util/*` visitors: Update + `@SupportedSourceVersion` annotations to latest value. Note this update + is done in lieu of introducing another set of visitors for each Java + SE release. +* `src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java`: + add an `enum` constant for the new source version internal to `javac` +* `src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java`: + add an `enum` constant for the new class file format version internal to `javac` +* `src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java`: + add an `enum` constant for the new target version internal to `javac` +* `src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java` + update printing processor to support the new source version +* The symbol information for `--release` is stored as new text files in the + `src/jdk.compiler/share/data/symbols` directory, one file per + module. The README file in that directory contains directions on how + to create the files. + +### `test` files + +* `test/langtools/tools/javac/api/TestGetSourceVersions.java`: add new `SourceVersion` constant to test matrix. +* `test/langtools/tools/javac/classfiles/ClassVersionChecker.java`: add new enum constant for the new class file version +* `test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java` + update annotation processor extended by `javac` tests to cover the new source version +* `test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out` and `test/langtools/tools/javac/preview/classReaderTest/Client.preview.out`: update expected messages for preview errors and warnings + diff --git a/doc/testing.html b/doc/testing.html index 6288a552bf0..b9d1f4ed22f 100644 --- a/doc/testing.html +++ b/doc/testing.html @@ -72,9 +72,11 @@ id="toc-notes-for-specific-tests">Notes for Specific Tests
  • Non-US locale
  • PKCS11 Tests
  • +
  • Testing Ahead-of-time -Optimizations
  • +id="toc-testing-ahead-of-time-optimizations">### Testing Ahead-of-time +Optimizations +