[prev in list] [next in list] [prev in thread] [next in thread] 

List:       poi-dev
Subject:    JDK 21 Release Candidates & JVM Language Summit
From:       David Delabassee <david.delabassee () oracle ! com>
Date:       2023-08-22 15:32:13
Message-ID: SA1PR10MB7699E9529BE72AED8059B912FC1FA () SA1PR10MB7699 ! namprd10 ! prod ! outlook ! com
[Download RAW message or body]

[Attachment #2 (text/plain)]

Greetings!

JDK 21 is now in the Release Candidate Phase so everything is on track for the Java \
21 GA release on September 19th! If you haven't done so, please start testing your \
project(s) using JDK 22 Early-Access builds and let us know the results.

In other news, the JVM Language Summit took place a few days ago in Santa Clara \
(California). During this unique gathering of Java architects and OpenJDK developers, \
key updates were shared and discussed, ex. where Valhalla stands today, the new \
Class-File API, an update on Leyden and Valhalla, Project Panama, the challenges of \
Virtual Threads, continuation internals, etc. We have started to publish the JVMLS \
2023 videos so make sure to keep an eye on this evolving JVMLS playlist [1] to \
understand where the Java platform is heading to.


## JDK 21 Early-Access Builds

Per the JDK 21 schedule [2], we are now in the Release-Candidate Phase. The overall \
feature set [3] is frozen, no further JEPs will be targeted to this release.

### JEPs integrated to JDK 21:
- 430: String Templates (Preview)
- 431: Sequenced Collections
- 439: Generational ZGC
- 440: Record Patterns
- 441: Pattern Matching for switch  
- 442: Foreign Function & Memory API (3rd Preview)
- 443: Unnamed Patterns and Variables (Preview)   
- 444: Virtual Threads
- 445: Unnamed Classes and Instance Main Methods (Preview)
- 446: Scoped Values (Preview)
- 448: Vector API (6th Incubator)
- 449: Deprecate the Windows 32-bit x86 Port for Removal
- 451: Prepare to Disallow the Dynamic Loading of Agents
- 452: Key Encapsulation Mechanism API
- 453: Structured Concurrency (Preview)

The first JDK 21 Release Candidate builds (builds 35) are available [4]. Those builds \
are provided under the GNU General Public License v2, with the Classpath Exception. \
The Release Notes [5] and the Javadocs [6] are also available.

[1] https://www.youtube.com/playlist?list=PLX8CzqL3ArzW90jKUCf4H6xCKpStxsOzp
[2] https://openjdk.org/projects/jdk/21/#Schedule
[3] https://openjdk.org/projects/jdk/21/#Features
[4] https://jdk.java.net/21/
[5] https://jdk.java.net/21/release-notes
[6] https://download.java.net/java/early_access/jdk21/docs/api/


## JDK 22 Early-Access Builds

The latest Early-Access builds 11 are available [7], and are provided under the GNU \
General Public License v2, with the Classpath Exception. The Release Notes are \
available here [8].

### Changes in recent JDK 22 builds (b8-b11) that may be of interest:

Note that this is only a curated list of changes, make sure to check [9] for \
additional changes.

- JDK-8314209: Wrong @since tag for RandomGenerator::equiDoubles [Reported by JaCoCo]
- JDK-8312489: Increase Default Value of the System Property \
                jdk.jar.maxSignatureFileSize
- JDK-8312433: HttpClient request fails due to connection being considered …
- JDK-8313307: java/util/Formatter/Padding.java fails on some Locales
- JDK-8312821: Javac accepts char literal as template
- JDK-8313251: Add NativeLibraryLoad event
- JDK-8313809: String template fails with java.lang.StringIndexOutOfBoundsE…
- JDK-8312984: javac may crash on a record pattern with too few components
- JDK-8310033: Clarify return value of Java Time compareTo methods
- JDK-8302017: Allocate BadPaddingException only if it will be thrown
- JDK-8310913: Move ReferencedKeyMap to jdk.internal so it may be shared
- JDK-8313251: Add NativeLibraryLoad event to provide more detail about shared \
                lib/dll loads
- JDK-8311653: Modify -XshowSettings launcher behavior
- JDK-8306441: Two phase segmented heap dump
- JDK-8311981: JVM May Hang When Using Generational ZGC if a VM Handshake Stalls on \
                Memory
- JDK-8308850: Change JVM options with small ranges that get -Wconversion warnings to \
32 bits

[7] https://jdk.java.net/22/
[8] https://jdk.java.net/22/release-notes
[9] https://github.com/openjdk/jdk/compare/jdk-22%2B8...jdk-22%2B11


## JavaFX 21 & 22 Early-Access Builds

These are early-access builds of the JavaFX Runtime, built from openjdk/jfx [10]. \
They allow JavaFX application developers to build and test their applications with \
JavaFX 21 or 22 on the latest JDK.

The latest builds 29 (2023/8/7) of JavaFX 21 are now available [11]. The early-access \
builds 5 (2023/8/18) of the JavaFX 22 Runtime which is designed to work with JDK 22 \
are also available [12]. These early-access builds are provided under the GNU General \
Public License, version 2, with the Classpath Exception. Please send the feedback on \
the openjfx-dev mailing list [13].

[10] https://github.com/openjdk/jfx
[11] https://jdk.java.net/javafx21/
[12] https://jdk.java.net/javafx22/
[13] http://mail.openjdk.org/mailman/listinfo/openjfx-dev


## Topics of Interest:

JDK 21: G1/Parallel/Serial GC improvements
https://tschatzl.github.io/2023/08/04/jdk21-g1-parallel-gc-changes.html

To Java 21 and Beyond!
https://inside.java/2023/08/08/to-java21-and-beyond/

Strengthen your Java App's Defenses with Key Encapsulation Mechanism API
https://inside.java/2023/08/03/newscast-54/

JVMLS - Foreign Function & Memory API
https://inside.java/2023/08/21/jvmls-ffm-api/

JVMLS - Java and GPU … are we nearly there yet?
https://inside.java/2023/08/22/java-and-gpu/

Draft JEP: Computed Constants
https://minborgsjavapot.blogspot.com/2023/08/java-new-draft-jep-computed-constants.html


Using Computed Constants to Manage Static State in Leyden
https://cr.openjdk.org/~jrose/leyden/after-computed-constants.html

Project Leyden: Toward Condensers
https://openjdk.org/projects/leyden/notes/03-toward-condensers

New OpenJDK Container mailing list
https://mail.openjdk.org/pipermail/container-discuss/2023-August/000000.html

Introduction: Q-descriptors and v-bytecodes
https://cr.openjdk.org/~jrose/values/larval-values.html

~

Until next time!

--David



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic