[gnu.announce] latest task list

tower@WHEATIES.AI.MIT.EDU (Leonard H. Tower Jr.) (02/08/89)

GNU task list, last updated 24 Jan 1989

Check with gnu@prep.ai.mit.edu, for a possibly more current copy.

If you start working steadily on a project, please let gnu@prep know.
We might have information that could help you; we'd also like to send
you the GNU coding standards.

0. Documentation

We very urgently need documentation for some parts of the system
that already exist or will exist very soon:

A C reference manual.
  (RMS has written half of one which you could start with).

A manual for Ghostscript.

A GNU Emacs Lisp programming manual
  (contact us about this, as much has already been done).

Manuals for SH and CSH.

A DIFF manual (not as hard as the others).

A LEX manual.

A book on how GCC works and why various machine descriptions
are written as they are.

A manual for programming X-window applications.

Manuals for various X window managers.

Reference cards for various programs.

1. imitations of standard parts of Unix:

csplit, cu, join, nlist (library), mt, sdiff, su.

Less urgent: banner (both tty horizontal and lpr vertical), calendar,
diction, explain,  plot, style.

Posix utilities: uname, validfname, xd, touch (various new features),
new algorithm for sum -p, stty, mktemp, id, getopts, asa.

xargs (we have one half-written).

Finish a kwik indexer.

nroff/troff, eqn, tbl, and standard macro packages.  Probably the
equivalent of troff should output dvi files (tex output files).
A little of this (an nroff-like macro processor) has been written.
A texinfo macro package to improve or replace texi2roff.

Finish an incomplete vi clone.

Add a data-base feature to `find' to make it faster.

A tool to examine a C source file and produce a list of `indent'
options which describe the style of indentation in use.

Write sin, cos, exp, log, arctan and bessel functions for bc.
Implement large radices (> 16) for bc.

Cross-reference program for C programs
 (like cxref, cflow, etc.)

Various other libraries.

File system maintenance utilities, such as smarter versions
of dump and restore.

A program to read and write MS-DOG floppies.

2. Kernel projects:

Whether we use TRIX or MACH, in either case a new implementation
of TCP/IP must be written, and a new disk file system.
(Actually, this may no longer be necessary, since BSD's TCP/IP
may be declared free, and perhaps the file system from Sprite may
be usable.)

An over-the-ethernet debugger that will allow the kernel to be
debugged from GDB running on another machine.

A shared memory X11 server to run under MACH or TRIX is very
desirable.  The machine specific parts should be kept well separated.

3. Extensions to existing GNU software.

Extend GNU Emacs to do desktop publishing.  (Talk to phr about this).

Extend GDB with a C interpreter so the user can change the program
during a debugging session.  Some parts of this are being worked on.

Extend GDB to handle other languages than C.

Extend the linker to combine multiple appearances of the same header file,
as Sun's linker does.

Enhance GCC.  See files PROJECTS and PROBLEMS in the GCC distribution.

4. Other random projects:

An imitation of dbase2 or dbase3 (How dbased!)

A spreadsheet.

An imitation of Page Maker or Ventura Publisher.

Improve the free UCB version of the Ingres database system to
make it competitive with RTI Ingres.

Draw programs for the X window system.

Font editor for the X window system.

A music playing and editing system.

Speech-generation programs.

A Forth system.

A Smalltalk system (this is being worked on).

An APL system.

A Common Lisp system.

A Logo system.  (We have one that you can start with,
but certain parts of it are poorly written and must be replaced.)

Optical character scanning programs.

Note that graphics programs should be written to work with
the X window system, a free portable window system from MIT and DEC
that we will be using as the window system for GNU.

5. Compilers for other batch languages.

Volunteers are needed to write parsers/front ends for languages such
as Pascal, Algol 60, Algol 68, Modula, PL/I, Ada or whatever, to be
used with the code generation phases of the GNU C compiler.  (C++ and
Fortran are being done.)

It may be possible to adapt the C front end as a lint, preferably not
as stupidly stubborn as the Unix lint.  But this may not be necessary,
given the stronger type checking of ANSI C.

6. Games and recreations

Video-oriented games should work with the X window system.

Empire (there is a free version but it needs upgrading)
Adventure (partly done--contact phr@prep for info)
Rocky's Boots
Chipwits
Imitations of your favorite video games:
 Space war, Asteroids, Pong, SDI, Breakout, Lode Runner, etc.
Compute and display Mandelbrot set and Julia sets
Flight simulator (I have contacts to get you information
 on the equations with which you can do accurate simulation)
Biomorph evolution (as in Scientific American)
A fast simulation of the cellular automaton "life"
 (see PHYSICA 10D (1984), #1-2 (double issue), pp 75-80 for one method).
A program to display effects of moving at relativistic speeds

We do not need rogue, as we have hack.