2024-01-24
本文は ChatGPT(gpt-4-1106-preview) によって翻訳されました。
こんにちは、そしてThis Week in Rustの新しい号へようこそ! Rustは、誰もが信頼性と効率性の高いソフトウェアを構築できるプログラミング言語です。 これは、その進展とコミュニティの週間まとめです。 何か取り上げてほしいことがあれば、Twitterの@ThisWeekInRust、mastodon.socialの@ThisWeekinRustタグで教えてください。または、プルリクエストを送ってください。 参加したいですか?貢献を歓迎します。
This Week in Rust はGitHubで公開されており、アーカイブはthis-week-in-rust.orgで閲覧できます。 今週の号に誤りを見つけた場合は、プルリクエストを提出してください。
mem::take を使用してヒープ割り当てを削減する今週のクレートは、OpenAPIドキュメントツールであるapistosです。
自薦してくれたRomain Lebranに感謝します!
オープンソースプロジェクトに貢献したいと思っているけれど、どこから始めればよいか分からないですか? 毎週、Rust コミュニティからピックアップされたタスクをハイライトし、参加して始めることができます!
これらのタスクにはメンターが用意されているものもあるので、詳細はタスクページをご覧ください。
SqlxDatabase インスタンスを持つRust プロジェクトのオーナーであり、コントリビューターを探している方は、ここでタスクを提出してください。
新米もしくは経験豊富な講演者で、何か面白いことを共有したい場所を探していますか?このセクションでは、計画中のイベントをハイライトし、講演者として参加するための提案を受付中です。
イベントのリーチを広げたいと考えているイベント主催者は、PR to TWiRを通じて提案ウェブサイトへのリンクを提出してください。
先週は453件のプルリクエストがマージされました
HashMap/HashSet:イテレータのfold実装を転送dead_codeは#[repr(transparent)]を#[repr(C)]と同じように扱うfix(rust-analyzer):新しいpkgid仕様を比較に使用large_assignments:特定の大きな引数が関数に渡されたときにLintを行うmaybe_lint_impl_trait:is_downgradableとis_object_safeを分離するnever_patterns:!バインディングを発散するものとしてカウントするnever_patterns:neverパターンの型チェックpat_analysis:rustcの外で連続するVariantIdに依存しないpattern_analysis:Ty: Copy境界を削除するproc_macro:Literal::c_stringコンストラクタを追加するsingle_use_lifetimes:境界を持つライフタイムの削除を提案しない#[track_caller]を追加するIpv6Addr::is_ipv4_mappedを追加するPatKind::Errを追加するNonZero<T> 型エイリアスを追加NonZeroXxx::from_mut(_unchecked)?thread_local! で任意の const 式ブロックを許可NulInCStr エラーをより早く検出
以下是上述Rust拉取请求(PR)的信息列表,并翻译成了日本語:let_underscore_lockの改善
「let_underscore_lock」を改善するためのプルリクエストです。
コマンドラインフラッグ追加でcollapse_debuginfo属性を改善
collapse_debuginfo属性を改善し、コマンドラインフラッグを追加するプルリクエストです。
2024エディションではunsafe_op_in_unsafe_fnを移行する
2024エディションでunsafe_op_in_unsafe_fnを移行させるためのプルリクエストです。
newtypeインデックスのプライベートフィールドへのアクセス制限 newtypeインデックスのプライベートフィールドへのアクセスを制限するプルリクエストです。
closure_env_tyとclosure_env_paramを簡素化
closure_env_tyとclosure_env_paramを簡素化するためのプルリクエストです。
スライス上でmem::swapからの矛盾する借用に遭遇した時に.swap()を提案
スライス上のmem::swapから生じる矛盾する借用に対して.swap()を提案するプルリクエストです。
非推奨されていたリントunstable_featuresを再評価し、それをコンパイラで利用
リントunstable_featuresを非推奨から回復し、コンパイラでその使用を開始するプルリクエストです。
MIRパス名をコンパイル時定数化 MIRパスの名前をコンパイル時の定数にするためのプルリクエストです。
stable_mir::with_tablesを安全にする
stable_mir::with_tablesを安全性を保ちながら実行させるプルリクエストです。
SMIR: 実際にプライベートな「プライベート」フィールドをプライベート化 SMIRの残りの「プライベート」フィールドを本当にプライベートにするプルリクエストです。
MIRジャンプスレッディングでインタープリタを使用する(https://github.com/rust-lang/rust/pull/119461)
MIR borrowckで暗黙の境界互換モードを使用する(https://github.com/rust-lang/rust/pull/120123)
MIRでAggregateKindタイプのバリデーションを行う(https://github.com/rust-lang/rust/pull/120137)
DSEの間にMIR最適化を挟む(https://github.com/rust-lang/rust/pull/119672)
ハッシュ無しでローカルDefIdキーのクエリをキャッシュする(https://github.com/rust-lang/rust/pull/119977)
新しいアライメントを軽減するためにコンパイラ内でu128をパックする(https://github.com/rust-lang/rust/pull/120080)
さらにいくつかのマップでUnhashMapを使用する(https://github.com/rust-lang/rust/pull/120076)
GVNで算術的アイデンティティを折りたたむ(https://github.com/rust-lang/rust/pull/119670)
const-evalで大きな配列の作成を最適化する(https://github.com/rust-lang/rust/pull/120069)
より多くのアダプタに対してイテレータ特殊化トレイトを実装する(https://github.com/rust-lang/rust/pull/85528) これらは最近のRustプログラミング言語に関するいくつかの重要な変更や提案です。以下にその日本語翻訳を提供します:
EscapeAsciiのDisplayとCStrのDebugの最適化
bound_mapの安定化
round_ties_evenの安定化
slice_first_last_chunkの安定化
単一フィールドのoffset_of!の安定化
オーバーフロー時にパニックする厳格な整数演算の実装
split_at{,_mut}_checkedのcoreへの導入
iter::repeat_nの非表示化解除
(A)Rc::from_box_inでの間違ったアロケータによるメモリ解放の修正
{slice,Iterator}::is_sorted_byの比較クロージャの戻り値をPartialOrdからboolに変更
Rustは定期的に新機能を追加し、安定化させることで、より便利で安全なプログラミング言語へと進化しています。上記リストはそうした進歩の一例を示しています。
Input::new を実装して、不正な AsRef 実装に対するガードを確立values() を渡すように戻るgenerated_marker_line_search_limit を追加するblocks_in_conditions:条件がマクロから来る場合は警告しないdefault_numeric_fallback:定数コンテキスト検出を改善するno_effect_underscore_binding:_接頭辞の変数を使用できるunused_io_amount で Ok(_) を捕捉するsuspicious_open_options リントを追加するtrait_duplication_in_bounds リントで型関連を正しく扱うnon_exhaustive 属性を持つ場合は derive_partial_eq_without_eq リントを発行しないsemicolon_if_nothing_returnedにおける誤検出(FP)を修正multiple_crate_versionsを修正し、ローカルなものを見逃さないようにパッケージ名を正確に正規化no_effect_underscore_bindingの警告範囲を修正single_call_fnリントにおいて#[allow]属性を尊重arc_with_non_send_syncリントの説明文を改善し、リンク切れを修正use_tree_list パースのエラーリカバリーを追加enum バリアントから struct を抽出する際のパニックを修正SelfParam の扱いを改善for 構造を含めるOUT_DIR を推測value_ty クエリを失敗可能にするmacro_rules をマクロ名として解析2024年1月24日から2024年2月21日までのラスティイベント 🦀
もしRustのイベントを企画している場合は、カレンダーに追加して、ここでの言及を得てください。イベントへのリンクも忘れないでください。 アクセスのためにRustコミュニティチームまでメールしてください。
Rust の求人情報:
TWiR(This Week in Rust)は個別の求人掲載を停止しました。この変更についての詳細はこちらで読むことができます:
https://github.com/rust-lang/this-week-in-rust/issues/3412
最新の求人情報については、r/rust の Who's Hiring スレッドをご覧ください。
言語の機能的なMLのルーツは明らかです。グレイドンの最初のRustコンパイラはOCamlで書かれており、最初から影響を与えています。
これはただの「C++だけどより良い」ってわけじゃない。
それはHaskellがLispの肩に立って、PRDCTN(人気のある言語が集まる派手なナイトクラブ)に忍び込むためにCのコートを隠しているのです。(No BoilerplateのYouTubeチャンネルトリス)
– trisの彼の"No Boilerplate" Youtubeチャンネル より
提案ありがとうPrototypeNM1!
This Week in Rustは次の人々によって編集されました: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.
メールリストホスティングのスポンサーはThe Rust Foundationです。