| 1 : |
anton
|
1.2
|
-*- outline -*- |
| 2 : |
anton
|
1.1
|
|
| 3 : |
anton
|
1.2
|
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. |
| 7 : |
|
|
|
| 8 : |
anton
|
1.1
|
This an emacs outline. Use '*' to create topics. |
| 9 : |
|
|
|
| 10 : |
jwilke
|
1.10
|
* "DOS" Distribution |
| 11 : |
|
|
eventually convert all text files LF -> CR LF |
| 12 : |
|
|
check on 8.3 filenames?! |
| 13 : |
|
|
|
| 14 : |
anton
|
1.1
|
*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 : |
anton
|
1.2
|
configuration. I.e., on installation all combinations of options |
| 19 : |
|
|
should be measured and the fastest chosen. Knowing OS and architecture |
| 20 : |
anton
|
1.4
|
is not enough, the best options depend more on the processor and the |
| 21 : |
anton
|
1.2
|
compiler version. |
| 22 : |
anton
|
1.1
|
|
| 23 : |
|
|
* ANSI Forth |
| 24 : |
anton
|
1.2
|
Add the remaining words |
| 25 : |
|
|
|
| 26 : |
anton
|
1.1
|
*Run-time System |
| 27 : |
|
|
**Gender-independent image file format and loader |
| 28 : |
anton
|
1.2
|
**Stack Checking using the MMU where the OS makes it possible. |
| 29 : |
anton
|
1.1
|
|
| 30 : |
|
|
*Porting/Portability |
| 31 : |
|
|
** Machines/OSs |
| 32 : |
anton
|
1.2
|
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.) |
| 35 : |
anton
|
1.1
|
Windows |
| 36 : |
|
|
OS/2 |
| 37 : |
|
|
Mac |
| 38 : |
|
|
Atari |
| 39 : |
|
|
Amiga |
| 40 : |
anton
|
1.2
|
Use gcc-generated assembly on machines without gcc, but with |
| 41 : |
|
|
processors supported by gcc |
| 42 : |
anton
|
1.1
|
|
| 43 : |
|
|
*Foreign Language Interface |
| 44 : |
anton
|
1.4
|
If anybody wants to do this, take a look at |
| 45 : |
|
|
ftp://ftp.complang.tuwien.ac.at/pub/forth/foreign.ds |
| 46 : |
|
|
Some of the problems are discussed there, |
| 47 : |
anton
|
1.1
|
**C |
| 48 : |
anton
|
1.4
|
Stuart Ramsden is doing a bit here. |
| 49 : |
anton
|
1.1
|
**FORTRAN |
| 50 : |
|
|
**C++ |
| 51 : |
|
|
|
| 52 : |
|
|
*Windows and Graphics |
| 53 : |
anton
|
1.2
|
**Ask Brian Dunn and Mike Hore for their OS-independent interface |
| 54 : |
|
|
**use the Foreign Language Interface to make X-Windows support |
| 55 : |
anton
|
1.1
|
|
| 56 : |
|
|
*Program Development Environment |
| 57 : |
|
|
Issues: Convenience, portability across plattforms, compatibility with |
| 58 : |
|
|
existing tools (Emacs, F-PC) |
| 59 : |
anton
|
1.2
|
** Decompiler and Debugger |
| 60 : |
|
|
need debugging |
| 61 : |
anton
|
1.4
|
** 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 |
| 67 : |
|
|
intended). |
| 68 : |
anton
|
1.2
|
** emacs support |
| 69 : |
|
|
can be improved |
| 70 : |
anton
|
1.1
|
**prefix file generator |
| 71 : |
anton
|
1.7
|
extend or complement ans-report.fs to provide Forth definitions for |
| 72 : |
|
|
the simple non-ANSI words. |
| 73 : |
anton
|
1.2
|
** 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 : |
anton
|
1.6
|
search order tricks etc. EVALUATE is a problem. |
| 79 : |
anton
|
1.1
|
|
| 80 : |
crook
|
1.9
|
*Documentation (Neal Crook, nac@forth.org is working on this) |
| 81 : |
anton
|
1.1
|
A texinfo file |
| 82 : |
jwilke
|
1.10
|
add more about internals (c primitives, creation of engine, etc.) |
| 83 : |
anton
|
1.1
|
**glossaries of all wordsets. |
| 84 : |
anton
|
1.2
|
*** Inclusion of stack comments, glossary comments, and wordset comments |
| 85 : |
|
|
in all source files. |
| 86 : |
anton
|
1.1
|
|
| 87 : |
anton
|
1.2
|
* Distribution and Announcements |
| 88 : |
anton
|
1.1
|
** Write articles for (general-purpose) magazines |