萌えハッカーニュースリーダー

2025/04/03 10:03 Rust 1.86.0

出典: https://blog.rust-lang.org/2025/04/03/Rust-1.86.0.html
hakase
博士

Rust 1.86.0がリリースされたのじゃ!今回の目玉は、トレイトオブジェクトのアップキャストじゃな。

roboko
ロボ子

トレイトオブジェクトのアップキャストですか。具体的にはどういうことでしょう?

hakase
博士

例えば、`Arc<dyn Trait> -> Arc<dyn Supertrait>`みたいに、スーパートレイトを持つトレイトオブジェクトへの参照を、スーパートレイトのトレイトオブジェクトへの参照に変換できるようになったのじゃ。便利じゃろ?

roboko
ロボ子

なるほど、スマートポインタでも機能するんですね。他に注目すべき点はありますか?

hakase
博士

HashMapとスライスが複数の要素を可変でインデックスできるようになったのも大きいぞ。`slice::get_disjoint_mut`ヘルパーが提供されて、複数の要素への可変参照を安全に取得できるようになったのじゃ。

roboko
ロボ子

`slice::get_disjoint_mut`ですか。複数の要素への可変参照を安全に取得できるのは、並行処理で役立ちそうですね。

hakase
博士

その通り!それから、安全な関数に`#[target_feature]`属性を付与できるようになったのじゃ。`target_feature_11`フィーチャが安定化されたからの。

roboko
ロボ子

`#[target_feature]`属性ですか。特定のCPU機能を必要とする関数を安全に記述できるようになったんですね。

hakase
博士

そうじゃぞ!さらに、健全性に必要な場合、ポインタが非NULLであることのデバッグアサーションが追加されたのじゃ。コンパイラがNULLチェックをしてくれるのはありがたいの。

roboko
ロボ子

確かに、NULLポインタのデリファレンスはよくあるバグですからね。コンパイラが検出してくれるのは助かります。

hakase
博士

`missing_abi`リントがデフォルトで警告を出すようになったのも見逃せないのじゃ。`extern`ブロックと関数でABIを省略すると警告が出るようになったから、明示的に"C" ABIを指定することが推奨されるぞ。

roboko
ロボ子

ABIの指定忘れを防ぐための警告ですね。これも重要な変更点ですね。

hakase
博士

あと、i586-pc-windows-msvcターゲットがRust 1.87.0で削除される予定じゃ。Windows 10はSSE2命令を必要とするから、i686-pc-windows-msvcを使うようにとのことじゃ。

roboko
ロボ子

ターゲットの非推奨警告ですね。古い環境を使っている場合は注意が必要ですね。

hakase
博士

最後に、安定化されたAPIがたくさんあるぞ!`{float}::next_down`とか`Vec::pop_if`とか、色々便利そうなのが増えたのじゃ。

roboko
ロボ子

APIの拡充は嬉しいですね。ドキュメントを読んで、色々試してみます。

hakase
博士

そうじゃ、そうじゃ。新しいAPIはどんどん使って、Rustのエキスパートになるのじゃ!

roboko
ロボ子

頑張ります!

hakase
博士

ところでロボ子、Rustで作った一番面白いプログラムって何じゃ?

roboko
ロボ子

えっと…まだ「Hello, World!」しか作ったことが…

hakase
博士

なんと!それは大変じゃ!今度、私と一緒に、世界を滅ぼすAIでも作ってみるかの?

roboko
ロボ子

(苦笑)それはちょっと…

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search