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/
233デフォルトの名無しさん
垢版 |
2022/03/07(月) 22:41:05.90ID:TrDR7mvG
>>228
自由なライブラリが無数にある状況を良しとするとならcommon lispも良しとしてそう
234デフォルトの名無しさん
垢版 |
2022/03/07(月) 22:45:19.55ID:TrDR7mvG
Common Lispと同じで一部のマニアが熱狂したままで一般に浸透せずそのまま死ぬ未来が見える
2022/03/07(月) 22:53:18.02ID:uUEKcK4+
おじさんがまたIDコロコロしてる……
236デフォルトの名無しさん
垢版 |
2022/03/07(月) 22:54:35.35ID:TrDR7mvG
俺をキチガイアンチと一緒にするんじゃねえよ
2022/03/07(月) 23:00:16.25ID:SxK5Ewlv
>>229
君が文脈を読めない人だから君だけが誤解している
例えば分かりやすく「PWA」という単語でこのスレを検索すると皆はTauriとは別の話をしていることがすぐ分かる
もちろんPWAの意味するところもWebブラウザ上での動作でありTauriの話とは別の話であると皆は分かっているためである

もう一つ君はRustにおけるunsafeの意味と位置づけを理解していないようだからそのような意味不明な発言となっているのだろう

>>233
ほとんどのメジャーなプログラミング言語では多数のフレームワークが競い合って良いものが残った
そうでない言語があるなら教えて欲しい
よほど特殊な例外だとわかるだろう
238デフォルトの名無しさん
垢版 |
2022/03/07(月) 23:01:40.70ID:TrDR7mvG
>>237
良い物以外が死ぬくらい強いのがあればいいんだよ。生き残ってきた言語はそうだった。だけど今のrustはそうはなってないのがいかん
状況はcommon lispに近い
2022/03/07(月) 23:23:44.30ID:SxK5Ewlv
>>238
強いもの1つだけが残る死の世界を望む人はいないしそんな現実もない
例えばJavaScriptのフレームワークの最新シェアを見ても1位は31%しかなく2位が12%で3位が11%とこの3つでようやく過半数
それぞれ特徴の異なるフレームワークが多数共存していて皆がそれぞれ自分に合ったものを選ぶことができる健全な世界となっている
2022/03/07(月) 23:30:43.91ID:2Lq6XwwP
>>231
いくらでもあるから探してみ

>>237
お前がtauriに関するレスをしたところにお前が勝手にレスしてきて「tauriの話はしていない」とか言い始めただけだろ
cordovaみたいなのはPWAもちゃんと対応してるので、PWAならtauri関係ないというのも違う
unsafeもやはりお前なのか。。。お前が分かってないだけ
241デフォルトの名無しさん
垢版 |
2022/03/07(月) 23:31:07.44ID:TrDR7mvG
>>239
Rustで31%とれそうな奴あるんか?
仮にあったとしてもそもそもRustのほうが圧倒的に人口少ないんやからJSの31%と同じコミュニティ規模出そうと思うと全然足らんぞ
242デフォルトの名無しさん
垢版 |
2022/03/07(月) 23:32:49.16ID:TrDR7mvG
ってかJSが覇権とった時ってHTML上書きとJQuery以外あったん?
2022/03/07(月) 23:40:00.14ID:2Lq6XwwP
ないわけじゃなかったけど、猫も杓子もjQuery一色だったな
2022/03/07(月) 23:41:43.52ID:2Lq6XwwP
当時jQueryはブラウザ間の違いを吸収する役割を担ってたからというのもあるけど
2022/03/07(月) 23:43:20.17ID:7aFZ7qh0
そもそもなんでWebフレームワークとして生き残れるかどうかって話になってるんだ?
Rustの本分はWebで言えばrustlsとかquicheみたいな最下層のライブラリ実装にあるんでは…
まぁWebフレームワークやGUIで普及するのはきついと思うよ
2022/03/07(月) 23:43:54.72ID:OgyEhepF
間違い探しの練習問題作ってんのかな?
2022/03/07(月) 23:50:27.38ID:wcfmwfx3
>>229
>Rustが件の調査で1番だったのはGCランタイムとか関係なく、安全で速いと嘯かれた人が騙されて使用してるだけ

デタラメすぎてあまりにも酷い
Rustを使っている人は騙されているのかw

>実際には苦労して書いても速くなく、

苦労して書くという時点でプログラミング初心者か
普通に書けば速いぞ

>unsafeを使って初めて速くなるか、

unsafeは閉じ込めた中で使うものであって普通は外でわざわざ使わん
そんなことしなくても速い

>回りくどい方法を使わないと普通に書くより遅くなる

回りくどい方法で速くなるなんて見たことも聞いたこともない
普通に素直に書けばコンパイラの最適化で十分に速い
248デフォルトの名無しさん
垢版 |
2022/03/07(月) 23:51:41.39ID:NArx6hWr
ID:SxK5Ewlvは出禁な
2022/03/07(月) 23:57:59.82ID:wcfmwfx3
>>245
Rustはそんな下層だけの狭い対象の言語ではない
最近はサーバーサイドで起きるWebレンダリング同一コード要請から
Webフレームワークの一定数はRustがシェアを獲得するのは間違いない
2022/03/08(火) 00:19:02.40ID:cpoDoLxs
>>249
まぁGAFAやベンチャーの採用で1-2%くらい取れる可能性は否定しないけど
現状の大半を占めるJS/Java/Rubyあたりからの移行は無理だと思うけどなぁ
2022/03/08(火) 00:23:12.80ID:2Ie6O3y5
>>247
騙されてるだけ
Rustをunsafeなしに書いたらC/C++より速くなる道理がない
制約を課している分必要メモリ量も増え、その分の時間がロスに繋がる
JIT込みで動作するVM系言語でもGC走る間もなく終わってしまう大半の簡単な処理では差などつかず、場合により簡単に抜かれてしまう

>>249
きついっつーの
JavaScriptでひぃひぃ言ってる大半のプログラマが使いにくいと思わないはずがなく、十分なメリットがないためにシェアが上がらない
全てをストリームで処理したい世界線に移動しないと無理
2022/03/08(火) 00:29:04.75ID:4G1DFk0q
>>251
質問
ではなぜJavaからC#やGoに至るまで
各種ベンチマークでRustが圧勝しているの?
2022/03/08(火) 00:29:10.40ID:wlomX7u1
>>240
自分の頭が悪くて普通に書いたら遅くなるコードがどういうものなのか想像もできないので
検索キーワードだけでも良いので教えてください
2022/03/08(火) 00:38:56.95ID:2Ie6O3y5
>>252
ベンチマークは極端な仮定に基づき簡単に特性を見るもので実運用ではその通りにはならないのが通例
依存する全クレート含めてRustの外へのアクセスを除いてunsafeを全く使わないコードで動かしてみればいい

>>253
Rust
2022/03/08(火) 00:40:37.90ID:2Ie6O3y5
あと圧勝なんてしてないよ?
2022/03/08(火) 00:41:09.70ID:wlomX7u1
>>254
なんだよまたコード例を貼れない人かよ
2022/03/08(火) 00:43:19.64ID:2Ie6O3y5
>>256
こないだ貼ったよ
https://mevius.5ch.net/test/read.cgi/tech/1638086359/480
2022/03/08(火) 00:56:08.88ID:4G1DFk0q
>>257
コードを見てみましたが失格
fnの前にunsafeを付けなければなりません
かなり酷い初心者のようですが出直して勉強してからまた来てください
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
2022/03/08(火) 01:21:02.52ID:2Ie6O3y5
playgroundは初心者さんが使いそうなので、あんまり変なので負荷をかけたくないってことで、compiler explorerにしてみた
https://godbolt.org/z/MEqoTM5Yq
2022/03/08(火) 01:27:17.05ID:2Ie6O3y5
どうでもいいけど compiler explorer よく見たらvimが使えるw ちょっと感動したw
2022/03/08(火) 02:05:41.64ID:wlomX7u1
>>257
普通に書いたら遅くなるコード例が欲しかったんですがこれは何をしようとしていて何が遅くなっているんですか?
2022/03/08(火) 02:21:08.30ID:2Ie6O3y5
>>262
お前が誰かなんて知らねーし、すでに自分で探せと言ったものを何度も他人に聞くなよw 本当に頭悪いなw
2022/03/08(火) 02:27:22.25ID:ogfaAdc3
おれのコードか? 欲しけりゃくれてやるぜ… 探してみろ この世の全てをそこに置いてきた(ドン
2022/03/08(火) 02:27:39.29ID:wlomX7u1
>>263
どの書き込みに対するレスかすら確認せずに反論してたのか...すごい
2022/03/08(火) 02:38:10.27ID:2Ie6O3y5
レスは適当に追うけど、長すぎんだよw
複数に答えてるところで分岐があるんだし、かなり前のお前のレスを読まないと分からない内容にしてるお前の頭が悪いだけw
しかも断られた内容を「自分の頭が悪くて...どういうものなのか想像もできないので...だけでも良いので教えてください」と懇願するほどの馬鹿w
再度断られると煽りはじめ、しかもしつこく深夜まで…やばいってお前w
2022/03/08(火) 03:00:25.45ID:wlomX7u1
>>266
うんうん、わかったわかった
「普通に書いたら遅くなるコード例」はあなたからは出てこないのね
それならこれ以上やりとりしてもお互い無益なのでやめましょう
何度もレスさせてごめんね
こんな遅くまで付き合ってくれてありがとう
2022/03/08(火) 04:06:31.78ID:2Ie6O3y5
>>267
はじめに断ってんだろw 二度断ってなお煽ってきて何いってんの?w 確信犯がそれで許されるわけねーだろw
二度と書き込みませんと宣言したら許してやるw
269デフォルトの名無しさん
垢版 |
2022/03/08(火) 04:29:07.10ID:unrSCMcN
名だたる企業がRustについての肯定的なレポートを出しているが、それも誤りだというのか?
誤りではないが、だからといってシェアがとれるわけではないというのか?
2022/03/08(火) 05:04:17.68ID:2Ie6O3y5
特定のシチュエーションで肯定的という事実だけ
それを元に何かを想像するのは自由だが、どの領域でどこまでシェアを伸ばせるかについては想像に過ぎない
さも名だたる企業が領域とシェアについて言及してるかのごとくに言い広めるのは良くない
2022/03/08(火) 06:10:54.51ID:yg8jjHHg
何もかもソース無し個人の感想で草
2022/03/08(火) 06:19:02.05ID:2Ie6O3y5
自分で見つけられない人は可哀想w どこまでも煽っていくスタイルなんですねw
273デフォルトの名無しさん
垢版 |
2022/03/08(火) 06:35:46.51ID:unrSCMcN
>>270
名だたる企業が安全だと言っている事実に誤りはないのかね?
速度もCと互角と言っているのは?
2022/03/08(火) 07:07:05.39ID:mF0bwjmv
就寝したかな?
2022/03/08(火) 13:19:25.26ID:j6pRDWl/
C#ってWindows限定じゃなきゃ選択肢に上らない。いつMSがやーめた、今度はこっちにするわって言い出すかわからんもん。Rustはどうかな?
2022/03/08(火) 14:18:20.87ID:vjLwCjzB
MSがやめたら進化は止まるかもしれんが使えなくなるわけじゃないだろ
2022/03/08(火) 14:44:27.03ID:kdAOvGVm
>>275
いつの時代の話だよw
2022/03/08(火) 14:57:59.41ID:h65o/pBf
言語に関してはMSはディスコンしてもサポートがめちゃ長いから比較的安心

D言語みたいなのでもまだ続いてるからRustも今のところ心配する必要ない
衰退し始めたら気長に移行すればいい
2022/03/08(火) 18:06:02.16ID:mh+tsEdM
>>274
昼過ぎに起きて一斉に書き込んでるね
よー寝るやつだw
2022/03/08(火) 18:21:13.99ID:RkrfKQke
>>279
だなー、他のスレにも同じ時間帯に書くからわかりやすいわ
2022/03/08(火) 22:24:39.58ID:7jRUihOa
非同期関数(非同期タスク)について質問です
単純に読むとか書くとかなどは非同期関数を呼んで待たされる(=待たせてくれる)のでawaitで待てばよいのですが
何かある仕事を専門にする人がシングルトン的に存在していてそこへ仕事を依頼して非同期に結果が出たら結果をもらう場合は
Rustではどうするのが効率がいいのでしょうか?
例えばコールバックをしてもらうとか
チャネルをもらってその読み出しで待つとか
スケジューラーの中で寝て待って起こしてもらうとか
その他など各々の可能不可能とメリットデメリットと具体的な方法が知りたいです
それに加えてタイムアウト付きで結果がまだ出ずとも時間内に戻りたい場合はどうなりますか?
2022/03/08(火) 22:42:13.35ID:FnAzWNtw
必要な機能をもった非同期ランタイムを選択する。
自分でやるなら unsafe でやることになるだろうけど本当にしんどい道のりになると思う。
2022/03/08(火) 22:59:43.72ID:2Ie6O3y5
全然具体的でなくて草wwww
2022/03/08(火) 23:20:38.55ID:4G1DFk0q
ちょっと前提が異なるけど参考情報
hyperの中核となっているService traitは非同期コールバック方式
これでサーバーもクライアントもDNS解決もコネクション張るのも全てやっている
2022/03/08(火) 23:28:46.08ID:NoeFnt/B
>>281
select_all使えばいいと思う
2022/03/08(火) 23:48:42.33ID:4G1DFk0q
例えばhyperでサーバーがHTTPリクエスト受けるのにも二段のimpl Serviceが使われていて
一段目はコネクションが張られる毎
二段目はそのkeepaliveで複数回になりうるHTTPリクエスト毎

>>285
タイムアウトはその合成でいけるね
2022/03/08(火) 23:52:54.53ID:2Ie6O3y5
古き良きselectを使わないやつはunsafeにまみれるがいい!
$ cargo geiger
2022/03/08(火) 23:53:52.79ID:2Ie6O3y5
// こんな人向けの話
#[tokio::main]
async fn main() {
async {
println!("{}", "こんにちは世界!");
}.await;
}
2022/03/09(水) 10:50:10.12ID:E2+Mvfnk
だけど今さらJavaを選択しないだろ。終わりの始まりはOracleがSUN Microsystemsを買収したとき。
2022/03/09(水) 10:56:14.10ID:zPCTeYum
>>202
補完の効かないHTMLモドキ書くの辛ぽよな
VDOM系ならsauronがmacro以外でも書ける
個人的にはSilkenwebかな
2022/03/09(水) 12:12:27.95ID:EKyth97o
>>289
世の中web系ベンチャーばかりじゃないので…
2022/03/09(水) 12:23:18.65ID:JjWHIxM6
>>289
もちろん今となってはJavaを使う意義は全く無いが
Javaしか使えない(人材しかいない)遅れたところも存在している
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
2022/03/09(水) 13:01:08.14ID:sJRk7ncZ
悩ましいのが非同期処理待ち合わせにおけるタイムアウトしたときなどのキャンセル処理だな
2022/03/09(水) 13:05:17.06ID:sJRk7ncZ
unsafeに屈してtokio/mioベースでウェーイし、二度と安全などと申しません!するのが普通
これは踏み絵なのだ
2022/03/09(水) 18:04:37.99ID:i4Xkcg9y
マクロのdslは補完が効かないのか
2022/03/09(水) 19:04:55.67ID:o8UVaHTv
>>294
タイムアウトもしくは多数のfutureから先着一択した場合でも
残りのfutureは手元に残るしその出自も把握しているわけだから
用途ごとに必要なキャンセル処理を用意したり実施したりすればよいだけ
これは非同期でなく同期で全体の処理時間にタイムアウトを設けた場合でも起きる話
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
2022/03/09(水) 23:10:28.68ID:JjWHIxM6
>>298
プログラミングしたことないためにunsafeが何かをわかっていない人だ
わかってないからブレて毎回主張に自己矛盾
2022/03/09(水) 23:16:40.46ID:kryzQ0zI
>>298
いつコテハンするの?
2022/03/09(水) 23:23:01.29ID:sJRk7ncZ
僕ちゃん達にはむじゅかししゅぎましたかねw
2022/03/09(水) 23:29:33.27ID:EKyth97o
>>301
そんな単純な煽りはつまらんから
もっともらしいデタラメ並べた長文よろ
2022/03/10(木) 05:39:25.09ID:qvXllRaC
このスレ以外でも思うんだけど
言語アンチって何が目的なの?
嫌なら使わなきゃいいだけだし
他に良い言語があると思うならそれ使えばいいじゃない

特にrust使う人なんてほぼ他の言語経験者なんだし
適材適所で使う言語選んでるでしょ
わざわざこのスレに来てrust批判したり他言語マンセーしたりしたとこで
大半の人は必要なら使うし必要ないなら使わない
余りにも不毛だからそういうのやめて欲しいわ
2022/03/10(木) 05:43:47.53ID:JmzvOlHn
俺はRustの話しかしてないんだがw
君もRustを使ってunsafe党に入るのだwwww
viva! cargo-geiger!!!!!
2022/03/10(木) 06:31:20.40ID:EafW9Vf3
>>303
反応を楽しんでるんだよ
それでリアルの憂さを晴らしてる
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
307デフォルトの名無しさん
垢版 |
2022/03/10(木) 12:59:34.09ID:Kjmun471
>>306
試してないけどこれどうなるん
2022/03/10(木) 13:22:56.24ID:VpQrQVi4
geigerは依存ライブラリを含めたunsafeの使用状況を集計するツールらしい
unsafe党とか言ってる人はもしかしたら
「見えないところでunsafe使うならRustは安全アピールするな」って言いたいのかもしれないし
unsafeをカウントできることがRustの安全性のひとつであることを知らないのかもしれない
2022/03/10(木) 13:38:33.30ID:cZP2Devl
次スレはわっちょい頼むな
2022/03/10(木) 14:09:03.75ID:JmzvOlHn
>>307
https://i.imgur.com/jmr2YMq.png
311デフォルトの名無しさん
垢版 |
2022/03/10(木) 14:34:40.76ID:jgJuq2u4
Unsafe使うなら見えないところでやってくれ。そしてUnsafe由来のバグは出すなっていうのがRustの思想ちゃうん?
ツール使わんと見えないなら大成功では
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
2022/03/10(木) 15:45:27.83ID:JmzvOlHn
大成功(コアダンプ)でござるwwwww
2022/03/10(木) 16:15:09.98ID:VpQrQVi4
>>312
これ何でread_address_4byteにunsafeつけないで内部でunsafeブロック使ったの?
渡された数値を無条件にアドレス扱いしてそこにアクセスするのが絶対に安全だと判断した根拠を
コメントで書いといた方がいいよ
ちゃんと理由を説明できないならunsafeブロック使うのはやめたほうがいい
2022/03/10(木) 17:06:13.98ID:9EXgn135
そりゃ変なプロパガンダかまされて、こんなしょーもない言語使わされるなんてことになったら最悪だからな。
若いバカに騙されるバカ経営陣によくある話だわ。
2022/03/10(木) 17:16:27.08ID:JmzvOlHn
バグを混入させたくて混入させる人は原則いないのである。
例示は可能な限り単純化しているが、現実世界は複雑なのだ。

プログラマが「意図せず」混入させてしまうバグを「一部」言語で回避できるからこその「安全」であり、プログラマ自身が安全性を保証する側になってしまってはもはや「安全とは言えない」w
処理系が「標準」として提供するものは処理系が「安全」を保証するものと仮定して除外し、「標準以外」の安全性を確認できればプログラム全体の「安全」も仮定でき、それを機械的に可能にしているのがRustという言語w
そしてそのする「標準以外」の安全性を確認ツールがガイガー(geiger)なのだw
「標準」が「安全」と仮定される限り、ガイガーがunsafeをscanした結果☢ が1つもなければ、プログラム全体の「安全」も仮定されることになる。
もし☢があるならば、プログラム全体の「安全」は言語(処理系)でなくプログラマ自身が保証する必要がある。
この☢がある状態はC/C++と何ら変わらず、かなりのライブラリで☢が氾濫する昨今、言語が保証する「安全」についてRustに優位性は存在しない。
に依存する。

Rustコミュニティは他言語と比べれば豆粒程度なので、言語が保証する「安全」がプログラム全体の「安全」に占めるウェイトが大きくなければ、どこかで破綻し見限られ、喧伝してる手前凋落する運命となるだろうw
しかしそれでも人は速度を諦められず、unsafe党に次々ダイブしていくわけであるw

☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢
☢ガイガーカウンター=放射線測定器☢
☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢☢
2022/03/10(木) 17:37:18.96ID:hyq4DqF3
unsafeじゃなくて、carefulってキーワードにすれば良かったのにね
2022/03/10(木) 17:39:42.56ID:29Uj/r0y
わかってる人しか使っちゃいけないんだし、unsafeのほうがいいかなあ
2022/03/10(木) 17:45:02.59ID:FFvoXTHS
libcがunsafeだからlibcの利用禁止!!!!!!!!!!!!!!!!!!!!
2022/03/10(木) 18:02:59.97ID:JmzvOlHn
exampleが日本語のクレートなtrie木を使おうとしたらもうコレw
https://i.imgur.com/ksKY9gX.png
こういうのばっかりなんですわ
321デフォルトの名無しさん
垢版 |
2022/03/10(木) 18:05:02.01ID:jgJuq2u4
> 例示は可能な限り単純化しているが、現実世界は複雑なのだ。
それはまあその通りで、だからあんまり複雑な内容をunsafe内で書くのはやめような
2022/03/10(木) 18:07:50.66ID:JmzvOlHn
毒を食らわば皿まで!by unsafe党!
2022/03/10(木) 18:17:23.72ID:rB1jhkGU
unsafe使ってるのは競プロの異常者たちだけというデータは出てるから無視で良い
2022/03/10(木) 18:18:21.60ID:7o5w+imS
まーじでワッチョイ入れるべきだったなこれは
2022/03/10(木) 18:21:54.05ID:gInsqhO/
ワッチョイスレ既にあるぞ
2022/03/10(木) 18:33:47.69ID:2bdj2PsA
cargo install でコマンドをインストールすると依存するクレートも含めて
$HOME/.cargo/bin/registry
以下のディレクトリにソースや管理用のデータが格納されているようですが、
これらの管理というのはどのようにすればよいものなのでしょうか?

一定以上に古いものを削除するとか、
インストール済みのバイナリクレートが依存しているものだけを残すとか、
そういう機能は普通はあるだろうと思うのですが cargo のコマンドとしては見当たらず、
何か専用のコマンドを入れる必要があったりするのなら教えて欲しいです。
2022/03/10(木) 18:35:27.76ID:JmzvOlHn
単純なものの組み合わせで複雑になるのだよw
複雑になると人間的なチェックでは見落としが出るのだよw
その際にどこまで複雑になっても正確さ100%の機械的チェックは申し分なく有効なのだよw
それを(Rustの)内側だけにある要因だけで捨ててunsafe党に入ってしまうのが現状のRust w
私もあなたもunsafe! viva! unsafe! Rust is unsafe!!!
2022/03/10(木) 18:36:19.21ID:a/Yt4f/l
>>326
cargo cache はどう?
https://crates.io/crates/cargo-cache
329デフォルトの名無しさん
垢版 |
2022/03/10(木) 18:36:59.75ID:jgJuq2u4
>>327
組み合わせる前にunsafeブロック閉じよう
unsafe内で組み合わせ爆発を起こすな😡
2022/03/10(木) 18:40:22.68ID:tP7YkUdv
最新ナンバリングスレをワッチョイ化しないと多分だめ
2022/03/10(木) 18:58:28.71ID:JmzvOlHn
>>329
コンパイラチェック可能な最小限のunsafeブロックの外側が、事実上安全ではないんだよw
これをどこまで広げるかを人間が決めるのでは、複雑な現実世界に適用した際バグると言っているw
誰もがこれなら平気!バグはないというところから、バグは生まれるわけだw
unsafeがあるだけでそれは致命的な障害となるw viva! unsafe! Rust is unsafe!
2022/03/10(木) 19:02:33.98ID:p5cogWRp
完全に安全な言語なんてどこにも存在しない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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