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

Mozilla プロジェクトによって設立され、現在は独立した非営利団体 Rust Foundation の後援の下で開発されているシステム プログラミング言語 Rust 1.55 のリリースが公開されました。 この言語はメモリの安全性に重点を置き、自動メモリ管理を提供し、ガベージ コレクターやランタイムを使用せずに高いタスクの並列処理を実現する手段を提供します (ランタイムは基本的な初期化と標準ライブラリのメンテナンスに短縮されます)。

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

主な革新:

  • Cargo パッケージ マネージャーには、ビルド中に発生する重複したエラーと警告をマージする機能があります。 「cargo test」や「cargo check --all-targets」などのコマンドを実行すると、異なるパラメーターを使用してパッケージが複数ビルドされるようになり、繰り返し発生する問題の概要が表示されるのではなく、ユーザーに表示されるようになりました。同じものを繰り返しビルドすると、同じ警告が複数表示されます。 $ Cargo +1.55.0 check —all-targets foo v0.1.0 をチェックしています 警告: 関数は使用されていません: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^ | = 注: '#[warn(dead_code)]' はデフォルトでオンです 警告: 'foo' (lib) が 1 つの警告を生成しました 警告: 'foo' (lib test) が 1 つの警告を生成しました (1 つの重複) 開発が終了しました [最適化されていない + debuginfo] ターゲット(秒)0.84秒
  • 標準ライブラリの浮動小数点解析コードは、より高速で正確な アイゼル-レミレ アルゴリズムを使用するように変更されました。これにより、桁数が非常に多い数値の丸めおよび解析に関して以前に観察されたいくつかの問題が解決されました。
  • テンプレートで閉じられていない範囲を指定する機能が安定しました (「X..」は、値 X で始まり、整数型の最大値で終わる範囲として解釈されます): match x as u32 { 0 => println! (“ゼロ!”), 1.. => println!(“正の数!”), }
  • std::io::ErrorKind でカバーされる拡張エラーのバリアント (エラーを NotFound や CouldBlock などのカテゴリに分類します)。以前は、既存のカテゴリに当てはまらないエラーは ErrorKind::Other カテゴリに分類され、サードパーティ コードのエラーにも使用されていました。既存のカテゴリに当てはまらないエラー用に、別の内部カテゴリ ErrorKind::Uncategorized が追加されました。ErrorKind::Other カテゴリは、標準ライブラリで発生しないエラー (io::Error を返す標準ライブラリ関数) に限定されています。 ErrorKind:: カテゴリ Other) は使用されなくなりました。
  • API の新しい部分は、安定化された特性のメソッドと実装を含め、安定化のカテゴリに移動されました。
    • バインド::クローン化
    • ドレイン::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • たぶんUninit::assume_init_mut
    • たぶんUninit::assume_init_ref
    • たぶんUninit::write
    • 配列::マップ
    • ops::コントロールフロー
    • x86::_bittest
    • x86::_bittestandcomplement
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • 「const」属性は、定数の代わりに任意のコンテキストで使用できるかどうかを決定し、str::from_utf8_unchecked メソッドで使用されます。
  • 第 64 レベルのサポートが powerpcXNUMXle-unknown-freebsd プラットフォームに実装されました。 XNUMX 番目のレベルには基本的なサポートが含まれますが、自動テスト、公式ビルドの公開、コードがビルド可能かどうかの確認は含まれません。

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

コメントを追加します