<story><title>Wasm3 – A high performance WebAssembly interpreter in C</title><url>https://github.com/wasm3/wasm3</url></story><parent_chain></parent_chain><comment><author>ridiculous_fish</author><text>This is pretty exciting if real:&lt;p&gt;&amp;gt; Bytecode&amp;#x2F;opcodes are translated into more efficient &amp;quot;operations&amp;quot; during a compilation pass, generating pages of meta-machine code&lt;p&gt;WASM compiled to a novel bytecode format aimed at efficient interpretation.&lt;p&gt;&amp;gt; Commonly occurring sequences of operations can can also be optimized into a &amp;quot;fused&amp;quot; operation.&lt;p&gt;Peephole optimizations producing fused opcodes, makes sense.&lt;p&gt;&amp;gt; In M3&amp;#x2F;Wasm, the stack machine model is translated into a more direct and efficient &amp;quot;register file&amp;quot; approach&lt;p&gt;WASM translated to register-based bytecode. That&amp;#x27;s awesome!&lt;p&gt;&amp;gt; Since operations all have a standardized signature and arguments are tail-call passed through to the next, the M3 &amp;quot;virtual&amp;quot; machine registers end up mapping directly to real CPU registers.&lt;p&gt;This is some black magic, if it works!</text></comment>
<story><title>Wasm3 – A high performance WebAssembly interpreter in C</title><url>https://github.com/wasm3/wasm3</url></story><parent_chain></parent_chain><comment><author>CharlesW</author><text>Why is an interpreter desirable when JIT compilers create significantly faster code? Is this primarily about embedded use?</text></comment>