>>133
1. ミューテックスと排他制御(mutual exclusion)を区別しよう
ミューテックスは排他制御を実現する方法の一つで
locked/unlockedの状態を管理する変数だったり構造体だったりの実装のこと
排他制御(mutual exclusion)という概念とは別もの
2. ワーカーを使わないシングルスレッドのJavaScriptにおいて排他制御は不要か?
もちろん必要
https://web.mit.edu/6.102/www/sp25/classes/16-mutual-exclusion/
3. ワーカーを使わないシングルスレッドのJavaScriptにおいてミューテックスは不要か?
ミューテックスが必要な状況ももちろんある
例えば複数のダウンロードリクエストを並行処理しているダウンローダーで
特定のサイトは最大1コネクションのダウンロードしか許可しておらず
複数同時ダウンロードをすると全部強制終了されてしまう状況とか
探検
Rust part34
149デフォルトの名無しさん
2025/12/12(金) 23:45:04.62ID:tMtI2IXb150デフォルトの名無しさん
2025/12/12(金) 23:59:32.76ID:2HyQrFLK >>149
無知だな
基本を分かっていない
ミューテックスはマルチスレッド時に同時アクセスの競合が起きる可能性がある場合に用いてスレッドを待たせる機能がある
特定のサイトは最大1コネクションのダウンロードしか許可してない場合
ワーカーを用いないJavaScriptは並行処理なのでミューテックスは不要
単なるカウンター変数のみでよい
無知だな
基本を分かっていない
ミューテックスはマルチスレッド時に同時アクセスの競合が起きる可能性がある場合に用いてスレッドを待たせる機能がある
特定のサイトは最大1コネクションのダウンロードしか許可してない場合
ワーカーを用いないJavaScriptは並行処理なのでミューテックスは不要
単なるカウンター変数のみでよい
151デフォルトの名無しさん
2025/12/13(土) 00:03:09.62ID:1Rkfvz+k >>143
>並行処理=同時進行するが同時に実行されることはない
>並列処理=同時に実行されるためメモリ競合などの対策が必要
一般的な定義からすると↑これはどっちも間違ってる
並行処理は同時実行されてる部分もあれば同時実行できない部分ももある
同時実行できない部分の制御のため競合対策が必要
並列処理は同時実行可能な処理を指すので競合対策は不要
同時実行できない処理を並列処理とは普通は言わない
>並行処理=同時進行するが同時に実行されることはない
>並列処理=同時に実行されるためメモリ競合などの対策が必要
一般的な定義からすると↑これはどっちも間違ってる
並行処理は同時実行されてる部分もあれば同時実行できない部分ももある
同時実行できない部分の制御のため競合対策が必要
並列処理は同時実行可能な処理を指すので競合対策は不要
同時実行できない処理を並列処理とは普通は言わない
152デフォルトの名無しさん
2025/12/13(土) 00:07:42.28ID:TTFtgmCI153デフォルトの名無しさん
2025/12/13(土) 00:07:52.21ID:1Rkfvz+k154デフォルトの名無しさん
2025/12/13(土) 00:36:34.04ID:1Rkfvz+k 現実的には単なるカウンター変数をミューテックスとして利用するだけではダウンローダーに必要な機能を満たせないからキューイングできるタイプの非同期ミューテックスを使う
155デフォルトの名無しさん
2025/12/13(土) 01:22:57.78ID:O7dPDRw7 >>153
いいえカウンター変数とmutexは異なります
mutexは他のスレッドがロック中にスレッドを待たされる機能と利用が可能になったときに再開させる機能を伴います
その効率のためOSが提供するfutex機能を用いてmutexを実装する環境が多いです
いいえカウンター変数とmutexは異なります
mutexは他のスレッドがロック中にスレッドを待たされる機能と利用が可能になったときに再開させる機能を伴います
その効率のためOSが提供するfutex機能を用いてmutexを実装する環境が多いです
156デフォルトの名無しさん
2025/12/13(土) 03:20:12.64ID:diqjnlrE >>147
参照された記事には並行処理における競合対策は不要と記載されていました?
また、「コンピューティング」という、物理、実装を意識するレベルでの具体的差異をこちらは否定していない
その前段となる概念レベルの関係についての言及であり
>Concurrency is a broader concept that encompasses several related ideas, including:
>Parallelism (simultaneous execution on multiple processing units). Parallelism executes tasks independently on multiple CPU cores. Concurrency allows for multiple threads of control at the program level, which can use parallelism or time-slicing to perform these tasks. Programs may exhibit parallelism only, concurrency only, both parallelism and concurrency, neither.
https://en.wikipedia.org/wiki/Concurrency_%28computer_science%29#Related_concepts
実際に並行、並列処理の実装にあたっては、物理、ハードウェア的な制約に基づき、当然、両者は弁別される
言うまでもないがシングルコアにて並列処理は実装できまい
さりとて逆もしかりとならないわけで
前者は後者を包含している、後者は前者の下位概念であり、具体的な実現手段
「並行 ⊃ 並行、並列」のように概念のポケットに、それとは別に具体的技術としての「並行」「並列」が入るイメージ
そして繰り返すけど、本件論点は競合考慮、ミューテックスの要否では?
並行プログラミングする際、これを不要とする立場?
参照された記事には並行処理における競合対策は不要と記載されていました?
また、「コンピューティング」という、物理、実装を意識するレベルでの具体的差異をこちらは否定していない
その前段となる概念レベルの関係についての言及であり
>Concurrency is a broader concept that encompasses several related ideas, including:
>Parallelism (simultaneous execution on multiple processing units). Parallelism executes tasks independently on multiple CPU cores. Concurrency allows for multiple threads of control at the program level, which can use parallelism or time-slicing to perform these tasks. Programs may exhibit parallelism only, concurrency only, both parallelism and concurrency, neither.
https://en.wikipedia.org/wiki/Concurrency_%28computer_science%29#Related_concepts
実際に並行、並列処理の実装にあたっては、物理、ハードウェア的な制約に基づき、当然、両者は弁別される
言うまでもないがシングルコアにて並列処理は実装できまい
さりとて逆もしかりとならないわけで
前者は後者を包含している、後者は前者の下位概念であり、具体的な実現手段
「並行 ⊃ 並行、並列」のように概念のポケットに、それとは別に具体的技術としての「並行」「並列」が入るイメージ
そして繰り返すけど、本件論点は競合考慮、ミューテックスの要否では?
並行プログラミングする際、これを不要とする立場?
157デフォルトの名無しさん
2025/12/13(土) 07:39:32.48ID:seiImwq0 >>156
並列を用いない場合=マルチスレッドを用いない場合=シングルスレッドの場合、
並行処理でメモリアクセスが同時に実行されることはないためメモリ競合は発生しない。
つまりカウンターやフラグなどあらゆる変数についてMutexを用いる必要がない。
これはJavaScriptだけでなくRustでシングルスレッドで非同期タスクを並行処理する場合も同じ。
具体的にはtokioのspawn (並行&並列)はSendトレイト境界があるため変数共有にMutexなどが必須だが、
spawn_local (並行のみ)はSendトレイト境界がないためMutexは不要という形で表れる。
並列を用いない場合=マルチスレッドを用いない場合=シングルスレッドの場合、
並行処理でメモリアクセスが同時に実行されることはないためメモリ競合は発生しない。
つまりカウンターやフラグなどあらゆる変数についてMutexを用いる必要がない。
これはJavaScriptだけでなくRustでシングルスレッドで非同期タスクを並行処理する場合も同じ。
具体的にはtokioのspawn (並行&並列)はSendトレイト境界があるため変数共有にMutexなどが必須だが、
spawn_local (並行のみ)はSendトレイト境界がないためMutexは不要という形で表れる。
158デフォルトの名無しさん
2025/12/13(土) 08:07:26.77ID:xrC7LiGl 関連型ってT<U>みたいな型依存型ができないからその代用だよね
159デフォルトの名無しさん
2025/12/13(土) 10:56:12.72ID:vOZmwqT4 シングルスレッドでも2つの非同期処理がawaitを挟んで同じメモリを参照・更新する時は
data raceのリスクがあるから気をつけてくれ
Rustの場合は&mutが他の参照をブロックするから問題になりにくいけど
data raceのリスクがあるから気をつけてくれ
Rustの場合は&mutが他の参照をブロックするから問題になりにくいけど
160デフォルトの名無しさん
2025/12/13(土) 11:00:34.93ID:/DhArST+ 日本語より
concurrent
parallel
distributed
で議論した方が良いと思うの
https://zenn.dev/koron/articles/3ddcaaeae37f9befdf70
concurrent
parallel
distributed
で議論した方が良いと思うの
https://zenn.dev/koron/articles/3ddcaaeae37f9befdf70
161デフォルトの名無しさん
2025/12/13(土) 11:37:19.65ID:uGVM51WN 並行はヘテロ
並列はホモ
並列はホモ
162デフォルトの名無しさん
2025/12/13(土) 12:58:20.04ID:8qQHr6Hn 同時アクセスの可能性があるものにmutexでロックかけろってだけじゃないの
163デフォルトの名無しさん
2025/12/13(土) 14:26:19.82ID:vEYY11o1164デフォルトの名無しさん
2025/12/13(土) 14:26:52.20ID:DjrUGhug >>162
Mutexは別々のスレッド同士が同時アクセスするデータ競合を防げるよ
通常のstd::sys::Mutexだと既にロックを持っている同じスレッドでロックしようとすると動作の保証はなくてパニックするかデッドロックするかなど環境依存なので用いてはダメだけど
つまりそれはマルチスレッド用
Mutexは別々のスレッド同士が同時アクセスするデータ競合を防げるよ
通常のstd::sys::Mutexだと既にロックを持っている同じスレッドでロックしようとすると動作の保証はなくてパニックするかデッドロックするかなど環境依存なので用いてはダメだけど
つまりそれはマルチスレッド用
165デフォルトの名無しさん
2025/12/13(土) 14:48:01.82ID:vvvRno5n 一般的なアプリケーションプログラミングにおいては、排他制御の対象はデータというよりコードの特定のセクションであることが多い
当該セクションで扱うのが単一のデータストアである場合はそのデータストアに対する単純なロックに帰着するが、実際にはそうでない場合も多い
当該セクションで扱うのが単一のデータストアである場合はそのデータストアに対する単純なロックに帰着するが、実際にはそうでない場合も多い
166デフォルトの名無しさん
2025/12/13(土) 15:10:49.43ID:6mP4NQXw ケントンプソンに書き直してもらったほうがいいだろこの言語
167デフォルトの名無しさん
2025/12/13(土) 20:30:59.61ID:CZ2kQ+mp 自演するにしても、逆に自演ってバレバレになる1レスごとルーパチじゃなく
せめてWi-Fiとスマホ回線でやればいいのに
せめてWi-Fiとスマホ回線でやればいいのに
168デフォルトの名無しさん
2025/12/14(日) 00:57:37.50ID:xj54TDj4 >>157
まず初手の等式がぶっ飛んでいる
並行、並列という処理の性質とその処理を実際に行う際に用いるモデルの話は直交概念、因果の幅跳び甚だしい
「並列でない」ことによって、ただちに「マルチスレッドでない = シングルスレッドである」ことは定まらないため、「シングルスレッドで共有メモリを同時に操作可能な実行主体が一つしか存在しない」ことは担保しえない
ミューテックスの要否は「共有メモリに対して複数の実行単位が論理的に同時アクセスしうるかどうか」で、「物理的に同時実行されない」ことは必ずしもメモリ安全性を意味しない
すなわちコア数(並列か否か)とマルチスレッドのいかんは別議論
並行処理の実現手段としてマルチスレッドを用いたならば、メモリ競合は生じるし、したがってミューテックスも要検討
重ねるけれど「シングルスレッドである」とする際に、それを前提するのが「並行処理である」からというのは因果の車がパンクしている
まず初手の等式がぶっ飛んでいる
並行、並列という処理の性質とその処理を実際に行う際に用いるモデルの話は直交概念、因果の幅跳び甚だしい
「並列でない」ことによって、ただちに「マルチスレッドでない = シングルスレッドである」ことは定まらないため、「シングルスレッドで共有メモリを同時に操作可能な実行主体が一つしか存在しない」ことは担保しえない
ミューテックスの要否は「共有メモリに対して複数の実行単位が論理的に同時アクセスしうるかどうか」で、「物理的に同時実行されない」ことは必ずしもメモリ安全性を意味しない
すなわちコア数(並列か否か)とマルチスレッドのいかんは別議論
並行処理の実現手段としてマルチスレッドを用いたならば、メモリ競合は生じるし、したがってミューテックスも要検討
重ねるけれど「シングルスレッドである」とする際に、それを前提するのが「並行処理である」からというのは因果の車がパンクしている
170デフォルトの名無しさん
2025/12/14(日) 07:46:26.10ID:xj54TDj4171デフォルトの名無しさん
2025/12/14(日) 08:13:24.71ID:fsdEVE/K172デフォルトの名無しさん
2025/12/14(日) 09:19:18.51ID:xj54TDj4 >>171
明確に前半後半で議論が分裂しているね
そして >>168 の指摘は前半の並行、並列、スレッド、競合、ミューテックスなどへの胡乱な認識に基づく主張、説明に対するもので、後半にて言及されてる「シングルスレッド」などに見られる条件下を前提としたケースについては触れていない
前半部分の指摘については既述のとおり
後半については指摘というより、並行、マルチスレッドなどの話で「Rustの話が出てこない」という反論かます時点で概念理解は推して知るべし
おそらく経験した個別ケースを安易に一般化してしまっており、自身の使っている用語が概念、実装、結果のどこに属しているか意識もあまりしていないのでは
だから乱暴な等式を使い、平気で一般化してしまう
Rust(tokioのexecutor)に見られる「設計上の制約(単一スレッドであることを保証)」は、「並行処理」一般とは議論のレイヤがズレている
そちらの議論に合わせるとすれば、spawn_localがmutex不要なのはexecutorが単一スレッドであることをtokioが保証しているからであり、「並行処理だから」が理由ではない
明確に前半後半で議論が分裂しているね
そして >>168 の指摘は前半の並行、並列、スレッド、競合、ミューテックスなどへの胡乱な認識に基づく主張、説明に対するもので、後半にて言及されてる「シングルスレッド」などに見られる条件下を前提としたケースについては触れていない
前半部分の指摘については既述のとおり
後半については指摘というより、並行、マルチスレッドなどの話で「Rustの話が出てこない」という反論かます時点で概念理解は推して知るべし
おそらく経験した個別ケースを安易に一般化してしまっており、自身の使っている用語が概念、実装、結果のどこに属しているか意識もあまりしていないのでは
だから乱暴な等式を使い、平気で一般化してしまう
Rust(tokioのexecutor)に見られる「設計上の制約(単一スレッドであることを保証)」は、「並行処理」一般とは議論のレイヤがズレている
そちらの議論に合わせるとすれば、spawn_localがmutex不要なのはexecutorが単一スレッドであることをtokioが保証しているからであり、「並行処理だから」が理由ではない
173デフォルトの名無しさん
2025/12/14(日) 09:48:55.96ID:44yyY/m/ >>172
非同期タスクで並行処理するためのランタイム基盤がRustのtokio
tokioでも並列処理をしない限り並行処理だけならばメモリ競合は発生しない
そのためミューテックスも当然必要ない
これは言語やランタイム基盤の種類に関係なく常に成立する
非同期タスクで並行処理するためのランタイム基盤がRustのtokio
tokioでも並列処理をしない限り並行処理だけならばメモリ競合は発生しない
そのためミューテックスも当然必要ない
これは言語やランタイム基盤の種類に関係なく常に成立する
174デフォルトの名無しさん
2025/12/14(日) 10:39:55.53ID:UGesTTaV 相変わらず複数データの排他制御を理解していない複おじ
175デフォルトの名無しさん
2025/12/14(日) 10:52:14.74ID:TOxv8/vf176デフォルトの名無しさん
2025/12/14(日) 11:11:39.26ID:7VXp8ta2 複数データの排他制御ってなんの話?
177デフォルトの名無しさん
2025/12/14(日) 13:10:49.83ID:O1BhnRhB LinuxついにRust公用語に
178デフォルトの名無しさん
2025/12/14(日) 14:04:43.97ID:xj54TDj4 >>173
だから安易な一般化
「並行処理 = 非同期処理」と認識してない?
そちらの主張はtokioをはじめ、その中においての業界標準、常識であって、外に出たら通用しない
「並行処理」におけるメモリ競合の有無やミューテックスの要否じゃなくて、それを実現する実装手段の内側世界における議論
それらを前提してるから、「並行処理 = シングルスレッド = 競合しない = ミューテックスは必要ない」と因果を逆立ちさせてしまう
>>157 のレスを引くなら「並行(非並列) = シングルスレッド = spawn_local = Sendがない」ではなく、「spawn_localを選ぶ = tokioがシングルスレッドであることを保証 = スレッド移動がないためSend不要 = 結果として並行(非並列)になる」が正しい因果
設計段階で「並列か否か」をまず決めて、それに応じたexecutorを選択し、その結果、実装者の期待どおりに「並行(非並列)」or「並列 & 並行」となるわけで
これが本来の思考、理解の順序であって、逆にするから概念自体が胡乱げになる
「非同期処理」に限るのであればいざ知らず、そうでないなら、つまり「並行処理」一般に議論のスコープを広げるのなら、そちらの因果理解は破綻する
だから安易な一般化
「並行処理 = 非同期処理」と認識してない?
そちらの主張はtokioをはじめ、その中においての業界標準、常識であって、外に出たら通用しない
「並行処理」におけるメモリ競合の有無やミューテックスの要否じゃなくて、それを実現する実装手段の内側世界における議論
それらを前提してるから、「並行処理 = シングルスレッド = 競合しない = ミューテックスは必要ない」と因果を逆立ちさせてしまう
>>157 のレスを引くなら「並行(非並列) = シングルスレッド = spawn_local = Sendがない」ではなく、「spawn_localを選ぶ = tokioがシングルスレッドであることを保証 = スレッド移動がないためSend不要 = 結果として並行(非並列)になる」が正しい因果
設計段階で「並列か否か」をまず決めて、それに応じたexecutorを選択し、その結果、実装者の期待どおりに「並行(非並列)」or「並列 & 並行」となるわけで
これが本来の思考、理解の順序であって、逆にするから概念自体が胡乱げになる
「非同期処理」に限るのであればいざ知らず、そうでないなら、つまり「並行処理」一般に議論のスコープを広げるのなら、そちらの因果理解は破綻する
179デフォルトの名無しさん
2025/12/14(日) 15:01:36.46ID:4LwbsUy1180デフォルトの名無しさん
2025/12/14(日) 16:05:54.67ID:+m3/RUXs もう並行処理専用スレを作って移動してほしい
181デフォルトの名無しさん
2025/12/14(日) 18:14:00.68ID:dzhQifsq 長文は読んでないが>>157の複おじの主張に沿うと
実行環境がシングルコアならマルチスレッドでもマルチプロセスでも真の並列ではないから
「カウンターやフラグなどあらゆる変数についてMutexを用いる必要がない」ってことだな
あほらし
実行環境がシングルコアならマルチスレッドでもマルチプロセスでも真の並列ではないから
「カウンターやフラグなどあらゆる変数についてMutexを用いる必要がない」ってことだな
あほらし
182デフォルトの名無しさん
2025/12/14(日) 18:21:41.85ID:dzhQifsq 今回得られた結論は以下の2つ
1. 「JavaScriptはシングルスレッドだから排他制御は要らない」などと言う人は排他制御を全く理解していないということ
2. 概念と実装の区別ができない人はその概念に対する理解が決定的に欠如しているということ
複オジ先生、反面教師役お疲れ様でした。
1. 「JavaScriptはシングルスレッドだから排他制御は要らない」などと言う人は排他制御を全く理解していないということ
2. 概念と実装の区別ができない人はその概念に対する理解が決定的に欠如しているということ
複オジ先生、反面教師役お疲れ様でした。
183デフォルトの名無しさん
2025/12/14(日) 18:51:23.07ID:zM6OZsQF 複おじは日下部陽一先生と知りあえば仲良くなれると思う
184デフォルトの名無しさん
2025/12/14(日) 19:19:56.69ID:mP2ZsAYG185デフォルトの名無しさん
2025/12/14(日) 21:37:57.47ID:tGd21ggn シングルスレッドだからメモリ競合は発生しないって主張が地雷なんだよな
複数の非同期処理で共有してる&Cell<T>の値はawaitの前後で書き換わってる可能性があって
await中の別処理での変更を無視するとマルチスレッドのメモリ競合と同じ不定状態になる
この場合シングルスレッドだからMutexは必要ないというより使えないんだけど
Mutexが必要ないor使えないからメモリ競合は存在しないって結論出すのはやめてほしい
変なタイミングでawaitを挟まなければ回避できる話だから大した問題ではないけど
問題の可能性を理解せずに「メモリ競合は存在しない」って信念を持たれるとこわい
複数の非同期処理で共有してる&Cell<T>の値はawaitの前後で書き換わってる可能性があって
await中の別処理での変更を無視するとマルチスレッドのメモリ競合と同じ不定状態になる
この場合シングルスレッドだからMutexは必要ないというより使えないんだけど
Mutexが必要ないor使えないからメモリ競合は存在しないって結論出すのはやめてほしい
変なタイミングでawaitを挟まなければ回避できる話だから大した問題ではないけど
問題の可能性を理解せずに「メモリ競合は存在しない」って信念を持たれるとこわい
186デフォルトの名無しさん
2025/12/14(日) 22:10:35.13ID:yhv8JhFY187デフォルトの名無しさん
2025/12/14(日) 22:37:59.93ID:xPG6+apI まーた副クン一人で頑張ってるの?
IDコロコロして頑張るねえ
IDコロコロして頑張るねえ
188デフォルトの名無しさん
2025/12/14(日) 22:56:57.21ID:j10MZCpM 複数CPUからの同時アクセスを制限するものだけを Mutex と呼ぶなら
tokio::sync::Mutex についてはどうなんだ?
これはシングルスレッドのランタイムでも使われるものだし、名前の通り Mutex と呼ばれるものの一種だと思うけど
tokio::sync::Mutex についてはどうなんだ?
これはシングルスレッドのランタイムでも使われるものだし、名前の通り Mutex と呼ばれるものの一種だと思うけど
189デフォルトの名無しさん
2025/12/14(日) 23:39:46.59ID:/lebwabc190デフォルトの名無しさん
2025/12/14(日) 23:49:39.40ID:TgyZENYv メモリ競合・データ競合は複数のスレッドもしくは複数のプロセスが互いにどこを実行している知らなくて制御できなかったり不意打ちで切り替わりえる状況で起きるんだよ
>>185
一方でそのケースはシングルスレッドで利用していればそんなことは起きないためデータ競合ではないね
awaitから戻ってきたら値が書き換わっていたというのは関数呼び出しの連鎖から戻ってきたら値が書き換わっていたのと同じようなこと
制御できない知らぬ間に値が書き換わるわけではないためデータ競合とは呼ばれない
>>185
一方でそのケースはシングルスレッドで利用していればそんなことは起きないためデータ競合ではないね
awaitから戻ってきたら値が書き換わっていたというのは関数呼び出しの連鎖から戻ってきたら値が書き換わっていたのと同じようなこと
制御できない知らぬ間に値が書き換わるわけではないためデータ競合とは呼ばれない
191デフォルトの名無しさん
2025/12/15(月) 10:37:47.15ID:NfYVjfv5 競合の話となると特に造語が捗るようですねえ
メモリ競合もそうだけど
データ参照の競合って何だったの?
https://mevius.5ch.net/test/read.cgi/tech/1722354386/966-983
メモリ競合もそうだけど
データ参照の競合って何だったの?
https://mevius.5ch.net/test/read.cgi/tech/1722354386/966-983
192デフォルトの名無しさん
2025/12/16(火) 00:58:10.28ID:W/QCw6TP さてと
linuxカーネルはrust化されないとか言ってた低学歴在日朝鮮人の恥ずかしい書き込みを発掘するか
linuxカーネルはrust化されないとか言ってた低学歴在日朝鮮人の恥ずかしい書き込みを発掘するか
193デフォルトの名無しさん
2025/12/16(火) 01:13:24.49ID:cIHp8Olv Linuxって使いにくい 古~いUnixを未だにひきずってるから
Linuxに拘る必要あるんだろうか?
もういっそのことすべてを新規設計にしてLinuxに代わるオープンソースOSにして欲しい
モデルにするのは…MSはMSで変に使いにくくしていってるとこあるから、この両者の悪所を全部取り除いたやつにして欲しい
Linuxに拘る必要あるんだろうか?
もういっそのことすべてを新規設計にしてLinuxに代わるオープンソースOSにして欲しい
モデルにするのは…MSはMSで変に使いにくくしていってるとこあるから、この両者の悪所を全部取り除いたやつにして欲しい
194デフォルトの名無しさん
2025/12/16(火) 01:14:30.50ID:mQYReazf 複おじみっともないからそういうのやめなって
195デフォルトの名無しさん
2025/12/16(火) 01:23:26.93ID:nHAkm4Ue 排他制御で恥を晒した某オジさんがいつものように別のネタで話題をそらしたいわけですね
196デフォルトの名無しさん
2025/12/16(火) 01:36:51.09ID:x/sZ4m7A197デフォルトの名無しさん
2025/12/16(火) 03:40:58.95ID:6mYT8Axt unix作者はgo作ったしlinuxメンテナに入れて上げたらinじゃねーの?
198デフォルトの名無しさん
2025/12/16(火) 04:03:56.34ID:W/QCw6TP >>196
s390とホビーじゃねえぞ
s390とホビーじゃねえぞ
199デフォルトの名無しさん
2025/12/16(火) 16:45:22.50ID:qwpCJpGr Qiitaスレに逃げてんじゃねーよ
200デフォルトの名無しさん
2025/12/16(火) 19:10:40.61ID:SqwmBjPQ201デフォルトの名無しさん
2025/12/16(火) 19:45:33.35ID:fxmzBDbu Go のランタイムがやってる平行処理 (goroutine) は本当は OS でやりたかったが Linux にかわる OS を作るのは非現実的だから諦めたとは聞いたことがあるな。
単純な話としてアプリケーションが Linux の仕様に依存しきっているから Linux のしがらみを捨てた新しい OS を作ったら全てのアプリケーションが作り直しだ。
インフラは正しくあることよりも安定していることが重要であるという Linux 哲学により、改善によって既存のアプリケーションが動かなくなるならその改善はしないことになっている。(深刻な脆弱性ならやむを得ず修正することはある。)
つまり Linux は長期的に安定してバイナリ互換性を維持していて、更にはこれからもそうであると信じられているから今の地位にあるってことだ。 Windows もそう。
機能・性能の良さより長期的な信頼が大事で、それを得るのは本当に困難な話。
単純な話としてアプリケーションが Linux の仕様に依存しきっているから Linux のしがらみを捨てた新しい OS を作ったら全てのアプリケーションが作り直しだ。
インフラは正しくあることよりも安定していることが重要であるという Linux 哲学により、改善によって既存のアプリケーションが動かなくなるならその改善はしないことになっている。(深刻な脆弱性ならやむを得ず修正することはある。)
つまり Linux は長期的に安定してバイナリ互換性を維持していて、更にはこれからもそうであると信じられているから今の地位にあるってことだ。 Windows もそう。
機能・性能の良さより長期的な信頼が大事で、それを得るのは本当に困難な話。
202デフォルトの名無しさん
2025/12/16(火) 20:04:03.07ID:VMokbSN7 新しいOSに引継ぎのためのWSLのようなのを積んじゃえば
203デフォルトの名無しさん
2025/12/16(火) 20:08:57.42ID:l9eOXZHT BeOSやTRONのようなのでもよかったんだけどなあ
BeOSはなぜかすぐに消えちゃったね、TRONはお国の事情で…
BeOSはなぜかすぐに消えちゃったね、TRONはお国の事情で…
204デフォルトの名無しさん
2025/12/16(火) 20:25:59.95ID:YnU0BKmn >>201
goroutineはプリエンプティブつまり強制中断スケジューリングなので個別にスタックを持たなければいけないけど
Rustの非同期タスクはawaitでスケジューリング切替なのでyield_now等で自分で制御できるメリットとスタックを持たなくていいメリットがあるね
goroutineはプリエンプティブつまり強制中断スケジューリングなので個別にスタックを持たなければいけないけど
Rustの非同期タスクはawaitでスケジューリング切替なのでyield_now等で自分で制御できるメリットとスタックを持たなくていいメリットがあるね
205デフォルトの名無しさん
2025/12/16(火) 20:51:19.88ID:r3w6sfJ0 おじはなんで188だけガン無視なの
206デフォルトの名無しさん
2025/12/16(火) 21:55:03.07ID:33G9TuJX もう敗北を認めてるからでしょ
207デフォルトの名無しさん
2025/12/16(火) 22:02:24.31ID:o613HmUP Rustに勝つのは無理すぎる
208デフォルトの名無しさん
2025/12/17(水) 00:04:52.78ID:BcBC1nAJ せっかくノリノリで自演再開したのに蒸し返された途端に止まるの笑える
209デフォルトの名無しさん
2025/12/17(水) 00:05:33.31ID:IQqRXVk7 どういう指標において?
例えば「開発者の人口の多さ」なら主要言語の中では下位だし、そんなもの切り口によりけりだろ
例えば「開発者の人口の多さ」なら主要言語の中では下位だし、そんなもの切り口によりけりだろ
210デフォルトの名無しさん
2025/12/17(水) 00:37:34.86ID:9IMomu8g tronはスウィッチ2のコントローラで活躍しとるでぇ🧐
211デフォルトの名無しさん
2025/12/17(水) 09:00:54.55ID:XKSP57jx 活躍ではないかな
212デフォルトの名無しさん
2025/12/17(水) 13:00:34.90ID:ZnlCz4EL NeXTは死にかけのところをあやうく拾って貰えた
BeOSの方がmac後継の有力候補とまで言われていたのに
ここまで立場がひっくり返るとは
BeOSの方がmac後継の有力候補とまで言われていたのに
ここまで立場がひっくり返るとは
213デフォルトの名無しさん
2025/12/17(水) 13:20:26.44ID:DM2ngHpZ マイナーアーキテクチャ対応はgccrsプロジェクトの成否にかかってると思うんだが
現状どうなってるの?
現状どうなってるの?
214デフォルトの名無しさん
2025/12/17(水) 14:23:26.87ID:t+T8cWGp そんなもんお荷物になるだけだから失敗してくれた方がいい
最新エディションへの対応が遅れる(or放棄される)のは目に見えていて、
ライブラリがそれに引きずられて最新エディションへの移行を渋るようになれば、
俺達イケイケ最先端ウェーイでやってきたRustコミュニティの自尊心に致命的なダメージを与え、開発者離れを引き起こすことになりかねない
最新エディションへの対応が遅れる(or放棄される)のは目に見えていて、
ライブラリがそれに引きずられて最新エディションへの移行を渋るようになれば、
俺達イケイケ最先端ウェーイでやってきたRustコミュニティの自尊心に致命的なダメージを与え、開発者離れを引き起こすことになりかねない
215デフォルトの名無しさん
2025/12/17(水) 16:13:18.06ID:0zsY87I/ アーキテクチャのLLVM対応はベンダーorメーカーの責任では
売りたいなら真っ先に用意するだろうし時代遅れでコストに見合わなければ切り捨てられる
売りたいなら真っ先に用意するだろうし時代遅れでコストに見合わなければ切り捨てられる
216デフォルトの名無しさん
2025/12/17(水) 19:33:27.44ID:ujCMDiXv というかgcc対応の本命はrustc_codegen_gccの方じゃない?
最近はRust本体のCIでもテストされるようになってきたし、rustupでの配布も計画されている
最近はRust本体のCIでもテストされるようになってきたし、rustupでの配布も計画されている
217デフォルトの名無しさん
2025/12/17(水) 20:42:52.22ID:DzI4E+Zk218デフォルトの名無しさん
2025/12/17(水) 22:06:20.53ID:IQqRXVk7 bincode がサポート終了になったみたい
それなりに広く使われてるクレートでも突如消えることってあるんだな、と改めて思う…
それなりに広く使われてるクレートでも突如消えることってあるんだな、と改めて思う…
219デフォルトの名無しさん
2025/12/17(水) 22:27:57.16ID:GIcNPYi1 メンテナの一人が他のメンテナに相談なく脱GitHub作業を始めて履歴の書き換えとかをやりだして揉めたけど
その渦中のメンテナがトランスジェンダーのポリコレだってことで
実名と住所を晒されて、責任取ってプロジェクト自体終わりってことになったのか
その渦中のメンテナがトランスジェンダーのポリコレだってことで
実名と住所を晒されて、責任取ってプロジェクト自体終わりってことになったのか
220デフォルトの名無しさん
2025/12/17(水) 22:29:06.78ID:JJtTc48Y devでtestで用いてるクレートが多いな
221デフォルトの名無しさん
2025/12/17(水) 22:31:21.65ID:WBnWSF9Z >>217
rustc_codegen_gccがお荷物になってライブラリではなくてRust本体への変更が遅れるデメリットはある
rustc_codegen_gccがお荷物になってライブラリではなくてRust本体への変更が遅れるデメリットはある
222デフォルトの名無しさん
2025/12/17(水) 22:55:48.90ID:7H2QU0IP そこはこれまでもrustcとLLVMとの間の調整でやって来たことだから新たな影響は限りなく小さい
一方でRustの仕様追加変更や標準ライブラリの追加安定化などは当面rustcまわりでの独裁決定事項であることが成長中のRustにとって好ましい
一方でRustの仕様追加変更や標準ライブラリの追加安定化などは当面rustcまわりでの独裁決定事項であることが成長中のRustにとって好ましい
223デフォルトの名無しさん
2025/12/17(水) 23:05:52.77ID:pnFaSaz7 bincodeの件、斜め読みしたけど、こんな感じじゃない?
1. 生成AIのクソissueにブチ切れる
2. 脱GitHubを実行
3. ついでに、トランスジェンダーの関係で改名した新しい名前を使って過去のコミットを書き換える
4. しばらく誰も気づかない
5. 誰かがコミットIDが書き変わってることに気づく
6. うわーサプライチェーン攻撃だーと大騒ぎする
7. 騒ぎの中で、作者の実名や住所を公開する奴が現れる
8. 作者がブチ切れて、メンテナンス終了を宣言
9. ついでに、作者名の欄を独立して編集できないcrates.ioがクソ、と意見
1. 生成AIのクソissueにブチ切れる
2. 脱GitHubを実行
3. ついでに、トランスジェンダーの関係で改名した新しい名前を使って過去のコミットを書き換える
4. しばらく誰も気づかない
5. 誰かがコミットIDが書き変わってることに気づく
6. うわーサプライチェーン攻撃だーと大騒ぎする
7. 騒ぎの中で、作者の実名や住所を公開する奴が現れる
8. 作者がブチ切れて、メンテナンス終了を宣言
9. ついでに、作者名の欄を独立して編集できないcrates.ioがクソ、と意見
224デフォルトの名無しさん
2025/12/18(木) 00:40:08.71ID:SXyMexjv225デフォルトの名無しさん
2025/12/18(木) 12:26:48.37ID:nouCCsxV ハッシュマップってハッシュ値を保持して値を調べるんじゃなくてキーも保存するんだな
保存したくない場合はキーを完全ハッシュ値にしてハッシュ値をキーにしないとだめだな
保存したくない場合はキーを完全ハッシュ値にしてハッシュ値をキーにしないとだめだな
226デフォルトの名無しさん
2025/12/18(木) 13:24:31.83ID:CQ9HORaM キーを保存したくないならHashSetの方があってそう
値にEqが必要だけど完全ハッシュより現実的
値にEqが必要だけど完全ハッシュより現実的
227デフォルトの名無しさん
2025/12/18(木) 14:39:08.80ID:XpyRX9NB 恐ろしい誤解だなと眺めてたら
さらに恐ろしいのが来た
さらに恐ろしいのが来た
228デフォルトの名無しさん
2025/12/18(木) 15:01:44.44ID:MGFN0lYz229デフォルトの名無しさん
2025/12/18(木) 15:07:04.67ID:CQ9HORaM この場合のキーはHashMap<K, V>のKのことだろ
HashSet<T>のキーってなんだよ
ハッシュ値のこと?
HashSet<T>のキーってなんだよ
ハッシュ値のこと?
230デフォルトの名無しさん
2025/12/18(木) 16:23:43.15ID:VAIdWToM 検索に使うオブジェクトがキー。
HashSet は値が常に () であるような HashMap だと説明されてる。
HashSet は値が常に () であるような HashMap だと説明されてる。
231デフォルトの名無しさん
2025/12/18(木) 16:51:07.77ID:nouCCsxV 普通のハッシュマップは何もしないハッシャーを実装すれば出来るな
232デフォルトの名無しさん
2025/12/18(木) 19:13:42.74ID:fm5KR8ce Rustの前に基本情報あたりを取る勉強したほうがいいんじゃないか
古臭いのが多いとはいえ応用は基礎の積み重ねの上にあるからな
古臭いのが多いとはいえ応用は基礎の積み重ねの上にあるからな
233デフォルトの名無しさん
2025/12/18(木) 19:42:58.02ID:Wqs3m317 rustってグローバル変数が使えないんだよね。dfsつらくない?
234デフォルトの名無しさん
2025/12/18(木) 19:46:33.16ID:vUWlsjsI DFSのためにグローバル変数??
プログラミングを基礎からやり直したほうがいいぞ
プログラミングを基礎からやり直したほうがいいぞ
235デフォルトの名無しさん
2025/12/19(金) 10:28:35.58ID:gzseDVjE Rustちょっとビルドの度に数分単位の時間掛かるのなんとかならんのかね
多分プロダクションビルドだけでやればいいような最適化とか毎回回してるよねこれ
多分プロダクションビルドだけでやればいいような最適化とか毎回回してるよねこれ
236デフォルトの名無しさん
2025/12/19(金) 10:31:57.30ID:+3c/moZi >>235
マクロのせいでしょ
マクロのせいでしょ
237デフォルトの名無しさん
2025/12/19(金) 12:08:39.25ID:PZAfhfPm でかい依存ライブラリのリビルドが必要になったならまだしも自分のコードのインクリメンタルビルドだけで数分もかかるようならマシンのアップグレードを検討したほうがいいかもしれない
238デフォルトの名無しさん
2025/12/19(金) 12:10:44.45ID:AoLX/WrE Windowsならアンチウイルスのせいかもね
239デフォルトの名無しさん
2025/12/19(金) 12:20:12.19ID:HjsWPX9f >>235
少なくともデバッグビルドのデフォルト設定では最適化は控えめだよ。
単純にリンクが遅い傾向にある。
Rust プロジェクトの典型的な設計がリンカには負担がかかってしまう要素が多いらしい。
変更が少しだけでもリンカの仕事の量は特に変わらないし。
インクリメンタルリンクをサポートしたリンカ Wild が開発中で、開発中のリンク (修正を少しだけした場合のリンクしなおし) を爆速にする計画は進んでいる。
インクリメンタルリンクは構造がかなり複雑になるので複雑な処理と速度を両立できるのか疑問視されていて従来のリンカ開発者は消極的だったんだが
Rust でなら複雑さと性能を両立したリンカを書けるという自信があるらしい。
少なくともデバッグビルドのデフォルト設定では最適化は控えめだよ。
単純にリンクが遅い傾向にある。
Rust プロジェクトの典型的な設計がリンカには負担がかかってしまう要素が多いらしい。
変更が少しだけでもリンカの仕事の量は特に変わらないし。
インクリメンタルリンクをサポートしたリンカ Wild が開発中で、開発中のリンク (修正を少しだけした場合のリンクしなおし) を爆速にする計画は進んでいる。
インクリメンタルリンクは構造がかなり複雑になるので複雑な処理と速度を両立できるのか疑問視されていて従来のリンカ開発者は消極的だったんだが
Rust でなら複雑さと性能を両立したリンカを書けるという自信があるらしい。
240デフォルトの名無しさん
2025/12/19(金) 12:24:59.93ID:AoLX/WrE C#みたいにプロセス起動したままホットリロードできるようになるのはいつ?
241デフォルトの名無しさん
2025/12/19(金) 13:38:24.83ID:uPPpqdRm ビルドする時間帯によっては依存cratesの更新確認だけで待たされる時があるな
242デフォルトの名無しさん
2025/12/19(金) 14:18:19.55ID:XFk/dn+M >>241
その仕組みのない言語はやばい
その仕組みのない言語はやばい
243デフォルトの名無しさん
2025/12/19(金) 14:24:27.94ID:LTe4LjTR Rust はシングルバイナリ指向なのでホットリロードは想定してないがバイナリを分割すれば (ホスト環境によっては) 今でもホットリロードできる。
実行環境次第。
実行環境次第。
244デフォルトの名無しさん
2025/12/19(金) 23:23:49.86ID:kouENYLZ ホットリロードが欲しいのはGUIみたいに「ちょっと変えて試す」をしたい分野だと思う
それはRustの得意分野でもないし、そこはC#やJSで良いじゃない
Rustが向く分野とそうでない分野があるというだけの話
それはRustの得意分野でもないし、そこはC#やJSで良いじゃない
Rustが向く分野とそうでない分野があるというだけの話
245デフォルトの名無しさん
2025/12/20(土) 06:57:23.96ID:z+uDpZnV ホットリロードはWEB APIにこそ欲しい
246デフォルトの名無しさん
2025/12/20(土) 09:53:03.44ID:IOYr4f7F247デフォルトの名無しさん
2025/12/20(土) 09:54:12.80ID:IOYr4f7F >>243
その仕組みのないOSはやばい
その仕組みのないOSはやばい
248デフォルトの名無しさん
2025/12/20(土) 10:06:31.65ID:cXl/wOeV 明示的にアップデート指定した時以外はイチイチ外部パッケージのダウンロード&再コンパイルとかやらないで欲しいな
249デフォルトの名無しさん
2025/12/20(土) 13:27:35.26ID:Hio2Ii0f >>248
クレイト使用バージョンを指定してないからでは
クレイト使用バージョンを指定してないからでは
250デフォルトの名無しさん
2025/12/21(日) 13:34:39.31ID:i93tKLa3 hoge = "1.2.3"
よりも
hoge = ">=1.2.3"
よりも
hoge = "=1.2.3"
推奨ですね判ります
よりも
hoge = ">=1.2.3"
よりも
hoge = "=1.2.3"
推奨ですね判ります
251デフォルトの名無しさん
2025/12/21(日) 14:35:21.91ID:d7uL0Tpm Microsoft、2030年までにC/C++廃止を目指す
https://softantenna.com/blog/microsoft-c-to-rust-2030/
> 私の目標は、2030年までに Microsoft から すべての C と C++ のコードを排除することです。そのための戦略は、AI と アルゴリズムを組み合わせて、Microsoft が抱える最大規模のコードベースを書き換えることにあります。
> マイクロソフトの大規模C/C++システムをRustへ移行する
https://softantenna.com/blog/microsoft-c-to-rust-2030/
> 私の目標は、2030年までに Microsoft から すべての C と C++ のコードを排除することです。そのための戦略は、AI と アルゴリズムを組み合わせて、Microsoft が抱える最大規模のコードベースを書き換えることにあります。
> マイクロソフトの大規模C/C++システムをRustへ移行する
252デフォルトの名無しさん
2025/12/21(日) 14:43:34.11ID:e/+WNu6S マイクロソフトに限らず2030年代にはどの企業でもC/C++全廃してるでしょ
253デフォルトの名無しさん
2025/12/21(日) 14:48:05.86ID:hsTPvwMv254デフォルトの名無しさん
2025/12/21(日) 15:03:43.26ID:d7uL0Tpm お前らもExcelのマクロをRustで書きたいだろ?
255デフォルトの名無しさん
2025/12/21(日) 15:07:17.98ID:98VUfdyA 1ヶ月で1人あたり100万行のC/C++コードのRust化って
コーディングもレビューもテストすらAI丸投げで
誰も確認しない感じじゃないと不可能だよなあ
コーディングもレビューもテストすらAI丸投げで
誰も確認しない感じじゃないと不可能だよなあ
256デフォルトの名無しさん
2025/12/21(日) 15:15:34.65ID:hsTPvwMv 実際にはWindowsをRustで書き換えるんじゃなくてWindows付属のアプリケーションをRustに置き換えていくんじゃないかな
人を集めるために大きいことを言ってるんだと思うよ
人を集めるために大きいことを言ってるんだと思うよ
257デフォルトの名無しさん
2025/12/21(日) 19:17:27.17ID:6kD7Dv0I そりゃ Rust のほうが良いとは思うが書き換えとなると書き換えに伴って発生するバグだってあるし、十分に安定している部分まで慌てて書き換える合理性がない
258デフォルトの名無しさん
2025/12/21(日) 19:46:26.13ID:IIR4jOxl そう言ってるわりにVisualStudio2026でRust対応しなかったよな
結構くるんじゃないかって期待してたんだけど
結構くるんじゃないかって期待してたんだけど
259デフォルトの名無しさん
2025/12/21(日) 20:27:44.41ID:tmQfSAVe Rustに書き換えたところで何かが改善されたというアピールがしにくいんだよね
速くなろうがエラーがへろうがそれが置き換えによるものなのかって切り分けにくいだろうし
速くなろうがエラーがへろうがそれが置き換えによるものなのかって切り分けにくいだろうし
260デフォルトの名無しさん
2025/12/21(日) 20:28:25.69ID:98VUfdyA 何かRustコンパイラをMSが自作する必要に迫らればVisual Studio入りもあるだろうけど
結局rustcとrust-analyzer頼みならVsCodeでいいじゃんで終わりそう
結局rustcとrust-analyzer頼みならVsCodeでいいじゃんで終わりそう
261デフォルトの名無しさん
2025/12/21(日) 21:38:22.40ID:rFkT0lPT 処理系が少ないのは健全な状態ではないからマイクロソフトにも手をつけてほしいが、現時点では Rust の言語仕様の文書化があまり進んでないからな……。
https://github.com/rust-lang/spec
リファレンスマニュアルだけで十分に互換性のある処理系を作れるとは思えないし、やるにしても時期尚早かもしれない。
https://github.com/rust-lang/spec
リファレンスマニュアルだけで十分に互換性のある処理系を作れるとは思えないし、やるにしても時期尚早かもしれない。
262デフォルトの名無しさん
2025/12/21(日) 23:07:13.70ID:C3ZUpqyk vsてcodeの劣化版でしかないのにあれをまだ使ってる人おるんかな
263デフォルトの名無しさん
2025/12/22(月) 00:13:44.16ID:uNe3sTke >>262
VSをエディタとしてしか使ったことないんか?
VSをエディタとしてしか使ったことないんか?
264デフォルトの名無しさん
2025/12/22(月) 00:37:10.74ID:iYFUOh50 バルマー時代のMSならいざ知らず、今のMSが今更わざわざWindows専用の新しいツールチェインなんか作るわけないでしょ
265デフォルトの名無しさん
2025/12/22(月) 08:42:53.10ID:Isn+IeYn Arm版Windowsなら可能性あるかもね。
x86windowsは過去互換性が重要だから互換層をたくさん用意する必要がある。互換層はunsafeまみれでpanicリスクのあるコードになるから、Rustの強みは活かせないだろうね。
x86windowsは過去互換性が重要だから互換層をたくさん用意する必要がある。互換層はunsafeまみれでpanicリスクのあるコードになるから、Rustの強みは活かせないだろうね。
266デフォルトの名無しさん
2025/12/22(月) 19:42:03.81ID:XqGhCp2+ Arm版もどっこいかな
結局Rustが使われるとしたらシステムよりもアプリケーションだろうね
結局Rustが使われるとしたらシステムよりもアプリケーションだろうね
レスを投稿する
ニュース
- 高市内閣の若い世代の支持率は92.4% FNN世論調査★2 [♪♪♪★]
- 【サッカー】日本代表の南野拓実は左膝前十字靱帯断裂の重傷 全治は明らかにされず フランス杯で負傷 所属先のモナコが発表 [久太郎★]
- H3ロケット8号機打ち上げ失敗、衛星軌道投入できず ★7 [少考さん★]
- 【兵庫】「女性を妊娠させる権利と30万ドル渡す」にだまされ暗号資産50万円相当詐欺被害 西宮市の男性会社員(50) [ぐれ★]
- 【MLB】村上宗隆の『小型契約』は吉田正尚の影響か 市場が思いのほか停滞 「NPB打者に懐疑的。吉田が高すぎた」 [冬月記者★]
- ゼレンスキー氏「高市総理に感謝」 9000億円超追加支援に 「国際秩序に貢献」 (動画あり) [ごまカンパチ★]
- 駅弁業界ヤバイ「な・ん・で・買ってくれないのぉおおおおおお!」 [592058334]
- 🏡
- 【朗報】塩野義製薬、うつ病治療薬「ズラノロン」の国内承認を取得 即効性があるらしい [394133584]
- 【高市悲報】超有名YouTuber、「米山隆一が逮捕される」というデマ動画が20万回再生、無事訴えられる🥹 [931948549]
- 生還者語る。サウナ脱出必勝法、やっぱこれだった [728791131]
- 【愛国者悲報】コリアンさん、ケーキを落とす芸でバズることを覚え、大量のケーキを無駄遣いしてしまう... [856698234]
