In the previous post I got a great, if obvious and easy performance improvement by moving from a naive implementation (but one that helped me make initial headway in understanding the WebAssembly spec) to something much more sensible. The very simple measuring I think puts me somewhere around python performance, but can I do better? At the moment, I’m not quite ready to think about JITing code, but is there something that I can do whilst keeping the interpretation model?
Just shy of a month ago I started work on a WebAssembly interpreter written in Zig. With this commit I have all but a few baseline spec testsuite tests passing. Part of the reason was purely to learn how WebAssembly works, and in that respect the peformance of the interpreter was a secondary concern. However, I would like to see if I can at least take care of some low-hanging optimisations.