Write year in subject line using four digits, not two.
[bpt/emacs.git] / etc / tasks.texi
index ff9ea5e..678685b 100644 (file)
@@ -3,7 +3,7 @@
 @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
@@ -15,7 +15,7 @@
 @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
@@ -23,26 +23,31 @@ last updated on @value{lastupdate}.
 @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
@@ -69,6 +74,74 @@ 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 @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
 
@@ -76,10 +149,6 @@ 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 Emacs mode for
-C, C++ and other languages.
-
 @item
 A C reference manual.  (RMS made a try at one, which you could start
 with).
@@ -87,7 +156,6 @@ with).
 @item
 A manual for Ghostscript.
 
-
 @item
 A manual for TCSH.
 
@@ -122,7 +190,7 @@ Many utilities need documentation, including @code{grep} and others.
 @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
@@ -181,6 +249,11 @@ HURD.  This protocol is an offshoot of SMB.
 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.
 
@@ -231,17 +304,8 @@ about the level of @code{cxref}.)  We also could use something like
 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
@@ -269,24 +333,34 @@ An interactive 3D modeling utility with rendering/raytracing capabilities.
 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
@@ -305,11 +379,24 @@ preceding item.
 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.
@@ -342,6 +429,29 @@ Addison-Wesley, ISBN 0-201-10745-7
 
 (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).
@@ -364,11 +474,12 @@ perhaps something like Scientific Workbench and/or Khoros,
 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.
@@ -379,6 +490,9 @@ 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
+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
@@ -395,16 +509,18 @@ 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 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
@@ -420,10 +536,6 @@ finger -l fortran@@gnu.ai.mit.edu
 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)
 
@@ -435,7 +547,7 @@ simulation games.
 Improve GnuGo, which is not yet very sophisticated.
 
 @item
-Imitations of popular video games:
+Write imitations of some popular video game:
 
 @itemize -
 @item
@@ -452,15 +564,11 @@ A golf game.
 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}.