mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
695 lines
20 KiB
Plaintext
695 lines
20 KiB
Plaintext
\input texinfo @c -*-texinfo-*-
|
|
@c %**start of header
|
|
@setfilename tasks.info
|
|
@settitle GNU Task List
|
|
@c This date is automagically updated when you save this file:
|
|
@set lastupdate January 12, 1999
|
|
@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, Intro, (dir), (dir)
|
|
@top GNU Task List
|
|
|
|
This file is updated automatically from @file{tasks.texi}, which was
|
|
last updated on @value{lastupdate}.
|
|
@end ifinfo
|
|
|
|
@menu
|
|
* Intro::
|
|
* Highest Priority::
|
|
* Documentation::
|
|
* Unix-Related Projects::
|
|
* Kernel Projects::
|
|
* Extensions::
|
|
* X Windows Projects::
|
|
* Encryption Projects::
|
|
* Other Projects::
|
|
* Languages::
|
|
* Games and Recreations::
|
|
@end menu
|
|
|
|
@node Intro
|
|
@chapter About the GNU Task List
|
|
|
|
If you did not obtain this file directly from the GNU project and
|
|
recently, please check for a newer version. You can ftp the task list
|
|
from any GNU FTP host in directory @file{/pub/gnu/tasks/}. The task
|
|
list is available there in several different formats: @file{tasks.text},
|
|
@file{tasks.texi}, @file{tasks.info}, and @file{tasks.dvi}. The GNU
|
|
HURD task list is also there in file @file{tasks.hurd}.
|
|
@c to fix an overfill, join the paragraphs -len
|
|
The task list is also available on the GNU World Wide Web server:
|
|
@uref{http://www.gnu.org/prep/tasks_toc.html}.
|
|
|
|
If you start working steadily on a project, please let @email{gvc@@gnu.org}
|
|
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.
|
|
|
|
Typically, a new program that does a completely new job advances
|
|
the GNU project, and the free software community, more than an
|
|
improvement to an existing program.
|
|
|
|
Typically, new features or new programs advance the free software
|
|
community more, in the long run, than porting existing programs. One
|
|
reason is that portable new features and programs benefit people on many
|
|
platforms, not just one. At the same time, there tend to be many
|
|
volunteers for porting---so your help will be more valuable in other
|
|
areas, where volunteers are more scarce.
|
|
|
|
Typically, it is more useful to extend a program in functionality than
|
|
to improve performance. Users who use the new functionality will
|
|
appreciate it very much, if they use it; but even when they benefit from
|
|
a performance improvement, they may not consider it very important.
|
|
|
|
@node Highest Priority
|
|
@chapter Highest Priority
|
|
|
|
This task list mentions a large number of tasks that would be more or
|
|
less useful. With luck, at least one of them will inspire you to start
|
|
writing. It's better for you to work on any task that inspires you than
|
|
not write free software at all.
|
|
|
|
But if you would like to work on what we need most, here is a list of
|
|
high priority projects.
|
|
|
|
@itemize @bullet
|
|
@item
|
|
If you are good at writing documentation, please do that.
|
|
|
|
@item
|
|
If you are very good at C programming and interested in kernels, you can
|
|
help develop the GNU HURD, the kernel for the GNU system. Please have a
|
|
look at @uref{http://www.gnu.org/software/hurd/hurd.html}, and
|
|
then get a copy of the latest HURD task list from:
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
@uref{http://www.gnu.org/prep/tasks.hurd.html}, via the World Wide
|
|
Web.
|
|
|
|
@item
|
|
@uref{ftp://ftp.gnu.org/pub/gnu/tasks/tasks.hurd}, via anonymous FTP.
|
|
|
|
@item
|
|
@email{gnu@@gnu.org} via e-mail.
|
|
|
|
@end itemize
|
|
|
|
@item
|
|
If you are a Scheme fan, you can help develop Guile. Please have a look
|
|
at the URL @uref{http://www.gnu.org/software/guile/guile.html}
|
|
and then contact the Guile developers at @email{guile@@gnu.org}.
|
|
|
|
@item
|
|
A package to convert programs written using MS Access into Scheme,
|
|
making use of a free data base system and the GTK toolkit.
|
|
|
|
@item
|
|
Help develop XmHTML. See @uref{http://www.xs4all.nl/~ripley/XmHTML/}.
|
|
|
|
@item
|
|
Help develop software to emulate Windows NT on top of GNU systems.
|
|
For example, you could help work on Willows Twin.
|
|
See @uref{http://www.willows.com/}.
|
|
|
|
@item
|
|
Implement the Kermit data transfer protocol. (See below.)
|
|
|
|
@ignore This is being done (Harmony)
|
|
@item
|
|
Develop a free compatible replacement for Qt, a GUI toolkit library. Qt
|
|
is not free software, because users are prohibited from distributing
|
|
modified versions. Thus, Qt cannot be included in a free operating
|
|
system (adding it would make the system as a whole non-free).
|
|
|
|
But some developers are writing free applications that use Qt and cannot
|
|
run without it. These programs, although free software, are useless for
|
|
free operating systems because there is no way to make them run.
|
|
|
|
This is leading to a serious problem, and a free replacement for Qt is
|
|
the only solution. Hence the high degree of urgency of this project.
|
|
@end ignore
|
|
|
|
@item
|
|
Develop a substitute, which runs on GNU systems, for some very popular
|
|
or very important application that many non-programmers use on Windows,
|
|
and which has no comparable free equivalent now.
|
|
@end itemize
|
|
|
|
@node Documentation
|
|
@chapter Documentation
|
|
|
|
We very urgently need documentation for many existing parts of the
|
|
system.
|
|
|
|
Note that there are proprietary manuals for many of these topics, but
|
|
proprietary manuals do not count, for the same reason proprietary
|
|
software does not count: we are not free to copy and modify them.
|
|
We do not recommend any non-free materials as documentation.
|
|
|
|
@itemize @bullet
|
|
@item
|
|
A unified manual for La@TeX{}. (Existing documentation is non-free.)
|
|
|
|
@item
|
|
A tutorial introduction to Midnight Commander.
|
|
|
|
@item
|
|
A manual for GNU SQL.
|
|
|
|
@item
|
|
A thorough manual for RCS.
|
|
|
|
@item
|
|
A reference manual for Mach.
|
|
|
|
@item
|
|
A reference manual for the GNU Hurd features in GNU libc.
|
|
|
|
@item
|
|
A manual for writing Hurd servers.
|
|
|
|
@item
|
|
Reference manuals for C++, Objective C, Pascal, Fortran 77, and Java.
|
|
|
|
@item
|
|
A tutorial manual for the C++ STL (standard template library).
|
|
|
|
@item
|
|
GNU Objective-C Runtime Library Manual; this would be a reference manual
|
|
for the runtime library functions, structures, and classes. Some work
|
|
has been done on this job.
|
|
|
|
@item
|
|
Manuals for GNUstep: developer tutorial, developer programming manual,
|
|
developer reference manual, and user manual.
|
|
|
|
@item
|
|
A manual for Ghostscript.
|
|
|
|
@item
|
|
A manual for TCSH.
|
|
|
|
@item
|
|
A coherent free reference manual for Perl. Most of the Perl on-line
|
|
reference documentation can be used as a starting point, but work is
|
|
needed to weld them together into a coherent manual.
|
|
|
|
@item
|
|
A good free Perl language tutorial introduction. The existing Perl
|
|
introductions are published with restrictions on copying and
|
|
modification, so that they cannot be part of a GNU system.
|
|
|
|
@item
|
|
A manual for PIC (the graphics formatting language).
|
|
|
|
@item
|
|
A book on how GCC works and why various machine descriptions
|
|
are written as they are.
|
|
|
|
@item
|
|
A manual for programming applications for X11.
|
|
|
|
@item
|
|
Manuals for various X window managers.
|
|
|
|
@item
|
|
Reference cards for those manuals that don't have them: C
|
|
Compiler, Make, Texinfo, Termcap, and maybe the C Library.
|
|
|
|
@item
|
|
Many utilities need documentation, including @code{grep} and others.
|
|
@end itemize
|
|
|
|
@node Unix-Related Projects
|
|
@chapter Unix-Related Projects
|
|
|
|
@itemize @bullet
|
|
@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
|
|
Less urgent: make a replacement for the ``writer's workbench'' program
|
|
@code{style}, or something to do the same kind of job. Compatibility
|
|
with Unix is not especially important for this programs.
|
|
@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.
|
|
|
|
@item
|
|
An implementation of CIFS, the ``Common Internet File System,'' for the
|
|
HURD. This protocol is an offshoot of SMB.
|
|
@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
|
|
Interface GDB to Guile, so that users can write debugging commands in
|
|
Scheme. This would also make it possible to write, in Scheme, a
|
|
graphical interface that uses GTK and is tightly integrated into GDB.
|
|
|
|
@item
|
|
Extend Octave to support programs that were written
|
|
to run on Khoros.
|
|
|
|
@item
|
|
Rewrite Automake in Scheme, so it can run in Guile. Right now it is
|
|
written in Perl. There are also other programs, not terribly long,
|
|
which we would also like to have rewritten in Scheme.
|
|
|
|
@item
|
|
Finish the partially-implemented C interpreter project.
|
|
|
|
@item
|
|
Help with the development of GNUstep, a GNU implementation of the
|
|
OpenStep specification.
|
|
|
|
@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
|
|
An implementation of XML (see @uref{http://www.w3.org/XML/}).
|
|
|
|
@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
|
|
@email{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 package that emulates the API of Visual C++, but operates on top of
|
|
X11. It need not match the screen appearance of Visual C++. Instead,
|
|
it would be best to use GTK, so as to give coherence with GNOME.
|
|
|
|
@item
|
|
A compatible replacement for Visual Basic, running on top of X11.
|
|
It need not match the screen appearance of Visual C++. Instead,
|
|
it would be best to use GTK, so as to give coherence with GNOME.
|
|
|
|
@item
|
|
A music playing and editing system. This should work with LilyPond, a
|
|
GNU program for music typesetting.
|
|
|
|
@item
|
|
An ear-training program for students of music.
|
|
|
|
@item
|
|
An ephemeris program to replace xephem (which is, alas, too restricted
|
|
to qualify as free software).
|
|
|
|
@item
|
|
A program to edit dance notation (such as labanotation) and display
|
|
dancers moving on the screen.
|
|
|
|
@item
|
|
Make sure the Vibrant toolkit works with LessTif instead of Motif.
|
|
|
|
@item
|
|
A program to display and edit Hypercard stacks.
|
|
|
|
@item
|
|
A program for graphic morphing of scanned photographs.
|
|
|
|
@item
|
|
Software for designing and printing business cards.
|
|
@end itemize
|
|
|
|
@node Encryption Projects
|
|
@chapter Encryption Projects
|
|
|
|
These projects need to be written outside the US by people who are not
|
|
US citizens, to avoid problems with US export control law.
|
|
|
|
@itemize @bullet
|
|
@item
|
|
A free library for public-key encryption.
|
|
|
|
This library should use the Diffie-Helman algorithm for public key
|
|
encryption, not the RSA algorithm, because the Diffie-Helman patent in
|
|
the US expired in 1997. This library can probably be developed from
|
|
the code for the GNU Privacy Guard (now in development).
|
|
|
|
@item
|
|
An implementation of SSLv3 (more precisely, TLSv1) which is patent-free
|
|
(uses the non-RSA algorithms) and has distribution terms compatible with
|
|
the GNU GPL. We know of a GPL-covered implemention of a version of SSL
|
|
that you can use as a starting point.
|
|
|
|
@item
|
|
Free software for doing secure commercial transactions on the web.
|
|
This too needs public key encryption.
|
|
@end itemize
|
|
|
|
The projects to provide free replacements for PGP and SSH are no longer
|
|
listed here, because projects to do those jobs are well under way.
|
|
|
|
@node Other Projects
|
|
@chapter Other Projects
|
|
|
|
If you think of others that should be added, please
|
|
send them to @email{gnu@@gnu.org}.
|
|
|
|
@itemize @bullet
|
|
@item
|
|
A simple PC BIOS. On most new PCs, the BIOS is stored in writable
|
|
memory (misleadingly known as ``flash ROM''). In order to have a wholly
|
|
free system on these PCs, we need a free BIOS.
|
|
|
|
This task is made simpler by the fact that this BIOS need only support
|
|
enough features to enable a boot-loader such as LILO or GRUB to finish
|
|
loading the kernel. Neither Linux nor Mach actually uses the BIOS once
|
|
it starts up. Also, it is not absolutely necessary to do all the many
|
|
diagnostics that an ordinary BIOS does (though it would be useful to do
|
|
some of them). However, there may be a need to configure certain data
|
|
in the computer in a way that is specific to each model of computer.
|
|
|
|
@item
|
|
A free program that can transfer files on a serial line
|
|
using the same protocol that Kermit uses.
|
|
|
|
@item
|
|
An imitation of Page Maker or Ventura Publisher.
|
|
|
|
@item
|
|
An imitation of @code{dbase2} or @code{dbase3} (How dbased!)
|
|
|
|
@item
|
|
A general ledger program, including support for accounts payable,
|
|
account receivables, payroll, inventory control, order processing, etc.
|
|
|
|
@item
|
|
A teleconferencing program which does the job of CU-SeeMe (which is,
|
|
alas, not free software).
|
|
|
|
@item
|
|
A free ICQ-compatible server program. (The ICQ server itself is not
|
|
free software.)
|
|
|
|
@item
|
|
A free replacement for Glimpse, which is not free software.
|
|
|
|
@item
|
|
Software for desktop publishing. We are extending Emacs into a WYSIWYG
|
|
word processor, to handle primarily linear text; what this item proposes
|
|
is software focused on page layout.
|
|
|
|
@ignore It looks like TruePrint will fill this gap
|
|
@item
|
|
A program to typeset C code for printing, to make it easier to read on
|
|
paper. For ideas on what to do, see the 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
|
|
|
|
But you don't have to do exactly what they propose.
|
|
@end ignore
|
|
|
|
@item
|
|
A program to reformat HTML source to make it easier to read as HTML.
|
|
|
|
@ignore
|
|
@c This is now being worked on -- rms, 22 June 1998
|
|
@item
|
|
A program to convert Microsoft Word documents to text/enriched, TeX,
|
|
LaTeX, Texinfo, or some other format that free software can edit.
|
|
@end ignore
|
|
|
|
@ignore
|
|
@c People are helping the developer of siff release it as free software.
|
|
|
|
@item
|
|
A free replacement for siff (sometimes called sif). This would be a
|
|
program to find similar files in a large file system, ``similar''
|
|
meaning that the files contain a significant number of common substrings
|
|
that are of a certain size or greater. You can find some information
|
|
about siff (which is, unfortunately, not free software) at
|
|
@uref{ftp://ftp.cs.arizona.edu/reports/1993/TR93-33.ps.Z}.
|
|
@end ignore
|
|
|
|
@ignore
|
|
@c This is being developed -- rms, 3 May 1998
|
|
@item
|
|
A free replacement for the semi-free Qt library.
|
|
@end ignore
|
|
|
|
@item
|
|
High-quality music compression software.
|
|
(Talk with @email{phr@@netcom.com} for relevant suggestions.)
|
|
|
|
@item
|
|
A program to play sound distributed in ``Real Audio'' format.
|
|
|
|
@item
|
|
A program to generate ``Real Audio'' format from audio input.
|
|
|
|
@item
|
|
Programs to handle audio in RTSP format.
|
|
|
|
@ignore @c Software patents have made this domain off limits to free software.
|
|
@item
|
|
An MPEG III audio encoder/decoder (but it is necessary to check, first,
|
|
whether patents make this impossible).
|
|
@end ignore
|
|
|
|
@item
|
|
Speech-generation programs (there is a program from Brown U that you
|
|
could improve).
|
|
|
|
@item
|
|
Speech-recognition programs (single-speaker, disconnected speech is sufficient).
|
|
|
|
@item
|
|
A braille translation and formatting system which can convert marked up
|
|
documents into braille. This should let the user customize the braille
|
|
translation rules; it would be good to divide it into a
|
|
device-independent part plus drivers. Contact Jason White,
|
|
@email{jasonw@@ariel.ucs.unimelb.EDU.AU}.
|
|
|
|
@ignore Being done
|
|
@item
|
|
A program to display text word by word, always showing just one word at
|
|
a time. This method permits much faster reading than ordinary text
|
|
display. If you want to work on this, contact @email{stutz@@dsl.org} to
|
|
learn more.
|
|
@end ignore
|
|
|
|
@item
|
|
More scientific mathematical subroutines.
|
|
(A clone of SPSS is being written already.)
|
|
|
|
@item
|
|
Statistical tools.
|
|
|
|
@item
|
|
A scientific data collection and processing tool,
|
|
perhaps something like Scientific Workbench and/or Khoros,
|
|
|
|
@item
|
|
Software to replace card catalogues in libraries.
|
|
|
|
@item
|
|
A package for editing genealogical records conveniently.
|
|
This could perhaps be done as a Gnome program, or perhaps
|
|
as an Emacs extentsion.
|
|
|
|
@item
|
|
A project-scheduling package that accepts a list of project sub-tasks
|
|
with their interdependencies, and generates Gantt charts and Pert charts
|
|
and all the other standard project progress reports.
|
|
|
|
@item
|
|
Grammar and style checking programs.
|
|
|
|
@item
|
|
A program to calculate nutritional information from recipes.
|
|
|
|
There is a free (unambiguously public domain) database of nutritional
|
|
information compiled by the USDA at
|
|
@url{http://www.nal.usda.gov/fnic/foodcomp}.
|
|
|
|
@item
|
|
A fast emulator for the i386 which works by translating
|
|
machine instructions into the machine language of the host machine.
|
|
(Support for emulation of other machines would enhance the program
|
|
but might make it much more difficult.)
|
|
|
|
@item
|
|
Optical character recognition programs; especially if suitable for
|
|
scanning documents with multiple fonts and capturing font info as well
|
|
as character codes. Work is being done on this, but more help is needed.
|
|
|
|
@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
|
|
CAD software, such as a vague imitation of Autocad.
|
|
|
|
@item
|
|
A program to receive data from a serial-line tap to facilitate the
|
|
reverse-engineering of communication protocols.
|
|
@end itemize
|
|
|
|
@node Languages
|
|
@chapter Programming Languages
|
|
|
|
Volunteers are needed to write parsers/front ends for languages such as
|
|
Algol 60, Algol 68, PL/I, Cobol, Fortran 90, or whatever, to be
|
|
used with the code generation phases of the GNU C compiler.
|
|
|
|
@c Fortran status is here so gnu@gnu.org and the volunteer coordinators
|
|
@c don't have to answer the question -len
|
|
You can get the status of the Fortran front end with this command:
|
|
|
|
@example
|
|
finger -l fortran@@gnu.org
|
|
@end example
|
|
|
|
We would like to have translators from various languages into Scheme.
|
|
These languages include TCL, Python, Perl, Java, Javascript, and Rexx.
|
|
|
|
We would like to have an implementation of Clipper, perhaps a GCC front
|
|
end, and perhaps a translator into Scheme.
|
|
|
|
@node Games and Recreations
|
|
@chapter Games and Recreations
|
|
|
|
Video-oriented games that work with the X window system.
|
|
|
|
@itemize @bullet
|
|
@item
|
|
Empire (there is a free version but it needs upgrading)
|
|
|
|
@item
|
|
An ``empire builder'' system that makes it easy to write various kinds of
|
|
simulation games.
|
|
|
|
@item
|
|
Improve GnuGo, which is not yet very sophisticated.
|
|
|
|
@item
|
|
Network servers and clients for board and card games for which such
|
|
software does not yet exist.
|
|
|
|
@item
|
|
A Hierarchical Task Network package which can be used
|
|
to program play the computer's side in various strategic games.
|
|
|
|
@item
|
|
Write imitations of some popular video games:
|
|
|
|
@itemize -
|
|
@item
|
|
Space war, Asteroids, Pong, Columns.
|
|
@item
|
|
Defending cities from missiles.
|
|
@item
|
|
Plane shoots at lots of other planes, tanks, etc.
|
|
@item
|
|
Wizard fights fanciful monsters.
|
|
@item
|
|
A golf game.
|
|
@ignore Being done by jhall1@isd.net
|
|
@item
|
|
Program a robot by sticking building blocks together,
|
|
then watch it explore a world.
|
|
@end ignore
|
|
@item
|
|
Biomorph evolution (as in Scientific American and @cite{The Blind
|
|
Watchmaker}).
|
|
@item
|
|
A program to display effects of moving at relativistic speeds.
|
|
@end itemize
|
|
@end itemize
|
|
|
|
We do not need @code{rogue}, as we have @code{hack}.
|
|
|
|
@contents
|
|
|
|
@bye
|
|
Local variables:
|
|
update-date-leading-regexp: "@c This date is automagically updated when you save this file:\n@set lastupdate "
|
|
update-date-trailing-regexp: ""
|
|
eval: (load "/gd/gnuorg/update-date.el")
|
|
eval: (add-hook 'write-file-hooks 'update-date)
|
|
End:
|