Last update: 2020-05-01
- Manage source locations in compiler and generated code and include source locations in error messages
- Optimize letrec; only use variables if bindings are mutable or if there is a forward reference.
- Figure out that references to
define
,define-values
,unquote
, etc. are referring to the right syntax/definitions; right now, there are checks only for the definition to happen at the top-level in an immutable fashion - Treat define-values like define in compiler (wrt. internal definitions)
-
#;
comments (datum comments) not correctly working - Optimization/checkpointing framework
- Use values instead of variables for all immutable bindings (do this by compiling forms with bindings twice, if the first run shows that a binding is mutable)
- Support (define ...) in control flow special forms
- Refactor creation of compiler; checkpointer needs to be always passed explicitly
- Support compiled system functions
- Support tail patterns in
syntax-rules
- Within library definitions, support:
include
,include-ci
,include-library-declarations
,cond-expand
- Support
define-values
- Support
cond-expand
- Support
include-ci
- Support features mechanism
- Fix bug preventing to nest definitions three or more times
- Go through procedures that call back into the VM to check that all expressions are tracked by the managed object pool
- Redesign error data model
- Profile virtual machine
- Implement new primitive procedure type that returns closures for execution instead of results
- Evaluate what it takes to support
call/cc
- Implement full support for
call/cc
- Implement full support for
dynamic-wind
- Register parameter hash map (incl. mutable parts of the data structure, if needed) such that it's managed by the managed object pool
- Reimplement records: to improve performance, to use make-type, to make them extensible
- Record type checks when record accessors are called
- Implement text + binary ports based on the R7RS standard
- Implement bytevector library based on the R7RS standard
- Implement hash table library based on the R6RS standard
- Implement record library based on the R7RS standard
- Implement delay-force; provide full support for R7RS delayed evaluation primitives
- Implement libraries based on the R7RS standard
- Support mutable strings
- Build regression testing framework
- Add simple regression tests
- Add unit tests
- Document architecture of framework
- Document components of virtual machine
- Document bytecode instructions
- Document supported Scheme procedures and special forms