From: Christophe R. <cr...@us...> - 2003-06-07 11:02:02
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs1:/tmp/cvs-serv4777/tests Modified Files: vector.pure.lisp Log Message: 0.8.0.42: Quieten the compiler slightly for (LENGTH <VECTOR>) ... one of the transforms wants to constant-fold the above when <VECTOR> is a 1d SIMPLE-ARRAY of known dimensions. However, the deftransform definition (with a simple-array type requirement) caused the compiler to complain when the argument was known to be a vector but not a simple-array. Instead, leave the type requirement for the transform open, and GIVE-UP-IR1-TRANSFORM (with no arguments => silence) if the argument isn't simple. ... write some tests for LENGTH on vectors Index: vector.pure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/vector.pure.lisp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- vector.pure.lisp 24 Nov 2000 18:33:52 -0000 1.3 +++ vector.pure.lisp 7 Jun 2003 11:01:58 -0000 1.4 @@ -16,10 +16,19 @@ (simple-u32 (make-array 50 :element-type '(unsigned-byte 32))) (simple-character (make-string 44)) - (complex-t (make-array 35 :fill-pointer 3)) + (complex-t (make-array 4 :fill-pointer 3)) (complex-u32 (make-array 88 + :adjustable t :element-type '(unsigned-byte 32))) (complex-character (make-array 14 :element-type 'character :fill-pointer t))) - (assert (= (length simple-t) 35))))) + (assert (= (length simple-t) 35)) + (assert (= (length simple-u32) 50)) + (assert (= (length simple-character) 44)) + (assert (= (length complex-t) 3)) + (assert (= (length complex-u32) 88)) + (assert (= (length complex-character) 14)) + (vector-push-extend #\a complex-t) + (assert (= (length complex-t) 4)) + (assert (raises-error? (vector-push-extend #\b simple-t)))))) |