30秒で判断
- 対応すべき人: Rust を利用しており、C ABI との連携(FFI)で可変長引数を扱う方、あるいは属性マクロをモジュール宣言に使いたい方。
- 対応不要な人: Rust を使用していない方。安定版の追従を急がない方(ただし新しい lint・FCW による警告増加に注意)。
- 確認コマンド:
rustc --version(またはcargo --version)で現在のバージョンを確認。
この変更が意味すること
Rust 1.99.0 は、言語機能の安定化と新しい lint の追加を含む minor リリースです。とくに C-variadic(C ABI の可変長引数)関数定義の安定化により、FFI 周りの表現力が向上します。
一方で、新しい lint の追加や「将来互換性警告(FCW: Future Compatibility Warning)」を伴う変更があるため、アップデート後にビルド時の警告が増える可能性があります。CI で警告内容を確認しながら追従すると安全です。
主な変更点
C-variadic 関数定義の安定化
可変長引数を取る C ABI 関数を定義できるようになりました(PR #155697)。あわせて、#[unsafe(naked)] 関数を用いた C-variadic 関数定義も安定化されています(PR #159746)。
#[my_macro] mod foo; の安定化
モジュール宣言に対して属性マクロを適用できる構文が安定化されました。マクロによるモジュール単位の処理が書きやすくなります。
新しい lint の追加・拡張
raw_borrows_via_references(allow-by-default): 参照が即座に raw borrow へ decay するケースを検出する lint を追加(PR #138230)。unconditional_panic: chunks/windows のサイズが 0 で panic する関数呼び出しにも検出対象を拡張(PR #153563)。
never 型まわりの解決変更(FCW)
trait メソッドが調整済みの never 型で解決されるようになりました(将来互換性警告を伴う/PR #156047)。また、推論変数から trait オブジェクトへの coercion に関する変更も含まれます。
EOL / サポート状況
| バージョン | ステータス | EOL |
|---|---|---|
| 1.99 | active | 未定 |
| 1.98 | active | 未定 |
| 1.97 | eol | 2026-08-20 |
| 1.96 | eol | 2026-07-09 |
| 1.95 | eol | 2026-05-28 |
Rust は stable が約6週間ごとに更新され、基本的に最新版への追従が推奨されます。1.97 以前はすでにサポート対象外です。
開発者への影響
- C ABI との FFI 連携で可変長引数を扱う場合、これまで unstable だった機能が stable で使えるようになります。
- 新しい lint と FCW により、既存コードで警告が増える可能性があります。アップデート後は警告内容を確認してください。
#[my_macro] mod foo;を使うマクロ・コード生成の設計自由度が上がります。- 破壊的な非互換は FCW として段階的に通知されるため、警告のうちに対応しておくと将来のアップグレードが楽になります。
アップデート方法
rustup update stable
# バージョン確認
rustc --version
アップデート後は cargo build / cargo clippy で新しい lint・FCW の警告を確認し、CI が通ることを検証してから本番のツールチェーンを切り替えてください。
データソース: GitHub Releases API, endoflife.date AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
