A spin-off from this discussion.
Regarding that Inform6 is an object-oriented language and Inform7 is a rule-based language, is z-code/glulx ideal as interpreter language or could a more suitable set of opcodes be defined?
A spin-off from this discussion.
Regarding that Inform6 is an object-oriented language and Inform7 is a rule-based language, is z-code/glulx ideal as interpreter language or could a more suitable set of opcodes be defined?
Zcode/Glulx are both very low-level and have no impact on the OO-vs-rule-based architecture. That’s all built on top.
The biggest architectural impact is that I decided to keep the Glulx stack outside of main memory (same as Z-code), which means it can only store 32-bit words, no larger data structures. This forces the I7 compiler to jump through some hoops to manage local variables that are struct types. (Texts, lists, stored actions, etc.)
Notably the Å-machine, for Dialog, is not as low-level; it’s basically Dialog’s IR (the intermediate representation that high-level Dialog code gets compiled into before then being compiled to Z-machine). So it’s unlikely that any language other than Dialog will ever be compiled to it.