cincheo / jsweet

A Java to JavaScript transpiler.
http://www.jsweet.org
Other
1.45k stars 159 forks source link

Use embedded standalone compiler from Java 11 #770

Closed kohlschuetter closed 8 months ago

kohlschuetter commented 8 months ago

Following up after https://github.com/cincheo/jsweet/pull/760, I realized that adding --add-opens is an anti-pattern.

Obviously, we're hacking into Java SDK internals that are subject to change without notice. We already have problems running jsweet with Java 16. Eventually, it may simply fail.

So think we need a long-term solution, and I believe we now have it:

Instead of relying upon and prying upon these internals, we can now simply rely on a clean Maven artifact that provides us with the Java Compiler Tree API as a standalone feature. (I spent a few days putting this together just for this, but I realize this can be useful in many other places as well)

The standalone compiler code uses the GPL2.0+Classpath exception license, just like the original JDK, so there shouldn't be any surprises other than the fact that it works :-)