Leiningen1.7.1とClojure1.3.0を使用しています。私の質問は、:aotコンパイラ指令と、defが動的ではないことを示すエラーメッセージとの関係は何ですか?
詳細は次のとおりです。
いずれかのproject.cljファイル(2つのライブラリとそれらに依存するメイン)から:aotディレクティブを削除すると、警告が表示されます。区切り文字は動的に宣言されていないため、動的に再バインドできません。
このようにステートメントを変更すると
(def bene-ssn-idx 16)
(def gic-ssn-idx 2)
動的ディレクティブを含めると、このランタイムエラーが発生します
スレッド"main"の例外java.lang.IllegalStateException:非動的変数を動的にバインドできません:clojure-csv.core / strict
ある時点で、Clojure 1.3に最初の警告メッセージに関する問題があり、それが修正されると聞いたのを覚えています。
:aotのおかげで、より長いビルドで生活できることを完全に嬉しく思いますが、:aotを削除すると警告が生成される理由に加えて、警告とエラーが何を意味するのか疑問に思っています。