[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: firstname.lastname@example.org
- Subject: implicit blocks
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Thu, 31 Dec 87 14:16 EST
- Cc: COMMON-LISP@SAIL.STANFORD.EDU
- In-reply-to: <8712291926.AA29210@vaxa.isi.edu>
Date: Tue, 29 Dec 87 11:26:20 PST
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.