Files
oldlinux-files/gnu/tasks
2024-02-19 00:24:47 -05:00

215 lines
6.6 KiB
Plaintext

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.