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 
> <lprefonta...@softaddicts.ca>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 <dave.te...@gmail.com> 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 clojure@googlegroups.com
> > > Note that posts from new members are moderated - please be patient with
> > your first post.
> > > To unsubscribe from this group, send email to
> > > clojure+unsubscr...@googlegroups.com
> > > 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 clojure+unsubscr...@googlegroups.com.
> > > For more options, visit https://groups.google.com/groups/opt_out.
> > >
> > --
> > Softaddicts<lprefonta...@softaddicts.ca> 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 clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with
> > your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > 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
> > clojure+unsubscr...@googlegroups.com.
> > 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 clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> 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 clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
> 
--
Softaddicts<lprefonta...@softaddicts.ca> 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 clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
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 clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to