公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part33
https://mevius.5ch.net/test/read.cgi/tech/1755247770/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
Rust part34
1デフォルトの名無しさん
2025/11/27(木) 12:25:23.76ID:4JaxkBD42025/12/02(火) 20:44:48.17ID:cRRKqG9w
43デフォルトの名無しさん
2025/12/03(水) 03:34:36.66ID:oIB/w2I6 コンパイルの効率は悪いよ
2025/12/03(水) 03:35:44.18ID:oIB/w2I6
そりゃsccacheの制限じゃなくてRustの制限だからさ
2025/12/03(水) 06:04:17.00ID:WiHtSPxG
言語に関係ない性質
2025/12/03(水) 06:10:38.86ID:IXiFazox
ビルド眺めてたら、最後のリンクするところがクソ遅いな
2025/12/03(水) 11:42:16.90ID:G3Cx7y7o
Rustのcratesって
.a/.soや.lib/.dllをダウンロードする仕組みじゃなくて
毎回ソースが必要なん?
.a/.soや.lib/.dllをダウンロードする仕組みじゃなくて
毎回ソースが必要なん?
2025/12/03(水) 12:06:05.34ID:kmYeuBOH
基本的には毎回ソース
2025/12/03(水) 13:05:32.27ID:OnxLfrF+
コンパイル済みバイナリをダウンロードできるようにする提案は出ているんだけど実現するかどうかはわからんね。
2025/12/03(水) 14:51:41.63ID:9srsrlEn
公式じゃないけどバイナリダウンロードできるようにしてるところがあったような
2025/12/03(水) 14:59:03.81ID:IXiFazox
cargo-binstall の話?
2025/12/03(水) 18:13:52.75ID:3Hibg4jw
>>51
インデックス登録に申し込みが必要なやつだったからcargo-binstallではないと思うけど
今探しても見つからないからそういうバイナリプロジェクトをインストールするやつと勘違いしたのかもしれん
インデックス登録に申し込みが必要なやつだったからcargo-binstallではないと思うけど
今探しても見つからないからそういうバイナリプロジェクトをインストールするやつと勘違いしたのかもしれん
2025/12/03(水) 18:46:38.64ID:2MnTI9t3
build.rsで生成済みのバイナリ(.rlib)をコピーする形式ならできそうだけど一般公開向けじゃないな
2025/12/03(水) 19:04:15.83ID:8JMYDz0K
>>53
バイナリだけならunsafeでは
バイナリだけならunsafeでは
55デフォルトの名無しさん
2025/12/03(水) 20:13:27.80ID:+yx3EwOE アーキテクチャ分バイナリ用意しないとならなくなるから
結構難しそう
結構難しそう
2025/12/03(水) 20:22:13.29ID:q2X/X5Gp
そもそもABIがstableじゃないからコンパイラのバージョン毎に配布しないといけないのでは
2025/12/03(水) 22:32:18.40ID:Eh+HvnbR
だっさ
2025/12/03(水) 22:35:08.95ID:CgpHbwYB
いろんな環境でネイティブコンパイルする言語だし労力に見合うリターンが無いよなあ
Windowsのことだけ考えてりゃ後はどうでもいいって時代ならともかく
Windowsのことだけ考えてりゃ後はどうでもいいって時代ならともかく
2025/12/06(土) 00:54:32.45ID:N0FmDDVX
Cloudflareがまたやらかしたな
Rust界の恥晒し
Rust界の恥晒し
2025/12/06(土) 01:33:54.85ID:YZiuqUxi
【CDN】米クラウドフレアが控訴、海賊版サイトめぐり「5億円の賠償命令」判決に不服
https://asahi.5ch.net/test/read.cgi/newsplus/1764907388/
https://asahi.5ch.net/test/read.cgi/newsplus/1764907388/
2025/12/06(土) 02:00:47.66ID:cYcM2N2O
>>59
今回の障害が起きたのはFL1(旧アーキ)のみ
>In our FL1 version of our proxy under certain circumstances, this latter change caused an error state that resulted in 500 HTTP error codes to be served from our network.
>Customers that have their web assets served by our older FL1 proxy AND had the Cloudflare Managed Ruleset deployed were impacted.
Reactのサーバーコンポーネントで見つかったRCE脆弱性対応のため、プロキシのバッファサイズを拡大したことによるバグ顕在化が原因とのこと
>As part of our ongoing work to protect customers using React against a critical vulnerability, CVE-2025-55182, we started rolling out an increase to our buffer size to 1MB, the default limit allowed by Next.js applications. We wanted to make sure as many customers as possible were protected.
>As soon as the change propagated to our network, code execution in our FL1 proxy reached a bug in our rules module which led to the following LUA exception:
>[lua] Failed to run module rulesets callback late_routing: /usr/local/nginx-fl/lua/modules/init.lua:314: attempt to index field 'execute' (a nil value)
Rustで書かれたFL2(新アーキ)で当該エラーは起こっていない
>This is a straightforward error in the code, which had existed undetected for many years. This type of code error is prevented by languages with strong type systems. In our replacement for this code in our new FL2 proxy, which is written in Rust, the error did not occur.
https://blog.cloudflare.com/5-december-2025-outage/
今回の障害が起きたのはFL1(旧アーキ)のみ
>In our FL1 version of our proxy under certain circumstances, this latter change caused an error state that resulted in 500 HTTP error codes to be served from our network.
>Customers that have their web assets served by our older FL1 proxy AND had the Cloudflare Managed Ruleset deployed were impacted.
Reactのサーバーコンポーネントで見つかったRCE脆弱性対応のため、プロキシのバッファサイズを拡大したことによるバグ顕在化が原因とのこと
>As part of our ongoing work to protect customers using React against a critical vulnerability, CVE-2025-55182, we started rolling out an increase to our buffer size to 1MB, the default limit allowed by Next.js applications. We wanted to make sure as many customers as possible were protected.
>As soon as the change propagated to our network, code execution in our FL1 proxy reached a bug in our rules module which led to the following LUA exception:
>[lua] Failed to run module rulesets callback late_routing: /usr/local/nginx-fl/lua/modules/init.lua:314: attempt to index field 'execute' (a nil value)
Rustで書かれたFL2(新アーキ)で当該エラーは起こっていない
>This is a straightforward error in the code, which had existed undetected for many years. This type of code error is prevented by languages with strong type systems. In our replacement for this code in our new FL2 proxy, which is written in Rust, the error did not occur.
https://blog.cloudflare.com/5-december-2025-outage/
2025/12/06(土) 09:10:08.41ID:WJ0DA+eG
驚いた!Rustすごい!
2025/12/06(土) 12:45:36.37ID:aue+ojQ+
池沼が
2025/12/06(土) 13:07:10.85ID:DTR3/WcD
Cloudflareのコンフィグ管理周りの未熟さも気になるが
それ以上にReact Server Componentは仕組み的に危ない
アプリレイヤーでのリクエストbodyのdeserializationにバグがあると
いきなりfull RCEに直結する仕組みとか怖すぎる
もうちょっと警鐘鳴らしたほうがいいんじゃないだろうか
それ以上にReact Server Componentは仕組み的に危ない
アプリレイヤーでのリクエストbodyのdeserializationにバグがあると
いきなりfull RCEに直結する仕組みとか怖すぎる
もうちょっと警鐘鳴らしたほうがいいんじゃないだろうか
2025/12/06(土) 13:52:58.00ID:OrfRaHNT
問題は障害がRustに関連したものかどうかではなくて、
Rust採用を大々的にアピールした有力テックの実体がこの程度だったというのを露呈したことだろうな
Rust驚いた勢のプライドを激しく毀損している
Rust採用を大々的にアピールした有力テックの実体がこの程度だったというのを露呈したことだろうな
Rust驚いた勢のプライドを激しく毀損している
66デフォルトの名無しさん
2025/12/06(土) 14:18:25.19ID:ARinuXXT 警鐘鳴らそうとして実証コード描いたらタイーホされる時代
2025/12/06(土) 16:19:08.82ID:LjhUSqqq
自作のソフトウェアのコードRustで書いてんだけどやっぱビルド周りが遅いな
cargo testも実行まで時間かかるし
もっと速くならんかな
cargo testも実行まで時間かかるし
もっと速くならんかな
68デフォルトの名無しさん
2025/12/06(土) 17:30:19.35ID:EhyTMf4b なんでcと速度は変わらんのにビルドこんな遅いん?
69デフォルトの名無しさん
2025/12/06(土) 17:43:56.21ID:z6f5ohL1 Rustはメモリリーク含めたリスクポイントをコンパイル時点で教えてくれるだけ。
panicで止めるかどうかは、異常系分類による。
停止させると逆に危険な場合もあるので、自前のexceptアナライザーは必須。
とにかく、関心事の放散が防止できれば、メモリアロケーションもリリースもミスは少なくなる。
SOLID原則に従えば、エレベーターも止まらない。 Rustの出発点が変な気もする。
アーキテクチャー不在がエレベーターを止める。
panicで止めるかどうかは、異常系分類による。
停止させると逆に危険な場合もあるので、自前のexceptアナライザーは必須。
とにかく、関心事の放散が防止できれば、メモリアロケーションもリリースもミスは少なくなる。
SOLID原則に従えば、エレベーターも止まらない。 Rustの出発点が変な気もする。
アーキテクチャー不在がエレベーターを止める。
2025/12/06(土) 23:34:40.22ID:DacREqLg
異常系という言葉を気軽に使う人間は絶対に信用してはいけない
重大障害のもと
重大障害のもと
2025/12/07(日) 01:56:01.10ID:h2UU4mQ3
どういう理屈で?
当該用途にはなんて言葉を使えばいいの?
当該用途にはなんて言葉を使えばいいの?
2025/12/07(日) 02:51:57.24ID:BRimgs0p
半永久的に動き続けることが求められるサーバーでは異常系終了を用いない
それだけの話だろう
それだけの話だろう
73デフォルトの名無しさん
2025/12/07(日) 03:31:02.57ID:Wacr4v8K イージーモード追加してくれんかな
trycatchとかgoみたいなエラー処理やりたい
trycatchとかgoみたいなエラー処理やりたい
2025/12/07(日) 04:14:18.61ID:YtRaGYdh
Goには例外try/throw/catchもなければResultのような代数的データ型もない
Goは多値でエラーを返してif文でそれがnilかどうかを判別するしかなくイージーモードとはかけ離れている
Goは多値でエラーを返してif文でそれがnilかどうかを判別するしかなくイージーモードとはかけ離れている
2025/12/07(日) 04:23:57.95ID:mtIDmBMJ
2025/12/07(日) 05:47:16.97ID:JhJJ9T6O
unwrap()の是非について焼き寿司氏のblog
https://burntsushi.net/unwrap/
仮にリンターでunwrap()の有無をチェックしても
slice[i] や RefCell、場合によっては算術演算のラップアラウンドでもパニックするよ
という指摘にはなるほどと思った
https://burntsushi.net/unwrap/
仮にリンターでunwrap()の有無をチェックしても
slice[i] や RefCell、場合によっては算術演算のラップアラウンドでもパニックするよ
という指摘にはなるほどと思った
77デフォルトの名無しさん
2025/12/07(日) 08:25:06.65ID:sR0SS/1I >>76
Linusの指摘そのままじゃない?
「ランタイムエラーでパニックを発生させるのは根本的に問題があると思っている」
OSみたいなクリティカルな用途だから要求も高いというのはあるけど、Rustはc用途を目指しているんだから、他人のコードであってもpanicを制御できるようにならなきゃ話にならんかと。
Linusの指摘そのままじゃない?
「ランタイムエラーでパニックを発生させるのは根本的に問題があると思っている」
OSみたいなクリティカルな用途だから要求も高いというのはあるけど、Rustはc用途を目指しているんだから、他人のコードであってもpanicを制御できるようにならなきゃ話にならんかと。
2025/12/07(日) 09:49:00.07ID:RKvo/7WP
>>77
std::panic::catch_unwind でキャッチする仕組みはある。
ただ C++ の例外と同じでランタイムサポートの支援で実現するものだから、それより下のレイヤ (OS など) を作ってるときには使いにくいんだよ。
結局のところ OS のレイヤでは C でやってるのと同じやり方でなんとかするしかない。
std::panic::catch_unwind でキャッチする仕組みはある。
ただ C++ の例外と同じでランタイムサポートの支援で実現するものだから、それより下のレイヤ (OS など) を作ってるときには使いにくいんだよ。
結局のところ OS のレイヤでは C でやってるのと同じやり方でなんとかするしかない。
2025/12/07(日) 11:31:53.26ID:DIZ3oEXF
2025/12/07(日) 13:14:55.38ID:4YzXVeaK
>>77
slice[i]やRefCellや算術演算で発生するpanicと
OOMをResultでハンドリングする機能がなく避けようがなかったpanicとは種類が違う
前者はプログラムコードのバグ
後者はプログラムコードにバグがなくても環境次第で発生してた
Linusが正確に何と言ったかは知らんけど
環境次第で実行時に発生するエラーを
panicとしてしか扱えなかったことを問題視したんじゃないか?
slice[i]やRefCellや算術演算で発生するpanicと
OOMをResultでハンドリングする機能がなく避けようがなかったpanicとは種類が違う
前者はプログラムコードのバグ
後者はプログラムコードにバグがなくても環境次第で発生してた
Linusが正確に何と言ったかは知らんけど
環境次第で実行時に発生するエラーを
panicとしてしか扱えなかったことを問題視したんじゃないか?
2025/12/07(日) 13:17:17.08ID:4YzXVeaK
2025/12/08(月) 06:14:53.89ID:78+iHLWM
iced 0.14.0がリリースされて、ついに日本語入力に対応したらしいよ
> Input method support. #2777
> Input method support. #2777
2025/12/08(月) 10:36:18.01ID:JY6W1FTm
驚き!
2025/12/08(月) 17:44:28.10ID:WGXF6l1Y
なにicedって
2025/12/08(月) 19:41:58.70ID:IqmmsKhE
UIライブラリや
86デフォルトの名無しさん
2025/12/09(火) 13:17:43.50ID:deXLWuOQ rustでUIやる意味何?計算量の多いゲームエンジンならわかるけどただのアプリならコンパイルの遅いrustでなんか作りたくねえ
87デフォルトの名無しさん
2025/12/09(火) 13:24:51.74ID:Lsl4QAiK make world と打ち込んで1週間待ってた頃に比べれば全然余裕
88デフォルトの名無しさん
2025/12/09(火) 13:28:09.51ID:H/C7AGZK Borlandがturbo rustを出すまで我慢だね
89デフォルトの名無しさん
2025/12/09(火) 13:31:43.36ID:H/C7AGZK turbo visionのcrateはあるんだw
90デフォルトの名無しさん
2025/12/09(火) 13:34:26.68ID:b/v/GR+5 でもgpuiつかったやつめちゃ速くない?
あとrust analyzerのメモリ爆食いどうにかしてクレメンス
あとrust analyzerのメモリ爆食いどうにかしてクレメンス
2025/12/09(火) 18:55:52.01ID:r9m3tzex
実際C++BuilderのGUI生産性と、Rustの言語としての速さと頑強さが組み合わされば無敵じゃね?
2025/12/09(火) 20:27:29.76ID:nH0p4cXR
まあエンバカデロはもう革新的な製品作りそうにないし
ヘジルスバーグはRustにあまり興味なさそうだけどね
ヘジルスバーグはRustにあまり興味なさそうだけどね
2025/12/10(水) 05:02:49.84ID:hPMgr9J3
Gemini君に聞いたら、RustはC++のNRVOに相当する最適化をC++よりも広い適用範囲で強力に行います
Destination Passing Style (DPS)
って事らしいけど本当かな?
Destination Passing Style (DPS)
って事らしいけど本当かな?
2025/12/10(水) 09:50:22.74ID:MSOh6BWq
C++ はオブジェクトへのアクセスが自由過ぎてエイリアス解析が大変 (最適化がしんどい) というのは昔から言われてた。
逆に言えば参照 (オブジェクトの依存関係) を完璧に追える Rust ではもっと上手くやれてもおかしくはないと思う。
逆に言えば参照 (オブジェクトの依存関係) を完璧に追える Rust ではもっと上手くやれてもおかしくはないと思う。
2025/12/10(水) 10:28:50.81ID:4/EtyeCo
面倒くさい奴だけど付き合うと意外と良い奴
2025/12/10(水) 11:00:48.64ID:WdeXXEzW
>>93
Rustの方針はシンプルかつ効率
関数がレジスタ返しできない大きなサイズのデータを返す時
呼び出し側の関数のスタックフレームに領域を確保
呼び出された関数は最初からその領域にデータを書き込む
もちろんこれらは裏で自動的に行われる
Rustの方針はシンプルかつ効率
関数がレジスタ返しできない大きなサイズのデータを返す時
呼び出し側の関数のスタックフレームに領域を確保
呼び出された関数は最初からその領域にデータを書き込む
もちろんこれらは裏で自動的に行われる
2025/12/10(水) 11:29:15.14ID:+wlu09xM
日本語不自由なやつしかおらんのかいな
2025/12/10(水) 11:31:30.40ID:hPMgr9J3
"Destination Passing Style" で検索するとHaskellの話しか出てこないからハルシネーションか?
99デフォルトの名無しさん
2025/12/10(水) 11:32:51.92ID:v/mPNkvx RustはUIでも覇権取れる?
100デフォルトの名無しさん
2025/12/10(水) 11:48:09.95ID:7/+OAEHE はい
101デフォルトの名無しさん
2025/12/10(水) 12:06:24.08ID:L7XTEUYD C++でもまじめにstd::move()通してればRust並に最適化できるんじゃね?
move後のアクセスをコンパイラが止めないからミスった時に何が起こるか分からんけど
move後のアクセスをコンパイラが止めないからミスった時に何が起こるか分からんけど
102デフォルトの名無しさん
2025/12/10(水) 12:18:26.32ID:d+nvH+x7 equi
103デフォルトの名無しさん
2025/12/10(水) 12:28:49.76ID:MSOh6BWq >>101
C++ では返却値は std::move しないのが望ましい場合が多い。
コピー省略できるはずのところでムーブになってしまうことがあるし、ムーブが妥当なときはなにも書いていなくても暗黙にムーブするので書く意味がない。
C++ では返却値は std::move しないのが望ましい場合が多い。
コピー省略できるはずのところでムーブになってしまうことがあるし、ムーブが妥当なときはなにも書いていなくても暗黙にムーブするので書く意味がない。
104デフォルトの名無しさん
2025/12/10(水) 12:31:05.43ID:09K8JBzk Rustは概念的には常に自動的にmoveされる
そして生成コードはレジスタ返しか足りなければRVOに自動的になる
だからC++のような複雑さも面倒臭さもない
そして生成コードはレジスタ返しか足りなければRVOに自動的になる
だからC++のような複雑さも面倒臭さもない
105デフォルトの名無しさん
2025/12/10(水) 12:44:35.63ID:USY1WYCN moveが暗黙で実際どうなんかがわからんのはC++の辛いところ
std::moveって明記してるのにコピーした時は、コンパイルエラーにしてくれてればよかったのに
std::moveって明記してるのにコピーした時は、コンパイルエラーにしてくれてればよかったのに
106デフォルトの名無しさん
2025/12/10(水) 12:47:17.53ID:hPMgr9J3107デフォルトの名無しさん
2025/12/10(水) 12:58:04.34ID:HmdX4Hif108デフォルトの名無しさん
2025/12/10(水) 13:16:30.40ID:L7XTEUYD Rustはできるだけインライン展開してreturn自体を減らしてそう
C++とはコンパイルの単位とプロセスが違うからRVOは重視してないかもしれない
C++とはコンパイルの単位とプロセスが違うからRVOは重視してないかもしれない
109デフォルトの名無しさん
2025/12/10(水) 13:57:35.08ID:eneesrJf >>107
んな大袈裟な話じゃないし、ボトルネックになってない限り実際にRVOされてるかどうかまで気にする人は少ない
コピーのコストが大きな問題になるようなクソでかい構造体なんて実際問題として滅多にないからね
コンテナは基本的に中でヒープ使ってるってのはさすがに知ってるよな?
んな大袈裟な話じゃないし、ボトルネックになってない限り実際にRVOされてるかどうかまで気にする人は少ない
コピーのコストが大きな問題になるようなクソでかい構造体なんて実際問題として滅多にないからね
コンテナは基本的に中でヒープ使ってるってのはさすがに知ってるよな?
110デフォルトの名無しさん
2025/12/10(水) 16:52:00.70ID:jR2AbXeD non-goalの余白に無限の願望を託す人
111デフォルトの名無しさん
2025/12/10(水) 17:49:43.54ID:HmdX4Hif112デフォルトの名無しさん
2025/12/10(水) 19:32:55.35ID:SgLOgf3g なんでRustはReactに勝てないのか分からんのやが誰か教えてくれ
113デフォルトの名無しさん
2025/12/10(水) 19:56:08.60ID:KLOOllO5 web apiてなんであんなうんこスクリプト言語で書くってことになったんだろう
js自体の機能てほぼないしweb apiいじってるだけだからcでもいいやん
js自体の機能てほぼないしweb apiいじってるだけだからcでもいいやん
114デフォルトの名無しさん
2025/12/10(水) 19:59:11.30ID:IFiV5w4p rustでは値渡しはクローンしなければムーブになるだろうな
115デフォルトの名無しさん
2025/12/10(水) 20:34:20.54ID:9lNpGh2X >>114
C++のmoveはコピーコンストラクタの呼び出しを回避するのが目的である一方、
Rustの値渡しは(最適化を無視すれば)常に単なるビット毎のシャローコピーであり、RustにC++のmoveに相当するものは存在しない
Rustのmoveは所有権の移動という文脈上の仮想的な操作でしかなく、代入の実行時挙動は一切変化しない点でC++のmoveとは全く異なる概念
C++のmoveはコピーコンストラクタの呼び出しを回避するのが目的である一方、
Rustの値渡しは(最適化を無視すれば)常に単なるビット毎のシャローコピーであり、RustにC++のmoveに相当するものは存在しない
Rustのmoveは所有権の移動という文脈上の仮想的な操作でしかなく、代入の実行時挙動は一切変化しない点でC++のmoveとは全く異なる概念
116デフォルトの名無しさん
2025/12/10(水) 20:37:02.84ID:0wVpILab JavaScriptへトランスパイルできる言語はいくつかある
TypeScriptは言わずもがなDartとKotlinも公式で保守されてる
JavaScriptを書くために必ずしもJavaScriptを使う必要は無い
TypeScriptは言わずもがなDartとKotlinも公式で保守されてる
JavaScriptを書くために必ずしもJavaScriptを使う必要は無い
117デフォルトの名無しさん
2025/12/10(水) 20:41:05.28ID:0wVpILab118デフォルトの名無しさん
2025/12/10(水) 23:42:16.04ID:kHSO1Qs/119デフォルトの名無しさん
2025/12/11(木) 00:22:02.01ID:cU6/FCF6 >シングルスレッドだから排他制御は要らない
お前がそう思うんならそうなんだろうお前ん中ではな
お前がそう思うんならそうなんだろうお前ん中ではな
120デフォルトの名無しさん
2025/12/11(木) 00:23:17.13ID:cU6/FCF6 同時実行制御のことを雑に排他制御と呼ぶやつにプログラミングをさせてはいけない
排他制御も同時実行制御もどちらも絶対理解してないから
排他制御も同時実行制御もどちらも絶対理解してないから
121デフォルトの名無しさん
2025/12/11(木) 08:30:48.24ID:CybeALG1 >>120
誤解してないか?
こういう関係だぞ
https://en.wikipedia.org/wiki/Mutual_exclusion
In computer science, "mutual exclusion" (排他制御) is a property of "concurrency control" (同時実行制御), which is instituted for the purpose of preventing race conditions.
誤解してないか?
こういう関係だぞ
https://en.wikipedia.org/wiki/Mutual_exclusion
In computer science, "mutual exclusion" (排他制御) is a property of "concurrency control" (同時実行制御), which is instituted for the purpose of preventing race conditions.
122デフォルトの名無しさん
2025/12/11(木) 10:34:14.13ID:FEj7H+LS RustのmoveもC++のmoveも、
「(仮に最適化されずとも)構造体のシャローコピーのコストは一般に軽く、多くの場合問題にならない」
というのが大前提なのだけど、>>107>>111は根本的なところを理解してなそう
RustやC++に限らず、GoやC#など構造体の値渡しができる言語に基本的に共通する大前提だね
「(仮に最適化されずとも)構造体のシャローコピーのコストは一般に軽く、多くの場合問題にならない」
というのが大前提なのだけど、>>107>>111は根本的なところを理解してなそう
RustやC++に限らず、GoやC#など構造体の値渡しができる言語に基本的に共通する大前提だね
123デフォルトの名無しさん
2025/12/11(木) 11:24:54.77ID:KdoTRU3f そういう問題ではない
呼び出し元関数のスタックフレームに直接書き込むのがRVO
配列もヒープを利用しない
呼び出し元関数のスタックフレームに直接書き込むのがRVO
配列もヒープを利用しない
124デフォルトの名無しさん
2025/12/11(木) 12:43:57.33ID:UITvxyr5 レジスタ渡しよりも高速
余分なコードが介在しないCよりも
余分なコードだらけのRustが速くなるとしたらその辺が原因かもな
余分なコードが介在しないCよりも
余分なコードだらけのRustが速くなるとしたらその辺が原因かもな
125デフォルトの名無しさん
2025/12/11(木) 12:54:01.07ID:sTofDfRv 複オジだらけ
126デフォルトの名無しさん
2025/12/11(木) 12:58:56.52ID:sgwHswzM 自作自演
127デフォルトの名無しさん
2025/12/11(木) 18:48:54.72ID:KdoTRU3f128デフォルトの名無しさん
2025/12/11(木) 22:15:21.89ID:MZEzdKoQ RVOとは違う話だけどC++は戻り値を std::move した方が良いケースは結構あるぞ
戻り値というか、戻り値の型に渡すコンストラクタに対して渡す時の話だけど
戻り値が std::string や std:: vector をフィールドに持つ構造体やタプルで、最後の return で初期化してるような場合
return { std::move(str); };
こういう場合は str は自動ではちゃんとムーブしてくれなかった気がする
(最近のC++は知らんから、間違ってたら指摘がほしい)
戻り値というか、戻り値の型に渡すコンストラクタに対して渡す時の話だけど
戻り値が std::string や std:: vector をフィールドに持つ構造体やタプルで、最後の return で初期化してるような場合
return { std::move(str); };
こういう場合は str は自動ではちゃんとムーブしてくれなかった気がする
(最近のC++は知らんから、間違ってたら指摘がほしい)
129デフォルトの名無しさん
2025/12/11(木) 22:42:19.12ID:9uKNSHMX みんな当たり前にC++を引き合いに出しているけど、Rust書いてる人でC++エアプ勢っていないんだろうか
130デフォルトの名無しさん
2025/12/11(木) 23:34:58.81ID:ueLwSjw6 Cのみはいるかもしれないが、少なくともC系統の言語を触れてないと
Rustがこんなに苦労して解決しようとしてる問題への実感が持てなくて
GC言語やスクリプトよりちょっと速いだけの、冗長構文クソ言語以外に感想持てなそう
Rustがこんなに苦労して解決しようとしてる問題への実感が持てなくて
GC言語やスクリプトよりちょっと速いだけの、冗長構文クソ言語以外に感想持てなそう
131デフォルトの名無しさん
2025/12/11(木) 23:46:18.77ID:lRBvFeeP >>121
何を誤解してると思ったの?
それとその定義だとconcurrency controlは常にmutual exclusionというpropertyを持ってるという関係になるけどCSの一般的定義ではそういう関係ではなくてconcurrency controlを実現する手段の一つとか実現手段の一部という関係
何を誤解してると思ったの?
それとその定義だとconcurrency controlは常にmutual exclusionというpropertyを持ってるという関係になるけどCSの一般的定義ではそういう関係ではなくてconcurrency controlを実現する手段の一つとか実現手段の一部という関係
132デフォルトの名無しさん
2025/12/12(金) 00:36:09.89ID:R4MfitDw 横からだけど、引用文においてもミューテックスは並行プログラミングにおける安全性アプローチのひとつと定義してると思うが
両者共に「並行制御 ⊃ 排他制御」という認識ではないの?
何が論点になってんだ?
両者共に「並行制御 ⊃ 排他制御」という認識ではないの?
何が論点になってんだ?
133デフォルトの名無しさん
2025/12/12(金) 01:29:09.26ID:lYmP2IfW134デフォルトの名無しさん
2025/12/12(金) 02:06:45.48ID:hV57hqyS135デフォルトの名無しさん
2025/12/12(金) 02:22:06.56ID:05W/5u4b >>133
>JavaScriptは「並行」プログラミングかつシングルスレッドなのでミューテックスが不要
そこは JavaScript は並行プログラミング"でありながら"じゃね?
「ミューテックスの要否」は「シングルスレッドであること」で定まり、したがって「並行プログラミングであること」を接続詞"かつ"で「並行させる」のは説明として不適かと
そしてなんについて議論してんの?
おふたりが論点としているものがはたから見ていて判然とせん
>JavaScriptは「並行」プログラミングかつシングルスレッドなのでミューテックスが不要
そこは JavaScript は並行プログラミング"でありながら"じゃね?
「ミューテックスの要否」は「シングルスレッドであること」で定まり、したがって「並行プログラミングであること」を接続詞"かつ"で「並行させる」のは説明として不適かと
そしてなんについて議論してんの?
おふたりが論点としているものがはたから見ていて判然とせん
136デフォルトの名無しさん
2025/12/12(金) 02:41:47.22ID:H4zR5jbz >>132が並列と並行の区別ができてないからでしょう
137デフォルトの名無しさん
2025/12/12(金) 03:11:39.93ID:s9XOKHrp >>136
それは具体的にどの部分からそう読み取ったの?
「シングルスレッドであること」によって、「ミューテックスの要否」は定まる
したがって並列か並行かとは別議論では?
そもそも本件において前者は考慮不要かと
それは具体的にどの部分からそう読み取ったの?
「シングルスレッドであること」によって、「ミューテックスの要否」は定まる
したがって並列か並行かとは別議論では?
そもそも本件において前者は考慮不要かと
138デフォルトの名無しさん
2025/12/12(金) 03:30:00.02ID:H4zR5jbz139デフォルトの名無しさん
2025/12/12(金) 06:22:33.05ID:ZfrS6xvk >>138
>mutexは同じCPU内の話だから並列=マルチスレッド
ミューテックスの要否は端的に言えば「共有リソースに対するアクセスの有無」
マルチスレッドは並列を実現するためのいち技術であり、限定するのはミスリード
マルチコア、マルチソケット(NUMAなど)もまたしかり
「同じCPU内」という単位は不正確
>でも>>132は区別できてなくて並行プログラミングと書いてます
「並行制御 ⊃ 排他制御」と同じこと
「並行 ⊃ 並列」で並行は抽象レベルの概念であり、並列は物理レベルの実現方法
前者が後者を含意するのでこれらの記述は極めて自然
>並行プログラミングでは値を同時に更新することがないためmutexは要らないです
したがってこれは明確に誤り
>>136 を熨斗付けてお返しいたします
>並行並列プログラミングまたは並列プログラミングの時のみmutexが要ります
同上
レイヤの違う概念、用語を並行させて書いてしまってる
重ねるけれど、ミューテックスの要否基準は「共有状態の同時アクセス可能性」のみ
とりあえず >>121 の引用部分がそもそも間違ってるという主張?
そうであるなら以下に対して反論どうぞ
>In computer science, mutual exclusion is a property of concurrency control, which is instituted for the purpose of preventing race conditions.
>mutexは同じCPU内の話だから並列=マルチスレッド
ミューテックスの要否は端的に言えば「共有リソースに対するアクセスの有無」
マルチスレッドは並列を実現するためのいち技術であり、限定するのはミスリード
マルチコア、マルチソケット(NUMAなど)もまたしかり
「同じCPU内」という単位は不正確
>でも>>132は区別できてなくて並行プログラミングと書いてます
「並行制御 ⊃ 排他制御」と同じこと
「並行 ⊃ 並列」で並行は抽象レベルの概念であり、並列は物理レベルの実現方法
前者が後者を含意するのでこれらの記述は極めて自然
>並行プログラミングでは値を同時に更新することがないためmutexは要らないです
したがってこれは明確に誤り
>>136 を熨斗付けてお返しいたします
>並行並列プログラミングまたは並列プログラミングの時のみmutexが要ります
同上
レイヤの違う概念、用語を並行させて書いてしまってる
重ねるけれど、ミューテックスの要否基準は「共有状態の同時アクセス可能性」のみ
とりあえず >>121 の引用部分がそもそも間違ってるという主張?
そうであるなら以下に対して反論どうぞ
>In computer science, mutual exclusion is a property of concurrency control, which is instituted for the purpose of preventing race conditions.
140デフォルトの名無しさん
2025/12/12(金) 06:46:29.30ID:H4zR5jbz >>139
あなたのような知識が足りなく偏った人を相手にするのは大変だけど
単に並列プログラミングといえば複数のPCを用いる分散型の並列プログラミングを含むのよ
話題の領域を明確にするために今回はmutexの話だから分散型の話題ではないと限定しているわけ
そういう常識を持たないかあえて無視して無意味に突くだけのダメ人間みたいだからこれ以上はくだらないやりとりしません
あなたのような知識が足りなく偏った人を相手にするのは大変だけど
単に並列プログラミングといえば複数のPCを用いる分散型の並列プログラミングを含むのよ
話題の領域を明確にするために今回はmutexの話だから分散型の話題ではないと限定しているわけ
そういう常識を持たないかあえて無視して無意味に突くだけのダメ人間みたいだからこれ以上はくだらないやりとりしません
141デフォルトの名無しさん
2025/12/12(金) 08:00:06.77ID:s73KDvVl >>140
>単に並列プログラミングといえば複数のPCを用いる分散型の並列プログラミングを含むのよ
いやあ、そんなことはないと思うが
少なくともこちらは本件において分散コンピューティングには触れていない
>今回はmutexの話だから分散型の話題ではないと限定しているわけ
心得てるけど
その上で「ミューテックスの要否」は「共有リソースに対する同時アクセスの有無」と言明しているわけであり
あなたが以下のようにミューテックスの用途を誤解、もしくはミスリードをしていたもので、反例をいくつか挙げてわざわざ説明したのであって(マルチコア、マルチCPU = マルチソケット⦅同一マシン内のNUMAノード間⦆)
マルチスレッドは並列の一形態でイコールではない
共有リソースへの同時アクセスが起こりうるなら、スレッド、コア、ソケットの別なく排他制御はごくごく自然な選択肢
ちなみにNUMAはわかる?複数PCの使用や分散技術の話じゃないよ
>mutexは同じCPU内の話だから並列=マルチスレッドでしょ
そしてそもそも並列と並行の区別だが、これについてもレイヤが違うと説明したはず
「並行 ⊃ 並列」
並行はより上位の抽象概念だから、並行プログラミングに言及する際、ミューテックス(排他制御)を取り上げるのは当たり前
したがって以下は明確に誤ってるかと
>並行プログラミングでは値を同時に更新することがないためmutexは要らないです
並列だろうが並行だろうが、リソースへの競合状態が起こりえるなら、ミューテックスは要検討
>単に並列プログラミングといえば複数のPCを用いる分散型の並列プログラミングを含むのよ
いやあ、そんなことはないと思うが
少なくともこちらは本件において分散コンピューティングには触れていない
>今回はmutexの話だから分散型の話題ではないと限定しているわけ
心得てるけど
その上で「ミューテックスの要否」は「共有リソースに対する同時アクセスの有無」と言明しているわけであり
あなたが以下のようにミューテックスの用途を誤解、もしくはミスリードをしていたもので、反例をいくつか挙げてわざわざ説明したのであって(マルチコア、マルチCPU = マルチソケット⦅同一マシン内のNUMAノード間⦆)
マルチスレッドは並列の一形態でイコールではない
共有リソースへの同時アクセスが起こりうるなら、スレッド、コア、ソケットの別なく排他制御はごくごく自然な選択肢
ちなみにNUMAはわかる?複数PCの使用や分散技術の話じゃないよ
>mutexは同じCPU内の話だから並列=マルチスレッドでしょ
そしてそもそも並列と並行の区別だが、これについてもレイヤが違うと説明したはず
「並行 ⊃ 並列」
並行はより上位の抽象概念だから、並行プログラミングに言及する際、ミューテックス(排他制御)を取り上げるのは当たり前
したがって以下は明確に誤ってるかと
>並行プログラミングでは値を同時に更新することがないためmutexは要らないです
並列だろうが並行だろうが、リソースへの競合状態が起こりえるなら、ミューテックスは要検討
レスを投稿する
ニュース
- 【サッカー】日本代表の南野拓実は左膝前十字靱帯断裂の重傷 全治は明らかにされず フランス杯で負傷 所属先のモナコが発表 [久太郎★]
- 日本の労働生産性28位に後退、先進7か国で最下位…デフレやコロナ禍で経済の低成長続く [ぐれ★]
- 【MLB】村上宗隆の『小型契約』は吉田正尚の影響か 市場が思いのほか停滞 「NPB打者に懐疑的。吉田が高すぎた」 [冬月記者★]
- ゼレンスキー氏「高市総理に感謝」 9000億円超追加支援に 「国際秩序に貢献」 (動画あり) [ごまカンパチ★]
- 【徳島】「体調が悪くなったら自己責任」と同意書求める 最長1年2か月期限切れ 生活保護受給者に賞味期限切れ食品を支給 徳島市 ★3 [ぐれ★]
- 「ONE PIECE」尾田栄一郎、原作は「ここからが大変」「僕は歳をとってしまったので最高速度で来年もズッシリドッシリ航海します」 [muffin★]
- 岸田文雄🕶「だから俺の時代が一番よかっただろ、馬鹿な国民が」 👈これ言われたらお前らどうするよ?高市 [986198215]
- カニ「ぼくのガワを火にかけてその上で蟹味噌溶かしてそこで蟹しゃぶにして食べてる…」
- まう3時だよ
- チャッピー「息臭い人好き」
- 最近この時間に起きてしまうんだが
- 使っていないgmailやoutlookのアドレスに期限切れメール
