Rust 1.93.0 출시! Rust 2.x는 과연 나올까?

by DD
4개월 전
조회수 34

Rust 1.93.0 버전이 출시되었으며, musl 1.2.5 업데이트를 통해 정적 링크(Static Linking) 바이너리의 호환성이 개선됨

글로벌 할당자(Global Allocator)가 스레드 로컬 저장소(Thread-Local Storage)를 사용할 수 있도록 표준 라이브러리 내부 구조가 변경됨

`asm!` 매크로 내에서 `cfg` 속성을 사용하여 인라인 어셈블리(Inline Assembly) 코드의 조건부 컴파일(Conditional Compilation)이 가능해짐

Rust 2.x 버전에 대한 질문에 대해, Rust 팀은 하위 호환성(Backward Compatibility)을 유지하는 방향으로 개발할 것이라고 답변함

musl 1.2.5 업데이트와 정적 링크(Static Linking) 개선

Rust 1.93.0은 *-linux-musl 타겟을 위해 musl 1.2.5를 번들로 제공한다. 특히, DNS 리졸버(DNS Resolver) 개선으로 인해 정적 링크된 바이너리의 네트워크 기능 안정성이 향상되었다. 이는 대규모 DNS 레코드(DNS Record) 및 재귀 네임서버(Recursive Nameserver) 환경에서 더욱 두드러진다. 하지만, 이전 버전과의 호환성 문제로 인해 libc crate의 업데이트가 필요하다.

글로벌 할당자(Global Allocator)의 스레드 로컬 저장소(Thread-Local Storage) 지원

Rust 1.93.0은 글로벌 할당자가 `std`의 `thread_local!` 및 `std::thread::current`를 재진입(Re-entrancy) 문제 없이 사용할 수 있도록 지원한다. 이는 시스템 할당자를 사용하여 구현되며, 글로벌 할당자 구현의 유연성을 높인다. 기술적으로 보면, 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 안전성을 확보하는 데 기여한다.

asm! 매크로 내 cfg 속성 지원

Rust 1.93.0에서는 `asm!` 매크로 내에서 `cfg` 속성을 사용하여 인라인 어셈블리 코드의 조건부 컴파일을 지원한다. 이전에는 전체 `asm!` 블록을 반복해야 했지만, 이제 개별 구문에 `cfg`를 적용하여 코드의 가독성을 높이고 유지 보수를 용이하게 한다. 특히, 타겟 아키텍처(Target Architecture)에 따라 다른 어셈블리 코드를 사용할 때 유용하다.

Rust 2.x 버전에 대한 커뮤니티 논의

커뮤니티에서는 Rust 2.x 버전에 대한 질문이 있었지만, Rust 팀은 하위 호환성을 유지하는 방향으로 개발할 것이라고 밝혔다. Rust의 안정성 보장(Stability Guarantee)은 기존 코드가 계속 컴파일되도록 하는 것이 핵심이며, 새로운 버전 출시에 신중을 기할 것이라고 언급했다. 에디션(Editions) RFC를 통해 '2.0'이 아닌 다른 방식으로 언어 발전을 모색할 것으로 보인다.

Announcing Rust 1.93.0

댓글 0

첫 번째 댓글을 남겨보세요!