arrdem / katamari

Roll up all your software into artifacts!
67 stars 4 forks source link

Extend clojure-library to support AOT #39

Closed arrdem closed 5 years ago

arrdem commented 5 years ago

Fixes #35

arrdem commented 5 years ago

The more I stare at https://clojure.org/reference/compilation, https://dev.clojure.org/display/design/AOT+Problem+Overview and the linked JIRA issues, the less I'm convinced that this really makes sense.

The current implementation simply AOT's the source files (and, because AOT is transitive the dependencies of those source files recursively) of the current target. Which makes AOT actually completely inappropriate except for use in leaf libraries - I think.

Rather than AOT being part of a "clojure library" - because without what's referred to in CLJ-322 as "sifting" which attempts to delete classfiles not produced from enumerated sources you compile more than the library - maybe it makes sense for clojure-aot to be its own dedicated target type intended to be a terminal product before a jar or uberjar which would be deployed.

arrdem commented 5 years ago

Shelving this one for a bit. Needs "hammock time".

arrdem commented 5 years ago

Probably some lessons to be learned from lein - maybe also from boot.