perm filename SAILV8.XX0[10X,AIL] blob sn#125755 filedate 1974-10-19 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.PAGE FRAME 60 HIGH 71 WIDE
C00003 00003	.STOPTEXT CENTER
C00010 ENDMK
C⊗;
.PAGE FRAME 60 HIGH 71 WIDE
.area text line 4 to 53
.TITLE AREA FOOTING LINE 56
.TABBREAK
.CRSPACE
.AT NULL ⊂IF NOT FILLING THEN SKIP 1⊃
.INDENT 8
.DOUBLE SPACE
.MACRO STOPTEXT ⊂BEGIN NOFILL NOJUST INDENT 0 SPREAD←1; RMARG←100;⊃
.MACRO STARTTEXT ⊂END
.CONTINUE⊃
.DEVICE TTY
.macro it(x)⊂break
.skip
.once center
x
.⊃
.STOPTEXT CENTER
SAIL Changes, New Features
Compiler Version 16, Segment SAISG8

R. Taylor, J. Reiser, R. Smith

October 18, 1974

.starttext
	The new version of SAIL should present relatively few
changes and inconveniences for the user.  There are no known language
incompatibilites.  Unfortunately, it will be necessary to recompile all
 .REL files (including load modules and libraries) for use of the new
SAIL.
	The main reason for bringing up a new SAIL is to accomodate the
new debugger that John Reiser has written.  Thus, the new compiler has
features that allow the compilation to include the semantic information
about the program necessary for the debugger.  A few changes have also
been made to the runtime system to accomodate the debugger, chiefly
the change in the break table features, described below.  The debugger
itself will be available in several weeks.
	A few other changes have been made that the user may see.  These
are described below.
.it CLOSE Inhibit Bits
	The CLOSE function now has an additional optional argument
that allows the CLOSE inhibit bits to be turned on.  The second argument
is the bit pattern for the inhibition, and it is defaulted 0.  See the
UUO manual for details.  
	This feature is available only at SU-AI, and is not available in 
the TENEX version.
.it TYPEIT Array type
	The number returned by the TYPEIT procedure (which identifies
the type of the datum of its item expression argument) is now changed
for arrays.  Now it is '24 plus the scalar value of the type (e.g., INTEGER),
whereas before it was '15 plus the scalar value.
	Additional types added to TYPEIT are:  '16 for labels, '17 for
record classes.
.it Comparison of .REL Files
	Starting with version 18, the compiler emits information
into each .REL file containing the version of the compiler used.  Then,
during the SAIL initialization sequence, these versions are compared, and
a warning message is issued if necessary.  Thus, the problem of converting from one
version of the compiler to a new version is lessened.  This feature
may not work as well in the  current changeover as it will in the future.
.it SCAN Optimizations
	The SCAN function has been modified to return true substrings
instead of copies in those cases that the break table in question was
not omitting any characters.  This should be an improvement in the
efficiency of those routines.
.it BREAK Tables
	There are now 54 user-setable break tables available to the
SCAN, INPUT, TTYINL functions, as well as SETBREAK and BREAKSET.  These
tables are allocated and deallocated dynamically.
	In addition, GETBREAK now returns the value of the smallest
unallocated breaktable, and RELBREAK releases its table argument.
The implicit declarations of these new runtime routines are:
.stoptext center

INTEGER PROCEDURE GETBREAK
PROCEDURE RELBREAK(INTEGER TABLE)

.STARTTEXT
NOTE:  a breaktable is allocated by either GETBREAK, SETBREAK, or RELBREAK.
A breaktable is de-allocated (and thereby made available to GETBREAK) by
RELBREAK.  Breaktables are stored in groups of 18, so it is more efficient
to use all the tables in a given group before going to another group.  The
use of GETBREAK is particularly recommended for load-modules and the like,
so that conflicts will be minimzed.
	HACKERS:  Actually there are 18 additional system breaktables which are
reserved for
use by the SAIL runtime system.  These tables are numbers -17 through 0, and
are ordinarily not available to the user.  They will be used by the debugger
and by additional SAIL system software.
	The user can obtain access to breaktables -17 through 0 by
setting BRKPRV(USER), for example by the USERCON function.  WARNING:  absolutely
no guarantees are made to the user who accesses these breaktables.  This information
is intended for completeness only; the use of these special breaktables by the
user is not recommended.