我正在试验 Guile 和简单的 Web 开发。我对 Common Lisp 和 Slime 有一些经验。而且我是交互式开发的忠实粉丝。Geiser 是很棒的 IDE,但是当我从 REPL 运行简单的 Web 服务器时,我失去了交互性:
(use-modules (web server))
(define (hello-world-handler request request-body)
(values '((content-type . (text/plain)))
"hello"))
(run-server hello-world-handler)
之后,如果我尝试对定义进行评估,则没有任何反应,并且 Emacs 挂起。当我再次点击 Cg Emacs 时,它会变得更糟——在 REPL 中,每个 Geiser 函数都会挂起——例如,如果我点击 TAB 或 CMi 来完成符号。我只能输入文本并按 ENTER。唯一的解决方案是用 Cc Cq 杀死 Scheme 解释器并重新启动它。为什么?难道我做错了什么?
在 Guile v2.2 + 最新的 Geiser 和 Guile v2.0 + Geiser v0.8.1 上测试。