An R7RS implementation on the top of gambit scheme, and largely influenced by chibi-scheme and riaxpander.
Currently a test suite(tests/r5rs-tests.scm) from chibi-scheme is fully passed with small modification.
Hygienic Macro System (define-syntax, let-syntax, letrec-syntax)
Implemented with syntactic-closure. syntax-rules is supported with an modified chibi's version.
R7RS module system support.
Error message improvement
Currently only internal core forms have proper location information for erros. Should add these for macro expanding?
Proper local variable naming
All local variable will compiles into a form of "name.location-number", this could be improved.
let-syntax, letrec-syntax lacks support for moving internal definition to proper location.
(let () (+ 1 2) (let-syntax () (define x 100)) x)
((lambda () (+ 1 2) (define x 100) x))
which will report ill placed define error.
A variable or macro transformer.
A syntactic closure which has a