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/
探検
Rust part10
■ このスレッドは過去ログ倉庫に格納されています
2021/04/02(金) 21:38:04.11ID:L7IeSfpL
427デフォルトの名無しさん
2021/05/05(水) 16:59:13.24ID:sMGymnD4 >>425
varにするようになったら全部varにするだろ?
varにするようになったら全部varにするだろ?
428デフォルトの名無しさん
2021/05/05(水) 17:40:56.63ID:iUhohRzs429デフォルトの名無しさん
2021/05/05(水) 18:09:53.05ID:UOumGkwv VSCode + rust-analyzer だとletやメソッドチェーンのところに型が表示されるし
今時の開発環境使っていればローカル変数の型がぱっと見で分からなくて苦労することは少ないのでは
今時の開発環境使っていればローカル変数の型がぱっと見で分からなくて苦労することは少ないのでは
430デフォルトの名無しさん
2021/05/05(水) 18:14:24.50ID:GNJam4rN431デフォルトの名無しさん
2021/05/05(水) 18:51:20.46ID:cJbqSzge ゲェーQZ居着いてんのかよこのスレ
バカなくせに出しゃばりでウザいからC++スレから出てくんなよ
バカなくせに出しゃばりでウザいからC++スレから出てくんなよ
432デフォルトの名無しさん
2021/05/05(水) 19:01:51.22ID:sMGymnD4 >>430
後から右辺値の型が変わったら気が付かないうちに影響が波及するじゃん
後から右辺値の型が変わったら気が付かないうちに影響が波及するじゃん
433デフォルトの名無しさん
2021/05/05(水) 19:41:05.57ID:E1emjEBd var xの型が何であるかはxの初期化のときただ一度きりの右辺の型で決まるんジャネーノ
だとしたら後から右辺値の型が変わることに関して
varの導入で傷口が広がったことにはならない
だとしたら後から右辺値の型が変わることに関して
varの導入で傷口が広がったことにはならない
434デフォルトの名無しさん
2021/05/05(水) 19:44:32.97ID:E1emjEBd 二回目以降の右辺値はxに対する代入でしかありえない
それらはxに対して(暗黙の型変換等を経て)代入可能ならコンパイルが通るし、
代入不可能ならエラーになる。
xの初期化時にvarを使おうが使うまいが(明示的に型を書こうが)変わらない話
それらはxに対して(暗黙の型変換等を経て)代入可能ならコンパイルが通るし、
代入不可能ならエラーになる。
xの初期化時にvarを使おうが使うまいが(明示的に型を書こうが)変わらない話
435デフォルトの名無しさん
2021/05/05(水) 20:38:12.35ID:UOumGkwv せめてletの話をしろよ
436デフォルトの名無しさん
2021/05/05(水) 20:48:36.67ID:vgXZGrp9 RustのletはJS由来? それともHaskell?
437デフォルトの名無しさん
2021/05/05(水) 21:09:59.09ID:1EwqoC8k JavaScriptにもletあるけど語源調べたら普通に英単語のletで短縮形ってわけじゃないらしい
438デフォルトの名無しさん
2021/05/05(水) 21:24:20.68ID:ra+BilqN BASICの時代からletはあったけどな
439デフォルトの名無しさん
2021/05/05(水) 21:31:43.51ID:ZsCzZm1J letはlisp系から始まったイメージ。
440デフォルトの名無しさん
2021/05/05(水) 22:26:24.94ID:vWJ975z5 RustのletはML系由来だろ
441デフォルトの名無しさん
2021/05/05(水) 22:44:48.04ID:UOumGkwv 最初のrustcはocamlで書かれてたくらいだしML系の影響は色濃そう
443デフォルトの名無しさん
2021/05/06(木) 01:02:12.67ID:SpjdL+PT let mut にするか var にするかの決定で、
目立たないけどRustに貢献した人という記事が最近書かれたので貼っとく
https://brson.github.io/2021/05/02/rusts-most-unrecognized-contributor
目立たないけどRustに貢献した人という記事が最近書かれたので貼っとく
https://brson.github.io/2021/05/02/rusts-most-unrecognized-contributor
444デフォルトの名無しさん
2021/05/06(木) 01:05:25.16ID:ut0g6JOd >>443
3行でまとめて
3行でまとめて
445デフォルトの名無しさん
2021/05/06(木) 01:35:02.38ID:SpjdL+PT デイブ・ハーマン(Dave Herman)というECMAScript委員会のMozillaの代表者の人がいました。
リポジトリ上のコミットログでは目立ちませんが、彼の好みがRustチームの好みを作り、チームの組織と維持に重要な役割を果たしていました。
彼はチームの決定をほとんど穏やかに受け入れていましたが、let mut と var のどちらにするかについては var を使うというチームの決定に同意しませんでした。
リポジトリ上のコミットログでは目立ちませんが、彼の好みがRustチームの好みを作り、チームの組織と維持に重要な役割を果たしていました。
彼はチームの決定をほとんど穏やかに受け入れていましたが、let mut と var のどちらにするかについては var を使うというチームの決定に同意しませんでした。
446デフォルトの名無しさん
2021/05/06(木) 01:36:11.91ID:V2I8vwdu447デフォルトの名無しさん
2021/05/06(木) 01:37:37.69ID:V2I8vwdu Rustだと、明示するには、
let c:i8 = 'a';
とキータイプが多くなってしまうな。
let c:i8 = 'a';
とキータイプが多くなってしまうな。
448デフォルトの名無しさん
2021/05/06(木) 01:40:47.77ID:V2I8vwdu 例えばの話、演算子も優先順位が決まっているので、
if ( (a >= 5 && a <= 10) || (b>=10 && b <=20) ) {・・・}
見たいな条件も、優先順位の括弧を省略できるかも知れないが、勘違いや
記憶違いを防ぐために書いた方がいいと言われている。
int c = 'a';
char c ='a';
auto c = 'a';
ではやはり、autoはバグの原因になりそう。
if ( (a >= 5 && a <= 10) || (b>=10 && b <=20) ) {・・・}
見たいな条件も、優先順位の括弧を省略できるかも知れないが、勘違いや
記憶違いを防ぐために書いた方がいいと言われている。
int c = 'a';
char c ='a';
auto c = 'a';
ではやはり、autoはバグの原因になりそう。
449デフォルトの名無しさん
2021/05/06(木) 01:47:50.96ID:V2I8vwdu それと、型を明示した方が後から見たときにプログラマの脳内の想定もわかり易い。
float a = 1.0f;
float b = a + 5.0f;
みたいなものも、もし、
auto a = 1.0f;
auto b = a + 5.0f;
と書くと b は、double 型になってしまうかもしれないが、テストしても
間違いに気づかず、僅かに速度低下やメモリーを多く食ってしまう
かもしれない。また、思想にもよるが、1.0f などと書かずに
float a = 1;
float b = 5;
と書きたい人も居ると思う。これの方が、後から double 型に変えたときに
右辺を訂正する必要がないメリットもある。
float a = 1.0f;
float b = a + 5.0f;
みたいなものも、もし、
auto a = 1.0f;
auto b = a + 5.0f;
と書くと b は、double 型になってしまうかもしれないが、テストしても
間違いに気づかず、僅かに速度低下やメモリーを多く食ってしまう
かもしれない。また、思想にもよるが、1.0f などと書かずに
float a = 1;
float b = 5;
と書きたい人も居ると思う。これの方が、後から double 型に変えたときに
右辺を訂正する必要がないメリットもある。
450デフォルトの名無しさん
2021/05/06(木) 03:19:29.71ID:EVf7RH7G >>446
rustの文字リテラルはu8でもi8でもなくてcharな
それはそれとして型やら括弧やらを明示的に書くことは禁じられてないんだから書けばよいのでは
言語の問題というよりはコーディング規約でなんとかすべき領域かと
タイプ数が多くなるとかはデフォルトをどちらに倒すかの問題で世間の嗜好とずれてるなら多少手間がかかるのは諦めるしかない
rustの文字リテラルはu8でもi8でもなくてcharな
それはそれとして型やら括弧やらを明示的に書くことは禁じられてないんだから書けばよいのでは
言語の問題というよりはコーディング規約でなんとかすべき領域かと
タイプ数が多くなるとかはデフォルトをどちらに倒すかの問題で世間の嗜好とずれてるなら多少手間がかかるのは諦めるしかない
451デフォルトの名無しさん
2021/05/06(木) 03:21:51.36ID:EVf7RH7G 誤解を招きそうだから補足しておくとrustのcharはユニコードのコードポイントが格納される32bit符号なし整数型な
452デフォルトの名無しさん
2021/05/06(木) 06:46:11.97ID:AMAuzv83 >>443
こういうのいいな
こういうのいいな
453デフォルトの名無しさん
2021/05/06(木) 10:08:34.61ID:VcsxCBNr454デフォルトの名無しさん
2021/05/06(木) 10:15:22.90ID:lmEaR3VD >>445の要約の最後たぶん間違ってる
デイブ氏はキーワードを重ねるとmutableな変数の使用を躊躇させる効果が生じて
プログラマのコーディング方式の選択を咎めることになるから反対だったらしい
チームの決定は初めからlet mutで彼は(珍しく)反対したけど最終的には受け入れた
デイブ氏はキーワードを重ねるとmutableな変数の使用を躊躇させる効果が生じて
プログラマのコーディング方式の選択を咎めることになるから反対だったらしい
チームの決定は初めからlet mutで彼は(珍しく)反対したけど最終的には受け入れた
455デフォルトの名無しさん
2021/05/06(木) 11:35:13.23ID:hCHdFqbq つまり暗黙の型変換は癌
456デフォルトの名無しさん
2021/05/06(木) 11:48:56.26ID:fowE0ZYM varでいいじゃん
あとはideが勝手に型直してくれるよ
あとはideが勝手に型直してくれるよ
457デフォルトの名無しさん
2021/05/06(木) 11:52:26.38ID:a37uwZNi いないいない
458デフォルトの名無しさん
2021/05/06(木) 14:35:25.59ID:SpjdL+PT459デフォルトの名無しさん
2021/05/06(木) 16:00:35.75ID:acc3YL8w タイプ数で優劣を決めようとするアホとは次元が違うな
460デフォルトの名無しさん
2021/05/06(木) 16:31:20.99ID:q/dBsf9f タイプ数は少ない方が問答無用で良い
461デフォルトの名無しさん
2021/05/06(木) 17:13:47.97ID:EVf7RH7G fn, ret, cont, break の時代に回帰するか
462デフォルトの名無しさん
2021/05/06(木) 17:27:07.40ID:ut0g6JOd タイプ数は少ない
って基本型が少ない言語が好みなのかと思った
って基本型が少ない言語が好みなのかと思った
463デフォルトの名無しさん
2021/05/06(木) 19:28:16.24ID:fowE0ZYM <?rust
println!("hello rust!!");
?>
println!("hello rust!!");
?>
464デフォルトの名無しさん
2021/05/06(木) 21:17:13.93ID:O03dxxkK >>448
型を明示したってバグるくせによく言うのぜ
型を明示したってバグるくせによく言うのぜ
465デフォルトの名無しさん
2021/05/06(木) 22:42:35.79ID:pupGSg3O タイプ数が少ないようが絶対良いんなら
むかしGAMEとかいうすべてのキーワードが1文字の言語があったからそれでも使え
むかしGAMEとかいうすべてのキーワードが1文字の言語があったからそれでも使え
466デフォルトの名無しさん
2021/05/06(木) 23:22:18.38ID:fowE0ZYM Rust 〜地図にない場所〜
467デフォルトの名無しさん
2021/05/07(金) 03:50:05.38ID:vAByX/Kb468デフォルトの名無しさん
2021/05/07(金) 07:04:16.43ID:aU3MjDw9 >>467
intが32bitだといつから錯覚していた?
intが32bitだといつから錯覚していた?
469デフォルトの名無しさん
2021/05/07(金) 08:21:08.42ID:Dsa6ajo4 Announcing Rust for Windows v0.9
https://blogs.windows.com/windowsdeveloper/2021/05/06/announcing-rust-for-windows-v0-9/
https://blogs.windows.com/windowsdeveloper/2021/05/06/announcing-rust-for-windows-v0-9/
470デフォルトの名無しさん
2021/05/07(金) 09:19:02.07ID:iG4irUX1 言ってる側から落とし穴に嵌っててワロタ
471デフォルトの名無しさん
2021/05/07(金) 10:35:21.40ID:8IfDDxiK let a = 5_i32;
型は右側だけで決めるのじゃ
両側で合わせるのは無駄、変更するときも面倒じゃろ
・・なに?
aがi32だと明示してバグを軽減したいじゃと?
それなら行を分けるのじゃ
1行にまとめるとせっかくの明示が埋もれてしまうからの
let a: i32; // この行の存在は大きいぞい
a = 5_i32;
型は右側だけで決めるのじゃ
両側で合わせるのは無駄、変更するときも面倒じゃろ
・・なに?
aがi32だと明示してバグを軽減したいじゃと?
それなら行を分けるのじゃ
1行にまとめるとせっかくの明示が埋もれてしまうからの
let a: i32; // この行の存在は大きいぞい
a = 5_i32;
472デフォルトの名無しさん
2021/05/07(金) 12:08:53.04ID:B2UdQUpV473デフォルトの名無しさん
2021/05/07(金) 12:20:12.52ID:B2UdQUpV >>468
ちなみに、組み込み以外のほとんどのC/C++コンパイラでは、intは32BIT型。
デスクトップマシン用のC/C++では、32BIT/64BIT のどちらでも、intは、
32BIT型のはずで、少なくとも VC++では必ず int は 32BIT。
ちなみに、組み込み以外のほとんどのC/C++コンパイラでは、intは32BIT型。
デスクトップマシン用のC/C++では、32BIT/64BIT のどちらでも、intは、
32BIT型のはずで、少なくとも VC++では必ず int は 32BIT。
474デフォルトの名無しさん
2021/05/07(金) 12:24:00.34ID:w+YL5YRG >>472
int32_tな
int32_tな
475デフォルトの名無しさん
2021/05/07(金) 12:51:05.27ID:B2UdQUpV476デフォルトの名無しさん
2021/05/07(金) 12:57:04.52ID:w+YL5YRG477デフォルトの名無しさん
2021/05/07(金) 13:31:50.44ID:B2UdQUpV478デフォルトの名無しさん
2021/05/07(金) 13:40:18.27ID:8gopO5Ce どういうバグを作る可能性があるかという点が共有されてないから議論空回りしている感
479デフォルトの名無しさん
2021/05/07(金) 13:42:32.36ID:B2UdQUpV というか、int32_t という型名を考えた人が馬鹿すぎるので、長くて困るという話
だと思ったんだ。もし、int32_t が使える環境で賢く使いたい人は、
typedef int32_t int32;
typedef int32_t i32;
typedef int32_t Int32;
などとすればいいという話。
前提とする知識が低すぎる人がいるから困る。
だと思ったんだ。もし、int32_t が使える環境で賢く使いたい人は、
typedef int32_t int32;
typedef int32_t i32;
typedef int32_t Int32;
などとすればいいという話。
前提とする知識が低すぎる人がいるから困る。
480デフォルトの名無しさん
2021/05/07(金) 13:45:35.27ID:eN8Lkrsa 何を議論してるのか全然分からん
481デフォルトの名無しさん
2021/05/07(金) 14:02:25.02ID:SIz+0gIF 1レス目で即NG
相手してるやつも同じカテゴリなので即NG
相手してるやつも同じカテゴリなので即NG
482はちみつ餃子 ◆8X2XSCHEME
2021/05/07(金) 14:03:01.68ID:xLSEaA6V 議論なんかするつもりがないんだろう。
483デフォルトの名無しさん
2021/05/07(金) 14:40:46.39ID:r6L15P9a >>479
>というか、int32_t という型名を考えた人が馬鹿すぎるので、長くて困るという話
>だと思ったんだ。
誰がどこでそんな話をしたのか
ログ辿っても全然分からない件
ついでに言えば
グローバル名前空間の中に標準ライブラリがブチ込む型名として
_tサフィックス以外あり得んので
何も馬鹿なことなんか無い
つーか本当に誰もそんな話してないな
これ突っ込んだら
どんなガイジレスを返すのか興味津々
>>480
論点不明のドッジボールだからな
今はどこでも似たようなやり取りが見られて
5ch終わってる感がハンパない
俺は句点付きが特に頭おかしいと思うけど
レスバ相手はEQがヤバイ感じだが
句点付きはIQがヤバイ
>というか、int32_t という型名を考えた人が馬鹿すぎるので、長くて困るという話
>だと思ったんだ。
誰がどこでそんな話をしたのか
ログ辿っても全然分からない件
ついでに言えば
グローバル名前空間の中に標準ライブラリがブチ込む型名として
_tサフィックス以外あり得んので
何も馬鹿なことなんか無い
つーか本当に誰もそんな話してないな
これ突っ込んだら
どんなガイジレスを返すのか興味津々
>>480
論点不明のドッジボールだからな
今はどこでも似たようなやり取りが見られて
5ch終わってる感がハンパない
俺は句点付きが特に頭おかしいと思うけど
レスバ相手はEQがヤバイ感じだが
句点付きはIQがヤバイ
484デフォルトの名無しさん
2021/05/07(金) 14:57:30.94ID:DUMB7Vls メジャーなGUIアプリで使われているrust製GUIライブラリってなにがありますか?
GUI使いたいんですが長いものにまかれたいので
GUI使いたいんですが長いものにまかれたいので
485はちみつ餃子 ◆8X2XSCHEME
2021/05/07(金) 15:02:55.52ID:xLSEaA6V486デフォルトの名無しさん
2021/05/07(金) 15:53:14.60ID:B2UdQUpV487デフォルトの名無しさん
2021/05/07(金) 16:08:00.06ID:r6L15P9a488デフォルトの名無しさん
2021/05/07(金) 17:04:02.49ID:+x2jPaur メモリ不足でカーネルパニックが起きることの問題がわからない
普通のパソコン用途に使われてたらユーザーランドのソフトがOOM Killerに殺されようがOS丸ごとクラッシュしようが作業内容が失われるのは変わらん
サーバー用途でも一部のプロセスが殺されて中途半端の状態で動き続けるよりいっその事OSまるごとクラッシュしたほうがいいと思う
普通のパソコン用途に使われてたらユーザーランドのソフトがOOM Killerに殺されようがOS丸ごとクラッシュしようが作業内容が失われるのは変わらん
サーバー用途でも一部のプロセスが殺されて中途半端の状態で動き続けるよりいっその事OSまるごとクラッシュしたほうがいいと思う
489デフォルトの名無しさん
2021/05/07(金) 17:16:13.01ID:8gopO5Ce >>488
rustでLinuxのドライバー書く話?
メモリ不足時にどうハンドリングされるべきかは使い方によって違うので一律パニックするのは良くない
例えば例に挙げてるOOM Killerだってカーネルがパニックしたら実行されないわけで
rustでLinuxのドライバー書く話?
メモリ不足時にどうハンドリングされるべきかは使い方によって違うので一律パニックするのは良くない
例えば例に挙げてるOOM Killerだってカーネルがパニックしたら実行されないわけで
490デフォルトの名無しさん
2021/05/07(金) 17:22:12.18ID:r6L15P9a >>488
何かあった時止まればいいシステムばかりじゃないだろ
ペースメーカーとか原子炉とか
細かいことは知らんけど
昔、組み込み屋のおっさんが最初から1Mぐらい確保して
何かあったらそれを解放してどうにかするみたいなこと言ってた
知らんけど
何かあった時止まればいいシステムばかりじゃないだろ
ペースメーカーとか原子炉とか
細かいことは知らんけど
昔、組み込み屋のおっさんが最初から1Mぐらい確保して
何かあったらそれを解放してどうにかするみたいなこと言ってた
知らんけど
491はちみつ餃子 ◆8X2XSCHEME
2021/05/07(金) 18:25:34.58ID:xLSEaA6V >>488
システムは単独で動いているわけではない。
カーネルがパニックすることがあって良いという前提で設計して、パニックしうる前提で運用できるならそれでも構わんのだが、
Linux のカーネルでパニックを許すなら今 Linux を基礎にしているあらゆるシステムの運用体制を見直さざるを得ない。
カーネルパニックが絶対に駄目というわけじゃないんだ。
(もちろん発生しないに越したことは無いが。)
Linux では起こさないという前提に皆が従っているので変えられないという話なんだよ。
システムは単独で動いているわけではない。
カーネルがパニックすることがあって良いという前提で設計して、パニックしうる前提で運用できるならそれでも構わんのだが、
Linux のカーネルでパニックを許すなら今 Linux を基礎にしているあらゆるシステムの運用体制を見直さざるを得ない。
カーネルパニックが絶対に駄目というわけじゃないんだ。
(もちろん発生しないに越したことは無いが。)
Linux では起こさないという前提に皆が従っているので変えられないという話なんだよ。
492デフォルトの名無しさん
2021/05/07(金) 18:53:57.67ID:XbWp/RIC 割り込みが飛んでくる環境で例外なんか扱おうとしたら普通に死ぬだろ
493デフォルトの名無しさん
2021/05/07(金) 19:12:04.63ID:RYgnWswQ494デフォルトの名無しさん
2021/05/07(金) 19:35:24.51ID:FlZ9PpDj 差し当たりRustの言語を広く浅く学習したいのですが、「実践Rustプログラミング入門」の言語部分(100ページ程度)が分量が少なめで気になっています
この本で大きく抜けている文法や機能ってありますか?
この本で大きく抜けている文法や機能ってありますか?
495デフォルトの名無しさん
2021/05/07(金) 20:06:32.24ID:xz5IWUMT >>494
The Bookと比べれば一目瞭然
The Bookと比べれば一目瞭然
496デフォルトの名無しさん
2021/05/07(金) 20:11:06.98ID:8H8V34/d497デフォルトの名無しさん
2021/05/07(金) 20:22:58.56ID:fmyiQrUP >>496
最近は仮想化&分散で寛容になっているの?
最近は仮想化&分散で寛容になっているの?
498デフォルトの名無しさん
2021/05/07(金) 21:23:40.41ID:EDSX1EuR499デフォルトの名無しさん
2021/05/07(金) 21:36:25.19ID:7aFGtcIv >>497
むしろchaos engineeringで積極的に落とす
むしろchaos engineeringで積極的に落とす
500デフォルトの名無しさん
2021/05/07(金) 21:52:45.82ID:Z7WMK8Ny ペースメーカーとか原子炉とか、ノンストップシステムでは常に複数動いている
Kubernetes などでは、ネットワーク分断に備えて、
正常な状態を多数決で決めるから、3, 5, 7 みたいな奇数を動かす
2対2とか偶数だと、どちらが正常か判断できないから
Kubernetes などでは、ネットワーク分断に備えて、
正常な状態を多数決で決めるから、3, 5, 7 みたいな奇数を動かす
2対2とか偶数だと、どちらが正常か判断できないから
501500
2021/05/07(金) 22:00:09.91ID:Z7WMK8Ny Netflix などは常に、システムを攻撃して落としたりして、テストしてる。
サイボウズのkintone は、毎日システムを破棄して、作り直しているとか
Kubernetes を使っているのかな?
サイボウズのkintone は、毎日システムを破棄して、作り直しているとか
Kubernetes を使っているのかな?
502デフォルトの名無しさん
2021/05/08(土) 00:03:29.89ID:4agfhhA1 非常時の処理はカーネルの中心部が決めることで
枝葉のモジュールに決定権はないという話なんじゃないの?
枝葉のモジュールに決定権はないという話なんじゃないの?
503デフォルトの名無しさん
2021/05/08(土) 00:07:56.54ID:OofXJFgO レイヤーがめちゃくちゃな話しとるな。
OSみたいなハードウェアに直触るものとkubernetesみたいな分散管理のソフトじゃ
全然話が違う。
実際kubernetesはGC付きのgolangが実装だろ。
OSみたいなハードウェアに直触るものとkubernetesみたいな分散管理のソフトじゃ
全然話が違う。
実際kubernetesはGC付きのgolangが実装だろ。
504500
2021/05/08(土) 01:02:28.51ID:P6P/nG6A ノンストップシステムでは常に複数動く。
デュアルシステムとか
東証・富士通製のarrowhead は、3重だったかな?
それでも、ラックか何かの接続部分が落ちて、システムダウンした
ネットワークが集中している部分の故障が、最も怖い
デュアルシステムとか
東証・富士通製のarrowhead は、3重だったかな?
それでも、ラックか何かの接続部分が落ちて、システムダウンした
ネットワークが集中している部分の故障が、最も怖い
505デフォルトの名無しさん
2021/05/08(土) 08:40:46.17ID:e+sagIsH >>492
なんでじゃ
割り込みルーチンに入るときの退避と出るときの復旧をきちんとやっていれば
割り込みルーチン以外の処理は割り込みルーチンが呼び出されることに対して透過的に動作できる
一部のハードなリアルタイムOSみたいに(多重割り込み前提で)割り込みルーチンから
通常コンテキストに直接「ジャンプ」してタスクをたたき起こすみたいなケースでもなければ割り込みの存在は
通常コンテキストで何をやろうと一切影響は無い
(もちろん割り込み禁止、みたいな直接割り込みに影響する命令を実行したら話は別だがそれは普通特権命令でOS以外は実行できな
い
カーネルでの例外が問題なのは、
例外機構を持たないCならスタックポインタの調整で済むところを
デストラクタがある高級な言語だと例外が通過する際に自動変数として構築されていたオブジェクトを
例外が通過する関数全てについて解放してやらねばならない
(それでいて一方、自動変数として構築される可能性はあっても
例外発生時に構築されていないオブジェクトに対しては何もしてはいけない
という点
これは例外を飛ばすだけでその経路全部が同一のコンパイラで書かれなければならないことを意味する
途中に手で書いたアセンブラのルーチンなどあろうものならスタックをぶち壊してハードウェアの例外でいきなり
落ちるということになってそんなことがOS内で起きたら計算機上の資源の安全が担保されない。
OSとしては失格である
なんでじゃ
割り込みルーチンに入るときの退避と出るときの復旧をきちんとやっていれば
割り込みルーチン以外の処理は割り込みルーチンが呼び出されることに対して透過的に動作できる
一部のハードなリアルタイムOSみたいに(多重割り込み前提で)割り込みルーチンから
通常コンテキストに直接「ジャンプ」してタスクをたたき起こすみたいなケースでもなければ割り込みの存在は
通常コンテキストで何をやろうと一切影響は無い
(もちろん割り込み禁止、みたいな直接割り込みに影響する命令を実行したら話は別だがそれは普通特権命令でOS以外は実行できな
い
カーネルでの例外が問題なのは、
例外機構を持たないCならスタックポインタの調整で済むところを
デストラクタがある高級な言語だと例外が通過する際に自動変数として構築されていたオブジェクトを
例外が通過する関数全てについて解放してやらねばならない
(それでいて一方、自動変数として構築される可能性はあっても
例外発生時に構築されていないオブジェクトに対しては何もしてはいけない
という点
これは例外を飛ばすだけでその経路全部が同一のコンパイラで書かれなければならないことを意味する
途中に手で書いたアセンブラのルーチンなどあろうものならスタックをぶち壊してハードウェアの例外でいきなり
落ちるということになってそんなことがOS内で起きたら計算機上の資源の安全が担保されない。
OSとしては失格である
506デフォルトの名無しさん
2021/05/08(土) 08:53:39.11ID:e+sagIsH 、と思ったが
よく考えたら「手で書いたアセンブラのルーチン」があったらコンパイラはそれを知らない関数としてスタックポインタの調整以外のことを
しなかったら良いのかorz、
ここは「例外通過時にC++や異なるベンダーのRustコンパイラみたいな例外を捕捉する関数をコンパイルいたRustコンパイラが預かり知らない
巻き戻し処理が必要なルーチン」があったら、ということに訂正
、
よく考えたら「手で書いたアセンブラのルーチン」があったらコンパイラはそれを知らない関数としてスタックポインタの調整以外のことを
しなかったら良いのかorz、
ここは「例外通過時にC++や異なるベンダーのRustコンパイラみたいな例外を捕捉する関数をコンパイルいたRustコンパイラが預かり知らない
巻き戻し処理が必要なルーチン」があったら、ということに訂正
、
507デフォルトの名無しさん
2021/05/08(土) 09:44:38.32ID:9PfSgf27 なんだこいつ
IQ64だな
IQ64だな
508デフォルトの名無しさん
2021/05/08(土) 10:15:07.28ID:e+sagIsH IQは関係無いやろうがギギギギギ、
509デフォルトの名無しさん
2021/05/08(土) 11:11:59.29ID:52U5aUmg JAVAみたいな言語があるからnewしたまま放ったらかしでメモリ管理もろくに出来ない馬鹿で溢れかえって居るんだよな
510デフォルトの名無しさん
2021/05/08(土) 11:36:05.31ID:jLEsHVNz ついさっき知ったけど、new() はT だけじゃなく Result<T> を返していいんだな
511デフォルトの名無しさん
2021/05/08(土) 12:01:48.48ID:9PfSgf27 newはシンタックスじゃなくてただの慣例だからね
慣例ではResultを返すのはお作法に反するはず
慣例ではResultを返すのはお作法に反するはず
512デフォルトの名無しさん
2021/05/08(土) 12:03:38.57ID:OofXJFgO 別にjavaがない頃からそういうバカはいたけどね
513デフォルトの名無しさん
2021/05/08(土) 12:09:19.46ID:rOsHiSsL メモリ管理もろくに出来ない馬鹿
・Linuxカーネルにカーネルスタックメモリ内の情報を読み取られる脆弱性
・「WebKit」にゼロデイ脆弱性 〜「macOS Big Sur 11.3.1」や「iOS/iPadOS 14.5.1」などが公開
・BIND9に脆弱性、アップデートや回避策を
・Linuxカーネルにカーネルスタックメモリ内の情報を読み取られる脆弱性
・「WebKit」にゼロデイ脆弱性 〜「macOS Big Sur 11.3.1」や「iOS/iPadOS 14.5.1」などが公開
・BIND9に脆弱性、アップデートや回避策を
514デフォルトの名無しさん
2021/05/08(土) 12:14:25.93ID:lGQPC/Vw515デフォルトの名無しさん
2021/05/08(土) 13:11:23.63ID:RJ95z4qm516デフォルトの名無しさん
2021/05/08(土) 13:37:14.67ID:jLEsHVNz >>511
ただの慣例じゃなくて、clippy先生の指導対象らしい
https://rust-lang.github.io/rust-clippy/master/#new_ret_no_self
Checks for new not returning a type that contains Self.
ただの慣例じゃなくて、clippy先生の指導対象らしい
https://rust-lang.github.io/rust-clippy/master/#new_ret_no_self
Checks for new not returning a type that contains Self.
517デフォルトの名無しさん
2021/05/08(土) 14:30:50.83ID:yMDwHl+j 手動でスタックポインタの調整ってバグや脆弱性の温床じゃね?
518デフォルトの名無しさん
2021/05/08(土) 17:15:39.08ID:3vrEhaHR 医療機器や原発の制御システムとかが不意にリセットしないとか思っている時点で
組み込みとか高信頼性システムとかを全く知らないんだなって思う
ああいうのは最悪暴走したらリセットして最低限の機能は提供出来るように
作るのが基本だからね。そうしないと想定外の事態がおきた時に詰む
組み込みとか高信頼性システムとかを全く知らないんだなって思う
ああいうのは最悪暴走したらリセットして最低限の機能は提供出来るように
作るのが基本だからね。そうしないと想定外の事態がおきた時に詰む
519デフォルトの名無しさん
2021/05/08(土) 17:18:46.34ID:jLEsHVNz そんなコーナーケースの為に俺たちの使い心地が悪くなるようなら耐えられないな
520はちみつ餃子 ◆8X2XSCHEME
2021/05/08(土) 17:23:48.71ID://zoyCL6 暴走した場合にでもうてる手札を用意しておくってのと、
暴走しないように細部まで検証しておくってのは両立する話
暴走しないように細部まで検証しておくってのは両立する話
521デフォルトの名無しさん
2021/05/08(土) 17:27:07.74ID:QshNNe4V いうほどコーナーケースってほどでもないだろ。
割と考慮されて当然のケースだわ。
まあlinux単体がその品質を担保できてるとも思わんけど。
割と考慮されて当然のケースだわ。
まあlinux単体がその品質を担保できてるとも思わんけど。
522デフォルトの名無しさん
2021/05/08(土) 17:33:15.67ID:3vrEhaHR 原子力関係だけでなく航空機や宇宙機もだが制御不能になるのが一番ヤバイんで
バグ出しは常識的な範囲で行って、あとはリカバリ系に注力した方がシステムの信頼性は向上する
歴史的に見ても事故るシステムの多くはこの辺をガバっている事が多いし
バグ出しは常識的な範囲で行って、あとはリカバリ系に注力した方がシステムの信頼性は向上する
歴史的に見ても事故るシステムの多くはこの辺をガバっている事が多いし
523デフォルトの名無しさん
2021/05/08(土) 17:57:46.72ID:e+sagIsH 別に
ハイテク旅客機が落ちるのは自動制御と手動操縦のモード切替仕様を
パイロットが熟知しておらず緊急時に操縦桿を奪い合う格闘になったから
であってソフトは仕様通りだった
『ハイテク飛行機はなぜ落ちるか』(ブルーバックス)のインシデントの数々を見たらワカル
原子炉の制御系はそもそも暴走させないように金かけて形式検証する
人間が本気になったらどんだけバグをなくすために金と手間を掛けられるかというと
スペースシャトルのSSMEの制御装置のソフトがどんだけ徹底したデバッグが行われたかを見たらワカル
ハイテク旅客機が落ちるのは自動制御と手動操縦のモード切替仕様を
パイロットが熟知しておらず緊急時に操縦桿を奪い合う格闘になったから
であってソフトは仕様通りだった
『ハイテク飛行機はなぜ落ちるか』(ブルーバックス)のインシデントの数々を見たらワカル
原子炉の制御系はそもそも暴走させないように金かけて形式検証する
人間が本気になったらどんだけバグをなくすために金と手間を掛けられるかというと
スペースシャトルのSSMEの制御装置のソフトがどんだけ徹底したデバッグが行われたかを見たらワカル
524デフォルトの名無しさん
2021/05/08(土) 18:17:53.56ID:57+jEKOs >>523
人間が使う物であればUIも当然システムに含まれる
判りにくいUIは良いシステムとは言えない
ソユーズや神舟はADA使ったりしていないけど
スペースシャトルより死人は少ない。米式が唯一の正解とは限らない
むしろスペースシャトルはシステム設計に失敗した例だろ
人間が使う物であればUIも当然システムに含まれる
判りにくいUIは良いシステムとは言えない
ソユーズや神舟はADA使ったりしていないけど
スペースシャトルより死人は少ない。米式が唯一の正解とは限らない
むしろスペースシャトルはシステム設計に失敗した例だろ
525デフォルトの名無しさん
2021/05/08(土) 18:22:37.13ID:e+sagIsH UIの仕様バグと>>518が言っている暴走する系のバグは話がちげう
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 【紅白】back number 白組で3年ぶり2回目の出場へ 「幅広い世代から支持」複数曲を披露する見込み [ひかり★]
- 【朗報】VTuber、とうとうスパロボに参戦する
- 毎日菊花茶飲んでたら美肌になったよ
- 粗品「南原が3億も貰えんの?」 [279254606]
- 朝雑談
- 🏡ダブパン本仕込み~🍞🍞😅🍞🍞🏡
- お店に入る時にケツ先入店してる
