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

implicit blocks



    Date: Tue, 29 Dec 87 11:26:20 PST
    From: goldman@vaxa.isi.edu

    CLtL specifies that the body of a defun is implicitly surrounded  by a
    block with the same name as the defun.  As far as I can find, it makes
    no such stipulation about the bodies of named lexical functions introduced
    with FLET or LABELS, nor for macro bodies (defmacro, macrolet).

    Of the three implementations I have looked at, two do supply implicit
    blocks for FLET, LABELS, and DEFMACRO (I didn't check for macrolet),
    and one supplies an implicit block ONLY for DEFUN.  

    Has this been clarified in earlier discussions?  
    From the standpoint of transforming code, it would be desireable 
    for the implicit block to be supplied in either ALL or NONE of
    the above.  From the standpoint of utility, I would suggest ALL.

The Cleanup subcommittee of X3J13 decided in issue FLET-IMPLICIT-BLOCK
that all of these have implicit blocks.  These cleanup changes have
no "official" status yet, and an implementation that doesn't do
implicit blocks for other than DEFUN is just as "correct" as one that
does.  However, implementations should be migrating in the direction
of supplying implicit blocks for all of these.

Send mail to Masinter.pa@Xerox.COM if you want a copy of the text of
the FLET-IMPLICIT-BLOCK cleanup.