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