Applying the new calling convention in the Lisp interpreter seems to work modestly well: after fixing a couple of bugs (forgetting to save some registers, accidentally not executing some code, `cmp reg, imm' being assembled to `cmp reg, 0x0'), everything that worked before still works!
Still having similar issues when I actually try typing things in the editor though...
Went through and applied the new calling convention to the part of the interpreter that does function calls. Seems the stack overflow issue is finally gone! (Although full tail call optimization is not done yet: the way I pass dynamic variables requires a single value on the stack per open scope.)
Mastodon is a server for a federated social network: everyone can run a server if they want to, including me. So this is a Mastodon server for me (Vierkantor) and my friends.