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

Macros -> declarations



I would be not at all unhappy if this feature were to go away.
I agree that Scott's assessment that it is unlikely that any
existing code (outside of diagnostic tests for this very feature)
would be harmed.

I am persuaded not at all by the argument that it is hard to implement.
I am mildly swayed by the efficiency considerations for the interpreter.
The convincing point to me, however, is that the facility is likely
to confuse macro-writers (who do, indeed, frequently find it necessary
to find the division point between declarations/documentation and body).

As a proposal separate from the question of eliminating the expansion
of macros into declarations, I suggest the following primitive
for consideration:

PARSE-BODY list

The list is treated as a body (a list of forms) that may have declarations
and a documentation string at its head.

Three values are returned.  The first is some tail of the list,
the executable part of the body.  The second value is a list
of declarations (lists whose car is DECLARE) at the head of the body.
The third value is the documentation string, or NIL if there was
no documentation string.

--Guy