[EMAIL PROTECTED] (Harvey J. Stein) writes:

> If so, it would be nice to be able to tell the compiler that a
> particular function can be redefined, but it's always going to return
> a double-float,

This is exactly what a *global* declaration, e.g. (DECLAIM (FTYPE ...)),
is for. But,

> so don't bother boxing and unboxing the result.

The problem is not with the redefinition. There is no mutual knowledge
of the call/return protocol between callers and a callee. The function
with the declared type may be called without the caller seeing the
declaration: e.g. by (FUNCALL (READ) ...) and typing function name.
One solution to it is to have several entry points (CMUCL does it for
local functions and for global in block compilation), but this can
forbid redefiniton, because the new definition might not know the old
protocol.

-- 
Regards,
Alexey Dejneka

"Alas, the spheres of truth are less transparent than those of
illusion." -- L.E.J. Brouwer


Reply via email to