[foreign-jextract] No code generated for structs inside union
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Fri Aug 7 14:57:34 UTC 2020
On 07/08/2020 15:22, Filip Krakowski wrote:
> Hi Maurizio,
>
> wow, that was really fast. Thank you!
>
> I will manually trigger our OpenJDK build pipeline in a moment and
> test out your fix. While I'm at it: Is it ok if we host nightly builds
> of the foreign-jextract branch publicly on one of our servers?
>
> https://coconucos.cs.hhu.de/forschung/jdk
Sure - there are no restriction when it comes to publishing openjdk builds.
We are also planning to release a binary snapshot as things get more
stable (e.g. after we take care of the crashes with native method handle
intrinsics).
Cheers
Maurizio
>
> This way we can always update to the latest nightly build in a matter
> of seconds. We use SDKMAN! (https://sdkman.io/) for managing local JDK
> installations. I also wrote a script that downloads and unpacks the
> nightly build into the candidates folder of SDKMAN!, so that it can be
> selected from the command line. If public hosting of the compiled
> OpenJDK is not allowed, I will of course restrict it to our private
> network.
>
> Best regards,
> Filip
>
> On 07.08.20 16:10, Maurizio Cimadamore wrote:
>> Hi Filip,
>> I've just integrated a fix for the issue you reported. The fix should
>> now let jextract to "recurse" on nested anon structs/union.
>>
>> It is possible that we'll need more work in order to fully rectify
>> the situation, but the current fix should at least allow you to make
>> more progress.
>>
>> Let us know how it goes :-)
>>
>> Cheers
>> Maurizio
>>
>>
>> On 06/08/2020 14:25, Filip Krakowski wrote:
>>> Hi,
>>>
>>> it seems that jextract does not generate code for structs declared
>>> within unions. Tested with "ibv_send_wr" shown on the following man
>>> page.
>>>
>>> https://linux.die.net/man/3/ibv_post_send
>>>
>>> Although it is possible to get a MemorySegment for "wr", it's rather
>>> difficult to work with it without having its corresponding
>>> MemoryLayout. In this case it is relatively important to access the
>>> fields of the structs in the union, as these describe how an
>>> operation is to be executed.
>>>
>>> Best regards,
>>> Filip
>
More information about the panama-dev
mailing list