Andrew Scheidecker
Andrew Scheidecker
> silently duplicating state seems dangerous, since it can arbitrarily break state invariants the module is assuming. I think that should at least be gated by some third form of...
@zeux It looks like your use could be mapped to something like the AVX-512 `vpcompressb` instruction. Is that correct? Once you do a shuffle with a mask read from memory,...
> AVX-512 isn't a realistic SIMD target for broad use at this point, and I don't think this is available in other instructions sets And the byte-wise compress/expand are in...
> In summary, having the committing of pages and the setting of the length appear as one atomic operation is probably the best I think this is only meaningful if...
Programs will need to avoid races between memory accesses and resizing or changes in protection. A program that is racing a memory access with a `memory.grow` is probably incorrect, regardless...
> I'm guessing that some of your suggestions here are prompted by your implementation experiences with WAVM. Right. It sounds like WAVM is similar to Firefox with the exception that...
I think the current compromise is ok. It means some targets need to explicitly check alignment, but a runtime can omit those checks on targets where misaligned atomics implicitly trap....
As of [this commit](https://github.com/WAVM/WAVM/commit/018226b9bc9b02d236aae148620b36e6e06a9b02), WAVM supports the final SIMD proposal.
Some WIP benchmarks from prototyping this in WAVM: https://gist.github.com/AndrewScheidecker/7d2075d0fb6cc1e2c71b57fa54e9d850 > These instructions all have multivalue types, so this has a soft dependency on the multivalue proposal. I don't think we...
Yes, it's even possible to implement a garbage collector in wasm right now, but it would be a lot more practical if there was a way to scan GC references...