The next thing to work on is automated testing. I have an existing test suite (tests/tests.txt), but there's much work to be done:
- Port it to Scheme (right now it's written in shorthand that is parsed by a Python script--don't ask)
- Get it to run against Guile and mzscheme (as a sanity check)
- Get it running against (command line js + Try Scheme 0.1.1). All the tests should pass.
- Get it running under (tryschemec + js + Try Scheme devel) and fix all the bugs this reveals.
Making a testrunner is nontrivial. The R5RS toplevel is not the same as the body of a lambda. To test toplevel features (like toplevel define, begin, and define-syntax) you really do have to be at toplevel; or else use (eval) and delve into implementation-specific details of how environments work. Hrm.