X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fcompiler.pure.lisp;h=53b9c67027042be1297712fc12114a622a631f0e;hb=3bbbfec26f90bc005c2ff5c8de0ceb0f95f1a52b;hp=73a6c7d9c249357d99871534f54c57c41445d512;hpb=22b42bc82a73c166564c76a3501a952f02d52da1;p=sbcl.git diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index 73a6c7d..53b9c67 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -114,3 +114,36 @@ (assert (functionp fun)) (assert (not warnings-p)) (assert (not failure-p)))) + +;;; a bug in 0.7.4.11 +(dolist (i '(a b 1 2 "x" "y")) + ;; In sbcl-0.7.4.11, the compiler tried to source-transform the + ;; TYPEP here but got confused and died, doing + ;; (ASSOC '(AND INTEGERP (SATISFIES PLUSP))) + ;; *BACKEND-TYPE-PREDICATES* + ;; :TEST #'TYPE=) + ;; and blowing up because TYPE= tried to call PLUSP on the + ;; characters of the MEMBER-TYPE representing STANDARD-CHAR. + (when (typep i '(and integer (satisfies oddp))) + (print i))) +(dotimes (i 14) + (when (typep i '(and integer (satisfies oddp))) + (print i))) + +;;; bug 156 (reported by APD sbcl-devel 2002-04-12, fixed by CSR patch +;;; sbcl-devel 2002-07-02): FUNCTION-LAMBDA-EXPRESSION of +;;; interactively-compiled functions was broken by sleaziness and +;;; confusion in the assault on 0.7.0, so this expression used to +;;; signal TYPE-ERROR when it found NIL instead of a DEBUG-SOURCE. +(eval '(function-lambda-expression #'(lambda (x) x))) + +;;; bug caught and fixed by Raymond Toy cmucl-imp 2002-07-10: &REST +;;; variable is not optional. +(assert (null (ignore-errors (eval '(funcall (lambda (&rest) 12)))))) + +;;; on the PPC, we got the magic numbers in undefined_tramp wrong for +;;; a while; fixed by CSR 2002-07-18 +(multiple-value-bind (value error) + (ignore-errors (some-undefined-function)) + (assert (null value)) + (assert (eq (cell-error-name error) 'some-undefined-function)))