From d543ff4caaabda2f33ce7b5a723013db06aa5c9d Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Wed, 22 Oct 2003 11:30:19 +0000 Subject: [PATCH] 0.8.4.38: Solaris fixes (from Nikodemus Siivola sbcl-devel 2003-10-22) ... sh(1) apparently doesn't like $(foo). Make it `foo`. ... allow building from cmucl/sparc, by suppressing underflow traps ... /dev/random doesn't exist. /dev/zero better had, though --- make-config.sh | 2 +- src/cold/ansify.lisp | 37 ++++++------------------------------- tests/stream.impure.lisp | 2 +- version.lisp-expr | 2 +- 4 files changed, 9 insertions(+), 34 deletions(-) diff --git a/make-config.sh b/make-config.sh index 6990175..e71a786 100644 --- a/make-config.sh +++ b/make-config.sh @@ -181,7 +181,7 @@ elif [ "$sbcl_arch" = "ppc" -a "$sbcl_os" = "linux" ]; then elif [ "$sbcl_arch" = "ppc" -a "$sbcl_os" = "darwin" ]; then # The default stack ulimit under darwin is too small to run PURIFY. # Best we can do is complain and exit at this stage - if [ $(ulimit -s) = "512" ]; then + if [ "`ulimit -s`" = "512" ]; then echo "Your stack size limit is too small to build SBCL." echo "See the limit(1) or ulimit(1) commands and the README file." exit 1 diff --git a/src/cold/ansify.lisp b/src/cold/ansify.lisp index 04a2794..006a0df 100644 --- a/src/cold/ansify.lisp +++ b/src/cold/ansify.lisp @@ -13,37 +13,8 @@ ;;;; CLISP issues #+clisp -(locally - - (in-package "COMMON-LISP") - - ;; no longer needed in CLISP 1999-01-08, hurrah! - #| - ;; ANSI specifies that package LISP defines the type BOOLEAN, and the CMU CL - ;; compiler uses it a lot. This should be trivial to patch in CLISP, except - ;; that CLISP defines FFI:BOOLEAN, which conflicts. Gads.. Here we try to fix - ;; it with some package hacking. (Please do not take this as an example of - ;; good package hacking, I just messed with it until it seemed to work well - ;; enough to bootstrap CMU CL, because I'm highly unmotivated to make elegant - ;; fixes for nonstandard behavior. -- WHN) - (shadow 'ffi:boolean "FFI") - (deftype cl::boolean () '(member t nil)) - (export 'boolean "LISP") - |# - - ;; apparently fixed sometime in 2001, hurray! - #| (error "can't use CLISP -- no MAKE-LOAD-FORM") |# - - ;; CLISP is still unsupported as a cross-compilation host because of - ;; these known problems: - (flet ((clisp-ouch (s) (error "can't bootstrap with CLISP: ~A" s))) - ;; These problems don't seem deep, and could probably be worked - ;; around. - #+nil (clisp-ouch "no (DOCUMENTATION X) when X is a PACKAGE") - #+nil (clisp-ouch "no (FUNCTION (SETF SYMBOL-FUNCTION))")) - - (ext:without-package-lock ("SYSTEM") - (setf system::*inhibit-floating-point-underflow* t))) +(ext:without-package-lock ("SYSTEM") + (setf system::*inhibit-floating-point-underflow* t)) ;;;; CMU CL issues @@ -79,6 +50,10 @@ (unless (ignore-errors (read-from-string "1.0l0")) (error "CMUCL on Alpha can't read floats in the format \"1.0l0\". Patch your core file~%~%")) +#+(and cmu sparc) +(ext:set-floating-point-modes :traps '(:overflow :invalid :divide-by-zero)) + +;;;; OpenMCL issues #+openmcl (unless (ignore-errors (funcall (constantly t) 1 2 3)) (error "please find a binary that understands CONSTANTLY to build from")) diff --git a/tests/stream.impure.lisp b/tests/stream.impure.lisp index f98cb46..099c305 100644 --- a/tests/stream.impure.lisp +++ b/tests/stream.impure.lisp @@ -78,7 +78,7 @@ (assert (raises-error? (read-byte (make-string-input-stream "abc")) type-error)) -(assert (raises-error? (with-open-file (s "/dev/random") +(assert (raises-error? (with-open-file (s "/dev/zero") (read-byte s)) type-error)) ;;; success diff --git a/version.lisp-expr b/version.lisp-expr index af3f4ad..f69c0d9 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.4.37" +"0.8.4.38" -- 1.7.10.4