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

# Gnu's Bulletin June, 1987

Gnu's Bulletin is the sporadically published newsletter of the Free Software Foundation, bringing you news about the GNU project.

# Gnu's Who

The usual people are still working on GNU: Richard Stallman recently returned from Korea, where he worked at KAIST during the month of April. He also visited DECUS in Tokyo and spoke there. He is currently continuing to develop the GNU C compiler. Hackers Len Tower, Richard Mlynarik, and Paul Rubin are doing various pieces of volunteer work as their time permits it, and Jay Fenlason continues to work full time on the GNU assembler and libraries. At the distribution end, FSF treasurer Bob Chassell has just finished coordinating production of another run of GNU Emacs manuals. Jerry Puzo has been making sure that our correspondence with the outside world is handled smoothly.

Some new people have also joined us: Mark D'Agostino is now taking care of the FSF mail room, filling the tape and manual orders which are coming in at an ever increasing rate. Mark is an MIT student in Physics and Electrical Engineering. Peter Deutsch, an old-time hacker from MIT, is in his spare time writing a PostScript language interpreter for bitmap screens, for use with GNU under the X window system. His interpreter will be called "GhostScript" and will hopefully also be able to drive printers. Peter is well known for his work on Lisp and Smalltalk, and continues to do Smalltalk development as Chief Scientist at ParcPlace Systems, a spinoff of Xerox PARC. Velu Sinha wrote the GNU shell, which will be released for testing soon. Rayan Zachariasen, whose name I hope I have not misspelled, is writing a mailer. Finally, Kathy Hargreaves and Karl Berry transcribed Richard Stallman's Microwave Day lecture on how the GNU C compiler works; we hope to publish an edited version of the transcript soon. Kathy and Karl are both studying digital typography in the Brown University CS department. They plan later to design some type fonts for use with GhostScript. They also designed the new FSF order form that appears at the end of this bulletin.

### GNU'S BULLETIN

Copyright (C) June 1987 by the Free Software Foundation.

Editor: Paul Rubin
Writers: Richard M. Stallman, Paul Rubin Illustrations: Etienne Suvasa, Jean-Marie Diaz.
Reproduction: Mark D'Agostino.

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

## By Richard M. Stallman

The Free Software Foundation is dedicated to eliminating restrictions on copying, redistribution, understanding and modification of software.

The word "free" in our name does not refer to price; it refers to freedom. First, the freedom to copy a program and redistribute it to your neighbors, so that they can use it as well as you. Second, the freedom to change a program, so that you can control it instead of it controlling you; for this, the source code must be made available to you.

The Foundation works to give you these freedoms by developing free compatible replacements for proprietary software. Specifically, we are putting together a complete, integrated software system "GNU" that is upward-compatible with Unix. When it is released, everyone will be permitted to copy it and distribute it to others; in addition, it will be distributed with source code, so you will be able to learn about operating systems by reading it, to port it to your own machine, to improve it, and to exchange the changes with others.

There are already organizations that distribute free CPM and MSDOS software. The Free Software Foundation is doing something different.

1. The other organizations exist primarily for distribution; they distribute whatever happens to be available. We hope to provide a complete integrated free system that will eliminate the need for any proprietary software.

2. One consequence is that we are now interested only in software that fits well into the context of the GNU system. Distributing free MSDOS or Macintosh software is a useful activity, but it is not part of our game plan.

3. Another consequence is that we will actively attempt to improve and extend the software we distribute, as fast as our manpower permits. For this reason, we will always be seeking donations of money, computer equipment or time, labor, and source code to improve the GNU system.

4. In fact, our primary purpose is this software development effort; distribution is just an adjunct which also brings in some money. We think that the users will do most of the distribution on their own, without needing or wanting our help.

### Why a Unix-Like System?

It is necessary to be compatible with some widely used system to give our system an immediate base of trained users who could switch to it easily and an immediate base of application software that can run on it. (Eventually we will provide free replacements for proprietary application software as well, but that is some years in the future.)

We chose Unix because it is a fairly clean design which is already known to be portable, yet whose popularity is still rising. The disadvantages of Unix seem to be things we can fix without removing what is good in Unix.

Why not imitate MSDOS or CP/M? They are more widely used, true, but they are also very weak systems, designed for tiny machines. Unix is much more powerful and interesting. When a system takes years to implement, it is important to write it for the machines that will become available in the future; not to let it be limited by the capabilities of the machines that are in widest use at the moment but will be obsolete when the new system is finished.

Why not aim for a new, more advanced system, such as a Lisp Machine? Mainly because that is still more of a research effort; there is a sizeable chance that the wrong choices will be made and the system will turn out not very good. In addition, such systems are often tied to special hardware. Being tied to one manufacturer's machine would make it hard to remain independent of that manufacturer and get broad community support.

# Editorial: Oppose Audio Copy Protection

Just when science is making it possible to copy music perfectly, record companies are trying to make it impossible again, with government-enforced copy protection.

The invention of the phonograph created a situation where the best way to copy audio signals was by mass production. This temporary situation made record companies necessary and useful. It also made copyright a fairly harmless way of encouraging activities that benefit the public. (That was the original purpose of copyright.)

Digital audio tape machines will change all this. Mass produced copies will no longer be better than you can make. Record companies may still have customers, but they will be partly obsolete.

But obsolete institutions don't peacefully accept being ignored. So there is a bill before Congress to require specific copy-protection equipment in every digital audio tape machine.

The proposed technical method involves degrading the quality of prerecorded music by eliminating a narrow frequency band. When the recorder notices that band is empty, it will shut off. Even if the signal comes over the radio, copying it will be impossible.

If this law passes, we can expect more of the same. In the past, there were many natural obstacles to copying information, and surmounting the obstacles was a business. The overall thrust of the information revolution is to remove these obstacles; to make information easy to copy and transform. Each time technology makes things easier, businesses that depend on obstacles demand a man-made obstacle--required by law--to replace the natural one.

A few general-purpose I/O devices can turn your computer into a digital audio tape recorder. Will there be a law to make this impossible? Perhaps a law that you can't have source to your kernel, lest you patch around the government-imposed access control?

To fight this bill, call your Congressman and Senators and urge them to vote against it. It is called the Digital Audio Tape Recording Act of 1987: S. 506, H.R. 1384.

You can get the phone numbers by calling information; the Senators usually have offices in the state capitol. For more information, contact this organization:

    Audio Recording Rights Coalition
    PO Box 33705
    1145 19th Street NW
    Washington, DC  20033
    1-800-282-TAPE

# Gnus Flashes

This is a collection of news items pertaining to the GNU project, the Free Software Foundation, and free software in general.

- Termcap Manual Being Published

  Jim Joyce's Unix bookstore in San Francisco is probably going to publish the Termcap programming manual written by Richard Stallman. This manual was written as a spinoff of the Emacs project, since the Unix documentation for Termcap does not provide enough information. The Foundation will probably offer printed copies of this manual for sale after Jim Joyce has gotten them printed. Like everything else written at GNU, the manual will be free for everyone to copy; however, Jim plans to donate some money to RMS for every copy he sells.

- GNU Chess Improved

  Stuart Cracraft reports that as a result of his installing new searching and evaluation routines in GNU Chess, the latest version recently beat an 1800 rated player. He is collecting contributions of book openings, endgame databases, and master games, to further improve the program. Contact him if you think you can help. His address is cracraft@venera.isi.edu.

- If You Can't Beat 'em...

  RMS was recently invited to give a talk about GNU at AT&T Bell Laboratories in Murray Hill, New Jersey (the birthplace of Un*x). He reports that the talk was generally well received.

- X Becoming Accepted

  The trade press has been reporting that the free X window system written at MIT and DEC is becoming a multi-vendor industry standard for portable window systems. The Foundation distributes X on its standard software tape, and GNU Emacs and GNU Chess come with special interfaces to X.

- TeX in C available from Pat Monardo

  At long last, there is a free implementation of TeX in C. It is a hand translation by Pat Monardo of UC Berkeley of the WEB version, and it tries to retain the module and variable names of the WEB version while remaining a readable C program. Both the Foundation and the maintainers of the Unix TeX distribution at the University of Washington will offer this version eventually. You can also contact Pat Monardo directly for more information. His address is ucbvax!monardo (uucp), or monardo@ucbvax.berkeley.edu (Internet).

  Consider sending a donation to Pat if you find this program useful.

- Victory in SoftKlone trial

  A Federal Judge has found the SoftKlone company not guilty of nearly all counts of copyright infringement brought in a look-and-feel suit filed by the marketers of Crosstalk (a PC communications program). Even though the SoftKlone program is proprietary, the outcome of this trial is an important affirmation of everyone's freedom to write and distribute whatever programs they want to.

- Send In The Clones

  Meanwhile, the Lotus look-and-feel copywrong suit has still not been resolved. In order to help the defendants of this suit, Dan Bricklin is compiling a list of software and hardware "clones". These are programs and machines that duplicate the functionality, features, or "look and feel" of previously-released programs. (Dan is the author of VisiCalc, of which Lotus 1-2-3 is itself a partial clone). The Foundation is asking readers to please think of as many detailed examples as they can and mail them electronically to:

         send-in-the-clones@prep.ai.mit.edu (Internet),

  or

         mit-eddie!mit-prep!send-in-the-clones (uucp).

  or by snail mail to

      Send In The Clones
      c/o Free Software Foundation
      1000 Mass Ave.
      Cambridge, MA  02138

  We will forward all the messages we receive to Dan Bricklin.

  Here are some of the examples we already have, to give people an idea of what we're looking for:

  - CPU's made by Amdahl and others that emulate IBM mainframes.
  - Ashton-Tate "Multiplan", which includes some features of the Wang dedicated word processor
  - Richard Stallman's EMACS editor has been imitated any number of times.
  - Imitations of the IBM PC BIOS run in nearly all PC clones. The PC clones would be useless without doing this.
  - The Unix user interface has been imitated many times, both in complete systems (Idris, Coherent, Minix, MARC, GNU, etc.) and in program suites that just clone the utilities (e.g. Software Tools; nearly every microcomputer C compiler I've seen comes with a few of these).
  - All C compilers implement a special language (C) that used to be available only as part of Unix.

  Non-computer examples (such as the many imitations of the Sony Walkman) are ok too.

# GNU Software Available Now

- 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 which offers true Lisp, smoothly integrated into the editor, for writing extensions. It also provides a special interface to MIT's free X window system, which makes redisplay very fast.

  GNU Emacs has been in widespread use since 1985 and often, as at MIT's Project Athena, displaces proprietary implementations of Emacs because of its greater reliability as well as its good features and easier extensibility.

  GNU Emacs has run on many kinds of Unix systems: those made by Alliant (system release 1 or 2), Amdahl (UTS), AT&T (3b machines and 7300 pc), Celerity, Digital (Vax, not PDP-11), Dual, Encore, Gould, HP (9000 series 200 or 300 but not series 500), IBM (RT/PC running 4.2), Integrated Solutions (Optimum V with 68020 and VMEbus), Masscomp, Megatest, NCR (Tower 32), Plexus, Pyramid, Sequent, Silicon Graphics (Iris release 3.5), Stride (system release 2), Sun (any kind), Tahoe, Tektronix (NS16000 system), Texas Instruments (Nu), Whitechapel (MG1), and Wicat. These include both Berkeley Unix and System V (release 0, 2 or 2.2). It also runs on Apollo machines and on VAX/VMS.

  GNU Emacs use is described by the GNU Emacs Manual, available from the Free Software Foundation.

- GDB

  GDB 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, and on Suns (systems version 2 and 3). A version for the IBM RT-PC running 4.2bsd may be released soon.

  A users' manual for GDB is available from the Foundation.

- GNU CC

  The GNU C compiler is a fairly portable optimizing compiler. It generates good code for the 68000, 68020 and Vax. It features automatic register packing that makes register declarations unnecessary. It supports full ANSI C as of the latest draft standard. We are offering a beta test release to people wishing to help us find compiler bugs or begin work on ports. This testing version is distributed on a separate tape from the regular GNU distribution. When the compiler is more solid, it will become part of the regular tape.

- Bison

  Bison is an upward-compatible replacement for YACC, with some additional as-yet-undocumented features. It has been in use for a couple of years.

- X Window System

  X is a portable, network transparent window system for bitmap displays written at MIT and DEC. It currently runs on DEC VAXstation, Lexidata 90, and most Sun Microsystems displays, with others in the works. X supports overlapping windows, fully recursive subwindows, and provides hooks for several different styles of user interface. Applications provided include a terminal emulator, bitmap editor, several window managers, clock, window dump and undump programs, hardcopy printing program for the LN03 printer, several typesetting previewers, etc.

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

  Sorry, there is no documentation for the current distribution version of MIT Scheme. A new standard for Scheme has been designed by the various labs that work on Scheme, and work is going on at MIT to change MIT Scheme to fit. Once that is done, the standard will serve as a manual for MIT Scheme. At that time, we will distribute both the new release of Scheme and the standard.

- GNU Chess

  GNU Chess was written in 1986 by Stuart Cracraft of UCLA. It can use several machines in parallel for increased searching speed, and it comes with an interface to the X window system to display a pretty chessboard. It also has a human readable opening book of thousands of moves including several hundred games of Grandmaster Mikhail Tal. On a single Sun-3 CPU, the current version probably plays around Class C chess. Stuart continues to strengthen the program in various ways.

- Hack

  Hack is a display oriented adventure game similar to Rogue.

## How To Get Gnu Software

All software and publications 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. You need not ask for permission; just copy it.

If you have access to the Internet, you can get the latest distribution version of GNU Software from host prep.ai.mit.edu. For more information, read the file ``/u2/emacs/GETTING.GNU.SOFTWARE'` on said host.

If you cannot get a copy in any of these ways, you can order one from the Free Software Foundation. Please consult the order form at the end of this bulletin for prices and details.

# Status of the GNU Project, June 1987

(See also the article "GNU Software Available Now", elsewhere in this issue).

- GNU Emacs and GDB

  GNU Emacs and GDB are already released. Berkeley is distributing GNU Emacs with the 4.3 distribution, and DEC is going to distribute it with Unix systems on Vaxes.

- Gsh, the GNU imitation C shell

  Beta-test release of a C shell with input editing and compilation of shell scripts is expected soon. It was delayed due to illness.

  The same program is supposed to imitate sh, but that doesn't work yet.

- Kernel

  We are negotiating with Prof. Rashid of Carnegie-Mellon University about working with them on the development of the MACH kernel. MACH is a message passing kernel that will probably succeed 4.3bsd as the standard kernel used for ARPA-sponsored operating system research. If an agreement is reached, we will use MACH as the kernel of GNU; otherwise, we will probably use a free remote procedure call kernel called TRIX, which was written at MIT. TRIX runs, and supports basic Unix compatibility, but needs a lot of new features.

- C compiler

  RMS is now working on finishing a new portable optimizing C compiler. It supports the Oct 1986 draft of ANSI C and has compiled both itself and GNU Emacs. A second beta test version of the compiler has just been released. It fixes the bugs found in the March 1987 preliminary test release, but is still not considered ready for everyday use.

  The compiler performs automatic register allocation, common subexpression elimination, invariant code motion from loops, 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. By the time it is finished it will probably also know when to keep constant addresses in registers. We may also make some rearrangements in order to enable compilation of arbitrarily large functions in bounded amounts of memory, though with some decrease in optimization compared to what can be done with lots of memory.

  GCC makes shorter and faster 68020 code than the Sun compiler with -O. It 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. Enough internal documentation is included for people interested in retargeting the compiler to other CPUs to get started.

  Our cpp now supports the Oct 1986 draft standard.

- Assembler

  We have a partially-portable one-pass assembler that is almost twice as fast as the Unix assembler. It now works for Vaxes and the 68020.

- Window system

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

- 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. A Texinfo manual which describes how to write documents in Texinfo is available from the Foundation.

  Documentation files are needed for many utilities.

- Other Utilities

  The GNU `ls', `grep', `awk', `make' and `ld' are in regular use. The other object-file management utilities are written too. Our free replacement for `yacc' is called `bison'. `cron' and `at' were recently submitted, and so was `m4'. `lex' is expected in June.

  A free stdio system has just been received.

- Free Software Foundation

  The foundation exists for two purposes: to accept gifts to support GNU development, and to carry out distribution. We are now tax exempt; you can deduct donations to us on your tax returns.

  Our address is

      Free Software Foundation
      1000 Mass Ave
      Cambridge, MA 02138

  and our phone number is (617) 876-3296.

  Because of the confusion surrounding LMI's change of ownership, our phone service was temporarily interrupted in May. We are still trying to straighten everything out with the phone company. If you called us and got a recording saying our number was disconnected, please keep trying. We haven't gone out of business!

- Service directory

  The foundation now maintains a Service Directory; a list of people who offer service to individual users of GNU Emacs and, eventually, all parts of the GNU system. Service can be answering questions for new users, customizing programs, porting to new systems, or anything else.

- Possible target machines

  GNU will require a cpu that uses 32-bit addresses and integers and addresses to the 8-bit byte. 1 meg of core should be enough, though currently the GNU C compiler can require several meg for a large function. Unless we do a lot of work to fix this you probably need to have virtual memory. MACH also requires virtual memory.

  GNU Emacs requires more than a meg of addressable memory in the system, although a meg of physical memory is probably enough if there is virtual memory.

  A hard disk will be essential; at least 40 meg will be needed to hold the system plus the source code plus the manual plus swapping space. Plus more space for the user's files, of course. The system binaries will probably fit in around 10 meg. We recommend 80 meg or more 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 CC). First, we have to finish it.

## Why Was Copyright Invented?

Now that copyright is becoming a public nuisance that the public tries to ignore, copyright owners try to justify this imposition by calling it an intrinsic right. As they tell it, their intrinsic right is a tradition that makes the public good irrelevant.

This is contrary to the facts of the history of copyright.

The Supreme Court has stated explicitly what copyright was for. Writing for the Court, Justice Stewart explained:

> The immediate effect of our copyright law is to secure a fair return for an "author's" creative labor. But the ultimate aim is, by this incentive, to stimulate artistic creativity for the general public good. `The sole interest of the United States and the primary object in conferring the [copyright] monopoly,' this Court has said, `lie in the general benefits derived by the public from the labors of authors.'

                 ---Fox Film Corp. v. Doyal (286 US 123, 127)

So when copyright interferes with the public use of a program, that directly attacks the reason for having copyright.

# What is GNU Emacs and do you want a copy?

GNU Emacs is a new implementation of the Emacs text editor. (Recently text editors have been called "word processors" among microcomputer users.)

Emacs is a kind of architecture for text editors, in which most editing commands are written in an interpreted language (usually Lisp) so that the user can write new editing commands as he goes. This allows Emacs to have editing commands that are more powerful or more adapted to individual uses than other kinds of editors.

Any particular editing command could be written in C, but with Lisp it is much easier for users to change the editing commands or to implement new editing commands. Users can also exchange their adaptations and extensions of Emacs. The result is a library of extensions that continues to grow.

GNU Emacs boasts an especially clean Lisp system for writing editing commands, and an already large library of extensions.

GNU Emacs is written in C, designed for a Unix or Unix-like kernel. It includes its own Lisp interpreter which is used to execute the portion of the editor that is written in Lisp.

It is a fairly large program, around 525k on vaxes or 68000s, to which must be added space for the files you are editing, undo buffers, Lisp libraries loaded, and Lisp data such as recently killed text, etc. This is not really a problem on a timeshared machine because most of that 525k is shared, but on a personal computer there may be nobody to share with. Thus, GNU Emacs probably could not be used on an IBM PC clone for lack of memory, unless you want to implement virtual memory in software within Emacs itself. Perhaps on an 80286 with 1 meg of memory you can win using their memory management.

In general, a 32-bit machine with either a meg of real memory or virtual memory can probably run GNU Emacs, as long as a suitable Unix system call environment is provided, simulated or imitated.

# GNU Wish List

Wishes for this issue:

- Money and equipment, as usual.

- Some free office space in the Cambridge area.

- Volunteer programming, especially from people around Cambridge and people with experience writing operating system kernels. Help writing documentation is also needed.

- Artwork and other graphics, for use as illustrations in future FSF manuals and GNU's bulletins.

- Would anyone like to edit GNU's Bulletin #4?

## Thank Gnus

The Free Software Foundation would like to send special thank gnus to the following:

Thanks to the MIT Laboratory for Computer Science. The LCS has provided FSF with the loan of a Microvax for program development.

Thanks to Professor Dertouzos, head of LCS. His specific decision to support us is greatly appreciated.

Thanks to the MIT Artificial Intelligence Laboratory for invaluable assistance of many kinds.

Thanks to Lisp Machine, Inc. LMI has generously provided office space, computer resources and a mailing address for FSF. Bruce Deffenbaugh in particular helped us keep our operation in relative calm during LMI's recent turmoil.

Thanks to Inference Corp. Inference has been shipping copies of GNU Emacs to its customers in conjunction with some other products that they offer, and they have decided to donate $200 to Richard Stallman for each copy of Emacs they deliver in this way. This proves it is possible to make a living from writing free software.

Thanks to Martin Minow of DEC for giving us an answering machine, so people can now phone us at (617) 876-3296. We check messages about once a week.

Thanks to those who sent money and offered help. James R. Payne of Advanced Decision Systems gave especially freely. 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.