[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

issue COMPILE-ENVIRONMENT-CONSISTENCY, version 4



If we permit the compiler to signal warnings for functions where the
compile-time environment signature is different from the function call
being compiled, why do we prohibit it for generic functions?

 From COMPILE-ENVIRONMENT-CONSISTENCY:

    (3) The compiler *must not* make any additional assumptions about
    consistency between the compiletime and runtime environments.  In 
    particular:

	(a) The compiler may not ...  It is, however,
	    permissible for the compiler to emit warning messages when
	    compiling calls to functions that are defined in the compiletime
	    environment, but where the wrong number or type of arguments
	    are supplied.

But then in CLOS-MACRO-COMPILATION:

  
  DEFMETHOD:
  
  * The method is not callable at compile-time.  If there is a generic
    function with the same name at compile-time, compiling a DEFMETHOD
    will not add the method to that generic function.  The compiler may
    perform tests for lambda-list congruence only between the DEFGENERICs
    and DEFMETHODs for a given generic function name that appear within
    the file being compiled, and not against a generic function of the 
    same name which exists in the compile-time environment.