[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
**DRAFT** issue COMPILED-FUNCTION-REQUIREMENTS, version 2
- To: eb@bhopal
- Subject: **DRAFT** issue COMPILED-FUNCTION-REQUIREMENTS, version 2
- From: Jon L White <jonl@lucid.com>
- Date: Thu, 12 Jan 89 03:20:41 PST
- Cc: barmar@Think.COM, cl-compiler@sail.stanford.edu
- In-reply-to: Eric Benson's message of Wed, 11 Jan 89 08:45:06 pst <8901111645.AA01223@blacksox>
re: ... but there should be no real obstacle to making:
(FUNCALL (THE COMPILED-FUNCTION x) ...)
turn into
(FUNCALL-INTERNAL x ...)
at least in low safety modes.
Not quite. Lucid's optimization is for the type PROCEDURE, which is
used for both interpreted and compiled functions. ...
This ought to work, because COMPILED-FUNCTION is a subtype of
PROCEDURE. [If it doesn't, then we have YetAnotherSubtypepBug!]
True, we should also be able to optimize a form like:
(FUNCALL (THE INTERPRETED-FUNCTION x) ...)
if there were such a type, since "interpreted" functions are just
procedures that "trampoline" back in to the interpreter.
Incidentally, VAX/NIL did this trick too back in 1979; I'm not at all
sure that it was the first to do so. Anyone know of an earlier Lisp
that *always* had something instantly FUNCALLable in the function cell
-- either to an undefined trap routine, or to a trampoline back into
APPLY?
-- JonL --