[bknr-devel] Can't even install bknr

Tchavdar Roussanov troussan at gmail.com
Mon Feb 19 04:36:59 UTC 2007


Hi Marcin,

I think that the value of your $SBCL_HOME  ends with 'sbcl' without '/'.  In
this case  merge-pathnames will consider sbcl as a regular file name and
will remove it. Check the value of asdf:*central-registry* after loading the
init.lisp file. It should contain paths to all directories with *.asd files.

Also you will need the latest versions of all thirdparty libraries in order
to compile with SBCL.

-Tchavdar

On 2/17/07, Marcin Tustin <mm3 at zepler.net> wrote:
>
> I'm trying to install bknr, but I can't get my lisp (sbcl) to find it.
>
> 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.
>
> 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}>:
>   component "bknr" not found."
>
> ------------------
> init.lisp:
>
>
> (in-package :cl-user)
> (require :asdf)
>
> ;;;;;;;;;;;;;
> ;; Tweak this
> (eval-when (:execute :compile-toplevel :load-toplevel)
>   #+allegro
>   (setf (logical-pathname-translations "bknr")
>     `(("**;*.*.*" "bknr/**/"))
>     (logical-pathname-translations "bknr-thirdparty")
>     `(("**;*.*.*" "thirdparty/**/"))
>     (logical-pathname-translations "eboy")
>     `(("**;*.*.*" "eboy/**/")))
>
>   #+cmu
>   (setf (logical-pathname-translations "bknr")
>     `(("**;*.*.*" "home:bknr-sputnik/bknr/**/"))
>     (logical-pathname-translations "bknr-thirdparty")
>     `(("**;*.*.*" "home:bknr-sputnik/thirdparty/**/"))
>     (logical-pathname-translations "eboy")
>     `(("**;*.*.*" "home:bknr-sputnik/eboy/**/")))
>
>   #+sbcl
>   (setf (logical-pathname-translations "bknr")
>       `(("**;*.*.*"
>          ,(merge-pathnames
>            (make-pathname :directory '(:relative "bknr-svn" "bknr"
> :wild-inferiors)
>                           :name    :wild
>                           :type    :wild
>                           :version :wild)
>             (POSIX-GETENV "SBCL_HOME"))))
>        (logical-pathname-translations "bknr-thirdparty")
>       `(("**;*.*.*"
>          ,(merge-pathnames
>            (make-pathname :directory '(:relative "bknr-svn" "thirdparty"
> :wild-inferiors)
>                           :name    :wild
>                           :type    :wild
>                           :version :wild)
>             (POSIX-GETENV "SBCL_HOME"))))
>        (logical-pathname-translations "eboy")
>       `(("**;*.*.*"
>          ,(merge-pathnames
>            (make-pathname :directory '(:relative "bknr-svn" "eboy"
> :wild-inferiors)
>                           :name    :wild
>                           :type    :wild
>                           :version :wild)
>             (POSIX-GETENV "SBCL_HOME"))))))
>
> (eval-when (:execute :compile-toplevel :load-toplevel)
>   #-sbcl
>   (load #p"bknr-thirdparty:asdf;asdf")
>   #+sbcl
>   (require :asdf))
>
> (pushnew (translate-logical-pathname #p"bknr:src;")
> asdf:*central-registry* :test #'equal)
> (pushnew (translate-logical-pathname #p"eboy:src;")
> asdf:*central-registry* :test #'equal)
>
> (defparameter *patch-directory* "bknr:patches;")
>
> (defun load-patches (&optional (directory *patch-directory*))
>   (dolist (file (directory (merge-pathnames directory #p"patch-*.lisp")))
>     (warn "; Loading patch from file ~A~%" file)
>     (load file)))
>
> (defun fix-dpd ()
>   #+cmu
>   ;; Die Sache mit dem aktuellen Verzeichnis hat CMUCL noch immer nicht im
>   ;; Griff.  Nachbessern!
>   (setf *default-pathname-defaults*
>         (pathname
>          (concatenate 'string
>                       (nth-value 1 (unix:unix-current-directory))
>                       "/"))))
>
> (defun make-wild-pathname (type directory)
>   (merge-pathnames (make-pathname :type type
>                   :name :wild
>                   :directory '(:relative :wild-inferiors))
>            directory))
>
> (defun setup-registry ()
>   (mapc #'(lambda (asd-pathname)
>         (pushnew (make-pathname :directory (pathname-directory
> asd-pathname))
>              asdf:*central-registry*
>              :test #'equal))
>     (append (directory #p"bknr-thirdparty:**;*.asd")
>         (directory #p"bknr:**;*.asd"))))
>
> (defun clean-registry (&optional (dirs asdf:*central-registry*))
>   (let ((files (mapcan #'directory
>                (mapcan #'(lambda (dir)
>                    (when (pathnamep dir)
>                      (list (make-wild-pathname "fas" dir)
>                        (make-wild-pathname "lib" dir)
>                        (make-wild-pathname "x86f" dir)
>                        (make-wild-pathname "fasl" dir))))
>                    dirs))))
>     (dolist (file files)
>       (when (probe-file file)
>     (format t "Deleting binary file ~S~%" file)
>     (delete-file file)))))
>
> #+cmu
> (load-patches)
>
> (setup-registry)
> (fix-dpd)
>
> (pushnew :cl-gd-gif *features*)
>
>
> _______________________________________________
> bknr-devel mailing list
> bknr-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/bknr-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/bknr-devel/attachments/20070218/4656262b/attachment.html>


More information about the Bknr-devel mailing list