[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/24 13:42 / Filesize : 280 KB / Number-of Response : 1007
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

結局C++とRustってどっちが良いの? 6traits



1 名前:デフォルトの名無しさん [2023/07/29(土) 15:05:46.55 ID:2Hm/yplK.net]
C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」

っていう雑談スレ。

前スレ 
https://itest.5ch.net/mevius/test/read.cgi/tech/1688129795

関連スレ(マ板): Google&MS「バグの70%はC/C++。Rustにする」
https://medaka.5ch.n...cgi/prog/1619943288/

2 名前:デフォルトの名無しさん [2023/07/29(土) 15:09:04.43 ID:2Hm/yplK.net]
Rustはライフタイムの管理がムズいな。上手くいくかなと思っても結構コンパイルエラーが起こる。これは自分がライフタイムを正確に理解してないだけ?

3 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 15:12:09.86 ID:nTghkNr5.net]
>>1
関連スレ(マ板): Google&Microsoft「セキュリティバグの70%はC/C++のメモリ管理ミス。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/

4 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 15:14:14.57 ID:nTghkNr5.net]
クラウド世界トップシェアのAWSもRustで構築されているらしい

https://japan.zdnet.com/article/35183866/
AWS (Amazon Web Services)は、「Rust」を使っている大きな理由として、エネルギー効率の高さを挙げる。
AWSは早くからRustを採用し、Rust Foundationの創設にも携わった。
現在もRustの普及に熱心に取り組んでいる。

AWSのソフトウェアエンジニアで、Rustの普及に取り組む
Shane Miller氏と主任エンジニアのCarl Lerche氏の投稿によれば、
Rustはメモリー安全性を高め、セキュリティ関連の不具合を減らす役に立つだけでなく「エネルギー効率に優れている」。
Amazonは、2025年までにデータセンターの100%を再生エネルギーでまかなうという目標を掲げ、
データセンターの環境負荷の軽減に取り組んでいる。
Rustの採用はその一翼を担うという。

Rustで構築されたAWSサービスの例としては、
コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、
「Amazon Simple Storage Service(S3)」、
「Amazon Elastic Compute Cloud(EC2)」、
コンテンツ配信ネットワーク「Amazon CloudFront」、
LinuxベースのコンテナーOS「Bottlerocket」などがある。

5 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 15:41:05.71 ID:huwazm+x.net]
もう決着ついたじゃん

6 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 16:23:31.04 ID:SDRO8Mha.net]
=== 複製おじさん(通称複おじ)について ===
Rustスレを中心に活動し、2023年4月現在で1年以上ム板に住み着くRustacean。無自覚な荒らし。

Rustスレでは、基本的に他住民の意見を聞いて糧とすることなく、自らのコードが最善であると、ID変更自演を交えいつまでも主張し続ける。
同スレで「所有権が複製される」という違和感のある表現を、「違和感がある」とする他住民の意見をすべて否定してしつこく擁護し続けたことから、「複製おじさん」というあだ名が付けられた。
それ以外のム板スレでは、基本的に他住民の意見を聞いて糧とすることなく、Rustこそが最善であると、ID変更自演を交えいつまでも主張し続ける。
その基本戦術は、「GC言語は遅い」の一声でC/C++/Rust以外の言語を否定し、残ったC/C++は安全ではないので、Rustが最善であるとするもの。

しかしながら、Rust以外の言語に関しては、正当な批判を展開するのに十分な知識を持っているとは言いがたい。
本スレPart1では、C++の問題点を指摘しようとして多数の誤り・知識不足を露呈することとなった。特にしつこく食い下がったのが「動的ディスパッチ」に関する誤解である。
https://mevius.5ch.net/test/read.cgi/tech/1677286186/786-799(ID:Evbafc70とID:RiLc+pIfが複製おじさんであると考えられている)
要約すると、通常「条件分岐」と呼ばれるものを「動的ディスパッチ」と呼ぶのが正しいと主張し続けたのである。
常識的にはあり得ない誤解だが、提示されたC++のコードが自らの主張(C++にはパターンマッチが無い)に不都合であると感じたためか、C++のコードを正しく読み解くことができないにもかかわらず脊髄反射的に否定してしまい、その根拠として誤った論理をこじつけてしまったものと思われる。

ちなみにこの後、同種の誤解を持って書き込むID:wHEiYRW7(これはID使用歴的に複製おじさんとは考えにくい)に対して、正しい理解に基づく指摘を行う単発IDが複数出現するが、この中にも複製おじさんが多数含まれていると考えられている。
このように自分の誤りを認識した場合、それを認める書き込みは決して行わず、別人の振りをして最初から正しく理解していた体を装うのも複製おじさんの特徴である。

7 名前:デフォルトの名無しさん [2023/07/29(土) 16:55:07.62 ID:c1f+so80.net]
>>5
うんうんよかったよね、おめでとう

8 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 17:37:52.03 ID:I0+lwIGZ.net]
前スレで、moveいるいらないっぽい話がちょろっと出てたけど、
moveまわりを避けて、実直にポインタでやりとりする書き方してるんだろうな
APIにごく近いところに住んでて、簡潔に書くようにしてたら、おのずとそうなるかと

9 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 19:15:34.26 ID:of1FckjJ.net]
C++のtemplateの扱いもガチ勢とコンテナ専で意見が分かれそうだな
マルチパラダイム言語だから仕方ないけど見る人によっては無駄に複雑化してるかもしれない

>>1
亀だけどスレ立て乙です

10 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 21:45:32.91 ID:XwXxiU6u.net]
>>9
C++の最大の特徴は後方互換性だよ
拡張された部分が複雑で気に入らなければ
使わなくても良いんだよ



11 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 23:38:06.97 ID:I6XWshKt.net]
じゃあ過去のコードを手直しせずに新しいコンパイラでコンパイルできるのかと言えばそうでもない

12 名前:デフォルトの名無しさん mailto:sage [2023/07/29(土) 23:59:23.36 ID:XwXxiU6u.net]
コンパイラのバージョン上げて必要になる修正なんて微々たるもの
あんまりコンパイラのバージョン跨ぐと修正が多くなるけども
追従していけばそれほど大変でもない
例の人には特に苦手な作業だろうw

13 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 03:38:14.45 ID:8vbtpK07.net]
Rustを使ってる人は、
何か作りたいものが有って作ってるんじゃなく、
自己アピールや書籍を書いたりするためにしている人が多い。

14 名前:デフォルトの名無しさん [2023/07/30(日) 07:07:33.08 ID:zpxjufbE.net]
>>964 前スレから
>>>962
>>C++20もconceptとかrequireとか言い出してるから心配しなくていいよ
>最近のC++に問題が多数混入したことは知られているが、
>人気が絶頂だったころのC++はシンプルで分かり易かったぞ。

最近っていつ?

15 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 07:30:46.91 ID:O1YJNKqz.net]
C++って、全機能使いこなせないと殴られるんちゃうかみたいな ふいんきあった
仕様書頭に入ってないと発言権ありません的な

まあでもそのくらいの気合はあって悪くない
Rustを前にして、苦手意識のほうを捨てることにしたよ

16 名前:デフォルトの名無しさん [2023/07/30(日) 07:30:53.64 ID:CCkbn9cO.net]
>>13
私は非同期並列処理を用いた高速な行列演算フレームワークを開発しているところ何ですけど。

17 名前:デフォルトの名無しさん [2023/07/30(日) 09:04:44.76 ID:azQXcNDB.net]
>>968
メンド臭いな
もっとシンプルにしろ

18 名前:デフォルトの名無しさん [2023/07/30(日) 09:08:21.61 ID:azQXcNDB.net]
>>977
気持ちは判る
改悪は事実だが元々良かった訳でもないしな

19 名前:デフォルトの名無しさん [2023/07/30(日) 09:11:27.27 ID:azQXcNDB.net]
>>984
これも判る
std::vectorもstd::listも馬鹿設計

20 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 09:15:05.98 ID:UyrP6xJo.net]
あたまのおかしい連続レス
>>1
こんな板



21 名前:違いのクソスレ立てるくらいならワッチョイ付きのまともなRustスレ立てろ
ここは頭のおかしい荒らしを養殖、醸成させるスレになってんだよ
[]
[ここ壊れてます]

22 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 09:16:12.95 ID:azQXcNDB.net]
>>2
むずいというよりメンドくさいだけ
考え方はシンプル
メンドくささを受け入れられない気持ちは判る

23 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 09:20:35.40 ID:azQXcNDB.net]
>>20
スレタイを unsafe {} で囲め

24 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 10:20:14.20 ID:s4F4miSt.net]
>>22
unsafeがあれば安心安全だよな

25 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 11:29:34.23 ID:Phugis3j.net]
>>19
どういった点が? 煽りではなく

26 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 11:31:46.14 ID:PxbGsfYc.net]
>>21
関数引数のライフタイム注釈は、まあ、分かるんだけど、
structに対するライフタイム注釈は、色々な書籍を見ても、
厳密な定義が分からなかった。
ちゃんと、数学的な言葉や擬似コードなどで書いて欲しい。
たとえば、注釈Aと注釈Bの積集合が、戻り値のライフタイム
になる、みたいな言葉で書くのが数学的な書き方なんだが、
今のRustの仕様書では、そのような言葉で書かれていないので
精密な定義が分からない。
なので、ちゃんとしたプログラムが出来ない。

27 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 11:32:55.90 ID:PxbGsfYc.net]
>>24
気付くかどうかがその人の能力。
具体的にプログラミングして実現する実装能力とは別。

28 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 11:38:08.04 ID:wjjxPYUe.net]
Haskellバカも含めて論文だの厳密だの言うくせに誰もRFC2094を読んでいないのはなぜなのか
https://ubnt-intrepid.netlify.app/rfc-2094-ja/

29 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 11:57:11.73 ID:zED6HehG.net]
煽ったり荒らしたりして情報を引き出すやり方なんだろう
自己中

30 名前:デフォルトの名無しさん [2023/07/30(日) 11:58:14.59 ID:Phugis3j.net]
>>26
>気付くかどうかがその人の能力。
「俺は問題が分かっている気づかないお前は能力が低い」では議論にならない
こういう言い回しが散見される
あなたが社会に馴染めない原因



31 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 12:00:32.88 ID:Phugis3j.net]
>>25
規格をまとめれば査読されるだろうからマシになる

32 名前:デフォルトの名無しさん [2023/07/30(日) 12:09:03.54 ID:3Gt2feL7.net]
>>25
君の頭の悪さをRustのせいにするなよな

33 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 13:09:07.24 ID:wjjxPYUe.net]
>>20
ワッチョイ付きスレもあるよ
単発自演バカ以外はこんなスレ求めてないから機能停止してるけど
https://mevius.5ch.net/test/read.cgi/tech/1657382429/

34 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 15:31:48.90 ID:EsXxjTNc.net]
>>31
なんとでも言え。
俺は現実世界では優秀だと認められてるから。

35 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 16:02:20.57 ID:Dx2gCh8i.net]
虚しい人生だったなぁ

36 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 17:28:04.45 ID:EsXxjTNc.net]
>>34
おまえはおまえでちゃんとやっているつもりなんだろうが、
おれはおれでちゃんとやっているつもりだ。
Rustを非推奨とするのは、俺の心からの日本や世界への
愛でもある。
俺の考えでは、Rustは人類を良く無い方向に導くから
それを阻止しようと考えている。いわば、聖戦のようなもの。

37 名前:デフォルトの名無しさん [2023/07/30(日) 18:04:19.90 ID:xwHMDX1r.net]
現実世界でも優秀でないのは文章を見れば一目瞭然
ある一定以上の知性がある人はここまで馬鹿な文章を書かないから

38 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 18:10:24.42 ID:EsXxjTNc.net]
>>36
俺は左脳的じゃないからかも。
色々調べてみると、右脳優位らしいし。

39 名前:デフォルトの名無しさん [2023/07/30(日) 18:25:30.98 ID:cVJ/YlET.net]
脳の言語機能が発達してない人にプログラミングは無理だろ
少なくとも今の技術では

40 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 19:00:04.97 ID:v002Bwgv.net]
難化の原因の一つはstatic変数の悪口を言ったこと
だから昔の技術ではプログラミングできた人達も、今の技術では無理になった



41 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 19:38:56.42 ID:EsXxjTNc.net]
>>38
でも俺は計算は得意だよ。

42 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 20:15:01.23 ID:Lf76jods.net]
>>35
歳はかなり上のはずなのに
時折書く文章は中学生みたい
引きこもりなのかな?

43 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 21:19:18.98 ID:BvovDmTI.net]
本当に頭がよければ世界の80億人を愛するとか簡単に言うわけないんだよな
少なくとも世界中に足を運んで交流してからだろ

44 名前:デフォルトの名無しさん [2023/07/30(日) 21:27:24.25 ID:Phugis3j.net]
歳は若くても45くらい多分50代後半かなと思う
それで>>35の書き込みだよ
社会経験が乏しいだと思う
俺はこの人は高齢引きこもりなんだと思う
何かの事情があったのだろう

45 名前:デフォルトの名無しさん mailto:sage [2023/07/30(日) 21:31:43.58 ID:v002Bwgv.net]
両者とも何か、リスクが低過ぎる物事に対する憎悪を感じる
詐欺よりも未定義の言葉を嫌うのもリスクが低過ぎるからじゃないか

46 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 02:12:09.36 ID:7hP7Lhrw.net]
病人の相手を任せるためにも、はやくAIの開発がすすんでほしいわ

47 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 03:49:12.78 ID:nT30zTPs.net]
まず、このスレの連中は、いったん素晴らしいと思い込んだ
ものを無批判に受け入れすぎている。そして、英語圏の
批評、批判を全く読んでない。
読んでいればRustの評価は余り高くなくて、意見が
半々くらいに分かれていることがすぐに分かるから。

48 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 07:47:53.35 ID:lZja90Kc.net]
OSなんて一つの言語で記述するメリットが大きすぎる
それを上回るよほどの大きなメリットがない限り他の言語を導入することはない

しかしMicrosoftはWindowsでRustを導入しGoogleはAndroidでRustを導入した
C++を邪道な言語として使用を拒否してきたLinuxもRustを導入した

49 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 07:49:34.85 ID:OPAJDfNb.net]


50 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 08:31:37.72 ID:3Z/Pn9k1.net]
まあmalloc失敗でpanicにならんのならええんやない?



51 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 10:22:06.96 ID:8wbRk2dY.net]
>>49
Rust の方でも .unwrap() 禁止するか unsafe {} 必須にして欲しいわ

52 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 10:26:23.87 ID:fc/+y7rt.net]
OSではCの支持率100%になってもアセンブラを排除するのは不可能
つまり、数値を抑制するのではなく
数値が上がりすぎるとスカウターみたいに爆発する脆弱性をなくせばいい

安全をどれだけ信奉してもunsafeを排除できないのは良いことだ

53 名前:デフォルトの名無しさん [2023/07/31(月) 11:49:57.24 ID:ulrQSEBD.net]
>>47
>C++を邪道な言語として使用を拒否してきたLinuxもRustを導入した
$ wget 'https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.4.7.tar.xz'
$ tar xJf linux-6.4.7.tar.xz
$ find linux-6.4.7 -name *.c -o -name *.h | xargs cat | wc -l
32115936
$ find linux-6.4.7 -name *.rs | xargs cat | wc -l
17057
たった0.05%だよ
rsソースの増加速度よりcソース増加速度の方が速いのも前回示した通り

>しかしMicrosoftはWindowsでRustを導入しGoogleはAndroidでRustを導入した
Windowsは前に出回ったスクショにファイルサイズが出てたねw
Andoroidで使われているとか言ってるRustは果たしてどのくらいなのかな?

54 名前:デフォルトの名無しさん [2023/07/31(月) 11:54:50.00 ID:ulrQSEBD.net]
>>46
ここは北朝鮮じゃないので何を使うかは選択でき自由がある
「無批判に受け入れすぎている」は全く当たらない

55 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 12:41:48.10 ID:lZja90Kc.net]
>>49
RustはLinuxなどのおかげで改善された
メモリ確保もエラーを返せるようになった

56 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 13:01:06.05 ID:sgBBFIN2.net]
>>52
ぐぐーるもM$も基本ウソツキだシナ

57 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 13:48:39.26 ID:fc/+y7rt.net]
行数もいいけど独裁者が何人いるか数えてみろよ
たったの1人しかいないから無力の無能だと言えるなら正直者
だが掌返して1人だからといって無能とは限らないとか言い出せば嘘つきだ

58 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 13:56:25.29 ID:SQ3dcTOC.net]
>>56
意味がわからん
日本語も書けなくなったのか?

59 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 13:58:30.69 ID:eCR2qI4e.net]
>>57
多分、アメリカ人が書いている。

60 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 14:57:58.99 ID:MuwrPG3l.net]
>>52
あの頑固者のLinusが解禁したこと自体が画期的

RustがOKなら、Rust程度のOOPはOKってことで、近い言語が続々参入したりして
そうなると、simple化付きC++ってのも見えてくる



61 名前:デフォルトの名無しさん [2023/07/31(月) 15:00:33.59 ID:ulrQSEBD.net]
>>59
Rustコンパイラは何を使うの?

62 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 15:05:23.78 ID:OPAJDfNb.net]
何かの政治的な理由でRustを仕方なく使ったんじゃね?

63 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 16:30:08.80 ID:MuwrPG3l.net]
>>60
知らんまじで 処理系に指定があるかまでは存じ上げず

64 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 18:53:04.02 ID:ky4iWRF2.net]
普通にrustc(+llvm)でいいでしょ
知らんけど

65 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 19:29:15.62 ID:f18AP/yx.net]
>>63
じゃカーネルのコンパイルは何使うの?

66 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 22:08:37.01 ID:+bjI2PCn.net]
カーネルおじさん

67 名前:デフォルトの名無しさん mailto:sage [2023/07/31(月) 23:55:46.68 ID:bJxDuGa3.net]
どいつもこいつもマウントを取る相手に飢えてるんやなあって

68 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 00:02:17.45 ID:lcAcDegU.net]
パタリとレスが止まったが
>>59みたいなこと書くのなら>>60とか>>64には答えられんとなぁw

69 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 01:13:33.06 ID:enF/Vqu1.net]
カーネルは知らないがrustcでコンパイルしたものとc言語で書かれたものはリンクできて動いてるし何を問題にしているのかわからない
最近はPythonやJavaScriptのライブラリもRustで書かれることが増えている

70 名前:デフォルトの名無しさん [2023/08/01(火) 01:42:20.33 ID:lcAcDegU.net]
>>68
Linuxカーネルは伝統的にgccでコンパイルされてきた
rustのコードはrustc on llvmでコンパイルされる
そうするとgccが吐いたオブジェクトファイルと
rustc on llvmが吐いたオブジェクトファイルをリンクできるのか?
という疑問が普通に浮かぶ
[解法1] できるのなら何も問題ない
[解法2] できないのならカーネルをclang on llvmでビルドすればリンクできるだろう
最近はclang on llvmでカーネルをビルドすることもあるみたいで
検索するとAndroidはclangらしい
[解法3] あるいはgccrsでrustコードをコンパイルすればgccのコードとリンクできるだろう
さて始まったらしい(しかし何もリリースされていないw)カーネルでRustの利用方法は
1なのか2なのか3なのか? あるいは別の方法かな?



71 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 01:44:23.88 ID:lcAcDegU.net]
>>59みたいなこと書くのなら答えられんとなぁw

72 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 01:47:19.20 ID:lcAcDegU.net]
WindowsでRustの利用が始まっているらしいが
MSはllvm使うのかね? Visual Rustかね?

73 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 02:10:15.58 ID:enF/Vqu1.net]
>>69
何を問題にしているのかさっぱりわからん
gccもclangも同じELF形式のオブジェクトファイルを吐くだけだぞ
共有ライブラリなども当然同じものが使われている
コンパイラ毎に別々の形式を吐いて共有ライブラリなども別々に用意されていると勘違いしている??

74 名前:デフォルトの名無しさん [2023/08/01(火) 02:15:20.41 ID:8wU+ches.net]
rustのコードはrustc on llvmでコンパイルされる
そうするとgccが吐いたオブジェクトファイルと
rustc on llvmが吐いたオブジェクトファイルをリンクできるのか?

あほすぎわろす

75 名前:デフォルトの名無しさん [2023/08/01(火) 02:28:22.85 ID:lcAcDegU.net]
>>72,73
じゃ1で良いのかな?

76 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 02:44:40.50 ID:enF/Vqu1.net]
そもそもRustは全く関係なくC言語だけを使う世界でも同じ話
コンパイラを変えてもリンクする既存ライブラリは同じものを指定して同じものをリンクするだろ
それを知らないとはエアプログラマーかね?

77 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 02:46:40.94 ID:rdOaCXEZ.net]
まずrustcがllvmでコード生成してることを知ってるかどうか確認する必要があるな
rustc on llvmという表現に若干の不安を感じる

もしかしたらllvmを知ってるかどうかの確認も必要かもしれない

78 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 03:08:01.35 ID:lcAcDegU.net]
>>75,76
じゃ1で良いのかな?
つまりカーネルはgccでビルドして
Rustで書かれたカーネルモジュールは(まだないけどもw)
rustcでコンパイルするのかな?

79 名前:デフォルトの名無しさん [2023/08/01(火) 03:19:00.62 ID:y4WjFr+T.net]
coff とか omf とか elf とか面倒だよなω
D は沈没したしωωω

80 名前:59 mailto:sage [2023/08/01(火) 06:25:09.53 ID:1HHpj/ls.net]
夏風邪で寝込んでた 隠れ新型コロナかもしれん ちなマスクはしてる

俺はC++派だし、どうしてるんかまで知らんって
Rust部のツールチェーンのバージョンを指定してるんじゃないか
見に行く元気はない まだだりぃ

Rustの努力にはライバルながら賛辞を贈る
Rustの成功をC++に取り込むべきだと思ってるからね



81 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 10:31:09.40 ID:1HHpj/ls.net]
ぐぐったらこれがあったので貼る
https://docs.kernel.org/rust/quick-start.html

引き続き、精読する元気はない(w

82 名前:デフォルトの名無しさん [2023/08/01(火) 10:39:09.49 ID:lcAcDegU.net]
>>80
>>69の解法2だね

>>72,73,75,76
何で解法1じゃないの?
何でvery experimentalなの?

83 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 11:29:23.00 ID:a8DQwFPL.net]
Rustに詳しい人しか答えられないような内容を
ここに書くべきじゃない。
Rust専門スレがあるのに、何故そこに書かないか。

84 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 11:32:16.29 ID:AvEKEx5a.net]
昔はコンパイラとリンカは別物でコンパイラはposix標準のライブラリファイルを出すのが仕事でその後各言語が吐き出したライブラリファイルをリンカでくっつけてた
しかし今はコンパイラがリンクまでやってるのでこの“別言語間のリンク”がどうなんとなってるけど、流石にコンパイル後リンク前のライブラリファイル形式もその形式のファイルをはくオプションも残ってるやろ

85 名前:デフォルトの名無しさん [2023/08/01(火) 11:34:34.48 ID:lcAcDegU.net]
>>82
>Rustに詳しい人しか答えられないような内容を
>ここに書くべきじゃない。
何やそれw

自分が詳しくないこと分からないことについては
ここに限らず(5chにも限らず)書くべきじゃない

86 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 11:53:54.57 ID:1HHpj/ls.net]
かたいこというなや
「しらんけど」って付けときゃいいんだよ
しらんけど

まあ、bfd/binutilみたいのができて久しいし、
そのへんに準拠してれば、リンクはできるよ
(最近のことは)しらんけどw

87 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 12:12:45.73 ID:1HHpj/ls.net]
calling convention は、今後もなんとか突き合わせてもらうとして。
だいぶ前に書いたのは、RustにはRustのname manglingがあって、C/C++がそれに合わせられないかってこと

それができれば、所有権情報付きの型に対応できることになるから、
C/C++も一気に所有権まわりを獲得できるってことになる

88 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 12:53:01.64 ID:f+qzMJki.net]
>>84
Rust専用スレがある。
そっちの住人にこっちは隔離スレとされた。
隔離されて無いはずのスレに戻れよ。
そっちの方が多いはずなんだろ、Rust信者の脳内では。

89 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 15:10:07.83 ID:lcAcDegU.net]
>>87
文章は丁寧に(自戒も込めて)

90 名前:デフォルトの名無しさん [2023/08/01(火) 15:34:55.86 ID:vjzMKnjk.net]
>>88
ウザい



91 名前:デフォルトの名無しさん [2023/08/01(火) 15:45:28.88 ID:lcAcDegU.net]
戻れも何も俺はそもそもRustユーザではないので
「Rust専用スレ」なるものを開いたことはない
ここには議論をしに来たのであってウザいと言われれば
反論できないのだなぁwとしか思わん

92 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 15:48:14.84 ID:1HHpj/ls.net]
またーりしていけよもう

たらこは言った、面白いことをかけって

93 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 18:54:49.18 ID:a4U8O1ra.net]
Rust一択でしょ

どっちもやったことないけど

94 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 19:06:00.69 ID:G//O9I6m.net]
質問してるヤツと答えてるヤツが同一人物って可能性もある

95 名前:デフォルトの名無しさん mailto:sage [2023/08/01(火) 20:49:40.26 ID:rdOaCXEZ.net]
さすがにその可能性を疑い出したら病気の一歩手前だから気を付けてくれ
何か引っ掛かる点があったなら別だけど

96 名前:デフォルトの名無しさん [2023/08/01(火) 20:51:58.06 ID:lcAcDegU.net]
>>93
同一人物で自作自演したとして
俺が何をどう思われたいと思ってるのかが分からんので
是非論理的に教えてくれ

97 名前:デフォルトの名無しさん mailto:sage [2023/08/02(水) 00:36:41.42 ID:NJTTLLY6.net]
>>69
それはRustと全く関係ない問題
オブジェクトファイルはコンパイラと独立した存在
C言語だけの話でもclangとgccを当然併用できる

まず関数fooだけのfoo.cを用意
$ cat foo.c
#include <stdint.h>
int foo(int32_t a, int32_t b) {
 return a + b;
}

これをclangでコンパイル
$ clang -c foo.c

オブジェクトファイルfoo.oが出来ている
$ ls foo.o
foo.o

つづく

98 名前:デフォルトの名無しさん mailto:sage [2023/08/02(水) 00:37:45.81 ID:NJTTLLY6.net]
次に関数mainのmain.cを用意
$ cat main.c
#include <stdio.h>
#include <stdint.h>

int32_t foo(int32_t, int32_t);

int main(void) {
 int ret = foo(10, 20);
 printf("ret = %d\n", ret);
 return 0;
}

このmain.cをgccでコンパイルして(clangで作った)foo.oをリンクして実行ファイル生成
$ gcc -o main main.c foo.o

無事に足し算が実行できました
$ ./main
ret = 30

99 名前:デフォルトの名無しさん mailto:sage [2023/08/02(水) 00:59:42.14 ID:NJTTLLY6.net]
clangとgccで上手くいった話は
rustcとgccにしても当然上手くいく

今度はRustで関数fooだけのfoo.rsを用意 (区別できるように掛け算に変えた)
$ cat foo.rs
#[no_mangle]
pub extern "C" fn foo(a: i32, b: i32) -> i32 {
 a * b
}

念のためfoo.oを削除しておく
$ rm foo.o

そしてrustcでコンパイルしてオブジェクトファイル生成
$ rustc -O --emit obj --crate-type staticlib foo.rs

さっきと同様にオブジェクトファイルfoo.oが出来ている
$ ls foo.o
foo.o

再び全く同じくgccでmain.cをコンパイルして(rustcで作った)foo.oもリンクして実行ファイル生成
$ gcc -o main main.c foo.o

無事に掛け算が実行できました
$ ./main
ret = 200

つまりRustで書かれたコードとその生成オブジェクトファイルは
何の問題もなくgccでコンパイルしたC言語コードから呼び出せる
(もちろん逆向きもOK)

100 名前:デフォルトの名無しさん mailto:sage [2023/08/02(水) 01:09:19.89 ID:iG8SsFh7.net]
>>96-98
それは>>69の解法1を取り得ることを意味するが
公式文書では>>80のように解法2が説明されており
解法1はvery experimentalとある
なぜだい?








[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<280KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef