[foreign-jextract] Using many headers splits generated code in package-private classes

Filip Krakowski filip.krakowski at hhu.de
Fri Dec 11 17:41:33 UTC 2020


Hi,

looks like I wrote too soon and IntelliJ simply is not able to handle 
the generated class files correctly. Is anyone using IntelliJ (2020.3) 
and can confirm that it is not able to resolve generated methods which 
are created in inner classes? This worked for me in the past.

Best regards
Filip

On 11.12.20 18:30, Filip Krakowski wrote:
> Hi,
>
> I am trying to generate bindings for the ucx library 
> (https://github.com/openucx/ucx). The input I pass to jextract is the 
> following header file (filename = "ucx.h", package = "org.openucx", 
> source mode = false).
>
>     /// OpenUCX Transports//
>     //#include <uct/api/uct.h>//
>     //
>     //// OpenUCX Protocols//
>     //#include <ucp/api/ucp.h>//
>     //
>     //// I/O Multiplexing//
>     //#include <sys/epoll.h>//
>     //#include <sys/eventfd.h>//
>     //
>     //// File descriptor utilities//
>     //#include <fcntl.h>//
>     //#include <unistd.h>/
>
> It looks like a large amount of the generated code ends up in numbered 
> package-private classes. As an example, I can't access the 
> MethodHandle for "eventfd" because it is in a package-private class 
> named "org.openucx.ucx_h$1". If I remove the includes for 
> "<uct/api/uct.h>" and "<ucp/api/ucp.h>" the generated method is 
> created in class "org.openucx.ucx_h" where I can access it./
> //
> /Is there a way to access code generated in the other (numbered) 
> package-private classes I'm missing?
>
> Best regards
> Filip


More information about the panama-dev mailing list