From: Nikodemus S. <de...@us...> - 2006-08-17 08:50:30
|
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))) |