GNU's Bulletin, vol. 1 no. 8, January, 1990
Table of Contents
This page is blank so the numbering comes out right.
Joseph Arceneaux is working on Emacs version 19. Jim Kingdon is
working on GDB. Kathy Hargreaves is working on the
regex.c, Karl Berry is working on
Ghostscript, and both Kathy and Karl have been working on transforming
character bitmaps into cubic splines, so that GNU can include
high-quality typefaces. Roland McGrath and Joy Kendall spent
last summer programming various GNU software. Mike Rowan has just
been hired as a programmer.
Mike Haertel is working on finishing the C interpreter started by
Nobuyuki Hikichi, in addition to continuing to maintain and improve
various utilities and library routines. David Lawrence is currently
expanding the GNU Emacs Lisp libraries. He is working for us at the
Rensselaer Polytechnic Institute.
Brian Fox is now working for us at Caltech. He has released the
beta version of Bash, the `Bourne Again SHell', and is now working on
GNU's daemon-based Finger. Jay Fenlason is writing the GNU
spreadsheet program Oleo, and maintaining
sed and the
GNU assembler. Jay also takes care of our backups and creating
Diane Barlow Close has written initial drafts of the documentation
for all of the small Unix utilities that have been completed for us and
is now working on a shell programming manual. Diane is the primary
author of the GAWK Manual. Mona Cosmos is working on an
introductory user manual (shell commands, files, etc.) and Grace Sylvan
is working on a C manual.
S. Opus Goldstein is still running our office. She now has an
assistant, Erica Brigid ni Judith, who answers the phone machine,
handles correspondence, and packs the orders. Robert J. Chassell is
our Treasurer. Besides dealing with foundation issues not related to
programming, he is working on an elementary introduction to programming
in Emacs Lisp.
Richard Stallman continues as a volunteer to do countless tasks,
including refining the C compiler, GNU Emacs, etc. and their
documentation. Finally, volunteer Len Tower continues as our
electronic JOAT (jack-of-all-trades), handling mailing lists and
gnUSENET, information requests, etc.
Copyright (C) 1990 Free Software Foundation, Inc.
Written by: Jim Kingdon, Robert J. Chassell, Michael Bloom, Barry Shein,
Micheal Tiemann, Richard Stallman, and Leonard H. Tower Jr.
Illustrations: Etienne Suvasa
Japanese Translator: Mieko Hikichi
This page is licensed under a Creative
Commons Attribution-NoDerivs 3.0 United States License.
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, building toward 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
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
The board of the Foundation is: Richard Stallman, President; Robert J.
Chassell, Treasurer; Gerald J. Sussman, Harold Abelson and Leonard H.
Tower Jr., Directors.
What Is Copyleft?
In the 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 bad citizens can also 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 we 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, and 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
Donation from Japan Unix Society
The Japan Unix Society has given us $10,000. They have also been
distributing Nobuyuki and Mieko Hikichi's translation of the GNU's
bulletin and have plans to distribute GNU software. We want to say
"Thank You," and encourage other user groups to support the
development of high quality free software.
Emacs Lisp Reference Manual
We will publish the long awaited, and very long, GNU Emacs Lisp
Reference Manual in March 1990. The manual describes the GNU Emacs
Lisp programming language in detail.
We have started adding long-named options to many of our utilities. For
example, instead of remembering whether to use
you can use
+verbose (or any unambiguous abbreviation) in all
programs. Eventually we hope to provide command-line completion for
long option names.
We have added some enhancements to the
indent prettyprinter from
the 4.3BSD-tahoe free software release. GNU indent improvements include
removal of arbitrary limits, GNU coding style support, and bug
GNU compiler gaining acceptance
Many people are now using our C compiler, including the Open Software
Foundation (as part of their operating system); Data General (for their
Aviion 88000 based workstation); and Intel (for their 960
GNU Chess defeats Fidelity Mach 3
A 10 game match was conducted between GNU Chess 1.55 running on a Sun
Sparcstation-1 and the strong commercial chess machine Fidelity Mach 3.
Fidelity Mach 3 is officially rated USCF 2265 (2200 is master). Most
observers acknowledge it is a true master. The match result was 7-3 in
GNU's favor. After various corrections, we arrive at a putative rating
of around 2330 (strong master) for GNU Chess 1.55 on this
This result was most unexpected since prior versions of GNU Chess had
scored no more than 3 points out of 10 against the Mach 3. The big leap
appears to come from: (1) the inclusion of Hans Eric Sandstrom's fast
move generator and (2) the Sparcstation-1, which is (apparently)
particularly suited to speedy chess processing. Minor modifications to
the book, draw factor, and thinking on opponent's time have also
Please remember this rating is based on a short match result. Certain
moves GNU Chess plays are clearly non-master in quality. Computer
masters generally achieve their strength through accuracy of tactics,
not subtle positional moves.
Boycott Apple; Defend Apple
by Richard Stallman
Most of the people I know in the computer field are disgusted with
Apple for its look-and-feel lawsuit. So, when they hear that Xerox
has sued Apple in the same way, they are usually delighted: now
Sculley may get what he deserves.
There is only one dark cloud in this inviting landscape: if Xerox
wins, the rest of us will also get what Sculley deserves.
In practical terms, a Xerox victory would have the same kind of effect
as a victory by Apple in its lawsuit against HP and Microsoft. If we
lose the freedom to develop and distribute window systems, it little
matters precisely who has taken it away. The dangerous precedent for
future cases on other kinds of software would likewise be the
However, Xerox as a monopolist could be worse in degree. Xerox was
involved in an earlier stage of window system development, so a Xerox
monopoly might cover a wider range of window systems than an Apple
For the GNU project, the practical result might be that we cannot have
a window system. We have been planning to use the X window system,
but if Xerox wins the suit, this could become illegal.
An additional danger in the Xerox suit is that public sympathy for
Xerox, due to resentment of Apple's own lawsuit and to Xerox's early
role in developing window system ideas, may help Xerox win.
This sympathy is misplaced. Xerox entered a competitive market
functioning under well-known rules: no one could copyright a user
interface. (As for ideas and techniques, copyright has never applied to
those.) They developed an interesting product that failed in the market
due to various mistakes--an event which is not unusual in business. Now
they wish to escape the consequences of their errors by changing the
rules retroactively. This is hardly fair.
In order for us to keep our freedom to write software, we must now
defeat Xerox as well as Apple. This means our task is now harder.
However, the Xerox lawsuit may aid us indirectly: the absurdity of
this mess of lawsuits may help convince the public that the whole idea
of look-and-feel copyright must be firmly rejected.
But being convinced is not enough; to end the danger of look-and-feel
suits, we must convince the courts and Congress. By expressing our
views in public, writing to the House Subcommittee on Intellectual
Property, or joining the League for Programming Freedom, we can put an
end to this wasteful legal contentiousness.
You can write to the subcomittee at:
House Subcommittee on Intellectual Property,
U.S. House of Representatives,
Washington, DC 20515
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
"Look and feel" lawsuits aim to create a new class of
government-enforced monopolies 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--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 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. On May 24th, 1989, we picketed Lotus headquarters
on account of their lawsuits against competitors, stimulating widespread
media coverage for the issue. If you have other ideas, please suggest
In the future, the League may also fight other restrictive practices,
such as 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 even more dangerous than
look-and-feel copyright, but it will be up to the members to decide
whether the League should campaign against them.
The League needs both activist members and members who only pay their
To join, write to:
League for Programming Freedom, 1 Kendall Square #143,
P.O.Box 9171, Cambridge, MA 02139, USA. Phone: (617) 492--0023.
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.
Online Book Initiative
by Barry Shein
The Online Book Initiative has been formed to make available freely
redistributable collections of information. There exist huge
collections of books, conference proceedings, reference material,
catalogues, etc., which can be freely shared. Some of it is in
machine-readable form, much of it isn't.
The purpose of the Online Book Initiative is to create a publicly
accessible repository for this information, a net-worker's
Information in the Online Book Repository will be available for free
redistribution. On-line access, magnetic media and other methods of
distribution will involve reasonable charges for the services provided,
not the information.
There are other organizations with similar overall goals (e.g. Project
Gutenberg, Common Knowledge); in some cases the details of their goals
or approaches are quite different. We are in contact with most of them
and in general our conversations are very positive. Anyone putting
textual information on-line soon develops an attitude of "the more, the
merrier;" it's a massive area of endeavor.
What We Wish to Archive
All on-line materials (other than software collections) such as books,
journals, catalogues, conference proceedings, magazines, manuals, maps,
images, technical documentation, reference works, etc. The only
software we are interested in is software specific to the viewing,
manipulation, searching and maintenance of information in the
Materials must be free of copyrights limiting redistribution by us or
any individual or organization who receives them. The Online Book
Initiative is dealing only with materials free of restrictive copyrights
because we don't want to be distracted by the complications they
We also need pointers to collections of materials that may be
available. For example, there are government collections of interesting
data which are available at reasonable costs and do not limit further
redistribution of copies obtained.
What We Need from You
Beyond machine-readable material there are huge collections of printed
material which could be redistributed if put on-line. We need people
willing to organize informal projects to scan, type or otherwise get
this material on-line for inclusion in the Online Book
We need to get in touch with Library and Information Scientists
interested in helping us create formats and structures for organizing
We need international participation to help ensure that our efforts are
useful to people everywhere.
We need people willing to participate in a Technical Advisory Board to
help us guide our efforts.
We need involvement from academia, industry and governments to help us
enrich this effort without bounds and make available a first-rate,
freely available information utility.
We need involvement from publishers who have materials that can be
included in the Online Book Repository. Many books and reference
works have become unprofitable to publish by ordinary paper means.
It's time to make these materials available!
We need involvement from the technical community to choose and implement
multi-media software standards such as hypertext, mark-up languages,
index and catalogue software, text retrieval, network access methods and
more. Standards are critical to our efforts.
What We Are Offering
world.std.com is a public access Unix system which will serve as
the initial repository. It is a Sun4/280 system and will be expanded as
Anyone can dial into the system and set up an account if they wish
direct access (617-739-WRLD). Accounts are charged and proceeds will be
used to build the Online Book Repository.
UUCP and other links will be available for the redistribution of
collections. We will also make collections available on magnetic media
for reasonable copying charges.
How to Get Involved
If you think you can help or want more information send electronic mail
email@example.com. There are two mailing lists, one for
general discussion about Online Book Initiative issues and another which
receives announcements only (the general discussion list will see all
announcements so you only need to be on one). To subscribe to either,
mail a request to
Or call us at Software Tool & Die, 617-739-0202.
Or drop by our office and chat if you're in the area: 1330 Beacon
Street, Brookline, MA 02146.
This started as an informal discussion group that called themselves
"The KiloMonkeys Project" ("Strong Typing For Weak Minds") who
wanted to figure out how to get useful materials on-line and generally
available. I have decided to make Software Tool & Die a home for this
activity and formalize the project under the new name "The Online Book
Initiative." My thanks to that original group from Monkey
Common Knowledge's Universal Index
There is an international group called Common Knowledge working to
compile public domain, copyright free and machine-readable information.
The group, consisting of journalists, scientists, librarians and others,
is amassing a database of non-copyrighted information which they call
the "Universal Index". They are doing this to provide an alternative
to the information merchants, who are increasingly successful at
reducing the amount of material available to traditional libraries.
Their address is:
Common Knowledge, Jefferson, MD 21755, USA. Phone: (301) 695--3100
New Support Company
Cygnus Support has been organized as the first for-profit corporation
that provides commercial support only for free software, that we
are aware of. Their initial support package is for GNU program
development tools at sites with 50 -- 150 seats. Contact
firstname.lastname@example.org or Cygnus Support, 814 University Ave.,
Palo Alto, CA 94301. (FSF is not affiliated with Cygnus Support; note
that numerous individual consultants are listed in the GNU Service
Directory in file `etc/SERVICE' in the GNU Emacs
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.
We are hiring both programmers and technical writers to work on Project
GNU. We want people who can do a good job and who are willing to work
for less money than most employers pay. You must either be in
Cambridge, Mass., or be able to maintain good electronic communication
with us. Contact
email@example.com or send mail to Richard
Stallman c/o the Free Software Foundation if you are interested.
Volunteers to help write utilities and documentation. Send mail to
firstname.lastname@example.org for the task list.
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.
Speech generation, speech recognition, and character recognition
software (if the devices aren't too weird), with the device drivers if
possible. This would help at least one partially disabled programmer we
know to be productive.
Grammar checking software for English and other natural
Copies of newspaper and journal articles mentioning the GNU Project.
Send these to the address on the front cover, or send a citation to
Money, as always. Please remember, donations are tax-deductible. With
the latest donations, we have again been able to expand our
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 Project Status Report
Except for bug fixes, work on Emacs version 18 has ceased. Emacs 19 is
advancing and the new features we have added include multiple X window
capability, support for European character sets and multiple fonts,
enhanced visual aspects including scrollbars, floating point numbers, a
relocating memory allocator for buffers, more sophisticated mouse
support and use of function keys, and many changes to the Lisp
Other features we are considering are associating property lists and
actions with regions of text, incremental syntax analysis for
programming languages, source-level debugging for Emacs Lisp, hooks to
be run if point moves outside a certain range, a more hyper-text
oriented Info mode, a mouse-help X window application, menu bars, and
possibly a new and improved pop-up menu system.
We don't know how much of this we will do before we make a release, or
when that release will be, so please don't ask. We will announce
We will publish the GNU Emacs Lisp Reference Manual in March
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, the Mach developers have been
working to separate this code from the kernel and they now say they have
a first version of this running in alpha test. Prof. Rashid assures us
that when this version is stable, it will be free.
Should Mach not become available, then we will start the kernel with
either MIT's TRIX kernel or Berkeley's Sprite system.
Right now, we aren't doing any kernel work. It does not make sense for
us to start a kernel project now, when we still hope to use Mach.
The GNU source-level C debugger, GDB, is now being distributed along
with Emacs version 18 as GDB version 2.8. GDB version 3.4 is
distributed on the beta-test (compiler) tape, and as soon as it is
stable it will replace version 2.8 on the Emacs tape.
When we have a stable release of GDB 3.x we will start work on GDB 4.
We plan to add over-the-ethernet debugging, remote cross-debugging, and
Dalek extensions such as
while, and event-based
debugging (see Crawford, Richard H., Ho, W. Wilson, and Olsson, Ronald
A., A Dataflow Approach to Event-Based Debugging, University of
California at Davis, Davis, CA, CSE-89-7, May, 1989), and other
Other features that we may add sometime are watchpoints, and the ability
to debug multi-threaded parallel programs.
The GNU C Compiler, GCC, is now fairly reliable. People are still
reporting bugs, but they also say they think there are fewer bugs than
in commercial compilers. NeXT builds their entire system, including
their port of the MACH kernel and NFS, with GCC. Someone has also told
us that GCC successfully compiled a System V.3 kernel. Much of the BSD
source tree has been compiled with GCC.
We are now working to stabilize GCC version 1 while incorporating new
improvements into version 2. Version 2 now has support for nested
functions, a certain amount of common subexpression elimination between
basic blocks, and a new feature for classifying instructions that can
be used to choose between long and short branches, or to provide raw
data for instruction scheduling.
Version 2 will support C
++ on the same basis as C itself. Also,
we expect to have instruction scheduling and perhaps global common
subexpression elimination. Ron Guilmette's Protoize, which generates
ANSI C prototypes, will be merged in.
We are currently implementing delayed-branch fill and pipeline
scheduling (experimentally). We may add facilities for precompilation
of header files to save time when they are large and the source files
We might also do other language front ends, but there seem to be enough
volunteer GNUers willing to do this job. Jukka Virtanen is now working
on the Pascal front-end. It is running, but before it will be ready for
alpha testing it needs some new features and the ability to detect
errors more gracefully. Other volunteers are working on FORTRAN and
Modula. So far, no one has volunteered to write Ada or Cobol.
GCC has recently been ported to the Motorola 88000, Intel 860, and
Pyramid processors. Volunteers may be working on ports to the IBM 370,
IBM PC/RT, 3B2, HP Spectrum, some sort of Gould machine, and the AMD
Roland McGrath and some 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.
Doug Schmidt has provided an improved
qsort which is faster than
Berkeley's and is also reentrant.
The C library is using a new
malloc written by Mike Haertel.
We are distributing Ghostscript, the free GNU software that provides
nearly all the facilities of a Postscript interpreter, on our beta
Karl Berry and Kathy Hargreaves are working on adding typefaces. Beside
typefaces, Ghostscript needs these enhancements: to serve as a previewer
for multi-page files; to serve other X clients by drawing on their
windows; to improve both its performance and visual quality. Other
suggestions for enhancements are welcome.
Finger and Send
We soon will have a daemon-based Finger program. It polls a selection
of hosts and is thus able to tell you where each person is logged
We are also testing a Send program for sending immediate messages to
other users across the net.
Jay Fenlason is writing a spreadsheet named Oleo (better for you than
the more expensive spreadsheet).
We may use
smail, written by Landon Noll and Ronald Karr of
zmailer, which Rayan Zachariasen is writing, or
File Manipulation Utilities
We have a collection of utilities for file manipulation, including
cmp. We use these on our own
machines and plan to release them soon.
Possible Target Machines
GNU will require a CPU that uses 32-bit addresses and integers and
addresses to the 8-bit byte. Virtual memory will probably be
GNU Emacs and GNU C require more than a meg of addressable memory in the
system, although a meg of physical memory may be enough if there is
virtual memory. 2 meg would make a noticeable improvement in
performance. Many source files need more than 1 meg of virtual memory
A hard disk will be essential; at least 30 or 40 meg will be needed to
hold a minimal system. Plus more space for the user's files, of course.
We recommend at least 80meg for a personal GNU system, and that would be
Not that it will be impossible to adapt some or all of GNU for other
architectures; but we don't currently consider it part of our
Distribution of 80386 Floppies Still Planned
We are still considering distribution of 1.2 megabyte 5.25 inch
Freemacs, an Extensible Editor for MS-DOS
Russ Nelson has a copylefted editor for MS-DOS called Freemacs. It is
one of the few editors that has a full extension language yet runs on
small machines. It is the only such editor that tries to be compatible
with GNU Emacs. For more information contact Russ via electronic mail
email@example.com) or paper mail (Russell Nelson,
11 Grant St., Potsdam, NY, 13676).
Note that the Free Software Foundation does not distribute Freemacs;
please don't ask us about it.
GNU is dedicated to having quality easy-to-use on-line and printed
documentation. GNU manuals explain the underlying concepts, describe
how to use all the features of each program, and give examples of
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 how to use GNU Emacs. It also explains
advanced features, such as outline mode and regular expression search.
The manual tells how to use the 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 make other elementary customizations.
The Emacs Lisp Reference Manual, which will be released in March
1990, describes the GNU Emacs Lisp programming language. An
introductory Emacs Lisp programming manual is also being written.
The Texinfo Manual describes how to write documents in Texinfo
source code. It describes the markup language used to create both an
Info file and a printed document from the same source file: how to make
tables, lists, chapters, nodes, indices and cross references. It also
describes how to use Texinfo mode in GNU Emacs and how to catch
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 how to
interrogate a terminal description. This manual is primarily for
The Bison Manual describes how to write a grammar description that
Bison can convert into a C program that can parse that grammar. 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 goes on 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 before, 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. The manual tells
how to write a makefile, which specifies how to recompile the parts of
your program and how they depend on each other.
The GDB Manual explains how to use GDB, the GNU Debugger. It
describes how to run your program under control of the debugger, how to
examine and alter data within the program, and how to modify the flow of
control within the program. It also explains how to use GDB through GNU
Emacs, with auto-display of source lines.
GNU Software Available Now
We now offer four Unix software source distribution tapes, plus VMS
tapes for GNU Emacs and GNU C that include sources and VMS executables.
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 "Beta test" or
"Compiler" tape) contains the GNU C compiler and 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. 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 are the same. It is only the media
that are different.
Contents of the Release Tape
The software on this tape is considered to be fairly stable, but as
always, we welcome your bug reports.
In 1975, Richard Stallman developed the first Emacs: the 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, versions 10 and 11, which makes redisplay very fast. The
current version 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 good 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 their 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."
GNU Emacs (as of version 18.55) runs on many kinds of Unix systems:
those made by Alliant, Altos 3068, Amdahl (UTS), Apollo, AT&T (3B
machines and 7300 pc), CCI 5/32 and 6/32, Celerity, Convex, Digital
(DECstation 3100; Vax running BSD or SysV), Dual, Elxsi 6400, Encore
(DPC, APC, and XPC), Gould, HP (9000 series 200, 300 or 800 (Spectrum)
but not series 500), HLH Orion 1/05, IBM (RT/PC running 4.2 and AIX;
PS2 running AIX), Integrated Solutions (Optimum V with 68020 and
VMEbus), Intel 80386 (BSD, SysV, and Xenix; not MS-DOS), Iris (2500,
2500 Turbo, and 4D), LMI (Nu), Masscomp, Megatest, MIPS, NCR (Tower
32), Nixdorf Targon 31, Plexus, Prime, Pyramid, Sequent (Balance and
Symmetry), SONY News, Stride (system release 2), Sun (1, 2, 3, 4,
SparcStation, and 386i), Tahoe, Tektronix (NS32000 system & 4300),
Texas Instruments (Nu), and Whitechapel (MG1).
GNU Emacs is described by the GNU Emacs Manual, which comes with
the software in Texinfo form. See "GNU Documentation" above.
GNU Emacs Lisp Reference Manual
We will publish the GNU Emacs Lisp Reference Manual and put the
Texinfo source on the release tape in March 1990. The manual
describes the GNU Emacs Lisp programming language in detail and is for
those interested in programming in GNU Emacs Lisp.
GDB 2.8 (GNU's Debugger) is the source-level C debugger written in 1986.
It offers many features not usually found in debuggers on Unix, such as
Emacs-style command history and substitution, a history that records all
values examined within the debugger for concise later reference,
multi-line user-defined commands, and good self-documentation.
GDB 2.8 currently runs on Vaxes under 4.2 and 4.3bsd, on Sun 3 under
systems version 2, 3 and 4, on the SPARC (Sun 4) under systems version
3.2 and 4.0, HP9K320, ISI, Merlin, SONY News, Gould NPL and PN, i386,
and on some 32000 systems. GDB 3.
* supports more systems and has
some additional features; see "Contents of the Beta Test Tape"
On-line help and a Texinfo manual for GDB comes with the software (see
"GNU Documentation" above).
Bison is an upwardly compatible replacement parser generator for 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 beta tape as
well. The Bison Manual comes with the software in Texinfo form
(see "GNU Documentation" above).
X Window System, V10R4
Version 10 of X Windows is distributed on the GNU Emacs tape; version 11
(which is totally incompatible) is distributed on the two X11 tapes.
GNU Emacs version 18.55 supports both versions 10 and 11.
Scheme is a simplified, lexically scoped dialect of Lisp, 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.
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 running speeds of programs written in conventional languages. It
runs on BSD Vaxes and a few types of 68020 systems. 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.
texi2roff 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 both tapes so that 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.
Hack is a display oriented adventure game similar to Rogue.
Contents of the Beta Test Tape
The programs on this tape are all recent releases and can be considered
to be at various stages of user testing. As always, we solicit your
comments and bug reports. This tape is also known as the Compiler
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 as of
the latest proposed standard.
Optimizations include automatic register allocation, common
subexpression elimination, invariant code motion from loops, induction
variable optimizations, constant propagation and copy propagation,
delaying popping of function call arguments, tail recursion elimination,
plus many local optimizations that are automatically deduced from the
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 now works for 32x32, 680x0,
80386, Sparc (Sun 4), and Vax.
We have free versions of
The GNU linker
ld runs significantly faster than the BSD version.
ld is the only one that will give you source-line numbered
error messages for multiply-defined symbols and undefined
It is possible to run the entire suite of GNU software tools on
System V, replacing COFF entirely. First you install the GNU compiler,
assembler, linker and other utilities. Then you use the program
robotussin---COFF medicine for your computer--to convert the
system libraries from COFF format to GNU (i.e. BSD) format.
When you compile programs, you will get ordinary GNU/BSD object files.
Linking these with the GNU linker will produce GNU/BSD executables with
a COFF header that the kernel will accept. The other GNU utilities such
strip know how to operate on these
As true COFF support is peripheral to the GNU project, please don't ask
us to expend effort on it.
GNU make includes almost all the features from the BSD, System V, and
POSIX makes, as well many of our own extensions, such as parallelism,
conditional execution, and text manipulation. Texinfo source for a
manual is provided; see "GNU documentation" above.
* 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, 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.
GAWK, FLEX and
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
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, library routines and partial sources for many
The latest version of the Revision Control System for version control
and management of large software projects.
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.
The GNU Shell, Bash (for Bourne Again SHell), provides compatibility
with the Unix
sh and provides many extensions found in
ksh. It has job control,
csh-style command history,
command-line editing (with Emacs and vi modes built-in and the ability
to rebind keys).
These programs are GNU's versions of the Unix programs of the same name.
They are much faster than their Unix counterparts.
Ghostscript is GNU's graphics language. It is almost fully compatible
with the PostScript language. It supports X version 11. Right now,
Ghostscript will accept commands in Postscript and execute them by
drawing on an X window.
Ghostscript also includes a C-callable graphics library (for client
programs that don't want to deal with the Postscript language), and also
supports IBM PCs and compatibles with EGA graphics (but please don't ask
the FSF staff any questions about this; we don't use PCs and don't have
time to learn anything about them).
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. However, we
are distributing it anyway. If you can put us in contact with the
author of this program, please do!
libg++, NIH Class Library, and InterViews
++ is a set of changes for GCC that compiles C
well-known object-oriented language. This was the first compiler to
++ 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
cfront 2.0. Since G
++ depends on GCC, it must be used
with the correspondingly numbered version of GCC. GDB version
* 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
++ programming language.
InterViews is an object-oriented, C
++ library to support the
design and implementation of window-based user interfaces for X11.
GnuGo allows the user to play the machine in a game of Go (Wei-Chi). It
is an updated version of the program called Hugo.
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'
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 beta-test 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.
Note that the DEC VMS C compiler has bugs and thus cannot compile GNU
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' has changed to
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
There are also third party groups that distribute our software: people
and organizations that 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.
These Internet sites provide GNU software for anonymous FTP:
scam.berkeley.edu, itstd.sri.com, wuarchive.wustl.edu,
wsmr-simtel20.army.mil (under `PD:<Unix.GNU>'), bu.edu,
bu-it.bu.edu, louie.udel.edu, nic.nyser.net, sauna.hut.fi,
sunic.sunet.se, freja.diku.dk, ftp.cs.titech.ac.jp,
cc.utah.edu (VMS GNU Emacs), and uunet.uu.net.
Those on the SPAN network can ask rdss::corbet.
Information on how to obtain some GNU programs using UUCP is available via
electronic mail from:
hqda-ai!merlin, ames!killer!wisner, uunet!hutch!barber,
oli-stl!root, or firstname.lastname@example.org.
Ohio State also makes GNU programs available via UUCP. They post their
instructions monthly to newsgroup
comp.sources.d on USENET.
Current details from Karl Kleinpaste
Information on getting floppy disks of GNU Emacs for the AT&T Unix PC
(aka 3B1 or PC7300) is available from:
Thanks to the Japanese Unix Society for their donation of
Thanks to our Anonymous Contributor, and thanks to
Hewlett-Packard for their donations of a $100,000 each.
Thanks to Hewlett-Packard for their donation of six 68030
Thanks to all those mentioned in GNUs Flashes and the GNU Project Status
Thanks to Bil Lewis, Dan LaLiberte, and the volunteers who
have proofread drafts and suggested improvements to the Emacs
Lisp Reference Manual; and thanks to Warren Hunt of Computer
Logic Inc. for support.
Thanks to the MIT Laboratory for Computer Science, and its director,
Professor Michael Dertouzos. LCS has provided FSF with the loan of
a Microvax for program development.
Thanks to the MIT Artificial Intelligence Laboratory for invaluable
assistance of many kinds.
Thanks to Arnold Robbins and Dave Trueman for their continued
gawk and the
Thanks to Brian Kernighan of AT&T Bell Labs for invaluable assistance
during the testing and debugging of
gawk, and for help in
clarifying several points about the language.
Thanks to Chris Welty and 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 and the CNS Lab at Caltech for
their support of Brian Fox and the use of their facilities.
Thanks to the University of Minnesota Department of Computer Science
for allowing Mike Haertel to use their computers.
Thanks to Information Systems and the Whitaker College Computing
Facility at MIT for use of their machines for making our VMS master
Thanks go out to all those who have either lent or donated us machines,
including 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 workstation, NeXT
for a NeXT workstation, the MIT Media Laboratory for the
Hewlett-Packard 68020 machine, and SONY Corp. and Software
Research Associates, Inc., both of Tokyo, for the SONY News
Thanks to all those who have contributed ports and extensions, as well as
those who have contributed other source code, documentation, and good bug
Thanks to those who sent money and offered help. Thanks also to those
who support us by ordering manuals and distribution tapes.
Free Software Foundation, Inc. | stamp |
675 Massachusetts Avenue | |
Cambridge, MA 02139 USA | here |