git.fiddlerwoaroof.com
Browse code

Fix lisp implementation

Ed Langley authored on 27/01/2019 05:17:38
Showing 2 changed files
... ...
@@ -81,22 +81,26 @@
81 81
 
82 82
 (defun slime-ecl ()
83 83
   (interactive)
84
-  (let ((inferior-lisp-program "ecl"))
84
+  (let ((inferior-lisp-program "ecl")
85
+        (slime-lisp-implementations nil))
85 86
     (slime)))
86 87
 
87 88
 (defun slime-cmucl ()
88 89
   (interactive)
89
-  (let ((inferior-lisp-program "cmucl"))
90
+  (let ((inferior-lisp-program "cmucl")
91
+        (slime-lisp-implementations nil))
90 92
     (slime)))
91 93
 
92 94
 (defun slime-sbcl ()
93 95
   (interactive)
94
-  (let ((inferior-lisp-program "sbcl"))
96
+  (let ((inferior-lisp-program "sbcl")
97
+        (slime-lisp-implementations nil))
95 98
     (slime)))
96 99
 
97 100
 (defun slime-ccl ()
98 101
   (interactive)
99
-  (let ((inferior-lisp-program "ccl"))
102
+  (let ((inferior-lisp-program "ccl")
103
+        (slime-lisp-implementations nil))
100 104
     (slime)))
101 105
 
102 106
 (defun find-use-clause (current-form)
... ...
@@ -123,9 +127,34 @@
123 127
         slime-company
124 128
         slime-macrostep
125 129
         slime-trace-dialog
126
-        slime-mdot-fu))
130
+        slime-mdot-fu
131
+        slime-buffer-streams
132
+        slime-indentation))
127 133
 
128 134
 (slime-setup)
129 135
 
130
- ;;;;; }}}
136
+;;;;; }}}
137
+
138
+(defmacro define-lisp-implementations (&rest decl)
139
+  `(progn
140
+     ,@(cl-loop for (symbol . args) in decl
141
+                collect `(progn
142
+                           (defun ,symbol ()
143
+                             (interactive)
144
+                             (slime ',symbol))
145
+                           (cl-pushnew '(,symbol ,@args) slime-lisp-implementations
146
+                                       :key 'car)))))
147
+
148
+(with-eval-after-load "slime"
149
+  (when (or (eq system-type 'gnu/linux)
150
+            (eq system-type 'darwin))
151
+    (define-lisp-implementations
152
+      (abcl  ("abcl"))
153
+      (ccl ("ccl"))
154
+      (clisp ("clisp"))
155
+      (cmucl ("cmucl" "-quiet"))
156
+      (ecl   ("ecl"))
157
+      ;;(mkcl  ("mkcl"))
158
+      ;;(xcl   ("xcl"))
159
+      (sbcl  ("sbcl" "--dynamic-space-size" "8192")))))
131 160
 
... ...
@@ -9,6 +9,6 @@
9 9
                #:uiop
10 10
                #:serapeum
11 11
                #:alexandria
12
-               #:fwoar.lisputils)
12
+               #:fwoar-lisputils)
13 13
   :serial t
14 14
   :components ((:file "gap-dates")))