I'm approaching parity with the Lua version of the Crafting Interpreters stuff, which means that I'm going to have to slow down soon. First, though, I have to get moving; I'm working on adding coverage, and I'm seeing some behavior that makes no sense to me at all. Until I can figure it all out, I'm kind of stuck, because I want to at least understand where the weird behavior is coming from.
I found it. I'd failed to decorate one of my classes with attrs stuff, so the code that consumed it was crashing because the attributes it was looking for didn't exist. (And this wasn't bubbling out in a meaningful way becase the test was already expecting failure.) I can't imagine how much grief that would have caused me if I hadn't worked it out now.
The way is clear to work on Environments, but I think it would be a bad idea to do that now. I'll work on it tomorrow.