.po 5
.lm 1
.rm 75
.#
.#
.de ar
.ne 10
.sp 5
.ce
.bf
@[1]
.sp 2
.dv 1
@[1]\@[tcpn]
.dv
.en ar
.#
.#
.he 'Software Tools Subsystem Newsletter''[date]'
.fo //- # -//
.#
.#
.nh
.ar "Welcome to Software Tools"
Greetings to all of you out there using the Software Tools Subsystem!
This is the first issue of the Software Tools Subsystem
Newsletter, designed to keep you up to date on the advances being
made by Tools users everywhere, and by the Georgia Tech Software Tools
Project in particular.
.sp
Although we don't expect to have enough material to publish the
Newsletter with any frequency, we will send out an issue prior to
every new release, to let you know about major changes and to prepare
you for any incompatibilities that may arise.
.sp
This issue describes features of the Version 7 release,
reports a few bugs in Version 6, and discusses some Software Tools
activities that are national in scope and may be of particular
interest to you as users.
.sp
As always, any comments you have on the format or contents of this
newsletter would be appreciated.
In addition, we would be glad to publish any article you wish
included in subsequent issues.
.sp
.tl ///Allen Akin/
.tl ///Perry Flinn/
.tl ///Dan Forsyth/
.ar "Request for Feedback"
The Subsystem has been available for some months now,
and has been installed at a number of locations.
We (Georgia Tech) would like two pieces of information from those
currently active installations:
.sp
.in +7
.tc \
.ta 5
.ti -4
1.\The name and address of the Subsystem Manager.
This individual will receive new Subsystem release tapes and
technical correspondence as they become available.
.sp
.ti -4
2.\An opinion of the Subsystem installation procedure,
documentation, and performance.
What problems did you have with installation?
Were the installation instructions sufficiently comprehensive?
Does the division of documentation into Reference Manual
and User Guide serve reference and tutorial needs adequately?
Does it cause any inconvenience?
Did you run into any problems with the operation of any of the
tools?
What performance characteristics do the tools display on your
system?
.sp
.in -6
This information would greatly aid us in the preparation of new
releases and the elimination of existing problems.
.ar "Bugs in Version 6"
A few problems with Version 6 of the Subsystem have cropped up
since the Folklore Guide was written.
All of these have been fixed, and the corrections will appear
in Version 7.
.sp
Watch out for the command
.sp
         del -sd #segment_directory_name
.sp
The problem is with the interaction between the command language
and Prime's convention for segment directory names.
The sharp (#) and the text following is taken to be a comment
by the command interpreter (shell), thus 'del' sees only the
option argument "-sd" and proceeds to delete the entire current
working directory.
This problem was fixed by disallowing the deletion of the current
directory unless it is explicitly specified by a null pathname,
e.g.
.sp
         del -sd ''
.sp
Of course, one may always delete a conventionally-named segment
directory with the command
.sp
         del -sd '#segment_directory_name'
.sp
Beware of the "-3" option on the 'common' command.
.sp
         ... common -3 ...
.sp
This option does not work properly!
The fix is simple and Version 7 will incorporate the correction.
.sp
Some of you running Primenet may have noticed that the Subsystem
drops data transferred over the network via the File Access
Manager (FAM).
The problem, however, is not with the Subsystem;
the "read-convenient" key, K$CONV, used in calls to 'prwf$$'
behaves differently when used with remote files than it does when
used with local ones.
This inconsistency will be avoided in the future by simply
not using K$CONV.
.sp
Anyone using Fortran or PMA from the Subsystem should be warned
that the "$INSERT" statement may try to use low-numbered funits already
in use by the Subsystem.
An interim fix for this problem is to use 'include' statements
and run the source code through the Subsystem program 'include',
or simply to do the compilation or assembly outside the Subsystem.
(The new Subsystem I/O routines, discussed below, will solve the
file-unit conflict problem.)
.sp
At present the Subsystem has essentially no support for R-mode
programming.
In particular, the file unit conflict problem mentioned in the
entry above prevents the R-mode loader, LOAD, from operating
properly.
.sp
Do not, under any circumstances, change the read-write locks on
files in directory "/temp" to "n+n" (any number of readers plus
any number of writers).
Note that this situation can arise if your system default
lock is "n+n"!
In the event this happens, only one temporary file will be opened,
and all Subsystem users will simultaneously access that file.
Garbage data will then magically appear in pipelines, and shell
programs will mysteriously die as linked-string storage space
fills up.
In any case, the fix for this problem is to execute
.sp
         cd /temp; chat -s -k n-1
.sp
If your system default is "n+n", you will need to create a
number of temporary files in "/temp" sufficient to handle
your peak Subsystem temporary file load.
The following commands would create the first 99 files:
.sp
         cd /temp; echo >t0([iota 9]); echo >t([iota 99])
.sp
This should be more than adequate for most systems.
.ar "Conversion to Primos Revision 17"
For those of you running pre-release versions of Primos
Rev 17, and those who may receive Rev 17 before Version 7 of
the Subsystem, there is a simple procedure necessary to upgrade
your Version 6 Subsystem.
.sp
The technique used for sharing libraries changed between Rev 16
and Rev 17; the Subsystem library 'swtlib' must be rebuilt
using the Rev 17 Fortran library fault handler.
This code may be found in the UFD "direcv" on the Rev 17
release tape.
.sp
To prepare the Subsystem libraries for use under Rev 17,
execute the following shell program
.ul
in a Subsystem running under Rev 16:
.sp
.in +10
.nf
cd   /swtsrc/libraries/swtlib.u/share
cp   /direcv/r3pofh   fault_handler_template.s
cp   /direcv/main     installation_prog.s
>>   ed   fault_handler_template.s
/%$INSERT HTAB/c
include 'hash_table'
.
w
q
.sp
.in -10
.fi
The shared library may then be rebuilt by executing
.sp
         /swtsrc/libraries/swtlib.u/share/build_procedure
.sp
This will back the old library "/lib/vswtlb" into
"/lib/old_vswtlb" and create a new version.
The build procedure also creates the files "/system/new_sw2035"
and "/system/new_sw4000".
These files should replace "/system/sw2035" and "/system/sw4000",
respectively.
When you are satisfied that the library rebuild is complete
and error-free, execute
.sp
         cn /system/sw2035 old_sw2035; cn /system/new_sw2035 sw2035
         cn /system/sw4000 old_sw4000; cn /system/new_sw4000 sw4000
.sp
You must now reboot your system
.ul
using Rev 17.
(The shared portion of the Subsystem may be placed in memory by
SHARE commands in your "C_PRMO" cominput file
or by entering the SHARE commands yourself as outlined in the
Installation Guide.)
.ar "Tools Deleted From Version 6"
The following programs, present in Version 6 of the Subsystem,
will not be available in Version 7:
.sp
'Ccnt', 'lcnt', and 'wcnt':  These text-counting tools have
been replaced by a more general tool.
See the entry for 'tc' later in this same issue.
.sp
'Total':  Superseded by the statistics-gathering program 'stats'
described below.
.sp
'Hscript':  Once used by the 'help' shell program.
Since 'help' has been re-written in Ratfor, 'hscript' is no
longer required.
.ar "Tools Added to Version 7"
The following programs have been added to the Subsystem:
.sp
'Tc':  This program is a "text-counter," which examines its
standard input and prints on its standard output the number
of characters, words, lines, and pages it found.
Options control the particular items printed and whether or not
they are preceded by identification.
.sp
'Stats':  Several times the need has arisen for a program that
could generate several common statistical measures of a set
of numbers.
'Stats' fills this need;
it can calculate means, standard deviations, medians, modes,
ranges, high- and low-values, totals, etc.
Options control the statistics printed and whether or not they
are labelled.
.sp
'Batch':  This is the Subsystem interface to Prime's batch
job processor.
It provides access to all the functionality of that system.
.ar "Directory Reorganization"
The Subsystem is undergoing a major reorganization of its directory
structure.
Although this work is incomplete, some of the major changes
are as follows:
.sp
All of the Subsystem documentation in the directory "/extra" has
been broken out into a new directory called "/doc".
In particular, the copy of the Reference Manual used by the
'help' command has been moved into "/doc/fman".
Originally, 'help' used the single (unformatted) copy of the
Reference Manual  that was delivered in "/extra/manual";
however, numerous complaints about the slowness of 'help'
prompted us to rewrite it to use an already-formatted copy,
thus reducing the setup time before a request could be
answered.
An unformatted copy of the Reference Manual now resides in
"/doc/man", but it need not be loaded from the release tape if
you are short on disk space.
A similar decision was made with regard to the User's Guide,
which now resides in "/doc/guide" and "/doc/fguide".
.sp
Some additional information supplied with Version 7
(specifically the table of prime numbers up to a million and
the dictionary of English words)
has been moved from "/extra" to a new auxiliary directory "/aux".
As with the documentation mentioned above, this directory
represents a rather large mass storage requirement, and may be
stored off-line if desired.
.sp
Last but not least, the source code directory "/swtsrc" will
be reorganized completely, but no decision has been made as
to the final structure.
.ar "In the Works"
Here are some things that we hope to have tested in time for
Version 7, but for which there are no guarantees.
.sp
A new set of I/O primitives has been written and is currently
undergoing testing.
These routines are considerably faster than the old Subsystem
routines.
In addition, the age-old limit of 16 open files will at last
be lifted;
allowances have been made for up to 128 files open at one time.
Furthermore, several new primitives have been added to allow
random I/O and binary word-oriented I/O.
Some pains have been taken to make sure that these new I/O
modes can be used by Subsystem programs along with interleaved
calls to the older routines, to provide maximum flexibility.
.sp
A new version of the Ratfor preprocessor is also in the 
testing-and-revising stage.
New features include macro definitions with arguments,
a PL/I-like 'select' statement, in-line definition of EOS-terminated
and character-varying strings, general availability of
short-circuited conditions, recursive "internal procedures"
implemented in standard Fortran, and more.
In addition, the new preprocessor emits
.ul
much
better Fortran code; superfluous CONTINUEs are removed,
unary NOTs are propagated through logical expressions when
necessary, and code is ordered to allow much larger basic
blocks (which improves the amount of optimization the Fortran
compiler is able to perform).
.sp
Pathname syntax will probably undergo considerable extension in
the next few months.
One feature that is currently being tested is "template expansion."
This is a sort of in-line macro call in pathnames that gives a
mnemonic for system-dependent information.
For example, one now refers to the screen editor in the Subsystem command
library with the pathname
.sp
         /bin/se
.sp
An alternative expression would be
.sp
         ^bin^/se
.sp
where "^bin^" is a template.
If an installation needs a UFD named "bin" to be separate from the
Subsystem command library, one simple change in a library routine
allows all pathnames of the second form to refer to the new
command library automatically, while all pathnames of the first form
must be changed manually.
.ar "Things to Come"
Pathnames are likely to receive a considerable overhaul in the near
future.
For example, there is at present no way to specify a disk by its
packname;
only the logical disk number (in decimal, yet) is acceptable.
Furthermore, there is no syntax to specify devices other than disk;
in Bell Laboratories' UNIX system, one can use pathnames of the
form
.sp
         /dev/<device_name>
.sp
to reference special peripherals.
Data General's AOS has the similar syntax
.sp
         :per:<peripheral_name>
.sp
At Georgia Tech, we feel that the Subsystem should have the same
capability, and we're working on some ideas for how it should
be done.
Suggestions would be greatly appreciated.
.sp
There is also some interest in developing a Ratfor semantics-checking
program similar to the program 'lint' for the language C.
This program would automatically check a Ratfor program for proper
type declarations, proper number of arguments on calls to
subprograms, acceptable naming conventions, etc.
.ar "Software Tools User's Group"
As many of you are probably aware, there is nationwide interest
in the concepts popularized by Kernighan and Plauger in their book
.ul
Software Tools.
To help promote these concepts and disseminate related new ideas,
a national Software Tools User's Group has been formed.
This group is closely related to the UNIX User's Group, and holds
its annual meeting at about the same time as that organization.
.sp
Software Tools has been implemented in one form or another on
a wide variety of machines ranging from an Intel 8080 microprocessor
to large CDC Cyber series computers.
Some excellent work on developing portable, compatible software
has been done by members of the User's Group;
much of it would undoubtedly be of interest to any installation
with non-Prime equipment.
.sp
The next Software Tools User's Group meeting will be held
January 29th in Boulder, Colorado.
Topics of interest relating to the Tools include networking
systems, statistical analysis packages, standardized
primitives, generalized screen-oriented editors, string
processing languages, highly portable combinations of
Ratfor and the macro preprocessor, and a new basic distribution
tape to replace the current version from Addison-Wesley.
Brian Kernighan will be on hand to observe the proceedings
and offer advice and assistance.
.sp
Further information on the Software Tools User's Group and on
the next conference can be had from
.sp
.nf
.in +10
.ne 6
Debbie Scherrer
Computer Science and Applied Mathematics Department
Lawrence Berkeley Laboratory
University of California
Berkeley, CA   94720
415-486-5881
.fi
.in -10
.ar "On User-Written Software"
We are always looking for useful new tools to include in the
Subsystem.
If any of you out there develop a generally useful program
that you would like considered for incorporation into the
Subsystem, please let us know.
We are also interested in upgrades, like addition of new
terminal types to the screen editor, and in bug fixes.
Suggestions for extensions to existing tools are also welcome.
.bp
.he ''''
.fo ''''
.rs
.sp
.ce
.bf
Software Tools Subsystem Newsletter
.sp 2
.ce
.bf
Volume 1, Number 1          November, 1979
.sp 5
Published irregularly by:
.sp
.in +5
.nf
Software Tools Project
School of Information and Computer Science
Georgia Institute of Technology
Atlanta, GA   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
