Rust 1.80がリリース ―遅延初期化が安定して利用可能に

The Rust teamは2024年7月25日、プログラミング言語Rustの最新バージョンRust 1.80をリリースした。

Rust 1.80では遅延初期化を行うLazyCell型とLazyLock型が標準ライブラリで採用される。これらの「遅延」型は、リソースへの最初のアクセスまでデータの初期化を遅らせることができる。これによりプログラムの実行時間を短縮し、無駄な計算やメモリの確保を抑えることができる。1.70で採用されたOnceCell型とOnceLock型に似ているが、LazyCell/LazyLockでは初期化関数がセルに含まれているためこれまでの遅延型よりも安定化されている。

LazyLockはスレッドセーフなので同じ初期化を何度も行わず、最初の1度だけ初期化を実行する。LazyCellもスレッド同期なしで同じことを行うが、staticで必要となるSyncを実装しておらず、スレッドごとに個別の初期化を使用する。どちらのタイプもスレッドセーフの必要に応じて他のデータ構造でも使用できるため、遅延初期化がどこでも使用可能となった。

コンパイラでは、条件付きコンパイルでプラットフォームや環境などを指定するcfg設定で、設定ファイルにあるすべてのcfg名が想定される構成名/値と一致するかどうかを自動でチェックする機能が実装された。cfg設定が意図したものと実際にコンパイルされているもの間で一貫していることが保証され、開発プロセスの早い段階で潜在的なバグやエラーを見つけるのに役立つ。

また、パターンマッチングの範囲指定では、a..b..bといった排他的な範囲が指定できるようになった。

Rust 1.80の詳しい変更点は、Rust 1.80.0のリリースノートを参照。

おすすめ記事

記事・ニュース一覧