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

Re: issue MACRO-ENVIRONMENT-EXTENT, version 1



> Proposal MACRO-ENVIRONMENT-EXTENT:INDEFINITE:
> 
> State that macro environment objects received with the &ENVIRONMENT
> argument of a macro function have indefinite extent.

That's fine for macro definitions, but this will not work for environments
containing class definitions.  The compiler needs to be able to know when
those compile-time class definitions are no longer needed so that they can
be unlinked from the class data structures.  How about a compromise that
says that environments have a dynamic extent corresponding to the
invocation of COMPILE or COMPILE-FILE, rather than the individual macro
expansion?  That would permit the compiler to clean up classes while still
letting your macro example work.

This issue has a strong relationship with issue
SYNTACTIC-ENVIRONMENT-ACCESS since it proposes extending the use of
environments in ways that would make anything other than
MACRO-ENVIRONMENT-EXTENT:DYNAMIC difficult to retro-fit to existing
implementations.