公式
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 part24
https://mevius.5ch.net/test/read.cgi/tech/1716759686/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part25
■ このスレッドは過去ログ倉庫に格納されています
2024/07/31(水) 00:46:26.17ID:DBMWY2QT
417デフォルトの名無しさん
2024/08/24(土) 18:52:59.44ID:73Xik/Zr418デフォルトの名無しさん
2024/08/24(土) 18:53:02.17ID:tVyuBhwz >>415
一応Referenceのunsafe blockの部分は読んだけど、nomiconも全部読まなきゃだめ?
具体的にどこが間違っている/作法に反しているのか指摘してくれるとありがたいんですが……
一応Referenceのunsafe blockの部分は読んだけど、nomiconも全部読まなきゃだめ?
具体的にどこが間違っている/作法に反しているのか指摘してくれるとありがたいんですが……
419デフォルトの名無しさん
2024/08/24(土) 18:55:23.20ID:wRPlPCuY >>417
参考のため、どう書けばいいのか教えていただければ幸いです。
参考のため、どう書けばいいのか教えていただければ幸いです。
420デフォルトの名無しさん
2024/08/24(土) 18:55:51.72ID:NdtpJtS7421デフォルトの名無しさん
2024/08/24(土) 18:57:28.86ID:73Xik/Zr422デフォルトの名無しさん
2024/08/24(土) 19:07:44.35ID:tVyuBhwz >>412
変換するだけならunsafeも特に要らなくて、ただのasキャストでいいみたいね
fn convert_uint_to_ptr(u: usize) -> *mut u8 {
u as *mut u8
}
これをやるだけの関数なら、まだstableじゃないけど標準ライブラリにもあるようで
安全にするためにstrict provenance rulesなる仕様を検討中な様子
https://doc.rust-lang.org/std/primitive.pointer.html#method.from_bits-1
https://doc.rust-lang.org/std/ptr/fn.with_exposed_provenance_mut.html
変換するだけならunsafeも特に要らなくて、ただのasキャストでいいみたいね
fn convert_uint_to_ptr(u: usize) -> *mut u8 {
u as *mut u8
}
これをやるだけの関数なら、まだstableじゃないけど標準ライブラリにもあるようで
安全にするためにstrict provenance rulesなる仕様を検討中な様子
https://doc.rust-lang.org/std/primitive.pointer.html#method.from_bits-1
https://doc.rust-lang.org/std/ptr/fn.with_exposed_provenance_mut.html
423デフォルトの名無しさん
2024/08/24(土) 19:24:20.93ID:7iJIMzJC ポインタは観測するまで安全
424デフォルトの名無しさん
2024/08/24(土) 20:06:41.28ID:Rv8eKBYx 逆参照しなきゃ安全
だけど大体はアドレスがわかってるならそれを指すポインタや参照もわかってるはずなのでアドレスをポインタにする機会はそんなにない
だけど大体はアドレスがわかってるならそれを指すポインタや参照もわかってるはずなのでアドレスをポインタにする機会はそんなにない
425デフォルトの名無しさん
2024/08/24(土) 20:08:48.83ID:puH13oDz >>392
そらそうやけど、それでうまく行くならC++でええやんいう話になるわな
そらそうやけど、それでうまく行くならC++でええやんいう話になるわな
426デフォルトの名無しさん
2024/08/24(土) 20:22:17.51ID:ZYhP4fGD Rustに不慣れで技術力の低い人がunsafeを使う傾向が高い
ほとんどのケースは既存の安全なパーツを組み合わせるだけで安全に実装できる
ほとんどのケースは既存の安全なパーツを組み合わせるだけで安全に実装できる
427デフォルトの名無しさん
2024/08/24(土) 21:14:33.88ID:tVyuBhwz >>426
単発君
自分でunsafeを書く必要性がない書く気がないならそれでいいと思うし、その立場は理解したから、どうか他人の足を引っ張らないでくれ
unsafeの書き方を学ぼうという同志がいないのならそのうち去るから、すまないがそれまで待ってくれないか
単発君
自分でunsafeを書く必要性がない書く気がないならそれでいいと思うし、その立場は理解したから、どうか他人の足を引っ張らないでくれ
unsafeの書き方を学ぼうという同志がいないのならそのうち去るから、すまないがそれまで待ってくれないか
428デフォルトの名無しさん
2024/08/24(土) 21:26:04.07ID:4K3Bdck4 unsafe で UB になる場合を知りたい場合にはどこに仕様が書いてあるのかがそもそもわからん。
429デフォルトの名無しさん
2024/08/24(土) 21:26:45.92ID:Fuip7Jnb UnsafeCellを使ってる頭のおかしな人のコードはborrow checkerに引っかかってコンパイルを通せないところから始まってるよね
unsafeの使い方を学ぶのではなくsafe Rustの使い方を学ぶべきかと
unsafeの使い方を学ぶのではなくsafe Rustの使い方を学ぶべきかと
430デフォルトの名無しさん
2024/08/24(土) 22:11:07.05ID:tVyuBhwz >>428
現状のベストエフォートのまとめはこれですかねえ
LLVMのマニュアルなんて参照しちゃってるから、LLVM IRまでのloweringの詳細を完璧に把握でもしていない限りこれを一次資料として参考にするってのは無理そうですが……
https://doc.rust-lang.org/reference/behavior-considered-undefined.html
あとは呼んでいるunsafe fn/実装しているunsafe traitのドキュメント(当たり前)と、the Referenceをundefinedで検索した結果とかでいいんでしょうか
現状のベストエフォートのまとめはこれですかねえ
LLVMのマニュアルなんて参照しちゃってるから、LLVM IRまでのloweringの詳細を完璧に把握でもしていない限りこれを一次資料として参考にするってのは無理そうですが……
https://doc.rust-lang.org/reference/behavior-considered-undefined.html
あとは呼んでいるunsafe fn/実装しているunsafe traitのドキュメント(当たり前)と、the Referenceをundefinedで検索した結果とかでいいんでしょうか
431デフォルトの名無しさん
2024/08/24(土) 22:14:58.07ID:cfGbu5GL 既存の安全なパーツを使いこなせる熟練者であることがunsafeを書くための最低限の資格だ
これができないとunsafeを使うべきか否かという入口すら判断できない
これができないとunsafeを使うべきか否かという入口すら判断できない
432デフォルトの名無しさん
2024/08/24(土) 22:53:26.45ID:4K3Bdck4 Rust のメモリまわりの動作モデルは結局は C/C++ に合わせることにしたみたいな話をどこかで見たようなおぼろげな記憶がちょっとある。
LLVM がなんだかんだで C/C++ を想定した形になってしまっているのとその辺の低レイヤの部分がちゃんとモデル化されている言語が C/C++ くらいしかないから Rust のためにあらためて検討するくらいならもう合わせちゃって良くない? みたいなニュアンスだったと思うんだけどどこで見たのかも思い出せないから違ってたらごめんね。
LLVM がなんだかんだで C/C++ を想定した形になってしまっているのとその辺の低レイヤの部分がちゃんとモデル化されている言語が C/C++ くらいしかないから Rust のためにあらためて検討するくらいならもう合わせちゃって良くない? みたいなニュアンスだったと思うんだけどどこで見たのかも思い出せないから違ってたらごめんね。
433デフォルトの名無しさん
2024/08/24(土) 23:22:54.73ID:2MnTl83M >>422
有難うございます。
ところで、Rustでは、unsafe 以外では、専ら参照型が使われると思っていたのですが、
unsafe を使わない部分でも、ポインタ型 * が使えるようですね。
Rustにおけるポインタ型を参照型のアドレスに採用する方法も教えていただければ幸いです。
C++ であれば、
T x; //xは、T型の変数。
T *p = &x; //pは、T型へのポインタ型。アドレスは変数xのアドレス。
T &r = *p; //rは、T型の参照型。
で、参照型rのアドレスがpの指すアドレスに一致しますね。
有難うございます。
ところで、Rustでは、unsafe 以外では、専ら参照型が使われると思っていたのですが、
unsafe を使わない部分でも、ポインタ型 * が使えるようですね。
Rustにおけるポインタ型を参照型のアドレスに採用する方法も教えていただければ幸いです。
C++ であれば、
T x; //xは、T型の変数。
T *p = &x; //pは、T型へのポインタ型。アドレスは変数xのアドレス。
T &r = *p; //rは、T型の参照型。
で、参照型rのアドレスがpの指すアドレスに一致しますね。
434デフォルトの名無しさん
2024/08/24(土) 23:31:10.68ID:BmB2eUS9435デフォルトの名無しさん
2024/08/24(土) 23:50:29.93ID:2MnTl83M >>434
では、C++であるならば、以下の様に書けそうなコードをRustで書くとすると
どうなるでしょうか。
BYTE &ConvertPtrToRef( BYTE *p ) {
unsafe {
return *p;
}
}
では、C++であるならば、以下の様に書けそうなコードをRustで書くとすると
どうなるでしょうか。
BYTE &ConvertPtrToRef( BYTE *p ) {
unsafe {
return *p;
}
}
436デフォルトの名無しさん
2024/08/25(日) 00:56:39.20ID:al6llTVI unsafe { p.as_ref().expect("p is not null") }
unsafe { p.as_mut().expect("p is not null") }
unsafe { &*p }
unsafe { &mut *p }
unsafe { p.as_mut().expect("p is not null") }
unsafe { &*p }
unsafe { &mut *p }
437デフォルトの名無しさん
2024/08/25(日) 01:28:05.04ID:dkRsAaY3 そもそもRustの参照とC++の参照が1対1に対応しないので、そこを無視してもどうなんだという問題
438あぼーん
NGNGあぼーん
439デフォルトの名無しさん
2024/08/25(日) 06:34:29.42ID:5GOytbIs >>438
まじか
まじか
440デフォルトの名無しさん
2024/08/25(日) 15:06:59.24ID:ftonnHt3441デフォルトの名無しさん
2024/08/25(日) 16:07:14.33ID:+NmqKH/G unsafe大好き
442デフォルトの名無しさん
2024/08/26(月) 07:21:14.48ID:HvObP+1c unsafe rustよりzig
443デフォルトの名無しさん
2024/08/26(月) 07:32:17.72ID:EZDOC4zz zigは未完成
444デフォルトの名無しさん
2024/08/26(月) 11:03:43.55ID:3+7ACU+U zigよりNim
445デフォルトの名無しさん
2024/08/26(月) 12:45:51.89ID:6drfVC9J Rustでunsafeを迂闊に使っていると信用失墜リスクがある
例えば安全に書けるシーンでunsafeを使っていればRustに疎くレベルが低いと客観的に判定されてしまう
そして書いたコードは信頼されなくなるため要注意だ
例えば安全に書けるシーンでunsafeを使っていればRustに疎くレベルが低いと客観的に判定されてしまう
そして書いたコードは信頼されなくなるため要注意だ
446デフォルトの名無しさん
2024/08/26(月) 13:27:24.67ID:/RxTrZ/p んでNimよりCってわけ
447デフォルトの名無しさん
2024/08/26(月) 23:59:19.70ID:TniAJlSa unsafeなしに拘るならそもそもunsafeという仕様のない言語を使えば良いのでは
448デフォルトの名無しさん
2024/08/27(火) 00:09:57.79ID:ft2/OuFA unsafeはFFI部分と基盤ライブラリで必須
そのためにある
そのためにある
449デフォルトの名無しさん
2024/08/27(火) 01:18:15.13ID:meLOHly2 あんまり必死になると>>307が図星なのがバレるぞ
450あぼーん
NGNGあぼーん
451デフォルトの名無しさん
2024/08/27(火) 05:12:31.56ID:SWsi92BQ >>450
既に貰ってる
既に貰ってる
452デフォルトの名無しさん
2024/08/27(火) 14:18:24.38ID:oHcafaf7 unsafeって危険だから描くんじゃなくて
unsafeを描くことで危険を回避出来るんだ
だからunsafeが使われてるからって危険なコードじゃないんだ
unsafeを観たら危険だと脊髄反射する方が馬鹿の誤解
unsafeを描くことで危険を回避出来るんだ
だからunsafeが使われてるからって危険なコードじゃないんだ
unsafeを観たら危険だと脊髄反射する方が馬鹿の誤解
453デフォルトの名無しさん
2024/08/27(火) 14:18:59.31ID:oHcafaf7 だから >>445 はピンぼけ的外れ
454デフォルトの名無しさん
2024/08/27(火) 14:29:34.76ID:rXlpHGM8 RustかC++のどちらかなのかはRustで落ち着いたけど
unsafe RustかCかは結局どっちがいいんだい?
unsafe RustかCかは結局どっちがいいんだい?
455デフォルトの名無しさん
2024/08/27(火) 14:38:55.67ID:f/nerXJl >>454
え?いつの間に落ち着いたの?
え?いつの間に落ち着いたの?
456デフォルトの名無しさん
2024/08/27(火) 14:47:28.58ID:fKaZ1hCT457デフォルトの名無しさん
2024/08/27(火) 15:35:17.48ID:VmCaZkt1 >>452
おまえは何を言ってるんだw
おまえは何を言ってるんだw
458デフォルトの名無しさん
2024/08/27(火) 15:36:49.68ID:i930s1KJ >>456
1.0になってから来てくれ
1.0になってから来てくれ
459デフォルトの名無しさん
2024/08/27(火) 16:13:13.47ID:kbqekxQE460デフォルトの名無しさん
2024/08/28(水) 04:07:55.29ID:2ujtxZGB 最大サイズのマインスイーパーだと
プログラムに解かせるのに30分くらいかかるのか
それはメモリを積むと速くなったり
コア数を積むと速くなったり
未知のアルゴリズムで速くなったりする?
プログラムに解かせるのに30分くらいかかるのか
それはメモリを積むと速くなったり
コア数を積むと速くなったり
未知のアルゴリズムで速くなったりする?
461デフォルトの名無しさん
2024/08/28(水) 09:07:31.11ID:o9WnFihZ まあそうなるよなw
頭悪いたとえ話だから仕方がない
頭悪いたとえ話だから仕方がない
462デフォルトの名無しさん
2024/08/28(水) 09:16:54.18ID:YkYaTCgW でもプログラムに解かせるのに30分もかからないだろくらいの感覚は常識として持っておいて欲しいところ
463デフォルトの名無しさん
2024/08/28(水) 10:32:38.93ID:Uwy2gXCW マインスイーパーはNP完全であると証明されていてかなり難問
さらにそもそも常に論理的に解けるわけではないためリゾルバーは勝率100%ではなく問題難易度別に平均勝率が示される
具体的には論理的推論で開けられる場所がなくなった時に人間は運ゲーとなるが機雷のある場所の確率計算により勝率を高められる
その手法ならびに巨大サイズによっては計算時間30分はありうるのではないか
さらにそもそも常に論理的に解けるわけではないためリゾルバーは勝率100%ではなく問題難易度別に平均勝率が示される
具体的には論理的推論で開けられる場所がなくなった時に人間は運ゲーとなるが機雷のある場所の確率計算により勝率を高められる
その手法ならびに巨大サイズによっては計算時間30分はありうるのではないか
464デフォルトの名無しさん
2024/08/28(水) 11:57:33.04ID:t9eW5UMl465デフォルトの名無しさん
2024/08/28(水) 12:03:45.27ID:HLZOwn4a 例えば話悪すぎるのは理解するけど、プログラムにマインスイーパー解かせる話だっけ
466デフォルトの名無しさん
2024/08/28(水) 12:21:33.97ID:Bl8r2+HB >>464
なぜ0.1秒ではなく1秒ではなく100秒ではなく10秒なのか?
なぜ0.1秒ではなく1秒ではなく100秒ではなく10秒なのか?
467デフォルトの名無しさん
2024/08/28(水) 12:23:32.67ID:Bl8r2+HB >>465
プログラム板のプログラミング言語スレでそれ以外にどんな可能性があるか?
プログラム板のプログラミング言語スレでそれ以外にどんな可能性があるか?
468デフォルトの名無しさん
2024/08/28(水) 13:59:37.19ID:APdn6MV3 誤魔化せれば何でもいいから意味の無いレスを拾ってごちゃごちゃ書き込んでるんだろう
469デフォルトの名無しさん
2024/08/28(水) 16:33:13.07ID:iRpE4/QL いつのまにかAndroid公式ドキュメントにRustの章ができてた
470デフォルトの名無しさん
2024/08/28(水) 17:22:14.56ID:kssH4dJX AndroidはJNIをJavaとバイナリとの間に噛ませないといけないからほんとに面倒くさい
471デフォルトの名無しさん
2024/08/28(水) 19:34:23.32ID:njVvvVc1 >>459
君頭悪いのに無理に例えなんか使わないほうがいいよ
君頭悪いのに無理に例えなんか使わないほうがいいよ
472デフォルトの名無しさん
2024/08/28(水) 21:16:27.54ID:qM6sg2ID まさかマインスイーパーの例え自体が地雷になるとはw
Rustスレなのにunsafeだな
Rustスレなのにunsafeだな
473デフォルトの名無しさん
2024/08/28(水) 22:54:19.83ID:kssH4dJX さあみなさま、脱unsafeを心がけていきましょう!
474デフォルトの名無しさん
2024/08/28(水) 23:16:33.26ID:kssH4dJX >>456
Zig、エリアアローケーターがとても魅力的なんだけど、非同期まわりの仕様が白紙に戻っちゃったのがなあ
もちろんZigの求められている役割的に非同期はそこまで重要ではないのだけれどちょっと悲しさを感じる
なんでもZigに限らずLLVMとasync/awaitの相性がとてつもなく悪いらしい
https://www.reddit.com/r/Zig/comments/1d66gtp/state_of_async_in_zig/
長文すまん
Zig、エリアアローケーターがとても魅力的なんだけど、非同期まわりの仕様が白紙に戻っちゃったのがなあ
もちろんZigの求められている役割的に非同期はそこまで重要ではないのだけれどちょっと悲しさを感じる
なんでもZigに限らずLLVMとasync/awaitの相性がとてつもなく悪いらしい
https://www.reddit.com/r/Zig/comments/1d66gtp/state_of_async_in_zig/
長文すまん
475デフォルトの名無しさん
2024/08/28(水) 23:17:49.58ID:lG2WtYJn Swiftのasync/await良く出来てるけど?
476デフォルトの名無しさん
2024/08/28(水) 23:25:03.26ID:kssH4dJX477デフォルトの名無しさん
2024/08/28(水) 23:30:17.85ID:fP4MaCDa golangはasync/awaitじゃなくてCSPな?
478デフォルトの名無しさん
2024/08/28(水) 23:32:07.56ID:kssH4dJX >>477
すまん指摘助かる
すまん指摘助かる
479デフォルトの名無しさん
2024/08/28(水) 23:41:09.49ID:qM6sg2ID480デフォルトの名無しさん
2024/08/28(水) 23:41:42.12ID:lG2WtYJn GoもKotlinもLLVMバックエンドじゃないだろ
481デフォルトの名無しさん
2024/08/28(水) 23:46:05.67ID:LoAS9bQy >>474
読んでみたが登場人物たちが無知すぎるな
特にZigでのasync/awaitの経緯を解説しているmlugg0はRustについて不慣れで全くわからないと答えてる
>>Zigに限らずLLVMとasync/awaitの相性がとてつもなく悪いらしい
それは間違いでLLVM coroutineを使おうとすると重くなる
Rustはそれを使わずにスタックレスなステートマシンとして実現しているため軽く良く出来ている
読んでみたが登場人物たちが無知すぎるな
特にZigでのasync/awaitの経緯を解説しているmlugg0はRustについて不慣れで全くわからないと答えてる
>>Zigに限らずLLVMとasync/awaitの相性がとてつもなく悪いらしい
それは間違いでLLVM coroutineを使おうとすると重くなる
Rustはそれを使わずにスタックレスなステートマシンとして実現しているため軽く良く出来ている
482デフォルトの名無しさん
2024/08/29(木) 01:22:47.24ID:YXIyrRhD >>481
Rustは最強ってことでいいけどここにいてもお前がザコなのは変わらないからもう引っ込んでなよ
Rustは最強ってことでいいけどここにいてもお前がザコなのは変わらないからもう引っ込んでなよ
483デフォルトの名無しさん
2024/08/29(木) 06:12:15.98ID:1jszJs3n >>480
バカなAIが跋扈してる
バカなAIが跋扈してる
484デフォルトの名無しさん
2024/08/29(木) 06:26:17.95ID:CICE1rWP Zigは技術的な敗北でasync/awaitを削除しただけでなく思想的にも嫌悪や不要論が跋扈していて終わってるな
485デフォルトの名無しさん
2024/08/29(木) 07:28:11.89ID:rHptJtk5 >>474
スレッドプール作れるし問題なし
スレッドプール作れるし問題なし
486デフォルトの名無しさん
2024/08/29(木) 07:34:05.99ID:jXxTByd8 async awaitが何なのか理解していない人たちがZigに集まっている
487デフォルトの名無しさん
2024/08/29(木) 07:53:29.77ID:0glh1AR4 Zigは未使用変数がエラーになるのがな…
せめてデバッグビルド中はワーニングになってほしいが
作者の思想的に無理そうなんだよな
せめてデバッグビルド中はワーニングになってほしいが
作者の思想的に無理そうなんだよな
488デフォルトの名無しさん
2024/08/29(木) 08:06:23.91ID:7zduIY7i489デフォルトの名無しさん
2024/08/29(木) 08:08:24.23ID:K+MkDn8y zigはビルドツールのccとしてcmakeより使いやすくて好き
490デフォルトの名無しさん
2024/08/29(木) 08:10:24.41ID:0glh1AR4 >>488
いや、Rustと同じく変数名に_つければ通るからあんま関係ないかな
これのせいで実装中やデバッグ中に関数呼び出し一つコメントアウトするたびに
あちこちに_をつけてまわらないといけないからかなりつらい
いや、Rustと同じく変数名に_つければ通るからあんま関係ないかな
これのせいで実装中やデバッグ中に関数呼び出し一つコメントアウトするたびに
あちこちに_をつけてまわらないといけないからかなりつらい
491デフォルトの名無しさん
2024/08/29(木) 08:32:58.82ID:plL6TRoE Zigは未完成のまま終わりそうだな
492デフォルトの名無しさん
2024/08/29(木) 08:51:25.64ID:W3gDNWMh >>489
pkg-config 呼び出す機能がないんじゃない?
pkg-config 呼び出す機能がないんじゃない?
493デフォルトの名無しさん
2024/08/29(木) 09:33:53.27ID:1jszJs3n494デフォルトの名無しさん
2024/08/29(木) 12:29:33.60ID:CydvL0rR シャドウイングがない言語は不便すぎるから有るのは正しい
495デフォルトの名無しさん
2024/08/29(木) 12:50:47.36ID:OEtxKPAo >>486
async awaitをやさしく解説してください
async awaitをやさしく解説してください
496デフォルトの名無しさん
2024/08/29(木) 13:07:04.37ID:YXIyrRhD せんでええよ
497デフォルトの名無しさん
2024/08/29(木) 13:32:35.20ID:MmpSTGjT https://rust-lang.github.io/unsafe-code-guidelines/introduction.html
こんなのあるんだ、まだ中身スッカスカだけど
こんなのあるんだ、まだ中身スッカスカだけど
498デフォルトの名無しさん
2024/08/29(木) 14:09:44.24ID:G41Drf1I async (∩゚д゚)アーアー
await 聴こえなーいΩ\ζ°)チーン
await 聴こえなーいΩ\ζ°)チーン
499デフォルトの名無しさん
2024/08/29(木) 14:12:39.25ID:W3gDNWMh asyncの一番難しいとこは発音だな
間違えてる日本人が多い
間違えてる日本人が多い
500デフォルトの名無しさん
2024/08/29(木) 14:49:29.45ID:a4VXQbqA501デフォルトの名無しさん
2024/08/29(木) 19:49:23.69ID:dbGPGAjw Rustの非同期が非常に軽く上手くいってる理由は簡素であることかな
futureの構築とfutureの実行が明確に分離されている
構築で返されるのは単なる構造体の値でありヒープ利用を前提としない
実行はポーリングしないと何も進まない簡素さ
asyncタスクはステートマシンによるコルーチンとして実装されている
つまり個別のスタックを必要とせずに動くためメモリリソースの点でも有利となってるね
futureの構築とfutureの実行が明確に分離されている
構築で返されるのは単なる構造体の値でありヒープ利用を前提としない
実行はポーリングしないと何も進まない簡素さ
asyncタスクはステートマシンによるコルーチンとして実装されている
つまり個別のスタックを必要とせずに動くためメモリリソースの点でも有利となってるね
502デフォルトの名無しさん
2024/08/29(木) 23:02:59.56ID:E4rublhw >>479
エリアとかって恥ずかしい奴と思ってた。
エリアとかって恥ずかしい奴と思ってた。
503デフォルトの名無しさん
2024/08/29(木) 23:05:24.99ID:E4rublhw >>489
cmakeのバージョン変化に嫌気して素のgnu makeに戻ったわ。
cmakeのバージョン変化に嫌気して素のgnu makeに戻ったわ。
504デフォルトの名無しさん
2024/08/29(木) 23:20:35.98ID:jTB6+YRF505デフォルトの名無しさん
2024/08/30(金) 01:16:51.32ID:1dn+3XQv https://en.wikipedia.org/wiki/Region-based_memory_management
region, zone, arena, areaと呼ばれると書いてあるし言うほど間違いじゃないんじゃね
むしろ”闘技場”に驚いたわ
region, zone, arena, areaと呼ばれると書いてあるし言うほど間違いじゃないんじゃね
むしろ”闘技場”に驚いたわ
506デフォルトの名無しさん
2024/08/30(金) 01:40:41.30ID:1MZVdBLH 両方あるんか
arenaは知ってたけどareaでも意味通じるから迷ってた
arenaは知ってたけどareaでも意味通じるから迷ってた
507デフォルトの名無しさん
2024/08/30(金) 02:21:05.28ID:71k4+v+4 areaだと一般用語の~エリアと曖昧になりやすいせいかarenaと呼ばれることが多いかな
特にRustではその手の各種クレートはxxx-arenaと名付けられているね
そのため「そこはアリーナ系を使おう」だけで話が通じると思う
特にRustではその手の各種クレートはxxx-arenaと名付けられているね
そのため「そこはアリーナ系を使おう」だけで話が通じると思う
508デフォルトの名無しさん
2024/08/30(金) 13:24:19.84ID:742oYIEC509デフォルトの名無しさん
2024/08/30(金) 14:03:33.10ID:00JO0I50 高階トレイト教会
510デフォルトの名無しさん
2024/08/30(金) 18:16:40.82ID:FuTFI1jb https://japan.zdnet.com/article/35223295/2/
> LinuxへのRust言語の導入の話になると、Torvalds氏は採用のペースが上がらないことに失望感を示した。
> 「更新が思ったほど速く進んでいないが、問題の一端は、昔からのカーネル開発者が『C』に慣れていて、Rustを知らないことにある。彼らは、ある面で大きく異なる新しい言語を学ばなければならないことを、あまり歓迎していない。そのため、Rustに関しては多少の反発がある」
> LinuxへのRust言語の導入の話になると、Torvalds氏は採用のペースが上がらないことに失望感を示した。
> 「更新が思ったほど速く進んでいないが、問題の一端は、昔からのカーネル開発者が『C』に慣れていて、Rustを知らないことにある。彼らは、ある面で大きく異なる新しい言語を学ばなければならないことを、あまり歓迎していない。そのため、Rustに関しては多少の反発がある」
511デフォルトの名無しさん
2024/08/30(金) 18:18:32.29ID:vU8F7vBm まあ既存のエンジニアにRust学ばせるんじゃなくRustやりたいってヤツが実績積んで参加すべきだわな
512デフォルトの名無しさん
2024/08/30(金) 18:22:28.02ID:JuI4pVFu 昔ながらのカーネル開発者は賢いからCで良いんだよな
新参のCまともに書けないバカがカーネルにいっちょ噛みするためにRust推してみたけど、本人はRustわかる程度の知能はあるがカーネル理解できる程の知能はないからカーネル周り書けず、他人にRust勉強しろと喚くことしか出来ない
新参のCまともに書けないバカがカーネルにいっちょ噛みするためにRust推してみたけど、本人はRustわかる程度の知能はあるがカーネル理解できる程の知能はないからカーネル周り書けず、他人にRust勉強しろと喚くことしか出来ない
513デフォルトの名無しさん
2024/08/30(金) 18:27:03.74ID:r5yUcnGF C++の苦痛を経験しないと有難みがわからないのがRustだからな。linuxカーネルがC++を採用していたらすんなり移行してたかも
514デフォルトの名無しさん
2024/08/30(金) 18:42:19.31ID:vU8F7vBm C++なんてバグの温床だから採用しないのは正解
515デフォルトの名無しさん
2024/08/30(金) 19:05:19.61ID:QrO3wi5D >昔ながらのカーネル開発者は賢いからCで良い
+1
+1
516デフォルトの名無しさん
2024/08/30(金) 19:08:04.69ID:QrO3wi5D >linuxカーネルがC++を採用していたらすんなり移行
これは絶対無い
むしろC**使われてるとRust化から遠ざかる
断言出来る
RustとC++の相性は最悪
これは絶対無い
むしろC**使われてるとRust化から遠ざかる
断言出来る
RustとC++の相性は最悪
■ このスレッドは過去ログ倉庫に格納されています
