home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / usr.bin / lisp / lispnews / text0011.txt < prev    next >
Encoding:
Text File  |  1985-11-10  |  1.1 KB  |  36 lines

  1.  
  2.  Local declarations are now supported.  You can say:
  3. (defun foo (a b)
  4.    (declare (special a))
  5.    ... body ...)
  6.  
  7. and the special declaration for 'a' will affect the body of function
  8. foo only.  The 'a' which is an argument to foo will also be special
  9. in this case.    Declarations may be 
  10.  1) at the top level, not within a function body.
  11.  2) at the beginning of a  'lambda' body.
  12.  3) at the beginning of a 'prog' body
  13.  4) at the beginning of a 'do' body.
  14.  
  15. 'the beginning' means either the first, second or third form in the body.
  16. When the compiler is searching for declarations, it will not macroexpand.
  17.  
  18.  
  19.  Fixnum declarations now have meaning.  If you do
  20.     (declare (fixnum i j))
  21. then
  22.     (greaterp i  j)  will be converted to (>& i j)
  23.  
  24.  The declare function is now defined in the compiler.  Previously,
  25. the only way to declare something was for the compiler to 'compile'
  26. the declaration form.  Now, if you load or fasl in a file with
  27. a declare statement in it, the declare statement will have the
  28. proper effect in the compiler.
  29.  
  30.  
  31.  (function (lambda () ...)), (function (nlambda () ...)) and
  32.  (function (lexpr () ...))  are all supported.
  33.  
  34.  
  35.  
  36.