On Wed, 17 May 2023 18:18:03 GMT, Maurizio Cimadamore <mcimadam...@openjdk.org> wrote:
>> This patch adds an instance method on `Linker`, namely >> `Linker::canonicalLayouts` which returns all the layouts known by the linker >> as implementing some ABI type. For instance, if I call this on my machine >> (Linux/x64) I get this: >> >> >> jshell> import java.lang.foreign.*; >> >> jshell> Linker.nativeLinker().canonicalLayouts() >> $2 ==> {char16_t=c16, int8_t=b8, long=j64, size_t=j64, bool=z8, int=i32, >> long long=j64, int64_t=j64, void*=a64, float=f32, char=b8, int16_t=s16, >> int32_t=i32, short=s16, double=d64} >> >> >> This can be useful to discover the ABI types supported by a linker >> implementation, as well as for, in the future, add support for more exotic >> (and platform-dependent) linker types, such as `long double` or `complex >> long`. > > Maurizio Cimadamore has updated the pull request incrementally with one > additional commit since the last revision: > > Tweak javadoc src/java.base/share/classes/java/lang/foreign/Linker.java line 219: > 217: * <ol> > 218: * <li>the alignment constraint of {@code G} is set to its <a > href="MemoryLayout.html#layout-align">natural alignment</a>;</li> > 219: * <li>the size of {@code G} is a multiple of its alignment > constraint;</li> Do you think this is a constraint that will hold across all linker implementations? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14037#discussion_r1197102015