JDK 24 Release Candidate | JavaOne and More Heads-Up

David Delabassee via Jython-dev <[email protected]> Tue, 11 Feb 2025 15:59:25 +0000
Newsgroups gmane.comp.lang.jython.devel
Message-ID <PH7PR10MB76964A37AAD7E140B45C24C5FCFD2@PH7PR10MB7696.namprd10.prod.outlook.com>
--===============4987073892995700527==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_PH7PR10MB76964A37AAD7E140B45C24C5FCFD2PH7PR10MB7696namp_"

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

Welcome to the first OpenJDK Quality Outreach update of 2025!

The first Release Candidate builds of JDK 24 are now available [1] and tt t=
his stage, only P1 issues will be evaluated. With the JDK 24 General Availa=
bility set for March 18th, the attention is now turning to JDK 25.

JDK 24 will officially launch at JavaOne in Redwood Shores, CA [2]. If you'=
re attending or planning to attend JavaOne, please reach out as I=92m plann=
ing a Quality Outreach gathering.

To conclude, make sure to take a look at the heads-up below.

[1] https://jdk.java.net/24/
[2] https://javaone.com/


# Heads-up - JDK 24: Remote Debugging with `jstat` and `jhsdb` is Deprecate=
d for Removal

Java's Remote Method Invocation (RMI), introduced in 1997, enables remote p=
rocedure calls between different JVMs. RMI relies on serialization to encod=
e objects into byte streams when sending them as arguments and return value=
s between JVMs. Both technologies have long-term security issues and config=
uration challenges, and they haven't withstood the test of time. Today, the=
 broader ecosystem has moved away from RMI in favor of more web-friendly pr=
otocols, and as a result, Java is also gradually reducing and eliminating i=
ts dependencies on it where possilbe.

Among other tools, Java offers these two tools to connect to a local HotSpo=
t JVM and observe or debug it as well as the program it executes:

- `jstat` reads performance counters
- `jhsdb` provides snapshot debugging and analysis features

Both `jstat` and `jhsdb` offer remote capabilities, which are implemented u=
sing RMI. Due to the aforementioned effort to reduce dependencies on RMI, t=
he remote capabilities of `jstat` and `jhsdb` are deprecated for removal in=
 JDK 24:

- JDK-8327793 [3]: `jstatd` allows remote connections with jstat
- JDK-8338894 [4]: `jhsdb debugd` (allows remote connections with `jhsdb`) =
as well as the `--connect` option of the `jhsdb` subcommands `hsdb` and `cl=
hsdb`

Please note that `jstat` and `jhsdb`'s capabilities for local use remain av=
ailable and there are no plans to change that. It should also be mentionned=
 that JFR (JDK Flight Recorder) offers a modern alternative for getting rem=
ote insights into a running HotSpot JVM.

Questions or feedback on these deprecations can be directed at the servicea=
bility-dev mailing list [5] (subscription required).

[3] https://bugs.openjdk.org/browse/JDK-8327793
[4] https://bugs.openjdk.org/browse/JDK-8338894
[5] https://mail.openjdk.org/mailman/listinfo/serviceability-dev


# Heads-up - JDK 25: Proposal to Deprecate for Removal `-UseCompressedClass=
Pointers`

## Reducing Code and Test Complexity

Shortly after the adoption of 64-bit architectures the `-XX:[-|+]UseCompres=
sedClassPointers` and `-XX:[-|+]UseCompressedOops` arguments were added to =
provide Java users the ability to enable using 32-bit references even when =
on a 64-bit architecture. This reduces memory overhead and helps reduce cac=
he misses. You can read more about this here [6].

Removing the `-UseCompressedClassPointers` option would make `+UseCompresse=
dClassPointers` the default case and reduce the number of configurations th=
at would need to be supported from three to two (`+UseCompressedClassPointe=
rs` and `+UseCompactObjectHeaders`). This would also significantly reduce c=
ode complexity as well as testing effort. Along with this, `-UseCompressedC=
lassPointers` does not work well in a 64-bit architecture as can be seen he=
re [7], it=92s suspected there are many more examples.

## Minimal Benefit

The `-UseCompressedClassPointers` use rarely provides any tangible benefit =
to Java users. Any historical connection with the `-UseCompresseedOops`flag=
 has long since been removed, and the net result of using `-UseCompressedCl=
assPointers` is simply increased memory overhead.

## Reasons to Keep `-UseCompressedClassPointers`

There are currently two reasons to continue supporting `-UseCompressedClass=
Pointers`:

- `-UseCompressedClassPointers` works well in 32-bit operating systems. How=
ever support for 32-bit operating systems is on its way out with JEP 479: '=
Remove the Windows 32-bit x86 Port' [8] and JEP 501: 'Deprecate the 32-bit =
x86 Port for Removal' [9] which are both in forthcoming JDK 24.
- In cases where more than 5 million classes are loaded. However such cases=
 are rare, likely the result of programmer error, and would also mean loadi=
ng likely tens of GBs of non-class data into metaspace as well.

For more on this topic, check this thread [10] on the hotspot-dev mailing l=
ist.

The engineers working on this are considering marking `-UseCompressedClassP=
ointers` as deprecated for removal in JDK 25 and are looking for feedback o=
n the impact this could have. Please direct questions and feedback to the l=
illiput-dev [11] mailing list (registration required).

[6] https://stuefe.de/posts/metaspace/what-is-compressed-class-space/
[7] https://github.com/openjdk/jdk/pull/23053
[8] https://openjdk.org/jeps/479
[9] https://openjdk.org/jeps/501
[10] https://mail.openjdk.org/pipermail/hotspot-dev/2025-February/101023.ht=
ml
[11] https://mail.openjdk.org/pipermail/lilliput-dev/


# Heads-Up - Distrust New TLS Server Certificates Issued by Camerfirma Root=
 Certificates

The Java Cryptographic Roadmap has been updated to reflect how the JDK will=
 stop trusting new TLS server certificates issued by Camerfirma, aligning w=
ith similar actions taken by Apple, Google, Microsoft, and Mozilla. In shor=
t, TLS Server certificates issued on or before April 15, 2025 will continue=
 to be trusted until they expire while new certificates issued after that d=
ate will be rejected. JDK 24 will be one of the many versions affected by t=
his change. For more details, please check the latest Java Cryptographic Ro=
admap [12].

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


# Heads-Up - JavaFX Metal Early-Access builds

Early access builds of JavaFX that implement the new macOS Metal graphics r=
endering pipeline are now available [13]. These EA builds are provided as a=
 convenience, so users don't have to build from the "metal" branch of the o=
penjdk/jfx-sandbox repository [14]. The goal of these early access builds i=
s to gather feedback as the team works on incorporating this feature into J=
avaFX. Feedback can be reported to the openjfx-dev mailing list [15] (subsc=
ription required). These builds are based on an incomplete version of JavaF=
X 25.

Moreover, the initial JavaFX 25 early-access builds are now also available =
[16].

[13] https://jdk.java.net/javafxmetal/
[14] https://github.com/openjdk/jfx-sandbox/tree/metal
[15] https://mail.openjdk.org/pipermail/openjfx-dev/
[16] https://jdk.java.net/javafx25/


# JDK 24 Release Candidates

The JDK 24 Release Candidate builds (builds 36) are available [17] and are =
provided under the GNU General Public License v2, with the Classpath Except=
ion. The Release Notes are available here [18], and the javadocs here [19].

[17] https://jdk.java.net/24/
[18] https://jdk.java.net/24/release-notes
[19] https://download.java.net/java/early_access/jdk24/docs/api/


# JDK 25 Early-Access Builds

The JDK 25 early-access builds 9 are now available [20] and are provided un=
der the GNU General Public License v2, with the Classpath Exception. The in=
itial Release Notes are available here [21].

## Changes in recent JDK 25 builds that may be of interest:
- JDK-8347949: Currency method to stream available Currencies
- JDK-8344168: Change Unsafe base offset from int to long
- JDK-8347506: Compatible OCSP readtimeout property with OCSP timeout
- JDK-8346587: Distrust TLS server certificates anchored by Camerfirma Root=
 CAs
- JDK-8345045: Remove the jmx.remote.x.buffer.size JMX notification propert=
y
- JDK-8345049: Remove the jmx.tabular.data.hash.map compatibility property
- JDK-8344976: Remove the jmx.invoke.getters compatibility property
- JDK-8345048: Remove the jmx.extend.open.types compatibility property
- JDK-8328919: Add BodyHandlers / BodySubscribers methods to handle excessi=
ve server input
- JDK-8344966: Remove the allowNonPublic MBean compatibility property
- JDK-8347596: Update HSS/LMS public key encoding
- JDK-8283795: Add TLSv1.3 and CNSA 1.0 algorithms to implementation requir=
ements
- JDK-8225763: Inflater and Deflater should implement AutoCloseable
- JDK-8345432: (ch, fs) Replace anonymous Thread with InnocuousThread
- JDK-8345259: Disallow ALL-MODULE-PATH without explicit --module-path
- JDK-8335428: `ProcessBuilder` on Windows Quotes Argument Strings Containi=
ng Any Space Character
- JDK-8287788: Implement a better allocator for downcalls
- JDK-8344137: Update XML Security for Java to 3.0.5
- JDK-8334581: Remove no-arg constructor BasicSliderUI()
- JDK-8347965: (tz) Update Timezone Data to 2025a

Note: A complete list of changes can be found here [22].

[20] https://jdk.java.net/25/
[21] https://jdk.java.net/25/release-notes
[22] https://github.com/openjdk/jdk/compare/jdk-25+1...jdk-25+9


# Topics of Interest

Java Language Evolution in 2025
https://inside.java/2025/01/30/newscast-84/

Java's Plans for 2025
https://inside.java/2025/01/16/newscast-83/

A Deep Dive into JVM Start-up
https://inside.java/2025/01/28/jvm-start-up/

Modern Java Deep Dive
https://inside.java/2025/02/09/devoxxbelgium-modern-java-deepdive/

Java Performance Update
https://inside.java/2025/01/26/devoxxbelgium-java-perfromance-update/

Podcast - =93Doc, JavaDoc and Markdown=94 with Jonathan Gibbons
https://inside.java/2025/01/21/podcast-034/

Evolution of Java Ecosystem for Integrating AI
https://inside.java/2025/01/29/evolution-of-java-ecosystem-for-integrating-=
ai/

Peaceful and Bright Future of Integrity by Default in Java
https://inside.java/2025/01/03/evolving-default-integrity/

James Gosling on Java - Historical Oddities & Persistent Itches #JVMLS
https://inside.java/2024/12/28/jvmls-jamesgosling/


~

I=92d like to thank everyone who has already provided feedback on the JDK 2=
5 builds. Your input is incredibly valuable, especially when received early=
 in the development cycle. And if you encounter any issues, please ping me.

Hope to see some of you at JavaOne!

--David

--_000_PH7PR10MB76964A37AAD7E140B45C24C5FCFD2PH7PR10MB7696namp_
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:Aptos;
	panose-1:2 11 0 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:11.0pt;
	font-family:"Aptos",sans-serif;
	mso-ligatures:standardcontextual;
	mso-fareast-language:EN-US;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Aptos",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:11.0pt;
	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"#467886" vlink=3D"#96607D" style=3D"word-wrap:=
break-word">
<div class=3D"WordSection1">
<div>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Welcome to the first OpenJDK Quality Outreach update of 2025!<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">The first Release Candidate builds of JDK 24 are now available [1=
] and tt this stage, only P1 issues will be evaluated. With the JDK 24 Gene=
ral Availability set for March 18th,
 the attention is now turning to JDK 25.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">JDK 24 will officially launch at JavaOne in Redwood Shores, CA [2=
]. If you're attending or planning to attend JavaOne, please reach out as I=
=92m planning a Quality Outreach gathering.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">To conclude, make sure to take a look at the heads-up below.<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[1]
<a href=3D"https://jdk.java.net/24/"><span style=3D"color:#467886">https://=
jdk.java.net/24/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[2]
<a href=3D"https://javaone.com/"><span style=3D"color:#467886">https://java=
one.com/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># Heads-up - JDK 24: Remote Debugging with `jstat` and `jhsdb` is=
 Deprecated for Removal<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Java's Remote Method Invocation (RMI), introduced in 1997, enable=
s remote procedure calls between different JVMs. RMI relies on serializatio=
n to encode objects into byte streams
 when sending them as arguments and return values between JVMs. Both techno=
logies have long-term security issues and configuration challenges, and the=
y haven't withstood the test of time. Today, the broader ecosystem has move=
d away from RMI in favor of more
 web-friendly protocols, and as a result, Java is also gradually reducing a=
nd eliminating its dependencies on it where possilbe.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Among other tools, Java offers these two tools to connect to a lo=
cal HotSpot JVM and observe or debug it as well as the program it executes:=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- `jstat` reads performance counters<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- `jhsdb` provides snapshot debugging and analysis features<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Both `jstat` and `jhsdb` offer remote capabilities, which are imp=
lemented using RMI. Due to the aforementioned effort to reduce dependencies=
 on RMI, the remote capabilities of
 `jstat` and `jhsdb` are deprecated for removal in JDK 24:<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8327793 [3]: `jstatd` allows remote connections with jstat<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8338894 [4]: `jhsdb debugd` (allows remote connections with=
 `jhsdb`) as well as the `--connect` option of the `jhsdb` subcommands `hsd=
b` and `clhsdb`<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Please note that `jstat` and `jhsdb`'s capabilities for local use=
 remain available and there are no plans to change that. It should also be =
mentionned that JFR (JDK Flight Recorder)
 offers a modern alternative for getting remote insights into a running Hot=
Spot JVM.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Questions or feedback on these deprecations can be directed at th=
e serviceability-dev mailing list [5] (subscription required).
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[3]
<a href=3D"https://bugs.openjdk.org/browse/JDK-8327793"><span style=3D"colo=
r:#467886">https://bugs.openjdk.org/browse/JDK-8327793</span></a><o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[4]
<a href=3D"https://bugs.openjdk.org/browse/JDK-8338894"><span style=3D"colo=
r:#467886">https://bugs.openjdk.org/browse/JDK-8338894</span></a><o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[5]
<a href=3D"https://mail.openjdk.org/mailman/listinfo/serviceability-dev"><s=
pan style=3D"color:#467886">https://mail.openjdk.org/mailman/listinfo/servi=
ceability-dev</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># Heads-up - JDK 25: Proposal to Deprecate for Removal `-UseCompr=
essedClassPointers`<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">## Reducing Code and Test Complexity<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Shortly after the adoption of 64-bit architectures the `-XX:[-|+]=
UseCompressedClassPointers` and `-XX:[-|+]UseCompressedOops` arguments were=
 added to provide Java users the ability
 to enable using 32-bit references even when on a 64-bit architecture. This=
 reduces memory overhead and helps reduce cache misses. You can read more a=
bout this here [6].<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Removing the `-UseCompressedClassPointers` option would make `+Us=
eCompressedClassPointers` the default case and reduce the number of configu=
rations that would need to be supported
 from three to two (`+UseCompressedClassPointers` and `+UseCompactObjectHea=
ders`). This would also significantly reduce code complexity as well as tes=
ting effort. Along with this, `-UseCompressedClassPointers` does not work w=
ell in a 64-bit architecture as
 can be seen here [7], it=92s suspected there are many more examples.<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">## Minimal Benefit<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">The `-UseCompressedClassPointers` use rarely provides any tangibl=
e benefit to Java users. Any historical connection with the `-UseCompressee=
dOops`flag has long since been removed,
 and the net result of using `-UseCompressedClassPointers` is simply increa=
sed memory overhead.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">## Reasons to Keep `-UseCompressedClassPointers`<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">There are currently two reasons to continue supporting `-UseCompr=
essedClassPointers`:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- `-UseCompressedClassPointers` works well in 32-bit operating sy=
stems. However support for 32-bit operating systems is on its way out with =
JEP 479: 'Remove the Windows 32-bit
 x86 Port' [8] and JEP 501: 'Deprecate the 32-bit x86 Port for Removal' [9]=
 which are both in forthcoming JDK 24.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- In cases where more than 5 million classes are loaded. However =
such cases are rare, likely the result of programmer error, and would also =
mean loading likely tens of GBs of non-class
 data into metaspace as well.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">For more on this topic, check this thread [10] on the hotspot-dev=
 mailing list.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">The engineers working on this are considering marking `-UseCompre=
ssedClassPointers` as deprecated for removal in JDK 25 and are looking for =
feedback on the impact this could have.
 Please direct questions and feedback to the lilliput-dev [11] mailing list=
 (registration required).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[6]
<a href=3D"https://stuefe.de/posts/metaspace/what-is-compressed-class-space=
/"><span style=3D"color:#467886">https://stuefe.de/posts/metaspace/what-is-=
compressed-class-space/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[7]
<a href=3D"https://github.com/openjdk/jdk/pull/23053"><span style=3D"color:=
#467886">https://github.com/openjdk/jdk/pull/23053</span></a><o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[8]
<a href=3D"https://openjdk.org/jeps/479"><span style=3D"color:#467886">http=
s://openjdk.org/jeps/479</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[9]
<a href=3D"https://openjdk.org/jeps/501"><span style=3D"color:#467886">http=
s://openjdk.org/jeps/501</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[10]
<a href=3D"https://mail.openjdk.org/pipermail/hotspot-dev/2025-February/101=
023.html">
<span style=3D"color:#467886">https://mail.openjdk.org/pipermail/hotspot-de=
v/2025-February/101023.html</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[11]
<a href=3D"https://mail.openjdk.org/pipermail/lilliput-dev/"><span style=3D=
"color:#467886">https://mail.openjdk.org/pipermail/lilliput-dev/</span></a>=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># Heads-Up - Distrust New TLS Server Certificates Issued by Camer=
firma Root Certificates<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">The Java Cryptographic Roadmap has been updated to reflect how th=
e JDK will stop trusting new TLS server certificates issued by Camerfirma, =
aligning with similar actions taken
 by Apple, Google, Microsoft, and Mozilla. In short, TLS Server certificate=
s issued on or before April 15, 2025 will continue to be trusted until they=
 expire while new certificates issued after that date will be rejected. JDK=
 24 will be one of the many versions
 affected by this change. For more details, please check the latest Java Cr=
yptographic Roadmap [12].<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[12]
<a href=3D"https://www.java.com/en/jre-jdk-cryptoroadmap.html"><span style=
=3D"color:#467886">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;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># Heads-Up - JavaFX Metal Early-Access builds<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Early access builds of JavaFX that implement the new macOS Metal =
graphics rendering pipeline are now available [13]. These EA builds are pro=
vided as a convenience, so users don't
 have to build from the &quot;metal&quot; branch of the openjdk/jfx-sandbox=
 repository [14]. The goal of these early access builds is to gather feedba=
ck as the team works on incorporating this feature into JavaFX. Feedback ca=
n be reported to the openjfx-dev mailing list
 [15] (subscription required). These builds are based on an incomplete vers=
ion of JavaFX 25.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Moreover, the initial JavaFX 25 early-access builds are now also =
available [16].<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[13]
<a href=3D"https://jdk.java.net/javafxmetal/"><span style=3D"color:#467886"=
>https://jdk.java.net/javafxmetal/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[14]
<a href=3D"https://github.com/openjdk/jfx-sandbox/tree/metal"><span style=
=3D"color:#467886">https://github.com/openjdk/jfx-sandbox/tree/metal</span>=
</a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[15]
<a href=3D"https://mail.openjdk.org/pipermail/openjfx-dev/"><span style=3D"=
color:#467886">https://mail.openjdk.org/pipermail/openjfx-dev/</span></a><o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[16]
<a href=3D"https://jdk.java.net/javafx25/"><span style=3D"color:#467886">ht=
tps://jdk.java.net/javafx25/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># JDK 24 Release Candidates<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">The JDK 24 Release Candidate builds (builds 36) are available [17=
] and are provided under the GNU General Public License v2, with the Classp=
ath Exception. The Release Notes are
 available here [18], and the javadocs here [19].<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[17]
<a href=3D"https://jdk.java.net/24/"><span style=3D"color:#467886">https://=
jdk.java.net/24/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[18]
<a href=3D"https://jdk.java.net/24/release-notes"><span style=3D"color:#467=
886">https://jdk.java.net/24/release-notes</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[19]
<a href=3D"https://download.java.net/java/early_access/jdk24/docs/api/"><sp=
an style=3D"color:#467886">https://download.java.net/java/early_access/jdk2=
4/docs/api/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># JDK 25 Early-Access Builds<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">The JDK 25 early-access builds 9 are now available [20] and are p=
rovided under the GNU General Public License v2, with the Classpath Excepti=
on. The initial Release Notes are available
 here [21].<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">## Changes in recent JDK 25 builds that may be of interest:<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8347949: Currency method to stream available Currencies<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8344168: Change Unsafe base offset from int to long<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8347506: Compatible OCSP readtimeout property with OCSP tim=
eout<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8346587: Distrust TLS server certificates anchored by Camer=
firma Root CAs<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8345045: Remove the jmx.remote.x.buffer.size JMX notificati=
on property<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8345049: Remove the jmx.tabular.data.hash.map compatibility=
 property<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8344976: Remove the jmx.invoke.getters compatibility proper=
ty<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8345048: Remove the jmx.extend.open.types compatibility pro=
perty<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8328919: Add BodyHandlers / BodySubscribers methods to hand=
le excessive server input<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8344966: Remove the allowNonPublic MBean compatibility prop=
erty<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8347596: Update HSS/LMS public key encoding<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8283795: Add TLSv1.3 and CNSA 1.0 algorithms to implementat=
ion requirements<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8225763: Inflater and Deflater should implement AutoCloseab=
le<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8345432: (ch, fs) Replace anonymous Thread with InnocuousTh=
read<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8345259: Disallow ALL-MODULE-PATH without explicit --module=
-path<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8335428: `ProcessBuilder` on Windows Quotes Argument String=
s Containing Any Space Character<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8287788: Implement a better allocator for downcalls<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8344137: Update XML Security for Java to 3.0.5
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8334581: Remove no-arg constructor BasicSliderUI()<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">- JDK-8347965: (tz) Update Timezone Data to 2025a<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Note: A complete list of changes can be found here [22].<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[20]
<a href=3D"https://jdk.java.net/25/"><span style=3D"color:#467886">https://=
jdk.java.net/25/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[21]
<a href=3D"https://jdk.java.net/25/release-notes"><span style=3D"color:#467=
886">https://jdk.java.net/25/release-notes</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">[22]
<a href=3D"https://github.com/openjdk/jdk/compare/jdk-25+1...jdk-25+9"><spa=
n style=3D"color:#467886">https://github.com/openjdk/jdk/compare/jdk-25+1..=
.jdk-25+9</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"># Topics of Interest<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Java Language Evolution in 2025<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/01/30/newscast-84/"><span sty=
le=3D"color:#467886">https://inside.java/2025/01/30/newscast-84/</span></a>=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Java's Plans for 2025<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/01/16/newscast-83/"><span sty=
le=3D"color:#467886">https://inside.java/2025/01/16/newscast-83/</span></a>=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">A Deep Dive into JVM Start-up<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/01/28/jvm-start-up/"><span st=
yle=3D"color:#467886">https://inside.java/2025/01/28/jvm-start-up/</span></=
a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Modern Java Deep Dive<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/02/09/devoxxbelgium-modern-ja=
va-deepdive/"><span style=3D"color:#467886">https://inside.java/2025/02/09/=
devoxxbelgium-modern-java-deepdive/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Java Performance Update<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/01/26/devoxxbelgium-java-perf=
romance-update/"><span style=3D"color:#467886">https://inside.java/2025/01/=
26/devoxxbelgium-java-perfromance-update/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Podcast - =93Doc, JavaDoc and Markdown=94 with Jonathan Gibbons<o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/01/21/podcast-034/"><span sty=
le=3D"color:#467886">https://inside.java/2025/01/21/podcast-034/</span></a>=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Evolution of Java Ecosystem for Integrating AI<o:p></o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/01/29/evolution-of-java-ecosy=
stem-for-integrating-ai/"><span style=3D"color:#467886">https://inside.java=
/2025/01/29/evolution-of-java-ecosystem-for-integrating-ai/</span></a><o:p>=
</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Peaceful and Bright Future of Integrity by Default in Java<o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2025/01/03/evolving-default-integr=
ity/"><span style=3D"color:#467886">https://inside.java/2025/01/03/evolving=
-default-integrity/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">James Gosling on Java - Historical Oddities &amp; Persistent Itch=
es #JVMLS<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><a href=3D"https://inside.java/2024/12/28/jvmls-jamesgosling/"><s=
pan style=3D"color:#467886">https://inside.java/2024/12/28/jvmls-jamesgosli=
ng/</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">~<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">I=92d like to thank everyone who has already provided feedback on=
 the JDK 25 builds. Your input is incredibly valuable, especially when rece=
ived early in the development cycle. And
 if you encounter any issues, please ping me. <o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB"><o:p>&nbsp;</o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"mso-ligatures:none;mso-fareast-langua=
ge:EN-GB">Hope to see some of you at JavaOne!</span><span lang=3D"NL" style=
=3D"mso-ligatures:none;mso-fareast-language:EN-GB"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"NL" style=3D"mso-ligatures:none;mso-fa=
reast-language:EN-GB"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"NL" style=3D"mso-ligatures:none;mso-fa=
reast-language:EN-GB">--David</span><span lang=3D"NL"><o:p></o:p></span></p=
>
</div>
</body>
</html>

--_000_PH7PR10MB76964A37AAD7E140B45C24C5FCFD2PH7PR10MB7696namp_--


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


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

--===============4987073892995700527==--