TODO: call/cc broken with or with SCHEME_STACK, also in tinyscheme - major size optimisations - struct layout for both typical CISC and RISC cpus. - optional error messages. - optional error checking. - cell size reduced by not storing both float and int forms of a number, - major dependency optimisations (no stdio etc.) - faster and vastly simpler vector memory management (execution speed is roughly twice faster than tinyscheme when optimised for size, and 2.5 times faster when optimised for speed). - no need for consecutive cells - more compact and faster vectors. - resizable vectors (not exposed yet) - faster environment implementation, not hashed by name but by symbol address. - simpler cell memory management, only one block - much faster call stack implementation, fully supporting continuations, while greatly reducing cell thrashing, thus fewer gc's and overall much faster execution. - allow full 32 bit size range for strings and vectors. - made ports optional. - made error checking and error strings optional. - ripped out features: dynamic loading, nonstandard C targets. - fix numerous ISO C violations (mostly _ namespace). - fix numerous uninitialised value violations. - fix some bufer overflows (mostly relying on _sprintf terminating with 0). - fix numerous sign/truncation problems. - remove limit of 65535 args maximum. - move ~5kb opcode table into read-only segemnt, saves 5kb rss. - reduce ~5kb opcode table to 1.2kb. - subnormals are no longer flushed to zero in some comparisons. TODO: atom names starting with dot cannot currently be parsed due to a tinyscheme bug.