Design: ์›น ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ๊ตฌ์กฐ์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2017๋…„ 06์›” 26์ผ  ยท  8์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: WebAssembly/design

์›น์–ด์…ˆ๋ธ”๋ฆฌ ๋ฌธ์„œ๋ฅผ ์ฝ์œผ๋ ค๊ณ  ํ•˜๋Š”๋ฐ i32,i64,f32,f64 ์œ ํ˜•๋งŒ ์ง€์›ํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ตฌ์กฐ์ฒด์™€ ๊ฐ™์€ ๋ณตํ•ฉ ์œ ํ˜•์„ ์–ธ๊ธ‰ํ•˜๋Š” ๊ณณ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์›น ์–ด์…ˆ๋ธ”๋ฆฌ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ? 64๋น„ํŠธ๋ณด๋‹ค ํฐ ๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•œ C ์ปดํŒŒ์ผ๋Ÿฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์Šคํƒ์— float 2๊ฐœ์™€ int 2๊ฐœ๋ฅผ ํ•จ๊ป˜ ๋ฌถ์œผ๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์—ฌ๋Ÿฌ ๋ฐ˜ํ™˜ ๊ฐ’์€ ํ™•์‹คํžˆ ์—ฌ์ „ํžˆ ๋ ˆ์ด๋”์— ์žˆ์œผ๋ฉฐ,
๊ณง ์ œ์•ˆ์„œ๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค. ์ฆ‰, ๊ทธ๋“ค์€ ๋‹น์‹ ์—๊ฒŒ ๊ตฌ์กฐ์ฒด๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
์ง์ ‘, ๋‹น์‹ ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ฐœ๋ณ„ ๊ฐ’์œผ๋กœ ๋ถ„ํ• ํ•ด์•ผ
ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ.

๋ชจ๋“  8 ๋Œ“๊ธ€

937์€ ์ด์— ๋Œ€ํ•œ ์‰ฌ์šด ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ–ˆ์ง€๋งŒ ํ˜„์žฌ๋Š” ๋‹ซํ˜€ ์žˆ๊ณ  WebAssembly ํŒ€์˜ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์—ฌ์ „ํžˆ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ 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 ์ฐธ์กฐ).

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

void4 picture void4  ยท  5์ฝ”๋ฉ˜ํŠธ

ghost picture ghost  ยท  7์ฝ”๋ฉ˜ํŠธ

jfbastien picture jfbastien  ยท  6์ฝ”๋ฉ˜ํŠธ

arunetm picture arunetm  ยท  7์ฝ”๋ฉ˜ํŠธ

artem-v-shamsutdinov picture artem-v-shamsutdinov  ยท  6์ฝ”๋ฉ˜ํŠธ