# GNU's Bulletin, vol. 1 no. 10 January, 1991

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 implementing active regions for a future Emacs release. Roland McGrath has returned as a full-time employee after finishing school. He is polishing up the C library and maintains GNU make. Michael Bushnell is working on kernel related projects. Jim Blandy is preparing the Emacs 19 release and planning an X-based desktop.

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`. Kathy Hargreaves and Karl Berry are working on Ghostscript, making fonts and various utilities for dealing with them. Amy Gorin is writing the manual for `tar`.

S. Opus Goldstein does a great job running our office. Miria Brigid is answering phone calls, handling correspondence, and making distribution tapes. Robert J. Chassell, our Treasurer, has been working on the new edition of the Texinfo Manual, in addition to many other Foundation issues. He now hopes to complete his introduction to programming in Emacs Lisp. Joe Turner is our part-time system administrator.

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) 1991 Free Software Foundation, Inc.

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

> and Leonard H. Tower Jr.

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

- Prices going up on GNU tapes and documentation

  We are raising prices for the first time. We hope to keep our prices stable and reasonable, but our costs have gone up since 1985. The new prices become effective on February 1, 1991.

- New library license

  We should by now have finished a new alternative General Public License for certain GNU libraries. This license permits linking the libraries into proprietary executables under certain conditions.

  The new library license actually represents a strategic retreat. We would prefer to insist as much as possible that programs based on GNU software must themselves be free. However, in the case of libraries, we found that insisting they be used only in free software tended to discourage use of the libraries, rather than encourage free applications.

  So, while we hope the new library license will help promote the development of free libraries, we have to regret that it was necessary.

  We will also be releasing a version 2 of the ordinary GPL. There are no real changes in its policies, but we hope to clarify points that have led to misunderstanding and sometimes unnecessary worry.

- Donation from Hewlett-Packard

  We want to thank Hewlett-Packard for a new donation of $75,000 as well as several machines and printers. As always, loans or donations of equipment are greatly appreciated.

- Kernel

  We still hope to have a kernel on top of Mach. We are waiting for CMU's lawyers to approve distribution conditions which will allow us to distribute the code.

  It may be possible to use the BSD kernel as a short term solution, while we wait on CMU, as it has become progressively more free over the past few years. It currently runs on the 386/486 and the HP 9000/300.

- Ghostscript

  The GNU implementation of Postscript, written by Peter Deutsch and maintained by FSF staff members Kathryn Hargreaves and Karl Berry is now in its second major version.

- C Library

  The C library is in pre-release testing. We hope to have a beta test available as soon as possible. The library is POSIX.1 compliant and has most of the functionality of POSIX.2 draft 10. It is upwardly compatible with the 4.3 BSD C library and includes many System V functions.

- Fortran front end for GCC

  A Fortran front end for GCC, written by Craig Burley, is being integrated. Progress is being made by leaps and bounds. It already compiles short simple programs. Please don't ask for more information, until we announce its release.

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

We maintain a list of people who offer support and other consulting services, called the GNU Service Directory. This list is contained in the file ``etc/SERVICE'` in the GNU Emacs distribution. Contact us if you would like a copy or wish to be listed in it.

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 it 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. These mailing lists are also gatewayed into USENET news as the `gnu.*` newsgroups. The Emacs and GCC Manuals have chapters explaining where to send bug reports and what information to include.

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. While our bug fixes may seem like individual assistance, they are not. 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 don't have the resources to help individuals. Even if we don't solve your problem, one of the other users may. Otherwise, please consult the Services Directory.

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

# Protect Your Freedom to Write Programs

by Richard Stallman

Ten years ago, programmers were allowed to write programs using all the techniques they knew, and providing whatever features they felt were useful. This is no longer the case. The new monopolies, software patents and interface copyrights, have taken away our freedom.

"Look and feel" lawsuits attempt to monopolize well-known command languages; some have succeeded. Copyrights on command languages enforce gratuitous incompatibility, close opportunities for competition, and stifle incremental improvements.

Software patents are even more dangerous; they make every design decision in the development of a program carry a risk of a lawsuit. It is difficult and expensive to find out whether the techniques you use are patented; it is impossible to find out whether they will be patented in the future.

The League for Programming Freedom is a grass-roots organization of professors, students, businessmen, programmers and users dedicated to bringing back the freedom to write programs. If you are offended that you might be sued for patent infringement when you make computer systems that use X Windows or `compress`, if you are offended that you aren't allowed to support the commands most users know when you write a spreadsheet, don't just grumble--do something about it! You can help abolish the new monopolies by joining the League.

The League for Programming Freedom works to abolish the new monopolies by publishing articles, talking with public officials, boycotting egregious offenders, and possibly in the future by intervening in court cases. On May 24, 1989, the League picketed Lotus headquarters on account of their lawsuits, and then again on August 2, 1990. These marches stimulated widespread media coverage for the issue.

Convincing Congress is a big job. To impress public officials, the League needs more members: both activist members and members who only pay their dues. Additional corporate members are also needed. The dues are $42 for professionals, $21 for others, except students whose dues are $10.50. To join, mail your check, name and address to:

    League for Programming Freedom
    1 Kendall Square #143
    P.O.Box 9171
    Cambridge, MA  02139

Please also send your phone number and email address, and mention anything noteworthy you have done, especially in business or software.

For more information, please phone the League at (617) 243-4091, send Internet mail to `league@prep.ai.mit.edu`, or write to the address above.

Note: The League for Programming Freedom is not an organization for free software, and it does not endorse the GNU project or the Free Software Foundation. Most League members write proprietary software, and some have founded companies that do so.

However, the FSF endorses the League strongly--perhaps desperately would be a better word. Patents are especially devastating for free software. The patent holders can read our source code to see what techniques we use, and we can't afford to license patents. (Not to mention the fact that if we agree to pay even one cent per copy made of a program, that program can't be free any more.)

In a few years, it very likely will be illegal to distribute a complete free operating system in the United States, because too many important parts would infringe patents. The result may be that future GNU software is released for distribution only outside the United States.

If you are reading this, there is a good chance that you appreciate the GNU project and would like it to produce more software. If you can do only one thing to help the GNU project, joining the League is the most important thing you can do.

# GNU Project Status Report

- GNU Emacs

  GNU Emacs 18.56 has just been released. This version fixes several bugs. Also, the undo facility has been completely rewritten and now holds unlimited data temporarily, and a user-specified amount for the long term.

  Berkeley is distributing GNU Emacs with the 4.3 BSD distribution, and numerous companies distribute it also.

  Emacs 18 maintenance continues for simple bug fixes. Version 19 approaches release, counting among its new features: before and after change hooks, source-level Lisp debugging, 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.

  A couple of other features of Emacs 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 later releases of Emacs 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 various windows showing one buffer; hooks to be run if point or mouse moves outside a certain range; incrementally saving undo history in a file; static menu bars; and better pop-up menus.

- Shells

  Brian Fox has completed the Bourne Again shell (BASH), an imitation of the Korn shell. It now has job control and both Emacs-style and `csh`-style command history.

  There is a good chance that the `csh` from BSD will be declared free software by Berkeley, so we won't need to write that. In any case, BASH rather than `csh` will be the default shell in the GNU system.

- Kernel

  We are still interested in a multi-process kernel running on top of Mach. The CMU lawyers are currently deciding if they can release Mach with distribution conditions that will enable us to distribute it. If they decide to do so, then we will probably start work. CMU has available under the same terms as Mach a single-server partial Unix emulator named Poe; it is rather slow and provides minimal functionality. We would probably begin by extending Poe to provide full functionality. Later we hope to have a modular emulator divided into multiple processes.

- 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, which used to be distributed on the Emacs tape, is now obsolete, and has been replaced by version 3.5.

  John Gilmore is steadily improving GDB, particularly its kernel debugging facilities. He has added watchpoints, cross-debugging between dissimilar CPU types, and a host of minor features. He plans 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. The Open Software Foundation uses GCC as the compiler in their operating system, Data General uses it for their Aviion 88000 based workstation, Intel uses it for their 960 microprocessor, and Berkeley is adding it to the BSD distribution. We have also been told that GCC successfully compiled a System V.3 kernel. GCC has compiled all of the BSD source tree except the kernel, and work is in progress to enable it to compile the kernel as well.

  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.

  While version 1 is being maintained solely to fix bugs, new work is being done in version 2. It now has instruction scheduling, a certain amount of CSE between basic blocks, and a new feature for classifying instructions. Function-wide CSE is being finished up, as is loop unrolling.

  Version 2 can generate code for the IBM PC/RT, the IBM RS/6000, the Motorola 88000, the AMD 29000 and the TRON. Ports for the IBM 370, the HP Spectrum, and the NCUBE are on their way. More general calling conventions are supported, so on the Sparc, GCC can now use the standard conventions for structure arguments and values. Not all of the existing version 1 machine descriptions have been updated yet; some do not work, and others need work to take full advantage of instruction scheduling and delay slots.

  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 compiling Objective C programs has been donated by NeXT.

  Please don't call for more information on version 2 until it's released.

  Front ends for Modula-2 and Modula-3, 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. Mike Haertel has written an impressively fast `malloc`. The GNU regular-expression functions (`regex`) now mostly conform to the POSIX.2 standard.

- Ghostscript

  Ghostscript provides nearly all the facilities of a Postscript interpreter. Peter Deutsch, the primary author and maintainer of Ghostscript, has released a new version of that program, together with FSF staff members Kathryn Hargreaves and Karl Berry. Karl and Kathy are also working on producing free fonts. Highlights of this release include:

  - Drivers for the HP DeskJet, HP LaserJet, and Epson LX-800 printers (all in low density mode). You can build with multiple drivers and choose a driver at run time.

  - Search paths for fonts and for the Ghostscript library files.

  - Support for Adobe Type 1 font representation (though hints are ignored).

  - A set of scalable fonts for all the standard Postscript fonts (plus a few more) algorithmically derived from the X11 BDF fonts. The conversion program is also included so you can convert other fonts.

  - The ability to render into a bitmap in memory, and then write the bitmap out in PPM format (or any other format you program).

  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 needs enhancement: to serve as a previewer for multi-page files, to serve other X clients by drawing on their windows, and to improve both the performance and the visual quality of the output. It needs more fonts.

  Version 2.1 will be released soon. It fixes the bugs that have been reported. It is also much faster; the X interface in particular has been sped up several times over. It should include support for the extended color operators (CMYK color model, and colorimage) and a contributed driver for the HP PaintJet, which a lot of people have asked for.

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

- 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 and 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 PCs and compatibles.

- groff

  James Clark has released groff--GNU troff and related programs. So far, it includes `troff`, `pic`, `tbl`, `eqn`, the `-man` macros, drivers for Postscript and typewriter-like devices, and a driver producing TeX `dvi` format. Also included is a version of the Berkeley `-me` macros, and an enhanced version of the MIT X11R4 previewer `xditview`. He is currently working on the `-ms` macros and `refer`. Groff is written in C`++`. Useful additions would be the `-mm` macros and the `grap` preprocessor.

# Help Keep Government Software Free

by Richard Stallman

For 200 years, the US copyright system has placed everything written by the federal government in the public domain. This makes sense: we have all paid for it, so we should all own it.

Now there is a move to change this. If it succeeds, quite a lot of software that would be free today will be sold instead. We will pay to develop the software, and then we'll have to pay again to use it. And the GNU system won't be able to use it, since it won't be free.

We think this is scandalous. If you agree, please help prevent it, by writing to Congress:

    House Subcommittee on Intellectual Property
    2137 Rayburn Building
    Washington, DC 20515

# 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, which yield both typeset hardcopy and on-line presentation via the menu-driven Info 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 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. It assumes no prior knowledge of parser generators. This manual 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 Wish List

Wishes for this issue are for:

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

- Full-time staff to work on Project GNU both as programmers and as technical writers. You must either be in Cambridge, Mass or be able to maintain good electronic communication with us. We also like to find a programmer who would also serve as volunteer coordinator. Contact `rms@prep.ai.mit.edu` or send mail to Richard Stallman c/o the Free Software Foundation if you are interested.

- Companies to lend us capable programmers and technical writers for at least six months. True wizards may be welcome for shorter periods, but we have found that six months is the minimum time for a good programmer to finish a worthwhile project.

- A 300 MB disk drive for an IBM/RT and a QIC-150 tape drive for a Sun. We also need machines to be donated or loaned for FSF programmers and documenters who are not near our offices in Cambridge.

- Professors who might be interested in sponsoring or hosting research assistants to do GNU development, with FSF support.

- 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 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 "Emacs" tape contains GNU Emacs as well as various other well-tested programs. The second Unix tape, called the "Compiler" tape, contains the GNU C compiler, related utilities, and other new programs. 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 for UNIX systems are the same. It is only the media that are different.

### Contents of the Emacs 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.56.

  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.

  GNU Emacs (as of version 18.56) 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; DECstation 5000; Vax running BSD, System V, or VMS), 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; PS/2 or RS/6000 running AIX), Integrated Solutions (Optimum V with 68020 & VMEbus), Intel 80386 (BSD, Microport, System V, & Xenix; not MS-DOS), Iris (2500, 2500 Turbo, & 4D), LMI (Nu), Masscomp, Megatest, MIPS, NCR (Tower 32), Nixdorf Targon 31, Plexus, Prime EXL, 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 getting confused, it is included on this tape as well as the Compiler Tape.

- GNU Emacs Lisp Reference Manual

  This 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 "GNU Documentation" above).

- Bison

  Bison is an upwardly compatible replacement for the parser generator Yacc, with additional features. It has been in use for several years. It is used for compiling GNU C, so it is also on the GNU Compiler tape. The Bison Manual comes with the software in Texinfo form; see "GNU Documentation" above..

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

- Data Compression Software

  Some of the contents of our tape distribution is compressed; these are currently indicated by a ``.Z'` suffix. We include software on the tapes to compress/decompress these files. Currently, we use the `compress` program, but it appears that its algorithm is patented. We hope to switch to another program that stands a chance of not being patented. Whatever program is on your tape will uncompress the compressed files on it.

- GNU Chess and NetHack

  GNU Chess is a chess program, now at version 3.1. It has text-only and X display interfaces. NetHack is a display--oriented adventure game similar to Rogue. We distribute NetHack Version 2.3.

### Contents of the Compiler Tape

The programs on this tape are becoming stable. The exception is Ghostscript, but we are carrying it on this tape as a convenience. As always, we solicit your comments and bug reports. This tape used to be known as the "Pre-Release" or "Beta Test" tape.

- GNU CC

  The GNU C compiler is a fairly portable optimizing compiler. It generates good code for the 32000, 680x0, 80386, Alliant, Convex, Tahoe, and Vax CPUs, and for these RISC CPUs: i860, 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, DECstation 5000, 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 (System V, Xenix, BSD, but not MS-DOS), 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.39. It supports full ANSI C. Please refer to the "GNU Project Status Report" for more detail on GCC.

  A good programmer will be able to make a cross compiler on most of these systems to cross-compile to most of these architectures. Most of the work will be with the compiler support tools, not GCC itself.

  Included with the compiler are Bison (also on the Emacs release tape), the perfect hash-table generating utility (Gperf), and 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. (We are not yet publishing this manual on paper. It's changing too fast.)

- 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.39 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` is fast and is the only one that will give you source-line numbered error messages for multiply-defined symbols and undefined references.

  We also now distribute a dynamic linker, `dld`, written by W. Wilson Ho. This is a library which you link with your program which then enables it to dynamically load object files into the running binary.

- 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.59 of GNU make is fairly stable. Work on Version 4--which will include many functional improvements--is in progress. Texinfo source for the GNU make manual is provided; see "GNU Documentation" above.

- Debugger

  Version 3.5 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 HP/UX, 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 Encore 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, remote debugging over a serial line, a value history, and user-defined commands. It can be used to debug C, C`++`, and FORTRAN programs. It comes with a Texinfo manual (see "GNU Documentation" above).

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

  We are not yet distributing the files marked free on the 4.3-reno release. Berkeley plans to release a revised tape of free software in late January or early February. When this happens we will begin distributing all those files instead of the 4.3-tahoe files. Note that much more will be free on that tape than currently on the 4.3-tahoe tape.

- RCS and CVS

  The Revision Control System is used for version control and management of large software projects. This is the latest version: 5.5.

  CVS, the Concurrent Version System, manages software revision and release control in a multi-developer, multi-directory, multi-group environment. It works best on top of RCS Versions 4 and above, but will parse older RCS formats with the loss of CVS's fancier features. For more 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

  Ghostscript is GNU's graphics language that is almost fully compatible with Postscript. See the section in the "GNU Project Status Report."

- `gnuplot`

  `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. In so far as is possible, G`++` is kept compatible with the evolving draft ANSI standard. Source code is accompanied by the GNU G`++` Users Guide. (We are not yet publishing this manual on paper because it is changing too fast.) G`++` compiles source quickly, provides good error messages, and works well with GDB. 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 are now included here. GNU `indent` has been added to this tape as well. We also include `texi2roff`, `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 or available 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` (the Internet address is `18.71.0.38`). For more information, get the file ``/pub/gnu/emacs/GETTING.GNU.SOFTWARE'` from `prep`.

If you cannot get the software one of these ways, or if you would like to contribute some funds to our efforts and receive the latest versions, we distribute tapes for a copying and distribution fee. See the order form below.

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 TCP/IP Internet sites provide GNU software via anonymous `ftp` (use your `ftp` program, user name: `anonymous`, password: `your name`):

    scam.berkeley.edu, itstd.sri.com, wuarchive.wustl.edu,
    wsmr-simtel20.army.mil (under `PD:<UNIX.GNU>'),
    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), labrea.stanford.edu,
    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, hqda-ai!merlin,
    acornrc!bob, 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).

# Free Software for MS-DOS

### GNUish MS-DOS project

Some GNU software has been ported to MS-DOS, but the FSF avoids involvment in this effort, because it is peripheral to the GNU project. Contact Thorsten Ohl, `td12@ddagsi3.bitnet`, who is organizing distribution of such ports. More information is in ``/pub/gnu/MSDOS'`, obtainable via anonymous `ftp` on `prep.ai.mit.edu`.

### Freemacs, an Extensible Editor for MS-DOS

Russ Nelson, `nelson@sun.soe.clarkson.edu`, has written a small but programmable editor for MS-DOS that is somewhat compatible with GNU Emacs. The .EXE file is only 21K because it only contains a language interpreter and text editor primitives. Most of the programming is done in MINT, a string-oriented language. You may freely copy this software. Russ asks only that you return improvements to him for incorporation into the package for the rest of us.

The distribution is available from these sources: mail a message consisting only of `help' to (for UUCP) `sun.soe.clarkson.edu!archive-server` or (for Bitnet) `archive-server%sun.soe@omnigate`, the mailer can reply to any address with an `@' in it, except `.UUCP` pseudo-addresses; anonymous `ftp` ``/e/freemacs'` from `rape.ecs.clarkson.edu` `[128.153.13.196]` or `wsmr-simtel20.army.mil` (under ``PD:<MSDOS.FREEMACS>'`); `UHUG BBS: (315)268-6667` 1200/2400 8N1, 24 hrs, file area 25, no registration required to download Freemacs; or send $15 (copying fee) to Russ Nelson, 11 Grant St., Potsdam, NY 13676, Phone: (315) 268-6455, specify floppy format: `5.25"/1.2 MB`; `5.25"/360K`; or `3.50"/720K.`

Please do not contact the Free Software Foundation about Freemacs. We do not maintain it, and we have no information on it other than the above.

Free Software Foundation Order Form

first page

Free Software Foundation Order Form

second page

# GNU in Japan

Mieko, `h-mieko@sra.co.jp`, & Noboyuki Hikichi, `hikichi@sra.co.jp`, continue to work on the GNU Project in Japan. They translate GNU information, write columns, request donations and consult with people about GNU. They are looking for a lawyer volunteer to review their Japanese translation of the GNU Library General Public License. They held a GNU BOF at the JUS Symposium in December 1990. Many groups in Japan are redistributing GNU software, including JUG (a PC user group), Nikkei Business Publications and ASCII (publishers), Fujitsu FM Towns, and the Japan Unix Society. Anonymous UUCP is also now available in Japan.

# Thank GNUs

Thanks to all those mentioned above in "GNUs Flashes", the "GNU Project Status Report" and "GNU Software Available Now".

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

Thanks to Shawn Keller for making tapes, to Devon McCullough for technical assistance, to Carol Botteron for proofreading and other assistance, and to Mieko and Nobuyuki Hikichi for their invaluable help raising both funds and consciousness in Japan.

Thanks to Chet Ramey for his continuing work on improving BASH.

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 of Japan for their gift.

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

Thanks to the Open Software Foundation for the Compaq 386.

Thanks go out to all those who have either lent or donated machines, including Hewlett-Packard for six 68030 workstations, two 80486 machines, and four Spectrum workstations, Brewster Kahle of Thinking Machines Corp. for the Sun 4/110, K. Richard Pixley 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, the MIT Laboratory of Computer Science for the DEC Microvax, and Delta Microsystems for an Exabyte tape drive.

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