GNU's Who

Joseph Arceneaux is developing Emacs Version 19. Jim
Kingdon is working on GDB. Michael Rowan is writing a
login replacement to work with xdm. Roland
McGrath will again be on the payroll starting in July; he is finishing
up the C library and maintains GNU make. David MacKenzie has
been hired as a summer programmer and is maintaining the file
utilities.

Brian Fox is maintaining various programs that he has written,
including the readline library, the makeinfo and Info
programs, BASH, and the new GNU finger. Jay Fenlason
continues with the GNU spreadsheet, Oleo, as well as maintaining
tar, sed and the GNU assembler.

Mike Haertel continues work on the C interpreter; he is also
maintaining and improving the ``bin'' utilities and species of
grep. David Lawrence, who works for us at the Rensselaer
Polytechnic Institute, is maintaining the Lisp libraries for Emacs.
Kathy Hargreaves is now working on Ghostscript, having just
finished making the regular expression routines mostly POSIX-compliant.
Karl Berry is also working on Ghostscript.

Amy Gorin has been hired as a documentation writer, starting with
the manual for tar. Diane Barlow Close continues work on
the BASH Programming Manual. Grace Sylvan is writing the
GNU C Reference Manual.

S. Opus Goldstein is still doing a great job running our office.
Erica Brigid is answering phone calls, handling correspondence,
and making distribution tapes. Robert J. Chassell, our
Treasurer, is working on an elementary introduction to programming in
Emacs Lisp, in addition to the many Foundation issues not related to
programming.

What Is the Free Software Foundation?

The Free Software Foundation is dedicated to eliminating restrictions on
copying, redistribution, understanding, and modification of computer
programs. We do this by promoting the development and use of free
software in all areas of computer use. Specifically, we are putting
together a complete integrated software system named ``GNU'' (GNU's Not
Unix) that will be upwardly compatible with Unix. Some large parts of
this system are already working, and we are distributing them
now.

The word ``free'' in our name refers to two specific freedoms: first,
the freedom to copy a program and give it away to your friends and
co-workers; second, the freedom to change a program as you wish, by
having full access to source code. Furthermore, you can study the
source and learn how such programs are written. You may then be able to
port it, improve it, and share your changes with others.

Other organizations distribute whatever free software happens to be
available. By contrast, FSF concentrates on development of new free
software, working towards a GNU system complete enough to eliminate the
need to purchase a proprietary system.

Besides developing GNU, the Foundation has secondary functions:
producing tapes and printed manuals of GNU software, carrying out
distribution, and accepting gifts to support GNU development. We are
tax exempt; you can deduct donations to us on your tax returns. Our
development effort is funded partly from donations and partly from
distribution fees. Note that the distribution fees purchase just the
service of distribution: you never have to pay anyone license fees to
use GNU software, and you always have the freedom to make your copy from
a friend's computer at no charge (provided your friend is
willing).

The Foundation also maintains a Service Directory: a list of people who
offer service for pay to users of GNU programs and systems. The Service
Directory is located in file `etc/SERVICE' in the GNU Emacs
distribution. Service can mean answering questions for new users,
customizing programs, porting to new systems, or anything else. Contact
us if you want to be listed or wish a copy.

After we create our programs, we continually update and improve them.
We release between 2 and 20 updates a year for each program. Doing this
while developing new programs takes a lot of work, so any donations of
pertinent source code and documentation, machines, labor, or money are
always appreciated.

What Is Copyleft?

In the previous section entitled ``What Is the Free Software
Foundation?'' we state that ``you never have to pay anyone license fees
to use GNU software, and you always have the freedom to make your copy
from a friend's computer at no charge.'' What exactly do we mean by
this, and how do we make sure that it stays true?

The simplest way to make a program free is to put it in the public
domain. Then people who get it from sharers can share it with others.
But this also allows bad citizens to do what they like to do: sell
binary-only versions under typical don't-share-with-your-neighbor
licenses. They would thus enjoy the benefits of the freeness of the
original program while withholding these benefits from the users. It
could easily come about that most users get the program this way, and
our goal of making the program free for all users would have been
undermined.

To prevent this from happening, we don't normally place GNU programs in
the public domain. Instead, we protect them by what we call
copylefts. A copyleft is a legal instrument that makes everybody
free to copy a program as long as the person getting the copy gets with
it the freedom to distribute further copies, and the freedom to modify
their copy (which means that they must get access to the source code).
Typical software companies use copyrights to take away these freedoms;
now software sharers use copylefts to preserve these freedoms.

The copyleft used by the GNU Project is made from a combination of a
copyright notice and the GNU General Public License. The
copyright notice is the usual kind. The General Public License is a
copying license which basically says that you have the freedoms we want
you to have and that you can't take these freedoms away from anyone
else. (The actual document consists of several pages of rather
complicated legalbol that our lawyer said we needed.) The complete
license is included in all GNU source code distributions and many
manuals. We will send you a copy on request.

We encourage others to copyleft their programs using the General Public
License; basically programs only need to include a few sentences stating
that the license applies to them. Specifics on using the License
accompany it, so refer there for details.

``As we enjoy great advantages from the inventions of others, we
should be glad of an opportunity to serve others by any invention of
ours.''

-Benjamin Franklin

GNUs Flashes

Emacs Lisp Reference Manual
It's here! We are now shipping the long awaited GNU Emacs Lisp
Reference Manual. It describes the GNU Emacs Lisp programming language
in great detail. The manual is about 550 pages and can be ordered from
us for $50. Early drafts of this manual are still floating around from
several years ago, mostly at ftp sites. We strongly urge you to
update to the new version since the improvements are innumerable. (As
always you can ftp the manual from the usual sources.)

Smalltalk
GNU now has a Smalltalk system. It was written by Steve Byrne. We
currently have Version 1.0 available on prep.ai.mit.edu.
Version 1.1 should be out soon. GNU Smalltalk is based on the
"blue book" definition of the Smalltalk language. It is
written in highly portable C and runs on a number of Unix machines
(Version 1.1 will offer more ports than the current version, which only
runs on 4 or 5 machines). A graphical user interface is also planned.
Response to the system has generally been very favorable, especially for
a young system.

GNU Finger
GNU Finger is now available. This is a daemon--based finger program
that polls all of the hosts at a site for finger--related information.
With GNU Finger, information can now be retrieved for a user on a
site--wide basis instead of a host--specific basis. Our finger also
displays bitmaps of users' faces where available. See "GNU Finger"
under "GNU Project Status Report" for more information.

Donation from the Open Software Foundation
We want to thank OSF for yet another donation of $25,000. It is also
planning significant improvements for the GNU Assembler and
binutils.

Long-named options
As we have mentioned before, we are adding long-named options to many of
our utilities. We have done this by adding functionality to our
getopt library. getopt_long can now be used to parse long
options as well as the normal single-lettered options allowed by the
standard getopt. For example, instead of remembering whether to
use -v or -V, you can use +verbose (or any
unambiguous abbreviation) in all programs. Eventually we hope to
provide command-line completion for long option names.

DBM replacement
Version 1.3 of our gdbm library has been released. It is a
replacement for the dbm and ndbm libraries. Our
gdbm database is stored in one file which contains no large
holes, supports read/write interlocking, handles keys and data of
unlimited size, and provides routines supporting both the ndbm
and dbm interfaces. These features separate gdbm from its
proprietary predecessors.

Possible New Terms for GNU Libraries

by Richard Stallman

We are considering changing the distribution terms for some GNU
libraries, such as libg++ and the (as yet unreleased) C
library.

The GNU General Public License was designed for utility programs, such
as Emacs and GCC. It makes a sharp distinction between using the
program and copying any part of it: Any program containing any
significant portion of the GNU program must be freely redistributable to
be permitted at all. However, merely using the program (for example, an
editor) imposes no restriction on the work that is done with it.

Libraries blur the distinction between modifying or adding to a program
and simply using it. Linking a program with a library, without changing
the library, is in some sense simply using the library, and analogous to
running a utility program or application program. However, in a textual
and legal sense, the linked executable is a combined work which is a
derivative of the original library, and the ordinary General Public
License treats it as such. As a result, developers of proprietary
software have not used the GNU libraries.

The goal of the Free Software Foundation is to promote the freedom to
share software, for software developers and for users; we develop
software for sharing as a means to this end. As a pragmatic matter, if
the conditions for use of this software are such that most developers
choose not to use it, then we don't achieve the goal. At the same time,
if the conditions are so loose that people can use the software without
much additional sharing, then we don't achieve the goal.

It seems that the ordinary General Public License is too restrictive for
libraries, and is discouraging their use rather than encouraging
further sharing. However, it would not be best to do what
proprietary software developers ask us to do--to permit completely
unrestricted use of our libraries in proprietary software--because
then the end users of that software wouldn't get a jot of additional
freedom as a consequence of the use of our library. We need to find a
proper middle ground.

Our idea is to require the distributor of the proprietary executable to
make the source to our library available along with the object files for
the rest of the application. The user could then recompile the library
(perhaps with changes) and relink to get a usable program. This way the
user will, in some sense, get the benefit of the free status of the
library within the executable.

However, not all the details are settled, so we aren't announcing the
precise new library terms just yet.

League for Programming Freedom

by Michael Bloom and Richard Stallman

The League for Programming Freedom is an organization of people who
oppose the attempt to monopolize common user interfaces through "look
and feel" copyright lawsuits. Some of us are programmers who worry
that such monopolies will obstruct our work. Some of us are users who
want new computer systems to be compatible with the interfaces we
know.

"Look and feel" lawsuits aim to create a new class of
government-enforced monopolies that would be broader in scope than ever
before. Such a system of user-interface copyright would impose
gratuitous incompatibility, reduce competition, and stifle
innovation.

We in the League hope to prevent these problems by preventing
user-interface copyright. The League is not opposed to copyright law as
it was understood until 1986--i.e., copyright on particular programs.
Our aim is to stop changes in the copyright system, which would take
away programmers' traditional freedom to write new programs that are
compatible with existing programs and practices.

The League for Programming Freedom will act against the doctrine
behind look-and-feel suits by any means consistent with the law and
intellectual liberty. We will write editorials, talk with public
officials, file amicus curiae briefs with the courts, and boycott
egregious offenders. If you have other ideas, please suggest
them.

The League members are now voting on the question of opposing software
patents, which threaten to make every design decision in software
development a chance for a lawsuit. The League's founders consider
software patents potentially more dangerous than look-and-feel
copyright, and the members voting so far seem to agree. Final results
will be known at the beginning of June.

The more members we have, the more effective we will be. Even if you
cannot donate any time, simply joining will make a difference.

The dues are $42 for professionals, $21 for others, except students
whose dues are $10.50. To join, write to:

Note that the League for Programming Freedom is a separate organization
from the Free Software Foundation; please direct all League inquiries to
the above address, not to the Foundation.

Free Software Support

The Free Software Foundation develops and distributes freely available
software. Our goal is to help computer users as a community. We
envision a world in which software is freely redistributable. This
means software will be sold at a competitive market price rather than a
monopoly established price; often, it will be given away. We see
programmers as providing a service, much as doctors and lawyers now
do--both medical knowledge and the law are freely redistributable
entities for which the practitioners charge a distribution and service
fee.

To help you find support and other consulting services, we maintain a
list of people who offer such services. We call this list the GNU
Service Directory. This list is contained in the file
`etc/SERVICE' in the GNU Emacs distribution. If you want to offer
services, you can use this list to help make yourself known. (Contact us
if you would like a copy of this directory or wish to be
included.)

Most of the listings in the GNU Service Directory are for individuals,
but one is for Cygnus Support, which is the first for-profit corporation
that we know of that provides support only for free software.
Their address is info@cygnus.com or Cygnus Support, 814
University Ave., Palo Alto, CA 94301. FSF is not affiliated with Cygnus
Support, but we hope that Cygnus Support is a harbinger of the
future.

If you find a deficiency in any GNU software, we want to know. We
maintain a considerable number of Internet mailing lists for making
announcements, reporting bugs and for asking questions. The Emacs
and GCC Manuals have chapters explaining where to send bug reports and
what information to put in them. Incidentally, on the larger lists, it
is not surprising to see an enquiry answered on the same day it is
posted.

These mailing lists are also gatewayed into USENET news. If your site
receives USENET, you can follow these discussions using news software.
To find out more about the gnu.* newsgroups, ask your system
administrator.

If you don't have Internet access, you can receive mail and USENET news
with a UUCP connection. Contact either a system administrator at a
local UUCP site, or UUNET Communications, which can set up a UUCP
connection for a modest fee. (UUNET is a non-profit organization that
provides network connections.) You can contact UUNET by e-mail at
info@uunet.uu.net or by paper mail at:

When we receive a bug report, we will usually try to fix the problem in
order to make the software better. This may help you in the long run;
however, we may not provide you with immediate assistance. This is not
and should not be our job. Our task is so large that we must focus on
that which helps the community as a whole, such as developing and
maintaining software and documentation. We mustn't let ourselves be
sidetracked into helping individuals one by one. We do not have the
resources. Thus, do tell us how an installation script doesn't work or
where the documentation is unclear--but please don't ask us to help you
install the software or figure out how to use it.

If your bug report does not evoke a solution from us, you may still get
one from the many other users who read our bug reporting mailing lists.
Otherwise, use the Service Directory.

GNU Project Status Report

GNU Emacs
GNU Emacs 18 is now stable. Only a few important bugs have been
encountered since Version 18.55.
Berkeley is distributing GNU Emacs with the 4.3 distribution, and
numerous companies also distribute it.
Version 18 maintenance continues and a new version, 18.56, is expected
soon. It has no new features, however. Version 19 approaches release
with a host of new features: before and after change hooks; X selection
processing (including CLIPBOARD selections); scrollbars; support for
European character sets; floating point numbers; per-buffer mouse
commands; interfacing with the X resource manager; mouse-tracking;
Lisp-level binding of function keys; and multiple X windows (`screens'
to Emacs).
Thanks go to Alan Carroll and the people who worked on Epoch for
generating initial feedback to a multi-windowed Emacs. Emacs 19
supports two styles of multiple windows, one with a separate screen for
the minibuffer, and another with a minibuffer attached to each
screen.
More features of Version 19 are buffer allocation, which uses a new
mechanism capable of returning storage to the system when a buffer is
killed, and a new input system--all input now arrives in the form of
Lisp objects.
Other features being considered for Version 19 include:

Associating property lists with regions of text in a buffer.

Multiple font, color, and pixmaps defined by those properties.

Different visibility conditions for the regions, and for the various
windows showing one buffer.

Incremental syntax analysis for various programming languages.

Hooks to be run if point or mouse moves outside a certain range.

Source-level debugging for Emacs Lisp.

Incrementally saving undo history in a file, so that recover-file also
reinstalls buffer's undo history.

Static menu bars, and better pop-up menus.

A more sophisticated emacsclient/server model, which would provide
network transparent Emacs widget functionality.

Kernel
We hope to use the Mach message-passing kernel being developed at CMU.
The current distributed version of Mach is not free because it contains
code from BSD of AT&T origin. However, Mach developers say that all
this will be replaced with free code, or at least be moved into user
processes. Mach will be free then. This version of Mach should be
available in a couple of months (as of May 1990). Until this happens,
and we see precisely what is available and on what terms, we can't say
for certain whether we can use it.
We will not use Mach unless we can share it with everyone, and all users
can redistribute it. In particular, if an export control prevents
distribution outside the US, we will not use it.
If we can't use Mach, then we may start developing the GNU kernel with
either MIT's TRIX kernel or Berkeley's Sprite system. TRIX is a remote
procedure call kernel which runs and supports basic Unix compatibility
at about the level of Version 7. It needs a lot of additional features.
Sprite is at about the same architectural level as BSD Unix, but has a
fancy distributed file system and process migration.

GNU Debugger
The GNU source-level C debugger, GDB, is now being distributed along
with the GNU C Compiler as GDB Version 3.5. Version 2.8, that used to
be distributed on the Emacs tape, is now obsolete, and has been replaced
by Version 3.5.
We have also started work on GDB Version 4. We have added watchpoints,
remote cross-debugging, and a host of minor features. We plan to add
over-the-ethernet debugging before the initial release of Version
4.

C Compiler
The GNU C compiler (GCC) Version 1 is now quite reliable. It supports
ANSI standard C. NeXT builds its entire system, including its port of
the Mach kernel and NFS, with GCC. We have also been told that GCC
successfully compiled a System V.3 kernel. GCC has compiled almost all
of the BSD source tree.
GCC performs automatic register allocation, invariant code motion from
loops, common subexpression elimination, induction variable
optimizations, constant propagation and copy propagation, delaying
popping of function call arguments, tail recursion elimination, and many
local optimizations that are automatically deduced from the machine
description.
Supported CPUs include the 680x0, Vax, 32x32, 80386, 80860, Sparc (Sun
4), SPUR, Convex, MIPS, Tahoe, Pyramid, and Alliant.
We are trying to stabilize GCC Version 1 while incorporating new
improvements into Version 2. Version 2 now has support for nested
functions, a certain amount of CSE between basic blocks, and a new
feature for classifying instructions--which can be used to choose
between long and short branches or to provide raw data for instruction
scheduling. Instruction scheduling and perhaps global CSE will be added
by the time Version 2 is finished. More general calling conventions are
supported.
Version 2 supports both C++ and Objective C on the same basis as C
itself: the name of the source file selects the language. Michael
Tiemann of Cygnus Support has written the C++ front end for GCC (which
is available in Version 1 as G++). The front end for Objective C has
been donated by NeXT. It will support the Motorola 88000, AMD 29000,
IBM RT, and TRON. Ports for the IBM 370, the 3b2, the Ncube, a Gould
machine (we don't know which one), and the HP Spectrum may be
written.
Front ends for Modula, Fortran and Pascal are being developed by
volunteers. There are rumors about various other languages. So far, no
one has volunteered to write Ada or Cobol.

C Library
Roland McGrath and others continue to work on the C Library. The C
library currently contains all of the ANSI C and POSIX.1 functions, and
work is in progress on POSIX.2 and Unix features. This means that the
library will have not only all of ANSI, POSIX 1003.1, and POSIX 1003.2,
but almost everything found in BSD and System V.
The GNU regular-expression functions (regex) are now mostly
conformant to the POSIX.2 standard.

Ghostscript
We are distributing Ghostscript on tape. This program provides nearly
all the facilities of a Postscript interpreter.
Ghostscript release 1.4 is now available. Staff members Karl Berry and
Kathy Hargreaves are working on preparing a new release of Ghostscript,
together with Peter Deutsch, the original author of the program. Kathy
and Karl are also working on producing free PostScript font
files.
Highlights of the new release include drivers for HP's Deskjet and
Laserjet as well as the Epson LX-800 (all in low density mode).
Ghostscript may be built with multiple drivers (e.g. an X Window driver
and a printer driver), and you can switch between them
dynamically.
The new release also includes about 20 scalable fonts algorithmically
derived from the BDF fonts in the X11 distribution. These include
Charter, Courier, Helvetica, New Century Schoolbook, Symbol, and Times
fonts. All but the Symbol are provided in different variations.
Right now, Ghostscript will accept commands in PostScript and execute
them by drawing on an X Window or writing a file that can be transferred
directly to a printer. It also includes a C-callable graphics library
(for client programs that don't want to deal with the PostScript
Language), and supports IBM PCs and compatibles with EGA graphics as
well (but don't ask us about this; we don't use PCs and don't have time
to learn anything about them).
Ghostscript needs enhancements: to serve as a previewer for multi-page
files; to serve other X clients by drawing on their windows; to be
improved both in its performance and visual quality; and more fonts.
Any suggestions for enhancements are welcome.

GNU Finger
Brian Fox has released the new GNU Finger program. Finger is a
daemon-based replacement for (or supplement to) BSD finger. Our
finger now handles the newer paradigm of each user having his/her own
small Unix host (workstation). GNU finger has a per site server that
will poll all of the machines at a site. Thus queries can now be site
wide rather than host specific. For example, fingering
bfox@pogo.ai.mit.edu with our finger would tell you if he was
logged in and what host he is using. If he isn't logged in, it will
tell you what host he was last using.
Our finger also does faces! If a site has face bitmaps online (and is
running GNU Finger, of course) you can get the user's face in a X Window
on your display.

Oleo
Jay Fenlason is writing a spreadsheet named Oleo (which is better for
you than the more expensive spreadsheet). Oleo is in alpha test right
now; we do not know when it will be available. Jay says that "really
brave" people can contact him about being alpha testers.
Oleo currently reads and writes SC and Multiplan SYLK files, but
teaching it new formats is fairly simple. It has a full set of
expressions as well as mathematical, financial, and string functions.
Keys may all be rebound and Oleo also has primitive macro
support.
Oleo uses the curses library and an X11 interface is planned.
Right now it runs on BSD Unix machines as well as IBM PC's and
compatibles.

groff
James Clark is writing groff, an implementation in C++ of the
traditional Unix document formatting tools. So far troff,
pic, tbl, eqn, man macros, and a PostScript
driver have been written. A version of the Berkeley me macros
will be included. He is currently implementing a driver which produces
TeX .dvi format and a driver for typewriter-like devices.
Useful additions would be mm and ms macros, grap,
and refer.

GNU Mailer
Development of Smail is coming to an end. We are satisfied with the
program's current features, except for the queueing system. We hope we
can replace Smail's queueing system with the queueing system found in
Zmailer. Otherwise a new one will have to be written.

File Manipulation Utilities
We have added a collection of utilities for file manipulation to the
Pre-Release tape. The collection includes ls, mv,
cp, cat, rm, du, head, tail,
cmp, chmod, mkdir, and ln. These tools are
either fully POSIX compliant or being worked on to become so. cp
now has options to preserve the last-modification timestamp on copies,
thus replacing some uses of tar or cpio.

Smalltalk
Our Smalltalk system will be available in tape form when we release our
"Experimental" tape in November. It is currently available via
ftp on prep.ai.mit.edu. The current version is 1.1, with
Version 1.2 expected to be out soon. Thanks to Steve Byrne who wrote
our Smalltalk based on the blue book definition of the
language.

GNU Wish List

Wishes for this issue are for:

Someone skilled in compiler maintenance who could take over GCC
maintenance for RMS. This would probably be a full-time job.

A Sun with a SCSI port to be donated or loaned so we can make
distribution tapes. We also need machines to be donated or loaned for
use by FSF programmers and documentation people who are not located near
our offices in Cambridge.

Professors who might be interested in sponsoring or hosting research
assistants to do GNU development, with full or partial FSF support.
Several schools have done this and we welcome others to join in.

Volunteers to help write utilities and documentation. Send mail to
gnu@prep.ai.mit.edu for the task list and coding
standards.

Speech and character recognition software (if the devices aren't too
weird), with the device drivers (if possible). This would help the
productivity of at least one partially disabled programmer we
know.

Grammar checking software for English and other natural
languages.

Copies of newspaper and journal articles mentioning the GNU Project or
GNU software. Send these to the address on the front cover, or send a
citation to gnu@prep.ai.mit.edu.

Money, as always. Please remember, donations are tax-deductible. With
the latest donations, we have been able to expand our staff again. With
the increased staff we have an even greater need for donations.
One way to give us a small amount of money is to order a distribution
tape or two. This may not count as a donation for tax purposes, but it
can qualify as a business expense.

GNU Documentation

GNU is dedicated to having quality, easy-to-use, on-line and printed
documentation. GNU manuals are intended to explain the underlying
concepts, describe how to use all the features of each program, and give
examples of command use.

GNU documentation is distributed as Texinfo source files. Texinfo
source yields both a typeset hardcopy and on-line presentations,
accessed by a menu-driven system.

The following manuals, provided with our software, are also available in
hardcopy; see the order form on the inside back cover.

The Emacs Manual describes the use of GNU Emacs. It also explains
advanced features, such as outline mode and regular expression search.
The manual tells how to use special modes for programming in languages
such as C and Lisp, how to use the tags utility, and how to compile and
correct code. It also describes how to make your own keybindings and
other elementary customizations.

The Texinfo Manual describes how to write documents in Texinfo
source code. It explains the markup language used to create both an
Info file and a printed document from the same source file. This tells
you how to make tables, lists, chapters, nodes, indices, and cross
references. It also describes how to use Texinfo mode in GNU Emacs and
catch mistakes.

The Termcap Manual is often described as "Twice as much as you ever
wanted to know about Termcap." It describes the format of the Termcap
database, the definitions of terminal capabilities, and the process of
interrogating a terminal description. This manual is primarily for
programmers.

The Bison Manual covers writing grammar descriptions that can be
converted into C coded parsers. This manual assumes no prior
knowledge of parser generators. It describes the concepts and then
provides a series of increasingly complex examples before
describing what happens in considerable detail.

The GAWK Manual describes how to use the GNU implementation of AWK.
It is written for someone who has never used AWK, and describes all the
features of this powerful string manipulating language.

The Make Manual describes the GNU Make utility, a program used to
rebuild parts of other programs when and as needed. It covers makefile
writing, which specifies how a program is to be compiled and what each
part of the program depends on.

The GDB Manual explains how to use the GNU Debugger. It describes
running your program under debugger control, how to examine and alter
data as well as modify the flow of control within the program, and how
to use GDB through GNU Emacs, with auto-display of source lines.

GNU Software Available Now

The first Unix tape (called the "Release" or "Emacs" tape) contains
GNU Emacs as well as various other well-tested programs that we consider
reliable. The second Unix tape (called the "Pre-Release" or
"Compiler" tape) contains the GNU C compiler, related utilities, and
other new programs that are less thoroughly tested. The third and
fourth Unix tapes (called the "X11" tapes) contain the X11
distribution from the MIT X Consortium.

The GNU C compiler and various related programs are on a tape that we
have called our "Beta Test" tape in the past. However, this software
is becoming more stable; to reflect this change, we are renaming the
tape the "Pre-Release" tape. (The tape also contains Ghostscript,
which is not stable; for the moment, this is the best place to put
it.)

Sometime in the Fall, probably in early November, we will introduce a
new beta test tape of "experimental" software. We will put new major,
test releases of existing more-or-less stable programs such as GCC,
Emacs, and GDB on this tape when they appear, as well as new programs
such as Smalltalk and the C library. The contents of the
"Experimental" tape will fluctuate because versions will move to the
other tapes when they become stable. We are calling this the
"Experimental" tape to prevent confusion with the older Beta
tape.

We will put Ghostscript on the "Experimental" tape when it appears.
But as a convenience, we will continue to include it on the
"Pre-Release" tape until the current order form expires in January
1991, even though this action is somewhat inconsistent with the tape
naming conventions.

Please do not order an "Experimental" tape until at least November,
unless you see an announcement sooner than that on the net--we have put
nothing on this tape as yet!

See the order form on the inside back cover for details about media,
etc. Note that the contents of the 1600bpi 9-track tapes and the QIC-24
DC300XLP 1/4 inch cartridge tapes for Unix systems are the same. It is
only the media that are different.

Contents of the Emacs Release Tape

The software on this release tape is considered fairly stable, but as
always, we welcome your bug reports.

GNU Emacs
In 1975, Richard Stallman developed the first Emacs, an extensible,
customizable real-time display editor. GNU Emacs is his second
implementation of Emacs. It's the first Emacs available on Unix systems
that offers true Lisp--smoothly integrated into the editor--for
writing extensions. It also provides a special interface to MIT's free
X window system. The current version of Emacs is 18.55.
GNU Emacs has been in widespread use since 1985 and often displaces
proprietary implementations of Emacs because of its greater reliability
as well as its additional features and easier extensibility. DEC,
Berkeley, and NeXT are all distributing Emacs with their systems. When
Isaac Salzman set out to review various versions of Emacs, only one
company wanted its product to be compared with GNU Emacs. In his
review, which appeared in the July, 1989 issue of Unix Review,
Salzman concluded, "When it comes to Emacs, GNU is the way to
go."
pGNU Emacs (as of Version 18.55) runs on many Unix systems: Alliant,
Altos 3068, Amdahl (UTS), Apollo, AT&T (3B machines & 7300 PC), CCI 5/32
& 6/32, Celerity, Convex, Digital (DECstation 3100; Vax running BSD or
System V), Motorola Delta (running System V/68 release 3), Dual, Elxsi
6400, Encore (DPC, APC, & XPC), Gould, HP (9000 series 200, 300 or 800
(Spectrum) but not series 500), HLH Orion 1/05, IBM (RT/PC running 4.2 &
AIX; PS2 running AIX), Integrated Solutions (Optimum V with 68020 &
VMEbus), Intel 80386 (BSD, System V, & Xenix; not MS-DOS), Iris (2500,
2500 Turbo, & 4D), LMI (Nu), Masscomp, Megatest, MIPS, NCR (Tower 32),
Nixdorf Targon 31, Plexus, Prime, Pyramid, Sequent (Balance & Symmetry),
SONY News, Stride (system release 2), Sun (1, 2, 3, 4, SparcStation, &
386i), Tahoe, Tektronix (NS32000 & 4300), Stardent 1500 or 3000, Titan
P2 or P3, Pmax, Texas Instruments (Nu), & Whitechapel (MG1).
GNU Emacs is described by the GNU Emacs Manual, which comes with
the software in Texinfo form. See "GNU Documentation" above. Also,
since GDB is the only debugger that can debug Emacs without losing its
mind, it is included on this tape as well as the Pre-Release
Tape.

GNU Emacs Lisp Reference Manual
We now include the Texinfo source to the GNU Emacs Lisp Reference
Manual with Emacs. The manual describes the GNU Emacs Lisp programming
language in detail and is for anyone who is interested in writing
programs in GNU Emacs Lisp. See "GNUs Flashes" and "GNU
Documentation" in this bulletin for more information.

Bison
Bison is an upwardly compatible replacement for the parser generator
Yacc, with additional features. It has been in use for several years.
Bison is used for compiling GNU C, so it is included on the GNU
Pre-Release tape as well. The Bison Manual comes with the
software in Texinfo form (see "GNU Documentation" above).

X Window System, V10R4
We are no longer including a copy of X10 on our distribution tapes. It
is no longer supported by MIT, so distributing it does not make sense.
X Version 11 (currently release 4) is now pretty stable and available
from us on two separate tapes. See "Contents of the X11
Tapes."

MIT Scheme
Scheme is a simplified, lexically scoped dialect of Lisp. It was
designed at MIT and other universities to teach students programming and
to research new parallel programming constructs and compilation
techniques. MIT Scheme is written in C and runs on many Unix systems.
It now conforms to the "Revised^3 Report On The Algorithmic Language
Scheme" (MIT AI Lab Memo 848a), for which TeX source is included in the
distribution. Another good source of documentation for Scheme is
"Structure and Interpretation of Computer Programs", by Harold
Abelson and Gerald J. Sussman with Julie Sussman, the MIT Press &
McGraw-Hill Book Company, 1985.

Yale T
A variant of Scheme developed at Yale University, T is intended for
production use in program development. T contains a native-code
optimizing compiler that produces code that runs at speeds comparable to
the speeds of programs written in conventional languages. It runs on
BSD Vaxes, 680x0 systems, SPARC workstations, MIPS R2000 workstations
(including the Decstation 3100 PMAX), and NS32000 machines (including
the Encore Multimax). T is written in itself and cannot be bootstrapped
without a binary (included), but it is great if you can use it. Some
documentation is included.

texi2rofftexi2roff, written by Beverly Erlebacher, translates GNU Texinfo
files into a format that can be printed by the Unix [nt]roff programs
utilizing the mm, ms or me macro packages. It is included on all Unix
tapes so people who don't have a copy of TeX can print out GNU
documentation.

GNU Chess and NetHack
GNU Chess is a chess program, now in its second major version. The
first was written by Stuart Cracraft. The second was written and
donated by John Stanback. If a successor is found that is
significantly stronger, it could become the new GNU Chess. GNU Chess
has text-only and X display interfaces.
NetHack is a display--oriented adventure game similar to Rogue.

Contents of the Pre-Release Tape

The programs on this tape are becoming almost stable. The exception is
Ghostscript, but which we are carrying on this tape as a convenience
until January 1991, when we will distribute it only on the
"Experimental" tape. As always, we solicit your comments and bug
reports. This tape is also known as the Compiler tape, and used to be
known as the "Beta" tape.

GNU CC
The GNU C compiler is a fairly portable optimizing compiler. It
generates good code for the 32000, 680x0 (optionally with 68881/2),
80386, 860, 88000, Alliant, Convex, Tahoe, and Vax CPUs, and for these
RISC CPUs: Pyramid, SPARC, and SPUR. The MIPS RISC CPU is also
supported. Machines using these CPUs include 386 running AIX, Alliant
FX/8, Altos 3068, Apollo 68000/68020 running Aegis, AT&T 3B1, Convex C1
and C2, DECstation 3100, DEC VAX, Encore MultiMax (NS32000), Genix
NS32000, Harris HCX-7 and HCX-9, HP-UX 68000/68020, HP running BSD, IBM
PS/2 running AIX, Intel 386, Iris MIPS machine, ISI 68000/68020, MIPS,
NeXT, Pyramid, Sequent Balance (NS32000), Sequent Symmetry (i386), SONY
News, Sun 2, Sun 3 (optionally with FPA), Sun 4, SparcStation, and
Sun386i. The current version is 1.37. It supports full ANSI C. Please
refer to the "GNU Project Status Report" for more detail on
GCC.
Included with the compiler are Bison (also on the Emacs release tape),
and the perfect hash-table generating utility (Gperf), plus the Texinfo
source of the GCC Manual. This manual describes how to run and
install the GNU C compiler, and how to port it to new processors. It
describes new features and incompatibilities of the compiler, but people
not familiar with C will also need a good book on C.

Assembler and Object File Utilities
The GNU assembler (GAS) is a fairly portable, one pass assembler that is
almost twice as fast as Unix as. It is now at Version 1.35 and
works for 32x32, 680x0, 80386, Sparc (Sun 4), and Vax.
We have free versions of ar, ld, nm, size,
gprof, strip, and ranlib. The GNU linker ld
runs significantly faster than the BSD version. Our ld is the
only one that will give you source-line numbered error messages for
multiply-defined symbols and undefined references.

COFF Support
It is possible to run the entire suite of GNU software tools on System
V, replacing COFF entirely. The GNU tools can operate on BSD object
files with a COFF header the System V kernel will accept.
robotussin is supplied for converting standard libraries to this
format.

make
GNU make includes almost all the features from the BSD, System V,
and POSIX versions of make, as well many of our own extensions. These
extensions include parallelism, conditional execution, and text
manipulation. Version 3 of GNU make is fairly stable and we do not
anticipate a Version 3 release after 3.59. Work on Version 4--which
will include many functional improvements--will begin sometime this
summer. Texinfo source for the GNU make manual is provided; see "GNU
Documentation" above.

Debugger
Version 3.* of GDB, the GNU debugger, runs under BSD 4.2 and 4.3
on Vaxes and Suns (2, 3, and 4), Convex, HP 9000/300's under BSD, HP
9000/320's under HPUX, System V 386 machines (with either GNU or native
object file format), ISI Optimum V, Merlin under Utek 2.1, SONY News,
Gould NPL and PN machines, Pyramid, Sequent Symmetry (a 386 based
machine), Altos, and Encores under Umax 4.2.
GDB features incremental reading of symbol tables (for fast startup and
less memory use), command-line editing, the ability to call functions in
the program being debugged, a value history, and user-defined commands.
It can be used to debug C, C++, and FORTRAN programs.
GDB also provides for remote debugging over a serial line. Remote
debugging is the most convenient way to develop software for systems
which are too small to run a debugger; it allows you to have the
features of GDB at your disposal even on such systems.

BASH
The GNU Shell, BASH (for Bourne Again SHell), provides compatibility
with the Unix sh and provides many extensions found in csh
and ksh. It has job control, csh-style command history,
and command-line editing (with Emacs and vi modes built-in and the
ability to rebind keys).

GAWK, FLEX, and tar
GAWK is GNU's version of the Unix AWK utility; it comes with a Texinfo
manual (see "GNU Documentation" above). FLEX is a mostly-compatible
replacement for the Unix lex scanner generator written by Vern
Paxson of the Lawrence Berkeley Laboratory. FLEX generates far more
efficient scanners than lex does. GNU tar includes
multivolume support, the ability to archive sparse files, automatic
compression and decompression of archives, remote archives, and special
features to allow tar to be used for incremental and full backups
of file systems.

Freed Files from the U.C. Berkeley 4.3-tahoe Release
These files have been declared by Berkeley to be free of AT&T code, and
may be freely redistributed. They include complete sources for some
utility programs, games, and library routines; and partial sources for
many others.

RCS and CVS
The Revision Control System is used for version control and management
of large software projects. This is the latest version (4.0).
CVS, the Concurrent Version System written by Brian Berliner, manages
software revision and release control in a multi-developer,
multi-directory, multi-group environment. It is designed to work on top
of RCS Version 4, but will parse older RCS formats with the loss of
CVS's fancier features. For further details, see Berliner, Brian,
CVS-II: Parallelizing Software Development, Proceedings of the
Winter 1990 USENIX Association Conference.

diff and grep
These programs are GNU's versions of the Unix programs of the same name.
They are much faster than their Unix counterparts.

Ghostscript and gnuplot
Ghostscript is GNU's graphics language that is almost fully compatible
with PostScript. For more information on Ghostscript, please refer to
the section on Ghostscript in the "GNU Project Status Report."
gnuplot is an interactive program for plotting mathematical
expressions and data. Oddly enough, the program was neither done for
nor named for the GNU Project--the name is a coincidence.

g++, libg++, and NIH Class Library
G++ is a set of changes for GCC that compiles C++, the
well-known object-oriented language. This was the first compiler to
compile C++ directly instead of preprocessing it into C, with
great benefits for debugging and efficiency. G++ also was first
with multiple inheritance and other new features later released by AT&T
in cfront 2.0. Since G++ depends on GCC, it must be used
with the correspondingly numbered version of GCC. GDB Version
3.* includes support for debugging C++ code, which merges
in the functionality of the old program GDB+.
libg++ (the GNU C++ library) is an extensive and
documented collection of C++ classes and support tools for use
with G++.
The NIH Class Library (formerly known as OOPS (Object-Oriented Program
Support)) is a portable collection of classes similar to those in
Smalltalk-80 that has been developed by Keith Gorlen of NIH, using the
C++ programming language.
Note that Interviews has been dropped from this tape since it appears on
the "optional" X tape (See "Contents of the X11 Tapes"
below).

File Utilities and Miscellaneous
The file utilities, which include the programs listed in the "GNU
Status Report," are now included here. We also include
compress, perl (Version 3.0), c-perf (Version 2.0),
f2c (a FORTRAN to C translator), and GnuGo (the game of Go
(Wei-Chi)) on this tape.

Contents of the X11 Tapes

The two X11 tapes contain Version 11, Release 4 of the MIT X window
system. X11 is more powerful than, but incompatible with, the
no-longer-supported Version 10.

The first FSF tape contains the contents of both tape one and tape two
from the MIT X Consortium: the core software and documentation, and the
contributed clients. FSF refers to its first tape as the `required' X
tape since it is necessary for running X or GNU Emacs under X. (The
Consortium refers to its first two tapes as the `required/recommended'
tapes.)

The second, `optional' FSF tape contains the contents of tapes three and
four from the MIT X Consortium: contributed libraries and other
toolkits, the Andrew software, games, etc. (The Consortium refers to
its last two tapes as `optional' tapes.)

VMS Emacs and Compiler Tapes

We offer a VMS tape of the GNU Emacs editor, and a separate VMS tape
containing the GNU C compiler. The VMS compiler tape also contains
Bison (needed to compile GCC), GAS (needed to assemble GCC's output),
and some library and include files. Both VMS tapes include executables
that you can bootstrap from, because the DEC VMS C compiler has bugs and
thus cannot compile GNU C.

Please don't ask us to devote effort to additional VMS support, because
it is peripheral to the GNU Project.

How to Get GNU Software

All the software and publications from the Free Software Foundation are
distributed with permission to copy and redistribute. The easiest way
to get GNU software is to copy it from someone else who has it.

If you have access to the Internet, you can get the latest software from
the host prep.ai.mit.edu. For more information, read the
file `/u/emacs/GETTING.GNU.SOFTWARE' on that host. Please note
that the Internet address of prep is
18.71.0.38.

If you cannot get the software from a friend or over the net, or if you
would like to contribute some funds to our efforts and receive the
latest versions, the Free Software Foundation distributes tapes for a
copying and distribution fee. See the order form on the inside back
cover.

There are also third party groups that distribute our software: they do
not work with us, but have our software in other forms. For your
convenience, some of them are listed below. Please note that the Free
Software Foundation is not affiliated with them in any way, and is
not responsible for either the currency of their versions or the
swiftness of their responses.

Information on how to obtain some GNU programs using UUCP is available
via electronic mail from the following people. Ohio State also posts
their UUCP instructions regularly to newsgroup comp.sources.d on
USENET.

Freemacs, an Extensible Editor for MS-DOS

Freemacs, a copylefted MS-DOS editor, is one of the few editors for
small machines with a full extension language. It is the only such
editor that tries to be compatible with GNU Emacs. For more information
contact: nelson@clutx.clarkson.edu, or: Russell Nelson, 11
Grant St., Potsdam, NY, 13676. $15 sent to that address will get you a
copy. It is also available for ftp on
sun.soe.clarkson.edu. Note that the Free Software Foundation
does not distribute Freemacs; please don't ask us about it.

Thank GNUs

Thanks to all those mentioned in GNUs Flashes and the GNU Project Status
Report.

Thanks to the Japanese Unix Society for their large gift.

Thanks to Delta Microsystems who just donated an Exabyte tape
drive.

Thanks again to the Open Software Foundation for their continued
support.

Thanks to Digital Equipment Corporation for their gift.

Thanks to Bil Lewis, Dan LaLiberte, and the volunteers
who worked on the Emacs Lisp Reference Manual. Also thanks to
Warren A. Hunt, Jr. and Computational Logic, Inc. for
their support.

Thanks to the MIT Artificial Intelligence
Laboratory & MIT Laboratory for
Computer Science for their invaluable assistance of many
kinds.

Thanks to Chris Welty as well as the Computer
Science Department at Rensselaer
Polytechnic Institute for splitting Dave Lawrence's
salary with FSF and providing him computing facilities.

Thanks to Prof. Christof Koch of Caltech for his
support of Brian Fox.

Thanks to Prof. Paul Hilfinger of the UCB CS Department for
allowing Roland McGrath to use UCB resources.

Thanks to the University of Minnesota
Department of Computer Science for
allowing Mike Haertel to use their computers.

Thanks to Cliff Lasser of Thinking Machines, Inc. for
the help with upgrading to SunOS 4.0.

Thanks to Village Center Inc and Nikkei Business
Publishing, both of Japan, for their gifts.

Thanks to Information Systems and the Whitaker
College Computing Facility at MIT for
use of their machines to make our VMS master tapes.

Thanks go out to all those who have either lent or donated machines,
including Hewlett-Packard for their donation of six 68030
workstations, Brewster Kahle of Thinking Machines Corp.
(TMC) for the Sun 4/110, K. Richard Magill for the AT&T Unix
PC, Doug Blewett of AT&T Bell Labs for two Convergent
Miniframes, CMU's Mach Project for the Sun 3/60, Intel
Corp. for their 386/i860 workstation, NeXT for a NeXT
workstation, the MIT Media Laboratory for the Hewlett-Packard
68020 machine, SONY Corp. and Software Research
Associates, Inc., both of Tokyo, for three SONY News workstations, and
the MIT Laboratory of Computer
Science for the DEC Microvax.

Thanks to all those who have contributed ports and extensions, as well
as those who have contributed other source code, documentation, and good
bug reports. Thanks to those who sent money and offered help. Thanks
also to those who support us by ordering manuals and distribution
tapes.