Ken, I'm sorry I didn't answer quickly to you on the CCW mailing list. Unless there's a bug involved (and I suspect there's a rampant one somewhere :) ), CCW handles AOT compilation.
Would it not handle it, I would not be able to release CCW itself ! Indeed, currently there are cyclic dependencies between java and clojure code in CCW, and this is handled by Eclipse's Compiler only : Eclipse compiles java files to (incompletely working) class files. The CCW builder builds the missing AOT class files (thanks to Eclipse's compiler having put the necessary signatures in place in the java class files, even if the implementations are not complete yet). After the CCW build, Eclipse refreshes the project and does a second compile pass on its java files, ending the roundtrip with everything being OK. Sooo... how does CCW handle AOT compilation ? Here's the current state of the art. It's subject to laarge improvements, but I haven't opened this can of worms yet, I'm working on other more urgent CCW topics. So there it is : a) Select your project's node in the Package Explorer b) Trigger its contextual menu, select "Run as", select "Clojure Application" I *insist* (*) : you must trigger the Run from the project's node. Only with the project's node will the incremental compilation be activated for the started process' JVM. Then you should see: 1) A java console view for the underlying process' JVM inputs/outputs 2) A (n)REPL client view speaking with the underlying process' JVM via either the nrepl dependency already present in your project's classpath, either added "on the fly" to the classpath by the "Clojure Application" launch configuration machinery (a clever ccw trick) 3) a "background" user job running (generally on the bottom right) reporting some kind of progress related to the AOT compilation of the project. 4) when the background user job has finished, you should see that your project's "classes/" directory is full of AOT compiled class files. Currently, there's one drawback : CCW does not refrain AOT compilation from "compiling too much things", nor does it remove AOT compilation artifacts that should generally not be desired (e.g. anything in packages not being related to the project's own namespaces). So now that you have the explanations, if this works for you as it does for me, Eclipse+CCW will handle for you, out of the box: 1) Must handle Clojure namespaces that are AOT-compiled. 3) Must handle Java source code files. 4) Must handle dependencies in the form of on-disk jar files (not in any repository) 5) No XML configuration files. (*) : In contrast, if you trigger a run of "Clojure Application" from the contextual menu of a specific clojure lib file, the process will not be started in "project mode", but in "file mode". Which implies that CCW will just pre-load the selected file on the clojure process, but do none of what it does when run in "project mode" : neither attempt to AOT compile the whole project when the process starts, neither attempt to (again) re-AOT compile the whole project everytime you save a file in the editor. HTH, Cheers, -- Laurent 2011/7/3 Konrad Hinsen <konrad.hin...@fastmail.net>: > I am looking for a build tool that fulfills the following requirements: > > 1) Must handle Clojure namespaces that are AOT-compiled. > 2) Must handle Clojure namespaces that are not AOT-compiled. > 3) Must handle Java source code files. > 4) Must handle dependencies in the form of on-disk jar files (not in any > repository) > 5) No XML configuration files. > > Candidates that I have tried and found insufficient include > - Leiningen (no dependencies without repositories) > - Cake (doesn't handle Java source files) > - Eclipse/Counterclockwise (doesn't handle AOT compilation) > - ant, maven: XML configuration files > - scons: incomplete Java support, no Clojure support > > Is there anything else worth trying? > > Thanks in advance, > Konrad. > > -- > 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 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