From maurizio.cimadamore at oracle.com Tue May 8 12:19:00 2018 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 8 May 2018 13:19:00 +0100 Subject: State of the Isthmus Message-ID: Hi, I've posted a new document here: http://cr.openjdk.java.net/~mcimadamore/panama/panama-binder-v3.html This document attempts to capture the state of the Java vs. native interop in a single and centralized place, and is organized into 3 sections: there's a small intro which is used to outline the reference architecture of our solution - e.g. a binder which take some native bundles, consisting of interfaces + metadata and turns them into concrete implementation, which can then be poked by user code wanting access to native features. Then there's a section covering layouts - first layout are presented as a pseudo API, then a language syntax will also be discussed, so that we will be able to associate layout description to interfaces using annotations. This section is relatively language agnostic (as layouts are language agnostic). The last section is about the problem of mapping C types to Java carriers; as such, we zoom into the problem of C interop. We outline some principles which should govern this mapping, and then walk through the various features of the C language, and try to find, for each of these, the best way to model it in Java. Even though the document bears my name, I'd like to point out that this work is the result of countless discussions among the members of the Panama team - I'd like to thank everybody who contributed to these discussion, either directly or indirectly. In the upcoming weeks, we will create a new branch in the Panama repo (initially a child of the 'nicl' branch) and start working on the branch, by implementing the concepts described in this document. This document will also be updated to reflect significant changes in the binder API - as such, I believe this document will be very useful for anybody wanting to write a tool targeting the Panama infrastructure. Cheers Maurizio