Journal 2019.9 - jdk regression, clojure.main, spec
JDK regression
Following up on this from last week, I had the idea that maybe moving all of the code out of the RT static initializer was not necessary. The other big thing happening is loading clojure.core, but all of that code is AOT compiled. I put together a new patch on CLJ-2484 and sure enough, just moving the load of user.clj out of the RT initializer is sufficient. Seems like work on the Java bug is continuing to progress, but slowly.
clojure.main
We had a long discussion this week about what to do on CLJ-2463 around error reporting when invoking clojure.main. I think the fundamental insight is that process invocation via clojure.main is inherently a poor API as we basically have a return code and printing to convey information. Consumers of this “API” may have wildly varying needs (one-off invocations via clj, dev-time tooling like lein, or a prod server).
As such, we ultimately decided that we should focus the default printing on the message we spent a lot of time on in 1.10 (what you now see in the clojure.main REPL). But also, we want to retain as much info as possible for cases where that’s needed, so we’re writing that into an .edn temp file. There is also an override flag to force printing to stderr instead for production cases where that’s more useful. More details and patch in the ticket if you’re interested.
We’re considering a possible 1.10.1 with the two issues above, but TBD.
spec
Continued some work on the new spec select as well, but nothing useful to talk about yet.
ClojuTRE
If you’re heading to Helsinki for ClojuTRE, I’ll see you there! I have a few candidate talks but haven’t decided yet what I’ll be talking about. Looking forward to seeing Finland for the first time and meeting you all!
Other stuff I enjoyed this week…
Shout out this week to the Motortrend show Roadkill which I thoroughly enjoy, despite knowing next to nothing about “car stuff”. I particularly enjoy the hosts’ calm and thorough competence that comes from understanding every system they’re working with from first principles. I enjoy imagining that this is Rich and Stu in some alternate universe.