Coding 2025-04-18

Tags:
By Max Woerner Chase

Things have gone wrong with the attempts to make MOTR work better. Well, wrong in product code, right in test code, because exactly one test managed to exercise a large amount of functionality, which was the bare minimum to demonstrate that my current ideas for Matrix chaining simply do not work.

In my head, I'm rapidly flipping between different solutions, and none of them yet strike me as especially good.

Basically, what's happening is that some code has the ability to set Box values, provided that nothing upstream sets the same key, and the chaining implementation causes various things to suddenly be upstream from other things, when they weren't before.

The desired behavior, I think, is that any chained Matrix will only see the initial Box value, and not any values that got added "in the interim".

Currently leaning towards, track the "initial" Box and the "default" Box through the call stack, and only combine them for draws_from_box.

Okay, I've thought about this enough that I've got something to try now. As I type this, it is running...

And it passed. Okay, next hurdle.

Well, hurdles.

Those last two do not cancel out. Or maybe they do. I'm remembering that this code doesn't all fit in my head at the same time. Oh boy, it looks like all of this code just barely does something sensible. I'm going to have to check this over later.

Unfortunately, I didn't get time to get more done conlanging, but what I did get done was certainly an adventure.

Dangit, I just checked, and I'm missing some key functionality in what I've been writing for years. I'm going to need to come up with some better tests. Working on this is also going to need to wait for now. It's late.

Good night.