Clojure:核心:将加载文件拆分为两个步骤

时间:2012-06-10 12:54:14

标签: clojure

问题

是否可以将加载文件拆分为两个步骤:

(1) compile and
(2) load ?

上下文

我正在将热门代码重新加载到远程计算机。我不想将源发送到机器,然后机器加载文件。相反,我想将* .class文件发送到机器,让机器只需用* .class重新加载命名空间

因此,我想要一种方法:

(1) transform *.clj files to *.class files that can be hot-reloaded

(2) I need to be able to call remove-ns on them later (when they have to be replaced)

修改

我也很高兴使用(require:reload ...) - 再次,只要我能提供一个* .class文件而不是我的* .clj文件。

谢谢!

1 个答案:

答案 0 :(得分:0)

简短回答:

  1. 在本地计算机上,使用compile将您的clojure源编译为.class文件。
  2. 将这些内容上传到您的远程服务器。
  3. 使用require(重新)加载命名空间。
  4. 在您的源代码中,您应该依赖于requireload-file,特别是出于这个原因。在运行时,您无法确定命名空间是否来自源文件,即已编译的二进制文件。