X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fcompiler.pure-cload.lisp;h=3a20ebdf46b0d0e152db92d2c95e9b8ccf586342;hb=1cba0af01f5107ab384d0d8b94b1f6330b3d0ef4;hp=9521ae4a30492126c1300a048c6511f7062b84e6;hpb=78fa16bf55be44cc16845be84d98023e83fb14bc;p=sbcl.git diff --git a/tests/compiler.pure-cload.lisp b/tests/compiler.pure-cload.lisp index 9521ae4..3a20ebd 100644 --- a/tests/compiler.pure-cload.lisp +++ b/tests/compiler.pure-cload.lisp @@ -6,7 +6,7 @@ ;;;; While most of SBCL is derived from the CMU CL system, the test ;;;; files (like this one) were written from scratch after the fork ;;;; from CMU CL. -;;;; +;;;; ;;;; This software is in the public domain and is provided with ;;;; absolutely no warranty. See the COPYING and CREDITS files for ;;;; more information. @@ -27,7 +27,7 @@ ;;; 0 is not of type (OR FUNCTION SB-KERNEL:FDEFN). ;;; Correct behavior is to warn at compile time because the symbol ;;; isn't declared as a variable, but to set its SYMBOL-VALUE anyway. -;;; +;;; ;;; This bug was in sbcl-0.6.11.13. (print (setq improperly-declared-var '(1 2))) (assert (equal (symbol-value 'improperly-declared-var) '(1 2))) @@ -85,15 +85,15 @@ (defun #:foo (b c) (declare (type (integer -23228343 2) b) - (type (integer -115581022 512244512) c) - (optimize (speed 3) (safety 1) (debug 1))) + (type (integer -115581022 512244512) c) + (optimize (speed 3) (safety 1) (debug 1))) (* (* (logorc2 3 (deposit-field 4667947 (byte 14 26) b)) - (deposit-field b (byte 25 27) -30424886)) + (deposit-field b (byte 25 27) -30424886)) (dpb b (byte 23 29) c))) (defun #:foo (x y) (declare (type (integer -1 1000000000000000000000000) x y) - (optimize speed)) + (optimize speed)) (* x (* y x))) (defun #:foo (b) @@ -148,3 +148,34 @@ ;;; bug 261 (let ((x (list (the (values &optional fixnum) (eval '(values)))))) (assert (equal x '(nil)))) + +;;; Bug 125, reported by Gabe Garza: Python did not preserve identity +;;; of closures. +(flet ((test-case (test-pred x) + (let ((func (lambda () x))) + (list (eq func func) + (funcall test-pred func func) + (delete func (list func)))))) + (assert (equal '(t t nil) (funcall (eval #'test-case) #'eq 3)))) + +;;; compiler failure reported by Alan Shields: +;;; MAYBE-INFER-ITERATION-VAR-TYPE did not deal with types (REAL * (n)). +(let ((s (loop for x from (- pi) below (floor (* 2 pi)) by (/ pi 75) count t))) + (assert (= s 219))) + +(with-test (:name :specialized-array-dumping) + (macrolet + ((make-tests () + `(progn + ,@(loop for saetp across + sb-vm:*specialized-array-element-type-properties* + for specifier = (sb-vm:saetp-specifier saetp) + for array = (make-array (if specifier 10 0) + :element-type specifier) + for make-array = `(make-array ,(if specifier 10 0) + :element-type ',specifier) + collect `(assert (and (equal (type-of ,array) + ',(type-of array)) + (equalp ,array + ,make-array))))))) + (make-tests)))