This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
If you enable direct linking for your Clojure application, will it only affect the code in your project ? Dependencies you pull in from other libraries or projects will still use their own compilation options, is that basically all there is to know for dependencies? So alter-var-root on a dependency var is hit/miss ?
Compilation is transitive, and code is compiled with whatever options are set when they are compiled
Sometimes people distribute libraries that are aot compiled, but that usually ends in tears (clojure's compilation model is just not well suited to it, it is very easy to run into problems)
Could you expand on those tears, @U0NCTKEV8 ? 🙏 :face_with_monocle:
Because compilation is transitive when you aot your library you will also get your libraries dependencies aot compiled
You can go and delete the "extra" class files, but clojure compilation is non-determinisric (if a few different ways) so the outputs can and up tied to the exact compilation environment that produced them
And it can be challenging as a consumer of the library to produce the exact same compilation environment when you are compiling your code
https://clojure.atlassian.net/browse/CLJ-1544 is an example of the annoying problems you get to deal with if you use libraries that are aot compiled
Oh, right, then eval with aot compilation https://clojure.atlassian.net/browse/CLJ-1916