1 |
root |
1.1 |
|
2 |
root |
1.5 |
TODO: call/cc broken with or with SCHEME_STACK, also in tinyscheme |
3 |
root |
1.6 |
TODO: fix .atom names |
4 |
|
|
TODO: |name|? (TOK_STRATOM) |
5 |
|
|
TODO: simpler cell memory management, only one block |
6 |
root |
1.9 |
TODO: proplists broken due to symbol not a pair anymore |
7 |
root |
1.11 |
TODO: UNNAMED_OPs have little reason to be in the opcode table? |
8 |
root |
1.15 |
TODO: (list->vector (string->list (string-copy "abc"))) fails miserably when repeated |
9 |
|
|
TODO: (vector-append #(1 2)) same |
10 |
root |
1.5 |
|
11 |
root |
1.1 |
- major size optimisations |
12 |
|
|
- struct layout for both typical CISC and RISC cpus. |
13 |
|
|
- optional error messages. |
14 |
|
|
- optional error checking. |
15 |
root |
1.3 |
- cell size reduced by not storing both float and int forms of a number, |
16 |
root |
1.1 |
- major dependency optimisations (no stdio etc.) |
17 |
root |
1.2 |
- faster and vastly simpler vector memory management (execution speed |
18 |
|
|
is roughly twice faster than tinyscheme when optimised for size, and 2.5 |
19 |
|
|
times faster when optimised for speed). |
20 |
root |
1.1 |
- no need for consecutive cells |
21 |
|
|
- more compact and faster vectors. |
22 |
root |
1.6 |
- resizable vectors (TODO: not exposed yet). |
23 |
root |
1.4 |
- faster environment implementation, not hashed by name but by symbol address. |
24 |
root |
1.6 |
- simpler and faster memory management (no need for sorted free lists). |
25 |
root |
1.1 |
- much faster call stack implementation, fully supporting continuations, |
26 |
|
|
while greatly reducing cell thrashing, thus fewer gc's and overall |
27 |
|
|
much faster execution. |
28 |
root |
1.10 |
- move caaaar etc. to C, which should effectively save some memory |
29 |
root |
1.11 |
(and should also be faster). |
30 |
root |
1.6 |
- allow full 32 bit size range for strings and vectors, where possible. |
31 |
root |
1.1 |
- made ports optional. |
32 |
|
|
- made error checking and error strings optional. |
33 |
root |
1.11 |
- implemented small-integer cache, reducing number of cells allocated. |
34 |
root |
1.1 |
- ripped out features: dynamic loading, nonstandard C targets. |
35 |
|
|
- fix numerous ISO C violations (mostly _ namespace). |
36 |
|
|
- fix numerous uninitialised value violations. |
37 |
root |
1.6 |
- fix some bufer overflows (mostly relying on _snprintf terminating with 0). |
38 |
root |
1.1 |
- fix numerous sign/truncation problems. |
39 |
|
|
- remove limit of 65535 args maximum. |
40 |
root |
1.6 |
- move ~6kb opcode table into read-only segemnt, saves 6kb rss. |
41 |
|
|
- reduce ~6kb opcode table to 1.2kb. |
42 |
root |
1.8 |
- symbols use one cell instead of two now. |
43 |
root |
1.1 |
- subnormals are no longer flushed to zero in some comparisons. |
44 |
root |
1.6 |
- scheme fix: gensym does not intern the symbol. |
45 |
root |
1.7 |
- scheme fix: properly support symbol names starting with '.' |
46 |
|
|
- scheme improvement: support |identifier| syntax. |
47 |
root |
1.9 |
- new procedure: gensym? |
48 |
root |
1.12 |
- removed unused 1kb linebuf from scheme context. |
49 |
root |
1.13 |
- abstract cell pointer types, to quickly experiment with different |
50 |
|
|
representations. |
51 |
root |
1.14 |
- use c99 rounding functions. |
52 |
root |
1.1 |
|