.# Software Tools Subsystem Newsletter template and macros
.#
.# ar --- make new article entry in text and in table of contents
.# Usage: .ar <article title>
.#
.de ar
.ne 10
.sp 5
.ce
.bf
@[1]
.sp 2
.dv 1
@[1]\@[tcpn]
.dv
.en ar
.#
.# Start of newsletter
.#
.lm 1
.rm 75
.po +5
.he 'Software Tools Subsystem Newsletter''November 24, 1982'
.fo //- # -//
.#
.#
.bp 1
.nh
.#
.# articles start here
.#
.##################################################################
.ar "Hello World"
Greetings to our old customers, and welcome aboard to our new ones!
In case you may have forgotten (or never knew), this newsletter
is published irregularly (at least so far) to keep you informed
about items of interest to all Software Tools users everywhere, and to
Georgia Tech SWT users in particular.
.sp
This issue describes some of the problems encountered
with the Version 8 release of SWT, fixes for those problems, what you
can expect from the next releases, and information of general
interest.
.sp
If you have any questions or comments on the format or contents of
this newsletter, we would appreciate hearing from you.
.sp
.tl ///Terry Countryman/
.tl ///Peter Wan/
.ar "Change in Personnel"
The administrative personnel on the SWT project have changed.
Jeanette Myers and Sharon McDonell have also joined some of our
previous staff members in the private sector; we wish them well
in their new jobs.  Because of this and other factors,
the following is the new project organization.  Please
note changes to phone numbers; these new numbers are the reason that
reaching us has been so difficult.
.sp
.nf
.in +8
General Information and Licensing:
.in +3
Peter Wan         (404) 894-3658
Nancy Pinion      (404) 894-3187
Philip H. Enslow  (404) 894-3187  (Project Director)
.in -3
.sp
Technical Information and Maintenance Support:
.in +3
Terry Countryman  (404) 894-2746  (phone might change)
Peter Wan         (404) 894-3658
.in -3
.in -8
.fi
.ar "Problems with the Release"
Several of you have noticed and pointed out to us some problems
with the version 8 release of the Subsystem.  This section
identifies and addresses the remedies for them.
.sp
In the file "=template=", the template "GaTech" should have the
value "no".  This causes minor problems  because
some of the programs assume you are running on a Georgia Tech-modified
Primos.  Also in this file, the comment describing the template
"cldata" incorrectly indicated the versions of Primos which were
valid for certain values; "cldata" should have the value "6002[bl]4" for
Primos 18.0, 18.1, and 18.2 versions and should have the value
"6002[bl]6" for Primos 18.3 and above.
.sp
The directory "=src=/lib/swt/src" is empty on the release tape.  The
file "=src=/lib/swt/src.a" contains the Subsystem library source in
archive format, and the library "build" procedure knows to extract
files from this archive if they are not in the library source
directory.  If the release tape is loaded on top of a previous version of
the
Subsystem, the old source will be left in the source directory.  A
subsequent library rebuild will utilize the old source and produce
unpredictable (i.e., bad)
results.  If you have run into problems rebuilding the library, you
should make sure that all source not modified by you is removed from
that directory before loading the release tape onto the system.
Optimally, the new Subsystem should be loaded onto a fresh partition,
as directed by the [ul Subsystem Manager's Guide].
.ar "Shell Difference Between Versions"
The shell in version 8 of the Subsystem automatically cleans up
the Subsystem and Primos file descriptor tables by closing files
which a command itself opens up.
This was done to prevent programs which terminated
abnormally from tying up available descriptors for temporary files,
etc.  However, as a side effect of this action, some of you have
had trouble with programs written to run under Primos and which
used externally opened files (via the Primos OPEN command); these
files are closed before you can load and run the program which would
have used them!  To get around this for the time being, you should
open and run your program in Primos, and re-enter the Subsystem
after the program has completed.
(You may also disable the library routine 'cof$', but this will 
certainly cause other programs to leave file units open!)
We intend to resolve this problem by providing a library routine
that, when called, causes the file-cleanup to be bypassed
when the program exits.  The 'x' command will also have a
command-line option to bypass the cleanup.
.ar "OAS Library Conflicts"
Those of you who use both the Subsystem and Prime's Office Automation
System (OAS) on the same machine have run into a name-conflict problem
between the
respective shared libraries; unless resolved, this means that you
can only
use one of these packages at a time.  The solution to this is
rather involved, so you should contact us directly for the fix if
you have run into this problem and have not yet resolved it.
.ar "SEG Changes"
At the time that version 8 was released, 'swtseg' had not been
updated since SEG version 17.3.  At Primos 18.3, SEG was changed
to automatically include the SPL library (SPLLIB).  Several of you
have noticed this when Pascal programs would not load correctly
in Primos 18.3; the fix for this is relatively easy to make by
modifying 'ld' (in the file "=src=/ext.r/ld.r") so that it
automatically includes SPLLIB, much like
it includes the Subsystem library now.  At the end of the newsletter,
we will include a copy of the 'diff' output run on the released
and fixed version of 'ld' so that you can make appropriate changes
in your local versions.  The next release (described below) will be
updated with a
new copy of 'swtseg' to provide a permanent fix to this problem.
.sp
.ne 6
After you have made the required changes to the file "=src=/ext.r/ld.r",
you need to run the following under the directory "=src=/ext.r":
.sp
.in +5
.nf
rfl ld.r
chat ld
cp ld =ebin=
del ld ld.b ld.f
.fi
.in -5
.ar "Changes to Prime Pascal"
At Primos 18.4 (and possibly as early as 18.3), the Prime-supplied
Pascal compiler (PASCAL) handles its I/O differently.  Because of
these changes, the Subsystem interface routines 'init$p' and 'file$p'
will not work.  We hope to have new versions of these routines in
the next release which will interface properly.
.ar "Changes to 18.4 Compilers"
At Primos 18.4, most of the language processors generate object
code in a different format from that of earlier versions.  Because
of these differences, the programs 'bnames' and 'bmerge' will not
work properly.  The only Subsystem-related problem that this can
cause is errors in the rebuilding of the Subsystem library.  These
programs have been fixed to handle the new object code format and
will be sent out on the next Subsystem
release.
.ar "Changes to Spooling Library"
At Primos revision 18, the spooler library was reorganized; this
caused a problem with rebuilding the programs 'lps' and 'copyout'.
In updating our spooler,
we discovered this problem and have fixed it.  The next release of
the Subsystem will contain the corrected versions of these programs.
.ar "Next Release:  Version 8.1"
The next release of the Subsystem will include the usual crop
of bug fixes (including, but not limited to those mentioned above)
and some new features.  If you have run into problems with the Subsystem
and have not notified us, please do so; we will incorporate all
changes necessary (and as time permits) before making the official
release.  We have tentatively targeted the next release for early
in the first quarter of 1983.  Things to expect are described below.
.sp
As described in the [ul V7.1 to V8 Conversion Guide], the value of
EOS (end of string) is changing from the current
value of -2 to 0.
This change should not affect the operation of your programs,
unless they make (unwise) assumptions as to the value or magnitude
of this constant.
The purpose of this change is to better support the C language
and to slightly improve run-time performance (it is faster to
compare against 0 than -2).
.sp
Although a change of this magnitude normally requires the
recompilation of all code (yours and ours), we have come up with a
scheme whereby we build [ul two] Subsystem libraries: one handles 
EOS being -2, and the other one handles EOS being 0.
The library that will be used for a particular object program is
determined by whether the program calls 'init' or not -- programs
which "call init" are assumed to be "old" and get EOS values of -2.
We can get by with this because 'init' hasn't been needed for 
years; not calling it has caused no ill effects for several
releases, although its call was automatically included by 'rf' and
'rp'.  This means as long as existing object programs behave
(the only ones in doubt are non-Ratfor programs) by calling 'init',
using the shared library,
and not muddling with the Subsystem Common, they will work
perfectly under Version 8.1.  Of course, programs compiled under
Version 8.1 will no longer "call init" and will receive EOS
as 0.  (It will still be possible to recompile EOS=-2 programs
Version 8.1, but it will not be as convenient as it is now.)
Locally-written routines (that do not access Subsystem  Common)
can be incorporated into both versions of the library 
automatically by putting them in the proper source directory and
rebuilding the libraries.
.sp
This horrendous kluge will not be in effect
for more than a couple of releases;
good taste prevents us from allowing such an abomination to
live for any longer than necessary.
We are doing it in the first place only to allow users at
both your and our sites time to gradually rebuild programs
(and because there were threats against our personal safety
if we forced recompilation again).
We do expect you to recompile all your local programs in
the months following Version 8.1.
.sp
Now you ask "What do I do about this nonsense now?"  There
are several things that you can do to ease the coming of 
Version 8.1.  First, you can make sure that your locally
written programs do not depend on EOS being other than a value
different from characters returned by 'getlin'.  Second,
you can make sure that all your non-Ratfor programs call
'init' now and that it will be simple to change them when
they are recompiled for the first time after you install
Version 8.1.  Finally, you should be prepared to modify (or
at least recompile) any programs which directly access the
Subsystem Common or use the unshared library.
.sp
Other changes included in the 8.1 release are more supported
terminal types for both VTH and 'se', enhancements to various
programs, new routine libraries, and the inclusion of new programs.
The documentation
has been revised and enhanced to correct oversights and cover
new items.
.ar "Release of the C Compiler"
The Georgia Tech C compiler has been in the Beta test stage for
several months.
We anticipate release of
this product for general use at the same time as the
Version 8.1 release of the Subsystem.
Our C compiler implements the C langauge as specified in
Kernighan and Ritchie's [ul The C Programming Language], with extensions.
It also includes a Run-Time Library for program support under the
Subsystem.
If you are interested, please contact us for more information.
.ar "Primos Revision 19"
As of the writing of this newsletter, we have received a pre-release
copy of version 19 of Primos (version 19.0).  True to Prime form,
this release contains massive changes and additions to the system
code.  We have installed Version 8 on it, and have not encountered any
problems with normal Subsystem operation so far.
If you install Version 8 (or 8.1) on Primos 19.0, however,
you will
not have access to the new features of Primos, such as Access
Control Lists (ACLs), disk quotas, etc. through the Subsystem.
Even before we release Version 8.1,
we intend to begin adding Subsystem
support for as many new Primos features as we can, in hopes
of releasing Version 8.2 (or 9) in late summer.
.ar "Modified Version of 'ld'"
Below is the output from "diff -s" ('ed' commands) for
fixing the problem with 'ld' mentioned above.
If you "ed //src/ext.r/ld.r" and execute the following commands,
you should have a properly revised version:
.sp
.ne 10
.po -5
.nf
.# LD here
240,243c
            call print (fd, "lo *s*n"p, file)
         else
            call print (fd, "s/lo *s 0 *s *s*n"p,
                  file, segment_no, segment_no)

         if (ARG_PRESENT (d)) {
            call print (fd, "li spllib*n"p)
            call print (fd, "li*n"p)
            }
         else {
            call print (fd, "s/li spllib 0 *s *s*n"p, segment_no,
                  segment_no)
            call print (fd, "s/li 0 *s *s*n"p, segment_no, segment_no)
            }
.
w
.fi
.po +5
.ar "UNIX/STUG Meeting"
The next combined meeting of the USENIX Association, /usr/group,
and Software Tools Users Group (STUG) will be held in San[bl]Diego,
California from January 25-28, 1983.  Presentations at the meetings
will be of interest to both UNIX(tm) and Tools users alike.  If you
did not get a copy of the meeting announcement but would like to get
the pre-registration packet, you can send your name and address to:
.sp
.in +5
.nf
UNICOM
P.O. Box 385
Sunset Beach, California  90742
.fi
.sp
[bf UNIX] is a trademark of Bell Laboratories.
.in -5
.ar "Request for Feedback"
As always, your opinions and suggestions carry great weight.
If you have
something which you would like to see done or documented another
way, please let us know.  If you have made local enhancements, we
would like to know about them; they might be useful to others as
well.  We would especially like to know about new terminal types
that you have added to the Virtual Terminal Handler (VTH) or the
screen editor ('se'); we cannot incorporate and test as many as
terminal types as we would like.
.##################################################################
.#
.# build title page with table of contents
.#
.bp
.he ''''
.fo ''''
.rs
.sp
.ce
.bf
Software Tools Subsystem Newsletter
.sp 2
.tl /Volume 2, Number 3//November, 1982/
.sp 5
Published irregularly by:
.sp
.in +5
.nf
Software Tools Project
School of Information and Computer Science
Georgia Institute of Technology
Atlanta, Georgia   30332
404-894-3658
.sp
.in -10
.fi
.sp 5
In This Issue:
.sp
.nf
.tc \
.rm -10
.ta [rm]
.rm +10
.rc .
.in +5
.so 1
.in -5
