Rust 1.92.0 발표

발행: (2025년 12월 11일 오전 09:00 GMT+9)
5 min read
원문: Rust Blog

Source: Rust Blog

Rust 1.92.0 릴리스

Rust 팀은 새로운 버전인 1.92.0을 발표하게 되어 기쁩니다. Rust는 모두가 신뢰할 수 있고 효율적인 소프트웨어를 만들 수 있게 해주는 프로그래밍 언어입니다.

rustup으로 이전 버전의 Rust를 설치한 경우, 다음 명령으로 1.92.0을 받을 수 있습니다:

rustup update stable

아직 설치하지 않았다면, 웹사이트의 해당 페이지에서 rustup을 받으세요 그리고 1.92.0에 대한 자세한 릴리스 노트를 확인하세요.

미래 릴리스를 테스트해 주고 싶다면, 베타 채널(rustup default beta)이나 나이틀리 채널(rustup default nightly)을 사용하도록 로컬에서 업데이트해 보세요. 발견한 버그는 언제든지 보고해 주세요!

1.92.0 stable에 포함된 내용

기본 거부(deny‑by‑default) never 타입 린트

언어 및 컴파일러 팀은 never 타입의 안정화 작업을 계속하고 있습니다. 이번 릴리스에서는 never_type_fallback_flowing_into_unsafedependency_on_unit_never_type_fallback 미래 호환성 린트를 기본 거부(deny‑by‑default)로 만들었으며, 감지되면 컴파일 오류가 발생합니다.

이 린트는 여전히 #[allow]로 억제할 수 있으며, 영향을 받는 크레이트를 직접 빌드할 때만 작동합니다(의존성으로 빌드될 때는 경고만 표시됩니다). 약 500개의 크레이트가 영향을 받습니다. 자세한 사유는 Language Team의 평가를 참고하세요.

unused_must_use가 이제 Result에 대해 경고하지 않음

unused_must_use 린트는 #[must_use] 결과가 무시될 때 경고합니다. 이제 Result(예: Result)와 ControlFlow를 무시하도록 변경되어, 절대 발생하지 않을 오류에 대한 경고를 방지합니다.

use core::convert::Infallible;

fn can_never_fail() -> Result {
    // …
    Ok(())
}

fn main() {
    can_never_fail(); // No warning
}

때때로 오류 타입이 불가능할 수 있는 연관 오류 타입을 가진 트레이트와 함께 사용할 때 유용합니다:

trait UsesAssocErrorType {
    type Error;
    fn method(&self) -> Result;
}

struct CannotFail;
impl UsesAssocErrorType for CannotFail {
    type Error = core::convert::Infallible;
    fn method(&self) -> Result {
        Ok(())
    }
}

struct CanFail;
impl UsesAssocErrorType for CanFail {
    type Error = std::io::Error;
    fn method(&self) -> Result {
        Err(std::io::Error::other("something went wrong"))
    }
}

fn main() {
    CannotFail.method(); // No warning
    CanFail.method();    // Warning: unused `Result` that must be used
}

Linux에서 -Cpanic=abort가 활성화된 경우에도 unwind 테이블을 생성

이전에는 -Cpanic=abort와 함께 백트레이스가 Rust 1.23 이후 동작을 멈췄습니다. 워크어라운드(-Cforce-unwind-tables=yes)는 1.45에서 안정화되었습니다. Rust 1.92에서는 -Cpanic=abort가 지정된 경우에도 기본적으로 unwind 테이블을 생성합니다. 이를 비활성화하려면 -Cforce-unwind-tables=no를 사용하세요.

#[macro_export] 입력 검증

컴파일러가 macro_export에 허용되는 인자에 대해 더 엄격한 검사를 수행하도록 업데이트되었으며, 이제 “기본 거부(deny‑by‑default) 린트”로 업그레이드되어 의존성에서도 보고됩니다. 자세한 내용은 해당 PR을 확인하세요.

안정화된 API

Const‑stable API

이전에는 안정화된 API가 이제 const 컨텍스트에서도 안정화되었습니다:

기타 변경 사항

  • Rust 1.92.0 전체 변경 로그:
  • Cargo 1.92.0 변경 로그:
  • Clippy 1.92.0 변경 로그:

1.92.0 기여자

많은 분들이 모여 Rust 1.92.0을 만들었습니다. 여러분 없이는 이룰 수 없었어요. 감사합니다!

Back to Blog

관련 글

더 보기 »