[foreign-memaccess+abi] RFR: 8308293: A linker should expose the layouts it supports [v3]

Maurizio Cimadamore mcimadamore at openjdk.org
Fri Jun 16 13:07:08 UTC 2023


> This is another stab at https://github.com/openjdk/jdk/pull/14037
> 
> I believe, after some offline discussion, that we have found a more satisfying solution to the problem of JAVA_CHAR being exposed. Jorn suggested that linkers should also provide mappings for JNI types such as `jint`, `jshort` and such (which are aliases for our layout constants anyway). I think that's a great way to bring `JAVA_CHAR` back into the fold.
> 
> For now, I decided not to specify support for JNI canonical layouts (but I could do so, if that's preferred). I think the highest priority is to provide some stable mappings for C builtin types (+ `size_t`) as that's what 99% of developers will be struggling with.
> 
> API-wise, we just expose a map. In the preovious PR there were questions as to whether the map should be split into two methods. In general I see the following options:
> 
> 1. Just expose a map (that's the primitive, other things can derived from it)
> 2. Expose a map, plus a method to get a canonical layout from a type name (that's the `Charset` approach, which has both `availableCharsets` *and* `forName`)
> 3. Expose a method to get canonical layout from name, plus a method that returns the set of supported canonical layout names
> 
> My (not so strong) preference would be for either (1) or (2).

Maurizio Cimadamore has updated the pull request incrementally with one additional commit since the last revision:

  Re-add accidentally removed line in test

-------------

Changes:
  - all: https://git.openjdk.org/panama-foreign/pull/839/files
  - new: https://git.openjdk.org/panama-foreign/pull/839/files/2018c41e..1d1b1037

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=panama-foreign&pr=839&range=02
 - incr: https://webrevs.openjdk.org/?repo=panama-foreign&pr=839&range=01-02

  Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/panama-foreign/pull/839.diff
  Fetch: git fetch https://git.openjdk.org/panama-foreign.git pull/839/head:pull/839

PR: https://git.openjdk.org/panama-foreign/pull/839


More information about the panama-dev mailing list