Caterpillar

Daily Thought - 2024-12-01

< back to list

Note that in relation to compiler-orchestrated rewinding, I've been talking about "undo data" in addition to "undo instructions". In an interpreted environment, just generating the instructions that undo the regular instructions seems like the most straight-forward approach. But when compiling to WebAssembly, I don't think this would work without jumping through hoops.

Generating static undo instructions at compile-time, and then at runtime just filling a buffer with arguments for those static instructions, seems like the more portable approach. I haven't tried it yet, but I'd guess that would work in pretty much any compiled environment.

Seeing it laid out like this, it becomes very obvious that there's quite a bit of overhead here. It kinda seems to not matter with an interpreter, since that's slow anyway. (In reality, it still matters of course.) With compiled code, the additional overhead can't be hidden. It's very obvious. But it can be reduced, which is what I'd like to talk about tomorrow.

<< previous thoughtnext thought >>

Hey, you! Want to subscribe to my daily thoughts? Just let me know (maybe include a nice message, if you're up for it), and I'll send you an email whenever I post a new one.