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

Issue MACRO-ENVIRONMENT-EXTENT



    Date: Sun 19 Feb 89 15:54:36-PST
    From: Kim A. Barrett <IIM%ECLA@ECLC.USC.EDU>

    The extent of macro environment objects is related to EVAL-WHEN because macro
    expanders may wish to return forms which contain environments as quoted
    constants.  

I am convinced that this should be ruled out, and that CLOS made a mistake
here.  (Incidentally the part of CLOS that says this is in chapter 3, the
accepted part of CLOS does not say anything about the expansion of the
macros is.)

    ....
    Requiring environments to have indefinite extent has
    problems for CLOS because at compile-time it wants to create remote metaobjects
    and link them into the right places, but then flush those links when the
    compilation is over.  

This depends on whether you think the environment actually contains the
table that relates names to objects, or just contains a boolean flag
that tells functions such as FIND-CLASS which of two tables to look in.
Under the latter model, nothing about the environment prevents the
COMPILE-FILE table from being reset at any time.  This is one reason
why I think the second model is right.

As far as MACRO-ENVIRONMENT-EXTENT itself goes, I am convinced it should
be dynamic extent.  I'm also convinced that the decision on this issue
does not affect CLOS.