Skip to content

Latest commit

 

History

History
133 lines (96 loc) · 3.71 KB

TO-DO.adoc

File metadata and controls

133 lines (96 loc) · 3.71 KB

Sin Forth to-do list

2020-12-06

  • Update the documentation of the assembler.

2020-12-07

  • Move tail-call? and similar private words to a new word list, e.g. compiler-tools-wordlist, accesible in a compiler-definitions context but not in a target-definitions context. Or move the public words from compiler-wordlist to compiler-wordlist. For example, also memory, t-,, initial-target etc., 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.

2020-12-08

  • Make the configuration directives homogenous and analog, in order to prevent name clashes, also with words like on and off, when they are used inside the target program.

2020-12-09

  • Improve >z80-label to replace "-" with "_" or "minus" depending on the name.

2020-12-10

  • 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 '?

2020-12-11

  • Use shorter names for literal, 2literal, cliteral, xliteral, sliteral.

2020-12-24

  • 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.

2020-12-25

  • Rename after to its original name aft; rename step to its usual name next.

  • Factor push-a from count?

  • Document the standard words used by the compiler.

  • Uniform the notation of the compilation data stack, e.g. "C:".

2020-12-26

  • Make cr a deferred word.

2023-04-21

  • Build tests also with apenwarr/redo.

2023-04-25

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>.

2023-04-26

  • Create the target word names in a specific word list?

  • Add alternative to literal to 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-wordlist before assembler-wordlist in compiler-order and target-order?

  • Add pronounciation to word definitions.

  • Move <mark and similar words from the assembler to their own library files.

  • Write do.

  • Remove unnecesary compiler{ and assembler{ in library modules.

  • Find a solution to compile numbers and strings without literal, sliteral, etc. For example, a custom outer interpreter.

2023-04-27

  • Confirm no module is included twice because of the way require checks the paths.

2023-04-29

  • Document the target effect of ; in library modules: ret.

  • Add words to parse and compile numbers, e.g. h#, d#, b#, o#.

2023-04-30

  • Factor does> (dfa) @ h ldp#, push-hl from words created by creator.

  • 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 /pad compiler constant configurable with a command line option.

  • Make the /hold-buffer compiler constant configurable with a command line option.

  • Make boot-here optional again: add the data stack init code and a jump to the latest definition.