sjack
2024-07-13 14:38:45 UTC
Went whole hog on Fig Forth vocabularies. FORTH contains mostly just
the released FigForth words. TOAD is main branch for toad works
(my customization's). OP is for operator words that don't normally
get compiled .e.g. short cut aliases. WRK is for developing new
words, running jobs, demos and tests.
Word sets that branch from TOAD (or anywhere) have their private
words in their private vocabularies. The word NIX was defined to
FORGET and fix VOC-link chain that may break and CONTEXT of remaining
vocabularies should a vocabulary be in the forgotten path and also
free allocated buffers in buffer links that no longer exist in the
dictionary. MARKER uses NIX and ANEW uses MARKER.
FORGET was left its simple self for times when forgetting
and it's known vocabularies (and allocated buffers) are not involved,
for example:
0 VALUE FOO ' FOO FORGET FOO CONSTANT DOVAL
It's no longer KISS:
OP DEFS \ See operator words (will want to see LSW)
TOAD LSW \ List words only in TOAD context, excludes
\ the FORTH words that TOAD links into.
WRK LSW \ List words only in WRK context, and ditto
( See why just OP TOAD LSW doesn't work? )
Using vocabularies to their fullest which adds a little complexity
may not be needed but the design was there and I wanted to see it
work and it's been simple enough so I'll just keep it.
the released FigForth words. TOAD is main branch for toad works
(my customization's). OP is for operator words that don't normally
get compiled .e.g. short cut aliases. WRK is for developing new
words, running jobs, demos and tests.
Word sets that branch from TOAD (or anywhere) have their private
words in their private vocabularies. The word NIX was defined to
FORGET and fix VOC-link chain that may break and CONTEXT of remaining
vocabularies should a vocabulary be in the forgotten path and also
free allocated buffers in buffer links that no longer exist in the
dictionary. MARKER uses NIX and ANEW uses MARKER.
FORGET was left its simple self for times when forgetting
and it's known vocabularies (and allocated buffers) are not involved,
for example:
0 VALUE FOO ' FOO FORGET FOO CONSTANT DOVAL
It's no longer KISS:
OP DEFS \ See operator words (will want to see LSW)
TOAD LSW \ List words only in TOAD context, excludes
\ the FORTH words that TOAD links into.
WRK LSW \ List words only in WRK context, and ditto
( See why just OP TOAD LSW doesn't work? )
Using vocabularies to their fullest which adds a little complexity
may not be needed but the design was there and I wanted to see it
work and it's been simple enough so I'll just keep it.
--
me
me