公式
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/
(コミュニティによる日本語翻訳版もあります: https://doc.rust-jp.rs/book-ja/)
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part37
https://mevius.5ch.io/test/read.cgi/tech/1784283151/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.io/test/read.cgi/tech/1514107621/
Rust part38
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2026/07/24(金) 20:04:25.76ID:24e2kQId163デフォルトの名無しさん
2026/07/27(月) 13:54:45.64ID:xOTlZrWd 安全センサーというより緊急停止機能を無効にしてる
↓がよくあるパターン
fn do_something(...) {
assert!(...);
unsafe { do_something_unchecked(...); }
}
unsafe fn do_something_unchecked(...) {
...
}
一般的にはdo_something内のassertが無駄で省略したい時にdo_something_uncheckedを使う
assertに失敗する状況でも無理矢理do_somethingを実行するためにunsafeを使うテロリストは少数派
障害物が存在しないゾーンだから緊急停止機能を切る → 前者
歩行者天国に突っ込むために緊急停止機能を切る → 後者
↓がよくあるパターン
fn do_something(...) {
assert!(...);
unsafe { do_something_unchecked(...); }
}
unsafe fn do_something_unchecked(...) {
...
}
一般的にはdo_something内のassertが無駄で省略したい時にdo_something_uncheckedを使う
assertに失敗する状況でも無理矢理do_somethingを実行するためにunsafeを使うテロリストは少数派
障害物が存在しないゾーンだから緊急停止機能を切る → 前者
歩行者天国に突っ込むために緊急停止機能を切る → 後者
164デフォルトの名無しさん
2026/07/28(火) 07:35:37.83ID:SSSNYshU >>162
デフォルトはunsafe禁止にすべきだと思う。
デフォルトはunsafe禁止にすべきだと思う。
165デフォルトの名無しさん
2026/07/29(水) 06:57:18.23ID:pJZFGA6W >>164
禁止にしたらswapさえも自前で実装できなくなる
禁止にしたらswapさえも自前で実装できなくなる
166デフォルトの名無しさん
2026/07/29(水) 08:36:37.82ID:MVwM6Fna167デフォルトの名無しさん
2026/07/29(水) 10:40:40.30ID:3B9HmXpU こうしてcrates.ioはunsoundなcrateだらけの無法地帯となったのであった
168デフォルトの名無しさん
2026/07/29(水) 12:00:21.28ID:iZIz+xrk panicもそうだがunsafeコードを監査する道具立てが無さすぎるんだよな
いろんな実験的な取り組みは進んでるけど実用レベルのものは全然ない
安全装置を作るガイドラインは提供するが
実際に作られた安全装置が本当に安全どうかは各利用者が責任を持って検査しろ
というのが今のRust
いろんな実験的な取り組みは進んでるけど実用レベルのものは全然ない
安全装置を作るガイドラインは提供するが
実際に作られた安全装置が本当に安全どうかは各利用者が責任を持って検査しろ
というのが今のRust
169デフォルトの名無しさん
2026/07/29(水) 12:14:56.18ID:dbHTweEp unsafeを使ってsafeで効率のよい仕組みを作れることが判ったら、
それをクレートや標準ライブラリとして公開して、
皆がその恩恵に授かれつつ監視できるようにする
ここまでは素晴らしい
問題は穴があリそうなものも公開された場合に、
それに関心を持つ人が少なくて監視が不十分なまま据え置かれ、
盲目的に利用する人が出現すると
それをクレートや標準ライブラリとして公開して、
皆がその恩恵に授かれつつ監視できるようにする
ここまでは素晴らしい
問題は穴があリそうなものも公開された場合に、
それに関心を持つ人が少なくて監視が不十分なまま据え置かれ、
盲目的に利用する人が出現すると
170デフォルトの名無しさん
2026/07/29(水) 12:15:24.57ID:NoQrPg3U171デフォルトの名無しさん
2026/07/29(水) 12:19:48.03ID:PLSlwpZy >>168
そんなもんAIに丸投げすりゃいいだけだよ
そんなもんAIに丸投げすりゃいいだけだよ
172デフォルトの名無しさん
2026/07/29(水) 17:27:15.06ID:HxIU6hTs173デフォルトの名無しさん
2026/07/29(水) 17:43:52.99ID:DbK9jFcI カニはあかんの?
全く触ったことないけど
全く触ったことないけど
174sage
2026/07/29(水) 17:45:42.72ID:xURVCAgB タラバガニならいいよ
175デフォルトの名無しさん
2026/07/29(水) 17:54:22.16ID:6ReqrdZN タラバガニは名前に「カニ」とはつくものの、本当はカニではなく、ヤドカリの仲間
176デフォルトの名無しさん
2026/07/29(水) 18:06:16.78ID:DbK9jFcI やーどかりかりこだわり屋さん
177デフォルトの名無しさん
2026/07/29(水) 18:36:17.68ID:6KqLGuXi AIに丸投げしたらunsafreだらけなんだよな
RustとAIの相性ってめっちゃ悪い
RustとAIの相性ってめっちゃ悪い
178sage
2026/07/29(水) 18:46:31.71ID:IGXiEnZG そういうのもういいカニよ~
179デフォルトの名無しさん
2026/07/29(水) 18:56:58.96ID:DYzXh0EE >>177
ほとんどの分野はunsafe不要なのだからunsafe使うなと指示するだけだろ
ほとんどの分野はunsafe不要なのだからunsafe使うなと指示するだけだろ
180デフォルトの名無しさん
2026/07/29(水) 19:15:55.34ID:DbK9jFcI kani使用者おらんの?これだけunsafe連呼して
181sage
2026/07/29(水) 19:41:06.38ID:bOpXr8pA unsafe基本使わんし
182デフォルトの名無しさん
2026/07/29(水) 20:59:10.00ID:6KqLGuXi >>179
それができるんならRustなんか使わないでもっと効率のいい言語でメモリ安全にしろって指示するだけだろ
それができるんならRustなんか使わないでもっと効率のいい言語でメモリ安全にしろって指示するだけだろ
183デフォルトの名無しさん
2026/07/29(水) 21:19:00.93ID:euoryzct >>182
そんなことができる該当する言語はRustしかない
そんなことができる該当する言語はRustしかない
184デフォルトの名無しさん
2026/07/29(水) 21:28:44.03ID:NwsUEWh8 unsafeってメモリ弄ったりライブラリ開発する時に使う奴だべ
おらには扱えねぇだ
おらには扱えねぇだ
185デフォルトの名無しさん
2026/07/29(水) 22:15:20.70ID:sdorLE3o ハードやOSや他言語コードなどを呼び出すRustライブラリが存在しない場合、それを作る時にunsafeが必要になり得る
既にRustライブラリがあればunsafeを使わずに書ける
既にRustライブラリがあればunsafeを使わずに書ける
186デフォルトの名無しさん
2026/07/30(木) 10:55:35.79ID:GjYFQrBq unsafeがあるなら、結局みんなunsafeばかり使うからC言語と何も変わらないなんて主張するレベルのプログラマーは
それこそ複おじの自演用の、極端な低能に調整された仮想敵にしかいないよ
それこそ複おじの自演用の、極端な低能に調整された仮想敵にしかいないよ
187デフォルトの名無しさん
2026/07/30(木) 12:50:54.24ID:VixSHfU8 >>186
unsafe以外の部分はRustが安全性を保証するため全てunsafeなC言語とは異なる
unsafe以外の部分はRustが安全性を保証するため全てunsafeなC言語とは異なる
188デフォルトの名無しさん
2026/07/31(金) 07:26:56.55ID:etbjQl0z unsafeを勝手に使う低レベルコーダーがチームに混ざるのが危険なんだよ。
Rustは「メモリ安全」を強制する安全装置が強みなんだから、勝手に安全装置を外せなくするのをデフォルトにしておくべきだった。
Rustは「メモリ安全」を強制する安全装置が強みなんだから、勝手に安全装置を外せなくするのをデフォルトにしておくべきだった。
189デフォルトの名無しさん
2026/07/31(金) 07:39:24.96ID:yVUD5l6E 借用チェッカーがチェックしてるから、コードレビューしなくていい派か?
190デフォルトの名無しさん
2026/07/31(金) 07:42:08.81ID:V2ieplYj チームでやるならオプション指定を共有すればいいだけの話なんだからデフォルトなんかどうでもいいよ。
チームで共有すべき設定にまで逆らうようなやつなら何がデフォルトでもどうせ逆らう。
チームで共有すべき設定にまで逆らうようなやつなら何がデフォルトでもどうせ逆らう。
191デフォルトの名無しさん
2026/07/31(金) 09:53:24.95ID:wqQCY6Gr 実際そういう悪意あるチームメンバーは、unsafe使う云々の前に
社内の共有ファイルを嫌がらせで全消ししたり
機密情報を当然のようにSNSに上げることを警戒したほうがいい
社内の共有ファイルを嫌がらせで全消ししたり
機密情報を当然のようにSNSに上げることを警戒したほうがいい
192デフォルトの名無しさん
2026/08/01(土) 02:35:10.96ID:fT3Cj9Cj193sage
2026/08/01(土) 16:04:11.74ID:PB7GV9WZ ###エコシステム全体の傾向
統計的な調査や研究では、パッケージやコードの規模が拡大するにつれて、コード量全体に対する unsafe の割合(コードレベルの密度)は、適切な抽象化とレビュー文化の定着によって減少傾向にあることが示されています。
「アプリケーション開発者が unsafe を書く機会」はエコシステムの成熟とともに減っており、unsafe が使われる場所は、OSカーネル、ドライバ、高パフォーマンスなライブラリの内部といったごく一部の低レイヤー層へ厳しく局所化されていくのが、現在のRustコミュニティの目指す方向性です。
Ralf Jung: What's the deal with unsafe Rust?
この動画では、Rustにおけるunsafeの役割や、安全性とパフォーマンスのトレードオフについて、言語開発メンバーの視点から詳しく解説されています。
統計的な調査や研究では、パッケージやコードの規模が拡大するにつれて、コード量全体に対する unsafe の割合(コードレベルの密度)は、適切な抽象化とレビュー文化の定着によって減少傾向にあることが示されています。
「アプリケーション開発者が unsafe を書く機会」はエコシステムの成熟とともに減っており、unsafe が使われる場所は、OSカーネル、ドライバ、高パフォーマンスなライブラリの内部といったごく一部の低レイヤー層へ厳しく局所化されていくのが、現在のRustコミュニティの目指す方向性です。
Ralf Jung: What's the deal with unsafe Rust?
この動画では、Rustにおけるunsafeの役割や、安全性とパフォーマンスのトレードオフについて、言語開発メンバーの視点から詳しく解説されています。
194デフォルトの名無しさん
2026/08/01(土) 16:17:31.19ID:vJOVChNV 事前合意なくunsafe使うやつがいたら要注意人物ブラックリスト入り
それくらいの位置付け
それくらいの位置付け
195デフォルトの名無しさん
2026/08/01(土) 16:41:57.93ID:2O5pYxb7 それで依存クレートのunsafeをどうチェックするのかな?
196デフォルトの名無しさん
2026/08/01(土) 16:42:07.71ID:MmpF7FLG そいつの存在がunsafeだからな
そいつを使うって事はその使用者が安全を保証する必要があるって訳だ
そいつを使うって事はその使用者が安全を保証する必要があるって訳だ
197sage
2026/08/01(土) 16:43:53.52ID:/pjjqS4i You are fired !!
198デフォルトの名無しさん
2026/08/01(土) 17:55:27.17ID:nNljHXrJ そりゃunsafeが不要な場所で使うのは控えめに言って無能でバカで保守性という概念がなくて後先を考えてないからだからね
ただ、unsafeが不要というのとは違うし、言語仕様に組み込まない方がいいなんて論には賛同できない
ただ、unsafeが不要というのとは違うし、言語仕様に組み込まない方がいいなんて論には賛同できない
199デフォルトの名無しさん
2026/08/01(土) 18:26:53.97ID:7ZNYSHR3 AGENTS.mdにunsafe使うなと書けばいいだけでしょ
洗濯板の議論
洗濯板の議論
200デフォルトの名無しさん
2026/08/01(土) 19:51:53.86ID:L3jyeof2 unsafeはunsafeを使わなければ実現できないことに使うもんなので
そんなもんをAIの指示に書くなら、最初からunsafeなんてものがないPythonとかのスクリプトで開発したほうが早い
そんなもんをAIの指示に書くなら、最初からunsafeなんてものがないPythonとかのスクリプトで開発したほうが早い
201デフォルトの名無しさん
2026/08/01(土) 20:22:26.71ID:VIp/fPOo AIにunsafeを使うなって指示を出すだけ!
202デフォルトの名無しさん
2026/08/01(土) 21:46:57.12ID:rl6L8uaI そもそもAIがunsafe使うことほとんどないでしょ
まあwindowsクレート使う時くらいじゃない?
まあwindowsクレート使う時くらいじゃない?
203デフォルトの名無しさん
2026/08/01(土) 22:08:07.39ID:RE9jJDcx >>200
AIの時代になったから遅くてメモリを喰うPythonを使う必要がなくなった
AIの時代になったから遅くてメモリを喰うPythonを使う必要がなくなった
204デフォルトの名無しさん
2026/08/01(土) 22:50:40.49ID:QYWG56kn >>202
Rustエアプなんでしょ
Rustエアプなんでしょ
205デフォルトの名無しさん
2026/08/01(土) 23:03:29.82ID:vGSbA6tZ206デフォルトの名無しさん
2026/08/02(日) 00:01:54.86ID:R2gSvOp3 >>205
ClaudeでBunをRustで書き換えた時にunsafeだらけだったこと知らないの???
ClaudeでBunをRustで書き換えた時にunsafeだらけだったこと知らないの???
207デフォルトの名無しさん
2026/08/02(日) 00:15:17.53ID:dFIAtd69 zigからのマイグレーションでunsafeだらけになるのは当然では・・・?
208sage
2026/08/02(日) 01:40:11.73ID:q9sLy/Ny おっしゃる通りです。「Zigで書かれていたコードをそのままRustに機械的に(あるいはAIを活用して一気に)移植した」という経緯を考えれば、unsafeだらけになるのは**完全に想定内(当然)**のことと言えます。
BunのRust移行プロジェクトにおけるunsafeを巡る実態や背景には、以下のような理由があります。
### 1. 機械的な移植(Transpile的アプローチ)の限界
Bunの初期のRust移行では、アーキテクチャやロジックを一からイディオムに沿ったRustとして書き直したのではなく、既存の膨大なZigコードの構造(ステートマシンのような生ポインターの取り回しや、親を指すバックポインターなど)をそのままRustの構文に置き換える形が取られました。
ZigにはRustのような借用チェッカーやライフタイムの概念がないため、それをRustでそのまま再現しようとすれば、*mut や unsafe に頼らざるを得なくなります。
### 2. unsafe の内訳(多くは「構造上の名残」)
その後の公式のコードベース監査(Audit)でも明かされている通り、数万件に及ぶ unsafe の多くは以下のような理由によるものです。
* **Zig時代の名残(移行コストの都合):** ボローチェッカーを回避するための生ポインターや手動参照カウントの維持(全体の約3割)。
* **FFI境界:** JavaScriptCore(JSC)やC/C++ライブラリ(uWebSocketsやBoringSSLなど)を呼び出すためのコード(Cの関数呼び出しはRustでは定義上すべて unsafe)。
* **GC(ガベージコレクション)との相互作用:** JSのオブジェクトグラフやGC管理下のメモリと、Rustの所有権モデルが直接噛み合わない部分。
### 3. 「まず動かして、後から安全にする」という戦略
開発チームも、最初からすべてが美しい「Safe Rust」になるとはハナから考えていませんでした。
まずは既存の広大なテストスイート(99.8%以上)をパスさせ、挙動の同等性を担保することを最優先し、その上で「段階的に unsafe を剥がしてイディオムに寄せていく」という現実的なロードマップが採られています。
したがって、「Rustに書き換えたからといって、いきなり安全で美しいコードになるわけがない」というのはその通りで、あの膨大な unsafe は**「手動管理のシステム言語からRustへ一気にコードを流し込んだ歴史的経緯の現れ」**と言えます。
BunのRust移行プロジェクトにおけるunsafeを巡る実態や背景には、以下のような理由があります。
### 1. 機械的な移植(Transpile的アプローチ)の限界
Bunの初期のRust移行では、アーキテクチャやロジックを一からイディオムに沿ったRustとして書き直したのではなく、既存の膨大なZigコードの構造(ステートマシンのような生ポインターの取り回しや、親を指すバックポインターなど)をそのままRustの構文に置き換える形が取られました。
ZigにはRustのような借用チェッカーやライフタイムの概念がないため、それをRustでそのまま再現しようとすれば、*mut や unsafe に頼らざるを得なくなります。
### 2. unsafe の内訳(多くは「構造上の名残」)
その後の公式のコードベース監査(Audit)でも明かされている通り、数万件に及ぶ unsafe の多くは以下のような理由によるものです。
* **Zig時代の名残(移行コストの都合):** ボローチェッカーを回避するための生ポインターや手動参照カウントの維持(全体の約3割)。
* **FFI境界:** JavaScriptCore(JSC)やC/C++ライブラリ(uWebSocketsやBoringSSLなど)を呼び出すためのコード(Cの関数呼び出しはRustでは定義上すべて unsafe)。
* **GC(ガベージコレクション)との相互作用:** JSのオブジェクトグラフやGC管理下のメモリと、Rustの所有権モデルが直接噛み合わない部分。
### 3. 「まず動かして、後から安全にする」という戦略
開発チームも、最初からすべてが美しい「Safe Rust」になるとはハナから考えていませんでした。
まずは既存の広大なテストスイート(99.8%以上)をパスさせ、挙動の同等性を担保することを最優先し、その上で「段階的に unsafe を剥がしてイディオムに寄せていく」という現実的なロードマップが採られています。
したがって、「Rustに書き換えたからといって、いきなり安全で美しいコードになるわけがない」というのはその通りで、あの膨大な unsafe は**「手動管理のシステム言語からRustへ一気にコードを流し込んだ歴史的経緯の現れ」**と言えます。
209デフォルトの名無しさん
2026/08/02(日) 01:42:05.76ID:QbPn9kX+ pythonでbunを作れというのか
210デフォルトの名無しさん
2026/08/02(日) 02:37:22.80ID:068UlyP3 >>206
あまりにもアホ発言すぎる
そもそもBunは1から書かれたのではなく、Zigで書かれた実装と全く同じように動くように書かれた
つまり、Rustの所有権システムや借用規則に全く適合しない設計であり、ここからRustの規則に適合させる気がないのであれば、書き換え自体が失敗だったと断定していい非常に問題のある状態にある
あまりにもアホ発言すぎる
そもそもBunは1から書かれたのではなく、Zigで書かれた実装と全く同じように動くように書かれた
つまり、Rustの所有権システムや借用規則に全く適合しない設計であり、ここからRustの規則に適合させる気がないのであれば、書き換え自体が失敗だったと断定していい非常に問題のある状態にある
211sage
2026/08/02(日) 02:53:54.78ID:ORK9nT19 Python vs unsafe
212デフォルトの名無しさん
2026/08/02(日) 03:12:20.65ID:wd/chQhv zig 版の bun は細かに手作業でメモリの確保・解放していてその品質も疑問視されるような状況だった。
元より自動的なメモリ管理など考えない設計であったし、そこからなるべく一対一で書き替えるように指示を出してる。
問題があっても元の通りにメモリ管理管理をしろという指示だ。
まずは元の挙動を変えないことを優先して、これからまともな構造にしていくと説明している。
それがうまくいくかどうかは話が別として、 bun の書き替えで unsafe が大量にあるのは最初から意図してそう指示しているからだ。
元より自動的なメモリ管理など考えない設計であったし、そこからなるべく一対一で書き替えるように指示を出してる。
問題があっても元の通りにメモリ管理管理をしろという指示だ。
まずは元の挙動を変えないことを優先して、これからまともな構造にしていくと説明している。
それがうまくいくかどうかは話が別として、 bun の書き替えで unsafe が大量にあるのは最初から意図してそう指示しているからだ。
213デフォルトの名無しさん
2026/08/02(日) 09:23:43.26ID:5/VdcE/2 >>206
claude.mdでunsafe使うなとか、必ず終了時にテストしろとかルール追記し続けることでリファクタ、リプレースと問題はほぼ起きないけどな
すり抜けが多々あるからルールとテスト方法、メンテナンスが一番重要になってる
claude.mdでunsafe使うなとか、必ず終了時にテストしろとかルール追記し続けることでリファクタ、リプレースと問題はほぼ起きないけどな
すり抜けが多々あるからルールとテスト方法、メンテナンスが一番重要になってる
214デフォルトの名無しさん
2026/08/02(日) 11:43:48.20ID:4BNecSlb >>206
AIにunsafeを使うなって指示を出すだけ!
AIにunsafeを使うなって指示を出すだけ!
215デフォルトの名無しさん
2026/08/02(日) 11:50:49.71ID:97HliKhP 他の言語でAIに安全にしろ!と指示しても穴が空くけど
RustでAIにunsafe使うな!と指示出せばunsafe使ってない検証も含めて100%確実にできるからな
AI向けにベストな言語だ
RustでAIにunsafe使うな!と指示出せばunsafe使ってない検証も含めて100%確実にできるからな
AI向けにベストな言語だ
216sage
2026/08/02(日) 11:52:03.14ID:q9sLy/Ny unsafeありで作らせてから
全部safeにしろって感じにできるかな?
全部safeにしろって感じにできるかな?
217デフォルトの名無しさん
2026/08/02(日) 12:07:24.69ID:optD1/g+218sage
2026/08/02(日) 12:35:12.86ID:sluQltRJ ## 結論:意味はあるか?
**「大いに意味はあるが、適用する場面を選ぶべき手法」**と言えます。
* **向いているケース**:
複雑なロジックや、既存のガードレールに阻まれてAIが「できません」と逃げてしまう高度なタスク。
* **向いていないケース**:
最初から標準的なベストプラクティス(OWASP Top 10の対策など)に則ったコードを書かせるだけの通常の開発タスク(この場合は最初からセキュアなプロンプトを書いた方が早い)。
実務で活用する場合は、人間がしっかりと「Safeに成型し直す工程(コードレビューや静的解析ツールの導入)」をコントロールできることが大前提となります。
**「大いに意味はあるが、適用する場面を選ぶべき手法」**と言えます。
* **向いているケース**:
複雑なロジックや、既存のガードレールに阻まれてAIが「できません」と逃げてしまう高度なタスク。
* **向いていないケース**:
最初から標準的なベストプラクティス(OWASP Top 10の対策など)に則ったコードを書かせるだけの通常の開発タスク(この場合は最初からセキュアなプロンプトを書いた方が早い)。
実務で活用する場合は、人間がしっかりと「Safeに成型し直す工程(コードレビューや静的解析ツールの導入)」をコントロールできることが大前提となります。
219デフォルトの名無しさん
2026/08/02(日) 12:43:50.00ID:wd/chQhv >>216
動く状態 (少なくともコンパイル可能な状態) を維持しながら発展させる開発体制の方法論は AI 以前から一応はある。
機能不足でもバグだらけでも動く状態なら問題の発見はしやすいという考え方だ。
でもそれは問題が潜んでいることが静的にはわからないのを早めに炙り出すための方法論であって、静的にわかるならそんなことをしなくて良い。
Rust の unsafe を初手で使ってから取り除くのは明らかに馬鹿馬鹿しい。
いったん unsafe にしてしまうと影響範囲が広大なので広大な範囲の検証をしながら unsafe を取り除くという大きな手間がかかる。
最初から安全なコードを積み重ねるほうがよほど楽。
動く状態 (少なくともコンパイル可能な状態) を維持しながら発展させる開発体制の方法論は AI 以前から一応はある。
機能不足でもバグだらけでも動く状態なら問題の発見はしやすいという考え方だ。
でもそれは問題が潜んでいることが静的にはわからないのを早めに炙り出すための方法論であって、静的にわかるならそんなことをしなくて良い。
Rust の unsafe を初手で使ってから取り除くのは明らかに馬鹿馬鹿しい。
いったん unsafe にしてしまうと影響範囲が広大なので広大な範囲の検証をしながら unsafe を取り除くという大きな手間がかかる。
最初から安全なコードを積み重ねるほうがよほど楽。
220デフォルトの名無しさん
2026/08/02(日) 14:14:29.22ID:5/VdcE/2 >>219
影響範囲は大きいしトークンコスパ悪いってだけだからやりたいようにやって失敗して次に活かしたらいい
新人がバイブコーディングに慣れるとブラックボックス化で悲惨だけど現場でちゃんと10年やってきてるなら切り分けした後サンドボックス内でAIに丸投げして進めりゃ楽
安全なコード積み重ねた方がクオリティは良いけど重要なのは利益だしもう最近は諦めた
影響範囲は大きいしトークンコスパ悪いってだけだからやりたいようにやって失敗して次に活かしたらいい
新人がバイブコーディングに慣れるとブラックボックス化で悲惨だけど現場でちゃんと10年やってきてるなら切り分けした後サンドボックス内でAIに丸投げして進めりゃ楽
安全なコード積み重ねた方がクオリティは良いけど重要なのは利益だしもう最近は諦めた
221デフォルトの名無しさん
2026/08/02(日) 19:24:16.78ID:PUzeb9Or unsafe全部消してもRefCellの競合参照で落ちまくりそう
AI信者は「RefCellも使うな」とかやるんだろうか
AI信者は「RefCellも使うな」とかやるんだろうか
222sage
2026/08/02(日) 19:31:40.15ID:MYfw9/zD RefCell地獄からAIを使って抜け出すための要点:
* **1. 構造の視覚化を頼む**
* 「どこで循環参照や二重借用が起きているか、所有権の関係を図式化して」と指示し、複雑化した依存関係を客観的に把握する。
* **2. 安全な設計への書き換えを丸投げする**
* 「RefCell を取り除き、通常の借用規則に則ったクリーンな設計に直して」や、状態を一箇所にまとめる構造(Redux風など)へのリファクタリングを依頼する。
* **3. パニックのログを壁打ちする**
* 発生した BorrowMutError のエラー文とコードをそのまま貼り、「どの行とどの行が衝突しているか特定し、最小限の修正案を出して」と指示して即席のパッチを作ってもらう。
* **1. 構造の視覚化を頼む**
* 「どこで循環参照や二重借用が起きているか、所有権の関係を図式化して」と指示し、複雑化した依存関係を客観的に把握する。
* **2. 安全な設計への書き換えを丸投げする**
* 「RefCell を取り除き、通常の借用規則に則ったクリーンな設計に直して」や、状態を一箇所にまとめる構造(Redux風など)へのリファクタリングを依頼する。
* **3. パニックのログを壁打ちする**
* 発生した BorrowMutError のエラー文とコードをそのまま貼り、「どの行とどの行が衝突しているか特定し、最小限の修正案を出して」と指示して即席のパッチを作ってもらう。
223デフォルトの名無しさん
2026/08/02(日) 19:34:32.35ID:lCWmWjkB224デフォルトの名無しさん
2026/08/02(日) 19:39:45.96ID:O2kPtgBP スコープ抜けたら自動返却だから
スコープ内で呼び出す子孫関数で衝突する借り方しない限り起きようがない
スコープ内で呼び出す子孫関数で衝突する借り方しない限り起きようがない
225デフォルトの名無しさん
2026/08/02(日) 20:19:50.03ID:U3vBTMdB 従来の言語だと参照したままいつの間にか値が書き換わっているスパゲッティコードになり得た
Rustの参照はsingle writer XOR multiple readersだからそのようにならないよう自然にコードが良くなる
その習慣があるためRefCell使用時でも参照違反を自然に回避しやすい
Rustの参照はsingle writer XOR multiple readersだからそのようにならないよう自然にコードが良くなる
その習慣があるためRefCell使用時でも参照違反を自然に回避しやすい
226デフォルトの名無しさん
2026/08/02(日) 23:15:45.17ID:zK/YQsJ7 従来の言語はGC使ってるから最初から安全
memory unsafeでexception unsafeでAIとの相性最悪なRustを使う必要が全くない
memory unsafeでexception unsafeでAIとの相性最悪なRustを使う必要が全くない
227デフォルトの名無しさん
2026/08/02(日) 23:59:46.70ID:Wz/LOewr228デフォルトの名無しさん
2026/08/03(月) 07:03:07.06ID:9za752oq >>227
ミューテックス使えば競合安全は確保できるよ。調べてみて
ミューテックス使えば競合安全は確保できるよ。調べてみて
229デフォルトの名無しさん
2026/08/03(月) 07:20:01.82ID:KQ31SO11230デフォルトの名無しさん
2026/08/03(月) 09:10:21.46ID:jWY58zCk >>226
CやC++にメモリ安全性を付けたのがRustだよ?
そのために一度に1つのエンティティしかメモリにアクセスできないという所有権などの原則があるわけで、効率を考えてとAIで書いてコンパイラでチェックする
問題はコンパイラがCやC++よりかなり重いこと
CやC++にメモリ安全性を付けたのがRustだよ?
そのために一度に1つのエンティティしかメモリにアクセスできないという所有権などの原則があるわけで、効率を考えてとAIで書いてコンパイラでチェックする
問題はコンパイラがCやC++よりかなり重いこと
231sage
2026/08/03(月) 11:38:35.14ID:JuEbJwZe >>229
お前頭悪そう
お前頭悪そう
232デフォルトの名無しさん
2026/08/03(月) 14:07:29.04ID:Cx8ljdi5 >>228
「気をつけてメモリを解放すれば安全だよ」
「忘れずにミューテックスを使えば競合安全だよ」
それが従来の言語
そうではなくRustは言語仕様でそれらの安全性を保証した
データ競合が起き得る状況でMutexを使い忘れるとRustはコンパイルエラーになる
これがデータ競合安全性
「気をつけてメモリを解放すれば安全だよ」
「忘れずにミューテックスを使えば競合安全だよ」
それが従来の言語
そうではなくRustは言語仕様でそれらの安全性を保証した
データ競合が起き得る状況でMutexを使い忘れるとRustはコンパイルエラーになる
これがデータ競合安全性
233デフォルトの名無しさん
2026/08/03(月) 18:02:53.45ID:wChK4O+j 1. 数は多いけど最新の機材なら機械的に除去できる地雷が埋まってるのがC/C++
2. 数は少ないけど発見も除去も難しいunsafe地雷が埋まってるのがRust
3. 地雷はすべて除去済みなのがモダンなGC言語
1と2は3に比べると少し性能が良い
さてAI時代にあなたはどれを選びますか?
2. 数は少ないけど発見も除去も難しいunsafe地雷が埋まってるのがRust
3. 地雷はすべて除去済みなのがモダンなGC言語
1と2は3に比べると少し性能が良い
さてAI時代にあなたはどれを選びますか?
234デフォルトの名無しさん
2026/08/03(月) 18:08:58.01ID:v2R9RnVm235デフォルトの名無しさん
2026/08/03(月) 18:33:02.15ID:ZNa11oy4 Rustが好きな人や組織はRustを選ぶ、モダンGC言語が好きな人や組織はモダンGC言語を選ぶ
ただそれだけのこと
ただそれだけのこと
236デフォルトの名無しさん
2026/08/03(月) 18:37:24.39ID:wChK4O+j >>234
自分がunsafeを直接書かなくても地雷は埋まってるんだよ
推移的依存も含めるとRustは数百以上のライブラリに依存するプロジェクトが大半
自分の埋めた地雷じゃないから余計に見つけにくいし除去しにくい
自分がunsafeを直接書かなくても地雷は埋まってるんだよ
推移的依存も含めるとRustは数百以上のライブラリに依存するプロジェクトが大半
自分の埋めた地雷じゃないから余計に見つけにくいし除去しにくい
237デフォルトの名無しさん
2026/08/03(月) 18:42:40.52ID:atMcYPcn >>230
テンプレートや静的ダックタイピングの無い言語をc++とは認めん。
テンプレートや静的ダックタイピングの無い言語をc++とは認めん。
238デフォルトの名無しさん
2026/08/03(月) 18:47:20.38ID:0qIpliT0 >>236
AIに推移的依存も含めunsafe使うなと指示するだけだろ
AIに推移的依存も含めunsafe使うなと指示するだけだろ
239デフォルトの名無しさん
2026/08/03(月) 19:18:52.57ID:vtrmSrlR Cで機械的に除去できるならRustでもできるよ
240デフォルトの名無しさん
2026/08/03(月) 19:47:44.95ID:6g3zjBSJ kani や miri といったツールは unsafe も含めてかなり細かい検証が可能。
std や主要な (実質的に標準のような立場にある) ライブラリは検証されているし、不安なら自分でチェックすることも出来る。
かなり時間がかかるんでコンパイラに組み込むというほどにはこれからもならないだろうけど開発工程の適当なタイミングで使うくらいはしたら良いと思う。
std や主要な (実質的に標準のような立場にある) ライブラリは検証されているし、不安なら自分でチェックすることも出来る。
かなり時間がかかるんでコンパイラに組み込むというほどにはこれからもならないだろうけど開発工程の適当なタイミングで使うくらいはしたら良いと思う。
241デフォルトの名無しさん
2026/08/03(月) 20:49:44.68ID:4yzEb04R というかなんでunsafeが人のライブラリだろうがなんだろうが「常に」悪みたいになってんだろうな
これが複おじの自演か?
これが複おじの自演か?
242デフォルトの名無しさん
2026/08/03(月) 22:50:21.29ID:XO6tEDWk actix-webのunsafe警察事件とかあったな
Rust最大の失敗はunsafeというネーミングだと思います
Rust最大の失敗はunsafeというネーミングだと思います
243デフォルトの名無しさん
2026/08/03(月) 23:28:22.15ID:2ag3Q8cA244sage
2026/08/03(月) 23:31:57.05ID:+0KqvU1m そんなんで引っかかる奴は低レベルだからド素人避けになって都合がよい
245デフォルトの名無しさん
2026/08/04(火) 08:45:12.76ID:quGSfgnB >>243
riskyならいいけどwarningは俺がコンパイル時警告と使い分けられないから勘弁
riskyならいいけどwarningは俺がコンパイル時警告と使い分けられないから勘弁
246デフォルトの名無しさん
2026/08/04(火) 09:01:43.29ID:pDYmiXMF247デフォルトの名無しさん
2026/08/04(火) 09:33:21.52ID:k5YwEzSL C/C++との対比なら実行バイナリのサイズで攻めたほうがいい
rustプロジェクトのビルド中は数十GB食って
できたバイナリも数十MBってなんなん
rustプロジェクトのビルド中は数十GB食って
できたバイナリも数十MBってなんなん
248デフォルトの名無しさん
2026/08/04(火) 09:51:15.80ID:RaW/eAPK249デフォルトの名無しさん
2026/08/04(火) 09:53:22.53ID:RaW/eAPK >>246
自分の流儀にそぐわないものを一律にunsafeと呼ぶのはHaskellで見た
自分の流儀にそぐわないものを一律にunsafeと呼ぶのはHaskellで見た
250デフォルトの名無しさん
2026/08/04(火) 10:06:18.82ID:WYVWuhPJ251デフォルトの名無しさん
2026/08/04(火) 12:01:16.77ID:jnrkYSKh >>248
C++は必要知識が富豪的?
C++は必要知識が富豪的?
252デフォルトの名無しさん
2026/08/04(火) 12:54:11.34ID:lj01fys2 ×Haskellのメモリ使用量は富豪的
○数学的に綺麗なアルゴリズムをそのまま書きやすく、結果的にメモリ使用量(GC)が富豪的になりがち
Haskellの書き味でGC無しだったら覇権だった
○数学的に綺麗なアルゴリズムをそのまま書きやすく、結果的にメモリ使用量(GC)が富豪的になりがち
Haskellの書き味でGC無しだったら覇権だった
253デフォルトの名無しさん
2026/08/04(火) 13:03:01.62ID:3BJvEEEV ハスケーはgcある時点で船降りろって感じ
254デフォルトの名無しさん
2026/08/04(火) 14:40:53.75ID:oq32c/dJ Haskellの良さも一部取り入れつつC並みに速くて省メモリなRust
255デフォルトの名無しさん
2026/08/04(火) 15:37:17.81ID:ctVolxFN Rust の型システムはだいぶん Haskell の影響を受けているというかそのままだな。
個別に見ればだいたいどれも元ネタがある。
Rust に固有な言語機能はライフタイム注釈くらいだと思う。
(それも全く新しく生まれたわけではなく数十年前の研究から発展させたものだ。)
個別に見ればだいたいどれも元ネタがある。
Rust に固有な言語機能はライフタイム注釈くらいだと思う。
(それも全く新しく生まれたわけではなく数十年前の研究から発展させたものだ。)
256デフォルトの名無しさん
2026/08/04(火) 15:56:09.63ID:oq32c/dJ Rust
・各言語の良いと言われている仕様を寄せ集めている
・それにも関わらず重複や矛盾がなくコンパクトな言語仕様に上手くまとまっている
・そのうえでC言語並みの速さと省メモリを実現している
・各言語の良いと言われている仕様を寄せ集めている
・それにも関わらず重複や矛盾がなくコンパクトな言語仕様に上手くまとまっている
・そのうえでC言語並みの速さと省メモリを実現している
257デフォルトの名無しさん
2026/08/05(水) 09:09:18.13ID:NYuFYqVO258デフォルトの名無しさん
2026/08/05(水) 09:13:29.52ID:M5hHFLD4 だいたいC/C++の方がunsafe Rustより安全とかいう妄想をしてる時点で、Rust知識ゼロで理解出来ないからアンチしてるだけのバカなんだよなw
259デフォルトの名無しさん
2026/08/05(水) 09:21:42.38ID:Xxs0982b >>257
基本的にunsafeは使ってはいけない
Rustだけで完結する通常のプログラムはunsafeを使わずとも書けるように整備されている
Rust以外との境界や低レイヤーを書く人がunsafeを使う
基本的にunsafeは使ってはいけない
Rustだけで完結する通常のプログラムはunsafeを使わずとも書けるように整備されている
Rust以外との境界や低レイヤーを書く人がunsafeを使う
260デフォルトの名無しさん
2026/08/05(水) 10:02:47.36ID:ZDPYV7AW261デフォルトの名無しさん
2026/08/05(水) 10:47:53.40ID:MBjxEvoF262デフォルトの名無しさん
2026/08/05(水) 10:51:48.31ID:e0HMY2vN とはいえ、js代わりにWebフロントエンドで使うのは今だけの流行り病な気がする
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 副首都構想 広島は人口要件満たさず 横田知事が国に意見表明へ [首都圏の虎★]
- なぜコンビニは「外国人店員」だらけになったのか? 大手3社で8万人超…元セブン社員が明かす「日本人が集まらなくなった」現場の実情★4 [♪♪♪★]
- 【競馬】凱旋門賞 ダリズが連覇! 武豊が騎乗した日本馬・メイショウタバルは14着 アドマイヤテラは11着 [冬月記者★]
- ヒコロヒー 新幹線でカレーや肉まん等ニオイの強いもの食べる問題に「食べていいというルールになっている以上、ある程度仕方ないよね」 [muffin★]
- 大谷翔平が吐露…「自分のなかでもあまりよくない年の一つ」「WBCがあるとすごく長く感じる」★2 [王子★]
- 【平均給与】男性は400万円台、女性は200万円台が最多。平均487万円より下に人が集まり、年収500万円以下が約6割 [首都圏の虎★]
- 子どもの頃の話。
- 【悲報】おじさん、ビール売り子から買ったビールをそのまま捨てまくるwwwwwwwwwwwwwwwwwww [398059782]
- 【悲報】新沖縄県知事の古謝玄太さん、米兵による県民殺害事件を受けて大いに笑いながら遺憾の意を示す [904151406]
- 【動画】宮大工の朝礼、限界突破💥🔨 [632966346]
- 明日の無職を頑張る人たちのお🏡
- ネトウヨが米兵の強姦殺人にダンマリな理由、何?