[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: environment arguments and compiler contexts and ...
- To: sandra%defun@CS.UTAH.EDU
- Subject: Re: environment arguments and compiler contexts and ...
- From: Kim A. Barrett <IIM@ECLA.USC.EDU>
- Date: Sun 1 Jan 89 12:28:04-PST
- Cc: cl-compiler@SAIL.STANFORD.EDU, IIM@ECLA.USC.EDU
- In-reply-to: <8901011820.AA04701@defun.utah.edu>
> From: email@example.com (Sandra J Loosemore)
> Date: Sun, 1 Jan 89 11:20:14 MST
> Subject: Re: environment arguments and compiler contexts and ...
> To me it seems like that if we're going to place additional requirements
> about what must be stored in environments, we must also tighten up the
> notion of what an environment object is. ... I'm not sure that we have
> enough practical experience yet to try to standardize the use of
> environments as something like locales in T.
Yet if we're going to admit the possibility of portable program analyzers, and
want to support them in any reasonable way, I think we are forced to consider
standardizing environments in some fashion (see below). This is why I think
the SYNTACTIC-ENVIRONMENT-ACCESS issue is so important.
> If these defining macros are allowed to store the compile-time definitions
> in somewhere other than the normal place ... user program analyzers have no
> way to access this information. ... I'd have to disagree about that
> requiring program analyzers to know about defining macros being "bogus",
The reason I say it's bogus is that (without SYNTACTIC-ENVIRONMENT-ACCESS or
some such thing), the user written program has no way to put the compile-time
definitions in a place where the implementation-supplied functions will find
them, other than by side-effecting the running system. For example, if my
program analyzer encounters a defmacro, how am I supposed to write code to
tell macro-function and macroexpand where to find the definition I am going
to record. Writing my own varient versions of these won't work unless I
actually clobber the implementation's version with mine, since there will be
code that will call the built in function because it never heard about my
analyzer (and shouldn't have needed to). And even that horrible kludge
doesn't really work, since there could reasonably be multiple different
program analyzers, all with their own ideas about where to look things up,
(I can't go on, its too terrible to even contemplate).