Reily Siegel schreef op vr 18-03-2022 om 10:01 [+0100]: > > Looks like there's a bug somewhere then.  Has this been reported? > > Could a link be added to the report so we know when the #:aot- > > exclude > > can be removed?  If it's an issue with ant-build-system, can this > > be > > reported? > > Clojure libraries are usually not designed to be AOT-compiled, and > are largely distributed in source form. The fact that Guix's > clojure-build-system chooses to AOT all Clojure code by default is > confusing to me. For languages for which a compiler is available, AOT is rather standard. (E.g., C, C++, Guile Scheme, Python, Java, Fortran). Apparently Clojure has a compiler as well. Basically, why not AOT when it is possible, instead of delaying compilation until runtime? > At some point, this default should probably be changed because many > Clojure libraries rely on the fact that they are distributed > uncompiled to work properly. How can a Clojure library rely on this fact in the first place? I don't quite see how -- for comparison, there are a few methods in Guile for detecting if it is has been compiled or is being interpreted, e.g. some uses of 'eval-when', '%load-compiled-path' or 'procedure- name', but they are rather convoluted and unused (except in examples). Also, if a Clojure library misbehaves when being AOT-compiled, without additional context, that seems like a bug in the Clojure library to me (or the AOT-compilation code). Greetings, Maxime.