[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-build-dev
Subject:    Re: RFR: 8312522: Implementation of Foreign Function & Memory API [v32]
From:       Jorn Vernee <jvernee () openjdk ! org>
Date:       2023-09-30 16:22:56
Message-ID: urlnchosGXlr1pCp6xHom8cjNtgI6kzto8z_PsdNpGA=.53746de5-78d8-487c-b278-9ca1f17d1d79 () github ! com
[Download RAW message or body]

On Thu, 28 Sep 2023 13:33:32 GMT, Jorn Vernee <jvernee@openjdk.org> wrote:

> > This patch contains the implementation of the foreign linker & memory API JEP for \
> > Java 22. The initial patch is composed of commits brought over directly from the \
> > [panama-foreign repo](https://github.com/openjdk/panama-foreign). The main \
> > changes found in this patch come from the following PRs: 
> > 1. https://github.com/openjdk/panama-foreign/pull/836 Where previous iterations \
> > supported converting Java strings to and from native strings in the UTF-8 \
> > encoding, we've extended the supported encoding to all the encodings found in the \
> > `java.nio.charset.StandardCharsets` class. 2. \
> > https://github.com/openjdk/panama-foreign/pull/838 We dropped the \
> > `MemoryLayout::sequenceLayout` factory method which inferred the size of the \
> > sequence to be `Long.MAX_VALUE`, as this led to confusion among clients. A client \
> > is now required to explicitly specify the sequence size. 3. \
> > https://github.com/openjdk/panama-foreign/pull/839 A new API was added: \
> > `Linker::canonicalLayouts`, which exposes a map containing the platform-specific \
> > mappings of common C type names to memory layouts. 4. \
> > https://github.com/openjdk/panama-foreign/pull/840 Memory access varhandles, as \
> > well as byte offset and slice handles derived from memory layouts, now feature an \
> > additional 'base offset' coordinate that is added to the offset computed by the \
> > handle. This allows composing these handles with other offset computation \
> > strategies that may not be based on the same memory layout. This addresses \
> > use-cases where clients are working with 'dynamic' layouts, whose size might not \
> > be known statically, such as variable length arrays, or variable size matrices. \
> > 5. https://github.com/openjdk/panama-foreign/pull/841 Remove this now redundant \
> > API. Clients can simply use the difference between the base address of two memory \
> > segments. 6. https://github.com/openjdk/panama-foreign/pull/845 Disambiguate uses \
> > of `SegmentAllocator::allocateArray`, by renaming methods that both allocate + \
> > initialize memory segments to `allocateFrom`. (see the original PR for the \
> > problematic case) 7. https://github.com/openjdk/panama-foreign/pull/846 Improve \
> > the documentation for variadic functions. 8. \
> > https://github.com/openjdk/panama-foreign/pull/849 Several test fixes to make \
> > sure the `jdk_foreign` tests can pass on 32-bit machines, taking linux-x86 as a \
> > test bed. 9. https://github.com/openjdk/panama-foreign/pull/850 Make the linker \
> > API required. The `Linker::nativeLinker` method is not longer allowed to throw an \
> > `UnsupportedO...
> 
> Jorn Vernee has updated the pull request incrementally with one additional commit \
> since the last revision: 
> review @enablePreview from java/foreign/TestRestricted test

> Maybe include [openjdk/panama-foreign#864](https://github.com/openjdk/panama-foreign/pull/864)?
> 

The leftover implementation-only changes will be ported over separately.

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

PR Comment: https://git.openjdk.org/jdk/pull/15103#issuecomment-1741806316


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic