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

FUNCTION-TYPE:STRICT-REDEFINITION proposal



re: I intended not to require that it not be a "proper" subtype in the 
    sense that there may be no data items that are FUNCTIONP but not 
    COMPILED-FUNCTIONP.

Lucid Common Lisp distinguishes "compiled" closures which exist for the
purpose of supporting entry into the interpreter from functions which are
truly compiled.  It only takes a bit in a header word.  If an implementation
really doesn't support an interpreter, then having every function be
COMPILED-FUNCTIONP  doesn't sound like much of a loss.  

But most implementations in fact do support an interpreter -- which 
typically runs code at anywhere from 30 to 600 times slower than when
compiled.  Thus it seems reasonable to require COMPILED-FUNCTIONP in
those implementations to be false on, say,
	(eval '#'(lambda (x) (list x)))
no matter what underlying technique is used to support interpreter closures.


-- JonL --