gen-class 和 gen-interface 的文档字符串开始于 "当编译时,...". 这句话的意思不太明确。
毕竟,什么时候 Clojure 不编译呢?clojure.org 首页上说 "Clojure 是一种编译型语言",而 unchecked-math, warn-on-reflection, case 和 defmacro 的文档字符串暗示编译是转换形式为字节码的现象——一种连续不断的行为。
在 clojure 核心中其他地方:defrecord 和 deftype 的文档字符串提到了 "AOT 编译"。compile-files 的文档字符串提到了 "编译文件",不清楚是指输入文件还是输出文件。"compile" 的文档字符串提到了 "类文件"。这些可能或不都相关。
如果 gen-class、gen-interface、compile 和 compile-files 意味着 "AOT 编译",那么让我们明确这一点。如果不是,那么请让我们清楚地说明它们的真正含义。