Rustコアチームは、高い期待のカスタム継承と、SerdeとDieselのような人間工学的に動作させるコード生成のcratesを可能にした安定バージョンである1.15をリリースした。
RFC 1681 の注記ではカスタム継承のモチベーションについて説明している。
今日のエコシステムにおけるいくつかの大きなプロジェクトではserdeやdieselのようにRustコンパイラーのナイトリーチャネルを効果的に要求します。ほとんどのプロジェクトとではRust安定版を動作させるための代替手段を持っていますが、これは人間工学的ではなく、自身に弱点を持ち、経験的にそれでナイトリーユーザーを安定させるためには十分ではありません...よいニュースとしては、このクラスのプロジェクトはRustのナイトリーはほとんどすべてで手続き型マクロのためにナイトリーが必要となります。さらによいことに、手続き型マクロの完全な機能はほとんど必要ではなく、カスタム継承だけです!さらに、カスタム継承は一般的に、普通の手続き型マクロがそうしているように、健全でモジュラリティのような完全なマクロシステムから期待される機能は必要とされません。
DieselのユースケースはRust 1.15を発表したブログ投稿で提供されていたものである。
// いくつかのextern crateとuse行は省略する
#[derive(Queryable)]
struct Pet {
name: String,
}
fn main() {
use diesel_demo::schema::pets::dsl::*;
let connection = establish_connection();
let results = pets
.limit(5)
.load::<Pet>(&connection)
.expect("Error loading pets");
println!("Displaying {} pets", results.len());
for pet in results {
println!("{}", pet.name);
}
}
カスタム継承の他にRust 1.15の改善はCargoを使ったビルドシステムの書き直しが含まれる。Rustチームのコメントは、
私たちは昨年の12月からRustは全てをmasterブランチで開発していますが、それがうまくいっています。Makefilesを完全に削除するオープンPRがあり、Rust 1.17で登場します。rustcが他のRustプロジェクトのようにコンパイラーのcrates.io
からパッケージを使うための道を開くでしょう。
その他の重要なエリアとして1.15 リリースのRustではi686-unknown-openbsd
、MSP430
、ARMv5TE
のTier 3サポートが得られたことだ。 Hacker Newsにおいて、このリリースに関する 議論があり、ユーザーthenewwazoo氏のコメントによると、「ワオ!MSP430サポートは大事です。知らないかもしれないけど有名な超省電力のマイクロコントローラーです...たぶんこれは現存する唯一の32ビット未満のプラットフォームです。8-bit AVRアーキテクチャのサポートするためにいくつかの作業があることを知っていますが、MSP430はrustにより超低消費電力アプリケーションを手に入れます。」
他のユーザーも同様にこのリリースについて興奮していた。dikaiosune氏は「これはかなり重要です。このリリースを見越して、私はタイプ駆動のコード生成(serdeとdiesel)を大量に使用するsmallish webバックエンドからすべてのナイトリーフィーチャーフラグを削除しました。custom_deriveの安定した約束は、実際に、本当に、確実に素晴らしい。とても興奮しています!」と言う 。
ekidd氏は賛同を追加した 。「私たちは職場で多くのRustアプリを持っており、そのうちのひとつがまだナイトリーにいますが、それも安定版に移行できるようになります。そして私たちはbuild.rsスクリプトを他から削除でき、これは常に素晴らしいことです。」
GitHub,上のRust 1.15のリリースノートに詳細があり、リリースはここからダウンロードできる。
Rate this Article
- Editor Review
- Chief Editor Action