Hi Martin,
as I wrote, I don't currently use BKNR with sbcl, so I can't really comment on the problems you have. It should not be too hard to get going, though. A proper SBCL port would be nice, but if you want to do this, please make sure that cmucl compilation is not broken afterwards and that you don't put in any new functionality.
Last time I have tried the problem with SBCL was that the thirdparty releases included in the bknr Subversion repository don't play nice with SBCL and the other way round. You may want to try checking out svn://common-lisp.net/project/bknr/svn/branches/grin-neu which has the SBCL related patches I did a few weeks ago.
-Hans
2007/2/18, Marcin Tustin mm3@zepler.net:
On 2/18/07, Hans Hübner hans@huebner.org wrote:
Hi,
it is sad that you can't "even" install bknr. As it seems, your problem is related to asdf really. You could try using the "setup-registry" function from tools/make-core.lisp or manually symlink bknr's asdf files to your system repository and try again.
What do you mean by "system repository"? tools/make-core.lisp doesn't load, giving the error message: " READER-ERROR at 45 (line 3, column 22) on #<SB-SYS:FD-STREAM for "file /usr/lib/sbcl/bknr-svn/tools/make-core.lisp" {AE2ABC9}>: package "EXT" not found "
I am aware that bknr does not come with a user friendly install procedure, but I do not have the time to change that presently.
I'm willing to contribute some sort of script or documentation if I can actually figure out how to install bknr. However, I will need some help to install it.
Best regards, Hans
2007/2/17, Marcin Tustin < mm3@zepler.net>:
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@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/bknr-devel