“热交换”代码与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对这些小错误更有弹性? (我想最好的事情只是重置为以前的工作状态,尽管这可能有点困难.)

谢谢!

最佳答案 该程序不应该“崩溃和烧毁” – 它应该引发异常并将您引入调试器,您可以通过按Q(sldb-quit)来解除.在解除调试器后,程序应该继续正常运行.如果不是这样,您的SLIME配置可能会以某种方式被破坏.

点赞