Hi,
I recently upgraded my installation of sbcl to SBCL 0.8.13 and
experienced a problem in building the maxima system under sbcl because
of the newly introduced package locks.
maxima tries to redefine things in the common-lisp package and this is
(according to the hyperspec) undefined behaviour. Under the new sbcl
it raises a condition since it violates its lock on the common-lisp
package.
I tried to fix it and came up with the following patches to
defsystem.lisp and maxima-package.lisp which work for me:
diff defsystem.lisp defsystem.lisp.new
2036c2036
< (pathname #| do nothing |#))
---
> (pathname ))
3815c3815
< #-(or (and allegro-version>= (version>= 4 1)) :lispworks)
---
> #-(or (and allegro-version>= (version>= 4 1)) :lispworks :sbcl)
3820d3819
< #+:sbcl 'cl:require
3839,3840c3838,3842
< (symbol-function 'new-require))))))
< )
---
> (symbol-function 'new-require)))
> #+:sbcl
> (sb-ext:without-package-locks
> (setf (symbol-function 'cl:require)
> (symbol-function 'new-require)))))))
diff maxima-package.lisp maxima-package.lisp.new
1c1
< #+(or sbcl mcl)
---
> #+mcl
4a5,9
> #+:sbcl
> (progn
> (sb-ext:unlock-package "COMMON-LISP")
> (rename-package "COMMON-LISP" "COMMON-LISP" '("LISP" "CL")))
I think it would be better to avoid mucking around with the
common-lisp package in the long run, but my patch is a short term fix
that allows to build the system.
I hope it is of some help to the list members,
Sincerely,
Andreas
--
Wherever I lay my .emacs, there's my $HOME.