Assemblyscript: I64๋ฅผ WASM์œผ๋กœ/์—์„œ BigInt๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜์‹ญ์‹œ์˜ค.

์— ๋งŒ๋“  2018๋…„ 05์›” 22์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: AssemblyScript/assemblyscript

https://github.com/AssemblyScript/assemblyscript/pull/111 ํ˜„์žฌ I64๋Š” BigInt ๋กœ ์–ด๋Š ์‹œ์ ์—์„œ WASM<->JS ๊ฒฝ๊ณ„๋ฅผ ๋„˜์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ธด ์–ด์…ˆ๋ธ”๋ฆฌ ๋ฐ ์ด์‹ ๊ฐ€๋Šฅํ•œ ์ •์ˆ˜ ๋ฐ ์ƒ์„ฑ๋œ ์œ ํ˜• ์Šคํฌ๋ฆฝํŠธ ์ •์˜. ์—ฌ๊ธฐ์—์„œ ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ์ „์ œ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋Š” (i64-to-i32-lowering) asm.js ์ถœ๋ ฅ์—์„œ๋„ ์–ด๋–ป๊ฒŒ๋“  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

enhancement

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

BigInt๋Š” ์ด์ œ Chrome, Firefox(์‹คํ—˜ ํ”Œ๋ž˜๊ทธ ๋’ค์— ์žˆ์Œ) ๋ฐ NodeJS์— ์žˆ์Šต๋‹ˆ๋‹ค.

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

BigInt๋Š” ์ด์ œ Chrome, Firefox(์‹คํ—˜ ํ”Œ๋ž˜๊ทธ ๋’ค์— ์žˆ์Œ) ๋ฐ NodeJS์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ i64์— ๋ถˆ๊ณผํ•˜๋”๋ผ๋„ ์–ด์…ˆ๋ธ”๋ฆฌ ์Šคํฌ๋ฆฝํŠธ์—์„œ ์ง€์›๋˜๋Š” 1234n ๊ตฌ๋ฌธ๊ณผ BigInt ์œ ํ˜•์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

BigInt ๋Š” ์ž„์˜์˜ ์ •๋ฐ€๋„(์‹ค์ œ๋กœ ํฐ ์ˆซ์ž)์— ๋Œ€ํ•ด์„œ๋งŒ ํ™•์‹คํžˆ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋Š” ์‚ฌ๋žŒ๋“ค์„ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋กœ๋”๋Š” ํ˜„์žฌ ๋ณด์œ  BigInt64Array ๋ฌด์—‡ ์šฉ ๋“ฑ ์ง€์› Int64Array AS, ๊ทธ๋ฆฌ๊ณ  ํ†ต๊ณผ i64 <-> BigInt ์ˆ˜์ถœ์ž… ๋น„์•„๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•จ์œผ๋กœ์จ ๋‹ฌ์„ฑ ๋  ์ˆ˜ --experimental-wasm-bigint ์—์„œ ์˜ˆ๋ฅผ ๋“ค์–ด V8์€ ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ AS ์ธก์— BigInt ํด๋ž˜์Šค๊ฐ€ ์•„์ง ์—†์ง€๋งŒ "WASM์œผ๋กœ/์—์„œ I64 ์ „๋‹ฌ"์ด ํ•ด๊ฒฐ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค๋ฅธ ๊ฐœ์„  ์‚ฌํ•ญ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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