オープンソースのプログラミング言語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日(現地時間)を予定する。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です