mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-29 07:58:28 +00:00
423 lines
11 KiB
Plaintext
423 lines
11 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 22 November 1994
|
|
@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 @code{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 @code{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 @code{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
|
|
Completion of the documentation for CC-mode, a new C/C++ mode for
|
|
Emacs Lisp.
|
|
|
|
@item
|
|
A C reference manual. (RMS has written half of one which you could
|
|
start with).
|
|
|
|
@item
|
|
A manual for Ghostscript.
|
|
@c
|
|
@c @item
|
|
@c A manual for CSH.
|
|
@c Ick, do we want to encourage using THAT? -djm
|
|
|
|
@item
|
|
A manual for PIC (the graphics formatting language).
|
|
|
|
@item
|
|
A manual for Perl. (The books that exist are not free, and
|
|
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},
|
|
and other small utilities.
|
|
@end itemize
|
|
|
|
@node Unix-Related Projects
|
|
@chapter Unix-Related Projects
|
|
|
|
@itemize @bullet
|
|
@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
|
|
@code{mib@@gnu.ai.mit.edu} about this project.
|
|
|
|
@ignore
|
|
@item
|
|
Modify the GNU @code{dc} program to use the math routines of GNU
|
|
@code{bc}.
|
|
@end ignore
|
|
|
|
@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 @bullet
|
|
@item
|
|
An over-the-ethernet debugger stub that will allow the kernel to be
|
|
debugged from GDB running on another machine.
|
|
|
|
This stub needs its own self-contained implementation of all protocols
|
|
to be used, since the GNU system will use user processes to implement
|
|
all but the lowest levels, and the stub won't be able to use those
|
|
processes. If a simple self-contained implementation of IP and TCP is
|
|
impractical, it might be necessary to design a new, simple protocol
|
|
based directly on ethernet. It's not crucial to support high speed or
|
|
communicating across gateways.
|
|
|
|
It might be possible to use the Mach ethernet driver code, but it would
|
|
need some changes.
|
|
|
|
@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 @bullet
|
|
@item
|
|
Enhance GCC. See files @file{PROJECTS} and @file{PROBLEMS} in the GCC
|
|
distribution.
|
|
|
|
@item
|
|
GNU @code{sed} probably needs to be rewritten completely just to make it
|
|
cleaner.
|
|
|
|
@item
|
|
Add features to GNU Make to record the precise rule with which each file
|
|
was last recompiled; then recompile any file if its rule in the makefile
|
|
has changed.
|
|
|
|
@item
|
|
Add a few features to GNU @code{diff}, such as handling large input
|
|
files without reading entire files into core.
|
|
|
|
@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
|
|
@code{tron@@veritas.com} about this.
|
|
|
|
Smail also needs a new chief maintainer.
|
|
|
|
@item
|
|
Enhanced cross-reference browsing tools. (We now have something at
|
|
about the level of @code{cxref}.) We also could use something like
|
|
@code{ctrace}. (Some people are now working on this project.)
|
|
@end itemize
|
|
|
|
@node X Windows Projects
|
|
@chapter X Windows Projects
|
|
|
|
@itemize @bullet
|
|
@item
|
|
An emulator for Macintosh graphics calls on top of X Windows.
|
|
|
|
@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
|
|
Port the Vibrant toolkit to work on X without using Motif.
|
|
|
|
@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.
|
|
|
|
@item
|
|
A program for manipulating photographs---something vaguely like Photo
|
|
Shop (though not exactly like it).
|
|
@end itemize
|
|
|
|
@node Other Projects
|
|
@chapter Other Projects
|
|
|
|
If you think of others that should be added, please
|
|
send them to @code{gnu@@prep.ai.mit.edu}.
|
|
|
|
@itemize @bullet
|
|
@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. Talk with @code{lord@@cygnus.com} if
|
|
you are interested in this project.
|
|
|
|
@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 (an interpreted languages used for
|
|
statistics).
|
|
|
|
@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.
|
|
|
|
We may soon have an OCR program, but it will need lots of additional work.
|
|
|
|
@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++ and Objective C are done,
|
|
and Ada, Fortran, Pascal and Modula are being worked on.
|
|
@c Fortran status is here so gnu@prep and the volunteer coordinators
|
|
@c don't have to answer the question -len
|
|
The status of the Fortran compiler can be found by:
|
|
@example
|
|
|
|
@code{finger -l fortran@@gnu.ai.mit.edu})
|
|
@end example
|
|
|
|
@node Games and Recreations
|
|
@chapter Games and Recreations
|
|
|
|
@itemize @bullet
|
|
@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
|