so slight dilemma. google finally added support for parsing JS https://github.com/google/closure-compiler/commit/0b7b37466847f8ea6615533539a68a58227f1563 which has been a major problem and accounts for like 90% of all recently reported shadow-cljs issues (see https://github.com/google/closure-compiler/issues/2731). all this isn't released yet, but I'd be eager to switch to the new release whenever that comes to finally fix all the issues. the problem is that google also moved the closure compiler to java21 minimum. any thoughts on that? maybe fork the whole thing and revert it back down to 11? just make 21 the new minimum required version for CLJS?
21+๐ฏ
Iโd be fine with a 21 minimum. How much work would a fork be?
the main issue would be figuring out their whole bazel build related stuff. code wise so far I have only seen one trivial change that would be easily undone. long term this would likely become unsustainable though, but could maybe be done for the next release.
maybe Iโd try with bumping to 21 and see how many complaints you get. Then you can still consider a fork later?
yeah probably. probably won't be any more painful than 8 -> 11 was. most people were fine, some quit ๐
right, Iโd support a push towards 21 and maybe core asyncโs upcoming virtual threads support will also help with it
yeah 21 baseline would be great I guess. many other things I'd move to vthreads in shadow ๐
and maintaining a closure fork sounds like a ton of work thatโs not very fun
yeah, although I've been thinking about it for a while and ripping out all the useless stuff we don't use anyways ๐ and of course adding some missing stuff or making inaccessible stuff accessible ๐
but them fixing the private stuff is a major win ๐
+1 on going forward with 21 The fact that the cause is a one liner stringbuilder change is annoying though
21+ ๐
Note: shadow-cljs isn't required for "production" machines In my company, prod still runs 17 (and we don't control it. It is another team) But the CI/CD can run 21 for cljs builds. So it is not a blocker
I had to do the annoying setup in builds for shadow to use 11+ while other JVM build step stuff (for CLJ) used 8 already. So it was doable at least. 21 wouldnโt be any harder there.
I think min. 21 is ok - it's annoying but based on the 2024 Clojure survey results, it's also not completely unreasonable.
there's also a mild push from future core.async towards Java 21+ because virtual threads
yeap