Hi there, 

Attached is a trivial patch to initialize slime-lisp-implementations by 
looking for Debian packaged Common-Lisp implementations on path.

This is far from ideal, but it is a start and it allows me to run 

$ emacs -f slime

to start emacs and get directly into a slime session (provided I have
clisp, ecl, sbcl or cmucl on my $PATH).

Greetings, Torsten
>From dc06400cfc13d0d572cc46770680b7c7306d2039 Mon Sep 17 00:00:00 2001
From: Torsten Landschoff <tors...@landschoff.net>
Date: Sat, 2 May 2009 01:30:41 +0200
Subject: [PATCH] Add trivial initialization of slime-lisp-implementations.

---
 debian/changelog |    8 ++++++++
 slime.el         |   11 ++++++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 24b4a40..023f900 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+slime (1:20090409-1.1) unstable; urgency=low
+
+  [ Torsten Landschoff ]
+  * slime.el: Populate slime-lisp-implementations from known common
+    lisp implementations on PATH (closes: #491602).
+
+ -- Torsten Landschoff <tors...@debian.org>  Sat, 02 May 2009 01:25:22 +0200
+
 slime (1:20090409-1) unstable; urgency=low
 
   * New upstream version. 
diff --git a/slime.el b/slime.el
index 7f0f1bb..04c5793 100644
--- a/slime.el
+++ b/slime.el
@@ -123,6 +123,15 @@ Return nil if the ChangeLog file cannot be found."
 (setq slime-protocol-version
       (eval-when-compile (slime-changelog-date)))
 
+(defun slime-gather-lisp-implementations ()
+  "Compute sane default value for slime-lisp-implementations."
+  (let ((known-lisps '("sbcl" "clisp" "ecl" "cmucl")))
+    (remove-if
+     'null
+     (mapcar 
+      (lambda (l) (if (executable-find l) (list l (list l))))
+      known-lisps))))
+
 
 ;;;; Customize groups
 ;;
@@ -1116,7 +1125,7 @@ last activated the buffer."
 (defvar inferior-lisp-program "lisp" 
   "*Program name for invoking an inferior Lisp with for Inferior Lisp mode.")
 
-(defvar slime-lisp-implementations nil
+(defvar slime-lisp-implementations (slime-gather-lisp-implementations)
   "*A list of known Lisp implementations.
 The list should have the form: 
   ((NAME (PROGRAM PROGRAM-ARGS...) &key INIT CODING-SYSTEM ENV) ...)
-- 
1.6.2.4

Reply via email to