Rust 1.97.0, 무엇이 달라졌나?
Rust 1.97.0 정식 버전이 출시되어 심볼 맹글링(Symbol Mangling) v0이 기본으로 활성화됨
Cargo에서 경고(Warnings) 제어 기능이 추가되어 CI 환경에서의 빌드 성공 기준 설정이 용이해짐
링커 메시지(Linker Messages)가 기본적으로 표시되어 디버깅에 도움을 줄 것으로 기대됨
심볼 맹글링(Symbol Mangling) v0 기본 활성화
커뮤니티에서는 Rust 1.97.0에서 심볼 맹글링(Symbol Mangling) v0이 기본으로 활성화된 점에 주목하고 있습니다. 기존의 Itanium ABI 기반 맹글링 방식은 제네릭 파라미터(Generic Parameter) 값 추적의 불일치 등 여러 단점을 가지고 있었으나, v0은 이러한 문제를 해결하고 더욱 일관된 이름 해석(Consistent Name Resolution)을 제공한다고 합니다. 이는 다른 Rust 프로그램과의 링크 시 발생할 수 있는 충돌을 줄여 빌드 안정성(Build Stability)을 높일 것으로 기대됩니다.
Cargo를 통한 경고(Warnings) 제어 기능 도입
이번 릴리스에서 가장 큰 호응을 얻은 기능 중 하나는 Cargo의 경고 제어 기능입니다. 기존에는 `RUSTFLAGS=-Dwarnings`와 같은 환경 변수를 통해 경고를 제어했으나, 이제는 `CARGO_BUILD_WARNINGS` 설정을 통해 `allow`, `warn`, `deny` 레벨로 경고 동작을 직접 제어할 수 있게 되었습니다. 특히 CI 환경에서 빌드 실패 기준을 명확히 설정하거나, 개발 중에는 임시로 경고를 무시하는 등 개발 워크플로우(Development Workflow) 유연성이 크게 향상되었다는 평가입니다.
링커 메시지(Linker Messages) 기본 표시
과거 Rust는 링커 출력을 기본적으로 숨겼으나, Rust 1.97.0부터는 링커 메시지(Linker Messages)가 경고 린트(Warning Lint)로 기본 활성화됩니다. 이는 링커 단계에서 발생하는 잠재적인 문제나 경고를 개발자가 놓치지 않도록 하여 디버깅 효율성(Debugging Efficiency)을 높일 것으로 보입니다. 일부에서는 이미 이 기능 덕분에 숨겨져 있던 문제점들이 발견되었다는 피드백도 있었습니다. 필요시 `Cargo.toml`의 `[lints.rust]` 섹션을 통해 비활성화할 수 있습니다.
안정화된 API 및 향후 계획
이번 릴리스에서는 `RepeatN`, `ffi::FromBytesUntilNulError` 등에 대한 `Copy` 지원과 `std::fs::File`의 `Send` 지원 등 여러 API가 안정화되었습니다. 또한, `<{integer}>::isolate_highest_one`과 같은 정수형 메서드들과 `NonZero` 관련 메서드들이 상수 컨텍스트(Const Context)에서도 안정화되었습니다. 커뮤니티에서는 이러한 API 안정화가 코드의 예측 가능성(Code Predictability)을 높이고, 향후 Rust의 성능 최적화(Performance Optimization)에 기여할 것으로 기대하고 있습니다.