The code is a little tidier now. I created an object to act as a proxy to the file system and the shell, and converted the interpreter to delegate to that object. This means I should be able to test the interpreter without it trying to exit the test runner, which, maybe Lunit can stop those shenanigans, but I'd much rather just not bother. If I can cut this off before it needs the tooling to intervene, I might as well.
I fixed some errors that I introduced in the rewrite, so now the majority of this stuff basically works.
- The remainder of the test coverage
- General test mocks for the host system abstraction
- Figuring out what documentation should look like
- And whether it's compatible with my habit of returning functions instead of tables from modules.
- Doing the challenges on a branch.
Anyway, that's that for now.