C vs C++ vs Rust Part.3

レス数が1000を超えています。これ以上書き込みはできません。
2022/01/27(木) 22:19:47.56ID:avZQ9Wm7
闘え
※前スレ
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/
2022/04/07(木) 06:01:34.50ID:yfLrBpxG
いやgolangよりCとの相互利用はマシだけど、褒められるほどRustにCとの互換性はないよ。Dとかのほうがまだまし
2022/04/07(木) 07:14:19.71ID:Ug2bY/ov
RustとC++の相互呼び出しはCXXで完璧や
2022/04/07(木) 07:28:15.01ID:G2jE/Lgc
ぶっちゃけモジュール分割がなんでよしとされてるのかがわからない
過大評価やろ
parseにオーバーヘッドあると言われているけどC/C++のような分割コンパイルの方が並列化できるしええやん
2022/04/07(木) 09:21:09.02ID:0q4aQzv/
C++にはモジュール導入したいという
話はずっと前からなかったっけ
2022/04/07(木) 09:32:06.83ID:jLJRe/XC
分割コンパイルはgenericsとかtemplateと相性が悪いんだよね(C++の悩みの種になってるはず)
Cの時代のマシンパワーだと最適解だったと思うけど
Rustの
// main.rs
mod foo { pub fn f() {} }



// main.rs
mod foo;

// foo.rs
pub fn f() {}

を等価とみなせる言語設計は分かりやすくて余計な悩みが少ない
2022/04/07(木) 12:15:13.87ID:Fr57TkZu
>>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++で安全なプログラムが書けない)プログラマ向けの補助輪
みたいなもんか?
2022/04/07(木) 12:27:13.60ID:lezm9YBI
>>957
前半は何言ってるのかわからんが
codegen unitごと.oファイルが生成されるのはその通り
codegen unitはソースレベルのmoduleごとに2つずつ作られcodegen単位で並列化される
2022/04/07(木) 12:32:34.52ID:HPvPKplB
>>957
デタラメすぎる
RustコンパイラはCコードやC++コードを生成しません
あなたの書いていることは全て間違っています
2022/04/07(木) 12:44:03.67ID:jLJRe/XC
>>957
main.cに対応するmain.oが存在しないという意味で書いたつもりだった
混乱させたみたいですまない
961デフォルトの名無しさん
垢版 |
2022/04/07(木) 12:45:05.63ID:pUyNlzjX
>>957
補助輪、というより電動機かな
同じ自転車だけど、少ない力でこげる
結果的に同じ体力でより遠くへ行ける
2022/04/07(木) 13:35:54.27ID:tEZE72Zs
Rustやる気ないとか言う割にはずいぶんと熱心じゃん
The Bookあたりから読み始めてみては?
2022/04/07(木) 13:49:05.41ID:Fr57TkZu
>>959
> RustコンパイラはCコードやC++コードを生成しません

だったら、Visual Studio (Build Tools)や、Min-GW、Xcode等がインストール
されていない環境で、Rustだけをインストールしてバイナリ生成してみな。

下請けにプラットフォーム固有のC++コンパイラを使っているから、ターゲット
プラットフォーム毎に、オフラインインストーラ―が存在するんだよ。

ttps://forge.rust-lang.org/infra/other-installation-methods.html
2022/04/07(木) 14:01:29.41ID:tEZE72Zs
>>963
それはできない
ただしその理由はコンパイラを下請けとして利用しているからじゃなくて、リンカを下請けとして利用しているからだよ

> Why might one not want to install using those instructions?
> * Offline installation. ...

斜め読みしすぎじゃないですかね?
オフラインインストーラがあるなんてどこに書いてある?
2022/04/07(木) 14:32:47.76ID:0q4aQzv/
空想上のRustに似た言語叩きする人多いな
2022/04/07(木) 14:49:00.36ID:DqPGONrT
LLVMを知らないんだろ
もう引退するお年頃
2022/04/07(木) 15:03:24.56ID:cqCq8D8c
5chに常駐してるようなC++民はビックリするほど見識が狭いよな
ある意味コボラーと同じ人種
2022/04/07(木) 15:09:08.48ID:Fr57TkZu
> オフラインインストーラがあるなんてどこに書いてある?

折角リンクを貼ってやったのに英語読めないの? 「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
2022/04/07(木) 15:34:45.27ID:wO4kVij8
>>968
それは単にプラットフォーム毎にビルド済みのRustコンパイラと標準ライブラリが違うだけ
いずれにしてもC++に変換してC++コンパイラを使ってるなんて事実はない
2022/04/07(木) 15:35:55.43ID:tEZE72Zs
>>968
ああそこはこちらの勘違いでしたね
すみません
2022/04/07(木) 15:55:01.85ID:gcjUoiEr
ちんちんシュッ!シュッ!シュッ!
2022/04/07(木) 18:28:45.48ID:6J24GmAj
>>954
クソデカヘッダファイルのパースコストは馬鹿にならないよ
コンパイラはプリコンパイル済みヘッダファイルを用意したり、涙ぐましい努力をしている

>>957
rustが必要としてるのはVS Build Toolのリンカやランタイムで、コンパイル自身はrustcというかLLVMがやっている
vclは動かないよ
973デフォルトの名無しさん
垢版 |
2022/04/07(木) 22:11:21.15ID:cJXUldxb
Rustの集大成と言えるFirefoxが世界で一番固まるブラウザとして名高いのだから、ユーザーに嫌がらせしたいプログラマはRustを使うべき。
タブレットモードで使ってると毎日一回は操作不能になるからね。
電源ボタン長押しして強制リセットするしかなくなる。
974デフォルトの名無しさん
垢版 |
2022/04/07(木) 23:12:28.96ID:6mRJTF59
>>963
コンパイラとリンカを一緒くたにされてもなぁ。
それ言ったらc/c++も結局アセンブラ必要じゃん。
c/c++なんてアセンブリ言語使えない奴向けの補助輪じゃん。
2022/04/07(木) 23:26:31.11ID:YR3mJewM
そいやRUSTってオプションでアセンブラ出力させたり出来るの?
2022/04/07(木) 23:27:28.73ID:YR3mJewM
>>973
まだservoとかだけでしょ?
2022/04/08(金) 00:19:49.85ID:PcnkB3on
>>973
アプリケーションのせいで電源強制断を要求されるのはOSが悪いのでは...
というのはさておきfirefoxの悪い部分がrustに依るものってのはどうやって調べたの?
2022/04/08(金) 01:42:20.81ID:uV0lTSE5
それにマジレスするか
2022/04/08(金) 06:18:52.60ID:8k2J9S8r
>>973
もしそれが本当ならばWindowsでの問題でしょう
LinuxでFirefoxを使っているけど一度も固まったことがない
2022/04/08(金) 07:35:26.61ID:UBiXicJa
俺はwindowsでEdge使ってるけど一度も固まったことないな
2022/04/08(金) 07:40:49.60ID:OhTsNUjo
Rustを叩くために>>973が適当なホラを吹いてるのだろう
毎日固まるブラウザなんてあるわけないし
頻出するバグがあったらすぐに修整される
2022/04/08(金) 07:57:10.73ID:phXvIdWB
そもそも>>725が書いてるけどrustはまだ全体の1割位しか使ってないのにrustの集大成とかアホ晒しすぎw
2022/04/08(金) 08:00:48.24ID:Z05AA1u1
firefoxは固まるもの。
固まったところで誰も気にしない
2022/04/08(金) 08:02:17.06ID:cn2WsGzN
>>983
どんな環境で使っている?
一度も固まったことない
2022/04/08(金) 09:36:43.82ID:gFm4wviN
>>982
登場して10年で1割ですか。100年後もfirefoxが動いてるといいですね。
2022/04/08(金) 09:59:58.15ID:Fa4rer7L
既に昔からある動いているモジュールを書き換える無駄なことはしないからそんなもんじゃね?
そもそもRust自体も他の言語と同様にlibc含めて鉄板のC製ライブラリ使いまくるしな
どの言語でもそのへんは同じだろ
987デフォルトの名無しさん
垢版 |
2022/04/08(金) 14:54:35.66ID:aIPGNTn3
firefox は固まるっていうかメモリリークだな
rust のコードが unsafe だらけになっているのかは知らんが
タブを閉じても使い終わったメモリを開放しない
ひたすら使用メモリが増え続けswapがいっぱいになって固まる
2022/04/08(金) 14:59:41.50ID:LPi7J7jk
>>987
両方を使ってみればわかるが
メモリをバカ食いするのはChromeの方
989デフォルトの名無しさん
垢版 |
2022/04/08(金) 15:37:14.24ID:aIPGNTn3
>>988
自分は firefox で swap に悩まされてて
その後 chromium 系の vivaldi とか brave にして一気に快適になった
メモリ4Gのマシンに linux 64bit を入れてた時の話だけど
2022/04/12(火) 07:13:47.72ID:i2DHgPAx
firefoxのせいで、スレまでの流れまで止まったな
2022/04/15(金) 14:27:51.53ID:sD2CwuNi
>>957
なるほど
最初のころのC++といっしょで
単なるトランスレーターなんかrustって
2022/04/15(金) 14:38:25.40ID:sD2CwuNi
>>987
通信障害起こしてるのをfirefoxのせいにされてもなww
firefox使ってる最中に固まったことあったよ
使ってる最中にSSDが死んでアクセス不能になったのが原因だった
2022/04/15(金) 15:14:39.30ID:k/yGxJzN
>>991
ちがうよ
rustでのビルド必要なのはターゲットプラットフォーム用のリンカであってC++コンパイラは不要

RustはLLVM使ってるからLLVM bitcodeへのコンパイラとは言えるかも知れないけどC++は一切関与しないよ
994デフォルトの名無しさん
垢版 |
2022/04/15(金) 17:33:35.75ID:k+WJVc0v
>>991
バカそうなやつ
2022/04/15(金) 20:07:09.22ID:sD2CwuNi
リリースされて10年経過する言語に思いを寄せてるのは馬鹿の骨頂だろwww
お前といっしょでもう終わってんだよハナタレ
せめてIARあたりがリリースしてたんなら話は別だがな
どこぞのチップメーカでrustコンパイラ出してるとこあったけ?
チップメーカが見向きもしない言語それがRust って認識でFA?
あ、そーそ、SystemC rustで書けるか?
これぐらい書けなきゃC++はreplaceできない
C++をreplaceが目標じゃなかったっけ?
2022/04/15(金) 20:14:02.55ID:sD2CwuNi
大体
Rustなんてネーミングがセンスなさすぎだろ。あほすぎて。これで洒落たつもりかよ。
これからぴかぴかの新製品投入するときにRustてwwww
機械メーカなら絶対採用したくい名前だろこんなもん
2022/04/15(金) 20:26:31.06ID:k/yGxJzN
>>995
LLVMって知ってる?
998デフォルトの名無しさん
垢版 |
2022/04/15(金) 20:35:07.13ID:k+WJVc0v
>>996
確かに
2022/04/15(金) 20:37:43.23ID:tyfulKnM
というか何故か言語って大概ネーミングに疑問符がつくような感じだよね
2022/04/15(金) 20:38:50.95ID:sD2CwuNi
rustてさび以外に
"役に立たない"
て意味もあるのな
まさに、理念のみの

 役 た た ず 言 語
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 77日 22時間 19分 4秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。