It's been so long since I worked on it, I hardly remember what was left. I think module/language/lua/notes.org covers most of it.
The main tasks would be:
- Standard library compliance (the existing modules are missing some functions, and there is no debug/coroutine module)
- module function
- Multiple values and variable arguments. Lua expressions can return multiple values. Lua assignments can involve multiple values in confusing ways. (This is very easy for the Lua runtime to handle, but as I recall bolting it onto tree-il was frustrating me quite a bit).
- Fix the REPL. Scheme is all about expressions, Lua is all about statements. Somehow, despite writing a Lua implementation, I never realized that you evaluate Lua expressions in the REPL by typing "return true" or "= true" for short. Typing a normal expression, such as "true", is an error. And I don't know whether you can convince the Guile REPL to play nice with that worldview.
- I was personally planning to pretty much rewrite parser.scm and compile-tree-il.scm as I wasn't happy with the length or complexity of them. I would think the parser could be rewritten using a parser generator, and the code generator could be simplified quite a bit (look at ecmascript).
- Performance improvements. Never did get around to benchmarking it.