home *** CD-ROM | disk | FTP | other *** search
- GNU Task List last updated 14 June 1993
-
- Check with gnu@prep.ai.mit.edu, for a possibly more current copy.
- This task list is not exclusive; any other useful program might be a
- good project--but it might instead be something we already have, so
- check with gnu@prep before you start writing it.
-
- 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.
-
- Because of the natural tendency for most volunteers to write
- programming tools or programming languages, we have a comparative
- shortage of applications useful for non-programmer users. Therefore,
- we ask you to consider writing such a program.
-
- 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 manual for CSH.
-
- A manual for PIC (the graphics formatting language).
-
- A manual for Perl. (The manual that exists is not free, and
- is thus not available to be part of the GNU system.)
-
- 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 those manuals that don't have them: Gawk, C
- Compiler, GDB, Make, Texinfo, Termcap and maybe the C Library.
-
- Many utilities need documentation, including grep, cpio, less, the
- fileutils, the textutils, and the shellutils.
-
- 1. Unix-related projects:
-
- icheck, ncheck, quot.
-
- We could use an emulation of Unix spell, which would run by invoking
- ispell.
-
- Less urgent: diction, explain, style.
-
- An improved version of the POSIX utility `pax'. There is one on the
- usenet, but it is said to be poorly written. Talk with
- mib@gnu.ai.mit.edu about this project.
-
- Modify the GNU dc program to use the math routines of GNU bc.
-
- A grap preprocessor program for troff.
-
- Various other libraries.
-
- An emulation of SCCS, that works using RCS.
-
- 2. Kernel-related projects:
-
- 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 is very desirable. The
- machine specific parts should be kept well separated.
-
- 3. Extensions to existing GNU software.
-
- Enhance GCC. See files PROJECTS and PROBLEMS in the GCC distribution.
-
- GNU sed probably needs to be rewritten completely just to make it cleaner.
-
- Add a few features to GNU diff, such as handling large input files
- without reading entire files into core.
-
- Extend GDB with an X-based graphical interface better than xxgdb.
-
- An nroff macro package to simplify texi2roff.
-
- A queueing system for the mailer Smail that groups pending work by
- destination rather than by original message. This makes it possible
- to schedule retries coherently for each destination. Talk to
- tron@veritas.com about this.
-
- A cross-referencing program for C and other languages.
-
- 4. X windows projects:
-
- An emulator for Macintosh graphics calls on top of X Windows.
-
- An emulator for Microsoft windows calls on top of X Windows. (A
- commercial program to do this took just three months to write.)
-
- A music playing and editing system.
-
- A program to edit dance notation (such as labanotation) and display
- dancers moving on the screen.
-
- A library for displaying circle-shaped menus with X windows.
-
- A program to display and edit Hypercard stacks.
-
- An interface-builder program to make it easy to design graphical
- interfaces for applications. This could work with the dynamic linker
- DLD and C++, loading in the same class definitions that will be used
- by the application program.
-
- A desktop program with icons and such, for X-windows.
-
- A paint program, supporting both bitmap-oriented operations and
- component-oriented operations. xpaint exists, but isn't very usable.
-
- 5. Other random projects:
- (If you think of others that should be added, please
- send them to gnu@prep.ai.mit.edu.)
-
- [This seems to be being done:]
- A program to convert Postscript to plain ASCII text. Ghostscript will
- soon have a mode to output all the text strings in a document, each
- with its coordinates. You could write a program to start with this
- output and "layout the page" in ASCII. The program will be both
- easier and more useful if you don't worry pedantically about how the
- output text should be formatted. Instead, try to make it look
- reasonable as plain ASCII.
-
- A program to convert compiled programs represented in OSF ANDF
- ("Architecture Neutral Distribution Format") into ANSI C.
-
- An imitation of Page Maker or Ventura Publisher.
-
- An imitation of dbase2 or dbase3 (How dbased!)
-
- A program to reformat Fortran programs in a way that is pretty.
-
- A bulletin board system. There are a few free ones, but they don't have
- all the features that people want in such systems. It would make sense
- to start with an existing one and add the other features.
-
- A general ledger program.
-
- A single command language that could be suitable for use in a shell,
- in GDB for programming debugging commands, in a program like awk, in a
- calculator like bc, and so on. The fact that all these programs are
- similar but different in peculiar details is a great source of
- confusion. We are stuck with maintaining compatibility with Unix in
- our shell, awk, and bc, but nothing prevents us from having
- alternative programs using our new, uniform language. This would make
- GNU far better for new users.
-
- 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 (there is a program from Brown U that you
- could improve).
-
- 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 implementation of the S language.
-
- A translator from Scheme to C.
-
- Optical character recognition programs; especially if suitable for
- scanning documents with multiple fonts and capturing font info as well
- as character codes. This 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. We would particularly
- like to scan the Century Dictionary, an unabridged dictionary now in
- the public domain.
-
- You don't need scanning hardware to work on OCR. We can send you
- bitmaps you can use as test data.
-
- A program to scan a line drawing and convert it to Postscript.
-
- A program to recognize handwriting.
-
- A pen based interface.
-
- Software suitable for creating virtual reality user interfaces.
-
- CAD software, such as a vague imitation of Autocad.
-
- 6. Compilers for other batch languages.
-
- Volunteers are needed to write parsers/front ends for languages such
- as Algol 60, Algol 68, PL/I, or whatever, to be used with the
- code generation phases of the GNU C compiler. (C++ is done, and
- Ada, Fortran, Pascal and Modula are being worked on.)
-
- 7. Games and recreations
-
- Video-oriented games should work with the X window system.
-
- Empire (there is a free version but it needs upgrading)
- Imitations of popular video games:
- Space war, Asteroids, Pong, Columns.
- Defending cities from missiles.
- Plane shoots at lots of other planes.
- Wizard fights fanciful monster.
- A golf game.
- Program a robot by sticking building blocks together,
- then watch it explore a world.
- Biomorph evolution (as in Scientific American).
- A program to display effects of moving at relativistic speeds.
-
- Intriguing screen-saver programs to make interesting pictures.
- Other such programs that are simply entertaining to watch.
- For example, an aquarium.
-
- We do not need rogue, as we have hack.
-