-
CSR
-
Resolution: Approved
-
P2
-
binary
-
minimal
-
Class file construct
-
JDK
Summary
Increment the class file major version number from 53 to 54 (10 - 5 + 49)
Problem
For every major release the class file major version number should be incremented (regardless of if there are any changes that mandate such a change). (It's debatable whether future platform releases require a CSR for such changes but at least for the first time the CSR affords visibility into the new release process.)
Solution
The platform will be modified so tools such as the Java compiler and launcher will consume and produce 54 version class files.
The lower bound (6) for the source
, release
, and target
options of javac
will not change.
Specification
Per JDK-8190736, the JVM Specification (Java SE 18.3 Edition, see http://ribbit.us.oracle.com/tmp/iris/java-se-18.3-pr-spec/java-se-18.3-annex-3.html) establishes the 54.0 class file format in section 4.1 as follows:
A Java Virtual Machine implementation can support a class file format of version v if and only if v lies in some contiguous range Mi.0 ≤ v ≤ Mj.m. The range is based on the version of the Java SE Platform to which the implementation conforms. An implementation which conforms to a given Java SE Platform version must support the range specified in Table 4.1-A for that version, and no other range. (For historical cases, the JDK version is shown instead of the Java SE Platform version.)
Table 4.1-A. class file format version ranges (by Java SE Platform)
Java SE class file format version range
1.0.2 45.0 ≤ v ≤ 45.3
1.1 45.0 ≤ v ≤ 45.65535
1.2 45.0 ≤ v ≤ 46.0
1.3 45.0 ≤ v ≤ 47.0
1.4 45.0 ≤ v ≤ 48.0
5.0 45.0 ≤ v ≤ 49.0
6 45.0 ≤ v ≤ 50.0
7 45.0 ≤ v ≤ 51.0
8 45.0 ≤ v ≤ 52.0
9 45.0 ≤ v ≤ 53.0
18.3 45.0 ≤ v ≤ 54.0
- csr of
-
JDK-8188870 Bump classfile version number to 54
- Resolved
- relates to
-
JDK-8180865 Add -source 10 and -target 10 to javac
- Closed