I'm trying to install bknr, but I can't get my lisp (sbcl) to find it.<br><br>In brief, I've put bknr-svn in $SBCL_HOME, and I have the file $SBCL_HOME/bknr-svn/bknr/init.lisp looking as below.<br><br>The problem is that once I load the file, (asdf:oos 'asdf:load-op :bknr) just drops me into the debugger with the message "debugger invoked on a ASDF:MISSING-COMPONENT in thread #<THREAD "initial thread" {A744531}>:
<br> component "bknr" not found."<br><br>------------------<br>init.lisp:<br><br><br>(in-package :cl-user)<br>(require :asdf)<br><br>;;;;;;;;;;;;;<br>;; Tweak this<br>(eval-when (:execute :compile-toplevel :load-toplevel)
<br> #+allegro<br> (setf (logical-pathname-translations "bknr")<br> `(("**;*.*.*" "bknr/**/"))<br> (logical-pathname-translations "bknr-thirdparty")<br> `(("**;*.*.*" "thirdparty/**/"))
<br> (logical-pathname-translations "eboy")<br> `(("**;*.*.*" "eboy/**/")))<br><br> #+cmu<br> (setf (logical-pathname-translations "bknr")<br> `(("**;*.*.*" "home:bknr-sputnik/bknr/**/"))
<br> (logical-pathname-translations "bknr-thirdparty")<br> `(("**;*.*.*" "home:bknr-sputnik/thirdparty/**/"))<br> (logical-pathname-translations "eboy")<br> `(("**;*.*.*" "home:bknr-sputnik/eboy/**/")))
<br><br> #+sbcl<br> (setf (logical-pathname-translations "bknr")<br> `(("**;*.*.*"<br> ,(merge-pathnames<br> (make-pathname :directory '(:relative "bknr-svn" "bknr" :wild-inferiors)
<br> :name :wild<br> :type :wild<br> :version :wild)<br> (POSIX-GETENV "SBCL_HOME"))))<br> (logical-pathname-translations "bknr-thirdparty")
<br> `(("**;*.*.*"<br> ,(merge-pathnames<br> (make-pathname :directory '(:relative "bknr-svn" "thirdparty" :wild-inferiors)<br> :name :wild
<br> :type :wild<br> :version :wild)<br> (POSIX-GETENV "SBCL_HOME"))))<br> (logical-pathname-translations "eboy")<br> `(("**;*.*.*"
<br> ,(merge-pathnames<br> (make-pathname :directory '(:relative "bknr-svn" "eboy" :wild-inferiors)<br> :name :wild<br> :type :wild
<br> :version :wild)<br> (POSIX-GETENV "SBCL_HOME"))))))<br><br>(eval-when (:execute :compile-toplevel :load-toplevel)<br> #-sbcl<br> (load #p"bknr-thirdparty:asdf;asdf")
<br> #+sbcl<br> (require :asdf))<br><br>(pushnew (translate-logical-pathname #p"bknr:src;") asdf:*central-registry* :test #'equal)<br>(pushnew (translate-logical-pathname #p"eboy:src;") asdf:*central-registry* :test #'equal)
<br><br>(defparameter *patch-directory* "bknr:patches;")<br><br>(defun load-patches (&optional (directory *patch-directory*))<br> (dolist (file (directory (merge-pathnames directory #p"patch-*.lisp")))
<br> (warn "; Loading patch from file ~A~%" file)<br> (load file)))<br><br>(defun fix-dpd ()<br> #+cmu<br> ;; Die Sache mit dem aktuellen Verzeichnis hat CMUCL noch immer nicht im<br> ;; Griff. Nachbessern!
<br> (setf *default-pathname-defaults*<br> (pathname<br> (concatenate 'string<br> (nth-value 1 (unix:unix-current-directory))<br> "/"))))<br><br>(defun make-wild-pathname (type directory)
<br> (merge-pathnames (make-pathname :type type<br> :name :wild<br> :directory '(:relative :wild-inferiors))<br> directory))<br><br>(defun setup-registry ()<br> (mapc #'(lambda (asd-pathname)
<br> (pushnew (make-pathname :directory (pathname-directory asd-pathname))<br> asdf:*central-registry*<br> :test #'equal))<br> (append (directory #p"bknr-thirdparty:**;*.asd")
<br> (directory #p"bknr:**;*.asd"))))<br><br>(defun clean-registry (&optional (dirs asdf:*central-registry*))<br> (let ((files (mapcan #'directory<br> (mapcan #'(lambda (dir)<br>
(when (pathnamep dir)<br> (list (make-wild-pathname "fas" dir)<br> (make-wild-pathname "lib" dir)<br> (make-wild-pathname "x86f" dir)
<br> (make-wild-pathname "fasl" dir))))<br> dirs))))<br> (dolist (file files)<br> (when (probe-file file)<br> (format t "Deleting binary file ~S~%" file)
<br> (delete-file file)))))<br><br>#+cmu<br>(load-patches)<br><br>(setup-registry)<br>(fix-dpd)<br><br>(pushnew :cl-gd-gif *features*)<br><br>