X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcold%2Fansify.lisp;h=25b957c2bf888cc78412e73df0232534f501b638;hb=771b864c8f32af7734bc0550aeaf1539fc4df194;hp=5bfa6d2415271cdd8391dd28587a32d5091012d8;hpb=22b819c0cd0ca0ea5be52ba280b9e9e0b8e86210;p=sbcl.git diff --git a/src/cold/ansify.lisp b/src/cold/ansify.lisp index 5bfa6d2..25b957c 100644 --- a/src/cold/ansify.lisp +++ b/src/cold/ansify.lisp @@ -12,38 +12,31 @@ ;;;; CLISP issues +;;; as explained on #lisp ca. October 2003: +;;; chandler: nope, I'm blaming another clisp bug +;;; [8]> least-positive-short-float +;;; 2.93874s-39 +;;; [9]> (coerce * 'single-float) +;;; 0.0 +;;; aah +;;; "oops" +;;; yep +;;; tried that on clisp from fink: +;;; [1]> least-positive-short-float +;;; 2.93874s-39 +;;; [2]> (coerce * 'single-float) +;;; *** - floating point underflow +;;; yeah +;;; shall i not try to build sbcl with that? +;;; if you turn off underflow traps, then you get 0.0 +;;; well, that makes sense, i guess +;;; #+clisp +;;; (ext:without-package-lock ("SYSTEM") +;;; (setf system::*inhibit-floating-point-underflow* t)) +;;; (in src/cold/ansify.lisp) #+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 @@ -75,9 +68,25 @@ (warn "CMU CL has a broken implementation of READ-SEQUENCE.") (pushnew :no-ansi-read-sequence *features*)) +;;; This is apparently quite old, according to +;;; : +;;; (error "CMUCL on Alpha can't read floats in the format \"1.0l0\". +;;; the warning relates to a random vinary produced from cvs of +;;; around feb 2000, the corresponding sources to which I never found +;;; (But it seems harmless to leave it here forever just in case.) #+(and cmu alpha) (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 + +;;; This issue in OpenMCL led to some SBCL bug reports ca. late 2003. +#+openmcl +(unless (ignore-errors (funcall (constantly t) 1 2 3)) + (error "please find a binary that understands CONSTANTLY to build from")) ;;;; general non-ANSI-ness