ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/microscheme/Changes
(Generate patch)

Comparing cvsroot/microscheme/Changes (file contents):
Revision 1.5 by root, Sat Nov 28 22:14:49 2015 UTC vs.
Revision 1.6 by root, Sun Nov 29 00:02:21 2015 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines