[slime-devel] sbcl-mt on Debian unstable

Friedrich Dominicus frido at q-software-solutions.com
Wed Jun 16 15:19:17 UTC 2004


Am I the only one encountering problems with sbcl-mt on Debian
unstable?
If I run M-x slime the thing are gettig compiled but at the end I get:

; in: LAMBDA NIL
;     (SWANK-BACKEND::SBCL-PACKAGE-P SWANK-LOADER::P)
; 
; caught STYLE-WARNING:
;   undefined function: SWANK-BACKEND::SBCL-PACKAGE-P

;     (SWANK-BACKEND::SHEBANG-READTABLE)
; 
; caught STYLE-WARNING:
;   undefined function: SWANK-BACKEND::SHEBANG-READTABLE

; 
; caught STYLE-WARNING:
;   These functions are undefined:
;   SWANK-BACKEND::SBCL-PACKAGE-P SWANK-BACKEND::SHEBANG-READTABLE
; 
; compilation unit finished
;   caught 3 STYLE-WARNING conditions

I simply did not get it, this is what one can find in swank-sbcl.lisp
(defun feature-in-list-p (feature list)
  (etypecase feature
    (symbol (member feature list :test #'eq))
    (cons (flet ((subfeature-in-list-p (subfeature)
		   (feature-in-list-p subfeature list)))
	    (ecase (first feature)
	      (:or  (some  #'subfeature-in-list-p (rest feature)))
	      (:and (every #'subfeature-in-list-p (rest feature)))
	      (:not (let ((rest (cdr feature)))
		      (if (or (null (car rest)) (cdr rest))
			(error "wrong number of terms in compound feature ~S"
			       feature)
			(not (subfeature-in-list-p (second feature)))))))))))

(defun shebang-reader (stream sub-character infix-parameter)
  (declare (ignore sub-character))
  (when infix-parameter
    (error "illegal read syntax: #~D!" infix-parameter))
  (let ((next-char (read-char stream)))
    (unless (find next-char "+-")
      (error "illegal read syntax: #!~C" next-char))
    ;; When test is not satisfied
    ;; FIXME: clearer if order of NOT-P and (NOT NOT-P) were reversed? then
    ;; would become "unless test is satisfied"..
    (when (let* ((*package* (find-package "KEYWORD"))
		 (*read-suppress* nil)
		 (not-p (char= next-char #\-))
		 (feature (read stream)))
	    (if (feature-in-list-p feature *features*)
		not-p
		(not not-p)))
      ;; Read (and discard) a form from input.
      (let ((*read-suppress* t))
	(read stream t nil t))))
 (values))

(defvar *shebang-readtable* 
  (let ((*readtable* (copy-readtable nil)))
    (set-dispatch-macro-character #\# #\! 
                                  (lambda (s c n) (shebang-reader s c n))
                                  *readtable*)
    *readtable*))

(defun shebang-readtable ()
  *shebang-readtable*)

(defun sbcl-package-p (package)
  (let ((name (package-name package)))
    (eql (mismatch "SB-" name) 3)))


Well if something is defined than this functions or what am I missing?

Friedrich




More information about the slime-devel mailing list