Clojure compiles all code you load on-the-fly into JVM bytecode, but sometimes it is advantageous to compile ahead-of-time (AOT). Some reasons to use AOT compilation are: To deliver your application without source To speed up application startup To generate named classes for use by Java To create an application that does not need runtime bytecode generation and custom classloaders The Clojure comp