ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/microscheme/Changes
Revision: 1.20
Committed: Mon Dec 7 18:10:57 2015 UTC (8 years, 5 months ago) by root
Branch: MAIN
CVS Tags: HEAD
Changes since 1.19: +1 -0 lines
Log Message:
*** empty log message ***

File Contents

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