Mozilla プロジェクトによって設立され、現在は独立した非営利団体 Rust Foundation の後援の下で開発されている汎用プログラミング言語 Rust 1.69 のリリースが公開されました。 この言語はメモリの安全性に焦点を当てており、ガベージ コレクターとランタイムの使用を回避しながら、高いジョブ並列処理を実現する手段を提供します (ランタイムは、標準ライブラリの基本的な初期化とメンテナンスに短縮されます)。
Rust のメモリ処理メソッドは、開発者をポインタ操作時のエラーから守り、解放後のメモリ領域へのアクセス、null ポインタの逆参照、バッファ オーバーランなど、低レベルのメモリ処理によって発生する問題から保護します。 ライブラリを配布し、ビルドを提供し、依存関係を管理するために、プロジェクトは Cargo パッケージ マネージャーを開発します。 crates.io リポジトリは、ライブラリのホストとしてサポートされています。
Rustでは、参照チェック、オブジェクトの所有権の追跡、オブジェクトの有効期間(スコープ)の追跡、コード実行中のメモリアクセスの正確性の評価を通じて、コンパイル時にメモリの安全性が提供されます。 Rust は整数オーバーフローに対する保護も提供し、使用前に変数値の初期化を必須にし、標準ライブラリでエラーをより適切に処理し、デフォルトで不変参照と変数の概念を適用し、論理エラーを最小限に抑えるための強力な静的型付けを提供します。
主な革新:
- Cargo パッケージ マネージャーは、自動的に解決できる警告の検出と、「cargo fix」または「cargo Clippy -fix」を実行するための適切な推奨事項の出力を実装します。 警告: 未使用のインポート: 'std::hash::Hash' —> src/main.rs:1:5 | 1 | std::hash::Hash を使用します。 | ^^^^^^^^^^^^^^ | = 注: デフォルトで「#[warn(unused_imports)]」 警告: 'foo' (bin "foo") が 1 つの警告を生成しました ('cargo fix —bin "foo"' を実行して 1 つの提案を適用します)
- Cargo は、「cargo install」コマンドでライブラリをインストールしようとするときに「cargo add」コマンドを使用するための推奨出力を追加しました。
- コンパイル時間を短縮するために、ビルド スクリプトへのデバッグ情報の組み込みはデフォルトで停止されています。 ビルド スクリプトが正常に実行された場合、変更によって目に見える違いは生じませんが、失敗が発生した場合、トレースバック ダンプに含まれる情報は少なくなります。 Cargo.toml に古い動作を戻すには、次を追加する必要があります: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
- API の新しい部分は、安定化された特性のメソッドと実装を含め、安定化のカテゴリに移動されました。
- CStr::from_bytes_until_nul
- core::ffi::FromBytesUntilNulError
- 「const」属性は、定数の代わりに任意のコンテキストで使用できるかどうかを決定し、関数で使用されます。
- ソケットアドレス::新規
- ソケットアドレス::ip
- ソケットアドレス::ポート
- SocketAddr::is_ipv4
- SocketAddr::is_ipv6
- SocketAddrV4::new
- SocketAddrV4::ip
- SocketAddrV4::ポート
- SocketAddrV6::new
- SocketAddrV6::ip
- SocketAddrV6::ポート
- SocketAddrV6::flowinfo
- SocketAddrV6::scope_id
- コンパイラ引数で true フラグと false フラグを使用する機能が追加されました。
出所: オープンネット.ru