-
Move
tail-call?and similar private words to a new word list, e.g.compiler-tools-wordlist, accesible in acompiler-definitionscontext but not in atarget-definitionscontext. Or move the public words fromcompiler-wordlisttocompiler-wordlist. For example, alsomemory,t-,,initial-targetetc., should not be accesible during the compilation of the target, just in case. -
Make the data stack growing direction configurable.
-
Add
2literal,cliteral,xliteral. -
Make verbosity configurable.
-
Make the configuration directives homogenous and analog, in order to prevent name clashes, also with words like
onandoff, when they are used inside the target program.
-
Use the dea notation, borrowed from the lina Forth system.
-
Mark the stack comments of compiler words, to make it clear it’s the Gforth’s stack, not the target stack.
-
Rename
'?
-
Add macros to preserve the alternate
hl'register, which must be preserved in order to return to BASIC. -
Add flag to compile fast or slow versions of some words.
-
Rename
afterto its original nameaft; renamestepto its usual namenext. -
Factor
push-afromcount? -
Document the standard words used by the compiler.
-
Uniform the notation of the compilation data stack, e.g. "C:".
Remove consecutive push and pop, like in this case:
ld hl,00001h call _push_hl call _pop_hl ld a,l or h jp z,l9d39h
The source of that example is the following:
1 literal if
-
Fix execution of <src/test/test_dot.fs>.
-
Create the target word names in a specific word list?
-
Add alternative to
literalto pass values in registers instead of the stack, e.g.'A' >a emit-a, or just add the additional entry points and use assembly:'A' a ld#, emit-a. -
Move
compiler-wordlistbeforeassembler-wordlistincompiler-orderandtarget-order? -
Add pronounciation to word definitions.
-
Move
<markand similar words from the assembler to their own library files. -
Write
do. -
Remove unnecesary
compiler{andassembler{in library modules. -
Find a solution to compile numbers and strings without
literal,sliteral, etc. For example, a custom outer interpreter.
-
Document the target effect of
;in library modules:ret. -
Add words to parse and compile numbers, e.g.
h#,d#,b#,o#.
-
Factor
does> (dfa) @ h ldp#, push-hlfrom words created bycreator. -
Homogenize the documentation of compiler library words: "create a definition" → "create a compiler definition"; "when name is subsequently executed, [it compiles]". See
create,buffer:,variable, etc. -
Make the
/padcompiler constant configurable with a command line option. -
Make the
/hold-buffercompiler constant configurable with a command line option. -
Make
boot-hereoptional again: add the data stack init code and a jump to the latest definition.