公式
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/
探検
Rust part14
■ このスレッドは過去ログ倉庫に格納されています
2022/02/12(土) 01:24:16.59ID:XYE+Rws6
233デフォルトの名無しさん
2022/03/07(月) 22:41:05.90ID:TrDR7mvG >>228
自由なライブラリが無数にある状況を良しとするとならcommon lispも良しとしてそう
自由なライブラリが無数にある状況を良しとするとならcommon lispも良しとしてそう
234デフォルトの名無しさん
2022/03/07(月) 22:45:19.55ID:TrDR7mvG Common Lispと同じで一部のマニアが熱狂したままで一般に浸透せずそのまま死ぬ未来が見える
235デフォルトの名無しさん
2022/03/07(月) 22:53:18.02ID:uUEKcK4+ おじさんがまたIDコロコロしてる……
236デフォルトの名無しさん
2022/03/07(月) 22:54:35.35ID:TrDR7mvG 俺をキチガイアンチと一緒にするんじゃねえよ
237デフォルトの名無しさん
2022/03/07(月) 23:00:16.25ID:SxK5Ewlv238デフォルトの名無しさん
2022/03/07(月) 23:01:40.70ID:TrDR7mvG239デフォルトの名無しさん
2022/03/07(月) 23:23:44.30ID:SxK5Ewlv >>238
強いもの1つだけが残る死の世界を望む人はいないしそんな現実もない
例えばJavaScriptのフレームワークの最新シェアを見ても1位は31%しかなく2位が12%で3位が11%とこの3つでようやく過半数
それぞれ特徴の異なるフレームワークが多数共存していて皆がそれぞれ自分に合ったものを選ぶことができる健全な世界となっている
強いもの1つだけが残る死の世界を望む人はいないしそんな現実もない
例えばJavaScriptのフレームワークの最新シェアを見ても1位は31%しかなく2位が12%で3位が11%とこの3つでようやく過半数
それぞれ特徴の異なるフレームワークが多数共存していて皆がそれぞれ自分に合ったものを選ぶことができる健全な世界となっている
240デフォルトの名無しさん
2022/03/07(月) 23:30:43.91ID:2Lq6XwwP241デフォルトの名無しさん
2022/03/07(月) 23:31:07.44ID:TrDR7mvG242デフォルトの名無しさん
2022/03/07(月) 23:32:49.16ID:TrDR7mvG ってかJSが覇権とった時ってHTML上書きとJQuery以外あったん?
243デフォルトの名無しさん
2022/03/07(月) 23:40:00.14ID:2Lq6XwwP ないわけじゃなかったけど、猫も杓子もjQuery一色だったな
244デフォルトの名無しさん
2022/03/07(月) 23:41:43.52ID:2Lq6XwwP 当時jQueryはブラウザ間の違いを吸収する役割を担ってたからというのもあるけど
245デフォルトの名無しさん
2022/03/07(月) 23:43:20.17ID:7aFZ7qh0 そもそもなんでWebフレームワークとして生き残れるかどうかって話になってるんだ?
Rustの本分はWebで言えばrustlsとかquicheみたいな最下層のライブラリ実装にあるんでは…
まぁWebフレームワークやGUIで普及するのはきついと思うよ
Rustの本分はWebで言えばrustlsとかquicheみたいな最下層のライブラリ実装にあるんでは…
まぁWebフレームワークやGUIで普及するのはきついと思うよ
246デフォルトの名無しさん
2022/03/07(月) 23:43:54.72ID:OgyEhepF 間違い探しの練習問題作ってんのかな?
247デフォルトの名無しさん
2022/03/07(月) 23:50:27.38ID:wcfmwfx3 >>229
>Rustが件の調査で1番だったのはGCランタイムとか関係なく、安全で速いと嘯かれた人が騙されて使用してるだけ
デタラメすぎてあまりにも酷い
Rustを使っている人は騙されているのかw
>実際には苦労して書いても速くなく、
苦労して書くという時点でプログラミング初心者か
普通に書けば速いぞ
>unsafeを使って初めて速くなるか、
unsafeは閉じ込めた中で使うものであって普通は外でわざわざ使わん
そんなことしなくても速い
>回りくどい方法を使わないと普通に書くより遅くなる
回りくどい方法で速くなるなんて見たことも聞いたこともない
普通に素直に書けばコンパイラの最適化で十分に速い
>Rustが件の調査で1番だったのはGCランタイムとか関係なく、安全で速いと嘯かれた人が騙されて使用してるだけ
デタラメすぎてあまりにも酷い
Rustを使っている人は騙されているのかw
>実際には苦労して書いても速くなく、
苦労して書くという時点でプログラミング初心者か
普通に書けば速いぞ
>unsafeを使って初めて速くなるか、
unsafeは閉じ込めた中で使うものであって普通は外でわざわざ使わん
そんなことしなくても速い
>回りくどい方法を使わないと普通に書くより遅くなる
回りくどい方法で速くなるなんて見たことも聞いたこともない
普通に素直に書けばコンパイラの最適化で十分に速い
248デフォルトの名無しさん
2022/03/07(月) 23:51:41.39ID:NArx6hWr ID:SxK5Ewlvは出禁な
249デフォルトの名無しさん
2022/03/07(月) 23:57:59.82ID:wcfmwfx3250デフォルトの名無しさん
2022/03/08(火) 00:19:02.40ID:cpoDoLxs251デフォルトの名無しさん
2022/03/08(火) 00:23:12.80ID:2Ie6O3y5252デフォルトの名無しさん
2022/03/08(火) 00:29:04.75ID:4G1DFk0q253デフォルトの名無しさん
2022/03/08(火) 00:29:10.40ID:wlomX7u1254デフォルトの名無しさん
2022/03/08(火) 00:38:56.95ID:2Ie6O3y5255デフォルトの名無しさん
2022/03/08(火) 00:40:37.90ID:2Ie6O3y5 あと圧勝なんてしてないよ?
256デフォルトの名無しさん
2022/03/08(火) 00:41:09.70ID:wlomX7u1 >>254
なんだよまたコード例を貼れない人かよ
なんだよまたコード例を貼れない人かよ
257デフォルトの名無しさん
2022/03/08(火) 00:43:19.64ID:2Ie6O3y5258デフォルトの名無しさん
2022/03/08(火) 00:56:08.88ID:4G1DFk0q259デフォルトの名無しさん
2022/03/08(火) 01:13:52.49ID:2Ie6O3y5 それ書いたときも同じこと言われて
https://mevius.5ch.net/test/read.cgi/tech/1638086359/481
こう言った
https://mevius.5ch.net/test/read.cgi/tech/1638086359/483
ダメ押し
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=8094ef6303e16cba3c13c58f8955a6ed
https://mevius.5ch.net/test/read.cgi/tech/1638086359/481
こう言った
https://mevius.5ch.net/test/read.cgi/tech/1638086359/483
ダメ押し
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=8094ef6303e16cba3c13c58f8955a6ed
260デフォルトの名無しさん
2022/03/08(火) 01:21:02.52ID:2Ie6O3y5 playgroundは初心者さんが使いそうなので、あんまり変なので負荷をかけたくないってことで、compiler explorerにしてみた
https://godbolt.org/z/MEqoTM5Yq
https://godbolt.org/z/MEqoTM5Yq
261デフォルトの名無しさん
2022/03/08(火) 01:27:17.05ID:2Ie6O3y5 どうでもいいけど compiler explorer よく見たらvimが使えるw ちょっと感動したw
262デフォルトの名無しさん
2022/03/08(火) 02:05:41.64ID:wlomX7u1 >>257
普通に書いたら遅くなるコード例が欲しかったんですがこれは何をしようとしていて何が遅くなっているんですか?
普通に書いたら遅くなるコード例が欲しかったんですがこれは何をしようとしていて何が遅くなっているんですか?
263デフォルトの名無しさん
2022/03/08(火) 02:21:08.30ID:2Ie6O3y5 >>262
お前が誰かなんて知らねーし、すでに自分で探せと言ったものを何度も他人に聞くなよw 本当に頭悪いなw
お前が誰かなんて知らねーし、すでに自分で探せと言ったものを何度も他人に聞くなよw 本当に頭悪いなw
264デフォルトの名無しさん
2022/03/08(火) 02:27:22.25ID:ogfaAdc3 おれのコードか? 欲しけりゃくれてやるぜ… 探してみろ この世の全てをそこに置いてきた(ドン
265デフォルトの名無しさん
2022/03/08(火) 02:27:39.29ID:wlomX7u1 >>263
どの書き込みに対するレスかすら確認せずに反論してたのか...すごい
どの書き込みに対するレスかすら確認せずに反論してたのか...すごい
266デフォルトの名無しさん
2022/03/08(火) 02:38:10.27ID:2Ie6O3y5 レスは適当に追うけど、長すぎんだよw
複数に答えてるところで分岐があるんだし、かなり前のお前のレスを読まないと分からない内容にしてるお前の頭が悪いだけw
しかも断られた内容を「自分の頭が悪くて...どういうものなのか想像もできないので...だけでも良いので教えてください」と懇願するほどの馬鹿w
再度断られると煽りはじめ、しかもしつこく深夜まで…やばいってお前w
複数に答えてるところで分岐があるんだし、かなり前のお前のレスを読まないと分からない内容にしてるお前の頭が悪いだけw
しかも断られた内容を「自分の頭が悪くて...どういうものなのか想像もできないので...だけでも良いので教えてください」と懇願するほどの馬鹿w
再度断られると煽りはじめ、しかもしつこく深夜まで…やばいってお前w
267デフォルトの名無しさん
2022/03/08(火) 03:00:25.45ID:wlomX7u1 >>266
うんうん、わかったわかった
「普通に書いたら遅くなるコード例」はあなたからは出てこないのね
それならこれ以上やりとりしてもお互い無益なのでやめましょう
何度もレスさせてごめんね
こんな遅くまで付き合ってくれてありがとう
うんうん、わかったわかった
「普通に書いたら遅くなるコード例」はあなたからは出てこないのね
それならこれ以上やりとりしてもお互い無益なのでやめましょう
何度もレスさせてごめんね
こんな遅くまで付き合ってくれてありがとう
268デフォルトの名無しさん
2022/03/08(火) 04:06:31.78ID:2Ie6O3y5269デフォルトの名無しさん
2022/03/08(火) 04:29:07.10ID:unrSCMcN 名だたる企業がRustについての肯定的なレポートを出しているが、それも誤りだというのか?
誤りではないが、だからといってシェアがとれるわけではないというのか?
誤りではないが、だからといってシェアがとれるわけではないというのか?
270デフォルトの名無しさん
2022/03/08(火) 05:04:17.68ID:2Ie6O3y5 特定のシチュエーションで肯定的という事実だけ
それを元に何かを想像するのは自由だが、どの領域でどこまでシェアを伸ばせるかについては想像に過ぎない
さも名だたる企業が領域とシェアについて言及してるかのごとくに言い広めるのは良くない
それを元に何かを想像するのは自由だが、どの領域でどこまでシェアを伸ばせるかについては想像に過ぎない
さも名だたる企業が領域とシェアについて言及してるかのごとくに言い広めるのは良くない
271デフォルトの名無しさん
2022/03/08(火) 06:10:54.51ID:yg8jjHHg 何もかもソース無し個人の感想で草
272デフォルトの名無しさん
2022/03/08(火) 06:19:02.05ID:2Ie6O3y5 自分で見つけられない人は可哀想w どこまでも煽っていくスタイルなんですねw
273デフォルトの名無しさん
2022/03/08(火) 06:35:46.51ID:unrSCMcN274デフォルトの名無しさん
2022/03/08(火) 07:07:05.39ID:mF0bwjmv 就寝したかな?
275デフォルトの名無しさん
2022/03/08(火) 13:19:25.26ID:j6pRDWl/ C#ってWindows限定じゃなきゃ選択肢に上らない。いつMSがやーめた、今度はこっちにするわって言い出すかわからんもん。Rustはどうかな?
276デフォルトの名無しさん
2022/03/08(火) 14:18:20.87ID:vjLwCjzB MSがやめたら進化は止まるかもしれんが使えなくなるわけじゃないだろ
277デフォルトの名無しさん
2022/03/08(火) 14:44:27.03ID:kdAOvGVm >>275
いつの時代の話だよw
いつの時代の話だよw
278デフォルトの名無しさん
2022/03/08(火) 14:57:59.41ID:h65o/pBf 言語に関してはMSはディスコンしてもサポートがめちゃ長いから比較的安心
D言語みたいなのでもまだ続いてるからRustも今のところ心配する必要ない
衰退し始めたら気長に移行すればいい
D言語みたいなのでもまだ続いてるからRustも今のところ心配する必要ない
衰退し始めたら気長に移行すればいい
279デフォルトの名無しさん
2022/03/08(火) 18:06:02.16ID:mh+tsEdM280デフォルトの名無しさん
2022/03/08(火) 18:21:13.99ID:RkrfKQke >>279
だなー、他のスレにも同じ時間帯に書くからわかりやすいわ
だなー、他のスレにも同じ時間帯に書くからわかりやすいわ
281デフォルトの名無しさん
2022/03/08(火) 22:24:39.58ID:7jRUihOa 非同期関数(非同期タスク)について質問です
単純に読むとか書くとかなどは非同期関数を呼んで待たされる(=待たせてくれる)のでawaitで待てばよいのですが
何かある仕事を専門にする人がシングルトン的に存在していてそこへ仕事を依頼して非同期に結果が出たら結果をもらう場合は
Rustではどうするのが効率がいいのでしょうか?
例えばコールバックをしてもらうとか
チャネルをもらってその読み出しで待つとか
スケジューラーの中で寝て待って起こしてもらうとか
その他など各々の可能不可能とメリットデメリットと具体的な方法が知りたいです
それに加えてタイムアウト付きで結果がまだ出ずとも時間内に戻りたい場合はどうなりますか?
単純に読むとか書くとかなどは非同期関数を呼んで待たされる(=待たせてくれる)のでawaitで待てばよいのですが
何かある仕事を専門にする人がシングルトン的に存在していてそこへ仕事を依頼して非同期に結果が出たら結果をもらう場合は
Rustではどうするのが効率がいいのでしょうか?
例えばコールバックをしてもらうとか
チャネルをもらってその読み出しで待つとか
スケジューラーの中で寝て待って起こしてもらうとか
その他など各々の可能不可能とメリットデメリットと具体的な方法が知りたいです
それに加えてタイムアウト付きで結果がまだ出ずとも時間内に戻りたい場合はどうなりますか?
282デフォルトの名無しさん
2022/03/08(火) 22:42:13.35ID:FnAzWNtw 必要な機能をもった非同期ランタイムを選択する。
自分でやるなら unsafe でやることになるだろうけど本当にしんどい道のりになると思う。
自分でやるなら unsafe でやることになるだろうけど本当にしんどい道のりになると思う。
283デフォルトの名無しさん
2022/03/08(火) 22:59:43.72ID:2Ie6O3y5 全然具体的でなくて草wwww
284デフォルトの名無しさん
2022/03/08(火) 23:20:38.55ID:4G1DFk0q ちょっと前提が異なるけど参考情報
hyperの中核となっているService traitは非同期コールバック方式
これでサーバーもクライアントもDNS解決もコネクション張るのも全てやっている
hyperの中核となっているService traitは非同期コールバック方式
これでサーバーもクライアントもDNS解決もコネクション張るのも全てやっている
285デフォルトの名無しさん
2022/03/08(火) 23:28:46.08ID:NoeFnt/B >>281
select_all使えばいいと思う
select_all使えばいいと思う
286デフォルトの名無しさん
2022/03/08(火) 23:48:42.33ID:4G1DFk0q 例えばhyperでサーバーがHTTPリクエスト受けるのにも二段のimpl Serviceが使われていて
一段目はコネクションが張られる毎
二段目はそのkeepaliveで複数回になりうるHTTPリクエスト毎
>>285
タイムアウトはその合成でいけるね
一段目はコネクションが張られる毎
二段目はそのkeepaliveで複数回になりうるHTTPリクエスト毎
>>285
タイムアウトはその合成でいけるね
287デフォルトの名無しさん
2022/03/08(火) 23:52:54.53ID:2Ie6O3y5 古き良きselectを使わないやつはunsafeにまみれるがいい!
$ cargo geiger
$ cargo geiger
288デフォルトの名無しさん
2022/03/08(火) 23:53:52.79ID:2Ie6O3y5 // こんな人向けの話
#[tokio::main]
async fn main() {
async {
println!("{}", "こんにちは世界!");
}.await;
}
#[tokio::main]
async fn main() {
async {
println!("{}", "こんにちは世界!");
}.await;
}
289デフォルトの名無しさん
2022/03/09(水) 10:50:10.12ID:E2+Mvfnk だけど今さらJavaを選択しないだろ。終わりの始まりはOracleがSUN Microsystemsを買収したとき。
290デフォルトの名無しさん
2022/03/09(水) 10:56:14.10ID:zPCTeYum291デフォルトの名無しさん
2022/03/09(水) 12:12:27.95ID:EKyth97o >>289
世の中web系ベンチャーばかりじゃないので…
世の中web系ベンチャーばかりじゃないので…
292デフォルトの名無しさん
2022/03/09(水) 12:23:18.65ID:JjWHIxM6293デフォルトの名無しさん
2022/03/09(水) 12:49:32.47ID:o8UVaHTv >>281
結局どこかで同期(待ち合わせ)したいならば
(1) 条件を満たしたらReadyになる自作Future<Output=T>を受け取りfuture.awaitで待つ
(2) lockされた非同期Arc<Mutex<T>>を受け取りmutex.lock().awaitで待つ
(3) 非同期channel::Receiver<T>を受け取りreceiver.recv().awaitで待つ
これらawaitの前の部分はfutureなのでタイムアウト付きにしたいなら
非同期timeout(duration, future).awaitで待つ または非同期sleepを使って
futures::future::select(future, sleep(duration))で任意の仕様で作成可
さらに多くのfutureが関係するならselect_all
結局どこかで同期(待ち合わせ)したいならば
(1) 条件を満たしたらReadyになる自作Future<Output=T>を受け取りfuture.awaitで待つ
(2) lockされた非同期Arc<Mutex<T>>を受け取りmutex.lock().awaitで待つ
(3) 非同期channel::Receiver<T>を受け取りreceiver.recv().awaitで待つ
これらawaitの前の部分はfutureなのでタイムアウト付きにしたいなら
非同期timeout(duration, future).awaitで待つ または非同期sleepを使って
futures::future::select(future, sleep(duration))で任意の仕様で作成可
さらに多くのfutureが関係するならselect_all
294デフォルトの名無しさん
2022/03/09(水) 13:01:08.14ID:sJRk7ncZ 悩ましいのが非同期処理待ち合わせにおけるタイムアウトしたときなどのキャンセル処理だな
295デフォルトの名無しさん
2022/03/09(水) 13:05:17.06ID:sJRk7ncZ unsafeに屈してtokio/mioベースでウェーイし、二度と安全などと申しません!するのが普通
これは踏み絵なのだ
これは踏み絵なのだ
296デフォルトの名無しさん
2022/03/09(水) 18:04:37.99ID:i4Xkcg9y マクロのdslは補完が効かないのか
297デフォルトの名無しさん
2022/03/09(水) 19:04:55.67ID:o8UVaHTv >>294
タイムアウトもしくは多数のfutureから先着一択した場合でも
残りのfutureは手元に残るしその出自も把握しているわけだから
用途ごとに必要なキャンセル処理を用意したり実施したりすればよいだけ
これは非同期でなく同期で全体の処理時間にタイムアウトを設けた場合でも起きる話
タイムアウトもしくは多数のfutureから先着一択した場合でも
残りのfutureは手元に残るしその出自も把握しているわけだから
用途ごとに必要なキャンセル処理を用意したり実施したりすればよいだけ
これは非同期でなく同期で全体の処理時間にタイムアウトを設けた場合でも起きる話
298デフォルトの名無しさん
2022/03/09(水) 22:19:31.86ID:sJRk7ncZ async/awaitなどを使わないとしても、その手の処理を実装するなら通常は非同期I/Oを使用する
もしくは同期I/Oを別スレッドから強引にclose/shutdownする
なので、非同期I/Oを使用せずに綺麗に実装するなら、常に終わるまで待つか、キャンセル自体、つまりタイムアウトを諦めるのが普通
だから非同期を使うのであれば速度優先unsafe党に入り、RustはC/C++よりちょっと遅く、C/C++同様安全でない言語です!と懺悔しながら他の言語に許しを乞う必要があるw
もしくは同期I/Oを別スレッドから強引にclose/shutdownする
なので、非同期I/Oを使用せずに綺麗に実装するなら、常に終わるまで待つか、キャンセル自体、つまりタイムアウトを諦めるのが普通
だから非同期を使うのであれば速度優先unsafe党に入り、RustはC/C++よりちょっと遅く、C/C++同様安全でない言語です!と懺悔しながら他の言語に許しを乞う必要があるw
299デフォルトの名無しさん
2022/03/09(水) 23:10:28.68ID:JjWHIxM6300デフォルトの名無しさん
2022/03/09(水) 23:16:40.46ID:kryzQ0zI >>298
いつコテハンするの?
いつコテハンするの?
301デフォルトの名無しさん
2022/03/09(水) 23:23:01.29ID:sJRk7ncZ 僕ちゃん達にはむじゅかししゅぎましたかねw
302デフォルトの名無しさん
2022/03/09(水) 23:29:33.27ID:EKyth97o303デフォルトの名無しさん
2022/03/10(木) 05:39:25.09ID:qvXllRaC このスレ以外でも思うんだけど
言語アンチって何が目的なの?
嫌なら使わなきゃいいだけだし
他に良い言語があると思うならそれ使えばいいじゃない
特にrust使う人なんてほぼ他の言語経験者なんだし
適材適所で使う言語選んでるでしょ
わざわざこのスレに来てrust批判したり他言語マンセーしたりしたとこで
大半の人は必要なら使うし必要ないなら使わない
余りにも不毛だからそういうのやめて欲しいわ
言語アンチって何が目的なの?
嫌なら使わなきゃいいだけだし
他に良い言語があると思うならそれ使えばいいじゃない
特にrust使う人なんてほぼ他の言語経験者なんだし
適材適所で使う言語選んでるでしょ
わざわざこのスレに来てrust批判したり他言語マンセーしたりしたとこで
大半の人は必要なら使うし必要ないなら使わない
余りにも不毛だからそういうのやめて欲しいわ
304デフォルトの名無しさん
2022/03/10(木) 05:43:47.53ID:JmzvOlHn 俺はRustの話しかしてないんだがw
君もRustを使ってunsafe党に入るのだwwww
viva! cargo-geiger!!!!!
君もRustを使ってunsafe党に入るのだwwww
viva! cargo-geiger!!!!!
305デフォルトの名無しさん
2022/03/10(木) 06:31:20.40ID:EafW9Vf3306デフォルトの名無しさん
2022/03/10(木) 07:17:23.57ID:JmzvOlHn # ようこそ!unsafe党へ!
cargo install cargo-edit cargo-geiger
cargo new notsafe
cd notsafe
cargo add --features full tokio
cat >src/main.rs <<EOF
#[tokio::main]
async fn main() { async { println!("{}", "こんにちは世界!"); }.await; }
EOF
cargo run
cargo geiger
cargo install cargo-edit cargo-geiger
cargo new notsafe
cd notsafe
cargo add --features full tokio
cat >src/main.rs <<EOF
#[tokio::main]
async fn main() { async { println!("{}", "こんにちは世界!"); }.await; }
EOF
cargo run
cargo geiger
307デフォルトの名無しさん
2022/03/10(木) 12:59:34.09ID:Kjmun471 >>306
試してないけどこれどうなるん
試してないけどこれどうなるん
308デフォルトの名無しさん
2022/03/10(木) 13:22:56.24ID:VpQrQVi4 geigerは依存ライブラリを含めたunsafeの使用状況を集計するツールらしい
unsafe党とか言ってる人はもしかしたら
「見えないところでunsafe使うならRustは安全アピールするな」って言いたいのかもしれないし
unsafeをカウントできることがRustの安全性のひとつであることを知らないのかもしれない
unsafe党とか言ってる人はもしかしたら
「見えないところでunsafe使うならRustは安全アピールするな」って言いたいのかもしれないし
unsafeをカウントできることがRustの安全性のひとつであることを知らないのかもしれない
309デフォルトの名無しさん
2022/03/10(木) 13:38:33.30ID:cZP2Devl 次スレはわっちょい頼むな
310デフォルトの名無しさん
2022/03/10(木) 14:09:03.75ID:JmzvOlHn311デフォルトの名無しさん
2022/03/10(木) 14:34:40.76ID:jgJuq2u4 Unsafe使うなら見えないところでやってくれ。そしてUnsafe由来のバグは出すなっていうのがRustの思想ちゃうん?
ツール使わんと見えないなら大成功では
ツール使わんと見えないなら大成功では
312デフォルトの名無しさん
2022/03/10(木) 15:37:06.36ID:JmzvOlHn # 見えないところでunsafeで一旦実行できるも、ちょっと修正するとコアダンプの例w 修正はunsafeでない場所w
cargo install cargo-edit cargo-geiger
cargo new --lib maybe_safe
cd maybe_safe
cat >src/lib.rs <<EOF
pub fn read_address_4byte(address: usize) -> i32 { unsafe { *(address as *const i32) } }
EOF
cargo build
cd ..
cargo new perfectly_safe
cd perfectly_safe
cargo add --path ../maybe_safe maybe_safe
cat >src/main.rs <<EOF
#![forbid(unsafe_code)]
fn main() { maybe_safe::read_address_4byte(&0 as *const i32 as usize); }
EOF
cargo geiger
cargo run
cat >src/main.rs <<EOF
#![forbid(unsafe_code)]
fn main() { maybe_safe::read_address_4byte(0); }
EOF
cargo geiger
cargo run
cargo install cargo-edit cargo-geiger
cargo new --lib maybe_safe
cd maybe_safe
cat >src/lib.rs <<EOF
pub fn read_address_4byte(address: usize) -> i32 { unsafe { *(address as *const i32) } }
EOF
cargo build
cd ..
cargo new perfectly_safe
cd perfectly_safe
cargo add --path ../maybe_safe maybe_safe
cat >src/main.rs <<EOF
#![forbid(unsafe_code)]
fn main() { maybe_safe::read_address_4byte(&0 as *const i32 as usize); }
EOF
cargo geiger
cargo run
cat >src/main.rs <<EOF
#![forbid(unsafe_code)]
fn main() { maybe_safe::read_address_4byte(0); }
EOF
cargo geiger
cargo run
313デフォルトの名無しさん
2022/03/10(木) 15:45:27.83ID:JmzvOlHn 大成功(コアダンプ)でござるwwwww
314デフォルトの名無しさん
2022/03/10(木) 16:15:09.98ID:VpQrQVi4 >>312
これ何でread_address_4byteにunsafeつけないで内部でunsafeブロック使ったの?
渡された数値を無条件にアドレス扱いしてそこにアクセスするのが絶対に安全だと判断した根拠を
コメントで書いといた方がいいよ
ちゃんと理由を説明できないならunsafeブロック使うのはやめたほうがいい
これ何でread_address_4byteにunsafeつけないで内部でunsafeブロック使ったの?
渡された数値を無条件にアドレス扱いしてそこにアクセスするのが絶対に安全だと判断した根拠を
コメントで書いといた方がいいよ
ちゃんと理由を説明できないならunsafeブロック使うのはやめたほうがいい
315デフォルトの名無しさん
2022/03/10(木) 17:06:13.98ID:9EXgn135 そりゃ変なプロパガンダかまされて、こんなしょーもない言語使わされるなんてことになったら最悪だからな。
若いバカに騙されるバカ経営陣によくある話だわ。
若いバカに騙されるバカ経営陣によくある話だわ。
316デフォルトの名無しさん
2022/03/10(木) 17:16:27.08ID:JmzvOlHn バグを混入させたくて混入させる人は原則いないのである。
例示は可能な限り単純化しているが、現実世界は複雑なのだ。
プログラマが「意図せず」混入させてしまうバグを「一部」言語で回避できるからこその「安全」であり、プログラマ自身が安全性を保証する側になってしまってはもはや「安全とは言えない」w
処理系が「標準」として提供するものは処理系が「安全」を保証するものと仮定して除外し、「標準以外」の安全性を確認できればプログラム全体の「安全」も仮定でき、それを機械的に可能にしているのがRustという言語w
そしてそのする「標準以外」の安全性を確認ツールがガイガー(geiger)なのだw
「標準」が「安全」と仮定される限り、ガイガーがunsafeをscanした結果☢ が1つもなければ、プログラム全体の「安全」も仮定されることになる。
もし☢があるならば、プログラム全体の「安全」は言語(処理系)でなくプログラマ自身が保証する必要がある。
この☢がある状態はC/C++と何ら変わらず、かなりのライブラリで☢が氾濫する昨今、言語が保証する「安全」についてRustに優位性は存在しない。
に依存する。
Rustコミュニティは他言語と比べれば豆粒程度なので、言語が保証する「安全」がプログラム全体の「安全」に占めるウェイトが大きくなければ、どこかで破綻し見限られ、喧伝してる手前凋落する運命となるだろうw
しかしそれでも人は速度を諦められず、unsafe党に次々ダイブしていくわけであるw
☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢
☢ガイガーカウンター=放射線測定器☢
☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢
例示は可能な限り単純化しているが、現実世界は複雑なのだ。
プログラマが「意図せず」混入させてしまうバグを「一部」言語で回避できるからこその「安全」であり、プログラマ自身が安全性を保証する側になってしまってはもはや「安全とは言えない」w
処理系が「標準」として提供するものは処理系が「安全」を保証するものと仮定して除外し、「標準以外」の安全性を確認できればプログラム全体の「安全」も仮定でき、それを機械的に可能にしているのがRustという言語w
そしてそのする「標準以外」の安全性を確認ツールがガイガー(geiger)なのだw
「標準」が「安全」と仮定される限り、ガイガーがunsafeをscanした結果☢ が1つもなければ、プログラム全体の「安全」も仮定されることになる。
もし☢があるならば、プログラム全体の「安全」は言語(処理系)でなくプログラマ自身が保証する必要がある。
この☢がある状態はC/C++と何ら変わらず、かなりのライブラリで☢が氾濫する昨今、言語が保証する「安全」についてRustに優位性は存在しない。
に依存する。
Rustコミュニティは他言語と比べれば豆粒程度なので、言語が保証する「安全」がプログラム全体の「安全」に占めるウェイトが大きくなければ、どこかで破綻し見限られ、喧伝してる手前凋落する運命となるだろうw
しかしそれでも人は速度を諦められず、unsafe党に次々ダイブしていくわけであるw
☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢
☢ガイガーカウンター=放射線測定器☢
☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢
317デフォルトの名無しさん
2022/03/10(木) 17:37:18.96ID:hyq4DqF3 unsafeじゃなくて、carefulってキーワードにすれば良かったのにね
318デフォルトの名無しさん
2022/03/10(木) 17:39:42.56ID:29Uj/r0y わかってる人しか使っちゃいけないんだし、unsafeのほうがいいかなあ
319デフォルトの名無しさん
2022/03/10(木) 17:45:02.59ID:FFvoXTHS libcがunsafeだからlibcの利用禁止!!!!!!!!!!!!!!!!!!!!
320デフォルトの名無しさん
2022/03/10(木) 18:02:59.97ID:JmzvOlHn321デフォルトの名無しさん
2022/03/10(木) 18:05:02.01ID:jgJuq2u4 > 例示は可能な限り単純化しているが、現実世界は複雑なのだ。
それはまあその通りで、だからあんまり複雑な内容をunsafe内で書くのはやめような
それはまあその通りで、だからあんまり複雑な内容をunsafe内で書くのはやめような
322デフォルトの名無しさん
2022/03/10(木) 18:07:50.66ID:JmzvOlHn 毒を食らわば皿まで!by unsafe党!
323デフォルトの名無しさん
2022/03/10(木) 18:17:23.72ID:rB1jhkGU unsafe使ってるのは競プロの異常者たちだけというデータは出てるから無視で良い
324デフォルトの名無しさん
2022/03/10(木) 18:18:21.60ID:7o5w+imS まーじでワッチョイ入れるべきだったなこれは
325デフォルトの名無しさん
2022/03/10(木) 18:21:54.05ID:gInsqhO/ ワッチョイスレ既にあるぞ
326デフォルトの名無しさん
2022/03/10(木) 18:33:47.69ID:2bdj2PsA cargo install でコマンドをインストールすると依存するクレートも含めて
$HOME/.cargo/bin/registry
以下のディレクトリにソースや管理用のデータが格納されているようですが、
これらの管理というのはどのようにすればよいものなのでしょうか?
一定以上に古いものを削除するとか、
インストール済みのバイナリクレートが依存しているものだけを残すとか、
そういう機能は普通はあるだろうと思うのですが cargo のコマンドとしては見当たらず、
何か専用のコマンドを入れる必要があったりするのなら教えて欲しいです。
$HOME/.cargo/bin/registry
以下のディレクトリにソースや管理用のデータが格納されているようですが、
これらの管理というのはどのようにすればよいものなのでしょうか?
一定以上に古いものを削除するとか、
インストール済みのバイナリクレートが依存しているものだけを残すとか、
そういう機能は普通はあるだろうと思うのですが cargo のコマンドとしては見当たらず、
何か専用のコマンドを入れる必要があったりするのなら教えて欲しいです。
327デフォルトの名無しさん
2022/03/10(木) 18:35:27.76ID:JmzvOlHn 単純なものの組み合わせで複雑になるのだよw
複雑になると人間的なチェックでは見落としが出るのだよw
その際にどこまで複雑になっても正確さ100%の機械的チェックは申し分なく有効なのだよw
それを(Rustの)内側だけにある要因だけで捨ててunsafe党に入ってしまうのが現状のRust w
私もあなたもunsafe! viva! unsafe! Rust is unsafe!!!
複雑になると人間的なチェックでは見落としが出るのだよw
その際にどこまで複雑になっても正確さ100%の機械的チェックは申し分なく有効なのだよw
それを(Rustの)内側だけにある要因だけで捨ててunsafe党に入ってしまうのが現状のRust w
私もあなたもunsafe! viva! unsafe! Rust is unsafe!!!
328デフォルトの名無しさん
2022/03/10(木) 18:36:19.21ID:a/Yt4f/l329デフォルトの名無しさん
2022/03/10(木) 18:36:59.75ID:jgJuq2u4330デフォルトの名無しさん
2022/03/10(木) 18:40:22.68ID:tP7YkUdv 最新ナンバリングスレをワッチョイ化しないと多分だめ
331デフォルトの名無しさん
2022/03/10(木) 18:58:28.71ID:JmzvOlHn >>329
コンパイラチェック可能な最小限のunsafeブロックの外側が、事実上安全ではないんだよw
これをどこまで広げるかを人間が決めるのでは、複雑な現実世界に適用した際バグると言っているw
誰もがこれなら平気!バグはないというところから、バグは生まれるわけだw
unsafeがあるだけでそれは致命的な障害となるw viva! unsafe! Rust is unsafe!
コンパイラチェック可能な最小限のunsafeブロックの外側が、事実上安全ではないんだよw
これをどこまで広げるかを人間が決めるのでは、複雑な現実世界に適用した際バグると言っているw
誰もがこれなら平気!バグはないというところから、バグは生まれるわけだw
unsafeがあるだけでそれは致命的な障害となるw viva! unsafe! Rust is unsafe!
332デフォルトの名無しさん
2022/03/10(木) 19:02:33.98ID:p5cogWRp 完全に安全な言語なんてどこにも存在しない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 [蚤の市★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」 [ぐれ★]
- 【高市リスク】立民・小西洋之参院議員「高市総理がとんでもない安全保障オンチで外交オンチ」 [ぐれ★]
- 『DOWNTOWN+』会員数50万人突破で見えてきた 松本人志の“月収4ケタ万円”驚愕収入 [阿弥陀ヶ峰★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【芸能】永遠の童顔′ウ「光GENJI」53歳になった山本淳一の近影に「若いな?」「元気パワーもらえるよっ」 [湛然★]
- 日本人「憲法9条があれば侵略されないって叫んでた売国左翼のゴミどもは今どんな気分?😂wwwwww」 [441660812]
- 【悲報】東京都民さん、20過ぎてるのに自転車に乗っててて大炎上wwwwwwwwwwww女「いい歳した男で自転車に乗るのは知的障がい者だけだよ? [483447288]
- 広島焼きって食いにくくね
- 【悲報】細田守最新作、超絶爆死しそう
- 【悲報】ミスター東大さん、高度な『ずらし』を披露するも愚民には理解されず大炎上wwwwwwwwwwww [455031798]
- 関西帰りたいから関電か大阪ガスに転職したいんだが?
