[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
issue SYNTACTIC-ENVIRONMENT-ACCESS
- To: cl-compiler@sail.stanford.edu
- Subject: issue SYNTACTIC-ENVIRONMENT-ACCESS
- From: sandra%defun@cs.utah.edu (Sandra J Loosemore)
- Date: Sat, 18 Mar 89 10:06:16 MST
- Cc: moon@stony-brook.scrc.symbolics.com, masinter.pa@xerox.com
Let's try to reach closure on this issue so I can get another draft
circulated before the meeting. Here is a summary of what I think has
happened since the last version was mailed out.
* Standardizing remote environments at this time would probably be the
wrong thing, since their use in CLOS is being reconsidered. We should
probably discard proposals MEDIUM and LARGE and work with SMALL only
for now.
* VARIABLE-KIND should return the same second value as FUNCTION-KIND.
* Clarify that VARIABLE-TYPE is permitted to "upgrade" types.
* Change the format of the :MACRO argument to AUGMENT-ENVIRONMENT and
add a function PARSE-MACRO.
* The names of the functions VARIABLE-TYPE and VARIABLE-KIND are too
"generic" and ought to be changed.
The remaining issue is still troublesome:
* We need some way to access other kinds of declarations, particularly
INLINE/NOTINLINE, IGNORE, and OPTIMIZE.
I see three possible solutions to this:
(1) Add a DECLARATION function:
DECLARATION decl-type name &optional env [Function]
(2) Add individual accessor functions for each declaration:
VARIABLE-DECLARED-IGNORE name &optional env [Function]
FUNCTION-DECLARED-INLINE name &optional env [Function]
OPTIMIZE-LEVEL quality &optional env [Function]
(3) Merge VARIABLE-KIND, VARIABLE-TYPE, and VARIABLE-DECLARED-IGNORE
into a single function, VARIABLE-INFORMATION, that returns
four values:
- what the current proposal says VARIABLE-KIND returns.
- a local-p boolean to indicate whether the binding is local or global
- a type specifier as for VARIABLE-TYPE
- an ignore-p boolean to indicate whether the variable has been
declared IGNORE.
Similarly, FUNCTION-KIND, FUNCTION-FTYPE, and FUNCTION-DECLARED-INLINE
would be merged into FUNCTION-INFORMATION.
Add the OPTIMIZE-LEVEL function.
Personally, I like option #3 best. How about the rest of you?
-Sandra
-------