Geiser / Emacs зависает при запуске веб-сервера Guile - PullRequest
0 голосов
/ 09 ноября 2018

Я экспериментирую с Guile и простой веб-разработкой. У меня есть некоторый опыт работы с Common Lisp и Slime. И я большой поклонник интерактивной разработки. Geiser - отличная IDE, однако я теряю интерактивность, когда запускаю даже простой веб-сервер из REPL:

(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, чтобы завершить символ. Я могу только набрать текст и нажать клавишу ВВОД. Единственное решение - убить интерпретатор Scheme с помощью C-c C-q и запустить его снова. Зачем? Я что-то не так делаю?

Протестировано на Guile v2.2 + последний Geiser и Guile v2.0 + Geiser v0.8.1.

1 Ответ

0 голосов
/ 11 ноября 2018

Решение состоит в том, чтобы запустить отдельный процесс Guile из командной строки, используя параметр --listen, то есть:

guile --listen=1661 web-test.scm

и соединитесь с ним из Emacs, используя M-x geiser-connect или M-x connect-to-guile, как объяснено в "подключение к внешней схеме" здесь: http://geiser.nongnu.org/geiser_3.html#Starting-the-REPL.

Решено с помощью сопровождающего Гейзера.

...