「Rust 1.17」リリース、小規模な改善が中心のリリースに

 Mozillaでプログラミング言語「Rust」を開発する開発チームは4月27日、最新版「Rust 1.17.0」を公開した。ライフタイムに関連した強化などが加わっている。

 Rustは安全性、速度、並行性にフォーカスしたシステムプログラミング言語。Rust 1.17は、3月に公開されたRust 1.16に続く最新版となる。大きな変更点や新機能よりも、小規模な改善にフォーカスしている。

 constおよびstaticで宣言された変数のライフタイムが、デフォルトで「’static」ライフタイムとなるよう変更された。これによって変数の宣言時の「’static」表記を省略でき、表記をシンプルにできる。また、オブジェクトリテラルのプロパティ表記の省略記法や、文字列に対する「+」演算子使用時のエラーメッセージの改善も行われた。

 コンパイラ(rustc)では新たなオプション「–emit dep-info」が加わったほか、オンデマンドで型チェックを実行できるようになった。これはインクリメンタルな型チェックなどの将来の作業に向けた内部のリファクタリングだが、本バージョンでimplとwhereでのSelfの利用が可能になるなどの機能につながっているという。

 このほか、vtableメタデータの読み込みを最適化し、useでの未知のマクロのインポートに対して提案をするようになった。panic=abortでのEmscriptenのコード処理の改善なども行われている。

 最新版ではまた、Makefileベースの古いビルドシステムを削除した。Rust 1.15での新システム導入時に明らかにしていた計画に沿ったものとなり、今後ビルドシステムはCargo(パッケージマネージャ)を利用したものとなる。あわせて、crates.ioからのパッケージをRustのビルドシステムで使うことができるようになった。まずはmdBookが加わっており、すでに一部ドキュメントで利用されているという。

 ライブラリでは、19種類のAPIが安定扱いとなった。この中には、ArcまたはRcをコンシュームして新しい生ポインタを返すArc::into_raw、Rc::into_raw、生ポインタからArcまたはRcを返すArc::from_rawとRc::from_rawなどが含まれている。

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