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/
探検
結局C++とRustってどっちが良いの? 6traits
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2023/07/29(土) 15:05:46.55ID:2Hm/yplK2023/07/29(土) 16:23:31.04ID:SDRO8Mha
=== 複製おじさん(通称複おじ)について ===
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が複数出現するが、この中にも複製おじさんが多数含まれていると考えられている。
このように自分の誤りを認識した場合、それを認める書き込みは決して行わず、別人の振りをして最初から正しく理解していた体を装うのも複製おじさんの特徴である。
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.62ID:c1f+so80 >>5
うんうんよかったよね、おめでとう
うんうんよかったよね、おめでとう
2023/07/29(土) 17:37:52.03ID:I0+lwIGZ
前スレで、moveいるいらないっぽい話がちょろっと出てたけど、
moveまわりを避けて、実直にポインタでやりとりする書き方してるんだろうな
APIにごく近いところに住んでて、簡潔に書くようにしてたら、おのずとそうなるかと
moveまわりを避けて、実直にポインタでやりとりする書き方してるんだろうな
APIにごく近いところに住んでて、簡潔に書くようにしてたら、おのずとそうなるかと
2023/07/29(土) 19:15:34.26ID:of1FckjJ
2023/07/29(土) 21:45:32.91ID:XwXxiU6u
2023/07/29(土) 23:38:06.97ID:I6XWshKt
じゃあ過去のコードを手直しせずに新しいコンパイラでコンパイルできるのかと言えばそうでもない
2023/07/29(土) 23:59:23.36ID:XwXxiU6u
コンパイラのバージョン上げて必要になる修正なんて微々たるもの
あんまりコンパイラのバージョン跨ぐと修正が多くなるけども
追従していけばそれほど大変でもない
例の人には特に苦手な作業だろうw
あんまりコンパイラのバージョン跨ぐと修正が多くなるけども
追従していけばそれほど大変でもない
例の人には特に苦手な作業だろうw
2023/07/30(日) 03:38:14.45ID:8vbtpK07
Rustを使ってる人は、
何か作りたいものが有って作ってるんじゃなく、
自己アピールや書籍を書いたりするためにしている人が多い。
何か作りたいものが有って作ってるんじゃなく、
自己アピールや書籍を書いたりするためにしている人が多い。
14デフォルトの名無しさん
2023/07/30(日) 07:07:33.08ID:zpxjufbE2023/07/30(日) 07:30:46.91ID:O1YJNKqz
C++って、全機能使いこなせないと殴られるんちゃうかみたいな ふいんきあった
仕様書頭に入ってないと発言権ありません的な
まあでもそのくらいの気合はあって悪くない
Rustを前にして、苦手意識のほうを捨てることにしたよ
仕様書頭に入ってないと発言権ありません的な
まあでもそのくらいの気合はあって悪くない
Rustを前にして、苦手意識のほうを捨てることにしたよ
16デフォルトの名無しさん
2023/07/30(日) 07:30:53.64ID:CCkbn9cO >>13
私は非同期並列処理を用いた高速な行列演算フレームワークを開発しているところ何ですけど。
私は非同期並列処理を用いた高速な行列演算フレームワークを開発しているところ何ですけど。
17デフォルトの名無しさん
2023/07/30(日) 09:04:44.76ID:azQXcNDB18デフォルトの名無しさん
2023/07/30(日) 09:08:21.61ID:azQXcNDB19デフォルトの名無しさん
2023/07/30(日) 09:11:27.27ID:azQXcNDB2023/07/30(日) 09:15:05.98ID:UyrP6xJo
2023/07/30(日) 09:16:12.95ID:azQXcNDB
2023/07/30(日) 09:20:35.40ID:azQXcNDB
>>20
スレタイを unsafe {} で囲め
スレタイを unsafe {} で囲め
2023/07/30(日) 10:20:14.20ID:s4F4miSt
>>22
unsafeがあれば安心安全だよな
unsafeがあれば安心安全だよな
2023/07/30(日) 11:29:34.23ID:Phugis3j
>>19
どういった点が? 煽りではなく
どういった点が? 煽りではなく
2023/07/30(日) 11:31:46.14ID:PxbGsfYc
>>21
関数引数のライフタイム注釈は、まあ、分かるんだけど、
structに対するライフタイム注釈は、色々な書籍を見ても、
厳密な定義が分からなかった。
ちゃんと、数学的な言葉や擬似コードなどで書いて欲しい。
たとえば、注釈Aと注釈Bの積集合が、戻り値のライフタイム
になる、みたいな言葉で書くのが数学的な書き方なんだが、
今のRustの仕様書では、そのような言葉で書かれていないので
精密な定義が分からない。
なので、ちゃんとしたプログラムが出来ない。
関数引数のライフタイム注釈は、まあ、分かるんだけど、
structに対するライフタイム注釈は、色々な書籍を見ても、
厳密な定義が分からなかった。
ちゃんと、数学的な言葉や擬似コードなどで書いて欲しい。
たとえば、注釈Aと注釈Bの積集合が、戻り値のライフタイム
になる、みたいな言葉で書くのが数学的な書き方なんだが、
今のRustの仕様書では、そのような言葉で書かれていないので
精密な定義が分からない。
なので、ちゃんとしたプログラムが出来ない。
2023/07/30(日) 11:32:55.90ID:PxbGsfYc
2023/07/30(日) 11:38:08.04ID:wjjxPYUe
Haskellバカも含めて論文だの厳密だの言うくせに誰もRFC2094を読んでいないのはなぜなのか
https://ubnt-intrepid.netlify.app/rfc-2094-ja/
https://ubnt-intrepid.netlify.app/rfc-2094-ja/
2023/07/30(日) 11:57:11.73ID:zED6HehG
煽ったり荒らしたりして情報を引き出すやり方なんだろう
自己中
自己中
29デフォルトの名無しさん
2023/07/30(日) 11:58:14.59ID:Phugis3j2023/07/30(日) 12:00:32.88ID:Phugis3j
>>25
規格をまとめれば査読されるだろうからマシになる
規格をまとめれば査読されるだろうからマシになる
31デフォルトの名無しさん
2023/07/30(日) 12:09:03.54ID:3Gt2feL7 >>25
君の頭の悪さをRustのせいにするなよな
君の頭の悪さをRustのせいにするなよな
2023/07/30(日) 13:09:07.24ID:wjjxPYUe
>>20
ワッチョイ付きスレもあるよ
単発自演バカ以外はこんなスレ求めてないから機能停止してるけど
https://mevius.5ch.net/test/read.cgi/tech/1657382429/
ワッチョイ付きスレもあるよ
単発自演バカ以外はこんなスレ求めてないから機能停止してるけど
https://mevius.5ch.net/test/read.cgi/tech/1657382429/
2023/07/30(日) 15:31:48.90ID:EsXxjTNc
2023/07/30(日) 16:02:20.57ID:Dx2gCh8i
虚しい人生だったなぁ
2023/07/30(日) 17:28:04.45ID:EsXxjTNc
>>34
おまえはおまえでちゃんとやっているつもりなんだろうが、
おれはおれでちゃんとやっているつもりだ。
Rustを非推奨とするのは、俺の心からの日本や世界への
愛でもある。
俺の考えでは、Rustは人類を良く無い方向に導くから
それを阻止しようと考えている。いわば、聖戦のようなもの。
おまえはおまえでちゃんとやっているつもりなんだろうが、
おれはおれでちゃんとやっているつもりだ。
Rustを非推奨とするのは、俺の心からの日本や世界への
愛でもある。
俺の考えでは、Rustは人類を良く無い方向に導くから
それを阻止しようと考えている。いわば、聖戦のようなもの。
36デフォルトの名無しさん
2023/07/30(日) 18:04:19.90ID:xwHMDX1r 現実世界でも優秀でないのは文章を見れば一目瞭然
ある一定以上の知性がある人はここまで馬鹿な文章を書かないから
ある一定以上の知性がある人はここまで馬鹿な文章を書かないから
2023/07/30(日) 18:10:24.42ID:EsXxjTNc
38デフォルトの名無しさん
2023/07/30(日) 18:25:30.98ID:cVJ/YlET 脳の言語機能が発達してない人にプログラミングは無理だろ
少なくとも今の技術では
少なくとも今の技術では
2023/07/30(日) 19:00:04.97ID:v002Bwgv
難化の原因の一つはstatic変数の悪口を言ったこと
だから昔の技術ではプログラミングできた人達も、今の技術では無理になった
だから昔の技術ではプログラミングできた人達も、今の技術では無理になった
2023/07/30(日) 19:38:56.42ID:EsXxjTNc
>>38
でも俺は計算は得意だよ。
でも俺は計算は得意だよ。
2023/07/30(日) 20:15:01.23ID:Lf76jods
2023/07/30(日) 21:19:18.98ID:BvovDmTI
本当に頭がよければ世界の80億人を愛するとか簡単に言うわけないんだよな
少なくとも世界中に足を運んで交流してからだろ
少なくとも世界中に足を運んで交流してからだろ
43デフォルトの名無しさん
2023/07/30(日) 21:27:24.25ID:Phugis3j2023/07/30(日) 21:31:43.58ID:v002Bwgv
両者とも何か、リスクが低過ぎる物事に対する憎悪を感じる
詐欺よりも未定義の言葉を嫌うのもリスクが低過ぎるからじゃないか
詐欺よりも未定義の言葉を嫌うのもリスクが低過ぎるからじゃないか
2023/07/31(月) 02:12:09.36ID:7hP7Lhrw
病人の相手を任せるためにも、はやくAIの開発がすすんでほしいわ
2023/07/31(月) 03:49:12.78ID:nT30zTPs
まず、このスレの連中は、いったん素晴らしいと思い込んだ
ものを無批判に受け入れすぎている。そして、英語圏の
批評、批判を全く読んでない。
読んでいればRustの評価は余り高くなくて、意見が
半々くらいに分かれていることがすぐに分かるから。
ものを無批判に受け入れすぎている。そして、英語圏の
批評、批判を全く読んでない。
読んでいればRustの評価は余り高くなくて、意見が
半々くらいに分かれていることがすぐに分かるから。
2023/07/31(月) 07:47:53.35ID:lZja90Kc
OSなんて一つの言語で記述するメリットが大きすぎる
それを上回るよほどの大きなメリットがない限り他の言語を導入することはない
しかしMicrosoftはWindowsでRustを導入しGoogleはAndroidでRustを導入した
C++を邪道な言語として使用を拒否してきたLinuxもRustを導入した
それを上回るよほどの大きなメリットがない限り他の言語を導入することはない
しかしMicrosoftはWindowsでRustを導入しGoogleはAndroidでRustを導入した
C++を邪道な言語として使用を拒否してきたLinuxもRustを導入した
2023/07/31(月) 07:49:34.85ID:OPAJDfNb
w
2023/07/31(月) 08:31:37.72ID:3Z/Pn9k1
まあmalloc失敗でpanicにならんのならええんやない?
2023/07/31(月) 10:22:06.96ID:8wbRk2dY
>>49
Rust の方でも .unwrap() 禁止するか unsafe {} 必須にして欲しいわ
Rust の方でも .unwrap() 禁止するか unsafe {} 必須にして欲しいわ
2023/07/31(月) 10:26:23.87ID:fc/+y7rt
OSではCの支持率100%になってもアセンブラを排除するのは不可能
つまり、数値を抑制するのではなく
数値が上がりすぎるとスカウターみたいに爆発する脆弱性をなくせばいい
安全をどれだけ信奉してもunsafeを排除できないのは良いことだ
つまり、数値を抑制するのではなく
数値が上がりすぎるとスカウターみたいに爆発する脆弱性をなくせばいい
安全をどれだけ信奉してもunsafeを排除できないのは良いことだ
52デフォルトの名無しさん
2023/07/31(月) 11:49:57.24ID:ulrQSEBD >>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は果たしてどのくらいなのかな?
>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は果たしてどのくらいなのかな?
53デフォルトの名無しさん
2023/07/31(月) 11:54:50.00ID:ulrQSEBD2023/07/31(月) 12:41:48.10ID:lZja90Kc
2023/07/31(月) 13:01:06.05ID:sgBBFIN2
>>52
ぐぐーるもM$も基本ウソツキだシナ
ぐぐーるもM$も基本ウソツキだシナ
2023/07/31(月) 13:48:39.26ID:fc/+y7rt
行数もいいけど独裁者が何人いるか数えてみろよ
たったの1人しかいないから無力の無能だと言えるなら正直者
だが掌返して1人だからといって無能とは限らないとか言い出せば嘘つきだ
たったの1人しかいないから無力の無能だと言えるなら正直者
だが掌返して1人だからといって無能とは限らないとか言い出せば嘘つきだ
2023/07/31(月) 13:56:25.29ID:SQ3dcTOC
2023/07/31(月) 13:58:30.69ID:eCR2qI4e
>>57
多分、アメリカ人が書いている。
多分、アメリカ人が書いている。
2023/07/31(月) 14:57:58.99ID:MuwrPG3l
>>52
あの頑固者のLinusが解禁したこと自体が画期的
RustがOKなら、Rust程度のOOPはOKってことで、近い言語が続々参入したりして
そうなると、simple化付きC++ってのも見えてくる
あの頑固者のLinusが解禁したこと自体が画期的
RustがOKなら、Rust程度のOOPはOKってことで、近い言語が続々参入したりして
そうなると、simple化付きC++ってのも見えてくる
60デフォルトの名無しさん
2023/07/31(月) 15:00:33.59ID:ulrQSEBD >>59
Rustコンパイラは何を使うの?
Rustコンパイラは何を使うの?
2023/07/31(月) 15:05:23.78ID:OPAJDfNb
何かの政治的な理由でRustを仕方なく使ったんじゃね?
2023/07/31(月) 16:30:08.80ID:MuwrPG3l
>>60
知らんまじで 処理系に指定があるかまでは存じ上げず
知らんまじで 処理系に指定があるかまでは存じ上げず
2023/07/31(月) 18:53:04.02ID:ky4iWRF2
普通にrustc(+llvm)でいいでしょ
知らんけど
知らんけど
2023/07/31(月) 19:29:15.62ID:f18AP/yx
>>63
じゃカーネルのコンパイルは何使うの?
じゃカーネルのコンパイルは何使うの?
2023/07/31(月) 22:08:37.01ID:+bjI2PCn
カーネルおじさん
2023/07/31(月) 23:55:46.68ID:bJxDuGa3
どいつもこいつもマウントを取る相手に飢えてるんやなあって
2023/08/01(火) 00:02:17.45ID:lcAcDegU
2023/08/01(火) 01:13:33.06ID:enF/Vqu1
カーネルは知らないがrustcでコンパイルしたものとc言語で書かれたものはリンクできて動いてるし何を問題にしているのかわからない
最近はPythonやJavaScriptのライブラリもRustで書かれることが増えている
最近はPythonやJavaScriptのライブラリもRustで書かれることが増えている
69デフォルトの名無しさん
2023/08/01(火) 01:42:20.33ID:lcAcDegU >>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なのか? あるいは別の方法かな?
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なのか? あるいは別の方法かな?
2023/08/01(火) 01:44:23.88ID:lcAcDegU
>>59みたいなこと書くのなら答えられんとなぁw
2023/08/01(火) 01:47:19.20ID:lcAcDegU
WindowsでRustの利用が始まっているらしいが
MSはllvm使うのかね? Visual Rustかね?
MSはllvm使うのかね? Visual Rustかね?
2023/08/01(火) 02:10:15.58ID:enF/Vqu1
>>69
何を問題にしているのかさっぱりわからん
gccもclangも同じELF形式のオブジェクトファイルを吐くだけだぞ
共有ライブラリなども当然同じものが使われている
コンパイラ毎に別々の形式を吐いて共有ライブラリなども別々に用意されていると勘違いしている??
何を問題にしているのかさっぱりわからん
gccもclangも同じELF形式のオブジェクトファイルを吐くだけだぞ
共有ライブラリなども当然同じものが使われている
コンパイラ毎に別々の形式を吐いて共有ライブラリなども別々に用意されていると勘違いしている??
73デフォルトの名無しさん
2023/08/01(火) 02:15:20.41ID:8wU+ches rustのコードはrustc on llvmでコンパイルされる
そうするとgccが吐いたオブジェクトファイルと
rustc on llvmが吐いたオブジェクトファイルをリンクできるのか?
あほすぎわろす
そうするとgccが吐いたオブジェクトファイルと
rustc on llvmが吐いたオブジェクトファイルをリンクできるのか?
あほすぎわろす
74デフォルトの名無しさん
2023/08/01(火) 02:28:22.85ID:lcAcDegU >>72,73
じゃ1で良いのかな?
じゃ1で良いのかな?
2023/08/01(火) 02:44:40.50ID:enF/Vqu1
そもそもRustは全く関係なくC言語だけを使う世界でも同じ話
コンパイラを変えてもリンクする既存ライブラリは同じものを指定して同じものをリンクするだろ
それを知らないとはエアプログラマーかね?
コンパイラを変えてもリンクする既存ライブラリは同じものを指定して同じものをリンクするだろ
それを知らないとはエアプログラマーかね?
2023/08/01(火) 02:46:40.94ID:rdOaCXEZ
まずrustcがllvmでコード生成してることを知ってるかどうか確認する必要があるな
rustc on llvmという表現に若干の不安を感じる
もしかしたらllvmを知ってるかどうかの確認も必要かもしれない
rustc on llvmという表現に若干の不安を感じる
もしかしたらllvmを知ってるかどうかの確認も必要かもしれない
2023/08/01(火) 03:08:01.35ID:lcAcDegU
78デフォルトの名無しさん
2023/08/01(火) 03:19:00.62ID:y4WjFr+T coff とか omf とか elf とか面倒だよなω
D は沈没したしωωω
D は沈没したしωωω
7959
2023/08/01(火) 06:25:09.53ID:1HHpj/ls 夏風邪で寝込んでた 隠れ新型コロナかもしれん ちなマスクはしてる
俺はC++派だし、どうしてるんかまで知らんって
Rust部のツールチェーンのバージョンを指定してるんじゃないか
見に行く元気はない まだだりぃ
Rustの努力にはライバルながら賛辞を贈る
Rustの成功をC++に取り込むべきだと思ってるからね
俺はC++派だし、どうしてるんかまで知らんって
Rust部のツールチェーンのバージョンを指定してるんじゃないか
見に行く元気はない まだだりぃ
Rustの努力にはライバルながら賛辞を贈る
Rustの成功をC++に取り込むべきだと思ってるからね
2023/08/01(火) 10:31:09.40ID:1HHpj/ls
81デフォルトの名無しさん
2023/08/01(火) 10:39:09.49ID:lcAcDegU2023/08/01(火) 11:29:23.00ID:a8DQwFPL
Rustに詳しい人しか答えられないような内容を
ここに書くべきじゃない。
Rust専門スレがあるのに、何故そこに書かないか。
ここに書くべきじゃない。
Rust専門スレがあるのに、何故そこに書かないか。
2023/08/01(火) 11:32:16.29ID:AvEKEx5a
昔はコンパイラとリンカは別物でコンパイラはposix標準のライブラリファイルを出すのが仕事でその後各言語が吐き出したライブラリファイルをリンカでくっつけてた
しかし今はコンパイラがリンクまでやってるのでこの“別言語間のリンク”がどうなんとなってるけど、流石にコンパイル後リンク前のライブラリファイル形式もその形式のファイルをはくオプションも残ってるやろ
しかし今はコンパイラがリンクまでやってるのでこの“別言語間のリンク”がどうなんとなってるけど、流石にコンパイル後リンク前のライブラリファイル形式もその形式のファイルをはくオプションも残ってるやろ
84デフォルトの名無しさん
2023/08/01(火) 11:34:34.48ID:lcAcDegU2023/08/01(火) 11:53:54.57ID:1HHpj/ls
かたいこというなや
「しらんけど」って付けときゃいいんだよ
しらんけど
まあ、bfd/binutilみたいのができて久しいし、
そのへんに準拠してれば、リンクはできるよ
(最近のことは)しらんけどw
「しらんけど」って付けときゃいいんだよ
しらんけど
まあ、bfd/binutilみたいのができて久しいし、
そのへんに準拠してれば、リンクはできるよ
(最近のことは)しらんけどw
2023/08/01(火) 12:12:45.73ID:1HHpj/ls
calling convention は、今後もなんとか突き合わせてもらうとして。
だいぶ前に書いたのは、RustにはRustのname manglingがあって、C/C++がそれに合わせられないかってこと
それができれば、所有権情報付きの型に対応できることになるから、
C/C++も一気に所有権まわりを獲得できるってことになる
だいぶ前に書いたのは、RustにはRustのname manglingがあって、C/C++がそれに合わせられないかってこと
それができれば、所有権情報付きの型に対応できることになるから、
C/C++も一気に所有権まわりを獲得できるってことになる
2023/08/01(火) 12:53:01.64ID:f+qzMJki
2023/08/01(火) 15:10:07.83ID:lcAcDegU
>>87
文章は丁寧に(自戒も込めて)
文章は丁寧に(自戒も込めて)
89デフォルトの名無しさん
2023/08/01(火) 15:34:55.86ID:vjzMKnjk >>88
ウザい
ウザい
90デフォルトの名無しさん
2023/08/01(火) 15:45:28.88ID:lcAcDegU 戻れも何も俺はそもそもRustユーザではないので
「Rust専用スレ」なるものを開いたことはない
ここには議論をしに来たのであってウザいと言われれば
反論できないのだなぁwとしか思わん
「Rust専用スレ」なるものを開いたことはない
ここには議論をしに来たのであってウザいと言われれば
反論できないのだなぁwとしか思わん
2023/08/01(火) 15:48:14.84ID:1HHpj/ls
またーりしていけよもう
たらこは言った、面白いことをかけって
たらこは言った、面白いことをかけって
2023/08/01(火) 18:54:49.18ID:a4U8O1ra
Rust一択でしょ
どっちもやったことないけど
どっちもやったことないけど
2023/08/01(火) 19:06:00.69ID:G//O9I6m
質問してるヤツと答えてるヤツが同一人物って可能性もある
2023/08/01(火) 20:49:40.26ID:rdOaCXEZ
さすがにその可能性を疑い出したら病気の一歩手前だから気を付けてくれ
何か引っ掛かる点があったなら別だけど
何か引っ掛かる点があったなら別だけど
95デフォルトの名無しさん
2023/08/01(火) 20:51:58.06ID:lcAcDegU2023/08/02(水) 00:36:41.42ID:NJTTLLY6
>>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
つづく
それは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
つづく
2023/08/02(水) 00:37:45.81ID:NJTTLLY6
次に関数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
$ 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
2023/08/02(水) 00:59:42.14ID:NJTTLLY6
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)
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)
2023/08/02(水) 01:09:19.89ID:iG8SsFh7
100デフォルトの名無しさん
2023/08/02(水) 01:11:29.45ID:8pIQRBW6 誰でも知ってることを長文で書かなくていいから>>80読んでね
101デフォルトの名無しさん
2023/08/02(水) 01:15:12.91ID:iG8SsFh7102デフォルトの名無しさん
2023/08/02(水) 01:28:10.98ID:NJTTLLY6 >>99
その文書に根拠が書かれていないからわからない
その文書によるとclangとrustcならば上手くいくのだからRust側の問題ではなくclang側の問題でもない
仮に問題があるとすればgcc側の問題なのだろう
そしてその場合かあると仮定するとC言語のみでもgccとclangで上手くいかないケースが存在するのだろう
その文書に根拠が書かれていないからわからない
その文書によるとclangとrustcならば上手くいくのだからRust側の問題ではなくclang側の問題でもない
仮に問題があるとすればgcc側の問題なのだろう
そしてその場合かあると仮定するとC言語のみでもgccとclangで上手くいかないケースが存在するのだろう
103デフォルトの名無しさん
2023/08/02(水) 01:34:00.68ID:MBDISWVo very experimentalなのは単純に実績が浅いからでしょ
同じ規格に合わせて作ったつもりでも実際に組み合わせると想定外の問題が生じる場合がある
この辺は結合テストの経験がないとピンとこないかもしれない
同じ規格に合わせて作ったつもりでも実際に組み合わせると想定外の問題が生じる場合がある
この辺は結合テストの経験がないとピンとこないかもしれない
104デフォルトの名無しさん
2023/08/02(水) 01:51:18.44ID:TcjEDVFj >>103
実績は10年以上あるでしょ
例えば/usr/lib/の下にあるライブラリファイルがgccかclangかどちらでコンパイルされたものかに関わらず
gccからもclangからもそれらライブラリを区別なく使われて問題を起こさず動いてきた
そこはELFのフォーマットが定められているからコンパイラの違いがあっても大丈夫
実績は10年以上あるでしょ
例えば/usr/lib/の下にあるライブラリファイルがgccかclangかどちらでコンパイルされたものかに関わらず
gccからもclangからもそれらライブラリを区別なく使われて問題を起こさず動いてきた
そこはELFのフォーマットが定められているからコンパイラの違いがあっても大丈夫
105デフォルトの名無しさん
2023/08/02(水) 02:02:17.30ID:iG8SsFh7 linuxのソースに含まれない外部配布のカーネルモジュールのコンパイルって
普通コンパイラを(バージョンも含めて)揃えない?
神経質過ぎるだけかな?
普通コンパイラを(バージョンも含めて)揃えない?
神経質過ぎるだけかな?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 【悲報】高市早苗を妄信している今の日本人見ると80年前も市民は進んで戦争協力してたんだって理解出来るよね🥺 [616817505]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
