SLIME

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
SLIME-Logo

SLIME (The Superior Lisp Interaction Mode for Emacs) ist eine freie Entwicklungsumgebung für Common Lisp basierend auf dem Emacs-Editor. SLIME ist gemeinfrei[1].

Geschichte[Bearbeiten]

Die Entwicklung von SLIME begann im August 2003[2], als eine von Eric Marsden geschriebene Erweiterung zu SLIM[3]. Die Entwicklung wurde daraufhin von Luke Gorrie und Helmut Eller übernommen. Zahlreiche weitere Programmierer haben mittlerweile Code zu SLIME beigetragen[4]. Im April 2006 wurde die derzeit aktuelle Version 2.0 veröffentlicht. An der Entwicklung für eine Version 3.0 wird aktiv gearbeitet[5].

Architektur[Bearbeiten]

SLIME besteht aus zwei Teilen: Der Benutzerschnittstelle, die auf Emacs basiert und in Emacs Lisp geschrieben ist, und der Compilerschnittstelle SWANK, die in Common Lisp implementiert ist. Die Benutzerschnittstelle und die Compilerschnittstelle kommunizieren dabei über ein eigenes RPC-Protokoll.[6] Diese Architektur erlaubt es mehrere Common-Lisp-Implementierungen gleichzeitig zu benutzen und die Benutzung von Common-Lisp-Implementierungen über ein Rechnernetz.

Unterstützte Common Lisp-Implementierungen[Bearbeiten]

SLIME wurde zunächst für die CMU-Common-Lisp-Implementierung geschrieben, unterstützt mittlerweile jedoch diverse freie und kommerzielle Lisp-Compiler. Da SLIME auf Emacs Lisp und Common Lisp basiert, ist die Portabilität nur abhängig von der Verfügbarkeit von Emacs und einer unterstützten Common-Lisp-Implementierung. SLIME läuft unter anderem auf diversen Unices, Linux, Windows und Mac OS X.[7]

[7]

Mittlerweile unterstützt SLIME neben Common Lisp auch andere Programmiersprachen:

Weblinks[Bearbeiten]

Quellen[Bearbeiten]

  1. README in der SLIME Distribution
  2. Couple of Emacs hacks auf lisp.cmucl.devel
  3. SLIME History
  4. http://common-lisp.net/project/slime/doc/html/Credits.html#Credits
  5. NEWS in der SLIME Distribution
  6. http://common-lisp.net/project/slime/doc/html/Introduction.html#Introduction
  7. a b http://common-lisp.net/project/slime/#platforms
  8. http://bc.tech.coop/blog/081023.html
  9. contrib/swank-goo.goo
  10. swank-js
  11. swankr
  12. contrib/swank.rb
  13. http://mumble.net/~campbell/slime48.html