Go to the previous, next chapter.
We are using a uniform scheme for configuring GNU software packages in order to compile them. All GNU software supports the same alternatives for naming machine and system types. This makes it possible to configure any and all GNU software in the same manner.
The configuration scheme also supports configuring a directory containing several GNU packages with one command. When the operating system is completed, it will be possible to configure the entire system at once, eliminating the need to separately configure each of the individual packages that make up the GNU system.
The configuration scheme can also specify both the host and target system, so you can easily configure and build cross-compilation tools.
We are developing the GNU Hurd, a set of servers that run on top of Mach (for more information, see "Towards a New Strategy of Operating System Design"). Mach is a free message-passing kernel being developed at CMU. The Hurd servers, working with the GNU C Library, will provide Unix-like functionality. They are the last major components necessary for a complete GNU system.
Currently there are free ports of the Mach kernel to the 386 PC, the DEC
PMAX workstation, and several other machines, with more in progress.
Contact CMU c/o mach@cs.cmu.edu
if you want to help with one
of those or start your own. Porting the GNU Hurd and GNU C Library is
easy (easier than porting GNU Emacs, certainly easier than porting GCC)
once a Mach port to a particular kind of hardware exists.
Significant progress has been made recently: the filesystem is coming up
and several other servers are running.
There are significant projects relating to the Hurd for which we need
volunteers. Experienced system programmers who are interested should send
mail to gnu@prep.ai.mit.edu
.
Emacs is the extensible, customizable, self-documenting real-time display editor. The current version is GNU Emacs 19.22.
A number of volunteers have been especially helpful on Emacs 19. Thanks to Alan Carroll and the people who worked on Epoch for generating initial feedback to a multi-windowed Emacs, to Lucid, Inc. for implementing X Selections, faces, the optimizing byte compiler, and the default menu bar, to Eric Raymond who has evaluated 460 out of 851 possible new Lisp libraries, and to Stephen Gildea for making the Emacs 19 reference card.
Features planned for later releases of Emacs include: different
visibility conditions for regions, and for various windows showing one
buffer; incrementally saving the undo history in a file, so that
recover-file
also reinstalls the buffer's undo history; support
for variable-width fonts; support for wide character sets including all
the world's major languages; and support for display using an X toolkit.
g77
)
GNU Fortran is in "private" alpha test (testing by a small group of
experts) and is not yet publicly released. Until g77
is fully
released to the public, we ask people to use f2c
(a Fortran-to-C
translator) with gcc
(the GNU C compiler). As g77
uses a lot
of these tools (the f2c
libraries and the gcc
back end),
using them and reporting any problems you find will help speed the release
of g77
. For more information on f2c
and gcc
, see "GNU
Software Available Now."
The primary focus of the alpha test is to test the g77
front end,
since that has most of the new code. The secondary focus of the alpha
test is to test the integration between the front end and the back end.
Currently, this is where most of the bugs seem to be. The tertiary
focus is the quality of code generated by the GNU back end for Fortran.
We hope to have a g77
beta release in early spring 1994, as part of
the regular compiler distribution.
A mailing list exists for announcements about g77
. To subscribe,
ask info-gnu-fortran-request@prep.ai.mit.edu
. To contact the
author and maintainer of g77
, write to
fortran@prep.ai.mit.edu
.
Version 2 of the GNU C Compiler has been released. We are no longer distributing or maintaining version 1 of GCC, G++, or libg++. GCC2 supports both ANSI and traditional C, as well as some GNU C extensions. There are front ends for C++ and Objective C too.
New front ends are being developed, but they are not yet part of GCC. A
front end for Fortran is now in alpha test and is approaching completion,
and a front end for Ada (GNAT: The GNU Ada Translator) is available via
anonymous FTP from cs.nyu.edu
in `ftp/pub/gnat', though it is
not yet stable. Volunteers are also developing a Pascal front end.
For more information about GCC, see "GNU Software Available Now."
The FSF is working to add interpreter facilities to the GNU compiler and debugger. This task is partly finished. The compiler now generates byte code (for all supported languages, not just C) and another package interprets it.
To make this work usable, we need to add features to GDB to dynamically
load the byte code. We also would like C compiler support for compiling
just a specified few functions in a file. Due to limited
resources, the FSF cannot fund this. Interested volunteers should
contact gnu@prep.ai.mit.edu
.
Steve Chamberlain, Per Bothner, and others at Cygnus Support have rewritten the binary utilities (including the linker). Version 2 is based on the same Binary File Descriptor (BFD) library used by GDB. All the tools can be run on a host that differs from the target (e.g. cross-linking is supported). Various forms of COFF and other object file formats are supported. A tool can now deal with object files in multiple formats simultaneously. E.g., the linker can read object files using many different formats, and write the output in yet another format. The linker interprets a superset of the AT&T Linker Command Language, which allows general control over where segments are placed in memory.
Roland McGrath continues work on the GNU C Library. It now supports all requirements of the ANSI C-1989 and POSIX 1003.1-1990 standards, most facilities of POSIX 1003.2, and many additional BSD and System V functions.
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.06 of the GNU C Library is just out and 1.07 is in the works. Version 1.06 includes the relocating allocator used in Emacs 19, as well as new ports to Dynix on Sequent Symmetry, SCO & SVR4 on i386, & Solaris 2 on SPARC. Texinfo source of the GNU C Library Reference Manual is included. For more info, see "GNU Software Available Now."
We now have a version of indent
which supports the GNU
indentation conventions for C code. It is more robust and also has
handy options for the most common style combinations.
A companion program to examine a C source file and find the indentation
parameters used therein is almost ready for release, but needs someone to
finish it. Please contact gnu@prep.ai.mit.edu
to volunteer.
make
(also see "GNU Software Available Now")
GNU make
version 3.70 is released. Error reporting is improved and
many bugs have been fixed. GNU make
fully complies with the POSIX.2
standard. It also supports long options, parallel command execution,
flexible implicit pattern rules, conditional execution and powerful text
manipulation functions. Version 3.64 added support for the popular
`+=' syntax for appending more text to a variable's definition.
For those with no vendor-supplied make
utility at all, GNU
make
comes with a shell script called `build.sh' for the
initial build. See "GNU Software Available Now."
Oleo is a spreadsheet program that can be run either as an X client or
using curses. The current version is 1.5. Support has recently been
added both for gnuplot
and for generating embedded Postscript.
If you would like to write the Texinfo manual for Oleo, contact Tom Lord,
lord+@andrew.cmu.edu
. Please send bug reports regarding Oleo
to bug-oleo@prep.ai.mit.edu
. See "GNU Software Available
Now."
The current version of Ghostscript is 2.6.1. New features include the
ability to use the fonts provided by the platform on which Ghostscript
runs (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.
Ghostscript accepts commands in Postscript and executes them by writing
directly to a printer, drawing on an X window, or writing to a file that
you can print later (or to a bitmap file that you can manipulate with
other graphics programs). Tim Theisen,
ghostview@cs.wisc.edu
, has created Ghostview, a previewer
for multi-page files that runs on top of Ghostscript. Russell Lang,
rjl@monu1.cc.monash.edu.au
, has created Ghostview for
Windows, a similar previewer that runs on Microsoft Windows.
Ghostscript includes a C-callable graphics library (for client programs that do not want to deal with the Postscript language). It also supports IBM PCs and compatibles with EGA, VGA, or SuperVGA graphics (but please do not ask the FSF staff any questions about this; we do not use PCs).
The next planned Ghostscript release is 3.0, hopefully available in early 1994. It will implement the full Postscript Level 2 language except for LZW compression, which can't be freely implemented because of software patents. Prohibitions like this on programming is what the League for Programming Freedom is fighting. See "What is the LPF?" for details.
GNU Smalltalk implements the traditional features of the Smalltalk language, but not yet the graphics and window features. Recently someone implemented these and they will appear in a future release.
groff
(also see "GNU Software Available Now")
James Clark has completed groff
(GNU troff
and related
programs). Written in C++, they can be compiled with GNU C++
Version 2.3 or later.
Bugs in groff
will be fixed, but no major new developments are
currently planned. However, groff
users are encouraged to
continue 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) and an ASCII output
class for pic
so that pic
can be integrated with Texinfo.
Thanks to all those who have contributed bug reports.
The Texinfo 3 package includes an enhanced Texinfo mode for GNU Emacs,
new versions of the formatting utilities, and the second edition of the
Texinfo Manual. This edition is more thorough and describes over
50 new commands. Texinfo mode now includes commands for automatically
creating and updating nodes and menus, a tedious task when done by hand.
makeinfo
, a standalone formatter, and info
, a standalone
Info reader are included. Both are written in C and are independent of
GNU Emacs.
Although we do not yet have a complete GNU system, it is already possible for you to begin porting it. This is because the unfinished part, the Hurd, is basically portable. The parts of the system that really need porting are Mach and the GNU C Library, which are already available to port, use and report bugs.
Go to the previous, next chapter.