Clojure:从字符串重新加载

时间:2012-05-15 09:33:55

标签: clojure

编辑:我想要的基本上是加载字符串吗?

问题

在Clojure中,如果我这样做:

(require :reload 'foo.bar)

然后Clojure查找src / foo / bar.clj,并重新加载它。

现在,我想做这样的事情:

(reload-from-string 'foo.bar STR)

这样的语义是:重新加载命名空间'foo.bar,而不是编译src / foo / bar.clj,而是编译STR。

如何定义reload-from-string?

上下文

我需要在运行Clojure应用程序的服务器上热重新加载代码。我不想不断地将文件重新打包回来。到服务器(通过scp,sftp或fuse / sshfs)以便重新加载。因此,我宁愿只传递一个字符串。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用read-string,然后使用eval。但请记住风险。将它们拆分的一个优点是,您可以在评估之前将结果列表中的内容列入白名单。

您可能也希望将*read-eval*绑定为false。