Hi Bob,

A workaround I use when I'm really annoyed by the bogus
warning message is to call FMAKUNBOUND on the to-be-redefined
function before I actually redefine it.  

Best,

-cph


bob coyne <[EMAIL PROTECTED]> writes:

> The compiler sometimes prints out an annoying (and incorrect)
> warning that callers of functions are passing the wrong number of
> arguments.  This happens when the called function has been redefined
> to take a different number of arguments.  The compiler lets the function
> be redefined, but seems to hold on to the old information about how many
> arguments it has and complains when any callers are subsequently recompiled
> using the new (correct) number of arguments.
> 
> I'm running with cmucl-18e on linux.
> 
> ----------------------------------
> 
> (defun fun1 (x)
>   (+ x 3))
> 
> ;;; Compiling defun fun1

(fmakunbound 'fun1) ;; make the compiler quiet

> (defun fun1 (x y)
>   (+ x y))

> * ;;; Compiling defun fun1

> 3. compile a caller
> (defun fun2 ()
>   (fun1 3 2))
> 
> ;;; Compiling defun fun2


Reply via email to