Hi,
Thanks for your interest! I'm always trying to do all that I can, but
I'm pretty much just one guy working on this part-time...
Besides, this is the kind of thing that should be standardized in the
JDK, and Oracle isn't exactly low in resources ($9 billion net income
last year, wow), so what's the issue? I'm still trying to figure out the
politics and I doubt that one more page about something is going to make
a great deal of a difference...
Samuel
On 05/08/2018 09:40 PM, Mike Hearn wrote:
Thanks Samuel! I wasn't familiar with JavaCPP before, that sounds like a
great project.
You are right that there's a lot of overlap here with other efforts, and
that standardising some basic things like JAR locations is the right
place to begin. I suspect a JEP requires actual changes to OpenJDK to be
valid, so a JEP that just proposes whatever JavaCPP does as a convention
wouldn't go anywhere.
Perhaps integrating JavaCPP's loading mechanism with JavaFX is a good
next step, as the community can then learn about it through that and may
follow the lead of JavaFX. I suppose someone would have to convince
Kevin Rushforth.
Samuel - what you could also do is write a one-page "standards document"
that describes where exactly JavaCPP puts things on the file system, the
algorithm it uses for selecting locations and cache keys, etc, so other
projects that unpack libraries to disk can share the same cache
location. That would lay the groundwork for it either becoming a widely
adopted convention, and/or becoming a future Java standard, and/or being
encapsulated in a NativeLoader in future if such an API is added to the
Java platform. The Loader class could also be split out into a separate
module/project.
The Panama/nicl JEP makes mention of improvements to native code loading
and discovery. It seems most of the effort in Panama is currently
related to vector support. If I were Mr Rose or Mr Reinhold I'd be
tempted to try and un-bundle better loading from the rest of the nicl
project so it can ship earlier. A NativeLoader style API would be a
smaller change to the JVM than all of the binding layer together.