Mozilla ํ๋ก์ ํธ์ ์ํด ์ค๋ฆฝ๋์์ง๋ง ํ์ฌ๋ ๋ ๋ฆฝ์ ์ธ ๋น์๋ฆฌ ์กฐ์ง์ธ Rust Foundation์ ํ์์ผ๋ก ๊ฐ๋ฐ๋ ์์คํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด Rust 1.54์ ์ถ์๊ฐ ๋ฐํ๋์์ต๋๋ค. ์ด ์ธ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ค์ ์ ๋๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํ๋ฉฐ ๊ฐ๋น์ง ์์ง๊ธฐ๋ ๋ฐํ์์ ์ฌ์ฉํ์ง ์๊ณ ๋์ ์์ ๋ณ๋ ฌ์ฑ์ ๋ฌ์ฑํ ์ ์๋ ์๋จ์ ์ ๊ณตํฉ๋๋ค(๋ฐํ์์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ๋ณธ ์ด๊ธฐํ ๋ฐ ์ ์ง ๊ด๋ฆฌ๋ก ๋จ์ถ๋ฉ๋๋ค).
Rust์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ํฌ์ธํฐ๋ฅผ ์กฐ์ํ ๋ ์ค๋ฅ๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ํด์ ๋ ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ก์ธ์คํ๋ ๊ฒ, ๋ ํฌ์ธํฐ ์ญ์ฐธ์กฐ, ๋ฒํผ ์ค๋ฒ๋ฐ ๋ฑ๊ณผ ๊ฐ์ ์ ์์ค ๋ฉ๋ชจ๋ฆฌ ์กฐ์์ผ๋ก ์ธํด ๋ฐ์ํ๋ ๋ฌธ์ ๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐฐํฌํ๊ณ ์ด์ ๋ธ๋ฆฌ๋ฅผ ๋ณด์ฅํ๋ฉฐ ์ข ์์ฑ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ๋ก์ ํธ๋ Cargo ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. crates.io ์ ์ฅ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์คํ ์ ์ํด ์ง์๋ฉ๋๋ค.
์ฃผ์ ํ์ :
- ์์ฑ ๋ด์ ํจ์ํ ๋งคํฌ๋ก๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค("macro_rules!" ๋งคํฌ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ์ ์ฐจ์ ๋งคํฌ๋ก ๋ฐ ๋งคํฌ๋ก). ์ด๋ฌํ ๋งคํฌ๋ก๋ "!" ๊ธฐํธ๋ก ๊ธฐ๋ฅ๊ณผ ๊ตฌ๋ณ๋ฉ๋๋ค. ์ด๋ฆ ๋ค์ (macro!(...)) ํจ์ ํธ์ถ์ ์์ฑํ๋ ๋์ ๋งคํฌ๋ก ์์ค ํ ์คํธ๋ฅผ ๋์ฒดํฉ๋๋ค. ์์ฑ ๋ด์์ ๋งคํฌ๋ก๋ฅผ ํธ์ถํ๋ฉด ๋ฌธ์ํ ์ฃผ์์ ๋ค๋ฅธ ํ์ผ์ ๋ด์ฉ์ ํฌํจํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด README ํ์ผ์ ๋ด์ฉ๊ณผ ์คํฌ๋ฆฝํธ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ฝ์ ํ๋ ค๋ฉด ๋ค์์ ์ง์ ํ ์ ์์ต๋๋ค. #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR "), "/generated.rs" )] ๋ชจ๋๊ฐ ์์ฑ๋์์ต๋๋ค.
- wasm32 ํ๋ซํผ์ฉ ๋ด์ฅ ์ปดํ์ผ๋ฌ ๊ธฐ๋ฅ(Intrinsics)์ด ์์ ํ๋์ด WebAssembly์์ SIMD ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. v128_bitselect์ ๊ฐ์ ๋๋ถ๋ถ์ ํจ์๋ "์์ " ๋ชจ๋์์ ์ฌ์ฉํ ์ ์์ง๋ง ํฌ์ธํฐ์ ํจ๊ป ์๋ํ๋ ์ผ๋ถ ํจ์(์: v128_load)๋ "์์ ํ์ง ์์" ์ํ๋ก ์ ์ง๋ฉ๋๋ค.
- ์ฆ๋ถ ์ปดํ์ผ์ ๊ธฐ๋ณธ ์ฌ์ฉ์ด ๋ฐํ๋์ด ์ฝ๋์ ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ๋ค์ ๋น๋ํ ์ ์์ผ๋ฏ๋ก ์ฌ์ํ ๋ณ๊ฒฝ ํ ๋ค์ ์ปดํ์ผํ ๋ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ํฌ๊ฒ ๋จ์ถ๋ ์ ์์ต๋๋ค. ๋์คํฌ ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ธฐ ์ํ ์ถ๊ฐ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํ ํ ๋๋ฌ๋ ์จ๊ฒจ์ง ๋ฒ๊ทธ๋ก ์ธํด ๋ฆด๋ฆฌ์ค 1.52.1์์๋ ์ฆ๋ถ ์ปดํ์ผ์ด ๋นํ์ฑํ๋์์ต๋๋ค.
- ๋ค์๊ณผ ๊ฐ์ ์์ ํ๋ API๋ฅผ ํฌํจํ์ฌ API์ ์๋ก์ด ๋ถ๋ถ์ด ์์ ์ ์ธ ๋ฒ์ฃผ๋ก ์ด์ ๋์์ต๋๋ค.
- BTreeMap::into_keys
- BTreeMap::into_values
- HashMap::into_keys
- HashMap::into_values
- ์์น::wasm32
- VecDeque::binary_search
- VecDeque::binary_search_by
- VecDeque::binary_search_by_key
- VecDeque::partition_point
- ์ต์ ์ด ํ๋ฌผ ํธ๋ฆฌ์ ์ถ๊ฐ๋์์ต๋๋ค: ์ข ์์ฑ ๊ทธ๋ํ์์ ํจํค์ง๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํ โโprune โ, ์ข ์์ฑ ํธ๋ฆฌ์์ ์ง์ ๋ ์ค์ฒฉ ์์ค์ ์์๋ง ํ์ํ๊ธฐ ์ํ โโ๊น์ดโ, โโedges no-proc- ๋งคํฌ๋กโ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฐจ์ ๋งคํฌ๋ก์ ์ข ์์ฑ์ ์จ๊น๋๋ค.
์ถ์ฒ : opennet.ru