mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
399 lines
9.8 KiB
Plaintext
399 lines
9.8 KiB
Plaintext
\input texinfo @c -*-texinfo-*-
|
|
@c %**start of header
|
|
@setfilename tasks.info
|
|
@settitle GNU Task List
|
|
@c UPDATE THIS DATE WHENEVER YOU MAKE CHANGES!
|
|
@set lastupdate 16 July 1993
|
|
@c %**end of header
|
|
|
|
@setchapternewpage off
|
|
|
|
@titlepage
|
|
@title GNU Task List
|
|
@author Free Software Foundation
|
|
@author last updated @value{lastupdate}
|
|
@end titlepage
|
|
|
|
@ifinfo
|
|
@node Top, Documentation, (dir), (dir)
|
|
@top GNU Task list
|
|
|
|
This file is updated automatically from @file{tasks.texi}, which was
|
|
last updated on @value{lastupdate}.
|
|
@end ifinfo
|
|
|
|
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.
|
|
|
|
@menu
|
|
* Documentation::
|
|
* Unix-Related Projects::
|
|
* Kernel Projects::
|
|
* Extensions::
|
|
* X Windows Projects::
|
|
* Other Projects::
|
|
* Compilers::
|
|
* Games and Recreations::
|
|
@end menu
|
|
|
|
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.
|
|
|
|
In general, a new program that does a completely new job advances the
|
|
GNU project more than an improvement to an existing program.
|
|
|
|
@node Documentation
|
|
@chapter Documentation
|
|
|
|
We very urgently need documentation for some parts of the system
|
|
that already exist or will exist very soon:
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
A C reference manual. (RMS has written half of one which you could
|
|
start with).
|
|
|
|
@item
|
|
A manual for Ghostscript.
|
|
|
|
@item
|
|
A manual for CSH.
|
|
|
|
@item
|
|
A manual for PIC (the graphics formatting language).
|
|
|
|
@item
|
|
A manual for Perl. (The manual that exists is not free, and
|
|
is thus not available to be part of the GNU system.)
|
|
|
|
@item
|
|
A manual for Oleo.
|
|
|
|
@item
|
|
A book on how GCC works and why various machine descriptions
|
|
are written as they are.
|
|
|
|
@item
|
|
A manual for programming X-window applications.
|
|
|
|
@item
|
|
Manuals for various X window managers.
|
|
|
|
@item
|
|
Reference cards for those manuals that don't have them: Gawk, C
|
|
Compiler, Make, Texinfo, Termcap and maybe the C Library.
|
|
|
|
@item
|
|
Many utilities need documentation, including @code{grep}, @code{cpio},
|
|
@code{find}, @code{less}, and the other small utilities.
|
|
|
|
@end itemize
|
|
|
|
@node Unix-Related Projects
|
|
@chapter Unix-Related projects
|
|
|
|
@itemize
|
|
|
|
@item
|
|
We could use an emulation of Unix @code{spell}, which would run by
|
|
invoking @code{ispell}.
|
|
|
|
@item
|
|
Less urgent: @code{diction}, @code{explain}, @code{style}.
|
|
|
|
@item
|
|
An improved version of the POSIX utility @code{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.
|
|
|
|
@item
|
|
Modify the GNU @code{dc} program to use the math routines of GNU
|
|
@code{bc}.
|
|
|
|
@item
|
|
A @code{grap} preprocessor program for @code{troff}.
|
|
|
|
@item
|
|
Various other libraries.
|
|
|
|
@item
|
|
An emulation of SCCS that works using RCS.
|
|
|
|
@end itemize
|
|
|
|
@node Kernel Projects
|
|
@chapter Kernel-Related projects
|
|
|
|
@itemize
|
|
|
|
@item
|
|
An over-the-ethernet debugger that will allow the kernel to be
|
|
debugged from GDB running on another machine.
|
|
|
|
@item
|
|
A shared memory X11 server to run under MACH is very desirable. The
|
|
machine specific parts should be kept well separated.
|
|
|
|
@end itemize
|
|
|
|
@node Extensions
|
|
@chapter Extensions to existing GNU software
|
|
|
|
@itemize
|
|
|
|
@item
|
|
Enhance GCC. See files PROJECTS and PROBLEMS in the GCC distribution.
|
|
|
|
@item
|
|
GNU @code{sed} probably needs to be rewritten completely just to make it
|
|
cleaner.
|
|
|
|
@item
|
|
Add a few features to GNU @code{diff}, such as handling large input
|
|
files without reading entire files into core.
|
|
|
|
@item
|
|
Extend GDB with an X-based graphical interface better than @code{xxgdb}.
|
|
|
|
@item
|
|
An @code{nroff} macro package to simplify @code{texi2roff}.
|
|
|
|
@item
|
|
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.
|
|
|
|
@item
|
|
Cross-referencing, flow graph, and execution trace programs for C and
|
|
other languages, like @code{cxref}, @code{cflow}, and @code{ctrace}.
|
|
|
|
@end itemize
|
|
|
|
@node X Windows Projects
|
|
@chapter X windows projects
|
|
|
|
@itemize
|
|
|
|
@item
|
|
An emulator for Macintosh graphics calls on top of X Windows.
|
|
|
|
@item
|
|
An emulator for Microsoft windows calls on top of X Windows. (A
|
|
commercial program to do this took just three months to write.)
|
|
|
|
@item
|
|
A music playing and editing system.
|
|
|
|
@item
|
|
A program to edit dance notation (such as labanotation) and display
|
|
dancers moving on the screen.
|
|
|
|
@item
|
|
A library for displaying circle-shaped menus with X windows.
|
|
|
|
@item
|
|
A program to display and edit Hypercard stacks.
|
|
|
|
@item
|
|
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.
|
|
|
|
@item
|
|
A desktop program with icons and such, for X-windows.
|
|
|
|
@item
|
|
A paint program, supporting both bitmap-oriented operations and
|
|
component-oriented operations. @code{xpaint} exists, but isn't very
|
|
usable.
|
|
|
|
@end itemize
|
|
|
|
@node Other Projects
|
|
@chapter Other Projects
|
|
|
|
If you think of others that should be added, please
|
|
send them to gnu@@prep.ai.mit.edu.
|
|
|
|
@itemize
|
|
|
|
@item
|
|
[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.
|
|
|
|
@item
|
|
A program to convert compiled programs represented in OSF ANDF
|
|
(``Architecture Neutral Distribution Format'') into ANSI C.
|
|
|
|
@item
|
|
An imitation of Page Maker or Ventura Publisher.
|
|
|
|
@item
|
|
An imitation of @code{dbase2} or @code{dbase3} (How dbased!)
|
|
|
|
@item
|
|
A program to reformat Fortran programs in a way that is pretty.
|
|
|
|
@item
|
|
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.
|
|
|
|
@item
|
|
A general ledger program.
|
|
|
|
@item
|
|
A single command language that could be suitable for use in a shell, in
|
|
GDB for programming debugging commands, in a program like @code{awk}, in
|
|
a calculator like @code{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, @code{awk}, and @code{bc}, but nothing prevents us from
|
|
having alternative programs using our new, uniform language. This would
|
|
make GNU far better for new users.
|
|
|
|
@item
|
|
A program to typeset C code for printing.
|
|
For ideas on what to do, see the forthcoming book,
|
|
|
|
@display
|
|
Human Factors and Typography for More Readable Programs,
|
|
Ronald M. Baecker and Aaron Marcus,
|
|
Addison-Wesley, ISBN 0-201-10745-7
|
|
@end display
|
|
|
|
(I don't quite agree with a few of the details they propose.)
|
|
|
|
@item
|
|
Speech-generation programs (there is a program from Brown U that you
|
|
could improve).
|
|
|
|
@item
|
|
Speech-recognition programs (single-speaker, disconnected speech).
|
|
|
|
@item
|
|
Scientific mathematical subroutines, including clones of SPSS.
|
|
|
|
@item
|
|
Statistical tools.
|
|
|
|
@item
|
|
Software to replace card catalogues in libraries.
|
|
|
|
@item
|
|
Grammar and style checking programs.
|
|
|
|
@item
|
|
An implementation of the S language.
|
|
|
|
@item
|
|
A translator from Scheme to C.
|
|
|
|
@item
|
|
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
|
|
@emph{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.
|
|
|
|
@item
|
|
A program to scan a line drawing and convert it to Postscript.
|
|
|
|
@item
|
|
A program to recognize handwriting.
|
|
|
|
@item
|
|
A pen based interface.
|
|
|
|
@item
|
|
Software suitable for creating virtual reality user interfaces.
|
|
|
|
@item
|
|
CAD software, such as a vague imitation of Autocad.
|
|
|
|
@item
|
|
Software for displaying molecules.
|
|
|
|
@item
|
|
Software for comparing DNA sequences, and finding matches and
|
|
alignments.
|
|
|
|
@end itemize
|
|
|
|
@node Compilers
|
|
@chapter 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.)
|
|
|
|
@node Games and Recreations
|
|
@chapter Games and Recreations
|
|
|
|
@itemize
|
|
|
|
@item
|
|
Video-oriented games should work with the X window system.
|
|
|
|
@item
|
|
Empire (there is a free version but it needs upgrading)
|
|
|
|
@item
|
|
Imitations of popular video games:
|
|
|
|
@itemize
|
|
@item
|
|
Space war, Asteroids, Pong, Columns.
|
|
@item
|
|
Defending cities from missiles.
|
|
@item
|
|
Plane shoots at lots of other planes.
|
|
@item
|
|
Wizard fights fanciful monster.
|
|
@item
|
|
A golf game.
|
|
@item
|
|
Program a robot by sticking building blocks together,
|
|
then watch it explore a world.
|
|
@item
|
|
Biomorph evolution (as in Scientific American).
|
|
@item
|
|
A program to display effects of moving at relativistic speeds.
|
|
@end itemize
|
|
|
|
@item
|
|
Intriguing screen-saver programs to make interesting pictures.
|
|
Other such programs that are simply entertaining to watch.
|
|
For example, an aquarium.
|
|
|
|
@end itemize
|
|
|
|
We do not need @code{rogue}, as we have @code{hack}.
|
|
|
|
@contents
|
|
|
|
@bye
|