Skip to content
This repository was archived by the owner on Aug 25, 2025. It is now read-only.

Conversation

mike-kfed
Copy link

of direct access to wasm-memory for the regular tutorial and Uint32Array for the bits
exercise.

Summary

I learned that directly accessing webassembly shared memory is not needed anymore, easier to write and equally efficient are js_sys typed Array views. This change of the tutorial in the book goes together with my PR for the code rustwasm/wasm_game_of_life#53

I hope my explanations of what is going on are sufficient, but please let me know if wording should change, english is not my primary language.

Note: I decided to change the algorithm for bitIsSet and use of a Uint32Array for the cells in the bits exercise because staying with Uint8Array would have meant this ugly rust code:

        pub fn cells(&mut self) -> js_sys::Uint8Array {
            unsafe {
                js_sys::Uint8Array::view_mut_raw(
                    mem::transmute::<&[u32], *mut [u8]>(&self.cells.as_slice()) as *mut u8,
                    self.cells.len() / 8,
                )
            }
        }

wasm-memory for the regular tutorial and Uin32Array for the bits
exercise.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant