원문 캡처 · blog.rust-lang.org
원문 캡처 · blog.rust-lang.org

Rust 팀이 포인트 릴리스 Rust 1.99.1을 공개했다. 이번 버전은 이전 릴리스에서 발생한 회귀 문제 세 가지를 수정했다.

rustup으로 이전 버전을 설치했다면 다음 명령으로 안정화 채널을 업데이트할 수 있다.

rustup update stable

아직 설치하지 않았다면 rustup을 내려받을 수 있다.

이번 릴리스의 수정 사항은 다음과 같다.

  • wcslen 심볼 누락: 일부 Rust 타깃에서 wcslen이 없어 링크 오류가 발생하던 문제를 수정했다. Rust의 컴파일러 내장 함수 라이브러리에 대체 구현을 추가했다. LLVM의 loop-idiom-wcslen 패스는 최적화를 위해 이 함수를 호출할 수 있지만, 일부 타깃에서는 libc 등에 해당 함수가 없었다. 특히 std를 사용하는 UEFI 타깃은 사전 컴파일된 표준 라이브러리에 호출이 포함된 경우 문제가 발생했다. 비슷한 사용자 코드에서도 재현됐다.
  • x86_64에서 FFI bool 반환값 오컴파일: FFI를 통해 bool을 반환하는 Rust 함수가 반환 레지스터의 비트 1~7을 지정하지 않아 호출자가 0이나 1이 아닌 값을 관찰할 수 있었다. ABI 요구사항에 따라 반환 타입을 다시 0 확장하도록 표시했다.
  • macOS에서 rust-lld가 libLLVM을 불러오지 못하는 문제: rustup 프록시 없이 컴파일러를 실행할 때 적절한 라이브러리 검색 경로가 설정되지 않아 링커가 실행되지 않을 수 있었다. 이제 rust-lld에 libLLVM.dylib이 있는 디렉터리를 가리키는 rpath 항목을 넣었다.

향후 릴리스 테스트에 참여하려면 로컬 환경이나 CI에서 베타 채널(rustup default beta) 또는 나이틀리 채널(rustup default nightly)을 사용할 수 있다. 발견한 버그는 Rust 이슈 트래커에 보고하면 된다.