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/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のソースに含まれない外部配布のカーネルモジュールのコンパイルって
普通コンパイラを(バージョンも含めて)揃えない?
神経質過ぎるだけかな?
普通コンパイラを(バージョンも含めて)揃えない?
神経質過ぎるだけかな?
106デフォルトの名無しさん
2023/08/02(水) 03:18:19.71ID:stxSLRlm 結論
C++使いとRust使いは生産性が低い
C++使いとRust使いは生産性が低い
107デフォルトの名無しさん
2023/08/02(水) 06:19:43.25ID:2Ms30o08 生産性最強は…「さくっと探してくる」
なんでも自作(内製)しようとしちゃうよね、自分にもそんな時期がありました
勉強にはなるけど
なんでも自作(内製)しようとしちゃうよね、自分にもそんな時期がありました
勉強にはなるけど
108デフォルトの名無しさん
2023/08/02(水) 09:10:06.07ID:4pI1Wfnv >>93-95
hissi.org を AI に掛けたらそろそろ自演検出出来る時代
hissi.org を AI に掛けたらそろそろ自演検出出来る時代
109デフォルトの名無しさん
2023/08/02(水) 14:23:27.46ID:iG8SsFh7 教師データが少なすぎて精度が上がらんやろ
110デフォルトの名無しさん
2023/08/02(水) 20:35:38.56ID:HZivUK5/ >>101
こういうことじゃないか
少し前にRust派が貼った https://github.com/microsoft/windows-rs は、
win32 APIをunsafeなRustで受けてる そういうreadmeになってるからそうなんだろう
unsafeなAPIにRustが接続してるんだから、たしかに道理
Rust派がいうように、どんどんRust世代(Swiftとかも含む)のAPIが増えてくると、
所有権情報がついたAPIになるわけだから、C++(とC)も当然それに合わせていく必要があるし、
それがわかってるなら、いまのうちから追随に向けたC++の発展を期待するぜ、っていうわけ
こういうことじゃないか
少し前にRust派が貼った https://github.com/microsoft/windows-rs は、
win32 APIをunsafeなRustで受けてる そういうreadmeになってるからそうなんだろう
unsafeなAPIにRustが接続してるんだから、たしかに道理
Rust派がいうように、どんどんRust世代(Swiftとかも含む)のAPIが増えてくると、
所有権情報がついたAPIになるわけだから、C++(とC)も当然それに合わせていく必要があるし、
それがわかってるなら、いまのうちから追随に向けたC++の発展を期待するぜ、っていうわけ
111デフォルトの名無しさん
2023/08/02(水) 20:46:07.42ID:ss9KhaID C++なんざ何処が良いのか分からん
C#ほどセーフティーな訳でも無ければ
アセンブラみたいに痒い所に手が届く訳でもない
C#ほどセーフティーな訳でも無ければ
アセンブラみたいに痒い所に手が届く訳でもない
112デフォルトの名無しさん
2023/08/02(水) 21:02:46.80ID:bcW2DJn5 普通はインラインアセンブラとか使えるぞ たまに便利
113デフォルトの名無しさん
2023/08/02(水) 21:43:56.55ID:2DJiiIQu114デフォルトの名無しさん
2023/08/03(木) 06:38:17.02ID:x4MCSOl6 サポートしてもらわないと困るって話
Rustがそこまで普及するんならね
Rustがそこまで普及するんならね
115デフォルトの名無しさん
2023/08/03(木) 08:14:30.82ID:8npqW66R C/C++の問題点はプログラム全体がunsafeエリアな点にある
Rustのように自動的に安全が保証されるsafeエリアを作るべきだ
Rustのように自動的に安全が保証されるsafeエリアを作るべきだ
116デフォルトの名無しさん
2023/08/03(木) 13:49:40.33ID:Lr04Zjag unsafe { } なコード描き捲れば良いじゃん
誰も止めないし
誰も止めないし
117デフォルトの名無しさん
2023/08/03(木) 14:47:00.92ID:8npqW66R 生のメモリはunsafeだからunsafeなエリアをゼロにするのは無理だが最小限に閉じ込めることはできる
ちなみにunsafeなエリアとは自動的に安全性が保証されず人間が安全性を保証しなければならない意味であり安全でないコードの意味ではない
C/C++は全てがunsafeなエリアとなっていることが根本的な問題であるためC/C++に導入すべきはsafeなエリアとunsafeなエリアの区別の導入
ちなみにunsafeなエリアとは自動的に安全性が保証されず人間が安全性を保証しなければならない意味であり安全でないコードの意味ではない
C/C++は全てがunsafeなエリアとなっていることが根本的な問題であるためC/C++に導入すべきはsafeなエリアとunsafeなエリアの区別の導入
118デフォルトの名無しさん
2023/08/04(金) 02:45:20.65ID:9vVWYNaF 科学者は、新しいものより古いものを好むような気がする。
やっとFortranからC++に移行したみたいな感じじゃない。
やっとFortranからC++に移行したみたいな感じじゃない。
119デフォルトの名無しさん
2023/08/04(金) 09:03:06.23ID:XLfSEGlw unsafe { C++ }
unsafe { unsafe { Fortran }}
unsafe { unsafe { Fortran }}
120デフォルトの名無しさん
2023/08/04(金) 11:28:27.58ID:rcIkyW/J >>118
ある年齢以下だと科学者でもかなりpythonが主流派だよ。
ある年齢以下だと科学者でもかなりpythonが主流派だよ。
121デフォルトの名無しさん
2023/08/04(金) 12:38:38.48ID:Hxv32tG4 unsafeは名前が悪い。
noguardがguidelessの方が実態に合っている。
noguardがguidelessの方が実態に合っている。
122デフォルトの名無しさん
2023/08/04(金) 12:40:31.64ID:l9tpj9tS123デフォルトの名無しさん
2023/08/04(金) 13:02:53.96ID:2tbTIxDy124デフォルトの名無しさん
2023/08/04(金) 13:09:44.29ID:TzILUUtf 俺はコンパイラの支援なんか不要!
安全なコード書けるから!
などというバカ対策
安全なコード書けるから!
などというバカ対策
125デフォルトの名無しさん
2023/08/04(金) 13:32:31.68ID:sr1c8EdF いくら自信があっても
いくら百戦錬磨のプロでも
思い込みや見逃しでミスが入り込む可能性がある
そしてミスがないと主張してもその客観的な根拠はなく頭の中にしかない
C/C++にも客観的に自動的に安全性が保証されるsafeエリアを導入すべきだ
そしてプログラム本体にunsafeエリアが露出せずに済むようにsafeなライブラリ関数を充実すべきだ
いくら百戦錬磨のプロでも
思い込みや見逃しでミスが入り込む可能性がある
そしてミスがないと主張してもその客観的な根拠はなく頭の中にしかない
C/C++にも客観的に自動的に安全性が保証されるsafeエリアを導入すべきだ
そしてプログラム本体にunsafeエリアが露出せずに済むようにsafeなライブラリ関数を充実すべきだ
126デフォルトの名無しさん
2023/08/04(金) 14:14:29.32ID:egOIBhxw 急にスレのベレルが下がったな
127デフォルトの名無しさん
2023/08/04(金) 14:23:45.74ID:neuFS+YA 気のせいです
128デフォルトの名無しさん
2023/08/04(金) 14:45:44.75ID:z0X1ZVr3 >>125
唐突なポエム草
唐突なポエム草
129デフォルトの名無しさん
2023/08/04(金) 15:02:43.37ID:BcxuRAkw もっともマトモな層は、コード書きに行ってこんなとこ来ないからw
130デフォルトの名無しさん
2023/08/04(金) 15:21:59.11ID:9eDSr/2C 急にスレのベレルが下がったな
131デフォルトの名無しさん
2023/08/04(金) 15:39:49.20ID:XLfSEGlw 高かったことが一度でも在ったかのような言い草だな
132デフォルトの名無しさん
2023/08/04(金) 15:45:57.96ID:f95F43ae 散髪屋に安全ガミソリを強制したり、マシン語プログラマを
蔑みそうな思想だな。
蔑みそうな思想だな。
133デフォルトの名無しさん
2023/08/04(金) 15:49:31.23ID:f95F43ae 安全ガミソリは刃に毛が挟まって取れなくなって、
再利用しにくいのに対し、直刃のかみそりは、
安全面さえ気をつければ手入れが簡単で再利用しやすい
からプロは後者を好んで使う。
それと同じ。
再利用しにくいのに対し、直刃のかみそりは、
安全面さえ気をつければ手入れが簡単で再利用しやすい
からプロは後者を好んで使う。
それと同じ。
134デフォルトの名無しさん
2023/08/04(金) 15:51:38.78ID:f95F43ae 直刃のかみそりを好んで使うプロたちに対して、
「お前らは客の安全性を疎かにする自信過剰で傲慢な
駄目な奴ら」
だとか言うつもりか。
「お前らは客の安全性を疎かにする自信過剰で傲慢な
駄目な奴ら」
だとか言うつもりか。
135デフォルトの名無しさん
2023/08/04(金) 15:56:47.17ID:i+NL2LDR 急にスレのベレルが下がったな
136デフォルトの名無しさん
2023/08/04(金) 15:58:20.80ID:BcxuRAkw137デフォルトの名無しさん
2023/08/04(金) 16:01:00.54ID:f95F43ae マシン語プログラマに対して、
「おまえらは、自身の腕を過信する安全性軽視の
駄目プログラマだ」
なんて言う権利は他人には無いと思う。
「おまえらは、自身の腕を過信する安全性軽視の
駄目プログラマだ」
なんて言う権利は他人には無いと思う。
138デフォルトの名無しさん
2023/08/04(金) 16:09:50.05ID:S7yEvO65 >>137
安全性とは何なのかも定義も理解できていないからそんな馬鹿げた書き込みばかりしてるのか
安全性とは何なのかも定義も理解できていないからそんな馬鹿げた書き込みばかりしてるのか
139デフォルトの名無しさん
2023/08/04(金) 16:17:28.67ID:f95F43ae 結局、相手を馬鹿にしてRustを推すのが、Rust信者の
やり口。
やり口。
140デフォルトの名無しさん
2023/08/04(金) 16:31:11.69ID:EJnCR0gN 安全カミソリは安全ではないし
直刃のカミソリを使うプロでも客に切り傷つけることはよくある
直刃のカミソリを使うプロでも客に切り傷つけることはよくある
141デフォルトの名無しさん
2023/08/04(金) 19:56:00.95ID:l9tpj9tS 直刃のカミソリっていうか、柄もないカミソリの刃だけを使うようなもんだろ。
自分も痛い目みること含めて。
自分も痛い目みること含めて。
142デフォルトの名無しさん
2023/08/04(金) 20:09:16.36ID:S7yEvO65 他人が書いた部分や使ってるライブラリやその孫ライブラリまで含めて全ソースをチェックするのは非現実的だからな
もちろん自分で書いた部分やリファクタリングした部分も万が一のチェックを書き換えるたびにするのも手間暇コスト増
unsafeでもunguardでも呼び名はなんでもいいからsafe/guard部分がコンパイラによる自動チェックされるようになれば人間がチェックすべき部分は激減できる
もちろん自分で書いた部分やリファクタリングした部分も万が一のチェックを書き換えるたびにするのも手間暇コスト増
unsafeでもunguardでも呼び名はなんでもいいからsafe/guard部分がコンパイラによる自動チェックされるようになれば人間がチェックすべき部分は激減できる
143デフォルトの名無しさん
2023/08/04(金) 20:15:00.62ID:bJlFt79O 急にスレのベレルが下がったな
144デフォルトの名無しさん
2023/08/04(金) 20:26:53.92ID:og8Edpiv ダングリングの検出ってGPTの登場で
言語側が備える意味は最早なくなった
そのうち外部にチェックプログラムが登場するよ
ABIが非互換になるデメリットを考えると
なおさらRustに追随する言語はないと思う
さよならRustの未来を信じた皆さん
言語側が備える意味は最早なくなった
そのうち外部にチェックプログラムが登場するよ
ABIが非互換になるデメリットを考えると
なおさらRustに追随する言語はないと思う
さよならRustの未来を信じた皆さん
145デフォルトの名無しさん
2023/08/04(金) 20:36:35.81ID:q/UYza0u >>144
ダングリングなんて小さな問題だけが対象ではないことを理解していなさそうにもみえるが
これまで外部ログラムがいくら頑張っても各種問題を静的に見つけることはできていないし今後も無理だろう
AIであろうとそれは同じであり神のようなAIが登場するならその時は全ての言語のプログラマー全員廃業だ
ダングリングなんて小さな問題だけが対象ではないことを理解していなさそうにもみえるが
これまで外部ログラムがいくら頑張っても各種問題を静的に見つけることはできていないし今後も無理だろう
AIであろうとそれは同じであり神のようなAIが登場するならその時は全ての言語のプログラマー全員廃業だ
146デフォルトの名無しさん
2023/08/04(金) 21:00:09.09ID:IJ6nE+NX147デフォルトの名無しさん
2023/08/04(金) 21:36:58.62ID:K3V5Xtdy >そのうち外部にチェックプログラムが登場するよ
今まで使ったことないのかよww
今まで使ったことないのかよww
148デフォルトの名無しさん
2023/08/04(金) 22:00:25.44ID:CoH1yBj0 CheckGPTでRustは終わる
149デフォルトの名無しさん
2023/08/05(土) 00:03:15.32ID:8PC/4Tei 残念だけど言語サポート無しにRustと同じレベルのチェックは不可能
それがわからない時点で安全なコードを書く能力もないことが分かる
それがわからない時点で安全なコードを書く能力もないことが分かる
150デフォルトの名無しさん
2023/08/05(土) 01:06:25.49ID:YeB01PWa >>149
SendやSyncのマーカートレイトなど
様々な安全性を型チェックで保証できるような枠組みがRustには揃ってるあたりのことか
C++にも導入すべきだよな
C++は色んな機能が足りなすぎる
SendやSyncのマーカートレイトなど
様々な安全性を型チェックで保証できるような枠組みがRustには揃ってるあたりのことか
C++にも導入すべきだよな
C++は色んな機能が足りなすぎる
151デフォルトの名無しさん
2023/08/05(土) 01:50:07.55ID:dts8KIsS Rustは人の命をあずかるシステムに使えますか?
152デフォルトの名無しさん
2023/08/05(土) 02:47:29.11ID:LVFgAb7y 使えます
153デフォルトの名無しさん
2023/08/05(土) 04:34:10.67ID:KocMWFZU Rust信者の正体は、ぎゃあぎゃあ五月蝿い評論家だ。
自分が上だと思って色々言ってくる。
自分が上だと思って色々言ってくる。
154デフォルトの名無しさん
2023/08/05(土) 04:36:47.68ID:KocMWFZU 実際にソフトウェアでサラリーマンとしてではなく、事業
として成功している人以外の意見はさらっと流して無視
しなければ、上手く行かない。
として成功している人以外の意見はさらっと流して無視
しなければ、上手く行かない。
155デフォルトの名無しさん
2023/08/05(土) 07:16:06.28ID:xdlV5LLb >>148
これ
これ
156デフォルトの名無しさん
2023/08/05(土) 07:31:06.33ID:YeB01PWa >>155
Rustが様々な安全性をコンパイラで保証できる仕組みは
例えばスレッド間での移動や共有の可否などを抽象的なトレイトで表現して
各型をそれらのトレイト境界で制約して型チェックで実現したりしているようだから
C++にもそういう仕組みを導入すれば自動チェックの可能性が出てくるね
Rustが様々な安全性をコンパイラで保証できる仕組みは
例えばスレッド間での移動や共有の可否などを抽象的なトレイトで表現して
各型をそれらのトレイト境界で制約して型チェックで実現したりしているようだから
C++にもそういう仕組みを導入すれば自動チェックの可能性が出てくるね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪 ★2
- 【実況】博衣こよりのえちえち朝こよ🧪
- カカロット、腰痛い
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 【!?】高市早苗「靖国神社電撃参拝プラン」浮上!これもう戦争だろ… [481941988]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
