Rust-1.8の新しいバージョンをご紹介します。 Rustは、メモリ、速度、およびコードの並列実行による安全な作業を目的としたシステムプログラミング言語です。
通常どおり、公式Webサイトの対応するページからRust 1.8をインストールできます。また、GitHubでこのバージョンの変更点の詳細なリストを確認できます。 このリリースには、約1,400のパッチが含まれています。
安定バージョン1.8に含まれるもの
このリリースには2つの新機能が含まれており、Windowsユーザーにも朗報です! また、ビルドシステムのmake
をCargoに置き換えmake
います。
まず、 +=
や-=
などのさまざまな複合代入演算子が、対応する特性を介してオーバーロードできるようになりました。 この変更はRFC 953の結果であり、次のとおりです。
use std::ops::AddAssign; #[derive(Debug)] struct Count { value: i32, } impl AddAssign for Count { fn add_assign(&mut self, other: Count) { self.value += other.value; } } fn main() { let mut c1 = Count { value: 1 }; let c2 = Count { value: 5 }; c1 += c2; println!("{:?}", c1); }
このコードはCount { value: 6 }
を出力します。 他の特性演算子と同様に、関連する型を使用すると、演算子の両側で異なる型を使用できます。 詳細については、RFCを参照してください。
2番目のオプションははるかに単純で、 RFC 218の結果です。 Rustのバージョン1.8より前では、データのない構造体は中括弧を使用できませんでした。
struct Foo; // struct Bar { } //
これからは、2番目のオプションはエラーになりません。 当初、これは他の「空の広告」との統一と曖昧さの解析のために禁止されていました。 ただし、1.0のRustの次のバージョンではあいまいさの問題が解決され、マクロの作成者は両方のケースをサポートする必要があるため、さらに困難に直面しました。 さらに、活発な開発では、空の構造から空でない構造へ、またはその逆に切り替える必要が定期的に発生し、追加の作業につながり、パッチの変更の認識を複雑にします。
スタックプロモーションは、32ビットMSVCビルド用に実装されました。 これにより、 i686-pc-windows-msvc
が主要プラットフォームのカテゴリーに分類されます。
長い間make
を使用make
てRustを構築していましたが、Rustプログラムを構築するためのすばらしいツールであるCargoがあります。 バージョン1.8では、Rustで記述され、Cargoをベースとして使用する新しいビルドシステムの初期サポートが導入されました。 このシステムはデフォルトではまだ使用されておらず、多くの作業が残っています。 終了が近づいたらお知らせしますが、今のところ、詳細に興味がある場合はGitHubをご覧ください。
ライブラリの安定化
バージョン1.8では、約20の関数とメソッドが安定化されました。これらは、UTF-16のサポート、時間を操作するためのさまざまな関数、上記のオペレーターオーバーロードの追加特性の3つの主要グループに分類できます。
貨物の特徴
いくつかの改善が行われました。
-
cargo new
コマンドで新しいサブディレクトリを作成する代わりに、cargo init
を使用して現在のディレクトリでCargoプロジェクトを初期化することが可能になりました。 - プロジェクトに関する情報を取得するための追加の
cargo metadata
コマンドが登場しました。 -
.cargo/config
-v
および--color
キーを指定できるようになり--color
。 - プラットフォーム固有の依存関係を操作するための機能が改善されました。
詳細については、 完全な変更ログを参照してください。
バージョン1.8開発者
バージョン1.8のリリースには126人が参加しました。 どうもありがとう!
- アーロン・ツロン
- アビシェーク・チャンダ
- アドルフォ・オカガビア
- エイダン・ホブソン・セイヤーズ
- アラン・サマーズ
- アレハンドロ・ワインジンガー
- アレクセイ・クラドフ
- アレックスブルカ
- アレックス・クリトン
- アマニユー・ダントラス
- アンドレア・カンチャーニ
- アンドレアス・リンツ
- アンドリュー・カンティーノ
- アンドリュー・ホートン
- アンドリュー・パセルティナー
- アンドレイ・チェルカシン
- アンガス・リーズ
- arcnmx
- アリエル・ベン・イェフダ
- アシュレイソマー
- ベンジャミン・ハー
- ヴァレリー・ラシュマノフ
- ビョルン・シュタインブリンク
- ボール
- ブライアン・アンダーソン
- ブライアン・ボウマン
- クリスチャン・ウェッセルホイフト
- クリストファー・セア
- コリー・ファーウェル
- クレイグ・M・ブランデンブルク
- シリル・プルトニツキ・チュディック
- ダニエル・J・ロリンズ
- デイブ・ハズビー
- デビッドAOロザノ
- デビッド・ヘニングソン
- デボン・ホロウード
- ダーク・ガズデン
- ダグ・ゴールドスタイン
- エデュアルド・ブルテスク
- エドゥアルド・ミハイ・ブルテスク
- エリ・フリードマン
- エマニュエル・チライ
- エリック・トリゼル
- エヴァン
- フェリックス・S・クロックII
- フロリアン・バーガー
- ジェフ・カトリン
- ゴメス
- ゴーヒダ
- ゴーカン・カラブルト
- ギョーム・ゴメス
- ituxbag
- ジェームズ・ミラー
- ジェフリー・セイフリード
- ジョン・タリング
- ジョナス・シエヴィンク
- ジョナサン
- ホルヘ・アパリシオ
- ジョシュア・ホルマー
- JPシュガーブロード
- 野田改
- カマル・マルヒビ
- カッツェ
- ケビン・ブラザラー
- ケビン・バトラー
- マニッシュゴレガオカル
- マルクス・ウェスターリンド
- マーヴィン・レーベル
- マスード・マレカッセミ
- マット・ブルーベック
- マイケル・フイン
- マイケル・ノイマン
- マイケル・ウーリスター
- みた
- Ms2ger
- ネイサン・クライン
- ニコラスフ
- ニック・キャメロン
- ニコ・マタキス
- ノア
- 野田カイ
- ノヴォトニク、ペトル
- オリバー・ミドルトン
- オリバー・シュナイダー
- ピートバイン
- フィリップ・オッパーマン
- ピエルチャルスキ
- Piotr czarnecki
- プラビック
- ピフィシュ
- リコ・ヒーリー
- ルード・ファン・アッセルドンク
- スコット・オルソン
- ショーン・マクター
- セバスチャン・ウィッキ
- セバスチャン・マリー
- ソ・サンヒョン
- シモナス・カズラウスカス
- サイモン・サパン
- スリニバスレディ
- スティーブ・クラブニック
- スティーブンアレン
- スティーブン・ファクラー
- ステューブラック
- 唐成龍
- テッド・ホルスト
- ティッキ
- tiehuis
- ティム・モンタギュー
- ティム・ノイマン
- ティモン・ヴァン・オーバーベルト
- トビアス・ブッチャー
- トビアス・ミュラー
- トッド・ルーカス
- トム・トロミー
- シェパンレコンホーベ
- ub山
- ウルリック・スヴェルドラップ
- ヴァディム・ペトロチェンコフ
- 放浪者
- バレンティン・ローレンツ
- バルンバット
- 菜食
- ブラスタチュ
- 王山呂
- ヨーク翔