「Rust 1.39」リリース、async/.awaitが安定に

 Mozillaのプログラミング言語「Rust」の開発チームは11月7日、最新版となる「Rust 1.39.0」の公開を発表した。

 Rust 1.39は9月に公開されたバージョン1.38に続く最新版。言語面での最大の特徴として、1.36で安定扱いとなったFutureトレイトに続き、asyncと.awaitが安定扱いとなった。非同期に実行される関数やブロックを定義するための仕組みで、async付きで定義された関数は解決もしくは未解決という状態を持つ「Future」オブジェクトを返し、それに対し.awaitを呼び出すことでその結果を取得できる。

 また、関数、クロージャ、関数ポインタ型などの引数に「cfg」や「cfg_attr」、「allow」、「warn」、「deny」、「forbid」などの属性を指定できるようになるなどの変更点もある。

 コンパイラやライブラリも強化されている。Rust 1.31.0で導入されたNon-Lexical Lifetimes(NLL)では、それ以前の借用チェッカー(borrow checker)に存在していたバグを修正した結果一部のコードに影響が出たため、問題のあるコードに対する仕様を段階的に変更していくことが決定されており、これに従って本バージョンでは従来警告として扱われていたものがエラーとなるようになった。この修正は次期版のRust 1.40リリース時には古いバージョンのRustにも適用されるという。

 そのほか、Pin::into_innerなど3種類のAPIが安定扱いとなった。パッケージマネージャーのCargoでは「–all」フラグが「–workspace」に名称変更され、「–all」は非推奨となった。

Rust
https://www.rust-lang.org