From Tobi_Ajila at ca.ibm.com Tue Mar 28 21:09:21 2017 From: Tobi_Ajila at ca.ibm.com (Tobi Ajila) Date: Tue, 28 Mar 2017 16:09:21 -0500 Subject: Panama Updates Message-ID: Last time we spoke we talked about clarifying some of the basic layout concepts. If I recall correctly there was general consensus on the concepts but the terminology differed. Here is what I have from our previous discussions: Layout - Describes how the data is organized. LayoutType - Combines a Layout and Java carrier type information and facilitates the translation between the two. MemoryRegion - Describes where the data is located. A contiguous range of memory located on/off-heap, RDMA, etc. Scope - Memory allocator. Manages the life time of allocated memory, responsible for freeing memory. Native Type - Types used by the native language Carrier Type - Java representation of the native type Pointer & Reference - Combines a MemoryRegion and LayoutType. My understanding is that Pointer simply points at the data (you must dereference it to touch the fields) whereas Reference lets you grab the fields Does that look right to you? Where would 'Layout Descriptor' fit in the list above? Also, you mentioned concepts like Type and TypeDescriptor, are those just synonyms for Layout and LayoutDescriptor? We should begin to sketch out a spec describing the core concepts (previously mentioned concepts as well as things like bit-fields, alignment and atomicity) based on what we know so far. At the very least this would help iron out the terminology and expose areas that require further work. Along the same lines, it would be good to formalize a list of objectives for the first release of Panama. i.e. Support C function calling, on/off heap data access, etc. What do you think about these propositions? On our end we've been experimenting with the OpenJDK Panama builds. At this point we have native C function calling working with primitives as well as struct types. Minimal changes required to get this up and running. I've taken a look and John's C++ observations but I don't have much to contribute on that topic right now as we have not spent much time investigating it. I hope to have some feedback as we start doing some C++ prototyping. Hope to hear your updates. Regards, --Tobi