JDK 22 Release Candidates & Virtual Threads pinning heads-up

David Delabassee <[email protected]> Tue, 20 Feb 2024 09:08:14 +0000
Newsgroups gmane.comp.lang.jython.devel
Message-ID <SA1PR10MB7699470C0112C3A90D35896EFC502@SA1PR10MB7699.namprd10.prod.outlook.com>
--===============0835448973941486404==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_SA1PR10MB7699470C0112C3A90D35896EFC502SA1PR10MB7699namp_"

--_000_SA1PR10MB7699470C0112C3A90D35896EFC502SA1PR10MB7699namp_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

Welcome to the latest OpenJDK Quality Outreach update!

The first JDK 22 Release Candidates builds are now available [1]. At this s=
tage, only P1 issues will still be evaluated. And with the JDK 22 General A=
vailability set for March 19th, it is now time to fully focus on JDK 23. At=
 the time of writing, one JEP has already been integrated in JDK 23, i.e., =
JEP 455: 'Primitive Types in Patterns, instanceof, and switch (Preview)' [2=
]. But new JEP candidates [3][4] have recently been announced, so things sh=
ould evolve rapidly.

I'd like to thank those of you who have already provided feedback on the JD=
K 22 EA builds. Feedback is always extremely useful, even more, when it com=
es early in the development cycle. Another area where we need your help is =
Loom. So, please make sure to check the heads-up below that discusses the s=
o-called Virtual Threads "pinning" issue.

[1] https://openjdk.org/projects/jdk/22/
[2] https://openjdk.org/jeps/455
[3] https://openjdk.org/jeps/465
[4] https://openjdk.org/jeps/466


## Heads-up: Virtual Threads =93Pinning=94 Issue

Virtual threads became a permanent feature in JDK 21. This feature has been=
 extremely well received by the Java ecosystem but there are still a few pa=
in points. Much has been written about the so-called "pinning" issue that a=
rises with synchronized methods or synchronized statements. The two most co=
mmon cases are (a) a virtual thread parks (ex. doing socket I/O) while in a=
 synchronized method, and (b) a virtual thread blocks entering a synchroniz=
ed method because the object's associated monitor is held by another thread=
. In both cases, the underlying carrier/native thread is not "released" to =
do other work. Performance and scalability may suffer and in some cases, st=
arvation and deadlock might happen. This recent "Virtual Threads Next Steps=
" video [5] explains in more details the why's and discusses some potential=
 solutions.

New Loom early-access builds haven been recently published [6]. Those Loom =
EA builds have changes to the object monitor implementation that do not pin=
 for these two common cases. The Loom team needs your help to test these up=
dated object monitors with code that you know is using virtual threads and =
with libraries that are heavily synchronized. The goal is to gauge both rel=
iability and performance.

The simplest way to report an issue or feedback is to use the Loom mailing =
list [7]. For the VM savvy, testing with both `-XX:LockingMode=3D1` (curren=
t default) and `-XX:LockingMode=3D2` would be extremely helpful as that wou=
ld exercise the two locking modes currently implemented by the HotSpot VM.

[5] https://inside.java/2024/02/17/virtual-threads-next-steps/
[6] https://jdk.java.net/loom/
[7] https://mail.openjdk.org/pipermail/loom-dev/


## JDK 22 Release Candidates

The JDK 22 Release Candidate builds (builds 36) are available [8] and are p=
rovided under the GNU General Public License v2, with the Classpath Excepti=
on. The Release Notes are available here [9], and the javadocs here [10].

[8] https://jdk.java.net/22/
[9] https://jdk.java.net/22/release-notes
[10] https://download.java.net/java/early_access/jdk22/docs/api/


## JDK 23 Early-Access Builds

The JDK 23 Early-Access builds 10 are available [11], and are provided unde=
r the GNU General Public License v2, with the Classpath Exception. The Rele=
ase Notes are available here [12].

### Changes in recent JDK 23 builds that may be of interest:

- JDK-8324287: Record total and free swap space in JFR
- JDK-8275338: Add JFR events for notable serialization situations
- JDK-8324665: Loose matching of space separators in the lenient date/time =
parsing mode
- JDK-8324066: "clhsdb jstack" should not by default scan for j.u.c locks b=
ecause it can be very slow
- JDK-8323699: MessageFormat.toPattern() generates non-equivalent MessageFo=
rmat pattern
- JDK-8325221: Obsolete TLABStats
- JDK-8322535: Change default AArch64 SpinPause instruction
- JDK-8323746: Add PathElement hashCode and equals
- JDK-8325570: Update to Graphviz 9.0.0
- JDK-8303866: Allow ZipInputStream.readEnd to parse small Zip64 ZIP files
- JDK-8320458: Improve structural navigation in API documentation
- JDK-8324068: Improve references to tags in the Doc Comment Spec
- JDK-8322366: Add IEEE rounding mode corruption check to JNI checks
- JDK-8321545: Override toString() for Format subclasses
- JDK-8324301: Obsolete MaxGCMinorPauseMillis
- JDK-8324632: Update Zlib Data Compression Library to Version 1.3.1
- JDK-8324771: Obsolete RAMFraction related flags
- JDK-8323645: Remove unused internal sun.net.www.protocol.jar.URLJarFileCa=
=85
- JDK-8325150: (tz) Update Timezone Data to 2024a
- JDK-8324571: JDK 23 L10n resource files update

Note: Complete list of changes can be found here [13].

[11] https://jdk.java.net/23/
[12] https://jdk.java.net/23/release-notes
[13] https://github.com/openjdk/jdk/compare/jdk-23+6...jdk-23+10


## JavaFX Early-Access Builds:

These are early access builds of the JavaFX 22 & 23 Runtime built from open=
jdk/jfx [14]. These builds enable JavaFX application developers to build an=
d test their applications with JavaFX 22 & 23 on JDK 22 & 23 respectively. =
Although these builds are designed to work with JDK 22 and above, they are =
also known to work with JDK 17 and later versions.

The latest early access builds of JavaFX 22 Builds 29 are available [15], u=
nder the GNU General Public License, version 2, with the Classpath Exceptio=
n. JavaFX 22 API Javadocs [16] are also available.

The latest early access builds of JavaFX 23 Builds 5 are available [17], un=
der the GNU General Public License, version 2, with the Classpath Exception=
. JavaFX 23 API Javadocs [18] are also available.

[14] https://github.com/openjdk/jfx
[15] https://jdk.java.net/javafx22/
[16] https://download.java.net/java/early_access/javafx22/docs/api/overview=
-summary.html
[17] https://jdk.java.net/javafx23/
[18] https://download.java.net/java/early_access/javafx23/docs/api/overview=
-summary.html


## Topics of Interest

- Java Renaissance Keynote
https://inside.java/2024/02/05/java-renaissance/

- Managing Throughput with Virtual Threads - Sip of Java
https://inside.java/2024/02/04/sip094/

- Data-Oriented Programming in Java 21 - JEP Caf=E9
https://inside.java/2024/02/08/jepcafe22/

- Does Java 22 Kill Build Tools? - Inside Java Newscast
https://inside.java/2024/02/15/newscast-63/

- JDK 22 G1/Parallel/Serial GC changes
https://tschatzl.github.io/2024/02/06/jdk22-g1-parallel-gc-changes.html

- Java 22 Previews Statements Before super(...) and this(...)
https://inside.java/2024/02/01/newscast-62/

- State of jextract
https://cr.openjdk.org/~mcimadamore/panama/jextract_changes.html

- FOSDEM 2024: FFM API - A (quick) peek under the hood
https://inside.java/2024/02/13/fosdem2024-ffm-api/

- FOSDEM 2024: Virtual Threads - Next Steps
https://inside.java/2024/02/17/virtual-threads-next-steps/

- Java Language Update - Early 2024 Edition
https://inside.java/2024/02/18/java-language-update-early-2024-update/

- When Should a Compiler Expand Garbage Collection Barriers?
https://robcasloz.github.io/blog/2024/02/14/when-should-a-compiler-expand-g=
arbage-collection-barriers.html

- Emulating C# LINQ in Java using Code Reflection
https://openjdk.org/projects/babylon/articles/linq

- Automatic differentiation of Java code using Code Reflection
https://openjdk.org/projects/babylon/articles/auto-diff


## Java Cryptographic Roadmap Update

The Java Cryptographic Roadmap [19] has been updated with the following pla=
nned changes.

* Enable XML Signature secure validation mode by default on JDK 11 and JDK =
8
- Target date changed from the July 2024 CPU to the April 2024 CPU.
- This change has already been made in JDK 17 and later releases.

* Disable DTLS 1.0 in JDK 17 and 11 with the July 2024 CPU
- This change has already been made in JDK 20 and later releases.
- DTLS is not available in releases prior to JDK 9.

[19] https://www.java.com/en/jre-jdk-cryptoroadmap.html


~

That's it for this installment. As usual, if you have issues, or questions,=
 please ping me.

--David

--_000_SA1PR10MB7699470C0112C3A90D35896EFC502SA1PR10MB7699namp_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=3D"urn:sc=
hemas-microsoft-com:office:word" xmlns:m=3D"http://schemas.microsoft.com/of=
fice/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ligatures:standardcontextual;
	mso-fareast-language:EN-US;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style>
</head>
<body lang=3D"en-BE" link=3D"#0563C1" vlink=3D"#954F72" style=3D"word-wrap:=
break-word">
<div class=3D"WordSection1">
<div>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">Welcome to the la=
test OpenJDK Quality Outreach update!<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">The first JDK 22 =
Release Candidates builds are now available [1]. At this stage, only P1 iss=
ues will still be evaluated. And with the JDK 22 General Availability set f=
or March 19th, it is now time to fully
 focus on JDK 23. At the time of writing, one JEP has already been integrat=
ed in JDK 23, i.e., JEP 455: 'Primitive Types in Patterns, instanceof, and =
switch (Preview)' [2]. But new JEP candidates [3][4] have recently been ann=
ounced, so things should evolve
 rapidly. <o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">I'd like to thank=
 those of you who have already provided feedback on the JDK 22 EA builds. F=
eedback is always extremely useful, even more, when it comes early in the d=
evelopment cycle. Another area where
 we need your help is Loom. So, please make sure to check the heads-up belo=
w that discusses the so-called Virtual Threads &quot;pinning&quot; issue.<o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[1] <a href=3D"ht=
tps://openjdk.org/projects/jdk/22/">
<span style=3D"color:#0563C1">https://openjdk.org/projects/jdk/22/</span></=
a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[2]&nbsp;<a href=
=3D"https://openjdk.org/jeps/455"><span style=3D"color:#0563C1">https://ope=
njdk.org/jeps/455</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[3] <a href=3D"ht=
tps://openjdk.org/jeps/465">
<span style=3D"color:#0563C1">https://openjdk.org/jeps/465</span></a><o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[4] <a href=3D"ht=
tps://openjdk.org/jeps/466">
<span style=3D"color:#0563C1">https://openjdk.org/jeps/466</span></a><o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">## Heads-up: Virt=
ual Threads =93Pinning=94 Issue<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">Virtual threads b=
ecame a permanent feature in JDK 21. This feature has been extremely well r=
eceived by the Java ecosystem but there are still a few pain points. Much h=
as been written about the so-called
 &quot;pinning&quot; issue that arises with synchronized methods or synchro=
nized statements. The two most common cases are (a) a virtual thread parks =
(ex. doing socket I/O) while in a synchronized method, and (b) a virtual th=
read blocks entering a synchronized method
 because the object's associated monitor is held by another thread. In both=
 cases, the underlying carrier/native thread is not &quot;released&quot; to=
 do other work. Performance and scalability may suffer and in some cases, s=
tarvation and deadlock might happen. This
 recent &quot;Virtual Threads Next Steps&quot; video [5] explains in more d=
etails the why's and discusses some potential solutions.<o:p></o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">New Loom early-ac=
cess builds haven been recently published [6]. Those Loom EA builds have ch=
anges to the object monitor implementation that do not pin for these two co=
mmon cases. The Loom team needs your
 help to test these updated object monitors with code that you know is usin=
g virtual threads and with libraries that are heavily synchronized. The goa=
l is to gauge both reliability and performance.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">The simplest way =
to report an issue or feedback is to use the Loom mailing list [7]. For the=
 VM savvy, testing with both `-XX:LockingMode=3D1` (current default) and `-=
XX:LockingMode=3D2` would be extremely helpful
 as that would exercise the two locking modes currently implemented by the =
HotSpot VM.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[5] <a href=3D"ht=
tps://inside.java/2024/02/17/virtual-threads-next-steps/">
<span style=3D"color:#0563C1">https://inside.java/2024/02/17/virtual-thread=
s-next-steps/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[6] <a href=3D"ht=
tps://jdk.java.net/loom/">
<span style=3D"color:#0563C1">https://jdk.java.net/loom/</span></a><o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[7] <a href=3D"ht=
tps://mail.openjdk.org/pipermail/loom-dev/">
<span style=3D"color:#0563C1">https://mail.openjdk.org/pipermail/loom-dev/<=
/span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">## JDK 22 Release=
 Candidates<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">The JDK 22 Releas=
e Candidate builds (builds 36) are available [8] and are provided under the=
 GNU General Public License v2, with the Classpath Exception. The Release N=
otes are available here [9], and the
 javadocs here [10].<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[8] <a href=3D"ht=
tps://jdk.java.net/22/">
<span style=3D"color:#0563C1">https://jdk.java.net/22/</span></a><o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[9] <a href=3D"ht=
tps://jdk.java.net/22/release-notes">
<span style=3D"color:#0563C1">https://jdk.java.net/22/release-notes</span><=
/a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[10] <a href=3D"h=
ttps://download.java.net/java/early_access/jdk22/docs/api/">
<span style=3D"color:#0563C1">https://download.java.net/java/early_access/j=
dk22/docs/api/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">## JDK 23 Early-A=
ccess Builds<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">The JDK 23 Early-=
Access builds 10 are available [11], and are provided under the GNU General=
 Public License v2, with the Classpath Exception. The Release Notes are ava=
ilable here [12].<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">### Changes in re=
cent JDK 23 builds that may be of interest:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8324287: Re=
cord total and free swap space in JFR<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8275338: Ad=
d JFR events for notable serialization situations<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8324665: Lo=
ose matching of space separators in the lenient date/time parsing mode<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8324066: &q=
uot;clhsdb jstack&quot; should not by default scan for j.u.c locks because =
it can be very slow<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8323699: Me=
ssageFormat.toPattern() generates non-equivalent MessageFormat pattern<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8325221: Ob=
solete TLABStats<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8322535: Ch=
ange default AArch64 SpinPause instruction<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8323746: Ad=
d PathElement hashCode and equals<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8325570: Up=
date to Graphviz 9.0.0<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8303866: Al=
low ZipInputStream.readEnd to parse small Zip64 ZIP files<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8320458: Im=
prove structural navigation in API documentation<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8324068: Im=
prove references to tags in the Doc Comment Spec<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8322366: Ad=
d IEEE rounding mode corruption check to JNI checks<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8321545: Ov=
erride toString() for Format subclasses<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8324301: Ob=
solete MaxGCMinorPauseMillis<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8324632: Up=
date Zlib Data Compression Library to Version 1.3.1<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8324771: Ob=
solete RAMFraction related flags<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8323645: Re=
move unused internal sun.net.www.protocol.jar.URLJarFileCa=85<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8325150: (t=
z) Update Timezone Data to 2024a<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK-8324571: JD=
K 23 L10n resource files update<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">Note: Complete li=
st of changes can be found here [13].<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[11] <a href=3D"h=
ttps://jdk.java.net/23/">
<span style=3D"color:#0563C1">https://jdk.java.net/23/</span></a><o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[12] <a href=3D"h=
ttps://jdk.java.net/23/release-notes">
<span style=3D"color:#0563C1">https://jdk.java.net/23/release-notes</span><=
/a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[13] <a href=3D"h=
ttps://github.com/openjdk/jdk/compare/jdk-23+6...jdk-23+10">
<span style=3D"color:#0563C1">https://github.com/openjdk/jdk/compare/jdk-23=
+6...jdk-23+10</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">&nbsp;&nbsp;<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">## JavaFX Early-A=
ccess Builds:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">These are early a=
ccess builds of the JavaFX 22 &amp; 23 Runtime built from openjdk/jfx [14].=
 These builds enable JavaFX application developers to build and test their =
applications with JavaFX 22 &amp; 23 on JDK
 22 &amp; 23 respectively. Although these builds are designed to work with =
JDK 22 and above, they are also known to work with JDK 17 and later version=
s.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">The latest early =
access builds of JavaFX 22 Builds 29 are available [15], under the GNU Gene=
ral Public License, version 2, with the Classpath Exception. JavaFX 22 API =
Javadocs [16] are also available.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">The latest early =
access builds of JavaFX 23 Builds 5 are available [17], under the GNU Gener=
al Public License, version 2, with the Classpath Exception. JavaFX 23 API J=
avadocs [18] are also available.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[14] <a href=3D"h=
ttps://github.com/openjdk/jfx">
<span style=3D"color:#0563C1">https://github.com/openjdk/jfx</span></a><o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[15] <a href=3D"h=
ttps://jdk.java.net/javafx22/">
<span style=3D"color:#0563C1">https://jdk.java.net/javafx22/</span></a><o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[16] <a href=3D"h=
ttps://download.java.net/java/early_access/javafx22/docs/api/overview-summa=
ry.html">
<span style=3D"color:#0563C1">https://download.java.net/java/early_access/j=
avafx22/docs/api/overview-summary.html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[17] <a href=3D"h=
ttps://jdk.java.net/javafx23/">
<span style=3D"color:#0563C1">https://jdk.java.net/javafx23/</span></a><o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[18] <a href=3D"h=
ttps://download.java.net/java/early_access/javafx23/docs/api/overview-summa=
ry.html">
<span style=3D"color:#0563C1">https://download.java.net/java/early_access/j=
avafx23/docs/api/overview-summary.html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">## Topics of Inte=
rest<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- Java Renaissanc=
e Keynote<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//inside.java/2024/02/05/java-renaissance/"><span style=3D"color:#0563C1">h=
ttps://inside.java/2024/02/05/java-renaissance/</span></a><o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- Managing Throug=
hput with Virtual Threads - Sip of Java<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//inside.java/2024/02/04/sip094/"><span style=3D"color:#0563C1">https://ins=
ide.java/2024/02/04/sip094/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- Data-Oriented P=
rogramming in Java 21 - JEP Caf=E9<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//inside.java/2024/02/08/jepcafe22/"><span style=3D"color:#0563C1">https://=
inside.java/2024/02/08/jepcafe22/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- Does Java 22 Ki=
ll Build Tools? - Inside Java Newscast<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//inside.java/2024/02/15/newscast-63/"><span style=3D"color:#0563C1">https:=
//inside.java/2024/02/15/newscast-63/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- JDK 22 G1/Paral=
lel/Serial GC changes<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//tschatzl.github.io/2024/02/06/jdk22-g1-parallel-gc-changes.html"><span st=
yle=3D"color:#0563C1">https://tschatzl.github.io/2024/02/06/jdk22-g1-parall=
el-gc-changes.html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- Java 22 Preview=
s Statements Before super(...) and this(...)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//inside.java/2024/02/01/newscast-62/"><span style=3D"color:#0563C1">https:=
//inside.java/2024/02/01/newscast-62/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- State of jextra=
ct<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//cr.openjdk.org/~mcimadamore/panama/jextract_changes.html"><span style=3D"=
color:#0563C1">https://cr.openjdk.org/~mcimadamore/panama/jextract_changes.=
html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- FOSDEM 2024: FF=
M API - A (quick) peek under the hood<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//inside.java/2024/02/13/fosdem2024-ffm-api/"><span style=3D"color:#0563C1"=
>https://inside.java/2024/02/13/fosdem2024-ffm-api/</span></a><o:p></o:p></=
span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- FOSDEM 2024: Vi=
rtual Threads - Next Steps<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//inside.java/2024/02/17/virtual-threads-next-steps/"><span style=3D"color:=
#0563C1">https://inside.java/2024/02/17/virtual-threads-next-steps/</span><=
/a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- Java Language U=
pdate - Early 2024 Edition<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//inside.java/2024/02/18/java-language-update-early-2024-update/"><span sty=
le=3D"color:#0563C1">https://inside.java/2024/02/18/java-language-update-ea=
rly-2024-update/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- When Should a C=
ompiler Expand Garbage Collection Barriers?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//robcasloz.github.io/blog/2024/02/14/when-should-a-compiler-expand-garbage=
-collection-barriers.html"><span style=3D"color:#0563C1">https://robcasloz.=
github.io/blog/2024/02/14/when-should-a-compiler-expand-garbage-collection-=
barriers.html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- Emulating C# LI=
NQ in Java using Code Reflection<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//openjdk.org/projects/babylon/articles/linq"><span style=3D"color:#0563C1"=
>https://openjdk.org/projects/babylon/articles/linq</span></a><o:p></o:p></=
span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- Automatic diffe=
rentiation of Java code using Code Reflection<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><a href=3D"https:=
//openjdk.org/projects/babylon/articles/auto-diff"><span style=3D"color:#05=
63C1">https://openjdk.org/projects/babylon/articles/auto-diff</span></a><o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">## Java Cryptogra=
phic Roadmap Update<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">The Java Cryptogr=
aphic Roadmap [19] has been updated with the following planned changes.<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">* Enable XML Sign=
ature secure validation mode by default on JDK 11 and JDK 8<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- Target date cha=
nged from the July 2024 CPU to the April 2024 CPU.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- This change has=
 already been made in JDK 17 and later releases.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">* Disable DTLS 1.=
0 in JDK 17 and 11 with the July 2024 CPU<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- This change has=
 already been made in JDK 20 and later releases.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">- DTLS is not ava=
ilable in releases prior to JDK 9.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">[19] <a href=3D"h=
ttps://www.java.com/en/jre-jdk-cryptoroadmap.html">
<span style=3D"color:#0563C1">https://www.java.com/en/jre-jdk-cryptoroadmap=
.html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">~<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">That's it for thi=
s installment. As usual, if you have issues, or questions, please ping me.<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none"><o:p>&nbsp;</o:p>=
</span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none">--David</span><o:=
p></o:p></p>
</div>
</body>
</html>

--_000_SA1PR10MB7699470C0112C3A90D35896EFC502SA1PR10MB7699namp_--


--===============0835448973941486404==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============0835448973941486404==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Jython-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jython-dev

--===============0835448973941486404==--