公式
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
611デフォルトの名無しさん
2024/09/01(日) 21:17:33.09ID:Coh3zEx3612デフォルトの名無しさん
2024/09/01(日) 21:24:18.89ID:MVARTL7s 言語の差でなくメモリ管理方式の差では
ライブラリにはなるけど同様のものはRustにもあるし大して変わらなさそう
ライブラリにはなるけど同様のものはRustにもあるし大して変わらなさそう
613デフォルトの名無しさん
2024/09/01(日) 21:27:22.64ID:0f8jKoK3 コーディングもベンチもせずに
NimはCより2倍速いと主張していて
心の病をうたがってしまう
NimはCより2倍速いと主張していて
心の病をうたがってしまう
614デフォルトの名無しさん
2024/09/01(日) 21:38:54.81ID:pUggxEL4 そもそもNimがCより速いっていうのが原理的におかしいんだよ…
Nimの最速実装には必ずそこから生成されたCが存在するわけで
それとも生成されたCはCとは認めない、みたいな話なんだろうか
Nimの最速実装には必ずそこから生成されたCが存在するわけで
それとも生成されたCはCとは認めない、みたいな話なんだろうか
615デフォルトの名無しさん
2024/09/01(日) 21:48:04.56ID:MVARTL7s 方式の違いを言語の差と思ってるなら
例えば誰かがコストの大きい計算をスレッドプールで高速化した実装をC++やRustで示せばそれでNimより速いと納得するんだろうか
例えば誰かがコストの大きい計算をスレッドプールで高速化した実装をC++やRustで示せばそれでNimより速いと納得するんだろうか
616デフォルトの名無しさん
2024/09/01(日) 21:52:21.87ID:f0nFMo6o >>611
>それはCでもオブジェクトプール使えば2倍速くなるのでは?
Cは手動メモリ管理しかできないオブジェクトプールの機能はないだろ
>オブジェクトプール版のNimから生成したCはまさにそういうコードだと思うけど
人間がCの手動メモリ管理したプログラムだと限界があるムーブセマンティクスの
アルゴリズムでメモリの最適化をしてるから、人間では到底太刀打ちできない事を
証明した論文があるオブジェクトプール版のNimから生成したCのコードは人間には書けない
Nim2.0のムーブセマンティクスの本当に優れた最適化とORCで明示的にオブジェクトプールでプログラミングすることによって、人間がCの手動メモリ管理したベンチマークより2倍以上速くできる
それが間違ってると主張したいのであれば、想定を合わせるためにCでもRustでもどっちでもいいから、速いベンチマークで証明すればいいだけだろ
>それはCでもオブジェクトプール使えば2倍速くなるのでは?
Cは手動メモリ管理しかできないオブジェクトプールの機能はないだろ
>オブジェクトプール版のNimから生成したCはまさにそういうコードだと思うけど
人間がCの手動メモリ管理したプログラムだと限界があるムーブセマンティクスの
アルゴリズムでメモリの最適化をしてるから、人間では到底太刀打ちできない事を
証明した論文があるオブジェクトプール版のNimから生成したCのコードは人間には書けない
Nim2.0のムーブセマンティクスの本当に優れた最適化とORCで明示的にオブジェクトプールでプログラミングすることによって、人間がCの手動メモリ管理したベンチマークより2倍以上速くできる
それが間違ってると主張したいのであれば、想定を合わせるためにCでもRustでもどっちでもいいから、速いベンチマークで証明すればいいだけだろ
617デフォルトの名無しさん
2024/09/01(日) 21:56:31.28ID:0f8jKoK3 NimはCより2倍速いと主張している人がまずはその比較コードとベンチ結果を示す義務がありますよ
618デフォルトの名無しさん
2024/09/01(日) 22:00:47.66ID:ydrH9psJ 主張するだけならどの言語でもできますがな
PythonはCよりも速い、違うというならお前らがコードを書いて証明しろ
みたいなのは面倒くさすぎて誰も相手にせんだろ
PythonはCよりも速い、違うというならお前らがコードを書いて証明しろ
みたいなのは面倒くさすぎて誰も相手にせんだろ
619デフォルトの名無しさん
2024/09/01(日) 22:04:17.16ID:f0nFMo6o620デフォルトの名無しさん
2024/09/01(日) 22:06:25.77ID:pUggxEL4 >>616
別にCでも自分でオブジェクトプール実装するなり既存のarena allocator使えばいいじゃん
まぁ言語組み込みであることで「初心者が何の最適化もしないコードを書いたときにNimが最速」となる可能性はあると思うけど、それならそのように主張してくれ
別にCでも自分でオブジェクトプール実装するなり既存のarena allocator使えばいいじゃん
まぁ言語組み込みであることで「初心者が何の最適化もしないコードを書いたときにNimが最速」となる可能性はあると思うけど、それならそのように主張してくれ
621デフォルトの名無しさん
2024/09/01(日) 22:14:20.69ID:2CzFvl+J622デフォルトの名無しさん
2024/09/01(日) 22:18:07.82ID:0f8jKoK3623デフォルトの名無しさん
2024/09/01(日) 22:19:40.68ID:B8TxC8Ku CとC++の違いも判らない人が主張してもな
624デフォルトの名無しさん
2024/09/02(月) 02:02:31.42ID:PjDKSqdJ 最近のやり取りでなんとなくここの層がわかってきたなぁ
625デフォルトの名無しさん
2024/09/02(月) 10:14:38.25ID:UFeMRrS3 MinifyされたJavaScriptのコードをChatGPTで読みやすい形式に戻すことに成功
https://gigazine.net...eering-with-chatgpt/
https://gigazine.net...eering-with-chatgpt/
626デフォルトの名無しさん
2024/09/02(月) 11:00:21.39ID:bCUpdzqg まあ確かに純粋なCとの置き換えなら別にCでええやんってなるわな
627デフォルトの名無しさん
2024/09/02(月) 12:43:05.01ID:wq6C4ZI5628デフォルトの名無しさん
2024/09/02(月) 12:57:03.37ID:o+5p2SR6 C++ に慣れてると後始末をデストラクタの中に隠蔽できてないのは抽象化の失敗だという感覚があるから defer には良い印象がない。
629デフォルトの名無しさん
2024/09/02(月) 16:42:30.80ID:ctZgLyfU RAIIがない欠陥言語たちはdeferとかwithとかusingとか毎回書かされて汚くなる
630デフォルトの名無しさん
2024/09/02(月) 16:51:36.63ID:FQfjCQIj 別にRAIIが絶対的な正解というわけではないので
そこに自由度を持たせるにはその自由度を制御するための一言が必要になるのは当然のこと
そこに自由度を持たせるにはその自由度を制御するための一言が必要になるのは当然のこと
631デフォルトの名無しさん
2024/09/02(月) 16:52:53.11ID:13HDFjot632デフォルトの名無しさん
2024/09/02(月) 17:01:06.29ID:C3j8rcv1 clang ccは最適化フラグが沢山あるし、色々やればNimと同程度の速度くらい出せるんじゃないの?知らんけど
633デフォルトの名無しさん
2024/09/02(月) 17:19:45.07ID:o+5p2SR6 >>631
defer は抽象化の失敗の表れだとは思うが抽象化をそれほど頑張らない方針を悪いと思ってるわけじゃないよ。
C++ が Better C としての用途でも超強力な選択肢として馴染みがあるからあらためて他の選択肢を使いたい気持ちがあまりないという程度の話。
defer は抽象化の失敗の表れだとは思うが抽象化をそれほど頑張らない方針を悪いと思ってるわけじゃないよ。
C++ が Better C としての用途でも超強力な選択肢として馴染みがあるからあらためて他の選択肢を使いたい気持ちがあまりないという程度の話。
634デフォルトの名無しさん
2024/09/02(月) 17:34:21.85ID:4iRl8tQB C++がBetter Cとして馴染みがあるから他の選択肢を使いたい気持ちがない人、弊社には来て欲しくねえな
馬鹿か、すごい賢くて賢い人としか働けないか、人と働いたことないかの三択だ
馬鹿か、すごい賢くて賢い人としか働けないか、人と働いたことないかの三択だ
635デフォルトの名無しさん
2024/09/02(月) 17:37:11.39ID:lNYL9rdL Zigは結局のところ個人開発止まりで終わるよ
636デフォルトの名無しさん
2024/09/02(月) 18:24:18.22ID:VEiLzJpt >>632
Nimはclangに対応してる
Nim言語開発者がCの手動メモリ管理ソースをclangで最適化コンパイルしてたら5.23sで変わらないんじゃない
Memory management strategy Time Peak Memory
manual 5.23s 244.563MiB
Nimはclangに対応してる
Nim言語開発者がCの手動メモリ管理ソースをclangで最適化コンパイルしてたら5.23sで変わらないんじゃない
Memory management strategy Time Peak Memory
manual 5.23s 244.563MiB
637デフォルトの名無しさん
2024/09/02(月) 18:32:02.91ID:VEiLzJpt 補足
NimはCのソースコード吐けるからから、Nimの手動メモリ管理はCの手動メモリ管理と同じとしてベンチマーク計測してる
https://github.com/Araq/fosdem2020
https://zenn.dev/dumblepy/articles/af2b2b9f8fd890
NimはCのソースコード吐けるからから、Nimの手動メモリ管理はCの手動メモリ管理と同じとしてベンチマーク計測してる
https://github.com/Araq/fosdem2020
https://zenn.dev/dumblepy/articles/af2b2b9f8fd890
638デフォルトの名無しさん
2024/09/02(月) 18:41:55.01ID:VEiLzJpt 補足2
人間がCの手動メモリ管理したプログラムだと限界がある
Nim2.0のムーブセマンティクスの本当に優れたアルゴリズムでメモリの最適化をしてるから、人間では到底太刀打ちできない事を証明した論文がある
オブジェクトプール版のNimから生成したCのコードは人間には書けない
Nim2.0のムーブセマンティクスの本当に優れた最適化とORCで明示的にオブジェクトプールでプログラミングすることによって、人間がCの手動メモリ管理したベンチマークより2倍以上速くできる
人間がCの手動メモリ管理したプログラムだと限界がある
Nim2.0のムーブセマンティクスの本当に優れたアルゴリズムでメモリの最適化をしてるから、人間では到底太刀打ちできない事を証明した論文がある
オブジェクトプール版のNimから生成したCのコードは人間には書けない
Nim2.0のムーブセマンティクスの本当に優れた最適化とORCで明示的にオブジェクトプールでプログラミングすることによって、人間がCの手動メモリ管理したベンチマークより2倍以上速くできる
639デフォルトの名無しさん
2024/09/02(月) 18:51:06.06ID:x+sFU8Hh640デフォルトの名無しさん
2024/09/02(月) 19:04:49.90ID:VEiLzJpt >>639
Nim言語開発者のORCで明示的にオブジェクトプールを使ったプログラミングのベンチマークがガセだと思うなら、それよりも速いベンチマークで証明すればいいだけだろ
Nim言語開発者のORCで明示的にオブジェクトプールを使ったプログラミングのベンチマークがガセだと思うなら、それよりも速いベンチマークで証明すればいいだけだろ
641デフォルトの名無しさん
2024/09/02(月) 19:17:59.50ID:CQW1lAEf Nimの方が速いというコード比較ベンチが一つも存在しないから
現状ではNimが速いは嘘と判断するしかないね
現状ではNimが速いは嘘と判断するしかないね
642デフォルトの名無しさん
2024/09/02(月) 23:35:39.51ID:Azu0Ww0Z よく見たらNimのコードも別に言語の機能としてオブジェクトプールがあるわけではなさそうだな
コード例の中で定義してるし、記事はあくまでオブジェクトプールのNimでの実装例を示しているだけだと思う
GCアルゴリズムの改善 (ORC) もあるけど、それとオブジェクトプールは別の話
元の記事も言語間の比較なんてそもそもしてないし、メモリ戦略による効率化の例を示してるだけだから、
他の言語 (C/C++/Rustに限らずC#やJavaでも) で同じことをすれば同様に「プール戦略は効率が良い」という結果は得られそう
スレで暴れてる子はそれをNimだけができる特別な方法だと思ってるのかな
コード例の中で定義してるし、記事はあくまでオブジェクトプールのNimでの実装例を示しているだけだと思う
GCアルゴリズムの改善 (ORC) もあるけど、それとオブジェクトプールは別の話
元の記事も言語間の比較なんてそもそもしてないし、メモリ戦略による効率化の例を示してるだけだから、
他の言語 (C/C++/Rustに限らずC#やJavaでも) で同じことをすれば同様に「プール戦略は効率が良い」という結果は得られそう
スレで暴れてる子はそれをNimだけができる特別な方法だと思ってるのかな
643デフォルトの名無しさん
2024/09/02(月) 23:47:47.09ID:LcFbNhg2 周回遅れだなw
Nim言語開発者が論文で示されてたプール戦略をオブジェクトプールとして導入した
論文で示されてるから他の言語 (C/C++/Rustに限らずC#やJavaでも) で同じことをすれば同様に
「プール戦略は効率が良い」という結果は当然出るに決まってる
でも現時点で論文で示されてるプール戦略を導入してるのはNim2.0だけ
Nim言語開発者が論文で示されてたプール戦略をオブジェクトプールとして導入した
論文で示されてるから他の言語 (C/C++/Rustに限らずC#やJavaでも) で同じことをすれば同様に
「プール戦略は効率が良い」という結果は当然出るに決まってる
でも現時点で論文で示されてるプール戦略を導入してるのはNim2.0だけ
644デフォルトの名無しさん
2024/09/03(火) 00:13:59.39ID:kXSWNX4e 人間がCの手動メモリ管理したベンチマークより、Nim2.0は循環参照が大量に使用されていればいればいるほどムーブセマンティクスとオブジェクトプールでベンチマークが速くなる
だからNim2.0は循環参照が大量に使用されていない通常の短いコードの言語間ベンチマーク比較だとÇと変わらなくなる
だからNim2.0は循環参照が大量に使用されていない通常の短いコードの言語間ベンチマーク比較だとÇと変わらなくなる
645デフォルトの名無しさん
2024/09/03(火) 00:22:16.43ID:SddP/phw646デフォルトの名無しさん
2024/09/03(火) 01:11:48.95ID:1HHGF7Zl ここ何のスレでしたっけ?
647デフォルトの名無しさん
2024/09/03(火) 01:53:59.18ID:Dbzwi48i 次世代言語スレじゃない?
648デフォルトの名無しさん
2024/09/03(火) 06:26:51.96ID:q/sgL6ap 最強言語を決めようスレ
649デフォルトの名無しさん
2024/09/03(火) 07:16:54.59ID:1bP400Ev オブジェクトプールって要はキャッシュのことでいいの?
650デフォルトの名無しさん
2024/09/03(火) 07:43:29.24ID:kXSWNX4e >>645
訂正
アリーナ方式(=オブジェクトプール方式)はC++とNim2.0だけに導入されてるわけではないと
じゃあNim言語開発者が、RustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたオブジェクトプールは他の言語にあるの?
無いなら、現時点でRustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたオブジェクトプールはを導入してるのはNim2.0だけって事で異論はない?
訂正
アリーナ方式(=オブジェクトプール方式)はC++とNim2.0だけに導入されてるわけではないと
じゃあNim言語開発者が、RustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたオブジェクトプールは他の言語にあるの?
無いなら、現時点でRustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたオブジェクトプールはを導入してるのはNim2.0だけって事で異論はない?
651デフォルトの名無しさん
2024/09/03(火) 07:47:47.67ID:kXSWNX4e 訂正(オブジェクトプール → ムーブセマンティクス)
じゃあNim言語開発者が、RustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたムーブセマンティクスは他の言語にあるの?
無いなら、現時点でRustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたムーブセマンティクスはを導入してるのはNim2.0だけって事で異論はない?
じゃあNim言語開発者が、RustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたムーブセマンティクスは他の言語にあるの?
無いなら、現時点でRustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたムーブセマンティクスはを導入してるのはNim2.0だけって事で異論はない?
652デフォルトの名無しさん
2024/09/03(火) 07:52:41.59ID:e/LVUItZ アロケータを細かく制御したいなら断然Zigだろ
Arena Allocatorももちろん用意されてるし、他にも選択肢がある
Arena Allocatorももちろん用意されてるし、他にも選択肢がある
653デフォルトの名無しさん
2024/09/03(火) 07:59:06.62ID:32lfd5Tu >>649
普通オブジェクトプールをキャッシュとは言わないと思うけど
まぁ挙動としてはメモリ領域のキャッシュみたいなイメージでいいかもしれない
小領域の確保と解放が繰り返されるときにキャッシュすることで実際のmalloc/free(あるいはGC)呼び出し回数を減らすためのもの
普通オブジェクトプールをキャッシュとは言わないと思うけど
まぁ挙動としてはメモリ領域のキャッシュみたいなイメージでいいかもしれない
小領域の確保と解放が繰り返されるときにキャッシュすることで実際のmalloc/free(あるいはGC)呼び出し回数を減らすためのもの
654デフォルトの名無しさん
2024/09/03(火) 08:03:36.62ID:LULqlZCj 来年にはZigがメジャーバージョン1到達見込みみたいだし期待
655デフォルトの名無しさん
2024/09/03(火) 08:04:09.12ID:UM5ITwja Zigはこのまま未完成に終わって極少数の趣味人にしか使われないでしょう
656デフォルトの名無しさん
2024/09/03(火) 10:06:28.79ID:+fPFl5kU なんかZigファン多いみたいだから、単独スレ立てて議論したら?
ここはRustスレだから、ただ単にZigはすごいんだあって宣伝するだけなのはつまらんぞ
ここはRustスレだから、ただ単にZigはすごいんだあって宣伝するだけなのはつまらんぞ
657デフォルトの名無しさん
2024/09/03(火) 10:17:54.29ID:Dbzwi48i C++とかGoとかNimとかの他所様のスレにRustの宣伝を書き散らしてたカスもいたわけだし
今更そんなこと言っても誰も相手にせんだろう
今更そんなこと言っても誰も相手にせんだろう
658デフォルトの名無しさん
2024/09/03(火) 10:20:47.01ID:e/LVUItZ アロケータ周りの不自由さはRustの代表的なウィークポイントだから
Zigと比較するのは有意義だと思うよ
Rust for Linuxで不備を指摘されて、unstable featuresとして整備し始めてるのが現状でしょ?
Zigと比較するのは有意義だと思うよ
Rust for Linuxで不備を指摘されて、unstable featuresとして整備し始めてるのが現状でしょ?
659デフォルトの名無しさん
2024/09/03(火) 10:30:58.77ID:oCyo/VGZ 入院が安定化されればクリアする話だから年内か年明けにでも解決
660デフォルトの名無しさん
2024/09/03(火) 13:17:35.66ID:q/sgL6ap スレ違いなのに書き込んでるやつは頭悪そう
661デフォルトの名無しさん
2024/09/03(火) 16:24:34.66ID:/Ve5otW6662デフォルトの名無しさん
2024/09/03(火) 16:46:40.15ID:/Ve5otW6663デフォルトの名無しさん
2024/09/03(火) 20:18:41.62ID:70res71t >>589
Nim2.0は循環参照が大量に使用されていればいるほどオブジェクトプールとムーブセマンティクスのメモリ最適化アルゴリズムで、人間がCの手動メモリ管理したベンチマークより速くなる
だからNim2.0は循環参照が大量に使用されていない通常の短いコードの言語間ベンチマーク比較だとÇと変わらなくなる
>しかもNimはC言語へトランスパイルされるんだろw
人間がCの手動メモリ管理したプログラムだとメモリの最適化に限界がある
Nim2.0はオブジェクトプールとムーブセマンティクスのアルゴリズムでメモリの最適化をしてるから、オブジェクトプール版のNimから生成したCのコードは人間には書けない
Nim2.0のムーブセマンティクスの本当に優れたメモリ最適化アルゴリズムと明示的にオブジェクトプールでプログラミングすることによって、人間がCの手動メモリ管理したベンチマークより2倍以上速くできる
Nim2.0は循環参照が大量に使用されていればいるほどオブジェクトプールとムーブセマンティクスのメモリ最適化アルゴリズムで、人間がCの手動メモリ管理したベンチマークより速くなる
だからNim2.0は循環参照が大量に使用されていない通常の短いコードの言語間ベンチマーク比較だとÇと変わらなくなる
>しかもNimはC言語へトランスパイルされるんだろw
人間がCの手動メモリ管理したプログラムだとメモリの最適化に限界がある
Nim2.0はオブジェクトプールとムーブセマンティクスのアルゴリズムでメモリの最適化をしてるから、オブジェクトプール版のNimから生成したCのコードは人間には書けない
Nim2.0のムーブセマンティクスの本当に優れたメモリ最適化アルゴリズムと明示的にオブジェクトプールでプログラミングすることによって、人間がCの手動メモリ管理したベンチマークより2倍以上速くできる
664デフォルトの名無しさん
2024/09/03(火) 20:29:12.43ID:70res71t 補足
NimはCのソースコード吐けるからから、Nimの手動メモリ管理はCの手動メモリ管理と同じとしてベンチマーク計測してる
https://github.com/Araq/fosdem2020
https://zenn.dev/dum...icles/af2b2b9f8fd890
NimはCのソースコード吐けるからから、Nimの手動メモリ管理はCの手動メモリ管理と同じとしてベンチマーク計測してる
https://github.com/Araq/fosdem2020
https://zenn.dev/dum...icles/af2b2b9f8fd890
665デフォルトの名無しさん
2024/09/03(火) 20:30:56.39ID:65xXv9p+ 比較コードとベンチ結果すら示せない嘘つきがまた来てるのか
666デフォルトの名無しさん
2024/09/03(火) 20:49:25.51ID:70res71t >>665
https://github.com/Araq/fosdem2020
ベンチマーク:処理能力
Memory management strategy Time Peak Memory
mark&sweep GC 17s 588.047MiB
deferred refcounting GC 16s 304.074MiB
Boehm GC 12s N/A
ARC 6.75s 472.098MiB(379.074MiB)
manual 5.23s 244.563MiB
manual(with RC) 6.244s 379.074MiB
object pooling 2.4s 251.504MiB
パフォーマンスはどうでしょうか?結果ははるかに速く、パフォーマンスが2倍以上向上し、メモリ消費もほぼ同じです。
https://github.com/Araq/fosdem2020
ベンチマーク:処理能力
Memory management strategy Time Peak Memory
mark&sweep GC 17s 588.047MiB
deferred refcounting GC 16s 304.074MiB
Boehm GC 12s N/A
ARC 6.75s 472.098MiB(379.074MiB)
manual 5.23s 244.563MiB
manual(with RC) 6.244s 379.074MiB
object pooling 2.4s 251.504MiB
パフォーマンスはどうでしょうか?結果ははるかに速く、パフォーマンスが2倍以上向上し、メモリ消費もほぼ同じです。
667デフォルトの名無しさん
2024/09/03(火) 20:59:57.60ID:vYs0R68S それはNim同士の別方式の比較
他の言語と比較しないと意味がないね
もちろん他の言語で書いてもobject pooling (= arena allocation)方式が一番速くなることが昔から知られている
他の言語と比較しないと意味がないね
もちろん他の言語で書いてもobject pooling (= arena allocation)方式が一番速くなることが昔から知られている
668デフォルトの名無しさん
2024/09/03(火) 21:00:53.22ID:FoNe+zrO そもそもGCを使わない方法での比較はしてるの?
669デフォルトの名無しさん
2024/09/03(火) 21:03:35.60ID:WuK8CTt/ V8とRustをベースとしたJavaScript/TypeScriptランタイム環境「Deno」v1.46.2
https://forest.watch.impress.co.jp/docs/digest/1620908.html
https://forest.watch.impress.co.jp/docs/digest/1620908.html
670デフォルトの名無しさん
2024/09/03(火) 21:22:39.41ID:Duh4gTgK Poolの概念
tps://boostjp.github.io/archive/boost_docs/libs/pool/concepts.html
他の実装
Pool 割り当て機構は多くのプログラミング言語に見ることができ、多くのバリエーションが存在する。
多くの実装の端緒は、ごく普通のプログラミングに関する文献に求めることができる。
いくつかを以下に示す。これらの何れも完全な実装ではない。
多くは実装のある局面を読者への練習問題としている。
しかしながら、これらの例はどれも、ある局面が欠落しているとはいえ、
このドキュメントで述べている単純分離記憶域と同じ基底概念を使用している。
"The C++ Programming Language", 3rd ed., by Bjarne Stroustrup, Section 19.4.2.
(略)
"MicroC/OS-II: The Real-Time Kernel", by Jean J. Labrosse, Chapter 7 and Appendix B.04.
(略)
"Efficient C++: Performance Programming Techniques", by Dov Bulka and David Mayhew, Chapters 6 and 7.
(略)
"Advanced C++: Programming Styles and Idioms", by James O. Coplien, Section 3.6.
(略)
tps://boostjp.github.io/archive/boost_docs/libs/pool/concepts.html
他の実装
Pool 割り当て機構は多くのプログラミング言語に見ることができ、多くのバリエーションが存在する。
多くの実装の端緒は、ごく普通のプログラミングに関する文献に求めることができる。
いくつかを以下に示す。これらの何れも完全な実装ではない。
多くは実装のある局面を読者への練習問題としている。
しかしながら、これらの例はどれも、ある局面が欠落しているとはいえ、
このドキュメントで述べている単純分離記憶域と同じ基底概念を使用している。
"The C++ Programming Language", 3rd ed., by Bjarne Stroustrup, Section 19.4.2.
(略)
"MicroC/OS-II: The Real-Time Kernel", by Jean J. Labrosse, Chapter 7 and Appendix B.04.
(略)
"Efficient C++: Performance Programming Techniques", by Dov Bulka and David Mayhew, Chapters 6 and 7.
(略)
"Advanced C++: Programming Styles and Idioms", by James O. Coplien, Section 3.6.
(略)
671デフォルトの名無しさん
2024/09/04(水) 00:24:08.00ID:WSrhyWiD なんでstdで公開してるんだか知らんが、rustc開発陣には面白いこと考えて実装してしまう人がいるもんだね
https://doc.rust-lang.org/std/intrinsics/mir/index.html
https://doc.rust-lang.org/std/intrinsics/mir/index.html
672デフォルトの名無しさん
2024/09/04(水) 06:25:46.42ID:L9jt2Atz673デフォルトの名無しさん
2024/09/04(水) 06:51:22.28ID:jUst+7wI674デフォルトの名無しさん
2024/09/04(水) 08:21:33.86ID:YIdoJmrM こっちのが各種負荷が分かりやすい
youtu.be/2hWfLiRGaNM
youtu.be/2hWfLiRGaNM
675デフォルトの名無しさん
2024/09/04(水) 13:53:11.19ID:gtSSINdp どっちのロゴもださい
676デフォルトの名無しさん
2024/09/04(水) 18:38:20.03ID:LischCmo いくつか記事出てるけど、Rust for Linuxは失敗に終わったみたいだね
677デフォルトの名無しさん
2024/09/04(水) 18:53:43.06ID:kEJZEp+0678デフォルトの名無しさん
2024/09/04(水) 20:38:51.07ID:WSrhyWiD 具体的にLinuxの何がRustで書かれてるんだっけか
679デフォルトの名無しさん
2024/09/04(水) 20:51:35.06ID:pD6zdA4Y680デフォルトの名無しさん
2024/09/04(水) 21:35:17.87ID:WSrhyWiD だよね
知ってた
知ってた
681デフォルトの名無しさん
2024/09/04(水) 21:39:00.59ID:DkGnoe2A 抵抗勢力のクズを一掃できないとLinuxの敗北の始まりになるかもな
682デフォルトの名無しさん
2024/09/04(水) 22:30:46.44ID:kVp+OLCr 何に敗北するんだろうか
Rust製でもっと高信頼性かつ高機能なOSをどこかが作ってたりするの?
Rust製でもっと高信頼性かつ高機能なOSをどこかが作ってたりするの?
683デフォルトの名無しさん
2024/09/05(木) 00:00:09.27ID:zViJFvGA linux はバイナリ互換性を大事にする。
(Windows ほどではないけど。)
ドキュメントに書いてない仕様外の挙動であってもそれを変更して動かなくなるアプリケーションがあってはならないというのが基本指針。
コンパイラの挙動とも協調して細部をコントロールしてる工芸品だ。
この状態を維持したまま Rust を導入するのは無理だよ。
比較的疎結合な一部のモジュールはなんとかなるかもしれんがあえてやるには時期尚早。
(Windows ほどではないけど。)
ドキュメントに書いてない仕様外の挙動であってもそれを変更して動かなくなるアプリケーションがあってはならないというのが基本指針。
コンパイラの挙動とも協調して細部をコントロールしてる工芸品だ。
この状態を維持したまま Rust を導入するのは無理だよ。
比較的疎結合な一部のモジュールはなんとかなるかもしれんがあえてやるには時期尚早。
684デフォルトの名無しさん
2024/09/05(木) 00:04:52.28ID:clMGp1Hb それバイナリ互換と関係ない話
685デフォルトの名無しさん
2024/09/05(木) 00:33:15.38ID:9Qm4YGNu >>683
それはカーネル外と際の話
さして言語は関係ない
実行バイナリファイル形式は同じだからRustで書かれたものも動いているしCで書かれたものと混在リンクしても動いてる
バイナリインタフェースのうちシステムコールについてはlibcそのまま用いている
そのためためRustでもレジスタの使用方法積み方全て同じ
実行バイナリへの混在リンクの関数呼び出しについてもCと同じくレジスタ割り当てや退避を行うためこれも同じ
それはカーネル外と際の話
さして言語は関係ない
実行バイナリファイル形式は同じだからRustで書かれたものも動いているしCで書かれたものと混在リンクしても動いてる
バイナリインタフェースのうちシステムコールについてはlibcそのまま用いている
そのためためRustでもレジスタの使用方法積み方全て同じ
実行バイナリへの混在リンクの関数呼び出しについてもCと同じくレジスタ割り当てや退避を行うためこれも同じ
686デフォルトの名無しさん
2024/09/05(木) 01:05:51.55ID:hShQUNIv カーネルとモジュールの間ではバイナリ互換性の問題は発生しないとでも言うつもりなんだろうか
687デフォルトの名無しさん
2024/09/05(木) 01:54:33.69ID:3g7CnUji688デフォルトの名無しさん
2024/09/05(木) 05:13:44.23ID:e3jYYrt5 >>679
unsafeを使うときには必ずそのすぐ上に // SAFETY: コメントで説明を書かないといけない
ってコーディングルールなんだね
Documentation/rust/coding-guidelines.rst
unsafeを使うときには必ずそのすぐ上に // SAFETY: コメントで説明を書かないといけない
ってコーディングルールなんだね
Documentation/rust/coding-guidelines.rst
689デフォルトの名無しさん
2024/09/05(木) 07:32:51.81ID:YoL+MCk6 >>682
なぜかそれはしない
なぜかそれはしない
690デフォルトの名無しさん
2024/09/05(木) 08:27:51.37ID:2XHFyhSG 小さいものはある
しかし巨大なものを置き換えるにはコストがかかる
特に安定している部分はメリットがない
一方でデバイスドライバなど次々と新たなコードが実装されていってる部分はメリットがある
そのためカーネル本体ではなく新たなモジュールからRust化されつつある
しかし巨大なものを置き換えるにはコストがかかる
特に安定している部分はメリットがない
一方でデバイスドライバなど次々と新たなコードが実装されていってる部分はメリットがある
そのためカーネル本体ではなく新たなモジュールからRust化されつつある
691デフォルトの名無しさん
2024/09/05(木) 09:24:04.12ID:NUwXZfpl692デフォルトの名無しさん
2024/09/05(木) 09:29:32.76ID:NUwXZfpl >ドキュメントに書いてない仕様外の挙動であってもそれを変更して動かなくなる
>アプリケーションがあってはならないというのが基本指針。
そういう規定されていない挙動がセキュリティホールになるんじゃないの
アプリじゃなくてウィルスやワームなら動かなくなっても良いという考えは感心しない
(いいけどさ)
>アプリケーションがあってはならないというのが基本指針。
そういう規定されていない挙動がセキュリティホールになるんじゃないの
アプリじゃなくてウィルスやワームなら動かなくなっても良いという考えは感心しない
(いいけどさ)
693デフォルトの名無しさん
2024/09/05(木) 09:53:36.80ID:4TgHYLLA Windowsアーキテクチャを捨てる時rustでスクラッチから書き直すんじゃね?
もう誰かが実験的に始めてるかも知れないけど
もう誰かが実験的に始めてるかも知れないけど
694デフォルトの名無しさん
2024/09/05(木) 10:28:42.83ID:e3jYYrt5 Windowsカーネルにはもう既にRustで書かれたモジュールが入ってるぞ
695デフォルトの名無しさん
2024/09/05(木) 11:26:57.99ID:MrUlEodS696デフォルトの名無しさん
2024/09/05(木) 11:28:29.71ID:ucx37QCe linuxについてもリーナスはrust導入に期待してるからね。
少しずつだけど前進はしてる。けどrust推進者がメンタルやられて後退もしてる。
リーナスも老害には釘さしてる。
少しずつだけど前進はしてる。けどrust推進者がメンタルやられて後退もしてる。
リーナスも老害には釘さしてる。
697デフォルトの名無しさん
2024/09/05(木) 11:43:44.01ID:KbFebBvQ rust製OSといえばRedox
https://redox-os.org/
https://redox-os.org/
698デフォルトの名無しさん
2024/09/05(木) 12:01:55.65ID:FfD21zGl RedoxはMITライセンスだから、Redox開発者&コントリビュータはLinuxのGNUソースを一切見ることが出来ないね
699デフォルトの名無しさん
2024/09/05(木) 12:03:41.73ID:zViJFvGA たとえばヌル終端した文字列を Rust に持ってくるのが面倒くさい (かといって素のポインタで扱うのは Rust の良さが活きない) とかそういう些細な不整合の積み重ねがある。
よく分離されたモジュールの間で通信する分にはたいした話じゃないが一体の塊の中で内容が同じ異なるオブジェクトがあって頻繁に変換するなんてのは論外だ。
カーネルが Rust に配慮するよりは libc みたいなポジションの Rust 版みたいなやつがあればいいんでないの。
よく分離されたモジュールの間で通信する分にはたいした話じゃないが一体の塊の中で内容が同じ異なるオブジェクトがあって頻繁に変換するなんてのは論外だ。
カーネルが Rust に配慮するよりは libc みたいなポジションの Rust 版みたいなやつがあればいいんでないの。
700デフォルトの名無しさん
2024/09/05(木) 12:11:34.88ID:ucx37QCe >>698
?何で見ることできない?
?何で見ることできない?
701デフォルトの名無しさん
2024/09/05(木) 12:11:54.33ID:kbcpGSLl そう、それもGPLな
Redoxに流用すなると、RedoxもGPL
Redoxソースを見たらそれもGPL
Redoxに流用すなると、RedoxもGPL
Redoxソースを見たらそれもGPL
702デフォルトの名無しさん
2024/09/05(木) 12:14:00.92ID:kbcpGSLl >>700
GPL/GPLAライセンスを舐めたら痛い目に遭う
GPL/GPLAライセンスを舐めたら痛い目に遭う
703デフォルトの名無しさん
2024/09/05(木) 14:03:52.89ID:8gaPnIRW ライセンスはApache-2.0 licenseしか信じてないわ
704デフォルトの名無しさん
2024/09/05(木) 15:24:16.99ID:ucx37QCe >>702
それは 見ることできない とは別問題だよ
それは 見ることできない とは別問題だよ
705デフォルトの名無しさん
2024/09/05(木) 15:28:43.04ID:QwnqngeR >>699
ヌル終端文字列の一部を切り取ったヌル終端文字列はたいていヒープに割り当てられ
たいていリファレンスカウントまたはマークアンドスイープの対象になる
ヌル終端しない自由があればヒープがいらなくなる
ヌル終端文字列の一部を切り取ったヌル終端文字列はたいていヒープに割り当てられ
たいていリファレンスカウントまたはマークアンドスイープの対象になる
ヌル終端しない自由があればヒープがいらなくなる
706デフォルトの名無しさん
2024/09/05(木) 15:38:39.94ID:Vdc38OeX やばい、やばい、別言語に書き換えたらGPLロンダリング出来ると本気で思ってそうだな
会社ぐるみで参考とか調査と称してGPLコード内の処理内容をパクってそう
新興OSがLinuxコードをパクって無いと主張するのはダウト
会社ぐるみで参考とか調査と称してGPLコード内の処理内容をパクってそう
新興OSがLinuxコードをパクって無いと主張するのはダウト
707デフォルトの名無しさん
2024/09/05(木) 16:03:51.09ID:eP4hkN3V GPLの力をそこまで拡大するのはカスなんだよな
そこまでやるなら裁判でもなんでもしてGPLごと破壊していくべき
そこまでやるなら裁判でもなんでもしてGPLごと破壊していくべき
708デフォルトの名無しさん
2024/09/05(木) 16:10:43.66ID:clMGp1Hb そこまで気にするならGPLに限らず他人の
著作物見ると危険だから
著作物見ると危険だから
709デフォルトの名無しさん
2024/09/05(木) 16:22:33.75ID:CfpHO291 「GPLのソースをコピーして使ったソースは、ソース公開の義務が生じ、それもGPLになる」
というものだから、目で見て脳で記憶してそっくりに真似た場合はコピーしたわけではないから
GPL感染しないかも。
そもそも、目で見たものを再現したら、駄目、なんて理屈、特許も取れてないのに主張できる
ものなのかいな。絵とか文章をそのままコピーするのは著作権違反だけども、目で見て真似た
だけでは著作権違反ではなかろう。ミッキーマウスみたいなのは駄目なんだろうけども。
GPLは、ライセンス自体が法解釈的に「無効」かも知れない。
というものだから、目で見て脳で記憶してそっくりに真似た場合はコピーしたわけではないから
GPL感染しないかも。
そもそも、目で見たものを再現したら、駄目、なんて理屈、特許も取れてないのに主張できる
ものなのかいな。絵とか文章をそのままコピーするのは著作権違反だけども、目で見て真似た
だけでは著作権違反ではなかろう。ミッキーマウスみたいなのは駄目なんだろうけども。
GPLは、ライセンス自体が法解釈的に「無効」かも知れない。
710デフォルトの名無しさん
2024/09/05(木) 16:26:01.06ID:CfpHO291 memcpyのx86用のアセンブリコードがあったとして、それ以上ほぼ高速化できない場合が有るから、
それを真似てはいけないと言うのは、技術の進歩を阻害してしまうだろう。
それとは異なるが速度は同じ、というようなものを考え出す苦労がGPLのせいで生まれる
ことになり、それに時間をとられて人類は損失を被ることになる。
それを真似てはいけないと言うのは、技術の進歩を阻害してしまうだろう。
それとは異なるが速度は同じ、というようなものを考え出す苦労がGPLのせいで生まれる
ことになり、それに時間をとられて人類は損失を被ることになる。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 東京株式市場 インバウンド関連株が下落 中国政府の渡航自粛要請で [バイト歴50年★]
- 5:55:55.555
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 戦争は無くならないし殺人は起きるし女はレイプされるし子供は餓死するし
- 日経時間外、5万円割れ 垂直落下始まる [402859164]
- 高市さんに土下座してもらったら一発解決なのに何でやらないんだろ??
- 【悲報】男性人気アイドルグループJO1、中国公演中止wwwwwwwwwwwwwwwwwwwwwwwwwww
