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

Re: Funcall Speed-Up

> Bill Schelter has recently improved the execution of FUNCALL for a
> special, but important, case (in AKCL Version 1.236).  There are two
> conditions that must both be met to obtain the higher speed funcall.
> First, the funcall must be of a function that has been proclaimed to
> be a function that returns a single value.  Second, the textual
> occurrence of the funcall must reveal that the funcall does not return
> multiple values by satisfying one of three conditions: (i) the value
> of the funcall is ignored, e.g., it is a nonfinal member of a progn,
> (ii) the funcall occurs as the second arg of a SETQ, or (iii) the
> funcall occurs as the second arg of a THE whose first arg is (VALUES
> T), declaring that only one value is returned.

How about (values (funcall ...)), which returns exactly one value?
I'd prefer to write that than the THE declaration.  Besides, the
THE is just a promise; the (values (funcall ...)) has to return
one value.

-- Jeff