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

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

Randy Smith has joined us as a full-time programmer. He is currently maintaining and extending GDB. Our summer people, Pete TerMaat, Phil Nelson, and Mike Haertel, have returned to school--to study or to teach. Pete worked on GDB, Phil on the GNU versions of `cpio' and `dbm', and Mike, who continues to work for us part time, on `diff', `egrep' and `sort'.

Joe Arceneaux spent a couple of weeks with us this fall making Emacs version 19 work with X windows version 11.

Nobuyuki and Mieko Hikichi continue with us on loan from Software Research Associates in Tokyo. At FSF, Nobu is extending GDB with a C interpreter that he is writing. Mieko is helping user-test GNU documentation and is translating some of it into Japanese. Diane Barlow Close, our first full-time technical writer, is writing the documentation for all of the small Unix utilities that have been completed for us, while living in San Diego, CA.

Meanwhile, Brian Fox is still working for us at UC Santa Barbara. He recently completed GNU's version of `sh', the `Bourne Again Shell', that incorporates features found in the Korn and C shells. Jay Fenlason is writing a spreadsheet program for the project and maintaining the GNU assembler, `tar', and `sed'.

Opus Goldstein is our jack-of-all-trades office staff. If you call our office, she is the one who answers. She fills the orders, and handles the day-to-day operations of the Foundation. Robert Chassell is our Treasurer. Besides dealing with corporate issues not related to programming, he is working on an elementary introduction to programming in Emacs Lisp.

Richard Stallman continues to do countless tasks, including refining the C compiler, GNU Emacs, etc. and their documentation. Paul Rubin is writing a graphic editing extension for GNU Emacs. Finally, Len Tower continues as our electronic JOAT (jack-of-all-trades), handling mailing lists, information requests, system mothering et al.

### GNU's Bulletin

Copyright (C) 1989 Free Software Foundation, Inc.

Written by: Randy Smith, Paul Rubin, Robert Chassell,
Leonard H. Tower Jr., Richard Stallman and Opus Goldstein

Illustrations: Etienne Suvasa

> 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 called "GNU" (GNU's Not Unix) that will be upward 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 individual users of GNU programs and systems. 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.

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

# What Is Copyleft?

In the article "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.) A copy of the complete license is included in all GNU source code distributions and many manuals, and we will send you a printed copy on request.

# GNU in Japan

by Mieko Hikichi

The GNU Project was described in a seminar at the Unix Fair in Tokyo last December This seminar was the first official introduction of GNU in Japan.

I had translated the GNU's Bulletin into Japanese and 500 copies were distributed. Mr. Yoshitaka Tokugawa talked about what is GNU, how to get GNU software and about the GNU license. This was followed by a talk about the Japanese version of GNU Emacs by Mr. Handa Ken'ichi.

# The General Public License as a Subroutine

We are about to make a sweeping, revolutionary change in the General Public License. The terms for copying will be essentially unchanged, but the architecture of the legalbol framework used to embody them will make a quantum leap.

In the past, each copylefted program had to have its own copy of the General Public License contained in it. Often it was necessary to modify the license to mention the name of the program it applied to. Other people who wanted to copyleft programs had to modify the text even more, to replace our name with theirs.

To make it easier to copyleft programs, we have been improving on the legalbol architecture of the General Public License to produce a new version that serves as a general-purpose subroutine: it can apply to any program without modification, no matter who is publishing it. All that's needed is a brief notice in the program itself, to say that the General Public License applies. Directions on doing this accompany the General Public License, so you can easily copyleft your programs.

We've also taken the opportunity to make it explicit that any subsequent changes in future versions the General Public License cannot take away the rights you were previously given, if you have a program that you received under an earlier version.

The new version will appear soon; new GNU programs and new versions of existing GNU software will refer to it to specify their copying conditions.

# GNUsworthy Flashes

- Donation from Hewlett-Packard

  As part of their program to make their machines more attractive to academic users, Hewlett-Packard is giving us $100,000. This money was given to us to make sure that we have funds to rent office space for several years. Of course, if someone were to give us office space, we could use the money to hire more people.

  In addition, the company is supporting Michael Tiemann's work at Stanford to port G`++` to the Spectrum.

- New Machines

  Since the last GNUs Bull in June 1988, we have received three new machines on loan and three as gifts. Thinking Machine, Inc. has loaned us a Sun 4/110, and Intel has loaned us an Intel 386. K. Richard Magill has given us an AT&T Unix PC and Hewlett-Packard is giving us three Spectrums in addition to the funds mentioned above. This makes for a total of 13 machines given or loaned to FSF.

- Some parts of BSD are becoming free

  After years of urging from us and others, the people who maintain Berkeley Unix have decided to release various parts of it (those which don't contain AT&T code) separately as free software. This includes substantial programs which we hope to use in GNU, such as TCP/IP support and possibly the C-shell.

  The files freed in the 4.3 BSD-Tahoe distribution are now on the beta test tape.

  Also, the next release of Berkeley Unix may contain the Make, AWK, and `sh' from the GNU Project instead of those from Unix. The reason is that the people at Berkeley would like to have improvements in these programs like those in system V.3, but they find the new restrictions on V.3 licenses unpalatable. Both we and they hope they never get a V.3 license. We may help them avoid it by providing alternative software.

  GNU Make already supports the system V features, as does GAWK. Both programs are in beta test.

- The Bison manual is here

  Dick Karpinski of UCSF offered a prize of $1000 for a usable draft of a manual for Bison (our species of Yacc). Chuck Donnelly responded with a draft which we have turned into a final version. Texinfo source comes on both the release and beta test tapes. Hardcopy may be ordered directly from the Foundation.

- Ghostscript status

  Ghostscript, the free Postscript for GNU, is being distributed. It is now in beta test.

- NeXT, Inc. is using GNU software on their machines

  NeXT has decided to use GNU Emacs, GCC, GAS and GDB as part of their standard operating system; they are the first computer manufacturer to do so. Other manufacturers have expressed an interest; we are awaiting developments.

- Distribution of 80386 Floppies on hold

  We are holding investigating distribution of floppies for 80386 machines until we have a working library. Since system V on the 80386 usually comes with no library as well as no C compiler, no assembler and no linker, we don't think this distribution medium will be worth while until we can supply all of them.

  This is being worked on, but it will not be ready very soon. We will announce on the `info-gnu` mailing list and `gnu.announce` newsgroup when we have more information.

- texi2roff

  Beverly Erlebacher of Toronto, Canada wrote `texi2roff'. This program 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. Though we won't be maintaining this program, we include it on our tapes to allow people without TeX to print out our documentation.

## GNU Wish List

Wishes for this issue are for:

- Volunteers to help write utilities and documentation. One important programming project is writing a Fortran compiler front end for GCC; documentation particularly needed includes manuals for Ghostscript and FLEX.

- FSF is looking to hire additional full-time people to work on Project GNU both as programmers and as technical writers. We are looking for a few good entities (male or female, carbon or silicon based) to work for an activist wage. You must either be in Cambridge, Mass or be able to maintain good electronic communication with us. Contact `rms@wheaties.ai.mit.edu` or send mail to Richard Stallman c/o the Free Software Foundation if you are interested.

- Office space (lent or donated) in or around Kendall Square.

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

- Money, as always. Please remember, donations are tax-deductible. With the latest donations, we have 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 for many people it can qualify as a business expense.

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

- Interesting, fun GNU graphics. Ghostscript source or otherwise. See GNU "Clip Art" Contest later in this issue for more details.

- Copies of newspaper and journal articles mentioning the GNU Project. Send these to the addresses on the front cover.

# My Thoughts on the GNU License

by Doug Lea

[This article is reproduced from a posting to the `info-g++` and `info-gcc` mailing lists and does not necessarily represent the opinions of the Free Software Foundation.--- Editor]

I have not participated publicly in the recent discussions about the legal ramifications of the GNU License Agreement until now because (1) I am not a lawyer and (2) I find myself in agreement with Stallman's decision to proceed very carefully in deciding whether and how to modify the Agreement to accommodate people who would like to sell works that may or may not be considered as `derived' from GNU software, depending on what `derived' is defined to mean.

However, the recent proposal by Gilmore and others appears to demand a personal response from me (not RMS or FSF) as the author of most of GNU `libg`++`'. I would like to briefly outline why I support FSF goals, and specifically, the Agreement, in a way that bears only indirectly on legal principles.

I am, primarily, a teacher in a liberal arts college. As such, I stand for the `free' dissemination of ideas. Historically, (please forgive any botching of historical facts to suit my needs, but that's what history is for!) the main tool by which intellectual property has been allowed to be widely disseminated (read `taught') while at the same time both crediting originators, and protecting the works from corruption, mis--attribution, and so on, has been the notion of Copyright. For these reasons, the introduction of copyright laws is widely considered to have been an important step in accelerating intellectual and scientific progress.

Sadly, in the science of computing, this solution has not stood up well. While, in many disciplines, the price of a copyrighted work to be used for study is well within the reach of those who could best benefit from it (e.g., a copy of "War and Peace" might be $5, or even $50, but not $50,000), the economics of computing have, for the most part, priced copyrighted software out of the reach of students (and most others). Most readers would agree that the study of high-quality existing programs is among the better methods for learning about the art of programming. These days, one cannot legally show, discuss, and teach from, say, Unix or Lotus source code.

I believe that Stallman's notion that the economics of copyright can be separated from its role in the protection and propagation of intellectual property is as good a solution to this dilemma as we are likely to get. There are many of us, especially those of us in academe, who are actually very pleased to devote some time and effort to writing software without any direct monetyary compensation. For all sorts of reasons. (For example, in my case, with `libg`++`', as a means to further investigate the pragmatics of object-oriented programming and so on. Or maybe it's just incorrigible hacking. Whatever. )

Now I, and many others, I suspect, are not terribly worried about maintaining proper authorship credit, etc., of such work. The reason that the GNU License Agreement is attractive is mainly that it keeps accessible the work that I intended to be accessible, but also generally offers all other benefits that Copyright engenders, but that the mere act of placing work in the `public domain' would not.

It is an unfortunate fact that the GNU Agreement currently stands in the way of such work being used in honest ways by honest programmers who do have to worry about the economic ramifications. I personally hope that exactly the right accommodations are made to allow fair and sensible use while maintaining the ideals that make the GNU solution work. There are many sticky legalistic points involved in doing so. I do hope that Stallman is able to find such a solution soon enough to make alternative approaches less attractive, but not so hastily as to compromise the goals of FSF (which I am sure he will not do).

# GNU Documentation

Software distributed as part of the GNU system always comes with sources for both on-line documentation and printable manuals. On-line documentation is provided because printed documentation is often misplaced or is being read by someone else when you want it; and because, in many situations, it is easier to find the piece of information that you need in an interactive on-line help system. At the same time, printed documentation is provided because it is often easier to read or preferred.

When GNU documentation is printed, it is produced as a typeset book with chapters, indices, cross references and the like. The on-line documentation is a menu-driven system which also uses indices and cross references.

However, instead of writing two different documents, one for the on-line documentation and the other for the printed manual, GNU documentation uses a single Texinfo source file for both purposes. This saves the effort of writing two different documents and means that when the system is revised, only one source file has to be revised.

Since the single Texinfo source file is used for a dual task--to create both the on-line documentation and the printed manual--it must be written in a special format so that the chapters and sections of the printed manual will correspond to the nodes of the on-line documentation and the indices and cross references will correspond to various menus.

To make the printed manual, the Texinfo source file is processed through the TeX typesetting program. To make the on-line documentation, using GNU Emacs, the Texinfo source file is processed with the `M-x texinfo-format-buffer` command; the resulting Info file is installed in the ``info'` directory which you reach by typing `C-h i`.

(Non-GNU software distributed by the Free Software Foundation does not always have Texinfo documentation, although we encourage everyone to document with it.)

All of the following manuals, which we are currently distributing on our tapes, are also available in hardcopy from the Foundation; see the order form on the inside back cover.

- Emacs Manual

  The Emacs Manual describes how to use GNU Emacs. The manual not only explains Emacs' editing features, but 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 sucha 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.

- Texinfo Manual

  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 and lists, how to make chapters and nodes, how to make indices and cross references. The manual also describe how to use Texinfo Mode in GNU Emacs and how to catch mistakes.

- Termcap Manual

  The Termcap Manual is often described as "Twice as much as you ever wanted to know about Termcap". The manual describes the format of the Termcap data base, the definitions of terminal capabilities and how to find and interrogate a terminal description. This manual is primarily for programmers.

- Bison Manual

  The Bison Manual describes how to write a grammar description that Bison can convert into a C program that can parse that grammar. It describes the concepts and then provides a series of increasingly complex examples before describing what goes on in considerable detail.

- GDB Manual

  The GDB Manual explains how to use 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.

- GAWK Manual

  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.

- Make Manual

  The Make Manual describes the GNU Make utility, a program used to recompile parts of other programs when and as needed. The manual tells how to write a Makefile, which describes how to recompile the parts of your program and how they depend on each other.

# GNU Project Status Report

- GNU Emacs

  GNU Emacs 18 is now being distributed. It is in wide use on several kinds of BSD 4.2 and 4.3 systems and on system V, VMS and Apollo Domain. Version 18.52, the current version, adds support for the 80386, the Sun 4, the Convex, the IRIS 4D and the HP 9000 series 800; also support for system V.3.

  Berkeley is distributing GNU Emacs with the 4.3 distribution, DEC is distributing it with Unix systems on Vaxes, and NeXT is shipping it.

  Emacs 18 maintenance is about to be finished, and version 19 is being worked on. New features so far include multiple X windows, scroll bars, per-buffer redefinition of mouse commands, support for European character sets, source-level debugging for Emacs Lisp, and floating point numbers. Planned possible new features include:

  - Associating property lists with portions of the text in a buffer.
  - Using the properties to control which text is visible.
  - Different visibility conditions for many windows showing one buffer.
  - Incremental syntax analysis for various programming languages.
  - An object-oriented graphics-drawing extension.
  - Hooks to be run if point moves outside a certain range.

  Once I get time to work on it, it will take several months of work to do this, so don't ask when Emacs 19 will be available for beta test. We will announce it.

- Improved GAWK available

  David Trueman has written the new System V extensions to GAWK and the results are now available on the beta tape. Meanwhile, a manual for GAWK is on its way.

- Shells

  Brian Fox has now completed GNU's version of `sh', called the `Bourne Again Shell'. In addition to Korn shell features, it now has job control and both Emacs-style and `csh'-style command history.

  There is a good chance that the C Shell from BSD will be declared free software by Berkeley, so we won't need to write that.

- Kernel

  We hope to use the MACH message-passing kernel being developed at CMU. The current version of MACH is not free, and cannot be, because it contains the file system code from BSD. However, the MACH developers say that all this will be replaced with free code, or at least moved into user processes, and MACH will be free then. This version of MACH is supposed to be released in a few months (as of December 1988).

  If MACH does not become available, then we will probably develop the GNU kernel starting with either MIT's TRIX kernel or Berkeley's Sprite system. TRIX is a remote procedure call kernel that runs and supports basic Unix compatibility at about the level of version 7. So it needs a lot of additional features. Sprite is mostly at the architectural level of BSD Unix, but with a fancy distributed file system and process migration.

  One thing we are considering is adapting the file system from Berkeley's Sprite kernel for use in MACH. This file system was designed from the beginning to work in a distributed manner. The file system is the largest part of MACH that needs replacement, now that the Berkeley TCP/IP code, also used in MACH, has been declared free.

- GNU DeBugger

  The GNU source-level C debugger, GDB, is now being distributed along with Emacs version 18. Currently it runs under BSD 4.2 and 4.3 on Vaxes and Suns. It can also run stand-alone so we can use it to debug the kernel. An over-the-ethernet debugging mode may be added. Work is being done on debugging of multiple process parallel programs.

  GDB support for the 32000 is in the current version. GDB can now read COFF executables, and it is just starting to work on system V.

  GDB 3.0, recently released for testing, can read symbol tables incrementally; this results in much faster startup and much less memory use. It also has C`++` support and can run on the 80386 and the Sun 4, as well as on some Gould machines.

  Future versions of GDB may support watchpoints, and command editing with identifier completion.

- C Compiler

  The GNU C Compiler GCC is now nearly reliable. It supports the May 1988 draft of ANSI C. People are still reporting bugs, but they also say they think there are fewer bugs than in commercial compilers. Some of these bugs were uncovered by John Gilmore, who has been compiling all of BSD Unix with GNU C. A review comparing GCC with two commercial C compilers appeared in the March, 1988 issue of Unix Review magazine.

  The compiler performs 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.

  CPUs supported include the 680x0, Vax, 32x32, 80386, Sparc (Sun 4), SPUR and Alliant. Ports for the Convex, the IBM 370, the IBM PC/RT, the 3b2, some sort of Gould machine, the HP Spectrum, the AMD 29000, the MIPS RISC chips, and the Motorola 88000 are on their way.

  GCC makes shorter and faster 68020 code than the new Sun compiler with -O. The new Sun compiler can't beat GCC despite taking 3 times as long. As of version 1.31, GCC also wins on the Sun 4. GCC makes shorter Vax code than the Tartan C compiler with -O4, but we haven't been able to compare the running speed of that code. A National 32000 port done by Michael Tiemann on a Sequent 32000 system is said to be more reliable than Sequent's compiler and yields a 40% speedup for several programs including a Prolog interpreter.

  In the future, if we have time, we would like to implement some more language extensions, plus facilities for precompilation of header files to save time when the headers are large and the source files are small. We might also do some other language front ends, but there seems to be enough interest among remote GNUers in doing this that we might as well leave it to them.

  Enough internal documentation is included for people interested in retargeting the compiler to other CPUs to do so.

- GNU C for VMS

  Fed up with the deficiencies of the VMS C compiler, David Kashtan from SRI decided to spend a couple of weeks and make GNU C run on VMS. After making considerable changes to satisfy the VMS C compiler, he got it running and was able to take most of the changes out. The VMS support code is now part of the regular compiler distribution.

  The ordinary VMS C compiler (even if you have it) has bugs and therefore cannot compile GNU C: you need an executable of GNU C. We offer mag tapes containing VMS binaries of GNU C (as well as sources) so you can get started.

  Other GNU programs currently working on VMS include GNU Emacs and Bison.

  Please don't ask us to devote effort to additional VMS support, because it is peripheral to the GNU project. We merge in and support VMS ports that users do, because it is hard to refuse to pass along work that other people have done. But even when the changes are clean, this drains considerable effort from our real goal, which is to produce a complete integrated system. (When they aren't clean, we summon up the courage to ignore them.) Merging VMS GNU Emacs and reorganizing the changes to ease future maintenance consumed several weeks even though the "real work" was done by others. We hope we have learned not to let this happen again.

- COFF support

  It is now 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 small amount of COFF header material to encapsulate them so that the kernel can run them. The other GNU utilities such as `size', `nm' and `strip' know how to operate on these encapsulated files.

  We can't afford to take the time to implement or even maintain actual COFF support in these utilities. Completing the GNU system is more important to us.

- Compiler-related programs

  - C`++`

    Michael Tiemann of Stanford University (once of MCC) has written a C`++` compiler as an extension of GNU C. This is the first compiler that compiles C`++` directly instead of preprocessing it into C.

    A review comparing G`++` with two commercial C`++` compilers appeared in the November, 1988 issue of Unix Review magazine. The high marks convinced us it was time to start beta testing, so C`++` is now included on the beta tape.

    We are now working on integrating it with the C compiler; the design issues have been solved and a merged version will probably be released by the end of February.

    GDB version 3.0 includes support for debugging C`++` code, which will make the program GDB`+` obsolete.

  - Assembler

    We have a partially-portable one pass assembler, GAS, that is almost twice as fast as the Unix assembler. It now works for Vaxes, 680x0, 32x32 and 80386. Porting it to other machines should not be hard.

  - C`++` library

    Doug Lea is writing `libg`++`', a library including utility classes support for C`++`.

  - Object file utilities

    The GNU replacements for `ld', `nm', `size', `gprof', `strip', `ranlib', etc., were recently released for testing as part of the GCC test distribution.

    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.

  - `gprof' replacement

    Foundation staffer Jay Fenlason has completed a profiler to go with GNU C, compatible with `gprof' from Berkeley Unix. It is now in the binary file utilities release.

  - GNU Make extended

    We have been distributing the GNU Make for several months. An extended version, which includes more text-processing capabilities and static rules, will be released soon.

    Here is how a GNU Makefile can say that the file ``foo'` is linked from the object files of all C source files in the current directory:

        objects:=$(subst .c,.o,$(wildcard *.c))
        foo: $(objects)
                $(CC) -o foo $(objects) $(LDFLAGS)

    GNU Make also supports parallelism.

  - C library

    Roland McGrath, who contributed a great deal to GNU Make, has a nearly complete set of ANSI C library functions. We hope they will be ready some time this spring. These join the GNU `malloc', `regexp' and Termcap libraries that have existed for some time. A newer, better `malloc' may be written soon.

    Meanwhile, Steve Moshier has contributed a full series of mathematical library functions.

- Preliminary Ghostscript available

  We have just started to distribute Ghostscript, the free GNU software that provides nearly all the facilities of a Postscript interpreter. It supports X version 11. Peter Deutsch is still doing some work on it. 5~ Right now, Ghostscript will accept commands in Postscript and execute them by drawing on an X window. It needs enhancement:

  - to serve as a previewer for multi-page files.
  - to serve other X clients by drawing on their windows.
  - to improve both the performance and the visual quality of the output.
  - more fonts.

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

- Finger

  We will have a daemon-based Finger program soon. The daemon polls a selected set of hosts and thus is able to tell you where each person is logged in.

- Send

  We are now trying out a Send program for sending immediate messages to other users on the same machine or other machines.

- GNU mailer

  Landon Noll and Ronald Karr of Amdahl are writing a mail queuing and delivery system, called `smail'. This project will be a supported part of the Amdahl UTS system--and it will be available on exactly the same terms as GNU Emacs!

  We may use this mailer for the GNU system, or another mailer, `zmailer', that Rayan Zachariasen is writing, or a combination of the two.

- Window system

  We plan to use the X window system written at MIT. This system is already available free.

- Other utilities

  The GNU `ls', AWK, Make and `ld' are in regular use. Our free replacement for Yacc is called Bison. We also have `cron'. We now have the world's fastest `grep'/`egrep' and the world's fastest `diff'. A new fast `sort' has just been finished.

  A "fast lex" called FLEX recently became available; we are now distributing it.

- Documentation system

  We now have a truly compatible pair of programs which can convert a file of Texinfo format documentation into either a printed manual or an Info file.

  See GNU Documentation earlier in this issue for more information.

- Possible target machines

  The GNU Operating System will require a CPU that uses 32-bit addresses and integers and addresses to the 8-bit byte. 1 megabyte of core should be enough, though 2 meg would probably make a noticeable improvement in performance. Running some of the system in 1/2 meg may be possible, but certainly not GNU Emacs. GNU Emacs requires more than a megabyte of addressable memory. We expect that virtual memory will be required.

  A hard disk will be essential; at least 20 meg will be needed to hold a minimal system. Plus more space for the user's files, of course. We recommend at least 80 meg for a personal GNU system.

  This is not to say that it will be impossible to adapt some or all of GNU for other kinds of machines; but it may be difficult, and We don't consider it part of our job to try to reduce that difficulty.

  We have nothing to say about any specific models of microcomputer, as we do not follow hardware products.

- Porting

  It is too early to inquire about porting GNU (except GNU Emacs and GNU C). First, we have to finish it.

# GNU "Clip Art" Contest

We are looking for freely redistributable art work and graphics to enhance our publications. The art should be about the GNU Project or the free software movement. We offer a GNU Manual of the artist choice, for each piece of art work which we publish. Ghostscript source or more traditional media welcome. Send submissions to one of the addresses on the front cover. Our thanks to the Icon Project at the University of Arizona for the idea of running this contest.

# GNU Software Available Now

We now offer three 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 ("Beta test" or "Compiler") tape contains the GNU C compiler and related utilities, and other new programs that are less thoroughly tested. The third ("X11") tape contains the X11 distribution from the MIT X consortium. Until recently, this software had been provided on the Beta test tape, but the third release of the X11 distribution is too big to fit on this tape. See the order form for details about media, etc.

### Contents of Release tape

- 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 GNU Emacs 18.52; version 18.53 should be released by the time this bulletin sees press.

  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.

  GNU Emacs (as of version 18.52) has run on many kinds of Unix systems: those made by Alliant (system releases 1 to 4), Altos 3068, Amdahl (UTS), Apollo, AT&T (3b machines and 7300 pc), CCI 5/32 and 6/32, Celerity, Convex, Digital (Vax, not PDP-11; BSD, and SysV), Dual, Elxsi 6400, Encore (DPC and APC), 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), Integrated Solutions (Optimum V with 68020 and VMEbus), Intel 80386 (BSD, SysV, and Xenix), Iris (2500, 2500 Turbo and 4D), LMI (Nu), Masscomp, Megatest, MIPS, NCR (Tower 32), Nixdorf Targon 31, Plexus, Pyramid, Sequent Balance, SONY News, Stride (system release 2), Sun (any kind), Tahoe, Tektronix (NS16000 system & 4300), Texas Instruments (Nu), VAX (BSD, SysV, VMS) and Whitechapel (MG1).

  GNU Emacs use is described by the GNU Emacs Manual, which comes as a Texinfo file with the software. You can read it on-line in Info form or print out your own copy. Typeset manuals are also available from the Free Software Foundation.

- Texinfo

  Texinfo is the documentation system used for all GNU manuals. Documents are written in a simple formatting language that can produce either printed manuals using a special set of TeX macros, or on-line structured documentation that can be read using the Info browser. Included with Texinfo is a newly expanded tutorial manual on how to write documents using Texinfo.

- GDB

  GDB (the GNU Debugger) is the source-level C debugger written for the GNU project in 1986. It offers many features not usually found in debuggers on Unix, such as a history that records all values examined within the debugger for concise later reference, multi-line user-defined commands, and a strong self-documentation capability. It currently runs on Vaxes under 4.2 and 4.3bsd, on Sun 3 under systems version 2 and 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.

  On-line help and a users' manual for GDB comes with the software; the printed version of the manual is also available from the Foundation.

- Bison

  Bison is an upward-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 CC beta tape as well. A users' manual for Bison comes with the software; the printed version is also available from the Foundation.

- X Window System

  Version 10 of X Windows is distributed on the GNU Emacs tape; version 11 (which is totally incompatible) is distributed on the X11 tape. Emacs version 18.52 supports both versions 10 and 11.

- MIT Scheme

  Scheme is a simplified, lexically scoped dialect of Lisp, designed at MIT and other universities for two purposes: teaching students of programming, and researching new parallel programming constructs and compilation techniques. MIT Scheme is written in C and runs on many kinds of Unix systems.

  It now conforms to the {\sl Revised\/$^3$ Report On The Algorithmic Language Scheme\/} (MIT AI Lab Memo 848a), for which \TeX\ source is included in the distribution.

- 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 files are included in the distribution.

- GNU Chess and Hack

  GNU Chess is a chess program written in C by John Stanback and Stuart Cracraft. It includes an extensive opening book and was recently rated by USCF Senior Master IM Larry Kaufman at around USCF 1950 (close to expert level) when run on a Sun 3 workstation. On a Sun 4, it should play at nearly master level.

  Hack is a display oriented adventure game similar to Rogue.

### Contents of 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, 80386, Alliant, SPARC, SPUR, and Vax CPUs. Machines using these CPUs include the Encore NS32000, Genix NS32000, Sequent NS32000, AT&T 3b1, HP-UX 68000/68020, ISI 68000/68020, Sony NEWS, All Sun's, Intel 386, Sequent Intel 386, Alliant FX/8, and Vax machines. It supports full ANSI C as of the latest draft standard. Included with the compiler are the GNU assembler GAS, Make, Bison (also on the Emacs release tape), and the perfect-hash hash-table generating utility, plus the object file utilities `ld', `nm', `size', `strip', `ar', `ranlib' and `gprof' and the Texinfo source of The GCC Manual (for people interested in extending or retargeting the compiler).

- GAWK and FLEX

  GAWK is GNU's version of the Unix AWK utility. 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.

- `tar'

  GNU tar includes multivolume support, 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 and games, as well as library routines and partial sources for many others.

- `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, `gnuplot' and `texi2roff'

  Ghostscript is GNU's graphics language. It is almost fully compatible with the postscript language. It supports X version 11.

  `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 now distributing it.

  `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 so that people who don't have a copy of TeX can print out GNU documentation.

- `g++', `libg++' and `oops'

  G`++` is a front-end for GCC, that compiles C`++`, an object-oriented language that is upward compatible with C. Since G`++` depends on GCC, it can only be used with the corresponding version of GCC.

  libg++ (the GNU C`++` library) is a collection of C++ classes and support tools for use with G`++`.

  OOPS (Object-Oriented Program Support) class library 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.

### Contents of X11 Tape.

X is a portable, network transparent window system for bitmap displays written at MIT and DEC. It runs Sun, DEC VAXstation, and various other current bitmap displays. X supports overlapping windows and fully recursive subwindows, and provides hooks for several different styles of user interface. Applications include a terminal emulator, bitmap editor, several window managers, clock, window dump and undump programs, and several typesetting previewers.

The X11 tape contains Version 11, Release 3 of the MIT/DEC X window system. X11 is more powerful than, but incompatible with, the no-longer-supported version 10. MIT no longer labels Version 11 `beta test' but is still releasing frequent patches and updates.

### VMS Emacs and Compiler Tapes

We offer a VMS backup tape of the GNU Emacs editor, and a separate 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.

# 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 a copy of GNU software is from someone else who has it. Just copy it from them.

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 ``/u2/emacs/GETTING.GNU.SOFTWARE'` on that host.

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

If you do not have net access, and your computers cannot use the media we distribute on, you must get our software from third party groups--people and organizations that do not work with us, but have our software in other forms. For your convenience, other groups that are helping to spread GNU software 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 have some GNU programs available for anonymous FTP:

    louie.udel.edu, scam.berkeley.edu, spam.istc.sri.com,
    bu-it.bu.edu, uunet.uu.net, nic.nyser.net,
    wsmr-simtel20.army.mil (under `PD:<UNIX.GNU>'),
    and cc.utah.edu (VMS GNU Emacs).

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, arnold@skeeve.UUCP,
    uunet!hutch!barber, hqda-ai!merlin, acornrc!bob,
    ames!killer!wisner, mit-eddie!bloom-beacon!ht!spt!gz,
    sun!nosun!illian!darylm, or postmaster@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`; or Bob Sutterfield (substitute `bob` for `karl` in the above addresses).

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

# Thank GNUs

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

Thanks to Hewlett-Packard for their very large cash donation and two Spectrum workstations.

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 Dr. T. Smith, Dave Probert, and the CS Department at UCSB for giving GNU staffer Brian Fox resources and space, and special personal thanks from Brian to Matt Wette for invaluable aid and support.

Thanks to Brewster Kahle of Thinking Machines, Inc. for the loan of a Sun 4/110.

Thanks to K. Richard Magill for his donation of an AT&T Unix PC.

Thanks to Arnold Robbins and Dave Trueman for their work on GAWK and the GAWK manual.

Thanks to Barry Kleinman and Andre Mesarovic of Index Technology for copying Sun cartridge tapes and to Mark Nahabedian of Phoenix Technologies Ltd. for copying Sun cartridge tapes at the 11th hour.

Thanks to John Klensin of the INFOODS Project at MIT for making our VMS master tapes.

Thanks to Sony Corp. and to Software Research Associates, Inc., both of Tokyo, for sending us Sony workstations. SRA has also given us a cash donation and lent us a full-time staff programmer and a technical writer.

Thanks to NeXT, Inc., for their cash donation.

Thanks to the Mach Project in the Department of Computer Science at Carnegie Mellon University, for lending us a Sun 3/60 and 300 MB disk 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 Emacs manuals and distribution tapes.

The creation of this bulletin is our way of thanking all who have expressed interest in what we are doing.

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

Use rule at top of this page for page 1.