RFR: 7903625: Simplify API of the generated code [v2]

Maurizio Cimadamore mcimadamore at openjdk.org
Fri Jan 19 14:50:06 UTC 2024


> This PR simplifies the API of the code generated by jextract. Here's a list of the changes implemented:
> 
> * the struct layout accessor is now just named `layout()`
> * functional pointer code generation is different now: we generate a toplevel _class_ which defines a nested functional interface that is used for the factory method. This means that we can hide some of the constants associated with the function pointer. The descriptor accessor remains, but is called `descriptor()`.
> * For global variables, accessors such as `x$SEGMENT` and `x$LAYOUT` were made `private`
> * As for struct fields, I've made the accessors for global variable work for the case where the global is a struct/array too (the getter/setter will work on a MemorySegment).

Maurizio Cimadamore has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains three commits:

 - Merge branch 'panama' into cleanup_generated_api
 - Merge branch 'panama' into cleanup_generated_api
 - Initial push

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

Changes: https://git.openjdk.org/jextract/pull/187/files
 Webrev: https://webrevs.openjdk.org/?repo=jextract&pr=187&range=01
  Stats: 215 lines in 33 files changed: 53 ins; 28 del; 134 mod
  Patch: https://git.openjdk.org/jextract/pull/187.diff
  Fetch: git fetch https://git.openjdk.org/jextract.git pull/187/head:pull/187

PR: https://git.openjdk.org/jextract/pull/187


More information about the jextract-dev mailing list