Closed nasser closed 2 years ago
The double compilation occurs when
(compile 'required-ns)
was called after (compile 'requiring-ns)
clojure.core.protocols
requires clojure.set
so if the compilation order is
(compile 'clojure.core.protocols)
(compile 'clojure.set)
clojure.set
will be compiled twice (once because required in clojure.core.protocols
and once on its own.
but if the compilation order is
(compile 'clojure.set)
(compile 'clojure.core.protocols)
clojure.set
will be compiled once.
That's my understanding.
if i recall the expected semantics, compile
should see that clojure.set
was already compiled and not compile it a second time. does it double compile on the JVM?
Fixed by 8d52baab28c7b78c2d16dc4418bae1c59059edb8
The following namespaces are being double compiled during bootstrapping.
clojure.clr.io
clojure.core.protocols
clojure.edn
clojure.instant
clojure.main
clojure.set
clojure.string
clojure.uuid
clojure.walk