[External] : Re: Javadoc for API

Jorn Vernee jorn.vernee at oracle.com
Thu Jan 30 18:20:30 UTC 2025


Note that --dump-includes already exists, and generates a flat list of 
`--include-XXX` options that can be passed back to jextract (not JSON). 
You would need to parse these options manually. I think the format would 
be relatively stable, only needing to change if we change the command 
line options.

 > Speaking of 'parse', I notice that it doesn't throw an exception on a 
missing '#include <header.h>' as it used to. Now I only see a printed 
error. Has this changed? Is there a way to capture this error somehow so 
that the user knows something went wrong?

Yes, this changed as part of: https://github.com/openjdk/jextract/pull/255

It looks like the Logger class that was added is not part of the public 
API, so right now I don't think there's a way to capture those errors 
aside from capturing and parsing them from the output.

Jorn

On 30-1-2025 14:06, Nir Lisker wrote:
> It's probably possible to do, but looks roundabout.
>
> Here is my setup in more detail:
> 1. A header is given to the application. It calls 'parse' on it to get 
> all the Declarations.
> 2. The user can configure which declarations to include in the GUI, 
> and also the other options such as class name, macros, output dir etc.
> 3. The 'run' method is called with the arguments generated from the 
> configuration.
>
> It's all in-memory.
>
> With --dump-includes:
> 1. A header is given to the application. A JSON file is created.
> 2. The file is read and parsed to produce the Declarations. 
> Configuring a JSON parser is already a lot of work for polymorphic 
> sybtyping (all the types of Declarations). Will jextract provide a 
> parser? What is the format? Is it stable?
> 3. Is 2 above.
> 4. Is 3 above.
>
> So we complicated things by creating a file from which we need to read 
> the data that would otherwise be given to us directly by 'parse'. At 
> least this is my understanding.
>
> Speaking of 'parse', I notice that it doesn't throw an exception on a 
> missing '#include <header.h>' as it used to. Now I only see a printed 
> error. Has this changed? Is there a way to capture this error somehow 
> so that the user knows something went wrong?
>
> On Tue, Jan 28, 2025 at 5:06 PM Jorn Vernee <jorn.vernee at oracle.com> 
> wrote:
>
>     > There is no need for a dump.
>
>     But, do you think you could do the things you're doing, using
>     JextractTool::parse, by using --dump-includes instead?
>
>     I'm trying to assess if we even need the API at all, or if we can
>     just have the ToolProvider.
>
>     Jorn
>
>     On 28-1-2025 15:12, Nir Lisker wrote:
>>     I use
>>     JextractTool.parse(List<String> arg0, String... arg1)
>>     to inspect given header files. Then I use
>>     ToolProvider.run(PrintStream out, PrintStream err, String... args)
>>     which is not Jextract-specific to run the tool with the user's
>>     configuration. There is no need for a dump.
>>
>>     I want to release an alpha soon so you'll be able to see how it
>>     works.
>>
>>     On Tue, Jan 28, 2025 at 2:28 PM Jorn Vernee
>>     <jorn.vernee at oracle.com> wrote:
>>
>>         Hey Nir,
>>
>>         The jextract API has been neglected for a while (as you've
>>         found).
>>         Initially it was a way of avoiding adding many flags to
>>         jextract, to do
>>         things like filtering, renaming, and other things. The idea
>>         being that
>>         if users wanted more control of what jextract did, they could
>>         use the
>>         API. But, now it seems like we're moving in that direction
>>         any way, with
>>         the JSON based configuration:
>>         https://bugs.openjdk.org/browse/CODETOOLS-7903788
>>
>>         I think we need to re-asses which use cases the jextract API
>>         addresses,
>>         and whether using jextract through the ToolProvider
>>         interface, with the
>>         extended configuration options, is also an option.
>>
>>         IIRC your use case is filtering the jextract output, right?
>>         Do you think
>>         it would be possible to use the ToolProvider interface with a
>>         combination of --dump-includes, and automatically generated
>>         --include-XXX flags, to achieve the same level of functionality?
>>
>>         Jorn
>>
>>         On 26-1-2025 08:51, Nir Lisker wrote:
>>         > Hi,
>>         >
>>         > There are several public methods the JextractTool exposes.
>>         Please
>>         > javadoc to these methods so tool users will know what they
>>         do and how
>>         > to use them.
>>         >
>>         > Thanks,
>>         > - Nir
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/jextract-dev/attachments/20250130/9942c47d/attachment.htm>


More information about the jextract-dev mailing list