The second release candidate for JDK 12 is here
The general availability is less than a month away and the second release candidate brings just a single bug fix. The stabilization repository, jdk/jdk12, remains open for P1 bug fixes but for now, let’s have a look at the second release candidate.
The Release Candidate Phase for JDK 12 opened earlier this month and we already have the second RC going live.
As we are less than a month away from general availability, this release candidate features only a single bug fix.
Let’s have a look.
The VNNI optimizations patch inadvertently sets the VPCLMULQDQ cpu feature bit even on platforms where VPCLMULQDQ is not available. When the java.util.zip CRC32 update intrinsics kick in, it then uses the VPCLMULQDQ instruction which results in illegal instruction exception. With this release, the bug has been fixed.
Here is the release schedule for JDK12, if you need to refresh your memory:
2018/12/13 Rampdown Phase One (fork from main line)
2019/01/17 Rampdown Phase Two
2019/02/07 Release-Candidate Phase
2019/03/19 General Availability
Update February 12, 2019
We are almost a month away from the general availability for JDK 12 and that can mean only one thing – we have officially entered the Release Candidate phase!
The stabilization repository, jdk/jdk12, is now open for P1 bug fixes according to the JDK Release Process (JEP 3).
You should keep in mind that all changes require approval via the Fix-Request Process and if you are responsible for any bugs that appear on the RC candidate-bug list, you should have a look at that JEP 3 for guidance on how to handle them.
Here are the bugs we have so far:
Update January 21, 2019
More than a month ago, JDK 12 entered Rampdown Phase One which basically means that the overall feature set is frozen and no further JEPs will be targeted to this release.
Here are the fixes introduced since Phase One:
Update December 14, 2018
JDK 12 is certain to have 8 features and one that is proposed to get dropped from the JDK. Let’s have a quick look at the features list.
JDK 12 features
JEP proposed to drop from JDK 12
326: Raw String Literals (Preview) — Review ends: 2018/12/18
Add raw string literals to the Java programming language. A raw string literal can span multiple lines of source code and does not interpret escape sequences, such as
\n, or Unicode escapes, of the form
\uXXXX. This will be a preview language feature.
JEPs targeted to JDK 12
Add a new garbage collection (GC) algorithm named Shenandoah which reduces GC pause times by doing evacuation work concurrently with the running Java threads. Pause times with Shenandoah are independent of heap size, meaning you will have the same consistent pause times whether your heap is 200 MB or 200 GB.
230: Microbenchmark Suite
Add a basic suite of microbenchmarks to the JDK source code, and make it easy for developers to run existing microbenchmarks and create new ones.
Extend the switch statement so that it can be used as either a statement or an expression, and that both forms can use either a “traditional” or “simplified” scoping and control flow behavior. These changes will simplify everyday coding, and also prepare the way for the use of pattern matching (JEP 305) in switch. This will be a preview language feature.
334: JVM Constants API
Introduce an API to model nominal descriptions of key class-file and run-time artifacts, in particular constants that are loadable from the constant pool.
Remove all of the sources related to the arm64 port while retaining the 32-bit ARM port and the 64-bit aarch64 port.
341: Default CDS Archives
Enhance the JDK build process to generate a class data-sharing (CDS) archive, using the default class list, on 64-bit platforms.
Make G1 mixed collections abortable if they might exceed the pause target.
Enhance the G1 garbage collector to automatically return Java heap memory to the operating system when idle.