Rust 1.99.0 Release Review: What’s New?
Share
Summary
Rust 1.99.0のリリース内容を解説。C言語との相互運用性を高める可変長引数関数のサポートや、生のポインタからレイアウト情報を取得するAPI、Box::leakに関するベストプラクティスなどを紹介します。
Highlights
C言語の可変長引数関数のサポート00:00:17
Rust 1.99.0の最大の変更点として、C言語スタイルの可変長引数関数(Variadic functions)がサポートされました。これまでRustからCの可変長引数関数を呼び出すことは可能でしたが、Rust側でそれらを定義できるようになり、相互運用性が大幅に向上しました。
生のポインタからのレイアウト情報取得00:03:21
低レベルなメモリ操作やアロケーター作成に役立つ新しいAPIが安定化されました。これにより、スライスなどのサイズが不定な型を含む生のポインタから、そのサイズやレイアウト情報を直接取得することが可能になりました。
Box::leakからBox::into_rawへの推奨パターンの移行00:04:47
Box::leakのドキュメントが更新され、メモリを長期間保持する場合の推奨パターンが変わりました。以前のround trip的なアプローチよりも、Box::into_rawを使用して手動でメモリ管理と所有権をコントロールする手法が推奨されるようになっています。
その他APIの安定化とまとめ00:05:56
その他の標準ライブラリにおけるAPIの安定化について触れました。これによりカスタム実装が必要だった処理がより簡潔に記述できるようになります。最後に、rustup update stableを実行して最新版へアップデートすることを推奨しています。