v53 class files
jonathan.gibbons at oracle.com
Sat Jan 30 03:11:40 UTC 2016
There are a number of reasons why it will be appropriate to increase the
classfile version number for files generated by javac for use on JDK 9.
The list includes:
1. Unicode 8.0 -- Interpretation of Unicode escapes in string literals
depends at run time on the SE 9 API. (Due to Unicode 8.0 assigning more
code points, a program containing Unicode escapes "means something
different" on SE 9 versus SE 8, so compiling it with -source 9 must
imply -target 9, and hence v53.0 class files.)
2. Implementation of the String + operator depends at run time on the SE
3. Invocation of VarHandle methods depends at run time on the SE 9 API.
4. New 'Module' attribute for class files.
While it is generally standard practice to increase the default
classfile version number in each new major release of JDK, it has also
been standard practice to defer the change during development of that
release, to give tools and libraries a change to prepare for the change,
and to be ready to accept class files with the new version number.
With that as context, this is to give notice that it will soon be time
to make the change to using v53.0 class files, and that anyone writing
tools and libraries for use on JDK 9 that process class files should
update their code to handle the new version number.
More information about the jdk9-dev