Rust 1.98.1란?: 2026년 9월 vtable 오컴파일과 널 전 해설
Rust가 9월 3일 1.98.1이 1.98.0 vtable 오컴파일을 고쳤다고 썼다. 널은 함수 포인터 자리. 공개 이슈는 rust-lang/rust#161441.
2026년 9월 3일 Rust Release Team이 공식 블로그에 포인트 릴리스 1.98.1을 냈다. 페이지가 적은 수정은 하나다. vtable 생성의 오컴파일. 공식 업그레이드 문구는 rustup update stable.
검색어는 이 포인트 번호다. 블로그는 Rust 1.98.0에서 어떤 경우 rustc가 trait 객체 vtable의 함수 포인터 자리에 널 포인터를 넣었다고 쓴다. 내보낸 코드의 미정의 동작이다. 이 글은 그 블로그와 공개 이슈 번호만 대조한다. rustup 안내서가 아니다.
공개문이 적은 것
| 항목 | 공개 서술 | 경계 |
|---|---|---|
| 결함 | vtable에서 함수 포인터여야 할 자리가 널 | 일부 상황에서만 |
| 결과 | 내보낸 코드의 미정의 동작 | 널을 읽은 뒤 segfault만이기도 함 |
| 업그레이드 | rustup update stable | 공식 한 문장, 튜토리얼 아님 |
| 추적 | RELEASES.md가 rust-lang/rust#161441을 가리킴 | 언어 기능 출시가 아님 |
이 릴리스를 읽는 법
- 1
1.98.0 패치다
공식은 오컴파일을 유일한 기능 절에 둔다. 1.98.0 언어 항목의 재출시도, 패키지 관리자가 언어를 바꾼 것도 아니다.
- 2
널은 함수 포인터 자리에 있다
공식 문장: in some circumstances, rustc would incorrectly generate a trait object vtable with a null pointer where a function pointer should be.
- 3
미정의 동작은 충돌만이 아니다
공식은 널을 읽은 뒤 segfault“만”이기도 하지만, 임의 효과의 구실이 될 수도 있다고 쓴다. UB의 전형이다.
- 4
공개 이슈에 재현 경계가 있다
이슈 161441 제목은 rustc emits a vacant vtable slot for a callable boxed async service. 보고는 같은 Rama 소스가 1.97.1에서는 되고 1.98.0에서는 죽었다고 쓴다.
같은 페이지와 이슈의 나머지
충돌 징후는 이슈에 있다
공개 보고는 macOS가 SIGSEGV와 pc=0을 냈다고 쓴다. 생성된 호출 쪽은 vtable + 0x18에서 Service 메서드를 읽고 0으로 분기했다.
1.98.0 날짜는 이 패치 페이지에 없다
rust-lang/rust의 RELEASES.md는 1.98.0을 2026-08-20, 1.98.1을 2026-09-03으로 적는다. 패치 페이지는 1.98.0 언어 항목을 다시 나열하지 않는다.
공식은 여전히 beta / nightly 시험을 청한다
블로그는 이후 버전을 시험하려면 로컬과 CI에서 rustup default beta 또는 nightly를 쓰고 버그를 보고하라고 쓴다.
경계
공식은 이 글에 1.98.2 날짜를 쓰지 않는다. 다음은 blog.rust-lang.org/2026/09/03/Rust-1.98.1/다. 계정 벽 없는 짧은 회의만 필요하면 wbstorm 방 번호면 된다. 방 만들기와 참가와 화이트보드 기초도 보라.
# Sources
# blog.rust-lang.org/2026/09/03/Rust-1.98.1/
# github.com/rust-lang/rust/issues/161441
# 2026-09-031.98.0 기능의 재출시인가?
아니다. 이 글은 vtable 오컴파일 포인트 릴리스다. RELEASES.md는 1.98.0을 8월 20일로 적는다.
항상 segfault인가?
공식은 널을 읽은 뒤 segfault“만”이기도 하지만, 미정의 동작은 임의 효과의 구실이 될 수도 있다고 쓴다.
제품 사용 설명서인가?
아니다. 이 글은 9월 3일 Rust 블로그와 공개 이슈만 대조하며 rustup 안내서가 아니다.