Used doto where possible (and where it made sense).
Used clojure ns-* functions instead of fallbacking to java interop
simplify a bit
use doto where possible
Thanks for the pull request! I'm trying to make this ok to merge with clojure/core, which means that I have to verify if you have a CA on file. I think it also means that I'm not allowed to use github pull requests, I have to get a patch instead. :(
Probably it would be easiest if you can create a github issue, attach the patch to it, and verify 1) You have a CA on file, 2) You give permission to assign your copyright for the code you contribute to this project to Rich Hickey under the terms of the CA.
In terms of using doto. I've been thinking about getting rid of the dynamic gen variable and just passing it around as a parameter everywhere.
It would end up being the first parameter to pretty much all the functions in compiler, and I think almost every function could end up doing (doto gen ...) for its entire body. Might be worth taking a look at.
OK, I misunderstood.
I can take this pull request once I verify you have a CA, I think you will also need to get access to the clojure-dev google group (which you should automatically get once your CA is on file) and send an email that says: I, (YOUR NAME), give my permission to release my contributions to CinC (Clojure in Clojure) under the Clojure Contributor Agreement.
At least that's my understanding from http://dev.clojure.org/display/design/Moving+Projects+Into+Contrib
Sorry it's so complicated
Well, I've signed and sent my CA yesterday; it may take a while though because I'm sending it from Italy.
Get rid of :eval, closes #1
This means that we won't have an interpreted eval as clojure does but we will
wrap every form to be eval'ed in a (^:once fn*  ..), compile that and
subsequently invoke that.