We ended up sticking with AOT (for now, anyway), because it seems easier to manage in the codebase. The alternative is to use data structures that can be eval'd, like you would use in the body of a macro. I like how that clearly separates the code that runs on the local machine from that which runs on the server, but our pipeline is dynamic and there is a lot of function composition, and it seems unwieldy to work with code-as-data on such a large scale. It is like having several 500 line macros that each depend on a bunch of "code fragment" emitting functions.
Regarding our compilation issue, we've narrowed the problem to the timestamps inside our library jars. Our build server is using GMT/UTC and our local workstations are using PT (currently, 7 hrs behind GMT). If I understand correctly, Lein checks timestamps to determine which files need to be recompiled, and our library jars will have later timestamps than anything new for 7 hours. I don't understand what is happening, but the result is that we get unbound function or class not found exceptions. It may have something to due with how timestamps are represented in jars. We have confirmed that the clock and timezone is set correctly on the server. Any clues? -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/clojure/5e9e8773-040b-4246-8481-48f004270523%40googlegroups.com.