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

issue SYNTACTIC-ENVIRONMENT-ACCESS



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
-------