After working hard to get 64-bit WebAssembly released in browsers, I would now like to discourage most people from using it 😛

(My first post on the SpiderMonkey website btw, which is a fun milestone)

https://spidermonkey.dev/blog/2025/01/15/is-memory64-actually-worth-using.html

Is Memory64 actually worth using?

After many long years, the Memory64 proposal for WebAssembly has finally been released in both Firefox 134 and Chrome 133. In short, this proposal adds 64-bit pointers to WebAssembly.

SpiderMonkey JavaScript/WebAssembly Engine

@bvisness
> The size of the WebAssembly address space is the same as the size of the host address space. Therefore, we must pay the cost of bounds checks on every access

So this will always be a problem when trying to match the hosts address space, right?

@Mendy To be precise, any time the bit width of your pointers is larger than the amount of memory you can freely reserve, you will need bounds checks. Of course, our hardware doesn’t give us a register size in between 32 and 64.

This also means you can’t do the virtual memory strategy on 32-bit platforms if you can’t reserve 4GB of memory, which is sometimes the case.

@bvisness so I guess one solution would be having 128 bit operating systems, right?
Not that I think that'll happen any time soon.