11# Todo
22
3- Last update: 2017-11-19
3+ Last update: 2018-03-11
44
55
66## Compiler
77
8+ - [ ] Manage source locations in compiler and generated code and include source locations in error messages
9+ - [ ] Optimize letrec; only use variables if bindings are mutable or if there is a forward reference.
10+ - [ ] Figure out that references to ` define ` , ` define-values ` , ` unquote ` , etc. are referring to the right
11+ syntax/definitions; right now, there are checks only for the definition to happen at the top-level in an
12+ immutable fashion
13+ - [ ] Treat define-values like define in compiler (wrt. internal definitions)
14+ - [ ] ` #; ` comments (datum comments) not correctly working
815- [X] Optimization/checkpointing framework
916- [X] Use values instead of variables for all immutable bindings (do this by compiling
1017 forms with bindings twice, if the first run shows that a binding is mutable)
11- - [ ] Optimize letrec; only use variables if bindings are mutable or if there is a forward
12- reference.
1318- [X] Support (define ...) in control flow special forms
1419- [X] Refactor creation of compiler; checkpointer needs to be always passed explicitly
1520- [X] Support compiled system functions
1621- [X] Support tail patterns in ` syntax-rules `
17- - [X] Within library definitions, support: ` include ` , ` include-ci ` ,
18- ` include-library-declarations ` , ` cond-expand `
22+ - [X] Within library definitions, support: ` include ` , ` include-ci ` , ` include-library-declarations ` , ` cond-expand `
1923- [X] Support ` define-values `
2024- [X] Support ` cond-expand `
2125- [X] Support ` include-ci `
2226- [X] Support features mechanism
2327- [X] Fix bug preventing to nest definitions three or more times
2428
29+
2530## Runtime
2631
2732- [ ] Go through procedures that call back into the VM to check that all expressions are
2833 tracked by the managed object pool
29- - [ ] Redesign error data model
34+ - [X ] Redesign error data model
3035- [ ] Profile virtual machine
3136- [X] Implement new primitive procedure type that returns closures for execution instead
3237 of results
@@ -39,6 +44,8 @@ Last update: 2017-11-19
3944
4045## Library
4146
47+ - [ ] Reimplement records: to improve performance, to use make-type, to make them extensible
48+ - [ ] Record type checks when record accessors are called
4249- [X] Implement text + binary ports based on the R7RS standard
4350- [X] Implement bytevector library based on the R7RS standard
4451- [X] Implement hash table library based on the R6RS standard
0 commit comments