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

  1.  
  2. Topic 1:
  3.     liszt can now autoload macros.   If liszt encounters a symbol without
  4.     a function definition but with a macro-autoload indicator on the
  5.     property list, then the value of the indicator is a file to load which
  6.     should define the macro.
  7.  
  8.     The interpreter's undefined function handler will also look for
  9.     macro-autoload properties, thus you needn't give a symbol both an
  10.     autoload and a macro-autoload property.
  11.  
  12.     The default lisp contains macro-autoload properties for the macros
  13.     defstruct, loop and defflavor.
  14.  
  15. Topic 2:
  16.     It is now possible to define 'compiler only macros' or cmacros.
  17.     A cmacro acts like a normal macro, but will only be used by the
  18.     compiler.   A cmacro is stored on the property list of a
  19.     symbol under the indicator 'cmacro'.    Thus a function can
  20.     have a normal definition and a cmacro definition.
  21.     The macro 'defcmacro' has a syntax identical to 'defmacro' and
  22.     creates cmacros instead of macros.
  23.     For an example of the use of cmacros, see the definitions
  24.     of nthcdr and nth in /usr/lib/lisp/common2.l
  25.  
  26.  Topic 3:
  27.     If the form (foo ...) is macro expanded and the result also begins
  28.     with the symbol foo, then liszt will stop macro expanding (previously
  29.     it got into an infinite loop).
  30.     
  31.  Topic 4:
  32.     The function nth has been added to Franz.
  33.     (nth 'x_index 'l_list)
  34.     returns the nth element of l_list, where the car of the list
  35.     is accessed with (nth 0 'l_list)
  36.  
  37.     The macros (push 'g_value 'g_stack), and
  38.                (pop 'g_stack ['g_into])
  39.     have been added to franz.
  40.     typical uses
  41.       (setq foo nil)
  42.       (push 'xxx foo)
  43.       (push 123 foo)
  44.       now foo = (123 xxx)
  45.       (pop foo) returns 123
  46.       now foo = (xxx)
  47.       (pop foo yyy) returns xxx and sets yyy to xxx
  48.  
  49.       
  50.  Topic 5:
  51.     The version of Flavors written at Mit for Franz have been transported
  52.     here.  Flavors is a system for doing object oriented programming in
  53.     lisp.  The documentation for flavors in the Lisp Machine manual
  54.     from Mit.  Since Lisp Machine manuals are rather scarce around here,
  55.     perhaps we can find someone to make copies of the flavor chapter for
  56.     those interested in it.  There is a description of the unique
  57.     features of the Franz Flavors in /usr/lib/lisp/flavors.usage.
  58.     As mentioned above, the flavors code will be autoloaded
  59.     when you call 'defflavor' for the first time.
  60.     Our local flavors expert is Eric Cooper (r.ecc).
  61.  
  62.     
  63.     
  64.     
  65.  
  66.  
  67.  
  68.