Rust part14

■ このスレッドは過去ログ倉庫に格納されています
2022/02/12(土) 01:24:16.59ID:XYE+Rws6
公式
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/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

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

※次スレは原則>>980が立てること

前スレ
Rust part13
https://mevius.5ch.net/test/read.cgi/tech/1636247099/
367デフォルトの名無しさん
垢版 |
2022/03/11(金) 04:20:44.43ID:KdADcOUe
>>366
Googleなんて言語オタクの精神異常者集めた企業の代表じゃん。そりゃそうなるよ。Common Lispとか好きそう

ジェネリクスとかイテレーターがなくてガッカリしてるのも言語オタクの特徴だな。普通の人はそれでいいって思ってるよ
2022/03/11(金) 05:51:22.53ID:egx2H9Pr
ほんとこのおじさん言語叩けりゃ何でも良いんだな。今度の棒はGoか。んでまだCommonLispのこと根に持ってる。そしてホントは.NET好きなのは隠しきれてない
2022/03/11(金) 06:14:29.85ID:GmBPyzdt
標準ライブラリならOKだよ
入っていると入っていないでは雲泥の差がある
処理系が責任を持って開発する部分で、基本部分である以上、ユーザーが少なくてもunsafeでも最大限の品質が保証されるから
言語仕様開発や処理系側からすれば、そんなところを大きくすると言語自体が保証する安全性にケチがつきかねないから小さくしたい心情はあると思う
純粋にフットプリントは小さくしたいしね
ただスレッドや同期機構まで用意してるので、世の流れとして非同期くらいまでは標準にしないと扱いにくいとは思う
切り離しやすく決まってると嬉しい
他の言語との比較はRust自体の説明に必要でない限りこのスレではしない
2022/03/11(金) 09:41:54.29ID:AW3C8472
なんだ、コード見て技術的なこと話してたらな、て思って見に来たら、
他のスレと同じで言語があーだこーだ言ってるだけか
まあ5chはこんなもんか
2022/03/11(金) 09:58:37.49ID:rj0Vocfx
unsafeがあるからダメなんじゃない
unsefeじゃないところがsafeなのがRustの大発明
2022/03/11(金) 11:23:22.26ID:H8qFXNfY
曖昧な感想をダラダラ書くより、これを紹介したほうが有意義だろ。

安全と危険のご紹介
ttps://doc.rust-jp.rs/rust-nomicon-ja/meet-safe-and-unsafe.html
2022/03/11(金) 11:54:34.16ID:GmBPyzdt
とりあえず英語版の方が内容新しいんで、こちらへ
https://doc.rust-lang.org/nomicon/working-with-unsafe.html

このexampleの2番目の
if idx <= arr.len() {
なんかが典型的で、これ気付けません。直後にあるとおり、

”...This program is now unsound, Safe Rust can cause Undefined Behavior, and yet we only modified safe code. This is the fundamental problem of safety: it's non-local. The soundness of our unsafe operations necessarily depends on the state established by otherwise "safe" operations...."

なわけ。
テキストでは最終的に可視性を利用して局所化してみたいなハウツーを入れてるけど、それは対策方法であって、局所化できる保証はない。
人間にミスは必ずあるからね。
どう書けば安全か分かっていて、それを確実に守れるなら、人間はC/C++でもバグ1つなく完璧にコーディング出来るはずなんだよ。

ってわけで、Rust is ☢UNSAFE☢ !!!!
2022/03/11(金) 12:12:51.12ID:YhXLzsgi
>>373
紹介している内容と主張している内容が一致していないように思えますが
unsafeが一つでもあればunsafeだと主張してるのかな?
2022/03/11(金) 12:18:09.85ID:H8qFXNfY
>>374
unsafeに閉じ込めるのはプログラマの責任、ということだろ。

Rustがunsafe以外で未定義動作にならないことを保証しているんだっけ?
2022/03/11(金) 12:25:34.38ID:egx2H9Pr
Haskellに対してモナドで副作用してるから純粋関数型言語じゃねえって感じの主張してはるんやろ
2022/03/11(金) 14:14:05.70ID:bW78VsKw
モナドが副作用起こしてるんじゃなくて実装系が副作用起こしてるんだけどね。
まああの辺の無駄な解釈学振り回すことばっかりな点は同じクソさを感じるわな。
2022/03/11(金) 15:15:40.38ID:egx2H9Pr
>>377
あぁすまん。雑だった
2022/03/11(金) 16:22:44.16ID:Agk6xs7V
言語の理屈の立て方とそれの実現の仕方はレイヤが違う話だし、
言語の話をする以上は言語の理屈を軸にするしかしょうがないじゃん。
2022/03/11(金) 21:29:04.10ID:o63L8Mvt
>>373
unsafeを用いて安全なコードを書いている部分に対してのみ
人間が注力することができるようになったRustは他の言語より進んでると理解できた?

>>375
unsafe以外ではRustは未定義動作(undefined behavior)がないことを保証

>>379
そこは理屈というか理論というか抽象的な概念で理解しておくべきところだね
実装や内部表現は変わりうるし最適化で消滅しうるので実現方法で理解しようとしても不安定で無意味
2022/03/11(金) 23:04:07.65ID:GmBPyzdt
>>380
何度言っても「unsafeを用いて安全なコードを書いている部分」が人間には限定できないのを理解できてないのはお前w
2022/03/11(金) 23:23:27.18ID:/JvA5shV
>>367
Goが魅力的と書いておいてGoogleをそこまで叩くちぐはぐさ
Rustを叩ければ棍棒は何でもいいんだな

>>381
まだ意味不明なこと言ってRust叩きしてるのか
敗北を認められなくて引くに引けずかね
383デフォルトの名無しさん
垢版 |
2022/03/11(金) 23:25:07.91ID:KdADcOUe
>>382
叩く・叩かないや敵味方のような二つでしか考えられないのか?
2022/03/11(金) 23:29:38.47ID:GmBPyzdt
>>382
論理的に反論されたことがないという認識なんだがw
上から頭ごなしにこうです!と言われて、いやこうこうこういう理由でそうとは思えないと伝えたら、
「意味不明」とか「Rust叩き」とか、「敗北を認められな」いと言われて議論が終わっちゃうだけw
2022/03/11(金) 23:30:30.36ID:/JvA5shV
>>383
自分が何を書き込みしたのか見直そうぜ

>>365
>>普通の人普通の企業にとってはGoの方が魅力的に映るだろうな

>>367
>>Googleなんて言語オタクの精神異常者集めた企業の代表じゃん
2022/03/11(金) 23:32:12.74ID:egx2H9Pr
>>385
叩いてみんなに構ってほしいだけなんだかほっとけ
387デフォルトの名無しさん
垢版 |
2022/03/11(金) 23:33:05.04ID:KdADcOUe
>>385
両方ともただの事実だが
2022/03/11(金) 23:37:39.97ID:/JvA5shV
>>384
Rustの言語ルール及びunsafeとそれ以外(safe)を分けることで
初めてコンパイラが通れば安全性を保証すること成功した枠組みを
未だに理解できずイチャモンつけるだけしか出来なくて恥ずかしくないのかね?
2022/03/12(土) 00:00:00.86ID:aEfI8PjB
>>388
別にunsafe自体はRustが作ったわけじゃないよw
C#が大昔にunmagedなコードを呼び出すために開発した
Rust同様に別にどこまでも範囲は広げられる
Javaもnativeってあるよね

この2つは基本的にVMが保証している枠組みを外れる部分に対して使用されてるので、VM内のコードが実行される限り、使う動機が発生しない
対してRustは安全を担保するための所有権の仕組みを逃れるためなど、unsafeを使用する動機がいたるところにある
標準が提供しているライブラリが足りないこともあり、これは相当深刻な状況なわけだw

すると、両者が意味するunsafeな部分の意味が大きく変わってくる。
簡単に言えば原則safeな部分を書き換えるためにunsafeが使用されないかどうかの違いw
残念ながらRustは安全を担保するための所有権の仕組みを逃れるためなどの理由でsafeな部分を書き換えるためにunsafeが使用されてしまっている
Rustがunsafeな理由の1つはこの動機の部分に潜在的な問題があるってことw
2022/03/12(土) 00:07:08.44ID:H1575t4R
unsafeの話はマジで意味不明なイチャモンでしかないな
25860の方がよっぽどやべえだろっていう
2022/03/12(土) 00:10:33.34ID:MeH0OP6r
>>389
Rustはデータ競合やメモリの安全性を保証する
しかしJavaもC#も保証することはできず無関係
Rustよりも優れたプログラミング言語を持ってこないとこの件でRustを批判するのは無理
2022/03/12(土) 00:11:14.62ID:8rIifBup
>>389
tokioやmioがunsafe使ってるのは所有権の仕組みを逃れることが主な理由だと思っている?
2022/03/12(土) 00:40:06.84ID:aEfI8PjB
unsafeはなければ未定義動作が発生しないと仮定できるw
RustだけでなくVMで動いてるものは当然メモリ安全だって仮定できるw
Rustの場合は特性としてnativeであり所有権に制限を付けることで、パフォーマンスへの影響が少ない形で安全を仮定でき、さらにデータ競合がないことも仮定できるのが有利なところw
ただ、unsafeがあるだけでそこは無制限に全て瓦解してしまうんだよねw
そして付けた制限に対する回避のためにunsafeを使用するという潜在的な問題があり、さらに標準の機能不足により、unsafe増加が加速し、収拾がつかない大☢UNSAFE☢時代に突入しているわけだw
Rust is ☢UNSAFE☢! おーまいが!
2022/03/12(土) 00:42:18.98ID:aEfI8PjB
Rustが安全だというなら、cargo geigerで☢がない状態にしてから言ってくださいねw
395デフォルトの名無しさん
垢版 |
2022/03/12(土) 04:41:10.84ID:VHcg50GX
cargo geigerの存在がRustがベターであることを証明してて笑える
2022/03/12(土) 05:34:45.69ID:aEfI8PjB
そういうのは他の言語なら機能性だけで分かるし、nativeならnativeで閉じてるから安心できるんですよね
でも何度も言うようにRustは何をしなくとも自らunsafeを入れてしまうので調べないと分からないw
しかも使い方的にその場所だけに閉じないため、☢UNSAFE☢を実感できてしまうとw
2022/03/12(土) 05:59:42.83ID:BRIbIkNq
なんかやばい奴いるね
2022/03/12(土) 06:05:00.96ID:EqbJSpHR
かまってちゃんおじさんだよ
2022/03/12(土) 06:28:17.65ID:aEfI8PjB
ついにただ煽るだけの人まで現れたw これがRust品質w
2022/03/12(土) 07:31:15.18ID:p6j9TyDJ
C#おじ芸風変えてきたの?
2022/03/12(土) 07:37:25.45ID:aEfI8PjB
どのレスを指してるのか知らんが、俺を指して言ってるなら人違いw
ってか煽ってるだけで何もできなそうな奴多すぎw
芸風とかどうでもいいし、それを気にするならお前の芸風がキモいだけw
2022/03/12(土) 07:38:35.78ID:N7+EgIAn
人を煽るくせに自分が煽られるとすぐ被害者面するの、かまってちゃんおじさんの平常運転です
2022/03/12(土) 07:45:19.39ID:aEfI8PjB
ID変えて大変だねw

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/12(土) 08:05:59.99ID:p6j9TyDJ
必死だな
2022/03/12(土) 08:10:52.33ID:aEfI8PjB
流そうとして必死なのはお前w 俺はもう飽きてるぞw

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/12(土) 08:13:04.53ID:EqbJSpHR
そこまでして構ってほしいのか
2022/03/12(土) 08:13:48.07ID:v+mpYErf
あーあ壊れちゃった
2022/03/12(土) 08:14:09.67ID:aEfI8PjB
飽きすぎたわw

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/12(土) 08:23:02.74ID:4DPn029u
荒らしにとって一番辛いのは叩かれることじゃなくて無視されること
NGにすればいいけど、もっといいのは違うかまってちゃんを全員が構うようになるとそうとう辛いw
2022/03/12(土) 08:24:36.31ID:aEfI8PjB
荒らしじゃないんだよなぁ・・・俺だけだよ。本当にRustの話してるのw

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/12(土) 08:33:16.69ID:p6j9TyDJ
> もっといいのは違うかまってちゃんを

複製おじですか
2022/03/12(土) 08:35:57.42ID:SV7jSkht
やっぱワッチョイ入れるべきだったんだよ
2022/03/12(土) 08:44:33.37ID:aEfI8PjB
もう20レスくらい俺以外Rustのラの字もないなw

ワッチョイ入れてもねぇw NGとかなかなかしないんよねw しかも俺結構大手のプロバイダだから多分被るよw
俺には関係ないからどうでもいいけどw

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/12(土) 08:52:13.10ID:SV7jSkht
ワッチョイ入れてほしくないんだね
2022/03/12(土) 09:02:02.69ID:aEfI8PjB
ワッチョイなんて俺には何の関係もないんだがw
俺が言うのもなんなんだが、Rustに関係のない話はやめた方がええでw
現状Rustというゴミ言語は俺にすら有効性を認めさせられないってことで、世間に広まるのは夢のまた夢なんだよなぁ・・・

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/12(土) 10:04:24.24ID:ThmhmMsv
Rustが一部の高齢(脳年齢)エンジニアを狂わせるunsafeな言語であることが示されつつあるな
Rustがunsafeなのか高齢エンジニアがunsafeなのかは意見が分かれそうだが導入するときは要注意かもしれない
2022/03/12(土) 10:13:42.44ID:aEfI8PjB
裏ではtokio使って、非同期でも何でも簡単に使えます!安全です!とか他スレでホラ吹きまくってるからだろw
嘘をついてまで他スレに喧伝までしてなければ誰も叩いたりはしない

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/12(土) 11:04:21.69ID:JxEFMwOe
実際はRust以外がunsafeで、Rustは一部safeなところがあるだけだけどね
高齢者はみんなcでunsafeに慣れてるから、Rust使わんでもunsafeだよ
2022/03/12(土) 11:20:44.14ID:hAWsDuYe
rustだけやってりゃいいとか言ってる奴は100%老害化するよ。
2022/03/12(土) 12:04:42.93ID:aEfI8PjB
Rust以外がunsafeは嘘w C/C++などの古い言語は全部unsafe w
ただRustもunsafeな領域を人間には確実に限定できないので、☢があれば実質全部unsafe w

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/12(土) 12:18:34.97ID:ARhhT+a7
>>420
無知すぎるな
geigerは標準ライブラリを調べていない
そしてRustの標準ライブラリの中はもちろんunsafeだらけ
それなのにgeigerは一番肝心な標準ライブラリを調べていない

それはなぜか?
unsafeの正しい使用には全く問題がないからだ
unsafeを使ってそれを内部に閉じ込めて外部に安全なインタフェースのみ提供する
標準ライブラリを含めてライブラリはこの安全なインタフェースを提供している
2022/03/12(土) 12:37:50.92ID:aEfI8PjB
>>421
> geigerは標準ライブラリを調べていない
そんなことは>>316で書いたw
>>356 >>369でも言ってるとおり、ランタイム/VM+標準ライブラリは「前提として」100%信用するw
この境界は区別しないとプログラム全体の安全性が定義できないし、それらの実装言語は何でもアリだからw
2022/03/12(土) 12:45:28.26ID:8rIifBup
rustは "安全な言語" じゃなくて "比較的安全なシステムプログラミング言語" だよ
議論のポイントがずれている
424デフォルトの名無しさん
垢版 |
2022/03/12(土) 12:50:29.49ID:VHcg50GX
unsafeを混在させたくないなら自分で書けばいいだけだよ
その選択ができることが他所とは違うところ
2022/03/12(土) 12:53:38.99ID:ARhhT+a7
>>422
愚かだな
どのプログラミング言語においても標準ライブラリに問題が発見されて修整されてが繰り返されてきた
標準ライブラリとなっけられているからといって100%信用できるわけがない
そこには何も保証がない

一方でRustならば標準か否かに関係なく保証ができる
unsafeを利用して安全なインタフェースを作った部分のみ人間がチェックすればライブラリ全体の安全性はRustの言語が保証できる
Rust以外の言語はライブラリ全体を人間がチェックしなければならない
Rustがこの点で全ての言語に対して優れていることは誰の目にも明らかだ
2022/03/12(土) 13:01:02.47ID:6Ov0/1Y8
で、おまえその優れた言語で何か書いてんの?え?actixのサーバー?コマンドラインのプログラム?(笑)
2022/03/12(土) 13:08:00.19ID:aEfI8PjB
>>423
ずらしてるんだけどねw

>>424
残念ながら世の中の需要はそうなっていないから、>>335と言ってたわけだよw
分離できる言語は多いけどw

>>425
そこを保証するのは処理系側なんて、その言語の利用者側は100%信用するしかないんだよw
標準以外がunsafeを利用してたらもう終了w なんで理解できないのかなw

>>426
匿名掲示板でそういうのは聞かないだろ普通w お前が言ったらじっくりいろいろ聞いてやるよ(俺は言わないw)
2022/03/12(土) 13:10:43.13ID:4DPn029u
>>426
主要基本orミドルの書き換え
今はLi*uxというあるOSを全てRustで書き直すプロジェクトの統括責任者兼主席ブログラマやってます
429デフォルトの名無しさん
垢版 |
2022/03/12(土) 13:17:12.35ID:VHcg50GX
他所とは違う点は認めるのね
2022/03/12(土) 13:22:49.30ID:aEfI8PjB
>>429
そっちは読んでもいねーよw 俺宛て以外読みたくないだろ面倒だからw
まあ返事はしなくても分かると思うけどw
2022/03/12(土) 13:39:59.72ID:ytaUV4Dx
安全第一 品質第二

今日も一日ご安全に
2022/03/12(土) 14:25:52.99ID:lQEaAeiN
(unsafeじゃないから)ヨシッ
2022/03/12(土) 14:33:29.78ID:aEfI8PjB
ヨシッ!!
#![forbid(unsafe_code)]
fn main() { maybe_safe::read_address_4byte(0); }
※全文は>>321 参照
2022/03/12(土) 14:34:41.57ID:aEfI8PjB
>>312だったw
2022/03/12(土) 14:42:01.36ID:ARhhT+a7
>>434
その>>312を見たが作った関数がunsafeなのにunsafe宣言をしていない
ルールを守らずにunsafeを使用してはいけない
ルールもわからない初心者ならばunsafeを使うな
2022/03/12(土) 14:48:42.84ID:aEfI8PjB
>>435
前にも同じこと言われて
>>314
>>316
となり、以降まともな反論ないんだけどw
しかもこのやり取り何度目?wwww
2022/03/12(土) 14:49:50.97ID:AVqesmXc
次スレワッチョイつけてくれや
マジでうっとおしい
2022/03/12(土) 14:53:48.90ID:aEfI8PjB
#![forbid(unsafe_code)]
fn main() { maybe_safe::read_address_4byte(0); }

(unsafeじゃないから)ヨシッ
    ∧  /ヽ
   // ̄ ̄\|
   ∠_╋__〉
  / @八@ ヽ _
  工ニf(_人_)エ二|′)ヽ
  \ヽヽノノ ノ ヘ |
⊂⌒)_>―――′イ (_)
 `ー、_ノ/ ̄ヽ |
   _||  | |
  (  人_ノ Λ
   \ス ̄ ̄レ-Λ \
  ( ̄ ) / / \ノ\
    ̄ ̄ ( ヽ  \_)
      \ノ
※全文は>>312参照
439デフォルトの名無しさん
垢版 |
2022/03/12(土) 14:59:12.25ID:VHcg50GX
だから、比較的安全、ということでいいでしょ
オフィシャルも含めてそれはみな承知のことだよ
2022/03/12(土) 15:04:06.13ID:aEfI8PjB
比較的安全という「希望的推測ができる」だけで、実際にはC/C++と全く変わらないw
前にも言ったけど、ミニマムなunsafe領域を含む「設計意図としてのunsafe」が示せるだけw
441デフォルトの名無しさん
垢版 |
2022/03/12(土) 15:17:24.76ID:VHcg50GX
全く変わらないというのは、同じものを同じ人がCとRustで書いたとき、問題が起きる確率は変わらないだろうということ?
2022/03/12(土) 15:24:02.56ID:ARhhT+a7
>>440
違いを理解しよう

C/C++では安全性の保証は無し
ライブラリ含めて全てのプログラムに対して相互に関係する影響について人間が全てチェックしなければならない

Rustでは言語がすなわちコンパイラが安全性の保証をすることができる
unsafeを使った部分のみその影響範囲が閉じていることを人間がチェックするだけでよい
2022/03/12(土) 16:06:48.08ID:aEfI8PjB
作り方の問題で言語の理解がしっかりしてればどちらも同じように出来るw
機械的な保証があるかないかが問題で、その分はunsafeがある時点で保証できなくなるだけw
ただし、Rustには作り方に制限があるため、その作法でC/C++が実装された場合の話にはなる、というだけの話w
C/C++で作法を守らない部分の責任は人間側で負う必要があるw
C/C++とRustどちらも保証はできないw
444デフォルトの名無しさん
垢版 |
2022/03/12(土) 16:09:18.50ID:gqCw8ds0
Unsafe使ってたらSafeじゃない理論ってC#でもFFI使ってたらUnsafeってことでいいの?
2022/03/12(土) 16:28:56.66ID:aEfI8PjB
C#はunmanagedなコード以外でunsafeを使用する動機がないので懸念点がない上に、外部の何かへのアクセスが前提で、managedなオブジェクトの書き換えはあまり発生しない。
例外的にmanagedなオブジェクトを書き換える場合でも、unmanagedコードがロジック自体を持たないのが普通。
他方Rustは所有権の制限を適用しない目的などでオブジェクトを書き換えるため、それ自体がロジックの一部となっている。
例えば他のライブラリやシステムコールを利用してるなど、明確に分かるものがあればまだいいが、そういうのがないただのデータ構造に対するロジックなどにもunsafeが適用されるため、利用者側からは想定すらできず、それらを発見するためのツールが必要になってる状況も踏まえ、事態は深刻である。
そして多すぎるunsafeのせいで、それらを利用者側が正確に分類・把握できない、もしくは気付いてすらいないのが現状w
実験室向けの簡単なコードならそれでよくとも、製品レベルのコードでそれは致命的であるため、安易な「安全宣言」は悲劇しか生まないw

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/12(土) 16:29:32.03ID:ThmhmMsv
C#はFFI使わなくてもぬるぽ(ぬるり?)できるから最初からunsafeかと
せぐふぉじゃなければセーフというなら話は別だけど

Rustはunsafeな範囲を可視化できてその範囲指定が正しいことを機械的に保証できるから
C/C++に比べて比較的安全(安全性を担保しやすい)って話なんだけど
0か100でしか考えない人間にはこの差が見えないのかもしれないな
2022/03/12(土) 16:33:40.22ID:aEfI8PjB
「Rustはunsafeな範囲を可視化できてその範囲指定が正しいことを機械的に保証でき」ないのですよw
機械的に保証できるのは俺の言い方だとミニマムな部分だけw

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
448デフォルトの名無しさん
垢版 |
2022/03/12(土) 16:39:30.29ID:VHcg50GX
変な言い回しするから言いたいことがよく分からない
自分でunsafe書いてなくても、依存関係がunsafeを濫用してたらアプリケーション全体としてはunsafeじゃないか
という主張なんだよねたぶん
2022/03/12(土) 16:51:59.88ID:aEfI8PjB
俺の主張の大事な点は2つだよ
・安全とするにはunsafeと宣言すべき関数を機械的に決めることが出来ない
・安全のために所有権に厳しい制約を課しているが、その厳しさからunsafeを使う動機が常に言語内にある

これらから導かれる推測は多岐にわたるけど、分かりやすい結論として
Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
という警鐘を鳴らしているだけw
450デフォルトの名無しさん
垢版 |
2022/03/12(土) 16:57:57.83ID:VHcg50GX
一つ目言ってる意味がもう分からないんだけど
普通に言ってくれ
451デフォルトの名無しさん
垢版 |
2022/03/12(土) 16:59:02.17ID:VHcg50GX
わっチョイの議論が出てるけど個人的には過疎るから賛成できない
この人は語尾wでNGすればいいだけと思う
2022/03/12(土) 17:05:16.49ID:aEfI8PjB
>>450
普通に言った。何が分からないのか言ってくれw
453デフォルトの名無しさん
垢版 |
2022/03/12(土) 17:10:56.57ID:cQ3TFkgX
安全のために所有権に厳しい制約を課しているが、その厳しさからunsafeを使う動機が常に言語内にある

わからんでもないかもしれん
2022/03/12(土) 17:38:29.48ID:olrB42jq
>・安全とするにはunsafeと宣言すべき関数を機械的に決めることが出来ない

安全とするには〜する必要がある
なら分かるが、

安全とするには〜出来ない
なので主張がわからんという話でしょ
2022/03/12(土) 17:44:06.44ID:ARhhT+a7
>>448
『自分でunsafe書いてなくても、依存関係がunsafeを濫用してたらアプリケーション全体としてはunsafeじゃないか
という主張』は
実際に使われているモジュールでそういう例があるならば成り立つ
しかし現実にはunsafeなモジュールは存在しなくて
>>445はその例を挙げることすら出来ていない
机上の空論を繰り返しているのみ
2022/03/12(土) 17:47:55.25ID:ARhhT+a7
>>453
その場合ですらunsafeは使っても構わない
そのunsafeを使った局所的な部分に影響が閉じ込められていて安全なインタフェースのみ公開されていればよい
そしてRustコンパイラは残り全体の安全性を保証できる
2022/03/12(土) 18:12:42.07ID:BikZ9gam
いい加減無視することを覚えとけ
こんなの相手にするから調子乗るんだぞ
2022/03/12(土) 18:22:27.94ID:aEfI8PjB
>>454
(安全とするにはunsafeと宣言すべき関数)を機械的に決めることが出来ない
こう書けば分かるのだろうかwwww

>>455
issueがないとでも思ってるの?wwww

>>456
「そのunsafeを使った局所的な部分に影響が閉じ込められてい」る前提がおかしいw
安全なインタフェースとは誰が判断するの?wwww
どうなってたら安全なの?wwww
それを人間が判断する以上、どこまでも間違いは起きるよw

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/12(土) 18:34:51.66ID:w6D1v3Ro
反応してるやつも同レベルの荒らしだから、いっしょくたにあぼーんしましょうね
2022/03/12(土) 18:41:59.36ID:rZuwbTBO
>>451
これが正解
末尾wは煽りたいだけだから対話する気がないし
461デフォルトの名無しさん
垢版 |
2022/03/12(土) 21:08:03.28ID:gqCw8ds0
例えばTokioを使ってUnsafe由来の変な落ち方する例とかが有ればUnsafe使ったライブラリ全然信頼できねーなって同意すると思う
2022/03/12(土) 22:12:28.43ID:xEYZIbmO
与えられたコードがunsafeかどうかを判定するルーチンHがあればいいんだろ
2022/03/13(日) 00:20:04.81ID:e39Fa4ck
>>461
https://www.google.com/search?q=tokio+issue+unsafe
全部調べてないと証明できないのであればあるw
これ以外に存在しないかどうかは不明だが、お前が信用するしないで事実が変わるわけじゃないw

>>462
そうだね

Run cargo-geiger!
💀💀💀☢☢☢☢💀💀💀 !!!! Rust is ☢UNSAFE☢ !!!! 💀💀💀☢☢☢☢💀💀💀
2022/03/13(日) 16:13:24.15ID:VLrvk/Ce
次スレはワッチョイつけますから覚悟しておいてください
それまでの命だ
せいぜい楽しむがいい
2022/03/13(日) 16:28:13.28ID:ZgBuX4v3
>>463
読んでみました
・質問者がunsafeの言葉を使い間違えてました
・ランタイムを何度も複数回スタートさせていました (そしてunsafeな状況は起きていない)
などで
(unsafeを使って)安全でないインタフェースを公開してしまったわけではないようです

>>464
反対です
過疎ってRustが不利になるだけなので
皆がワッチョイ無しスレも立てる結果となるでしょう
2022/03/13(日) 16:46:41.64ID:VLrvk/Ce
>>465
皆というかあなたがね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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