Emacs (Slime) + allegro express: swank error

Discussion of programming Lisps using Emacs, including SLIME and other tools
Post Reply

Emacs (Slime) + allegro express: swank error

Post by moinmoin » Fri Jan 23, 2009 7:18 am

Hello Everybody,

this is my first post in the forum. I'm glad I found it.

I am running Ubuntu 8.04 on a x86. Also running: Emacs-snapshot, slime, common-lisp-controller, cl-asdf, and various lisp implementations; all of them deb packages.

I managed to set up the above packages to work together. Now I wanted to check out allegro cl. I installed allegro express as indicated in franz's installation.htm doc. Retrieved a trial license, applied all patches as of today and rebuilt the alisp.dxl. I can run an alisp-REPL from the shell.

My .emacs sets inferior-lisp for slime to alisp. When I first ran M-x slime within Emacs, swank loader errored me with a common-lisp-controller error. I followed instructions from lisp.allegro newsgroup and created a .clinit.cl (it's content at the end of this post, for sake of completeness) for this purpose. Another error occured, because calculate-fasl-root was not defined, so I put that in the same file (first few lines).

Now, when I try to start slime again, I get to a REPL, but an unfinished one. Swank does not get initialized correctly.

Errors are:
Error loading #P"/home/***/.clinit.cl":

While compiling (:TOP-LEVEL-FORM "swank-arglists.lisp" 250):

Error while loading: /tmp/swank/fasl/allegro-8.1a-linux-x86/swank-arglists.fasl
Condition: Can't locate module: :SWANK-C-P-C

There seems to be something wrong with the CLC Package or my .clinit.cl. Plus a swank module is missing / not specified correctly. I searched for those errors, but couldn't find anything helpful. I am stuck.

Any ideas or suggestions are very much appreciated!


Code: Select all

;; .clinit.cl

(require '#:asdf)

  (defpackage #:clc
    (:export #:calculate-fasl-root))

  (defun clc:calculate-fasl-root ()

(in-package #:cl-user)

(defmacro with-dev-null (&body body)
  `(eval-when (:compile-toplevel :load-toplevel :execute)
     (let ((devnull (make-two-way-stream (make-string-input-stream "") (make-broadcast-stream))))
       (let ((*standard-output* devnull) 
	     (*error-output* devnull) 
	     (*debug-io* devnull)
	     (*trace-output* devnull))

    #+sbcl (require '#:asdf)
    (unless (find-package '#:asdf)
      (load "/usr/share/common-lisp/source/asdf/asdf.lisp")))

	(defun asdf (&rest pkgs)
	  (loop for pkg in pkgs do
	    (asdf:operate 'asdf:load-op pkg)))
      (load "/usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp")))

    (defun lisp-version-string ()
      (flet ((clean (string)
	       (substitute #\- #\Space (substitute #\v #\. string))))
	(format nil "~A-~A-~A"
		(clean (lisp-implementation-type))
		(clean (lisp-implementation-version))
		(expt 2 (ceiling (log (log most-positive-fixnum 2) 2))))))
And the relevant lines from my .emacs

Code: Select all

(add-to-list 'load-path "/usr/share/common-lisp/source/slime/")
(setq inferior-lisp-program "/opt/lisp/acl81_express/alisp")

(eval-after-load "slime"
    (add-to-list 'load-path "/usr/local/slime/contrib")
    (slime-setup '(slime-fancy slime-banner))
    (setq slime-complete-symbol*-fancy t)
    (setq slime-complete-symbol-function 'slime-fuzzy-complete-symbol)))

Post Reply