オープンソースのプログラミング言語であるRustの開発チームは、最新バージョンとなる「Rust 1.65.0」の安定版を11月3日(現地時間)にリリースした。
「Rust 1.65.0」では、ライフタイム、型、constジェネリックが、ジェネリック関連型(GAT)として定義できるようになった。GATは非常に汎用性が高いため、従来は記述不可能だった多くのパターンを記述できるようになる。
あわせて、論駁可能なパターンと、それに一致しないパターンの場合に実行されるelseブロックを持つlet-elseステートメントが導入された。通常、letステートメントで用いられる論駁不可能なパターンは単一の変数バインディングであるものの、構造体、タプル、配列といった複合型のアンパックも可能であるが、列挙型のバリアントを取り出すなどの条件付き一致には対応していない。let-elseステートメントを使用すると、論駁可能なパターンは周囲のスコープ内の変数に一致してバインドするか、パターンが一致しない場合に分岐(break、return、panic!など)できる。
さらに、単純なブロック式をbreakターゲットとしてラベル付けし、そのブロックを早期に終了させることが可能になるとともに、Linuxにおける分割デバッグ情報が安定して使用できるようになっている。また、いくつかのAPIが安定版になったほか、一部のAPIがconstコンテキストで使えるようになった
なお、RLSの非推奨化の最終段階として、RLSを小規模なLSPサーバに置き換え、非推奨の警告を表示することで、ユーザーへのrust-analyzerへの移行を求めている。
そのほか、最適化されたコンパイルでMIRインライン化が有効になり、実際のクレートのコンパイル時間が3~10%向上するとともに、ビルドをスケジュールする際に、Cargoが保留中のジョブのキューをソートしてパフォーマンスを向上させるようになった。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です