Rust part10

■ このスレッドは過去ログ倉庫に格納されています
2021/04/02(金) 21:38:04.11ID:L7IeSfpL
Mozilla発のRust言語のスレ

公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

日本語の情報
https://rust-jp.rs/

前スレ
Rust part9
https://mevius.5ch.net/test/read.cgi/tech/1598112455/
2021/04/19(月) 18:02:01.96ID:Nl1mmVW4
だって入れ食いなんだもん…
2021/04/19(月) 18:15:13.40ID:zaOVVmA+
>>173
リトマス試験紙なんよ
C++で苦労した奴は文句は言わない。Rustが何をしてくれようとしてるのか分かるから。
C++ニワカは文句を言う。Rustが何をしてくれようとしてるのか分からないから。
2021/04/19(月) 18:56:00.14ID:7a+3hK+O
>>171
言ってる意味がまるでわからんのだが。
177デフォルトの名無しさん
垢版 |
2021/04/19(月) 19:29:57.41ID:OqiIdPZa
大半の人は、C/C++で苦労も何もしてないだろう
何が危ないのかも理解しないまま、危険なコードや穴の空きやすいコードを書いてるだけだ
2021/04/19(月) 19:51:48.28ID:iY2hw6vD
C/C++でメモリをぶっ壊して数日絶望するところまでがチュートリアル
2021/04/19(月) 19:59:51.22ID:sjEpEGTN
メモリぶっ壊すのは絶望ではない、C++の日常だ
2021/04/19(月) 20:10:50.91ID:hAOdtYDs
>>178-179
この人たち未だにC++でnewとかdelete多用してるかそれを通過儀礼のように捉えてる人たちだよね
こえ〜
よくある職場の老害像そのものじゃん
2021/04/19(月) 20:11:49.67ID:sjEpEGTN
アマチュア君にはそう見えるんだね
2021/04/19(月) 20:13:49.42ID:cPEAzkUm
さすがに日常ではないかな……
構造体の初期化にmemset使うようなC言語上がりのやつはどうだか知らんけど
2021/04/19(月) 20:16:58.02ID:swd16GZO
毎日のようにRustスレで繰り返し同じ事をグチグチ言ってる自称C++使い達はよっぽど暇なんだなぁって思う
2021/04/19(月) 20:21:28.79ID:7a+3hK+O
c/c++でそんだけ壊れるならrustでもunsafe使ってぶっ壊れまくるだろ。。
エアプ丸出しすぎるわ
2021/04/19(月) 20:21:54.23ID:iY2hw6vD
引数チェックのないライブラリ等で引数を誤ったりすると
パッと見正しく見えるのでかなり面倒なことになる
2021/04/19(月) 21:31:37.98ID:LNECVJtJ
AddressSanitizerを使ったことのないものだけが石を投げよ
2021/04/19(月) 22:14:40.51ID:w0HdGBDs
伸びてると思ったら。次からワッチョイ付けろよ。
2021/04/20(火) 00:56:58.25ID:h4Yrn7zO
https://trends.google.com/trends/explore?date=today%205-y&;geo=US&q=%2Fm%2F0dsbpg6,%2Fm%2F02p97,Python,Java,%2Fm%2F0jgqg

Google Trends での Rustと他の言語とのトレンド比較。
これを見る限り、Rust言語は全く流行ってないようだ。
2021/04/20(火) 00:59:14.52ID:h4Yrn7zO
Python>Java>=JS>C++>>>>Rust
2021/04/20(火) 01:00:58.56ID:P7hWVPU6
そんな超メジャー言語と比較されるようになったのか
2021/04/20(火) 01:04:41.62ID:h4Yrn7zO
>>190
逆にそんなマイナーな言語なのに書籍が出たりtwitterでRustとWasmが
対になって出たりしてたのか。
Rustを試してる人は書籍や雑誌記事を書いて食っていくかか、難しくて新しい言語
を知ることで自分の社会的評価(?)を上げようとしているのか。
2021/04/20(火) 01:11:58.24ID:P7hWVPU6
>>191
なんかかっこいい嫌味を言いたいみたいだけど
意味不明ですべってるぞ
2021/04/20(火) 02:00:40.62ID:1YS4Hj5E
>>161
雑に書いたコードだって自分で言ってんだろボケが
2021/04/20(火) 08:34:25.33ID:A+mNu4wy
https://m.slashdot.org/story/384324
2021/04/20(火) 10:41:16.90ID:MbK31k7w
なんか無駄なところに手を出しちゃったみたいになってる若い人が発狂してんのかね。
別にrustで学んだことは無駄にはならんよ。
現場でrust強要するのはクソだが。
2021/04/20(火) 11:46:33.55ID:UmXg6L/G
5chに若い人なんかいないよ
2021/04/20(火) 19:43:34.07ID:jXnHABO7
なるほどそれで皆C++の話ばかりするのか
2021/04/20(火) 21:08:17.70ID:i+94ZV2W
C++もそれだけ枯れたか
199デフォルトの名無しさん
垢版 |
2021/04/21(水) 11:52:12.19ID:/JxRHm/B
C++ニワカのLinusはpanicは認めないと言う話をしてるのにアロケーターだけの問題だ
「それだけでしょ、分かってるやつ居なすぎ」とまとめる
範囲外のインデックスアクセスでもpanicするし、Debugなら整数のオーバーフローでも
panicする(なぜかReleaseだとpanicしない)とんでもないアホの勘違いはJavaを持って
きて検査例外と非検査例外の話をし出す。せっかくResult/OptionがあるのにRustの文化と
なっているpanicを通常は捕捉しないと言うものをKernelに持ち込むなと言う話。
範囲外アクセスで即座に既存のC/Kernelならレジスタを保存してダンプするような
Segment fault例外トラップなどが働くのに、panicでスタック巻き戻し実行が起こるのは
絶対的に受け入れられない言うとる
Cの悪名高きsetjmpや、C++のRTL/動的例外テーブルの議論を見てるようだ
検査例外と非検査例外の話をし出すアホはもう来るな
2021/04/21(水) 12:24:14.02ID:dj6DJThv
++うんこ華麗にスルーして、やっぱリーナス見る目有るわ神だろ
2021/04/21(水) 12:54:12.00ID:KSNXGwT5
別にそこまで褒めることでもないんだけどね。。
ttps://lkml.org/
の他の議論に比べて明らかに議論のレベルが低いわけで。。
202デフォルトの名無しさん
垢版 |
2021/04/21(水) 13:38:37.86ID:T0Zi2n6U
>>199
なんか何言ってるのか分からない部分が有るな。
2021/04/21(水) 17:38:16.65ID:l2lL4TPp
js-sys見てたらJavaScript側の型の継承関係をDerefで表現しててびびった
こういうの普通なん?
2021/04/21(水) 17:58:04.79ID:tLndpRqR
>>201
歴史があってどう実装すべきかという指針ができあがっているCと
手探りで指針を作りつつあるRustで議論のレベルが同じにならないのは自然なのでは
2021/04/21(水) 18:42:16.83ID:KSNXGwT5
>>204
問題はそういう言語の問題まで行かず、カーネルが備えるべきところってな議論で止まってるって部分だけどね。
歴史という意味ではそもそもカーネルに対する歴史観が不足してる連中しかrustにはいないということになる。
2021/04/21(水) 22:06:45.67ID:2oKQsBoE
プロセスがスローし、誰も補足しなかった例外を
最終的に捕捉してそのプロセスを終了させるのはOS(ことによったらカーネル)の仕事である

一方、カーネルが仮に例外をスローしてしまったら誰が最終的な捕捉の任を負うのか
について今今のOS論には目下定説が無い

Linux(リーナス)は「カーネルは何があっても例外をスローすんなハゲ、」という
古典的な立場
のやつ、
2021/04/21(水) 23:10:54.58ID:/dktUqXg
機械語に例外なんてねーよ
いい加減なこと言ってんじゃねーや
2021/04/21(水) 23:43:21.15ID:NQ0xHQya
>>206 CPUの例外と言語上の例外との区別が付いてないみたいね。
2021/04/22(木) 00:18:18.68ID:41g4gqqa
>>203
javascriptでメソッドとか探すときにプロトタイプを遡っていく動きがあるけど
それをRustのドット演算子(.)がメソッド使える型になるまで自動で参照解決する仕様で
模倣したんだと思う

演算子の特殊な拡張は正規表現とか構文解析のライブラリでたまに見かけるけど
どちらかと言えばトリッキーな手法
2021/04/22(木) 02:40:36.34ID:hZdbeIl+
panic上等のredox!
セキュリティホール開けるよりマシという理由だった。

>>203
アンチパターンだから通常のコードでは使うな。
トレイトメソッド呼べないからクソって所まではすでに
githubのissuesやrust internalsで合意が有る。
js-sysはffi(バインダ)だから仕方ない。
2021/04/22(木) 02:53:02.19ID:3zTCC3Br
>>203
ガイドライン的には Deref はスマートポインタだけにしとけってことになってる。
https://rust-lang.github.io/api-guidelines/predictability.html#only-smart-pointers-implement-deref-and-derefmut-c-deref
2021/04/22(木) 05:58:54.39ID:WQGVMWvQ
例外の最終的な捕捉をOSの仕事、と書いたのは語弊があったスマンカッタ、
正確に言えば言語のランタイムが最終的に捕捉してプロセスを自発的に終了する
(スタックのアンワインドは言語依存性が強いのでそうなっている

しかしプロセスが自発的にexit()したら誰がそれを処理するのかというとOSやんけ;;;
カーネルの中で例外を生じられたら誰が終了を担保するのかについて
OS論的に定説が無いのは真

>>208
いじょ
2021/04/22(木) 06:34:32.34ID:WQGVMWvQ
で、別の観点の話をする、

OSがpanic上等というのはそれはそれでも良いが、
とにかくスタックのアンワインド処理は言語依存性が強いので
例外が通過する関数(ゼロコストの奴も含む)の巻き戻しのためには
関数のアドレスとスタックのアンワインド方法の対応表をランタイムが把握せねばならない
というわけでカーネル内の例外を認めると、その例外を最終的に捕捉する奴より
上の関数を全部同一言語・同一コンパイラで書かねばならないという縛りが生じる
現実にはそれで問題など生じないかしらんが、とにかくレイヤー分けに縛りが生じる
Redoxの一部をC++(等)で書くことは事実上不可能に、
2021/04/22(木) 13:01:11.46ID:hZdbeIl+
>>212,213
なんでカーネルの話してるのに言語ランタイムとプラットフォーム依存の話してるんだ?

>>213
Linusがカーネル書くのに信用してないだけで
C++でもフリースタンディング書けるだろ。
C++のフリースタンディングは最低限の標準ライブラリは持つからrustのcoreクレートと同じ。
C++ならexception、abort,exitがある。
>>213がホストとベアメタルの区別がついてないだけじゃないか?
あと、redoxのpanicはスタックトレース吐いてx86のhltループするだけだから。

そもそもカーネルで標準のexitなんか呼ぶか。
2021/04/22(木) 13:21:02.53ID:EDkBlaoV
Linux界隈といえばちょうど「マージしたパッチが研究目的にわざと脆弱性を含んだものだったことが発覚して激おこで送ってきた奴らの大学出禁にする」みたいな面白いことが起こってる模様
2021/04/22(木) 13:49:41.54ID:I9diyMZ1
どうせお前らはOS書かないんだからどっちでもいいじゃん
2021/04/22(木) 15:39:04.46ID:VwSZJGdV
linuxの騒動の話はさすがにスレチ
218デフォルトの名無しさん
垢版 |
2021/04/22(木) 21:04:10.86ID:ndVhN6HU
Cコンパイラゼミ消失問題を思い出した
https://twitter.com/rui314/status/1384422532363657221
https://twitter.com/5chan_nel (5ch newer account)
2021/04/22(木) 23:08:37.40ID:y/lG5X/l
研究目的だろうがそうでなかろうがわざと脆弱性を含むパッチを簡単にマージできている、という状況が問題なんであって
腹たつから大学出禁にしたった、とやったところで根本的な問題は何も解決しないんだけどlinuxのメンテナンスしてる連中とか
linusを筆頭にとか老害頭ばっかりだから自分がスッとすれはそれでいいんだろうな
2021/04/22(木) 23:21:38.67ID:5b2Tg2Qr
1) 善意でやってくれてる連中にケチつけんな
2) じゃあお前が根本的な解決とやらをやれ
3) もしくはその根本的な解決方法を彼らに教えてやれ
2021/04/22(木) 23:33:32.83ID:Bg0clzlT
しーぷらぷらあきらめてどろっぷあうとした
ちんちんぶらぶらまるはだかなひとたちが
らすとすぱぁとをきめるスレ
2021/04/22(木) 23:52:38.76ID:KHhdvM96
rust厨八つ当たりw
2021/04/23(金) 08:31:32.27ID:yuX3+THA
その脆弱性もUAFとかぬるぽデリファレンスとか未初期化領域の使用とか2重開放とか最近の言語じゃ明らかに意図してやらなきゃ起きないようなもんばっかだもんなぁ
そりゃC/C++にしがみついてる大先輩方にとっちゃ逆鱗だわな
2021/04/23(金) 08:34:12.76ID:Lj3XxxY0
そんなもんunsafeしまくれば同じだろ。。
そういう問題じゃないことくらいわかるだろうに、本当の馬鹿だな。
2021/04/23(金) 08:36:52.46ID:+YpcBxgU
C++とlinuxの話禁止な
2021/04/23(金) 08:52:11.81ID:Lj3XxxY0
rustでOSかける->linus、panicある限り載せねーよ->rust信者発狂
2021/04/23(金) 09:00:00.40ID:5QBVXmI/
発狂?むしろ歓迎
個人で使うようなアプリは好きなだけパニくれ
使われるアプリはパニくんなカス、これ常識だろ
2021/04/23(金) 10:42:10.47ID:Lj3XxxY0
言語実装的にもそうなってないよねって話なんだけど、なんだか通じてなさげ。
2021/04/23(金) 11:59:33.30ID:bX8BaI1F
rustにもgoのマスコットキャラみたいなのいないんですか?
2021/04/23(金) 12:13:46.74ID:hS4CVJbd
かにさん
2021/04/23(金) 12:17:43.73ID:E6ocica9
>>214
>なんでカーネルの話してるのに言語ランタイムとプラットフォーム依存の話してるんだ?
カーネル内での例外を許すみたいな立場で話す人が居るから

例外メカニズムが言語ランタイムと不可分な理由は
>スタックのアンワインドは言語依存性が強いのでそうなっている (>>212

C言語みたいにそもそも例外メカニズムを持たない言語を使った場合のみ
言語ランタイムと切り離したカーネル設計ができてスキーリ
2021/04/23(金) 12:23:39.46ID:Xbep6LJc
>>219
だから、脆弱性を簡単に盛り込めないように危険な団体を排除しただけだろ。
普通の対応だと思うけど?
2021/04/23(金) 12:31:21.77ID:+YpcBxgU
>>231
> >なんでカーネルの話してるのに言語ランタイムとプラットフォーム依存の話してるんだ?
> カーネル内での例外を許すみたいな立場で話す人が居るから

いません
この話はおわり
2021/04/23(金) 12:56:09.67ID:1/JMNo8Q
「注意すればC/C++でも問題ない」って意見は日本的だよな
人間はミスしないことが前提になっている
Rust Foundationのメンバーに言わせればそういう問題ではない
人間はミスするものだってなるんだろうけど
2021/04/23(金) 13:00:34.48ID:Lj3XxxY0
そのミスの取り除き方のアプローチの違いだっていうことにさえ気づかない馬鹿。
2021/04/23(金) 13:33:15.21ID:AZKiGQoD
c++でミスするような無能はrustでも使ってろと怒鳴り散らす
これが正しいアプローチ
2021/04/23(金) 13:43:27.45ID:M88Kc634
>>229-230
なんで蟹なんだろうな。
PythonユーザーのことPythonistaって言うみたいに
RustユーザーのことRustaceanって言うけど、
これCrustacean(甲殻類)からCを取り除いたものなんだな。
2021/04/23(金) 14:28:40.04ID:9+zMAQDa
エビにしろよな
カニだとRealtekと被るじゃん
239デフォルトの名無しさん
垢版 |
2021/04/23(金) 14:58:40.99ID:ntrIv3TW
大半の人は、C/C++の文法がわかる程度でプログラムを書いているのが現状だろう
何がミスなのかそもそもわかっておらず、Rustを勉強している人と話も噛み合わない
2021/04/23(金) 15:01:12.26ID:Lj3XxxY0
c++とrustの部分入れ替えてもなんの違和感もない文章だね
241デフォルトの名無しさん
垢版 |
2021/04/23(金) 15:03:21.83ID:ntrIv3TW
君にはそう見えるだろうね
2021/04/23(金) 15:05:01.62ID:Lj3XxxY0
君にはそう見えないんだろうね
243デフォルトの名無しさん
垢版 |
2021/04/23(金) 15:05:59.83ID:ntrIv3TW
とりあえず、話が噛み合わないのはわかったでしょ
2021/04/23(金) 15:07:53.22ID:9+zMAQDa
C++ドロップアウターが希望を求めてやって来るスレ
2021/04/23(金) 15:13:29.93ID:ECpnCXVF
スレでグチグチ言うよりプログラム書いた方がよっぽど理解できるよ
246デフォルトの名無しさん
垢版 |
2021/04/23(金) 15:20:14.54ID:ntrIv3TW
C/C++で穴のあるコードを書いてもしょうがないし、それも難しいんじゃないのかな
逆にC/C++の人らがRustコンパイラをすり抜けるヤバいコードを提示してくれたら、一発で口だけじゃなく出来る人だったと示せるだろうが
2021/04/23(金) 15:28:23.22ID:mq69qBnk
>>155
> Rustに比べたC++の良さは雑に書けるところだって気付いた
> やっぱ雑が許されない巨大プロジェクトはRustで、小規模な自分用ツールの類はC++で書いてくことになりそうだ


これが何気に的を得てるでしょ
コンパイラが安全な方に導いてくれるのはもちろん良いとして、それよりも雑に (あるいは短く親しんだ方法で) 書きたい思惑が優先されるときは C/C++ でやれば良い話で
2021/04/23(金) 15:38:53.83ID:CjhKTAAP
いや、Rustでラクに書けない時点で勉強が不足してる
そのことに自分で気付けるような人だけRust使えばいい

「当を得る」か「的を射る」ことが出来るような人になってほしい
2021/04/23(金) 15:56:22.07ID:mq69qBnk
いや、単にコード長が C/C++ の方が短く書ける可能性高いでしょ
どんなイディオムを駆使しても
2021/04/23(金) 15:59:55.49ID:mq69qBnk
あと近年では「的を得る」は必ずしも誤用じゃないという見方が主流でしょ
2021/04/23(金) 19:45:46.49ID:ECpnCXVF
Rustの方が雑に書ける局面多いと思うけどなぁ
2021/04/23(金) 20:51:53.23ID:+YpcBxgU
C++ vs Rustスレでも作ってそっちでやってくれマジで
不毛すぎる
253デフォルトの名無しさん
垢版 |
2021/04/23(金) 21:04:58.31ID:g6tU54WL
>>249
そうだね、記述量の多い言語だと思う
2021/04/23(金) 22:37:03.61ID:E6ocica9
Rustのコンパイラと戦って勝ったコードは
シンプルでエレガントで簡潔なことが多い
らしい
mjk、
2021/04/23(金) 23:34:43.49ID:KS/Kkucz
linusはやっぱすげーな
洞察力が違うわ
もちろんその道の神的な存在とはいえ
たいして知らない言語の弱点を一瞬にして暴いて
論破できるのは凄い
2021/04/24(土) 01:08:35.83ID:h5KFlu4v
>>251
例えばどんなとき?
2021/04/24(土) 01:20:53.45ID:vtdgUVMq
どんなときもどんなときもRustがRustらしくある〜ために〜
2021/04/24(土) 08:06:24.96ID:nPKzA798
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/

立てましたので以降そういうのはこっちでお願いします
2021/04/24(土) 08:33:43.03ID:AUtfiExa
>>258
お前ずっと一人で「他所でやれ」連呼してる奴だろ
C++との対立構造はRustにとって無視できないテーマでしょ
正直C++とどう住み分けたら良いのかわかってない奴がほとんどなんだから
260デフォルトの名無しさん
垢版 |
2021/04/24(土) 08:39:09.80ID:/opj2hnT
C++とRustは対立なんてしてない
Rustが怖いC++お爺ちゃんがRustに噛みつているだけでしょ
2021/04/24(土) 08:48:20.99ID:MAG7Rri7
カーネルの件で完全に拗らせとるな
2021/04/24(土) 08:54:35.43ID:8O98k7om
> C++との対立構造はRustにとって無視できないテーマでしょ

お前のテーマなんてどうでもいいんだよ
よそでやってくれ
2021/04/24(土) 08:59:24.96ID:MAG7Rri7
一般的なテーマだってこともわからんのか。馬鹿だな。
2021/04/24(土) 09:02:59.11ID:CqGuC/ho
リナス「やっぱCが至高、C++もRustもクソ!」
2021/04/24(土) 09:13:04.98ID:IM8zU0Pj
rustもpanicをコアから外せればいけると思うのだが
もろ言語のコアなんだよな
痛いところ突かれた
2021/04/24(土) 10:06:12.73ID:yJd/gJxx
言語の問題じゃなくてライブラリの問題では
2021/04/24(土) 10:11:32.69ID:vtdgUVMq
へーpanicってライブラリなんだ
2021/04/24(土) 10:29:13.61ID:nPKzA798
>>259
仮にその対立構造を認めるにしても
「雑に書くならC++のほうが楽」なんて、曖昧で基準も何も示されない話に真面目に付き合う奴はいないよ
そういう奴らのための隔離スレとして用意したから好き放題書き散らせばいい
2021/04/24(土) 10:42:59.04ID:2MdujosH
コード長の話でしょ?
どー考えてもC++の方が短いよ
んなとこで張り合ってもしゃーない
2021/04/24(土) 11:44:33.91ID:8fCyRscb
3割ぐらいは長いな
https://benchmarksgame-team.pages.debian.net/benchmarksgame/how-programs-are-measured.html

median source code gzip (July 2018)
Ruby 568
Python 672
C++ 1044
C 1115
Rust 1319
2021/04/24(土) 12:07:10.57ID:RPGHdVOi
>>258
乙。次からテンプレ入りで

>>980
スレ立てよろ

==========
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

日本語の情報
https://rust-jp.rs/

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/

前スレ
Rust part10
https://mevius.5ch.net/test/read.cgi/tech/1617367084/
==========
2021/04/24(土) 12:17:31.75ID:HBFF7y2e
Rustしかまじめに勉強したことないけどいい言語だと思うよ
2021/04/24(土) 12:21:15.48ID:8fCyRscb
>>272
C/C++で一度ひどい目にあわないとRustの良さは分からんよ
今はまだ分かった気になってるだけ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況