Регистрация | Войти
Lisp — программируемый язык программирования
RSS
SBCL отваливается по нажатию C-c C-c
HyaHya - 16.02.2011 13:48, Сообщений - 6

Поставил себе EMACS+SBCL+slime под Win7x64

Проблема: если нажать C-c C-c в момент выполнения программы, вместо дебага SBCL закрывается. 

Есть способ как-то решить проблему?

[#]
Все системы (вроде sb-bsd-sockets) из contrib доступны через ASDF? Если нет, то SLIME не будет запускаться как нужно - будет приветствие "*", а не обычное "CL-USER>", и будет один поток, который и отваливается по C-c C-c. Да, и ещё лучше использовать сборку DmitryVk - у меня с ней всё нормально работает.
treep - 18.02.2011 18:27
[#] Ответ на комментарий от treep 18.02.2011 18:27

В SLIME приветствие обычное - "cl-user>". (require 'asdf) возвращает NIL

Если запускать SBCL из командной строки - приветствие '*', но (require 'asdf) работает (возвращает "ASDF").

HyaHya - 21.02.2011 12:53
[#] Ответ на комментарий от HyaHya 21.02.2011 12:53
Когда SLIME уже запущен, попробуйте выполнить такой elisp-код:

(defun slime-interrupt ()
  (interactive)
  (slime-dispatch-event `(:emacs-interrupt ,slime-current-thread))
)

treep - 23.02.2011 15:00
[#] Ответ на комментарий от treep 23.02.2011 15:00
Вообще, "нормальный" SBCL пока не умеет многопоточности, поэтому SLIME работает просто как обвёртка над консолным I/O, соответственно если C-c C-c, то это эквивалентно Ctrl-C - отлаживающих потоков нет, продолжать работать нечему. Но если брать SBCL с многопоточностью - можно запускать (slime-dispatch-event `(:emacs-interrupt ,slime-current-thread)) - есть потоки, они работают. Если я правильно понял - SLIME под Windows будет таким пока в SBCL не примут патчи про многопоточность.
treep - 23.02.2011 15:05
[#] Ответ на комментарий от treep 23.02.2011 15:00
> Когда SLIME уже запущен, попробуйте выполнить такой elisp-код

Точнее, есть API на эту тему.
treep - 23.02.2011 15:15
[#] Ответ на комментарий от treep 23.02.2011 15:15

Спасибо, всё заработало как надо.

HyaHya - 24.02.2011 12:59
@2009-2013 lisper.ru