I am using Leiningen 1.7.1 and Clojure 1.3.0. My question is what, if any, is the relationship between the :aot compiler directive and an error message indicating my defs are not dynamic?
Here are the details:
If I remove the :aot directive from any of my project.clj files (two libraries and a main that depends on them), I get Warning: delimiter not declared dynamic and thus is not dynamically rebindable.
If I modify statements like this
(def bene-ssn-idx 16)
(def gic-ssn-idx 2)
to include the dynamic directive, I get this run-time error
Exception in thread "main" java.lang.IllegalStateException: Can't dynamically bind non-dynamic var: clojure-csv.core/strict
At one point I remember hearing there was a problem in Clojure 1.3 concerning the first warning message and that it would be fixed.
I'm perfectly happy to live with a longer build due to :aot, but am still wondering what the warning and error mean, in addition to why removing :aot produces the warning.