Начало работы с SLIME и SWANK: соединение с Lisp неожиданно закрылось: соединение разорвано удаленным узлом
Я пытался использовать функцию slime-connect, чтобы получить доступ к удаленному серверу с помощью sbcl. Я выполнил все шаги из фильма slime.mov от Марко Барингера, но застрял при создании ssh-соединения для slime. Это уже после запуска сервера swank на удаленной машине. Я сделал это так:
ssh -L 4005:127.0.0.1:4005 user@server.com
И я получил эти ошибки, на местном SLIME:
Лисп-соединение неожиданно закрылось: соединение разорвано удаленным узлом
... и на удаленном сервере:
канал 3: открытие не удалось: подключение не удалось: подключение отказано
Что может быть не так?
4 ответа
Вы проверили, что версия SLIME и SWANK, которые вы используете, совпадают? У меня случались странные вещи, когда я использовал несовпадающие версии этих двух половинок сессии SLIME.
Самая простая вещь, которую нужно пропустить - это порт tcp, который слушает сервер swank. В последнее время я не занимался удаленной разработкой, но помню, что в первый раз у меня возникли проблемы с пониманием, как сказать swank, какой порт связывать, или узнать, какой из них он выбрал.
Не могли бы вы рассказать о том, как вы на самом деле запустили сервер swank?
Я не знаю, но вы можете попробовать подключиться к swank на удаленной машине локально.
ssh user@server.com
telnet 127.0.0.1:4005
Может быть, вы найдете ошибки. Также вы можете попробовать localhost:4005 вместо 127.0.0.1 и проверить, правильно ли настроен интерфейс localhost.
Для меня проблема заключалась в том, что slime
(v2.22) функция из Emacs запущена с дополнительным аргументом from-emacs t
который swank-loader.lisp
не поддерживал (v2.22).
Что для меня сработало, так это редактирование slime-v2.22/swank-loader.lisp:init
принять один новый аргумент from-emacs
которая не используется по причине в теле функции, потому что я не знаю, как этот аргумент должен обрабатываться. Но slime
начинается сейчас нормально и работоспособно.
Также при запуске slime
Я получаю предупреждение о несовместимых версиях: slime v2.23 и swank v2.22, но как я проверил с list-packages
и просто по именам папок - у меня есть slime
а также swank
обе версии v2.22. Это путаница для меня прямо сейчас.
Если кто-то знает подробности об этом, пожалуйста, прокомментируйте.