# GNU's Bulletin, vol. 1 no. 9 - June, 1990

The GNU's Bulletin is the semi-annual newsletter of the Free Software Foundation, bringing you news about the GNU Project.

Free Software Foundation, Inc. Telephone: (617) 876-3296
675 Massachusetts Avenue Electronic mail: gnu@prep.ai.mit.edu
Cambridge, MA 02139 USA

# 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.

Richard Stallman continues as a volunteer who does countless tasks, including refining the C compiler, GNU Emacs, etc., and their documentation. Finally, volunteer Len Tower remains our electronic JOAT (jack-of-all-trades), handling mailing lists and gnUSENET, information requests, and the like.

### GNU's Bulletin

Copyright (C) 1990 Free Software Foundation, Inc.

Written by: Michael Rowan, Robert J. Chassell, Richard Stallman,

> Leonard H. Tower Jr., and Michael Bloom

Illustrations: Etienne Suvasa

Japanese Edition: Mieko Hikichi and Nobuyuki Hikichi

> Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the copyright notice and permission notice are preserved, and that the distributor grants the recipient permission for further redistribution as permitted by this notice.

# 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.

The board of the Foundation is: Richard Stallman, President; Robert J. Chassell, Treasurer; Gerald J. Sussman, Harold Abelson and Leonard H. Tower Jr., Directors.\vfil

# 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:

    League for Programming Freedom, 1 Kendall Square #143,
    P.O.Box 9171, Cambridge, MA  02139, USA.   Phone: (617) 492--0023.
    league@prep.ai.mit.edu

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:

    UUNET Communications Services, 3110 Fairview Park Drive -- Suite 570,
    Falls Church, VA   22042    Phone: (703) 876--5050

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 Emacs Lisp Reference Manual covers the GNU Emacs Lisp programming language in great depth. It goes into data types, control structures, functions, macros, byte compilation, keymaps, windows, markers, searching and matching, modes, syntax tables, operating system interface, etc.

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

We offer 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 "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 {\sl 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 {\sl 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.

- `texi2roff`

  `texi2roff`, 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.

These Internet sites provide GNU software via anonymous `ftp`:

    scam.berkeley.edu, itstd.sri.com, wuarchive.wustl.edu,
    wsmr-simtel20.army.mil (under `PD:<UNIX.GNU>'), bu.edu,
    louie.udel.edu, nic.nyser.net, ftp.cs.titech.ac.jp,
    funic.funet.fi, sunic.sunet.se, freja.diku.dk,
    gatekeeper.dec.com, mango.miami.edu (VMS G++),
    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 the following people. Ohio State also posts their UUCP instructions regularly to newsgroup `comp.sources.d` on USENET.

    hao!scicom!qetzal!upba!ugn!nepa!denny, acornrc!bob,
    hqda-ai!merlin, uunet!hutch!barber, sun!nosun!illian!darylm,
    oli-stl!root, bigtex!james, postmaster@uunet.uu.net, and
    karl@tut.cis.ohio-state.edu (or osu-cis!karl).

### 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.

                                                    -------
                                                   |       |
    Free Software Foundation, Inc.                 | stamp |
    675 Massachusetts Avenue                       |       |
    Cambridge, MA  02139  USA                      | here  |
                                                   |       |
                                                    -------

Use rule at top of this page for page 1.