alexcrichton commented on issue #2186:
This is a pretty old issue at this point and adding a 16-bit platform to Wasmtime is a significant ask that, even if it were done, would probably break wasm assumptions for any nontrivial module (since one wasm page is the entire address space). I'm going to close this for these reasons since design for a platform like this would most likely go through something like an RFC given its impact.
alexcrichton closed issue #2186:
Hey, so we kinda would like to put wasm on a Sega Genesis, so that we can put Rust on a Sega Genesis. We think maintaining a wasm backend would be less effort than maintaining an LLVM backend, but from what we've been reading, the following might be an issue:
- It's big-endian.
- There are no floats. We don't think this is a big deal because we can just not use floats in Rust.
- There's only 64k of RAM, and we somehow need to fit everything into it. It probably wouldn't be a big deal to expose the real stack to wasm, but Rust may not be able to deal with it.
- A lot of stuff needs to be stored in ROM. However, we haven't been able to figure out how wasm (or well, Rust) handles strings and bytestrings in code? This could be a real problem, especially if bank switching is involved. (There's also a restriction that VDP DMA transfers can't cross 128kB(?) boundaries.)
How bad of an idea is this? It wouldn't really be in-spec, but we don't expect it to run arbitrary wasm either.
Last updated: Dec 23 2024 at 12:05 UTC