From: Alexey D. <ade...@co...> - 2003-05-03 07:06:54
|
Hello, William Harold Newman <wil...@ai...> writes: > This code behaves as expected in 0.8alpha.0.3 but fails in 0.8alpha.0.4. > > (cl:in-package :cl-user) > (defun frob (x y) > (values)) > (defun baz (this kids) > (flet ((n-i (&rest rest) > ;; Removing the #+NIL here makes things work. > #+nil (format t "~&in N-I REST=~S~%" rest) > (apply #'frob this rest))) > (n-i kids))) > ;;; fails in 0.8alpha.0.4 with "The value 13 is not of type LIST." > (baz 12 13) > > Presumably it's related to the changes in type representation, but the > way that the presence of the FORMAT makes it compile successfully even > with the new type representation makes me suspect that it's not so > much a bug in the new type representation as a latent compiler bug > which is exercised by the new representation. Yes, you are right. I've applied a patch, it will work for some time... Until somebody write correct methods for intersection and union of function types. BTW, Paul's tests have revealed another problem: 0.8alpha.0.4 compiler fails on (MULTIPLE-VALUE-LIST (VALUES)) treating FUNCTION class as FUN-TYPE. -- Regards, Alexey Dejneka "Alas, the spheres of truth are less transparent than those of illusion." -- L.E.J. Brouwer |