1 名前:デフォルトの名無しさん mailto:sage [2022/01/27(木) 22:19:47.56 ID:avZQ9Wm7.net] 闘え ※前スレ C++ vs Rust https://mevius.5ch.net/test/read.cgi/tech/1619219089/ C vs C++ vs Rust Part.2 https://mevius.5ch.net/test/read.cgi/tech/1639539350/
910 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 17:44:36.67 ID:77d+30yb.net] >>895 > そんなの一行書くだけろ。。 できないプログラマーの典型で草 一行書くだけだから確実にできると言うならバグは無くなるわ > むしろ意図通りのデストラクタが動いてるか怪しい挙動するデストラクタのが問題起こりまくりだわ。 それはお前の能力が足らんだけ
911 名前:デフォルトの名無しさん [2022/04/03(日) 17:49:59.46 ID:rc6NcMYZ.net] >>895 defer使えば怪しい挙動は絶対しないとでも?
912 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 17:57:55.57 ID:9lFqLTmO.net] デストラクタでリソースが解放されることを保証するのはデータ構造を定義する人だけど deferの場合はデータ構造を使う人の責任になる データ構造を定義する回数と使う回数では普通は後者の方が多くなるから deferの方が間違いを起こしやすいと
913 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 19:34:48.12 ID:W9pHkRzU.net] >>894 実行時にオーバヘッドが出る形でしか実現できないやん
914 名前:デフォルトの名無しさん mailto:sage [2022/04/03(日) 20:40:47.40 ID:9lFqLTmO.net] >>899 オーバーヘッドが出てるのって具体的に何のこと? stdのLinkedListの実装にもオーバーヘッドあるの?
915 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 09:02:06.19 ID:14cK0a9Z.net] >>900 LinkedListってunsafeで実装されてるんだけど静的にメモリセーフティを実現する言語機能があるRustでそれをするっておかしいよね? それって行儀よく実装するとオーバーヘッドが出ることの裏返しだよね?ちょっとは頭を使おうか?
916 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 09:14:12.42 ID:y2zkcNcq.net] >>901 えっ、じゃあなんでunsafeという機能がわざわざ用意されてるの? 頭使って考えてみて
917 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 09:31:58.76 ID:WSInp7AV.net] >>901 linked listに限らず何でもunsafeで作られているよ unsafeは悪ではなく、安全なインタフェースを備えた型やモジュールの内部に閉じ込めるもの その結果Rustではプログラム全体の安全性を保証できる 悪なのはプログラム全体がunsafe状態なC/C++
918 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 09:56:40.12 ID:88Lrr0N7.net] >>902 そりゃRustの型システムがオーバーヘッドが起こるやり方でしか安全性を保証できないからでしょ? 頭使えないんだねかわいそう
919 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 10:04:31.11 ID:y2zkcNcq.net] >>904 そうそう、コンパイラとプログラマの責任範囲を明確化するための仕組みだよね 結局 >>899 で言いたかったのは safe rust だけで LinkedList を実装するとオーバーヘッドが生じると言うことだったんだね
920 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 10:09:11.84 ID:9r+bgOYm.net] >>903 それってRustの型システムに基づいて行儀よく実装するとオーバーヘッドが出ることへの反論になってないよね? つまりRustの型システムはdoubly linked listを含めたあらゆるデータ構造をオーバーヘッドなく実装できるほどの表現力がないってことだよね
921 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 10:23:50.48 ID:y2zkcNcq.net] >>906 safe rustの範疇ではあらゆるデータ構造を表現できないのはその通り なのでunsafeというescape hatchを用意している rustはpureな言語ではないのでコンパイラですべての安全性を保証することは最初から狙ってないよ
922 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 10:34:53.41 ID:M7C/Fpbq.net] >>906 それは違う 例えばVec(ベクタ)はRustが標準ライブラリで提供している型だが LinkedList(二重リンクリスト)もRustが標準ライブラリで提供している型である VecもLinkedListも内部でunsafeを用いているが安全なインタフェースのみを公開している その両者に違いはなくRustによる安全性の保証に何も問題を及ぼしていない
923 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 13:39:53.90 ID:RabHiWd3.net] オーバーヘッドwってことでいいじゃん 中途半端な知識でムキになるから無駄なやり取りが続くんだよ
924 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 15:17:06.36 ID:ilb8jjlp.net] >>908 > VecもLinkedListも内部でunsafeを用いているが安全なインタフェースのみを公開している ホントかなぁ。 ベクターやリストが管理するオブジェクト参照を、別の参照ポインタ に代入して、ベクターやリストを破棄した後で参照を使うとぬるぽになりそうだけど? これを防ぐには、ベクターやリスト自体はもちろん、各要素や生ポインタを含めて あらゆる変数に参照カウンタを設けた上で、参照数が0になったタイミングでオブ ジェクト自動破棄する必要があるが、まさにオーバーヘッド。
925 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 18:59:43.72 ID:RDBERkGC.net] rustって、unsafe使っていても メモリ安全のチェックはしてくれるって事であってる?
926 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 19:11:22.90 ID:vi3Hd2oR.net] >>911 そんなことはない。 ttps://doc.rust-jp.rs/book-ja/ch19-01-unsafe-rust.html
927 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 19:18:31.93 ID:UrWVuubJ.net] rustって、制限きついなら制限緩い他の言語に変換しやすいとかある?
928 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 20:04:42.98 ID:0mSmJ0PC.net] 標準ライブラリに問題がないって言い切れるの? コンパイラとか標準ライブラリを盲信できるほど完成度高いんですかね 盲信してると不具合の発見に支障が出そう
929 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 20:07:34.39 ID:Aq9lII9f.net] 嫌なら使わなければいいだけやろ
930 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 20:19:31.81 ID:VNZL7sLo.net] >>910 そんなRustの初歩くらいは学んでからレスしようぜw
931 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 20:23:28.80 ID:y2zkcNcq.net] >>914 プログラムがバグった時にまず自分のコードを疑うべきと言える程度には信頼できると思うよ
932 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 20:28:34.57 ID:88Lrr0N7.net] >>916 オーバーヘッドなのは否定できてなくて草
933 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 20:41:28.56 ID:y2zkcNcq.net] >>910 > ベクターやリストが管理するオブジェクト参照を、別の参照ポインタ > に代入して、ベクターやリストを破棄した後で参照を使うとぬるぽになりそうだけど? 以下のようなコードを意図してるんだと思うけど rust だとコンパイルエラーになるよ let v = vec![Box::new(1), Box::new(2)]; let ptr = &v[1]; drop(v); println!("{ptr}"); https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=f4b4be3e93f71ec0828c6039dd156cb7
934 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 20:48:51.57 ID:ZmDtAG5s.net] >>914 今までにコンパイラやライブラリのバグ見つけたことある? 自分が作り込んだバグとどっちが多かった?
935 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 21:00:31.84 ID:V8HUi7lD.net] 殆どの言語が標準ライブラリはバグってたりセキュリティの穴見つかったりして更新し続けてるがな。
936 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 21:11:15.35 ID:y9KalPQq.net] メモリ安全性に関していえば Rustなら不具合の可能性があるのはコンパイラとライブラリのunsafe領域だけだけど (しかもそれらはそこそこの人数でチェックされている) C/C++の場合ありとあらゆる箇所で可能性があるからな 盲信とかでなく単純に引く確率が低い
937 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 21:11:46.66 ID:yn3hKO4L.net] libcにもバグあるしそれどころか カーネルもヤバい問題発覚することがある もうパソコンを窓から投げ捨てよう
938 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 21:41:12.90 ID:dNgOu4No.net] >>921 だからそれお前が見つけたのか?
939 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 22:18:49.72 ID:yJV2c6am.net] 初心者ほど「コンパイラのバグ」などと言い出す ダニング=クルーガー効果である
940 名前:デフォルトの名無しさん mailto:sage [2022/04/04(月) 23:05:18.52 ID:jLJ2cB6c.net] >>910 あまりにも無知なその知識でRustを叩くのは無理がある そういうケースも含めて検出してくれるのがRust だからRustはC++よりも圧倒的に優れている
941 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 06:13:13.50 ID:l+kYPJyP.net] そろそろ飽きろよこの流れ
942 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 09:01:35.21 ID:rwKxODkm.net] >>926 Rustはunsafe内のメモリ関連のバグまでは検出しないけど? 例えRustには無知だとしてもunsafeという語感からだけでunsafe内では何も保証されないってことは推測できるよね?
943 名前:デフォルトの名無しさん mailto:sage [2022/04/05(火) 09:22:45.52 ID:i/q849BZ.net] >>928 もちろんそう それ以外の部分をRustは保証してくれるから大手IT企業を初めとして皆が採用している 全てがunsafeなC++を捨てつつある、
944 名前:デフォルトの名無しさん [2022/04/05(火) 11:55:20.23 ID:Md/fZtCu.net] 2038年問題を再発させるコードが多数の場所にコピーされてしまっている ttps://gigazine.net/news/20220330-2038-problem/ > エイドリアンさんが調べた限りでは、下記のリポジトリにて問題のあるコードが使用されていたとのことです。 > > O3DE > Dokany > Ceph-Dokan > libarchive > ghc::filesystem > ImageMagick > Cxbx-Reloaded > ReactOS > > また、下記のリポジトリについては記事作成時点で既にエイドリアンさんの指摘を受けてコード修正済みとなっていました。 > > OpenRCT2 > DuckStation
945 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 03:36:26.34 ID:A9app5rs.net] >>919 それ、子スレッドで実行する関数に引数として渡して、スレッド終了を待たずに 親スレッド側で解放するとかしたら、コンパイルエラーにならないと思うけど?
946 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 03:42:32.00 ID:ryRy0Ktk.net] >>931 そんなことは不可能だろう まずは基本的知識を学べや
947 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 04:46:14.51 ID:MueoLJZZ.net] エスパーさせんな、コードで示せ
948 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 09:00:45.09 ID:Z4fh8uHR.net] >>931 見事な恥の上塗りでワロタ
949 名前:デフォルトの名無しさん [2022/04/06(水) 09:22:57.25 ID:A9app5rs.net] >>932 何が不可能なの? 参照渡しされた場合、スレッド関数側ではメインスレッド側で 解放される変数の寿命が判らないから、参照カウントで実行時にはオブジェクト 寿命を管理できても、少なくともコンパイル時のエラーにはならないと思うが? >>933 Rustやってないし、やる気もない。 ちなみに、919みたいなケースは実際にはそもそも書かないが、コンパイラ依存だけど 戻り値としてローカル変数への参照を返すとかは、最近のC++だと警告が出る。 可変引数のprintf()等でも、昔は書式制御文字列と引数の数や型が一致していなく てもノーチェックだったけど、最近は警告が出るし。
950 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 09:29:13.74 ID:OcEMaDN/.net] >>935 妄想で思い込みをして架空の意味のない話を進めて批判している なんと愚かなことだろう
951 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 10:57:59.47 ID:X0SajXCN.net] >>931 エラーになるよ use std::{thread, time::Duration}; fn main() { let v = vec![Box::new(1), Box::new(2)]; thread::spawn(|| { thread::sleep(Duration::from_secs(100000)); let ptr = &v[1]; println!("{ptr}"); }); drop(v); } https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=6ffcf2e259e138e27d653db6fdd4fc98
952 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 11:01:15.13 ID:BAnc7YwE.net] >>935 C++相当のコードか擬似コードでもいいからお前が言う操作のコードを出せ スレッド間操作か参照の使い方周りでC++でもぶっ壊れるやつな Rust使いの誰かがコンパイルの通しようがないって教えてくれるだろうよ
953 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 11:41:09.81 ID:A9app5rs.net] >>397 それ、同じmain()スコープの中で宣言しているローカル関数だからでは? 普通、そんな書き方せんでしょ。 thread::spawnで起動している、無名関数を、引数ありの独立した関数として 定義して、参照渡しとしてスレッド実行した場合、コンパイル時の静的解析 ではエラー検出できない。
954 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 11:55:40.05 ID:KqMgG2U/.net] 流石にこのレベルの人を叩いて悦に入るのはやめようぜ
955 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 12:00:23.11 ID:a0CdlgS1.net] >>939 意味不明だな 実際にそういうコードをわかるように書いてくれ
956 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 15:45:42.18 ID:MueoLJZZ.net] thread::spawnには引数無しのクロージャしか渡せません pthread_createとかで明示的にvoid *を渡すのに相当する処理は、Rustだとこの引数無しクロージャにキャプチャさせる方法で実現されます で、それをやってるのが>>937 です
957 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 16:11:31.38 ID:Dn8F6G2j.net] >>924 VCいじってりゃ嫌でもforループ前の初期化バグにぶち当たるわ。 最適化オプション下げるとか、for内でやるのをやめるとかいろいろ修正方法はあるが。 むしろいままでコンパイラバグに当たらない方が不思議。 お前仕事してんのかって疑われるレベル。
958 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 16:23:15.68 ID:2Jp54xD1.net] forループ前の初期化バグってどんなの?
959 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 17:07:47.57 ID:X0SajXCN.net] >>931 こういうこと?これもエラーになる。 use std::{thread, time::Duration}; fn main() { let v = vec![Box::new(1), Box::new(2)]; thread::spawn(|| sub(&v[1])); drop(v); } fn sub(ptr: &i32) { thread::sleep(Duration::from_secs(100000)); println!("{ptr}"); } https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=d90b955b8539696c776b1d44b0e8c5a9 ちなみにこれはコンパイルが通る https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=38157f3760d2ce9dde7d9d22c74195ad これは通らない https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=38157f3760d2ce9dde7d9d22c74195ad
960 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 17:09:04.34 ID:X0SajXCN.net] >>945 URL間違えた コンパイル通るやつ https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=10577ae2a6cdd42a9815971f82772c3a コンパイル通らないやつ https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=9080880c0cab4626cd94cf4806b2e5a2
961 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 17:18:09.35 ID:vFuVta1u.net] >>943 具体的に書けよw
962 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 18:45:31.77 ID:A9app5rs.net] >>945 > こういうこと?これもエラーになる。 Rustの文法がよう判らんけど、おおむね合ってると思う。 ちなみに、C/C++だと大規模プログラム開発を想定して、ソース分割による分割 コンパイルや、ライブラリ化という仕組みがあるわけだが、Rustの言語仕様って そのあたりどうなん? 例えば、スレッド関数「fn sub(ptr: &i32)」が、「fn main() 」を別のファイルに (例: main.cpp, sub.cpp のように)実装してビルドするとか、スレッド関数の 「fn sub(ptr: &i32)」だけをライブラリ(dllまたはlib)化するとかできるの? そもそも、Rust でライブラリを書いたり、Rust で書いたプログラムって、他の 言語で書かれたライブラリ(OpenCVとか)とリンクできるのか?
963 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 18:47:00.11 ID:4TDuv4YW.net] pythonのライブラリとかgithubにいくらでもあるけど?
964 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 18:52:54.88 ID:X0SajXCN.net] >>948 モジュール分割は普通に備えてる というかC/C++のモジュール分割は貧弱な方で、大半の言語はまともな仕組み備えてるよ Rustでライブラリ作ってCから呼び出したり、CのライブラリをRustから呼び出すこともランタイムとかめんどくさいこと考えずに普通にできる
965 名前:デフォルトの名無しさん mailto:sage [2022/04/06(水) 22:27:56.00 ID:MiVqlX0M.net] Rustのモジュール分割はC/C++の分割コンパイルとはちょっと違う気がする C/C++だとソースファイルごとにコンパイルしてオブジェクト(.o)作ってからリンカでまとめるけど Rustは最初にcrate内のソースを1つにまとめてから一気にコンパイルする感じ (見えない部分で分割してるっぽいけどソースファイル単位じゃないしプログラマは意識しない) C/C++の.dllとか.libに対応するのはRustだとcrateになるからsubだけライブラリ化するなら ファイルを分けるというよりプロジェクト(crate)を分ける感じになるかな C/C++の.oに相当する中間ファイルはRustだと存在しないはず
966 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 06:01:34.50 ID:yfLrBpxG.net] いやgolangよりCとの相互利用はマシだけど、褒められるほどRustにCとの互換性はないよ。Dとかのほうがまだまし
967 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 07:14:19.71 ID:Ug2bY/ov.net] RustとC++の相互呼び出しはCXXで完璧や
968 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 07:28:15.01 ID:G2jE/Lgc.net] ぶっちゃけモジュール分割がなんでよしとされてるのかがわからない 過大評価やろ parseにオーバーヘッドあると言われているけどC/C++のような分割コンパイルの方が並列化できるしええやん
969 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 09:21:09.02 ID:0q4aQzv/.net] C++にはモジュール導入したいという 話はずっと前からなかったっけ
970 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 09:32:06.83 ID:jLJRe/XC.net] 分割コンパイルはgenericsとかtemplateと相性が悪いんだよね(C++の悩みの種になってるはず) Cの時代のマシンパワーだと最適解だったと思うけど Rustの // main.rs mod foo { pub fn f() {} } と // main.rs mod foo; // foo.rs pub fn f() {} を等価とみなせる言語設計は分かりやすくて余計な悩みが少ない
971 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 12:15:13.87 ID:Fr57TkZu.net] >>951 ちょっと調べてみたが、RustってFlutterと同様、結局のところ単なるコンパイラ コンパイラ(Rust→C++, Dart→C++)じゃんよ。 だから、どちらもターゲットプラットフォーム用のC++コンパイラ(Windowsなら Visual Studio(Build Tools)または MinGW、macOSならXcode)が要る。 > C/C++の.oに相当する中間ファイルはRustだと存在しないはず 隠蔽されているだけで、vclやgccが動いてリンカーに渡す段階で、オブジェクト ファイル(.oや.obj)が生成されている。 スタティックライブラリ(.aや.lib)は、 単なるオブジェクトファイルの寄せ集めなので、他のOSS含めてリンクできる。 オブジェクトファイル自体に対応していなけりゃスタティックライブラリをリンク できないし、ELFフォーマットのデバッガも使えないし、malloc()等のランタイム との内部整合性も取れないからな。 自転車に乗れない(C++で安全なプログラムが書けない)プログラマ向けの補助輪 みたいなもんか?
972 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 12:27:13.60 ID:lezm9YBI.net] >>957 前半は何言ってるのかわからんが codegen unitごと.oファイルが生成されるのはその通り codegen unitはソースレベルのmoduleごとに2つずつ作られcodegen単位で並列化される
973 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 12:32:34.52 ID:HPvPKplB.net] >>957 デタラメすぎる RustコンパイラはCコードやC++コードを生成しません あなたの書いていることは全て間違っています
974 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 12:44:03.67 ID:jLJRe/XC.net] >>957 main.cに対応するmain.oが存在しないという意味で書いたつもりだった 混乱させたみたいですまない
975 名前:デフォルトの名無しさん [2022/04/07(木) 12:45:05.63 ID:pUyNlzjX.net] >>957 補助輪、というより電動機かな 同じ自転車だけど、少ない力でこげる 結果的に同じ体力でより遠くへ行ける
976 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 13:35:54.27 ID:tEZE72Zs.net] Rustやる気ないとか言う割にはずいぶんと熱心じゃん The Bookあたりから読み始めてみては?
977 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 13:49:05.41 ID:Fr57TkZu.net] >>959 > RustコンパイラはCコードやC++コードを生成しません だったら、Visual Studio (Build Tools)や、Min-GW、Xcode等がインストール されていない環境で、Rustだけをインストールしてバイナリ生成してみな。 下請けにプラットフォーム固有のC++コンパイラを使っているから、ターゲット プラットフォーム毎に、オフラインインストーラ―が存在するんだよ。 ttps://forge.rust-lang.org/infra/other-installation-methods.html
978 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 14:01:29.41 ID:tEZE72Zs.net] >>963 それはできない ただしその理由はコンパイラを下請けとして利用しているからじゃなくて、リンカを下請けとして利用しているからだよ > Why might one not want to install using those instructions? > * Offline installation. ... 斜め読みしすぎじゃないですかね? オフラインインストーラがあるなんてどこに書いてある?
979 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 14:32:47.76 ID:0q4aQzv/.net] 空想上のRustに似た言語叩きする人多いな
980 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 14:49:00.36 ID:DqPGONrT.net] LLVMを知らないんだろ もう引退するお年頃
981 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 15:03:24.56 ID:cqCq8D8c.net] 5chに常駐してるようなC++民はビックリするほど見識が狭いよな ある意味コボラーと同じ人種
982 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 15:09:08.48 ID:Fr57TkZu.net] > オフラインインストーラがあるなんてどこに書いてある? 折角リンクを貼ってやったのに英語読めないの? 「Standalone installers」って とこ。 > The official Rust standalone installers contain a single release of Rust, > and are suitable for offline installation. その下にリンク集の表があるでしょ。 以下、直リンク抜粋 Windows+GCC(32-bit)用 https://static.rust-lang.org/dist/rust-1.59.0-i686-pc-windows-gnu.msi Windows+MSVC(32-bit)用 https://static.rust-lang.org/dist/rust-1.59.0-i686-pc-windows-msvc.msi Windows+GCC(64-bit)用 https://static.rust-lang.org/dist/rust-1.59.0-x86_64-pc-windows-gnu.msi Windows+MSVC(64-bit)用 https://static.rust-lang.org/dist/rust-1.59.0-x86_64-pc-windows-msvc.msi
983 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 15:34:45.27 ID:wO4kVij8.net] >>968 それは単にプラットフォーム毎にビルド済みのRustコンパイラと標準ライブラリが違うだけ いずれにしてもC++に変換してC++コンパイラを使ってるなんて事実はない
984 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 15:35:55.43 ID:tEZE72Zs.net] >>968 ああそこはこちらの勘違いでしたね すみません
985 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 15:55:01.85 ID:gcjUoiEr.net] ちんちんシュッ!シュッ!シュッ!
986 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 18:28:45.48 ID:6J24GmAj.net] >>954 クソデカヘッダファイルのパースコストは馬鹿にならないよ コンパイラはプリコンパイル済みヘッダファイルを用意したり、涙ぐましい努力をしている >>957 rustが必要としてるのはVS Build Toolのリンカやランタイムで、コンパイル自身はrustcというかLLVMがやっている vclは動かないよ
987 名前:デフォルトの名無しさん [2022/04/07(木) 22:11:21.15 ID:cJXUldxb.net] Rustの集大成と言えるFirefoxが世界で一番固まるブラウザとして名高いのだから、ユーザーに嫌がらせしたいプログラマはRustを使うべき。 タブレットモードで使ってると毎日一回は操作不能になるからね。 電源ボタン長押しして強制リセットするしかなくなる。
988 名前:デフォルトの名無しさん [2022/04/07(木) 23:12:28.96 ID:6mRJTF59.net] >>963 コンパイラとリンカを一緒くたにされてもなぁ。 それ言ったらc/c++も結局アセンブラ必要じゃん。 c/c++なんてアセンブリ言語使えない奴向けの補助輪じゃん。
989 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 23:26:31.11 ID:YR3mJewM.net] そいやRUSTってオプションでアセンブラ出力させたり出来るの?
990 名前:デフォルトの名無しさん mailto:sage [2022/04/07(木) 23:27:28.73 ID:YR3mJewM.net] >>973 まだservoとかだけでしょ?
991 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 00:19:49.85 ID:PcnkB3on.net] >>973 アプリケーションのせいで電源強制断を要求されるのはOSが悪いのでは... というのはさておきfirefoxの悪い部分がrustに依るものってのはどうやって調べたの?
992 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 01:42:20.81 ID:uV0lTSE5.net] それにマジレスするか
993 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 06:18:52.60 ID:8k2J9S8r.net] >>973 もしそれが本当ならばWindowsでの問題でしょう LinuxでFirefoxを使っているけど一度も固まったことがない
994 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 07:35:26.61 ID:UBiXicJa.net] 俺はwindowsでEdge使ってるけど一度も固まったことないな
995 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 07:40:49.60 ID:OhTsNUjo.net] Rustを叩くために>>973 が適当なホラを吹いてるのだろう 毎日固まるブラウザなんてあるわけないし 頻出するバグがあったらすぐに修整される
996 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 07:57:10.73 ID:phXvIdWB.net] そもそも>>725 が書いてるけどrustはまだ全体の1割位しか使ってないのにrustの集大成とかアホ晒しすぎw
997 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 08:00:48.24 ID:Z05AA1u1.net] firefoxは固まるもの。 固まったところで誰も気にしない
998 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 08:02:17.06 ID:cn2WsGzN.net] >>983 どんな環境で使っている? 一度も固まったことない
999 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 09:36:43.82 ID:gFm4wviN.net] >>982 登場して10年で1割ですか。100年後もfirefoxが動いてるといいですね。
1000 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 09:59:58.15 ID:Fa4rer7L.net] 既に昔からある動いているモジュールを書き換える無駄なことはしないからそんなもんじゃね? そもそもRust自体も他の言語と同様にlibc含めて鉄板のC製ライブラリ使いまくるしな どの言語でもそのへんは同じだろ
1001 名前:デフォルトの名無しさん [2022/04/08(金) 14:54:35.66 ID:aIPGNTn3.net] firefox は固まるっていうかメモリリークだな rust のコードが unsafe だらけになっているのかは知らんが タブを閉じても使い終わったメモリを開放しない ひたすら使用メモリが増え続けswapがいっぱいになって固まる
1002 名前:デフォルトの名無しさん mailto:sage [2022/04/08(金) 14:59:41.50 ID:LPi7J7jk.net] >>987 両方を使ってみればわかるが メモリをバカ食いするのはChromeの方
1003 名前:デフォルトの名無しさん [2022/04/08(金) 15:37:14.24 ID:aIPGNTn3.net] >>988 自分は firefox で swap に悩まされてて その後 chromium 系の vivaldi とか brave にして一気に快適になった メモリ4Gのマシンに linux 64bit を入れてた時の話だけど
1004 名前:デフォルトの名無しさん mailto:sage [2022/04/12(火) 07:13:47 ID:i2DHgPAx.net] firefoxのせいで、スレまでの流れまで止まったな
1005 名前:デフォルトの名無しさん mailto:sage [2022/0
] [ここ壊れてます]
1006 名前:4/15(金) 14:27:51.53 ID:sD2CwuNi.net mailto: >>957 なるほど 最初のころのC++といっしょで 単なるトランスレーターなんかrustって [] [ここ壊れてます]
1007 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 14:38:25.40 ID:sD2CwuNi.net] >>987 通信障害起こしてるのをfirefoxのせいにされてもなww firefox使ってる最中に固まったことあったよ 使ってる最中にSSDが死んでアクセス不能になったのが原因だった
1008 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 15:14:39.30 ID:k/yGxJzN.net] >>991 ちがうよ rustでのビルド必要なのはターゲットプラットフォーム用のリンカであってC++コンパイラは不要 RustはLLVM使ってるからLLVM bitcodeへのコンパイラとは言えるかも知れないけどC++は一切関与しないよ
1009 名前:デフォルトの名無しさん [2022/04/15(金) 17:33:35.75 ID:k+WJVc0v.net] >>991 バカそうなやつ
1010 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 20:07:09.22 ID:sD2CwuNi.net] リリースされて10年経過する言語に思いを寄せてるのは馬鹿の骨頂だろwww お前といっしょでもう終わってんだよハナタレ せめてIARあたりがリリースしてたんなら話は別だがな どこぞのチップメーカでrustコンパイラ出してるとこあったけ? チップメーカが見向きもしない言語それがRust って認識でFA? あ、そーそ、SystemC rustで書けるか? これぐらい書けなきゃC++はreplaceできない C++をreplaceが目標じゃなかったっけ?
1011 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 20:14:02.55 ID:sD2CwuNi.net] 大体 Rustなんてネーミングがセンスなさすぎだろ。あほすぎて。これで洒落たつもりかよ。 これからぴかぴかの新製品投入するときにRustてwwww 機械メーカなら絶対採用したくい名前だろこんなもん
1012 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 20:26:31.06 ID:k/yGxJzN.net] >>995 LLVMって知ってる?
1013 名前:デフォルトの名無しさん [2022/04/15(金) 20:35:07.13 ID:k+WJVc0v.net] >>996 確かに
1014 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 20:37:43.23 ID:tyfulKnM.net] というか何故か言語って大概ネーミングに疑問符がつくような感じだよね
1015 名前:デフォルトの名無しさん mailto:sage [2022/04/15(金) 20:38:50.95 ID:sD2CwuNi.net] rustてさび以外に "役に立たない" て意味もあるのな まさに、理念のみの 役 た た ず 言 語
1016 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 77日 22時間 19分 4秒
1017 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています