1.0.24.6: OPTIMIZATION #23 is there already
authorNikodemus Siivola <nikodemus@random-state.net>
Fri, 2 Jan 2009 15:11:08 +0000 (15:11 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Fri, 2 Jan 2009 15:11:08 +0000 (15:11 +0000)
 * Type information for &REST lists is available after constraint
   propagation.

OPTIMIZATIONS
contrib/sb-introspect/sb-introspect.lisp
tests/compiler.pure.lisp
version.lisp-expr

index acbd0d0..de7e3c3 100644 (file)
@@ -179,9 +179,6 @@ stack-allocation of structures is impossible.
 #22
 IR2 does not perform unused code flushing.
 --------------------------------------------------------------------------------
-#23
-Python does not know that &REST lists are LISTs (and cannot derive it).
---------------------------------------------------------------------------------
 #24
 a. Iterations on &REST lists, returning them as VALUES could be
    rewritten with &MORE vectors.
index d962f6c..5ba8bdc 100644 (file)
@@ -25,7 +25,7 @@
 (defpackage :sb-introspect
   (:use "CL")
   (:export "FUNCTION-ARGLIST"
-          "FUNCTION-LAMBDA-LIST"
+           "FUNCTION-LAMBDA-LIST"
            "DEFTYPE-LAMBDA-LIST"
            "VALID-FUNCTION-NAME-P"
            "FIND-DEFINITION-SOURCE"
index 381bb2f..e913df3 100644 (file)
   (compile nil '(lambda (x)
                  (declare (type (and simple-string (satisfies array-has-fill-pointer-p)) x))
                  (array-element-type x))))
+
+(with-test (:name :rest-list-type-derivation)
+  (multiple-value-bind (type derivedp)
+      (funcall (compile nil `(lambda (&rest args)
+                               (sb-c::compiler-derived-type args)))
+               nil)
+    (assert (eq 'list type))
+    (assert derivedp)))
index d53532f..8f1f978 100644 (file)
@@ -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".)
-"1.0.24.5"
+"1.0.24.6"