@mostlypat @capital Very cool!
Funny you mention that, I'm working on that at the moment. My current project necessitates a lot of portability, so I'm "reinventing" LLVM from first principles.
The current (and most likely final) iteration involves an abstract machine with 8 instructions. The machine manipulates a tape of bits with dynamic insertion, modeled as a deque.
I'm intending on building a lot of rewriting-oriented projects on top of it. It can absolutely work.