[foreign] thoughts on finalizing foreign APIs

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Thu Sep 16 14:59:13 UTC 2021


Hi,
we have spent the last few weeks looking at the foreign APIs more 
holistically, to see what we could do to improve them, in order to get 
them preview/finalization ready. The resulting changes are described in 
the following write up:

https://inside.java/2021/09/16/finalizing-the-foreign-apis/

We think the proposed API [2, 3] is much simpler, tighter and safer - 
while retaining the same expressiveness of the existing API.

Moving forward, we would like to start integrating the proposed changes 
into the panama repo, and incubate those changes in 18. We will then 
(finger crossed!) move towards finalizing the API, by making it a 
preview API in 19 (the document describes some basic shuffling moves on 
how we might want to do that). While we could technically preview things 
in 18, we believe that the extra steps required to move the API into 
java.base would push us too close to the code freeze deadline; besides 
there are still outstanding performance issues (such as [1]) which we'd 
like to have addressed, so that user experience can be as smooth as 
possible. For these reasons, incubating in 18 and previewing in 19 seems 
like the most sensible option at this point in time.

Cheers
Maurizio

[1] - https://bugs.openjdk.java.net/browse/JDK-8259609
[2] - 
http://cr.openjdk.java.net/~mcimadamore/panama/foreign-finalize-javadoc/javadoc/jdk/incubator/foreign/package-summary.html
[3] - 
https://github.com/mcimadamore/panama-foreign/tree/foreign-finalize%2Bjextract




More information about the panama-dev mailing list