CodeZine(コードジン)

特集ページ一覧

プログラミング言語Rust、安定性と後方互換性に関する問題を解決する「Edition」を導入

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/05/13 09:00

 オープンソースのプログラミング言語Rustの開発チームは、「Rust 2021 Edition」に関するプランを5月11日(現地時間)に発表した。

 「Edition」は、安定性と後方互換性に関する問題を解決するために導入させる仕組みで、後方互換性がない機能をリリースしたい場合は、新たな「Edition」の一部としてリリースされる。

 「Edition」はオプトインであり、既存のクレートは新しい「Edition」へ移行するまで変更を確認できないため、2018年以降の「Edition」を選択しない限り、最新バージョンのRustでもasyncはキーワードとして扱われない。選択はCargo.tomlの一部としてクレートごとに行われ、cargo newによって作成された新たなクレートは、常に最新の安定版に組み込まれる。

 「Edition」においてもっとも重要なルールは、ある「Edition」のクレートが他の「Edition」でコンパイルされたクレートとシームレスに相互運用できることで、新たな「Edition」への移行の決定が、他の人に影響を与えることなく、クレートが行える「プライベートなもの」であることを保証する。

 クレートの相互運用のため「Edition」で行える変更にはいくつかの制限があり、「Edition」で発生する変更は表層的なものになる傾向があり、すべてのRustコードは「Edition」に関係なく、最終的にコンパイラ内で同じ内部表現にコンパイルされる。

 なお、「Rust 2021 Edition」では、全モジュールへ自動的にインポートされるものすべてが含まれるモジュールであるpreludeに新しく追加されるほか、Cargoのためのリゾルバがデフォルトになり、クロージャが使用するフィールドのみのキャプチャ、より一貫性のあるpanic!()マクロなど、さまざまな変更が予定されている。

 開発チームは、これらの変更を9月までにマージしてテストを行い、「Rust 1.56.0」としてリリースし、安定版のリリースは10月21日(現地時間)を予定する。

関連リンク

  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5