ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/microscheme/Changes
Revision: 1.19
Committed: Wed Dec 2 12:16:24 2015 UTC (8 years, 6 months ago) by root
Branch: MAIN
Changes since 1.18: +4 -2 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
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.16 - new procedure: gensym?
45 root 1.6 - scheme fix: gensym does not intern the symbol.
46 root 1.7 - scheme fix: properly support symbol names starting with '.'
47     - scheme improvement: support |identifier| syntax.
48 root 1.19 - numerous R7RS improvements:
49     - many added procedures.
50     - aligned existing procedures.
51     - multiline string (\whitespace) parsing.
52 root 1.12 - removed unused 1kb linebuf from scheme context.
53 root 1.13 - abstract cell pointer types, to quickly experiment with different
54     representations.
55 root 1.14 - use c99 rounding functions.
56 root 1.1