@setfilename tasks.info
@settitle GNU Task List
@c UPDATE THIS DATE WHENEVER YOU MAKE CHANGES!
-@set lastupdate 28 April 1997
+@set lastupdate 16 September 1997
@c %**end of header
@setchapternewpage off
@end titlepage
@ifinfo
-@node Top, Preface, (dir), (dir)
+@node Top, Intro, (dir), (dir)
@top GNU Task List
This file is updated automatically from @file{tasks.texi}, which was
@end ifinfo
@menu
-* Preface::
+* Intro::
+* Highest Priority::
* Documentation::
* Unix-Related Projects::
* Kernel Projects::
* Extensions::
* X Windows Projects::
+* Encryption Projects::
* Other Projects::
* Compilers::
* Games and Recreations::
@end menu
-@node Preface, Documentation, Top, Top
+@node Intro
@chapter About the GNU Task List
-Check with @code{gnu@@prep.ai.mit.edu}, for a possibly more current
-copy. You can also ftp it from a GNU FTP host in directory
-@file{/pub/gnu/tasks} - These files in different formats are available:
-@file{tasks.text}, @file{tasks.texi}, @file{tasks.info}, and
-@file{tasks.dvi}. It is also available on the GNU World Wide Web
-server: @file{http://www.gnu.ai.mit.edu}.
+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:
+@url{http://www.gnu.ai.mit.edu/prep/tasks_toc.html}.
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
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 @url{http://www.gnu.ai.mit.edu/software/hurd/hurd.html}, and
+then get a copy of the latest HURD task list from:
+
+@itemize @bullet
+
+@item
+@url{http://www.gnu.ai.mit.edu/prep/tasks.hurd.html}, via the World Wide
+Web.
+
+@item
+@url{ftp://prep.ai.mit.edu/pub/gnu/tasks/tasks.hurd}, via anonymous FTP.
+
+@item
+@email{gnu@@prep.ai.mit.edu} via e-mail.
+
+@end itemize
+
+@item
+If you are a Scheme fan, you can help develop Guile. Please have a look
+at the URL @url{http://www.gnu.ai.mit.edu:/software/guile/guile.html}
+and then contact @email{guile@@gnu.ai.mit.edu}.
+
+@item
+Help develop the GNU web browser, E-scape.
+
+@item
+Help develop Windows NT emulation for GNU systems---for example, WINE.
+
+@item
+Implement the Kermit data transfer protocol. (See below.)
+
+@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.
+
+@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
that already exist or will exist very soon:
@itemize @bullet
-@item
-Completion of the documentation for CC-mode, a new Emacs mode for
-C, C++ and other languages.
-
@item
A C reference manual. (RMS made a try at one, which you could start
with).
@item
A manual for Ghostscript.
-
@item
A manual for TCSH.
@item
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{mib@@gnu.ai.mit.edu} about this project.
+@code{thomas@@gnu.ai.mit.edu} about this project.
@ignore
@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 Tk and is tightly integrated into GDB.
+
@item
Rewrite GNU @code{sed} completely, to make it cleaner.
An emulator for Macintosh graphics calls on top of X Windows.
@item
-A music playing and editing system.
-
-@item
-High-quality music compression software.
-(Talk with 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.
+A music playing and editing system. This should work with LilyPond, a
+free program for music typesetting.
@item
A program to edit dance notation (such as labanotation) and display
A program for graphic morphing of scanned photographs.
@end itemize
-@node Other Projects
-@chapter Other Projects
+@node Encryption Projects
+@chapter Encryption Projects
-If you think of others that should be added, please
-send them to @code{gnu@@prep.ai.mit.edu}.
+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 program for public-key encryption.
+A free library for public-key encryption.
-This program should use the Diffie-Helman algorithm for public key
+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. 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.
+the US will expire in 1997.
+
+@item
+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.
-This program needs to be written by someone who is not a US citizen,
-outside the US, to avoid problems with US export control law.
+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
This program should follow the draft standard for ssh. As always, it
cannot implement the RSA algorithm, but must instead support the
alternatives that will be patent-free in late 1997. It cannot support
-IDEA, but can use triple-DES and some other alternatives.
+IDEA, but can use triple-DES and/or Blowfish or other non-patented
+alternatives.
@item
Free software for doing secure commercial transactions on the web.
This too needs public key encryption.
+@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
+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.
(I don't quite agree with a few of the details they propose.)
+@item
+A program to convert Microsoft Word documents to text/enriched, TeX,
+LaTeX, Texinfo, or some other format that free software can edit.
+
+@item
+A free replacement for the semi-free Qt library.
+
+@item
+High-quality music compression software.
+(Talk with 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.
+
+@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).
Software to replace card catalogues in libraries.
@item
-Grammar and style checking programs.
+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
-An implementation of the S language (an interpreted language used for
-statistics).
+Grammar and style checking programs.
@item
A translator from Scheme to C.
(Support for emulation of other machines would enhance the program
but might make it much more difficult.)
+@item
+A map display or geographic information system.
+
@item
Optical character recognition programs; especially if suitable for
scanning documents with multiple fonts and capturing font info as well
@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 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, Cobol, Fortran 90, or whatever, to be used
-with the code generation phases of the GNU C compiler. (C, C++, and
-Objective-C are done; Fortran 77 is mostly done; Ada, Pascal, and Java
-are being worked on.)
+Algol 60, Algol 68, PL/I, Cobol, Fortran 90, Eiffel, 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 don't have to answer the question -len
Video-oriented games that work with the X window system.
@itemize @bullet
-@item
-A Doom-compatible display game engine, for running the many free
-levels people have written for Doom.
-
@item
Empire (there is a free version but it needs upgrading)
Improve GnuGo, which is not yet very sophisticated.
@item
-Imitations of popular video games:
+Write imitations of some popular video game:
@itemize -
@item
Program a robot by sticking building blocks together,
then watch it explore a world.
@item
-Biomorph evolution (as in Scientific American).
+Biomorph evolution (as in Scientific American and @cite{The Blind
+Watchmaker}).
@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}.