GNU Material This directory contains new offerings from Free Software Foundation which have come out since the Spring 1994 SIG tapes. It also contains Aladdin's version of Ghostscript, which supports VMS. The directory is as follows. Note that *.README files describe many individual items. The "descriptions.gnustuff" file describes many of the Gnu utilities in more detail, though it covers all Gnu software. AAAREADME.TXT;1 ACM.README;1 ALADDIN.PUBLIC;1 ANDREW-TOOLKIT.README;1 AUTOCONF21.TAR-GZ;1 BASH-1.14$5N1$5N$README;1 BASH-1_14_3.README;1 BASH1143.TAR-GZ;1 BC103.TAR-GZ;1 BINUTILS252.TAR-GZ;1 BSD-NET2.README;1 BUTTON140.SHAR;1 CGC109.TAR-GZ;1 CLISP.README;1 DESCRIPTIONS.GNUSTUFF;1 DIFFUTILS27.TAR-GZ;1 DJGPP.README;1 ED0-2.TAR-GZ;1 ELISP-ARCHIVE.README;1 EMACS-19_26-ALPHA-PATCH.GZ;1 EMACS-19_27-ALPHA-PATCH.README;1 EMACS1928.TAR-GZ;1 ES.README;1 F2C.README;1 FILEUTILS312.TAR-GZ;1 FINDUTILS41.TAR-GZ;1 FLEX247.TAR-GZ;1 FLEXFAX-V2_3BETA036SPECIAL.TAR-GZ;1 FLEXFAX.README;1 G$5K$5K.$README;1 GAMMA.README;1 GAS-2.5$5N1$5N$README;1 GAS.README;1 GCC-2_6_3.TAR-GZ;1 GCL.README;1 GDB413.TAR-GZ;1 GHOSTSCRIPT-3_12.TAR-GZ;1 GHOSTSCRIPT-3_12_DLL.TAR-GZ;1 GHOSTSCRIPT-3_12_FIXES.TXT;1 GHOSTSCRIPT-3_12_GNU.TAR-GZ;1 GHOSTSCRIPT-3_12_JPEG.TAR-GZ;1 GHOSTSCRIPT312_README.TXT;1 GIT-4_3_5.TAR-GZ;1 GLIBC109.TAR-GZ;1 GS312FN1.ZIP;1 GS312FN2.ZIP;1 GZIP-VMS.README;1 GZIP124.TAR;1 INDEX-ALADDIN.TXT;1 ISPELL3-1-12.TAR-GZ;1 JARG310.TXT-GZ;1 LESS252.TAR-GZ;1 LIBGPP-2_6_2.TAR-GZ;1 LIBOBJECTS-010.TAR-GZ;1 LILY.README;1 M4_14.TAR-GZ;1 MAINTAIN.INFO;1 MAKE3721.TAR-GZ;1 MALLOC.TAR-GZ;1 MANDELSPAWN.README;1 MS.README;1 NET2-BSD.README;1 NETFAX.README;2 NIHCL.README;1 NVI.README;1 OBJECTIVE-C.README;1 OBST-3_4.TAR-GZ;1 OCTAVE.README;1 OCTAVE1_1.TAR-GZ;1 OOPS.README;1 P2C.README;1 PARA-0.27$5N$README;1 PCL.README;1 PERL5_000.TAR-GZ;3 PINE.README;1 PINE3_91.TAR-GZ;1 PTX-04.TAR-GZ;1 RC.README;1 READLINE20.TAR-GZ;1 RECODE34.TAR-GZ;1 SAOIMAGE108.TAR-GZ;1 SCHEME.README;1 SCREEN361.TAR-GZ;1 SH-UTILS-112.TAR-GZ;1 SHAR40.TAR-GZ;1 SHARUTILS41.TAR-GZ;1 SMAIL.README;1 TEX.README;2 TEXTUTILS111.TAR-GZ;1 TIME16.TAR-GZ;1 UCBLOGO.TAR-GZ;1 UUENCODE.README;1 VMS.README;1 WDIFF05.TAR-GZ;1 X11.README;2 YALE-T.README;1 Following are some bits from "brief.description". * Autoconf (SrcCD, UtilT) Autoconf produces shell scripts which automatically configure source code packages. These scripts adapt the packages to many kinds of Unix-like systems without manual user intervention. Autoconf creates a script for a package from a template file which lists the operating system features which the package can use, in the form of `m4' macro calls. Autoconf requires GNU `m4' to operate, but the resulting configure scripts it generates do not. Most GNU programs now use Autoconf-generated configure scripts. * BASH (SrcCD, UtilT) The GNU shell, BASH (Bourne Again SHell), is compatible with the Unix `sh' and offers many extensions found in `csh' and `ksh'. BASH has job control, `csh'-style command history, and command-line editing (with Emacs and `vi' modes built-in, and the ability to rebind keys) via the readline library. BASH conforms to the POSIX 1003.2 shell specification. * `bc' (SrcCD, UtilT) `bc' is an interactive algebraic language with arbitrary precision. GNU `bc' follows the POSIX 1003.2 draft standard, with several extensions including multi-character variable names, an `else' statement and full Boolean expressions. GNU `bc' does not require the separate `dc' program. * BFD (BinCD, LangT, SrcCD) The Binary File Descriptor library allows a program which operates on object files (e.g. `ld' or GDB) to support many different formats in a clean way. BFD provides a portable interface, so that only BFD needs to know the details of a particular format. One result is that all programs using BFD will support formats such as a.out, COFF, ELF & OSF-Rose. BFD comes with source for Texinfo documentation (not yet published on paper). Presently BFD is not distributed separately because it is not yet completely stable; however, it is included with packages that use it. * Binutils (BinCD, LangT, SrcCD) Binutils includes the programs: `ar', `c++filt', `demangle', `gprof', `ld', `nlmconv', `nm', `objcopy', `objdump', `ranlib', `size', `strings', & `strip'. Binutils Version 2 is completely rewritten to use the BFD library. The GNU linker `ld' emits source-line numbered error messages for multiply-defined symbols and undefined references. It interprets a superset of the AT&T Linker Command Language, which gives general control over where segments are placed in memory. `nlmconv' converts object files into Novell NetWare Loadable Modules. The `objdump' program can disassemble code for a29k, ALPHA, H8/300, H8/500, HP-PA, i386, i960, m68k, m88k, MIPS, SH, SPARC, & Z8000 processors, and can display other data such as symbols and relocations from any file format understood by BFD. * Bison (BinCD, LangT, SrcCD, VMSCompT) Bison is an upwardly compatible replacement for the parser generator `yacc'. Texinfo source for the `Bison Manual' and reference card are included. See ``GNU Documentation''. * GNU C Library (LangT, SrcCD) The GNU C library supports ANSI C-1989 and POSIX 1003.1-1990 and has most of the functions specified in POSIX 1003.2-1992. It is upwardly compatible with 4.4BSD and includes many System V functions, plus GNU extensions. The C Library will perform many functions of the Unix system calls in the Hurd. Mike Haertel has written a fast `malloc' which wastes less memory than the old GNU version. The GNU regular-expression functions (regex) now nearly conform to the POSIX 1003.2 standard. GNU `stdio' lets you define new kinds of streams, just by writing a few C functions. The `fmemopen' function uses this to open a stream on a string, which can grow as necessary. You can define your own `printf' formats to use a C function you have written. For example, you can safely use format strings from user input to implement a `printf'-like function for another programming language. Extended `getopt' functions are already used to parse options, including long options, in many GNU utilities. Version 1.08 has just been released, adding support for Sun RPC, `mmap' and friends, and compatibility with several more traditional Unix functions. It runs on Sun-3 (SunOS 4.1), Sun-4 (SunOS 4.1 or Solaris 2), HP 9000/300 (4.3BSD), SONY News 800 (NewsOS 3 or 4), MIPS DECstation (Ultrix 4), DEC Alpha (OSF/1), i386/i486 (System V, SVR4, BSD, SCO 3.2 & SCO ODT 2.0), Sequent Symmetry i386 (Dynix 3) & SGI (Irix 4). Texinfo source for the `GNU C Library Reference Manual' is included (see ``GNU Documentation''.); the manual still needs updating. * GNU C++ Library (BinCD, LangT, SrcCD) The GNU C++ library (libg++) is an extensive collection of C++ `forest' classes, a new IOStream library for input/output routines, and support tools for use with G++. Among the classes supported are Obstacks, multiple-precision Integers and Rationals, Complex numbers, arbitrary length Strings, BitSets and BitStrings. There is also a set of pseudo-generic prototype files for generating common container classes. Texinfo source for partial documentation is included (not yet published on paper). * Calc (EmcsT, SrcCD) Calc (written by Dave Gillespie in Emacs Lisp) is an extensible, advanced desk calculator and mathematical tool that runs as part of GNU Emacs. If you wish, you can use Calc just as a simple four-function calculator, but it provides additional features including choice of algebraic or RPN (stack-based) entry, logarithmic functions, trigonometric and financial functions, arbitrary precision, complex numbers, vectors, matrices, dates, times, infinities, sets, algebraic simplification, differentiation, and integration. It also outputs to `gnuplot'. Calc comes with Texinfo source for a reference card and the `Calc Manual', which serves as a tutorial and reference. See ``GNU Documentation''. * CLISP (EmcsT, SrcCD) CLISP is a Common Lisp implementation (CLtL1 + parts of CLtL2) by Bruno Haible and Michael Stoll. It mostly supports the Lisp described by `Common LISP: The Language (1st edition)'. CLISP includes an interpreter, a byte-compiler, a subset of CLOS and, for some machines, a screen editor. It has user interfaces in English & German (& French soon), chooseable at compile time. Major packages that run in CLISP include PCL and, on Unix machines, CLX & Garnet. CLISP needs only 1.5 MB of memory and runs on many microcomputers (including the Atari ST, Amiga 500-4000, most MS-DOS systems & OS/2) & some Unix workstations (Linux, Sun4, Sun386, HP9000/800, SGI, Sun3 and others). * `cpio' (SrcCD, UtilD, UtilT) `cpio' is an alternative archive program with all the features of SVR4 `cpio', including support for the final POSIX 1003.1 `ustar' standard. `mt', a program to position magnetic tapes, is included with `cpio'. * CVS (SrcCD, UtilT) CVS, the Concurrent Version System, manages software revision and release control in a multi-developer, multi-directory, multi-group environment. It works best in conjunction with RCS versions 4 and above, but will parse older RCS formats with the loss of CVS's fancier features. See Berliner, Brian, "CVS-II: Parallelizing Software Development," `Proceedings of the Winter 1990 USENIX Association Conference'. To find out how to get a copy of this report, ask `office@usenix.org'. * `dc' (SrcCD, UtilT) `dc' is an RPN calculator. GNU `bc' does not require a separate `dc' program to run. This version of `dc' will eventually be merged with GNU `bc'. * DejaGnu (LangT, SrcCD) DejaGnu is a framework for testing other programs that provides a single front end for all tests. The framework's flexibility and consistency make it easy to write tests for any program. DejaGnu comes with `expect', which runs scripts to conduct dialogs with programs; and Tcl, which is an embeddable scripting language. The FSF hopes to replace Tcl with a cleaner programming language someday. * Diffutils (SrcCD, UtilD, UtilT) GNU `diff' compares files showing line-by-line changes in several flexible formats. It is much faster than traditional Unix versions. The Diffutils package contains `diff', `diff3', `sdiff', and `cmp'. These improvements have recently been made to Diffutils: A new heuristic for `diff' greatly reduces the time needed to compare large input files that contain many differences, and produces output that is usually smaller rather than larger. New `diff' options give detailed control over output format, e.g. to provide if-then-else output for programming languages other than C. Message wordings and the definition of "white space" have been revised for compatibility with the POSIX.2 standard (ISO/IEC 9945-2:1993). * `dld' (LangT, SrcCD) `dld' is a dynamic linker written by W. Wilson Ho. Linking your program with the `dld' library allows you to dynamically load object files into the running binary. Currently supported are VAX (Ultrix), Sun 3 (SunOS 3.4 & 4.0), SPARC (SunOS 4.0), Sequent Symmetry (Dynix), & Atari ST. * `ecc' (SrcCD, UtilT) `ecc' is a Reed-Solomon error correction checking program, which can correct three byte errors in a block of 255 bytes and detect more severe errors. Contact `paulf@Stanford.EDU' for more information. * `ed' (SrcCD, UtilT) Ed is the standard text editor. * Elib (EmcsT, SrcCD) This is a small library of Emacs Lisp functions, including routines for using AVL trees and doubly-linked lists. * GNU Emacs In 1975, Richard Stallman developed the first Emacs, an extensible, customizable real-time display editor. GNU Emacs is his second implementation. It offers true Lisp--smoothly integrated into the editor--for writing extensions, and provides an interface to the MIT X Window System. In addition to its powerful native command set, extensions which emulate other popular editors are distributed: vi, EDT (DEC's VMS editor) and Gosling (aka Unipress) Emacs. It has many other features which make it a full computing support environment. Source for the `GNU Emacs Manual', the `GNU Emacs Lisp Reference Manual', and a reference card come with the software. See ``GNU Documentation''. * GNU Emacs 19 (EmcsT, SrcCD) New features in Emacs 19 include: multiple X windows ("frames" to Emacs), with either a separate X window for the minibuffer or a minibuffer attached to each X window; property lists associated with regions of text in a buffer; multiple fonts and colors defined by those properties; simplified and improved processing of function keys, mouse clicks and mouse movement; X selection processing, including clipboard selections; hooks to be run if point or mouse moves outside a certain range; menu bars and popup menus defined by keymaps; scrollbars; before and after change hooks; source-level debugging of Emacs Lisp programs; European character sets support; floating point numbers; improved buffer allocation, using a new mechanism capable of returning storage to the system when a buffer is killed; interfacing with the X resource manager; GNU configuration scheme support; good RCS support; & many updated libraries. New features in Emacs 19.23 include X toolkit support, dialog boxes, operation on MS-DOS, much faster text properties, keyboard equivalents shown automatically in menus, and text that highlights when you move the mouse over it. Unlike some other recent derivations of Emacs, Emacs 19 from the Free Software Foundation continues to work on character-only terminals as well as under the MIT X Window System. * `es' (SrcCD, UtilT) `es' is an extensible shell based on `rc' that has first class functions, lexical scope, an exception system, and rich return values (i.e. functions can return values other than just numbers). Like `rc', it is great for both interactive use and for scripting, particularly because its quoting rules are much less baroque than the C or Bourne shells. * `f2c' (LangT, SrcCD) `f2c' converts Fortran-77 source files into C or C++, which can be compiled with GCC. You can get bug fixes via FTP from `netlib.att.com' in the file `/netlib/f2c/changes.Z' or by email from `netlib@research.att.com'. See ``Forthcoming GNUs'', for information about GNU Fortran. * NetFax (SrcCD, UtilT) NetFax is a freely-available fax spooling system originally developed in the MIT AI Lab. It provides Group 3 fax transmission and reception services for a networked Unix system. It requires a faxmodem which accepts Class 2 fax commands. Contact `bug-fax@prep.ai.mit.edu' for more information. * Fileutils (SrcCD, UtilD, UtilT) The fileutils work on files: `chgrp', `chmod', `chown', `cp', `dd', `df', `dir', `du', `install', `ln', `ls', `mkdir', `mkfifo', `mknod', `mv', `mvdir', `rm', `rmdir', `touch', & `vdir'. Only some of these are on the ``Selected Utilities Diskettes''. * `find' (SrcCD, UtilD, UtilT) `find' is frequently used both interactively and in shell scripts to find files which match certain criteria and perform arbitrary operations on them. Also included are `xargs', which applies a command to a list of files, and `locate', which scans a database for file names that match a pattern. * Finger (SrcCD, UtilT) GNU Finger has more features than other finger programs. For sites with many hosts, a single host may be designated as the finger "server" host. This host collects information about who is logged in to other hosts at that site. If a user at site A wants to know about users logged on at site B, a single query to any machine at the site will return complete information. * `flex' (LangT, SrcCD, UtilD) `flex' is a replacement for the `lex' scanner generator. `flex' was written by Vern Paxson of the Lawrence Berkeley Laboratory and generates far more efficient scanners than `lex' does. Texinfo source for the `Flex Manual' and reference card are included. See ``GNU Documentation''. * Fontutils (SrcCD, UtilT) The fontutils create fonts for use with Ghostscript or TeX, starting with a scanned type image and converting the bitmaps to outlines. They also contain general conversion programs and other utilities. Fontutils programs include: `bpltobzr', `bzrto', `charspace', `fontconvert', `gsrenderfont', `imageto', `imgrotate', `limn', and `xbfe'. * GAS (BinCD, LangT, SrcCD) GAS is the GNU assembler. Native assembly works for many systems, including: Sun 3, 4, & SPARC (SunOS 4.1 or Solaris 2); i386 (AIX, 386BSD, BSDI/386, Linux, SCO, Unixware); m68k (BSD, HP-UX, Convergent Technologies SysV); MIPS (Ultrix, Irix); Hitachi H8/300 and H8/500; & VAX (BSD, Ultrix, VMS). Cross assembling can be done for most of the above systems, plus: i386 (SCO, go32 MS-DOS/DJGPP); ebmon29k; Hitachi H8/300; i960 (b.out, COFF); MIPS ECOFF (Ultrix, Iris, MIPS Magnum); Nindy 960; vxworks (68k or 960); & Zilog Z8000. See ``Forthcoming GNUs'', for plans for future releases of GAS. * GAWK (LangT, SrcCD) GAWK is upwardly compatible with the System V Release 4 and POSIX versions of `awk'. It also provides several useful extensions not found in other `awk' implementations. Texinfo source for the `GAWK Manual' comes with the software. See ``GNU Documentation''. * GCC (BinCD, DjgppD, LangT, SrcCD, VMSCompT) Version 2 of the GNU C Compiler supports three languages: C, C++ and Objective-C; the source file name suffix or a compiler option selects the language. The front end support for Objective-C was donated by NeXT. The runtime support needed to run Objective-C programs is now distributed with GCC (this does not include any Objective-C classes aside from `object'). As much as possible, G++ is kept compatible with the evolving draft ANSI standard, but not with `cfront' (AT&T's compiler), which has been diverging from ANSI. The GNU C Compiler is a fairly portable optimizing compiler which performs automatic register allocation, common sub-expression elimination, invariant code motion from loops, induction variable optimizations, constant propagation and copy propagation, delayed popping of function call arguments, tail recursion elimination, integration of inline functions and frame pointer elimination, instruction scheduling, loop unrolling, filling of delay slots, leaf function optimization, optimized multiplication by constants, a certain amount of common subexpression elimination (CSE) between basic blocks (though not all of the supported machine descriptions provide for scheduling or delay slots), a feature for assigning attributes to instructions, and many local optimizations that are automatically deduced from the machine description. Function-wide CSE has been written, but needs to be cleaned up before it can be installed. Position-independent code is supported on the 68k, i386, Hitachi Slt, Hitachi H8/300, Clipper, 88k, SPARC & SPARClite. GCC can open-code most arithmetic on 64-bit values (type `long long int'). It supports extended floating point (type `long double') on the 68k; other machines will follow. GCC supports full ANSI C, traditional C and GNU C extensions. GNU C has been extended to support nested functions, nonlocal gotos, and taking the address of a label. GCC can generate a.out, COFF, ELF & OSF-Rose files when used with a suitable assembler. It can produce debugging information in these formats: BSD stabs, COFF, ECOFF, ECOFF with stabs & DWARF. GCC generates code for many CPUs, including: a29k, Alpha, ARM, Convex cN, Clipper, Elxsi, H8300, HP-PA (1.0 and 1.1) i370, i386, i486, i860, i960, m68k, m68020, m88k, MIPS, ns32k, Pyramid, ROMP, RS6000, SH, SPARC, SPARClite, VAX, and we32k. Operating systems supported include: AIX, ACIS, AOS, BSD, Clix, Ctix, DG/UX, Dynix, Genix, HP-UX, ISC, Irix, Linux, Luna, LynxOS, Mach, Minix, NewsOS, OSF, OSF-Rose, RISCOS, SCO, Solaris 2, SunOS 4, SysV, Ultrix, Unos, & VMS. * GDB (BinCD, LangT, SrcCD) In GDB, object files and symbol tables are now read via the BFD library, which allows a single copy of GDB to debug programs of multiple object file formats such as a.out and COFF. Other new features include command language improvements, remote debugging over serial lines or TCP/IP, and watchpoints (breakpoints triggered when the value of an expression changes). Exception handling, SunOS shared libraries and C++ multiple inheritance are only supported when used with GCC version 2. GDB comes with a command line user interface; GNU Emacs is distributed with a GDB mode, and `xxgdb' provides an X interface (but it is not distributed or maintained by the FSF; it is available for anonymous FTP from `ftp.x.org' in the `/contrib' directory). GDB uses a standard remote interface to a simulator library which (so far) has simulators for the Zilog Z8001/2, Hitachi H8/300, H8/500 & Super-H. GDB can perform cross-debugging. To say that GDB *targets* a platform means that it can perform native or cross-debugging for it. To say that GDB can *host* a given platform means that it can be built on it, but cannot necessarily debug native programs. GDB can: * *target* & *host*: DEC Alpha (OSF/1), Amiga 3000 (Amix), DECstation 3100 & 5000 (Ultrix), HP 9000/300 (BSD), IBM RS/6000 (AIX), i386 (BSD, SCO, Linux, LynxOS), Motorola Delta m88k (System V), NCR 3000 (SVR4), SGI Iris (MIPS running Irix V3 & V4), SONY News (NewsOS 3.x), Sun-3 & SPARC (SunOS 4.1, Solaris 2.0) & Ultracomputer (29K running Sym1). * *target*, but not *host*: i960 Nindy, AMD 29000 (COFF & a.out), Fujitsu SPARClite, Hitachi H8/300, m68k & m68332. * *host*, but not *target*: Intel 386 (Mach), IBM RT/PC (AIX) & HP/Apollo 68k (BSD). GDB can use the symbol tables emitted by the compilers supplied by most vendors of MIPS-based machines, including DEC. (These tables are in a format which almost nobody else uses.) Texinfo source for the manual `Debugging with GDB' and a reference card are included. See ``GNU Documentation''. * `gdbm' (LangT, SrcCD, UtilD) The `gdbm' library is the GNU replacement for the traditional `dbm' and `ndbm' libraries. It implements a database using quick lookup by hashing. `gdbm' does not need sparse file formats (unlike its Unix counterparts). * Ghostscript (SrcCD, UtilT) Ghostscript is GNU's graphics language which is almost fully compatible with Postscript (see ``Forthcoming GNUs''). The current version of Ghostscript is 2.6.1. Features include the ability to use the fonts provided by the platform on which Ghostscript runs (MIT X Window System and Microsoft Windows), resulting in much better-looking screen displays; improved text file printing (like `enscript'); a utility to extract the text from a Postscript document; a much more reliable (and faster) Microsoft Windows implementation; support for Microsoft C/C++ 7.0; drivers for many new printers, including the SPARCprinter, and for TIFF/F (fax) file format; many more Postscript Level 2 facilities, including most of the color space facilities (but not patterns), and the ability to switch between Level 1 and Level 2 dynamically. * Ghostview (SrcCD, UtilT) Tim Theisen, `ghostview@cs.wisc.edu', has created Ghostview, a previewer for multi-page files that runs on top of Ghostscript. Ghostview provides an X11 user interface for the Ghostscript interpreter. Ghostview and Ghostscript function as two cooperating programs; Ghostview creates a viewing window and Ghostscript draws in it. There is a port for Ghostview to MS-Windows called "GSview for Windows". For information about future releases of this program, see ``Forthcoming GNUs''. * `gmp' (LangT, SrcCD) GNU mp is a library for arbitrary precision arithmetic on signed integers and rational numbers. It has a rich set of functions with a regular interface. See ``Forthcoming GNUs'', for the plans for later releases of `gmp'. * GNATS (SrcCD, UtilT) GNATS (GNats: A Tracking System, not to be confused with GNAT, The GNU Ada Translator) is a bug-tracking system. It is based upon the paradigm of a central site or organization which receives problem reports and negotiates their resolution by electronic mail. Although it has been used primarily as a software bug-tracking system so far, it is sufficiently generalized so that it could be used for handling system administration issues, project management or any number of other applications. * `gnuplot' (SrcCD, UtilT) `gnuplot' is an interactive program for plotting mathematical expressions and data. It handles both curves (2 dimensions) and surfaces (3 dimensions). Curiously, the program was neither written nor named for the GNU Project; the name is a coincidence. * GnuGo (SrcCD, UtilT) GnuGo plays the game of Go (Wei-Chi); it is not yet very sophisticated. * `gperf' (LangT, SrcCD) `gperf' is a "perfect" hash-table generation utility. There are actually two implementations of `gperf', one written in C and one in C++. Both will produce hash functions in either C or C++. * GNU Graphics (SrcCD, UtilT) GNU Graphics is a set of programs which produce plots from ASCII or binary data. It supports output to Tektronix 4010, Postscript & the MIT X Window System or compatible devices. Features include support for output in ln03 and TekniCAD TDA file formats; a replacement for the `spline' program; examples of shell scripts using `graph' and `plot'; & a statistics toolkit. Existing ports need retesting. Contact Rich Murphey, `Rich@rice.edu', if you can help test/port it to anything beyond a SPARCstation. * grep (SrcCD, UtilD, UtilT) This package contains GNU `grep', `egrep', and `fgrep'. They are much faster than the traditional Unix versions. * Groff (SrcCD, UtilT) Groff is a document formatting system, which includes drivers for Postscript, TeX `dvi' format, and typewriter-like devices, as well as implementations of `eqn', `nroff', `pic', `refer', `tbl', `troff', and the `man', `ms', and `mm' macros. Groff's `mm' macro package is almost compatible with the DWB `mm' macros and has several extensions. Also included is a modified version of the Berkeley `me' macros and an enhanced version of the X11 `xditview' previewer. Written in C++, these programs can be compiled with GNU C++ Version 2.5 or later. Groff users are encouraged to contribute enhancements. Most needed are complete Texinfo documentation, a `grap' emulation (a `pic' preprocessor for typesetting graphs), a page-makeup postprocessor similar to `pm' (see `Computing Systems', Vol. 2, No. 2; ask `office@usenix.org' for information on obtaining a copy) and an ASCII output class for `pic' so that `pic' can be integrated with Texinfo. Questions and bug reports from users who have read the documentation that is provided with the distribution can be sent to `bug-groff@prep.ai.mit.edu'. * `gzip' (DjgppD, EmcsT, LangT, SrcCD, UtilT) Some of the contents of our tape and FTP distributions are compressed. We have software on our tapes and FTP sites to uncompress these files. Due to patent troubles with `compress', we have switched to another compression program, `gzip'. `gzip' can expand LZW-compressed files but uses a different algorithm for compression which generally produces better results. It also uncompresses files compressed with System V's `pack' program. * `hello' (SrcCD, UtilT) The GNU `hello' program produces a familiar, friendly greeting. It allows non-programmers to use a classic computer science tool which would otherwise be unavailable to them. Because it is protected by the GNU General Public License, users are free to share and change it. Like any truly useful program, `hello' provides a built-in mail reader. * `hp2xx' (SrcCD, UtilT) GNU `hp2xx' reads HP-GL files, decomposes all drawing commands into elementary vectors, and converts them into a variety of vector and raster output formats. It is also an HP-GL previewer. Currently supported vector formats include encapsulated Postscript, Uniplex RGIP, Metafont and various special TeX-related formats, and simplified HP-GL (line drawing only) for imports. Raster formats supported include IMG, PBM, PCX, & HP-PCL (including Deskjet & DJ5xxC support). Previewers work under X11 (Unix), OS/2 (PM & full screen), MS-DOS (SVGA, VGA, & HGC). * `indent' (SrcCD, UtilD, UtilT) GNU `indent' is a revision of the BSD version. By default, it formats C source according to the GNU coding standards. The BSD default, K&R and other formats are available as options. It is also possible to define your own format. GNU `indent' is more robust and provides more functionality than other versions, e.g., it handles C++ comments. * Ispell (SrcCD, UtilT) Ispell is an interactive spell checker that suggests "near misses" as replacements for unrecognized words. System and user-maintained dictionaries can be used. Standalone and GNU Emacs interfaces are available. * `m4' (SrcCD, UtilD, UtilT) GNU `m4' is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible, although it has some extensions (for example, handling more than 9 positional parameters to macros). `m4' also has built-in functions for including files, running shell commands, doing arithmetic, etc. * `make' (BinCD, EmcsT, LangT, SrcCD, UtilD, UtilT) GNU `make' supports POSIX 1003.2 and has all but a few obscure features of the BSD and System V versions of `make', as well as many of our own extensions. GNU extensions include long options, parallel compilation, flexible implicit pattern rules, conditional execution and powerful text manipulation functions. Recent versions have improved error reporting and added support for the popular `+=' syntax to append more text to a variable's definition. Texinfo source for the `Make Manual' comes with the program. See ``GNU Documentation''. GNU `make' is on several of our tapes because some system vendors supply no `make' utility at all, and some native `make' programs lack the `VPATH' feature essential for using the GNU configure system to its full extent. The GNU `make' sources have a shell script to build `make' itself on such systems. * MandelSpawn (SrcCD, UtilT) A parallel Mandelbrot generation program for the MIT X Window System. * mtools (SrcCD, UtilT) mtools is a set of public domain programs to allow Unix systems to read, write and manipulate files on an MS-DOS file system (usually a diskette). * MULE (SrcCD) MULE is a MULtilingual Enhancement to GNU Emacs 18. It can handle many character sets at once including Japanese, Chinese, Korean, Vietnamese, Thai, Greek, the ISO Latin-1 through Latin-5 character sets, Ukrainian, Russian, and other Cyrillic alphabets. A text buffer in MULE can contain a mixture of characters from these languages. To input any of these characters, you can use various input methods provided by MULE itself. In addition, if you use MULE under some terminal emulators (kterm, cxterm, or exterm), you can use its input methods. See ``GNU and Other Free Software in Japan'', for more information about MULE. * NetHack (SrcCD, UtilT) NetHack is a display-oriented adventure game similar to Rogue. Both ASCII and X displays are supported. * NIH Class Library (LangT, SrcCD) The NIH Class Library (formerly known as "OOPS", Object-Oriented Program Support) is a portable collection of C++ classes, similar to those in Smalltalk-80, which has been developed by Keith Gorlen of the National Institutes of Health (NIH), using the C++ programming language. * `nvi' (SrcCD, UtilT) `nvi' is a free implementation of the `vi'/`ex' Unix editor. It has most of the functionality of the original `vi'/`ex', except "open" mode & the `lisp' option, which will be added. Enhancements over `vi'/`ex' include split screens with multiple buffers, ability to handle 8-bit data, infinite file & line lengths, tag stacks, infinite undo & extended regular expressions. It runs under BSD, Linux, NetBSD, FreeBSD, BSDI, AIX, HP-UX, DGUX, IRIX, PSF, PTX, Solaris, SunOS, Ultrix, Unixware & should port easily to many other systems. * Octave (LangT, SrcCD) Octave is a high-level language that is primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically. Octave does arithmetic for real and complex scalars and matrices, solve sets of nonlinear algebraic equations, integrate functions over finite and infinite intervals, and integrate systems of ordinary differential and differential-algebraic equations. Send queries and bug reports to: `bug-octave@che.utexas.edu'. Octave is available via anonymous ftp from `ftp.che.utexas.edu' in the directory `/pub/octave'. The files are in gzipped `tar' format (see the file `/pub/gnu/README' on `prep.ai.mit.edu'). Source is included for a 150+ page Texinfo manual, which is not yet published by the FSF. * Oleo (SrcCD, UtilT) Oleo is a spreadsheet program (better for you than the more expensive spreadsheets). It supports the MIT X Window System and character-based terminals, and can output Embedded Postscript renditions of spreadsheets. Keybindings should be familiar to Emacs users and are configurable. Under X and in Postscript output, Oleo supports multiple, variable width fonts. See ``Forthcoming GNUs'', for the plans for later releases of Oleo. * `p2c' (LangT, SrcCD) `p2c' is a Pascal-to-C translator written by Dave Gillespie. It recognizes many Pascal dialects including Turbo, HP, VAX, and ISO, and produces readable, maintainable, portable C. * `patch' (SrcCD, UtilT) `patch' is our version of Larry Wall's program to take `diff''s output and apply those differences to an original file to generate the modified version. * PCL (EmcsT, SrcCD) PCL is a free implementation of a large subset of CLOS, the Common Lisp Object System. It runs under CLISP, mentioned above. * `perl' (LangT, SrcCD) Larry Wall's `perl' combines the features and capabilities of `sed', `awk', `sh' and C, as well as interfaces to all the system calls and many C library routines. A perl mode for editing `perl' code comes with GNU Emacs 19. * `ptx' (SrcCD, UtilD, UtilT) GNU `ptx' is the GNU version of the traditional permuted index generator. It can handle multiple input files at once, produce TeX compatible output, and produce readable "KWIC" (KeyWords In Context) indexes without needing to use `nroff'. This version does not handle input files that do not fit in memory all at once. * `rc' (SrcCD, UtilT) `rc' is a shell that features a C-like syntax (much more so than `csh') and far cleaner quoting rules than the C or Bourne shells. It's intended to be used interactively, but is also great for writing scripts. It inspired the shell `es'. * RCS (SrcCD, UtilD, UtilT) The Revision Control System, RCS, is used for version control and management of software projects. When used with GNU `diff', RCS can handle binary files (executables, object files, 8-bit data, etc). Also see the item about CVS in this article. * `recode' (SrcCD, UtilT) GNU `recode' converts files between character sets and usages. When exact transliterations are not possible, it may get rid of the offending characters or fall back on approximations. This program recognizes or produces nearly 150 different character sets and is able to transliterate files between almost any pair. Most RFC 1345 character sets are supported. * regex (LangT, SrcCD) The GNU regular expression library supports POSIX.2, except for internationalization features. In the past, it has been included in many GNU programs which use regex routines. Now it is finally available separately. A faster version of this library comes with `sed'. * Scheme (SchmT) For information about Scheme, see ``Scheme Tape''. * `screen' (SrcCD, UtilT) `screen' is a terminal multiplexer that runs several separate "screens" (ttys) on a single physical character-based terminal. Each virtual terminal emulates a DEC VT100 plus several ANSI X3.64 and ISO 2022 functions. `screen' sessions can be detached and resumed later on a different terminal type. * `sed' (SrcCD, UtilD, UtilT) `sed' is a stream-oriented version of `ed'. It is used copiously in shell scripts. GNU `sed' comes with the rx library, which is a faster version of regex (see ``Forthcoming GNUs''). * Shellutils (SrcCD, UtilT) Use shellutils interactively or in shell scripts: `basename', `date', `dirname', `echo', `env', `expr', `false', `groups', `id', `nice', `nohup', `printenv', `printf', `sleep', `stty', `su', `tee', `test', `true', `tty', `uname', `who', `whoami', and `yes'. * GNU Shogi (SrcCD, UtilT) Shogi is a Japanese game similar to Chess; a major difference is that captured pieces can be returned into play. GNU Shogi has been created by modifying GNU Chess; GNU Shogi implements the same features as GNU Chess and uses similar heuristics. As a new feature, sequences of partial board patterns can be introduced in order to help the program play a good order of moves towards specific opening patterns. There are both character and X display interfaces. GNU Shogi is primarily supported by Matthias Mutz on behalf of the FSF. Matthias Mutz Universitaet Passau, FMI 94030 Passau Germany Electronic-mail: `mutz@fmi.uni-passau.de' * Smalltalk (LangT, SrcCD) GNU Smalltalk is an interpreted object-oriented programming language system written in highly portable C. It has been successfully ported to many Unix and some other platforms, including DOS (but these non-Unix ports are not available from the FSF). Current features include a binary image save capability, the ability to invoke user-written C code and pass parameters to it, a GNU Emacs editing mode, a version of the X protocol invocable from Smalltalk, optional byte-code compilation tracing and byte-code execution tracing, and automatically loaded per-user initialization files. It implements all of the classes and protocol in the Smalltalk-80 book "Smalltalk-80: The Language", except for the graphic user interface (`GUI') related classes. See ``Forthcoming GNUs'', for plans for later releases of Smalltalk. * Superopt (LangT, SrcCD) Superopt is a function sequence generator that uses an exhaustive generate-and-test approach to find the shortest instruction sequence for a given function. You provide the GNU superoptimizer, `gso', a function, a CPU to generate code for, and how many instructions you can accept. Its application in GCC is described in the `ACM SIGPLAN PLDI'92' proceedings. Superopt supports: SPARC, m68k, m68020, m88k, IBM RS/6000, AMD 29000, Intel 80x86, Pyramid, DEC Alpha, & HP-PA. * `tar' (SrcCD, UtilT) GNU `tar' includes multivolume support, the ability to archive sparse files, automatic archive compression/decompression, remote archives and special features that allow `tar' to be used for incremental and full backups. Unfortunately, GNU `tar' implements an early draft of the POSIX 1003.1 `ustar' standard which is different from the final standard. Adding support for the new changes in a backward-compatible fashion is not trivial. * Termcap Library (SrcCD, UtilT) The GNU Termcap library is a drop-in replacement for `libtermcap.a' on any system. It does not place an arbitrary limit on the size of Termcap entries, unlike most other Termcap libraries. Included is source for the `Termcap Manual' in Texinfo format. See ``GNU Documentation''. * Texinfo (EmcsT, LangT, SrcCD, UtilD, UtilT) Texinfo is a set of utilities which generate both printed manuals and online hypertext-style documentation (called "Info"). There are also programs for reading online Info documents. Version 3 has both GNU Emacs Lisp and standalone programs written in C or shell script. Texinfo mode for GNU Emacs enables easy editing and updating of Texinfo files. Programs provided include `makeinfo', `info', `texi2dvi', `texindex', `tex2patch', and `fixfonts'. Source for the `Texinfo Manual' is included. See ``GNU Documentation''. * Textutils (SrcCD, UtilT) The Textutils programs manipulate textual data. They include: `cat', `cksum', `comm', `csplit', `cut', `expand', `fold', `head', `join', `nl', `od', `paste', `pr', `sort', `split', `sum', `tac', `tail', `tr', `unexpand', `uniq', and `wc'. * Tile Forth (LangT, SrcCD) Tile Forth is a 32-bit implementation of the Forth-83 standard written in C, allowing it to be easily moved between different computers. (Traditionally, Forth implementations are written in assembler to use the underlying hardware as optimally as possible, but this also makes them less portable.) * `time' (SrcCD, UtilT) `time' is used to report statistics (usually from a shell) about the amount of user, system and real time used by a process. On some systems it also reports memory usage, page faults, and other statistics. * `tput' (SrcCD, UtilT) `tput' is a portable way for shell scripts to use special terminal capabilities. Our `tput' uses the Termcap database, instead of Terminfo as most others do. * UUCP (SrcCD, UtilT) This version of UUCP was written by Ian Lance Taylor, and is GNU's standard UUCP system. It supports the `f', `g' and `v' (in all window and packet sizes), `G', `t', `e', Zmodem and two new bidirectional (`i' and `j') protocols. If you have a Berkeley sockets library, it can make TCP connections. If you have TLI libraries, it can make TLI connections. Source is included for a Texinfo manual, which is not yet published by the FSF. * `uuencode' and `uudecode' (SrcCD, UtilT) `uuencode' and `uudecode' are used to transmit binary files over transmission mediums that support only simple ASCII data. * `wdiff' (SrcCD, UtilT) `wdiff' is a front-end to GNU `diff'. It compares two files, finding which words have been deleted or added to the first in order to create the second. It has many output formats and interacts well with terminals and pagers. `wdiff' is particularly useful when two texts differ only by a few words and paragraphs have been refilled.