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.

Reply via email to