[foreign-abi] RFR 8228486: Add ABI-specific layout constants
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Tue Jul 23 23:02:49 UTC 2019
On 23/07/2019 22:46, Jorn Vernee wrote:
> Windows + Shared bits look good, tests pass as well.
>
> About the PTR_LAYOUT in UniversalNativeInvoker (same with PTR_HANDLE
> in UUH). I guess this should also be passed into the constructor by
> the ABI implementations (like with CallingSequenceBuilder)?
Yeah - that would be an option too.
>
> It's only being used for in memory returns currently, but I was
> thinking we could remove the in memory return handling from
> UniversalNativeInvoker and let ABIs handle that separately (probably
> still with some shared utility though), since the way it works is
> pretty ABI specific.
>
> Was looking into that among other things, but currently having some
> problem with intellij not recognizing our incubator module in my test
> projects (I swear it was working yesterday :P)
Are you using the 'official' intellij project which can be set up
calling bin/idea.sh ?
Maurizio
>
> Jorn
>
> On 2019-07-23 16:10, Maurizio Cimadamore wrote:
>> Updated webrev:
>>
>> http://cr.openjdk.java.net/~mcimadamore/panama/8228486_v2/
>>
>> Thanks for the comments so far
>>
>> Maurizio
>>
>> On 22/07/2019 18:23, Maurizio Cimadamore wrote:
>>> Hi,
>>> the recent push for JDK-8228447, as expected, broke the foreign-abi
>>> branch, since that branch depended on the ValueLayout::isIntegral
>>> accessor.
>>>
>>> This patch replaces that logic with the custom layout annotation
>>> logic discussed in [1]:
>>>
>>> http://cr.openjdk.java.net/~mcimadamore/panama/8228486/
>>>
>>> This patch makes the following changes:
>>>
>>> * introduces three set of annotated layout constants, one for
>>> supported ABI
>>> * the annotations point directly at the ABI-specific argument classes
>>> * I've consolidated ArgumentClass a bit, so that now there's a
>>> common, ABI-agnostic super-interface with some general predicates
>>> * AddressLayout has been removed (we can just look for
>>> argumentClass::isPointer)
>>> * the tests have been tweaked to use the new ABI-specific constants;
>>> since the test has to work across platforms, all ABI test use a new
>>> interface which imports the 'right' set of constants
>>>
>>> While the patch might be a bit raw (I've only tested on Linux x64),
>>> I like where this is going.
>>>
>>> Maurizio
>>>
>>>
>>>
More information about the panama-dev
mailing list