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

Re: [Gall: Bug Report]



    Date:  28 March 1985 16:56 est
    From:  Daniel L. Weinreb <DLW at SCRC-STONY-BROOK>
    Subject:  [Gall: Bug Report]

        Date: Wed, 27 Mar 85 20:09 EST
        From: David A. Moon <Moon@SCRC-STONY-BROOK.ARPA>
        were EVAL-WHEN permitted inside a function body (it is not; see p.66).
    
        ...
    
        On p.66 it says that DEFVAR is not allowed elsewhere than top-level.
    
    Are we reading the same page 66?  Mine says "It is not illegal to use
    these forms at other than top level, but whether it is meaningful to do
    so depends on context."  To my ears, this is sort of like saying
    that integers can be of any precision, but after they get larger
    than the fixnum limit, their behavior depends on context.
    
    Also, note the wording in the description of DEFUN on page 67: "Because
    DEFUN forms normally appear at top level, this is normally the null
    lexical environment."  This wording strongly suggests that DEFUN might
    sometimes not be at top level, and the environment is not necessarily
    always null.  After all, if DEFUN were only allowed at top-level, why
    bother with the "normally" qualifiers?  But you never find out anything
    further.
    
    I'm not advocating either side right at the moment; my point is that the
    manual is ambiguous (one might even say "coy") on this subject.
    

Hmm! I thought ALL integers were infinitely precise.

As to defuns at other that top level, on pg. 67 it says

    Evaluating a defun form causes the symbol NAME to be a global
    name for the function specified by the
    lambda-expression...DEFINED IN THE LEXICAL ENVIRONMENT IN
    WHICH THE defun WAS EXECUTED.

I take this to mean that the CLRM specifically allows and defines
the correct semantics for non-top-level use of DEFUN.

I think pg. 66 is what needs cleaning up (i.e., it should
enumerate the correct uses of `Top-Level' forms).  "Depends on
context" is equivalent to "is undefined" in my book.