2016年はこんにちは! Rustの今年最初のリリースである1.6を発表できることを嬉しく思います。 Rustは、メモリ、速度、およびコードの並列実行による安全な作業を目的としたシステムプログラミング言語です。
いつものように、サイトの対応するページから
Rust 1.6を
インストールできます。また、Github
でバージョン1.6の詳細な変更リストを確認できます。 このリリースには、1,100個のパッチが含まれています。
安定バージョン1.6に含まれるもの
このリリースには、いくつかのマイナーな改善、1つの大きな革新、および
Crates.ioへの変更が
含まれています。
Libcoreの安定化
1.6での最大の革新は、
libcore
ライブラリの安定化です。 標準のRustライブラリは、小さなベース
libcore
ライブラリと、
libstd
上に構築された完全な標準
libstd
ライブラリの2つの層で構成されています。
libcore
自体
libcore
完全にプラットフォームに依存せず、いくつかの外部関数を定義する必要があります。 完全な
libstd
ライブラリ
libstd
基づいて
libcore
、メモリ割り当て、I / O、およびマルチスレッドのサポートを追加します。 組み込み環境でRustを使用する場合、およびオペレーティングシステムを記述する場合、多くの場合
libstd
破棄され、
libstd
のみ
libcore
ます。
libcore
安定化は、Rustの安定バージョンで
libcore
レベルのコードを記述できるようにするための重要なステップです。 ただし、作業はまだ完了していません。 安定化により、ライブラリのエコシステムが
libcore
中心に成長できるようになり
ますが、
アプリケーションでのその使用はまだ完全にはサポートされていません。 今後のリリースでこの分野からのニュースを期待してください。
ライブラリの安定化
1.6では、約30のライブラリ関数とメソッドが安定化されています。 最も注目すべき改善点は次のとおりです。
コレクションの
drain()
関数のファミリー。 これらのメソッドを使用すると、アイテムが配置されているメモリを保持しながら、コレクションからアイテムを移動できるため、場合によってはメモリ割り当ての必要性が軽減されます。
標準ライブラリのタイプ間、主に整数と浮動小数点数の間で変換するための
From
特性のいくつかの実装。
そして最後に、
Vec::extend_from_slice()
メソッド、以前は
push_all()
として知られてい
push_all()
。 より一般的な
extend()
メソッドよりも大幅に高速です。
変更点の
詳細リストもご覧ください。
依存関係バージョンの代わりにCrates.ioでアスタリスクを使用することは禁止されています
Crates.ioでコンテナーをサポートしている場合、警告に既に気付いているかもしれません。新しいコンテナーは、依存関係のバージョン番号として
*
テンプレートを使用できなくなりました。 つまり、これはもうできません。
[dependencies] regex = "*"
代わりに、
semver
コンテナからの多くのバージョン制限(
^
、
~
または
=
~
いずれかを使用して、
特定のバージョンまたはバージョンの範囲を指定する必要があります。
アスタリスクは、この依存関係の任意のバージョンで作業できることを意味します。 おそらくこれは真実ではなく、エコシステムの互換性に関する不必要な問題を追加するだけです。
Crates.ioでコンテナを公開する際に、アスタリスクをバージョンとして禁止することに関する警告がかなり長い間表示されていましたが、今ではそれが本当の間違いになります。
翻訳者から
defuz 、
Revertis 、
D101101 、そして
ロシア語を話すRustコミュニティ全体の翻訳への支援に感謝します。