perm filename SAIL.OPR[S,AIL]1 blob
sn#000796 filedate 1972-09-27 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00011 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00003 00002 Summary of possible Compiler and Exec configurations
00008 00003 File List
00010 00004 Compiler creation procedures
00012 00005 Creation of RUNTIM, LIBSAI
00016 00006 Creation of shared execs
00019 00007 Files required (copy or produce) for EXPOrt system.
00025 00008 Exporting Procedure
00028 00009 Documentation Aids
00029 00010 References to other documents
00030 00011 History of SAIL versions (important SAVE tapes)
00034 ENDMK
⊗;
Summary of possible Compiler and Exec configurations
I. PROCEDURES FOR CREATION AND MAINTENANCE OF STANFORD SAIL SYSTEM
A. FILE AND SWITCH CONFIGURATIONS FOR VARIOUS SYSTEMS.
1. See HEAD for Conditional assembly switch definitions, macros which
use them.
2. See SAIL for RPG files to make compilers ---
3. One Segment compiler requires that COM2SW be turned off in SAIL, and
that GOGOL and STRSER be included in the compilation
4. Two segment compiler will be loaded with SAILOW, to get routines it needs.
5. Debugging compiler must be loaded with a DDT, should have FTDEBUG on in
or above SAIL.
5a.Compiler to generate re-entrant code (/H) requires RENSW≠0 in SAIL (default)
6. See GOGOL for RPG files to make runtime routines.
7. RUNTIM.REL can be created by assembling HEAD, GOGOL, STRSER, IOSER,...
together with no special operations. This is all the runtime routines.
8. LIBSAI.REL is created by running SCISS, RENSW overriden to 0.
8a.HLBSAI.REL is created by running SCISS, RENSW defaulted to 1, renaming
LIBSAI to HLBSAI.
9. The shared runtimes are created via the following mechanism:
a. CALLIS,HEAD,LOW,FILSPC,GOGOL are used to get LOWER.REL, some fixed-location
variables, the UUO trap location, the segment-fetcher, and the
dispatch to the allocation routines. A unique second segment name (of
the form SAISGn), its device and PPN locations, are also contained therein.
b. FILSPC and TAILOR are assembled to get TAILOR.REL, a file which when
loaded provides some global variables with the names (SAISGn, etc.) which
should be used for the upper segment file and device -- also parameters
like write-protection and symbol inclusion for upper segment. This is
done in separate assembly so that these can be changed without re-
assembling the upper segment (next).
c. CALLIS,HEAD,UP,GOGOL,STRSER,IOSER are assembled to get UPPER.REL, which
refers to the things in TAILOR as Externals to get name.
d. Loading UPPER and TAILOR and running it creates SAISGn.REL (name determined)
by FILSPC/TAILOR), the sharable upper segment, by simply writing out
that part of itself (which has been phased to 400000) which is intended
to be the upper segment stuff. In addition, it jams all or part of its
symbol definitions into the SAILOW-type .REL file with the name that
FILSPC said. SAILOW contains the symbol linkages, name, device, and PPN
(where SAISGn must reside) for SAISGn. Loading SAILOW causes SAISGn to be
fetched and linked as a segment when the job is started.
10. Global model segment stuff works similarly -- the file GLB is introduced
to set the appropriate switch, modifying the definition of the LOWER and
UPPER assemblies. GLBSGn and GLBLOW are the corresponding keyed file names.
File List
B. Original Files (not created during any bootstrapping operation)
1. Compiler and Execs files
CALLIS, HEAD, GOGOL (single only), STRSER (single only).
2. Ptran input
HEL2
3. Rtran input
FOO2
4. Compiler files
DCS, WOM, DB, SAIL, PARSE, SYM, HEL2, FOO2, GEN, ARRAYS, STATS,
EXPRS, TOTAL, COMSER, LEAP, PROCSS
5. Exec files
UP, FILSPC, TAILOR, LOW, GLB, IOSER, LEPRUN, MESPRO, NWORLD
6. RPG command files
IT, THAT, RUN, SGMNT, GSGMNT
7. Bootstrap programs
PTRAN.SAI, RTRAN.SAI, MAKTAB.SAI, CMDSCN.SAI
8. Support software
EXTRACT.SAI, DATALIST.SAI, GRUMP.FAI, PROFIL.SAI
9. Export stuff
TELLEM, DDT, CREF.MAC, GETSAV.MAC
10.Other files.
BKTBL.BKT
11.Files of some relevance
MANUAL, SAIL.ON, TJ, MAKER, TJMAN, FAIL.ON, RAID.ON, MAKER-MANUAL
ARRSER,EXTEND,SRTSER,SYMSER,SCNCMD,SCNSER -- packages
12.Files to aid in export procedure
EXAM.FAI, COPY.MAC
Compiler creation procedures
C. CREATING SAIL COMPILERS
(parts 1 and 2 are automatically done by parts 3 and 4 if
necessary, but are included here for clarity.
1. Create production tables, reserved-word list for RTRAN
a. COMPILE PTRAN.SAI and RTRAN.SAI (require CMDSCN.REL) if no DMPs.
b. RU PTRAN
c. *PROD←HEL2
d. *
2. Create reserved word tables
a. RU RTRAN
b. *RESTAB←PROD,FOO2,HEL2
c. *
3. Two-segment debugging compiler
a. COMPILE @THAT
b. R LOADER
c. */Y/VSAIL<alt> (/1V for DD)
d. SAVE SAILD, or SAILII, or something reasonable.
4. Two-segment non-debugging compiler.
a. COMPILE @IT
b. R LOADER
c. */Y/SSAIL/V<alt>
d. SAVE SAIL, can also place on system.
Creation of RUNTIM, LIBSAI
D. CREATION OF SINGLE-SEGMENT, NON-LIBRARY RUNTIME ROUTINES
1. COMPILE @RUN
2. Load RUNTIM.REL with SAIL-compiled programs -- provides
all runtime routines at maximum cost.
E. CREATION OF LIBRARY OF SAIL RUNTIME ROUTINES
0a.Set RENSW to 0 in GOGOL, if making single-segment library
(LIBSAI). Otherwise, make sure the default-override is missing.
1. RU SCISS[S,AIL]
2. List of yes/no questions -- answer Y<cr> for Yes, otherwise
for No -- some may not be asked, depending:
STANDARD? Yes if want whole LIBSAI created automatically
DO HEAD? Yes if want USERCON's User Table Externals file
assembled into library (default Y in standard version).
--- HEAD must not have line numbers (FAIL barfs if so).
DO LEAP? Yes if want LEPRUN in library (default Y)
PASS 2 NOW? Yes if want to bypass assembly phase and go on
to library composition phase.
LINK TO FAIL? Yes if want to call FAIL after creating QQFAIL
command file (will assemble library entries) (default Y).
SELECT? Yes if want to let list of possible library entries
(of form SAIccc) to be presented for inclusion or exclusion.
List is located in early pages of GOGOL -- e.g.,
COMMENT ⊗ORDER LOR,LUP,SGC,COR,....⊗
LOR, LUP, SGC, ... are possible values for ccc.
(Default is SELECT all)
SPECIFY? Yes if want to type names of the for SAIccc -- only
these will be included.
3. If SELECT was chosen, each name will be typed -- answer with
Y (yes, include), N, (no, exclude), or D (done, use last answer
given for all the rest).
4. If SPECIFY was chosen, type each desired SAIccc entry, terminate
with DONE.
5. SCISS will talk for a while, go on to FAIL (if specified), and
come back (by magic) for pass 2.
6. STANDARD? it will say -- answer as above.
7. MAKE A LIBRARY? Yes (default) if want all the little .REL files
merged to LIBSAI.REL
8. DELETE INTERMEDIATE FILES? Yes to delete all but original files
and final LIBSAI.REL file -- otherwise all sorts of junk left
around.
9. SELECT?, SPECIFY? as above, although names need not necessarily
match.
10.SCISS now gets selections, deletes, copies, talks about things
as directed, finish up with or without a LIBSAI.REL.
11.If RENSW was on (default), rename LIBSAI to HLBSAI before trans-
ferring to SYS -- the re-entrant library files.
Creation of shared execs
F. CREATION OF SHARED, STANDARD (non-global model) EXECS
1. When changing the transfer vector, making major changes, or creating
special systems, change FILXXX (SAISGn), not SLOFIL (SAILOW) in FILSPC,
by incrementing n for production systems. Also change the global
equivalents in GLB.FAI.
2. Other FILSPC parameters of interest may be changed:
SGDEVC -- the device (default device for global model) in SIXBIT
(merely a definition for it)
SGPPNN -- the PPN (default for global) for the segment in SIXBIT
LOCSYM -- on if local symbols are to be transferred from UPPER to
SAILWn.
NOPROT -- on if the upper segment is to be left unprotected
(Stanford non-global only) -- these latter two switches are likely
set together.
3. JOBVER in GOGOL should be <'SGn',,SAIL version> for grins. The production
lower segment name should be SYS:SAILOW, or the LOADER should be
told about the change. (soon RPG will do the /Y, not LOADER--then
LOADER can be real ignorant).
4. LOA @SGMNT (@GSGMNT), see GOGOL. This assembles TAILOR, UPPER, and
LOWER. It loads TAILOR and UPPER. Changes to FILSPC (GLB) will
cause only TAILOR and LOWER to be reassembled.
5. Start the job. Created as if from nowhere will be SAISGn.REL, and SAILOW.REL
as specified in FILSPC. They go together, in that if SAILOW properly
specified the device and PPN, etc. when a job containing it is started,
the right segment will come up.
6. I suggest a SAILWT and SAISGT on [S,AIL] with all debugging aids deployed.
7. All this goes more or less symmetrically for GLBSGn, GLBLOW (try to keep
versions synched).
Files required (copy or produce) for EXPOrt system.
II. CREATING AN EXPORT SYSTEM
A. Required files for EXPO SAIL (transfer to T,AIL, modified as specified)
1. To get working SAIL abroad:
TELLEM[S,AIL]
NEWMAN[S,AIL] (sometimes) (list of changes since before)
LOADER.REL[T,AIL] -- from CSP,SYS DEC v52 modified, although any
v52 with SAILSW and FAILSW on will work if prodded (try to delete need)
SAIL.REL[T,AIL] (assembled from IFN'd files described below.
DDT.REL[SAIL] hopefully DEC latest modified (soon)
LIBSAI.REL[T,AIL] and EXPO-ized library (with HEAD), created by SCISS
If MTA used for transmission:
GETSAV.MAC[T,AIL] (paper tape and hard copy) -- retrieves SAVE.SAV as
first magtape file (to DSK)
COPY.MAC (paper tape and hard copy, to people who will distribute system
only -- DECUS especially) -- copies SAIL system tape→tape.
SAVE.SAV[CSP,SYS]* file restorer.
(soon will use DAEBOO and DAEMON, probably).
2. For subsequent modification transmission
All SOUP.3 files until DEC does it, although if user prefers, SOUP.2A
should work (we'll leave line numbers out of distribution files).
3. To modify compiler or Execs.
a. Used by SAIL and RUNTIM
HEAD[IFN←S,AIL]*
GOGOL[IFN←SAIL]*
STRSER[IFN←SAIL]
b. SAIL only
SAIL[IFN etc.]*
PARSE[IFN]
HEL2[S,AIL]*
FOO2[S,AIL]* (CLRBUF excised in version sent to DECUS)
PROD[T,AIL] created by PTRAN (possibly screwed up in DECUS version).
PROD.QQQ[T,AIL] created by PTRAN
RESTAB[T,AIL] created by RTRAN
SYM[IFN]
GEN[IFN]
ARRAY[IFN]
EXPRS[IFN]
STATS[IFN]
LEAP[IFN]
TOTAL[IFN]
PROCSS[IFN]
COMSER[IFN]
c. Execs only
UP.FAI[IFN] (segment-tailoring file)
LOW.FAI[IFN] (low part tailoring file)
TAILOR[IFN] (FILSPC parameterizes it -- used to create final segments)
FILSPC[IFN] (chooses names and features of segments)
IOSER [IFN]
LEPRUN[IFN] (possibly screwed up in DECUS version).
NWORLD[IFN]
ON, probably
d. Used by PTRAN, RTRAN
HEL2[S,AIL]*
FOO2[S,AIL]*
e. Required Software support (in addition to LOADER and DDT above)
FAIL.REL[T,AIL] from CSP,SYS
PTRAN.SAI[S,AIL]
RTRAN.SAI[S,AIL]
CMDSCN.SAI[S,AIL]*
MAKTAB.SAI[S,AIL] (makes 1OPS1.OPS)
4. Extra files to complete SAIL Features
1OPS1.OPS (created by MAKTAB -- transfer to SYS for START_CODE)
BKTBL.BKT[1,3] parameter file for STDBRK
5. Optional helpful files
SAVE[CSP,SYS]* magtape file program (soon to be DAEMON)
LOADER.052[CSP,SYS]* suitably diddled -- any v52 will do
FAIL[CSP,SYS]*
DDT[S,AIL]
CREF.MAC[S,AIL]
SCISS.SAI[S,AIL]* makes LIBSAI.REL when run, uses CCL
PROFIL.SAI, User program to list KOUNTER files.
SCNSER.SAI, SCNCMD.SAI -- REQUIREd by PROFIL.
EXTRACT.SAI[S,AIL] removes interesting stuff from SAIL CREF
DATALIST.SAI[S,AIL] makes sense out of it.
SAIL.ON, FAIL.ON[CSP,SYS] -- final manuals.
EXAM.FAI[S,AIL] -- EX on [T,AIL] to get list of files with
line numbers -- don't send out
IFN.SAI[S,AIL] -- don't send out -- pre-conditionally assembles
6. Files not necessary to most people, provided after EOT as separate list,
may be ignored by most people.
MAKER.SAI, TJ.SAI, TJMAN, MAKER.MAN, MANUAL.MAK, TJ.MAN
ARRSER,EXTEND,SRTSER,SYMSER,SCNCMD,SCNSER -- FIGURE 'EM OUT
* modifications:
SAVE -- SAUND←0
HEL2 -- turn off global switch
FOO2 -- delete Stanford-only routines
CMDSCN--turn off STANSW
FAIL -- turn off STANSW
HEAD, GOGOL, SAIL -- change conditional switches if you
don't like the defaults (two-segment, ftdebug, etc.)
LOADER--set appropriate switches (.052 OK as defaulted if SAILSW
and FAILSW are on).
SCISS -- STANSW off.
Exporting Procedure
B. Exporting Procedure (on T,AIL)
1. Create IFN file, containing all necessary IFN transfer commands --
put on [T,AIL] as IFN or something.
2. Copy QQIFN.RPG←IFN. (RPG file gets deleted occasionally)
3. Make an IFN.REL from IFN.SAI[S,AIL]; start it at RPG location.
4. If errors occur, edit IFN to delete already assembled things, go
back to step 2.
5. Rename all .UPD files to null ext. files, (except LOW.FAI, UP.FAI)
6. Copy over all additional files needed for SAIL system test; make
mods as given above.
7. Run PTRAN and RTRAN to create PROD, etc.
8. Run FAIL (glom IT from somewhere, modify, create DB) to make an
FTDEBUG-NOCOM2-type SAIL -- load with modified DDT. (block structure).
9. Patch CALLI TMPCOR (find it by running to ILLUUO) to JFCL, save as SAIL.
10. See if it will compile something, iterate till it will.
11. Edit GOGOL, insert ↓RENSW←←0 before STSW(RENSW,1)
12. Modify SCISS as given, run it to get LIBSAI.
13. Edit GOGOL, remove ↓RENSW setting.
14. Make SAILOW, SAISGn, etc. as described on page 1.
15. Copy and modify as shown the remaining files as described above.
16. EX EXAM[S,AIL] to check for `T' and line-numbered files, remove
the directories and line numbers, delete spurious files.
17. Copy SAVE.SAV, then all files to tape, including manuals and stuff
from elsewhere.
18. After EOT, copy in the optional files, most of which must be loaded
from a previous tape.
19. Send hard-copy of TELLEM, NEWMAN, GETSAV, (COPY if DECUS), paper-tape
of GETSAV (and COPY), a manual if necessary, and the tape.
Documentation Aids
III. DATALIST AND EXTRACT DOCUMENTATION PROGRAMS
1. ADD LINE #s TO ALL FILES, FIX UP "BEND RESTAB" IN RESTAB
2. COM /CREF /COM @THAT (with (xlr) in FAIL string)
3. R CREF
4. *DSK:SAIL.CRF←SAIL.LST
5. *DSK:CREFIL←SAIL.LST/S
6. *↑C
7. EX EXTRACT[S,AIL]
8. EX DATALIST
9. P
10.RENAME PRTCRF=CREFIL or DEL CREFIL
11. Examine DIRECT -- if it's OK, delete everything else
and list it -- otherwise back up as necessary.
References to other documents
For Conditional assembly switches and their parameter files,
see HEAD
For Command files for various and sundry above procedures,
see SAIL (early pages) and GOGOL (early pages).
For History of implementations (and bugs they fixed) see FILSPC,
page 2.
For Export Users' installation instructions, see TELLEM.
For New Features as told to Users, see NEWMAN
For brief descriptions of changes which are or should soon be in
NEWMAN, see DOCS.UPD (usually more current and concise than NEWMAN).
History of SAIL versions (important SAVE tapes)
A. Tape labeled A
9-7-71
556 bpi =128 word records, 7-track SAVE format
IFN'ed EXPORT version
2 logical tapes, as per this and the TELLEM document
This version will form the base files for DECUS distribution of
SAIL. I will really try not to
allow subsequent featueres and fixes to weaken my resolve to make this
the base set unless the bugs are blatent. This set of files was also
send to CASE (Alan Rosenfeld) and Western Electric in Princeton.
B. Tape labeled B
9-7-71
556 bpi =128 word records, 7-track SAVE format
logical tape #1 -- COMPLETE S,AIL
logical tape #2 -- FAIL, RAID, DDT, LOADER, TJ, MAKER, MANUAL, packages, etc.
This version (see A) will form my base set for future mods for R.
Sproull, Suppyes, Erman, etc. If changes are made, I'll send SOUP files
along with the initial distribution.
D. Tape labelled D (BLISS files on C)
11-3-71
556 bpi =128 word records, 7-track SAVE format
IFN'ed EXPORT version
2 logical tapes, as per this and the TELLEM document
This is identical to (A) above. It was written because tape A has
data errors, and because PROFIL, SCNSER, and SCNCMD were on logical tape
2 instead of 1. Otherwise, not a bit is different (although it should be,
since %SIZES is SIZES in SAIL -- bug to be fixed next SOUP.
F. 2-15-72 [S,AIL] DAEMON FORMAT
[S,AIL] to date. These files represent a probably
non-working set of files, some stage of SAIL development.
Some, but not many of the changes since last release are
contained in them. This area was saved to supplement
the next group. Any file not found there should be con-
sidered current in this area.
2-15-72 [AIL,DCS] DAEMON FORMAT
The "pre-cut" version of SAIL. To my knowledge, it works
correctly, although many changes were made. I've tested it
on many programs. This version represents many changes
for fixes and features not considered major. It does not
include the work of RHT, HJS, JRL. It was created to
provide a base for sending updates to other people, before
the world collapses. Hopefully, no corrections will have
to be added to it (it should be good enough). This is
known to assemble at least adequate copies of the compiler,
and all types of runtimes. If the file you want doesn't
exist here, look on the [S,AIL] dump above.