公式
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 part36
https://mevius.5ch.io/test/read.cgi/tech/1779974768/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.io/test/read.cgi/tech/1514107621/
Rust part37
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2026/07/17(金) 19:12:31.24ID:yl11920u877デフォルトの名無しさん
2026/07/22(水) 16:04:22.62ID:JKcxJ34H878デフォルトの名無しさん
2026/07/22(水) 16:10:10.68ID:Of/BcPgB879デフォルトの名無しさん
2026/07/22(水) 16:25:45.26ID:XYz54jbC880デフォルトの名無しさん
2026/07/22(水) 16:31:09.68ID:c7srhqru881デフォルトの名無しさん
2026/07/22(水) 16:59:58.86ID:Z37YkZf/ 言い争ってる内容のレベルが日々下がってくね
882デフォルトの名無しさん
2026/07/22(水) 17:15:11.12ID:XYz54jbC883デフォルトの名無しさん
2026/07/22(水) 17:16:51.37ID:XYz54jbC >>881
Rustろくに書いたことないのにゼロヒャクで断言したがる奴が多すぎるんだよな
Rustろくに書いたことないのにゼロヒャクで断言したがる奴が多すぎるんだよな
884デフォルトの名無しさん
2026/07/22(水) 17:22:27.60ID:XYz54jbC >>879の補足
CPUのキャッシュはヒープ領域のデータでも使用頻度が高ければキャッシュするので、スタック領域かヒープ領域かは関係がない
そのためにキャッシュラインに合わせてアラインメントしてヒープ領域を使うということも行われる
また、スタック領域に置かれていてもアラインメントがされていなければキャッシュ効率が悪くなることも普通にある
CPUのキャッシュはヒープ領域のデータでも使用頻度が高ければキャッシュするので、スタック領域かヒープ領域かは関係がない
そのためにキャッシュラインに合わせてアラインメントしてヒープ領域を使うということも行われる
また、スタック領域に置かれていてもアラインメントがされていなければキャッシュ効率が悪くなることも普通にある
885デフォルトの名無しさん
2026/07/22(水) 22:43:51.19ID:o2Jdm9L+ メモリ空間をOSが管理してると、ヒープ領域を使うのにいちいちシステムコールが必要になるから、欠点が目立つんだよな
でもスタック領域に欠点がないかと言えば、別にそんなこともないから使い分けが必要
でもスタック領域に欠点がないかと言えば、別にそんなこともないから使い分けが必要
886デフォルトの名無しさん
2026/07/22(水) 23:14:46.59ID:WzrqCFod >>879
スタック上で処理したほうが圧倒的に有利になっている理由は、他のローカル変数はスタック上にあり、関数呼び出し時もスタックを用いるため
メモリの使用範囲がスタック上のみに限定され、メモリキャッシュ効果が最大限に発揮されます
スタック上で処理したほうが圧倒的に有利になっている理由は、他のローカル変数はスタック上にあり、関数呼び出し時もスタックを用いるため
メモリの使用範囲がスタック上のみに限定され、メモリキャッシュ効果が最大限に発揮されます
887デフォルトの名無しさん
2026/07/23(木) 02:50:21.49ID:luqj8bdN >>886
そもそもスタック領域を大きくしたらスタック全体がキャッシュに乗らなくなるし、ヒープでも確保を工夫すればキャッシュに乗せられるので、ほとんど関係がない
そもそもスタック領域を大きくしたらスタック全体がキャッシュに乗らなくなるし、ヒープでも確保を工夫すればキャッシュに乗せられるので、ほとんど関係がない
888デフォルトの名無しさん
2026/07/23(木) 03:28:47.44ID:0/IAmlr6889デフォルトの名無しさん
2026/07/23(木) 07:58:46.98ID:rkdmRmzF 仮に (あくまでも仮に) スタックの多用が全面的にメリットばかりだとしてもたとえば Linux のデフォルトだとスタックの上限はたった 8MB だぞ。
上限を引き上げる設定をやったことなんてほとんどないだろ。みんなスタック 8MB でやりくりしてるんだよ。
上限を引き上げる設定をやったことなんてほとんどないだろ。みんなスタック 8MB でやりくりしてるんだよ。
890デフォルトの名無しさん
2026/07/23(木) 08:13:33.16ID:AUDDS2Ak > スタックの多用が全面的にメリットばかり
正にこれが間違い
ヒープ領域に確保する方が関係データを含めてアクセスローカリティを考慮したデータレイアウト設計が出来る
正にこれが間違い
ヒープ領域に確保する方が関係データを含めてアクセスローカリティを考慮したデータレイアウト設計が出来る
891デフォルトの名無しさん
2026/07/23(木) 08:19:49.70ID:z4+uszs5 組み込みだとスタックが浅いからって
関数呼び出しはするな
引数も使うな
全部グローバルでやりとりしろ
みたいな流儀があったらしいと聞くが
なんでそういう絶対的な制約があるわけでもないのに似たような縛りプレイやろうとしてるんだろう
関数呼び出しはするな
引数も使うな
全部グローバルでやりとりしろ
みたいな流儀があったらしいと聞くが
なんでそういう絶対的な制約があるわけでもないのに似たような縛りプレイやろうとしてるんだろう
892デフォルトの名無しさん
2026/07/23(木) 11:19:45.15ID:FxkCx1gi >>889
8MBはデフォルト値にすぎないから
起動プロセスのための環境変数を設定するタイミングと同じように
起動直前で例えばulimit -s 65536すれば子プロセスのみスタック領域を64MBに変えることができるよ
8MBはデフォルト値にすぎないから
起動プロセスのための環境変数を設定するタイミングと同じように
起動直前で例えばulimit -s 65536すれば子プロセスのみスタック領域を64MBに変えることができるよ
893デフォルトの名無しさん
2026/07/23(木) 11:33:58.96ID:rkdmRmzF894デフォルトの名無しさん
2026/07/23(木) 11:43:37.14ID:ZelaGfP0 スタック領域サイズだけに限らず諸々のリソースのパラメータは各用途に応じて設定して運用が行われている
895デフォルトの名無しさん
2026/07/23(木) 11:46:07.77ID:1wG4VbX9 Rustってすごい言語なんですね
896デフォルトの名無しさん
2026/07/23(木) 11:47:21.36ID:SaQIv/sp >各用途に応じて設定して運用が行われている
(つまり、各用途に応じた設定をして運用を行ったことはない)
(つまり、各用途に応じた設定をして運用を行ったことはない)
897デフォルトの名無しさん
2026/07/23(木) 11:55:01.09ID:RmZ5xdy6 >>895
リソースパラメタ変更して運用はRust登場以前から普通に行われている
リソースパラメタ変更して運用はRust登場以前から普通に行われている
898デフォルトの名無しさん
2026/07/23(木) 13:12:35.86ID:cxrYFfJU >>890
そもそもスタックが全てキャッシュに乗るわけでも、データが全てキャッシュに乗るわけでもなく、使ったものがキャッシュに乗る
なのでスタックにあるかどうかは関係ないし、そこに固執してるのは知識がないから
そもそもスタックが全てキャッシュに乗るわけでも、データが全てキャッシュに乗るわけでもなく、使ったものがキャッシュに乗る
なのでスタックにあるかどうかは関係ないし、そこに固執してるのは知識がないから
899デフォルトの名無しさん
2026/07/23(木) 13:13:10.18ID:cxrYFfJU ごめん、>>888だった
900デフォルトの名無しさん
2026/07/23(木) 13:13:53.08ID:cxrYFfJU 複おじの妄想は相手しなくていいよ
901デフォルトの名無しさん
2026/07/23(木) 13:16:21.80ID:VXCn4TUk >>898
スタックは必ず使われるからキャッシュに必ず乗り必ず有利になることは常識
スタックは必ず使われるからキャッシュに必ず乗り必ず有利になることは常識
902デフォルトの名無しさん
2026/07/23(木) 13:22:40.15ID:cxrYFfJU >>901
キャッシュはキャッシュラインの単位ごとにしか乗らないので、巨大データをスタックに置いたところで他の変数と一緒にキャッシュに乗ることは保証されない
一方でヒープに置いた場合でも、一度使えばキャッシュに乗るため繰り返し使う時に高速で扱える
キャッシュはキャッシュラインの単位ごとにしか乗らないので、巨大データをスタックに置いたところで他の変数と一緒にキャッシュに乗ることは保証されない
一方でヒープに置いた場合でも、一度使えばキャッシュに乗るため繰り返し使う時に高速で扱える
903デフォルトの名無しさん
2026/07/23(木) 13:23:01.90ID:m8CXPFD8 > 必ず乗り
そんなわけない
そんなわけない
904デフォルトの名無しさん
2026/07/23(木) 13:25:12.89ID:cxrYFfJU キャッシュが無限に容量があって無限に高速なメモリだとでも仮定しないと、必ず乗るなんて主張は成立させられないはずなのだが
それにヒープ領域はキャッシュに乗らないと頑なに信じているらしいが、CPU設計者をそこまでバカにする理由もよくわからない
わざわざ大量の計算をしてスタック領域だけを見分けてキャッシュに乗せる、そんな無意味なことをするとなぜ信じられるのだろうか
それにヒープ領域はキャッシュに乗らないと頑なに信じているらしいが、CPU設計者をそこまでバカにする理由もよくわからない
わざわざ大量の計算をしてスタック領域だけを見分けてキャッシュに乗せる、そんな無意味なことをするとなぜ信じられるのだろうか
905デフォルトの名無しさん
2026/07/23(木) 13:29:30.30ID:neKzl6rg レジスタ退避でいつもL1に乗るからスタック上にあるローカル変数は速いよね
906デフォルトの名無しさん
2026/07/23(木) 13:30:40.71ID:cxrYFfJU907デフォルトの名無しさん
2026/07/23(木) 13:57:52.08ID:qk0tjYWL >>905
レジスタ退避について勘違いしてるよ
レジスタ退避について勘違いしてるよ
908デフォルトの名無しさん
2026/07/23(木) 19:14:51.69ID:OLcLF/i1 >>905
シンプルに教えてほしいんだけど、レジスタやL1が8MiBもあるCPUってどこにあるんだい?
シンプルに教えてほしいんだけど、レジスタやL1が8MiBもあるCPUってどこにあるんだい?
909デフォルトの名無しさん
2026/07/23(木) 21:46:09.46ID:vX/zh6w3 topcoatてこれwasmじゃなくてjsに変換するらしいけど普通にjs書いたほうがよくね?
910デフォルトの名無しさん
2026/07/23(木) 22:01:21.86ID:1wG4VbX9 人類はいつまでJavaScriptに苦しめられるのでしょうか?
WASMを作った連中に覚悟があれば、今頃はC++でWebアプリを作れたでしょうに
WASMを作った連中に覚悟があれば、今頃はC++でWebアプリを作れたでしょうに
911sage
2026/07/23(木) 22:10:09.90ID:xivhFue3 Rustってハードパワーのゴリ押しみたいな側面もあるんで
そういうこと
そういうこと
912デフォルトの名無しさん
2026/07/23(木) 22:48:38.91ID:oRBJ/Nhk 来年WASMでDOM操作とfetchできるようになるから待ってて
913デフォルトの名無しさん
2026/07/23(木) 22:52:01.41ID:IHVi+hDe フロントエンドはJavaScript側のエコシステムで対応しないと
思ってる以上に早く負債になって失敗、後悔するというのは
これまでもRubyのほうのRailsが散々証明してくれてるからな
思ってる以上に早く負債になって失敗、後悔するというのは
これまでもRubyのほうのRailsが散々証明してくれてるからな
914デフォルトの名無しさん
2026/07/23(木) 22:54:25.22ID:vX/zh6w3 てか10日間で設計されたうんこスクリプトをWEBのデファクトにするて人類ガイジすぎやろ
915デフォルトの名無しさん
2026/07/23(木) 23:07:32.79ID:bEDi3eQt さすがにここまで来たら10日間で作った部分は消え去ってるんじゃねーの
916デフォルトの名無しさん
2026/07/23(木) 23:12:44.53ID:T3AzUbLt >>907
レジスタは明示的にpushしなくてもripなどの命令ポインタはcallすると自動的にスタックに退避されるよ
レジスタは明示的にpushしなくてもripなどの命令ポインタはcallすると自動的にスタックに退避されるよ
917デフォルトの名無しさん
2026/07/23(木) 23:29:45.68ID:sSI22omN918デフォルトの名無しさん
2026/07/23(木) 23:36:14.54ID:u5UkAy+5 >>916
関数を呼び出す時にスタックにレジスタの値を退避するというのは、スタックで現在処理中の値やプログラムの実行位置を管理してるからで、呼び出した関数から戻ってくるまでそれらの値をスタックに置いておくということでしかない
呼び出した関数から戻ってきた時にこれらの値をレジスタに戻すことで、同じ位置から処理を再開するというのがこの機能の目的であって、キャッシュとは何も関係がない
また、スタック領域に置かれた変数が全てレジスタに書きこまれているわけではない(それどころか、レジスタは全部合わせても大した数がなく、データ置き場としては使えない)し、スタック領域に置かれた変数が全てキャッシュに乗るといった事実もない(当然ながら、あまり使われなければキャッシュには置かない)
関数を呼び出す時にスタックにレジスタの値を退避するというのは、スタックで現在処理中の値やプログラムの実行位置を管理してるからで、呼び出した関数から戻ってくるまでそれらの値をスタックに置いておくということでしかない
呼び出した関数から戻ってきた時にこれらの値をレジスタに戻すことで、同じ位置から処理を再開するというのがこの機能の目的であって、キャッシュとは何も関係がない
また、スタック領域に置かれた変数が全てレジスタに書きこまれているわけではない(それどころか、レジスタは全部合わせても大した数がなく、データ置き場としては使えない)し、スタック領域に置かれた変数が全てキャッシュに乗るといった事実もない(当然ながら、あまり使われなければキャッシュには置かない)
919デフォルトの名無しさん
2026/07/23(木) 23:44:02.18ID:CqZb6B5+920デフォルトの名無しさん
2026/07/23(木) 23:51:27.31ID:oVCWnmQT キャッシュに載ってなかったら、キャッシュレス?
921デフォルトの名無しさん
2026/07/24(金) 00:05:19.44ID:YdTFtdBW >>919
> スタックに退避されるとスタックのその前後はキャッシュに載る
> その前後にはローカル変数がいる
> だから速さの恩恵を受ける
複数の誤謬が含まれている
まず第一に、レジスタがスタックに退避される時のキャッシュへの読み込みはキャッシュライン単位でしか行われないので、64バイトを超えた分はキャッシュに読み込まれない
そのため、巨大データをスタックに置くことでキャッシュ上有利に扱えるということは、この時点でなくなっている
次に、実際にはローカル変数だけでなく、戻りアドレスや呼び出し元のフレームポインタ、レジスタが不足した時の退避先などもスタックに置かれるため、実際には64バイトから8バイトのレジスタ分を引いて残りが全てローカル変数、ということにもならない
そのため、そこまで大きくないデータであってもスタックへのレジスタ退避でキャッシュに乗るとは限らない
更に、キャッシュはスタックへのレジスタ退避の時しか行われないわけではない
既に散々書かれているようにしか見えないのだが、スタックだろうがヒープだろうが読み書きすればキャッシュに乗り、使われ続ければ保持されるためスタックへのレジスタ退避とは無関係に、キャッシュの挙動に合わせたデータが有利に速さの恩恵を受ける
そして、スタックとローカル変数はこれに最適化されていない
> スタックに退避されるとスタックのその前後はキャッシュに載る
> その前後にはローカル変数がいる
> だから速さの恩恵を受ける
複数の誤謬が含まれている
まず第一に、レジスタがスタックに退避される時のキャッシュへの読み込みはキャッシュライン単位でしか行われないので、64バイトを超えた分はキャッシュに読み込まれない
そのため、巨大データをスタックに置くことでキャッシュ上有利に扱えるということは、この時点でなくなっている
次に、実際にはローカル変数だけでなく、戻りアドレスや呼び出し元のフレームポインタ、レジスタが不足した時の退避先などもスタックに置かれるため、実際には64バイトから8バイトのレジスタ分を引いて残りが全てローカル変数、ということにもならない
そのため、そこまで大きくないデータであってもスタックへのレジスタ退避でキャッシュに乗るとは限らない
更に、キャッシュはスタックへのレジスタ退避の時しか行われないわけではない
既に散々書かれているようにしか見えないのだが、スタックだろうがヒープだろうが読み書きすればキャッシュに乗り、使われ続ければ保持されるためスタックへのレジスタ退避とは無関係に、キャッシュの挙動に合わせたデータが有利に速さの恩恵を受ける
そして、スタックとローカル変数はこれに最適化されていない
922デフォルトの名無しさん
2026/07/24(金) 00:07:11.57ID:YdTFtdBW 説明もなく64バイトと書いてしまったが、これは一般的なCPUのL1キャッシュで比較的多く採用されている、キャッシュラインの大きさである
923デフォルトの名無しさん
2026/07/24(金) 00:51:48.87ID:8ekr92pQ > キャッシュはスタックへのレジスタ退避の時しか行われないわけではない
結局これよな
ずっと変なこと言ってる奴いるけど、レジスタ退避もスタック/ヒープも関係なく使っていればキャッシュはされる
結局これよな
ずっと変なこと言ってる奴いるけど、レジスタ退避もスタック/ヒープも関係なく使っていればキャッシュはされる
924デフォルトの名無しさん
2026/07/24(金) 00:59:27.67ID:SqDgs0gR スタックじゃないとキャッシュに乗らないとか、レジスタ退避の時にしかキャッシュに乗らないとか、とにかくCPUの設計者をバカだと思いすぎだよな
そんなバカな設計になってるわけないのに、頭を使ってない奴はこれだから
そんなバカな設計になってるわけないのに、頭を使ってない奴はこれだから
925デフォルトの名無しさん
2026/07/24(金) 01:12:00.30ID:9TfMzF0I 自演連投と論点ずらしの傾向がだんだんわかってきた
>>924はついに「スタックじゃないとキャッシュに乗らないとか、レジスタ退避の時にしかキャッシュに乗らないとか、」など
誰の書き込みにも存在していない方向へ話をずらしている
>>924はついに「スタックじゃないとキャッシュに乗らないとか、レジスタ退避の時にしかキャッシュに乗らないとか、」など
誰の書き込みにも存在していない方向へ話をずらしている
926デフォルトの名無しさん
2026/07/24(金) 01:48:18.05ID:c1YiTQq7 ディープコピー: 大きなサイズのメモリをコピーすること
スタック巻き戻し: ベースポインタの値をスタックからpopすること
レジスタ退避: リターンアドレスをスタックにpushすること
こりゃ大変だ
スタック巻き戻し: ベースポインタの値をスタックからpopすること
レジスタ退避: リターンアドレスをスタックにpushすること
こりゃ大変だ
927デフォルトの名無しさん
2026/07/24(金) 01:52:59.95ID:qgjP8TGu もういちいち追ってないけどなんか新情報出てたら教えてくれ
928デフォルトの名無しさん
2026/07/24(金) 01:57:07.03ID:QEapMI1v 相変わらずUIはGUIよりratatuiが圧倒的
929デフォルトの名無しさん
2026/07/24(金) 02:25:14.39ID:H84B0AqN930デフォルトの名無しさん
2026/07/24(金) 04:11:45.27ID:nkS/xplE931デフォルトの名無しさん
2026/07/24(金) 04:12:52.19ID:nkS/xplE >>926
たしかにお前の頭が大変だな、何一つ読めていないせいで全部間違ってるw
たしかにお前の頭が大変だな、何一つ読めていないせいで全部間違ってるw
932デフォルトの名無しさん
2026/07/24(金) 04:15:38.70ID:rWosD9Xv933デフォルトの名無しさん
2026/07/24(金) 04:19:18.33ID:lb0jFh4G 少なくともヒープだとキャッシュには乗らない、レジスタ退避がキャッシュ性能に大きな影響を与えるとは確実に言ってたな
> スタックじゃないとキャッシュに乗らないとか、レジスタ退避の時にしかキャッシュに乗らないとか
も曲解ではなく言い換えでしかない
> スタックじゃないとキャッシュに乗らないとか、レジスタ退避の時にしかキャッシュに乗らないとか
も曲解ではなく言い換えでしかない
934デフォルトの名無しさん
2026/07/24(金) 04:40:12.87ID:apVU3Uz6 >>929
そりゃそうよな
>>925-926
相変わらず書いてあることは読めないし、妄想力は豊かだよね
まあどうせ否定するだろうけど、https://mevius.5ch.io/test/read.cgi/tech/1774264073/679-683 でも散々言われてたように国語ができてなさすぎるよ君
すぐに自演バレするのは、毎回同じ誤読の仕方をするからなんだよ
そりゃそうよな
>>925-926
相変わらず書いてあることは読めないし、妄想力は豊かだよね
まあどうせ否定するだろうけど、https://mevius.5ch.io/test/read.cgi/tech/1774264073/679-683 でも散々言われてたように国語ができてなさすぎるよ君
すぐに自演バレするのは、毎回同じ誤読の仕方をするからなんだよ
935デフォルトの名無しさん
2026/07/24(金) 04:43:04.89ID:Wi2Ws13b >>要するに、文脈や構造を見ず文中の単語だけをつまみ食いして、「〜って言ってる!」と脳内変換してしまう、いわゆる**機能的文脈文盲**(単語は読めても構造が理解できない状態)ですね。
これAIの回答っぽいだけに辛辣すぎて笑った
これAIの回答っぽいだけに辛辣すぎて笑った
936デフォルトの名無しさん
2026/07/24(金) 04:48:34.54ID:CfttdDzL 決定的な認知のゆがみがある奴おるよな
某スレだと「〇おじ」とか
この板に限らずだと古くは「〇の壁」とか
思い込みの世界から一歩も外に出てこないのと
意固地になってるのか
もともと粘着質なのか知らんけど
いつでもどこでもいつまでも聖戦を繰り広げてる
某スレだと「〇おじ」とか
この板に限らずだと古くは「〇の壁」とか
思い込みの世界から一歩も外に出てこないのと
意固地になってるのか
もともと粘着質なのか知らんけど
いつでもどこでもいつまでも聖戦を繰り広げてる
937デフォルトの名無しさん
2026/07/24(金) 04:50:17.57ID:CfttdDzL バカはまともに文章を読めないくせに、そこに書いてる単語から自分にとって都合のいい物語を作ることには熱心だからな
938デフォルトの名無しさん
2026/07/24(金) 05:09:59.03ID:LN2X/GDi また複オジ4連投キタ
939デフォルトの名無しさん
2026/07/24(金) 05:24:36.34ID:FvT5yST4 >>938
お前やw
お前やw
940デフォルトの名無しさん
2026/07/24(金) 05:25:10.34ID:gO/X+gvB 複おじはやたら何連投って言いたがるけど、自分はID変えるからバレないと思ってるんだろうな
941デフォルトの名無しさん
2026/07/24(金) 05:31:13.14ID:CGZNp1qG どうぜ図星だったんだろw
942デフォルトの名無しさん
2026/07/24(金) 06:06:30.85ID:vznzDL0o どっちが複おじでどっちが複オジかしらんがまた真夜中ずっと争ってたのか
943デフォルトの名無しさん
2026/07/24(金) 07:20:47.88ID:c1YiTQq7 自演じゃないよ〜ん
伝えたいことはもともとびっくりするくらいシンプルなんだけど(大きいデータをコピーするとコストがかかるから気をつけよう!とか)
よく知らない専門用語を雑に当てはめてしまうから、本人以外はその専門用語が正確な意味で使われていると思って誤読してしまう、ということが発生しているんだろうなあと推測しました
伝えたいことはもともとびっくりするくらいシンプルなんだけど(大きいデータをコピーするとコストがかかるから気をつけよう!とか)
よく知らない専門用語を雑に当てはめてしまうから、本人以外はその専門用語が正確な意味で使われていると思って誤読してしまう、ということが発生しているんだろうなあと推測しました
944デフォルトの名無しさん
2026/07/24(金) 07:44:04.06ID:c1YiTQq7 >>929
これは単純に知らなかったからありがとうね
これは単純に知らなかったからありがとうね
945デフォルトの名無しさん
2026/07/24(金) 08:13:30.89ID:TlV0Uwzc IDコロコロの誰かさんも自演を訴え始めた今こそ満場一致でワッチョイに移行する好機なのでは?
946デフォルトの名無しさん
2026/07/24(金) 08:33:04.60ID:2FjN0coi947デフォルトの名無しさん
2026/07/24(金) 08:43:17.13ID:TA527/vs sp を bp (ebp, rbp) に退避するのは元から ABI の要求に含まれてない。
ABI はインターフェイスの規定なので呼び出し側にとって sp のつじつまが合っていればどんなやり方で実現してもどうでもいいから退避のやり方までは規定する必要がない。
bp を使っていたのは単なる慣例。
スタックトレースのやりやすさとかの都合で今でもデバッグモードではごく普通に bp を使うし、無用になったというわけでもない。
ABI はインターフェイスの規定なので呼び出し側にとって sp のつじつまが合っていればどんなやり方で実現してもどうでもいいから退避のやり方までは規定する必要がない。
bp を使っていたのは単なる慣例。
スタックトレースのやりやすさとかの都合で今でもデバッグモードではごく普通に bp を使うし、無用になったというわけでもない。
948デフォルトの名無しさん
2026/07/24(金) 10:22:56.20ID:OkaVr+Mc >>947
RustでもC++でもDWARF情報でデバッグできるから今はbp不要
RustでもC++でもDWARF情報でデバッグできるから今はbp不要
949デフォルトの名無しさん
2026/07/24(金) 15:06:00.00ID:WIK69ucb >>943
> よく知らない専門用語を雑に当てはめてしまうから、本人以外はその専門用語が正確な意味で使われていると思って誤読してしまう
逆では
毎回「そんな定義はない、こうだ!」って主張してる側が定義を間違えてる
> よく知らない専門用語を雑に当てはめてしまうから、本人以外はその専門用語が正確な意味で使われていると思って誤読してしまう
逆では
毎回「そんな定義はない、こうだ!」って主張してる側が定義を間違えてる
950デフォルトの名無しさん
2026/07/24(金) 15:11:25.65ID:CXHgHqXT >>要するに、文脈や構造を見ず文中の単語だけをつまみ食いして、「〜って言ってる!」と脳内変換してしまう、いわゆる**機能的文脈文盲**(単語は読めても構造が理解できない状態)ですね。
951デフォルトの名無しさん
2026/07/24(金) 15:54:25.25ID:QEfncnYQ ローカル変数のムーブをディープコピーだと言い張ったりな
952デフォルトの名無しさん
2026/07/24(金) 17:21:57.30ID:Baz7gtD0 参照を含むデータならば
moveやcopyはシャローコピー
参照先も処理するcloneならばディープコピー
参照を含まないデータならば
moveやcopyは単なるコピー
区別する2種類がないためシャローやディープは使われない
いずれにせよmoveをディープコピーと呼ぶことはない
moveやcopyはシャローコピー
参照先も処理するcloneならばディープコピー
参照を含まないデータならば
moveやcopyは単なるコピー
区別する2種類がないためシャローやディープは使われない
いずれにせよmoveをディープコピーと呼ぶことはない
953デフォルトの名無しさん
2026/07/24(金) 18:47:46.92ID:24e2kQId954デフォルトの名無しさん
2026/07/24(金) 18:49:07.49ID:o7aCA+Y6 >>952
コピーは発生しないって自信満々に言ってたのに……w
コピーは発生しないって自信満々に言ってたのに……w
955デフォルトの名無しさん
2026/07/24(金) 18:50:40.84ID:24e2kQId956デフォルトの名無しさん
2026/07/24(金) 18:53:17.62ID:ZfJkjuoc そもそも複オジはまともなプログラミング知識がないから、言われたことを覚えておけないのも仕方ない
こいつ間違ったことしか言わないし、誤読しかしない
こいつ間違ったことしか言わないし、誤読しかしない
957デフォルトの名無しさん
2026/07/24(金) 18:55:21.78ID:LwZ5WlVx 複おじの行動原理はAIに「自分の理解不足を相手の説明能力・理解力のせいにする方が楽だから」と言われてたよなw
958デフォルトの名無しさん
2026/07/24(金) 19:09:20.11ID:0PvzCVIX >>827は間違ってる
まずスタックやヒープなんて無関係でどこにあってもいい
そのデータをアドレス/ポインタ/参照などで指すデータがある時に、指す先のデータもコピーすればディープコピー
指す先がなければディープは存在しないためディープコピーと言わない
まずスタックやヒープなんて無関係でどこにあってもいい
そのデータをアドレス/ポインタ/参照などで指すデータがある時に、指す先のデータもコピーすればディープコピー
指す先がなければディープは存在しないためディープコピーと言わない
959デフォルトの名無しさん
2026/07/24(金) 19:10:16.36ID:Le5u61/j >>952
「複製する」というアクションを区別する話と
「複製物」という複製した結果として生じるオブジェクトを区別する話を混同してる
moveやcopyは対象が参照を含もうが含むまいが分岐はなくやることは同じ
つまり「複製する」というアクションの区別で言えばシャローコピー
複製された結果の「複製物」の区別で言えば
参照を含まないのであれば複製物がシャローかディープかを論じる意味はない
(これはMDNの定義に書いてある通り)
「複製する」というアクションを区別する話と
「複製物」という複製した結果として生じるオブジェクトを区別する話を混同してる
moveやcopyは対象が参照を含もうが含むまいが分岐はなくやることは同じ
つまり「複製する」というアクションの区別で言えばシャローコピー
複製された結果の「複製物」の区別で言えば
参照を含まないのであれば複製物がシャローかディープかを論じる意味はない
(これはMDNの定義に書いてある通り)
960デフォルトの名無しさん
2026/07/24(金) 19:11:18.43ID:3oZV/qUu961デフォルトの名無しさん
2026/07/24(金) 19:16:02.26ID:ziGmj28M962デフォルトの名無しさん
2026/07/24(金) 19:21:21.20ID:EbAMsdeM >>959
最後の段落はMDNの定義に書いてないし、むしろ矛盾してる
MDNではプリミティブ値についてはシャローコピーとディープコピーは同時に成立するため、通常この区別を論じる必要はないとしている
参照を含むかどうかといった話はされておらず、配列や構造体などプリミティブでないオブジェクトにおいて、この区別が論じられるものということになる
また、中段についてはcopyとmoveに対する誤解がある
copyの場合は値、つまり実体が複製されることになるためMDNの定義によるとディープコピー
一方でmoveは通常(ここは重要)管理構造体しかコピーしないのでシャローコピーとなる
moveにおいて「通常」と強調したのは、スタック領域に実体が置かれている場合、戻り値に指定するとmoveでも実体のコピーが発生する(仕様上の話。最適化の話はまた別)ため、ディープコピーの条件を満たすため
最後の段落はMDNの定義に書いてないし、むしろ矛盾してる
MDNではプリミティブ値についてはシャローコピーとディープコピーは同時に成立するため、通常この区別を論じる必要はないとしている
参照を含むかどうかといった話はされておらず、配列や構造体などプリミティブでないオブジェクトにおいて、この区別が論じられるものということになる
また、中段についてはcopyとmoveに対する誤解がある
copyの場合は値、つまり実体が複製されることになるためMDNの定義によるとディープコピー
一方でmoveは通常(ここは重要)管理構造体しかコピーしないのでシャローコピーとなる
moveにおいて「通常」と強調したのは、スタック領域に実体が置かれている場合、戻り値に指定するとmoveでも実体のコピーが発生する(仕様上の話。最適化の話はまた別)ため、ディープコピーの条件を満たすため
963デフォルトの名無しさん
2026/07/24(金) 19:22:08.99ID:EbAMsdeM964デフォルトの名無しさん
2026/07/24(金) 19:23:51.76ID:ubGLSJxU ディープコピー(深いコピー)とは - IT用語辞典 e-Words
https://e-words.jp/w/%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%82%B3%E3%83%94%E3%83%BC.html
> ディープコピーとは、配列やオブジェクトなどのデータ構造を複製する際、同じ構造の実体を新たに作成して対応するデータを写し取る方式。
Deep copy (ディープコピー) - 用語集 | MDN
https://developer.mozilla.org/ja/docs/Glossary/Deep_copy
> オブジェクトの ディープコピー とは、コピー先のオブジェクトのプロパティがコピー元のオブジェクトのプロパティと同一の参照(同じ値を指す)で共有しないコピー方法のことです。結果として、コピー元かコピー先のどちらかを変更しても、もう一方オブジェクトにも変更を及ぼしていないことを保証できます。すなわち、コピー元かコピー先に意図せずに予期しない変更が加えられるこはありません。この振る舞いはシャローコピーとは対照的です。シャローコピーでは、コピー元かコピー先のどちらかを変更するともう一方のオブジェクトも変更される可能性があります。
> プロパティがすべてプリミティブ値であるオブジェクトのコピーは、ディープコピーとシャローコピーの両方の定義に当てはまります。しかし、このようなコピーの深さについて話すのはやや無意味です。というのも、このコピーには入れ子プロパティがなく、ディープコピーについては通常、入れ子プロパティを変更するコンテキストで話すからです。
https://e-words.jp/w/%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%82%B3%E3%83%94%E3%83%BC.html
> ディープコピーとは、配列やオブジェクトなどのデータ構造を複製する際、同じ構造の実体を新たに作成して対応するデータを写し取る方式。
Deep copy (ディープコピー) - 用語集 | MDN
https://developer.mozilla.org/ja/docs/Glossary/Deep_copy
> オブジェクトの ディープコピー とは、コピー先のオブジェクトのプロパティがコピー元のオブジェクトのプロパティと同一の参照(同じ値を指す)で共有しないコピー方法のことです。結果として、コピー元かコピー先のどちらかを変更しても、もう一方オブジェクトにも変更を及ぼしていないことを保証できます。すなわち、コピー元かコピー先に意図せずに予期しない変更が加えられるこはありません。この振る舞いはシャローコピーとは対照的です。シャローコピーでは、コピー元かコピー先のどちらかを変更するともう一方のオブジェクトも変更される可能性があります。
> プロパティがすべてプリミティブ値であるオブジェクトのコピーは、ディープコピーとシャローコピーの両方の定義に当てはまります。しかし、このようなコピーの深さについて話すのはやや無意味です。というのも、このコピーには入れ子プロパティがなく、ディープコピーについては通常、入れ子プロパティを変更するコンテキストで話すからです。
965デフォルトの名無しさん
2026/07/24(金) 19:26:06.72ID:ubGLSJxU966デフォルトの名無しさん
2026/07/24(金) 19:26:37.26ID:ClG+7gyM967デフォルトの名無しさん
2026/07/24(金) 19:27:56.84ID:U8nohlki968デフォルトの名無しさん
2026/07/24(金) 19:30:12.36ID:B1bgDAdW Rustなら話は非常に簡単だよね
関数がVecなど構造体を返すのはシャローコピー
clone()して返すとディープコピー
関数がVecなど構造体を返すのはシャローコピー
clone()して返すとディープコピー
969デフォルトの名無しさん
2026/07/24(金) 19:33:33.78ID:Ut9H4FRI >>968
構造体にもいろいろあるからややこしい
データの実体をどう考えるかという話で、Vecはスタックに置かれる管理構造体は実体ではなくて、データの実体はヒープに置かれた可変長の配列データなので、シャローコピーになる
でも構造体自体がデータの実体なら、そのコピーはディープコピーとなる
構造体にもいろいろあるからややこしい
データの実体をどう考えるかという話で、Vecはスタックに置かれる管理構造体は実体ではなくて、データの実体はヒープに置かれた可変長の配列データなので、シャローコピーになる
でも構造体自体がデータの実体なら、そのコピーはディープコピーとなる
970デフォルトの名無しさん
2026/07/24(金) 19:33:57.79ID:1w4K/jCF >>968
Rustはディープコピーが必ずcloneになるから分かりやすいよな
Rustはディープコピーが必ずcloneになるから分かりやすいよな
971デフォルトの名無しさん
2026/07/24(金) 19:36:41.47ID:ElAURJKT .clone() は管理構造体だけでなくヒープに置かれた可変長の配列データという実体をコピーするので、当然ディープコピー
ただ、.clone() 以外の方法で実体をコピーすることもできて、それがCopyトレイトと呼ばれるもの
Rustの場合はこのCopyトレイトがあれば、.clone() でなく代入によってディープコピーを行うことができる
ただ、.clone() 以外の方法で実体をコピーすることもできて、それがCopyトレイトと呼ばれるもの
Rustの場合はこのCopyトレイトがあれば、.clone() でなく代入によってディープコピーを行うことができる
972デフォルトの名無しさん
2026/07/24(金) 19:38:29.79ID:ElAURJKT Rustではあくまで標準状態がmoveなだけで、copyが利用できないわけではないので、プリミティブ値にはこのCopyトレイトが用意されている
この場合必ずディープコピーが発生する(MDNの記述通り、プリミティブ値についてはシャローコピーとディープコピーは同時に成立するため、通常この区別を論じる必要はない)
この場合必ずディープコピーが発生する(MDNの記述通り、プリミティブ値についてはシャローコピーとディープコピーは同時に成立するため、通常この区別を論じる必要はない)
973デフォルトの名無しさん
2026/07/24(金) 19:41:06.80ID:ElAURJKT ただし、Copyトレイトはプログラマが定義した型に用意することもできるため、プリミティブ値でない値が必ずmoveすることは保証されない
この場合はシャローコピー(一部除くmove)とディープコピー(.clone() または Copyトレイト)が区別される必要がある
この場合はシャローコピー(一部除くmove)とディープコピー(.clone() または Copyトレイト)が区別される必要がある
974デフォルトの名無しさん
2026/07/24(金) 19:43:46.18ID:vUmL0DQY あれだよね、複オジが「そんなことするのはバカ」って言ってたけど実際はよくされている、moveで受け取ったデータを戻り値で返すを繰り返すパターンは、これがシャローコピーだから成り立っていると
975デフォルトの名無しさん
2026/07/24(金) 19:44:41.04ID:Tmh4AYKj せやな
976デフォルトの名無しさん
2026/07/24(金) 19:46:47.08ID:cRa7vLpB 一部、『構造体』と言った時にヒープの管理構造体しか思い浮かばない人が(複おじ以外にも)いるっぽいけど、Rustでは構造体は非常によく使われるので、データの実体を持っていることも普通にある
なので構造体がコピーされる = シャローコピーとは決まっていない
なので構造体がコピーされる = シャローコピーとは決まっていない
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 👧「子どもいるんですけど。ほかの席じゃだめですか?」予約した窓側の指定席に座る親子 [パンナ・コッタ★]
- 【自民】林芳正氏が閣外追放で反撃始動、若手と“決起集会”へ…2027年総裁選に向け「高市VS反高市」本格化か [煮卵★]
- 佐藤二朗「うんこ」Xに投稿 [Ailuropoda melanoleuca★]
- 【フリーアナ】50歳・山本モナ、「NEWS23」降板から20年 雰囲気ガラリ 近影に驚きの声「わ~」「昔のお顔忘れた」 [少考さん★]
- 米、ICC本体へ制裁か 圧力強化、機能不全恐れ [蚤の市★]
- 「あの人、もったいなかった…」ではもう遅い! 婚活男性を次々断る“ポイポイ婚活”女性の落とし穴 (日刊ゲンダイ) [少考さん★]
- 【悲報】高市早苗、時計職人と頻繁に電話協議していた [834922174]
- 【実況】博衣こよりのえちえち空の軌跡1st最終回🧪★3
- 【悲報】関東、レベル4警報出まくり [535650357]
- 【実況】博衣こよりのえちえち空の軌跡1st最終回🧪★4
- タイダルウェーーーーーーブ🏡🌊🌊😅🌊🌊🏡
- 【悲報】2度浸水して話題になった千葉のラーメン屋さん.3度目の浸水 [511393199]