Mozilla ํ๋ก์ ํธ์ ์ํด ์ค๋ฆฝ๋์์ง๋ง ํ์ฌ๋ ๋ ๋ฆฝ์ ์ธ ๋น์๋ฆฌ ์กฐ์ง์ธ Rust Foundation์ ํ์์ผ๋ก ๊ฐ๋ฐ๋ Rust 1.62 ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ถ์๊ฐ ๋ฐํ๋์์ต๋๋ค. ์ด ์ธ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ค์ ์ ๋๊ณ ๊ฐ๋น์ง ์์ง๊ธฐ ๋ฐ ๋ฐํ์(๋ฐํ์์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ๋ณธ ์ด๊ธฐํ ๋ฐ ์ ์ง ๊ด๋ฆฌ๋ก ์ถ์๋จ)์ ์ฌ์ฉ์ ํผํ๋ฉด์ ๋์ ์์ ๋ณ๋ ฌ์ฑ์ ๋ฌ์ฑํ ์ ์๋ ์๋จ์ ์ ๊ณตํฉ๋๋ค.
Rust์ ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ํฌ์ธํฐ๋ฅผ ์กฐ์ํ ๋ ๊ฐ๋ฐ์๋ฅผ ์ค๋ฅ๋ก๋ถํฐ ๋ณดํธํ๊ณ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ํด์ ๋ ํ ์ก์ธ์ค, null ํฌ์ธํฐ ์ญ์ฐธ์กฐ, ๋ฒํผ ์ค๋ฒ๋ฐ ๋ฑ๊ณผ ๊ฐ์ ์ ์์ค ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ๋ก ์ธํด ๋ฐ์ํ๋ ๋ฌธ์ ๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐฐํฌ, ๋น๋ ์ ๊ณต ๋ฐ ์ข ์์ฑ ๊ด๋ฆฌ๋ฅผ ์ํด ํ๋ก์ ํธ๋ Cargo ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ๊ฐ๋ฐํฉ๋๋ค. crates.io ์ ์ฅ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์คํ ์ ์ํด ์ง์๋ฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ปดํ์ผ ์๊ฐ์ ์ฐธ์กฐ ํ์ธ, ๊ฐ์ฒด ์์ ๊ถ ์ถ์ , ๊ฐ์ฒด ์๋ช (๋ฒ์) ์ถ์ ๋ฐ ์ฝ๋ ์คํ ์ค ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค์ ์ ํ์ฑ ํ๊ฐ๋ฅผ ํตํด Rust์์ ์ ๊ณต๋ฉ๋๋ค. Rust๋ ๋ํ ์ ์ ์ค๋ฒํ๋ก์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ์ฌ์ฉํ๊ธฐ ์ ์ ๋ณ์ ๊ฐ์ ํ์ ์ด๊ธฐํ๊ฐ ํ์ํ๋ฉฐ, ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ค๋ฅ๋ฅผ ๋ ์ ์ฒ๋ฆฌํ๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๋ณ ์ฐธ์กฐ ๋ฐ ๋ณ์ ๊ฐ๋ ์ ์ ์ฉํ๊ณ , ๊ฐ๋ ฅํ ์ ์ ์ ํ ์ง์ ์ ์ ๊ณตํ์ฌ ๋ ผ๋ฆฌ์ ์ค๋ฅ๋ฅผ ์ต์ํํฉ๋๋ค.
์ฃผ์ ํ์ :
- โcargoโ ํจํค์ง ๊ด๋ฆฌ์๋ Cargo.toml ๋งค๋ํ์คํธ์ ์ ์ข ์์ฑ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ช ๋ น์ค์์ ๊ธฐ์กด ์ข ์์ฑ์ ๋ณ๊ฒฝํ ์ ์๋ โaddโ ๋ช ๋ น์ ์ ๊ณตํฉ๋๋ค. ๋ํ ์ด ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ณ ๊ธฐ๋ฅ๊ณผ ๋ฒ์ ์ ์ง์ ํ ์ ์์ต๋๋ค. ์: ํ๋ฌผ ์ถ๊ฐ serde โ๊ธฐ๋ฅ ํ์ ํ๋ฌผ ์ถ๊ฐ nom@5
- "#[default]" ์์ฑ์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์ต์ ์ด ์ ์๋ ์ด๊ฑฐํ์ "#[derive(Default)]"๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. #[derive(๊ธฐ๋ณธ๊ฐ)] enum ์๋ง๋ { #[๊ธฐ๋ณธ๊ฐ] ์๋ฌด๊ฒ๋, ๋ญ๊ฐ(T), }
- Linux ํ๋ซํผ์์๋ Linux ์ปค๋์์ ์ ๊ณตํ๋ futex ์ฌ์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Mutex ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ๋ณด๋ค ์ปดํฉํธํ๊ณ ๋น ๋ฅธ ๊ตฌํ์ด ์ฌ์ฉ๋ฉ๋๋ค. pthreads ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด์ ์ ์ฌ์ฉ๋ ๊ตฌํ๊ณผ ๋ฌ๋ฆฌ ์ ๋ฒ์ ์์๋ Mutex ์ํ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด 5๋ฐ์ดํธ ๋์ 40๋ฐ์ดํธ๋ง ์ฌ์ฉํฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก Condvar ๋ฐ RwLock ์ ๊ธ ๋ฉ์ปค๋์ฆ๋ futex๋ก ์ด์ ๋์์ต๋๋ค.
- ์ด์ ์ฒด์ ์์ด ์๋ํ ์ ์๋ ์คํ ํ์ผ์ ์์ฑํ๋๋ก ์ค๊ณ๋ x86_64-unknown-none ๋์ ํ๋ซํผ์ ๋ํ ๋ ๋ฒ์งธ ์์ค์ ์ง์์ด ๊ตฌํ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ปค๋ ๊ตฌ์ฑ ์์๋ฅผ ์์ฑํ ๋ ์ง์ ๋ ๋์ ํ๋ซํผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ ๋ฒ์งธ ์์ค์ ์ง์์๋ ์กฐ๋ฆฝ ๋ณด์ฆ์ด ํฌํจ๋ฉ๋๋ค.
- ์ธ ๋ฒ์งธ ์์ค์ ์ง์์ aarch64-pc-windows-gnullvm ๋ฐ x86_64-pc-windows-gnullvm ํ๋ซํผ์ ๋ํด ๊ตฌํ๋์์ต๋๋ค. ์ธ ๋ฒ์งธ ์์ค์๋ ๊ธฐ๋ณธ ์ง์์ด ํฌํจ๋์ง๋ง ์๋ํ๋ ํ ์คํธ, ๊ณต์ ๋น๋ ๊ฒ์ ๋๋ ์ฝ๋ ๋น๋ ๊ฐ๋ฅ ์ฌ๋ถ ํ์ธ์ ํฌํจ๋์ง ์์ต๋๋ค.
- API์ ์๋ก์ด ๋ถ๋ถ์ด ์์ ํ๋ ํน์ฑ์ ๋ฉ์๋ ๋ฐ ๊ตฌํ์ ํฌํจํ์ฌ ์์ ์ ์ธ ๋ฒ์ฃผ๋ก ์ด๋๋์์ต๋๋ค.
- ๋ถ์ธ::then_some
- f32::total_cmp
- f64::total_cmp
- ํ์ค์ ๋ ฅ::๋ผ์ธ
- windows::CommandExt::raw_arg
- ์์ AssertUnwindSafe์ ๊ธฐ๋ณธ๊ฐ
- ์์ > RC์ ๊ฒฝ์ฐ
- ์์ > ํธ์ฉ<[u8]>
- EncodeWide์ฉ FusedIterator
์ถ์ฒ : opennet.ru