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

User-Visible Declarations and Proclamations

   Because of all the interest in the Maps, I've rewritten Dan Corkill's
 original code to handle sequences as well as lists (as well as other changes).
 The code is now available (I'm sending it out via Netmail), and Dan
 should have a paper on the Maps finished up real soon now.  

 Since the code now works on both sequences and lists, it must test
 at run-time what kind of argument it has (similiar to the MAP-INTO code).
 This could be avoided if the type was declared to be a list or vector.

 I would like to solicit discussion on the possibility of providing one
 or more functions or variables in Common Lisp to provide information 
 about any declarations or proclaimations that are in effect.   

 Previous mail by a number of people has indicated a desire to be able to
 determine whether a variable has been proclaimed special (e.g. DEFVAR).
 This is another example of the general problem.

 For type declarations, something like (DECLARED-RESULT-TYPE Form) --> Type  
 would allow macro-expanders to possibly generate much more efficient code.  
 I imagine all systems with a compiler have this kind of a function in one
 form or another.  A system could always just return T.

 What about defining the global variables *speed*, *safety*, and
 *compiler-speed* to be bound to their proclaimed values?

 Another possibility is to have one general function that takes as arguments
 what kind of information is requested.

 - Kelly Murray
   University of Massachusetts