GNU Task List last updated 14 Oct 90 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. Manuals for SH and CSH. Manuals for how to use the system calls and libraries. 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. Utilities needing separate documentation include diff, grep, cpio, less, life, nl, pr, cut and paste, script, patch, prmail, touch, file, find, uuencode and uudecode. 1. imitations of standard parts of Unix: csplit, sdiff, mailx (System V), join Less urgent: calendar, diction, explain, plot, style. An improved version of the POSIX utility `pax'. There is one on the usenet, but it is said to be poorly written. Add the System V features to Berkeley curses. Macro packages and auxiliary programs for troff. The ones we need are the mm and ms macros, and the programs grap and refer. All the rest is done. 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, etc.) Various other libraries. 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 us 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. Add a few features to GNU diff: such as handling large input files without reading entire files into core. An nroff macro package to replace texi2roff. Finish implementation of TECO in GNU Emacs Lisp, for short throw-away programs. Extend gprof to handle basic-block profiling, a la tcov. 4. Other random projects: (If you think of others that should be added, please send them to gnu@prep.ai.mit.edu.) A program to convert Postscript to plain ASCII text. This won't be too hard if you don't worry pedantically about how the output text should be formatted. If you can get paragraph boundaries right, discard page headers and footers, and put chapter and section headings on separate lines, the output should be good enough. An imitation of Page Maker or Ventura Publisher. An imitation of dbase2 or dbase3 (How dbased!) Draw programs for the X window system. Font editor for the X window system (if it doesn't already have one). An X window interface for Metafont. An emulator for Macintosh graphics calls on top of X Windows. A music playing and editing system. A program to edit dance notation (such as labanotation) and display dancers moving on the screen. A tool for beginners to read and send mail with. It should not have a lot of features, but needs a very clean window-and-buttons user interface. A general ledger program. A program to typeset C code for printing. For ideas on what to do, see the forthcoming book, Human Factors and Typography for More Readable Programs, Ronald M. Baecker and Aaron Marcus, Addison-Wesley, ISBN 0-201-10745-7 (I don't quite agree with a few of the details they propose.) Speech-generation programs (a project is forming for this). Speech-recognition programs (single-speaker, disconnected speech). Scientific mathematical subroutines, including clones of SPSS. Statistical tools. Software to replace card catalogues in libraries. Grammar and style checking programs. An APL system. A Common Lisp system. (The beginnings of one may be available from MIT or CMU.) An implementation of the S language. A translator from Scheme to C. Optical character scanning programs; especially if suitable for scanning documents with multiple fonts and capturing font info as well as character codes. It may not be very difficult if you let it "train" on part of the individual document to be scanned, so as to learn what fonts are in use in that document. A program to scan a line drawing and convert it to Postscript. CAD software, such as a vague imitation of Autocad. A ghostscript to fax program, so that documents can be sent to remote fax machines. Enhance the X back-end for ghostscript. A program to display and edit Hypercard stacks. An interface-builder program to make it easy to design graphical interfaces for applications. A desktop program with icons and such, for X-windows. 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 Algol 60, Algol 68, Modula, PL/I, Ada, or whatever, to be used with the code generation phases of the GNU C compiler. (C++ is done, and Fortran, Pascal and Modula are being worked on.) 6. Games and recreations Video-oriented games should work with the X window system. Empire (there is a free version but it needs upgrading) 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 program to display effects of moving at relativistic speeds We do not need rogue, as we have hack.