version 1.1, 1994/02/11 16:30:45
|
version 1.6, 1995/11/24 18:05:33
|
Line 1
|
Line 1
|
This file describes all the things left to do on ANSI figForth. The |
-*- outline -*- |
list is not complete, so you should add topics you miss or refine |
|
existing topics. If you are working on a topic, add your name to the |
This file describes all the things left to do on GNU Forth. The list |
right of the topic. If you have completed the work, remove the topic. |
is not complete, so you should add topics you miss or refine existing |
|
topics. If you are working on a topic, add your name to the right of |
|
the topic. If you have completed the work, remove the topic. |
|
|
This an emacs outline. Use '*' to create topics. |
This an emacs outline. Use '*' to create topics. |
|
|
Line 9 This an emacs outline. Use '*' to create
|
Line 11 This an emacs outline. Use '*' to create
|
**measure the effect of some variations on different machines: |
**measure the effect of some variations on different machines: |
direct/indirect, NEXT splitting, keeping the TOSses in variables |
direct/indirect, NEXT splitting, keeping the TOSses in variables |
**make it easy to put the right variation for each processor into the |
**make it easy to put the right variation for each processor into the |
configuration. |
configuration. I.e., on installation all combinations of options |
|
should be measured and the fastest chosen. Knowing OS and architecture |
|
is not enough, the best options depend more on the processor and the |
|
compiler version. |
|
|
* ANSI Forth |
* ANSI Forth |
**Core and Core Ext |
Add the remaining words |
*** high-level words |
|
**Other Word Sets |
|
|
|
*Run-time System |
*Run-time System |
**Gender-independent image file format and loader |
**Gender-independent image file format and loader |
**Memory Management |
**Stack Checking using the MMU where the OS makes it possible. |
**Stack Checking |
|
On most systems we could use the MMU (OS dependent). |
|
|
|
*Porting/Portability |
*Porting/Portability |
** Machines/OSs |
** Machines/OSs |
UNIX (all machines supported by gcc) |
VMS (VAX,AXP) |
VMS (Vax) |
DOS 8088 (16-bit or 32-bit? Note: there are no far pointers in gforth, |
DOS Extender, 386sx and up |
so 16-bit means 64k max.) |
DOS 8088 (16-bit or 32-bit?) |
|
Windows |
Windows |
OS/2 |
OS/2 |
Mac |
Mac |
Atari |
Atari |
Amiga |
Amiga |
Use gcc-generated assembly on machines without gcc |
Use gcc-generated assembly on machines without gcc, but with |
|
processors supported by gcc |
*Locals |
|
**Concept |
|
**Implementation |
|
|
|
*Postponing anton |
|
|
|
*Foreign Language Interface |
*Foreign Language Interface |
**Concept anton |
If anybody wants to do this, take a look at |
|
ftp://ftp.complang.tuwien.ac.at/pub/forth/foreign.ds |
|
Some of the problems are discussed there, |
**C |
**C |
|
Stuart Ramsden is doing a bit here. |
**FORTRAN |
**FORTRAN |
**C++ |
**C++ |
|
|
*Windows and Graphics |
*Windows and Graphics |
Ask Brian Dunn and Mike Hore for their OS-independent interface |
**Ask Brian Dunn and Mike Hore for their OS-independent interface |
|
**use the Foreign Language Interface to make X-Windows support |
|
|
*Program Development Environment |
*Program Development Environment |
Issues: Convenience, portability across plattforms, compatibility with |
Issues: Convenience, portability across plattforms, compatibility with |
existing tools (Emacs, F-PC) |
existing tools (Emacs, F-PC) |
|
** Decompiler and Debugger |
|
need debugging |
|
** Profiling |
|
The way this (and perhaps also debugging features) could work is this: |
|
On compilation all code fields are remembered somewhere (using a |
|
special hook like etags). If the user now decides to profile part of |
|
the code, the corresponding code fields are replaced by fields |
|
pointing to code that performs the measurement (or whatever else is |
|
intended). |
|
** emacs support |
|
can be improved |
**prefix file generator |
**prefix file generator |
A tool for generating a prefix file for a program that explains in |
A tool for generating a prefix file for a program that explains in |
what way the program conforms to ANSI and contains Forth definitions |
what way the program conforms to ANSI (i.e., which wordsets are used) |
for the simple non-ANSI words. |
and contains Forth definitions for the simple non-ANSI words. |
|
** rightcase |
|
A tool that converts all uses of words in a source text to the exact |
|
case of the definition. There's something like this out there on the |
|
net (Joerg Plewe has posted a reference), but I think a program that |
|
wires itself into the compiler (like etags.fs) is harder to fool by |
|
search order tricks etc. EVALUATE is a problem. |
|
|
*Object-Oriented Extensions |
*Object-Oriented Extensions |
John Hayes (?) has a portable package |
John Hayes has a portable package |
Ask Phil Burke (phil@ntg.com), if he wants to contribute ODE |
|
|
|
*Documentation |
*Documentation |
A texinfo file |
A texinfo file |
**glossaries of all wordsets. |
**glossaries of all wordsets. |
***Tool to generate glossaries benschop |
*** Inclusion of stack comments, glossary comments, and wordset comments |
***Inclusion of glossary comments in all source files. |
in all source files. |
|
|
*Distribution and Announcements |
* Distribution and Announcements |
** Ask the FSF, if they want to distribute it |
|
** Write articles for (general-purpose) magazines |
** Write articles for (general-purpose) magazines |