bitfields support in jextract

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Tue Jul 3 09:59:44 UTC 2018



On 03/07/18 04:09, Samuel Audet wrote:
> On 07/02/2018 06:25 PM, Maurizio Cimadamore wrote:
>> I've checked the compatibility link last week - and also found 
>> nothing relevant.
>>
>> I know that bitfield layout is impl specific (the C language spec, I 
>> checked say nothing about that - just that there's some storage unit 
>> of some kind).
>>
>> That said, I'm using  the offsets returned by the clang API to add 
>> bitfields support. As long as clang in Windows does the sensible 
>> thing - e.g. be compatible with MSC - and I have not seen any proof 
>> pointing at the opposite direction, we should be ok, I think.
>
> You're right, it looks like since GCC 4.7 it (and by extension Clang) 
> uses by default the same packing algorithm as MSVC when targeting 
> Windows:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991
>
> So we can probably handle the differences between platforms when it 
> comes to bit fields in the same way as for other types (mainly "long" 
> being 32-bit on Windows vs 64-bit on pretty much any other OS). 
> Although, this still doesn't work for C++ in general...
>
>> As for your claim on scope, this is (i) not the right mailing list 
>> where to raise such concerns (you should use the panama-spec-experts 
>> alias), 
>
> I've tried twice now to subscribe, but confirmation returns an error. 
> Says the cause should be in the log on your side somewhere.
I will investigate

Maurizio
>
>> and (ii) you seem to keep forgetting that our current incarnation of 
>> jextract is deliberately that of a tool that is built on whatever 
>> support clang has to offer. The start of the show is not jextract, 
>> it's the binder - nothing prevents us (or the community) to have a 
>> different jextract on windows that is based on MSVC (the work carried 
>> out around project Roselyn few years ago might help in that direction?).
>
> Yes, that is also what I'm guessing Panama is all about from our 
> previous exchanges, but that's not clear from what's written at say
> http://cr.openjdk.java.net/~mcimadamore/panama/panama-binder-v3.html
> People I talk to also do not get the impression that jextract is 
> supposed to be just a "demo", and that Panama is somehow already 
> supporting all of C++ for all platforms and all compilers in some 
> secret project inside Oracle... :)
>
>> If your broader point is that we should verify what's the 
>> compatibility status w.r.t. MSVC with any of the features we have 
>> added to jextract (not just bitfields) - yes, that's something that 
>> has occurred to us.
>
> Yes, that's a good idea, but I see that you've already been thinking 
> about that. Thanks for clarifying!
>
> Samuel



More information about the panama-dev mailing list