gpt4 book ai didi

lisp - 在 ABCL 中,如何在不终止 LISP 的情况下摆脱失控的功能?

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:08 25 4
gpt4 key购买 nike

在 ABCL 中,在开发过程中,我有时会遇到失控的函数。我希望能够停止执行并返回到顶层 LISP,而不会终止 LISP/JVM 进程(在我的 emacs shell 中)和丢失我当前的 LISP 环境。

我尝试过各种控制键(例如 Control-C、Control-D 等),但充其量不过是杀死了 LISP 或 JVM。


;;; How to stop this function and return to LISP interactive
;;; without killing lisp...?
(defun runaway ()
(let ((result nil))
(dotimes (count 10 result)
(sleep 2)
(print count))))



<p>C-c C-cTerminate batch job (Y/N)? n
n</p>

Process inferior-lisp exited abnormally with code 130

最佳答案

尝试将 Emacs 与 Slime 结合使用,因为如果您按 C-c C-c,Slime 不会终止进程但会中断线程并进入调试器。

您可能应该在您的 PATH 某处添加一个可执行脚本 abcl.sh,如下所示:

#!/bin/sh
exec java -jar .../abcl/abcl-bin-1.5.0/abcl.jar

您必须将 ... 替换为您自己的 abcl.jar 路径。

然后,您应该可以从 Emacs 启动它。

执行 C-u M-x slime 以强制 slime 命令提示输入可执行文件,并向其提供 abcl.sh。它应该启动进程并使用 Slime 协议(protocol)连接到它。

关于lisp - 在 ABCL 中,如何在不终止 LISP 的情况下摆脱失控的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56408489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com