Top Qs
Timeline
Chat
Perspective

SLIME

From Wikipedia, the free encyclopedia

SLIME
Remove ads

SLIME, the Superior Lisp Interaction Mode for Emacs, is an Emacs mode for developing Common Lisp applications. SLIME originates in an Emacs mode called SLIM written by Eric Marsden. It is developed as an open-source public domain software[2] project by Luke Gorrie and Helmut Eller. Over 100 Lisp developers have contributed code to SLIME since the project was started in 2003.

Quick facts Original author, Developers ...

SLIME follows a client-server architecture, using a backend called Swank that is loaded into Common Lisp. In that regard, it is similar to the Language Server Protocol, which it predates. Some Common Lisp editors use a LSP client for Common Lisp.[3]

SLIME works with the main Common Lisp implementations, such as:

Other programming languages can leverage SLIME with an editor plugin, or have plugins inspired by SLIME:

Remove ads

Features

Summarize
Perspective

SLIME offers an experience of an Integrated Development Environment. Once SLIME is loaded into the editor and the Swank back-end loaded into the running Common Lisp image, it is to be noted that all interactions are made live, interactively, effectively "talking" to the running program and adding features incrementally.

SLIME provides:

  • code completion.
  • code compilation (compile the function at point, a region, a file, a project).
  • compilation notes highlighted in source buffer and gathered in a dedicated buffer.
  • code evaluation.
  • documentation lookup.
  • an interactive object inspector.
  • definition finding.
  • a powerful interactive debugger, which lets the programmer inspect the call stack, fix and recompile a function while the debugger is open and execution is paused, then resume execution from any point in the stack.
  • the use of restarts in the debugger.
  • a stepper.
  • macro expansion,
  • automatic macro indentation.
  • cross references: find who calls a function or macro, who sets a symbol, who depends on a symbol, who references one, who specializes a method, who macroexpands a macro.
  • manipulating objects through "presentations".
  • automatic export of symbols
  • calling the function at point in the REPL.
  • shortcut commands (print the current working directory, find and install a Quicklisp package, etc.).
  • a trace facility.
  • disassembly commands.

Remote use

SLIME, paired with the Swank back-end, allows to connect to a running Lisp program on another machine.[12]

This allows a programmer to inspect the running program, change parameters, or even to load and compile new code, effectively upgrading the system with no down-time.

Remove ads

References

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads