Web49 | owi | |
---|---|---|
3 | 1 | |
323 | 105 | |
0.9% | 3.8% | |
5.0 | 9.7 | |
12 months ago | 1 day ago | |
WebAssembly | WebAssembly | |
MIT License | GNU Affero General Public License v3.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Web49
-
Show HN: I wrote a WebAssembly Interpreter and Toolkit in C
> I developed a unique way to write interpreters based on threaded code jumps and basic block versioning when I made MiniVM (https://github.com/FastVM/minivm). It was both larger and more dynamic than WebAssembly.
I'd be very interested to read more about this. It looks like you are using "one big function" with computed goto (https://github.com/FastVM/Web49/blob/main/src/interp/interp....). My experience working on this problem led me to the same conclusion as Mike Pall, which is that compilers do not do well with this pattern (particularly when it comes to register allocation): http://lua-users.org/lists/lua-l/2011-02/msg00742.html
I'm curious how you worked around the problem of poor register allocation in the compiler. I've come to the conclusion that tail calls are the best solution to this problem: https://blog.reverberate.org/2021/04/21/musttail-efficient-i...
owi
What are some alternatives?
wasm3 - 🚀 A fast WebAssembly interpreter and the most universal WASM runtime
raw-wasm - Raw WebAssembly demos
wizard-engine - Research WebAssembly Engine
Uno.Wasm.Bootstrap - A simple nuget package to run C# code in a WASM-compatible browser
assemblyscript - A TypeScript-like language for WebAssembly.
waforth - Small but complete dynamic Forth Interpreter/Compiler for and in WebAssembly
wasmboy - Game Boy / Game Boy Color Emulator Library, 🎮written for WebAssembly using AssemblyScript. 🚀Demos built with Preact and Svelte. ⚛️
serenity - The Serenity Operating System 🐞
minivm - A VM That is Dynamic and Fast