Clean up the expander a bit
Currently the expander is full of hooks and hacks, mostly for maintaining the line number database and various syntactic environments. It would be nice if we can clean things up a bit. A few ideas:
##sys#syntax-context and ##sys#syntax-error/context are weird and can maybe be cleaned up if we can make ##sys#check-syntax work better with line number info.
##sys#syntax-error-culprit seems to be unnecessary, because while expanding ##sys#check-syntax should have access to the input form already?
##sys#line-number-database is defined in expander, but only really used in core.scm (except for getting the line number)
- The new
expansion-result-hook is yet another hook, and can perhaps be combined with the previous two.
- The special-cased hack in
##sys#canonicalize-body that prevents expansion of import and hands back control to the compiler after expansion of ##core#module) (in a currently pending patch) needs to die. No clue yet how to do this...
Getting ready for 5.1, moving tickets which won't make it in to 5.2.