I had some time this weekend to sit down and give Chasm some love. The new release brings almost 50% faster execution speed, our Coremark benchmark jumped from 626.995 to 924.137. I've rewritten the interpreter loop into a form that frankly is the tightest thing we can express in Java bytecode (We could really do with actual tail call instructions on the JVM).
Currently Chasm is the fastest Wasm interpreter on the JVM, but to be more specific it's the fastest at invocation (By a long long way). We do a lot of work up front in the compiler and as a result instantiation is slow, the validator is also terrible but I presume no one is actually using that thing 😅. I have some more time this week so I'll be reworking the compiler into a single pass design which should reduce instantiation further.
All of this work is actually research and progress I have picked up in the last year working on another runtime I've been building, and theres plenty more where this came from....
github.com/CharlieTap/chasm/…/1.5.0