]> code.delx.au - gnu-emacs/blobdiff - etc/tasks.texi
*** empty log message ***
[gnu-emacs] / etc / tasks.texi
index 678685bfe5e015dfa04ad16c9bf134b21f4bf41c..8d4f2f19474214256f86124ca4c7e2e6d90a5bb0 100644 (file)
@@ -2,8 +2,8 @@
 @c %**start of header
 @setfilename tasks.info
 @settitle GNU Task List
-@c UPDATE THIS DATE WHENEVER YOU MAKE CHANGES!
-@set lastupdate 16 September 1997
+@c This date is automagically updated when you save this file:
+@set lastupdate May 19, 1999
 @c %**end of header
 
 @setchapternewpage off
@@ -23,20 +23,21 @@ 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::
-* 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
@@ -47,9 +48,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:
-@url{http://www.gnu.ai.mit.edu/prep/tasks_toc.html}.
+@uref{http://www.gnu.org/prep/tasks_toc.html}.
 
-If you start working steadily on a project, please let @code{gnu@@prep}
+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.
 
@@ -74,7 +75,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
@@ -92,37 +93,44 @@ 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
+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
-@url{http://www.gnu.ai.mit.edu/prep/tasks.hurd.html}, via the World Wide
+@uref{http://www.gnu.org/prep/tasks.hurd.html}, via the World Wide
 Web.
 
 @item
-@url{ftp://prep.ai.mit.edu/pub/gnu/tasks/tasks.hurd}, via anonymous FTP.
+@uref{ftp://ftp.gnu.org/pub/gnu/tasks/tasks.hurd}, via anonymous FTP.
 
 @item
-@email{gnu@@prep.ai.mit.edu} via e-mail.
+@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 @url{http://www.gnu.ai.mit.edu:/software/guile/guile.html}
-and then contact @email{guile@@gnu.ai.mit.edu}.
+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 the GNU web browser, E-scape.
+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 Windows NT emulation for GNU systems---for example, WINE.
+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
@@ -135,6 +143,7 @@ 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
@@ -142,16 +151,56 @@ 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 some parts of the system
-that already exist or will exist very soon:
+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 C reference manual.  (RMS made a try at one, which you could start
-with).
+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
+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.
@@ -160,17 +209,24 @@ A manual for Ghostscript.
 A manual for TCSH.
 
 @item
-A manual for PIC (the graphics formatting language).
+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 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.
+
+@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 X-window applications.
+A manual for programming applications for X11.
 
 @item
 Manuals for various X window managers.
@@ -183,15 +239,10 @@ 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
-@code{thomas@@gnu.ai.mit.edu} about this project.
-
 @ignore
 @item
 Modify the GNU @code{dc} program to use the math routines of GNU
@@ -202,18 +253,12 @@ Modify the GNU @code{dc} program to use the math routines of GNU
 A @code{grap} preprocessor program for @code{troff}.
 
 @item
-Various other libraries.
-
-@item
-An emulation of SCCS that works using RCS.
-
-@item
-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
+@node Kernel Projects, Extensions, Unix-Related Projects, Top
 @chapter Kernel-Related Projects
 
 @itemize @bullet
@@ -239,9 +284,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
@@ -252,22 +301,22 @@ 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.
+graphical interface that uses GTK and is tightly integrated into GDB.
 
 @item
-Rewrite GNU @code{sed} completely, to make it cleaner.
+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.
+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
+Help with the development of GNUstep, a GNU implementation of the
 OpenStep specification.
 
 @item
@@ -282,11 +331,14 @@ 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
-@code{tron@@veritas.com} about this.
+@email{tron@@veritas.com} about this.
 
 Smail also needs a new chief maintainer.
 
@@ -296,44 +348,68 @@ 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
-free program for music typesetting.
+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
-Port the Vibrant toolkit to work on X without using Motif.
+Make sure the Vibrant toolkit works with LessTif instead of Motif.
 
 @item
 A program to display and edit Hypercard stacks.
 
 @item
-A paint program, supporting both bitmap-oriented operations and
-component-oriented operations.  @code{xpaint} exists, but isn't very
-usable.
+A program for graphic morphing of scanned photographs.
 
 @item
-A vector-based drawing program in the spirit of Adobe Illustrator
-and Corel Draw.
+Software for designing and printing business cards.
+@end itemize
+
+@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
-An interactive 3D modeling utility with rendering/raytracing capabilities.
+A teleconferencing program which does the job of CU-SeeMe (which is,
+alas, not free software).
+@end ignore
 
 @item
-A program for graphic morphing of scanned photographs.
+A free ICQ-compatible server program.  (The ICQ server itself is not
+free software.)
 @end itemize
 
-@node Encryption Projects
+@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
@@ -345,55 +421,45 @@ 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.
-
-@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.
-
-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).
 
 @item
-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.
-
-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
 
-@node Other Projects
+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, Languages, Encryption Projects, Top
 @chapter Other Projects
 
 If you think of others that should be added, please
-send them to @code{gnu@@prep.ai.mit.edu}.
+send them to @email{gnu@@gnu.org}.
 
 @itemize @bullet
+@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
+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.
+@end ignore
+
 @item
 A free program that can transfer files on a serial line
 using the same protocol that Kermit uses.
@@ -404,22 +470,22 @@ An imitation of Page Maker or Ventura Publisher.
 @item
 An imitation of @code{dbase2} or @code{dbase3} (How dbased!)
 
-@item
-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.
-
 @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).
+A free replacement for Glimpse, which is not free software.
 
 @item
-A program to typeset C code for printing.
-For ideas on what to do, see the book,
+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,
@@ -427,18 +493,43 @@ 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.
+@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 phr@@netcom.com for relevant suggestions.)
+(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.
@@ -446,18 +537,38 @@ 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
 
+@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
+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.
@@ -473,6 +584,14 @@ perhaps something like Scientific Workbench and/or Khoros,
 @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 extentsion.
+
 @item
 A project-scheduling package that accepts a list of project sub-tasks
 with their interdependencies, and generates Gantt charts and Pert charts
@@ -482,16 +601,12 @@ and all the other standard project progress reports.
 Grammar and style checking programs.
 
 @item
-A translator from Scheme to C.
+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 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
-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
@@ -515,22 +630,29 @@ 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, Eiffel, 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@prep and the volunteer coordinators
+@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.ai.mit.edu
+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.
@@ -547,7 +669,15 @@ simulation games.
 Improve GnuGo, which is not yet very sophisticated.
 
 @item
-Write imitations of some popular video game:
+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
@@ -557,12 +687,14 @@ Defending cities from missiles.
 @item
 Plane shoots at lots of other planes, tanks, etc.
 @item
-Wizard fights fanciful monster.
+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}).
@@ -576,3 +708,9 @@ 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: