公式
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
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 完全に安全な言語なんてどこにも存在しない
333デフォルトの名無しさん
2022/03/10(木) 19:22:49.02ID:JmzvOlHn そう、つまりRustはおおよそのケースでC/C++と同じくらい安全でなく、RustはC/C++より少し遅い言語なわけだw
viva! ☢unsafe☢! Rust is ☢unsafe☢!
viva! ☢unsafe☢! Rust is ☢unsafe☢!
334デフォルトの名無しさん
2022/03/10(木) 19:23:02.49ID:VmetIJtP 銀の弾丸はないんだよ
だけど物事は少しずつよくなっいくの
だけど物事は少しずつよくなっいくの
335デフォルトの名無しさん
2022/03/10(木) 19:28:34.82ID:JmzvOlHn そのとおり!今は嘘をつかず謙虚にユーザーが増えるのを待っていろw
非同期に必要なlibc周りのゴミゴミした部分が十二分に安定して標準に取り込まれれば逆転も可能だろw
それまではジッと我慢w
非同期に必要なlibc周りのゴミゴミした部分が十二分に安定して標準に取り込まれれば逆転も可能だろw
それまではジッと我慢w
336デフォルトの名無しさん
2022/03/10(木) 19:39:15.65ID:ADHqCeoy ここで真っ赤になってディスろうがRustの利用は拡大している
337デフォルトの名無しさん
2022/03/10(木) 19:40:41.65ID:JmzvOlHn まだ叩かれたりないのかw マゾかよw
338デフォルトの名無しさん
2022/03/10(木) 19:46:32.94ID:JmzvOlHn Google Trendsのen-USで見たらRustでプログラミング言語がないんだがw
https://i.imgur.com/Gi5avJg.png
https://i.imgur.com/Gi5avJg.png
339デフォルトの名無しさん
2022/03/10(木) 20:11:05.69ID:2bdj2PsA340デフォルトの名無しさん
2022/03/10(木) 20:20:46.82ID:JmzvOlHn Rustは何かにつけて長時間ビルドする上にそのサイズがクソデカイから困るんだよなw
容量足りなくていつも消して回り、ちょっと変更してフルビルドっていう繰り返しw
容量足りなくていつも消して回り、ちょっと変更してフルビルドっていう繰り返しw
341デフォルトの名無しさん
2022/03/10(木) 20:38:14.39ID:jgJuq2u4 >>331
ええそんなことあるか?
ええそんなことあるか?
342デフォルトの名無しさん
2022/03/10(木) 20:48:32.09ID:JmzvOlHn >>341
適当なテストでリリースしたりしませんw
適当なテストでリリースしたりしませんw
343デフォルトの名無しさん
2022/03/10(木) 21:24:21.13ID:Bj7uYOrm まず言語と関係なく一般的な前提として
・プログラミングをする上で当然unsafeな操作を避けることはできない
・unsafeな操作を組み合わせることで安全なプログラムを作ることがプログラミングの本質
次に
・unsafeな操作のコードは人間による厳重なチェックが必須でこれを避けることは出来ない
・unsafeな操作がプログラム全体に散らばってしまっているのがCとC++
そこでRustの方針
・unsafeな操作は局所的に閉じ込めてしまい安全なインタフェースを公開
・そのunsafeな操作で作られた安全なインタフェースの安全性は人間が保証
・データ競合を含めたプログラム全体の安全性はRustの言語ルールによりコンパイラが保証
したがってどんなにプログラムとその中のデータや依存関係が複雑化および巨大化しようとも
Rustにおいて人間は局所的に閉じ込めたunsafeな操作部分のみ厳重チェックすればよくなった
暴れている ID:JmzvOlHn はこれを理解することが出来ない愚かな存在
例えば >>312の read_address_4byte()
これはunsafeな操作を使ったunsafeな関数であるからunsafeを宣言しなければならない
>>330
ワッチョイ化しなくても愚かな存在はすぐに区別がつくので大丈夫
並行してワッチョイ無しスレも立って過疎と活性の結果となる
・プログラミングをする上で当然unsafeな操作を避けることはできない
・unsafeな操作を組み合わせることで安全なプログラムを作ることがプログラミングの本質
次に
・unsafeな操作のコードは人間による厳重なチェックが必須でこれを避けることは出来ない
・unsafeな操作がプログラム全体に散らばってしまっているのがCとC++
そこでRustの方針
・unsafeな操作は局所的に閉じ込めてしまい安全なインタフェースを公開
・そのunsafeな操作で作られた安全なインタフェースの安全性は人間が保証
・データ競合を含めたプログラム全体の安全性はRustの言語ルールによりコンパイラが保証
したがってどんなにプログラムとその中のデータや依存関係が複雑化および巨大化しようとも
Rustにおいて人間は局所的に閉じ込めたunsafeな操作部分のみ厳重チェックすればよくなった
暴れている ID:JmzvOlHn はこれを理解することが出来ない愚かな存在
例えば >>312の read_address_4byte()
これはunsafeな操作を使ったunsafeな関数であるからunsafeを宣言しなければならない
>>330
ワッチョイ化しなくても愚かな存在はすぐに区別がつくので大丈夫
並行してワッチョイ無しスレも立って過疎と活性の結果となる
344デフォルトの名無しさん
2022/03/10(木) 21:38:23.62ID:JmzvOlHn >>343
> ・unsafeな操作を組み合わせることで安全なプログラムを作ることがプログラミングの本質
これ嘘w
> ・unsafeな操作は局所的に閉じ込めてしまい安全なインタフェースを公開
これ「局所的に閉じ込め」られると思ってるところがただの思いこみw
理由は
> ・そのunsafeな操作で作られた安全なインタフェースの安全性は人間が保証
これが不可能だからw
閉じ込められないと、
> ・データ競合を含めたプログラム全体の安全性はRustの言語ルールによりコンパイラが保証
これの意味がなくなるw
という説明を長々としてきたのだが、残念ながらID:Bj7uYOrmには理解が及ばなかった模様w
以上から、Rust is ☢ UNSAFE ☢! となるw
どうして理解できないんだろうなぁw
機械は言われたとおりのことしかできないけど、言われたとおりに100%ミスなくできるw
でも人間は必ずミスをするんだよw
保証できていることの意味が全然違うことを理解してほしいねw
> ・unsafeな操作を組み合わせることで安全なプログラムを作ることがプログラミングの本質
これ嘘w
> ・unsafeな操作は局所的に閉じ込めてしまい安全なインタフェースを公開
これ「局所的に閉じ込め」られると思ってるところがただの思いこみw
理由は
> ・そのunsafeな操作で作られた安全なインタフェースの安全性は人間が保証
これが不可能だからw
閉じ込められないと、
> ・データ競合を含めたプログラム全体の安全性はRustの言語ルールによりコンパイラが保証
これの意味がなくなるw
という説明を長々としてきたのだが、残念ながらID:Bj7uYOrmには理解が及ばなかった模様w
以上から、Rust is ☢ UNSAFE ☢! となるw
どうして理解できないんだろうなぁw
機械は言われたとおりのことしかできないけど、言われたとおりに100%ミスなくできるw
でも人間は必ずミスをするんだよw
保証できていることの意味が全然違うことを理解してほしいねw
345デフォルトの名無しさん
2022/03/10(木) 21:45:03.55ID:cZP2Devl ワッチョイあり作っていい?
346デフォルトの名無しさん
2022/03/10(木) 21:54:57.49ID:7o5w+imS スレの途中で作ると人移動しないかもしれない。いやでも、おじさんこんだけ激しく荒らしてるから、移動するかもしれない。
347デフォルトの名無しさん
2022/03/10(木) 22:02:14.74ID:tHieothT この手の嵐はワッチョイ導入でさぁーっと消えるw
そらもう面白いように消える不思議なことに
そらもう面白いように消える不思議なことに
348デフォルトの名無しさん
2022/03/10(木) 22:05:50.15ID:JmzvOlHn 別にどっちにも書くだけだけどなw
349デフォルトの名無しさん
2022/03/10(木) 22:07:42.67ID:7o5w+imS 少なくとも自演はできないし一週間NGできるから快適になるよなぁ
350デフォルトの名無しさん
2022/03/10(木) 22:12:09.43ID:JmzvOlHn どうぞどうぞご自由にw 自演なんてしてないし、別IDなんてないけどなw
そもそもまともな内容書いてないやつしかワッチョイの話してないのが非常に胡散臭いw
そもそもまともな内容書いてないやつしかワッチョイの話してないのが非常に胡散臭いw
351デフォルトの名無しさん
2022/03/10(木) 22:12:58.79ID:jgJuq2u4 >>344
そうは言ってもデバッグするときunsafeな場所が限定されている方が良くない?
そうは言ってもデバッグするときunsafeな場所が限定されている方が良くない?
352デフォルトの名無しさん
2022/03/10(木) 22:31:54.92ID:JmzvOlHn353デフォルトの名無しさん
2022/03/10(木) 22:33:25.84ID:xy5Q90JZ >>351
どうせunsafeがある時点で論外って答えが返ってくるだけだぞ
どうせunsafeがある時点で論外って答えが返ってくるだけだぞ
354デフォルトの名無しさん
2022/03/10(木) 23:13:00.51ID:jgJuq2u4355デフォルトの名無しさん
2022/03/10(木) 23:16:42.15ID:Bj7uYOrm 「大規模化/複雑化すれば人間は必ずミスをする」からこそ
それを回避するためにRustが作られた
Rustコンパイラはコードがどんなに大規模化/複雑化しても
メモリ安全性やデータ競合が無いことを保証できる
その唯一対象外となるのがunsafeな操作
Rustでは局所的な極小規模で単純な部分にunsafeな操作を閉じこめる
そして外へは安全なインタフェースのみを公開
人間にしか出来ないunsafeな操作利用の妥当性チェックを最小化することに成功した
どんなに大規模and/or複雑化してもプログラム全体の安全性を人間がチェックする必要が無くなった
一方でCやC++などはプログラム全体にunsafeな操作が散らばり人間の手に負えない
GC導入のハンデと引き換えにメモリ安全性の一部を得たGC言語であっても
ヌルポインタを含む一部のメモリ安全性やデータ競合などを防ぐことが出来ていない
それらの安全性を保証することに成功したプログラミング言語がRust
それを回避するためにRustが作られた
Rustコンパイラはコードがどんなに大規模化/複雑化しても
メモリ安全性やデータ競合が無いことを保証できる
その唯一対象外となるのがunsafeな操作
Rustでは局所的な極小規模で単純な部分にunsafeな操作を閉じこめる
そして外へは安全なインタフェースのみを公開
人間にしか出来ないunsafeな操作利用の妥当性チェックを最小化することに成功した
どんなに大規模and/or複雑化してもプログラム全体の安全性を人間がチェックする必要が無くなった
一方でCやC++などはプログラム全体にunsafeな操作が散らばり人間の手に負えない
GC導入のハンデと引き換えにメモリ安全性の一部を得たGC言語であっても
ヌルポインタを含む一部のメモリ安全性やデータ競合などを防ぐことが出来ていない
それらの安全性を保証することに成功したプログラミング言語がRust
356デフォルトの名無しさん
2022/03/10(木) 23:32:10.55ID:JmzvOlHn 可哀想なくらいに他人の言葉を受け入れられない人だねw
Rust作られた目的まで捏造されちゃったよw
unsafeを閉じ込められるというのは幻想w
外には安全なインターフェースのみ公開という理屈が「仮定」できるのは処理系とのそこが提供する標準含むランタイムだけw
プログラマが実装するプログラムはunsafeを使った途端にプログラム全体がもうunsafeでC/C++と同じなんだよw
GCは関係ないw
リアルタイム性を予測可能にするためにランタイムが予測不可能な時間を使用することを回避したい場合のみGC有無が関係するw
null安全は書き方だけであり、他の言語でも大抵似たようなことが実現できるし、機械的なチェックも可能w
そしてC/C++と同様に安全性が保証できず、C/C++より遅い言語が何を隠そうRustさんw
Rust作られた目的まで捏造されちゃったよw
unsafeを閉じ込められるというのは幻想w
外には安全なインターフェースのみ公開という理屈が「仮定」できるのは処理系とのそこが提供する標準含むランタイムだけw
プログラマが実装するプログラムはunsafeを使った途端にプログラム全体がもうunsafeでC/C++と同じなんだよw
GCは関係ないw
リアルタイム性を予測可能にするためにランタイムが予測不可能な時間を使用することを回避したい場合のみGC有無が関係するw
null安全は書き方だけであり、他の言語でも大抵似たようなことが実現できるし、機械的なチェックも可能w
そしてC/C++と同様に安全性が保証できず、C/C++より遅い言語が何を隠そうRustさんw
357デフォルトの名無しさん
2022/03/10(木) 23:34:44.83ID:JmzvOlHn358デフォルトの名無しさん
2022/03/10(木) 23:50:22.89ID:7o5w+imS ずーっと同じこと言って人を煽ってるだけ。典型的な構ってちゃん
359デフォルトの名無しさん
2022/03/10(木) 23:58:49.51ID:Bj7uYOrm >>356
ほら、理解できていない
unsafeで作られた安全なコードに対する人間による妥当性チェックの必要性は
それが標準であろうとデファクトであろうと自作であろうと全て同じ
逆に言えばその局所的なコードの妥当性チェックがなされていれば
Rustではプログラム全体の妥当性がコンパイル時点で保証される
Rust以外のプログラミング言語はこれができない
ほら、理解できていない
unsafeで作られた安全なコードに対する人間による妥当性チェックの必要性は
それが標準であろうとデファクトであろうと自作であろうと全て同じ
逆に言えばその局所的なコードの妥当性チェックがなされていれば
Rustではプログラム全体の妥当性がコンパイル時点で保証される
Rust以外のプログラミング言語はこれができない
360デフォルトの名無しさん
2022/03/11(金) 00:07:06.62ID:GmBPyzdt >>359
理解できてないのはお前w
ランタイムやVMは他の言語でも別枠だからプログラム本体とは切り離して安全としていいんだよw
そこは言語が規定してる部分だからだw
C#やJavaでVMがnativeだからって文句言うアホはいないし、各種インタプリタ言語の組み込み関数が何で書かれてても誰も何も言わないだろw
RustよりはC#やJavaの方が明確に安全と言えるけどなw
Rustだと言語の内側からunsafeにしたいという欲求が生まれる温床があり、不必要にunsafeが発生しうるw
理解できてないのはお前w
ランタイムやVMは他の言語でも別枠だからプログラム本体とは切り離して安全としていいんだよw
そこは言語が規定してる部分だからだw
C#やJavaでVMがnativeだからって文句言うアホはいないし、各種インタプリタ言語の組み込み関数が何で書かれてても誰も何も言わないだろw
RustよりはC#やJavaの方が明確に安全と言えるけどなw
Rustだと言語の内側からunsafeにしたいという欲求が生まれる温床があり、不必要にunsafeが発生しうるw
361デフォルトの名無しさん
2022/03/11(金) 00:49:50.34ID:KdADcOUe もし仮にTokioが標準ライブラリならOKなのか?
標準ライブラリにバグがある確率とコンパイラにバグがある確率は同じくらいとして
標準ライブラリにバグがある確率とコンパイラにバグがある確率は同じくらいとして
362デフォルトの名無しさん
2022/03/11(金) 01:19:06.80ID:yxfxX1kD 標準ライブラリはもの凄い小さくて、あとは個人や小さな組織が作った野良ライブラリだよりだから、
安全性は全然担保されてないと思うがなぁ。
安全性は全然担保されてないと思うがなぁ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 [蚤の市★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」 [ぐれ★]
- 【高市リスク】立民・小西洋之参院議員「高市総理がとんでもない安全保障オンチで外交オンチ」 [ぐれ★]
- 『DOWNTOWN+』会員数50万人突破で見えてきた 松本人志の“月収4ケタ万円”驚愕収入 [阿弥陀ヶ峰★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 ★2 [ぐれ★]
- 夜勤終わり風呂なう
- 中国による連日の対日制裁、ついに途切れる… 高市許されたか? [271912485]
- 日本人を襲ってきたのは「自衛隊」だった [805596214]
- 【悲報】東京都民さん、20過ぎてるのに自転車に乗っててて大炎上wwwwwwwwwwww女「いい歳した男で自転車に乗るのは知的障がい者だけだよ? [483447288]
- お前らの朝起きてからのルーティン教えて
- 巨乳絵師、ソシャゲのキャラに「パイズリ」の文字を巧妙に隠し話題に [435756605]
