New features in CGOL 74. Please report any bugs to MJF;. [1] The lexical syntax has been cleaned up a little. An altmode may be included in a character string or in a comment by preceeding it with the escape character "?". An unprotected altmode now causes an error. To put a quote character (") into a character string, it must be doubled. [2] CGOLREAD now takes an argument which is treated just like the argument to READ. Namely, if CGOLREAD encounters an end-of-file as the first thing upon being called, the argument is returned; otherwise it is assumed that there follows a complete CGOL expression followed by the input terminator (an altmode or dollar). If not, an error is reported. If the argument is NIL, then initial end-of-files are passed over. Sometime in the future, the argument may become optional, but for now it is required. [3] The necessary changes for compatibility with [2] have been made in MAKLISP. [4] A new bracketing operator "OCT" allows the reading of a portion of CGOL text with IBASE=8 so numbers are read in octal (unless followed by a dot). The following text MUST be enclosed in parentheses. E.g. oct(12) $ prints 10., and oct(12+14) prints 22. [5] Tokens may now be composed of multiple characters. NEWTOK "foo" defines the string foo to be a token. It may then be used like any other token, e.g. appear in infix, prefix, and define statements, be used as a variable, etc. There are two points of caution. (i) The only characters which may appear as the FIRST character of such a token are special characters other than quote ("), percent (%), exclamation (!), dollar, altmode, and question mark (?). (ii) Every prefix of a multiple character token also becomes a token. Thus, defining NEWTOK "*-*" causes 2*-3 to parse incorrectly. Of course, 2* -3 will still work all right. [6] New bit-vector operators have been defined using the multiple character token feature described above. They are: .N. - complement; .A. - logical and; .V. - logical or; .X. - exclusive or; .^. - left shift. [7] The current version of CGOL may be fasloaded from COM: CGOL FASL. Two other ways of invoking it are: (i) Type (CGOL) or (CGOLREAD) at LISP (they have autoload properties); or (ii) Type :L CGOL; when you start your LISP.