JDK 12 is now in the Release Candidate phase
The general availability is about a month away and that means it is time for the RC phase! The stabilization repository, jdk/jdk12, is now open for P1 bug fixes and there’s some important information you should keep in mind. Let’s have a look.
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:
As for the schedule, it still goes as follows:
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 January 21, 2018
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.