Commit fff05d88 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

*** empty log message ***

parent 6d9d01a9
......@@ -2,8 +2,8 @@
@c %**start of header
@settitle GNU Task List
@set lastupdate 16 September 1997
@c This date is automagically updated when you save this file:
@set lastupdate August 1, 1998
@c %**end of header
@setchapternewpage off
......@@ -47,9 +47,9 @@ list is available there in several different formats: @file{tasks.text},
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:
If you start working steadily on a project, please let @code{gnu@@prep}
If you start working steadily on a project, please let @email{}
know. We might have information that could help you; we'd also like to
send you the GNU coding standards.
......@@ -92,37 +92,39 @@ If you are good at writing documentation, please do that.
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 @url{}, and
look at @uref{}, and
then get a copy of the latest HURD task list from:
@itemize @bullet
@url{}, via the World Wide
@uref{}, via the World Wide
@url{}, via anonymous FTP.
@uref{}, via anonymous FTP.
@email{} via e-mail.
@email{} via e-mail.
@end itemize
If you are a Scheme fan, you can help develop Guile. Please have a look
at the URL @url{}
and then contact @email{}.
at the URL @uref{}
and then contact the Guile developers at @email{}.
Help develop the GNU web browser, E-scape.
Help develop XmHTML.
Help develop Windows NT emulation for GNU systems---for example, WINE.
Help develop software to emulate Windows NT on top of GNU systems.
For example, you could help work on Willows Twin.
Implement the Kermit data transfer protocol. (See below.)
@ignore This is being done (Harmony)
Develop a free compatible replacement for Qt, a GUI toolkit library. Qt
is not free software, because users are prohibited from distributing
......@@ -135,6 +137,12 @@ 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
Develop a free replacement for a semi-free program such as Xv or POV.
These semi-free programs are less restricted than typical proprietary
programs, but too restricted to be part of any free operating system.
Develop a substitute, which runs on GNU systems, for some very popular
......@@ -145,14 +153,22 @@ and which has no comparable free equivalent now.
@node Documentation
@chapter Documentation
We very urgently need documentation for some parts of the system
that already exist or will exist very soon:
We very urgently need documentation for many existing parts of the
Note that there are proprietary manuals for many of these topics, but
proprietary manuals do not count, because we are not free to copy and
modify them along with the software they document. For this reason,
we do not recommend any non-free manuals.
@itemize @bullet
A C reference manual. (RMS made a try at one, which you could start
Reference manuals for C++, Pascal, Fortran 77, and Java.
A manual for Ghostscript.
......@@ -160,10 +176,19 @@ A manual for Ghostscript.
A manual for TCSH.
A manual for PIC (the graphics formatting language).
A good free reference manual for Perl. The free Perl on-line reference
documentation is good, for what it is--a list of functions and a
description of each--but that is not the same as a reference manual.
(Compare, for example, the Emacs Lisp Reference Manual with the
collection of documentation strings of Emacs Lisp functions.)
A manual for Oleo.
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.
A manual for PIC (the graphics formatting language).
A book on how GCC works and why various machine descriptions
......@@ -190,7 +215,8 @@ Many utilities need documentation, including @code{grep} and others.
An improved version of the POSIX utility @code{pax}. There is one on
Usenet, but it is said to be poorly written. Talk with
@code{} about this project.
@email{}, @email{} and
@email{} for advice about this project.
......@@ -205,12 +231,9 @@ A @code{grap} preprocessor program for @code{troff}.
Various other libraries.
An emulation of SCCS that works using RCS.
Less urgent: @code{diction}, @code{explain}, and @code{style}, or
something to do the same kind of job. Compatibility with Unix is not
especially important for these programs.
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
......@@ -252,7 +275,11 @@ distribution.
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 Tk and is tightly integrated into GDB.
graphical interface that uses GTK and is tightly integrated into GDB.
Extend Octave to support programs that were written
to run on Khoros.
Rewrite GNU @code{sed} completely, to make it cleaner.
......@@ -263,11 +290,14 @@ Right now they are written in Perl and TCL, respectively. There are
also other programs, not terribly long, which we would also like
to have rewritten in Scheme.
Deja-GNU uses TCL via Expect. It may be easy to adapt Expect
to work with Scheme instead of TCL.
Finish the partially-implemented C interpreter project.
Help with the development of GNUStep, a GNU implementation of the
Help with the development of GNUstep, a GNU implementation of the
OpenStep specification.
......@@ -282,11 +312,14 @@ files without reading entire files into core.
An @code{nroff} macro package to simplify @code{texi2roff}.
An implementation of XML (see @uref{}).
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{} about this.
@email{} about this.
Smail also needs a new chief maintainer.
......@@ -305,27 +338,22 @@ An emulator for Macintosh graphics calls on top of X Windows.
A music playing and editing system. This should work with LilyPond, a
free program for music typesetting.
GNU program for music typesetting.
An ephemeris program to replace xephem (which is, alas, too restricted
to qualify as free software).
A program to edit dance notation (such as labanotation) and display
dancers moving on the screen.
Port the Vibrant toolkit to work on X without using Motif.
Make sure the Vibrant toolkit works with LessTif instead of Motif.
A program to display and edit Hypercard stacks.
A paint program, supporting both bitmap-oriented operations and
component-oriented operations. @code{xpaint} exists, but isn't very
A vector-based drawing program in the spirit of Adobe Illustrator
and Corel Draw.
An interactive 3D modeling utility with rendering/raytracing capabilities.
......@@ -345,36 +373,13 @@ 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 will expire in 1997.
A free program for sended encrypted mail using public-key encryption.
This program should use the library described above for the public-key
encryption. It should use triple-DES, not IDEA, for block encryption,
because IDEA is patented in many countries and the patents will not
expire soon.
In other respects, it should be like PGP. If the new version of PGP
no longer uses RSA and IDEA, compatibility with it may be feasible.
There is a suggestion that the Blowfish algorithm might be a good choice
for the non-public-key block encryption. I'm not an encryption expert
so I don't have an opinion about that.
Many people believe that PGP is free software, but that is not actually
true. The distribution terms do not allow everyone to use and
redistribute it. We used to think that these restrictions had been
imposed by the patent holders for the RSA and IDEA algorithms, and that
PGP could be free software if these algorithms were replaced by
alternatives. But we have since learned that the owners of PGP are
themselves unwilling to make it free software. Writing a new program is
the only way to get free software for this job.
the US expired in 1997. This library can probably be developed from
the code for the GNU Privacy Guard (now in development).
A free secure telnet program more or less like ssh/sshd. Since this
requires a public key encryption algorithm, it is closely related to the
preceding item.
requires a public key encryption algorithm, it should be based
on the library above.
This program should follow the draft standard for ssh. As always, it
cannot implement the RSA algorithm, but must instead support the
......@@ -387,13 +392,29 @@ Free software for doing secure commercial transactions on the web.
This too needs public key encryption.
@end itemize
A free replacement for PGP is no longer listed here because the GNU
Privacy Guard will do that job.
@node Other Projects
@chapter Other Projects
If you think of others that should be added, please
send them to @code{}.
send them to @email{}.
@itemize @bullet
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.
A free program that can transfer files on a serial line
using the same protocol that Kermit uses.
......@@ -404,11 +425,6 @@ An imitation of Page Maker or Ventura Publisher.
An imitation of @code{dbase2} or @code{dbase3} (How dbased!)
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, including support for accounts payable,
account receivables, payroll, inventory control, order processing, etc.
......@@ -418,8 +434,11 @@ A teleconferencing program which does the job of CU-SeeMe (which is,
alas, not free software).
A program to typeset C code for printing.
For ideas on what to do, see the book,
A free replacement for Glimpse, which is not free software.
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,
Human Factors and Typography for More Readable Programs,
......@@ -427,18 +446,36 @@ 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.)
But you don't have to do exactly what they propose.
@c This is now being worked on -- rms, 22 June 1998
A program to convert Microsoft Word documents to text/enriched, TeX,
LaTeX, Texinfo, or some other format that free software can edit.
@end ignore
@c People are helping the developer of siff release it as free software.
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
@end ignore
@c This is being developed -- rms, 3 May 1998
A free replacement for the semi-free Qt library.
@end ignore
High-quality music compression software.
(Talk with for relevant suggestions.)
(Talk with @email{} for relevant suggestions.)
A program to play sound distributed in ``Real Audio'' format.
......@@ -446,6 +483,9 @@ A program to play sound distributed in ``Real Audio'' format.
A program to generate ``Real Audio'' format from audio input.
Programs to handle audio in RTSP format.
@ignore @c Software patents have made this domain off limits to free software.
An MPEG III audio encoder/decoder (but it is necessary to check, first,
......@@ -459,6 +499,14 @@ could improve).
Speech-recognition programs (single-speaker, disconnected speech is sufficient).
@ignore Being done
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{} to
learn more.
@end ignore
More scientific mathematical subroutines.
(A clone of SPSS is being written already.)
......@@ -519,15 +567,15 @@ reverse-engineering of communication protocols.
@chapter Compilers for Other Batch Languages
Volunteers are needed to write parsers/front ends for languages such as
Algol 60, Algol 68, PL/I, Cobol, Fortran 90, Eiffel, or whatever, to be
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@prep and the volunteer coordinators
@c Fortran status is here so 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:
finger -l
finger -l
@end example
@node Games and Recreations
......@@ -547,7 +595,11 @@ simulation games.
Improve GnuGo, which is not yet very sophisticated.
Write imitations of some popular video game:
A Hierarchical Task Network package which can be used
to program play the computer's side in various strategic games.
Write imitations of some popular video games:
@itemize -
......@@ -557,12 +609,14 @@ Defending cities from missiles.
Plane shoots at lots of other planes, tanks, etc.
Wizard fights fanciful monster.
Wizard fights fanciful monsters.
A golf game.
@ignore Being done by
Program a robot by sticking building blocks together,
then watch it explore a world.
@end ignore
Biomorph evolution (as in Scientific American and @cite{The Blind
......@@ -576,3 +630,9 @@ We do not need @code{rogue}, as we have @code{hack}.
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)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment