「Rust 1.10」リリース、パニック発生時の処理を選択可能に

 Mozillaが開発を進めるプログラミング言語「Rust」プロジェクトが7月7日、最新版となる「Rust 1.10」を公開した。パニック発生時にランタイムレベルで終了できるフラグなどが加わっている。

 Rustは高速、スレッド安全性などのセキュリティを特徴とするプログラミング言語。Rust 1.10は5月末に公開されたRust 1.9に続く最新版で、要求が多かった機能として、「-C panic=abort」フラグを導入した。Rustでは想定外の処理(panic)が発生した場合、その処理を巻き戻す機能が実装されているが、このオプションを利用することでpanicの発生時に巻き戻しではなくabort(終了)することができる。予期しない問題に対しては多くの場合で終了が選択肢として望ましいという考えに基づくもの。また、これによって生成されるコードが減るため、バイナリサイズやコンパイル時間の削減といった効果もあるという。

 新しいクレート(crate)タイプとして「cdylib」も導入した。別の言語に組み込まれる動的ライブラリとしてRustコードをコンパイルするためのツールで、フォーマットはRFC 1510で定義されている。これにより、既存のdylibダイナミックライブラリフォーマットは、Rustプロジェクト内で使う動的なライブラリを作成するときにのみ使うことになる。なお、1.10では、コンパイラではcdylibサポートしているが、Rustのパッケージ管理ツールである「Cargo」ではサポートされていないとのこと。

 ユーザーに直接影響しない変更として、Rustの開発手法を変更したことも報告している。Rustをその一つ前の安定版でビルドするというもので、次期1.11は1.10を使ってビルドするという。これによりブートストラップ関連やディストリビューションのメンテナンスを簡素化するとしている。

 このほか、コンパイラの性能、ライブラリの安定性も強化され、約70のAPIが安定扱いとなった。パッケージマネジャーCargoでもpanicの実装を制御できるprofile.*.panicオプションのほか、「cargo install」コマンドで「–force」フラグが加わりるなどの強化が施された。

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