Remove string.h hack.
[bpt/emacs.git] / etc / tasks.texi
dissimilarity index 64%
index faa9860..0d1423c 100644 (file)
-\input texinfo @c -*-texinfo-*-
-@c %**start of header
-@setfilename tasks.info
-@settitle GNU Task List
-@c UPDATE THIS DATE WHENEVER YOU MAKE CHANGES!
-@set lastupdate 16 July 1993
-@c %**end of header
-
-@setchapternewpage off
-
-@titlepage
-@title GNU Task List
-@author Free Software Foundation
-@author last updated @value{lastupdate}
-@end titlepage
-
-@ifinfo
-@node Top, Documentation, (dir), (dir)
-@top GNU Task list
-
-This file is updated automatically from @file{tasks.texi}, which was
-last updated on @value{lastupdate}.
-@end ifinfo
-
-Check with gnu@@prep.ai.mit.edu, for a possibly more current copy.
-This task list is not exclusive; any other useful program might be a
-good project---but it might instead be something we already have, so
-check with gnu@@prep before you start writing it.
-
-@menu
-* Documentation::               
-* Unix-Related Projects::       
-* Kernel Projects::     
-* Extensions::
-* X Windows Projects::          
-* Other Projects::       
-* Compilers::
-* Games and Recreations::       
-@end menu
-
-If you start working steadily on a project, please let gnu@@prep know.
-We might have information that could help you; we'd also like to send
-you the GNU coding standards.
-
-Because of the natural tendency for most volunteers to write
-programming tools or programming languages, we have a comparative
-shortage of applications useful for non-programmer users.  Therefore,
-we ask you to consider writing such a program.
-
-In general, a new program that does a completely new job advances the
-GNU project more than an improvement to an existing program.
-
-@node Documentation
-@chapter Documentation
-
-We very urgently need documentation for some parts of the system
-that already exist or will exist very soon:
-
-@itemize @bullet
-
-@item
-A C reference manual.  (RMS has written half of one which you could
-start with).
-
-@item
-A manual for Ghostscript.
-
-@item
-A manual for CSH.
-
-@item
-A manual for PIC (the graphics formatting language).
-
-@item
-A manual for Perl.  (The manual that exists is not free, and
-is thus not available to be part of the GNU system.)
-
-@item
-A manual for Oleo.
-
-@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.
-
-@item
-Manuals for various X window managers.
-
-@item
-Reference cards for those manuals that don't have them: Gawk, C
-Compiler, Make, Texinfo, Termcap and maybe the C Library.
-
-@item
-Many utilities need documentation, including @code{grep}, @code{cpio},
-@code{find}, @code{less}, and the other small utilities.
-
-@end itemize
-
-@node Unix-Related Projects
-@chapter Unix-Related projects
-
-@itemize
-
-@item
-We could use an emulation of Unix @code{spell}, which would run by
-invoking @code{ispell}.
-
-@item
-Less urgent: @code{diction}, @code{explain}, @code{style}.
-
-@item
-An improved version of the POSIX utility @code{pax}.  There is one on
-the usenet, but it is said to be poorly written.  Talk with
-mib@@gnu.ai.mit.edu about this project.
-
-@item
-Modify the GNU @code{dc} program to use the math routines of GNU
-@code{bc}.
-
-@item
-A @code{grap} preprocessor program for @code{troff}.
-
-@item
-Various other libraries.
-
-@item
-An emulation of SCCS that works using RCS.
-
-@end itemize
-
-@node Kernel Projects
-@chapter Kernel-Related projects
-
-@itemize
-
-@item
-An over-the-ethernet debugger that will allow the kernel to be
-debugged from GDB running on another machine.
-
-@item
-A shared memory X11 server to run under MACH is very desirable.  The
-machine specific parts should be kept well separated.
-
-@end itemize
-
-@node Extensions
-@chapter Extensions to existing GNU software
-
-@itemize
-
-@item
-Enhance GCC.  See files PROJECTS and PROBLEMS in the GCC distribution.
-
-@item
-GNU @code{sed} probably needs to be rewritten completely just to make it
-cleaner.
-
-@item
-Add a few features to GNU @code{diff}, such as handling large input
-files without reading entire files into core.
-
-@item
-Extend GDB with an X-based graphical interface better than @code{xxgdb}.
-
-@item
-An @code{nroff} macro package to simplify @code{texi2roff}.
-
-@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
-tron@@veritas.com about this.
-
-@item
-Cross-referencing, flow graph, and execution trace programs for C and
-other languages, like @code{cxref}, @code{cflow}, and @code{ctrace}.
-
-@end itemize
-
-@node X Windows Projects
-@chapter X windows projects
-
-@itemize
-
-@item
-An emulator for Macintosh graphics calls on top of X Windows.
-
-@item
-An emulator for Microsoft windows calls on top of X Windows.  (A
-commercial program to do this took just three months to write.)
-
-@item
-A music playing and editing system.
-
-@item
-A program to edit dance notation (such as labanotation) and display
-dancers moving on the screen.
-
-@item
-A library for displaying circle-shaped menus with X windows.
-
-@item
-A program to display and edit Hypercard stacks.
-
-@item
-An interface-builder program to make it easy to design graphical
-interfaces for applications.  This could work with the dynamic linker
-DLD and C++, loading in the same class definitions that will be used
-by the application program.
-
-@item
-A desktop program with icons and such, for X-windows.
-
-@item
-A paint program, supporting both bitmap-oriented operations and
-component-oriented operations.  @code{xpaint} exists, but isn't very
-usable.
-
-@end itemize
-
-@node Other Projects
-@chapter Other Projects
-
-If you think of others that should be added, please
-send them to gnu@@prep.ai.mit.edu.
-
-@itemize
-
-@item
-[This seems to be being done:]
-A program to convert Postscript to plain ASCII text.  Ghostscript will
-soon have a mode to output all the text strings in a document, each with
-its coordinates.  You could write a program to start with this output
-and ``layout the page'' in ASCII.  The program will be both easier and
-more useful if you don't worry pedantically about how the output text
-should be formatted.  Instead, try to make it look reasonable as plain
-ASCII.
-
-@item
-A program to convert compiled programs represented in OSF ANDF
-(``Architecture Neutral Distribution Format'') into ANSI C.
-
-@item
-An imitation of Page Maker or Ventura Publisher.
-
-@item
-An imitation of @code{dbase2} or @code{dbase3} (How dbased!)
-
-@item
-A program to reformat Fortran programs in a way that is pretty.
-
-@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.
-
-@item
-A single command language that could be suitable for use in a shell, in
-GDB for programming debugging commands, in a program like @code{awk}, in
-a calculator like @code{bc}, and so on.  The fact that all these
-programs are similar but different in peculiar details is a great source
-of confusion.  We are stuck with maintaining compatibility with Unix in
-our shell, @code{awk}, and @code{bc}, but nothing prevents us from
-having alternative programs using our new, uniform language.  This would
-make GNU far better for new users.
-
-@item
-A program to typeset C code for printing.
-For ideas on what to do, see the forthcoming book,
-
-@display
-Human Factors and Typography for More Readable Programs,
-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.)
-
-@item
-Speech-generation programs (there is a program from Brown U that you
-could improve).
-
-@item
-Speech-recognition programs (single-speaker, disconnected speech).
-
-@item
-Scientific mathematical subroutines, including clones of SPSS.
-
-@item
-Statistical tools.
-
-@item
-Software to replace card catalogues in libraries.
-
-@item
-Grammar and style checking programs.
-
-@item
-An implementation of the S language.
-
-@item
-A translator from Scheme to C.
-
-@item
-Optical character recognition programs; especially if suitable for
-scanning documents with multiple fonts and capturing font info as well
-as character codes.  This may not be very difficult if you let it
-@emph{train} on part of the individual document to be scanned, so as to
-learn what fonts are in use in that document.  We would particularly
-like to scan the Century Dictionary, an unabridged dictionary now in the
-public domain.
-
-You don't need scanning hardware to work on OCR.  We can send you
-bitmaps you can use as test data.
-
-@item
-A program to scan a line drawing and convert it to Postscript.
-
-@item
-A program to recognize handwriting.
-
-@item
-A pen based interface.
-
-@item
-Software suitable for creating virtual reality user interfaces.
-
-@item
-CAD software, such as a vague imitation of Autocad.
-
-@item
-Software for displaying molecules.
-
-@item
-Software for comparing DNA sequences, and finding matches and
-alignments.
-
-@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, or whatever, to be used with the
-code generation phases of the GNU C compiler.  (C++ is done, and
-Ada, Fortran, Pascal and Modula are being worked on.)
-
-@node Games and Recreations
-@chapter Games and Recreations
-
-@itemize
-
-@item
-Video-oriented games should work with the X window system.
-
-@item
-Empire (there is a free version but it needs upgrading)
-
-@item
-Imitations of popular video games:
-
-@itemize
-@item
-Space war, Asteroids, Pong, Columns.
-@item
-Defending cities from missiles.
-@item
-Plane shoots at lots of other planes.
-@item
-Wizard fights fanciful monster.
-@item
-A golf game.
-@item
-Program a robot by sticking building blocks together,
-then watch it explore a world.
-@item
-Biomorph evolution (as in Scientific American).
-@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}.
-
-@contents
-
-@bye
+\input texinfo @c -*-texinfo-*-
+@c %**start of header
+@setfilename tasks.info
+@settitle GNU Task List
+@c This date is automagically updated when you save this file:
+@set lastupdate November  1, 1999
+@c %**end of header
+
+@setchapternewpage off
+
+@titlepage
+@title GNU Task List
+@author Free Software Foundation
+@author last updated @value{lastupdate}
+@end titlepage
+
+@ifinfo
+@node Top, Intro, (dir), (dir)
+@top GNU Task List
+
+This file is updated automatically from @file{tasks.texi}, which was
+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::          
+* Network Projects::            
+* Encryption Projects::         
+* Other Projects::              
+* Languages::                   
+* Games and Recreations::       
+@end menu
+
+@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
+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:
+@uref{http://www.gnu.org/prep/tasks_toc.html}.
+
+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.
+
+Because of the natural tendency for most volunteers to write programming
+tools or programming languages, we have a comparative shortage of
+applications useful for non-programmer users.  Therefore, we ask you to
+consider writing such a program.
+
+Typically, a new program that does a completely new job advances
+the GNU project, and the free software community, more than an
+improvement to an existing program.
+
+Typically, new features or new programs advance the free software
+community more, in the long run, than porting existing programs.  One
+reason is that portable new features and programs benefit people on many
+platforms, not just one.  At the same time, there tend to be many
+volunteers for porting---so your help will be more valuable in other
+areas, where volunteers are more scarce.
+
+Typically, it is more useful to extend a program in functionality than
+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, Documentation, Intro, Top
+@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 @uref{http://www.gnu.org/software/hurd/hurd.html}, and
+then get a copy of the latest HURD task list from:
+
+@itemize @bullet
+
+@item
+@uref{http://www.gnu.org/prep/tasks.hurd.html}, via the World Wide
+Web.
+
+@item
+@uref{ftp://ftp.gnu.org/pub/gnu/tasks/tasks.hurd}, via anonymous FTP.
+
+@item
+@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 @uref{http://www.gnu.org/software/guile/guile.html}
+and then contact the Guile developers at @email{guile@@gnu.org}.
+
+@item
+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
+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.
+@end ignore
+
+@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, 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, 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 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++, 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.
+
+@item
+A manual for TCSH.
+
+@item
+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
+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 applications for X11.
+
+@item
+Manuals for various X window managers.
+
+@item
+Reference cards for those manuals that don't have them: C
+Compiler, Make, Texinfo, Termcap, and maybe the C Library.
+
+@item
+Many utilities need documentation, including @code{grep} and others.
+@end itemize
+
+@node Unix-Related Projects, Kernel Projects, Documentation, Top
+@chapter Unix-Related Projects
+
+@itemize @bullet
+@ignore
+@item
+Modify the GNU @code{dc} program to use the math routines of GNU
+@code{bc}.
+@end ignore
+
+@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 program.
+@end itemize
+
+@node Kernel Projects, Extensions, Unix-Related Projects, Top
+@chapter Kernel-Related Projects
+
+@itemize @bullet
+@item
+An over-the-ethernet debugger stub that will allow the kernel to be
+debugged from GDB running on another machine.
+
+This stub needs its own self-contained implementation of all protocols
+to be used, since the GNU system will use user processes to implement
+all but the lowest levels, and the stub won't be able to use those
+processes.  If a simple self-contained implementation of IP and TCP is
+impractical, it might be necessary to design a new, simple protocol
+based directly on ethernet.  It's not crucial to support high speed or
+communicating across gateways.
+
+It might be possible to use the Mach ethernet driver code, but it would
+need some changes.
+
+@item
+A shared memory X11 server to run under MACH is very desirable.  The
+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, X Windows Projects, Kernel Projects, Top
+@chapter Extensions to Existing GNU Software
+
+@itemize @bullet
+@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 GTK and is tightly integrated into GDB.
+
+@item
+Extend Octave to support programs that were written
+to run on Khoros.
+
+@item
+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
+OpenStep specification.
+
+@item
+Add features to GNU Make to record the precise rule with which each file
+was last recompiled; then recompile any file if its rule in the makefile
+has changed.
+
+@item
+Add a few features to GNU @code{diff}, such as handling large input
+files without reading entire files into core.
+
+@item
+An @code{nroff} macro package to simplify @code{texi2roff}.
+
+@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
+@email{tron@@veritas.com} about this.
+
+Smail also needs a new chief maintainer.
+
+@item
+Enhanced cross-reference browsing tools.  (We now have something at
+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, 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
+dancers moving on the screen.
+
+@item
+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 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
+US citizens, to avoid problems with US export control law.
+
+@itemize @bullet
+@item
+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 expired in 1997.  This library can probably be developed from
+the code for the GNU Privacy Guard (now in development).
+
+@item
+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
+
+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 @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
+
+@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!)
+@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 free replacement for Glimpse, which is not free software.
+
+@item
+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,
+Ronald M. Baecker and Aaron Marcus,
+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
+@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 @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.
+
+@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).
+
+@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.
+(A clone of SPSS is being written already.)
+
+@item
+Statistical tools.
+
+@item
+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
+and all the other standard project progress reports.
+
+@item
+Grammar and style checking programs.
+
+@item
+A diagnostic program to test a hard disk.
+
+@item
+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.
+
+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
+scanning documents with multiple fonts and capturing font info as well
+as character codes.  Work is being done on this, but more help is needed.
+
+@item
+A program to scan a line drawing and convert it to Postscript.
+
+@item
+A program to recognize handwriting.
+
+@item
+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 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, 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
+You can get the status of the Fortran front end with this command:
+
+@example
+finger -l fortran@@gnu.org
+@end example
+
+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.
+
+@itemize @bullet
+@item
+Empire (there is a free version but it needs upgrading)
+
+@item
+An ``empire builder'' system that makes it easy to write various kinds of
+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.
+
+@item
+Write imitations of some popular video games:
+
+@itemize -
+@item
+Space war, Asteroids, Pong, Columns.
+@item
+Defending cities from missiles.
+@item
+Plane shoots at lots of other planes, tanks, etc.
+@item
+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}).
+@item
+A program to display effects of moving at relativistic speeds.
+@end itemize
+@end itemize
+
+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: