Today a big contender for a VM to rule them all is WebAssembly, even though the primary motivation at the start was a web language, the design of the intermediate language (.wasm) is explendid, it hits the sweet spot of a LISP language with static types and low level coding

Do you think WebAssembly is well-suited to dynamic languages with a lot of dynamic dispatch and dynamically generated code?

Of couse! In the same way of Jython wasm can still be JITimed and get close to native performance

> can still be JITimed and get close to native performance

Has anyone achieved this yet? I haven't seen any results myself but I haven't been looking carefully.

Also wouldn't you have to build that JIT yourself and all the primitives you need to implement a dynamic language like the caches and deoptimisation? Seems like it's not really providing the needed tools and you'd have to build a lot of basics on top of it.

wasmtime[0] is a WebAssembly standalone runtime that does JIT. It’s quite performant anecdotally and I think some benchmarks might be available.

[0] https://github.com/bytecodealliance/wasmtime