Coding 2020-08-10

By Max Woerner Chase

I mostly took it easy today, and then quickly set up limit-coverage on a bunch of my projects. It turns out they weren't all set to use it out-of-the-box, since it was arbitrarily limited to Python 3.7 and later, and the Lox interpreter is written against Python 3.6 (so it can use PyPy). One patch release later, and it's arbitrarily limited to Python 3.6 and later. Python 3.5 is scheduled to end-of-life in a month or so, so this is probably fine.

Anyway, enabling it on the virtual tabletop project, I'm not sure if that actually did anything, I can't remember if those few lines were missing or not before. Enabling it on the Lox interpreter cut coverage in half, so I'll just have to see about refactoring the tests to get it back up. When that's done, I'll feel good about the various rewrites that I have in mind. When I want mutation testing, I should probably look over the changes I made to limit-coverage and see if any of them apply to my weird, over-engineered runner script. (Which I should probably rewrite in Python, and convert to an installable library.)

One other thing I was considering was, inspired by JeanStack, writing a Python front-end for Daikon. I need to read over the documentation some more to get a better idea of how much of a pain that would be, but I think that Coverage.py indicates that a trace function could more-or-less handle extracting the relevant information. For now, I'll focus on stuff I have a little more experience with. And, for now for now, I should wrap up.

Good night.