Restructure Makefile to add automated tests.
Remove build-id section.
Set up the data segment.
COLD -> QUIT.
Much rearrangement of the sections to improve
overall memory usage.
Don't align code.
Simplify DUP.
Simplify ?DUP.
Comparison operations use set<cond> instead of jumps.
Added C@C! and CMOVE.
Removed _X, _Y, _Z.
Make return_stack into a separate symbol for bottom
of the stack, so it appears in disassembly. New
symbol return_stack_top is R0.
Added SYS_BRK.
Simplify RDROP.
WORD's and EMIT's buffers are now named.
SNUMBER -> NUMBER, now far more powerful (can handle
any number base and negative numbers correctly, and
comes with a test suite).
CREATE now no longer does an implicit WORD, but gets
the name from the string at top of stack, allowing
it to create anonymous words (see :NONAME).
Added HIDE word.
Removed INTERPRETER, added INTERPRET.
Added PARSE ERROR with context in the INTERPRET function.
Added SYSCALL0, 1, 2, 3.
Added explicit initialisation of the data segment.
Added UNLESS.
Added C,
WORDS now completely omits HIDDEN words.
Generalise CFA> to work with any code/data pointer.
Added execution tokens, EXECUTE, :NONAME, ['].
Added exceptions, CATCH, THROW, ABORT.
Added PRINT-STACK-TRACE.
Added CSTRING.
Removed STRNCMP.
Added standard file and syscall words.
Added UNUSED, MORECORE.
Allow welcome message to be disabled (particularly
during automated tests).
Multiple documentation improvements.
13 files changed: