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 に、関数ポインタがあるべき位置へヌルポインタを書いたと書く。これは出したコードの未定義動作である。本稿はそのブログと公開 issue 番号の照合であり、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
公開チケットに再現の境界がある
issue 161441 の題は rustc emits a vacant vtable slot for a callable boxed async service。報告は同一の Rama ソースが 1.97.1 では動き、1.98.0 では落ちたと書く。
同頁とチケットのその他
落ち方は issue に書かれている
公開報告は macOS が SIGSEGV と pc=0 を出したと書く。生成された呼び出し側は vtable + 0x18 から Service メソッドを読み、ゼロへ分岐した。
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の部屋IDで足りる。部屋の作成と参加とホワイトボードの基礎も参照。
# 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 ブログと公開 issue の照合であり、rustup の手引ではない。