SLIME

Материал из свободной русской энциклопедии «Традиция»
Перейти к: навигация, поиск

SLIME - Superior Lisp Interaction Mode for Emacs (англ.) — интерактивный Emacs для Лиспа.

Является расширение редактора Emacs для лисп-разработки на различных платформах.

SLIME имеет клиент-серверную архитектуру. EMACS-часть SLIME связывает редактор с внешними лисп-процессами, работающими на SLIME-сервере. SLIME состоит из двух частей общающихся между собой s-выражениями через сокеты по протоколу. Такая архитектура обусловлена тем, что использование стандартных потоков ввода/вывода для взаимодействия между lisp-процессом и Emacs не может обеспечить необходимый уровень сервиса.

  1. EMACS Lisp "фpонтальная часть" обеспечивающая некоторую функциональность EMACS редактора - SLIME компонент. ELisp-кода, обеспечивающее непосредственный функционал IDE на стороне Emacs
  2. Серверная "обеспечивающая часть" общающаяся с лисп-реализацией. Это осуществляется черз стандартный набор определенных интерфейсов (SWANK). Lisp-side части (известной как SWANK), которая является сервером, работающим в рамках запущенного lisp-процесса, который предоставляет доступ к "внутренностям" lisp и взаимодействует с elisp-частью по сокетному соединению

Система представляет собой цельный кусок кода, который не опирается ни на что, кроме конкретных реализаций, и не предоставляет миру ничего, кроме собственно самой IDE.

Связующим звеном между двумя этими частями, естественным образом, является протокол взаимодействия. Наличие данного протокола дало возможность для разработки SWANK-сервера также и на Scheme, а теперь и на Clojure (см. swank-clojure). Подобная схема выглядит просто замечательно: с одной стороны возможны различные реализации swank для разных диалектов lisp, с другой стороны возможны различные клиентские части, не только для Emacs, но и например для Eclipse (см. cusp), да и заметно упрощается (особенно после появления cl-gtk2) разработка полноценной среды разработки на самом Common Lisp.


Возможности[править]

  • Вычислением кодов, компиляция, макрорасширения.
  • On-line документация (команды describe, apropos, hyperspec)
  • Нахождение определений (типа Emacs вызовов Meta-Point, M-.)
  • Автоматическое завершение имен символов и пакетов.
  • Автоматические макро отступы на основе &body.
  • Перекресные ссылки (WHO-CALLS - кто вызывал, etc).
  • SLDB: Лисп-отладчик с Emacs-интерфейсом.
  • REPL: The Read-Eval-Print Loop ("top-level") режим работы в т.н. цикле "чтение-вычисление-печать", как в терминале реализации лиспа.
  • Inspector: интерактивное исследование в Emacs-окне (буфере).


Использование[править]

Квалифицированные пользователи сами собирать среду Лисп-систему + EMACS + SLIME. Начинающий может использовать готовую сборку, т.н. lispbox например реализация Closure Common Lisp (CCP). Lispbox project



См. также[править]


Интернет[править]



slime - что-то противное, заискивание подлый человек.