Stumpwm+swank & slime vs lime - Lisp

Узнай цену своей работы

Формулировка задачи:

Так и не могу понять работу swank. Создаю сервер в stumpwm
(swank-create-server :port 4004 :dont-close t)
Запускаю emacs. Делаю slime-connect на 127.0.0.1:4004. Получаю соединение. Могу сделать, например, так
CL-USER> (in-package stumpwm)
#<PACKAGE "STUMPWM">
STUMPWM> (run-shell-command "date" t)
"Вт июл  4 16:27:10 MSK 2017
"
Рву соединение. Беру какой-нибудь swank клиент, например, lime.
CL-USER> (defvar *tost* (lime:make-connection "127.0.0.1" 4004))
*TOST*
CL-USER> (lime:connect *tost*)
T
CL-USER> (lime:evaluate *tost* (package-name *package*))
"COMMON-LISP-USER"
CL-USER> (lime:evaluate *tost* (in-package stumpwm))
; Evaluation aborted on #<SB-KERNEL:SIMPLE-PACKAGE-ERROR "The name ~S does not designate any package." {1003651D13}>.
В принципе, все правильно. lime создает свою сессию. Но осадок-то остается. Как slime умудряется работать в том же адресном пространстве, что и stumpwm? И как lime научить это делать? Быть может я делаю что-то не то. Тогда, каким образом можно передать команды stumpwm'у из другой программы?

Решение задачи: «Stumpwm+swank & slime vs lime»

textual
Листинг программы
stumpish <команда stumpwm-а> <аргументы>

Оцени полезность:

14   голосов , оценка 3.786 из 5