Remove string.h hack.
[bpt/emacs.git] / etc / tasks.texi
index 329a8a5..0d1423c 100644 (file)
@@ -3,7 +3,7 @@
 @setfilename tasks.info
 @settitle GNU Task List
 @c This date is automagically updated when you save this file:
-@set lastupdate September 15, 1998
+@set lastupdate November  1, 1999
 @c %**end of header
 
 @setchapternewpage off
 @top GNU Task List
 
 This file is updated automatically from @file{tasks.texi}, which was
-last updated on @value{lastupdate}.
+last updated on @value{lastupdate}.  See also
+@uref{http://www.gnu.org/help/help.html#helpgnu} for other suggested
+tasks.
 @end ifinfo
 
 @menu
-* Intro::
-* Highest Priority::
-* Documentation::
-* Unix-Related Projects::
-* Kernel Projects::
-* Extensions::
-* X Windows Projects::
-* Encryption Projects::
-* Other Projects::
-* Compilers::
-* Games and Recreations::
+* Intro::                       
+* Highest Priority::            
+* Documentation::               
+* Unix-Related Projects::       
+* Kernel Projects::             
+* Extensions::                  
+* X Windows Projects::          
+* Network Projects::            
+* Encryption Projects::         
+* Other Projects::              
+* Languages::                   
+* Games and Recreations::       
 @end menu
 
-@node Intro
+@node Intro, Highest Priority, Top, Top
 @chapter About the GNU Task List
 
 If you did not obtain this file directly from the GNU project and
@@ -74,7 +77,7 @@ 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
+@node Highest Priority, Documentation, Intro, Top
 @chapter Highest Priority
 
 This task list mentions a large number of tasks that would be more or
@@ -115,14 +118,24 @@ at the URL @uref{http://www.gnu.org/software/guile/guile.html}
 and then contact the Guile developers at @email{guile@@gnu.org}.
 
 @item
-Help develop XmHTML.
+A package to convert programs written using MS Access into Scheme,
+making use of a free data base system and the GTK toolkit.
+
+@ignore
+@item
+Help develop XmHTML.  See @uref{http://www.xs4all.nl/~ripley/XmHTML/}.
+@end ignore
 
 @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/}.
 
+@ignore  The Kermit developers say they will provide a free program
+to do this.
 @item
 Implement the Kermit data transfer protocol.  (See below.)
+@end ignore
 
 @ignore This is being done (Harmony)
 @item
@@ -139,35 +152,68 @@ 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 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.
-
 @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
+@node Documentation, Unix-Related Projects, Highest Priority, Top
 @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, 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.
+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 C reference manual.  (RMS made a try at one, which you could start
-with).
+A manual for libstdc++.
+
+@item
+A unified manual for La@TeX{}.  (Existing documentation is non-free.)
+
+@item
+A manual for Docbook SGML format. 
+
+@item
+A tutorial introduction to Midnight Commander.
+
+@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
+A manual for GNU sed.
 
 @item
-Reference manuals for C++, Pascal, Fortran 77, and Java.
+Reference manuals for C++, Objective C, Pascal, Fortran 77, and Java.
+
+@item
+A tutorial manual for the C++ STL (standard template library).
+
+@item
+A tutorial manual for Gforth.
+
+@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.
@@ -176,11 +222,9 @@ A manual for Ghostscript.
 A manual for TCSH.
 
 @item
-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 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
@@ -195,7 +239,7 @@ A book on how GCC works and why various machine descriptions
 are written as they are.
 
 @item
-A manual for programming X-window applications.
+A manual for programming applications for X11.
 
 @item
 Manuals for various X window managers.
@@ -208,32 +252,23 @@ Compiler, Make, Texinfo, Termcap, and maybe the C Library.
 Many utilities need documentation, including @code{grep} and others.
 @end itemize
 
-@node Unix-Related Projects
+@node Unix-Related Projects, Kernel Projects, Documentation, Top
 @chapter Unix-Related Projects
 
 @itemize @bullet
-@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
-@email{thomas@@gnu.org}, @email{pinard@@iro.umontreal.ca} and
-@email{juo@@klinzhai.rutgers.edu} for advice 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
 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.
+with Unix is not especially important for this program.
 @end itemize
 
-@node Kernel Projects
+@node Kernel Projects, Extensions, Unix-Related Projects, Top
 @chapter Kernel-Related Projects
 
 @itemize @bullet
@@ -259,9 +294,13 @@ 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.
+
+@item
+Support (in Linux?) for dumping the non-textual contents of an SVGA
+console.
 @end itemize
 
-@node Extensions
+@node Extensions, X Windows Projects, Kernel Projects, Top
 @chapter Extensions to Existing GNU Software
 
 @itemize @bullet
@@ -279,13 +318,9 @@ Extend Octave to support programs that were written
 to run on Khoros.
 
 @item
-Rewrite Automake and Deja-GNU in Scheme, so they can run in Guile.
-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.
+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.
@@ -306,9 +341,6 @@ 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
@@ -323,20 +355,35 @@ 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
+@node X Windows Projects, Network Projects, Extensions, Top
 @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.
+
+@ignore  @c GNUskies should do this
 @item
 An ephemeris program to replace xephem (which is, alas, too restricted
 to qualify as free software).
+@end ignore
 
 @item
 A program to edit dance notation (such as labanotation) and display
@@ -348,11 +395,39 @@ Make sure the Vibrant toolkit works with LessTif instead of Motif.
 @item
 A program to display and edit Hypercard stacks.
 
+@item
+A two-dimensional outliner program, which lets you draw
+graph structures of textual items, and then display them
+in various ways.
+
 @item
 A program for graphic morphing of scanned photographs.
+
+@item
+Software for designing and printing business cards.
 @end itemize
 
-@node Encryption Projects
+@node Network Projects, Encryption Projects, X Windows Projects, Top
+@chapter Network Projects
+
+@itemize @bullet
+@ignore
+@c www.openh323.org is doing this. Craig Southeren <craigs@equival.com.au>
+@item
+A teleconferencing program which does the job of CU-SeeMe (which is,
+alas, not free software).
+@end ignore
+
+@ignore
+@c Bishop Bettini <bishop@synxcti.com> is working on this.
+@item
+A free ICQ-compatible server program.  (The ICQ server itself is not
+free software.)
+@end ignore
+
+@end itemize
+
+@node Encryption Projects, Other Projects, Network Projects, Top
 @chapter Encryption Projects
 
 These projects need to be written outside the US by people who are not
@@ -368,35 +443,27 @@ the US expired in 1997.  This library can probably be developed from
 the code for the GNU Privacy Guard (now in development).
 
 @item
-A free secure telnet program more or less like ssh/sshd.  Since this
-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
-alternatives that will be patent-free in late 1997.  It cannot support
-IDEA, but can use triple-DES and/or Blowfish or other non-patented
-alternatives.
+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
 
-A free replacement for PGP is no longer listed here because the GNU
-Privacy Guard will do that job.
+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
+@node Other Projects, Languages, Encryption Projects, Top
 @chapter Other Projects
 
 If you think of others that should be added, please
 send them to @email{gnu@@gnu.org}.
 
 @itemize @bullet
-
-@item
-A program to reformat HTML source to make it easier to read as HTML.
-
+@ignore OpenBIOS is doing this
 @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
@@ -409,28 +476,37 @@ 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.
+@end ignore
 
+@ignore Frank Cruz promises a free version
 @item
 A free program that can transfer files on a serial line
 using the same protocol that Kermit uses.
+@end ignore
 
 @item
 An imitation of Page Maker or Ventura Publisher.
 
 @item
-An imitation of @code{dbase2} or @code{dbase3} (How dbased!)
+An imitation of @code{dbase2} or @code{dbase3}.  (How dbased!)
+@uref{http://www.startech.keller.tx.us/xbase/xbase.html} may contain
+some useful stuff to start with.
 
+@ignore  @c being done by Jonas etc.
 @item
 A general ledger program, including support for accounts payable, 
 account receivables, payroll, inventory control, order processing, etc.
+@end ignore
 
 @item
-A teleconferencing program which does the job of CU-SeeMe (which is,
-alas, not free software).
+A free replacement for Glimpse, which is not free software.
 
 @item
-A free replacement for Glimpse, which is not free software.
+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,
@@ -442,6 +518,7 @@ Addison-Wesley, ISBN 0-201-10745-7
 @end display
 
 But you don't have to do exactly what they propose.
+@end ignore
 
 @ignore
 @c This is now being worked on -- rms, 22 June 1998
@@ -471,6 +548,9 @@ A free replacement for the semi-free Qt library.
 @item
 High-quality music compression software.
 (Talk with @email{phr@@netcom.com} for relevant suggestions.)
+Unfortunately we cannot implement the popular MP3 format
+due to patents, so this job includes working out some other
+non-patented format and compression method.
 
 @item
 A program to play sound distributed in ``Real Audio'' format.
@@ -485,14 +565,23 @@ Programs to handle audio in RTSP format.
 @item
 An MPEG III audio encoder/decoder (but it is necessary to check, first,
 whether patents make this impossible).
-@end ignore
 
+@c Chris Hofstader is working on this.
 @item
 Speech-generation programs (there is a program from Brown U that you
 could improve).
 
+@c We have a project now.
 @item
 Speech-recognition programs (single-speaker, disconnected speech is sufficient).
+@end ignore
+
+@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
@@ -513,9 +602,21 @@ Statistical tools.
 A scientific data collection and processing tool,
 perhaps something like Scientific Workbench and/or Khoros,
 
+@item
+A program to calculate properties of molecules by solving
+the Schroedinger equation.
+
 @item
 Software to replace card catalogues in libraries.
 
+@item
+A simulator for heating and air conditioning systems for buildings.
+
+@item
+A package for editing genealogical records conveniently.
+This could perhaps be done as a Gnome program, or perhaps
+as an Emacs extension.
+
 @item
 A project-scheduling package that accepts a list of project sub-tasks
 with their interdependencies, and generates Gantt charts and Pert charts
@@ -525,16 +626,15 @@ and all the other standard project progress reports.
 Grammar and style checking programs.
 
 @item
-A translator from Scheme to C.
+A diagnostic program to test a hard disk.
 
 @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.)
+A fast emulator for the i386, which would make it possible
+to emulate x86 code on other CPUs, and also to more easily
+debug kernels such as Linux more conveniently.
 
-@item
-A map display or geographic information system.
+To make this faster, it could work by translating machine instructions
+into the machine language of the host machine.
 
 @item
 Optical character recognition programs; especially if suitable for
@@ -558,12 +658,13 @@ 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
+@node Languages, Games and Recreations, Other Projects, Top
+@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.
+Algol 60, Algol 68, PL/I, Cobol, Fortran 90, Delphi, Modula 2, Modula 3,
+RPG, and any other languages designed for compilation, 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
@@ -573,7 +674,13 @@ You can get the status of the Fortran front end with this command:
 finger -l fortran@@gnu.org
 @end example
 
-@node Games and Recreations
+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,  , Languages, Top
 @chapter Games and Recreations
 
 Video-oriented games that work with the X window system.
@@ -589,6 +696,10 @@ 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.