公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※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/
※次スレは原則>>980が立てること
前スレ
Rust part23
https://mevius.5ch.net/test/read.cgi/tech/1708677472/
Rust part24
■ このスレッドは過去ログ倉庫に格納されています
2024/05/27(月) 06:41:26.82ID:T4AFD1f4
149デフォルトの名無しさん
2024/06/15(土) 12:55:07.64ID:pv+Dr0CG150デフォルトの名無しさん
2024/06/15(土) 13:06:53.11ID:I+z8iAZu151デフォルトの名無しさん
2024/06/15(土) 13:08:57.41ID:I+z8iAZu >>149
完全に pure Rust の OS があったとして
その上で動くアプリケーションは全て Rust で描かないといけない世界が良いのか
Rust OS の上でも C/C++ で開発したい(API は C 相当)のかで意見が変わる
完全に pure Rust の OS があったとして
その上で動くアプリケーションは全て Rust で描かないといけない世界が良いのか
Rust OS の上でも C/C++ で開発したい(API は C 相当)のかで意見が変わる
152デフォルトの名無しさん
2024/06/15(土) 13:33:19.67ID:mfm3bm5o 完全に純粋に一人で打席に立つことは
そいつの年収やそのカネの所有権を定義するのに必要みたいな感じでしょ
そいつの年収やそのカネの所有権を定義するのに必要みたいな感じでしょ
153デフォルトの名無しさん
2024/06/15(土) 15:03:07.44ID:jiIbIudV 勘違いしてる人が多いようだけど
Rustの目的は全てをRustで書くことではなく安全にすることなんだよ
だからOSシステムコール呼び出しもRust(と最小限の各アーキテクチャ毎のレジスタ積み等)で頑張るのではなくCで書かれたlibcを用いている
つまりRustのunsafe部分を最小限にするとともに、unsafeだが枯れて安全なlibcを活用している
Rustの目的は全てをRustで書くことではなく安全にすることなんだよ
だからOSシステムコール呼び出しもRust(と最小限の各アーキテクチャ毎のレジスタ積み等)で頑張るのではなくCで書かれたlibcを用いている
つまりRustのunsafe部分を最小限にするとともに、unsafeだが枯れて安全なlibcを活用している
154デフォルトの名無しさん
2024/06/15(土) 15:11:35.25ID:W+2t+gug 勘違いしてんのはここでまともなRustの話ができると思ってるお前だよ
155デフォルトの名無しさん
2024/06/15(土) 15:51:53.03ID:uRWofhsS156デフォルトの名無しさん
2024/06/15(土) 15:54:39.14ID:I+z8iAZu 自分は pure Rust に全然拘っていないし
むしろ unsafe 大好きだが
pure Rust に拘ってる人や
unsafe 絶対無くせって言ってる人も居るのを知ってる
後者は基地外
むしろ unsafe 大好きだが
pure Rust に拘ってる人や
unsafe 絶対無くせって言ってる人も居るのを知ってる
後者は基地外
157デフォルトの名無しさん
2024/06/15(土) 16:13:09.69ID:uRWofhsS use std::io::{self, BufRead, BufReader};
const FULL_BITS: u32 = (1 << 26) - 1;
fn main() {
let mut shortest: Option<String> = None;
for line in BufReader::new(io::stdin()).lines() {
let line = line.unwrap();
let mut bits = 0;
for b in line.as_bytes() {
let index = match b {
b'A'..=b'Z' => b - b'A',
b'a'..=b'z' => b - b'a',
_ => continue,
};
bits |= 1 << index;
}
if bits != FULL_BITS {
continue;
}
if let Some(ref shortest) = shortest {
if shortest.len() < line.len() {
continue;
}
}
shortest = Some(line);
}
if let Some(shortest) = shortest {
println!("{shortest}");
} else {
eprintln!("ERROR: no matched lines");
}
}
const FULL_BITS: u32 = (1 << 26) - 1;
fn main() {
let mut shortest: Option<String> = None;
for line in BufReader::new(io::stdin()).lines() {
let line = line.unwrap();
let mut bits = 0;
for b in line.as_bytes() {
let index = match b {
b'A'..=b'Z' => b - b'A',
b'a'..=b'z' => b - b'a',
_ => continue,
};
bits |= 1 << index;
}
if bits != FULL_BITS {
continue;
}
if let Some(ref shortest) = shortest {
if shortest.len() < line.len() {
continue;
}
}
shortest = Some(line);
}
if let Some(shortest) = shortest {
println!("{shortest}");
} else {
eprintln!("ERROR: no matched lines");
}
}
158デフォルトの名無しさん
2024/06/15(土) 17:55:06.95ID:uRWofhsS ソースコードのコピペで止まるスレ
159デフォルトの名無しさん
2024/06/15(土) 20:29:16.21ID:x7/eMzge ソースコード貼るなんて暴力ですよ!
160デフォルトの名無しさん
2024/06/15(土) 21:06:34.26ID:uRWofhsS161デフォルトの名無しさん
2024/06/15(土) 21:09:34.98ID:jiIbIudV >>156
unsafeは好き嫌いというよりも
最下層のCPUとメモリもしくは境界のFFIで必須な存在とみるべきではないかな
ただしそこだけにunsafeを閉じ込めて一般プログラマーはsafeなインタフェイスのみを使う
unsafeは好き嫌いというよりも
最下層のCPUとメモリもしくは境界のFFIで必須な存在とみるべきではないかな
ただしそこだけにunsafeを閉じ込めて一般プログラマーはsafeなインタフェイスのみを使う
162デフォルトの名無しさん
2024/06/15(土) 21:10:47.55ID:uRWofhsS 一行のコードも書かずに形而上学みたいにプログラミングを学ぶ贅沢はいいね
163デフォルトの名無しさん
2024/06/15(土) 21:54:03.45ID:uRWofhsS Rust「で」作るんじゃなくてRust「を」作る秘密が知りたいんだよね
すべてのソースコードがコンパイル時に手元にあったとして、メモリの使途を解析してしまえるなんて普通は思わないからね
この点を「たまたま思いついた天才がいた」で済ませたくない
すべてのソースコードがコンパイル時に手元にあったとして、メモリの使途を解析してしまえるなんて普通は思わないからね
この点を「たまたま思いついた天才がいた」で済ませたくない
164デフォルトの名無しさん
2024/06/15(土) 22:10:08.33ID:uRWofhsS Copy型とそうでない型。よろしい
Copy型の自動変数みたいにそうでない型もスコープを抜けると解放。それはよろしい
しかしそんなものは遥か実用に遠い
Copy型の自動変数みたいにそうでない型もスコープを抜けると解放。それはよろしい
しかしそんなものは遥か実用に遠い
165デフォルトの名無しさん
2024/06/15(土) 22:29:19.17ID:uRWofhsS いったい何がきっかけでメモリの使途を把握してしまえるかもと思ったか
それが分かるまでごくごくゆっくりとしか勉強しないよ
それが分かるまでごくごくゆっくりとしか勉強しないよ
166デフォルトの名無しさん
2024/06/15(土) 22:33:28.01ID:mfm3bm5o ヒープを一切使わないパラダイムは昔に戻っただけ
スタックの安全性だけを考えてヒープはライブラリに任せる
スタックの安全性だけを考えてヒープはライブラリに任せる
167デフォルトの名無しさん
2024/06/15(土) 22:46:06.16ID:uRWofhsS 全部スタックでやってるって本当の話なの?
168デフォルトの名無しさん
2024/06/15(土) 22:51:02.34ID:uRWofhsS allocaとかとっくにあったよ?
169デフォルトの名無しさん
2024/06/15(土) 23:22:17.89ID:uRWofhsS 逆のものを想像してんだけどな
スタックでなくヒープにあっても同じなのがRustじゃないの?
スタックでなくヒープにあっても同じなのがRustじゃないの?
170デフォルトの名無しさん
2024/06/15(土) 23:47:36.34ID:mfm3bm5o 参照の寿命が尽きても参照元のデストラクタは呼ばれない
だから参照元がヒープにあろうがなかろうが参照の寿命はスタックに基づいて決めてしまえば良い
だから参照元がヒープにあろうがなかろうが参照の寿命はスタックに基づいて決めてしまえば良い
171デフォルトの名無しさん
2024/06/16(日) 00:42:56.54ID:DhqUa2Zy172デフォルトの名無しさん
2024/06/16(日) 00:50:00.04ID:+a7ueRP7 >>169
スタック上への参照とヒープ上への参照をRustでは区別しない
ライフタイムさえ満たしていればどこを指していても区別なく参照を扱う
そのため、従来行われてきた「安全にヒープ上でに領域を確保してヒープ上への参照を返す」をしなくても
ライフタイムさえ満たしていればスタック上への参照を安全に渡したり返したり自由にできるようになった
そのため、従来はヒープ上に確保していていたケースがRustではスタック上に置くことができるようになり、その点でも高速化に寄与している
スタック上への参照とヒープ上への参照をRustでは区別しない
ライフタイムさえ満たしていればどこを指していても区別なく参照を扱う
そのため、従来行われてきた「安全にヒープ上でに領域を確保してヒープ上への参照を返す」をしなくても
ライフタイムさえ満たしていればスタック上への参照を安全に渡したり返したり自由にできるようになった
そのため、従来はヒープ上に確保していていたケースがRustではスタック上に置くことができるようになり、その点でも高速化に寄与している
173デフォルトの名無しさん
2024/06/16(日) 01:00:26.12ID:d8h4GcS0 複オジのレスはいつも通り8割は嘘だな
174デフォルトの名無しさん
2024/06/16(日) 01:15:13.88ID:dwkxcYMW >>172
別にC言語だってallocaの返したポインタとmallocの返したポインタを区別しないけど
別にC言語だってallocaの返したポインタとmallocの返したポインタを区別しないけど
175デフォルトの名無しさん
2024/06/16(日) 01:25:03.80ID:J8bJz9x+ 誰が解放するか責任もなく解放忘れや多重解放を生むC言語は論外だろ
解放されたスタックフレームやヒープエリアを指し続けているポインタが残ったりな
解放されたスタックフレームやヒープエリアを指し続けているポインタが残ったりな
176デフォルトの名無しさん
2024/06/16(日) 01:32:46.10ID:dwkxcYMW C言語と違って区別しないわけじゃないし、C言語と違って高速ってわけでもない
177デフォルトの名無しさん
2024/06/16(日) 01:39:48.74ID:dwkxcYMW C言語同様に区別しないし、C言語同様に高速なんでしょう
178デフォルトの名無しさん
2024/06/16(日) 01:45:22.24ID:sswa3N72 そろそろ自己隔離しとけザコども
結局C++とRustってどっちが良いの? 9traits
ttps://mevius.5ch.net/test/read.cgi/tech/1701997063/
結局C++とRustってどっちが良いの? 9traits
ttps://mevius.5ch.net/test/read.cgi/tech/1701997063/
179デフォルトの名無しさん
2024/06/16(日) 03:32:45.56ID:dwkxcYMW へえ、コピーじゃなくて移動をデフォにしちゃうのか
180デフォルトの名無しさん
2024/06/16(日) 04:03:11.69ID:WxpyLfm8 >>174
mallocで得たポインタとallocaで得たポインタは明確に区別しなければならない
mallocで得たポインタのみfreeの対象としなければならない
この区別はCプログラマーの責務でありミスると破綻する
mallocで得たポインタとallocaで得たポインタは明確に区別しなければならない
mallocで得たポインタのみfreeの対象としなければならない
この区別はCプログラマーの責務でありミスると破綻する
181デフォルトの名無しさん
2024/06/16(日) 04:10:20.19ID:dwkxcYMW182デフォルトの名無しさん
2024/06/16(日) 04:28:58.35ID:QdGU/f8s Rustはヒープで確保したメモリ領域も完全自動で安全にメモリ解放されるからプログラマーの負担がなくていいよね
ヒープへの参照とスタックへの参照に区別がないだけでなく
それらをたとえ混ぜて関数間で渡したり返したりたらい回しにしても安全で
もし安全でない使い方をした時はライフタイムが切れてコンパイルエラーになるから自由と安全が両立されてるね
ヒープへの参照とスタックへの参照に区別がないだけでなく
それらをたとえ混ぜて関数間で渡したり返したりたらい回しにしても安全で
もし安全でない使い方をした時はライフタイムが切れてコンパイルエラーになるから自由と安全が両立されてるね
184デフォルトの名無しさん
2024/06/16(日) 04:43:29.58ID:dwkxcYMW メモリはコピーじゃなくて(所有権の)移動がデフォ
所有者がスコープを抜けるとメモリは解放
所有者に別の値が代入された際もメモリは解放
代入元は所有権が移ると未初期化の扱いになる
これだけでもかなり面白いね
所有者がスコープを抜けるとメモリは解放
所有者に別の値が代入された際もメモリは解放
代入元は所有権が移ると未初期化の扱いになる
これだけでもかなり面白いね
185デフォルトの名無しさん
2024/06/16(日) 04:50:45.28ID:/uiI2ckT >>183
C/C++/Rustすべて関数が呼び出し元に戻るときにスタックフレームは自動解放されます
もしその破棄されたスタックフレーム上を指すポインタ(参照)がどこかに残っていた場合、
C/C++ではそのポインタ使用でそこをアクセスしてしまい気づかないバグや穴となるでしょう
Rustではコンパイル時点でライフタイムエラーとなるため問題が起きないです
C/C++/Rustすべて関数が呼び出し元に戻るときにスタックフレームは自動解放されます
もしその破棄されたスタックフレーム上を指すポインタ(参照)がどこかに残っていた場合、
C/C++ではそのポインタ使用でそこをアクセスしてしまい気づかないバグや穴となるでしょう
Rustではコンパイル時点でライフタイムエラーとなるため問題が起きないです
186デフォルトの名無しさん
2024/06/16(日) 05:46:32.57ID:Jxkkspwa 正体不明のボイス・トォ・スカル
マイクロ波聴覚効果の機能より
神の声兵器は機器の場所が割れているので
ハッキング下と奪取後に器機を複製できた音を宣言していた
電磁波音波なのでむやみに器機に仕掛けると誰かが攻撃しているとすぐに設置したものは察知するが
その監視網をかいくぐるということは一発で危機をジャックしたことになる
そして機器の性能は年々よくなるので自分に行って見分けがつかないくらいになると器機使用者が幻覚を見ていると錯覚し始める
マイクロ波聴覚効果の機能より
神の声兵器は機器の場所が割れているので
ハッキング下と奪取後に器機を複製できた音を宣言していた
電磁波音波なのでむやみに器機に仕掛けると誰かが攻撃しているとすぐに設置したものは察知するが
その監視網をかいくぐるということは一発で危機をジャックしたことになる
そして機器の性能は年々よくなるので自分に行って見分けがつかないくらいになると器機使用者が幻覚を見ていると錯覚し始める
187デフォルトの名無しさん
2024/06/16(日) 06:03:13.93ID:dwkxcYMW メモリはそれ自体は無論のこと、それを指すポインタもひとつしかないわけだ
188デフォルトの名無しさん
2024/06/16(日) 07:56:02.10ID:dwkxcYMW この発想は正直なかったわ
ひとつのメモリをあちこちから参照すればするほど高効率みたいな思い込みがあるからね
ひとつのメモリをあちこちから参照すればするほど高効率みたいな思い込みがあるからね
189デフォルトの名無しさん
2024/06/16(日) 10:08:57.93ID:R4/urzCg190デフォルトの名無しさん
2024/06/16(日) 10:11:02.64ID:R4/urzCg >>169-171
CにBoxを導入すれば解決
CにBoxを導入すれば解決
191デフォルトの名無しさん
2024/06/16(日) 10:13:30.02ID:R4/urzCg >>173
ほんそれ
ほんそれ
192デフォルトの名無しさん
2024/06/16(日) 10:32:48.33ID:dwkxcYMW で、配列の要素だったり構造体のメンバだったりは「移動済み」にできない?
193デフォルトの名無しさん
2024/06/16(日) 10:36:59.18ID:dwkxcYMW とにかく&をつければアドレスを借用できて、その生存規則違反はコンパイラがはじく、と
194デフォルトの名無しさん
2024/06/16(日) 10:41:20.79ID:irw16nD2 新参に教えといてあげると
172, 175, 180, 182あたりはすべて複製おじさん(通称 複オジ)という同一人物だよ
知ったかぶりで出鱈目ばかり書いて全く反省しないという
悪い意味で有名な人ので騙されないように注意してね
172, 175, 180, 182あたりはすべて複製おじさん(通称 複オジ)という同一人物だよ
知ったかぶりで出鱈目ばかり書いて全く反省しないという
悪い意味で有名な人ので騙されないように注意してね
195デフォルトの名無しさん
2024/06/16(日) 10:51:27.98ID:DhqUa2Zy 1日10行推敲するより1日1万行書いた方が数値化に貢献しやすいからしょうがない
196デフォルトの名無しさん
2024/06/16(日) 11:21:38.24ID:dwkxcYMW ボローチェッカーは作るのも使うのも難しそう
よくこんなこと可能だと思ったもんだ
よくこんなこと可能だと思ったもんだ
197デフォルトの名無しさん
2024/06/16(日) 11:48:19.48ID:dwkxcYMW Rustの中ではつまらないというか泥臭い部分だね
198デフォルトの名無しさん
2024/06/16(日) 12:06:57.33ID:0Wwb3VFz >>196
ライフタイムについてまじめに知りたいなら(ある程度Rustには慣れた前提として)NLLのRFCを読むのをおすすめしたい
ttps://rust-lang.github.io/rfcs/2094-nll.html
そろそろこれよりいい資料は出ないもんかね……というかReferenceに明記してもらえんかね
なんか1.79でも地味にルールが拡張されたようだし
ライフタイムについてまじめに知りたいなら(ある程度Rustには慣れた前提として)NLLのRFCを読むのをおすすめしたい
ttps://rust-lang.github.io/rfcs/2094-nll.html
そろそろこれよりいい資料は出ないもんかね……というかReferenceに明記してもらえんかね
なんか1.79でも地味にルールが拡張されたようだし
199デフォルトの名無しさん
2024/06/16(日) 12:23:11.10ID:dwkxcYMW ええっと、メモリの所有者が
・スコープを抜けること
・別の値が代入されること
・別の変数に所有権を移動させること
はもともと検出できる前提なのだよね
ボローチェッカーと言ってもその3つの組み合わせに毛が生えた程度なのかどうか
・スコープを抜けること
・別の値が代入されること
・別の変数に所有権を移動させること
はもともと検出できる前提なのだよね
ボローチェッカーと言ってもその3つの組み合わせに毛が生えた程度なのかどうか
200デフォルトの名無しさん
2024/06/16(日) 12:27:02.82ID:EH7/X6SF >>198
全ての言語仕様を「仕様書」としてまとめる提案は出ているんだけど何年も動きがないんだよね……
全ての言語仕様を「仕様書」としてまとめる提案は出ているんだけど何年も動きがないんだよね……
201デフォルトの名無しさん
2024/06/16(日) 12:30:31.60ID:M/AsARsj >>174
allocaで得たポインタfreeしてそうなコメントだな
allocaで得たポインタfreeしてそうなコメントだな
202デフォルトの名無しさん
2024/06/16(日) 12:32:49.98ID:EH7/X6SF >>199
メモリとかアドレスとか言ってる時点で正確な理解から遠いと思う。
変数はメモリではないし、参照はアドレスではない。
処理系の実装としてはそのように対応するという想定はあるだろうけど機械語レベルの事情と言語のルールはレイヤが違う。
メモリとかアドレスとか言ってる時点で正確な理解から遠いと思う。
変数はメモリではないし、参照はアドレスではない。
処理系の実装としてはそのように対応するという想定はあるだろうけど機械語レベルの事情と言語のルールはレイヤが違う。
203デフォルトの名無しさん
2024/06/16(日) 12:33:46.16ID:dwkxcYMW >>201
機械語知ってるからそんな心配はない
機械語知ってるからそんな心配はない
204デフォルトの名無しさん
2024/06/16(日) 12:36:26.13ID:dwkxcYMW >>202
そうだね。Rustは高級アセンブラってわけではまったくないね。勘違いしてた
そうだね。Rustは高級アセンブラってわけではまったくないね。勘違いしてた
205デフォルトの名無しさん
2024/06/16(日) 12:42:20.38ID:dwkxcYMW 代入だったり関数呼び出しの引数だったりはコピーじゃなくて移動がキホンって時点で機械語ともC言語とも違う
206デフォルトの名無しさん
2024/06/16(日) 12:51:16.07ID:G6A3UH2o207デフォルトの名無しさん
2024/06/16(日) 13:26:09.91ID:Crm/SwBu あえて機械語レベルでも考えるとするなら概念的には移動でも (最適化を別にすれば) ビットパターンはコピーしている。
所有権を失った変数にはアクセスできないように静的に制限されるから所有権が移動したように見える。
借用は (借用が存在している間は) 移動を許さない権利として捉えることができる。
所有権を失った変数にはアクセスできないように静的に制限されるから所有権が移動したように見える。
借用は (借用が存在している間は) 移動を許さない権利として捉えることができる。
208デフォルトの名無しさん
2024/06/16(日) 13:35:38.29ID:wnp+0tyF >>200
現状だとここを見ておくのがいいかも
https://public-docs.ferrocene.dev/main/specification/index.html
ISO 26262の認定通すために書かれたものだからかなりちゃんとしている
現状だとここを見ておくのがいいかも
https://public-docs.ferrocene.dev/main/specification/index.html
ISO 26262の認定通すために書かれたものだからかなりちゃんとしている
209デフォルトの名無しさん
2024/06/16(日) 15:11:48.05ID:xaMJYqDm210デフォルトの名無しさん
2024/06/16(日) 15:51:37.66ID:Crm/SwBu >>209
C++ だって三年ごとに更新する制度になってるし、その間の議論でも仕様の文面をどう変えるかという形式をとる。
頻繁に変えるつもりがあるならなおさら今どうなってるのかの全体像を把握できる仕組みがないと困る。
C++ だって三年ごとに更新する制度になってるし、その間の議論でも仕様の文面をどう変えるかという形式をとる。
頻繁に変えるつもりがあるならなおさら今どうなってるのかの全体像を把握できる仕組みがないと困る。
211デフォルトの名無しさん
2024/06/16(日) 15:52:59.06ID:sKPbV2Nu RubyもISOになったことあるし
212デフォルトの名無しさん
2024/06/16(日) 15:57:39.35ID:sswa3N72 15.4:16 ??? (this should describe the order of borrowing and when the borrow is returned)
わろた
わろた
213デフォルトの名無しさん
2024/06/16(日) 16:23:56.88ID:dwkxcYMW NLLというくらいだからもともとLL
214デフォルトの名無しさん
2024/06/16(日) 16:49:41.43ID:dwkxcYMW まあ一応(ボローチェッカーというものが)可能そう
215デフォルトの名無しさん
2024/06/16(日) 17:20:46.77ID:dwkxcYMW コンパイラはプログラム中の全ての参照型に対してライフタイムを割り当てる、と
216デフォルトの名無しさん
2024/06/16(日) 17:45:29.17ID:WRdAUcGE 言語にISO標準を求めるのって相当なお爺ちゃんでしょ
もうそういう時代じゃないですよ
もうそういう時代じゃないですよ
217デフォルトの名無しさん
2024/06/16(日) 17:52:05.41ID:fzWVLbYH >>215
所有者がどのスタックフレーム(の中のどのブロックスコープ)にいるかだけの話だよな
そこより先なら参照は生きて
そこより元なら参照も死ぬ
もちろんそんな神の絶対的な視点を実行前のコンパイル時点で静的に持つことはできない
しかし各関数内での出入り(引数がinで返り値がout)は静的にわかるから
相対的な視点で有効か無効かわかることになると
所有者がどのスタックフレーム(の中のどのブロックスコープ)にいるかだけの話だよな
そこより先なら参照は生きて
そこより元なら参照も死ぬ
もちろんそんな神の絶対的な視点を実行前のコンパイル時点で静的に持つことはできない
しかし各関数内での出入り(引数がinで返り値がout)は静的にわかるから
相対的な視点で有効か無効かわかることになると
218デフォルトの名無しさん
2024/06/16(日) 17:55:19.72ID:Crm/SwBu219デフォルトの名無しさん
2024/06/16(日) 18:05:26.18ID:0Wwb3VFz 複製おじさんと遊ぼうスレ
220デフォルトの名無しさん
2024/06/16(日) 18:43:24.33ID:hxwMVp5d221デフォルトの名無しさん
2024/06/16(日) 18:44:48.95ID:dwkxcYMW ひとつしかない所有者がスコープを抜ける、もしくは所有者に別の値が代入されると、そこから先にはメモリはもうない
222デフォルトの名無しさん
2024/06/16(日) 18:57:47.09ID:dwkxcYMW なんとなく、所有者はスタックの根元の方に、参照はスタックの枝葉の方にいそうなイメージ
223デフォルトの名無しさん
2024/06/16(日) 19:01:15.44ID:4AvHozuz224デフォルトの名無しさん
2024/06/16(日) 19:08:46.55ID:dwkxcYMW >>223
つまり所有権も静的に解析できる?
つまり所有権も静的に解析できる?
225デフォルトの名無しさん
2024/06/16(日) 19:26:50.69ID:0Wwb3VFz ここは結局こんな感じなのでID:dwkxcYMWは本当のことが知りたいならrust-lang-jpのZulipにでも行くといい
ttps://rust-lang-jp.zulipchat.com/
ttps://rust-lang-jp.zulipchat.com/
226デフォルトの名無しさん
2024/06/16(日) 21:12:46.18ID:Crm/SwBu227デフォルトの名無しさん
2024/06/16(日) 21:13:16.76ID:Crm/SwBu >>224
できるというか、それが Rust のキモやで。
できるというか、それが Rust のキモやで。
228デフォルトの名無しさん
2024/06/16(日) 22:06:19.67ID:DhqUa2Zy ゴールポストを固定することが正しいという考えが衰退したんだよな
正しさを疑うことが常識になったから
正しさを疑うことが常識になったから
229デフォルトの名無しさん
2024/06/16(日) 22:29:00.55ID:Crm/SwBu >>228
ゴールを設定したいという話じゃなくて「今」どうなっているか見えないと疑うべきものすら存在できないって話なんだよ。
ゴールを設定したいという話じゃなくて「今」どうなっているか見えないと疑うべきものすら存在できないって話なんだよ。
230デフォルトの名無しさん
2024/06/16(日) 22:37:41.81ID:ICtaqBL/ >>226
>じゃあ言語の仕様をどうやって把握すんの?
言語の仕様はリファレンスで把握しろよ
>Rust のコンパイラを実装できましたって言えるの?
言える必要性が全くないやろ
どうしても言いたければ公式が用意してるコンパイラと標準ライブラリのテストを全部通したらいいんじゃね?
>じゃあ言語の仕様をどうやって把握すんの?
言語の仕様はリファレンスで把握しろよ
>Rust のコンパイラを実装できましたって言えるの?
言える必要性が全くないやろ
どうしても言いたければ公式が用意してるコンパイラと標準ライブラリのテストを全部通したらいいんじゃね?
231デフォルトの名無しさん
2024/06/16(日) 23:02:11.93ID:Crm/SwBu232デフォルトの名無しさん
2024/06/17(月) 06:58:24.07ID:Yz55GwEO 【マイクロ波センサー】長距離でも壁があっても動きを検出!
↓2010年ごろには完成
高齢化社会を支える“見守りシステム”の開発に成功-カギを握った半導体ソリューションとは
↓2026年ごろにさらに性能工場
旭化成、ミリ波・マイクロ波帯の空洞共振器による微小金属検査システムを開発
男女関係なく陰部を撮影
一度でも盗撮されていれば正確な色合いの・・・
初期型は赤外線センサー【自動ドアのセンサなど】
子どもが言語を獲得していくのと同じようにAIモデルに学習させることに成功
AIを使って「赤外線カメラ画像のフルカラー化」に成功!
世界中で横行
↓2010年ごろには完成
高齢化社会を支える“見守りシステム”の開発に成功-カギを握った半導体ソリューションとは
↓2026年ごろにさらに性能工場
旭化成、ミリ波・マイクロ波帯の空洞共振器による微小金属検査システムを開発
男女関係なく陰部を撮影
一度でも盗撮されていれば正確な色合いの・・・
初期型は赤外線センサー【自動ドアのセンサなど】
子どもが言語を獲得していくのと同じようにAIモデルに学習させることに成功
AIを使って「赤外線カメラ画像のフルカラー化」に成功!
世界中で横行
233デフォルトの名無しさん
2024/06/17(月) 16:27:54.49ID:prlYSpwu 役に立たないどんぐり
234デフォルトの名無しさん
2024/06/17(月) 21:23:17.19ID:McDpAz4n 卒業式でみんなで思い出を言うやつみたいだな
卒業生 「そして役に立たないどんぐり!」
卒業生一同 「どんぐり~」
卒業生 「そして役に立たないどんぐり!」
卒業生一同 「どんぐり~」
235デフォルトの名無しさん
2024/06/17(月) 21:51:46.63ID:McDpAz4n 卒業生A 「高速で動作しながら保たれる高いメモリ安全性」
卒業生一同 「安全性!」
卒業生一同 「安全性!」
236デフォルトの名無しさん
2024/06/17(月) 22:06:12.81ID:JE6O5Al9 米ホワイトハウス「ソフトウェアはメモリ安全でなければならない」との声明を発表:「C」「C++」よりも「Rust」などの言語を推奨
https://atmarkit.itmedia.co.jp/ait/articles/2403/18/news045.html
https://atmarkit.itmedia.co.jp/ait/articles/2403/18/news045.html
237デフォルトの名無しさん
2024/06/18(火) 00:33:44.73ID:Vx2LO8pn 卒業生 「みんなで借りた所有権」
卒業生一同 「所有権!」
卒業生一同 「所有権!」
238デフォルトの名無しさん
2024/06/18(火) 02:26:00.95ID:V90mUrMq AIにC++とRustのコードを比較してもらった
https://nshinchan01.hateblo.jp/entry/2024/06/18/021159
https://nshinchan01.hateblo.jp/entry/2024/06/18/021159
239デフォルトの名無しさん
2024/06/18(火) 08:51:41.62ID:Ee6IUiqA 見えない仕様書より見えているコロンブスを殴る
殴る
殴る
240デフォルトの名無しさん
2024/06/18(火) 09:12:34.89ID:z6V+MJXC >>238
sum()自体は使わないとしてこうかな
fn foo(input: impl IntoIterator<Item = i32>) -> i32 {
input
.into_iter()
.filter(|x| x % 2 == 0)
.map(|x| x * 2)
.fold(0, |sum, x| sum + x)
}
fn main() {
let numbers = vec![1, 2, 3, 4, 5];
assert_eq!(foo(numbers), 12);
}
sum()自体は使わないとしてこうかな
fn foo(input: impl IntoIterator<Item = i32>) -> i32 {
input
.into_iter()
.filter(|x| x % 2 == 0)
.map(|x| x * 2)
.fold(0, |sum, x| sum + x)
}
fn main() {
let numbers = vec![1, 2, 3, 4, 5];
assert_eq!(foo(numbers), 12);
}
241デフォルトの名無しさん
2024/06/18(火) 12:23:59.59ID:/B9kzKJY Rustの仕様と実装の分離ができてないと、公式の実装が唯一になるから困る分野があるんだろうね。
Cとかコンパイラいっぱいあるじゃん。
Rustぐらい複雑で成長途上の言語で仕様を文書化して実装を交換可能にするなんて事実上無理っぽいけど、10年後ぐらいには問題でてくるのかもね。
Cとかコンパイラいっぱいあるじゃん。
Rustぐらい複雑で成長途上の言語で仕様を文書化して実装を交換可能にするなんて事実上無理っぽいけど、10年後ぐらいには問題でてくるのかもね。
242デフォルトの名無しさん
2024/06/18(火) 12:31:26.48ID:28rDJLEQ >>241
現在のRustの仕様は実用的なプログラミングをする上で十分なレベルとなっているけど
さらに便利にするための追加仕様がTODOリストに積まれていてそれらが少しずつ解決されて追加されていってる状況ですね
まだ当面しばらくは現状体制のまま成長させていくのが望ましいと思います
現在のRustの仕様は実用的なプログラミングをする上で十分なレベルとなっているけど
さらに便利にするための追加仕様がTODOリストに積まれていてそれらが少しずつ解決されて追加されていってる状況ですね
まだ当面しばらくは現状体制のまま成長させていくのが望ましいと思います
243デフォルトの名無しさん
2024/06/18(火) 13:47:06.59ID:4eNa7Q9X 実装が仕様でもいいけど、その場合はその実装のコアの部分を明確にした方がいいかもね
244デフォルトの名無しさん
2024/06/18(火) 13:51:40.72ID:LAg3uLnk GPT-4oがAIベンチマークのARC-AGIで50%のスコアに到達、これまでの最高記録である34%を大幅に更新
2024年06月18日
※さらに最適化すれば70%以上も可能な模様
スマホに搭載可能な小型透視チップが開発される
2024年06月18日
2024年06月18日
※さらに最適化すれば70%以上も可能な模様
スマホに搭載可能な小型透視チップが開発される
2024年06月18日
245デフォルトの名無しさん
2024/06/18(火) 16:50:36.49ID:Q5+2E571 >>241
Cの標準化の更新なんて10年とかだろうが。
Cの標準化の更新なんて10年とかだろうが。
246デフォルトの名無しさん
2024/06/18(火) 18:04:47.12ID:dU1vPCRC >>241
>Cとかコンパイラいっぱいあるじゃん。
それは各チップでそれぞれ別のCコンパイラが必要なのと
クローズドソースでプロプライエタリのコンパイラを有償で販売できる環境があるからだよ
Rustだと各チップで必要になるのはLLVM対応であってRustのコンパイラではないし
リスクをとってまでプロプライエタリなコンパイラをわざわざ作るメリットもほぼない
それにコンパイラが乱立しないというのは今のところはエコシステム的にはメリットしかない
>Cとかコンパイラいっぱいあるじゃん。
それは各チップでそれぞれ別のCコンパイラが必要なのと
クローズドソースでプロプライエタリのコンパイラを有償で販売できる環境があるからだよ
Rustだと各チップで必要になるのはLLVM対応であってRustのコンパイラではないし
リスクをとってまでプロプライエタリなコンパイラをわざわざ作るメリットもほぼない
それにコンパイラが乱立しないというのは今のところはエコシステム的にはメリットしかない
247デフォルトの名無しさん
2024/06/18(火) 19:09:22.28ID:gzLiS43Q gccが頑張ってるくらい?
248デフォルトの名無しさん
2024/06/18(火) 19:12:43.09ID:1V33WRQR 団体がすべての主導権を握ってるならある日急にガラッと変えても誰も文句を言えない
実装が仕様です
C++や他の言語で規格がって言ってるのはコンパイラだけの問題じゃなくてコード利用してる側の都合でもある
実装が仕様です
C++や他の言語で規格がって言ってるのはコンパイラだけの問題じゃなくてコード利用してる側の都合でもある
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- 【画像】エロい一般漫画はなぜこんなに抜けるのか
- 日本人の海外旅行したきのマナーよくなったのはいつから
- BTSのバラエティ面白すぎワロタ
- 寝癖ってどうしたらつかなくなるんや?
