2023-08-30
本文は ChatGPT(gpt-4-1106-preview) によって翻訳されました。
こんにちは、そしてRust週報の新しい号へようこそ! Rustは、誰もが信頼性が高く効率的なソフトウェアを開発できるプログラミング言語です。 これは、その進捗とコミュニティの週間要約です。 何かを取り上げてほしいですか? Twitterで@ThisWeekInRust、mastodon.socialで@ThisWeekinRustまでタグを付けるか、プルリクエストを送ってください。 参加したいですか? 貢献を歓迎します。
Rust週報はGitHub上で公開されて開発されており、アーカイブはthis-week-in-rust.orgで閲覧できます。 今週の号に誤りを見つけた場合は、PRを送ってください。
今週のクレートは、dprintです。これは高速なコードフォーマッタで、Markdown、TypeScript、JavaScript、JSON、TOMLなど多くの種類のフォーマットをWasmプラグインを介してネイティブにサポートしています。
提案してくれたMartin Geislerに感謝します!
オープンソースプロジェクトへの貢献をいつも考えてはいましたが、どこから始めたらいいかわからない方へ。 毎週、Rustコミュニティからピックアップしたいくつかのタスクをご紹介しますので、取り組んでみてください!
これらのタスクの中には、メンターがついているものもありますので、タスクページで詳細をご確認ください。
cssparser & selectorsを更新するclass属性を削除するもしあなたがRustのプロジェクトオーナーで、貢献者を探しているのであれば、こちらからタスクを提出してください。
先週は366個のプルリクエストがマージされました。
aligned_allocのサイズを丸め上げるMaybeUninitを許可する#[repr(Rust)]を許可する#[deprecated]アイテムに提案を追加push_trailing関数にコメントを追加invalid_reference_castingリントのためのptr::writeのサポートを追加ExpnIdの上書きを許可large_assignmentsリントを避けるSyntaxContextのデコードにおける競合状態を修正します。(GitHubのrust-lang/rustリポジトリでのプルリクエスト #115082)invalid_reference_castingリントのための注記を改善します。(GitHubのrust-lang/rustリポジトリでのプルリクエスト #115102)break rust;を実行するときにコンパイラフラグを含めます。(GitHubのrust-lang/rustリポジトリでのプルリクエスト #115158)include_bytes!を直接Lrcにロードします。(GitHubのrust-lang/rustリポジトリでのプルリクエスト #115296)Shardedをenumにして、シングルスレッドの場合に特化させます。(GitHubのrust-lang/rustリポジトリでのプルリクエスト #114860)rustc_on_unimplementedをalloc::rcについて標準ライブラリに依存しないようにします。(GitHubのrust-lang/rustリポジトリでのプルリクエスト #115210)type_of からのサイクルエラーをより正確に検出force_allocation 内で割り当てスパンを記録to_pretty_impl_header の出力を調整point_at_path_if_possible で完全なパスを通って歩くELIDED_LIFETIMES_IN_ASSOCIATED_CONSTANT)generics_ofを追加するpredicates_ofを追加するStatementKind::Coverageを完全に不透明として扱う上記はRustプログラミング言語のコンパイラーやツール(特にMIR及びmiriに関連する部分)の改善に関連するプルリクエストの要約です。
NameBindingを作成するのをやめて、定義ごとに一度だけ作成するようにするpthread_tハンドルのリークを修正Duration::checked_divの実装を修正HashMapのシリアライズを可能にする&を&mutに変更するCloneを簡素化するtarget.'cfg(..)'.linkerのサポートを追加--keep-goingを安定化--no-html-sourceフラグを追加implied_bounds_in_implsreserve_after_initializationarithmetic_side_effects: WrappingおよびSaturatingにおけるゼロによる除算検出if_then_some_else_none: 早期リターン用のローカルイニシャライザー内を調べる
以下是每个Rust Clippy和Rust Analyzer更改的简要日文概述:ライブラリ clippy: iter_overeager_cloned: .cloned().all() および .cloned().any() を検知する
提案されている変更では、.cloned().all() や .cloned().any() というイディオムを検出するリントが追加されます。これにより、無駄にクローンを生成するコードを識別することができ、効率的なコードを書くための支援を提供します。
ライブラリ clippy: unnecessary_unwrap: .as_ref().unwrap() にリントを追加
このリントは、.as_ref().unwrap() が不要な場合を検出するものです。このような状況では、通常、より安全なコードの書き方が存在します。
ライブラリ clippy: トレイトエイリアスのDefIdsを implements_trait_with_env_from_iter で許可する
トレイトエイリアスの識別子(DefIds)を、一定の環境下でのトレイト実装を検出する関数 implements_trait_with_env_from_iter で取り扱えるようになります。
ライブラリ clippy: "derivable_impls: 属性を無視していた問題を修正
派生可能な実装のリントで、属性が無視されるバグを修正します。これにより、クレートにとって重要なメタデータが正しく扱われるようになります。
ライブラリ clippy: tuple_array_conversions リントをナイトリー版で修正
タプルと配列間の変換をリントする際の問題をナイトリー版Rustで修正します。
ライブラリ clippy: カスタムタイプが lhs である場合 float_cmp チェックをスキップする
カスタムタイプの比較に float_cmp チェックを適用しないようにする変更です。これは誤検出を減らすのに役立ちます。
ライブラリ rust-analyzer: 条件にラベルがある 'while let' ループに関する診断を追加
while let ループ内の条件式にラベルが使われているときに、開発者に通知する診断機能を追加します。
ライブラリ rust-analyzer: #[allow(unused_braces)] 属性を尊重する
#[allow(unused_braces)] 属性が適用されているコードに関して、Rust Analyzerが不要なブレースの使用に関する警告を出さないようにする変更です。
2023年8月30日から2023年9月27日までのラスティイベント 🦀
Rustイベントを開催している場合は、こちらに記載されるようカレンダーに追加してください。イベントへのリンクも忘れずに追加してください。 アクセスについては、Rust Community Teamまでメールしてください。
最新のRedditのr/rustにある「誰が採用しているのか」スレッドをご覧ください。
他の言語では、ばかばかしいバグを追いかけたり、タイプミスをしたり、予期せぬ nil ポインターをもたらす言語のquirkにぶつかったりして、デバッグやトレースで時間を無駄にすることがあります。そのような状況はRustではほぼ存在しない、問題と私だけです。Rustはそのquirkについて正直であり、本番環境で見つけにくいバグがある前に、それについてあなたに叫びます。
提案してくれたKyle Strandに感謝します!
This Week in Rustは、nellshamrell、llogiq、cdmistman、ericseppanen、extrawurst、andrewpollack、U007D、kolharsam、joelmarcey、mariannegoldin、bennyvasquezによって編集されます。
メールリストのホスティングはRust Foundationによって提供されています。