perm filename REENT.TXT[NEW,AIL] blob sn#408313 filedate 1979-01-08 generic text, type T, neo UTF8
Chip:

I have been playing around with SAIL and shareable segments
since our conversation yesterday.

     1. I found that the shareable runtimes that are on SYS are
        bad. Please move

             SAILOW.REL[102,160]
             SAISG9.SHR[102,160] 

        to SYS.

     2. The non-reentrant compiler which is currently on SYS:
        is (after initialization but before start
        of a compilation) 81 pages ( all lower segment).

     3. A compiler whose bulk is non-reentrant but which
        shares the runtimes with SAIL compiled programs
        is after initialization 99 pages (72 lower segment
        and 27 pages shareable upper segment).
        The total is much bigger than that in (2) because
        of the large number of runtime routines in the shared
        segment which the compiler does not use.

     4. A reentrant compiler
        with a segment which can be shared with other compilations
        but not with runtimes is  a total of 88 pages
        (32 lower segment and 56 shareable upper segment).

Based on the above, it is my opinion that alternative
3 is probably not worth it. Its
effective shareing is only 9 pages with an overhead of
having 18 pages which are never used when only a single
compilation is being performed.

Alternative (4) is probably worth using.
Its payoff comes almost immediately.
If you wish to make this the standard then
copy the files:

        SAILRE.LOW[102,160] and SAILRE.SHR[102,160]

to SYS: as files named:

        SAIL.LOW and SAIL.SHR respectively.

I have not ever used reentrant SAIL compiler before. It is
likely to be less stable than the non-reentrant form. Therefore
if you decide to make it the default, be sure to save the
old SYS:SAIL.SAV so you can roll back if necessary. I will
be back from my vacation about May 30.



To use the shareable runtime routines a user should load
SYS:SAILOW as his first file. Thus to load the sail file
FOO.REL (formed by compiling FOO.SAI) he should type:

        R LINK
        SYS:SAILOW
        FOO
        /GO

If he wants to use COMPIL then he should create a 
command file say FOO.CMD
containing:

         SYS:SAILOW.REL,FOO.SAI

Then he can execute:

         EX @FOO.CMD

and get most of the benefits of COMPIL.


		Jim Low