1: -*- outline -*-
3: This file describes all the things left to do on GNU Forth. The list
4: is not complete, so you should add topics you miss or refine existing
5: topics. If you are working on a topic, add your name to the right of
6: the topic. If you have completed the work, remove the topic.
8: This an emacs outline. Use '*' to create topics.
10: * "DOS" Distribution
11: eventually convert all text files LF -> CR LF
12: check on 8.3 filenames?!
14: *The Engine
15: **measure the effect of some variations on different machines:
16: direct/indirect, NEXT splitting, keeping the TOSses in variables
17: **make it easy to put the right variation for each processor into the
18: configuration. I.e., on installation all combinations of options
19: should be measured and the fastest chosen. Knowing OS and architecture
20: is not enough, the best options depend more on the processor and the
21: compiler version.
23: * ANSI Forth
24: Add the remaining words
26: *Run-time System
27: **Gender-independent image file format and loader
28: **Stack Checking using the MMU where the OS makes it possible.
31: ** Machines/OSs
32: VMS (VAX,AXP)
33: DOS 8088 (16-bit or 32-bit? Note: there are no far pointers in gforth,
34: so 16-bit means 64k max.)
40: Use gcc-generated assembly on machines without gcc, but with
41: processors supported by gcc
43: *Foreign Language Interface
44: If anybody wants to do this, take a look at
46: Some of the problems are discussed there,
48: Stuart Ramsden is doing a bit here.
52: *Windows and Graphics
53: **Ask Brian Dunn and Mike Hore for their OS-independent interface
54: **use the Foreign Language Interface to make X-Windows support
56: *Program Development Environment
57: Issues: Convenience, portability across plattforms, compatibility with
58: existing tools (Emacs, F-PC)
59: ** Decompiler and Debugger
60: need debugging
61: ** Profiling
62: The way this (and perhaps also debugging features) could work is this:
63: On compilation all code fields are remembered somewhere (using a
64: special hook like etags). If the user now decides to profile part of
65: the code, the corresponding code fields are replaced by fields
66: pointing to code that performs the measurement (or whatever else is
68: ** emacs support
69: can be improved
70: **prefix file generator
71: extend or complement ans-report.fs to provide Forth definitions for
72: the simple non-ANSI words.
73: ** rightcase
74: A tool that converts all uses of words in a source text to the exact
75: case of the definition. There's something like this out there on the
76: net (Joerg Plewe has posted a reference), but I think a program that
77: wires itself into the compiler (like etags.fs) is harder to fool by
78: search order tricks etc. EVALUATE is a problem.
80: *Documentation (Neal Crook, firstname.lastname@example.org is working on this)
81: A texinfo file
82: add more about internals (c primitives, creation of engine, etc.)
83: **glossaries of all wordsets.
84: *** Inclusion of stack comments, glossary comments, and wordset comments
85: in all source files.
87: * Distribution and Announcements
88: ** Write articles for (general-purpose) magazines
91: Copyright (C) 1995,1996,1997,1999,2003 Free Software Foundation, Inc.
93: This file is part of Gforth.
95: Gforth is free software; you can redistribute it and/or
96: modify it under the terms of the GNU General Public License
97: as published by the Free Software Foundation, either version 3
98: of the License, or (at your option) any later version.
100: This program is distributed in the hope that it will be useful,
101: but WITHOUT ANY WARRANTY; without even the implied warranty of
102: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.#See the
103: GNU General Public License for more details.
105: You should have received a copy of the GNU General Public License
106: along with this program. If not, see http://www.gnu.org/licenses/.