The new Bcpl compiler is totally compatible with the previous run file.  The compatibility extends to the Br file enabling comparison of output.  This version should not be confused with the new Bcpl that can be found in Rochester.

The changes are:
 unsigned compares uls, ule, uge, and ugt can be used with the /O switch
 special getframe and string code can be enabled with the /I switch
 multiple definitions of externals can be allowed with the /-E switch
 error printing can be disabled for get files with the /-G switch
  thereby enabling error addressability greater range.
 multiple source files can appear on the input line, with the restriction that
  local switch'ed modifiers can only be applied to the last.
 the addressing range of errors has been doubled
 the number of get files can now be 50
 the date printed out has been updated
 from was added as a modifier to get.
  get a,b,c from "file" reads file and forgets all names first seen therein
  Of course, a,b,c, and file are kept.  Multiples will still happen since the
  file proceesing is unaware that the new names are for naught.  The filter
  for whether the file has been read or not is currently whether all the names
  are defined, or all undefined.  If all are undefined the file is read,
  if they are all defined the file is not read, and a mix causes an error.
  Note that all the fields of a structure have to be named in the list.
  With sufficient care this feature can extend how many symbols a compilation
  can have with some attendant documentation benefits.
  (Some precautions are to not debug get files with get from, and beware that
  Bcpl is exceedingly upset by undefined structure name, another manifestation
  of an add-on.)
 the depth to which gets can nest was increased
 the get check to see if the file has already been read is caseless
  (This change is not compatible with the compiler which was modified, but
   it somehow was already included in the previous run file.)
 the number of names that can be in context is now 1024

The next few sentence fragments say a little bit more.  Compiled-in unsigned compares are nice to use and were seemingly easy for Paxton to add for OZ once he found all the places that needed to be changed.  Multiple external definitions will probably never be used again but were added to enable externals to be defined for separate parts of one file to ease splitting the parts into separate files as they overflowed overlays.  After programming in Mesa for a bit, I inadvertently put an "IF" in a file with many gets and had to find it using a binary search with the compiler printing out the first line of the file each time, so I was sufficiently motivated to make the error reporting somewhat better.  Separate compile cm files motivated the many source files to a command line change.  The get file increase in number and nesting were independently added by Paxton and me.  Once the date was found it was easy to change, so there really was no excuse for the new and the old to look the same for as long as they did.  Dictionary overflows motivated the get from morass.  Somehow the previous run file already had a caseless compare, but I couldn't find the code for it; it couldn't have been a patch?!  The increase in the number of names that can be in context was another gift from Paxton.

What follows is a somewhat esoteric catalog of the changes.  Unsigned compares were added to all the pass X definitions get files.  The modules which changed for other reasons are: BcplX,0, BcplAlto, Blex0,1,2, Bcae0,1,2, BsaeX,0,1,2,3, Btrn1,5, and Bncg2,6,7.  Note that the non X names have been changed to include an extension of bcpl

BcplX had four statics for switches added:
 SWUnsignedCompares for /O = OZ's unsigned compares,
 SWStackStrings for /I = IFS's now unused special getframe and string
 SWNoExtExts for /-E = allow multiple definitions of externals, and
 SWGetLines for /-G = do not "LINE" get files.

Bcpl0, doubled the LINE range, and added multiple source files

BcplAlto, GetFileMax increased from 25 to 50, and changed date

BlexX: added "from" and unsigned operators

Blex0: GetMax increased to 20, and added -G switch

Blex1: lower case get names, and get from

Blex2: added from after get, and added unsigned compares

Bcae0,1: added END processing for get from

Bcae2: added unsigned compares

BsaeX: DvecMax was increased from 512 to 1024

Bsae1: added END processing for get from

Bsae2: allow EXTERNAL & EXTERNAL if /-E

Bsae3: added unsigned compares

Btrn1: added (null) END processing for get from

Btrn5: added unsigned compares

Bncg2: added special getframe and string and table processing if /I,
 and added unsigned compares

Bncg6: added unsigned compares

Bncg6: added special string and table processing if /I