
Rust 공식 블로그에 따르면 Rust 팀은 2026년 7월 9일 안정판 1.97.0을 공개했다. 이번 버전은 컴파일 산출물의 심볼 이름을 다루는 새 맹글링 방식 v0를 안정판 기본값으로 전환하고, Cargo에서 빌드 경고를 더 직접적으로 제어할 수 있게 한 점이 핵심이다.
심볼 맹글링은 컴파일된 객체 파일과 바이너리 안에서 함수와 정적 항목 등을 고유하게 식별하기 위해 이름을 변환하는 과정이다. Rust는 기존에 C++에서도 쓰이는 Itanium ABI 기반 방식을 사용해 왔지만, Rust 1.97.0부터는 Rust 전용 v0 방식이 stable 채널의 기본값이 됐다. Rust 팀은 새 방식이 제네릭 매개변수의 실제 값을 보존하고, 기존 방식에서 생기던 일관성 문제를 줄인다고 설명했다.
이 변화는 디버깅, 프로파일링, 도구 생태계에 영향을 줄 수 있다. 심볼 이름은 개발자가 직접 작성하는 소스 코드와 일대일로 보이는 정보는 아니지만, 네이티브 바이너리 분석 도구나 크래시 리포트, 프로파일러가 Rust 코드를 해석할 때 중요한 단서가 된다. Rust 팀은 기존 맹글링 방식은 nightly에서만 선택할 수 있으며, 향후 완전히 제거할 계획이라고 밝혔다.
Cargo에도 CI 환경에서 체감할 수 있는 변화가 들어갔다. 그동안 경고를 오류처럼 다루려면 일반적으로 RUSTFLAGS=-Dwarnings를 사용했다. Rust 1.97.0에서는 Cargo 설정으로 경고를 허용, 표시, 거부하도록 제어할 수 있다. 예를 들어 CI에서는 CARGO_BUILD_WARNINGS=deny를 사용해 경고가 남은 빌드를 실패 처리할 수 있고, 로컬 점검 중에는 allow로 경고 출력을 줄일 수 있다. Rust 팀은 이 방식이 기존 RUSTFLAGS 접근보다 빌드 캐시를 불필요하게 무효화하지 않는 장점이 있다고 설명했다.
링커 출력 처리도 바뀌었다. Rust 1.97.0은 링크가 성공하더라도 링커가 낸 메시지를 기본적으로 숨기지 않고 경고로 표시한다. 그동안 성공한 링크 과정의 출력은 가려지는 경우가 많았지만, 일부 메시지는 실제 설정 문제나 플랫폼별 위험 신호를 드러낼 수 있다. Rust 팀은 nightly 적용 과정에서 이 변경으로 이미 여러 결함을 수정했다고 밝혔다.
표준 라이브러리와 도구chain의 세부 안정화도 함께 포함됐다. 정수 타입의 bit_width, highest_one, lowest_one 계열 API와 NonZero 정수 타입의 관련 API가 안정화됐고, char::is_control은 const 문맥에서도 안정적으로 사용할 수 있게 됐다. 다만 이번 릴리스는 대규모 문법 변화보다는 컴파일러 출력, CI 운영, 도구 호환성에 무게가 실린 업데이트로 볼 수 있다.
개발자는 rustup update stable 명령으로 Rust 1.97.0을 설치할 수 있다. 기존 프로젝트에서는 심볼 이름 변화와 링커 경고 노출, Cargo 경고 정책이 빌드 로그나 CI 설정에 미치는 영향을 확인하는 것이 필요하다. 특히 바이너리 분석 도구, 크래시 리포팅, 자체 demangling 로직을 쓰는 조직은 v0 맹글링 기본화에 맞춰 도구chain 호환성을 점검해야 한다.
출처: Rust Blog https://blog.rust-lang.org/2026/07/09/Rust-1.97.0/
출처: Rust Release Notes https://doc.rust-lang.org/stable/releases.html#version-1970-2026-07-09