Rustリリース1.12.1

Rust 1.12.1の新しいバージョンをご紹介します。 Rustは、メモリ、速度、およびコードの並列実行による安全な作業を目的としたシステムプログラミング言語です。







通常どおり、公式Webサイトの対応するページからRust 1.12.1インストールするか、 rustupを使用rustup update stable



コマンドを実行できます。







安定バージョン1.12.1に含まれるもの



ちょっと待って...ワンポイントツーポイント...ワン?







数週間前、 バージョン1.12発表で 、次のように述べました。







リリース1.12は、おそらくリリース1.0以降で最も重要です。

そして、それは本当です。 重要な変更の1つは、コンパイラの大規模なリファクタリングでした。 新しいMIRバックエンドでは、アーキテクチャと実装の詳細が変更されています。 一般に、近代化プロセスは次のようになりました。









このようなグローバルな変更は簡単ではなく、非常に重要です。 したがって、すべてを正しく慎重に行うことが重要です。 そのため、このプロセスには非常に時間がかかっています。 crates.ioの各パッケージで定期的にコンパイラをテストし、ソースで-Z orbit



を確認するようユーザーに依頼します。6週間のベータテストの後、重大な問題はありませんでした。 したがって、バージョン1.12ではデフォルトのMIRを使用することにしました。







しかし、大幅な変更は、最小化しようとしても常にリスクです。 したがって、1.12のリリース後、テスト中に検出できない回帰が見つかりました。 それらのすべてがMIRに関連付けられているわけではありません。単純に、このような大規模な変更により、他の場所でエラーが簡単に発生します。







暫定リリースを作成する理由



6週間のリリースサイクルがあり、Rust 1.13の中間であるため、ユーザーに次のリリースを待つように求めるのではなく、バージョン1.12のパッチをリリースすることにしたのはなぜですか? 先ほど、似たようなことを言いました:「中間リリースは、標準ライブラリの脆弱性などの極端な場合にのみ発生します。」







安定性だけでなく、この言語を使用することの利便性にも注意を払っています。 みなさんに待つように言うことはできますが、私たちがどれほど深刻かを知ってほしいのです。 この状況での暫定リリースのリリースは、できるだけ早くエラーを修正したいという願望を示す方法でもあります。







さらに、セキュリティの問題について話しているわけではないので、これは暫定リリースの発行を実践する良い理由です。 新しいバージョンをリリースするプロセスは部分的に自動化されていますが、完全にではありませんが、これまでにこれを行ったことはありません。 暫定リリースが存在すると、他のツールのエラー 、たとえばrustup検出されます。 また、必要に応じて、セキュリティの問題またはその他の理由で緊急リリースを計画どおりにリリースするようにしてください。







これは、2012年のRust 0.3.1のリリース後の最初のRustの暫定リリースであり、安定性を厳密に保証して6週間のリリースサイクルを採用したRust 1.0のリリースから72週間後です。 また、1.12でリグレッションが発生したことは非常に残念ですが、Rustの安定性を誇りに思っており、Rustを信頼できるプラットフォームにするために最善を尽くします。







Rustを世界で最も信頼できるソフトウェア開発プラットフォームにしたいのです。







ベータテストノート



Rustユーザーとして、できるだけ早くバグを修正するためにできることがあります。ベータ版を使用してコードをチェックしてください! 各ベータリリースは次の安定リリースのリリース候補であるため、継続的インテグレーションツールを使用しましょう。 そのため、問題が安定したリリースになる前であっても、問題について説明できます。 これはまったく難しいことではありません。 たとえば、 Travisを使用する場合、これを.travis.yml



追加します。







 language: rust rust: - stable - beta
      
      





そして、テストはコンパイラの2つのバージョンで実行されます。 さらに、ベータ版のバグでビルドエラー全体が発生しないようにするには、次のコードを追加します。







 matrix: allow_failures: - rust: beta
      
      





ベータビルドは赤くなりますが、安定したビルドは緑のままです。







AppVeyorなどの他のほとんどの継続的統合システムには、 この機能が必要です。 使用しているシステムのドキュメントを参照してください。







詳細



バージョン1.12.1では、9つのエラーが修正されました。当然、これらの修正はすべてベータバージョン1.13に転送されました。









さらに、さらに4つの回帰があります。 さまざまな理由により、1.12.1にそれらを含めないことにしましたが、できるだけ早くそれらを排除しようとします。









バージョン1.12.0と1.12.1間の変更点の完全なリストはこちらです。








All Articles