Rust 1.46 プログラミング言語のリリース

公開済み システム プログラミング言語のリリース 1.46 さび, Mozilla プロジェクトによって設立されました。 この言語はメモリの安全性に重点を置き、自動メモリ管理を提供し、ガベージ コレクタやガベージ コレクタを使用せずに高いタスクの並列処理を実現するツールを提供します。 ランタイム.

Rust の自動メモリ管理は、ポインタ操作時のエラーを排除し、解放後のメモリ領域へのアクセス、null ポインタの逆参照、バッファ オーバーランなど、低レベルのメモリ操作から生じる問題を防ぎます。 プロジェクトごとにライブラリを配布し、確実にアセンブリし、依存関係を管理するためのパッケージ マネージャーが開発されています。 貨物を使用すると、プログラムに必要なライブラリをワンクリックで取得できます。 リポジトリはライブラリをホストするためにサポートされています crates.io.

メイン イノベーション:

  • 「const fn」式を使用して定義された関数の機能が拡張され、通常の関数として呼び出すだけでなく、定数の代わりに任意のコンテキストで使用できるようになりました。 これらの関数は実行時ではなくコンパイル時に計算されるため、定数からのみ読み取る機能など、特定の制限が適用されます。

    新しいリリースでは、このような関数でのブール演算子 (「&&」および「||」) の使用禁止が解除され、「if」、「if let」、「match」構造の使用が許可されます。
    「while」、「while let」、「loop」のほか、式「&[T]」を使用してスライス (スライス、動的配列) に変換する機能も提供します。 「const fn」関数でこれらの機能を使用すると、リソースを大量に消費する一部の操作をコンパイル段階に移すことができます。 たとえば、「const-sha1」の実装により、コンパイル時に SHA-1 ハッシュを計算できるようになり、Rust の WinRT バインディングがほぼ 40 倍高速化されます。

  • エラー メッセージをより有益なものにするために、「#[track_caller]」属性のサポートが安定しました。これは、型が正しく使用されない場合にパニックを引き起こす可能性がある unwrap などの関数に役立ちます。 指定された属性は、エラー メッセージに発信者の位置を出力するためにパニック ハンドラーによって使用されます。
  • 「const」属性は、定数の代わりに任意のコンテキストで使用できるかどうかを決定し、std::mem::forget メソッドで使用されます。
  • 安定化された Option::zip および vec::Drain::as_slice を含む、API の新しい部分が安定化カテゴリに移動されました。
  • パッケージマネージャーCargo内 追加した パッケージのコンパイル時に設定される新しい環境変数のサポート: CARGO_BIN_NAME (結果の実行可能ファイルの名前)、CARGO_CRATE_NAME (パッケージ名)、CARGO_PKG_LICENSE (マニフェストで指定されたライセンス)、CARGO_PKG_LICENSE_FILE (ライセンス ファイルへのパス)。

出所: オープンネット.ru

コメントを追加します