Skip to content
Bushmills edited this page Jan 1, 2022 · 31 revisions
  • concepts:
    (optional) forward references
    not exactly a purely incremental compiler

  • specific words where deviating from ANS:

    • <#
      expects single, not double.
      yoda doesn't know doubles and has no support for those
    • / mod /mod are truncating, not floored
    • query
      actually not sure
    • evaluate
      actually not sure
    • abort, ?abort
      most likely somewhat different
    • quit
      can't do a "real" warm start. It just - optionally - empties stacks, then nests to a new instance of quit. Not a problem as long as it loops in its infinite loop, but you may want to avoid tapping ctrl-c thousands of times).
    • words
      without user defined vocabularies, words can't display words in only the context vocabulary, as there is none. "context vocabularies" do exist, but not as named vocabularies, made context by executing them. Therefore will words just display words in all populated vocabularies (4 exist, but not all of them are necessarily populated), each vocabulary under a header displaying its purpose: stateless, interpret, compile and unresolved.
    • r> >r
      return stack is not used to hold return addresses. yoda won't complain if "return stack" is used in an unbalanced way.
    • parse ( c -- ) ( string: -- $1 )
      parses input for delimiting character with ASCII c and places parsed portion as top item on string stack
    • convert ( x -- ) ( string: -- $1 )
      converts numeric x to string, pushed to string stack

Clone this wiki locally