์น์ด์ ๋ธ๋ฆฌ ๋ฌธ์๋ฅผ ์ฝ์ผ๋ ค๊ณ ํ๋๋ฐ i32,i64,f32,f64 ์ ํ๋ง ์ง์ํ๋ค๊ณ ์ธ๊ธ๋์ด ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ตฌ์กฐ์ฒด์ ๊ฐ์ ๋ณตํฉ ์ ํ์ ์ธ๊ธํ๋ ๊ณณ์ ์ฐพ์ ์ ์์ต๋๋ค.
์น ์ด์ ๋ธ๋ฆฌ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๊ฐ๋ฅํฉ๋๊น? 64๋นํธ๋ณด๋ค ํฐ ๊ตฌ์กฐ์ฒด์ ๋ํ C ์ปดํ์ผ๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์คํ์ float 2๊ฐ์ int 2๊ฐ๋ฅผ ํจ๊ป ๋ฌถ์ผ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
์ต๋ 8๋ฐ์ดํธ ๊ตฌ์ฑ์ ๊ฒฝ์ฐ 64๋นํธ ์ ์๋ก ์์ถํ ์ ์์ต๋๋ค.
๋ ํฐ ๊ตฌ์กฐ์ ๊ฒฝ์ฐ ์ ํ ๋ฉ๋ชจ๋ฆฌ ๋๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ์ ์ญ ์งํฉ์ ํตํด ์ด๋ฅผ ์ ์กํด์ผ ํฉ๋๋ค.
์ฌ๋ฌ ๋ฐํ ๊ฐ์ ํ์คํ ์ฌ์ ํ ๋ ์ด๋์ ์์ผ๋ฉฐ,
๊ณง ์ ์์๋ฅผ ์์ฑํ์ญ์์ค. ์ฆ, ๊ทธ๋ค์ ๋น์ ์๊ฒ ๊ตฌ์กฐ์ฒด๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค
์ง์ , ๋น์ ์ ์ฌ์ ํ โโ๊ฐ๋ณ ๊ฐ์ผ๋ก ๋ถํ ํด์ผ
ํจ์ ํธ์ถ์ ์ ์ธํ ๋ชจ๋ ๊ฒ.
@rossberg-chromium ๋๋จํ ๊ฐ์ฌํฉ๋๋ค. ๋ฐํ๋ ๊ฐ์ ํฌ๊ธฐ์ ์์๋ฅผ ์ ํํ์ง ์์ผ๋ฉด ์ปดํ์ผ๋ ์ธ์ด๋ก ๊ฐ์ง ๊ตฌ์กฐ์ฒด๋ฅผ ํด๊ฒฐํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ผ๋ก ์ถฉ๋ถํด์ผํฉ๋๋ค
๊ทธ ๋์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์กฐ์ฒด๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ฃ ?
์ ํ ๋ฉ๋ชจ๋ฆฌ์ ๊ตฌ์กฐ์ฒด๋ฅผ ํ ๋นํ๊ณ ํฌ์ธํฐ๋ก ์์ ํ์ญ์์ค.
@nidin ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๊ฒ์ด wasm์ผ๋ก ์ปดํ์ผ๋ C ๊ตฌ์กฐ์ฒด๊ฐ ์ผ๋ฐ์ ์ผ๋ก ํ๋ ๋ฐฉ์์ ๋๊น?
@rossberg ๊ตฌ์กฐ ์ง์์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
@krisnye , ์ ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ wasm ํ๋ก๊ทธ๋จ์ ๋ํ "๊ตฌ์กฐ์ฒด" ์ง์ ๊ณํ์ด ์์ต๋๋ค. ์ปดํ์ผ๋ฌ๋ struct ๋ฐ struct ์์ ์ ๊ธฐ๋ณธ ์์ ์ผ๋ก ๋ฎ์ถ์ด์ผ ํฉ๋๋ค. ์ ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๋ GC ์ง์ ์ ์์ ๋งฅ๋ฝ์์ ๊ตฌ์กฐ์ฒด ์ ํ์ ๋ํ ๋ช ๊ฐ์ง ๊ณํ์ด ์์ต๋๋ค(์: https://github.com/WebAssembly/gc ์ฐธ์กฐ). Firefox Nightly์๋ ์ต์ํ ๊ทธ ํ์ ์งํฉ์ ๋ํ ๊ณ ๋๋ก ์คํ์ ์ธ ์ง์์ด ์์ต๋๋ค( https://github.com/lars-t-hansen/moz-gc-experiments ์ฐธ์กฐ).
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฌ๋ฌ ๋ฐํ ๊ฐ์ ํ์คํ ์ฌ์ ํ ๋ ์ด๋์ ์์ผ๋ฉฐ,
๊ณง ์ ์์๋ฅผ ์์ฑํ์ญ์์ค. ์ฆ, ๊ทธ๋ค์ ๋น์ ์๊ฒ ๊ตฌ์กฐ์ฒด๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค
์ง์ , ๋น์ ์ ์ฌ์ ํ โโ๊ฐ๋ณ ๊ฐ์ผ๋ก ๋ถํ ํด์ผ
ํจ์ ํธ์ถ์ ์ ์ธํ ๋ชจ๋ ๊ฒ.