Update of /cvsroot/sbcl/sbcl/tests
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv19689/tests
Modified Files:
compiler.impure.lisp type.impure.lisp
Log Message:
0.9.15.36: less intrusive step instrumentation
* INVOKE-EFFECTIVE-METHOD was missing a binding for the
effective-method-form, causing potential multiple evaluation and
also creating one source of confusion when step instrumenting CLOS
code, manifesting as:
Asserted type (MOD 536870911) conflicts with derived type
(VALUES (OR FUNCTION SB-PCL::METHOD-CALL SB-PCL::FAST-METHOD-CALL)
&OPTIONAL).
* If the form being instrumented is a call to a known single-valued
function we can instrument it in a way that doesn't kill the
type-inference. This alone is enough to get rid of most warnings
such as above.
* Add rudimentary (B)acktrace command to the built-in stepper.
Index: compiler.impure.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/tests/compiler.impure.lisp,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -d -r1.71 -r1.72
--- compiler.impure.lisp 11 Aug 2006 13:37:19 -0000 1.71
+++ compiler.impure.lisp 16 Aug 2006 19:05:46 -0000 1.72
@@ -1318,4 +1318,13 @@
(declare (inline test-cmacro-4))
(test-cmacro-4)))))
+;;; Step instrumentation breaking type-inference
+(handler-bind ((warning #'error))
+ (assert (= 42 (funcall (compile nil '(lambda (v x)
+ (declare (optimize sb-c:insert-step-conditions))
+ (if (typep (the function x) 'fixnum)
+ (svref v (the function x))
+ (funcall x))))
+ nil (constantly 42)))))
+
;;; success
Index: type.impure.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/tests/type.impure.lisp,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -d -r1.44 -r1.45
--- type.impure.lisp 16 Aug 2006 18:04:34 -0000 1.44
+++ type.impure.lisp 16 Aug 2006 19:05:46 -0000 1.45
@@ -511,7 +511,7 @@
(assert win))
;; See FIXME in type method for CONS :SIMPLE-TYPE-=
-#+nil
+#+nil
(multiple-value-bind (ok win)
(sb-kernel:type= (sb-kernel:specifier-type '(cons goldbach1 integer))
(sb-kernel:specifier-type '(cons goldbach1 single-float)))
|