当我启动Guile web服务器时,Geiser/Emacs挂起



我正在尝试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)

之后,如果我尝试对定义进行ie求值,则什么都不会发生,Emacs将挂起。当我点击C-g时,Emacs再次工作,但在那之后情况变得更糟了——在REPL中,每个Geiser函数都挂起了——例如,如果我点击TAB或C-M-I来完成符号。我只能键入文本并按ENTER键。唯一的解决方案是用C-C-q终止Scheme解释器,然后重新启动它。为什么?我做错什么了吗?

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

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

guile --listen=1661 web-test.scm

并使用M-x geiser-connectM-x connect-to-guile从Emacs连接,如"连接到外部方案">中所述:http://geiser.nongnu.org/geiser_3.html#Starting-REPL。

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

最新更新