perm filename SAILUP.DOC[NET,GUE] blob sn#032735 filedate 1973-03-31 generic text, type T, neo UTF8



                      C-MU SAIL Manual Update

(Updates C-MU manual dated May, 1970 and Update of 23-AUG-71.)




     Feb. 17, 1972

A.   The  reserved words  IFNDEFINE  and IFDEFINE  have  been added.
Syntactically,  either  may appear  any  place the  word  DEFINE can
appear.  Semantically,
        IFNDEFINE       AA="<mumble>",
                        BB="<foo>",
                        CC="<garp>";
is  identical  to  the  same  construct  with  DEFINE  replacing the
IFNDEFINE if the identifier AA has no meaning, i.e., AA has not been
previously declared  or defined  and it  is not  a reserved  word or
predeclared  procedure.   If  AA  already  has  meaning,  the entire
construct has no effect.

     The similar  construct with IFDEFINE  is identical  except that
the test is reversed; i.e., the id's are (re)defined only if AA (the
first one) already has meaning, otherwise it is a no-op.

     Note  that in  both cases,  the test  for the  entire construct
depends only on the first id.

     (Both   this   addition   and   the   BIGCOMMENT!--STOPCOMMENT!
constructs were  implemented because  of a  desperate need  for some
conditional compilation facilities.   They are far from  pleasing or
complete;  however,  they  were  easy  to  implement.    Within  six
months(?), we hope to  have a new version  of SAIL which has  a much
nicer  conditional macro  facility; in  the interim,  a surprisingly
large number of things can be done with these primitives.   When the
new  SAIL  arrives,  every  attempt will  be  made  to  retain these
primitives to insure compatability.)