[foreign] RFR 8218281: jextract native library related command line options should be revisited

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Tue Feb 5 17:05:29 UTC 2019


Looks good

Thanks
Maurizio

On 05/02/2019 16:56, Sundararajan Athijegannathan wrote:
> Thanks for the review. Removed WARN mode and adjusted "action" as a 
> lambda in MissingSymbolAction enum as suggested.
>
> Updated: http://cr.openjdk.java.net/~sundar/8218281/webrev.02/
>
> Thanks,
> -Sundar
>
> On 05/02/19, 6:03 PM, Maurizio Cimadamore wrote:
>> Looks good.
>>
>> One minor question/comment is if you thought about replacing the 
>> MissingActionEnum with lambda expression set up in Main - e.g. 
>> MissingActionEnum could be, essentially a Consumer<String>.
>>
>> I'm saying this because most of the action refer to methods in Main 
>> itself (e.g. format), and the actions are also simple enough that I 
>> think the code would not be too bad?
>>
>> Or, you could merge the enum and lambda approach together:
>>
>>
>> public enum MissingSymbolAction {
>>      ERROR(name -> throw new 
>> RuntimeException(Main.format("err.symbol.not.found", name)),
>>      EXCLUDE(name -> err.println(Main.format("warn.symbol.excluded", 
>> name)),
>>      WARN(name -> err.println(Main.format("warn.symbol.not.found", 
>> name)),
>>      IGNORE(name -> {});
>>
>>      final Consumer<String> action;
>>
>>      ...
>> }
>>
>>
>> Then SymbiolFilter can just fetch the action corresponding to the 
>> enum constant, and execute it with given name, no need for a switch 
>> (or, maybe you do to be able to 'return null' in case symbol is 
>> excluded).
>>
>>
>> Also, looking back, I'm not 100% sure of the need for the distinction 
>> between WARN and EXCLUDE. They basically do the same thing - they 
>> produce a warning - but the latter also omits the symbol from the 
>> resulting API. The question is - is there ever a case where it makes 
>> sense to generate an API point under these circumstances? Wouldn't 
>> the code always fall over at runtime when invoking that method (or, 
>> more likely, early when binding the interface) ?
>>
>> So, to me ERROR is good - we want to fail if some mismatch is detected.
>>
>> If we don't want to fail, then I think we should take action towards 
>> generating something that "makes sense" - at which point the only 
>> distinction I see is: do I want to be bothered about (WARN), or not 
>> (IGNORE) ?
>>
>>
>> And, last (general) comment, we need to capture these options 
>> somewhere in the MD file.
>>
>> Maurizio
>>
>>
>> On 04/02/2019 16:22, Sundararajan Athijegannathan wrote:
>>
>>> Hi Anthony,
>>>
>>>
>>> Thanks for spotting those!
>>>
>>>
>>> Updated: https://cr.openjdk.java.net/~sundar/8218281/webrev.01/
>>>
>>>
>>> Thanks,
>>> -Sundar
>>>
>>>
>>> On 04/02/19, 9:25 PM, Anthony Vanelverdinghe wrote:
>>>>
>>>> Hi Sundar
>>>>
>>>> In JModWriter.java there is:
>>>>
>>>> -            if (ctx.libraryPaths.isEmpty() && 
>>>> ctx.linkCheckPaths.isEmpty()) {
>>>>
>>>> +            if (ctx.libraryPaths.isEmpty() && 
>>>> ctx.libraryPaths.isEmpty()) {
>>>>
>>>> but now both conditions are the same, so the second can be removed.
>>>>
>>>> In Main.java there is an unintended whitespace change:
>>>>
>>>> -        ctx.setGenStaticForwarder(staticForwarder && 
>>>> options.has("l"));
>>>>
>>>> +        ctx.setGenStaticForwarder(staticForwarder&& 
>>>> options.has("l"));
>>>>
>>>> Kind regards
>>>>
>>>> Anthony
>>>>
>>>> ------------------------------------------------------------------------ 
>>>>
>>>> *From:* panama-dev <panama-dev-bounces at openjdk.java.net> on behalf 
>>>> of Sundararajan Athijegannathan 
>>>> <sundararajan.athijegannathan at oracle.com>
>>>> *Sent:* Monday, February 4, 2019 3:24:00 PM
>>>> *To:* 'panama-dev at openjdk.java.net'
>>>> *Subject:* [foreign] RFR 8218281: jextract native library related 
>>>> command line options should be revisited
>>>> Please review.
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8218281
>>>> Webrev: https://cr.openjdk.java.net/~sundar/8218281/webrev.00/ 
>>>> <https://cr.openjdk.java.net/%7Esundar/8218281/webrev.00/>
>>>>
>>>> Thanks,
>>>> -Sundar


More information about the panama-dev mailing list