hg: panama/panama/jdk: Summary: push of version-2 prototype of Arrays2.0. Work remains, comment is requested.

John Rose john.r.rose at oracle.com
Wed Oct 8 01:35:59 UTC 2014

On Oct 7, 2014, at 5:59 PM, Samuel Audet <samuel.audet at gmail.com> wrote:

> Is panama-dev going to be the place where most of the discussions about Arrays2.0 take place? Or is this part of some other project?

I like to think of Panama as consisting of three major chunks of work:
FFI, data layouts, and Arrays 2.0.

I gave an early and rough prospectus of the Arrays 2.0 work at
the 2012 JVM Language Summit [1] and Karl Taylor and I talked
more generally about flattened data structures this year[2].

[1]: http://cr.openjdk.java.net/~jrose/pres/201207-Arrays-2.pdf
[2]: http://cr.openjdk.java.net/~jrose/pres/201407-FlattenedData.pdf

The Panama project page[3] implies this work under these bullet items:
	• native data access from JVM or inside JVM heap
	• new data layouts in JVM heap

[3]: http://openjdk.java.net/projects/panama/

In two big bullets, Panama can be viewed as:
  A. foreign function interface (FFI from the function binding part of JNR)
  B. new, flatter data layouts (type-safe access to hardware-friendly flat data)

The second bullet can be split into the strictly foreign part and the Java part:
  B01. foreign data interface (C structs, type-safe off-heap access)
  B02. flatter Java objects (similar to IBM Packed objects, http://objectlayout.org)

It could also be split along a different axis, arrays vs. non-arrays:
  B11. Arrays 2.0
  B12. other flat data structures (i.e., records or tagged data streams)

Other items get pulled into Panama are pulled into it because they are
needed to support A and B well (layout metadata, header file scraping) or because
they are primary uses of A and B (array arithmetic, native library integration).

— John

More information about the panama-dev mailing list