Rust part31 (625レス)
Rust part31 http://mevius.5ch.net/test/read.cgi/tech/1751545806/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
1: デフォルトの名無しさん [] 2025/07/03(木) 21:30:06.95 ID:ORBrZxS2 公式 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 part30 https://mevius.5ch.net/test/read.cgi/tech/1748392296/ ワッチョイスレ プログラミング言語 Rust 4【ワッチョイ】 https://mevius.5ch.net/test/read.cgi/tech/1514107621/ http://mevius.5ch.net/test/read.cgi/tech/1751545806/1
499: デフォルトの名無しさん [sage] 2025/07/27(日) 12:06:50.83 ID:XSMxDaZG 昔の Lisp は対話的に開発 (コンパイル) してメモリ全体のダンプイメージを保存する形でセーブする運用が普通だったので隠蔽を徹底すると二度と修正できない (または全体をやり直し) ということになって効率が悪かったんだよ。 あまり分割しないかわりに妙に長い名前を使う習慣があって、これは Emacs Lisp になごりがある。 開発体制やツール全体との整合性の問題もあるので単純には言えない。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/499
500: デフォルトの名無しさん [sage] 2025/07/27(日) 12:12:43.83 ID:XSMxDaZG >>498 ロボット制御、数理最適化などの分野ではそれなりに使われてるよ。 保険屋の商品開発システムの開発の求人がこないだ出てたよ。 1990年頃までは主流の一角だったのでその時代に比べれば大幅に衰退したのは間違いないけど。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/500
501: デフォルトの名無しさん [] 2025/07/27(日) 12:16:33.46 ID:LBT37M4+ バカなおいらに結局、拡張言語はダイナミックスコープの方が使いやすいのかどうか教えておくれ http://mevius.5ch.net/test/read.cgi/tech/1751545806/501
502: デフォルトの名無しさん [sage] 2025/07/27(日) 12:26:17.97 ID:NqsNrN1W Rustのように可能な限り静的に確定させる言語ではグローバル変数は不要なため 変数は関数実行中のみ存在して毎回新しく用意される変数と プログラム実行中ずっと存在するstatic変数の二種類のみとなりました http://mevius.5ch.net/test/read.cgi/tech/1751545806/502
503: デフォルトの名無しさん [sage] 2025/07/27(日) 12:31:20.72 ID:XSMxDaZG ダイナミックスコープは論外。 すでにほとんど駆逐されている実態からもあきらかだろ。 最後の生き残りである Emacs Lisp ですらレキシカルスコープに切り替えるオプションが用意されて十年以上になる。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/503
504: デフォルトの名無しさん [sage] 2025/07/27(日) 12:37:48.68 ID:XSMxDaZG そういえば AutoLISP もダイナミックスコープだな。 互換性の都合で昔のままになってるだけで、拡張言語としてそれが特に有用というわけではない。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/504
505: デフォルトの名無しさん [] 2025/07/27(日) 12:51:42.31 ID:LBT37M4+ Emacs Lispは使いやすい Script-Fuは使いにくい 理由は山ほどあって、例えばEmacsはテキストエディタだからグラフィックソフトのGIMPよりスクリプトを書きやすいのは当たり前だ 他にもEmacsはrmsが丁寧に創り上げた統合開発環境であるのに対しGIMPはletやlambdaのヘルプすら出ないといった理由はいくらでも挙げられる しかし Emacs Lispの本当の使いやすさはそれがダイナミックスコープの言語であることに起因するんじゃないだろうか http://mevius.5ch.net/test/read.cgi/tech/1751545806/505
506: デフォルトの名無しさん [sage] 2025/07/27(日) 13:01:09.33 ID:XSMxDaZG >>505 script-fu をコンソールから直接入力してるの……? Emacs に接続するのが普通の開発スタイルだよ。 Lisp 系言語は大抵の場合に Emacs と連携する仕組みがある。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/506
507: デフォルトの名無しさん [] 2025/07/27(日) 13:14:33.17 ID:LBT37M4+ >>506 あー、そんなことできるのか 俺は動画用の連番gifを生成したくてMakefile書いてたよ とここまで書いて気づいたけどEmacsに接続ってなんだ? Emacsのバッファ内でコンソールが動くことをそういうの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/507
508: デフォルトの名無しさん [] 2025/07/27(日) 13:50:50.61 ID:LBT37M4+ 技術者の横で目を凝らす開発営業さんにはそう見えるのね http://mevius.5ch.net/test/read.cgi/tech/1751545806/508
509: デフォルトの名無しさん [sage] 2025/07/27(日) 14:06:58.59 ID:V2C/94hf >>498 mathematicaとかあれ実質lispっぽくねえか http://mevius.5ch.net/test/read.cgi/tech/1751545806/509
510: デフォルトの名無しさん [sage] 2025/07/27(日) 14:20:37.01 ID:XSMxDaZG >>507 実行中の GIMP のメニューから フィルター → Development → Script-Fu → サーバースタート とすると他のプロセスが GIMP と通信して対話的に Scheme のコードをやり取りできるようになるだろ。 そうやって実行中の GIMP と Emacs が通信でやりとりするってことを言ってる。 こうなっているのは GIMP の側で Script-Fu の開発環境を抱え込む気はないという思想の表れだと思うんで、 開発環境の不足を挙げるのは筋違いかなということを言いたかった。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/510
511: デフォルトの名無しさん [] 2025/07/27(日) 14:44:29.16 ID:LBT37M4+ >>510 じゃあそうでない(GIMPのようでない)シェルとかコンパイルプロセスはどうやってEmacsと通信してるの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/511
512: デフォルトの名無しさん [] 2025/07/27(日) 14:58:32.26 ID:LBT37M4+ 割と重要だよね Emacsは皆が機嫌を伺わなければならないオツボネなのか それともEmacs自身が甲斐甲斐しく皆の面倒を見るメイドなのか http://mevius.5ch.net/test/read.cgi/tech/1751545806/512
513: デフォルトの名無しさん [sage] 2025/07/27(日) 14:58:33.14 ID:XSMxDaZG >>511 プロセス間通信の内で最も簡単なのはパイプ。 特別扱いがある部分もあるので単純ではないんだけど標準入出力もパイプの一種で、 コマンドラインツールは標準入出力の接続先をターミナルから Emacs にするだけで Emacs との接続は成立するよ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/513
514: デフォルトの名無しさん [] 2025/07/27(日) 15:45:35.31 ID:LBT37M4+ 厳しくツッコんでやろうと思ってたんだけど、そんなもんかなとも思う ・プロセス間通信とはリアルタイムリダイレクトである ・シェルが、あるプログラムの入出力をリダイレクトできるのだから、 俺のプログラムもあるプログラムの入出力をリダイレクトできる http://mevius.5ch.net/test/read.cgi/tech/1751545806/514
515: デフォルトの名無しさん [sage] 2025/07/27(日) 17:12:25.17 ID:Inu3UTcX 505 デフォルトの名無しさん sage 2025/05/16(金) 08:42:23.59 ID:QL8B1Lzv 今日公開のRust 1.87.0でio::pipeが追加された 今までなかったことが不思議 507 デフォルトの名無しさん sage 2025/05/16(金) 09:12:43.25 ID:r8NIoUWT >>505 Stdio::piped()が10年前からある 無名パイプはOS依存かつプロセス間だから汎用化は安定化に時間がかかったのかな http://mevius.5ch.net/test/read.cgi/tech/1751545806/515
516: デフォルトの名無しさん [] 2025/07/27(日) 18:58:59.66 ID:LBT37M4+ Rustの3倍くらいわかりやすい(冗長に書いてくれてる) https://www.gnu.org/software/emacs/manual/pdf/elisp.pdf http://mevius.5ch.net/test/read.cgi/tech/1751545806/516
517: デフォルトの名無しさん [] 2025/07/27(日) 20:07:39.35 ID:LBT37M4+ 前々から1度やってみたかった、こういう 読みこなす実力は十分あるのにたまたま読んでいないだけのレベルの人の大勢集まるスレで Emacs Lispのマニュアルを貼る実験 http://mevius.5ch.net/test/read.cgi/tech/1751545806/517
518: デフォルトの名無しさん [sage] 2025/07/27(日) 21:53:58.38 ID:XSMxDaZG Emacs Lisp が Script-Fu より使いやすいという感覚は全然わからない。 常にブチ切れながら書いてる。 あえていうならライブラリが充実しているということくらいで、それすらも互換性を壊す変更を入れられない理由として足を引っ張っているとも言える。 特にダイナミックスコープは滅びるべき害悪という意識しかなくてそれが使いやすさに寄与しているという意見は初めて聞いた。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/518
519: デフォルトの名無しさん [] 2025/07/27(日) 22:00:14.25 ID:LBT37M4+ 日本のLISP事情はなにかおかしい 世代的にEmacsそれ自体はある程度触ったことはあるんだろうにという層はなぜかelispのマニュアルに見向きもせず、 それよりもっと若い、言語なんて選べると思ってなさそうな子たちはなぜかEmacsを触ろうとしない http://mevius.5ch.net/test/read.cgi/tech/1751545806/519
520: デフォルトの名無しさん [] 2025/07/27(日) 22:17:09.51 ID:LBT37M4+ そうだなあ、例えばEmacsにはauto-wrapという関数がある。 これはカーソルが行末に近づいた時に自動的に改行して行末整形を行うためのものだ この関数が「あれっ、さっきディセーブルしたろ?」ってくらい、断っても断っても呼ばれるもんだから 俺の設定ファイルではこの関数自体が空の関数で上書きされてある この芸当はダイナミックスコープでないとできない http://mevius.5ch.net/test/read.cgi/tech/1751545806/520
521: デフォルトの名無しさん [sage] 2025/07/27(日) 22:43:48.14 ID:XSMxDaZG 上書きしたけりゃ代入で出来るのでダイナミックスコープである必然性はない。 ダイナミックスコープを誤解してない? http://mevius.5ch.net/test/read.cgi/tech/1751545806/521
522: デフォルトの名無しさん [sage] 2025/07/27(日) 22:45:42.63 ID:XSMxDaZG アプリケーションの拡張という点で考えるとモダンなアプリケーションでは WASM でプラグインに出来る仕組みを用意しているものもある。 近頃はセキュリティを意識しなきゃならないので制約をコントロールしやすい WASM というのは良いアイデアだよね。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/522
523: デフォルトの名無しさん [] 2025/07/27(日) 22:57:26.89 ID:LBT37M4+ 代入するためにはオブジェクトへのリンクをそのままでなく変数として持っとかないと「他の人は」変更できないでしょ 実際Script-Fuではオブジェクトにアクセスするのに「ああ、さらにそのcarをもう1度辿るのか」ってのばっかじゃん http://mevius.5ch.net/test/read.cgi/tech/1751545806/523
524: デフォルトの名無しさん [sage] 2025/07/27(日) 23:34:20.94 ID:XSMxDaZG 言いたいことが何も伝わらない。 ただ Rust スレの話題でないことははっきりしているのでとりあえず私はこのスレでこの話題を続けるのはやめる。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/524
525: デフォルトの名無しさん [] 2025/07/27(日) 23:41:21.74 ID:LBT37M4+ Rustだってレキシカルスコープの言語じゃないか http://mevius.5ch.net/test/read.cgi/tech/1751545806/525
526: デフォルトの名無しさん [] 2025/07/28(月) 00:22:46.67 ID:Tf0o2LzD ここからが世界の舞台なのに馬鹿だよなー Script-FuとRustはどちらもレキシカルスコープの言語だ つまり似たようなメモリ配置のプロセス空間を持ち、 なんらかのスタックコンベンションで動く点では同じだ Script-Fuが用意した小細工は(car(buf Rustが用意した小細工はBox<T> くらいのことは言ってみろ http://mevius.5ch.net/test/read.cgi/tech/1751545806/526
527: デフォルトの名無しさん [sage] 2025/07/28(月) 00:39:51.43 ID:54WCUCT3 すっこんでろ http://mevius.5ch.net/test/read.cgi/tech/1751545806/527
528: デフォルトの名無しさん [] 2025/07/28(月) 01:28:23.20 ID:8xcLMnqm 最近書き始めたけど日時取得するのにもややこしいコード書かなきゃいけなくてなんでこんなもんが持て囃されてるんだろうと思った この言語作った人重度のアスペなんじゃないの http://mevius.5ch.net/test/read.cgi/tech/1751545806/528
529: デフォルトの名無しさん [sage] 2025/07/28(月) 02:21:56.85 ID:1axX/Ndk 日時取得とプログラミング言語仕様は一切関係がない http://mevius.5ch.net/test/read.cgi/tech/1751545806/529
530: デフォルトの名無しさん [sage] 2025/07/28(月) 02:28:38.99 ID:LtpwkZt9 できた println!("現在の日時(ローカルタイム): {}", chrono::Local::now()); http://mevius.5ch.net/test/read.cgi/tech/1751545806/530
531: デフォルトの名無しさん [sage] 2025/07/28(月) 02:31:04.61 ID:u3ejyRV1 chronoは使いづらいからおすすめしない http://mevius.5ch.net/test/read.cgi/tech/1751545806/531
532: デフォルトの名無しさん [sage] 2025/07/28(月) 06:13:25.85 ID:zOCRCDwg tinyschemeが持て囃されemacsが敬遠される現象と同じ http://mevius.5ch.net/test/read.cgi/tech/1751545806/532
533: デフォルトの名無しさん [] 2025/07/28(月) 06:41:00.09 ID:Tf0o2LzD >>528 逆に聞きたいんだけど PCやスマホの中で指令を受けて日時を取得しに行くのは 「小人さん」ではなく「シリコンのチップとかそれなりのセンサ」なのに なぜITだけこんなことを言われるんだろう http://mevius.5ch.net/test/read.cgi/tech/1751545806/533
534: デフォルトの名無しさん [] 2025/07/28(月) 07:35:27.24 ID:Qh5MRIIH さてはemacsにビビってやがるな、開発営業 フツーに号令かけることもできるんだぜ 「この世のありとあらゆる文字コードを扱える言語がある。 Emacs Lispだ。 LISPついでに習熟しておいて損はない」 http://mevius.5ch.net/test/read.cgi/tech/1751545806/534
535: デフォルトの名無しさん [] 2025/07/28(月) 08:27:23.85 ID:Qh5MRIIH そのうえテキストエディタがついてくるんだから損はないよな 開発営業のおっさんは同じ条件(~/.emacsというテキストファイル)なのに それを「非技術者」なもんだから「設定ファイル」としてしか活用できない「悲哀」に気づいてるんだよなw プログラマ様方はまったく同じ道具立てなのにそれだけで「あの」プログラミングができておしまいになるんだもん これはみんなに知られちゃまずいんだもんなw http://mevius.5ch.net/test/read.cgi/tech/1751545806/535
536: デフォルトの名無しさん [] 2025/07/28(月) 08:44:19.95 ID:Qh5MRIIH みんなー、最初の課題はな Emacsには M-x what-line と M-x what-cursor-position とがあるからその2つの情報をいっぺんに表示する M-x what-line-and-cursor-position というコマンドを書いてC-x =とかにバインドするんだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/536
537: デフォルトの名無しさん [sage] 2025/07/28(月) 08:52:08.79 ID:zOCRCDwg よほどのことがない限り二刀流を想定しない これはITだけではない 特に、万物は一長一短であると信じている者にとっては 弱点を消すもう一つの武器を用意するなんて考えたくもないだろ http://mevius.5ch.net/test/read.cgi/tech/1751545806/537
538: デフォルトの名無しさん [sage] 2025/07/28(月) 09:40:58.24 ID:E3NP8lW2 躁うつ病(双極性障害)の周期は、躁状態とうつ状態が交互に現れるのが特徴です。 この周期は数カ月から数年と個人差があり、常に躁状態とうつ状態が表れているわけではなく、 間に症状がない「寛解期」を挟むこともあります http://mevius.5ch.net/test/read.cgi/tech/1751545806/538
539: デフォルトの名無しさん [sage] 2025/07/28(月) 14:08:46.46 ID:O7aojHnp Rustで自分用にライブラリを作ろうとしていて、 そこでC++のライブラリを利用しようとしているんですけど、 上手い感じに統合するためには、どうやったらいいんですかね…? 特にメモリ管理とかです。unsafeを使わなくていいようにしたいです http://mevius.5ch.net/test/read.cgi/tech/1751545806/539
540: デフォルトの名無しさん [] 2025/07/28(月) 14:16:59.82 ID:Qh5MRIIH 俺様アロケータがあるなら型Tの変数をアロケートするときに Oresama<T> と書くだけで、使い勝手はBox<T>とかと同じにしてしまう http://mevius.5ch.net/test/read.cgi/tech/1751545806/540
541: デフォルトの名無しさん [sage] 2025/07/28(月) 14:34:22.54 ID:O7aojHnp なんかsafetyでnewerなbindgenはないのか http://mevius.5ch.net/test/read.cgi/tech/1751545806/541
542: デフォルトの名無しさん [sage] 2025/07/28(月) 17:15:12.87 ID:kpR5qn81 Rust の外で定義されたものが safe かどうかは自動では判断しようがない。 プログラムを書かずに済ますにしてもなんらかのメタデータは与える必要があるだろうし、 バッチリと何から何まで自動化ってのは無理なんじゃねーのかな。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/542
543: デフォルトの名無しさん [sage] 2025/07/28(月) 17:29:26.66 ID:daSk2bcg そんなもんAIで余裕でしょ 最もAIが得意とする類の課題 http://mevius.5ch.net/test/read.cgi/tech/1751545806/543
544: デフォルトの名無しさん [] 2025/07/28(月) 18:03:32.69 ID:Qh5MRIIH そして最大の罠 http://mevius.5ch.net/test/read.cgi/tech/1751545806/544
545: デフォルトの名無しさん [sage] 2025/07/28(月) 18:11:28.90 ID:oTNRYreL そこはAIが最も不得意とする分野 unsafeを用いて提供されるsafeな関数やモジュール関数群が安全か否かを100%判定できること これができる時代になった時に全てのプログラマーを全廃できる http://mevius.5ch.net/test/read.cgi/tech/1751545806/545
546: デフォルトの名無しさん [sage] 2025/07/28(月) 18:16:36.76 ID:V7NHZwCK AI使ってたらそんなこと言うはずもないんだよな 再現性ないんだぜ? http://mevius.5ch.net/test/read.cgi/tech/1751545806/546
547: デフォルトの名無しさん [] 2025/07/28(月) 18:41:43.40 ID:Qh5MRIIH 例えばRustはVecがあるからダブルリンクリストがいらなかったりするでしょ 「えっ、Rustでダブルリンクリスト?しかも自作?なにこの老害」 とかなって 「Rust歴何年よ?」「えっへん〇〇年」「馬鹿だったんだ、この人」 http://mevius.5ch.net/test/read.cgi/tech/1751545806/547
548: デフォルトの名無しさん [sage] 2025/07/28(月) 18:51:31.01 ID:vSY6h8X4 その理解もどうなのw http://mevius.5ch.net/test/read.cgi/tech/1751545806/548
549: デフォルトの名無しさん [sage] 2025/07/28(月) 21:04:58.46 ID:O7aojHnp 抽象化レイヤーをRustで書く方法 http://mevius.5ch.net/test/read.cgi/tech/1751545806/549
550: デフォルトの名無しさん [] 2025/07/28(月) 22:26:39.23 ID:Qh5MRIIH Rust歴というよりもダブルリンクリスト歴なんだよな Cで実際にダブルリンクリストを使って問題に対処した実務経験なしで彼らがRust製のダブルリンクリストを手放すわけがないし、 第一それだって彼らにとっては眺めて楽しむものなのだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/550
551: デフォルトの名無しさん [sage] 2025/07/28(月) 22:28:22.25 ID:SLPj4B6Y まずRustの基本常識を身に着け終えた後でFFIやunsafeに進みなさい http://mevius.5ch.net/test/read.cgi/tech/1751545806/551
552: デフォルトの名無しさん [] 2025/07/28(月) 23:23:57.49 ID:Qh5MRIIH 人類は数十年かかって ・シングルリンクリストはそもそもライブラリ化しません ・ダブルリンクリストは「単純継承」のみライブラリ化します ・さもなきゃコンスセル という知恵を石から絞り出した RustはそれをVecとVecDeqeueに発展させたが 問題はそれが進化の正しい舳先かどうか http://mevius.5ch.net/test/read.cgi/tech/1751545806/552
553: デフォルトの名無しさん [sage] 2025/07/29(火) 01:00:10.21 ID:A5j4bQYz 双方向のリンクリストにこだわるのは 強参照の循環が必ず生じると思ってるか、その一部を弱参照に変えるしかないと思ってるんだよね 生ポインタなら一部ではなく全部生ポインタで作るのに http://mevius.5ch.net/test/read.cgi/tech/1751545806/553
554: デフォルトの名無しさん [sage] 2025/07/29(火) 01:00:59.09 ID:+DAbbYTz CPUキャッシュメモリ考慮が速さを支配する時代になって以降 リンクリストが有利な場面が大きく減ってベクタやベクタベースのデックなどが有利に変わったのは事実 それでも残るリンクリスト利用もCPUキャッシュメモリを配慮したアンロールリンクリストなど様々な応用変種が各用途ごとに使われることとなった http://mevius.5ch.net/test/read.cgi/tech/1751545806/554
555: デフォルトの名無しさん [sage] 2025/07/29(火) 15:51:23.75 ID:pHNfVPjg データの特性にあわせて最適なもの選ぶだけだろ 有利不利とかなんでそういう思考になるか謎 http://mevius.5ch.net/test/read.cgi/tech/1751545806/555
556: デフォルトの名無しさん [] 2025/07/29(火) 19:05:37.57 ID:EalfDF/V Rust C++ Java Python Vec<T> vector ArrayList List VecDeque<T> deque ArrayDeque collections.deque LinkedList<T> list LinkedList ー BinaryHeap<T> priority_queue PriorityQueue heapq HashMap<K, V> unordered_map HashMap dict BTreeMap<K, V> map TreeMap ー HasgSet<T> unordered_set HashSet set BTreeSet<T> set TreeSet ー http://mevius.5ch.net/test/read.cgi/tech/1751545806/556
557: デフォルトの名無しさん [sage] 2025/07/29(火) 19:07:30.10 ID:yr1Z5meU >>555 データ特性によるアルゴリズムの選択で参考にされるO(n)などはメモリアクセスでかかるコストをゼロもしくは均一とみなして来たが CPUの高速化によりメモリキャッシュに載るかどうかで何百倍も速さが変わるようになってアルゴリズム選択の観点も大きく変わって来た話だろ 有利と思われていたものが不利へと変わった http://mevius.5ch.net/test/read.cgi/tech/1751545806/557
558: デフォルトの名無しさん [sage] 2025/07/29(火) 19:12:24.34 ID:q5zHFRxw 必ずまとまった連続領域にあることが保証されるベクタはキャッシュに乗ることが保証されて速いからね http://mevius.5ch.net/test/read.cgi/tech/1751545806/558
559: デフォルトの名無しさん [sage] 2025/07/29(火) 19:36:55.11 ID:zbBRX4z5 スタックvsヒープも 常にキャッシュに載るスタックを活用しまくるRustが登場 http://mevius.5ch.net/test/read.cgi/tech/1751545806/559
560: デフォルトの名無しさん [] 2025/07/29(火) 20:11:21.16 ID:EalfDF/V Rustは変数の寿命をソースコードの静的解析から解き明かすのみならず、実際のメモリ確保もスタックから行うのであると思ってる人まだいるの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/560
561: デフォルトの名無しさん [sage] 2025/07/29(火) 20:15:36.12 ID:1nklfDHD >>560 それで合ってる RustではBoxかVecを指定しない限り 構造体などオブジェクトもスタック上に確保 http://mevius.5ch.net/test/read.cgi/tech/1751545806/561
562: デフォルトの名無しさん [sage] 2025/07/29(火) 20:19:10.20 ID:RU6DXavP 駄目じゃん http://mevius.5ch.net/test/read.cgi/tech/1751545806/562
563: デフォルトの名無しさん [sage] 2025/07/29(火) 20:20:04.54 ID:1nklfDHD >>562 何がダメなの? スタック上に確保するから速くて有利 http://mevius.5ch.net/test/read.cgi/tech/1751545806/563
564: デフォルトの名無しさん [] 2025/07/29(火) 20:20:36.88 ID:EalfDF/V >>561 え?返り値として返される時はコピーされるんでしょ? http://mevius.5ch.net/test/read.cgi/tech/1751545806/564
565: デフォルトの名無しさん [sage] 2025/07/29(火) 20:24:19.75 ID:1nklfDHD >>564 コピーされない 返り値最適化により初めから呼び出し元のスタックフレーム上に生成される http://mevius.5ch.net/test/read.cgi/tech/1751545806/565
566: デフォルトの名無しさん [] 2025/07/29(火) 20:29:47.96 ID:EalfDF/V あのさ、 スタック上に確保すると 「解析がなくても」「解放は容易」でしょ? それが 「解析はあるのだから」「どこでも同じ」にならない? http://mevius.5ch.net/test/read.cgi/tech/1751545806/566
567: デフォルトの名無しさん [sage] 2025/07/29(火) 20:36:31.61 ID:1nklfDHD 何を問題にしてる? スタック上のため確保もアクセスも高速 その上でRustではアクセスと解放の安全も両立している http://mevius.5ch.net/test/read.cgi/tech/1751545806/567
568: デフォルトの名無しさん [] 2025/07/29(火) 20:47:35.07 ID:EalfDF/V 「スタック上に確保しなくても同じことはできる」 って言ってる そのうえで 「スタック上にしか確保してないのか」 って言ってる http://mevius.5ch.net/test/read.cgi/tech/1751545806/568
569: デフォルトの名無しさん [sage] 2025/07/29(火) 20:52:53.58 ID:1nklfDHD >>568 スタック上に確保するときのみ確保が高速 スタック上で確保した時はキャッシュにほぼ載るためアクセスも高速 ヒープ上ではどちらも遅くて不利 http://mevius.5ch.net/test/read.cgi/tech/1751545806/569
570: デフォルトの名無しさん [sage] 2025/07/29(火) 21:02:55.02 ID:yJ/ZZe3K ついに糖質と言い争えるレベルまで落ちたか http://mevius.5ch.net/test/read.cgi/tech/1751545806/570
571: デフォルトの名無しさん [sage] 2025/07/29(火) 22:39:15.04 ID:pHNfVPjg >>557 操作ごとに計算量違うだろ? CSの教養のないど素人じゃん http://mevius.5ch.net/test/read.cgi/tech/1751545806/571
572: デフォルトの名無しさん [sage] 2025/07/29(火) 22:48:01.97 ID:ysadVfOf >>571 どの操作も計算量の算出時にメモリアクセスによる時間コストを考慮していなかったことが昔の敗因 http://mevius.5ch.net/test/read.cgi/tech/1751545806/572
573: デフォルトの名無しさん [sage] 2025/07/29(火) 23:17:45.02 ID:VkX72Ez2 「計算量」を理解してないだけだな http://mevius.5ch.net/test/read.cgi/tech/1751545806/573
574: デフォルトの名無しさん [sage] 2025/07/29(火) 23:23:46.49 ID:A5j4bQYz 多少遅くてもいいからCPUと関係ない言語で書きたい mallocが使えない状況でその言語を使えるならそのほうがCPUと無関係でいられる http://mevius.5ch.net/test/read.cgi/tech/1751545806/574
575: デフォルトの名無しさん [sage] 2025/07/29(火) 23:25:20.99 ID:gZolU48c 計算量は係数を考慮せず次数だけだからね キャッシュヒットとミスのような係数が桁違いに変わってくる現実だと逆転が起きるのは当たり前 http://mevius.5ch.net/test/read.cgi/tech/1751545806/575
576: デフォルトの名無しさん [sage] 2025/07/29(火) 23:29:05.70 ID:gZolU48c 机上の計算量だけ見ていてもダメで必要な箇所は比較計測になる そこでのRustは選択肢を広げてくれた存在 http://mevius.5ch.net/test/read.cgi/tech/1751545806/576
577: デフォルトの名無しさん [sage] 2025/07/29(火) 23:41:21.56 ID:4+dSqHol 大きな2次元配列で2次元のどちらを基準に全走査するかで桁違いに速度が変わるのもCPUメモリキャッシュのせいだよな そのへん考慮できない人はプログラマに向いていない http://mevius.5ch.net/test/read.cgi/tech/1751545806/577
578: デフォルトの名無しさん [sage] 2025/07/30(水) 00:05:02.69 ID:2CCQm4VI マイクロマネジメントをな、マイクロマネジメントをいつでもサボれるくらいになりなよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/578
579: デフォルトの名無しさん [sage] 2025/07/30(水) 00:46:05.33 ID:zYz0+G1r >>575 それは小さいデータのときだけ 計測してみろよ 特殊な前提なのに話を一般化すんなよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/579
580: デフォルトの名無しさん [sage] 2025/07/30(水) 00:51:05.39 ID:6h+f7gEs ほらやっぱり 複オジは「計算量」を理解していないだろ? http://mevius.5ch.net/test/read.cgi/tech/1751545806/580
581: デフォルトの名無しさん [sage] 2025/07/30(水) 01:15:10.54 ID:ZVYNNQCS ベクタは確保メモリサイズを超えると別メモリへの移動ペナルティが発生するにも関わらず、 ベクタへのデータの追加操作はベクタのサイズに関わらずO(1)とされる。 これはデータを2^n個追加した時の累計メモリ移動は最悪時でも、 1+2+4+8+...+2^(n-1)=2^n-1個のメモリ移動しか発生しないためである http://mevius.5ch.net/test/read.cgi/tech/1751545806/581
582: デフォルトの名無しさん [] 2025/07/30(水) 06:58:14.11 ID:dn+Bg3eY ・超指向性スピーカーを使用して統合失調症の周囲で殺人をしたと話していたのですがご存じの方知りませんか? 【兵庫県知事問題】「斎藤知事動画はバズる」と直感、編集して1500万再生 中傷動画も発信した男性(31)の後悔 [ぐれ★] 2025/07/29(火) 21:04:36.36 https://asahi.5ch.net/test/read.cgi/newsplus/1753790676/ こちらの方は後悔しているけれど 統合失調症周囲の人間は逆の精神状態の下記の人物 「仕事はデキるのに…」異常で執拗なパワハラをする“ダーク・トライアド“と呼ばれる、職場のヤバい人たち [パンナ・コッタ★] 2025/07/30(水) 02:17:10.53 https://asahi.5ch.net/test/read.cgi/newsplus/1753809430/ http://mevius.5ch.net/test/read.cgi/tech/1751545806/582
583: デフォルトの名無しさん [] 2025/07/30(水) 10:38:53.50 ID:kDw0lUC7 Rustが糞遅いのはこういうのも関係してるんだろうな http://mevius.5ch.net/test/read.cgi/tech/1751545806/583
584: デフォルトの名無しさん [sage] 2025/07/30(水) 10:55:36.76 ID:HGz1hbaM >>580 complexityを計算量と訳したバカのせいで新しいバカが量産されてる http://mevius.5ch.net/test/read.cgi/tech/1751545806/584
585: デフォルトの名無しさん [sage] 2025/07/30(水) 15:55:46.79 ID:gxsH3v1Z >>579 データが大きくても係数の差が次数の差より影響することは普通にありえる キャッシュミスしまくるがO(n)で済むアルゴリズムと ほぼキャッシュヒットしまくるがO(n·log(n))かかるアルゴリズムがあるとしよう 両者のアルゴリズム自体の係数差は単純にnとn·log2(n)とする 例えばn=2^30≒10億の場合はアルゴリズムの差でlog2(2^30)=30倍の差が生じる ところがキャッシュミスするとメモリアクセスの差で300倍遅いことが現代のCPUでありえる そのためキャッシュミスしまくるO(n)よりもO(n·log(n))が速く実行されることが起きる http://mevius.5ch.net/test/read.cgi/tech/1751545806/585
586: デフォルトの名無しさん [sage] 2025/07/30(水) 16:10:27.29 ID:aMDk5tN6 だからさー計算量ってそういう比較をするためにあるんじゃないんだって CS101の超基礎だからちゃんと勉強しなよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/586
587: デフォルトの名無しさん [sage] 2025/07/30(水) 16:28:45.91 ID:zYz0+G1r >>585 はいはい 計測してからほざけ http://mevius.5ch.net/test/read.cgi/tech/1751545806/587
588: デフォルトの名無しさん [sage] 2025/07/30(水) 17:11:45.14 ID:cfT0F8KB 実効速度の比較の場合 計算量はNが無限近くに大きい時のみ有効なんだよ Nが無限近いと係数がいくら大きくても無視できる ところが現実にはコンピューターで扱えるNは小さな有限値だから係数を考慮しないと実効速度は逆転しちゃう http://mevius.5ch.net/test/read.cgi/tech/1751545806/588
589: デフォルトの名無しさん [sage] 2025/07/30(水) 18:05:23.41 ID:Kp0t8wWh O(1)とO(n)の話だったのにO(n)とO(n log(n))にすり替えて自己正当化しようとするところがいかにも複おじ仕草 http://mevius.5ch.net/test/read.cgi/tech/1751545806/589
590: デフォルトの名無しさん [sage] 2025/07/30(水) 19:07:56.72 ID:hgMZBDIB >>581 そのメモリ移動もまとめてキャッシュに乗るから速いね http://mevius.5ch.net/test/read.cgi/tech/1751545806/590
591: デフォルトの名無しさん [sage] 2025/07/30(水) 19:41:04.04 ID:ZSzdQGzh DDRn-SDRAMからキャッシュへのfetch時間は、12(ns)位だから、メモリコントローラが賢ければ、 3GHzのCPUの場合、36クロック位で済むので、めちゃくちゃ遅いわけではない。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/591
592: デフォルトの名無しさん [sage] 2025/07/30(水) 19:44:24.21 ID:jptgQq59 で、結局Rustでは実際どういうときにリンクトリスト使うの? http://mevius.5ch.net/test/read.cgi/tech/1751545806/592
593: デフォルトの名無しさん [sage] 2025/07/30(水) 20:03:01.97 ID:ZSzdQGzh Grokによれば、以下のように、DDR5 SDRAMからキャッシュに乗せるまでの時間は、8〜20(ns)程度らしい。 これは、3GHz の CPU だと 24〜60 (クロック) 程度に相当する時間。ものすごく遅いわけではない。 「 実測値として、Intelのx86 CPU(例:12th/13th/14th Gen Core)+DDR5構成でのプリフェッチ完了時間は、以下のように報告されています():標準的なDDR5-4800構成:約15〜25 ns(L1/L2へのプリフェッチ)。 高性能DDR5-7200構成:約10〜20 ns。 最適化された環境(低CL、オーバークロック):8〜15 ns。 」 http://mevius.5ch.net/test/read.cgi/tech/1751545806/593
594: デフォルトの名無しさん [sage] 2025/07/30(水) 20:11:57.87 ID:ZSzdQGzh 大体で言えば、32バイト位の領域がキャッシュに乗っていない場合に、24〜75 (クロック) 程度の追加時間が必要になる。 しかし、そこから連続するメモリーにアクセスしている場合には、追加時間は 0 クロック。 通常、1つの構造体やクラスに対してまとまって処理するが、処理に本質的に必要な時間が 100 クロックだとすると、 そこに、24〜70 クロック程度が上乗せされることになる。だから、トータルだと、24%〜75% 程度、処理時間が 長くかかる、ということになる。 もしも、本質的な処理に必要な時間が 10 クロックのように非常に粒度が小さい処理の場合だと、 キャッシュに乗っていれば、10 クロックだけで済むところが、34〜85 クロックかかることになる。 その場合は、3.4倍から8.5倍の時間がかかる、ということになる。 だから、リンクリストの場合、1つのノードのバイト数が少なかったり、ループの中で1ノードあたりに処理 する内容が少ないならば、キャッシュに乗っている事が重要になる事が有る。 しかし、1つのノードのバイト数が大きかったり、ループの中で処理する1ノードあたりの処理が 大きい場合は、キャッシュミスの影響をあまり気にしなくてよい。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/594
595: デフォルトの名無しさん [sage] 2025/07/30(水) 20:19:57.86 ID:ZSzdQGzh 具体例で言うと、大量の3Dの座標データなどに対して、CPUで単純に平行移動を書けるような場合は、SIMD命令を使わない場合、 1点当たりの処理は、ループ自体に必要な時間が5クロック、足し算に必要な時間が3次元の場合、3クロックで、 全体で、1点当たり8クロック、と見積もれる。ループを展開して、例えば、8点ずつ処理したりすれば、一点当たりに 必要なクロック数はもっと下げられる。SIMD命令を使えば、もっと下げられる。 このような場合は、LinkedList(list) よりも、ArrayList(vector)の方が適す。 しかし、1行に80文字くらい入っているようなテキストの1行を処理する場合、1行を処理するには数百クロックが必要になり、 行全体を収める構造としては、LinkedListでも、キャッシュミスによる速度低下の影響は軽微。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/595
596: デフォルトの名無しさん [sage] 2025/07/30(水) 20:27:23.39 ID:zYz0+G1r すげーわw 初手から間違った方向の議論してるのに早く気付け http://mevius.5ch.net/test/read.cgi/tech/1751545806/596
597: デフォルトの名無しさん [sage] 2025/07/30(水) 20:46:03.62 ID:ZSzdQGzh 高速なプログラムを作った人が「キャッシュの事も考慮することで高速化しています」と言っていたとしても、 それは、キャッシュ以外の部分が既に早く作りこまれた後だからの話。大部分の遅さの原因はキャッシュの事を気にする 以前の問題で、大半はLinkedListを使うべき場所でArrayListを使っている事だったりする。 なぜなら、キャッシュミスは、24〜75クロック程度の時間増加にしかならないからだ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/597
598: デフォルトの名無しさん [sage] 2025/07/30(水) 21:02:52.82 ID:S65PQfLi 机上の空論プログラマ いるよね http://mevius.5ch.net/test/read.cgi/tech/1751545806/598
599: デフォルトの名無しさん [sage] 2025/07/30(水) 21:07:04.54 ID:W/B9cxh8 俺はプログラミングばかりしている人間だし、高速化技術には定評があるから、机上の空論家ではない。 実際に作ったものの速度を見ると、どうやってこんなに高速化したのか分からず目を白黒させた人がいる。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/599
600: デフォルトの名無しさん [sage] 2025/07/30(水) 21:08:49.52 ID:W/B9cxh8 ID:ZSzdQGzh が俺だ。俺は、高速化技術の第一人者であり、先生と呼ばれる人間だ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/600
601: デフォルトの名無しさん [sage] 2025/07/30(水) 21:12:48.14 ID:9ZmySMAs 草 リンクリストは要素毎にポインタを持つ必要があるから、仮にstrのリストとすると要素あたりのサイズはダブルリンクリストの場合は倍となり、 キャッシュミスを考慮しないとしても単純にスキャン量が倍になる http://mevius.5ch.net/test/read.cgi/tech/1751545806/601
602: デフォルトの名無しさん [sage] 2025/07/30(水) 21:14:52.61 ID:W/B9cxh8 はっきり言って、高速化に関しては、教科書を書いている人は間違っている事が多い。 こんなところに買いても嘘だと思われて終わりだろうが、1つの証拠は、俺の作ったアプリは異常に速度が速い。 これは嘘ではない。速度を得たければ、ArrayList(std::vector)だけでは駄目で、LinkedList(std::list)を効果的に使う必要がある。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/602
603: デフォルトの名無しさん [sage] 2025/07/30(水) 21:15:44.64 ID:W/B9cxh8 >>601 それでも速い。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/603
604: デフォルトの名無しさん [sage] 2025/07/30(水) 21:17:52.50 ID:R2zwxvxE >>602 では試しにサンプルコードを提示してくれないか? それを動かしてみて実際に速いと体験してみたい http://mevius.5ch.net/test/read.cgi/tech/1751545806/604
605: デフォルトの名無しさん [sage] 2025/07/30(水) 21:22:58.73 ID:S65PQfLi GrokにDDRのレイテンシ聞いてる時点でど素人じゃん 値おかしいし http://mevius.5ch.net/test/read.cgi/tech/1751545806/605
606: デフォルトの名無しさん [sage] 2025/07/30(水) 21:36:07.17 ID:W/B9cxh8 >>605 俺はプログラミングばかりやっていたので、メモリーのクロック数の実際の値には詳しくない。 ハードに詳しいようなタイプのパソコン博士ではない。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/606
607: デフォルトの名無しさん [sage] 2025/07/30(水) 21:36:37.58 ID:W/B9cxh8 >>604 嫌だ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/607
608: デフォルトの名無しさん [sage] 2025/07/30(水) 21:37:49.82 ID:W/B9cxh8 なぜいやかと言うと、俺の知見や技術を、 当たり前であったかのように論文や本などに記載 する人がいるからだ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/608
609: デフォルトの名無しさん [sage] 2025/07/30(水) 22:01:32.02 ID:IkZxqK3l >>600 数学100点先生は高速化技術の第一人者でもいらっしゃられたのですね >>597 >大部分の遅さの原因はキャッシュの事を気にする以前の問題で、大半はLinkedListを使うべき場所でArrayListを使っている事だったりする。 本当にそんな事例があるのならば ぜひ具体的なコードを挙げていただけませんか http://mevius.5ch.net/test/read.cgi/tech/1751545806/609
610: デフォルトの名無しさん [sage] 2025/07/30(水) 22:01:33.80 ID:GCxxEIm4 「いる」ではなく「いた」なら使ってもいい http://mevius.5ch.net/test/read.cgi/tech/1751545806/610
611: デフォルトの名無しさん [sage] 2025/07/30(水) 22:20:47.28 ID:zYz0+G1r >>606 それでよく高速化の専門家自称できんのな お前メモリーアクセスオーダーとかも理解できてないだろ 中の下を自覚したほうがいいぞ http://mevius.5ch.net/test/read.cgi/tech/1751545806/611
612: デフォルトの名無しさん [sage] 2025/07/30(水) 22:28:25.25 ID:bASHA+tv 100点先生は複雑な並列は専門外だったはず メモリ同期の抽象化やそれを用いたロックフリーアルゴリズムなど知らないと思う http://mevius.5ch.net/test/read.cgi/tech/1751545806/612
613: デフォルトの名無しさん [sage] 2025/07/30(水) 22:52:44.16 ID:+nnd8qy9 >>612 > メモリ同期の抽象化 横だけど、抽象化だけじゃなくてテストは必須な ユーザー環境でメモリオーバークロックやタイミングチューンでTSOが保たれてない場合をいくつも見たから http://mevius.5ch.net/test/read.cgi/tech/1751545806/613
614: デフォルトの名無しさん [sage] 2025/07/30(水) 23:25:58.88 ID:g7G1hz5M プログラミングではTotal Store Orderが保たれないハードを相手にする必要はないけど そのような破綻したハードが存在することを知っておかないと 正しく動かない環境があった時に原因が分からず悩みそうだ http://mevius.5ch.net/test/read.cgi/tech/1751545806/614
615: デフォルトの名無しさん [sage] 2025/07/31(木) 00:30:01.24 ID:QRajgvO2 知りたいと欲する者が実在すればいいけど 登場人物全員無欲だったりしたら欲しくもない物を押し売りするのは偽善だよ http://mevius.5ch.net/test/read.cgi/tech/1751545806/615
616: デフォルトの名無しさん [sage] 2025/07/31(木) 17:04:11.04 ID:HwmVfmnZ おすすめのLinuxネイティブGUIライブラリ http://mevius.5ch.net/test/read.cgi/tech/1751545806/616
617: デフォルトの名無しさん [sage] 2025/08/01(金) 06:41:29.25 ID:GwIUJJIi ネイティブとそれ以外は地球と宇宙のように分断されている 地球に隕石を落とせば解決するという風潮がある http://mevius.5ch.net/test/read.cgi/tech/1751545806/617
618: デフォルトの名無しさん [sage] 2025/08/01(金) 07:22:58.63 ID:k4bix39w >>616 RustならTUIで作れ http://mevius.5ch.net/test/read.cgi/tech/1751545806/618
619: デフォルトの名無しさん [sage] 2025/08/01(金) 07:28:36.21 ID:MHdoviLB いやGUIでいいやん、楽だぞ http://mevius.5ch.net/test/read.cgi/tech/1751545806/619
620: デフォルトの名無しさん [sage] 2025/08/01(金) 11:46:13.99 ID:cEhKZFCe TUIってGUIじゃなかったのか http://mevius.5ch.net/test/read.cgi/tech/1751545806/620
621: デフォルトの名無しさん [sage] 2025/08/01(金) 16:11:21.56 ID:8q5e+r5H 最近のTUIブーム笑うわ 画期的とかいってるやついるし 昔からあるから http://mevius.5ch.net/test/read.cgi/tech/1751545806/621
622: デフォルトの名無しさん [sage] 2025/08/01(金) 16:18:35.82 ID:D5M25Ws+ TUI が画期的なのではなくて React 風の考え方を導入したフレームワークの存在など、 モダンな UI 記述を TUI の世界に持ち込んできたことが流行の中心にある。 つまり文字中心のターミナルで充分な表現力だったのではないか、 今まで不必要にグラフィカルな表現をしていたのではないかという見直しだ。 http://mevius.5ch.net/test/read.cgi/tech/1751545806/622
623: デフォルトの名無しさん [sage] 2025/08/01(金) 16:20:56.12 ID:8q5e+r5H はいはい リアクティブの考え方自体昔からある Webあがりは歴史を知らない http://mevius.5ch.net/test/read.cgi/tech/1751545806/623
624: デフォルトの名無しさん [sage] 2025/08/01(金) 16:42:15.75 ID:JTQ+rqjD RUST自体は何言語で作られてるの http://mevius.5ch.net/test/read.cgi/tech/1751545806/624
625: デフォルトの名無しさん [] 2025/08/01(金) 16:46:03.35 ID:8ljNi7o8 ほんとTUIはいまさら ncursesで充分 http://mevius.5ch.net/test/read.cgi/tech/1751545806/625
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.033s*