perm filename SIMPLE.PUB[10X,AIL] blob sn#429848 filedate 1979-04-07 generic text, type T, neo UTF8
.MEMO
.compact;
.STOPTEXT CENTER
TENEX/TOPS20 SAIL SIMPLIFIED

Robert Smith
Department of Computer Science
Rutgers University


April 1, 1978

Revised, 19-Mar-79, by C. Hedrick
.STARTTEXT
	This memo describes how to put up a version of TENEX SAIL
on either a TENEX (version 31 or later) or TOPS20 (version 3) system.  
As of March, 1979, a few modifications had been added to TENEX
SAIL to facilitate its use on TOPS20 version 3.  These changes 
are described below.
        The complete assembly of TENEX/TOPS20 SAIL is described in TELLEM, the
SAIL implementor's guide.  The sources for all SAIL systems are kept at
SU-AI and maintained there, so  the sources can be obtained  from there
via the ARPA NET. This distribution includes those sources needed to
make the tops-20 version of SAIL.

        Fortunately, it should not  be necessary to reassemble  SAIL in
order to get a working TENEX SAIL system up on a standard TENEX  (KI or
KA 10) system running 1.31 or later, or TOPS20 (KL processor) running
version 3 of TOPS20 or later.  A current, standard TENEX/TOPS20 version
of  SAIL will  be kept  at site  Rutgers on  directory XSAIL,  and is
available from there via FTP in paged transfer mode.  File
RUTGERS <XSAIL>SIMPLE-SAIL.RUNFIL contains a runfile that can be
used to perform the basic parts of the operations that are described
below, so the easiest thing to do is to execute that runfil.
This distribution contains all of the files mentioned below.
The .RUNFIL is not included, since it is assumed that transfers
over the ARPAnet are not relevant to sites receiving this distribution.

        FILES FOR THE BASIC COMPILER.   Put  the  following  on  
directory  <SAIL>.   The SAIL
system,  like  the  LISP  system, assumes  that  you  have  a dedicated
directory.  If you are running Tops-20, you should define a system logical device
SAI: as PS:<SAIL>.  Or course if you really wanted to, you could
define SAI: as <SUBSYS> and get along without a separate directory,
but we do not recommend this.  To define SAI:, insert the DEFINE
command into <SYSTEM>3-CONFIG.CMD.  Should you be running Tenex,
logical devices are not used, so all references are to <SAIL>
directly.

.STOPTEXT

T-6-SAISG8.EXE          ;runtime segment (.SAV if on Tenex)
			;if you get this through a Tops-10 site, this
			;file will be called SAISG8.EXE, because of
			;the 6-character limit.
HLBSA8.REL              ;"library"
LIBSA8.REL              ;"library"
3OPS3.OPS               ;TENEX opcode table, PDP10 instructions,
                        ;jsyses
BKTBL.BKT               ;default breaktable for STDBRK function
GOGTAB.DEF		;user table definitions file

.STARTTEXT
        Put the following files on some directory in SYS: (<SUBSYS>
on Tenex).  These files can
live anywhere, but the most  natural place is SYS:.  (You  may have
to be a wheel to put them there.)

.stoptext group
		SYS:

SAIL.EXE                ;compiler
			;on Tenex make this have name "SAIL.SAV"
LOWTSA.REL              ;linkage to runtime system

.starttext
	LOADING SAIL programs.  Tops-20 SAIL will automatically
load with LINK if you use the /G switch.  There should be no
problem with recent DEC versions of LINK.  Some Tenex sites
prefer to use LOADER, because their versions of LINK10 are out
of date and do not support SAIL properly.  
If you use LOADER,
you may find that you must reassemble it with an increase in the
assembly parameter RELLEN (the number of REQUIREd files).  This
is especially true if you use BAIL.  If you use LINK, note that
SAIL uses the old format JOBDAT symbols (e.g., JOBSA instead of .JBSA).
There is an assembly switch in LINK for this.  
However, our normal assembly procedure includes appending JOBDAT.REL
to LOWTSA.REL.  Since this copy of JOBDAT.REL contains the old format symbols
you should have no problem.  Sites using a version of LINK with the
old symbols need not append JOBDAT to LOWTSA.
	LINKAGE TO THE EXEC.  The standard EXEC distributed by DEC
for Tops-20 understands about the SAIL compiler.  Thus you should be
able to use EXECUTE and COMPILE commands.  However at the moment the
DEBUG command will not work, since it will attempt to load SDDT.REL.
We suggest instead using LOAD followed by DDT to debug a SAIL program
with DDT.  Later releases will include appropriate EXEC patches to
invoke BAIL with the DEBUG command.
If you attempt to compile a program from a different directory
than your connected directory, this will fail.  The DEC EXEC will
pass a Tops-10 PPN (!!!!!), while SAIL expects a directory name.
These problems can be fixed with simple patches to the EXEC, if you
are a source site.
        NEW OPCODE TABLE.   You can make  a new opcode  table 3OPS3.OPS
using the  program MAKTAB.TNX.  This  program reads your  MONSYM.MAC 
(STENEX.MAC or .FAI on Tenex), file and writes  out a new 3OPS3.OPS, including  your jsyses
into the PDP10(KA) instruction set.  To do this,

.stoptext group;

@SAIL                   ;use new compiler
  TENEX SAIL etc
*MAKTAB.TNX
                        ;various messages about compilation
*α↑C
@LINK
*SYS:LOWTSA,DSK:MAKTAB/G
                        ;loader exits
@START
INPUT FILE FOR JSYS'ES (STENEX.FAI)  *MONSYM.MAC

                        ;writes out new opcode table

.starttext
        The 3OPS3.OPS file supplied has the JSYSes available  at SUMEX.
It will therefore work, but is not optimal.
	INSTALLING BAIL.  The following files should be put on 
directory <SAIL> in order to have the BAIL debugging system available.
.stoptext GROUP;

BAICLC.REL,SM1
BAIIO1.REL,SM1
BAIIO2.REL,SM1
BAIMSC.REL,SM1
BAIPRC.REL,SM1
BAISM1.REL
BAIL.SAI
BAIPD8.SAI,SM1

.starttext
If you are a Tenex site, you will have to do some reassembly:
This is because certain parts of BAIL have assembly-time conditionals,
and because BAIL and BAIPD8 include require statements for which
the compiler must produce PPN's appropriate for your particular
system.  DO NOT ATTEMPT TO USE BAI*.REL FROM ANOTHER SITE.  (The .SM1
files are transportable.)
There is a file TENEX.RUN which is supposedly a run file to do what
is needed.  Slight modifications may be needed for your site, depending
upon what loader you use, etc.

        ADDITIONAL FILES.   Several additional  files are  on directory
<XSAIL>.  These include:
.stoptext

PROFIL.SAI              ;the execution counter system
PROFIL.DOC              ;simple description of above -- see
                        ;SAIL MANUAL by Kurt Van Lehn for a
                        ;description

.starttext
        CURRENT STATE.  At present, there is no new development
of the SAIL language, and issues of maintenance have become
unclear.  In order to support current users, and in order to
make available to TOPS20 users the most complete ALGOL-like language
for use in the TENEX/TOPS20 environment, we are undertaking very
limited maintenance specifically for TENEX and TOPS20 problems.  
	The file SAIL.DOC, included with this distribution,
will indicate the nature of the changes made for Tops-20.
The same code (compiler, object code, and runtime
system) now runs under both TENEX and TOPS20 version 3.
	It is our intention to support TENEX/TOPS20 SAIL to the
extent needed to keep the system from falling completely in its tracks.
At present, we have very limited resources for doing this.  I would
appreciate your reporting any questions/problems to HEDRICK@RUTGERS.  
Suggestions for improvements
will also be appreciated but will, at least for now, be
given low priority.  We would like a list of users, 
so please send us your names.