# GNU's Bulletin, vol. 1 no. 8

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 working on Emacs version 19. Jim Kingdon is working on GDB. Kathy Hargreaves is working on the regular-expression routines `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 `tar`, `sed` and the GNU assembler. Jay also takes care of our backups and creating distribution tapes.

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.

### GNU's Bulletin

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

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

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

--Benjamin Franklin

# GNUs Flashes

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

- Long-named options

  We have started adding long-named options to many of our utilities. 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.

- `indent`

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

- 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 microprocessor).

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

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

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

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

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

"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 them.

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

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

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

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

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

We need to get in touch with Library and Information Scientists interested in helping us create formats and structures for organizing the repository.

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

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 to `obi@world.std.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 `obi-request@world.std.com`.

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.

Postscript

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

# 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 `tiemann@ai.mit.edu` 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 distribution.)

# 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 `rms@ai.mit.edu` 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 `gnu@prep.ai.mit.edu` 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 languages.

- Copies of newspaper and journal articles mentioning the GNU Project. 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 again been able to expand our staff.

  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

- GNU Emacs

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

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

  We will publish the GNU Emacs Lisp Reference Manual in March 1990.

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

- GNU Debugger

  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 `if`, `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 features.

  Other features that we may add sometime are watchpoints, and the ability to debug multi-threaded parallel programs.

- C Compiler

  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 are small.

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

- C Library

  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.

- Preliminary Ghostscript

  We are distributing Ghostscript, the free GNU software that provides nearly all the facilities of a Postscript interpreter, on our beta tape.

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

  We are also testing a Send program for sending immediate messages to other users across the net.

- Oleo

  Jay Fenlason is writing a spreadsheet named Oleo (better for you than the more expensive spreadsheet).

- GNU Mailer

  We may use `smail`, written by Landon Noll and Ronald Karr of Amdahl, or `zmailer`, which Rayan Zachariasen is writing, or perhaps both.

- File Manipulation Utilities

  We have a collection of utilities for file manipulation, including `ls`, `mv`, `cp`, `cat`, `rm`, `du`, `head`, `tail` and `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 required.

  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 to compile.

  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 fairly cramped.

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

- Distribution of 80386 Floppies Still Planned

  We are still considering distribution of 1.2 megabyte 5.25 inch diskettes.

### 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 (`nelson@clutx.clarkson.edu`) 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 Documentation

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 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 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 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 how to interrogate a terminal description. This manual is primarily for programmers.

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.

- GNU Emacs

  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.

- Debugger

  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" below.

  On-line help and a Texinfo manual for GDB comes with the software (see "GNU Documentation" above).

- Bison

  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.

- MIT Scheme

- 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 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`

  `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 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 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 machine description.

  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 `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. 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 as `size`, `nm` and `strip` know how to operate on these encapsulated files.

  As true COFF support is peripheral to the GNU project, please don't ask us to expend effort on it.

- `make`

  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.

- 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, 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 `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, library routines and partial sources for many others.

- RCS

  The latest version of the Revision Control System for version control and management of large software projects.

- CVS

  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.

- 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, command-line editing (with Emacs and vi modes built-in and the ability to rebind keys).

- `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. 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!

- `g++`, `libg++`, NIH Class Library, and InterViews

  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.

  InterViews is an object-oriented, C`++` library to support the design and implementation of window-based user interfaces for X11.

- GnuGo

  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' 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 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 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'` has changed to `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: 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:

    hao!scicom!qetzal!upba!ugn!nepa!denny, acornrc!bob,
    hqda-ai!merlin, ames!killer!wisner, uunet!hutch!barber,
    mit-eddie!bloom-beacon!ht!spt!gz, sun!nosun!illian!darylm,
    oli-stl!root, or info@uunet.uu.net.

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 `karl@tut.cis.ohio-state.edu` or `...!osu-cis!karl`.

Information on getting floppy disks of GNU Emacs for the AT&T Unix PC (aka 3B1 or PC7300) is available from: `brant@manta.pha.pa.us` or `...!bpa!manta!brant`.

# Thank GNUs

Thanks to the Japanese Unix Society for their donation of $10,000.

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

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

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 work on `gawk` and the `gawk` manual.

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

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

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