I wired in the eval logic. It required some minor changes to the supporting types. Basically, I needed a custom str-stype function that renders Ellipsis as ....
With that in place, and a few iterations on the updated code, I've got the new version up and running. It's... somewhat easier to understand than the old code, I think. It might be slower—I didn't actually measure it, since I'm more concerned about getting the code working and correct, than I am about blazing performance. Subjectively, the Risus shiv has fine performance.
There are still some minor coverage holes, but I think tomorrow I'll switch back to Mythic. My current design for (parts of) Mythic will stress the punq fork a little harder, but honestly not much so.
So, stuff to look into:
- Cleaning up my scattered prototype code for Mythic.
- Creating a toy build setup for Brython; not sure what kind of metadata I'd need to add to get this to, like, work, from my end.
- Setting up profiling so I know where the hot code paths are.
- Not really relevant to this yet, but I wonder if Trio's scheduler can be used to implement causal profiling. That might come in handy when I have a lot of code hooked into GUI libraries.
Anyway, it's late, so I guess I'm done.