подключить несколько разных терминалов к одному экземпляру слайма

Я все еще новичок, когда дело касается работы с emacs и slime.

Мне было интересно, есть ли способ запустить lisp (скажем, SBCL) на локальном порту, а затем подключить к нему несколько разных сеансов слизи?

Например, если я использую tmux / screen и хочу, чтобы между каждым окном были разные сеансы emacs, смогу ли я подключить все экземпляры слизи к одному и тому же lisp, чтобы все сеансы emacs совместно использовали реплику, позволяющую мне компилировать в какие-либо из сеансов emacs и один, на котором запущен repl, будут иметь эти изменения?


person gaigepr    schedule 22.06.2014    source источник


Ответы (2)


Я использую 32-разрядную версию LispWorks 6.1 Professional Edition. Я предпочитаю использовать (Spac) emacs для редактирования в нескольких сеансах tmux, по одному сеансу для каждого проекта, над которым я работаю.

Вот шаги, которым я следую:

  1. Запустите LispWorks Listener REPL.

  2. Загрузите swank без прохождения маршрута emacs:

    (load "/path/to/swank-loader.lisp")
    (swank-loader:init)
    (setf swank:*use-dedicated-output-stream* nil)
    (swank:create-server :port 4005  :dont-close t)
    
  3. Затем на моей вкладке iTerm с сеансом tmux для некоторого проекта 1 я выполняю M-x slime-connect и подключаюсь к хосту и порту, как на шаге 2.

  4. Повторите шаг 3 для другого сеанса tmux с другим кодом проекта lisp.

С помощью этой настройки я могу загружать код из нескольких проектов, над которыми я работаю, в одном образе lisp. Пока что я не обнаружил серьезных проблем при этом.

person 3d-indiana-jones    schedule 02.11.2015

Это зависит от системы Lisp, которую вы используете, от поддерживаемых ею функций, то есть от того, включена ли в вашем SBCL многопоточность (см. (member :sb-thread *features*) и настройку SWANK:*COMMUNICATION-STYLE*, см. Документы Slime.

person schaueho    schedule 24.06.2014
comment
У меня SBCL 1.2 в системе Debian. SB-THREAD включен. *COMMUNICATION-STYLE* это :SPAWN Мне не ясно, какой стиль я должен использовать для подключения нескольких сеансов слайма к одному и тому же процессу lisp, и как это сделать. - person gaigepr; 24.06.2014