-
Notifications
You must be signed in to change notification settings - Fork 2
/
ToDo
173 lines (154 loc) · 6.92 KB
/
ToDo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
-*- RoadMap for gforth 1.0 -*-
ABGO Anton, Bernd, Gerald, Others welcome! * = work in progress, x = done, d = dropped
B [x] Multithreading API
B [x] Documentation
A [ ] Documentation review
G [ ] Examples
B [x] Save images that contain C bindings
G [x] Interface files for .h-files; build on install Port typical C-Libraries like stdio
G [x]*Allow for `#?include (c/)?stdio` Same structure as in C -> supported by posix repo
G [x] Hinweis auf SWIG für das C-interface Link auf https://github.com/GeraldWodni/posix
G [ ] Include posix in release (#include or friends?)
A [ ] Recognizer Documentation & Examples
A [x] simplify API
B [x] examples
AB [x] Documentation in manual
ABGO [ ] Documentation for Undocumented features
B [ ]*Document so far, that other programmers can understand the code and complete the documentation
A [d] Search changelogs for features
A [x] Document what is stable and what is not
AB [x] "IDE" locate, view, where & edit
[x] help or doc - get documentation of word
B [x] help for recognizer
B [x] locate of recognized thing
G [x] Website manual - doc/crossdoc.fd doc/doc.fd doc/gforth.texi.in|grep doc- doc/gforth.txt
B [x] Add tex-section support
A [x] Add documentation explaining help so that "help help" yields it
A [x] where: interaction with editors - g can be used
B [x] implement ANSI control sequences in a way that gl-terminal can emulate them easily
B [x] implement ANSI control sequences in GL terminal
B [x] Handle long lines properly in AFTER-L
AB [x] switch between where or backtrace results with left and right keys
B [x] version comparison 001.000.000 -> upgrade path: 000.007.009
G [ ]*theforth.net - client: look for local version or use global version
BG [x]*SWIG: SWIG-forth rename as proper fork, create docker and flatpak
G [x]*find out why GLforth stopped working
G [x] better vim support
A [ ] changelog
A [ ] news-file
A [ ] update this ToDo file
BG [x]*implement smart .s "..."
AB [x]*~~ uses ... and prints floating stack
B [x] compare-image warnings überprüfen
-*- RoadMap for gforth post 1.0 -*-
B [d] (Dropped) Multithreading: Use sections to allow compilation in every threading
ABG [ ] fork-marker use fork instead of classic marker
AB [x] marker für sections
ABG [ ] bin-utils disassembler
AB [ ]*documented view>* (internal words) in IDE
AB [x] locate of nested recognizers
B [ ] print information about recognizer
A [x] Gforth words are documented with release
G [ ] Klaut
AB [ ] sections
A [x] locals in sections
B [ ] header vtables in sections for better performance
ABG [ ] access bitfields in C
G [ ] scoping for structures as values
G [ ] for SWIG-forth: use mask-of and shift-of
G [ ] for SWIG (new version): native support with getter and setter
G [ ]*Call everything (Edinburgh) c-interface
A [ ] stack depth checker
A [ ] formalize stack effect of words
AB [x] "IDE" locate, view, where & edit
A [ ]*backtrace os-commandline - saving backtraces
-*- outline -*-
This file describes all the things left to do on GNU Forth. The 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 right of
the topic. If you have completed the work, remove the topic.
This an emacs outline. Use '*' to create topics.
* "DOS" Distribution
eventually convert all text files LF -> CR LF
check on 8.3 filenames?!
*The Engine
**measure the effect of some variations on different machines:
direct/indirect, NEXT splitting, keeping the TOSses in variables
**make it easy to put the right variation for each processor into the
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
Add the remaining words
*Run-time System
**Gender-independent image file format and loader
**Stack Checking using the MMU where the OS makes it possible.
*Porting/Portability
** Machines/OSs
VMS (VAX,AXP)
DOS 8088 (16-bit or 32-bit? Note: there are no far pointers in gforth,
so 16-bit means 64k max.)
Windows
OS/2
Mac
Atari
Amiga
Use gcc-generated assembly on machines without gcc, but with
processors supported by gcc
*Foreign Language Interface
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
Stuart Ramsden is doing a bit here.
**FORTRAN
**C++
*Windows and Graphics
**Ask Brian Dunn and Mike Hore for their OS-independent interface
**use the Foreign Language Interface to make X-Windows support
*Program Development Environment
Issues: Convenience, portability across plattforms, compatibility with
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
extend or complement ans-report.fs to provide 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.
*Documentation (Neal Crook, [email protected] is working on this)
A texinfo file
add more about internals (c primitives, creation of engine, etc.)
**glossaries of all wordsets.
*** Inclusion of stack comments, glossary comments, and wordset comments
in all source files.
* Distribution and Announcements
** Write articles for (general-purpose) magazines
-----
Authors: Anton Ertl, Gerald Wodni, Bernd Paysan, Jens Wilke, Neal Crook
Copyright (C) 1995,1996,1997,1999,2003,2007,2016,2017,2018,2019,2020,2021,2022 Free Software Foundation, Inc.
This file is part of Gforth.
Gforth is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 3
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.#See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.