5119
|
1 \input texinfo @c -*-texinfo-*-
|
|
2 @c %**start of header
|
|
3 @setfilename tasks.info
|
|
4 @settitle GNU Task List
|
|
5 @c UPDATE THIS DATE WHENEVER YOU MAKE CHANGES!
|
|
6 @set lastupdate 16 July 1993
|
|
7 @c %**end of header
|
|
8
|
|
9 @setchapternewpage off
|
|
10
|
|
11 @ifinfo
|
|
12 Copyright (C) 1993 Free Software Foundation
|
|
13
|
|
14 Permission is granted to make and distribute verbatim copies of
|
|
15 this manual provided the copyright notice and this permission notice
|
|
16 are preserved on all copies.
|
|
17
|
|
18 @ignore
|
|
19 Permission is granted to process this file through TeX and print the
|
|
20 results, provided the printed document carries copying permission
|
|
21 notice identical to this one except for the removal of this paragraph
|
|
22 (this paragraph not being relevant to the printed manual).
|
|
23 @end ignore
|
|
24
|
|
25 Permission is granted to copy and distribute modified versions of this
|
|
26 manual under the conditions for verbatim copying, provided that the entire
|
|
27 resulting derived work is distributed under the terms of a permission
|
|
28 notice identical to this one.
|
|
29
|
|
30 Permission is granted to copy and distribute translations of this manual
|
|
31 into another language, under the above conditions for modified versions,
|
|
32 except that this permission notice may be stated in a translation approved
|
|
33 by the Free Software Foundation.
|
|
34 @end ifinfo
|
|
35
|
|
36 @titlepage
|
|
37 @title GNU Task List
|
|
38 @author Richard Stallman
|
|
39 @author last updated @value{lastupdate}
|
|
40 @page
|
|
41
|
|
42 @vskip 0pt plus 1filll
|
|
43 Copyright @copyright{} 1993 Free Software Foundation
|
|
44
|
|
45 Permission is granted to make and distribute verbatim copies of
|
|
46 this manual provided the copyright notice and this permission notice
|
|
47 are preserved on all copies.
|
|
48
|
|
49 Permission is granted to copy and distribute modified versions of this
|
|
50 manual under the conditions for verbatim copying, provided that the entire
|
|
51 resulting derived work is distributed under the terms of a permission
|
|
52 notice identical to this one.
|
|
53
|
|
54 Permission is granted to copy and distribute translations of this manual
|
|
55 into another language, under the above conditions for modified versions,
|
|
56 except that this permission notice may be stated in a translation approved
|
|
57 by Free Software Foundation.
|
|
58 @end titlepage
|
|
59
|
|
60 @ifinfo
|
|
61 @node Top, Documentation, (dir), (dir)
|
|
62 @top Version
|
|
63
|
|
64 Last updated @value{lastupdate}.
|
|
65 @end ifinfo
|
|
66
|
|
67 Check with gnu@@prep.ai.mit.edu, for a possibly more current copy.
|
|
68 This task list is not exclusive; any other useful program might be a
|
|
69 good project--but it might instead be something we already have, so
|
|
70 check with gnu@@prep before you start writing it.
|
|
71
|
|
72 @menu
|
|
73 * Documentation::
|
|
74 * Unix-related projects::
|
|
75 * Kernel-related projects::
|
|
76 * Extensions to existing GNU software::
|
|
77 * X windows projects::
|
|
78 * Other random projects::
|
|
79 * Compilers for other batch languages::
|
|
80 * Games and recreations::
|
|
81 @end menu
|
|
82
|
|
83 If you start working steadily on a project, please let gnu@@prep know.
|
|
84 We might have information that could help you; we'd also like to send
|
|
85 you the GNU coding standards.
|
|
86
|
|
87 Because of the natural tendency for most volunteers to write
|
|
88 programming tools or programming languages, we have a comparative
|
|
89 shortage of applications useful for non-programmer users. Therefore,
|
|
90 we ask you to consider writing such a program.
|
|
91
|
|
92 In general, a new program that does a completely new job advances the
|
|
93 GNU project more than an improvement to an existing program.
|
|
94
|
|
95 @node Documentation, Unix-related projects, Top, Top
|
|
96 @chapter Documentation
|
|
97
|
|
98 We very urgently need documentation for some parts of the system
|
|
99 that already exist or will exist very soon:
|
|
100
|
|
101 @itemize @bullet
|
|
102
|
|
103 @item
|
|
104 A C reference manual. (RMS has written half of one which you could
|
|
105 start with).
|
|
106
|
|
107 @item
|
|
108 A manual for Ghostscript.
|
|
109
|
|
110 @item
|
|
111 A manual for CSH.
|
|
112
|
|
113 @item
|
|
114 A manual for PIC (the graphics formatting language).
|
|
115
|
|
116 @item
|
|
117 A manual for Perl. (The manual that exists is not free, and
|
|
118 is thus not available to be part of the GNU system.)
|
|
119
|
|
120 @item
|
|
121 A manual for Oleo.
|
|
122
|
|
123 @item
|
|
124 A book on how GCC works and why various machine descriptions
|
|
125 are written as they are.
|
|
126
|
|
127 @item
|
|
128 A manual for programming X-window applications.
|
|
129
|
|
130 @item
|
|
131 Manuals for various X window managers.
|
|
132
|
|
133 @item
|
|
134 Reference cards for those manuals that don't have them: Gawk, C
|
|
135 Compiler, Make, Texinfo, Termcap and maybe the C Library.
|
|
136
|
|
137 @item
|
|
138 Many utilities need documentation, including @code{grep}, @code{cpio},
|
|
139 @code{find}, @code{less}, and the other small utilities.
|
|
140
|
|
141 @end itemize
|
|
142
|
|
143 @node Unix-related projects, Kernel-related projects, Documentation, Top
|
|
144 @chapter Unix-related projects
|
|
145
|
|
146 @itemize
|
|
147
|
|
148 @item
|
|
149 We could use an emulation of Unix @code{spell}, which would run by
|
|
150 invoking @code{ispell}.
|
|
151
|
|
152 @item
|
|
153 Less urgent: @code{diction}, @code{explain}, @code{style}.
|
|
154
|
|
155 @item
|
|
156 An improved version of the POSIX utility @code{pax}. There is one on
|
|
157 the usenet, but it is said to be poorly written. Talk with
|
|
158 mib@@gnu.ai.mit.edu about this project.
|
|
159
|
|
160 @item
|
|
161 Modify the GNU @code{dc} program to use the math routines of GNU
|
|
162 @code{bc}.
|
|
163
|
|
164 @item
|
|
165 A @code{grap} preprocessor program for @code{troff}.
|
|
166
|
|
167 @item
|
|
168 Various other libraries.
|
|
169
|
|
170 @item
|
|
171 An emulation of SCCS that works using RCS.
|
|
172
|
|
173 @end itemize
|
|
174
|
|
175 @node Kernel-related projects, Extensions to existing GNU software, Unix-related projects, Top
|
|
176 @chapter Kernel-related projects
|
|
177
|
|
178 @itemize
|
|
179
|
|
180 @item
|
|
181 An over-the-ethernet debugger that will allow the kernel to be
|
|
182 debugged from GDB running on another machine.
|
|
183
|
|
184 @item
|
|
185 A shared memory X11 server to run under MACH is very desirable. The
|
|
186 machine specific parts should be kept well separated.
|
|
187
|
|
188 @end itemize
|
|
189
|
|
190 @node Extensions to existing GNU software, X windows projects, Kernel-related projects, Top
|
|
191 @chapter Extensions to existing GNU software
|
|
192
|
|
193 @itemize
|
|
194
|
|
195 @item
|
|
196 Enhance GCC. See files PROJECTS and PROBLEMS in the GCC distribution.
|
|
197
|
|
198 @item
|
|
199 GNU @code{sed} probably needs to be rewritten completely just to make it
|
|
200 cleaner.
|
|
201
|
|
202 @item
|
|
203 Add a few features to GNU @code{diff}, such as handling large input
|
|
204 files without reading entire files into core.
|
|
205
|
|
206 @item
|
|
207 Extend GDB with an X-based graphical interface better than @code{xxgdb}.
|
|
208
|
|
209 @item
|
|
210 An @code{nroff} macro package to simplify @code{texi2roff}.
|
|
211
|
|
212 @item
|
|
213 A queueing system for the mailer Smail that groups pending work by
|
|
214 destination rather than by original message. This makes it possible
|
|
215 to schedule retries coherently for each destination. Talk to
|
|
216 tron@@veritas.com about this.
|
|
217
|
|
218 @item
|
|
219 Cross-referencing, flow graph, and execution trace programs for C and
|
|
220 other languages, like @code{cxref}, @code{cflow}, and @code{ctrace}.
|
|
221
|
|
222 @end itemize
|
|
223
|
|
224 @node X windows projects, Other random projects, Extensions to existing GNU software, Top
|
|
225 @chapter X windows projects
|
|
226
|
|
227 @itemize
|
|
228
|
|
229 @item
|
|
230 An emulator for Macintosh graphics calls on top of X Windows.
|
|
231
|
|
232 @item
|
|
233 An emulator for Microsoft windows calls on top of X Windows. (A
|
|
234 commercial program to do this took just three months to write.)
|
|
235
|
|
236 @item
|
|
237 A music playing and editing system.
|
|
238
|
|
239 @item
|
|
240 A program to edit dance notation (such as labanotation) and display
|
|
241 dancers moving on the screen.
|
|
242
|
|
243 @item
|
|
244 A library for displaying circle-shaped menus with X windows.
|
|
245
|
|
246 @item
|
|
247 A program to display and edit Hypercard stacks.
|
|
248
|
|
249 @item
|
|
250 An interface-builder program to make it easy to design graphical
|
|
251 interfaces for applications. This could work with the dynamic linker
|
|
252 DLD and C++, loading in the same class definitions that will be used
|
|
253 by the application program.
|
|
254
|
|
255 @item
|
|
256 A desktop program with icons and such, for X-windows.
|
|
257
|
|
258 @item
|
|
259 A paint program, supporting both bitmap-oriented operations and
|
|
260 component-oriented operations. @code{xpaint} exists, but isn't very
|
|
261 usable.
|
|
262
|
|
263 @end itemize
|
|
264
|
|
265 @node Other random projects, Compilers for other batch languages, X windows projects, Top
|
|
266 @chapter Other random projects
|
|
267
|
|
268 If you think of others that should be added, please
|
|
269 send them to gnu@@prep.ai.mit.edu.
|
|
270
|
|
271 @itemize
|
|
272
|
|
273 @item
|
|
274 [This seems to be being done:]
|
|
275 A program to convert Postscript to plain ASCII text. Ghostscript will
|
|
276 soon have a mode to output all the text strings in a document, each with
|
|
277 its coordinates. You could write a program to start with this output
|
|
278 and ``layout the page'' in ASCII. The program will be both easier and
|
|
279 more useful if you don't worry pedantically about how the output text
|
|
280 should be formatted. Instead, try to make it look reasonable as plain
|
|
281 ASCII.
|
|
282
|
|
283 @item
|
|
284 A program to convert compiled programs represented in OSF ANDF
|
|
285 (``Architecture Neutral Distribution Format'') into ANSI C.
|
|
286
|
|
287 @item
|
|
288 An imitation of Page Maker or Ventura Publisher.
|
|
289
|
|
290 @item
|
|
291 An imitation of @code{dbase2} or @code{dbase3} (How dbased!)
|
|
292
|
|
293 @item
|
|
294 A program to reformat Fortran programs in a way that is pretty.
|
|
295
|
|
296 @item
|
|
297 A bulletin board system. There are a few free ones, but they don't have
|
|
298 all the features that people want in such systems. It would make sense
|
|
299 to start with an existing one and add the other features.
|
|
300
|
|
301 @item
|
|
302 A general ledger program.
|
|
303
|
|
304 @item
|
|
305 A single command language that could be suitable for use in a shell, in
|
|
306 GDB for programming debugging commands, in a program like @code{awk}, in
|
|
307 a calculator like @code{bc}, and so on. The fact that all these
|
|
308 programs are similar but different in peculiar details is a great source
|
|
309 of confusion. We are stuck with maintaining compatibility with Unix in
|
|
310 our shell, @code{awk}, and @code{bc}, but nothing prevents us from
|
|
311 having alternative programs using our new, uniform language. This would
|
|
312 make GNU far better for new users.
|
|
313
|
|
314 @item
|
|
315 A program to typeset C code for printing.
|
|
316 For ideas on what to do, see the forthcoming book,
|
|
317
|
|
318 @display
|
|
319 Human Factors and Typography for More Readable Programs,
|
|
320 Ronald M. Baecker and Aaron Marcus,
|
|
321 Addison-Wesley, ISBN 0-201-10745-7
|
|
322 @end display
|
|
323
|
|
324 (I don't quite agree with a few of the details they propose.)
|
|
325
|
|
326 @item
|
|
327 Speech-generation programs (there is a program from Brown U that you
|
|
328 could improve).
|
|
329
|
|
330 @item
|
|
331 Speech-recognition programs (single-speaker, disconnected speech).
|
|
332
|
|
333 @item
|
|
334 Scientific mathematical subroutines, including clones of SPSS.
|
|
335
|
|
336 @item
|
|
337 Statistical tools.
|
|
338
|
|
339 @item
|
|
340 Software to replace card catalogues in libraries.
|
|
341
|
|
342 @item
|
|
343 Grammar and style checking programs.
|
|
344
|
|
345 @item
|
|
346 An implementation of the S language.
|
|
347
|
|
348 @item
|
|
349 A translator from Scheme to C.
|
|
350
|
|
351 @item
|
|
352 Optical character recognition programs; especially if suitable for
|
|
353 scanning documents with multiple fonts and capturing font info as well
|
|
354 as character codes. This may not be very difficult if you let it
|
|
355 @emph{train} on part of the individual document to be scanned, so as to
|
|
356 learn what fonts are in use in that document. We would particularly
|
|
357 like to scan the Century Dictionary, an unabridged dictionary now in the
|
|
358 public domain.
|
|
359
|
|
360 You don't need scanning hardware to work on OCR. We can send you
|
|
361 bitmaps you can use as test data.
|
|
362
|
|
363 @item
|
|
364 A program to scan a line drawing and convert it to Postscript.
|
|
365
|
|
366 @item
|
|
367 A program to recognize handwriting.
|
|
368
|
|
369 @item
|
|
370 A pen based interface.
|
|
371
|
|
372 @item
|
|
373 Software suitable for creating virtual reality user interfaces.
|
|
374
|
|
375 @item
|
|
376 CAD software, such as a vague imitation of Autocad.
|
|
377
|
|
378 @item
|
|
379 Software for displaying molecules.
|
|
380
|
|
381 @item
|
|
382 Software for comparing DNA sequences, and finding matches and
|
|
383 alignments.
|
|
384
|
|
385 @end itemize
|
|
386
|
|
387 @node Compilers for other batch languages, Games and recreations, Other random projects, Top
|
|
388 @chapter Compilers for other batch languages
|
|
389
|
|
390 Volunteers are needed to write parsers/front ends for languages such
|
|
391 as Algol 60, Algol 68, PL/I, or whatever, to be used with the
|
|
392 code generation phases of the GNU C compiler. (C++ is done, and
|
|
393 Ada, Fortran, Pascal and Modula are being worked on.)
|
|
394
|
|
395 @node Games and recreations, , Compilers for other batch languages, Top
|
|
396 @chapter Games and recreations
|
|
397
|
|
398 @itemize
|
|
399
|
|
400 @item
|
|
401 Video-oriented games should work with the X window system.
|
|
402
|
|
403 @item
|
|
404 Empire (there is a free version but it needs upgrading)
|
|
405
|
|
406 @item
|
|
407 Imitations of popular video games:
|
|
408
|
|
409 @itemize
|
|
410 @item
|
|
411 Space war, Asteroids, Pong, Columns.
|
|
412 @item
|
|
413 Defending cities from missiles.
|
|
414 @item
|
|
415 Plane shoots at lots of other planes.
|
|
416 @item
|
|
417 Wizard fights fanciful monster.
|
|
418 @item
|
|
419 A golf game.
|
|
420 @item
|
|
421 Program a robot by sticking building blocks together,
|
|
422 then watch it explore a world.
|
|
423 @item
|
|
424 Biomorph evolution (as in Scientific American).
|
|
425 @item
|
|
426 A program to display effects of moving at relativistic speeds.
|
|
427 @end itemize
|
|
428
|
|
429 @item
|
|
430 Intriguing screen-saver programs to make interesting pictures.
|
|
431 Other such programs that are simply entertaining to watch.
|
|
432 For example, an aquarium.
|
|
433
|
|
434 @end itemize
|
|
435
|
|
436 We do not need @code{rogue}, as we have @code{hack}.
|
|
437
|
|
438 @contents
|
|
439
|
|
440 @bye
|