公式
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 part16
探検
Rust part17
■ このスレッドは過去ログ倉庫に格納されています
2022/10/06(木) 22:43:13.96ID:Re0G7B20
377デフォルトの名無しさん
2022/11/19(土) 00:42:59.64ID:h9f1WTcb378デフォルトの名無しさん
2022/11/19(土) 00:49:11.67ID:UL/detO7 いい加減スレ違いはやめろって
379デフォルトの名無しさん
2022/11/19(土) 04:53:18.01ID:c1VeRjNF380デフォルトの名無しさん
2022/11/19(土) 09:49:20.36ID:RDqVxLmi tscがRustだと書き直すのが難しいとか聞いたが
381デフォルトの名無しさん
2022/11/19(土) 10:48:30.65ID:AeJpea+k >>380
tscをRustに一部移植
元のコードがGC前提だから全体の移植は大変なのでGoに変更
GoはGoで無駄な作業が多くて大変。やっぱりRustのほうが良かったのでRustに戻す
というのが今の状況
来年あたりまたGoに戻ってる可能性はあるが
tscをRustに一部移植
元のコードがGC前提だから全体の移植は大変なのでGoに変更
GoはGoで無駄な作業が多くて大変。やっぱりRustのほうが良かったのでRustに戻す
というのが今の状況
来年あたりまたGoに戻ってる可能性はあるが
382デフォルトの名無しさん
2022/11/19(土) 14:18:44.14ID:UL/detO7 >>381
移植とか考えずに仕様だけ洗い出してからRustで実装するのがベストでしょうね
仕様解析チーム(tscを読み込んでドキュメント化する)
とRust実装チーム(Rustのエキスパートたち)
この2チームがいれば十分だし
移植とか考えずに仕様だけ洗い出してからRustで実装するのがベストでしょうね
仕様解析チーム(tscを読み込んでドキュメント化する)
とRust実装チーム(Rustのエキスパートたち)
この2チームがいれば十分だし
383デフォルトの名無しさん
2022/11/19(土) 20:51:33.06ID:W8eLHJQE Rustで実装が難しいようなアルゴリズムは不安全で時代遅れだ説
384デフォルトの名無しさん
2022/11/19(土) 20:55:58.15ID:LAn7MDSu 解析してる間にどんどんtscの仕様は変わっていくよ
385デフォルトの名無しさん
2022/11/19(土) 21:07:54.54ID:2PIO0unP Rustってお互いに参照し合うようなグラフ構造を表現しにくいイメージある
386デフォルトの名無しさん
2022/11/19(土) 22:17:39.01ID:ibRUDL6T し難いのか不可能なのかどっちよ
387デフォルトの名無しさん
2022/11/19(土) 22:23:36.77ID:yb7KRrg5 rustcでグラフ構造扱ってるよ
ポインタではなくインデックスでアクセする実装
ポインタではなくインデックスでアクセする実装
388デフォルトの名無しさん
2022/11/19(土) 22:41:12.16ID:yWSzX/NN >>387
なるほどなあ
なるほどなあ
389デフォルトの名無しさん
2022/11/19(土) 23:28:51.73ID:PCVv4O5z390デフォルトの名無しさん
2022/11/19(土) 23:29:54.28ID:PCVv4O5z391デフォルトの名無しさん
2022/11/19(土) 23:31:24.06ID:PCVv4O5z ポインタが理解できない人は、ポインタが中心に居るところのリンク構造を全て
無視するから、Rustの欠点が理解できないだけ。
無視するから、Rustの欠点が理解できないだけ。
392デフォルトの名無しさん
2022/11/19(土) 23:32:17.52ID:Bzioz9F5393デフォルトの名無しさん
2022/11/19(土) 23:44:21.19ID:PCVv4O5z >>386
不可能ではないが、C言語のように参照やポインタでダイレクトに取り扱うのが
不可能なので、インデックスを介してアクセスした、非常に複雑な仕組みで
アクセスしたりする必要があり、効率が落ちる。
マシン語レベルで見ると、アクセスすすために必要なコードが増えるから。
不可能ではないが、C言語のように参照やポインタでダイレクトに取り扱うのが
不可能なので、インデックスを介してアクセスした、非常に複雑な仕組みで
アクセスしたりする必要があり、効率が落ちる。
マシン語レベルで見ると、アクセスすすために必要なコードが増えるから。
394デフォルトの名無しさん
2022/11/19(土) 23:44:57.71ID:PCVv4O5z 誤:インデックスを介してアクセスした、非常に複雑な仕組みで
正:インデックスを介してアクセスしたり、あるいは、非常に複雑な仕組みで
正:インデックスを介してアクセスしたり、あるいは、非常に複雑な仕組みで
395デフォルトの名無しさん
2022/11/20(日) 00:54:20.94ID:uh6X/Buy 窮屈だからとか言って車に乗るときにシートベルトを付けないタイプの人かな
396デフォルトの名無しさん
2022/11/20(日) 01:12:16.21ID:RgPem6BD 見かけ上はインデックスアクセスでも最適化がかかると途中のアドレス計算はほとんど消滅してポインタでやるのとそんなに差はなくなるよ。
ポインタを露骨に使うのはコンパイラ技術の未熟さをプログラマに補わせてただけ。
十分に高い能力のコンパイラにとってはプログラマが細々とした効率のための指示をするのはむしろ最適化の邪魔になる。
全体の構成やアルゴリズムの話ならともかく、細々とした部分はコンパイラのほうが人間よりよっぽど賢いんやぞ。
ポインタを露骨に使うのはコンパイラ技術の未熟さをプログラマに補わせてただけ。
十分に高い能力のコンパイラにとってはプログラマが細々とした効率のための指示をするのはむしろ最適化の邪魔になる。
全体の構成やアルゴリズムの話ならともかく、細々とした部分はコンパイラのほうが人間よりよっぽど賢いんやぞ。
397デフォルトの名無しさん
2022/11/20(日) 01:28:00.24ID:8zb5D3SN ahoの「アルゴリズムの設計と解析」という古い本で木構造をインデックスアクセスで実装していたけど
rustにふさわしい実装だったんだな
この本はポインタがない言語を想定していたのだろうけど
rustにふさわしい実装だったんだな
この本はポインタがない言語を想定していたのだろうけど
398デフォルトの名無しさん
2022/11/20(日) 01:29:41.16ID:mdre8ZhB ポインタで書いた方が速いじゃんて事は現にあったし
昔だと、それでも遅いからってアセンブリ言語で関数書いて呼んだりしたが
今なら、そこまでやらなくてもいいだろう
これは、コンパイラの進化もあるだろうが、CPUの進化の恩恵が大きい
昔だと、それでも遅いからってアセンブリ言語で関数書いて呼んだりしたが
今なら、そこまでやらなくてもいいだろう
これは、コンパイラの進化もあるだろうが、CPUの進化の恩恵が大きい
399デフォルトの名無しさん
2022/11/20(日) 01:32:00.55ID:8zb5D3SN 脱ポインタの流れは変わらないと思うけどね
安全性とは程遠いからこれを無くさない限り絶対にメモリ安全性は守られない
安全性とは程遠いからこれを無くさない限り絶対にメモリ安全性は守られない
400デフォルトの名無しさん
2022/11/20(日) 09:27:21.62ID:feChXjeV unsafeつかえばいいじゃん
401デフォルトの名無しさん
2022/11/20(日) 13:59:12.71ID:9/YCbfcZ >>396
インデックスを使おうとすると、1つのオブジェクトを作成する際にヒープから確保できず、
同じ集約(コンテナ)に属する全オブジェクトが入っている配列をreallocするような
動作が必要となり、スプリアス的に「停止時間」が入る。
また、その際キャッシュが大規模クリアされてしまう。
インデックスを使おうとすると、1つのオブジェクトを作成する際にヒープから確保できず、
同じ集約(コンテナ)に属する全オブジェクトが入っている配列をreallocするような
動作が必要となり、スプリアス的に「停止時間」が入る。
また、その際キャッシュが大規模クリアされてしまう。
402デフォルトの名無しさん
2022/11/20(日) 14:00:19.95ID:9/YCbfcZ >>400
前スレ(?)で、それでは済まないことが指摘済み。
前スレ(?)で、それでは済まないことが指摘済み。
403デフォルトの名無しさん
2022/11/20(日) 14:05:25.97ID:9/YCbfcZ >>399
自分が理解できないことは「ダメ」なこととしたり、排除しようとしてしまう。
典型例としては:
・数学が苦手な人 --> 数学不要論に走り、学校で教えることすら禁止させようとする。
・オブジェクト指向のメリットが理解できない人 -->オブジェクト不要論に走る。
・ポインタが苦手な人 --> ポインタを排除しようとする。
Rustはポインタを使うデータ構造を上手く使えなくなるようになっているので、
ポインタが理解できない人は、他の人も使えなくなって安堵の境地に浸れる。
オブジェクト指向で最も大事なclassの概念も使えなくなっているので、
オブジェクト指向が使えこなせなかった人は、他の人も使えなくなって、
競走上の劣等性を感じなくてすむ様になって得した気分になる。
しかし、現実は、そう甘くは無い。
自分が理解できないことは「ダメ」なこととしたり、排除しようとしてしまう。
典型例としては:
・数学が苦手な人 --> 数学不要論に走り、学校で教えることすら禁止させようとする。
・オブジェクト指向のメリットが理解できない人 -->オブジェクト不要論に走る。
・ポインタが苦手な人 --> ポインタを排除しようとする。
Rustはポインタを使うデータ構造を上手く使えなくなるようになっているので、
ポインタが理解できない人は、他の人も使えなくなって安堵の境地に浸れる。
オブジェクト指向で最も大事なclassの概念も使えなくなっているので、
オブジェクト指向が使えこなせなかった人は、他の人も使えなくなって、
競走上の劣等性を感じなくてすむ様になって得した気分になる。
しかし、現実は、そう甘くは無い。
404デフォルトの名無しさん
2022/11/20(日) 14:06:00.71ID:RgPem6BD405デフォルトの名無しさん
2022/11/20(日) 14:09:39.17ID:9/YCbfcZ >>404
インデックスは「連番」なので、その集約に属する全てのノードが、
1つの配列に入ってなければならない。
だから、ノードを追加した時に配列の容量が足りなくなると、
全ノードを入れるための配列の再確保が必要となる。
(全ノードが十分入る容量の配列を一気に確保して、move 動作が必要となる。
この際にキャッシュがほぼ全クリア状態になる。)
インデックスは「連番」なので、その集約に属する全てのノードが、
1つの配列に入ってなければならない。
だから、ノードを追加した時に配列の容量が足りなくなると、
全ノードを入れるための配列の再確保が必要となる。
(全ノードが十分入る容量の配列を一気に確保して、move 動作が必要となる。
この際にキャッシュがほぼ全クリア状態になる。)
406デフォルトの名無しさん
2022/11/20(日) 14:14:51.22ID:9/YCbfcZ >>401
[追加]
さらに、それに加えて、インデックスからオブジェクトにアクセスする際には、
オブジェクトのアドレス計算が必要となる。
それに、次のような掛け算が必要となる:
size = sizeof(OBJECT);
address = base + index * size; // 掛け算。
掛け算は計算科学上遅い処理であり、避けるべき処理である事が知られている。
[追加]
さらに、それに加えて、インデックスからオブジェクトにアクセスする際には、
オブジェクトのアドレス計算が必要となる。
それに、次のような掛け算が必要となる:
size = sizeof(OBJECT);
address = base + index * size; // 掛け算。
掛け算は計算科学上遅い処理であり、避けるべき処理である事が知られている。
407デフォルトの名無しさん
2022/11/20(日) 14:16:00.87ID:YFSLlDHr Rustで複雑なことをさせなければいい
408デフォルトの名無しさん
2022/11/20(日) 14:19:02.05ID:RgPem6BD409デフォルトの名無しさん
2022/11/20(日) 14:19:28.58ID:9/YCbfcZ >>406
[補足]
ただし、index * size の値を、「offset 値」として予め計算しておいて、
index値ではなく、offset値をindex値の代わりにすると、この掛け算は
除去できる。
このoffset値は、「相対アドレス」や「相対ポインタ」に相当する。
[補足]
ただし、index * size の値を、「offset 値」として予め計算しておいて、
index値ではなく、offset値をindex値の代わりにすると、この掛け算は
除去できる。
このoffset値は、「相対アドレス」や「相対ポインタ」に相当する。
410デフォルトの名無しさん
2022/11/20(日) 14:20:12.92ID:9/YCbfcZ411デフォルトの名無しさん
2022/11/20(日) 14:20:23.64ID:8zb5D3SN >>405
Vec使えばそんな不効率なことはせんよ
Vec使えばそんな不効率なことはせんよ
412デフォルトの名無しさん
2022/11/20(日) 14:23:27.03ID:RgPem6BD413デフォルトの名無しさん
2022/11/20(日) 14:26:55.83ID:9/YCbfcZ >>411
不可能。
不可能。
414デフォルトの名無しさん
2022/11/20(日) 14:27:54.72ID:9/YCbfcZ >>412
>その差を埋めるために高度なアドレシングモードを用意した。
全く関係無い。
imul命令のlatencyはどんどん速くなって、いて、いまや 3 クロックほどに
なっているらしいが、アドレッシングモードは関係無い。
>その差を埋めるために高度なアドレシングモードを用意した。
全く関係無い。
imul命令のlatencyはどんどん速くなって、いて、いまや 3 クロックほどに
なっているらしいが、アドレッシングモードは関係無い。
415デフォルトの名無しさん
2022/11/20(日) 14:31:49.56ID:RgPem6BD416デフォルトの名無しさん
2022/11/20(日) 14:34:23.52ID:8zb5D3SN この人大丈夫か?
なんか支離滅裂になってきてるが
なんか支離滅裂になってきてるが
417デフォルトの名無しさん
2022/11/20(日) 14:43:00.42ID:AxU0uBeT 速度求めるならsizeは2のべき乗にするだろうしそれならバレルシフタで相当昔から1クロックで済むだろ
それほど大きくないサイズならアドレッシングモードでサポートしてるプロセッサーもあるし
ID:9/YCbfcZ はもう少しちゃんと勉強した方がいいと思うよ
それほど大きくないサイズならアドレッシングモードでサポートしてるプロセッサーもあるし
ID:9/YCbfcZ はもう少しちゃんと勉強した方がいいと思うよ
418デフォルトの名無しさん
2022/11/20(日) 14:48:48.34ID:YFSLlDHr Rustで作ったdenoはなぜか遅いんだよな
https://dev.to/codesphere/bun-the-new-javascript-runtime-competing-with-deno-and-node-115d
https://dev.to/codesphere/bun-the-new-javascript-runtime-competing-with-deno-and-node-115d
419デフォルトの名無しさん
2022/11/20(日) 14:49:57.69ID:9/YCbfcZ >>417
メモリの無駄になるので、一般にはObjectのサイズは2のべき乗には出来ない。
メモリの無駄になるので、一般にはObjectのサイズは2のべき乗には出来ない。
420デフォルトの名無しさん
2022/11/20(日) 14:53:40.99ID:RgPem6BD >>418
元が根本的にダメだったら単に作り直すだけでも速くなったりするが、
大きなプロジェクトの成果物の性能が良いのは細々としたチューニングを続けてきたという蓄積の賜物。
すぐには越えられないのはごく普通のこと。
元が根本的にダメだったら単に作り直すだけでも速くなったりするが、
大きなプロジェクトの成果物の性能が良いのは細々としたチューニングを続けてきたという蓄積の賜物。
すぐには越えられないのはごく普通のこと。
421デフォルトの名無しさん
2022/11/20(日) 15:06:31.98ID:9/YCbfcZ >>415
配列
T a[N];
に対して、
a[index]
のアドレスを計算する時、
address = ((BYTE *)&a) + sizeof(T) * index;
の計算が行なわれ、マシン語レベルでは :
mov rax,(Tのサイズ)
imul rax,(index)
add rax,(aのアドレス)
と計算される。
Tのサイズが、1,2,4,8 の場合に限っては、
lea rax,[(aのアドレス) + (Tのサイズ) * index]
と書けるが、一般の場合には無理。
配列
T a[N];
に対して、
a[index]
のアドレスを計算する時、
address = ((BYTE *)&a) + sizeof(T) * index;
の計算が行なわれ、マシン語レベルでは :
mov rax,(Tのサイズ)
imul rax,(index)
add rax,(aのアドレス)
と計算される。
Tのサイズが、1,2,4,8 の場合に限っては、
lea rax,[(aのアドレス) + (Tのサイズ) * index]
と書けるが、一般の場合には無理。
422デフォルトの名無しさん
2022/11/20(日) 15:15:31.54ID:feChXjeV >>418
bunが速いのは、denoやnodejsではJSで書かれている部分がbunではzigで書かれていることや
JSエンジンのJITの段数の違いによるもので
rust関係ないという理解なんだけど
bunが速いのは、denoやnodejsではJSで書かれている部分がbunではzigで書かれていることや
JSエンジンのJITの段数の違いによるもので
rust関係ないという理解なんだけど
423デフォルトの名無しさん
2022/11/20(日) 15:17:09.91ID:9/YCbfcZ424デフォルトの名無しさん
2022/11/20(日) 15:17:10.42ID:feChXjeV >>402
どのレス?もっかい書いてよ
どのレス?もっかい書いてよ
425デフォルトの名無しさん
2022/11/20(日) 15:17:44.33ID:9/YCbfcZ426デフォルトの名無しさん
2022/11/20(日) 15:24:09.33ID:feChXjeV >>423
Rust製JSエンジンとか書いてる時点でよくわかってないのが読み取れる
Rust製JSエンジンとか書いてる時点でよくわかってないのが読み取れる
427デフォルトの名無しさん
2022/11/20(日) 15:26:15.43ID:feChXjeV >>425
スレのどのレスか教えてよ
スレのどのレスか教えてよ
428デフォルトの名無しさん
2022/11/20(日) 15:26:41.67ID:YFSLlDHr >>420
そっか、チューニング大事なんだな
そっか、チューニング大事なんだな
429デフォルトの名無しさん
2022/11/20(日) 15:30:49.96ID:9/YCbfcZ >>427
検索してくれ。
検索してくれ。
430デフォルトの名無しさん
2022/11/20(日) 15:34:04.94ID:9/YCbfcZ >>426
nodeやdenoは余り知らないから。
nodeやdenoは余り知らないから。
431デフォルトの名無しさん
2022/11/20(日) 15:39:36.41ID:feChXjeV432デフォルトの名無しさん
2022/11/20(日) 15:43:51.99ID:9/YCbfcZ >>431
まあ、そうだ。ただし、それは議論の一部。
ただ、反論する前に、頭がいいことが資格だぞ。
この板は頭の良さに対して全くフィルターが掛かってないから議論が混沌とする。
文字だけで理解するのではなく、イマジネーションと脳内のワーキングメモリー
を働かせて図形的に考えないとダメだぞ。
まあ、そうだ。ただし、それは議論の一部。
ただ、反論する前に、頭がいいことが資格だぞ。
この板は頭の良さに対して全くフィルターが掛かってないから議論が混沌とする。
文字だけで理解するのではなく、イマジネーションと脳内のワーキングメモリー
を働かせて図形的に考えないとダメだぞ。
433デフォルトの名無しさん
2022/11/20(日) 15:45:48.15ID:feChXjeV434デフォルトの名無しさん
2022/11/20(日) 15:47:47.99ID:feChXjeV >>432
そうだね、文章だけではあなたの脳内の意図をちゃんと読み取れないから想像力が重要だね
そうだね、文章だけではあなたの脳内の意図をちゃんと読み取れないから想像力が重要だね
435デフォルトの名無しさん
2022/11/20(日) 15:56:42.10ID:9/YCbfcZ436デフォルトの名無しさん
2022/11/20(日) 15:57:37.84ID:9/YCbfcZ437デフォルトの名無しさん
2022/11/20(日) 16:13:12.85ID:RgPem6BD >>428
チューニングの蓄積は大事だが、チューニングは実行環境 (など) の特性に合わせるということだから
前提となる特性が変われば今までの蓄積が今度は足を引っ張ることもある。
だからたまにはリセット (別プロジェクトとして始動) をするのも必要なことなんだよ。
少しづつ違う方針のものが併存しているのが健全な状態で、
真似したり反発したりしながら新陳代謝をしていくもんだ。
チューニングの蓄積は大事だが、チューニングは実行環境 (など) の特性に合わせるということだから
前提となる特性が変われば今までの蓄積が今度は足を引っ張ることもある。
だからたまにはリセット (別プロジェクトとして始動) をするのも必要なことなんだよ。
少しづつ違う方針のものが併存しているのが健全な状態で、
真似したり反発したりしながら新陳代謝をしていくもんだ。
438デフォルトの名無しさん
2022/11/20(日) 19:14:36.78ID:0EAflA1G グラフとかリンクトリストとかにはarena使えないの?
bumpaloとかtyped-arenaとかid_arenaとかgenerational-arenaとか色々出てるけど
bumpaloとかtyped-arenaとかid_arenaとかgenerational-arenaとか色々出てるけど
439デフォルトの名無しさん
2022/11/20(日) 19:36:54.78ID:feChXjeV >>436
じゃあなんでこのスレに書いてるの?
じゃあなんでこのスレに書いてるの?
440デフォルトの名無しさん
2022/11/20(日) 19:37:03.39ID:feChXjeV >>438
普通に使えるよ
普通に使えるよ
441デフォルトの名無しさん
2022/11/20(日) 19:39:01.04ID:feChXjeV442デフォルトの名無しさん
2022/11/20(日) 20:33:05.68ID:Y0E2xhem 単純なLinkedListのdropでstackoverflow
https://matklad.github.io/2022/11/18/if-a-tree-falls-in-a-forest-does-it-overflow-the-stack.html
dropが再帰的に呼ばれそうなところでwarning出してくれたら嬉しいんだけどな
あ
https://matklad.github.io/2022/11/18/if-a-tree-falls-in-a-forest-does-it-overflow-the-stack.html
dropが再帰的に呼ばれそうなところでwarning出してくれたら嬉しいんだけどな
あ
443デフォルトの名無しさん
2022/11/21(月) 16:56:19.41ID:qlbniNQc 試しにいろいろやってみたけど
引数を含めて参照渡しなのか値渡しなのか完全に区別されてるのがいいね
引数を含めて参照渡しなのか値渡しなのか完全に区別されてるのがいいね
444デフォルトの名無しさん
2022/11/21(月) 17:12:12.72ID:VM/mtrCu unsafeは甘え
445デフォルトの名無しさん
2022/11/21(月) 17:26:26.15ID:EfM99hS7 超エキスパートの皆さんが unsafe で
システムプログラミングしてくださるんだろうが
システムプログラミングしてくださるんだろうが
446デフォルトの名無しさん
2022/11/21(月) 21:30:40.94ID:rgJVysd6 https://qiita.com/ohakutsu/items/5d29001f79d42d63e886
本筋と関係ない部分での強めの態度での批判(というかいちゃもん)、いかにも日本的な陰湿なマウント文化が凝縮されていて笑えない
本筋と関係ない部分での強めの態度での批判(というかいちゃもん)、いかにも日本的な陰湿なマウント文化が凝縮されていて笑えない
447デフォルトの名無しさん
2022/11/21(月) 21:46:20.48ID:bYPD5c9s テスト
448デフォルトの名無しさん
2022/11/21(月) 21:47:48.09ID:bYPD5c9s お、書けたか
今日から勉強始めて Tour of Rust やってるんだけどなんか分かりづらいような...?
The Book からやったほうがいいのかな
今日から勉強始めて Tour of Rust やってるんだけどなんか分かりづらいような...?
The Book からやったほうがいいのかな
449デフォルトの名無しさん
2022/11/21(月) 21:54:54.43ID:sdhkglZS Haskellからやった方がいいかも
450デフォルトの名無しさん
2022/11/21(月) 22:00:50.98ID:bYPD5c9s Haskell... モナド... うっ、頭が
451デフォルトの名無しさん
2022/11/21(月) 23:01:50.99ID:gRBDBkQB >>446
本当にこれ
ワイもその記事のコメント欄読んでいたけど
@Akira-T-Hatakeyamaが的外れの癖に高圧的に書いていて見ていて気分が悪くなったわ
サンプルコードもそんなおかしいものではないし事実Cではするメモリリークも防げている
まったく害のない記事を上げたがために揚げ足取りを取られていて不憫や
本当にこれ
ワイもその記事のコメント欄読んでいたけど
@Akira-T-Hatakeyamaが的外れの癖に高圧的に書いていて見ていて気分が悪くなったわ
サンプルコードもそんなおかしいものではないし事実Cではするメモリリークも防げている
まったく害のない記事を上げたがために揚げ足取りを取られていて不憫や
452デフォルトの名無しさん
2022/11/21(月) 23:15:45.42ID:SGMQ7SqF > Cをきちんと理解していない人が RUST が安全ですと言っても、説得力皆無ですね。
ここに完全同意できてしまうから
この話はもうそこで終わってしまう
批判された側は改善するか記事消すかして
態度で反省を示してほしいわ
ゴミ記事量産すなって話
ここに完全同意できてしまうから
この話はもうそこで終わってしまう
批判された側は改善するか記事消すかして
態度で反省を示してほしいわ
ゴミ記事量産すなって話
453デフォルトの名無しさん
2022/11/21(月) 23:45:49.72ID:/NggQuuk callocの代わりにalloca使えとか揚げ足取りがすぎる
普通のOSならメモリリーク起きないというのも意味不明
普通のOSならメモリリーク起きないというのも意味不明
454デフォルトの名無しさん
2022/11/21(月) 23:50:01.01ID:/NggQuuk とはいえ元記事も微妙でメモリ安全の話をするならuse-after-free等の話をして欲しかった
455デフォルトの名無しさん
2022/11/22(火) 06:46:59.40ID:5norvibI ありがちな不具合を示すサンプルにこうすりゃいいとか言われてもねぇ...
そもそもstr_new()でalloca()使ったらstr_new()から抜けた時に解放されちゃうからもっと酷いことになるのわかってないだろw
そもそもstr_new()でalloca()使ったらstr_new()から抜けた時に解放されちゃうからもっと酷いことになるのわかってないだろw
456デフォルトの名無しさん
2022/11/22(火) 09:08:14.28ID:XE2I6odc457デフォルトの名無しさん
2022/11/22(火) 10:53:06.52ID:iGHsIGH/ コンパイル時評価の欠点
https://c3.handmade.network/blog/p/8590-the_downsides_of_compile_time_evaluation
Rustが攻撃されてる!許せねぇ!
https://c3.handmade.network/blog/p/8590-the_downsides_of_compile_time_evaluation
Rustが攻撃されてる!許せねぇ!
458デフォルトの名無しさん
2022/11/22(火) 11:53:04.77ID:7hOwVVcX const fnと思ったらmacroの話か
書かれてることはもっともだと思うしrust-analyzerの作者も似たようなことを言っていたような
書かれてることはもっともだと思うしrust-analyzerの作者も似たようなことを言っていたような
459デフォルトの名無しさん
2022/11/22(火) 12:05:47.11ID:5norvibI コンパイル時評価の欠点と言うかマクロは混乱しやすいって話だろ
まあ良薬も使いすぎると毒になるしほどほどに使うのは難しいし、処理系のサポートが難しくてエラーメッセージがイミフになるとかあるから半分ぐらいは同意する
まあ良薬も使いすぎると毒になるしほどほどに使うのは難しいし、処理系のサポートが難しくてエラーメッセージがイミフになるとかあるから半分ぐらいは同意する
460デフォルトの名無しさん
2022/11/22(火) 13:20:21.25ID:8XCnEjtt461デフォルトの名無しさん
2022/11/22(火) 16:03:09.05ID:gDAAjuMT 0..10 で生成されるオブジェクトってイテレータですか?
462デフォルトの名無しさん
2022/11/22(火) 16:12:53.87ID:7RPBFD0W463デフォルトの名無しさん
2022/11/22(火) 17:02:18.19ID:gDAAjuMT >>462
ありがとうございました
ありがとうございました
464デフォルトの名無しさん
2022/11/23(水) 08:39:00.67ID:wkDaFc7P >>463
どういたしまして
どういたしまして
465デフォルトの名無しさん
2022/11/23(水) 22:54:55.70ID:/vguy0QL The Bookの日本語版がRust 1.58で英語版がRust 1.62っぽいんですけど、この差が問題になることありますか?
466デフォルトの名無しさん
2022/11/23(水) 23:36:05.63ID:Z55i7UcV467デフォルトの名無しさん
2022/11/24(木) 01:19:12.75ID:4Rr7WzTC468デフォルトの名無しさん
2022/11/24(木) 02:03:20.81ID:7DmT43os 英語が駄目って人は百倍かけても読めない。
469デフォルトの名無しさん
2022/11/24(木) 02:06:19.42ID:L4U2ehwP The Book自体がそんな一生懸命読むべきもんじゃない
別のそのへんの本屋で売ってるRust本でもいい
別のそのへんの本屋で売ってるRust本でもいい
470デフォルトの名無しさん
2022/11/24(木) 02:06:45.58ID:01gKjbzi 機械翻訳も良くなったとは言え普通に間違えるし英語読めない人なら日本語版の方がいいでしょ
471デフォルトの名無しさん
2022/11/24(木) 03:11:31.83ID:7Kcsa8Zb あの日本語版はないわな
Rust習得の弊害でしかない
Rust習得の弊害でしかない
472465
2022/11/24(木) 09:13:21.63ID:/ycVFx5q 様々な意見、ありがとうございます!
両方を見比べて大きな差がありそうなところは英語版を翻訳して読んでみようと思います
両方を見比べて大きな差がありそうなところは英語版を翻訳して読んでみようと思います
473デフォルトの名無しさん
2022/11/24(木) 09:14:00.12ID:ZOGzuV/a 日本語版の一番の欠点は、基礎や概念を説明している項目が所々抜けてることだろうな
なんもわからないまま結論を覚えるだけになってしまう
なんもわからないまま結論を覚えるだけになってしまう
474デフォルトの名無しさん
2022/11/24(木) 10:04:24.95ID:wZ9/qcyF Rustって難しくね?
できればライフタイムあたり意識しないでプログラミングしたいんだけど
できればライフタイムあたり意識しないでプログラミングしたいんだけど
475デフォルトの名無しさん
2022/11/24(木) 11:37:21.52ID:rSYd8nrB そういう難しいところに直に向かい合うための言語なので...
476デフォルトの名無しさん
2022/11/24(木) 12:37:17.60ID:5MNsXfkj Typeshareが1.0になったけどどない?
https://github.com/1Password/typeshare
https://github.com/1Password/typeshare
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- 【S.RIDE】「忘年会の幹事ずるい」 ソニー系配車アプリの広告が物議…… 運営が謝罪「配慮に欠ける不適切な表現」掲出終了に [ぐれ★]
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- テレ朝本社から社外スタッフの男性が転落し死亡 テレビ朝日がコメント [ひかり★]
- アイヌ民族の「戸籍簿」がヤフオクで落札 団体「人権無視」と憤り [蚤の市★]
- 「身を切る改革」どこへ? 維新「身内」への公金支出、地方でも続々 [蚤の市★]
- 高市「野党はもう債権とか為替の話はしないで!よく分からないから答えない!」 [884040186]
- 【悲報】教育ママ「ギャオオオオオン!息子が大麻吸ってるのお!!」⇨中3の息子を警察に突き出し全てを終わらせる [455031798]
- 【画像】東京都民「助けて!満員電車もう無理いいぃぃいいぃぃぃいいいいいぃ😭」!!!! [732289945]
- 【堂上隼人】ソフトバンク幹部「よし更生してる」→現在までに逮捕12回、レイプ被害者15人
- 🏡ダブパン本仕込み~🍞🍞😅🍞🍞🏡
- 市役所の面接落ちたガイジだけど
