-
Notifications
You must be signed in to change notification settings - Fork 0
/
HISTORY.txt
108 lines (97 loc) · 2.76 KB
/
HISTORY.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
Version 0.3.5
26 Feburary 2022
Added:
- default build uses Boehm GC
- cleanup
Internals:
- new bootstrap interpreter
- minimal Scheme interpreter in C
- small standard library
Version 0.3.4
5 May 2022
Added:
- primitive record procedures
- records are now primitive types
- most record manipulation done through macros
- additional sequence manipulation
- sequences are no longer primitives
- implemented using records
Internals:
- simpler garbage collector
- separate expander pass
- module vs. module instantiation
- one module per file during runtime
- module instance every time a file is imported
- compiler to pseudoassembly
- translation to flat syntax
- optimization passes
- register allocation
- partial support for native function calling (more to come!!!)
Version 0.3.3
29 November 2021
Internal:
- file caching
- symbol tables and hash tables implemented with linked list buckets
- syntax objects are just wrappers on Minim objects
- tail calling via longjumps
- symbol interning
- symbol table lookup done by pointer comparison
Version 0.3.2
18 September 2021
Added:
- control: call/cc, case-lambda
- macros: with-syntax
- type: record
- other: list library, file I/O, string/number conversion
Internal:
- exit and errors implemented as jumps
- better macro system (closer to R6RS compliance)
- parser consumes from port object
Version 0.3.1
14 August 2021
Added:
- files organized as modules for exporting and importing symbols
- multiple value expressions
- characters (all R4RS procedures)
- additional string procedures
Internal:
- move many builtins to standard library
- move sequences to library
Removed:
- iterators
Version 0.3.0
27 July 2021
Added:
- quasiquoting/unquoting
- syntax macros with 'def-syntax'
- lazy evaluation with 'delay' and 'force'
- few missing procedures
Major internal changes:
- switched to a simple garbage collector
- tail call optimization
Fixes (as usual)
Version 0.2.2
17 March 2021
Added more list functions: accessors, maps, etc.
Expanded standard library
Better parser
Version 0.2.1
27 March 2021
Added many number/math functions: trigonometric, rounding, number theory
Added verbose arity, argument errors
Version 0.2.0
26 February 2021
Added file reading, errors with backtracing and file locations, and a small
standard library with five functions. Three new functions: 'error', 'foldl',
and 'foldr'.
Version 0.1.2
15 January 2021
Added vectors, mutable hash operators. Objects can be passed by
reference. Better parsing.
Version 0.1.1
23 December 2020
Added strings, hash-tables, sequences, printing, and equivalence.
Version 0.1.0
27 October 2020
First release. Minimal support for lists, pairs, numbers, lambdas,
symbols. Command line only (multi-line input). Only tested on Linux.