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


    Date: Thu, 16 Mar 89 12:31 EST
    From: Barry Margolin <barmar@FAFNIR.THINK.COM>

    I'll just reiterate something I said at one of the meetings.  One
    portable use I can think of for the COMPILED-FUNCTION type is as a
    declaration to allow compiler optimization.  If a function knows (or
    requires) that a parameter is a compiled function it can declare that
    and the implementation may be able to optimize the FUNCALL better.

But as someone said the last time this suggestion was brought up, if
there is no portable meaning of the COMPILED-FUNCTION type and no
portable way to create an object of that type, no useful correct program
can contain this declaration.

    Another thing I just thought of is something like:

	    (when (typep f '(and function (not compiled-function)))
	      (setq f (compile nil f)))

    This doesn't actually work because COMPILE isn't required to accept
    lexical closures

You just glimpsed the tip of the iceberg.