[Rust] 1.75.0 업데이트 발표 (번역)
https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html
러스트는 누구든 믿음직하고 효과적인 소프트웨어를 만들 수 있게 도와주는 끝내주는 언어입니다.
만약 rustup을 통해서 Rust의 이전버전을 설치해놓은 상대라면, 업데이트는 아주 쉽습니다. 그냥 이렇게 치면 돼요.
rustup update stable
rustup을 설치한 적이 없다면, 우리 웹사이트의 설치 페이지에서 받을 수 있습니다. 그리고 깃허브에서 이번 버전에 대한 릴리즈 노트를 참조해보세요.
미래의 릴리즈를 테스트해서 러스트 팀을 돕고 싶다면, 로컬에서 베타 채널(rustup default beta) 또는 nightly 채널(rustup default nightly)로 업데이트하는 것을 고려할 수 있습니다.
버그를 발견했다면 리포트해주세요!
1.75.0 stable에는 무엇이 있나요?
트레잇에서의 async fn과 return-position impl Trait
지난 주에 소개했던 대로 Rust 1.75는 trait에서 async fn 및 -> impl Trait 사용을 지원합니다.
그러나 이 초기 릴리스에는 해당 포스트에 설명된 몇 가지 제한 사항이 있습니다.
향후 릴리스에서는 이러한 제한이 해제될 것으로 예상됩니다.
Pointer byte offset APIs
raw 포인터(*const T 및 *mut T)는 주로 T 단위로 작동하는 연산을 지원하는 데 사용됩니다.
예를 들어 <*const T>::add(1)는 포인터의 주소에 size_of::
어떤 경우에는 바이트 오프셋으로 하는 작업이 더 편리하며, 이러한 새 API는 caller가 먼저 *const u8/*mut u8로 변환할 것을 요구하지 않습니다.
pointer::byte_add
pointer::byte_offset
pointer::byte_offset_from
pointer::byte_sub
pointer::wrapping_byte_add
pointer::wrapping_byte_offset
pointer::wrapping_byte_sub
rustc에 대한 Code layout 최적화
Rust 컴파일러는 이번 릴리스를 통해 계속해서 더 빨라지고 있습니다.
바이너리 릴리스에 BOLT를 적용하는 것을 포함해서,
벤치마크에서 평균 wall time이 2% 향상되었습니다.
이 도구는 대부분의 Rustc 코드가 포함된 librustc_driver.so 라이브러리의 레이아웃을 최적화하여 캐시 활용도를 향상시킵니다.
또한 우리는 이제 -Ccodegen-units=1을 사용하여 Rustc를 빌드하고 있으며, 이는 LLVM에서 더 많은 최적화 기회를 제공합니다.
이 최적화를 통해 벤치마크에서 각각 1.5%의 향상을 얻어낼 수 있었네요.
이번 릴리스에서는 이러한 최적화가 x86_64-unknown-linux-gnu 컴파일러로 제한되지만, 시간이 지남에 따라 더 많은 플랫폼으로 확장될 것으로 기대합니다.
Stable이 된 API들
Atomic::from_ptr*
FileTimes
FileTimesExt
File::set_modified
File::set_times
IpAddr::to_canonical
Ipv6Addr::to_canonical
Option::as_slice
Option::as_mut_slice
pointer::byte_add
pointer::byte_offset
pointer::byte_offset_from
pointer::byte_sub
pointer::wrapping_byte_add
pointer::wrapping_byte_offset
pointer::wrapping_byte_sub
이 API들은 이제 const context에서도 사용가능합니다.
Ipv6Addr::to_ipv4_mapped
MaybeUninit::assume_init_read
MaybeUninit::zeroed
mem::discriminant
mem::zeroed
기타 변경점
이외의 모든 변경사항은 각각 Rust, Cargo, Clippy에서 확인하세요.
1.75.0의 컨트리뷰터들에게
1.75.0의 완성엔 수많은 사람들이 함께했습니다. 전부 여러분이 없었다면 불가능했을 거에요.