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