JDK 21 EA builds 22 & Sequenced Collections Heads-up

David Delabassee <[email protected]> Mon, 15 May 2023 15:59:05 +0000
Newsgroups gmane.comp.lang.jython.devel
Message-ID <SA1PR10MB7699201E0950654A273F0B2CFC789@SA1PR10MB7699.namprd10.prod.outlook.com>
--===============1955285402128055592==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_SA1PR10MB7699201E0950654A273F0B2CFC789SA1PR10MB7699namp_"

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

Welcome to the latest OpenJDK Quality Outreach update!

The schedule for JDK 21 is now known [1] with Rampdown Phase One (RDP1) pha=
se set for June 8th and General Availability (GA) set for September 19th. A=
s we are getting closer to RDP1, we are gradually getting a better view on =
the JDK 21 content.

At the time of writing, 5 JEPs are already integrated in the JDK 21 mainlin=
e - Virtual Threads, Generational ZGC, etc. =96 see below for more details.=
 This newsletter heads-up is focused on one of those JEPs; i.e., JEP 431 Se=
quenced Collections, as it might induce some incompatibilities on existing =
codebases.

Please do tell us if your project works or fails on the latest JDK 21 Early=
-Access builds. We still have some time to fix issues before JDK 21 reaches=
 General Availability.

[1] https://openjdk.org/projects/jdk/21/


## Heads-Up - JDK 21: Potential Sequenced Collections Incompatibilities

The Sequenced Collection JEP [2] has been integrated into JDK 21, build 20.=
 This JEP introduces several new interfaces into the collections framework=
=92s interface hierarchy, and these interfaces introduce new default method=
s. When such changes are made, they can cause conflicts that result in sour=
ce or binary incompatibilities. Any conflicts that occur will be in code th=
at implements new collections or that subclasses existing collection classe=
s. Code that simply uses collections implementations will be largely unaffe=
cted.

There are several kinds of conflicts that might arise. The first is a simpl=
e method naming conflict, if a method already exists with the same name but=
 with a different return type or access modifier. Another is a clash betwee=
n different inherited default method implementations arising from covariant=
 overrides. A class might inherit multiple default methods if it implements=
 multiple interfaces from different parts of the collections framework. A t=
hird example occurs with type inference. With type inference (e.g., the use=
 of `var`) the compiler will infer a type for that local variable. It=92s p=
ossible for other code to use explicitly declared types that must match the=
 inferred type. The change to the interface hierarchy might result in a dif=
ferent inferred type, causing an incompatibility.

Make sure to check the following article [3] that provides additional detai=
ls and strategies to mitigate potential incompatibilities.

[2] https://openjdk.org/jeps/431
[3] https://inside.java/2023/05/12/quality-heads-up/

Additional Sequenced Collections resources are also listed in the 'Topics o=
f Interest' section below.


## JDK 21 Early-Access builds

The latest Early-Access builds 22 are available [4], and are provided under=
 the GNU General Public License v2, with the Classpath Exception. The Relea=
se Notes [5] and the Javadocs [6] are also available.

[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/

### JEPs integrated to JDK 21, so far:
- 430: String Templates (Preview)
- 431: Sequenced Collections
- 439: Generational ZGC
- 442: Foreign Function & Memory API (3rd Preview)
- 444: Virtual Threads

### JEPs targeted to JDK 21, so far:
- 440: Record Patterns
- 441: Pattern Matching for switch
- 448: Vector API (6th Incubator)

JEPs proposed to target JDK 21:
- 404: Generational Shenandoah (Experimental)
- 443: Unnamed Patterns and Variables (Preview)
- 445: Unnamed Classes and Instance Main Methods (Preview)
- 449: Deprecate the Windows 32-bit x86 Port for Removal

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

Note that this is only a curated list of changes, make sure to check https:=
//github.com/openjdk/jdk/compare/jdk-21+0...jdk-21+22 for additional change=
s.

JDK 21 Build 22:
- JDK-8307466: java.time.Instant calculation bug in until and between metho=
ds
- JDK-8307399: get rid of compatibility ThreadStart/ThreadEnd events for vi=
rtual threads
- JDK-8306461: ObjectInputStream::readObject() should handle negative array=
 sizes without throwing NegativeArraySizeExceptions
- JDK-8280031: Deprecate GTK2 for removal
- JDK-8307629: FunctionDescriptor::toMethodType should allow sequence layou=
ts (mainline)
- JDK-8302845: Replace finalizer usage in JNDI DNS provider with Cleaner
- JDK-8306461: ObjectInputStream::readObject() should handle negative array=
 sizes without throwing NegativeArraySizeExceptions
- JDK-8306881: Update FreeType to 2.13.0
- JDK-8285932: Implementation of JEP 430 String Templates (Preview)
- JDK-8307301: Update HarfBuzz to 7.2.0
- JDK-8159337: Introduce a method in Locale class to return the language ta=
gs as per RFC 5646 convention
- JDK-8291555: Implement alternative fast-locking scheme
- JDK-8305486: Add split() variants that keep the delimiters to String and =
j.u.r.Pattern

JDK 21 Build 21:
- JDK-8305092: Improve Thread.sleep(millis, nanos) for sub-millisecond gran=
ularity
- JDK-8303784: no-@Target annotations should be applicable to type paramete=
r declarations
- JDK-8303002: Reject packed structs from linker
- JDK-8300784: Specify exactly how padding should be presented to the linke=
r
- JDK-8303524: Check FunctionDescriptor byte order when linking
- JDK-8304265: Implementation of Foreign Function and Memory API (Third Pre=
view)
- JDK-8293117: Add atomic bitset functions
- JDK-8306696: Remove MetaspaceReclaimPolicy=3Daggressive and obsolete Meta=
spaceReclaimPolicy
JDK 21 Build 20:
- JDK-8306658: GHA: MSVC installation could be optional since it might alre=
ady be pre-installed
- JDK-8305590: Remove nothrow exception specifications from operator new
- JDK-8266571: JEP 431 Sequenced Collections
- JDK-8306772: Remove sun.security.x509.CertException, sun.security.x509.Ce=
rtParseError
- JDK-8306075: Micro-optimize Enum.hashCode
- JDK-8306031: Update IANA Language Subtag Registry to Version 2023-04-13
- JDK-8298048: Combine CDS archive heap into a single block
- JDK-8305994: Guarantee eventual async monitor deflation
JDK 21 Build 19:
- JDK-8296248: Update CLDR to Version 43.0
- JDK-8257967: JFR: Events for loaded agents
- JDK-8305811: (bf) Improve performance of CharBuffer::append(CharSequence[=
,int,int])
- JDK-8304450: [vectorapi] Refactor VectorShuffle implementation
JDK 21 Build 18:
- JDK-8302819: Remove JAR Index
- JDK-8267140: Support closing the HttpClient by making it auto-closable
- JDK-8205129: Remove java.lang.Compiler
- JDK-8305310: Calculate PublicKey from PrivateKey
- JDK-8304919: Implementation of Virtual Threads (JEP 444)
- JDK-8182621: JSSE should reject empty TLS plaintexts
- JDK-8304745: Lazily initialize byte[] in java.io.BufferedInputStream
JDK 21 Build 17:
- JDK-8305107: Emoji related binary properties in RegEx
- JDK-8304982: Emit warning for removal of `COMPAT` provider
- JDK-8303260: (fc) FileChannel::transferFrom should support position > siz=
e()
- JDK-8304846: Provide a shared utility to dump generated classes defined v=
ia Lookup API
- JDK-8303229: JFR: Preserve disk repository after exit
- JDK-8305113: (tz) Update Timezone Data to 2023c
- JDK-8294266: Add a way to pre-touch java thread stacks
- JDK-8301106: Allow archived Java strings to be moved by GC
- JDK-8305157: The java.util.Arrays class should be declared final
- JDK-8304743: Compile_lock and SystemDictionary updates
- JDK-8304945: StringBuilder and StringBuffer should implement Appendable e=
xplicitly
- JDK-8302323: Add repeat methods to StringBuilder/StringBuffer

JDK 21 Build 16:
- JDK-8303392: Runtime.exec and ProcessBuilder.start should use System logg=
er
- JDK-8300977: Retire java.io.ExpiringCache
- JDK-8296656: java.lang.NoClassDefFoundError exception on running fully le=
gitimate code
- JDK-8027682: javac wrongly accepts semicolons in package and import decls
- JDK-8231349: Move intrinsic stubs generation to compiler runtime initiali=
zation code
- JDK-8288730: Add type parameter to Lookup::accessClass and Lookup::ensure=
Initialized
- JDK-8304759: Add BitMap iterators
- JDK-8304691: Remove jlink --post-process-path option
- JDK-8304301: Remove the global option SuperWordMaxVectorSize
- JDK-8298725: Add BitMap support for reverse iteration
- JDK-8302191: Performance degradation for float/double modulo on Linux


## JavaFX 21 Early-Access Builds

These are early-access builds of the JavaFX 21 Runtime, built from openjdk/=
jfx [7]. They enabled JavaFX application developers to build and test their=
 applications with JavaFX 21 on JDK 21.

The latest builds 17 (2023/5/15) are available [8]. They are provided under=
 the GNU General Public License, version 2, with the Classpath Exception. P=
lease send the feedback to the openjfx-dev mailing list [9].
[7] https://github.com/openjdk/jfx
[8] https://jdk.java.net/javafx21/
[9] https://mail.openjdk.org/pipermail/openjfx-dev/

## Topics of Interest:

New candidate: JEP 451: Prepare to Disallow the Dynamic Loading of Agents
https://openjdk.org/jeps/451

Save Memory with Compact Headers
https://inside.java/2023/05/11/newscast-48/

Interpolating Strings like a King in Java 21
https://inside.java/2023/04/27/newscast-47/

=93Sequenced Collections=94 podcast with Stuart Marks
https://inside.java/2023/04/25/podcast-031/

Z Garbage Collector: The Next Generation
https://inside.java/2023/04/23/levelup-zgc/

Getting Rid Of Unused Variables
https://inside.java/2023/04/13/newscast-46/

Evolving the Security of the Java Platform
https://inside.java/2023/04/11/levelup-security/

Java Language Futures, Spring 2023 Edition
https://inside.java/2023/04/06/levelup-amber/

Java 21's New (Sequenced) Collections
https://inside.java/2023/03/30/newscast/

JFR: Java's Observability & Monitoring Framework
https://inside.java/2023/05/14/stackwalker-02/

Additionals Level Up - Java Developer Day videos
https://www.youtube.com/playlist?list=3DPLX8CzqL3ArzX_RZNjtyETshl876jfE2bo


## April 2023 Critical Patch Update Released

As part of the April 2023 CPU, Oracle released OpenJDK 20.0.1, JDK 20.0.1, =
JDK 17.0.7 LTS, JDK 11.0.19 LTS, JDK 8u371, as well as JDK 8u371-perf.


~

Thanks for participating in the OpenJDK Quality Outreach program. If you fi=
nd any issue on JDK 21 EA builds, please send it my way!

--David


--_000_SA1PR10MB7699201E0950654A273F0B2CFC789SA1PR10MB7699namp_
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;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	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">
<p class=3D"MsoNormal">Welcome to the latest OpenJDK Quality Outreach updat=
e!<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The schedule for JDK 21 is now known [1] with Rampdo=
wn Phase One (RDP1) phase set for June 8th and General Availability (GA) se=
t for September 19th. As we are getting closer to RDP1, we are gradually ge=
tting a better view on the JDK 21
 content.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">At the time of writing, 5 JEPs are already integrate=
d in the JDK 21 mainline - Virtual Threads, Generational ZGC, etc. =96 see =
below for more details. This newsletter heads-up is focused on one of those=
 JEPs; i.e., JEP 431 Sequenced Collections,
 as it might induce some incompatibilities on existing codebases.<o:p></o:p=
></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Please do tell us if your project works or fails on =
the latest JDK 21 Early-Access builds. We still have some time to fix issue=
s before JDK 21 reaches General Availability.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">[1] <a href=3D"https://openjdk.org/projects/jdk/21/"=
>https://openjdk.org/projects/jdk/21/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">## Heads-Up - JDK 21: Potential Sequenced Collection=
s Incompatibilities<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The Sequenced Collection JEP [2] has been integrated=
 into JDK 21, build 20. This JEP introduces several new interfaces into the=
 collections framework=92s interface hierarchy, and these interfaces introd=
uce new default methods. When such changes
 are made, they can cause conflicts that result in source or binary incompa=
tibilities. Any conflicts that occur will be in code that implements new co=
llections or that subclasses existing collection classes. Code that simply =
uses collections implementations
 will be largely unaffected.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">There are several kinds of conflicts that might aris=
e. The first is a simple method naming conflict, if a method already exists=
 with the same name but with a different return type or access modifier. An=
other is a clash between different
 inherited default method implementations arising from covariant overrides.=
 A class might inherit multiple default methods if it implements multiple i=
nterfaces from different parts of the collections framework. A third exampl=
e occurs with type inference. With
 type inference (e.g., the use of `var`) the compiler will infer a type for=
 that local variable. It=92s possible for other code to use explicitly decl=
ared types that must match the inferred type. The change to the interface h=
ierarchy might result in a different
 inferred type, causing an incompatibility.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Make sure to check the following article [3] that pr=
ovides additional details and strategies to mitigate potential incompatibil=
ities.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">[2] <a href=3D"https://openjdk.org/jeps/431">https:/=
/openjdk.org/jeps/431</a><o:p></o:p></p>
<p class=3D"MsoNormal">[3] <a href=3D"https://inside.java/2023/05/12/qualit=
y-heads-up/">
https://inside.java/2023/05/12/quality-heads-up/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Additional Sequenced Collections resources are also =
listed in the 'Topics of Interest' section below.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">## JDK 21 Early-Access builds<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The latest Early-Access builds 22 are available [4],=
 and are provided under the GNU General Public License v2, with the Classpa=
th Exception. The Release Notes [5] and the Javadocs [6] are also available=
.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">[4] <a href=3D"https://jdk.java.net/21/">https://jdk=
.java.net/21/</a><o:p></o:p></p>
<p class=3D"MsoNormal">[5] <a href=3D"https://jdk.java.net/21/release-notes=
">https://jdk.java.net/21/release-notes</a><o:p></o:p></p>
<p class=3D"MsoNormal">[6] <a href=3D"https://download.java.net/java/early_=
access/jdk21/docs/api/">
https://download.java.net/java/early_access/jdk21/docs/api/</a><o:p></o:p><=
/p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">### JEPs integrated to JDK 21, so far:<o:p></o:p></p=
>
<p class=3D"MsoNormal">- 430: String Templates (Preview)<o:p></o:p></p>
<p class=3D"MsoNormal">- 431: Sequenced Collections<o:p></o:p></p>
<p class=3D"MsoNormal">- 439: Generational ZGC<o:p></o:p></p>
<p class=3D"MsoNormal">- 442: Foreign Function &amp; Memory API (3rd Previe=
w)<o:p></o:p></p>
<p class=3D"MsoNormal">- 444: Virtual Threads<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">### JEPs targeted to JDK 21, so far:<o:p></o:p></p>
<p class=3D"MsoNormal">- 440: Record Patterns<o:p></o:p></p>
<p class=3D"MsoNormal">- 441: Pattern Matching for switch<o:p></o:p></p>
<p class=3D"MsoNormal">- 448: Vector API (6th Incubator)<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">JEPs proposed to target JDK 21:<o:p></o:p></p>
<p class=3D"MsoNormal">- 404: Generational Shenandoah (Experimental)<o:p></=
o:p></p>
<p class=3D"MsoNormal">- 443: Unnamed Patterns and Variables (Preview)<o:p>=
</o:p></p>
<p class=3D"MsoNormal">- 445: Unnamed Classes and Instance Main Methods (Pr=
eview)<o:p></o:p></p>
<p class=3D"MsoNormal">- 449: Deprecate the Windows 32-bit x86 Port for Rem=
oval<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">### Changes in recent builds that may be of interest=
:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Note that this is only a curated list of changes, ma=
ke sure to check
<a href=3D"https://github.com/openjdk/jdk/compare/jdk-21+0...jdk-21+22">htt=
ps://github.com/openjdk/jdk/compare/jdk-21+0...jdk-21+22</a> for additional=
 changes.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">JDK 21 Build 22:<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8307466: java.time.Instant calculation bug in =
until and between methods<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8307399: get rid of compatibility ThreadStart/=
ThreadEnd events for virtual threads<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8306461: ObjectInputStream::readObject() shoul=
d handle negative array sizes without throwing NegativeArraySizeExceptions<=
o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8280031: Deprecate GTK2 for removal<o:p></o:p>=
</p>
<p class=3D"MsoNormal">- JDK-8307629: FunctionDescriptor::toMethodType shou=
ld allow sequence layouts (mainline)<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8302845: Replace finalizer usage in JNDI DNS p=
rovider with Cleaner<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8306461: ObjectInputStream::readObject() shoul=
d handle negative array sizes without throwing NegativeArraySizeExceptions<=
o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8306881: Update FreeType to 2.13.0<o:p></o:p><=
/p>
<p class=3D"MsoNormal">- JDK-8285932: Implementation of JEP 430 String Temp=
lates (Preview)<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8307301: Update HarfBuzz to 7.2.0<o:p></o:p></=
p>
<p class=3D"MsoNormal">- JDK-8159337: Introduce a method in Locale class to=
 return the language tags as per RFC 5646 convention<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8291555: Implement alternative fast-locking sc=
heme<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8305486: Add split() variants that keep the de=
limiters to String and j.u.r.Pattern<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">JDK 21 Build 21:<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8305092: Improve Thread.sleep(millis, nanos) f=
or sub-millisecond granularity<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8303784: no-@Target annotations should be appl=
icable to type parameter declarations<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8303002: Reject packed structs from linker<o:p=
></o:p></p>
<p class=3D"MsoNormal">- JDK-8300784: Specify exactly how padding should be=
 presented to the linker<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8303524: Check FunctionDescriptor byte order w=
hen linking<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304265: Implementation of Foreign Function an=
d Memory API (Third Preview)<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8293117: Add atomic bitset functions<o:p></o:p=
></p>
<p class=3D"MsoNormal">- JDK-8306696: Remove MetaspaceReclaimPolicy=3Daggre=
ssive and obsolete MetaspaceReclaimPolicy<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">JDK 21 Build 20:<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8306658: GHA: MSVC installation could be optio=
nal since it might already be pre-installed<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8305590: Remove nothrow exception specificatio=
ns from operator new<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8266571: JEP 431 Sequenced Collections<o:p></o=
:p></p>
<p class=3D"MsoNormal">- JDK-8306772: Remove sun.security.x509.CertExceptio=
n, sun.security.x509.CertParseError<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8306075: Micro-optimize Enum.hashCode<o:p></o:=
p></p>
<p class=3D"MsoNormal">- JDK-8306031: Update IANA Language Subtag Registry =
to Version 2023-04-13<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8298048: Combine CDS archive heap into a singl=
e block<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8305994: Guarantee eventual async monitor defl=
ation<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">JDK 21 Build 19:<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8296248: Update CLDR to Version 43.0<o:p></o:p=
></p>
<p class=3D"MsoNormal">- JDK-8257967: JFR: Events for loaded agents<o:p></o=
:p></p>
<p class=3D"MsoNormal">- JDK-8305811: (bf) Improve performance of CharBuffe=
r::append(CharSequence[,int,int])<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304450: [vectorapi] Refactor VectorShuffle im=
plementation<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">JDK 21 Build 18:<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8302819: Remove JAR Index<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8267140: Support closing the HttpClient by mak=
ing it auto-closable<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8205129: Remove java.lang.Compiler<o:p></o:p><=
/p>
<p class=3D"MsoNormal">- JDK-8305310: Calculate PublicKey from PrivateKey<o=
:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304919: Implementation of Virtual Threads (JE=
P 444)<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8182621: JSSE should reject empty TLS plaintex=
ts<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304745: Lazily initialize byte[] in java.io.B=
ufferedInputStream<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">JDK 21 Build 17:<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8305107: Emoji related binary properties in Re=
gEx<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304982: Emit warning for removal of `COMPAT` =
provider<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8303260: (fc) FileChannel::transferFrom should=
 support position &gt; size()<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304846: Provide a shared utility to dump gene=
rated classes defined via Lookup API<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8303229: JFR: Preserve disk repository after e=
xit<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8305113: (tz) Update Timezone Data to 2023c<o:=
p></o:p></p>
<p class=3D"MsoNormal">- JDK-8294266: Add a way to pre-touch java thread st=
acks<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8301106: Allow archived Java strings to be mov=
ed by GC<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8305157: The java.util.Arrays class should be =
declared final<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304743: Compile_lock and SystemDictionary upd=
ates<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304945: StringBuilder and StringBuffer should=
 implement Appendable explicitly<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8302323: Add repeat methods to StringBuilder/S=
tringBuffer<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">JDK 21 Build 16:<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8303392: Runtime.exec and ProcessBuilder.start=
 should use System logger<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8300977: Retire java.io.ExpiringCache<o:p></o:=
p></p>
<p class=3D"MsoNormal">- JDK-8296656: java.lang.NoClassDefFoundError except=
ion on running fully legitimate code<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8027682: javac wrongly accepts semicolons in p=
ackage and import decls<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8231349: Move intrinsic stubs generation to co=
mpiler runtime initialization code<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8288730: Add type parameter to Lookup::accessC=
lass and Lookup::ensureInitialized<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304759: Add BitMap iterators<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304691: Remove jlink --post-process-path opti=
on<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304301: Remove the global option SuperWordMax=
VectorSize<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8298725: Add BitMap support for reverse iterat=
ion<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8302191: Performance degradation for float/dou=
ble modulo on Linux<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">## JavaFX 21 Early-Access Builds<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">These are early-access builds of the JavaFX 21 Runti=
me, built from openjdk/jfx [7]. They enabled JavaFX application developers =
to build and test their applications with JavaFX 21 on JDK 21.<o:p></o:p></=
p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The latest builds 17 (2023/5/15) are available [8]. =
They are provided under the GNU General Public License, version 2, with the=
 Classpath Exception. Please send the feedback to the openjfx-dev mailing l=
ist [9].<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">[7] <a href=3D"https://github.com/openjdk/jfx">https=
://github.com/openjdk/jfx</a><o:p></o:p></p>
<p class=3D"MsoNormal">[8] <a href=3D"https://jdk.java.net/javafx21/">https=
://jdk.java.net/javafx21/</a><o:p></o:p></p>
<p class=3D"MsoNormal">[9] <a href=3D"https://mail.openjdk.org/pipermail/op=
enjfx-dev/">
https://mail.openjdk.org/pipermail/openjfx-dev/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">## Topics of Interest:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">New candidate: JEP 451: Prepare to Disallow the Dyna=
mic Loading of Agents<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://openjdk.org/jeps/451">https://ope=
njdk.org/jeps/451</a>
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Save Memory with Compact Headers<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/05/11/newscast-4=
8/">https://inside.java/2023/05/11/newscast-48/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Interpolating Strings like a King in Java 21<o:p></o=
:p></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/04/27/newscast-4=
7/">https://inside.java/2023/04/27/newscast-47/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">=93Sequenced Collections=94 podcast with Stuart Mark=
s<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/04/25/podcast-03=
1/">https://inside.java/2023/04/25/podcast-031/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Z Garbage Collector: The Next Generation<o:p></o:p><=
/p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/04/23/levelup-zg=
c/">https://inside.java/2023/04/23/levelup-zgc/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Getting Rid Of Unused Variables<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/04/13/newscast-4=
6/">https://inside.java/2023/04/13/newscast-46/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Evolving the Security of the Java Platform<o:p></o:p=
></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/04/11/levelup-se=
curity/">https://inside.java/2023/04/11/levelup-security/</a><o:p></o:p></p=
>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Java Language Futures, Spring 2023 Edition<o:p></o:p=
></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/04/06/levelup-am=
ber/">https://inside.java/2023/04/06/levelup-amber/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Java 21's New (Sequenced) Collections<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/03/30/newscast/"=
>https://inside.java/2023/03/30/newscast/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">JFR: Java's Observability &amp; Monitoring Framework=
<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/05/14/stackwalke=
r-02/">https://inside.java/2023/05/14/stackwalker-02/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Additionals Level Up - Java Developer Day videos<o:p=
></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://www.youtube.com/playlist?list=3DP=
LX8CzqL3ArzX_RZNjtyETshl876jfE2bo">https://www.youtube.com/playlist?list=3D=
PLX8CzqL3ArzX_RZNjtyETshl876jfE2bo</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">## April 2023 Critical Patch Update Released<o:p></o=
:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">As part of the April 2023 CPU, Oracle released OpenJ=
DK 20.0.1, JDK 20.0.1, JDK 17.0.7 LTS, JDK 11.0.19 LTS, JDK 8u371, as well =
as JDK 8u371-perf.
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">~<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks for participating in the OpenJDK Quality Outr=
each program. If you find any issue on JDK 21 EA builds, please send it my =
way!<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">--David<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_SA1PR10MB7699201E0950654A273F0B2CFC789SA1PR10MB7699namp_--


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


--===============1955285402128055592==
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

--===============1955285402128055592==--