[foreign] RFR 8220544: Jextract; library dependent header filtering
Jorn Vernee
jbvernee at xs4all.nl
Wed Mar 13 16:21:52 UTC 2019
Hi,
After some discussion:
https://mail.openjdk.java.net/pipermail/panama-dev/2019-March/004828.html
I've implemented the discussed approach to header & declaration
filtering.
Bug: https://bugs.openjdk.java.net/browse/JDK-8220544
Webrev:
http://cr.openjdk.java.net/~jvernee/panama/webrevs/8220544/webrev.00/
There are a few new implementation classes:
* PattertnFilter; a helper class that encapsulates the Pattern based
filtering code previously found in SymbolFilter. This code had to be
reused.
* Filters; a Context sub-component holding PatternFilters for
different types of declarations.
* DependencyFinder; finds dependencies of the root set of declarations
found in the root headers.
* ElementFilter; filters out non-library symbol elements based on
whether they appear in a root header or are required by something
therein.
* RootSet; a helper class for managing root headers + required element
Trees.
I also encountered some crashes when debug printing Trees, which I've
fixed/worked around accordingly.
FWIW, I tried this out with the Windows registry API and it's working
very nicely! Going from well over 100 headers to under 10. Some room for
improvement still exists; some empty headers and static forwarders could
still be omitted, but imho that should be handled by a separate patch.
Thanks,
Jorn
More information about the panama-dev
mailing list