1 |
root |
1.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 from 24 to 8 bytes on amd64 (at the cost |
7 |
|
|
of speed and code size hit). |
8 |
|
|
- major dependency optimisations (no stdio etc.) |
9 |
root |
1.2 |
- faster and vastly simpler vector memory management (execution speed |
10 |
|
|
is roughly twice faster than tinyscheme when optimised for size, and 2.5 |
11 |
|
|
times faster when optimised for speed). |
12 |
root |
1.1 |
- no need for consecutive cells |
13 |
|
|
- more compact and faster vectors. |
14 |
|
|
- resizable vectors (TODO) |
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 |
|
|
|