[過去ログ]
Rust part30 (1002レス)
Rust part30 http://mevius.5ch.net/test/read.cgi/tech/1748392296/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん [] 2025/05/28(水) 09:31:36.60 ID:ciITeZ5D 公式 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 part29 https://mevius.5ch.net/test/read.cgi/tech/1746200850/ ワッチョイスレ プログラミング言語 Rust 4【ワッチョイ】 https://mevius.5ch.net/test/read.cgi/tech/1514107621/ http://mevius.5ch.net/test/read.cgi/tech/1748392296/1
876: デフォルトの名無しさん [sage] 2025/06/18(水) 11:50:22.96 ID:7xP0Uzu5 >>874 落ちてはいけないシステムをUB地雷だらけのC++で書くことが愚か http://mevius.5ch.net/test/read.cgi/tech/1748392296/876
877: デフォルトの名無しさん [sage] 2025/06/18(水) 11:52:41.70 ID:qy96omZz >>875 Rustのスレでシステム全体って何やねん 説明してみ http://mevius.5ch.net/test/read.cgi/tech/1748392296/877
878: デフォルトの名無しさん [sage] 2025/06/18(水) 12:16:05.81 ID:iDJPvmxA 「意図したpanic」禁止したら良い その「意図」が正しいのかコンパイラが静的分析出来ないから http://mevius.5ch.net/test/read.cgi/tech/1748392296/878
879: デフォルトの名無しさん [sage] 2025/06/18(水) 12:29:52.79 ID:rx2CZFrG >>878 panicはプログラムやスレッドが続行不可能な時に正しく終了させるためにあります 禁止は困ります http://mevius.5ch.net/test/read.cgi/tech/1748392296/879
880: デフォルトの名無しさん [sage] 2025/06/18(水) 13:09:11.05 ID:uPLWgFQC mseditorがpanicしたら編集中のデータが飛ぶけど、それが「正しく終了」か? http://mevius.5ch.net/test/read.cgi/tech/1748392296/880
881: デフォルトの名無しさん [sage] 2025/06/18(水) 14:28:18.37 ID:AeXwuQQu ヌルポやバッファオーバーランに比べれば比較的マシ http://mevius.5ch.net/test/read.cgi/tech/1748392296/881
882: デフォルトの名無しさん [sage] 2025/06/18(水) 15:01:02.42 ID:90mEbGf5 意図的ヌルポでセグフォと 意図的unwrap panicでabortは同じ http://mevius.5ch.net/test/read.cgi/tech/1748392296/882
883: デフォルトの名無しさん [sage] 2025/06/18(水) 15:13:41.28 ID:5Mu65nKv 会社の怖い先輩が俺のコードはunwrapでいいんだよと言ったら、そうするしかないよね http://mevius.5ch.net/test/read.cgi/tech/1748392296/883
884: デフォルトの名無しさん [sage] 2025/06/18(水) 15:24:13.90 ID:45cvT+VF まさかとは思うがnullチェックしてれば防げた障害だと思ってるやつがいるのか? http://mevius.5ch.net/test/read.cgi/tech/1748392296/884
885: デフォルトの名無しさん [sage] 2025/06/18(水) 15:37:47.95 ID:s5c+Ng5v ぬるぽでクラッシュしたと聞いたけどnullチェックで防げないぬるぽってあるんすか http://mevius.5ch.net/test/read.cgi/tech/1748392296/885
886: デフォルトの名無しさん [sage] 2025/06/18(水) 15:49:01.71 ID:FHNv6txf 今どきC++で新たなコードを書くから悲惨な事故が起きた http://mevius.5ch.net/test/read.cgi/tech/1748392296/886
887: デフォルトの名無しさん [sage] 2025/06/18(水) 16:01:28.34 ID:hZyAyOg0 >>884 Rustなら防げたと言ってるあのおじさんを除けばそこまてのバカはいないかと http://mevius.5ch.net/test/read.cgi/tech/1748392296/887
888: デフォルトの名無しさん [sage] 2025/06/18(水) 16:01:44.34 ID:s5c+Ng5v 設定がおかしい場合の例外処理フローはあったけどそこに入る前にぬるぽで爆死した認識 http://mevius.5ch.net/test/read.cgi/tech/1748392296/888
889: デフォルトの名無しさん [sage] 2025/06/18(水) 16:35:49.37 ID:YaS/uO3Z RustならコンパイラがAIよりも厳密なチェックをしてるから防げるだろ http://mevius.5ch.net/test/read.cgi/tech/1748392296/889
890: デフォルトの名無しさん [sage] 2025/06/18(水) 17:03:37.08 ID:d8qsI0SX Rustは言語仕様が優れているけど 言語仕様が腐っていればAIでも防げない http://mevius.5ch.net/test/read.cgi/tech/1748392296/890
891: デフォルトの名無しさん [] 2025/06/18(水) 17:43:59.13 ID:mspDq+p2 世界最長のコンテキストウィンドウ100万トークン入力・8万トークン出力対応にもかかわらずたった7800万円でトレーニングされたAIモデル「MiniMax-M1」がオープンソースで公開され誰でもダウンロード可能に 2025年06月18日 11時43分 https://gigazine.net/news/20250618-minimax-m1-open-source/ >>MiniMax-M1は、合計4560億のパラメーターが含まれており、トークンごとに459億のパラメーターがアクティブになるとのこと。これはDeepSeek R1の8倍に相当するコンテキストウィンドウです >>以下のグラフは競技レベルの数学、コーディング、ソフトウェアエンジニアリング、エージェントツールの使用、長文理解タスクにおけるパフォーマンスを主要な商用AIモデルと比較したもの。赤色がMiniMax-M1で、どのタスクにおいても競合AIモデルに匹敵するパフォーマンスを発揮できている >>MiiniMax-M1はいくつかのベンチマーク、特に長いコンテキスト駆動のベンチマークでClaude Opus 4のパフォーマンスを上回りました」と報告 ※AIを動作させている動画あり ↓上記のAIお下記をプレイさせれば性能が判明する Gemini 2.5 Proは手持ちのポケモンが瀕死になるとパニックに陥る 2025年06月18日 12時30分 https://gigazine.net/news/20250618-pokemon-gemini-panic/ ◇ [プロテクトガードやセキュリティーホール発見可能] ※1 プログラムのバグ技[裏抜け道]を使用できる=チートコードを発見可能 ・ マリオカートのショートカットはプレイヤー「極悪人」の表の抜け道でNPC「一般人」は使用不可能 [インサイダー/談合/なねーロンダリング/霊感商法など行う時の悪行で音波や電波をしての悪行の方法を発見可能 ※ 政治家の法律上の抜け道を仕込める=ある業種だけの法律の抜け道を発見可能 [一般大衆の思考である特定の極悪人から目線を特定の統合失調症へ返させる装置] ※ AIは正確な情報で人間を信用させれる=AIは嘘の情報を一部混ぜて人間を洗脳できる http://mevius.5ch.net/test/read.cgi/tech/1748392296/891
892: デフォルトの名無しさん [sage] 2025/06/18(水) 18:45:36.06 ID:JUQ8VjRJ まさかとは思ってたがnullチェックで防げたと勘違いしてるやつ結構いるんだな http://mevius.5ch.net/test/read.cgi/tech/1748392296/892
893: デフォルトの名無しさん [sage] 2025/06/18(水) 19:12:39.40 ID:M/E4rLLd >読み込みデータに空白フィールドがあり、これがヌルポインタとなって参照した時点でクラッシュを引き起こした。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/893
894: デフォルトの名無しさん [sage] 2025/06/18(水) 20:36:14.97 ID:QsB71xf7 OptionやResultの型をきっかけとして問題に気付けた可能性はあるんじゃない? あくまで間接的な可能性でしかなく、この件をもってRustだったら起きなかったとかいうのはアホ丸出しだけども http://mevius.5ch.net/test/read.cgi/tech/1748392296/894
895: デフォルトの名無しさん [sage] 2025/06/18(水) 20:49:33.05 ID:JDJPNF+q Rustなら上位へそのエラー返して その入力データに対するAPIでエラー返すだけだろ http://mevius.5ch.net/test/read.cgi/tech/1748392296/895
896: デフォルトの名無しさん [sage] 2025/06/18(水) 22:27:10.05 ID:/Y6EEbbi >>894 いいかげんにしろよ Rustでどうやって問題が起きるんだよ http://mevius.5ch.net/test/read.cgi/tech/1748392296/896
897: デフォルトの名無しさん [sage] 2025/06/18(水) 22:47:29.81 ID:BBnSRnVn この件については、クラッシュを回避しエラーレスポンスを返したところで結局障害になることには違いがないからだな http://mevius.5ch.net/test/read.cgi/tech/1748392296/897
898: デフォルトの名無しさん [sage] 2025/06/18(水) 22:51:57.91 ID:ikP0pQuf >>894 間接的な可能性もないでしょ http://mevius.5ch.net/test/read.cgi/tech/1748392296/898
899: デフォルトの名無しさん [sage] 2025/06/18(水) 23:03:07.16 ID:0KvtUriT >>897 Googleのレポート見ろよ エラーを返せていれば障害にならなかった http://mevius.5ch.net/test/read.cgi/tech/1748392296/899
900: デフォルトの名無しさん [sage] 2025/06/18(水) 23:18:21.28 ID:dYsLBH+C >>899 そんなことどこにも書いてないぞ エラーを返していればなんで障害にならないんだ? 回復不能なエラーだぞ http://mevius.5ch.net/test/read.cgi/tech/1748392296/900
901: デフォルトの名無しさん [sage] 2025/06/18(水) 23:25:54.18 ID:7PLt8980 Rustなら回避できたケースだけど 無理!と言う人は具体的に無理なシナリオを示してみたら? http://mevius.5ch.net/test/read.cgi/tech/1748392296/901
902: デフォルトの名無しさん [sage] 2025/06/18(水) 23:41:41.61 ID:sPCFWro/ ワロ 理解できないから教えてくれと言えばいいものを http://mevius.5ch.net/test/read.cgi/tech/1748392296/902
903: デフォルトの名無しさん [sage] 2025/06/18(水) 23:53:20.04 ID:jD4yZQcZ 公式読めよ Rustにしてればポリシー変更データをエラーにして受け付けず落ちることもなく被害なし http://mevius.5ch.net/test/read.cgi/tech/1748392296/903
904: デフォルトの名無しさん [sage] 2025/06/19(木) 00:10:11.24 ID:oQzIUk1I 設定のミスで1台のATMが使えなくなるか全部のATMが使えなくなるかみたいな話でしょ どっちも障害だから同じだって考え方もあれば 障害を1台に抑えることに価値があるって考え方もある Rustでも防げないって人は前者だしRustなら防げたって人は後者 どっちの考え方もそれなりに正しい http://mevius.5ch.net/test/read.cgi/tech/1748392296/904
905: デフォルトの名無しさん [sage] 2025/06/19(木) 00:25:10.66 ID:KZlMfI+O >>897 exponential backoffが実装されてなかったから リクエスト単位のエラー返しにしてた場合は 復旧にもっと時間がかかってたと思われる かといってC++でヌルポはだめだけどな http://mevius.5ch.net/test/read.cgi/tech/1748392296/905
906: デフォルトの名無しさん [sage] 2025/06/19(木) 00:48:27.34 ID:ftBjTcDx >>905 新たなポリシー変更要求がエラーで受け付けられなくて落ちることもないから障害が起きていない http://mevius.5ch.net/test/read.cgi/tech/1748392296/906
907: デフォルトの名無しさん [sage] 2025/06/19(木) 01:27:03.00 ID:l2wwX0Hv >>906 どこにそんなこと書いてる? 新しいポリシーがSpannerに書かれてレプリケートされた後の話だろこれ http://mevius.5ch.net/test/read.cgi/tech/1748392296/907
908: 907 [sage] 2025/06/19(木) 01:37:22.30 ID:l2wwX0Hv ああ、もしかしてポリシーのチェックというのをポリシー自体のバリデーションと勘違いしてるのかな 正しくはポリシーに基づいてAPIリクエストをチェックする処理のことなんで、新しいポリシーが反映された結果としての障害だよ http://mevius.5ch.net/test/read.cgi/tech/1748392296/908
909: デフォルトの名無しさん [sage] 2025/06/19(木) 01:38:01.02 ID:QXnAvsJc >>904,906 君は何を言ってるんだい? Googleのレポート見ろよ&&公式読めよブーメランが刺さってるぞ http://mevius.5ch.net/test/read.cgi/tech/1748392296/909
910: デフォルトの名無しさん [sage] 2025/06/19(木) 02:14:01.17 ID:Pd2QOZgo >>908 新しいポリシーを反映させないか 反映させても空白のみエラーで飛ばせば障害は起きていない http://mevius.5ch.net/test/read.cgi/tech/1748392296/910
911: デフォルトの名無しさん [sage] 2025/06/19(木) 04:21:35.41 ID:yro0K3vV Rustにしとけってことか、速い話が http://mevius.5ch.net/test/read.cgi/tech/1748392296/911
912: デフォルトの名無しさん [sage] 2025/06/19(木) 05:04:25.47 ID:ct5m24p0 落ちるプログラムを各リージョンにバラ撒かなければ何製でも防げてる もちろんRustなら確実に防げた http://mevius.5ch.net/test/read.cgi/tech/1748392296/912
913: デフォルトの名無しさん [sage] 2025/06/19(木) 06:59:17.36 ID:tFafecL1 とにかくRustにすれば安心安全 これはもう常識 http://mevius.5ch.net/test/read.cgi/tech/1748392296/913
914: デフォルトの名無しさん [sage] 2025/06/19(木) 11:59:43.17 ID:cYRDzc4D ちゃんとした人が、Rustを使った場合に限る。 セキュリティもそうだけど、人が関わると碌なことがない。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/914
915: デフォルトの名無しさん [sage] 2025/06/19(木) 12:27:53.31 ID:/pQfT2SX Rustは安全に配慮したコンセプトはいいけど、それを徹底できていない。 せめてSafe Rust強制モードとpanic禁止モードは用意しておくべきだった。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/915
916: デフォルトの名無しさん [sage] 2025/06/19(木) 21:29:19.19 ID:67nyX+fT CPUとメモリは自由なunsafeが本質なので下位のライブラリは標準もデファクトもunsafeで作られている http://mevius.5ch.net/test/read.cgi/tech/1748392296/916
917: デフォルトの名無しさん [sage] 2025/06/19(木) 21:38:06.06 ID:67nyX+fT panicは意図せず混入防止も兼ねてこんな運用が多いかな [lints.clippy] missing_panics_doc = "warn" http://mevius.5ch.net/test/read.cgi/tech/1748392296/917
918: デフォルトの名無しさん [sage] 2025/06/19(木) 21:49:11.90 ID:nNn4PbNI 標準ライブラリが内部では unsafe だらけというのは確かにそう。 外側に対しては安全になるように配慮してるけど、バグが絶対にゼロかというとそんなことはないし、実際に発見されたこともある。 まあ unsafe に限らず処理系や標準ライブラリにバグがあることを疑ってたらきりがないからそこらは割り切らないと仕方なくない? http://mevius.5ch.net/test/read.cgi/tech/1748392296/918
919: デフォルトの名無しさん [sage] 2025/06/19(木) 21:56:40.37 ID:6vmjzLKI みんな律儀にResultは全てちゃんとハンドリングしてるの? Mutex.lock() なんかは気にせず unwrap してるんだけど http://mevius.5ch.net/test/read.cgi/tech/1748392296/919
920: デフォルトの名無しさん [sage] 2025/06/19(木) 22:11:01.42 ID:nNn4PbNI >>919 ロックが失敗するのはスレッドがパニックしたとき。 つまりハンドリングするならそのスレッド内のエラーであるべきで、 Mutex.lock の失敗に対してハンドリングしても出来ることがない。 そこは普通は unwrap してよいところだと思う。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/920
921: デフォルトの名無しさん [sage] 2025/06/19(木) 23:34:30.87 ID:67nyX+fT そのmutex毒入り状態からの復帰処理をしたい場合はunwrapせずにErr時に処理とclear_poison()する http://mevius.5ch.net/test/read.cgi/tech/1748392296/921
922: デフォルトの名無しさん [sage] 2025/06/20(金) 00:31:53.70 ID:xog7LFS0 これおもしろー https://blog.guillaume-gomez.fr/articles/2025-06-19+Rust%3A+Optimizing+integer+to+string+conversions ポインターアクセスより配列の方が速いんやー http://mevius.5ch.net/test/read.cgi/tech/1748392296/922
923: デフォルトの名無しさん [] 2025/06/20(金) 01:02:39.89 ID:SpbybkFq unwrapではなくexpectを使う。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/923
924: デフォルトの名無しさん [sage] 2025/06/20(金) 01:08:46.49 ID:xog7LFS0 >>923 いや、Optionにはunwrap使ってええんやで コードに合わせて柔軟に対応すりゃバグは防げるよ ビジネスロジックのバグは入念なテストしないと見つけられないけどね ビジネスロジックのバグでシステム障害になることもまあ、あるっちゃあるよねテストしてなきゃ http://mevius.5ch.net/test/read.cgi/tech/1748392296/924
925: デフォルトの名無しさん [sage] 2025/06/20(金) 01:13:11.37 ID:/9Nz/yYP >>922 昔読んだが00~99のテーブルをコピーするところだな 配列境界検査は起きないコードだから速度は同じ http://mevius.5ch.net/test/read.cgi/tech/1748392296/925
926: デフォルトの名無しさん [sage] 2025/06/20(金) 01:18:17.09 ID:/9Nz/yYP >>924 panic許容シーンでない場合 絶対Some保証できない場ではunwrapもexpectも使わないよな http://mevius.5ch.net/test/read.cgi/tech/1748392296/926
927: デフォルトの名無しさん [sage] 2025/06/20(金) 07:50:16.10 ID:d5bZ3vB1 expectに書く文がいまいち分からんのだよな エンドユーザーがその一文だけ見て何か意味があるとも思えないし デバッグする開発者向けなら結局前後の文脈込みで見るしかないから unwrapにして詳細をコメントに書いたほうがいい気がしている http://mevius.5ch.net/test/read.cgi/tech/1748392296/927
928: デフォルトの名無しさん [sage] 2025/06/20(金) 08:04:54.66 ID:Op1qS17W >>927 ユーザに文章を示してpanicさせたいの? 文章をprintかeprintしてからpanic!呼んだら? http://mevius.5ch.net/test/read.cgi/tech/1748392296/928
929: デフォルトの名無しさん [sage] 2025/06/20(金) 08:15:40.44 ID:d5bZ3vB1 >>928 いや、そうじゃなくて「unwrapの代わりにexpectを使ってunwrapしても大丈夫な理由を明記すべき」みたいな言説があるじゃん? そのときにexpectに書くべき文がわからんって話 ユーザ向けにエラーとして表示したいならそりゃ普通にResult使うし、 どうしてもパニックしたいならprintlnすればいいのはその通りだけど http://mevius.5ch.net/test/read.cgi/tech/1748392296/929
930: デフォルトの名無しさん [sage] 2025/06/20(金) 08:22:37.63 ID:xog7LFS0 基本フロントエンド側とAPIのエラーコード、エラーメッセ仕様は最初に決めておくから、あとは「どの関数レイヤーで」そのIFに合わせこむかだけじゃない? ここのスレ多分Rustを業務用で使ってる人ばっかだから仕様の取り決めとから雇用主から降ってくるもんだと思うけど。返すエラー定義決まってなきゃそもそもテストコード先に書けないし、納品物にもテスト結果入れれなくて困るしな http://mevius.5ch.net/test/read.cgi/tech/1748392296/930
931: デフォルトの名無しさん [sage] 2025/06/20(金) 08:25:55.42 ID:xog7LFS0 個人的にはtracing::debug!で自分用のデバッグ出力はON/OFFしてるけど、エラーコードやエラーメッセージは案件別に全然仕様が違うwwwやめてwwwから、仕方なくErrで一旦上げてresponse.bodyに詰め込む直前で相手さんの期待する結果になるようにparseしてることが多い フロントエンド側で翻訳ぐらいせえやーって思うけど、たまにバックエンドで各言語に合わせて翻訳やってくれー案件もあったりするしバラバラで何考えてんのかはよー分からん http://mevius.5ch.net/test/read.cgi/tech/1748392296/931
932: デフォルトの名無しさん [sage] 2025/06/20(金) 09:04:21.71 ID:ymNSNGAk >>929 https://doc.rust-lang.org/std/error/index.html#common-message-styles に尽きると思うが、何がわからんのかわからん 原則としては例外ケースが生じない確信があろうとエラーコンテキストは引き継がれるべきで、 panicさせるのは当該ケースの対処のしようがないことがその場で明らかなケースのみ そして君のコード内でコントロールのしようがない事象である以上は基本的にそれは外部要因によるものだろうから、その要因を記載すればいい http://mevius.5ch.net/test/read.cgi/tech/1748392296/932
933: デフォルトの名無しさん [sage] 2025/06/20(金) 09:47:50.29 ID:Dy/CHU8X >>932 外部要因ならコード作者は制御できないんだからResultで表現すべきではない? unwrapするケースって「このコードパスではxは(自分が書いたロジックが間違ってなければ)確実にSomeだから安全にunwrapできるはず」みたいなのだと思うんだけど、 その文をexpectに書いたとして誰が読むんだ?って疑問 http://mevius.5ch.net/test/read.cgi/tech/1748392296/933
934: デフォルトの名無しさん [sage] 2025/06/20(金) 10:32:17.84 ID:p4ugM+VW panic時のメッセージは未来の自分を含めて他の開発者向け ここの2つを読んでおくといいと思う https://burntsushi.net/unwrap/#why-not-use-expect-instead-of-unwrap https://www.thecodedmessage.com/posts/2022-07-14-programming-unwrap/ http://mevius.5ch.net/test/read.cgi/tech/1748392296/934
935: デフォルトの名無しさん [sage] 2025/06/20(金) 11:10:25.36 ID:Dy/CHU8X 開発者向けにコードの意図を説明するのって普通はコメントだと思うんだよね 例えばunsafeを使っても安全な理由とかもコメントで書くし なのにunwrapに限ってわざわざ文字列リテラルで書く理由が分からない(複数行や長文も書きづらいし) コメントとの違いは実行時に表示できることではあるけど 実行時にその一文を出せて嬉しいか? 開発者なら結局周辺含めてコード読むんじゃない? http://mevius.5ch.net/test/read.cgi/tech/1748392296/935
936: デフォルトの名無しさん [sage] 2025/06/20(金) 11:19:56.95 ID:FlGaOpZd 書いてて思ったけど「このメッセージが表示されたらライブラリのバグなんでこのGithubまで報告してね」 みたいなメッセージなら意味あるかな、という気がした エンドユーザーが見てちゃんと理解できるから実行時に出す意味もあるし、 ライブラリの内部エラーだからアプリケーション側には責任がないことも表明できるし http://mevius.5ch.net/test/read.cgi/tech/1748392296/936
937: デフォルトの名無しさん [sage] 2025/06/20(金) 11:25:39.91 ID:xog7LFS0 >>936 これいいな。OSSならそんな感じだしエンタープライズなら開発担当部門書いとこ http://mevius.5ch.net/test/read.cgi/tech/1748392296/937
938: デフォルトの名無しさん [sage] 2025/06/20(金) 12:33:04.85 ID:3ZKjcbd7 バグなんて他にもいくらでもあるんだから、それこそunwrapに限ってそんな懇切丁寧なケアをする理由がない やらかした犯人なんてgit blameですぐわかる http://mevius.5ch.net/test/read.cgi/tech/1748392296/938
939: デフォルトの名無しさん [sage] 2025/06/20(金) 13:09:09.82 ID:LFsGGVpd expectは使用者とか使用状況に対する期待だと思ってた メッセージはコメントのPanicsに対応させる感じ /// ... /// /// # Panics /// - Panics if the given size is 0. /// pub fn make_buffer(size: usize) -> Buffer { let nz_size = NonZeroUsize::new(size).expect("size must be non-zero"); // ... } http://mevius.5ch.net/test/read.cgi/tech/1748392296/939
940: デフォルトの名無しさん [sage] 2025/06/20(金) 15:04:20.99 ID:3ZuChe0s >>939 基本的にはその考え方で正しい。 でも標準ライブラリや処理系すらそうしてないし、現実は理想通りではない。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/940
941: デフォルトの名無しさん [] 2025/06/20(金) 16:00:22.03 ID:r2H2v8it Haskellにはならなかったな Rustにもならないのでは? http://mevius.5ch.net/test/read.cgi/tech/1748392296/941
942: デフォルトの名無しさん [sage] 2025/06/20(金) 16:21:36.04 ID:+wQsfMK/ >>941 Rustは本来的にはコーディングの誤りに対して939のようにわりと問答無用でpanicする指向だと思うけど、 関数型というかHaskellかぶれのオモチャにされてるせいで実行時panicダサいみたいな空気が醸成されてきている一方で、 なんでも型のコンテキストで上手に扱えるほど型に表現力があるわけでもないから中途半端な感じになってるね http://mevius.5ch.net/test/read.cgi/tech/1748392296/942
943: デフォルトの名無しさん [sage] 2025/06/20(金) 16:41:57.96 ID:3ZuChe0s システムプログラミング言語としての性質があるから仕方がない面はある。 ハードウェアやら OS やらが Rust の性質に従ってくれるとは限らないので言語の側で合わせないと仕方がない。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/943
944: デフォルトの名無しさん [sage] 2025/06/20(金) 16:53:23.26 ID:IXOAfd5T Rustバランスいいよな 抽象度の高い記述ができつつC言語の代替もできる http://mevius.5ch.net/test/read.cgi/tech/1748392296/944
945: デフォルトの名無しさん [sage] 2025/06/20(金) 17:25:54.91 ID:LFsGGVpd Haskellもボトム型あるから変わらんだろ どの型の値も計算できない可能性を内包してる http://mevius.5ch.net/test/read.cgi/tech/1748392296/945
946: デフォルトの名無しさん [sage] 2025/06/20(金) 18:40:08.56 ID:0ePzwW3B >>936 そういうのはまとめてpanic handlerに書いたほうがいいんじゃないかな 最近はあまり使われてないかもしれないけどhuman-panicとかがそれ用 あとstdのリファレンスにもexpectに書くメッセージのスタイルについて解説があった https://doc.rust-lang.org/std/error/index.html#common-message-styles http://mevius.5ch.net/test/read.cgi/tech/1748392296/946
947: デフォルトの名無しさん [sage] 2025/06/21(土) 18:45:15.07 ID:usD2bL3Y >pub fn make_buffer(size: usize) -> Buffer { >let nz_size = NonZeroUsize::new(size).expect("size must be non-zero"); 事前条件がNonZeroなら pub fn make_buffer(size: NonZeroUsize) -> Buffer にしたほうが堅さという意味ではよくない? http://mevius.5ch.net/test/read.cgi/tech/1748392296/947
948: デフォルトの名無しさん [sage] 2025/06/21(土) 19:54:31.34 ID:aOIRcMzj 外部入力が起源のデータに対しては必ずエラーを返す プログラム自身発ならバグであり続行不可なのでpanicしてもよい http://mevius.5ch.net/test/read.cgi/tech/1748392296/948
949: デフォルトの名無しさん [sage] 2025/06/21(土) 19:55:55.14 ID:CfyG8iYl >>947 NonZeroは非ゼロの保証というよりOptionと一緒に使うためのものだからね NonZeroにしたところで結局呼び出し元でのチェックが0との比較からOptionのチェックに変わるだけのことでしかなく、 コードが冗長かつ余計なoptionが入ることでノイズが増え意図が不明瞭になるし、 unwrapしちゃったらpanic時のエラーもわかりづらい ダメってわけじゃないが呼び出し元のことを考えると独善的な感が否めない http://mevius.5ch.net/test/read.cgi/tech/1748392296/949
950: デフォルトの名無しさん [sage] 2025/06/21(土) 22:49:35.45 ID:qYLKV/K+ >>949 >NonZeroは非ゼロの保証というよりOptionと一緒に使うためのものだからね Optionと一緒に使うためのものというのはよく意味がわからない 例えばOptionに置き換えて考えてみたとしてこういう実装があったらおかしいと思わない? fn make_buffer(size: Option<usize>) -> Buffer { let size = size.expect("size must not be None”) … } 簡単に型で表現できないものならまだわかるんだけど http://mevius.5ch.net/test/read.cgi/tech/1748392296/950
951: デフォルトの名無しさん [sage] 2025/06/21(土) 23:02:46.26 ID:qYLKV/K+ 呼び出し元は外部入力なら let size = NonZeroUsize::new(input_size)?; let buffer = make_buffer(size); 定数なら let buffer = make_buffer(NonZeroUsize::new(1024).unwrap()); validation前とvalidation後で型を変えるプラクティスと同じでこっちのほうが望ましいことのほうが多いんじゃないかという気がする http://mevius.5ch.net/test/read.cgi/tech/1748392296/951
952: デフォルトの名無しさん [sage] 2025/06/21(土) 23:54:32.82 ID:l7fBsL1H 整理されて今はこう書くNonZero::<usize>::new(1024) いずれにせよ外部データ由来時でもpanicさせ得る>>947は筋が悪い http://mevius.5ch.net/test/read.cgi/tech/1748392296/952
953: デフォルトの名無しさん [sage] 2025/06/22(日) 00:46:32.15 ID:DjMaTCto slice::windowsとかstdでも似たような実装はそれなりにある pub fn windows(&self, size: usize) -> Windows<'_, T> { let size = NonZero::new(size).expect("window size must be non-zero"); Windows::new(self, size) } windowサイズはバグ以外では0を指定しないだろうという想定だと思うがcalleeとcallerのコードを書く人間が異なっていて認識の齟齬があったりすればバグになるからエルゴノミクスとバグリスクのトレードオフってことになる http://mevius.5ch.net/test/read.cgi/tech/1748392296/953
954: デフォルトの名無しさん [sage] 2025/06/22(日) 01:30:55.82 ID:MKJ6VV9n docコメントの /// /// # Panics /// /// Panics if `size` is zero. /// とセットで見ないといけない http://mevius.5ch.net/test/read.cgi/tech/1748392296/954
955: デフォルトの名無しさん [sage] 2025/06/22(日) 09:45:37.71 ID:fHVyA0qw RAIIが破綻するレベルのパニック、という意味の専門用語があればいいんだよね http://mevius.5ch.net/test/read.cgi/tech/1748392296/955
956: デフォルトの名無しさん [] 2025/06/22(日) 12:30:29.11 ID:4aXQSYOG ・人間の思考「脳波」は頭蓋骨の外に漏れない 人間の脳は発光していた!「脳が放つ光」の観測に初成功 2025.06.19 12:00:38 THURSDAY https://nazology.kusuguru.co.jp/archives/179808 >>カナダ・アルゴマ大学(Algoma University)の最新研究で、ついにこの「脳の光」を頭蓋骨の外から観測することに成功したのです。 >>UPEは細胞の代謝活動、特に酸化反応によって発生する副産物の一種です。 >>以来、UPEはあらゆる植物や動物の細胞からも確認されており、生体内の酸化ストレスや老化、さらにはがんの診断補助にも応用が期待されてきました。 >>脳は体の中で最も代謝が活発な臓器のひとつであり、神経活動に伴って活性酸素が多く発生します。 >>チームは今回、20人の健康な成人を対象に、特殊な装置を用いた実験を実施しました。 >>被験者は真っ暗な部屋に座り、頭には脳波計を装着。 >>その周囲には、光電子増倍管(PMT)と呼ばれる極微弱な光を検出する装置が配置されました。 >>そして被験者には、目を開ける/閉じる、あるいは音楽(120BPM)を聴くといったシンプルなタスクを行ってもらい、その間のUPEと脳波の変化を同時に測定したのです。 ☆>>まず、脳からのUPEは背景光(周囲の空気中のノイズ)とは明確に異なる変動パターンを持つことが判明したのです。 >>とくに後頭部(視覚野)と側頭部(聴覚野)から検出された光は、安静時でも一定のリズムと変動性を示し、他の部位とは異なるスペクトル的特徴を持っていました。 >>さらに目を閉じたときに増える「アルファ波」と呼ばれる脳波の活動と、UPEの強さが同期していることも発見されました。 >>これはつまり、脳の電気的な信号(脳波)と、化学的な代謝反応(UPE)が連動していることを意味します。 >>この成果は、従来のfMRIやPETスキャンのような「重装備で高コスト」な装置を使わずとも、非侵襲・低刺激で脳機能の状態を“光”から読み取る可能性を示すものです。 >>研究者たちはこの新しい手法を「光脳波記録(photoencephalography)」と名付けました。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/956
957: デフォルトの名無しさん [sage] 2025/06/22(日) 12:58:47.51 ID:LDKwjazM >>955 パニックのレベルじゃなく処理単位の特性だけどUnwindSafeがある http://mevius.5ch.net/test/read.cgi/tech/1748392296/957
958: デフォルトの名無しさん [sage] 2025/06/22(日) 23:16:05.62 ID:fHVyA0qw 無限ループがあれば、終了しないスレッドや呼ばれないデストラクタもありうる bottomもabortもpanicも、無限ループよりはマシだから禁止されない http://mevius.5ch.net/test/read.cgi/tech/1748392296/958
959: デフォルトの名無しさん [sage] 2025/06/22(日) 23:59:22.53 ID:ohTY4CfY exitよりもpanicが優れている 多くのメリットがある http://mevius.5ch.net/test/read.cgi/tech/1748392296/959
960: デフォルトの名無しさん [sage] 2025/06/23(月) 15:14:34.98 ID:Lo0+xYyX 無職や転職をしたい 上記の方を紹介していただけませんか? 誰でも歓迎❣ 未経験でも40歳まで採用しています⭕ ぜひご相談ください🙏 https://i-c-i.jp/members/ 電話番号 03-6459-0063 http://mevius.5ch.net/test/read.cgi/tech/1748392296/960
961: デフォルトの名無しさん [sage] 2025/06/23(月) 15:14:44.43 ID:Lo0+xYyX 株式会社アイ・シー・アイ 野村総合研究所が設立した、信頼と実績のあるIT企業です。 未経験でも大丈夫!40歳までの方ならどなたでもご応募いただけます。 日本の大手大企業のソフトバンク、キャノングループ、富士産業で働けます! 雇用形態は無期雇用派遣。一つの現場で最低5年間じっくりインフラ運用監視の経験が積めます。 年収は280万円、賞与は年3回と安定した待遇をご用意し、「社員の人生を幸せにするため」の福利厚生も充実しています。 当社はまだまだスタートアップ。数年後には事業規模、 会社規模を倍増させたいと考えています。 その際、あなたには会社の中核メンバーとして、一緒に会社を引っ張っていただきたいのです。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/961
962: デフォルトの名無しさん [] 2025/06/23(月) 18:22:32.34 ID:uX2oVrQ8 人売りの奴隷集め http://mevius.5ch.net/test/read.cgi/tech/1748392296/962
963: デフォルトの名無しさん [] 2025/06/23(月) 21:09:50.86 ID:0odK9WS3 Z世代の皆様にしっかり稼いで頂きたいという思いから、高収入案件をご紹介させていただいております。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/963
964: デフォルトの名無しさん [sage] 2025/06/24(火) 22:23:36.74 ID:KcGBlJeb Rustへ移行のためのドキュメント「C++ to Rust Phrasebook」発表 https://techfeed.io/entries/683ccb678fc2c0556f0d68d0 C++でおなじみのイディオムや設計パターンを、Rust流にどのように書き換えるかを体系的に示したリファレンスである。 各章は具体的なコード例と、それに伴う設計上のトレードオフについての解説で構成される。 「C++ならこう書くがRustでは?」と行き詰まった場面で索引的に参照する使い方も想定されている。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/964
965: デフォルトの名無しさん [sage] 2025/06/25(水) 23:33:16.67 ID:zC2X3VO4 >>964 「C++ to Rust Phrasebook」 https://cel.cs.brown.edu/crp/ http://mevius.5ch.net/test/read.cgi/tech/1748392296/965
966: デフォルトの名無しさん [sage] 2025/06/26(木) 23:30:50.97 ID:IZtnbrew https://facet.rs/ http://mevius.5ch.net/test/read.cgi/tech/1748392296/966
967: デフォルトの名無しさん [sage] 2025/06/27(金) 22:34:08.47 ID:9/4Hvrnc 所有権を返すfoo()で&foo()をそのまま使える時と エラーとなるためlet tmp = foo(); してから&tmpを使わされる時と temporary lifetime extensionルールが関係しているの? http://mevius.5ch.net/test/read.cgi/tech/1748392296/967
968: デフォルトの名無しさん [sage] 2025/06/27(金) 23:03:36.64 ID:1LWAsQhh >>967 おそらくそうだけどコード見ないことには何とも http://mevius.5ch.net/test/read.cgi/tech/1748392296/968
969: デフォルトの名無しさん [sage] 2025/06/28(土) 00:59:51.80 ID:CvmYv9Uy 躁鬱が激しいな http://mevius.5ch.net/test/read.cgi/tech/1748392296/969
970: デフォルトの名無しさん [] 2025/06/28(土) 13:45:14.63 ID:YWzO1cVn つるつるわれめ http://mevius.5ch.net/test/read.cgi/tech/1748392296/970
971: デフォルトの名無しさん [sage] 2025/06/28(土) 21:59:50.08 ID:cIKPEg+8 RPITでもTAITでもないimpl Traitは何と呼ばれているの? http://mevius.5ch.net/test/read.cgi/tech/1748392296/971
972: デフォルトの名無しさん [sage] 2025/06/29(日) 02:06:59.79 ID:9bVKBGV1 Announcing Rust 1.88.0 https://blog.rust-lang.org/2025/06/26/Rust-1.88.0/ http://mevius.5ch.net/test/read.cgi/tech/1748392296/972
973: デフォルトの名無しさん [] 2025/06/29(日) 02:41:16.16 ID:712DhJe3 >>964-965 boost使いまくってたら http://mevius.5ch.net/test/read.cgi/tech/1748392296/973
974: デフォルトの名無しさん [] 2025/06/29(日) 02:43:51.09 ID:712DhJe3 わろす https://uchan.hateblo.jp/entry/2018/08/24/234334 http://mevius.5ch.net/test/read.cgi/tech/1748392296/974
975: デフォルトの名無しさん [sage] 2025/06/29(日) 03:42:04.63 ID:FAAHlPSo まだ中3女子がいた時代か… http://mevius.5ch.net/test/read.cgi/tech/1748392296/975
976: デフォルトの名無しさん [sage] 2025/06/29(日) 23:21:46.38 ID:kcK1wtsO >>972 便利になったなー if let Channel::Stable(v) = release_info() && let Semver { major, minor, .. } = v && major == 1 && minor == 88 { println!("`let_chains` was stabilized in this version"); } http://mevius.5ch.net/test/read.cgi/tech/1748392296/976
977: デフォルトの名無しさん [sage] 2025/06/30(月) 21:42:35.77 ID:Xr9zaQtP if文を分けなくてよくなったんか letした変数を次の条件で使えるのは便利だな http://mevius.5ch.net/test/read.cgi/tech/1748392296/977
978: デフォルトの名無しさん [sage] 2025/06/30(月) 23:28:37.87 ID:Ewx8aV4S let else でもチェーンできるのかな http://mevius.5ch.net/test/read.cgi/tech/1748392296/978
979: デフォルトの名無しさん [sage] 2025/07/01(火) 01:45:34.56 ID:RyiUYuGe let chainとかtryブロックとか時間かかりすぎで将来が心配 http://mevius.5ch.net/test/read.cgi/tech/1748392296/979
980: デフォルトの名無しさん [sage] 2025/07/01(火) 08:40:30.66 ID:WjfKubzq ぶっちゃけクソsyntaxだろw http://mevius.5ch.net/test/read.cgi/tech/1748392296/980
981: デフォルトの名無しさん [sage] 2025/07/01(火) 08:56:09.16 ID:WFD2epuk プログラミングしたことある人ならば >>976のようなケースがよく出てくることがわかる この構文がないと多段ifで可読性が落ちる http://mevius.5ch.net/test/read.cgi/tech/1748392296/981
982: デフォルトの名無しさん [sage] 2025/07/01(火) 13:13:02.59 ID:wS9kOuak むしろなんで最初から用意しようとしなかったのか不思議で仕方がない機能 >>976の例は説明用とはいえ中の人がSemverをChannelで包むのはいただけない http://mevius.5ch.net/test/read.cgi/tech/1748392296/982
983: デフォルトの名無しさん [sage] 2025/07/01(火) 23:18:30.26 ID:fT6MdngX >>976 最近まともな進化がなかったが、久しぶりにいい変更点が来た感じする http://mevius.5ch.net/test/read.cgi/tech/1748392296/983
984: デフォルトの名無しさん [] 2025/07/02(水) 08:10:37.08 ID:h5Fr+SaE ガイジプログラマーだけど質問あるガイジ? ガイジガイジガイジ死んだ方が良いガイジ地頭悪いガイジ 死ぬガイジ虚言だから死なないガイジガチで死んだ方が良いガイジ http://mevius.5ch.net/test/read.cgi/tech/1748392296/984
985: デフォルトの名無しさん [] 2025/07/02(水) 08:12:19.09 ID:h5Fr+SaE 後輩が気を使って僕に席を譲ってくれたガイジ…死んだ方が良いガイジ…死にたいガイジ… http://mevius.5ch.net/test/read.cgi/tech/1748392296/985
986: デフォルトの名無しさん [sage] 2025/07/02(水) 14:18:35.20 ID:jzgTyLq2 >>976 if文の途中でパターンマッチングできてlet等で変数宣言できるようなプログラミング言語は他にありますか? http://mevius.5ch.net/test/read.cgi/tech/1748392296/986
987: デフォルトの名無しさん [] 2025/07/02(水) 15:55:37.03 ID:J+FNqJjG >>984 ガイジガイジよいしょよいしょ http://mevius.5ch.net/test/read.cgi/tech/1748392296/987
988: デフォルトの名無しさん [sage] 2025/07/02(水) 18:49:24.09 ID:NOqRQoPr >>986 いくらでもあるだろw なんでそれをRustスレで聞くんだよ 複…、バカなの? http://mevius.5ch.net/test/read.cgi/tech/1748392296/988
989: デフォルトの名無しさん [sage] 2025/07/02(水) 21:26:49.42 ID:Oh5RPAnK >>986 LISP 系や ML 系だと出来るのが多いと思う http://mevius.5ch.net/test/read.cgi/tech/1748392296/989
990: デフォルトの名無しさん [sage] 2025/07/02(水) 21:52:14.46 ID:oQJmxzOP >>986 今回の>>976のようなif条件内で連鎖できる言語はないが単純なものならある http://mevius.5ch.net/test/read.cgi/tech/1748392296/990
991: デフォルトの名無しさん [sage] 2025/07/02(水) 21:56:06.59 ID:VJuqxJR/ C#でもisで出来るでしょ?もちろん&&でつなげられる http://mevius.5ch.net/test/read.cgi/tech/1748392296/991
992: デフォルトの名無しさん [sage] 2025/07/02(水) 22:41:30.16 ID:z9oJfvdC みなさんおわかりだろうか >>976 ↓ >>986 ↓ >>990 http://mevius.5ch.net/test/read.cgi/tech/1748392296/992
993: デフォルトの名無しさん [sage] 2025/07/02(水) 22:47:53.08 ID:upgcwtw3 C#はようやくリストのパターンマッチングができるようになったところ http://mevius.5ch.net/test/read.cgi/tech/1748392296/993
994: デフォルトの名無しさん [sage] 2025/07/02(水) 23:40:48.12 ID:+kkKLbZ1 >>982 仕様を定めるため慎重に議論されてきた 糖衣構文が定められたが既存のdrop順序と合わないと判明した 今年からのRust 2024 editionで新たに定めることで解決してこのたび導入された http://mevius.5ch.net/test/read.cgi/tech/1748392296/994
995: デフォルトの名無しさん [sage] 2025/07/03(木) 00:15:02.16 ID:Wcs1wXTl >>992 本人以外全員分かってると思う そして… http://mevius.5ch.net/test/read.cgi/tech/1748392296/995
996: デフォルトの名無しさん [] 2025/07/03(木) 11:05:56.13 ID:FLjzPh5e 時は動きだす http://mevius.5ch.net/test/read.cgi/tech/1748392296/996
997: デフォルトの名無しさん [sage] 2025/07/03(木) 11:33:08.05 ID:dZ3pJe+2 シンタックスシュガーだから中途半端なんだよな http://mevius.5ch.net/test/read.cgi/tech/1748392296/997
998: デフォルトの名無しさん [sage] 2025/07/03(木) 16:19:31.79 ID:44NH8ILk パターンマッチングはユニフィケーションにまで発展しないかね。 http://mevius.5ch.net/test/read.cgi/tech/1748392296/998
999: デフォルトの名無しさん [sage] 2025/07/03(木) 19:28:59.84 ID:OMTYLr6T >>986 Perl最強だぞ http://mevius.5ch.net/test/read.cgi/tech/1748392296/999
1000: デフォルトの名無しさん [sage] 2025/07/03(木) 19:58:10.70 ID:080rUSul おわり http://mevius.5ch.net/test/read.cgi/tech/1748392296/1000
1001: 1001 [] ID:Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 36日 10時間 26分 35秒 http://mevius.5ch.net/test/read.cgi/tech/1748392296/1001
1002: 1002 [] ID:Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《UPLIFT会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 4 USD/mon. から匿名でご購入いただけます。 ▼ UPLIFT会員登録はこちら ▼ https://uplift.5ch.net/ ▼ UPLIFTログインはこちら ▼ https://uplift.5ch.net/login http://mevius.5ch.net/test/read.cgi/tech/1748392296/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s