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

Optimization of slot access in default argument expressions



    Date: Tue, 8 Jan 91 10:51 CST
    From: lgm@iexist.att.com

    Is this difference somehow required by the ANSI Common Lisp spec, or is
    this simply a minor case that Symbolics has not yet gotten around to
    optimizing?

&AUX variables aren't even "arguments"; they're simply a shorthand for
binding local variables.  I think this is simply a missing optimization.

(defun/defmethod foo (... &aux <aux-specs>) [<doc-string>] <body>)

is defined to be equivalent to

(defun foo (...)
  [<doc-string>]
  (let* <aux-specs>
    <body>))

as long as <body> doesn't begin with any declarations (if it does, then
the declarations related to the real arguments have to be outside the
LET*, while those for the &AUX variables must be inside).

                                                barmar