[foreign] RFR: 8225552: typedef can interfere with primitive classes

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Wed Jun 12 13:28:15 UTC 2019


On 12/06/2019 11:40, Sundararajan Athijegannathan wrote:
> The "no target package" situation is bad. Should we force 
> specification of a package always or assume/derive target package from 
> input(s)?

What about assuming hat target package is "jextract", if none is 
specified? This will lead to package hierarchies like

jextract.usr.include....

Maurizio

>
> -Sundar
>
> On 12/06/19, 3:34 PM, Maurizio Cimadamore wrote:
>> The filtering looks good.
>>
>> I'm less sure about using qualified names always - what is the extra 
>> benefit of using 'java.lang.String' ?
>>
>> My reading of the test suggests that:
>>
>> 1) if the user has specified a target package, then there is no clash 
>> problems - as long as the jextract-generated types are all fully 
>> qualified, there shouldn't be clashes with symbols in 
>> java.lang/java.foreign
>>
>> 2) If there's no target package and jextract symbols are generated in 
>> the unnamed package, then you can have an issue, because one can 
>> "redefine" String.
>>
>> I think my preference would be to emit fully qualified names only 
>> when necessary - e.g. in (2). Can we check whether we have a target 
>> package set, and act accordingly?
>>
>> Cheers
>> Maurizio
>>
>> On 11/06/2019 19:23, Henry Jen wrote:
>>> Hi,
>>>
>>> Please review another trivial patch[1] that use fully qualified 
>>> class to avoid wrong type reference.
>>>
>>> In this patch, I also entertain a small change to allow 
>>> —exclude-symbols to filter out typedef, which are generated as type 
>>> annotation. There is not good reason why we cannot filter out those 
>>> if so is user wanted.
>>>
>>> [1] http://cr.openjdk.java.net/~henryjen/panama/8225552/0/webrev/


More information about the panama-dev mailing list