公式
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 part28
https://mevius.5ch.net/test/read.cgi/tech/1742805420/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part29
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2025/05/03(土) 00:47:30.13ID:phVJ5tWC483デフォルトの名無しさん
2025/05/15(木) 14:57:48.33ID:DscPOsCc484デフォルトの名無しさん
2025/05/15(木) 15:04:23.65ID:DscPOsCc >>481
もしOrphanルールがないと、トレイトの作成者でも型の作成者でもない第三者によって、勝手に型にトレイトが実装されてしまうため、その実装によっては脆弱性が生じる可能性があります。
もしOrphanルールがないと、トレイトの作成者でも型の作成者でもない第三者によって、勝手に型にトレイトが実装されてしまうため、その実装によっては脆弱性が生じる可能性があります。
485デフォルトの名無しさん
2025/05/15(木) 15:35:40.67ID:d3l5/VMs >>484
トレイトの実装は可視性の指定をバイパスできないし、そもそも可視性はセキュリティのための機構ではない
その気になりゃ本来不可視なメンバにアクセスすることなんて普通に可能だし、
もしクレートの作者に悪意があって、利用者が不用意にバージョン上げる阿呆なら、サプライチェーン攻撃によってマルウェアを仕込むことなど造作もない
トレイトの実装は可視性の指定をバイパスできないし、そもそも可視性はセキュリティのための機構ではない
その気になりゃ本来不可視なメンバにアクセスすることなんて普通に可能だし、
もしクレートの作者に悪意があって、利用者が不用意にバージョン上げる阿呆なら、サプライチェーン攻撃によってマルウェアを仕込むことなど造作もない
486デフォルトの名無しさん
2025/05/15(木) 15:59:53.54ID:DscPOsCc >>485
そんな悪意のある話はしていません。
第三者が公の型に公のトレイトを実装できてしまうと、その第三者にとっては意図通りの必要なことが実現できたとしても、他者にとっては必ずしもそうではないためその差異が穴になりうるという話です。
そんな悪意のある話はしていません。
第三者が公の型に公のトレイトを実装できてしまうと、その第三者にとっては意図通りの必要なことが実現できたとしても、他者にとっては必ずしもそうではないためその差異が穴になりうるという話です。
487デフォルトの名無しさん
2025/05/15(木) 16:01:34.05ID:cOWHhYVA >>480
既存の構造体に新しいメソッドを生やしたいだけならextension traitで可
既存traitに新しいメソッドを生やしたいならextension trait + blanket implで実質同じことが可
拡張メソッド1つじゃなくtraitと実装の最低2つを定義しないといけないがそんなに気になるほどではない
Swiftの拡張メソッドのように既存インターフェースに後から適合させるのはRustでは無理
既存の構造体に新しいメソッドを生やしたいだけならextension traitで可
既存traitに新しいメソッドを生やしたいならextension trait + blanket implで実質同じことが可
拡張メソッド1つじゃなくtraitと実装の最低2つを定義しないといけないがそんなに気になるほどではない
Swiftの拡張メソッドのように既存インターフェースに後から適合させるのはRustでは無理
488デフォルトの名無しさん
2025/05/15(木) 16:08:57.33ID:cOWHhYVA489デフォルトの名無しさん
2025/05/15(木) 16:19:46.85ID:DscPOsCc >>488
理解できてないのかな?
例えば標準ライブラリのトレイトに話を限ったとしても、自分で使いたいからuseしたり、preludeで自動的にuseされたりするよね。
そのトレイトが標準ライブラリでは実装されてない型に対して、第三者が実装できてしまうことを防ぐのがOrphanルール。
標準ライブラリではない一般クレートに話を拡張しても同じ。
理解できてないのかな?
例えば標準ライブラリのトレイトに話を限ったとしても、自分で使いたいからuseしたり、preludeで自動的にuseされたりするよね。
そのトレイトが標準ライブラリでは実装されてない型に対して、第三者が実装できてしまうことを防ぐのがOrphanルール。
標準ライブラリではない一般クレートに話を拡張しても同じ。
490デフォルトの名無しさん
2025/05/15(木) 16:39:03.48ID:kvgG4b4S 既存の構造体に既存のtraitを
491デフォルトの名無しさん
2025/05/15(木) 16:52:22.68ID:clVHgL7i barクレートとbazクレートがどっちもfooクレートに依存してて
それぞれで個別にimpl FooTrait for FooTypeを定義してたら
barクレートとbazクレートを両方使うときに衝突して困る
それぞれで個別にimpl FooTrait for FooTypeを定義してたら
barクレートとbazクレートを両方使うときに衝突して困る
492デフォルトの名無しさん
2025/05/15(木) 17:01:11.21ID:6KG6JIoe >>489
それは型定義ともトレイト定義とも異なるクレートでのトレイト実装という現状禁止されている行為が仮に許可された場合、
コンパイルパスに入ってさえいれば暗黙的に実装がインポートされる仕様になる、とあなたが勝手に想定しているからでしょ
もし対応するなら、実装を含むモジュールを明示的にuseさせるような仕様になるだろうし、
そういった面倒を避けるためにorphan ruleがある、と考えることもできる
それは型定義ともトレイト定義とも異なるクレートでのトレイト実装という現状禁止されている行為が仮に許可された場合、
コンパイルパスに入ってさえいれば暗黙的に実装がインポートされる仕様になる、とあなたが勝手に想定しているからでしょ
もし対応するなら、実装を含むモジュールを明示的にuseさせるような仕様になるだろうし、
そういった面倒を避けるためにorphan ruleがある、と考えることもできる
493デフォルトの名無しさん
2025/05/15(木) 18:02:56.74ID:njVhCRvT 例えばu32型にその値を半分にするメソッドhalf()を生やしたいとしたら自作トレイトHalfを用意してu32に実装してやればメソッド拡張できて
そのトレイトHalfをuseすれば第三者もその恩恵に授かってhalf()メソッドを使えるわけだけど
仮にOrphan ruleがない世界だと
u32型には実装されていないstd::ops::Negトレイトも誰でも実装できてしまう
先ほどのhalf()メソッドはuse dareka::Halfした時のみ使えるから自己責任で済んだけど
今回は別目的でuse std::ops::Negしてる人にもu32型にneg()が生えてしまう
本来はu32型の変数xに対して-xはコンパイルエラーとなるけど
今回はneg()が使えて-xがコンパイル通ってしまう
しかも実装の内容によってはその-xの挙動が不明だ
そのトレイトHalfをuseすれば第三者もその恩恵に授かってhalf()メソッドを使えるわけだけど
仮にOrphan ruleがない世界だと
u32型には実装されていないstd::ops::Negトレイトも誰でも実装できてしまう
先ほどのhalf()メソッドはuse dareka::Halfした時のみ使えるから自己責任で済んだけど
今回は別目的でuse std::ops::Negしてる人にもu32型にneg()が生えてしまう
本来はu32型の変数xに対して-xはコンパイルエラーとなるけど
今回はneg()が使えて-xがコンパイル通ってしまう
しかも実装の内容によってはその-xの挙動が不明だ
494デフォルトの名無しさん
2025/05/15(木) 19:36:05.04ID:IIQRq9O2 ポケモン協会は秘密にしてるけど、たぶんポケモン世界にはイジメ属性みたいなのもあって仲間ポケモンを自殺に追い込んだりしてると思う。
それとか孕ませポケモンがトレーナーをレイプしたりだとか、逆にトレーナーがポケモンと獣姦 (?) したりだとかいう醜聞もいっぱいあるに違いない。
ポケモン協会はそういうのを隠さずに公開すべき。
それとか孕ませポケモンがトレーナーをレイプしたりだとか、逆にトレーナーがポケモンと獣姦 (?) したりだとかいう醜聞もいっぱいあるに違いない。
ポケモン協会はそういうのを隠さずに公開すべき。
495デフォルトの名無しさん
2025/05/15(木) 19:37:43.21ID:IIQRq9O2 ごめんなさい。
誤爆しました。
誤爆しました。
496デフォルトの名無しさん
2025/05/15(木) 20:29:13.48ID:QWJDxUqA 俺だってシャワーズとセックスしたいよ
497デフォルトの名無しさん
2025/05/15(木) 22:09:10.96ID:p2LOH2jU それはもはやトランスアニマルじゃねーの
いくら翻訳がグダグダだからってそこまで人間性失うのはいかがなものかと
いくら翻訳がグダグダだからってそこまで人間性失うのはいかがなものかと
498デフォルトの名無しさん
2025/05/15(木) 22:20:07.26ID:HPgmxOUZ >>457,466
ほかの言語と同じように外部ライブラリ/crateを除外してある今回の数字が正しそうね
ほかの言語と同じように外部ライブラリ/crateを除外してある今回の数字が正しそうね
499デフォルトの名無しさん
2025/05/15(木) 23:29:18.99ID:7W7zR2tR500デフォルトの名無しさん
2025/05/16(金) 06:25:07.48ID:QL8B1Lzv 悲報!Rust版AV1デコーダーがCより5%遅い問題が解決できず、カネで解決しようとする
https://www.memorysafety.org/blog/rav1d-perf-bounty/
https://www.memorysafety.org/blog/rav1d-perf-bounty/
501デフォルトの名無しさん
2025/05/16(金) 07:42:42.67ID:GIaLLXqf >>500
詳細を見るとこれはRustとLLVMの改善に大きく寄与しそうだな
(1) Rustコードの問題
(2) Rustコンパイラの問題
(3) RustコンパイラからLLVMへの問題
(4) LLVMの問題
これらは密接に関係していて(1)を完璧にしていても
(4)の問題から逆連鎖して(1)で対応するためのコード調整をしなければいけないようだ
本件をきっかけに様々な改善が期待できるので世界全体に役立つだろう
詳細を見るとこれはRustとLLVMの改善に大きく寄与しそうだな
(1) Rustコードの問題
(2) Rustコンパイラの問題
(3) RustコンパイラからLLVMへの問題
(4) LLVMの問題
これらは密接に関係していて(1)を完璧にしていても
(4)の問題から逆連鎖して(1)で対応するためのコード調整をしなければいけないようだ
本件をきっかけに様々な改善が期待できるので世界全体に役立つだろう
502デフォルトの名無しさん
2025/05/16(金) 07:44:33.05ID:GIaLLXqf LLVMを用いている様々な言語にも恩恵ありそうだ
> 驚くべきことに、Clang 18 でビルドされたバージョンは、Clang 17 でビルドされたバージョンよりもパフォーマンスが劣ることがわかりました (~3% 遅い)。
> このリグレッションの原因は不明ですが、Clang全体で一貫性があり、対応するLLVMバックエンドを使用していることがわかりました。
> 驚くべきことに、Clang 18 でビルドされたバージョンは、Clang 17 でビルドされたバージョンよりもパフォーマンスが劣ることがわかりました (~3% 遅い)。
> このリグレッションの原因は不明ですが、Clang全体で一貫性があり、対応するLLVMバックエンドを使用していることがわかりました。
503デフォルトの名無しさん
2025/05/16(金) 08:19:21.12ID:ZrWbXhSM Rust は将来的に LLVM をやめる計画じゃなかったっけ?
うろ覚えなので勘違いかもしれんけど。
うろ覚えなので勘違いかもしれんけど。
504デフォルトの名無しさん
2025/05/16(金) 08:21:41.68ID:QL8B1Lzv >>503
GCC Rustは継続的にやってるみたいだけど、別にLLVMはやめないでしょ
GCC Rustは継続的にやってるみたいだけど、別にLLVMはやめないでしょ
505デフォルトの名無しさん
2025/05/16(金) 08:42:23.59ID:QL8B1Lzv 今日公開のRust 1.87.0でio::pipeが追加された
今までなかったことが不思議
今までなかったことが不思議
506デフォルトの名無しさん
2025/05/16(金) 09:10:56.72ID:b2vWvm61 >>500
対象国に対して賞金が安すぎる
しかもRust処理系の方に手を入れた場合はアプリケーションの改善をした人と山分けになる可能性が高いし、
一般的な有効性を証明してRust処理系にマージされないといけないというのはハードルが高すぎる
残念ながら複おじが期待するような結果になる可能性は低いと言わざるを得ない
対象国に対して賞金が安すぎる
しかもRust処理系の方に手を入れた場合はアプリケーションの改善をした人と山分けになる可能性が高いし、
一般的な有効性を証明してRust処理系にマージされないといけないというのはハードルが高すぎる
残念ながら複おじが期待するような結果になる可能性は低いと言わざるを得ない
507デフォルトの名無しさん
2025/05/16(金) 09:12:43.25ID:r8NIoUWT508デフォルトの名無しさん
2025/05/16(金) 09:41:55.75ID:7mIpVS9r >>500,506
フルで$20,000でも米国の1人月かぁ、しかも成功報酬だから最適化を舐め腐ってるけど
Rustに入れ込んでる一定数はひと山当てたい連中だから売名プロモーションとして参加するだろうね
フルで$20,000でも米国の1人月かぁ、しかも成功報酬だから最適化を舐め腐ってるけど
Rustに入れ込んでる一定数はひと山当てたい連中だから売名プロモーションとして参加するだろうね
509デフォルトの名無しさん
2025/05/16(金) 11:10:05.92ID:wXSLcdK+ リンク先見たら初っ端からsafe rustを諦めているから
何の為のプロジェクトか意味不明になりかけている
何の為のプロジェクトか意味不明になりかけている
510デフォルトの名無しさん
2025/05/16(金) 11:35:21.65ID:1BoI6QFj >>509
unsafeからsafeを創り出す新たな安全パターンを見つけたら、それを使うのは問題ない
その部分だけ徹底的に人の手で安全管理して、それ以外の安全をRustコンパイラに任せることができる
それらのうち特に汎用パターンを集めたものが標準ライブラリという視点もある
unsafeからsafeを創り出す新たな安全パターンを見つけたら、それを使うのは問題ない
その部分だけ徹底的に人の手で安全管理して、それ以外の安全をRustコンパイラに任せることができる
それらのうち特に汎用パターンを集めたものが標準ライブラリという視点もある
511デフォルトの名無しさん
2025/05/16(金) 11:41:45.02ID:OoDj1+RH 今になって気が付いたじゃなくて、言語仕様で例外を投げられないから無視してただけでは
> We noticed that the existence of panicking code significantly increased stack usage. Similarly to how panicking/formatting code prevented crucial inlining in bounds checking code until moved out of the function, panicking code also increased stack usage and spills.
>>510
タラレバがでかい
> We noticed that the existence of panicking code significantly increased stack usage. Similarly to how panicking/formatting code prevented crucial inlining in bounds checking code until moved out of the function, panicking code also increased stack usage and spills.
>>510
タラレバがでかい
512デフォルトの名無しさん
2025/05/16(金) 11:42:09.71ID:ZrWbXhSM >>509
標準ライブラリの内部でも unsafe はたくさん使われてるぞ。
unsafe をどう「閉じ込める」かが Rust プログラムの構成の肝心な部分だ。
速度チューニングのために閉じ込めきれなかったのなら失敗と言えるが unsafe がただちに悪いわけではない。
標準ライブラリの内部でも unsafe はたくさん使われてるぞ。
unsafe をどう「閉じ込める」かが Rust プログラムの構成の肝心な部分だ。
速度チューニングのために閉じ込めきれなかったのなら失敗と言えるが unsafe がただちに悪いわけではない。
513デフォルトの名無しさん
2025/05/16(金) 11:48:07.99ID:OoDj1+RH panic(エラー処理)を関数内に収めるからregisterが足りなくなり易くなるからspillさせるためにスタック多めにして、コードサイズも大きくなるのは最初から分かってたでしょうよ
514デフォルトの名無しさん
2025/05/16(金) 12:31:41.93ID:IgvVjYfn unsafeは禁止なのにpanic!はOKって何考えて設計してんの
515デフォルトの名無しさん
2025/05/16(金) 12:37:23.64ID:b58fLBSS 速度にシビアなコードを書く時は関数にpanic呼び出しが残っていたら当然負け
まずはpanicを生じさせないイテレータなどで書き
インデックスアクセスを避けられない時は様々な工夫とヒントをコンパイラに与えて境界チェックを回避
それでも回避できない部分が残れば最後の手段unsafe安全閉じ込め
他の言語なら全体の安全保証を捨てるか遅さを我慢するかの二択
まずはpanicを生じさせないイテレータなどで書き
インデックスアクセスを避けられない時は様々な工夫とヒントをコンパイラに与えて境界チェックを回避
それでも回避できない部分が残れば最後の手段unsafe安全閉じ込め
他の言語なら全体の安全保証を捨てるか遅さを我慢するかの二択
516デフォルトの名無しさん
2025/05/16(金) 12:56:20.34ID:O+6qQae6 一番初歩的なゼロ除算はchecked_divがidiomaticだけど、
ttps://stackoverflow.com/questions/66602948/is-there-a-way-to-catch-division-by-zero-errors-without-checking-in-advance
実際に0除算を実行してハードウェア例外を発生させるコードの例(回避できない部分と仮定)として、
> それでも回避できない部分が残れば最後の手段unsafe安全閉じ込め
>>515の言うこれをゼロ除算で具体化するとどうなるの?
ttps://stackoverflow.com/questions/66602948/is-there-a-way-to-catch-division-by-zero-errors-without-checking-in-advance
実際に0除算を実行してハードウェア例外を発生させるコードの例(回避できない部分と仮定)として、
> それでも回避できない部分が残れば最後の手段unsafe安全閉じ込め
>>515の言うこれをゼロ除算で具体化するとどうなるの?
517デフォルトの名無しさん
2025/05/16(金) 13:18:06.79ID:b58fLBSS >>516
除数をstd::num::NonZero型にするとpanicコードは入らない
除数をstd::num::NonZero型にするとpanicコードは入らない
518デフォルトの名無しさん
2025/05/16(金) 13:42:02.34ID:QUtZlH+M >>517
病気かな
病気かな
519デフォルトの名無しさん
2025/05/16(金) 13:49:45.88ID:b58fLBSS >>518
実際にかつてそれで対応したことがありアセンブリコードも確認している
実際にかつてそれで対応したことがありアセンブリコードも確認している
520デフォルトの名無しさん
2025/05/16(金) 13:54:06.57ID:wj8lYFI5521デフォルトの名無しさん
2025/05/16(金) 14:18:57.81ID:b58fLBSS >>520
safeなstd::num::NonZero使用で対応できているためunsafeの必要がない
safeなstd::num::NonZero使用で対応できているためunsafeの必要がない
522デフォルトの名無しさん
2025/05/16(金) 15:05:55.72ID:L+lmGGRS >>521
御託はもういいからお前はsafe縛りでAV1デコーダを書き直してCと同等の速度を達成してこい
御託はもういいからお前はsafe縛りでAV1デコーダを書き直してCと同等の速度を達成してこい
523デフォルトの名無しさん
2025/05/16(金) 15:14:15.36ID:b58fLBSS >>522
金と暇を用意してくれたらな
それから最高速を求める時にsafe縛りの必要はない
unsafeを安全に閉じ込められる枠組みが見つかればそれを実行してきたのがRustの歴史
その恩恵で皆がsafe Rustでパフォーマンスを出すことができる
金と暇を用意してくれたらな
それから最高速を求める時にsafe縛りの必要はない
unsafeを安全に閉じ込められる枠組みが見つかればそれを実行してきたのがRustの歴史
その恩恵で皆がsafe Rustでパフォーマンスを出すことができる
524デフォルトの名無しさん
2025/05/16(金) 15:24:17.43ID:9BgWdn33 なんかよくわかんねーけどCより5%遅いらしいな
525デフォルトの名無しさん
2025/05/16(金) 15:38:32.38ID:QL8B1Lzv デコーダーの主要部分はC版の頃からアセンブラで書かれてて、Rustはグルーコードに過ぎないみたい
526デフォルトの名無しさん
2025/05/16(金) 15:41:24.82ID:JWOdogbt えぇ・・・
527デフォルトの名無しさん
2025/05/16(金) 16:18:41.85ID:m6piKA++ pub const fn checked_div(self, rhs: Self) -> Option<Self> {
if intrinsics::unlikely(rhs == 0 || ((self == Self::MIN) && (rhs == -1))) {
None
} else {
// SAFETY: div by zero and by INT_MIN have been checked above
Some(unsafe { intrinsics::unchecked_div(self, rhs) })
}
}
NonZero使ったら最適化で分岐が消える場合があるってことだろうけど
チェックタイミングがNonZero化するときに移動しただけだよね
もしくは定数由来だからチェックが不要になったか
if intrinsics::unlikely(rhs == 0 || ((self == Self::MIN) && (rhs == -1))) {
None
} else {
// SAFETY: div by zero and by INT_MIN have been checked above
Some(unsafe { intrinsics::unchecked_div(self, rhs) })
}
}
NonZero使ったら最適化で分岐が消える場合があるってことだろうけど
チェックタイミングがNonZero化するときに移動しただけだよね
もしくは定数由来だからチェックが不要になったか
528デフォルトの名無しさん
2025/05/16(金) 19:03:43.29ID:b58fLBSS >>527
checkなくコストゼロでpanicもなく安全にu64 / NonZero<u64>の除算やNonZero<u64>→u64の変換などができる
ゼロ保証のない変数からNonZeroを作るには必ずチェックコストがかかるが以降は除数として何度使ってもコストゼロ
元が穴のないCコードならどこかで何らかの方法でゼロにならないことを保証しているはず
それに準拠する形を取ることができればCとRustは同じコストで同じ速さになる
もし元のCコードにゼロ保証する仕組みが全く見当たらないならばそれは穴のあるコードが見つかったことになる
checkなくコストゼロでpanicもなく安全にu64 / NonZero<u64>の除算やNonZero<u64>→u64の変換などができる
ゼロ保証のない変数からNonZeroを作るには必ずチェックコストがかかるが以降は除数として何度使ってもコストゼロ
元が穴のないCコードならどこかで何らかの方法でゼロにならないことを保証しているはず
それに準拠する形を取ることができればCとRustは同じコストで同じ速さになる
もし元のCコードにゼロ保証する仕組みが全く見当たらないならばそれは穴のあるコードが見つかったことになる
529デフォルトの名無しさん
2025/05/16(金) 19:13:36.61ID:bpgu73R/ >>528
病気だな。
要求されてる「それでも回避できない部分が残れば最後の手段unsafe安全閉じ込め」™の具体例を上げやすいように、
「それでも回避できない部分」を簡潔に作り出すのが手間なら、ループ最深部の(0かも知れない)除算を想定した上で「unsafe安全閉じ込め」™をサッと挙げたらどうですか?
と言う話のはずなのに、この受け答え。
病気だな。
要求されてる「それでも回避できない部分が残れば最後の手段unsafe安全閉じ込め」™の具体例を上げやすいように、
「それでも回避できない部分」を簡潔に作り出すのが手間なら、ループ最深部の(0かも知れない)除算を想定した上で「unsafe安全閉じ込め」™をサッと挙げたらどうですか?
と言う話のはずなのに、この受け答え。
530デフォルトの名無しさん
2025/05/16(金) 19:16:32.12ID:b58fLBSS531デフォルトの名無しさん
2025/05/16(金) 19:17:47.42ID:bpgu73R/532デフォルトの名無しさん
2025/05/16(金) 19:19:01.24ID:bpgu73R/ >>530
対象国居住者とタッグ組んで参加してください。
対象国居住者とタッグ組んで参加してください。
533デフォルトの名無しさん
2025/05/16(金) 19:23:03.68ID:bpgu73R/534デフォルトの名無しさん
2025/05/16(金) 19:29:28.60ID:b58fLBSS535デフォルトの名無しさん
2025/05/16(金) 19:33:14.79ID:CtDSSAzz 当然ながら元々はボトルネックを特定した上で部分的にアセンブラで書いているのだろうし、
当時のスキルをもってすれば今5%も差が出ているならまずは原因箇所の特定くらいは簡単にできそうなもんだが、
なぜこんな解像度の低い状態で丸投げしているのか謎
オリジナルの開発をやった人がいなくなっちゃったのかもね
もはやRust関係ないけど
当時のスキルをもってすれば今5%も差が出ているならまずは原因箇所の特定くらいは簡単にできそうなもんだが、
なぜこんな解像度の低い状態で丸投げしているのか謎
オリジナルの開発をやった人がいなくなっちゃったのかもね
もはやRust関係ないけど
536デフォルトの名無しさん
2025/05/16(金) 19:35:12.11ID:b58fLBSS537デフォルトの名無しさん
2025/05/16(金) 19:39:18.59ID:zQbADFxC538デフォルトの名無しさん
2025/05/16(金) 19:45:26.73ID:b58fLBSS539デフォルトの名無しさん
2025/05/16(金) 19:48:17.71ID:zQbADFxC いつもの人間が判断するだけの事に名前を付けたのね
540デフォルトの名無しさん
2025/05/16(金) 19:49:07.71ID:zQbADFxC そうなると複オジ本人だなw
541デフォルトの名無しさん
2025/05/16(金) 20:03:38.49ID:CtDSSAzz >>537
一通り読んだけど、c2rustのunsafeコードを修正する際に適用することにしている、一般的に高速化に寄与すると考えられる作法を紹介しているだけで、
実行時のパフォーマンスについての詳細な分析結果は特に見つけられなかった
プロジェクトの概要なんかも見てると金貰って開発する上で結構厳しくQCD管理されてるみたいだから、
どうしても自分達で解決できないというよりは単に切羽詰まってるから助けてくれという感じなのかね
一通り読んだけど、c2rustのunsafeコードを修正する際に適用することにしている、一般的に高速化に寄与すると考えられる作法を紹介しているだけで、
実行時のパフォーマンスについての詳細な分析結果は特に見つけられなかった
プロジェクトの概要なんかも見てると金貰って開発する上で結構厳しくQCD管理されてるみたいだから、
どうしても自分達で解決できないというよりは単に切羽詰まってるから助けてくれという感じなのかね
542デフォルトの名無しさん
2025/05/16(金) 20:14:28.07ID:zQbADFxC 複オジは仮病だろうけど、最近の話題でこんな画像があった
統合失調症のブログが話題に「全てがわかる。すべてのすべて」
https://pbs.twimg.com/media/Gpy43ktaYAYMz9w.jpg
統合失調症のブログが話題に「全てがわかる。すべてのすべて」
https://pbs.twimg.com/media/Gpy43ktaYAYMz9w.jpg
543デフォルトの名無しさん
2025/05/16(金) 23:32:05.70ID:V5h5/o2J >>513
この種の速さ命のプログラミングではpanicコードを完全に排除するためその問題は起きない
この種の速さ命のプログラミングではpanicコードを完全に排除するためその問題は起きない
544デフォルトの名無しさん
2025/05/16(金) 23:35:06.70ID:ZEBLDPGc545デフォルトの名無しさん
2025/05/16(金) 23:48:27.11ID:+TOH8huo546デフォルトの名無しさん
2025/05/17(土) 02:16:37.18ID:hnIBgbwS >>545
頭おかしいのはみんな気づいてるからいいとして、せめてコテにしてNGさせてくれよな
延々中身のない仕様も理解していないレスバを目にするのも辛いしな
よりに寄ってこんな過疎スレに来なくていいのに
頭おかしいのはみんな気づいてるからいいとして、せめてコテにしてNGさせてくれよな
延々中身のない仕様も理解していないレスバを目にするのも辛いしな
よりに寄ってこんな過疎スレに来なくていいのに
547デフォルトの名無しさん
2025/05/17(土) 07:06:56.82ID:XtHNXmhB 科学 + 5ch
20種近くも検出された新しい「量子状態」は、量子コンピューター飛躍の鍵になるか [すらいむ★]
2025/05/16(金) 22:52:02.48
http://egg.5ch.net/test/read.cgi/scienceplus/1747403522/
>>これまで理論上の存在と考えられてきた量子状態の検出に、国際研究チームが初めて成功した。量子情報の保存や論理演算の基盤として応用することで、量子コンピューターの未来を変える鍵となるかもしれない。
※犯罪の手口が判明するのか
20種近くも検出された新しい「量子状態」は、量子コンピューター飛躍の鍵になるか [すらいむ★]
2025/05/16(金) 22:52:02.48
http://egg.5ch.net/test/read.cgi/scienceplus/1747403522/
>>これまで理論上の存在と考えられてきた量子状態の検出に、国際研究チームが初めて成功した。量子情報の保存や論理演算の基盤として応用することで、量子コンピューターの未来を変える鍵となるかもしれない。
※犯罪の手口が判明するのか
548デフォルトの名無しさん
2025/05/17(土) 07:42:04.23ID:lDt9R68w >延々中身のない仕様も理解していないレスバ
潰し屋だな
潰し屋だな
549デフォルトの名無しさん
2025/05/17(土) 08:40:26.34ID:qCs3WkDL 全能感があるだけ幸せなのでは?自分は真逆で老化がはじまったんかと思うぐらい
550デフォルトの名無しさん
2025/05/17(土) 10:25:49.04ID:+mXvyyg4 糖質というより発達系だろ
間違いを認めたら負けみたいな中華メンタルも持ち合わせてるけどあれは病気じゃなくて人間性の問題
間違いを認めたら負けみたいな中華メンタルも持ち合わせてるけどあれは病気じゃなくて人間性の問題
551デフォルトの名無しさん
2025/05/17(土) 10:34:31.56ID:9HrlEF5X キチガイの自白で荒らされてますが
Rust 1.0からちょうど10周年ですよ
おめでとう!
Rust 1.0からちょうど10周年ですよ
おめでとう!
552デフォルトの名無しさん
2025/05/17(土) 10:41:03.44ID:qCs3WkDL Rustのすべてが正しいという発想しかない異常者
553デフォルトの名無しさん
2025/05/17(土) 10:49:42.53ID:BnclY/n2 複オジ今日も快調に暴走
554デフォルトの名無しさん
2025/05/17(土) 15:50:10.71ID:P2bp1h/d 複ちゃん消したらもうこのスレの存在意義ないけど
555デフォルトの名無しさん
2025/05/17(土) 18:34:13.65ID:Vu4+Tz9e AI吹くちゃん二代目襲名
556デフォルトの名無しさん
2025/05/17(土) 19:44:04.18ID:t/yU0oIF 1.87で安定化したVec::extract_ifの機能がdrainに近いと思ったけど最初はdrain_filterの名前で提案されてたのね
自動で全部dropできないからdrain_filterとかdrain_ifだとだめらしい
drainが排出じゃなく吸収のイメージなのはFFが原因だな
自動で全部dropできないからdrain_filterとかdrain_ifだとだめらしい
drainが排出じゃなく吸収のイメージなのはFFが原因だな
557デフォルトの名無しさん
2025/05/17(土) 22:10:30.09ID:pKwTZqOi extract_if()はむしろretain()+捨てる分を取り出し(extract)と考えた方がいい
ただし残すをtrueか取り出すをtrueかで判定関数の真偽が逆に注意
ついでに判定関数の引数が&vec[i]から&mut vec[i]に変わってるため残すものも値書き換え可のおまけ付き
ただし残すをtrueか取り出すをtrueかで判定関数の真偽が逆に注意
ついでに判定関数の引数が&vec[i]から&mut vec[i]に変わってるため残すものも値書き換え可のおまけ付き
558デフォルトの名無しさん
2025/05/17(土) 22:46:26.94ID:t/yU0oIF 返されたイテレータを使い切らないと全部削除されないからretainとも微妙に違う
nextで取った分だけ削除だからpeekableとの取り合わせが悪そう
あと関数名はextract_ifじゃなくextractだけでよかった気がする
extractがないのにextract_ifがあるのは何かバランス悪い
drain_filterから紆余曲折あったみたいだから仕方ないけど
nextで取った分だけ削除だからpeekableとの取り合わせが悪そう
あと関数名はextract_ifじゃなくextractだけでよかった気がする
extractがないのにextract_ifがあるのは何かバランス悪い
drain_filterから紆余曲折あったみたいだから仕方ないけど
559デフォルトの名無しさん
2025/05/17(土) 23:12:09.74ID:pKwTZqOi >>558
書いた通り、retain()+捨てる分を取り出し(extract)
だから取り出さないと削除されない
イテレータが進んだ分だけretainと一致する
名前の_ifはすぐに類似のpop_ifが想起される
pop_ifでも条件判定の引数が可変参照で同じだからrangeをlastにしたものと見なすことができる
ifの付かないpopは無条件だから
ifの付かないextractも無条件となる
だからextract_ifというメソッド名が正解で一貫している
書いた通り、retain()+捨てる分を取り出し(extract)
だから取り出さないと削除されない
イテレータが進んだ分だけretainと一致する
名前の_ifはすぐに類似のpop_ifが想起される
pop_ifでも条件判定の引数が可変参照で同じだからrangeをlastにしたものと見なすことができる
ifの付かないpopは無条件だから
ifの付かないextractも無条件となる
だからextract_ifというメソッド名が正解で一貫している
560デフォルトの名無しさん
2025/05/18(日) 00:31:27.80ID:+SIFIDid すでにドレンフィルタって名称の一般的なものがあるけど…
排水管などのフィルター
排水管などのフィルター
561デフォルトの名無しさん
2025/05/18(日) 00:55:22.32ID:+SIFIDid coffee extractionはコーヒー豆の方を取り除いているのか液体(エキス?)を抽出しているのか
562デフォルトの名無しさん
2025/05/18(日) 01:05:08.64ID:GL3oFIgT extract は語源的には ex (外へ) - tract (引っ張る) だから、「取り出す・抽出する」といった意味合いが強い
563デフォルトの名無しさん
2025/05/18(日) 01:06:15.76ID:+SIFIDid コーヒー豆とコーヒーが混ざった物からコーヒーを抽出するよね
それをコーヒーを捨てているとは言わない
残ってる方は最後まで濾さないとコーヒー豆とコーヒーが混ざった物でしかないので無価値
一方で抽出したほうはコーヒーなので価値がある
この意味が判るかどうか?
それをコーヒーを捨てているとは言わない
残ってる方は最後まで濾さないとコーヒー豆とコーヒーが混ざった物でしかないので無価値
一方で抽出したほうはコーヒーなので価値がある
この意味が判るかどうか?
564デフォルトの名無しさん
2025/05/18(日) 07:46:36.17ID:AGGexLjT 企業献金、結論先送りへ 自公国法案、提出取りやめ [蚤の市★]
2025/05/17(土) 21:17:14.36
https://asahi.5ch.net/test/read.cgi/newsplus/1747484234/
全国1万1155の企業・団体の政治献金「97%」が自民へ、シンクタンク調査 [おっさん友の会★]
2025/05/14(水) 11:12:39.51
https://asahi.5ch.net/test/read.cgi/newsplus/1747188759/
2025/05/17(土) 21:17:14.36
https://asahi.5ch.net/test/read.cgi/newsplus/1747484234/
全国1万1155の企業・団体の政治献金「97%」が自民へ、シンクタンク調査 [おっさん友の会★]
2025/05/14(水) 11:12:39.51
https://asahi.5ch.net/test/read.cgi/newsplus/1747188759/
565デフォルトの名無しさん
2025/05/18(日) 09:41:45.81ID:6WAEpSNG Vecに含まれる構造体を参照しながら、別の構造体に変更を加える処理ってどれがベストでしょうか
566デフォルトの名無しさん
2025/05/18(日) 10:17:55.24ID:rfn3+MVd これは任意の方苦に向けて電波攻撃可能ということでしょうか?
プログラムの改造で下記が可能になるのでしょうか
「Xperia」が電波法違反、ソニーに行政指導--総務省
2024年12月13日 15時23分
https://japan.cnet.com/article/35227306/
>>スマートフォンにおいて「工事設計認証を受けた工事設計にない空中線を使用しての電波発射が可能な仕様となっている状態にあった事実が認められた」という。
プログラムの改造で下記が可能になるのでしょうか
「Xperia」が電波法違反、ソニーに行政指導--総務省
2024年12月13日 15時23分
https://japan.cnet.com/article/35227306/
>>スマートフォンにおいて「工事設計認証を受けた工事設計にない空中線を使用しての電波発射が可能な仕様となっている状態にあった事実が認められた」という。
567デフォルトの名無しさん
2025/05/18(日) 11:19:10.16ID:HgIqS8Uk >>565
色々方法があってどれがベストかは状況による
a. 変更内容を作成する処理と変更を適用する処理を分離する
b. split_mut系で更新部分と参照部分のスライスに分割する
c. takeとかreplaceで変更対象の構造体を一旦Vecから取り外す
d. Vec内の構造体を全部RefCellに入れる
可能ならaがベストかな
色々方法があってどれがベストかは状況による
a. 変更内容を作成する処理と変更を適用する処理を分離する
b. split_mut系で更新部分と参照部分のスライスに分割する
c. takeとかreplaceで変更対象の構造体を一旦Vecから取り外す
d. Vec内の構造体を全部RefCellに入れる
可能ならaがベストかな
568デフォルトの名無しさん
2025/05/18(日) 11:30:08.35ID:vhS9Z2b5 よくそんな意味不明な質問に答えられるなと思う
自分がアホなのか、予定された質問に予定された答えなのかわからない
本当にわからない
自分がアホなのか、予定された質問に予定された答えなのかわからない
本当にわからない
569デフォルトの名無しさん
2025/05/18(日) 11:41:01.25ID:6WAEpSNG >>567
かなり曖昧な質問に答えてくれてありがとう。
他の言語だとリストから参照で構造体を取り出して、他の構造体を変更したり色々できたけどRustだとかなり制限がキツくて躓いた。ChatGPTにも聞いたりだけどイマイチ納得できなくて、実際使ってる皆さんに聞きたくなったんだよね。
かなり曖昧な質問に答えてくれてありがとう。
他の言語だとリストから参照で構造体を取り出して、他の構造体を変更したり色々できたけどRustだとかなり制限がキツくて躓いた。ChatGPTにも聞いたりだけどイマイチ納得できなくて、実際使ってる皆さんに聞きたくなったんだよね。
570デフォルトの名無しさん
2025/05/18(日) 11:44:13.33ID:vhS9Z2b5 ChatGPTに聞いたなら質問を清書してくれただろ?
そっちを貼ればいいだろ?
謎すぎる
そっちを貼ればいいだろ?
謎すぎる
571デフォルトの名無しさん
2025/05/18(日) 11:45:25.47ID:wGoLP5Sv 意味不明な質問というのには完全に同意
質問と回答が矛盾してるので
さすがにこれは発達オジの自作自演ではないだろう
質問と回答が矛盾してるので
さすがにこれは発達オジの自作自演ではないだろう
572デフォルトの名無しさん
2025/05/18(日) 11:47:57.87ID:wGoLP5Sv あ・・・
自分の中では矛盾してなかったみたいww
自作自演発達オジの日本語能力の問題だったか
自分の中では矛盾してなかったみたいww
自作自演発達オジの日本語能力の問題だったか
573デフォルトの名無しさん
2025/05/18(日) 11:48:09.03ID:6WAEpSNG やりたいことは、構造体には関数も実装ししていて、その関数に大元のVecを渡してそれぞれの要素に変更をかけるみたいなやつだけど、ミニマムで質問してみた。一旦教えてもらったcに近い実装でコンパイル通ったけど、モヤモヤしたので聞いてみました。
574デフォルトの名無しさん
2025/05/18(日) 11:48:46.66ID:6WAEpSNG >>570
確かに、、、すまぬ
確かに、、、すまぬ
575デフォルトの名無しさん
2025/05/18(日) 11:52:57.81ID:GL3oFIgT 「別の構造体」というのは「同じVecの別の位置にある要素」という意味?
values[0] を参照しながら values[1] を変更するみたいな
values[0] を参照しながら values[1] を変更するみたいな
576デフォルトの名無しさん
2025/05/18(日) 11:57:42.82ID:zQyjSV37577デフォルトの名無しさん
2025/05/18(日) 11:58:51.15ID:vhS9Z2b5 書き方が回りくどいね わかりやすく
578デフォルトの名無しさん
2025/05/18(日) 12:05:59.38ID:6WAEpSNG >>575
そうです、言葉足らずでした。。。
そうです、言葉足らずでした。。。
579デフォルトの名無しさん
2025/05/18(日) 12:21:21.33ID:GL3oFIgT >>578
それはRustだと面倒なパターンなので仕方ない
{} でブロックを作って借用のスコープを短くする等でなんとかする
ここはボローチェッカーの気持ちの理解が必要
(なぜダメなのかはエラーメッセージが教えてくれてるから、そこは既に分かってるかもしれないけど)
同じことは構造体の別のフィールドを参照する場合も言える
構造体のフィールドaを可変借用しつつ別のフィールドbを参照するなど
それはRustだと面倒なパターンなので仕方ない
{} でブロックを作って借用のスコープを短くする等でなんとかする
ここはボローチェッカーの気持ちの理解が必要
(なぜダメなのかはエラーメッセージが教えてくれてるから、そこは既に分かってるかもしれないけど)
同じことは構造体の別のフィールドを参照する場合も言える
構造体のフィールドaを可変借用しつつ別のフィールドbを参照するなど
580デフォルトの名無しさん
2025/05/18(日) 12:26:55.54ID:vhS9Z2b5 う~ん
何が言いたいかわからる人にはわかるだろ?
何が言いたいかわからる人にはわかるだろ?
581デフォルトの名無しさん
2025/05/18(日) 12:29:43.83ID:NJShdjf5 何がやりたいのか全然わからん。
コードで示してよ。
コンパイル通らなくてもいいから Rust 風擬似コードって感じで。
コードで示してよ。
コンパイル通らなくてもいいから Rust 風擬似コードって感じで。
582デフォルトの名無しさん
2025/05/18(日) 12:54:12.76ID:uzz3fg67 複おじちゃんは今日もやらかしてるね
特有の癖が出てるのに自分ではバレてないと思ってるから面白い
特有の癖が出てるのに自分ではバレてないと思ってるから面白い
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★2 [ニョキニョキ★]
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に [ぐれ★]
- 米中電話会談、トランプ氏は「米国側は中国にとっての台湾問題の重要性を理解する」 [1ゲットロボ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- 【国際】トランプ氏、来年4月に中国を訪問する招待を受け入れる 習氏も国賓で訪米へ 電話会談 [ぐれ★]
- 【画像】なんか模型屋さんにいかにもお前らが好んでそうなアキバ系のアニメ?のキャラいたけどこれなに?
- VIPでアズールレーン
- 【高市悲報】来年、習近平主席がアメリカに「国賓」として訪米。どうするんだよ高市・・・アメリカも敵に回すのか? [483862913]
- フィフィ「外国人だろうが日本人だろうが反日は要らんのよ、この国に…自分にとって住みやすい国に行け。」 [856698234]
- 【悲報】有名配信者さん、公式大会で小学生の前で奇行して炎上して逆ギレwwwwwwwwwwwwwwwwww [856698234]
- 猟友会ハンター「警察や自衛隊の力を借りてのクマ駆除は大歓迎。肉の加工など 駆除の後についてもしっかりと話を進めてほしい」 [932029429]
