公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
日本語の情報
https://rust-jp.rs/
※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 part15
https://mevius.5ch.net/test/read.cgi/tech/1652347700/
探検
Rust part16
■ このスレッドは過去ログ倉庫に格納されています
2022/06/27(月) 08:17:03.45ID:gDlfKP6u
256デフォルトの名無しさん
2022/07/08(金) 12:39:17.46ID:u4+He/YT >>249
アンチは実際にプログラミングしたことがないのかね
Rc<T>自体は書き換えできないのでRc<T>だけでは循環参照を作ることができない
Rc<T>とWeak<T>は互いに対称ではないため直接置き換える対象ではない
例えばnewもRc::new(T)とWeak::new()で引数Tの有無からして異なる
さらに多人数で作業するから強い循環参照を知らぬ間に作ってしまうとの言い訳も意味不明だ
アンチは実際にプログラミングしたことがないのかね
Rc<T>自体は書き換えできないのでRc<T>だけでは循環参照を作ることができない
Rc<T>とWeak<T>は互いに対称ではないため直接置き換える対象ではない
例えばnewもRc::new(T)とWeak::new()で引数Tの有無からして異なる
さらに多人数で作業するから強い循環参照を知らぬ間に作ってしまうとの言い訳も意味不明だ
257デフォルトの名無しさん
2022/07/08(金) 12:42:18.47ID:u4+He/YT >>255
Rustは所有者がいなくなると自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全で合っている
Rustは所有者がいなくなると自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全で合っている
258デフォルトの名無しさん
2022/07/08(金) 14:56:50.59ID:bBPWEvXX259デフォルトの名無しさん
2022/07/08(金) 16:11:26.76ID:VZayErSn >>258
C++もRustも仕組みは同じ
RAIIによりスコープを外れた対象のスタック部分が解放される時にそのデストラクタによってヒープ部分が解放される
汎用的にはこれが最も高速かつ利便性>>253が高い
Copying GCは特殊な環境で特殊な使い方に限定する場合は速いこともありうるがデメリットも多く一般的には使われることが少ない
使用メモリが多くなるとかコピーで値を移動させるため非常に遅いなどのデメリットの他に
そこを指す全てのポインタ値をGCのたびに全て修整しなければならないという致命的な欠陥がある
C/C++/Rustなどでスタック上に置かれたポインタ値の全てを的確に書き換えるのは不可能なので使えない
C++もRustも仕組みは同じ
RAIIによりスコープを外れた対象のスタック部分が解放される時にそのデストラクタによってヒープ部分が解放される
汎用的にはこれが最も高速かつ利便性>>253が高い
Copying GCは特殊な環境で特殊な使い方に限定する場合は速いこともありうるがデメリットも多く一般的には使われることが少ない
使用メモリが多くなるとかコピーで値を移動させるため非常に遅いなどのデメリットの他に
そこを指す全てのポインタ値をGCのたびに全て修整しなければならないという致命的な欠陥がある
C/C++/Rustなどでスタック上に置かれたポインタ値の全てを的確に書き換えるのは不可能なので使えない
260デフォルトの名無しさん
2022/07/08(金) 16:24:07.17ID:atE4xqm8 短時間で終了するプログラムはfree呼ばずにexitした方が高速な場合がある
copy gcも条件付きだが高速な場合がある
常にRAIIによるメモリ解放が他の手段より高速というのは誤り
100%正しいという風に断言するから枝葉の議論になるし最初から論理的に厳密な文章書いた方が良いよ
copy gcも条件付きだが高速な場合がある
常にRAIIによるメモリ解放が他の手段より高速というのは誤り
100%正しいという風に断言するから枝葉の議論になるし最初から論理的に厳密な文章書いた方が良いよ
261デフォルトの名無しさん
2022/07/08(金) 16:35:35.79ID:VZayErSn >>260
これは特殊な使い方限定の話を持ち出したら意味がない話
既に書いたようにCopying GCは汎用的には使いものにならない
一般的にはRAIIによる解放が最も高速かつ利便性が高い
そのためC++でもRustでもその方法がとられている
これは特殊な使い方限定の話を持ち出したら意味がない話
既に書いたようにCopying GCは汎用的には使いものにならない
一般的にはRAIIによる解放が最も高速かつ利便性が高い
そのためC++でもRustでもその方法がとられている
262デフォルトの名無しさん
2022/07/08(金) 17:23:29.15ID:cRmlWf2z copying GCはJavaで使われているのだが
解放しない、以外でスタックの解放(malloc的なものに対する)freeより速いものはあるの?
解放しない、以外でスタックの解放(malloc的なものに対する)freeより速いものはあるの?
263デフォルトの名無しさん
2022/07/08(金) 18:32:33.29ID:r9xh0XFc >>246
C++にもweak_ptr<>あるけど。
C++にもweak_ptr<>あるけど。
264デフォルトの名無しさん
2022/07/08(金) 18:32:40.38ID:IcalP2aj RAIIがGCより高速なら
RAIIの一例であるshared_ptrはGCの一例であるARCより高速ということになるが
どういう原理で高速になるの?
RAIIの一例であるshared_ptrはGCの一例であるARCより高速ということになるが
どういう原理で高速になるの?
265デフォルトの名無しさん
2022/07/08(金) 18:42:02.74ID:r9xh0XFc でも、Firefox良く落ちるじゃん。
266デフォルトの名無しさん
2022/07/08(金) 18:45:00.33ID:r9xh0XFc でも、JavaはC++も20倍速いってサイト無くなったじゃん。
267デフォルトの名無しさん
2022/07/08(金) 18:50:36.37ID:r9xh0XFc >>261
だって、RustはC++0xのパクリじゃん。
だって、RustはC++0xのパクリじゃん。
268デフォルトの名無しさん
2022/07/08(金) 18:52:55.66ID:hlO59OkW >>264
shared_ptrではRAIIによって解放しない
RAIIによってデクリメントするだけ
SwiftなどでのARCが遅い理由は参照型の全てにおいてshared_ptrを使用しているような状況であるためコストが高い
shared_ptrではRAIIによって解放しない
RAIIによってデクリメントするだけ
SwiftなどでのARCが遅い理由は参照型の全てにおいてshared_ptrを使用しているような状況であるためコストが高い
269デフォルトの名無しさん
2022/07/08(金) 18:54:07.09ID:r9xh0XFc じゃあ、unique_ptr<>でいいじゃん。
270デフォルトの名無しさん
2022/07/08(金) 19:10:19.78ID:hlO59OkW >>269
unique_ptrとshared_ptrの役割の違い、動作の違いを理解できていない君が
間違えて用いてもC++ではコンパイルが通ってしまったりして実行時に問題を引き起こす
Rustは間違えて用いるとコンパイルエラーとなり通らないから安全側に救われる
unique_ptrとshared_ptrの役割の違い、動作の違いを理解できていない君が
間違えて用いてもC++ではコンパイルが通ってしまったりして実行時に問題を引き起こす
Rustは間違えて用いるとコンパイルエラーとなり通らないから安全側に救われる
271デフォルトの名無しさん
2022/07/08(金) 20:02:01.67ID:A8oltmgp >>268
参照型の全てにshared_ptrを利用したら何で遅くなるの?
参照型の全てにshared_ptrを利用したら何で遅くなるの?
272デフォルトの名無しさん
2022/07/08(金) 21:48:50.65ID:i9Nd4OSx >>257
即座に開放というのがOSに返却とか認識してたらアウトだぞ。
アロケーターなに使うかで実際の挙動は変わってくるからな。
普通しないがクソアロケーター使ったら、OSからみたらリーク同然になったりするし。
即座に開放というのがOSに返却とか認識してたらアウトだぞ。
アロケーターなに使うかで実際の挙動は変わってくるからな。
普通しないがクソアロケーター使ったら、OSからみたらリーク同然になったりするし。
273デフォルトの名無しさん
2022/07/08(金) 21:53:34.22ID:G/CdBPp1 所有者がいないとメモリ解放って間違ってるよね?
所有者がいてもブロックから出たら解放されるからコンパイルエラーが出てコンパイルされない
所有者がいてもブロックから出たら解放されるからコンパイルエラーが出てコンパイルされない
274デフォルトの名無しさん
2022/07/08(金) 22:05:32.56ID:h7kEq7Ot OSSでうっかり強循環参照作ってしまってた例が過去スレにあったようなと掘り返してみたところ、Part11にて発見
https://github.com/DataDog/glommio/commit/677fe1dfbaf911245fbc5c3eef75532d08d784bf
https://github.com/KWARC/rust-libxml/commit/bd4b120b90b2568ca6d5bfaa368a200573b87d09
https://github.com/DataDog/glommio/commit/677fe1dfbaf911245fbc5c3eef75532d08d784bf
https://github.com/KWARC/rust-libxml/commit/bd4b120b90b2568ca6d5bfaa368a200573b87d09
275デフォルトの名無しさん
2022/07/08(金) 22:23:05.26ID:RqLk9Xjf >>272
そんなバカな認識するのはオマエだけだろw
そんなバカな認識するのはオマエだけだろw
276デフォルトの名無しさん
2022/07/08(金) 22:38:42.99ID:J0vSCVey277デフォルトの名無しさん
2022/07/08(金) 22:51:41.26ID:j0PLF9Z7 所有権とは?の話に戻っちゃうな
複製おじさんネタで散々繰り返したやつ
複製おじさんネタで散々繰り返したやつ
278デフォルトの名無しさん
2022/07/08(金) 23:06:47.48ID:QSUHt/6/ お前ら何回同じ話ループさせたら気が済むの?
279デフォルトの名無しさん
2022/07/08(金) 23:08:26.12ID:h7kEq7Ot なんか合ってるのか分からんけど最近思うこと
Rustの言語仕様内に明確に含まれているのはlifetimeだけで
所有権とか所有者ってのは実はただのメタファーでしかない?
Rustの言語仕様内に明確に含まれているのはlifetimeだけで
所有権とか所有者ってのは実はただのメタファーでしかない?
280デフォルトの名無しさん
2022/07/08(金) 23:12:47.70ID:r9xh0XFc C++はコンテナのアロケータと積み荷のアロケータが別とかできるくらい柔軟ですよ。
281デフォルトの名無しさん
2022/07/09(土) 00:08:13.16ID:Xo3+Ls6P コンセプトをコンパイラにハードコーディングして変えられないようにしたのがRustってこと?
282デフォルトの名無しさん
2022/07/09(土) 03:43:55.29ID:dAPednzC >>256
こいつのような気持ち悪い反吐が出る輩がいるからRustがいまいちメジャーにならない。公式ドキュメント書き換えてこいゴミ
上の文章読んでどの辺が「アンチ」だ?ゴミのくせにイキって恥かいてんじゃねーわw
The Rust Programming Language 日本語版
循環参照は、メモリをリークすることもある
循環参照を回避する: Rc<T>をWeak<T>に変換する
https://doc.rust-jp.rs/book-ja/ch15-06-reference-cycles.html
こいつのような気持ち悪い反吐が出る輩がいるからRustがいまいちメジャーにならない。公式ドキュメント書き換えてこいゴミ
上の文章読んでどの辺が「アンチ」だ?ゴミのくせにイキって恥かいてんじゃねーわw
The Rust Programming Language 日本語版
循環参照は、メモリをリークすることもある
循環参照を回避する: Rc<T>をWeak<T>に変換する
https://doc.rust-jp.rs/book-ja/ch15-06-reference-cycles.html
283デフォルトの名無しさん
2022/07/09(土) 06:36:52.71ID:x6eGZQ2/ >>276
間違ってることを合ってると強弁するのいい加減辞めなよ
間違ってることを合ってると強弁するのいい加減辞めなよ
284デフォルトの名無しさん
2022/07/09(土) 07:31:04.73ID:O4my42l1 認める事を全くせず、大したコードも書いてないのにRustやってる事だけが自尊心だから勝手にアンチだの決めつけて
いつも人を見下して偉そう。プロジェクトチームの雰囲気はそいつがいるだけで常に最悪、チームの重荷・会社の害悪。
口癖は「意味不明」
いつも人を見下して偉そう。プロジェクトチームの雰囲気はそいつがいるだけで常に最悪、チームの重荷・会社の害悪。
口癖は「意味不明」
285デフォルトの名無しさん
2022/07/09(土) 10:34:16.63ID:OnqDT6DB286デフォルトの名無しさん
2022/07/09(土) 11:42:59.26ID:lwwTn4Ql 理解してないと書いてる人間が理解してないことは多いですよね
287デフォルトの名無しさん
2022/07/09(土) 11:50:07.31ID:lwwTn4Ql どちらにしてもRust使っても気楽にコーディングできるわけでもなく
メモリ構造考えなければいけないんですね
メモリ構造考えなければいけないんですね
288デフォルトの名無しさん
2022/07/09(土) 13:10:56.08ID:g+WH1rkE 結局、C++0xのパクリじゃないですか。
C++はそこからさらに10年以上進んでるのに。
C++はそこからさらに10年以上進んでるのに。
289デフォルトの名無しさん
2022/07/09(土) 13:14:26.15ID:lwwTn4Ql それはないかな…
どっちも一長一短で視点がぼやけます
どっちも一長一短で視点がぼやけます
290デフォルトの名無しさん
2022/07/09(土) 13:41:18.89ID:ByPaZ1uJ >>279
説明用に作った概念ではあるけどRustの根幹に関わる重要な概念なので
「ただのメタファーでしかない」という言い方は微妙
自分の好き勝手に解釈した内容を公式見解かのように流布する輩を助長することになるから
説明用に作った概念ではあるけどRustの根幹に関わる重要な概念なので
「ただのメタファーでしかない」という言い方は微妙
自分の好き勝手に解釈した内容を公式見解かのように流布する輩を助長することになるから
291デフォルトの名無しさん
2022/07/09(土) 14:19:07.01ID:g+WH1rkE パクリ元のC++で所有権と呼ばれてるからでしょ。
292デフォルトの名無しさん
2022/07/09(土) 14:21:22.91ID:g+WH1rkE C++は高機能すぎて分けワカメなので、初心者用に出来ることを減らしますという、ジェネリクス界のPythonがRustでは?
293デフォルトの名無しさん
2022/07/09(土) 14:57:08.15ID:gD3yh/Bo294デフォルトの名無しさん
2022/07/09(土) 15:04:05.66ID:g+WH1rkE 誰も所有してないのに解放されないなら意味ないじゃん。
295デフォルトの名無しさん
2022/07/09(土) 15:25:00.91ID:3oDyg2LH >>294
ヒープ領域に対して誰も所有(利用)しなくなった時に
・自動解放しない(要手動解放) ← C C++(下記除く)
・即座に自動解放する ← Rust C++(unique_ptrなど使用時)
・GCする時になってから自動解放する ← ほとんどのGC言語
ヒープ領域に対して誰も所有(利用)しなくなった時に
・自動解放しない(要手動解放) ← C C++(下記除く)
・即座に自動解放する ← Rust C++(unique_ptrなど使用時)
・GCする時になってから自動解放する ← ほとんどのGC言語
296デフォルトの名無しさん
2022/07/09(土) 15:36:21.95ID:lXmK1DKz Cで書くにしても、今時のCLIツールならヒープなんか解放せず放置しても実用上問題ないよね
297デフォルトの名無しさん
2022/07/09(土) 16:18:04.20ID:y0LX8Rgp そもそも間違ってるとは何と照らし合わせて間違ってるという主張なのか
「そうあるべきではない」というべき論なら前提を明確にしない限り知らんがなとしか言えん
「そうあるべきではない」というべき論なら前提を明確にしない限り知らんがなとしか言えん
298デフォルトの名無しさん
2022/07/09(土) 16:36:33.54ID:g+WH1rkE299デフォルトの名無しさん
2022/07/09(土) 16:39:05.20ID:g+WH1rkE だめだ、こいつに聞いても無駄だ。
誰かわかるやつ居ないのか。
誰かわかるやつ居ないのか。
300デフォルトの名無しさん
2022/07/09(土) 16:52:06.76ID:3+oPDqor この板で最も勢いのあるスレになりましたな
301デフォルトの名無しさん
2022/07/09(土) 17:15:21.88ID:ziCGmT1x302デフォルトの名無しさん
2022/07/09(土) 17:29:07.29ID:g+WH1rkE 自分より詳しいやつは全部アンチか。
それじゃダメだろ。
それじゃダメだろ。
303デフォルトの名無しさん
2022/07/09(土) 17:45:35.96ID:bJtJfEbP Rust信者スレ作ったらそっちに移動してくれますか?
304デフォルトの名無しさん
2022/07/09(土) 17:54:41.59ID:g+WH1rkE つまり、C++0xをパクって機能限定して簡単にしたのがRustだろ?
305デフォルトの名無しさん
2022/07/09(土) 17:58:46.63ID:QKZ/1qEu306デフォルトの名無しさん
2022/07/09(土) 18:04:41.00ID:SVLGLpJF Region-based Memory Management の構想は Cyclone から始まってる。
この段階では実用化したとは呼びにくいが、実現は出来ていた。
この段階では実用化したとは呼びにくいが、実現は出来ていた。
307デフォルトの名無しさん
2022/07/09(土) 18:22:19.04ID:HoR4NOuF >>304
C++以外からもいろいろパクってるからその言い方だと不正確に思う
C++以外からもいろいろパクってるからその言い方だと不正確に思う
308デフォルトの名無しさん
2022/07/09(土) 18:46:05.22ID:hyXSHlQu 正確にはこうだな
プログラミング言語の進化の中で
メモリ自動解放における高速性と安全性の両立を実現した初めての実用的な言語がRust
プログラミング言語の進化の中で
メモリ自動解放における高速性と安全性の両立を実現した初めての実用的な言語がRust
309デフォルトの名無しさん
2022/07/09(土) 18:55:55.38ID:FBd+xess 実用的の定義が無いので不正確です
310デフォルトの名無しさん
2022/07/09(土) 18:58:45.49ID:g+WH1rkE C++0xがなかなか標準化されないので、それなら自分で作ろうと立ち上がったと本人が言ってるじゃん。
311デフォルトの名無しさん
2022/07/09(土) 19:05:24.90ID:hyXSHlQu312デフォルトの名無しさん
2022/07/09(土) 19:22:48.72ID:kZfneOfi 別にC/C++でもちゃんと作れば高速性と安全性は両立してるよ
ちゃんと作るのが難しいかどうかの話でしかないだろ
ちゃんと作るのが難しいかどうかの話でしかないだろ
313デフォルトの名無しさん
2022/07/09(土) 19:29:47.99ID:TbjkUF4v314デフォルトの名無しさん
2022/07/09(土) 19:30:20.48ID:6ug5/LDh 難しさを度外視してちゃんと作ればいいと言うならアセンブラでも同じわけで。
315デフォルトの名無しさん
2022/07/09(土) 19:36:03.58ID:hyXSHlQu316デフォルトの名無しさん
2022/07/09(土) 19:48:49.13ID:HoR4NOuF >>315
rustだけが満たしている根拠教えて
rustだけが満たしている根拠教えて
317デフォルトの名無しさん
2022/07/09(土) 19:51:24.99ID:zb7jG/MW じゃあChromeやSafari、Edgeじゃなく、お前のブラウザーふぁいあーふぉっくすにしろよ?安全じゃないんだろ?ぷゲラ
318デフォルトの名無しさん
2022/07/09(土) 19:52:51.29ID:FBd+xess うっかり前提条件が保証できていないunsafe fnの呼び出しを書いてもRustコンパイラは通してしまうではないですか
319デフォルトの名無しさん
2022/07/09(土) 20:07:34.54ID:kZfneOfi320デフォルトの名無しさん
2022/07/09(土) 20:08:04.55ID:TbjkUF4v321デフォルトの名無しさん
2022/07/09(土) 20:29:03.57ID:r2wQepG1 C++が敗北した理由が安全性を疎かにしたことは事実だけど
当時は安全性なんてそこまで重視されていなくて速ければよい時代だった
さらに安全性と速さを両立させる使い物になるプログラミング言語が出てくるとは想像できなかった
ここ数年でC++がようやく退場する時代となったたけでありそれ以前はC++の天下であった
当時は安全性なんてそこまで重視されていなくて速ければよい時代だった
さらに安全性と速さを両立させる使い物になるプログラミング言語が出てくるとは想像できなかった
ここ数年でC++がようやく退場する時代となったたけでありそれ以前はC++の天下であった
322デフォルトの名無しさん
2022/07/09(土) 20:47:42.85ID:FBd+xess ― フクオジ書 12:4-5
323デフォルトの名無しさん
2022/07/09(土) 21:21:56.68ID:6ug5/LDh >>319
そのレベルの違いが重要なわけじゃん
そのレベルの違いが重要なわけじゃん
324デフォルトの名無しさん
2022/07/09(土) 21:26:07.86ID:rB16NsHU >>318
実際にプログラミングをしたことがないからアンチはそんな間違った発言をうっかりしてしまう
実際にプログラミングをしたことがないからアンチはそんな間違った発言をうっかりしてしまう
325デフォルトの名無しさん
2022/07/09(土) 21:36:29.93ID:TbjkUF4v >>319
天と地ほどの差がある
コンパイル時点でエラーとして弾いてくれてコンパイラが修整すべき点をアドバイスしてくれるRust
コンパイラは何も言わずに通してしまい実行運用中に問題が発覚するC/C++
天と地ほどの差がある
コンパイル時点でエラーとして弾いてくれてコンパイラが修整すべき点をアドバイスしてくれるRust
コンパイラは何も言わずに通してしまい実行運用中に問題が発覚するC/C++
326デフォルトの名無しさん
2022/07/09(土) 21:37:18.68ID:FBd+xess 「前提条件が保証できていない」に触れていないのはうっかり読み飛ばしたのかな?それともわざとかな?
327デフォルトの名無しさん
2022/07/09(土) 21:40:36.28ID:N6dBVNoC マ板のコテハンが常駐するとどのスレも不毛地帯になるな
328デフォルトの名無しさん
2022/07/09(土) 21:51:31.23ID:8h5AdXRe329デフォルトの名無しさん
2022/07/09(土) 22:07:58.78ID:dPnpzXnF アンチ連呼おじさんの主張は「おまえらはプログラミングしたことが無い」
330デフォルトの名無しさん
2022/07/09(土) 22:17:01.66ID:5J/+jd/X 話は単純
RustはC++における問題のうちみんなが挙げてるような重要な部分を解決してしまった
それにプラスしてC++よりpRustの方がプログラミングしやすい点も非常に大きい
RustはC++における問題のうちみんなが挙げてるような重要な部分を解決してしまった
それにプラスしてC++よりpRustの方がプログラミングしやすい点も非常に大きい
331デフォルトの名無しさん
2022/07/09(土) 22:18:10.11ID:GNVCknQf コテハンとは一体
332デフォルトの名無しさん
2022/07/09(土) 22:29:14.97ID:FBd+xess333デフォルトの名無しさん
2022/07/09(土) 22:30:12.39ID:dcG9hbvO >>329
「おまえらはもうプログラミングしていないだろ」
じゃないのか
若い時はしていたんだろうが、おっさん・爺になって仕事ではもうプログラミングしていない
比較は必死にするが実際のRustプログラミング話が無いおじさん・爺のRustスレだからな
「おまえらはもうプログラミングしていないだろ」
じゃないのか
若い時はしていたんだろうが、おっさん・爺になって仕事ではもうプログラミングしていない
比較は必死にするが実際のRustプログラミング話が無いおじさん・爺のRustスレだからな
334デフォルトの名無しさん
2022/07/09(土) 22:36:53.48ID:qKBLdUt5 年寄りはRustに構わないで欲しい
黙ってCでも書いてて
黙ってCでも書いてて
335デフォルトの名無しさん
2022/07/09(土) 22:44:39.49ID:3KUXTO+D336デフォルトの名無しさん
2022/07/09(土) 22:46:38.67ID:dcG9hbvO337デフォルトの名無しさん
2022/07/09(土) 22:59:01.59ID:hVKa6Imk > 287 名前:デフォルトの名無しさん [sage] 投稿日:2022/07/09(土) 11:50:07.31 ID:lwwTn4Ql [2/3]
> どちらにしてもRust使っても気楽にコーディングできるわけでもなく
> メモリ構造考えなければいけないんですね
読んでなるほどなと思った
よくわかんないけどとりあえず動けばいいという人と、
ちゃんと理解して自分の思う通りに動かしたい人の違いだなと
> どちらにしてもRust使っても気楽にコーディングできるわけでもなく
> メモリ構造考えなければいけないんですね
読んでなるほどなと思った
よくわかんないけどとりあえず動けばいいという人と、
ちゃんと理解して自分の思う通りに動かしたい人の違いだなと
338デフォルトの名無しさん
2022/07/09(土) 23:05:49.23ID:dcG9hbvO >>335
俺,win使っているが
そのよい言語のRustをコンパイルするのに(C/C++する気ないのに)駄目な言語のmsvcを入れないと
とコンパイルできないてのがな
で、なんでmsvc必要なんだ?
ひょっとしたら、linuxでもgccとかを入れないと駄目なのか
俺,win使っているが
そのよい言語のRustをコンパイルするのに(C/C++する気ないのに)駄目な言語のmsvcを入れないと
とコンパイルできないてのがな
で、なんでmsvc必要なんだ?
ひょっとしたら、linuxでもgccとかを入れないと駄目なのか
339デフォルトの名無しさん
2022/07/09(土) 23:15:33.27ID:yHOdCoxc >>337
その人があまりにも知識不足の可能性が高い
Rustでも他の言語と同様に(C互換FFIを除いて)メモリ構造なんて公開も保証もしていない
ほとんどのプログラミング言語はメモリ構造なんて低いレベルで使うものではなくもっと抽象度の高い部分でその定義と保証がなされるもの
だからRustでも他の言語と同様にメモリ構造は考えなくて良いし考えてはいけない
メモリ構造は言語として保証していないし保証しないからこそ大胆なコンパイル最適化を行なっている
話を戻してその人はメモリ構造ではなくデータ構造と言いたかったのではないか?
データ構造は他の言語と同様にRustでも考えなければならない
それがプログラミングの中心だから
その人があまりにも知識不足の可能性が高い
Rustでも他の言語と同様に(C互換FFIを除いて)メモリ構造なんて公開も保証もしていない
ほとんどのプログラミング言語はメモリ構造なんて低いレベルで使うものではなくもっと抽象度の高い部分でその定義と保証がなされるもの
だからRustでも他の言語と同様にメモリ構造は考えなくて良いし考えてはいけない
メモリ構造は言語として保証していないし保証しないからこそ大胆なコンパイル最適化を行なっている
話を戻してその人はメモリ構造ではなくデータ構造と言いたかったのではないか?
データ構造は他の言語と同様にRustでも考えなければならない
それがプログラミングの中心だから
340デフォルトの名無しさん
2022/07/09(土) 23:30:15.11ID:hVKa6Imk341デフォルトの名無しさん
2022/07/09(土) 23:45:37.10ID:yHOdCoxc342デフォルトの名無しさん
2022/07/10(日) 00:12:02.83ID:VXHYDjJa >>339
SwiftとかABI stabilityを実現してるやつは仕様としてメモリレイアウトを定義して公開してるやろ
SwiftとかABI stabilityを実現してるやつは仕様としてメモリレイアウトを定義して公開してるやろ
343デフォルトの名無しさん
2022/07/10(日) 00:13:44.27ID:ZPTgd3k2 >>341
["rust linker cc not found"] [検索]
["rust linker cc not found"] [検索]
344デフォルトの名無しさん
2022/07/10(日) 00:16:59.60ID:CjJVLv20 まあ>>287の書いてるメモリ構造という言葉はメモリレイアウトでもデータ構造でもないのは明らかだけどな
345デフォルトの名無しさん
2022/07/10(日) 00:18:51.99ID:z1Ut0loV 隔離スレ復活させないとノイズだらけできつくなってきた
346デフォルトの名無しさん
2022/07/10(日) 00:30:08.21ID:tvXCky2C >>342
そのABIはコンパイル後のバイナリのフォーマットの話だぜ
今回の『気楽にコーディングできるわけでもなくメモリ構造考えなければいけないんですね』はプログラミングの際の話だから関係ない
プログラミングする上でメモリ構造は考えなくていい
例えばRustの型VecやStringなども各々のがどんなメモリ構造になるかは規定も公開もない
もちろんソースコードを読めば内部のデータ構造までは分かるがそれに依存してコードを書いてはいけないし依存できないよう抽象化されたインタフェースのみ規定公開されている
そのABIはコンパイル後のバイナリのフォーマットの話だぜ
今回の『気楽にコーディングできるわけでもなくメモリ構造考えなければいけないんですね』はプログラミングの際の話だから関係ない
プログラミングする上でメモリ構造は考えなくていい
例えばRustの型VecやStringなども各々のがどんなメモリ構造になるかは規定も公開もない
もちろんソースコードを読めば内部のデータ構造までは分かるがそれに依存してコードを書いてはいけないし依存できないよう抽象化されたインタフェースのみ規定公開されている
347デフォルトの名無しさん
2022/07/10(日) 00:33:22.94ID:tvXCky2C >>345
同感
アンチ活動は別のスレでやってほしい
ここ本スレでやるのはマナー違反だと思う
今後Rustへのアンチ活動は以下のスレへ書くこと
Rustアンチスレ
https://mevius.5ch.net/test/read.cgi/tech/1509028624/
同感
アンチ活動は別のスレでやってほしい
ここ本スレでやるのはマナー違反だと思う
今後Rustへのアンチ活動は以下のスレへ書くこと
Rustアンチスレ
https://mevius.5ch.net/test/read.cgi/tech/1509028624/
348デフォルトの名無しさん
2022/07/10(日) 01:01:37.00ID:/Pm6re6i 複オジに絡んだ俺がバカだったわw
349デフォルトの名無しさん
2022/07/10(日) 01:02:48.63ID:qjKEOyYX >>343
なるほど、
>341
>ちなみにこちらはLinuxだがrustc(=Rustコンパイラ)だけあればコンパイルできる
は、比較的新しいrustを使えばgcc(リンカ)イラネってことか
rustでリンカ作った方がgccのリンカよりずっと良いものになるだろうからな
なるほど、
>341
>ちなみにこちらはLinuxだがrustc(=Rustコンパイラ)だけあればコンパイルできる
は、比較的新しいrustを使えばgcc(リンカ)イラネってことか
rustでリンカ作った方がgccのリンカよりずっと良いものになるだろうからな
350デフォルトの名無しさん
2022/07/10(日) 01:09:37.70ID:ZPTgd3k2351デフォルトの名無しさん
2022/07/10(日) 01:48:41.75ID:LxkGLd0V352デフォルトの名無しさん
2022/07/10(日) 04:45:49.56ID:T5qatPVB 荒らしてるのはLinux板の連中か。
353デフォルトの名無しさん
2022/07/10(日) 08:32:10.98ID:VKvLuEGz Cellを使っていて思ったんだが例えば
trait CellUpdateWith<T> {
fn update_with(&self, f: impl FnOnce(&mut T));
}
impl<T: Default> CellUpdateWith<T> for Cell<T> {
#[inline]
fn update_with(&self, f: impl FnOnce(&mut T)) {
let mut inner = self.take();
f(&mut inner);
self.set(inner);
}
}
このようにメソッドupdate_with()を用意しておけば
内部更新もわかりやすく記述できるな
let foo = Cell::new(vec![1, 2, 3]);
foo.update_with(|v| v.push(7));
身代わりにself.take()でdefault値を入れてCellから取り出し
self.set()でCellへ戻すという無駄な操作は最適化で消えるようだ
https://godbolt.org/z/19c4EbErG
trait CellUpdateWith<T> {
fn update_with(&self, f: impl FnOnce(&mut T));
}
impl<T: Default> CellUpdateWith<T> for Cell<T> {
#[inline]
fn update_with(&self, f: impl FnOnce(&mut T)) {
let mut inner = self.take();
f(&mut inner);
self.set(inner);
}
}
このようにメソッドupdate_with()を用意しておけば
内部更新もわかりやすく記述できるな
let foo = Cell::new(vec![1, 2, 3]);
foo.update_with(|v| v.push(7));
身代わりにself.take()でdefault値を入れてCellから取り出し
self.set()でCellへ戻すという無駄な操作は最適化で消えるようだ
https://godbolt.org/z/19c4EbErG
354デフォルトの名無しさん
2022/07/10(日) 12:00:25.54ID:oYFJk9+G355デフォルトの名無しさん
2022/07/10(日) 13:59:32.22ID:blpABUiA356デフォルトの名無しさん
2022/07/10(日) 19:54:18.59ID:/ZDhY4rW >>308
糞言語で自意識過剰の公開オナニーをする信者、マジきもい
糞言語で自意識過剰の公開オナニーをする信者、マジきもい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「日本はパンダがいなくなる状況に直面するだろう」 中国メディア、専門家の見方伝える [♪♪♪★]
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★5 [BFU★]
- 【福岡】ミカンの木に逆さ吊りになっていた高齢の男性が死亡 [雑用縞工作★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★11 [樽悶★]
- 止まらぬ「日本売り」 高市財政への懸念で進む金利上昇と円安 ★2 [蚤の市★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★12 [樽悶★]
- コンビニ店長、ついにキレる「なんであなた達にトイレを貸さないといけないんですか?私達はトイレレンタル業ではありません」 [329329848]
- 【高市悲報】大暴落 [115996789]
- 🏡
- 教育ママゴン「うちの子はしんちゃんや特撮、リゼロは見せません。ジブリやディズニーとかしか見させません」こゆのって実際どうなん? [257926174]
- 【速報】東京から人が消える [329329848]
- 力を解放していいかな?
