Rust 1.55 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฆด๋ฆฌ์Šค

Mozilla ํ”„๋กœ์ ํŠธ์— ์˜ํ•ด ์„ค๋ฆฝ๋˜์—ˆ์ง€๋งŒ ํ˜„์žฌ๋Š” ๋…๋ฆฝ์ ์ธ ๋น„์˜๋ฆฌ ์กฐ์ง์ธ Rust Foundation์˜ ํ›„์›์œผ๋กœ ๊ฐœ๋ฐœ๋œ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด Rust 1.55์˜ ์ถœ์‹œ๊ฐ€ ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์–ธ์–ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „์— ์ค‘์ ์„ ๋‘๊ณ  ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋‚˜ ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋†’์€ ์ž‘์—… ๋ณ‘๋ ฌ์„ฑ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค(๋Ÿฐํƒ€์ž„์€ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋ณธ ์ดˆ๊ธฐํ™” ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋กœ ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค).

Rust์˜ ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š” ํฌ์ธํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ๋•Œ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด ํ•ด์ œ๋œ ํ›„ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ, ๋„ ํฌ์ธํ„ฐ ์—ญ์ฐธ์กฐ, ๋ฒ„ํผ ์˜ค๋ฒ„๋Ÿฐ ๋“ฑ๊ณผ ๊ฐ™์€ ์ €์ˆ˜์ค€ ๋ฉ”๋ชจ๋ฆฌ ์กฐ์ž‘์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๋ณด์žฅํ•˜๋ฉฐ ์ข…์†์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์ ํŠธ๋Š” Cargo ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. crates.io ์ €์žฅ์†Œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ŠคํŒ…์„ ์œ„ํ•ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํ˜์‹ :

  • Cargo ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์—๋Š” ๋นŒ๋“œ ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์ค‘๋ณต ์˜ค๋ฅ˜ ๋ฐ ๊ฒฝ๊ณ ๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋นŒ๋“œํ•˜๋Š” "cargo test" ๋ฐ "cargo check --all-targets"์™€ ๊ฐ™์€ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ ์ด์ œ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ๋Œ€์‹  ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ์— ๋Œ€ํ•œ ์š”์•ฝ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ๊ฒƒ์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋นŒ๋“œํ•  ๋•Œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋™์ผํ•œ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. $ Cargo +1.55.0 check โ€”all-targets foo v0.1.0 ํ™•์ธ ์ค‘ ๊ฒฝ๊ณ : ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค: 'foo' โ€”> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = ์ฐธ๊ณ : '#[warn(dead_code)]' ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผœ์ง ๊ฒฝ๊ณ : 'foo'(lib)๊ฐ€ ๊ฒฝ๊ณ  1๊ฐœ ์ƒ์„ฑ: 'foo'(lib ํ…Œ์ŠคํŠธ)๊ฐ€ ๊ฒฝ๊ณ  1๊ฐœ ์ƒ์„ฑ(์ค‘๋ณต 1๊ฐœ) ์™„๋ฃŒ๋œ ๊ฐœ๋ฐœ [์ตœ์ ํ™”๋˜์ง€ ์•Š์Œ + debuginfo] ๋Œ€์ƒ (s)0.84์ดˆ
  • ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ตฌ๋ฌธ ๋ถ„์„ ์ฝ”๋“œ๋Š” ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ Eisel-Lemire ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด์ „์— ๋งค์šฐ ๋งŽ์€ ์ž๋ฆฟ์ˆ˜๊ฐ€ ํฌํ•จ๋œ ์ˆซ์ž ๋ฐ˜์˜ฌ๋ฆผ ๋ฐ ๊ตฌ๋ฌธ ๋ถ„์„๊ณผ ๊ด€๋ จํ•˜์—ฌ ๊ด€์ฐฐ๋œ ์ผ๋ถ€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ…œํ”Œ๋ฆฟ์—์„œ ๋‹ซํžˆ์ง€ ์•Š์€ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์•ˆ์ •ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค("X.."๋Š” X ๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์ •์ˆ˜ ์œ ํ˜•์˜ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ๋๋‚˜๋Š” ๋ฒ”์œ„๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค). match x as u32 { 0 => println! (โ€œ1!โ€), XNUMX.. => println!("์–‘์ˆ˜!"), }
  • std::io::ErrorKind์—์„œ ๋‹ค๋ฃจ๋Š” ํ™•์žฅ๋œ ์˜ค๋ฅ˜ ๋ณ€ํ˜•(์˜ค๋ฅ˜๋ฅผ NotFound ๋ฐ WillBlock๊ณผ ๊ฐ™์€ ๋ฒ”์ฃผ๋กœ ๋ถ„๋ฅ˜) ์ด์ „์—๋Š” ๊ธฐ์กด ๋ฒ”์ฃผ์— ๋งž์ง€ ์•Š๋Š” ์˜ค๋ฅ˜๊ฐ€ ErrorKind::Other ๋ฒ”์ฃผ์— ์†ํ–ˆ์œผ๋ฉฐ ์ด๋Š” ํƒ€์‚ฌ ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜์—๋„ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๊ธฐ์กด ๋ฒ”์ฃผ์— ๋งž์ง€ ์•Š๋Š” ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ๋‚ด๋ถ€ ๋ฒ”์ฃผ ErrorKind::Uncategorized๊ฐ€ ์žˆ์œผ๋ฉฐ, ErrorKind::Other ๋ฒ”์ฃผ๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(io::Error๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜)์—์„œ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ์˜ค๋ฅ˜๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ๋” ์ด์ƒ ErrorKind:: ์นดํ…Œ๊ณ ๋ฆฌ ๊ธฐํƒ€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • API์˜ ์ƒˆ๋กœ์šด ๋ถ€๋ถ„์ด ์•ˆ์ •ํ™”๋œ ํŠน์„ฑ์˜ ๋ฉ”์„œ๋“œ ๋ฐ ๊ตฌํ˜„์„ ํฌํ•จํ•˜์—ฌ ์•ˆ์ •์ ์ธ ๋ฒ”์ฃผ๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฐ”์šด๋“œ::๋ณต์ œ๋จ
    • ๋ฐฐ์ˆ˜::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • MaybeUninit::assume_init_mut
    • MaybeUninit::assume_init_ref
    • MaybeUninit::์“ฐ๊ธฐ
    • ๋ฐฐ์—ด::๋งต
    • ops::์ œ์–ด ํ๋ฆ„
    • x86::_bittest
    • x86::_bittest๋ฐ๋ณด์™„
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • ์ƒ์ˆ˜ ๋Œ€์‹  ๋ชจ๋“  ์ปจํ…์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๊ฒฐ์ •ํ•˜๋Š” "const" ์†์„ฑ์€ str::from_utf8_unchecked ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • powerpc64le-unknown-freebsd ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์„ธ ๋ฒˆ์งธ ์ˆ˜์ค€์˜ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ ์ˆ˜์ค€์—๋Š” ๊ธฐ๋ณธ ์ง€์›์ด ํฌํ•จ๋˜์ง€๋งŒ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ, ๊ณต์‹ ๋นŒ๋“œ ๊ฒŒ์‹œ ๋˜๋Š” ์ฝ”๋“œ ๋นŒ๋“œ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ํ™•์ธ์€ ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€