BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Rust 1.20、関連定数などを追加

Rust 1.20、関連定数などを追加

原文(投稿日:2017/09/08)へのリンク

Rust 1.20には、関連定数、ライブラリの安定化、Cargoのクレデンシャル隠蔽改善などが含まれている。

Rust 1.20では、トレイト、構造体、列挙型に関連した定数を定義できる。たとえば、次のスニペットは、特定のインスタンスに関連しないID定数を定義しており、Struct::IDとして使うことができる。

struct Struct;

impl Struct {
    const ID: u32 = 0;
}

トレイトの関連定数を定義するとき、その値を定義する必要はなく、具体的なトレイトの実装で行うことができる。

trait Trait {
    const ID: u32;
}

struct Struct;

impl Trait for Struct {
    const ID: u32 = 5;
}

加えて、Rust 1.20では、マクロに影響を及ぼす多数のバグが修正されている。具体的にあげると、トークンがフラグメント指定子にマッチ可能か予測しようとしていたところだ。structs内の型変換の改善LLVM WebAssemblyバックエンドの有効化エラーメッセージの改善など、Rustコンパイラも改善されている。

標準ライブラリには、多数の改善と安定化がなされている。

  • unimplemented!マクロに参考となるメッセージを指定できるようになる。
  • minmaxがRustで書き直された
  • スタックプローブの提供により、ランタイム保証が改善された。これはスタックオーバーフローをうっかり無視する代わりに、セグメンテーションフォルトを引き起こす。カーネルの脆弱性を修正するために導入されたLinuxのスタックガードとの統合が改善された。
  • slice::sort_unstable_by_keyslice::sort_unstable_byslice::sort_unstableにより、不安定なソート関数が使えるようになった。不安定なソートとは、複数回ソートした時に、同値の要素が常に同じ順番になることを保証しないソートのことで、通常、コードはより高速に簡単になる。

最後に、RustのパッケージマネージャCargoは、crates.io認証トークンを~/.cargo/credentialsという別ファイルに保存するようになった。これにより、他のユーザーのアクセスからトークンを適切に保護することができる。

Rust 1.20の新機能の詳細を知りたければ、必ずリリースノートに目を通そう。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT