From ff5c74843b7daa12f4c2d4f2c487a63d81cb2c22 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Fri, 2 Jan 2009 15:11:08 +0000 Subject: [PATCH] 1.0.24.6: OPTIMIZATION #23 is there already * Type information for &REST lists is available after constraint propagation. --- OPTIMIZATIONS | 3 --- contrib/sb-introspect/sb-introspect.lisp | 2 +- tests/compiler.pure.lisp | 8 ++++++++ version.lisp-expr | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/OPTIMIZATIONS b/OPTIMIZATIONS index acbd0d0..de7e3c3 100644 --- a/OPTIMIZATIONS +++ b/OPTIMIZATIONS @@ -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. diff --git a/contrib/sb-introspect/sb-introspect.lisp b/contrib/sb-introspect/sb-introspect.lisp index d962f6c..5ba8bdc 100644 --- a/contrib/sb-introspect/sb-introspect.lisp +++ b/contrib/sb-introspect/sb-introspect.lisp @@ -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" diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index 381bb2f..e913df3 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -2675,3 +2675,11 @@ (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))) diff --git a/version.lisp-expr b/version.lisp-expr index d53532f..8f1f978 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4