“热交换”代码与swank clojure和崩溃恢复力

时间:2012-05-05 22:10:12

标签: clojure swank swank-clojure

我一直在忙着开发一个clojure游戏,而我真正兴奋的一件事就是热插拔代码。

我一直在使用lein-swank插件使用swank clojure和emacs。

我的主要问题是拼写错误。假设我更新了一个函数,发出一个小错误,然后按Ctrl-C Ctrl-C将其发送到REPL:

(if (> (rand) .5) (println "yay") (println "boo"))

(我应该写0.5,而不是.5。)

在这种情况下,整个程序将简单地崩溃和刻录,我需要重新启动整个程序。热插拔很棒,但如果我不能做出一个小错误,那么重点是什么?

那么这里的工作流程究竟是什么?我错过了什么吗?或者有没有办法让swank clojure对这些小错误更有弹性? (我想最好的事情只是重置为以前的工作状态,虽然这可能有点困难。)

谢谢!

2 个答案:

答案 0 :(得分:2)

程序不应该“崩溃和刻录” - 它应该引发异常并引导您进入调试器,您可以通过点击Qsldb-quit)来解除调试。在解除调试器后,程序应该继续正常运行。如果不是这样,你的SLIME配置可能会以某种方式被破坏。

答案 1 :(得分:0)

我个人推荐C-M-x而不是C-c C-c。我不认为任何一方应该遇到你遇到的问题,所以转换可能无法解决问题。