Look at the compile fn at the bottom: https://github.com/technomancy/leiningen/blob/master/src/leiningen/compile.clj
you will find your answer :) Luc P. > Excellent answers and I usually find a use for extra wrenches. > > I'm still confused about when anybody actually calls the (compile) > function, any more tips here? Or is it being done for me by leiningen? > > > On Wed, Jan 8, 2014 at 1:54 AM, Softaddicts > <[email protected]>wrote: > > > To complement my previous post and in relation to this one, > > we use (if-not *compile-file* ...) to wrap expressions that cannot be > > AOT compiied (like loading configuration or connecting to external > > resources which you do not want to do at compile time but at run time > > only:) > > > > This confused a lot of people in the past trying to use AOT. > > For many the compilation phase and code execution are perceived > > as a single step. When working in the REPL you do not need to be aware of > > this. With AOT it's important to be aware of the difference when writing > > code > > in dev. > > > > Luc P. > > > > > > > On Tue, Jan 7, 2014 at 4:26 PM, Dave Tenny <[email protected]> wrote: > > > > 1) When and under what circumstances projects are compiled in source > > versus > > > > .class form? > > > > > > Most Clojure projects ship in source form (and are therefore compiled > > > to bytecode on demand as they are loaded). > > > > > > > 2) Why there is no project.clj in the org.clojure jar file? > > > > > > It's built with Maven. As are most of the Clojure contrib libraries > > > too, although some are now starting to sport project.clj files to make > > > local development easier. In the last round of development, I added > > > Leiningen support to clojure.java.jdbc to make it easier to "jack in" > > > with Emacs and test the code. It still uses Maven for primary testing > > > (on build.clojure.org) and packaging - and Clojure plus its contrib > > > libraries are hosted on Maven Central (where they are retrieved > > > primarily by Leiningen into other Clojure projects). > > > > > > > 3) When the clojure 'compile' function comes into play in your typical > > > > clojure project deployments? (vs. :aot targets or other leiningen > > deployment > > > > techniques). > > > > > > At World Singles, we AOT compile very little of our code. We only AOT > > > namespaces that generate Java-compatible classes for situations where > > > we must be natively callable from Java (e.g., we have a log4j appender > > > written in Clojure). Within that AOT-compiled code, we require > > > namespaces and resolve symbols dynamically (at runtime) to bind the > > > Java-called code to the rest of our code base. > > > > > > Part of the reason is for the flexibility that source deployments > > > provide: the ability to REPL into a live, running process and reload > > > code from updated source files without needing to "stop the world", > > > for example. > > > > > > If you're relatively new to Clojure, I'd recommend completely ignoring > > > the whole "compilation" thing unless you specifically need to generate > > > natively callable code for Java to Clojure interop. > > > > > > In case anyone is interested, our pattern for bridging from the > > > AOT-compiled namespace to the rest of the code base tends to look like > > > this: > > > > > > (def the-symbol > > > (delay > > > (do > > > (require 'the.namespace) > > > (resolve (symbol "the.namespace/the-symbol"))))) > > > > > > and then: > > > > > > ... (@the-symbol arg1 arg2) ... > > > > > > Our AOT-compiled layer is deliberately minimal and serves only to > > > provide the Java-callable API so the rest of our code can be developed > > > and tested in our normal interactive, incremental way. > > > -- > > > Sean A Corfield -- (904) 302-SEAN > > > An Architect's View -- http://corfield.org/ > > > World Singles, LLC. -- http://worldsingles.com/ > > > > > > "Perfection is the enemy of the good." > > > -- Gustave Flaubert, French realist novelist (1821-1880) > > > > > > -- > > > -- > > > You received this message because you are subscribed to the Google > > > Groups "Clojure" group. > > > To post to this group, send email to [email protected] > > > Note that posts from new members are moderated - please be patient with > > your first post. > > > To unsubscribe from this group, send email to > > > [email protected] > > > For more options, visit this group at > > > http://groups.google.com/group/clojure?hl=en > > > --- > > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > > To unsubscribe from this group and stop receiving emails from it, send > > an email to [email protected]. > > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > -- > > Softaddicts<[email protected]> sent by ibisMail from my ipad! > > > > -- > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to [email protected] > > Note that posts from new members are moderated - please be patient with > > your first post. > > To unsubscribe from this group, send email to > > [email protected] > > For more options, visit this group at > > http://groups.google.com/group/clojure?hl=en > > --- > > You received this message because you are subscribed to a topic in the > > Google Groups "Clojure" group. > > To unsubscribe from this topic, visit > > https://groups.google.com/d/topic/clojure/sU0r00i7Ls0/unsubscribe. > > To unsubscribe from this group and all its topics, send an email to > > [email protected]. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to [email protected] > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- Softaddicts<[email protected]> sent by ibisMail from my ipad! -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
