启动Guile Web服务器时Geiser / Emacs挂起

时间:2018-11-09 10:54:51

标签: emacs scheme guile geiser

我正在尝试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挂起。当我按下C-g时,Emacs再次起作用,但是在那之后情况变得越来越糟-在REPL中,每个Geiser函数都挂起了-例如,如果我按下TAB或C-M-i以完成符号。我只能输入文字,然后按Enter。唯一的解决方案是使用C-c C-q杀死Scheme解释器,然后重新启动它。为什么?我在做错什么吗?

在Guile v2.2 +最新的Geiser和Guile v2.0 + Geiser v0.8.1上进行了测试。

1 个答案:

答案 0 :(得分:3)

解决方案是使用--listen参数从命令行运行单独的Guile进程,即:

guile --listen=1661 web-test.scm

并使用 M-x geiser-connect M-x connect-to-guile 从Emacs与之连接,如“连接外部方案”中所述此处:http://geiser.nongnu.org/geiser_3.html#Starting-the-REPL

在Geiser维护人员的帮助下解决。