Project Proposal: Panama

John Rose john.r.rose at
Tue Mar 18 00:56:49 UTC 2014

I would like to invite discussion on a proposal for a new OpenJDK
Project[1], to be titled "Project Panama", for native interconnect
between code managed by the JVM and APIs for libraries not managed by
the JVM.

To put it in general, basic, idealistic terms:

  If non-Java programmers find some library useful and easy to
  access, it should be similarly accessible to Java programmers.

That ideal is easy to state but hard to carry out.  It must be
carefully compromised relative to the important cultural differences
between unmanaged languages and JVM-based languages.
Java applications must preserve high levels of safety in the handling
of type checks, storage allocation, and exceptional conditions.

I have written out more detailed thoughts on my blog[2].

Goals for Project Panama could include:

 - A better experience than JNI for Java programmers to use C and C++ APIs.
 - Appropriate tools, APIs, and data formats to support these experiences.
 - Appropriate JVM and JDK infrastructure to work with native API elements
   (layouts, functions, etc.) from Java code (interpreter and JIT).
 - A range of options for using native libraries from Java with definite
   and reliable safety levels, allowing for engineered adjustments.

At a minimum, the project should create an integrated foreign function
interface of the type called for in Charles Nutter's JEP 191[3].

The Project should be sponsored by the HotSpot Group, since the JVM will
probably require significant modifications to meet Project goals.

I think the Project should have its own copy of JDK 9 repositories,
but should not feed change sets directly into any JDK.

For documentation beyond Java APIs, and for design works in progress,
the Project should be supplied with a wiki writable to all Project
committers.  Alternatively, the HotSpot wiki could be used.

The Project is likely to need a bug management system in the long run,
but perhaps not initially.  I would appreciate advice from people who
have run similar "feeder projects" for the JDK.

Finally, I would like to propose Charles Nutter of Red Hat as the Lead
for Project Panama.


More information about the discuss mailing list