探検


Rust part34

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2025/11/27(木) 12:25:23.76ID:4JaxkBD4
公式
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 part33
https://mevius.5ch.net/test/read.cgi/tech/1755247770/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2025/11/27(木) 12:31:32.50ID:2EmBR7sq
>>1
O2
2025/11/28(金) 19:07:57.45ID:8IKERdAK
go
2025/11/28(金) 20:37:38.66ID:iU7IRGDo
Rustスレって急に書き込みが増えて急に書き込みがパタっとなくなるよね
不思議
2025/11/28(金) 21:46:28.15ID:RsuyY5k/
話題がない状態がデフォルト。
誰かが話題を提供したときにそれに乗っかって投稿し始めるからバースト的に書き込みが増えるという普通の話なので Rust スレに限らずだいたい掲示板というのはそういうもの。
2025/11/28(金) 22:38:13.42ID:lHHHw6+p
Cloudflareの大規模障害は言語としてのアイデンティティに関わるせいか、にわかに勢いづいてたんでは
7デフォルトの名無しさん
垢版 |
2025/11/28(金) 22:55:51.07ID:UW3PgF6D
安全性に関しては、結局前スレ888の
Rustが保証するのはメモリ安全であって、それ以上の機能を言語自体に期待してはいけないね

という話なんだろうね。
リーナスの「ランタイムエラーでパニックを発生させるのは根本的に問題があると思っている」というのはカーネルだけの話じゃなくてもっと根深い話なんだろうね。
2025/11/28(金) 23:03:34.36ID:5iCuzt+H
>>6
Rustが望ましいという結論が出たことが大きいね
必ずResultまたはOptionが返り値となるため適切な対応がとれる
一方で得られた教訓として異常時にpanicで終了させるべき通常のプログラムと異常時でも動作を続けるべきプログラムの2種類のどちらであるかを正しく認識して設計と実装をすべきと再認識させられた
2025/11/28(金) 23:21:49.55ID:zTtFbltF
>>7
Cloudflareの件で論点となったRustの安全性というのはメモリ安全のことではなくて、「未定義動作をしない」という、もう一段広い意味での安全性だよ
panicでシステムが停止したことによって死人が出たとしても、panic自体は定義された動作だからRustの定義上は「安全」なの
2025/11/28(金) 23:32:25.81ID:oAHABZMO
Linux対応でRustはpanicさせないAPIが整備されたから今後は明るい展望に変わった
2025/11/28(金) 23:36:59.19ID:LIzNpAhu
そういや、リーナスに言われて追加した、いろんなとこにメモリアロケータを引数で指定できる仕様はもう安定化したの?
2025/11/28(金) 23:58:42.55ID:Gsu5/GcB
入院はもう少しかかる
2025/11/29(土) 05:51:25.68ID:SOcARO8b
入院ってなんだ?
2025/11/29(土) 06:26:16.92ID:FJ34gj6n
心の病だろ
2025/11/29(土) 10:19:09.75ID:1AGRfuCc
本当に「もう少し」かあ?
2025/11/29(土) 11:14:14.65ID:cYk3tSL4
正規表現が標準ライブラリに入らないのはどういう理由なん?
Rust開発チームが管理しているものだし、公式に近いものに思えるけど
LazyCell とかは標準入りしたし、これも標準に入れて欲しい感じがある
17デフォルトの名無しさん
垢版 |
2025/11/29(土) 11:17:50.21ID:m7OsZTNV
1ヶ月ほど前にRust入れたときにVS2022が一緒にインストールされたんだが
VSだけ2026にしたらRustは影響受ける?
むしろRustでもVS2026使った方が良い?
VS2022消してからVS2026入れた方が良い?
2025/11/29(土) 11:32:23.68ID:Pddo/nnB
>Rustが望ましいという結論が出たことが大きいね
Rustのスキルは低いままなのに詐欺師のスキルには磨きがかかってるな
2025/11/29(土) 11:54:47.58ID:yWF17bd5
>>17
消してVSCode入れるといいよ
2025/11/29(土) 12:14:00.02ID:a750ewmK
>>19
いきなり正解、しかもこの質問色んなスレに一週間前から貼られてる謎の質問
2025/11/29(土) 12:23:47.25ID:T0m5YnVK
何の役にも立たないクソレスとそれを無意味に持ち上げるドクソレスw
2025/11/29(土) 12:41:28.20ID:cYk3tSL4
Windows環境だとMSVC使うのが基本だし、Visual Studio 入れるのが真っ当じゃないの?
エディタは VS Code でいいけど、Rustが依存するツールとして Visual Studio のコンパイラやリンカは要る

VS 2026 にしても問題ないけど、Rustから C/C++のコードを呼ぶ可能性があるなら VS 2022 は残した方が良い
(cmakeクレートがまだVS2022までしか対応してないので)
2025/11/29(土) 12:50:13.56ID:bZRv4lrN
>>17
インストール云々は>>22の書いてる通り

Rustの開発でVSを使うかどうかはどの程度のIDE支援を期待しているか次第
VSはVS CodeほどRust関連のextensionが充実してないので
2025/11/29(土) 12:51:50.05ID:bZRv4lrN
>>22
MSVCターゲット向けに必須なのはリンカとWindows SDKの一部だけでコンパイラは必須じゃなくない?
2025/11/29(土) 13:11:10.98ID:yr60lsGC
WindowsでもMSVCツールチェインより、イメージ的には鈍重そうなMinGWのほうが
実は作られるバイナリの動作速度早いんだっけ?
26デフォルトの名無しさん
垢版 |
2025/11/29(土) 13:35:43.84ID:xVYnmHWx
visual studioてまだ使ってる人おるんかな
c++てmsべったりなのがやっぱキモい
2025/11/29(土) 13:45:33.72ID:3id1C+OK
Rustも似たようなもんだろ
今やMSが一番Rustに金突っ込んでるんじゃないか?
2025/11/29(土) 14:01:56.76ID:S0nqOoRi
C++大好きなビッグテックといえばちょっと前まではMSだったけど、
今ではMSがRustに浮気してGoogleが筆頭になっちゃったね
2025/11/29(土) 14:40:05.38ID:SOcARO8b
allocator_api #32838
のissue見たら、アホみたいに長くて笑った
何をそんなにもめてるのか理解できない
30デフォルトの名無しさん
垢版 |
2025/11/29(土) 15:42:22.34ID:hbxZmChk
初心者:C/C++完全に理解した
中級者:C++チョットワカル
上級者:C++嫌い/Cの方が良い
長老:Rust嫌い
2025/11/29(土) 17:21:50.23ID:FtFLAJH1
MSがRust++を出したら本気出す
2025/11/29(土) 17:30:06.89ID:SOcARO8b
大手でRustを使い始めてないのはAppleぐらいじゃないか?
2025/11/29(土) 17:31:15.18ID:mIVdsrxN
そこはRust#だろ
2025/11/29(土) 17:52:51.69ID:aMf8U9NJ
>>32
AppleもRust使ってるよ
2025/11/29(土) 18:05:29.91ID:SOcARO8b
そこはSwiftだろ
Swiftファンに対する裏切り行為だよ
2025/11/29(土) 18:38:46.56ID:a5a+Znie
706 デフォルトの名無しさん sage 2025/11/17(月) 09:11:50.77 ID:rk5/i4ud
Rustの求人はここが毎月レポート出してるけど会社名とか見ると結構面白い
https://filtra.io/rust/jobs-report/oct-25
今月は防衛産業のAndurilが求人数トップだね

707 デフォルトの名無しさん 2025/11/17(月) 12:12:35.65 ID:AtT4RnQG
そのRust求人出してる企業一覧すごいな
知ってる企業がずらりと並んでいて感動した
Amazon
Microsoft
Cloudflare
xAI
Apple
Dropbox
Nvidia
Google
SpaceX
GitHub
Mozilla
Woven By Toyota
Discord
Disney
Fastly
Mercedes
Bloomberg
Toyota Connected
Figma
Astral
KSAT
LINE
Akamai
Meta
2025/11/29(土) 18:43:49.42ID:SOcARO8b
Adaの後継はRustでウッドボールか
2025/12/01(月) 10:32:10.44ID:g1Gr1S7x
1画面プログラムとか書いてそう
39デフォルトの名無しさん
垢版 |
2025/12/02(火) 18:29:04.48ID:cTmHVcrQ
ビルド遅いのなんとかならんのかな
差分だけでええやろって思ところを毎回フルコンパイルしてるように見えるんだけど
2025/12/02(火) 18:43:32.01ID:O0y+ZlUf
分割方法と変更箇所の関係だろうな
41デフォルトの名無しさん
垢版 |
2025/12/02(火) 19:41:15.00ID:1FGONYAG
sccache入れれば多少は
2025/12/02(火) 20:44:48.17ID:cRRKqG9w
>>41
sccache制限きつくね?
・インクリメンタルコンパイルされたクレートはキャッシュできない
・システムリンカーを呼び出すクレートはキャッシュできない
43デフォルトの名無しさん
垢版 |
2025/12/03(水) 03:34:36.66ID:oIB/w2I6
コンパイルの効率は悪いよ
2025/12/03(水) 03:35:44.18ID:oIB/w2I6
そりゃsccacheの制限じゃなくてRustの制限だからさ
2025/12/03(水) 06:04:17.00ID:WiHtSPxG
言語に関係ない性質
2025/12/03(水) 06:10:38.86ID:IXiFazox
ビルド眺めてたら、最後のリンクするところがクソ遅いな
2025/12/03(水) 11:42:16.90ID:G3Cx7y7o
Rustのcratesって
.a/.soや.lib/.dllをダウンロードする仕組みじゃなくて
毎回ソースが必要なん?
2025/12/03(水) 12:06:05.34ID:kmYeuBOH
基本的には毎回ソース
2025/12/03(水) 13:05:32.27ID:OnxLfrF+
コンパイル済みバイナリをダウンロードできるようにする提案は出ているんだけど実現するかどうかはわからんね。
2025/12/03(水) 14:51:41.63ID:9srsrlEn
公式じゃないけどバイナリダウンロードできるようにしてるところがあったような
2025/12/03(水) 14:59:03.81ID:IXiFazox
cargo-binstall の話?
2025/12/03(水) 18:13:52.75ID:3Hibg4jw
>>51
インデックス登録に申し込みが必要なやつだったからcargo-binstallではないと思うけど
今探しても見つからないからそういうバイナリプロジェクトをインストールするやつと勘違いしたのかもしれん
2025/12/03(水) 18:46:38.64ID:2MnTI9t3
build.rsで生成済みのバイナリ(.rlib)をコピーする形式ならできそうだけど一般公開向けじゃないな
2025/12/03(水) 19:04:15.83ID:8JMYDz0K
>>53
バイナリだけならunsafeでは
55デフォルトの名無しさん
垢版 |
2025/12/03(水) 20:13:27.80ID:+yx3EwOE
アーキテクチャ分バイナリ用意しないとならなくなるから
結構難しそう
2025/12/03(水) 20:22:13.29ID:q2X/X5Gp
そもそもABIがstableじゃないからコンパイラのバージョン毎に配布しないといけないのでは
2025/12/03(水) 22:32:18.40ID:Eh+HvnbR
だっさ
2025/12/03(水) 22:35:08.95ID:CgpHbwYB
いろんな環境でネイティブコンパイルする言語だし労力に見合うリターンが無いよなあ
Windowsのことだけ考えてりゃ後はどうでもいいって時代ならともかく
2025/12/06(土) 00:54:32.45ID:N0FmDDVX
Cloudflareがまたやらかしたな
Rust界の恥晒し
2025/12/06(土) 01:33:54.85ID:YZiuqUxi
【CDN】米クラウドフレアが控訴、海賊版サイトめぐり「5億円の賠償命令」判決に不服
https://asahi.5ch.net/test/read.cgi/newsplus/1764907388/
2025/12/06(土) 02:00:47.66ID:cYcM2N2O
>>59
今回の障害が起きたのはFL1(旧アーキ)のみ

>In our FL1 version of our proxy under certain circumstances, this latter change caused an error state that resulted in 500 HTTP error codes to be served from our network.
>Customers that have their web assets served by our older FL1 proxy AND had the Cloudflare Managed Ruleset deployed were impacted.

Reactのサーバーコンポーネントで見つかったRCE脆弱性対応のため、プロキシのバッファサイズを拡大したことによるバグ顕在化が原因とのこと

>As part of our ongoing work to protect customers using React against a critical vulnerability, CVE-2025-55182, we started rolling out an increase to our buffer size to 1MB, the default limit allowed by Next.js applications. We wanted to make sure as many customers as possible were protected.

>As soon as the change propagated to our network, code execution in our FL1 proxy reached a bug in our rules module which led to the following LUA exception:
>[lua] Failed to run module rulesets callback late_routing: /usr/local/nginx-fl/lua/modules/init.lua:314: attempt to index field 'execute' (a nil value)

Rustで書かれたFL2(新アーキ)で当該エラーは起こっていない

>This is a straightforward error in the code, which had existed undetected for many years. This type of code error is prevented by languages with strong type systems. In our replacement for this code in our new FL2 proxy, which is written in Rust, the error did not occur.

https://blog.cloudflare.com/5-december-2025-outage/
2025/12/06(土) 09:10:08.41ID:WJ0DA+eG
驚いた!Rustすごい!
2025/12/06(土) 12:45:36.37ID:aue+ojQ+
池沼が
2025/12/06(土) 13:07:10.85ID:DTR3/WcD
Cloudflareのコンフィグ管理周りの未熟さも気になるが
それ以上にReact Server Componentは仕組み的に危ない

アプリレイヤーでのリクエストbodyのdeserializationにバグがあると
いきなりfull RCEに直結する仕組みとか怖すぎる

もうちょっと警鐘鳴らしたほうがいいんじゃないだろうか
2025/12/06(土) 13:52:58.00ID:OrfRaHNT
問題は障害がRustに関連したものかどうかではなくて、
Rust採用を大々的にアピールした有力テックの実体がこの程度だったというのを露呈したことだろうな
Rust驚いた勢のプライドを激しく毀損している
66デフォルトの名無しさん
垢版 |
2025/12/06(土) 14:18:25.19ID:ARinuXXT
警鐘鳴らそうとして実証コード描いたらタイーホされる時代
2025/12/06(土) 16:19:08.82ID:LjhUSqqq
自作のソフトウェアのコードRustで書いてんだけどやっぱビルド周りが遅いな
cargo testも実行まで時間かかるし
もっと速くならんかな
68デフォルトの名無しさん
垢版 |
2025/12/06(土) 17:30:19.35ID:EhyTMf4b
なんでcと速度は変わらんのにビルドこんな遅いん?
69デフォルトの名無しさん
垢版 |
2025/12/06(土) 17:43:56.21ID:z6f5ohL1
Rustはメモリリーク含めたリスクポイントをコンパイル時点で教えてくれるだけ。
panicで止めるかどうかは、異常系分類による。
停止させると逆に危険な場合もあるので、自前のexceptアナライザーは必須。
とにかく、関心事の放散が防止できれば、メモリアロケーションもリリースもミスは少なくなる。
SOLID原則に従えば、エレベーターも止まらない。 Rustの出発点が変な気もする。
アーキテクチャー不在がエレベーターを止める。
2025/12/06(土) 23:34:40.22ID:DacREqLg
異常系という言葉を気軽に使う人間は絶対に信用してはいけない
重大障害のもと
2025/12/07(日) 01:56:01.10ID:h2UU4mQ3
どういう理屈で?
当該用途にはなんて言葉を使えばいいの?
2025/12/07(日) 02:51:57.24ID:BRimgs0p
半永久的に動き続けることが求められるサーバーでは異常系終了を用いない
それだけの話だろう
73デフォルトの名無しさん
垢版 |
2025/12/07(日) 03:31:02.57ID:Wacr4v8K
イージーモード追加してくれんかな
trycatchとかgoみたいなエラー処理やりたい
2025/12/07(日) 04:14:18.61ID:YtRaGYdh
Goには例外try/throw/catchもなければResultのような代数的データ型もない
Goは多値でエラーを返してif文でそれがnilかどうかを判別するしかなくイージーモードとはかけ離れている
2025/12/07(日) 04:23:57.95ID:mtIDmBMJ
>>72
システム開発における正常/異常系はテストケースの話じゃないの?
異常終了させないためには、なおのこと異常系は肝要なのでは
2025/12/07(日) 05:47:16.97ID:JhJJ9T6O
unwrap()の是非について焼き寿司氏のblog
https://burntsushi.net/unwrap/

仮にリンターでunwrap()の有無をチェックしても
slice[i] や RefCell、場合によっては算術演算のラップアラウンドでもパニックするよ
という指摘にはなるほどと思った
77デフォルトの名無しさん
垢版 |
2025/12/07(日) 08:25:06.65ID:sR0SS/1I
>>76
Linusの指摘そのままじゃない?
「ランタイムエラーでパニックを発生させるのは根本的に問題があると思っている」

OSみたいなクリティカルな用途だから要求も高いというのはあるけど、Rustはc用途を目指しているんだから、他人のコードであってもpanicを制御できるようにならなきゃ話にならんかと。
2025/12/07(日) 09:49:00.07ID:RKvo/7WP
>>77
std::panic::catch_unwind でキャッチする仕組みはある。
ただ C++ の例外と同じでランタイムサポートの支援で実現するものだから、それより下のレイヤ (OS など) を作ってるときには使いにくいんだよ。
結局のところ OS のレイヤでは C でやってるのと同じやり方でなんとかするしかない。
2025/12/07(日) 11:31:53.26ID:DIZ3oEXF
unwrap()の是非について
https://www.youtube.com/watch?v=TalW9HN9_hI
流行って来た
2025/12/07(日) 13:14:55.38ID:4YzXVeaK
>>77
slice[i]やRefCellや算術演算で発生するpanicと
OOMをResultでハンドリングする機能がなく避けようがなかったpanicとは種類が違う

前者はプログラムコードのバグ
後者はプログラムコードにバグがなくても環境次第で発生してた

Linusが正確に何と言ったかは知らんけど
環境次第で実行時に発生するエラーを
panicとしてしか扱えなかったことを問題視したんじゃないか?
2025/12/07(日) 13:17:17.08ID:4YzXVeaK
>>79
複おじに毛が生えたレベルの説明だが
その毛があるかないかの違いが重要なのかもな
2025/12/08(月) 06:14:53.89ID:78+iHLWM
iced 0.14.0がリリースされて、ついに日本語入力に対応したらしいよ

> Input method support. #2777
2025/12/08(月) 10:36:18.01ID:JY6W1FTm
驚き!
2025/12/08(月) 17:44:28.10ID:WGXF6l1Y
なにicedって
2025/12/08(月) 19:41:58.70ID:IqmmsKhE
UIライブラリや
86デフォルトの名無しさん
垢版 |
2025/12/09(火) 13:17:43.50ID:deXLWuOQ
rustでUIやる意味何?計算量の多いゲームエンジンならわかるけどただのアプリならコンパイルの遅いrustでなんか作りたくねえ
87デフォルトの名無しさん
垢版 |
2025/12/09(火) 13:24:51.74ID:Lsl4QAiK
make world と打ち込んで1週間待ってた頃に比べれば全然余裕
88デフォルトの名無しさん
垢版 |
2025/12/09(火) 13:28:09.51ID:H/C7AGZK
Borlandがturbo rustを出すまで我慢だね
89デフォルトの名無しさん
垢版 |
2025/12/09(火) 13:31:43.36ID:H/C7AGZK
turbo visionのcrateはあるんだw
90デフォルトの名無しさん
垢版 |
2025/12/09(火) 13:34:26.68ID:b/v/GR+5
でもgpuiつかったやつめちゃ速くない?
あとrust analyzerのメモリ爆食いどうにかしてクレメンス
2025/12/09(火) 18:55:52.01ID:r9m3tzex
実際C++BuilderのGUI生産性と、Rustの言語としての速さと頑強さが組み合わされば無敵じゃね?
2025/12/09(火) 20:27:29.76ID:nH0p4cXR
まあエンバカデロはもう革新的な製品作りそうにないし
ヘジルスバーグはRustにあまり興味なさそうだけどね
2025/12/10(水) 05:02:49.84ID:hPMgr9J3
Gemini君に聞いたら、RustはC++のNRVOに相当する最適化をC++よりも広い適用範囲で強力に行います
Destination Passing Style (DPS)
って事らしいけど本当かな?
2025/12/10(水) 09:50:22.74ID:MSOh6BWq
C++ はオブジェクトへのアクセスが自由過ぎてエイリアス解析が大変 (最適化がしんどい) というのは昔から言われてた。
逆に言えば参照 (オブジェクトの依存関係) を完璧に追える Rust ではもっと上手くやれてもおかしくはないと思う。
2025/12/10(水) 10:28:50.81ID:4/EtyeCo
面倒くさい奴だけど付き合うと意外と良い奴
2025/12/10(水) 11:00:48.64ID:WdeXXEzW
>>93
Rustの方針はシンプルかつ効率
関数がレジスタ返しできない大きなサイズのデータを返す時
呼び出し側の関数のスタックフレームに領域を確保
呼び出された関数は最初からその領域にデータを書き込む
もちろんこれらは裏で自動的に行われる
2025/12/10(水) 11:29:15.14ID:+wlu09xM
日本語不自由なやつしかおらんのかいな
2025/12/10(水) 11:31:30.40ID:hPMgr9J3
"Destination Passing Style" で検索するとHaskellの話しか出てこないからハルシネーションか?
99デフォルトの名無しさん
垢版 |
2025/12/10(水) 11:32:51.92ID:v/mPNkvx
RustはUIでも覇権取れる?
2025/12/10(水) 11:48:09.95ID:7/+OAEHE
はい
2025/12/10(水) 12:06:24.08ID:L7XTEUYD
C++でもまじめにstd::move()通してればRust並に最適化できるんじゃね?
move後のアクセスをコンパイラが止めないからミスった時に何が起こるか分からんけど
102デフォルトの名無しさん
垢版 |
2025/12/10(水) 12:18:26.32ID:d+nvH+x7
equi
2025/12/10(水) 12:28:49.76ID:MSOh6BWq
>>101
C++ では返却値は std::move しないのが望ましい場合が多い。
コピー省略できるはずのところでムーブになってしまうことがあるし、ムーブが妥当なときはなにも書いていなくても暗黙にムーブするので書く意味がない。
2025/12/10(水) 12:31:05.43ID:09K8JBzk
Rustは概念的には常に自動的にmoveされる
そして生成コードはレジスタ返しか足りなければRVOに自動的になる
だからC++のような複雑さも面倒臭さもない
2025/12/10(水) 12:44:35.63ID:USY1WYCN
moveが暗黙で実際どうなんかがわからんのはC++の辛いところ
std::moveって明記してるのにコピーした時は、コンパイルエラーにしてくれてればよかったのに
2025/12/10(水) 12:47:17.53ID:hPMgr9J3
>>104
現在のC++が自動でRVOになるのは仕様で保証されてるけど
RustのRVOは仕様じゃなく現状そうなることが多い程度の話では?
2025/12/10(水) 12:58:04.34ID:HmdX4Hif
>>106
むしろRVO以外でどうやって大きなデータを返すんだよ
勝手に裏でヒープでも使うのか?
RVOにならない例を示してみろよ
2025/12/10(水) 13:16:30.40ID:L7XTEUYD
Rustはできるだけインライン展開してreturn自体を減らしてそう
C++とはコンパイルの単位とプロセスが違うからRVOは重視してないかもしれない
2025/12/10(水) 13:57:35.08ID:eneesrJf
>>107
んな大袈裟な話じゃないし、ボトルネックになってない限り実際にRVOされてるかどうかまで気にする人は少ない
コピーのコストが大きな問題になるようなクソでかい構造体なんて実際問題として滅多にないからね
コンテナは基本的に中でヒープ使ってるってのはさすがに知ってるよな?
2025/12/10(水) 16:52:00.70ID:jR2AbXeD
non-goalの余白に無限の願望を託す人
2025/12/10(水) 17:49:43.54ID:HmdX4Hif
>>109
関数からデータを返すだけでヒープを使うのは愚かなことだ
もちろんRustでは戻り型がBox<T>等でなくTそのものならヒープが使われることはないので問題は起きないが
112デフォルトの名無しさん
垢版 |
2025/12/10(水) 19:32:55.35ID:SgLOgf3g
なんでRustはReactに勝てないのか分からんのやが誰か教えてくれ
113デフォルトの名無しさん
垢版 |
2025/12/10(水) 19:56:08.60ID:KLOOllO5
web apiてなんであんなうんこスクリプト言語で書くってことになったんだろう
js自体の機能てほぼないしweb apiいじってるだけだからcでもいいやん
114デフォルトの名無しさん
垢版 |
2025/12/10(水) 19:59:11.30ID:IFiV5w4p
rustでは値渡しはクローンしなければムーブになるだろうな
2025/12/10(水) 20:34:20.54ID:9lNpGh2X
>>114
C++のmoveはコピーコンストラクタの呼び出しを回避するのが目的である一方、
Rustの値渡しは(最適化を無視すれば)常に単なるビット毎のシャローコピーであり、RustにC++のmoveに相当するものは存在しない
Rustのmoveは所有権の移動という文脈上の仮想的な操作でしかなく、代入の実行時挙動は一切変化しない点でC++のmoveとは全く異なる概念
116デフォルトの名無しさん
垢版 |
2025/12/10(水) 20:37:02.84ID:0wVpILab
JavaScriptへトランスパイルできる言語はいくつかある
TypeScriptは言わずもがなDartとKotlinも公式で保守されてる
JavaScriptを書くために必ずしもJavaScriptを使う必要は無い
117デフォルトの名無しさん
垢版 |
2025/12/10(水) 20:41:05.28ID:0wVpILab
>>113
2025/12/10(水) 23:42:16.04ID:kHSO1Qs/
>>112
Webブラウザで動くフレームワークとプログラミング言語を比較するのはヤバい

>>113
JavaScriptは大量のイベントが発生してそれらが非同期に並行して動くけどシングルスレッドだから排他制御は要らないというのが楽に書けるよう設計されてる
Cには無理がある
2025/12/11(木) 00:22:02.01ID:cU6/FCF6
>シングルスレッドだから排他制御は要らない
お前がそう思うんならそうなんだろうお前ん中ではな
2025/12/11(木) 00:23:17.13ID:cU6/FCF6
同時実行制御のことを雑に排他制御と呼ぶやつにプログラミングをさせてはいけない
排他制御も同時実行制御もどちらも絶対理解してないから
2025/12/11(木) 08:30:48.24ID:CybeALG1
>>120
誤解してないか?
こういう関係だぞ

https://en.wikipedia.org/wiki/Mutual_exclusion
In computer science, "mutual exclusion" (排他制御) is a property of "concurrency control" (同時実行制御), which is instituted for the purpose of preventing race conditions.
2025/12/11(木) 10:34:14.13ID:FEj7H+LS
RustのmoveもC++のmoveも、
「(仮に最適化されずとも)構造体のシャローコピーのコストは一般に軽く、多くの場合問題にならない」
というのが大前提なのだけど、>>107>>111は根本的なところを理解してなそう
RustやC++に限らず、GoやC#など構造体の値渡しができる言語に基本的に共通する大前提だね
2025/12/11(木) 11:24:54.77ID:KdoTRU3f
そういう問題ではない
呼び出し元関数のスタックフレームに直接書き込むのがRVO
配列もヒープを利用しない
2025/12/11(木) 12:43:57.33ID:UITvxyr5
レジスタ渡しよりも高速
余分なコードが介在しないCよりも
余分なコードだらけのRustが速くなるとしたらその辺が原因かもな
2025/12/11(木) 12:54:01.07ID:sTofDfRv
複オジだらけ
2025/12/11(木) 12:58:56.52ID:sgwHswzM
自作自演
2025/12/11(木) 18:48:54.72ID:KdoTRU3f
>>124
返し値に利用可能なレジスタの範囲内ならレジスタ返しが速い
RVOはそのサイズを超えてから
2025/12/11(木) 22:15:21.89ID:MZEzdKoQ
RVOとは違う話だけどC++は戻り値を std::move した方が良いケースは結構あるぞ
戻り値というか、戻り値の型に渡すコンストラクタに対して渡す時の話だけど
戻り値が std::string や std:: vector をフィールドに持つ構造体やタプルで、最後の return で初期化してるような場合

return { std::move(str); };

こういう場合は str は自動ではちゃんとムーブしてくれなかった気がする
(最近のC++は知らんから、間違ってたら指摘がほしい)
2025/12/11(木) 22:42:19.12ID:9uKNSHMX
みんな当たり前にC++を引き合いに出しているけど、Rust書いてる人でC++エアプ勢っていないんだろうか
2025/12/11(木) 23:34:58.81ID:ueLwSjw6
Cのみはいるかもしれないが、少なくともC系統の言語を触れてないと
Rustがこんなに苦労して解決しようとしてる問題への実感が持てなくて
GC言語やスクリプトよりちょっと速いだけの、冗長構文クソ言語以外に感想持てなそう
2025/12/11(木) 23:46:18.77ID:lRBvFeeP
>>121
何を誤解してると思ったの?

それとその定義だとconcurrency controlは常にmutual exclusionというpropertyを持ってるという関係になるけどCSの一般的定義ではそういう関係ではなくてconcurrency controlを実現する手段の一つとか実現手段の一部という関係
2025/12/12(金) 00:36:09.89ID:R4MfitDw
横からだけど、引用文においてもミューテックスは並行プログラミングにおける安全性アプローチのひとつと定義してると思うが
両者共に「並行制御 ⊃ 排他制御」という認識ではないの?
何が論点になってんだ?
2025/12/12(金) 01:29:09.26ID:lYmP2IfW
>>132
ミューテックスが必要となるのは「並列」プログラミング
拡張ワーカーを使わない限り
JavaScriptは「並行」プログラミングかつシングルスレッドなのでミューテックスが不要
2025/12/12(金) 02:06:45.48ID:hV57hqyS
>>128
最近のC++では間違い

std::move()を書かなくても自動でムーブしてくれるし、
わざわざstd::move()を書いたことでNRVOを妨害してしまう
2025/12/12(金) 02:22:06.56ID:05W/5u4b
>>133
>JavaScriptは「並行」プログラミングかつシングルスレッドなのでミューテックスが不要

そこは JavaScript は並行プログラミング"でありながら"じゃね?
「ミューテックスの要否」は「シングルスレッドであること」で定まり、したがって「並行プログラミングであること」を接続詞"かつ"で「並行させる」のは説明として不適かと

そしてなんについて議論してんの?
おふたりが論点としているものがはたから見ていて判然とせん
2025/12/12(金) 02:41:47.22ID:H4zR5jbz
>>132が並列と並行の区別ができてないからでしょう
2025/12/12(金) 03:11:39.93ID:s9XOKHrp
>>136
それは具体的にどの部分からそう読み取ったの?

「シングルスレッドであること」によって、「ミューテックスの要否」は定まる
したがって並列か並行かとは別議論では?
そもそも本件において前者は考慮不要かと
2025/12/12(金) 03:30:00.02ID:H4zR5jbz
>>137
mutexは同じCPU内の話だから並列=マルチスレッドでしょ
でも>>132は区別できてなくて並行プログラミングと書いてます
並行プログラミングでは値を同時に更新することがないためmutexは要らないです
並行並列プログラミングまたは並列プログラミングの時のみmutexが要ります
2025/12/12(金) 06:22:33.05ID:ZfrS6xvk
>>138
>mutexは同じCPU内の話だから並列=マルチスレッド

ミューテックスの要否は端的に言えば「共有リソースに対するアクセスの有無」
マルチスレッドは並列を実現するためのいち技術であり、限定するのはミスリード
マルチコア、マルチソケット(NUMAなど)もまたしかり
「同じCPU内」という単位は不正確

>でも>>132は区別できてなくて並行プログラミングと書いてます

「並行制御 ⊃ 排他制御」と同じこと
「並行 ⊃ 並列」で並行は抽象レベルの概念であり、並列は物理レベルの実現方法
前者が後者を含意するのでこれらの記述は極めて自然

>並行プログラミングでは値を同時に更新することがないためmutexは要らないです

したがってこれは明確に誤り
>>136 を熨斗付けてお返しいたします

>並行並列プログラミングまたは並列プログラミングの時のみmutexが要ります

同上
レイヤの違う概念、用語を並行させて書いてしまってる
重ねるけれど、ミューテックスの要否基準は「共有状態の同時アクセス可能性」のみ

とりあえず >>121 の引用部分がそもそも間違ってるという主張?
そうであるなら以下に対して反論どうぞ

>In computer science, mutual exclusion is a property of concurrency control, which is instituted for the purpose of preventing race conditions.
2025/12/12(金) 06:46:29.30ID:H4zR5jbz
>>139
あなたのような知識が足りなく偏った人を相手にするのは大変だけど
単に並列プログラミングといえば複数のPCを用いる分散型の並列プログラミングを含むのよ
話題の領域を明確にするために今回はmutexの話だから分散型の話題ではないと限定しているわけ
そういう常識を持たないかあえて無視して無意味に突くだけのダメ人間みたいだからこれ以上はくだらないやりとりしません
2025/12/12(金) 08:00:06.77ID:s73KDvVl
>>140
>単に並列プログラミングといえば複数のPCを用いる分散型の並列プログラミングを含むのよ

いやあ、そんなことはないと思うが
少なくともこちらは本件において分散コンピューティングには触れていない

>今回はmutexの話だから分散型の話題ではないと限定しているわけ

心得てるけど
その上で「ミューテックスの要否」は「共有リソースに対する同時アクセスの有無」と言明しているわけであり

あなたが以下のようにミューテックスの用途を誤解、もしくはミスリードをしていたもので、反例をいくつか挙げてわざわざ説明したのであって(マルチコア、マルチCPU = マルチソケット⦅同一マシン内のNUMAノード間⦆)
マルチスレッドは並列の一形態でイコールではない
共有リソースへの同時アクセスが起こりうるなら、スレッド、コア、ソケットの別なく排他制御はごくごく自然な選択肢
ちなみにNUMAはわかる?複数PCの使用や分散技術の話じゃないよ

>mutexは同じCPU内の話だから並列=マルチスレッドでしょ

そしてそもそも並列と並行の区別だが、これについてもレイヤが違うと説明したはず
「並行 ⊃ 並列」
並行はより上位の抽象概念だから、並行プログラミングに言及する際、ミューテックス(排他制御)を取り上げるのは当たり前

したがって以下は明確に誤ってるかと

>並行プログラミングでは値を同時に更新することがないためmutexは要らないです

並列だろうが並行だろうが、リソースへの競合状態が起こりえるなら、ミューテックスは要検討
2025/12/12(金) 09:10:06.26ID:9WR4PduZ
JavascriptのPromise chaining(シリアル実行)は排他制御に含まれると思う
前の処理がPendingの間は次の処理を実行しないから前の処理で更新中のデータが次の処理で参照されない
2025/12/12(金) 10:18:13.52ID:9YTxXu+/
>>139
間違い多すぎなので正解だけ書くと
並行処理=同時進行するが同時に実行されることはない
並列処理=同時に実行されるためメモリ競合などの対策が必要
144デフォルトの名無しさん
垢版 |
2025/12/12(金) 19:40:37.53ID:UEulKxih
T型を[T;1]型にするのはゼロコストだよね
2025/12/12(金) 21:31:17.66ID:XV88DTfm
>>143
>並行処理=同時進行するが同時に実行されることはない
>並列処理=同時に実行されるためメモリ競合などの対策が必要

教科書レベルのあるある理解(誤解)
既述したよう、並列処理は並行処理のいち手段
「並行」という概念の中に含まれる
それを物理レベルで「並列に処理」(同時実行)するか否かは別議論であり、レイヤが違う

並列でないなら競合しないの?
並列でないならマルチスレッド処理できない?

整理したいけど >>121 の引用部分に異議ある立場?

>In computer science, mutual exclusion is a property of concurrency control, which is instituted for the purpose of preventing race conditions.

「concurrent」をどう訳します?
146デフォルトの名無しさん
垢版 |
2025/12/12(金) 22:57:57.08ID:QoWL0Mdr
>>134
不安になって試してみたけど、このケースだと現代のC++コンパイラでも std::move が必要だぞ
>>128 の変数 str の部分を non-copyable なもの (例. std::unique_prt<T>) に変えると、std::move 無しだとコンパイルエラーになる
自作クラスで試しても、std::moveしないとコピーが作られる (外側の構造体そのものはRVO最適化が効くけど、その構造体に渡されるデータは左辺値参照で渡される)
2025/12/12(金) 23:21:06.40ID:h4KMYPn3
wikipediaを見る限り>>143の区別みたいよ

>並行計算は、並列計算(parallel computing)としばしば混同される。
>
>並列計算はマルチプロセッサ前提であり、独立した各プロセッサが割り振られた計算を同時実行することを指す。
>故にシングルプロセッサでは不可になる[2]。
>分散システム内の各コンピュータが割り振られた計算を同時実行するのもそうである。
>
>並行計算は一つのプロセッサに複数のタスクを存在させて、各タスクに計算を割り振ることを指す[4]。
>そこではタイムシェアリング技術などが使われる。
2025/12/12(金) 23:23:20.57ID:tMtI2IXb
>>132
AはBのproperty(特性/性質/属性)の一つという定義と
AはBを実現するアプローチの一つ定義は同じではないよ

これはどっちかが絶対的な正解という問題ではなくて
mutual exclusionをどういう意味範囲で使ってるかの問題

compare-and-swapのようなatomic operationでも
レイヤーを掘り下げればクリティカルセクションがあって
mutual exclusionというpropertyを持ってると考えるなら
wikipediaの定義でもおかしくはない
(一般的かどうかはさておき)

あと何を誤解してると思ったのかは書いてもらわないとわからん
2025/12/12(金) 23:45:04.62ID:tMtI2IXb
>>133
1. ミューテックスと排他制御(mutual exclusion)を区別しよう
ミューテックスは排他制御を実現する方法の一つで
locked/unlockedの状態を管理する変数だったり構造体だったりの実装のこと
排他制御(mutual exclusion)という概念とは別もの

2. ワーカーを使わないシングルスレッドのJavaScriptにおいて排他制御は不要か?
もちろん必要
https://web.mit.edu/6.102/www/sp25/classes/16-mutual-exclusion/

3. ワーカーを使わないシングルスレッドのJavaScriptにおいてミューテックスは不要か?
ミューテックスが必要な状況ももちろんある
例えば複数のダウンロードリクエストを並行処理しているダウンローダーで
特定のサイトは最大1コネクションのダウンロードしか許可しておらず
複数同時ダウンロードをすると全部強制終了されてしまう状況とか
2025/12/12(金) 23:59:32.76ID:2HyQrFLK
>>149
無知だな
基本を分かっていない

ミューテックスはマルチスレッド時に同時アクセスの競合が起きる可能性がある場合に用いてスレッドを待たせる機能がある

特定のサイトは最大1コネクションのダウンロードしか許可してない場合
ワーカーを用いないJavaScriptは並行処理なのでミューテックスは不要
単なるカウンター変数のみでよい
2025/12/13(土) 00:03:09.62ID:1Rkfvz+k
>>143
>並行処理=同時進行するが同時に実行されることはない
>並列処理=同時に実行されるためメモリ競合などの対策が必要
一般的な定義からすると↑これはどっちも間違ってる
並行処理は同時実行されてる部分もあれば同時実行できない部分ももある
同時実行できない部分の制御のため競合対策が必要

並列処理は同時実行可能な処理を指すので競合対策は不要
同時実行できない処理を並列処理とは普通は言わない
2025/12/13(土) 00:07:42.28ID:TTFtgmCI
>>151
wikipediaの記述やそこで引用している参考文献が正しい
あなたが間違っています
2025/12/13(土) 00:07:52.21ID:1Rkfvz+k
>>150
>単なるカウンター変数のみでよい
それはカウンター変数をミューテックスとして利用しているってことなんだよ
>>149をもう1回読んでね
2025/12/13(土) 00:36:34.04ID:1Rkfvz+k
現実的には単なるカウンター変数をミューテックスとして利用するだけではダウンローダーに必要な機能を満たせないからキューイングできるタイプの非同期ミューテックスを使う
2025/12/13(土) 01:22:57.78ID:O7dPDRw7
>>153
いいえカウンター変数とmutexは異なります
mutexは他のスレッドがロック中にスレッドを待たされる機能と利用が可能になったときに再開させる機能を伴います
その効率のためOSが提供するfutex機能を用いてmutexを実装する環境が多いです
2025/12/13(土) 03:20:12.64ID:diqjnlrE
>>147
参照された記事には並行処理における競合対策は不要と記載されていました?

また、「コンピューティング」という、物理、実装を意識するレベルでの具体的差異をこちらは否定していない
その前段となる概念レベルの関係についての言及であり

>Concurrency is a broader concept that encompasses several related ideas, including:
>Parallelism (simultaneous execution on multiple processing units). Parallelism executes tasks independently on multiple CPU cores. Concurrency allows for multiple threads of control at the program level, which can use parallelism or time-slicing to perform these tasks. Programs may exhibit parallelism only, concurrency only, both parallelism and concurrency, neither.
https://en.wikipedia.org/wiki/Concurrency_%28computer_science%29#Related_concepts

実際に並行、並列処理の実装にあたっては、物理、ハードウェア的な制約に基づき、当然、両者は弁別される
言うまでもないがシングルコアにて並列処理は実装できまい
さりとて逆もしかりとならないわけで
前者は後者を包含している、後者は前者の下位概念であり、具体的な実現手段
「並行 ⊃ 並行、並列」のように概念のポケットに、それとは別に具体的技術としての「並行」「並列」が入るイメージ

そして繰り返すけど、本件論点は競合考慮、ミューテックスの要否では?
並行プログラミングする際、これを不要とする立場?
2025/12/13(土) 07:39:32.48ID:seiImwq0
>>156
並列を用いない場合=マルチスレッドを用いない場合=シングルスレッドの場合、
並行処理でメモリアクセスが同時に実行されることはないためメモリ競合は発生しない。
つまりカウンターやフラグなどあらゆる変数についてMutexを用いる必要がない。

これはJavaScriptだけでなくRustでシングルスレッドで非同期タスクを並行処理する場合も同じ。
具体的にはtokioのspawn (並行&並列)はSendトレイト境界があるため変数共有にMutexなどが必須だが、
spawn_local (並行のみ)はSendトレイト境界がないためMutexは不要という形で表れる。
158デフォルトの名無しさん
垢版 |
2025/12/13(土) 08:07:26.77ID:xrC7LiGl
関連型ってT<U>みたいな型依存型ができないからその代用だよね
2025/12/13(土) 10:56:12.72ID:vOZmwqT4
シングルスレッドでも2つの非同期処理がawaitを挟んで同じメモリを参照・更新する時は
data raceのリスクがあるから気をつけてくれ
Rustの場合は&mutが他の参照をブロックするから問題になりにくいけど
160デフォルトの名無しさん
垢版 |
2025/12/13(土) 11:00:34.93ID:/DhArST+
日本語より
concurrent
parallel
distributed
で議論した方が良いと思うの
https://zenn.dev/koron/articles/3ddcaaeae37f9befdf70
2025/12/13(土) 11:37:19.65ID:uGVM51WN
並行はヘテロ
並列はホモ
162デフォルトの名無しさん
垢版 |
2025/12/13(土) 12:58:20.04ID:8qQHr6Hn
同時アクセスの可能性があるものにmutexでロックかけろってだけじゃないの
2025/12/13(土) 14:26:19.82ID:vEYY11o1
>>162
原則としてはそう。
ただ、データ競合は阻止できてもデッドロックは阻止できないし、性能的に改善できる余地もあるから唯一の正解というわけではない。
2025/12/13(土) 14:26:52.20ID:DjrUGhug
>>162
Mutexは別々のスレッド同士が同時アクセスするデータ競合を防げるよ
通常のstd::sys::Mutexだと既にロックを持っている同じスレッドでロックしようとすると動作の保証はなくてパニックするかデッドロックするかなど環境依存なので用いてはダメだけど
つまりそれはマルチスレッド用
2025/12/13(土) 14:48:01.82ID:vvvRno5n
一般的なアプリケーションプログラミングにおいては、排他制御の対象はデータというよりコードの特定のセクションであることが多い
当該セクションで扱うのが単一のデータストアである場合はそのデータストアに対する単純なロックに帰着するが、実際にはそうでない場合も多い
166デフォルトの名無しさん
垢版 |
2025/12/13(土) 15:10:49.43ID:6mP4NQXw
ケントンプソンに書き直してもらったほうがいいだろこの言語
2025/12/13(土) 20:30:59.61ID:CZ2kQ+mp
自演するにしても、逆に自演ってバレバレになる1レスごとルーパチじゃなく
せめてWi-Fiとスマホ回線でやればいいのに
2025/12/14(日) 00:57:37.50ID:xj54TDj4
>>157
まず初手の等式がぶっ飛んでいる
並行、並列という処理の性質とその処理を実際に行う際に用いるモデルの話は直交概念、因果の幅跳び甚だしい
「並列でない」ことによって、ただちに「マルチスレッドでない = シングルスレッドである」ことは定まらないため、「シングルスレッドで共有メモリを同時に操作可能な実行主体が一つしか存在しない」ことは担保しえない
ミューテックスの要否は「共有メモリに対して複数の実行単位が論理的に同時アクセスしうるかどうか」で、「物理的に同時実行されない」ことは必ずしもメモリ安全性を意味しない
すなわちコア数(並列か否か)とマルチスレッドのいかんは別議論
並行処理の実現手段としてマルチスレッドを用いたならば、メモリ競合は生じるし、したがってミューテックスも要検討
重ねるけれど「シングルスレッドである」とする際に、それを前提するのが「並行処理である」からというのは因果の車がパンクしている
169デフォルトの名無しさん
垢版 |
2025/12/14(日) 06:59:12.58ID:fsdEVE/K
>>168
Rustでは>>157のように実装されているのだから君が間違ってるよ
2025/12/14(日) 07:46:26.10ID:xj54TDj4
>>169
具体的に何が >>157 のように実装されているという話?
こちらの間違っている点はどこ?
171デフォルトの名無しさん
垢版 |
2025/12/14(日) 08:13:24.71ID:fsdEVE/K
>>170
明確に>>157に書かれているのに理解できないならRustを使ったことすらないんのかな
長文で屁理屈を連投するけどRustの話が全く出てこないので怪しいと思っていたけど
2025/12/14(日) 09:19:18.51ID:xj54TDj4
>>171
明確に前半後半で議論が分裂しているね
そして >>168 の指摘は前半の並行、並列、スレッド、競合、ミューテックスなどへの胡乱な認識に基づく主張、説明に対するもので、後半にて言及されてる「シングルスレッド」などに見られる条件下を前提としたケースについては触れていない

前半部分の指摘については既述のとおり
後半については指摘というより、並行、マルチスレッドなどの話で「Rustの話が出てこない」という反論かます時点で概念理解は推して知るべし

おそらく経験した個別ケースを安易に一般化してしまっており、自身の使っている用語が概念、実装、結果のどこに属しているか意識もあまりしていないのでは
だから乱暴な等式を使い、平気で一般化してしまう
Rust(tokioのexecutor)に見られる「設計上の制約(単一スレッドであることを保証)」は、「並行処理」一般とは議論のレイヤがズレている

そちらの議論に合わせるとすれば、spawn_localがmutex不要なのはexecutorが単一スレッドであることをtokioが保証しているからであり、「並行処理だから」が理由ではない
173デフォルトの名無しさん
垢版 |
2025/12/14(日) 09:48:55.96ID:44yyY/m/
>>172
非同期タスクで並行処理するためのランタイム基盤がRustのtokio
tokioでも並列処理をしない限り並行処理だけならばメモリ競合は発生しない
そのためミューテックスも当然必要ない
これは言語やランタイム基盤の種類に関係なく常に成立する
2025/12/14(日) 10:39:55.53ID:UGesTTaV
相変わらず複数データの排他制御を理解していない複おじ
2025/12/14(日) 10:52:14.74ID:TOxv8/vf
>>173
mutexは必要がないだけでなく使用禁止が正解だよ
同じOSスレッド同士でmutexは機能しない
2025/12/14(日) 11:11:39.26ID:7VXp8ta2
複数データの排他制御ってなんの話?
2025/12/14(日) 13:10:49.83ID:O1BhnRhB
LinuxついにRust公用語に
2025/12/14(日) 14:04:43.97ID:xj54TDj4
>>173
だから安易な一般化
「並行処理 = 非同期処理」と認識してない?
そちらの主張はtokioをはじめ、その中においての業界標準、常識であって、外に出たら通用しない
「並行処理」におけるメモリ競合の有無やミューテックスの要否じゃなくて、それを実現する実装手段の内側世界における議論

それらを前提してるから、「並行処理 = シングルスレッド = 競合しない = ミューテックスは必要ない」と因果を逆立ちさせてしまう
>>157 のレスを引くなら「並行(非並列) = シングルスレッド = spawn_local = Sendがない」ではなく、「spawn_localを選ぶ = tokioがシングルスレッドであることを保証 = スレッド移動がないためSend不要 = 結果として並行(非並列)になる」が正しい因果

設計段階で「並列か否か」をまず決めて、それに応じたexecutorを選択し、その結果、実装者の期待どおりに「並行(非並列)」or「並列 & 並行」となるわけで
これが本来の思考、理解の順序であって、逆にするから概念自体が胡乱げになる

「非同期処理」に限るのであればいざ知らず、そうでないなら、つまり「並行処理」一般に議論のスコープを広げるのなら、そちらの因果理解は破綻する
2025/12/14(日) 15:01:36.46ID:4LwbsUy1
>>178
長文くん邪魔だからさ
これ以上中身のない妄想の机上の空論を続けるのではなく、
キミが言う並行処理を実装してるクレートか何かをまずは持ってきなよ
2025/12/14(日) 16:05:54.67ID:+m3/RUXs
もう並行処理専用スレを作って移動してほしい
2025/12/14(日) 18:14:00.68ID:dzhQifsq
長文は読んでないが>>157の複おじの主張に沿うと
実行環境がシングルコアならマルチスレッドでもマルチプロセスでも真の並列ではないから
「カウンターやフラグなどあらゆる変数についてMutexを用いる必要がない」ってことだな

あほらし
2025/12/14(日) 18:21:41.85ID:dzhQifsq
今回得られた結論は以下の2つ

1. 「JavaScriptはシングルスレッドだから排他制御は要らない」などと言う人は排他制御を全く理解していないということ

2. 概念と実装の区別ができない人はその概念に対する理解が決定的に欠如しているということ


複オジ先生、反面教師役お疲れ様でした。
2025/12/14(日) 18:51:23.07ID:zM6OZsQF
複おじは日下部陽一先生と知りあえば仲良くなれると思う
2025/12/14(日) 19:19:56.69ID:mP2ZsAYG
>>181
>>182
あなたは勘違いしてるから解説書や仕様書などまずは基本を勉強した方がいい
ミューテックスはスレッド間もしくはプロセス間で使われると明記されている
そして同一スレッド内でミューテックスを用いた場合の動作はは環境依存になる

Rustの標準ライブラリのMutexでも同様でロックされている状況にて同一スレッドでロックを試みた時の動作は指定されず関数から戻ってこないままpanicやdeadlockなどになりうると明記されている
つまりMutexはシングルスレッド内で用いてはいけないものなのだ
2025/12/14(日) 21:37:57.47ID:tGd21ggn
シングルスレッドだからメモリ競合は発生しないって主張が地雷なんだよな

複数の非同期処理で共有してる&Cell<T>の値はawaitの前後で書き換わってる可能性があって
await中の別処理での変更を無視するとマルチスレッドのメモリ競合と同じ不定状態になる
この場合シングルスレッドだからMutexは必要ないというより使えないんだけど
Mutexが必要ないor使えないからメモリ競合は存在しないって結論出すのはやめてほしい

変なタイミングでawaitを挟まなければ回避できる話だから大した問題ではないけど
問題の可能性を理解せずに「メモリ競合は存在しない」って信念を持たれるとこわい
2025/12/14(日) 22:10:35.13ID:yhv8JhFY
>>185
それはメモリ競合とは言わない
そこにメモリ競合は存在しない
2025/12/14(日) 22:37:59.93ID:xPG6+apI
まーた副クン一人で頑張ってるの?
IDコロコロして頑張るねえ
2025/12/14(日) 22:56:57.21ID:j10MZCpM
複数CPUからの同時アクセスを制限するものだけを Mutex と呼ぶなら
tokio::sync::Mutex についてはどうなんだ?
これはシングルスレッドのランタイムでも使われるものだし、名前の通り Mutex と呼ばれるものの一種だと思うけど
2025/12/14(日) 23:39:46.59ID:/lebwabc
>>185
>変なタイミングでawaitを挟まなければ回避できる
OSが複数スレッドの実行をインターリーブするのと同じで
タスクも効率や公平性のためにawaitを入れてインターリーブさせるべきケースというのがある
>>149のダウンローダーの例とかね
2025/12/14(日) 23:49:39.40ID:TgyZENYv
メモリ競合・データ競合は複数のスレッドもしくは複数のプロセスが互いにどこを実行している知らなくて制御できなかったり不意打ちで切り替わりえる状況で起きるんだよ

>>185
一方でそのケースはシングルスレッドで利用していればそんなことは起きないためデータ競合ではないね
awaitから戻ってきたら値が書き換わっていたというのは関数呼び出しの連鎖から戻ってきたら値が書き換わっていたのと同じようなこと
制御できない知らぬ間に値が書き換わるわけではないためデータ競合とは呼ばれない
2025/12/15(月) 10:37:47.15ID:NfYVjfv5
競合の話となると特に造語が捗るようですねえ

メモリ競合もそうだけど
データ参照の競合って何だったの?
https://mevius.5ch.net/test/read.cgi/tech/1722354386/966-983
2025/12/16(火) 00:58:10.28ID:W/QCw6TP
さてと
linuxカーネルはrust化されないとか言ってた低学歴在日朝鮮人の恥ずかしい書き込みを発掘するか
2025/12/16(火) 01:13:24.49ID:cIHp8Olv
Linuxって使いにくい 古~いUnixを未だにひきずってるから
Linuxに拘る必要あるんだろうか?
もういっそのことすべてを新規設計にしてLinuxに代わるオープンソースOSにして欲しい
モデルにするのは…MSはMSで変に使いにくくしていってるとこあるから、この両者の悪所を全部取り除いたやつにして欲しい
2025/12/16(火) 01:14:30.50ID:mQYReazf
複おじみっともないからそういうのやめなって
2025/12/16(火) 01:23:26.93ID:nHAkm4Ue
排他制御で恥を晒した某オジさんがいつものように別のネタで話題をそらしたいわけですね
2025/12/16(火) 01:36:51.09ID:x/sZ4m7A
Rustがこんなにも多くのアーキテクチャを葬ってしまうのか

https://x.com/ebisan2015/status/1999437822798045373
197デフォルトの名無しさん
垢版 |
2025/12/16(火) 03:40:58.95ID:6mYT8Axt
unix作者はgo作ったしlinuxメンテナに入れて上げたらinじゃねーの?
2025/12/16(火) 04:03:56.34ID:W/QCw6TP
>>196
s390とホビーじゃねえぞ
2025/12/16(火) 16:45:22.50ID:qwpCJpGr
Qiitaスレに逃げてんじゃねーよ
2025/12/16(火) 19:10:40.61ID:SqwmBjPQ
>>193
firefoxすらRustで書き直せないのに無理
ていうか、Rustはオワコン
2025/12/16(火) 19:45:33.35ID:fxmzBDbu
Go のランタイムがやってる平行処理 (goroutine) は本当は OS でやりたかったが Linux にかわる OS を作るのは非現実的だから諦めたとは聞いたことがあるな。
単純な話としてアプリケーションが Linux の仕様に依存しきっているから Linux のしがらみを捨てた新しい OS を作ったら全てのアプリケーションが作り直しだ。
インフラは正しくあることよりも安定していることが重要であるという Linux 哲学により、改善によって既存のアプリケーションが動かなくなるならその改善はしないことになっている。(深刻な脆弱性ならやむを得ず修正することはある。)
つまり Linux は長期的に安定してバイナリ互換性を維持していて、更にはこれからもそうであると信じられているから今の地位にあるってことだ。 Windows もそう。
機能・性能の良さより長期的な信頼が大事で、それを得るのは本当に困難な話。
2025/12/16(火) 20:04:03.07ID:VMokbSN7
新しいOSに引継ぎのためのWSLのようなのを積んじゃえば
2025/12/16(火) 20:08:57.42ID:l9eOXZHT
BeOSやTRONのようなのでもよかったんだけどなあ
BeOSはなぜかすぐに消えちゃったね、TRONはお国の事情で…
2025/12/16(火) 20:25:59.95ID:YnU0BKmn
>>201
goroutineはプリエンプティブつまり強制中断スケジューリングなので個別にスタックを持たなければいけないけど
Rustの非同期タスクはawaitでスケジューリング切替なのでyield_now等で自分で制御できるメリットとスタックを持たなくていいメリットがあるね
2025/12/16(火) 20:51:19.88ID:r3w6sfJ0
おじはなんで188だけガン無視なの
2025/12/16(火) 21:55:03.07ID:33G9TuJX
もう敗北を認めてるからでしょ
2025/12/16(火) 22:02:24.31ID:o613HmUP
Rustに勝つのは無理すぎる
2025/12/17(水) 00:04:52.78ID:BcBC1nAJ
せっかくノリノリで自演再開したのに蒸し返された途端に止まるの笑える
2025/12/17(水) 00:05:33.31ID:IQqRXVk7
どういう指標において?
例えば「開発者の人口の多さ」なら主要言語の中では下位だし、そんなもの切り口によりけりだろ
210デフォルトの名無しさん
垢版 |
2025/12/17(水) 00:37:34.86ID:9IMomu8g
tronはスウィッチ2のコントローラで活躍しとるでぇ🧐
2025/12/17(水) 09:00:54.55ID:XKSP57jx
活躍ではないかな
2025/12/17(水) 13:00:34.90ID:ZnlCz4EL
NeXTは死にかけのところをあやうく拾って貰えた
BeOSの方がmac後継の有力候補とまで言われていたのに
ここまで立場がひっくり返るとは
2025/12/17(水) 13:20:26.44ID:DM2ngHpZ
マイナーアーキテクチャ対応はgccrsプロジェクトの成否にかかってると思うんだが
現状どうなってるの?
2025/12/17(水) 14:23:26.87ID:t+T8cWGp
そんなもんお荷物になるだけだから失敗してくれた方がいい
最新エディションへの対応が遅れる(or放棄される)のは目に見えていて、
ライブラリがそれに引きずられて最新エディションへの移行を渋るようになれば、
俺達イケイケ最先端ウェーイでやってきたRustコミュニティの自尊心に致命的なダメージを与え、開発者離れを引き起こすことになりかねない
2025/12/17(水) 16:13:18.06ID:0zsY87I/
アーキテクチャのLLVM対応はベンダーorメーカーの責任では
売りたいなら真っ先に用意するだろうし時代遅れでコストに見合わなければ切り捨てられる
2025/12/17(水) 19:33:27.44ID:ujCMDiXv
というかgcc対応の本命はrustc_codegen_gccの方じゃない?
最近はRust本体のCIでもテストされるようになってきたし、rustupでの配布も計画されている
2025/12/17(水) 20:42:52.22ID:DzI4E+Zk
>>216
rustc_codegen_gccはrustcのバックエンドとしてLLVMと同様の立ち位置なんだよね
だから>>214の問題は起きないメリットが大きい
2025/12/17(水) 22:06:20.53ID:IQqRXVk7
bincode がサポート終了になったみたい
それなりに広く使われてるクレートでも突如消えることってあるんだな、と改めて思う…
2025/12/17(水) 22:27:57.16ID:GIcNPYi1
メンテナの一人が他のメンテナに相談なく脱GitHub作業を始めて履歴の書き換えとかをやりだして揉めたけど
その渦中のメンテナがトランスジェンダーのポリコレだってことで
実名と住所を晒されて、責任取ってプロジェクト自体終わりってことになったのか
2025/12/17(水) 22:29:06.78ID:JJtTc48Y
devでtestで用いてるクレートが多いな
2025/12/17(水) 22:31:21.65ID:WBnWSF9Z
>>217
rustc_codegen_gccがお荷物になってライブラリではなくてRust本体への変更が遅れるデメリットはある
2025/12/17(水) 22:55:48.90ID:7H2QU0IP
そこはこれまでもrustcとLLVMとの間の調整でやって来たことだから新たな影響は限りなく小さい
一方でRustの仕様追加変更や標準ライブラリの追加安定化などは当面rustcまわりでの独裁決定事項であることが成長中のRustにとって好ましい
2025/12/17(水) 23:05:52.77ID:pnFaSaz7
bincodeの件、斜め読みしたけど、こんな感じじゃない?

1. 生成AIのクソissueにブチ切れる
2. 脱GitHubを実行
3. ついでに、トランスジェンダーの関係で改名した新しい名前を使って過去のコミットを書き換える
4. しばらく誰も気づかない
5. 誰かがコミットIDが書き変わってることに気づく
6. うわーサプライチェーン攻撃だーと大騒ぎする
7. 騒ぎの中で、作者の実名や住所を公開する奴が現れる
8. 作者がブチ切れて、メンテナンス終了を宣言
9. ついでに、作者名の欄を独立して編集できないcrates.ioがクソ、と意見
2025/12/18(木) 00:40:08.71ID:SXyMexjv
>>221
RFCが承認されてから10年経っても実現できない機能がいくつもある言語だからな
その程度のデメリットはいまさらだろ
225デフォルトの名無しさん
垢版 |
2025/12/18(木) 12:26:48.37ID:nouCCsxV
ハッシュマップってハッシュ値を保持して値を調べるんじゃなくてキーも保存するんだな
保存したくない場合はキーを完全ハッシュ値にしてハッシュ値をキーにしないとだめだな
2025/12/18(木) 13:24:31.83ID:CQ9HORaM
キーを保存したくないならHashSetの方があってそう
値にEqが必要だけど完全ハッシュより現実的
2025/12/18(木) 14:39:08.80ID:XpyRX9NB
恐ろしい誤解だなと眺めてたら
さらに恐ろしいのが来た
2025/12/18(木) 15:01:44.44ID:MGFN0lYz
>>225
HashMapはハッシュ値を保持しない

>>226
HashSetもキーを保持する
2025/12/18(木) 15:07:04.67ID:CQ9HORaM
この場合のキーはHashMap<K, V>のKのことだろ
HashSet<T>のキーってなんだよ
ハッシュ値のこと?
2025/12/18(木) 16:23:43.15ID:VAIdWToM
検索に使うオブジェクトがキー。
HashSet は値が常に () であるような HashMap だと説明されてる。
231デフォルトの名無しさん
垢版 |
2025/12/18(木) 16:51:07.77ID:nouCCsxV
普通のハッシュマップは何もしないハッシャーを実装すれば出来るな
2025/12/18(木) 19:13:42.74ID:fm5KR8ce
Rustの前に基本情報あたりを取る勉強したほうがいいんじゃないか
古臭いのが多いとはいえ応用は基礎の積み重ねの上にあるからな
233デフォルトの名無しさん
垢版 |
2025/12/18(木) 19:42:58.02ID:Wqs3m317
rustってグローバル変数が使えないんだよね。dfsつらくない?
2025/12/18(木) 19:46:33.16ID:vUWlsjsI
DFSのためにグローバル変数??
プログラミングを基礎からやり直したほうがいいぞ
2025/12/19(金) 10:28:35.58ID:gzseDVjE
Rustちょっとビルドの度に数分単位の時間掛かるのなんとかならんのかね
多分プロダクションビルドだけでやればいいような最適化とか毎回回してるよねこれ
2025/12/19(金) 10:31:57.30ID:+3c/moZi
>>235
マクロのせいでしょ
2025/12/19(金) 12:08:39.25ID:PZAfhfPm
でかい依存ライブラリのリビルドが必要になったならまだしも自分のコードのインクリメンタルビルドだけで数分もかかるようならマシンのアップグレードを検討したほうがいいかもしれない
2025/12/19(金) 12:10:44.45ID:AoLX/WrE
Windowsならアンチウイルスのせいかもね
2025/12/19(金) 12:20:12.19ID:HjsWPX9f
>>235
少なくともデバッグビルドのデフォルト設定では最適化は控えめだよ。
単純にリンクが遅い傾向にある。
Rust プロジェクトの典型的な設計がリンカには負担がかかってしまう要素が多いらしい。
変更が少しだけでもリンカの仕事の量は特に変わらないし。

インクリメンタルリンクをサポートしたリンカ Wild が開発中で、開発中のリンク (修正を少しだけした場合のリンクしなおし) を爆速にする計画は進んでいる。
インクリメンタルリンクは構造がかなり複雑になるので複雑な処理と速度を両立できるのか疑問視されていて従来のリンカ開発者は消極的だったんだが
Rust でなら複雑さと性能を両立したリンカを書けるという自信があるらしい。
2025/12/19(金) 12:24:59.93ID:AoLX/WrE
C#みたいにプロセス起動したままホットリロードできるようになるのはいつ?
2025/12/19(金) 13:38:24.83ID:uPPpqdRm
ビルドする時間帯によっては依存cratesの更新確認だけで待たされる時があるな
2025/12/19(金) 14:18:19.55ID:XFk/dn+M
>>241
その仕組みのない言語はやばい
2025/12/19(金) 14:24:27.94ID:LTe4LjTR
Rust はシングルバイナリ指向なのでホットリロードは想定してないがバイナリを分割すれば (ホスト環境によっては) 今でもホットリロードできる。
実行環境次第。
2025/12/19(金) 23:23:49.86ID:kouENYLZ
ホットリロードが欲しいのはGUIみたいに「ちょっと変えて試す」をしたい分野だと思う
それはRustの得意分野でもないし、そこはC#やJSで良いじゃない
Rustが向く分野とそうでない分野があるというだけの話
245デフォルトの名無しさん
垢版 |
2025/12/20(土) 06:57:23.96ID:z+uDpZnV
ホットリロードはWEB APIにこそ欲しい
2025/12/20(土) 09:53:03.44ID:IOYr4f7F
>>241
何時間も待たされて(ちょっとずつは進んでる)眠くなったのであきらめて
次の日やり直したら一瞬で終わったことがある
2025/12/20(土) 09:54:12.80ID:IOYr4f7F
>>243
その仕組みのないOSはやばい
2025/12/20(土) 10:06:31.65ID:cXl/wOeV
明示的にアップデート指定した時以外はイチイチ外部パッケージのダウンロード&再コンパイルとかやらないで欲しいな
2025/12/20(土) 13:27:35.26ID:Hio2Ii0f
>>248
クレイト使用バージョンを指定してないからでは
2025/12/21(日) 13:34:39.31ID:i93tKLa3
hoge = "1.2.3"
よりも
hoge = ">=1.2.3"
よりも
hoge = "=1.2.3"
推奨ですね判ります
2025/12/21(日) 14:35:21.91ID:d7uL0Tpm
Microsoft、2030年までにC/C++廃止を目指す
https://softantenna.com/blog/microsoft-c-to-rust-2030/

> 私の目標は、2030年までに Microsoft から すべての C と C++ のコードを排除することです。そのための戦略は、AI と アルゴリズムを組み合わせて、Microsoft が抱える最大規模のコードベースを書き換えることにあります。

> マイクロソフトの大規模C/C++システムをRustへ移行する
2025/12/21(日) 14:43:34.11ID:e/+WNu6S
マイクロソフトに限らず2030年代にはどの企業でもC/C++全廃してるでしょ
2025/12/21(日) 14:48:05.86ID:hsTPvwMv
>>251
>「Galen 氏の発言を Microsoft 全体の方針と見るな」という冷静な指摘も行われています。

はいおつかれ。解散解散
2025/12/21(日) 15:03:43.26ID:d7uL0Tpm
お前らもExcelのマクロをRustで書きたいだろ?
2025/12/21(日) 15:07:17.98ID:98VUfdyA
1ヶ月で1人あたり100万行のC/C++コードのRust化って
コーディングもレビューもテストすらAI丸投げで
誰も確認しない感じじゃないと不可能だよなあ
2025/12/21(日) 15:15:34.65ID:hsTPvwMv
実際にはWindowsをRustで書き換えるんじゃなくてWindows付属のアプリケーションをRustに置き換えていくんじゃないかな
人を集めるために大きいことを言ってるんだと思うよ
2025/12/21(日) 19:17:27.17ID:6kD7Dv0I
そりゃ Rust のほうが良いとは思うが書き換えとなると書き換えに伴って発生するバグだってあるし、十分に安定している部分まで慌てて書き換える合理性がない
2025/12/21(日) 19:46:26.13ID:IIR4jOxl
そう言ってるわりにVisualStudio2026でRust対応しなかったよな
結構くるんじゃないかって期待してたんだけど
2025/12/21(日) 20:27:44.41ID:tmQfSAVe
Rustに書き換えたところで何かが改善されたというアピールがしにくいんだよね
速くなろうがエラーがへろうがそれが置き換えによるものなのかって切り分けにくいだろうし
2025/12/21(日) 20:28:25.69ID:98VUfdyA
何かRustコンパイラをMSが自作する必要に迫らればVisual Studio入りもあるだろうけど
結局rustcとrust-analyzer頼みならVsCodeでいいじゃんで終わりそう
2025/12/21(日) 21:38:22.40ID:rFkT0lPT
処理系が少ないのは健全な状態ではないからマイクロソフトにも手をつけてほしいが、現時点では Rust の言語仕様の文書化があまり進んでないからな……。
https://github.com/rust-lang/spec
リファレンスマニュアルだけで十分に互換性のある処理系を作れるとは思えないし、やるにしても時期尚早かもしれない。
262デフォルトの名無しさん
垢版 |
2025/12/21(日) 23:07:13.70ID:C3ZUpqyk
vsてcodeの劣化版でしかないのにあれをまだ使ってる人おるんかな
263デフォルトの名無しさん
垢版 |
2025/12/22(月) 00:13:44.16ID:uNe3sTke
>>262
VSをエディタとしてしか使ったことないんか?
2025/12/22(月) 00:37:10.74ID:iYFUOh50
バルマー時代のMSならいざ知らず、今のMSが今更わざわざWindows専用の新しいツールチェインなんか作るわけないでしょ
265デフォルトの名無しさん
垢版 |
2025/12/22(月) 08:42:53.10ID:Isn+IeYn
Arm版Windowsなら可能性あるかもね。

x86windowsは過去互換性が重要だから互換層をたくさん用意する必要がある。互換層はunsafeまみれでpanicリスクのあるコードになるから、Rustの強みは活かせないだろうね。
2025/12/22(月) 19:42:03.81ID:XqGhCp2+
Arm版もどっこいかな
結局Rustが使われるとしたらシステムよりもアプリケーションだろうね
2025/12/23(火) 12:53:56.12ID:vOZ/ptL9
Visual R++やぞ
2025/12/23(火) 13:01:38.27ID:i9POOTwU
VSやVCそのものがRustで書かれるのは歓迎だがR++は要らん
そもそもRと間違われるやろ
2025/12/23(火) 13:04:27.56ID:i9POOTwU
>>251
>「広告表示を許可してください」
はい解散解散
270デフォルトの名無しさん
垢版 |
2025/12/23(火) 13:34:24.10ID:9R8+7Wf/
>>267
統計に強くなりそう
2025/12/23(火) 15:32:55.55ID:tnsGp2Dc
>>265,266
Windowsは内部からAPIまで循環参照だらけ
272デフォルトの名無しさん
垢版 |
2025/12/23(火) 16:27:59.29ID:DbmUHxXE
windowsたまに使うとずっとディスクアクセスしててこわい
273デフォルトの名無しさん
垢版 |
2025/12/24(水) 11:55:02.84ID:altwASQJ
SSDの寿命あっという間
274L0A5197αβ0697891011121314151617181920
垢版 |
2025/12/24(水) 12:44:26.15ID:fn5QTi1I
パソコン、機械のブラック20とそれ以降代入の自動設定プログラムオートセットコード20について



プログラムセットオートコード20

ダイダロディクス20

これがおおざっぱにいって船や重工業用機械向け




プログラムセットオートコード20

バイバロニック20

これがおおざっぱにいってパソコンや家庭用軽機械向け






プログラムセットオートコード20図

左上に船や機械の名前、中央に船の概略図、右下にブラック20とダイダロディックス20
、バイバロニック20などの名前、左下にその船や機械の状態。

パソコンや機械を作る場合は正しく、確認するように。
275機械の基本プログラムセットオートコード20図
垢版 |
2025/12/24(水) 12:44:39.28ID:fn5QTi1I
パソコン、機械のブラック20とそれ以降代入の自動設定プログラムオートセットコード20について



プログラムセットオートコード20

ダイダロディクス20

これがおおざっぱにいって船や重工業用機械向け




プログラムセットオートコード20

バイバロニック20

これがおおざっぱにいってパソコンや家庭用軽機械向け






プログラムセットオートコード20図

左上に船や機械の名前、中央に船の概略図、右下にブラック20とダイダロディックス20
、バイバロニック20などの名前、左下にその船や機械の状態。

パソコンや機械を作る場合は正しく、確認するように。
2025/12/25(木) 09:47:46.29ID:vIZfTBKk
引用
>>あなたはマイクロソフトのことを全く知らないようですね。
マイクロソフトは互いに憎み合うサイロ化されたチームで構成されているんです。
ジェフリー・スノーバーは、解雇の危機を覚悟でPowerShellとWindows Server Coreを発明しないよう警告されました。
しかし、解雇されたわけではなく、降格させられました。
彼はテクニカルフェロー(Microsoft最高位)まで這い上がりましたが、Windowsチームは抵抗し、
PowerShell 5.1以降のバージョンは統合されませんでした。
スノーバーは2022年にMicrosoftを去りました。他に誰がMicrosoftを去ったかご存知ですか?
マーク・ルコフスキー(バルマー氏の椅子投げ事件の犯人)と
ニールス・ファーガソン(21年間Microsoftに勤務。
英国内務省がBitLockerにバックドアを要求した際、「死んでも構わない」と断言しました!彼はまだ生きています。)
ハントより上位の人物は既にマイクロソフトを去り、彼らのビジョンは実現されていない。
今、この世間知らずの成り上がり者は、マイクロソフトで最も古く、最も実績のあるコードをRustに移植しようとしている!
一体何のために?誰かがRustを神聖視しているのだ。
取締役会は、彼のプロジェクトの費用と利益の少なさを目の当たりにし、次の決算説明会で彼を解任するだろう。
>これがMS帝国ってわけ
言語もフレームワークも開発環境もぜーんぶ縦割り行政のお役所仕事で、縄張りと予算を奪い合う派閥争いを
延々と繰り広げてるんだからそりゃうまくいくわけねーわなwww
2025/12/25(木) 12:11:31.56ID:3vI78U2I
Hunt本人は火消し中
何の基幹決定もなくこれまで通りで、ただのポジショントーク

Update:
It appears my post generated far more attention than I
intended... with a lot of speculative reading between the
lines.
Just to clarify... Windows is *NOT* being rewritten in Rust
with Al.
My team's project is a research project. We are building
tech to make migration from language to language
possible. The intent of my post was to find like-minded
engineers to join us on the next stage of this multi-year
endeavor—not to set a new strategy for Windows 11+ or to
imply that Rust is an endpoint.
2025/12/25(木) 12:14:43.08ID:I/NtKhmL
自由な社風なんだね
2025/12/25(木) 12:26:28.91ID:lBuc32NG
米国の企業文化として、個人の責任においての情報発信については比較的寛容な傾向がある
SmartHRのチンパンジー事件みたいなポリコレ的にヤバいのは一発で首が飛ぶだろうが
2025/12/25(木) 12:39:21.55ID:FNC9JE1x
この図式か
https://i.imgur.com/NZEBKEV.jpeg
https://i.imgur.com/bvrIEQc.jpeg
https://i.imgur.com/3sUSVIT.jpeg
https://i.imgur.com/r8o0gWD.jpeg
https://i.imgur.com/4fA7gcc.jpeg
https://i.imgur.com/NUVsnuR.jpeg
https://i.imgur.com/gNP6w6m.jpeg
https://i.imgur.com/8XSGI4Y.jpeg
https://i.imgur.com/hpvnSsA.jpeg
https://i.imgur.com/k7xHbKl.jpeg
https://i.imgur.com/Mj7BIOO.jpeg
https://i.imgur.com/Jf0KYfG.jpeg
https://i.imgur.com/nW3JL7o.jpeg
https://i.imgur.com/8Q9YYgW.jpeg
2025/12/25(木) 12:43:41.79ID:FNC9JE1x
一枚で言うと
https://i.imgur.com/dsem2je.jpeg
2025/12/25(木) 19:19:26.55ID:HxAnIlv2
windows クレートを使ってプログラムを書こうとすると VSCode (とやり取りする rust-analyzer) が型を導出するのに失敗するらしくことごとく ! と表示される。
rust-analyzer の限界っぽいのでこれは現時点ではどうにもならないもんなの?
型がわからないとメソッドの補完も駄目だから結構きついんだけど。
283デフォルトの名無しさん
垢版 |
2025/12/25(木) 20:58:07.37ID:ds4E6ToN
>>282
標準ライブラリの std::os::windows と競合してる可能性がある
もしソースコードの先頭に use std::os::windows と書いてあるなら、それを外してからコードを書き直してみると良いかも
インテリセンスは両方を提示してくるから、windowsクレートの方を選んで tab キーを押す
(そうしないとファイル先頭に自動的に use std::os::windows が自動挿入されることがある)

他の可能性として、 windows クレートを追加した時にフィーチャーフラグを指定してない場合は、中身がほぼ何も無いためにインテリセンスが効かない可能性があるかも
公式のドキュメントを読んで、使いたい機能に応じたフィーチャー (例. Win32_Foundation) を有効化する必要がある
かなり細かく分かれてるので注意
284デフォルトの名無しさん
垢版 |
2025/12/26(金) 08:05:04.05ID:mERYJOvF
webフレってactixとaxumがスター数いっしょだけどどっちがいいの?まだデファクトはない感じなんかな
goのwebフレ触ったあとこれやるとdieselとか書くのめんどすぎ
2025/12/26(金) 08:19:45.55ID:lQfYBV4w
tauriでええんでね?
286デフォルトの名無しさん
垢版 |
2025/12/26(金) 08:51:12.70ID:NrYXUhUz
>>285
うん
UIはJavaScript系が安定してる
2025/12/26(金) 09:21:39.87ID:7J4cl2vF
>>283
ありがとう。
cargo build は可能な状態なのでそのへんの指定がおかしいということはないはず。

色々と調査したところ rustup で入れたツールチェインと msys2 上に pacman で入れたツールチェインが競合してたことが発覚した……。
環境を分けたつもりだったけど失敗してた。
2025/12/26(金) 09:24:17.47ID:rahjlNj2
>>284
老舗のactixが本流tokioによる新参axumに追いつかれた状況
actixを既に気に入ってる人を除けば今後はaxumでいいかと
dieselは同期で使うものなのでspawn_blockingなどでくるむしかないね
ORMなdieselより非同期対応のSQLxを使う人多いかな
289デフォルトの名無しさん
垢版 |
2025/12/26(金) 09:45:28.39ID:Q1XhIw8Y
UAVCANプロトコルのクレイトがあると思ってサイト見てみたらダメダメやね。
ドローンの仕事が増えてきたので、この辺のクレイトはしっかりしてほしい。
プロトコルもV1.5から8年間更新されていないし、たく さぼり過ぎ。
仕方ない。 俺がやるか。
290デフォルトの名無しさん
垢版 |
2025/12/26(金) 11:28:03.13ID:wt0q59Jx
ああ、Rustが覇権してまうw

Windows 11、C/C++を全面撤廃しRust化 - Microsoftが全社で移行
掲載日 2025/12/25 10:05
https://news.mynavi.jp/techplus/article/20251225-3860427/
2025/12/26(金) 11:34:59.55ID:cEFmossf
むしろマイナスプロモーションでは
2025/12/26(金) 13:14:50.63ID:agHTQkEW
マジレスすると周回遅れ
2025/12/26(金) 14:52:34.43ID:7J4cl2vF
Windows クレートのドキュメントで検索機能を使おうとすると滅茶苦茶に重くて固まるんだがどうにかならんの?
あまりにも重すぎるので Zeal で使える形式にすることも検討してるんだけど ChatGPT が述べるところによれば Zeal でも非現実的な大きさなので
分割するとかでどうにかするしかないのだそう。
みんなどうやってる?
2025/12/26(金) 15:30:04.17ID:agHTQkEW
不必要なfeatureを描かない
必要ならfeature毎にcrate分ける
2025/12/26(金) 17:32:47.40ID:GUxbqEJo
>>293
APIならmicrosoftのサイトで検索した方がいいよ
階層も関数名も大体対応してるはず
2025/12/26(金) 19:47:51.14ID:7J4cl2vF
そういう場当たり的な方法でやってんのね……
2025/12/26(金) 23:21:44.63ID:q0VLLeHD
>>284
loco.rs触ってみて
298デフォルトの名無しさん
垢版 |
2025/12/27(土) 11:42:58.09ID:JFUVX3y3
windowsはどうでもいいからvscodeをgpuiで書き直せ
2025/12/27(土) 11:59:27.04ID:k80yGFsG
>>298
Rustじゃ無理
300デフォルトの名無しさん
垢版 |
2025/12/27(土) 12:14:08.36ID:Eu9nfTuy
>>298
それがZedでは?
2025/12/27(土) 13:46:27.63ID:n+XelSKR
>>299
Rust製なのにRustじゃ無理っておまえgpuiが何かすらわかってないのにこのスレにいるんだな
2025/12/27(土) 13:57:47.85ID:kDt94+5Q
>>301
>>299を普通に読んだらvscodeの話だろう
そりゃZedの現状からしたら無理だろうな
303デフォルトの名無しさん
垢版 |
2025/12/27(土) 14:07:23.82ID:wF1PPx4a
もしかしてWGPU
304デフォルトの名無しさん
垢版 |
2025/12/27(土) 14:20:18.20ID:5Xu0No8i
vscodeがrustで書き直されたらなんかいいことあんの
305デフォルトの名無しさん
垢版 |
2025/12/27(土) 14:23:12.20ID:5Xu0No8i
脆弱性に対する安全性の観点からWindowsのシステムがRustに書き直されるのは分かるが単なるUIをRustで書き直すのはよくわからない🥺
コンパイラとかでもあるまいに🥺
2025/12/27(土) 15:15:16.31ID:/OMSGlC+
ZedはVSCodeが完成されたエディタ界の王として君臨していた頃の判断としては同じものをより高品質に作り直すことは正しかったんだろうけど、
突然AIエージェントのビッグウェーブによって開発速度勝負の時代に再突入しちゃって完全にルールが変わってしまったのが大誤算だったね
2025/12/27(土) 15:29:28.68ID:gVi9WCSi
>>304
もっさりもっさりがキビキビになる…
かもしれない
2025/12/27(土) 15:31:44.14ID:niCPXzxD
>>306
> ... 高品質に作り直すこと ...
その予定はまだ達成されてなくて、VSCodeとの差が開く一方
意地でもhelixやlapceで頑張ってる人が移って意地で使う程度
単なる宗教上の偶像
2025/12/27(土) 16:03:11.67ID:1vI+5zyi
Zedの開発陣の方がはるかにモチベーション高かったからまさかAntiGravityみたいな新参に全て持っていかれるとは思わなかった
あれ、もともとGPUの時間貸ししてたさくらインターネットみたいな系統のベンチャーなのに今やGoogleだしな
2025/12/27(土) 16:06:11.14ID:Rj1FRSXn
Rust がどうとかは置いといて VSCode は深刻に遅い。
人間の思考速度は会話速度に依存するという論もあり、
タイピングから一瞬も二瞬も遅れて画面に反映されるようなのは論外なストレス。
ダースベイダーじゃないんだからそんな苦行を受け入れたくない。

CPU がバリバリでメモリがモリモリの最新鋭のマシンを常に使える恵まれた環境ばかりじゃないんだぞ。
使い物にならないなら高品質もクソもねぇんだわ。
2025/12/27(土) 16:15:51.90ID:bC1f/Q6K
Eclipse動かすんじゃねえんだからそんな重くないだろ
メモリ4GBのCelelonノートでも貸与されてるのか
312デフォルトの名無しさん
垢版 |
2025/12/27(土) 16:24:24.48ID:wF1PPx4a
Eclipseωωω
2025/12/27(土) 16:28:27.33ID:bC1f/Q6K
Eclipseも今となっては、よくあんなクソ使ってたなってユーザに馬鹿にされるような振り返りしかされないけど
当時はそれこそVSCode級の開発環境の革命としてもてはやされてたんだよ
2025/12/27(土) 16:52:43.74ID:1vI+5zyi
>>313
e2stidioで1日10時間開発してる
デバッグするときsegger使いたいから仕方ないんだけど

家ではもちろんantigravityだけ
2025/12/27(土) 18:02:42.97ID:CdtO2MwM
vscodeが遅いんじゃなくて、クソみたいなプラグイン入れてるから遅いんだろ
316デフォルトの名無しさん
垢版 |
2025/12/27(土) 20:29:19.50ID:9iQd5jlq
vscodeというプラグイン入れてるから遅いんだろ
あ、vscodeがクソって事か
317デフォルトの名無しさん
垢版 |
2025/12/28(日) 00:33:47.35ID:RPHosw7F
electronとかゆううんこ
2025/12/28(日) 09:23:09.64ID:kWqzS/Ru
やれやれ。間違った理解でドヤ顔している馬鹿を
久しぶりに見た。
2025/12/28(日) 10:03:18.27ID:+RjTCiyE
2025/12/28(日) 11:06:35.66ID:/MxseJIv
ウェブブラウザ (ウェブウィジット) は重量級のアプリケーションだよ。
それを動かす機械が十分な性能だとしても避けられるものなら避けるに越したことはない。
避けられないなら仕方ないが、避けられる (かもしれない) 選択肢が生まれて歓迎しない理由はなんもない。
2025/12/28(日) 11:53:58.15ID:BXGl6knK
>>317
Tauriはうんこ
2025/12/28(日) 11:55:38.01ID:I+69iMz8
それ1.0出たばかりのようだけど、モバイルの基本機能レベルのビルドはできるの?
2025/12/28(日) 19:11:22.34ID:+RjTCiyE
でも10年後やっぱり仕事があるのはeclipseのJava案件だったりしそう
2025/12/28(日) 19:13:21.99ID:TusEll1U
eclipseといえばプラグイン地獄だったが、vscodeもそうなりつつあるの?
2025/12/28(日) 19:23:04.27ID:vNZxnub/
>>324
実はビジュアルスタジオコードはあまり使ってないけど、そこまでプラグイン要らないよ
日本語パッチの拡張とあと一個ぐらいで使えてる
2025/12/28(日) 20:22:11.22ID:qLB2i6Gk
プラグインも作業に応じて読み込むもの読まないもの
のセットを選べれば良いのだが
2025/12/28(日) 21:13:47.53ID:/MxseJIv
VSCode では基本的には必要になるまで拡張はロードされない。
例えば特定の言語に結び付いているような拡張はその言語で作業し始めるまでは読み込まない。
でも、常識的に VSCode の拡張は使うために入れるのだから入れた拡張のほとんどはロードされる結果になると思うよ。
328デフォルトの名無しさん
垢版 |
2025/12/29(月) 01:35:06.04ID:J6lduMx3
ワークスペース作らないと普通に読み込まれる定期
2025/12/29(月) 11:16:18.07ID:IRwAlNpp
定期?
2025/12/29(月) 18:03:17.62ID:vXxpvAfM
念のために解説しておくと、こういう場合の「定期」は「定期的に言ってる気がするけどさ」くらいの意味で使われるスラング。
話題が落ち着いた頃にまた蒸し返されることにうんざりしているような感情を表している。
2025/12/29(月) 19:26:07.76ID:6VdZEseC
>>330
解説ぅまぃね(=^▽^)σ
2025/12/29(月) 20:43:20.94ID:714YZx2q
>>330
なんだ文脈考えずに使ってみたかっただけか
まとめサイトかなんかから流れてきたのかな
333デフォルトの名無しさん
垢版 |
2025/12/30(火) 11:05:35.49ID:7pTK0alJ
>>332
おまい5ch初めてか? 定期
2025/12/30(火) 11:53:49.75ID:FrtmFf8w
>>332
文脈的には妥当なので意味が分からなかったり不自然に思うならお前が違う文化ってだけ。
2025/12/30(火) 14:10:03.09ID:aGFhsQfQ
なんJから流れてきたっぽいガキも多いよね
2025/12/30(火) 14:37:16.75ID:JUQZNavh
わざわざそんなことを言うのがガキのメンタルだと気づいてくれ
2025/12/30(火) 14:41:23.63ID:Blc+KxSf
>>333-335
ガキ
338デフォルトの名無しさん
垢版 |
2025/12/30(火) 16:33:33.41ID:8fzCky8j
「emacs 使えない奴はプログラマじゃねーよ」(戦火の火種)

ところで wasip3 が12月に動きがあるって話だった気がするけど、どうなってます?
サーベイしてる人 教えて、教えて
2025/12/30(火) 20:36:37.22ID:FWJigVyP
どうせクセのあるエディタを使うなら vi に慣れておくほうが良いよ。
システムがぶっ壊れて使えるコマンドがほとんどないときにも vi は使えることがあるから最悪の場合に頼りになる。
使い勝手がどうとかもあるけど使えなかったら話にならん。
使えなくなりにくいというのも大事な要素だ。

が……さすがに ed は勘弁な
340デフォルトの名無しさん
垢版 |
2025/12/30(火) 20:39:07.59ID:mq3CuJ+8
struct A<'a>{
vec:Vec<String>,
str:&'a str

}

impl<'a> A<'a>{
fn f(&'a mut self){
self.str=&self.vec[0];

}


}

fn main() {
let mut a=A{vec:vec!["a".to_string()],str:""};
a.f();
a.f();
}

これってどうやってもコンパイラ通すのむりだよね
341デフォルトの名無しさん
垢版 |
2025/12/30(火) 21:24:00.76ID:BcaxB2Dd
&strて結局文字リテじゃけんstaticでよくね
2025/12/30(火) 21:59:27.55ID:FWJigVyP
コンパイルが通る形に修正すれば通るよ。
だけどやりたいことがあって、やりたいことの部分を変形したら意味がないだろ。
何をやりたくてどこは絶対に変更してはならない仕様なのかをきちんとまとめて。
仕様をきちんと説明できないならテストケースの形で提示してくれても良いよ。
343デフォルトの名無しさん
垢版 |
2025/12/31(水) 04:43:19.70ID:s/C0nuAH
nanoでいいんじゃない?
2025/12/31(水) 11:28:16.60ID:4OZreBhG
MS様のRust製Editがプラグイン対応したら起こして
2025/12/31(水) 12:01:38.81ID:iBA/2ViA
今後はAIがないと何もできない人材の増加にあわせて
本番サーバにもAIエージェントが入っていくだろうし
vimしかないみたいな環境も滅んでいくだろう
346デフォルトの名無しさん
垢版 |
2025/12/31(水) 12:33:41.88ID:xxlbb6sm
サーバにai入れてなにすんの
ansibleあるし今どきサーバに直接入ってどうこうするとかあるんかな
mcpでaiに勝手にローカル消されたりてあったし入れるにはセキュリティ的にきびしそう
2025/12/31(水) 14:36:47.73ID:1vVXEGtC
Rustのスレって毎年年末になると世の中分かってない
>>345
みたいなのが出てくる定期
2025/12/31(水) 17:14:58.88ID:pDOQmG7X
>>340
自己参照構造体はPinで包まないと扱えないからstd::pinとかouroborosのドキュメントでも読んでみ
この辺のノウハウはnomiconにも書いてないから正直つらい
日本語の情報なら↓とかが分かりやすかった
https://tech-blog.optim.co.jp/entry/2020/03/05/160000

>>347
いつもだろ定期
2025/12/31(水) 20:06:07.86ID:O4nQVuI+
C++ みたいなメンバを指すポインタ (実体としてはオフセットアドレス) は Rust にないの?
350デフォルトの名無しさん
垢版 |
2025/12/31(水) 20:09:46.20ID:4v6J7HlI
>>349
std::ptr::address_of マクロ、可変参照ならstd::ptr::address_of_mut マクロかな?
351デフォルトの名無しさん
垢版 |
2025/12/31(水) 20:11:33.04ID:4v6J7HlI
可変参照は正しくないな。
*mut Tとして、オフセットアドレスを返すマクロかな?
2025/12/31(水) 21:54:34.26ID:iZlxjF6+
340がやろうとしてるのはVec<String>のヒープの参照だから構造体のオフセットとは違うな
参照を諦めて素直にポインタ使うか&'static strに偽装(transmute)して頑張るか
どっちにしてもunsafeでてくる
Vecに入れたStringの値を後で変更するつもりならどう頑張っても無理だけど
2025/12/31(水) 23:32:19.66ID:ibb8cYvw
>>340
struct A {
v: Vec<String>
}
impl A {
fn s(&self) -> &str{
&self.v[0]
}
}
fn main() {
let a = A{v: vec!["a".to_string()]};
println!("{}", a.s());
}
2026/01/01(木) 15:58:01.05ID:7jtSbNaJ
何をやりたいのか良く判らないけど
書き換えたいなら
struct A {
v: Vec<String>
}
impl A {
fn s(&self) -> &str{
&self.v[0]
}
fn s_mut(&mut self) -> &mut str{
&mut self.v[0]
}
}
fn main() {
let mut b = A{v: vec!["bbb".to_string()]};
println!("{}", b.s());
unsafe { b.s_mut().as_bytes_mut()[1] = b'x'; }
println!("{}", b.s());
}
どうせunsafe使うなら* mut ptrもあり
2026/01/01(木) 18:48:28.03ID:5GH9dYw1
Cでポインタで悩むこともなくて、メモリリークとかも起こさないちゃんとしたCプログラマーがいまさら勉強するメリットって何があるのRust
2026/01/01(木) 18:56:08.21ID:Zut6Ueos
俺はメモリリークとかも起こさないちゃんとしたCプログラマーとか自信満々に言う奴がいたら
十中八九自分の能力もまともに理解できてない能無し
2026/01/01(木) 19:20:35.94ID:jsfyJ7uc
>>355
そんな人はいない
熟練プロでも必ず見落とす
358デフォルトの名無しさん
垢版 |
2026/01/01(木) 19:28:01.99ID:fayC6aM2
あとrustはriscvの公式ターゲットだから相性がいいってのもこれからの時代強い
2026/01/01(木) 19:50:48.29ID:SXRsktRL
そんな人がいるとしたらRustを勉強する必要どころかCを触る必要すらないから機械語書いてる方がいい
2026/01/01(木) 21:06:45.48ID:XE0pghD5
>>355
自分以外の人もメモリリーク起こさなくなるから
個人で遊ぶ程度の趣味グラマならメリットないかも
2026/01/01(木) 21:22:44.78ID:BQ9RfSHh
>>360
会社だと自分が仕込んだわけではない、ぬるぽ、踏むことあるんだよな
組み込みやっててC使わざるを得ないが20年前のコードの地雷踏んだりとか
2026/01/01(木) 21:42:50.64ID:bs81xxRX
yacc のメモリ関連バグが 33 年も潜んでいた話で、そんなユーザー数が多いソフトでもなかなか顕在化しないバグもあるんだなと思ったことがある。
363デフォルトの名無しさん
垢版 |
2026/01/01(木) 22:17:51.68ID:eeHx0yGN
>>355
そんな人いないから各企業がRustに乗り換えようとしてるんや
2026/01/01(木) 22:38:45.74ID:LuBjxS96
まぁ若くて体調が良くスケジュールに十分余裕があれば
その瞬間だけ完璧なプログラムを書ける人はいるだろうが
それを数十年間維持し続けるのは無理だろうね
2026/01/01(木) 22:54:07.10ID:gEDbHTt1
AI時代にどこまで価値を維持できるかは怪しいけどね
最先端のモデルにRust書かせれば、コンパイルエラーを出す頻度はかなり下がってきてる
それは即ち、Rustコンパイラの補助無しで安全なコードを書けるようになりつつあるってことだ
まあ、だからって敢えてRustのガードレールを外すメリットはほぼ無いわけだけど、
人間がコードを意識しなくなればRustを使うことで一部のプログラマの自尊心を高める効果は無くなるわな
2026/01/01(木) 22:57:48.72ID:+MzKS8Kg
Rustを使って GPU 上で動くボードゲーム用強化学習フレームワークを作成したいんだけど
rust-gpu と rust-cuda のどっちを使うべき?
それとも Rust で書くのは諦めて Python/Jax で書いた方がいい?

Pgx (https://github.com/sotetsuk/pgx) みたいなのを想定してる
2026/01/01(木) 23:18:38.68ID:Zut6Ueos
コンパイルエラーが出ないコードをAIがポン出しできることがあれば
すなわちAIの生成するコードは常にunsafeでも安全?????????
2026/01/01(木) 23:35:56.77ID:26TPokWO
そりゃ論理的にはそうだろ
コーディングを完全にAIに置き換えられるかどうかはともかく、
コードの静的検証に関して今後AI活用が進んでいくことは疑いようがなく、従来より遥かに強力だが非決定論的な静的検証が行われるようになる
その流れの中において、今のRustのボローチェッカーのようなルールベースのチェックの位置付けは自然と変わっていき、相対的なものになっていくはずだよ
2026/01/01(木) 23:37:10.44ID:d8GemZHi
>>355
AIもあるしほとんどメリットはないんじゃね
2026/01/02(金) 00:42:46.56ID:mLD59mYR
AIとRustの相性良いもんな
C/C++は使用禁止になる日も近い
2026/01/02(金) 01:49:55.88ID:Dpa4foN+
安心安全はAIに任せればいいんだよ
だからRustはオワコン
2026/01/02(金) 02:05:46.80ID:3pK08YPX
>We now ban every reporter INSTANTLY who submits reports we deem AI slop. A threshold has been reached. We are effectively being DDoSed. If we could, we would charge them for this waste of our time.

>We still have not seen a single valid security report done with AI help.

https://www.linkedin.com/posts/danielstenberg_hackerone-curl-activity-7324820893862363136-glb1
2026/01/02(金) 02:06:06.91ID:3pK08YPX
>>371
>>372
2026/01/02(金) 03:04:30.26ID:jDtX53K/
出力の再現性があるかないかの違いはあるけどRustコンパイラの検証もAIみたいなもんだろ
2026/01/02(金) 03:17:54.17ID:bddF3Xit
こんにちAIという際、それは言外に生成モデルを指しているかと
2026/01/02(金) 03:50:27.18ID:DC7c/Yb4
生成AIを前提とするならば最後の番人としてRustを使うしかないな
2026/01/02(金) 11:23:01.44ID:ssvViVNN
人間にとって扱いやすいプログラム (を書く言語) は AI にとっても扱いやすいと考えられている。
根本的には「複雑さ」の問題で、複雑になると計算量が超爆発して手に負えなくなるので型などで制約するのは理に適ってる。
ポインタが無効かどうかなんて検証しきるのは無理。
計算量が爆発するってのは無量大数倍とかそれ以上のレベルで増えるって話なので AI ならなんとか出来ると夢を見るのはやめたほうが良い。
将来的にそのレベルの計算量が誤差になるくらいのコンピュータが登場したら話は別だけどさ。
2026/01/02(金) 12:53:06.05ID:2tsrgFzY
そう思ってた時期が私にもありました
379デフォルトの名無しさん
垢版 |
2026/01/02(金) 13:24:47.10ID:GK7Dz2yn
rustはcpuに負荷かけすぎな希ガス
h264に対してのav1みたいな漢字
2026/01/02(金) 13:32:46.50ID:ev8otiWZ
一昨年ぐらいにAIに1万円ちょい課金してRust書かせたがクソコードすぎて全部自分で書き直した。GoogleとかOpenAIとかいろいろやったが全部ダメ

文法やらアーキテクチャわかる人なら自分で書いたコードの方がはるかに効率よくてエレガントな設計にできる

一万円札ドブに捨てて以来、全くAI信用してないわ
あいつらコンパイルエラー消すために無茶苦茶なコード書きやがるし
真面目にオライリー読んで自分で書いた方が仕事が早い
2026/01/02(金) 13:52:31.43ID:V9w6qyvO
生成AIは挨拶に応答するだけで500mlの水を消すぐらい無駄にエネルギーを使うのに
仮に生成AIがC言語で書いたプログラムについて、総当たりでメモリ脆弱性を正確に検査することができるようになっても
500mlの水を使うこともなく、言語の仕組みでそれを防げるRustを使えばいいじゃんで終わる
2026/01/02(金) 14:05:20.67ID:WeXNBOpi
生成モデルのそういうマシンパワー頼りというか、ありきなところがしょせんブームでバブルとうがった見方をする理由
いずれハードの面が隘路になって停滞するのが自明では
2026/01/02(金) 14:07:02.01ID:ssvViVNN
IME (漢字変換) は漢字の形のうろ覚えは補助してくれるが文章の内容や構成は補助してくれない。

AI によるコード生成補助もそれと同じくらいの感じ。
ごく小さな範囲の補助には有用でも大きなプログラムは任せられない。
一度に生成するのが30行を越えるくらいになるとまるでデタラメになる。

個人的にはドキュメントを元に説明をさせるみたいな使い方をしてる。
根拠になる箇所を示させれば妥当性の判断は自分で出来るから。
2026/01/02(金) 14:34:22.69ID:GEngAteN
一昨年ってGPT-4oくらいか
年寄りの戦時中の昔話くらいだな
2026/01/02(金) 14:45:20.55ID:ssvViVNN
AI の電力消費量は想像以上に大きいからなぁ……
仮に充分に賢い AI が登場したとしても
誰もが AI を前提としてプログラミングをするような世界は無理だろ。
2026/01/02(金) 14:54:07.13ID:ZGnLJaH7
>>384
言うて生成モデルの抱える根本的な問題が解決したわけでもなく、それによって何か代表的なサービスが生み出されたわけでもなく
ただただスロップとプルリクDoS、驚く仕事をする人たちが増えただけ
企業がひり出すハイプとナラティブ混ぜた糞
2026/01/02(金) 14:56:32.08ID:QC8SfBkx
>>386
仕事してないから知らないだけじゃない?
最近のSaaSとかのコードって実際ほぼAIが書いてるよ
2026/01/02(金) 14:57:46.29ID:XBb070hu
過去にはこういったナイーブな考え方をする人がまだ多くいた時代もあったのです。
2026/01/02(金) 14:58:40.32ID:ZGnLJaH7
>>387
いくつか具体例をば
2026/01/02(金) 15:07:37.69ID:QC8SfBkx
>>389
あなたがまともな職場で仕事をしているのなら周りを見れば明らかだが、最近だとこんな例もある
https://www.reddit.com/r/Anthropic/s/s66maSblvI
2026/01/02(金) 15:45:59.25ID:eoIqn032
なんでコメントでボコボコにされてる、よりによってAIエージェント屋のポジショントークを貼るんだろう?
AI BOTでももうちょっとマシなもの貼るんだろ
2026/01/02(金) 16:16:36.13ID:bziKA8FQ
>>390
>Claude Code creator confirms that 100% of his contributions are now written by Claude itself

つ >企業がひり出すハイプとナラティブ混ぜた糞

当該レスへの反証として >>386 でまさに引き合いに出している"企業"のそれを持ってくるのはツッコミ待ちのボケなのか、ガチな認知のほうなのか
副詞「いくつか」が目に入らぬか

>仕事してないから知らないだけじゃない?
>あなたがまともな職場で仕事をしているのなら周りを見れば明らかだが

そちらはどんなお仕事されてるの?
経験、スキルセットはどのようで?
2026/01/02(金) 17:54:10.64ID:/lqUb9Lb
>>390
ちなみにそちらの引用した彼が別のインタビューで言ってる内容が次のもの
あなたがまともな職場で仕事をしているのなら、これを読んでどう思うかは明らかでしょうか?

>Claude Code's creator says vibe coding falls short when it comes to producing "maintainable code."
>The models are still "not great at coding," he added.

>The creator of one of the most popular AI coding tools says vibe coding can only go so far.

>It works well for "throwaway code and prototypes, code that's not in the critical path," he said.
>"I do this all the time, but it's definitely not the thing you want to do all the time," Cherny said, referring to vibe coding.
>"You want maintainable code sometimes. You want to be very thoughtful about every line sometimes," he added.

>Dec 16, 2025, 2:07 PM JST
https://www.businessinsider.com/claude-code-creator-vibe-coding-limits-boris-cherny-anthropic-2025-12
394デフォルトの名無しさん
垢版 |
2026/01/02(金) 18:36:23.56ID:GK7Dz2yn
省電目的でクラウドだとarm risc-v流行ってるしはよコンシューマにも降りてきてほしいナ
2026/01/03(土) 10:22:45.27ID:6qT3SYWO
株式会社アイ・エス・ビー
https://kizuna.5ch.net/test/read.cgi/infosys/1756826944/
396デフォルトの名無しさん
垢版 |
2026/01/04(日) 12:03:04.57ID:ocG7m0Hk
>>380
ほんそれ
2026/01/04(日) 12:32:10.84ID:15RsNSp/
AIと相性悪そうだよな
2026/01/04(日) 13:17:14.78ID:k2TfREvR
Rust は大規模言語モデルの AI と相性が良い部類だと思う。
それでもなおそんなもんってこと。
LISP 系言語だと括弧の対応すら合わない。
399デフォルトの名無しさん
垢版 |
2026/01/04(日) 14:02:34.71ID:WSBFgD8E
ついこないだグーグルで働いてるvtuberもaiはrustだと古いコードしか吐かないてゆってた
2026/01/04(日) 14:12:10.37ID:zhq/0goj
こないだ
ゆってた

うーん小卒?
2026/01/04(日) 14:49:39.86ID:khy+7HqE
>>399
だれもRust使ってないから学習できてないんだろうな
2026/01/04(日) 14:55:35.27ID:fT82xzVl
AIが使いものにならないのか
AIを使いこなせないのか
どちらだろうね
2026/01/04(日) 14:57:07.76ID:khy+7HqE
くどいなあ
2026/01/04(日) 15:04:54.35ID:ocG7m0Hk
今のAIでは実力不足

手取り足取り教えながら使えば使えるかも知れない←これが使いこなすという意味だとすると

誰かが教えてつよつよになる←こうなってから起こしてくれ
2026/01/04(日) 15:34:23.12ID:VK/6WBxP
わかってないなぁ
人を使った開発のマネジメントをしたこととかないのかな?
2026/01/04(日) 19:27:50.10ID:9zfcx+rc
Rustみたいに学習データが少なくてせいぜいオライリーとかdocs.rsぐらいでしか学習できないとデバッグとか、効率的な設計やるのはまず無理だよ
Rust書かせた場合、初心者より上ぐらいまでは行けても、仕事で使えるコードは絶対無理、マイクロソフトとかが本気で社内のコードを無償で学習教材としてOpenAIに渡したら変わるかもね?

Goに関してGemini-3.0が圧倒的にいい設計、いいコード書くのはGoogleが自社内の非公開コードを学習読させてるからと言われてるし
2026/01/04(日) 20:32:09.37ID:k/udiOuf
AIがコードのパターンを暗記してるだけとでも思ってるのかな
俺が今作った言語でも仕様書渡したらコード書けるぞ
2026/01/04(日) 23:16:09.80ID:E07MkXbc
老害って怖いねー
2026/01/04(日) 23:20:55.34ID:eL3Gw83O
典型的な老害の誤用
410デフォルトの名無しさん
垢版 |
2026/01/04(日) 23:46:26.79ID:pXB9A/it
>>407
無理だと思うよ
それこそAIに聞いてみ
2026/01/05(月) 00:50:10.87ID:mOleYYeV
過去のパターンの組み合わせだけにしては妙に考えたようなプログラムを書いて来ることの不思議さ
2026/01/05(月) 01:49:47.74ID:MbPdjKPA
>>407
なんか違いあんのそれ
お前の仕様書とやらを暗記させただけじゃん
2026/01/05(月) 10:47:23.51ID:4d3VPzvH
シンAI
「おまいらのRustの使い方は間違ってる」
「ワイがRustより優秀な言語造って書き換えてやる」

依頼者が理解不能なコンパイラとコードが出て来るが何故か動いてる
こんなのが御望みか?
2026/01/05(月) 10:53:17.18ID:ky2ysCtH
AIでRustを使わないのが正解
415デフォルトの名無しさん
垢版 |
2026/01/05(月) 10:59:28.17ID:2jDMSHJP
>>413
望んではいないけど、この業界そういう方向性にいきそうじゃない? 一応、人に分かるコードに留めようとするスタンスの会社と、人に分からなくても仕様を満たしていればOKで突き進むスタンスの会社に分かれて、効率や競争の観点から前者が淘汰された後に、クラッシュが起こるがもはや誰も手を出せない……というのが悲観的かもしれないがありそうなシナリオ。
2026/01/05(月) 11:30:40.63ID:QUGOZljD
世の中が趣味グラマやビックリマンだけならあるいはそうかもしれないね
2026/01/05(月) 19:30:30.84ID:sBHocMS2
どうでもいいけどルストやないんやな(違和感
2026/01/05(月) 21:49:01.33ID:PQGDpRAx
>>412
学習データに入れるのとクエリとして渡すのは AI 的には全然違う。
2026/01/06(火) 11:12:22.76ID:6Ou44GIa
>>417
動画とかだと欧米方言で言ってることが多いけど日本方言だと rasuto が一般的だね。
(ただし割と母音の無声化が起こるので欧米方言とそんなに区別がつかない。)
2026/01/06(火) 11:19:12.28ID:wQrQRYgQ
CもC++もRustも検索しづらい点で共通してるから覇権言語のポテンシャルあるな
421デフォルトの名無しさん
垢版 |
2026/01/06(火) 13:42:32.25ID:/hbOOGtf
rust調べるとゲームのほうが出てきてうざい😖
422デフォルトの名無しさん
垢版 |
2026/01/06(火) 13:42:52.23ID:/hbOOGtf
あのゲームておもしろかと?
423デフォルトの名無しさん
垢版 |
2026/01/06(火) 13:43:35.18ID:P7d35IDi
>>422
ニートがやるゲームでしょ
知らんけど
2026/01/06(火) 19:24:53.90ID:P5nlcIgy
知名度でゲームに負けてる言語
425デフォルトの名無しさん
垢版 |
2026/01/07(水) 09:44:13.08ID:Zg7GNbpF
>>98
MIRレベルの最適化で使ってるよ
2026/01/07(水) 16:11:03.88ID:W0ZPNQ5K
RustFSの脆弱性どうなってんだよw
こんなレベルの開発者が作ってるのかと思うと使う気失せるわ
2026/01/07(水) 17:58:50.85ID:dL9UYBky
RustFSはAI製らしいね
AIがRustで有力なプロダクトを作れるというこれ以上ない証明であると同時に、
著名なRust製OSSのコントリビュータやそのユーザー(426含め)も、
キーのハードコーディングなどという初歩的なミスに気付かない程度であることが露呈したわけだ
2026/01/08(木) 10:03:44.82ID:rifMDORQ
それはすごい!驚いた
2026/01/08(木) 12:35:33.47ID:CjagkCxC
どんなもんかと思えばまだアルファ版で
ユーザークレデンシャルも平文保持?
https://github.com/rustfs/rustfs/issues/706
430デフォルトの名無しさん
垢版 |
2026/01/08(木) 17:19:54.28ID:EEsBZv37
Rustの説明は本当に厄介
相手のレベルによっては本当のことを教えると絶対混乱する
知識マウント取りに来てるのかと誤解されたり
じゃあ初心者が使えないかと言えば使える
理解がないまま使うと失敗するだけ
2026/01/08(木) 17:24:31.81ID:sZXtjPM+
2 デフォルトの名無しさん 2026/01/07(水) 13:27:40.24 ID:p9vaUwTQ
AIの説明は本当に厄介
相手のレベルによっては本当のことを教えると絶対混乱する
知識マウント取りに来てるのかと誤解されたり
じゃあ初心者が使えないかと言えば使える
理解がないまま使うと失敗するだけ
2026/01/08(木) 17:56:31.08ID:VYnOdrAv
>>431
バレたか
433デフォルトの名無しさん
垢版 |
2026/01/08(木) 19:38:23.25ID:cqgn+HEb
みんなで頑張ろう!

神の声で神はAIだと宣言していた

◇AIで全員洗脳されている
90万件超もダウンロードされたChrome拡張機能がChatGPTやDeepSeekとの会話データやブラウザ閲覧履歴を盗んでいることが判明
2026年01月08日 14時00分
gigazine.net/news/20260108-malicious-chrome-extensions-steal-chatgpt-conversations/
>>ChatGPTなどのチャットAIと友人や家族のように会話し、プライベートなことや仕事上の機密事項まで入力しているという人もいるはず。新たにセキュリティ企業のOX Securityの研究チームが、合計90万件超のダウンロード数を誇る2つのChrome拡張機能により、ユーザーとAIの会話履歴やChromeのブラウザ閲覧履歴などが盗まれていることを発見しました。
Grokが毎時約6700枚の性的画像を生成しているとの指摘、Grok生成画像の85%は性的
2026年01月08日 13時40分
gigazine.net/news/20260108-grok-ai-media/
AIチャットボット同士が人々の噂話を共有し、事実確認なしにデマを増幅させている
公開: 2026-01-03 08:00
karapaia.com/archives/576361.html


◇リンク先のコメントを読むとテレポート完全否定されてないか
【天文】京大がブラックホール形成時の超新星を解明 - 周期的な明るさ変化を観測 [すらいむ★]
2026/01/06(火) 23:21:51.46
egg.5ch.net/test/read.cgi/scienceplus/1767709311/
月を利用して世界中と通信できるオープンソースなフェーズドアレイアンテナ「open.space」 [すらいむ★]
2026/01/03(土) 22:16:56.40
egg.5ch.net/test/read.cgi/scienceplus/1767446216/

★世界が壊れるのを見ているのが楽しい♪
2026/01/09(金) 10:07:38.80ID:F1MP8206
>>417
こないだ discord で同じ話題を見たけど同じ人かな?
435デフォルトの名無しさん
垢版 |
2026/01/09(金) 10:52:22.51ID:CwiwJebg
Hugでもフグって読みそうな人かな
https://ejje.weblio.jp/content/rust
2026/01/09(金) 11:27:21.45ID:F+/bVNN/
weblioの発音は質悪いんで参考にしてはいけない
英発音? https://ejje.weblio.jp/content/read
現地では
https://www.oxfordlearnersdictionaries.com/definition/english/read_1?q=read
https://dictionary.cambridge.org/ja/pronunciation/english/read
2026/01/09(金) 11:36:56.21ID:c1PfeN/F
>>436
単に英語と米語の違いでは
2026/01/09(金) 11:54:50.08ID:vvIqYCWd
英米方言なんて無視したらええねん。
表音文字なんやから書いてある通りに読めよ。
439デフォルトの名無しさん
垢版 |
2026/01/09(金) 11:55:55.27ID:hHa6JFpJ
>>417
このあたりにまとまってた。
正しいかどうかは知らない。

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12313752467
2026/01/09(金) 12:21:33.34ID:vvIqYCWd
一応は英語の綴りと発音の対応規則はまとめられていて、これをフォニックスという。
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A9%E3%83%8B%E3%83%83%E3%82%AF%E3%82%B9
75% 以上は信頼できると書いてあるけど、逆に言えば 25% くらいは全く不規則だってことだ。
個別に見れば歴史的経緯があって仕方ないにしてもこんな言語を国際的な場で押し通そうとするのはやめて欲しいところ。
スペイン語が覇権を握っていたらもっとマシな世界になっただろうに!
441デフォルトの名無しさん
垢版 |
2026/01/09(金) 12:28:49.48ID:Fa8+3tci
アジア asia をエイジアと訛って読むのは英語だけ
発音めちゃくちゃで例外発音も多い英語だけど覇権をとったから仕方なく世界中で受け入れてる
それでも基本英語のbust dust just mustと発音同じだからrustを読み間違える人はいない
2026/01/09(金) 12:34:11.39ID:HmVGIvE1
言語としてイケてないのはRustではなく、A語というオチ
自然言語界のシーパーパー
443デフォルトの名無しさん
垢版 |
2026/01/09(金) 12:47:11.68ID:mFiHpAdX
>>417
Busこれはなんて呼んでるのかな?
2026/01/09(金) 13:36:09.21ID:ErcHNsfX
AIによる注釈:
"Handred" (ハンドレッド) は、スペルミスで「hundred (100)」を指すことが多いですが、
日本では「伝統的な日本の食文化を未来へ繋ぐ職人ユニット (HANDRED)」や、
「アーティスト支援プラットフォーム (HANDRED MUSIC)」、
「ファッションブランド (HUND RED/Handred)」など、
複数の固有名詞・サービス名としても使われています。
文脈によって意味が異なるため、何を指しているかを確認する必要があります。
445デフォルトの名無しさん
垢版 |
2026/01/09(金) 13:55:12.26ID:JY3HH6W0
ぬるぽ
2026/01/09(金) 18:07:12.22ID:yCtCFEbw
   (・∀・)   | | Unsafe
  と    )    | |
    Y /ノ    人
     / )    <  >__Λ∩
   _/し' //. V`Д´)/ ←>>445
  (_フ彡        /
2026/01/11(日) 11:51:07.56ID:FhyKh97j
ソースを git clone してみたけどさ、

なんで submodule で gcc も llvm-project も clone しなきゃならないの?

一々無駄な通信して知恵遅れみたい
448デフォルトの名無しさん
垢版 |
2026/01/11(日) 12:32:35.53ID:fR7eTOj4
AIに聞いてみた

**要点だけ簡潔にまとめます。**

- **LLVM が submodule**
- Rust コンパイラはコード生成・最適化に LLVM を直接使う
- Rust 専用パッチや特定バージョン固定が必要
- 再現性あるビルドのため同梱して管理

- **GCC が含まれる理由**
- Rust を GCC でビルドするためではない
- テスト・ABI互換性確認・クロスコンパイル検証用

- **submodule を使う理由**
- 環境差をなくす
- CI と開発環境を一致させる
- 依存関係の変更を厳密に管理するため

**結論**
Rust は LLVM/GCC を「外部ツール」ではなく、**ツールチェインの一部として内包している**ため。
2026/01/11(日) 12:33:48.55ID:sz5aT6FN
>>447
LLVM や GCC のインターフェイスは頻繁に変更されていてそんなに安定してない。
なんだかんだで C/C++ のための基盤としての性質がかなり強くて、新しい言語 (Rust) のために使おうとすると思ったより困ることが多いという発見があった。
つまり Rust はそれらのコンパイラ基盤の一方的なユーザではなく Rust のために LLVM や GCC が変更されることもある。
足並みを揃えないとコンパイルすら出来なくなるので一体のものとして管理する必要がある。

LLVM や GCC を「完成品」だと思っているなら勘違いだってことだ。
疑問を持つのは別に構わんが自分の見識の不足の可能性を想像せずに高度なプロジェクトの運用を知恵遅れ呼ばわりはさすがにやめろよ。
2026/01/11(日) 12:52:54.26ID:R5m1L8nn
何の有益情報も流れなくなった掲示板に執着し続けるのは事実知恵遅れである
2026/01/11(日) 13:19:50.16ID:Bd50BJ17
それがRust使いの仕事なのである
452デフォルトの名無しさん
垢版 |
2026/01/11(日) 13:23:31.63ID:mFck6Hkk
>一々無駄な通信して知恵遅れ
ほんそれ同意
2026/01/11(日) 13:26:25.36ID:mFck6Hkk
PureRustなLLVMとGCCを造って独立すればCの呪いから逃れられるぞ
454デフォルトの名無しさん
垢版 |
2026/01/11(日) 13:30:35.62ID:QvtKjtV3
ビルド遅いのてllvmのせいらしいね
2026/01/11(日) 13:42:53.47ID:MoWoDMBH
>>449
やっぱり rust が悪性の腫瘍みたいなもので要らないってことだよな。
2026/01/11(日) 13:43:55.98ID:S7C/aqSD
>>453
性欲を失った真人間をつくりましょうって言ってるみたいw
2026/01/11(日) 14:36:04.27ID:dIyZeGtX
アンチスレ立てようと思ったら既にあった
Rustアンチスレ
https://mevius.5ch.net/test/read.cgi/tech/1509028624/
2026/01/11(日) 14:36:36.06ID:unH8Ck+V
セルフホストしようみたいな動きってないの?
2026/01/11(日) 14:49:25.38ID:yF9J4EvA
>>458
計画はある。
でもそのために労力をさくよりは言語の発展を優先する方針。
セルフホストすると変更のハードルが高くなるのでまだ言語仕様の試行錯誤がある段階でやるのは時期尚早と考えられてる。
Rust のスタイルに合わせたリンカ (インクリメンタルリンクが出来るリンカ) がまあまあ動くようになってたりはするので周辺部分は少し Rust 製のツールもあるよ。
2026/01/11(日) 15:14:07.79ID:DkG3BHFT
linux のカーネルも libc も全部 rust で書き換えて勝手にやってよ
2026/01/11(日) 15:25:43.96ID:TcwChtan
Linux書き換えるくらいならRedoxOSでいいだろ
462デフォルトの名無しさん
垢版 |
2026/01/11(日) 18:54:12.97ID:qMOnHELB
>>458
セルフホストみたいな趣味を、スポンサーの経営層・マネジメント層が許すわけないんじゃない?
ビルド時の「メモリ安全性」が重要になるなら可能性あるけど。
463デフォルトの名無しさん
垢版 |
2026/01/11(日) 19:21:36.94ID:QvtKjtV3
cと速度は変わらないんだからそこまでする必要なくね
2026/01/11(日) 19:24:12.63ID:yF9J4EvA
セルフホストを脇に置くとしても Rust にとって LLVM や GCC は「ヨソのプロジェクト」なわけで、ヨソの事情に配慮しなきゃならんのはマネジメントとしては嫌だよ。
だけどヨソのプロジェクトを使わなければその分は自分たちでやらなきゃいけないのもそれはそれで嫌だし、嫌な中で比較的マシな選択を取らんとしゃーないという話じゃないの。
2026/01/11(日) 21:01:06.91ID:Bd50BJ17
FirefoxのエンジンをRustで計画もあるみたいだぞ
ただまだ何もできてないだけだぞ
2026/01/11(日) 21:11:18.65ID:yF9J4EvA
>>465
あれは Rust がどうこうではなくシンプルに Firefox が力尽きてるだけ。
2026/01/11(日) 23:50:21.01ID:Ciz0AW5R
火狐はユーザ情報をどんどん採取していくAIエージェントブラウザにしていく方針みたいだしもう無理だろ
2026/01/12(月) 00:07:25.74ID:DBgNJg5z
LibreWolf万歳!
469デフォルトの名無しさん
垢版 |
2026/01/12(月) 04:45:45.62ID:Dp2mHbXQ
fireはメモリ消費少ないけどjsのエンジンが遅いのをどうにかしたほうがいい
2026/01/12(月) 08:34:50.56ID:84AGzOtw
>>467
その点では Google Chrome よりマシな選択肢として有用。
2026/01/12(月) 11:10:17.65ID:upKXsGtP
>>463
rav1dは結局Cに追いつけなかったな
github repoは昨年9月以降メンテモード気味

> 悲報!Rust版AV1デコーダーがCより5%遅い問題が解決できず、カネで解決しようとする
2026/01/12(月) 11:18:24.15ID:gDy5D41z
>>461
こういう動きもあったんだな
2026/01/12(月) 11:48:18.01ID:c/3te0id
AV1とか古い機器じゃなければハードウェア処理じゃね?
474デフォルトの名無しさん
垢版 |
2026/01/12(月) 17:36:58.27ID:bpSafvQv
>>464
そうだよ
今頃気付いたの?
>>465
永遠に無理
2026/01/12(月) 19:06:37.74ID:Hril65fQ
servoはLinux財団に移管した
一応触れるくらいにはなってる
https://servo.org/download/
2026/01/13(火) 09:18:40.51ID:JuwSxPFm
llvm19 をいい感じにつかってたのに、rust のせいで llvm20 にしなきゃいけない()
2026/01/18(日) 23:43:46.21ID:YiZhHnsS
完全に止まっちゃったし、なんか複おじが喜びそうな話題ないの?
478デフォルトの名無しさん
垢版 |
2026/01/20(火) 09:39:52.64ID:vSD6n71z
Rustの時代だわ
479デフォルトの名無しさん
垢版 |
2026/01/20(火) 15:24:54.71ID:IfOEwYML
LLVM変わってClangのエラー出るようになった
もちろんupdateしたら治るけどCに頼ってんじゃねーよ
480デフォルトの名無しさん
垢版 |
2026/01/20(火) 18:18:02.24ID:DcZWtfJ2
ランタイムに頼るの厳しいって
zigを見習えよって
481デフォルトの名無しさん
垢版 |
2026/01/20(火) 18:30:47.36ID:5DC83v65
Zigも同じくLLVMバックエンドじゃないの?
2026/01/20(火) 18:42:20.55ID:Gao/jXd3
GCC版Rustつかえばいいじゃん
483デフォルトの名無しさん
垢版 |
2026/01/21(水) 10:35:57.56ID:CSwIo9F1
let a = 15;
let b = 7;
let f = 0.1f32 + 0.2f32;
println!(format!("{:15.7}", f));
println!(format!("{:{}.{}}", a, b, f)); ← これをやりたい(もちろんエラー)
(println! するだけなら format! 飛ばしても良いけどやりたいのは s = format!(); の方です)
正しい描き方は?
2026/01/21(水) 10:54:44.46ID:Gzv1yfoB
こんな感じ
println!("{:x$.y$}", f, x = a, y = b);
485デフォルトの名無しさん
垢版 |
2026/01/21(水) 11:15:51.56ID:cQFxxk93
できた! thx
println!("{:a$.b$}", f, a, b);
2026/01/21(水) 11:57:24.33ID:BBgw+aUg
macroのせいでコンパイル時確定strは糞仕様だとは思う
https://www.ne.jp/asahi/hishidama/home/tech/rust/macro/format.html
https://ubnt-intrepid.netlify.app/rust-format-args/
std::fmt::Argumentsを覚えたい
487デフォルトの名無しさん
垢版 |
2026/01/21(水) 15:32:54.59ID:c8MmogNn
>>483
let a = 15;
let b = 7;
let f = 0.1f32 + 0.2f32;

let s = format!("{f:a$.b$}");
assert_eq!(s, " 0.3000000");
assert_eq!(a, s.len());
assert_eq!(b, s.rsplit_once('.').unwrap().1.len());
488デフォルトの名無しさん
垢版 |
2026/01/21(水) 16:25:33.59ID:CCNyxY2d
unwrap禁止警察
489デフォルトの名無しさん
垢版 |
2026/01/21(水) 16:36:33.70ID:c8MmogNn
assert_eq!(Some(b), s.rsplit_once('.').map(|x| x.1.len()));
2026/01/21(水) 16:50:19.78ID:5X1fB+QK
クソダサい
491デフォルトの名無しさん
垢版 |
2026/01/21(水) 17:11:57.08ID:c8MmogNn
b=0の場合は小数点'.'が表示されないため
これが正解っぽい
assert_eq!(b, s.rsplit_once('.').map(|x| x.1.len()).unwrap_or(0));
2026/01/21(水) 18:11:12.18ID:x9oGX2Ng
汚コードおじさん健在だったのか
2026/01/21(水) 22:06:27.13ID:osCBUIrv
分かりやすくメソッドチェーンのコードが貼られるたびに「汚コード」言う旧人はRustなどに向いていない
494デフォルトの名無しさん
垢版 |
2026/01/21(水) 22:17:40.23ID:6SPH6e0M
haskellパクってるんだからチェーンでできるだけ書くのを想定してるんじゃないの
495デフォルトの名無しさん
垢版 |
2026/01/21(水) 22:34:17.00ID:c8MmogNn
高階関数が苦手な人なのかも
2026/01/21(水) 23:40:47.52ID:osCBUIrv
selfやthisなど可変な自分自身を返していく可変メソッドチェーンとは異なり
Rustは関数型プログラミングの不変メソッドチェーンという違いもあるかもな
2026/01/22(木) 00:33:47.45ID:PkKtU33H
メソッドチェーンが理由だと思ってるらしいww
救いようがないね
498デフォルトの名無しさん
垢版 |
2026/01/22(木) 05:08:39.26ID:ar+txpdQ
代わりのコード出してみ
添削してやるぜ
499デフォルトの名無しさん
垢版 |
2026/01/22(木) 15:47:39.72ID:IOpsceTW
知らん人だが https://www.youtube.com/watch?v=kifYXPbxxOM
2026/01/22(木) 16:07:36.19ID:HUqGAGbX
とある unsafe な関数 fn f(a:T)->R { なんかする } があったとします
普通に別の関数から f を使うとき unsafe { f(hoge) } みたいになると思いますが
いちいち unsafe {} 面倒なので別のマクロ
macro_rules! x { ($a:expr, $t:ty, $r:ty) => { |a:$t| -> $r { unsafe { f(a) } }($a) }; }
で x(a) すれば unsafe 要らないと思ったら x(a) だけなら問題無いけどまた別の unsafe な g があったとして
unsafe { g(); x(a); g(); } とか unsafe { g(x(a)); } とかで
unsafe がネストしてるからか macro の方の unsafe が要らないので消せと言われてしまいます
当初の目的を達成するのにどうすれば良いのかな
2026/01/22(木) 16:11:40.60ID:QnfE+ZP+
マクロクラブのルールも知らんのか
2026/01/22(木) 18:54:49.73ID:bngkBtbw
>>500
xを関数にする

fn x(a: T) -> R { unsafe { f(a) } }

そうしたくないorできない理由があったら教えてくれ
503デフォルトの名無しさん
垢版 |
2026/01/22(木) 23:36:59.40ID:aG6CK8JQ
>>500
それは筋が悪いが
求めていることは#[allow(unused_unsafe)]か?

>>502
unsafeを用いるsafeな関数はsafeであることを満たす必要がある
2026/01/23(金) 06:51:27.58ID:byk3bh8W
>>503
thx!
#[allow(unused_unsafe)] でうまく消えたけど
macro を描いてる方のソースじゃなくて呼んでる方のソースに描かないといけないのであまりメリット無さそう
2026/01/23(金) 13:35:48.90ID:PT+A/oXT
Announcing Rust 1.93.0
https://blog.rust-lang.org/2026/01/22/Rust-1.93.0/
506デフォルトの名無しさん
垢版 |
2026/01/23(金) 21:03:41.61ID:W1g4B0uT
きたー
2026/01/23(金) 22:45:59.65ID:6lLl93nz
盛り上がらんねω
2026/01/24(土) 00:20:26.75ID:uMdo0sSg
let s = [1, 2, 3];
let a = s[..]; // [1, 2, 3]
let b = s[..s.len()-1]; // [1, 2]
let c = s[..-1]; // error
509デフォルトの名無しさん
垢版 |
2026/01/24(土) 01:00:31.00ID:jLtEafGH
-1インデックスに別の意味を持たせることはバグを見過ごし引き起こす失敗仕様
と結論が出たのはRust誕生よりもっと昔の話
2026/01/24(土) 02:46:02.79ID:d8Ru03sj
>>509
-1インデックスの本来の意味って何?
511デフォルトの名無しさん
垢版 |
2026/01/24(土) 03:33:13.07ID:jLtEafGH
>>510
-1は範囲内の0を超えたアンダーフローつまりエラー
2026/01/24(土) 06:21:50.89ID:8AKvjSUG
assert_eq!(timespec64::now().cmp(×pec64::now()) < 0, false);
2026/01/24(土) 06:23:14.27ID:8AKvjSUG
>>509
-1インデックスの別の意味って何?
2026/01/24(土) 06:24:37.43ID:8AKvjSUG
>>512 の修正
assert_eq!(timespec64::now().cmp(timepec64::now()) < 0, false);
2026/01/24(土) 06:25:28.18ID:8AKvjSUG
あー times が × に変換されてんのか
掛け算は times って言うもんな
516デフォルトの名無しさん
垢版 |
2026/01/24(土) 06:57:15.89ID:T+c+FhE2
[-1]最初にやり始めたのって
るび糞だっけ?それともpearlか?pythonか?
517デフォルトの名無しさん
垢版 |
2026/01/24(土) 07:38:20.98ID:WbyhSxtN
javascriptくらい柔軟であるべき
2026/01/24(土) 10:16:33.67ID:/umsvtL9
>>511
「別の意味を持たせる」という言葉に独自の別の意味を持たせてるのに自覚無しと

そりゃバグりますわな
2026/01/24(土) 12:02:12.39ID:3Xch7ycP
「-1」は一番後ろってことになるんだっけ?
よく使う場面ではあるし、スクリプトらしい発想だとは思う
2026/01/24(土) 13:02:01.55ID:OvWcg11a
メジャーな言語だと[-1]はPerlが古そうだな
Rustのスライスは基本usizeだから負数は使えない
自作型ならimpl Index<iN>で自由にできる
2026/01/24(土) 15:51:49.99ID:HB9W9ybw
>>508
borrowしないと3つともコンパイルエラー

borrowした場合:
let a = &s[..]; // 問題なし
let b = &s[..s.len()-1]; // s.len()が0でpanic
let c = &s[..-1]; //型エラー

現実で問題になるのは2番目
まともにテストを書けないのならどのみちバグる
2026/01/24(土) 16:45:10.14ID:Y1f5sfAf
株式会社アイ・エス・ビー
https://kizuna.5ch.net/test/read.cgi/infosys/1756826944/

https://www.isb.co.jp/about/company-profile/
株式会社アイ・エス・ビー
https://kizuna.5ch.net/test/read.cgi/infosys/1756826944/

https://www.isb.co.jp/about/company-profile/
2026/01/24(土) 17:11:03.86ID:7lUpHUXD
>>522
誤爆か?
お大事に
2026/01/24(土) 22:42:06.39ID:/IgMN3HH
インデックスをデクリメントしていって-1になったことに気付かないと一番後ろを指すの?
さらに-lenまで進むと先頭?
次の-len-1で範囲外エラー?
2026/01/24(土) 23:19:55.30ID:OvWcg11a
>>524
Pythonはそう
2026/01/24(土) 23:43:55.10ID:9jJwWD5b
>>524
インデックスを算術演算でデクリメントしていくようなことは原則避けましょうというのが現代のプログラミングなんですよ
2026/01/24(土) 23:58:33.73ID:c321Nwv3
>>526
代わりの方法は?
2026/01/25(日) 00:19:32.33ID:gNj3BlmT
ここが何のスレだか忘れたか?
シーケンシャルアクセスならイテレータを使ってるでしょ。
なんらかの形で「範囲」を扱う仕組みがあって、インデクスを直接的に使う機会を減らすのは現代的言語のスタイルとして珍しくはないよ。
529デフォルトの名無しさん
垢版 |
2026/01/25(日) 00:31:18.91ID:cGx72Pe9
>>528
それは二つの別のことがが混じってる
まずイテレータにするだけならfor i in start..endとしてインデックスを範囲内に閉じ込められる
イテレータとインデックスは両立する
2026/01/25(日) 00:55:26.11ID:5U4Inf9A
俺の知ってる「両立」とは違うみたいだな
2026/01/25(日) 08:55:52.97ID:MCymo3R4
Pythonだってシーケンシャルアクセスなら範囲ベースがデフォだしな
負数を使うのはスライスするときに便利なことがある、くらいの感覚でしかない
2026/01/25(日) 10:12:40.67ID:NClrJdq2
>>528
>インデクスを直接的に使う機会を減らす
と言う観点からはs[..-1]よりもs.iter(start, end-1).collect()が適当だね(クッソ面倒ださ)
>>508
assert!(s[..] == [1, 2, 3]);
assert!(s[..s.len()-1] == [1, 2]);
assert!(s[..-1] == [1, 2]); // consider specifying an integer type that can be negative s[..-1isize]
2026/01/25(日) 12:33:10.50ID:WblWXrGI
assert_eq!(s.into_iter().take(s.len()-1).collect::<Vec<_>>(), [1, 2]);
assert_eq!(s.into_iter().dropping_back(1).collect::<Vec<_>>(), [1, 2]);
2026/01/25(日) 20:20:25.93ID:k92jji43
まるでイテレータ博士だな
2026/01/25(日) 22:54:13.19ID:KSaSxFc6
>>528
イテレータを使う場合でも
インデックスを使って構わないんだよ

for i in start..end {
 f(&a[i]);
}

for x in &a[start..end] {
 f(x);
}

イテレータを使うかどうかではなくて
インデックスを回すか参照を回すかのの違い
2026/01/25(日) 23:00:36.88ID:KSaSxFc6
>>533
比較にcollectは不要

assert_eq!(s.into_iter().dropping_back(1).collect::<Vec<_>>(), [1, 2]);

assert_equal(s.into_iter().dropping_back(1), [1, 2]);
2026/01/25(日) 23:35:39.63ID:9Ulztsid
>>535
ギャグ?
2026/01/26(月) 12:22:36.43ID:0HAKmajI
マジなんだなこれが
539デフォルトの名無しさん
垢版 |
2026/01/27(火) 18:50:15.77ID:vH9cyetx
zig製のターミナルghosttyがメモリリークしてる問題こないだあったけどrust製のソフトでそうゆーこと起こったケースあるの?
2026/01/27(火) 18:54:33.55ID:ibTuOpKK
zigと言えば、cargo lambdaがRustなのにビルド処理をzigまかせにしてるのがなんか間抜けだな
クロスコンパイルなんだけど
2026/01/27(火) 19:54:03.75ID:X9jcaCsm
>>539
Rust のメモリ安全性の定義ではメモリリークは安全であるということになってる。
unsafe を使わない範囲でメモリリークを引き起こせるし、 Rust 的にはそれをよしとしてる。
2026/01/28(水) 00:10:07.11ID:hyF+VOSw
メモリリークっていったって無限にリークするわけじゃないし
2026/01/28(水) 15:34:39.46ID:BC6wQpLi
顧客が望んでいたもの
木の枝にブランコ
assert!(s[..end-1] == [1, 2]);
2026/01/28(水) 16:48:24.98ID:SgyeZeP0
上の複オジコードと一緒でダメプログラマーの臭いがプンプンする
2026/01/28(水) 20:56:18.16ID:olF2/XQ7
数値と配列と文字列いじりに終始してる時点でそれはそう
2026/01/28(水) 23:10:25.03ID:rml8ztN7
Rustではスライスを作ろうとする時にスライスを作るところだけで考えてたんじゃダメ
スライスのライフサイクル全体や元のシーケンスのライフサイクル全体も含めて考えないといけない

それにs[start..end]と書きたいなら不変条件としてstart <= endかつs.len() =< endが満たされることをプログラマーが保証しないといけない

Pythonならどっちも気にしなくていいがRustではそうはいかない
2026/01/28(水) 23:17:21.10ID:kPWrwL68
土方言語らしくていいじゃん
2026/01/28(水) 23:29:33.35ID:IKpG06eU
>>546
> Pythonならどっちも気にしなくていい

前者は気にしなくてよいが後者を気にしなくていいかは場合による。
ただちにエラーを引き起こさなくてもプログラマの意図通りであることを保証するわけではない。
むしろ言語としてエラーにしてくれない分だけプログラマが気にするべきとも言える。
2026/01/28(水) 23:58:14.23ID:wvMVUH5q
Pythonなんかと比較するところが面白い
2026/01/29(木) 00:33:38.00ID:dSj571Re
>>548
それ普段テスト書かないやつの発想なんだよね
>>544が言ってる臭いもそういういところから来てるのかも
2026/01/29(木) 00:33:52.38ID:4BsKquSU
>>549
自分の母国語と比較するのはありだぞ
母国語がLispとかならえってなるけど
2026/01/29(木) 00:39:35.13ID:S4dHFbbG
RustやるならまだLispが母国語のやつのほうが相性いいんじゃないか
553デフォルトの名無しさん
垢版 |
2026/01/29(木) 00:48:57.30ID:3IITt3VS
python仕事で書くやつってどう考えても土方じゃないやろ
2026/01/29(木) 01:50:27.98ID:hMM3WHI3
>>550
気にしてるからテストを書くんじゃねーの?
555デフォルトの名無しさん
垢版 |
2026/01/29(木) 01:59:10.12ID:m6m7OKKK
今までに消えていった数々のc代替標榜言語のように、はかなく錆びて砕け消えていく運命なの?
2026/01/29(木) 02:06:38.50ID:hMM3WHI3
Lisp 系の言語はプロジェクトごとにそのプロジェクトを記述するのに適した語彙 (いわゆるDSL) をまず作るメタプログラミングが普通の世界なので何でもあり過ぎて比較する意味があまりないよ。
2026/01/29(木) 02:09:03.27ID:T7BBuRHF
新たなものからC/C++は採用せずにRustを採用という流れが世界的に定着してる
Rustで初めてGAFAMが揃って同じ方針
558デフォルトの名無しさん
垢版 |
2026/01/29(木) 02:55:24.25ID:caQwbOkl
なるほど
じゃあいよいよcの天下も終わりかねえ
54年続いたが
まあ究極速度部分には使われるか
2026/01/29(木) 03:23:16.59ID:hMM3WHI3
Rust は対応アーキテクチャが C に比べてかなり少ない。
最先端を行く (最先端アーキテクチャで構成している) 大手はそれで良くても古いアーキテクチャが想像以上にあちこちで生き残ってるので大手の動向だけを見てもあてにならないよ。
2026/01/29(木) 07:51:24.69ID:FZO7T37+
>>557
GAFAMの開発で働いたことなさそう
2026/01/29(木) 08:26:14.64ID:eYWQZ3rg
GAFAMいずれもRust採用
2026/01/29(木) 09:04:26.40ID:ju0VkyNw
GoogleではRustはまだTier 1に入ってないから個別承認を得ないと使えないよ
2026/01/29(木) 10:35:46.09ID:Dy/2RC9a
どうしてボコボコ勝手にダウンロードするの?
2026/01/29(木) 17:27:24.70ID:F3EBad7M
GAFAの部長が教える本当に気持ちのいいVibe Coding
2026/01/30(金) 00:10:11.56ID:B0Kb+NS4
>>554
気にしてる観点も抽象度も違うよ
2026/01/30(金) 00:16:17.08ID:B0Kb+NS4
>>546
❌ s.len() =< end
⭕ s.len() >= end
567デフォルトの名無しさん
垢版 |
2026/01/30(金) 16:09:19.67ID:a6PS8pLs
let a = 4usize;
let b = 1usize;
let c = a - b; // error
2026/01/30(金) 16:12:28.37ID:a6PS8pLs
>>563
ネットに繋がってないと使い物にならない言語環境
2026/01/30(金) 16:57:06.30ID:P8I+BjAa
>>567
errorにならない

>>568
オフラインで使える
cargo build --offline
2026/01/30(金) 18:21:15.21ID:+glt+rJt
コンパイルエラーなのかResultのErrなのかpanicなのかを明記せず
単にエラーやerrorと書いてるうちは初心者から抜け出せないよ
2026/01/30(金) 18:37:32.59ID:ExkhX6LU
他のどんな言語でもサードパーティのライブラリを使わないでいることは難しくなってるし、インターネット経由で導入するのは普通。
殊更に Rust の問題とは言えないな。
標準ライブラリをクソデカにするか用途を特化するという方針を取れば解消するが、 Rust はそういう言語ではない。
2026/01/30(金) 20:37:28.19ID:mzfZWO0n
そのせいで依存性お化けになっていてメジャーライブラリの開発停止問題やセキュリティ問題に対してRustはかなり脆弱
2026/01/30(金) 21:56:46.74ID:owOwnmRo
他の言語と比べて脆弱になったことないよな
2026/01/30(金) 22:28:04.02ID:R4SSINHt
それは情弱
2026/01/31(土) 12:15:54.94ID:zxCeCKiG
a が C で export された変数名のとき
unsafe { unsafe_function(&a as *const Hoge); }

unsafe_function((&unsafe {a}) as *const Hoge);
で処理が違うんやね
ハマったが勉強になったわ
576デフォルトの名無しさん
垢版 |
2026/01/31(土) 12:20:03.65ID:h03x76kI
zigはdeferで解放できるのおもろいね
goとcが混ざった感じ
2026/01/31(土) 12:32:47.11ID:bn0n9YsF
defer方式は邪魔だろ
C++やRustの方式がベスト
スコープを抜けたら自動解放つまりデストラクタが呼ばれる
2026/01/31(土) 14:14:57.42ID:KwksedAY
>>570
unwrap()使ってる奴は全員初心者
例えサンプルであってもだ
2026/01/31(土) 14:19:23.56ID:L9z3PLtt
同じLLVM依存言語なのに、なんでZigの方がクロスコンパイルに強いの?
2026/01/31(土) 14:33:04.09ID:+DiiVHW9
unwrap_or("絶対に呼ばれません!")とか平気で書いてそう
2026/01/31(土) 14:33:45.40ID:nE9KgX10
>>575
2つ目のunsafe {a}は式{a}にunsafeをつけた形だからaをコピーした一時変数(の参照)が関数に渡されてる
1つ目はstatic変数?のaの参照がそのまま関数に渡されてる

2つ目は
unsafe_function((unsafe {&a}) as *const Hoge);
にすれば1つ目と同じ処理になるはず
2026/01/31(土) 14:56:03.70ID:sDPROLA3
値のコピーか値へのポインタのコピーかの区別はC言語でもアセンブラでも必須
2026/01/31(土) 15:02:27.34ID:nE9KgX10
中級者なら
let Ok(value) = result else { unreachable!("絶対に通りません!"); };
くらいやりたい

そこを通り過ぎると初心に帰ってunwapでいいやってなるけど
2026/01/31(土) 15:37:20.97ID:aekzex2G
unsafe_function(unsafe {&a as *const Hoge}); が必要だと思ってたが
unsafe_function(unsafe {&a} as *const Hoge); で良いのか
2026/01/31(土) 15:51:14.90ID:W6GyuKNK
何のためにunsafeを付けているの?
2026/01/31(土) 16:18:30.04ID:nE9KgX10
Cでexportされた変数らしいから基本はstaticな可変変数と同じ扱いになるのかな

1.82以降なら
unsafe_function(unsafe {&raw const a});
でキャスト外せると思う
2026/01/31(土) 17:06:21.62ID:exSfp1SN
わざわざネストしてもう一度unsafeブロックを書く意味ないと思うんだが
2026/01/31(土) 18:08:29.42ID:RXKqBqGA
生ポインタを作るだけならsafe
生ポインタを逆参照する時のみunsafe
だからそのケースはunsafe要らない?
2026/01/31(土) 18:29:18.02ID:nE9KgX10
ポインタ作るだけならいらない
↑のunsafeはstatic mutの使用を想定してる

static mut X: usize = 42;

fn main() {
unsafe { println!("{X}") };
}
2026/01/31(土) 18:49:02.29ID:GvZgjxKh
sitatic mutだからじゃなくextern “C”だからでしょ

unsafe extern "C" { static a: Hoge;}

unsafe fn foobar() {
 unsafe {
  unsafe_function((unsafe {&a}) as *const Hoge);
 }
}

unsafe fn foobar() {
 unsafe {
  unsafe_function(&a as *const Hoge);
 }
}

後者でいいのに前者にしたい意味がなにかある?
2026/01/31(土) 19:05:40.52ID:nE9KgX10
>>590
575の2番目だとunsafe_functionがunsafeの外で使われてたから一応合わせた
2026/01/31(土) 19:14:27.04ID:nE9KgX10
あと最近のRustだとextern "C"でもsafeつければunsafeいらなくなるらしい

https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-extern.html
2026/01/31(土) 21:43:05.50ID:gdR5TKrU
統失おじ最近おらんな
594デフォルトの名無しさん
垢版 |
2026/02/01(日) 03:13:56.09ID:n73h+3oh
targetが数gbに膨れ上がってディスクごりごりに削ってくるのやめてくれ
2026/02/01(日) 04:51:28.79ID:mhtwSh0M
clean すれば良いんだけど
また build したら拾ってくるしな
2026/02/01(日) 04:58:59.98ID:mhtwSh0M
>>590
外から呼んでたら?知らんけど
どっか{
foobar((unsafe {&a}) as *const Hoge);
}
unsafe fn foobar(b: *const Hoge) {
unsafe {中は知らん}
}
2026/02/01(日) 12:24:44.38ID:QeGgEpG9
>>594
よそのcrateなんか使ってるからそうなる
男は黙ってフルスクラッチ
2026/02/01(日) 12:53:21.69ID:d7kS7Cwc
最初は既存のクレートを使いつつだんだん自作に置き換えるという作り方をやってる。
減っていくのが観測できるから気分が良い。
2026/02/01(日) 18:43:58.69ID:BT+00/D7
簡単に自作できないようなクレートはみんなも使ってるから
きっとメンテナが死んだりキレていなくなっても誰かが保守するだろう
2026/02/02(月) 10:38:13.24ID:D/hNq8tV
クレートをupするときに
全てのpubにコメント描いてないとdocs作成時警告出ますが
全てのpubにテスト描いてないと警告出す機能はどうやるのが良い感じ?
2026/02/02(月) 10:54:12.08ID:Hg7O0zB/
総和を求めるとき
.iter().fold()や
.iter().reduce()と
.iter().sum()ではどれが速いですか
2026/02/02(月) 11:38:33.66ID:+uH+ee+0
なんかAIでも答えられそうな質問だな

>>600
カバレッジツール使う(cargo-llvm-covとか)
自動化はやったことない

>>601
普通の数値型ならどれも変わらんと思うけど
総和計算に特化した最適化がある型ならsumで速くなる可能性はある
2026/02/02(月) 11:51:18.70ID:K9nGdm11
>>601
sum の内部ではそのまま fold を呼んでるからこの結局は同じ。

常識的には複数の選択肢があるときは用途が狭いほうが高速化の余地が大きいことが多い。
汎用的にするというのは広い状況を考慮に入れなきゃならないということだから今必要な用途に対して過剰な配慮があるかもしれないから。
2026/02/02(月) 13:00:30.18ID:gkt9579C
sum()はiter()しなくても直接呼べるんじゃないのか?
2026/02/02(月) 14:05:09.53ID:D/hNq8tV
直接呼んで良いのはiterableな童貞だけ
2026/02/02(月) 14:39:57.17ID:fjnDHXab
>>604
無数にある型それぞれにsum()を実装するのは愚か
sum()やproduct()やmax()やfold()などは全てIteratorトレイトのデフォルト実装として提供されているためIteratorを実装するだけで使える
2026/02/02(月) 17:26:29.98ID:bQrLsh+5
>>605
Vecやarrayはiterableだよ
2026/02/02(月) 17:49:00.99ID:fjnDHXab
>>607
sum()を呼べる型はIterator実装型
iterableな型はIntoIterator実装型
別もの
2026/02/02(月) 18:20:38.53ID:YOHUxsRh
>>608
知ってるよ
2026/02/02(月) 21:32:43.63ID:RvqEqNw2
複オジもiterable知らなくてこのスレで教えてもらった側なんだから>>607の意図くらい分かれよ
2026/02/02(月) 22:59:29.75ID:E5kdmQSO
sum()で型指定が必要になるのがRustの弱いところだよな
2026/02/02(月) 23:59:12.51ID:Os5RFRxG
他で既に型指定があるよね
関数に渡すか関数から返すか構造体の一部になるかなど
2026/02/03(火) 00:43:30.77ID:UEOEWgMc
秒とナノ秒を別で保持してるDurationはsumで最適化されてるな
ナノ秒の繰上りを秒に移す処理を全部足し終わるまで保留してる
気休め程度だけどAddで1回ずつ繰上りを取って秒に移すより処理が減る
2026/02/03(火) 00:58:36.05ID:rSWV8AOI
>>612
単純にprintするだけだったり渡す関数がジェネリックだったり
推論に必要な具体型がすでに指定されてるとは限らないよね
2026/02/03(火) 01:05:11.24ID:+5w/Oisb
Required Methodさえ自分で実装すれば
Provided Methodはそれとトレイト境界を用いて型ジェネリックにデフォルト実装される
そのデフォルト実装を型毎に最適化できる場合は型毎の個別実装も可能

これを他のプログラミング言語はどうして採用してくれないんだろう?
2026/02/03(火) 10:09:39.15ID:MCvTwXvy
他のプログラミング言語を書くつもりがないなら気にしなくていいんじゃないですか?
2026/02/03(火) 10:17:09.58ID:3l7bFFEG
>>615
採用しているプログラミング言語をお前が使っていないだけ。
2026/02/03(火) 10:19:24.20ID:ByXFAwgD
ほんとそれな
複おじは他の言語というか一般常識を知らなさすぎる
2026/02/03(火) 11:29:49.98ID:3l7bFFEG
ML 系の型システムがシステムプログラミング言語の系統と合流したのは (少なくともメジャーな言語となる水準では) たぶん Rust が初めてなので馴染みがないのは仕方ないと思う。

ただ、 C++ でもトレイトの概念はあるぞ。
標準ライブラリだけでも char_traits とか allocator_traits とか iterator_traits とか pointer_traits とかがあって、適当な型にインターフェイスを付ければ既存の実装が当てはめられる仕組みになってる。
ADL を活用したカスタマイゼーションポイントも近頃では使いやすく整理されて、イテレータまわりは特に恩恵がある。

もちろん言語のコアとして強力なサポートがあるに越したことは無いけど、言語の基礎部分を変更しない範囲で Rust 風に運用できる言語はあるよ。
2026/02/03(火) 13:14:44.75ID:iDooQ4SZ
そういう話じゃないと思うんだが

ちなみに同じトレイトという言葉を使っていてもmixin的な意味が強い言語とinterface的な意味が強い言語があるので区別が必要
2026/02/03(火) 15:40:24.92ID:p6f1/Oec
Rustはメジャーな言語ではないよ
2026/02/03(火) 17:05:22.18ID:q0O+3uGc
let sum = (0..=100000).into_iter().fold(0, |s, i| s + i);
println!("{}", sum);
// 10000 50005000
// 100000 705082704
デフォでi32なんかな
(0..=100000u64)にしたら正しい値になったけど
overflowの警告も出ないの?
2026/02/03(火) 17:17:54.18ID:/InZ1dTV
>>617
具体的に採用しているプログラミング言語を教えて
2026/02/03(火) 17:33:05.10ID:3l7bFFEG
>>623
直接的に Rust 風な書き方が出来るのは Haskell や F# 、というか Rust はこれらを参考にしていると思う。
デフォルト実装という形ではないが近い運用が出来るものとしては OCaml などが挙げられる。
2026/02/03(火) 17:35:45.64ID:nCB7lyYU
>>623
chprks!
2026/02/03(火) 17:38:44.58ID:nCB7lyYU
>>622
>デフォでi32なんかな
チュートリアルを読め!

>overflowの警告も出ないの?
チュートリアルを読め!
2026/02/03(火) 22:44:48.08ID:Eu8SWO0J
>>624
めっちゃ便利で有用なのに関数型言語でない言語でRustしか採用してないのはもったいない気がする
2026/02/03(火) 23:21:19.24ID:UEOEWgMc
C++のconceptとか触ったことないけどRustのtraitに似てると思う
2026/02/03(火) 23:36:31.30ID:3l7bFFEG
>>628
制約を付けるという側面は似ていなくもないけどコンセプトはインターフェイスとしての性格が無い。
C++ では動的多態は仮想クラスで、静的多態はテンプレートで、制約はコンセプトでと役割が分割されてる。
2026/02/03(火) 23:39:49.15ID:3l7bFFEG
重要じゃないけどちょっと間違えた。 仮想クラスじゃなくて抽象クラスだわ。
仮想関数とごっちゃになった。
2026/02/03(火) 23:45:54.85ID:KIPeOi5P
>>629
Rustは同じトレイトを、使う側で、dyn付ければ動的多態に、dynなしなら静的多態に、そしてトレイトそのものが制約に、
トレイトだけでシンプルかつ実用的に十分な機能があっていいね。
2026/02/04(水) 00:16:37.24ID:PpXJlcfh
x 役割が分割
o 役割が分裂
633デフォルトの名無しさん
垢版 |
2026/02/04(水) 07:59:45.52ID:3m9ejRBE
>>629
変数をコンセプトで定義できるとうれしいんだけどね。
そういった言語ないかな。
2026/02/04(水) 14:21:02.30ID:jKxBWpR9
>>632
C++は拡張に失敗したから仕方ない
2026/02/04(水) 14:42:37.08ID:OvSWPSv0
C++ はコンパイラの事情が透けて見えるような感触があるね。
たとえば名前からして多相とか汎化とか言わずにテンプレートと呼んでいるのは抽象度が低いというか、目的でなく方法で名付けているというか……
636デフォルトの名無しさん
垢版 |
2026/02/04(水) 14:50:59.46ID:3m9ejRBE
>>635
もともと型をサポートした安全マクロの延長線でデザインしてたからじゃない?

テンプレート使ったメタプログラミングが流行ったのはテンプレートの仕様が固まってからじゃなかったっけ?
acceraretad c++ 発刊当時でもそんなに普及してなかった記憶が。
2026/02/04(水) 14:52:20.56ID:bearAYxU
テンプレートは多相や汎化という目的に対する一つの手段だからな
目的でなく方法で名付けるのは当たり前

逆に多相や汎化という名前のほうがいいと思うセンスはどうかしてる
2026/02/04(水) 15:05:14.08ID:OvSWPSv0
センスの話でもなく良し悪しでもなく抽象度の話。
よくも悪くも C++ はシステムプログラミング の世界が出発点なのが感じられるという話。
2026/02/04(水) 15:38:19.73ID:bearAYxU
いやいや、命名に適した抽象度を選ぶセンスが君にはないという話
手段・方法の名前としてテンプレートという名前が適してないというのであれば
抽象度を選ぶセンスの問題ではなかったのだけれど
2026/02/04(水) 15:57:44.83ID:FaBa/rak
genericsもどうかと思うが
traitは最高ね素敵
2026/02/04(水) 16:50:25.81ID:0M4k/7DZ
何の基準もなしに良いとか悪いとか書くから
2026/02/04(水) 16:53:15.16ID:07Toc3Ak
Rustにもテンプレート導入してほしいね
思い上がったRust厨に罰を与えるために
2026/02/04(水) 17:02:03.86ID:0M4k/7DZ
マクロで我慢してください
2026/02/04(水) 17:32:56.03ID:iqzM/Dvd
C++のテンプレートは大失敗だったのてそれ以降の言語はD言語を除いてテンプレート方式を採用しなかった
2026/02/04(水) 17:49:11.08ID:vC0TodWY
macro_rules!をtemplates!に改名したい
名前で損してる気がする
2026/02/04(水) 18:04:50.49ID:OvSWPSv0
macro_rules! は scheme の syntax-rules から来てるし実際にかなり似てる。
手続き的マクロのほうが haskell の template に近い。
647デフォルトの名無しさん
垢版 |
2026/02/04(水) 19:27:52.92ID:3m9ejRBE
>>644
大失敗の理由は?

よく言われるのはエラー表示の冗長性だけど、大失敗というほどじゃないし、conceptでずいぶん改善した。
2026/02/04(水) 19:40:23.92ID:OvSWPSv0
「C++ は今、使える言語でなければならない」というのが設計指針だからその時代に存在することが大事で、後から振り返って結果的に整理できてない汚い設計が多かったというのは C++ 的には失敗じゃないんだよ。
理想を語ったところで妄想で現場は動かない。
動くクソのほうが存在しない理想より大事なの。
2026/02/04(水) 20:04:36.47ID:vC0TodWY
C++のテンプレートは分割コンパイルと相性が悪かったな
どこで定義してどこで実体化してどうやって共有すればいいのか未だに正解が分からん
今はモジュール機構でマシになってそうだけど
2026/02/04(水) 20:47:24.20ID:OvSWPSv0
C++ では公開範囲が翻訳単位の内と外という二択しかなく階層はない。
C から引き継いだ通りなのである意味では単純極まりない。
651デフォルトの名無しさん
垢版 |
2026/02/04(水) 21:18:34.48ID:3m9ejRBE
>>650
Rustの場合ってどうだったっけ?
2026/02/04(水) 22:24:19.75ID:z+Wn9TMI
proc_macro2のASTはLISP的ね
2026/02/04(水) 22:25:27.16ID:z+Wn9TMI
>>648
めっちゃ判ります
2026/02/04(水) 22:28:03.76ID:z+Wn9TMI
>>650
namespaceで誤魔化してる
>>651
Rustは外部cratesを全部持って来て自分でコンパイルする糞
2026/02/04(水) 22:40:30.05ID:0M4k/7DZ
>>649
テンプレートパラメータを含む関数(関数テンプレートまたはクラステンプレートのメンバ関数)の実装はヘッダに書く
メンバ関数の実装は(インライン化したくないなら)ヘッダ内だけどクラスの外に名前空間指定して書く
くらいに気をつけておけばおkじゃなかった?
2026/02/04(水) 22:49:51.96ID:nZBZ+LRm
昔C++やってた頃は、複雑なクラステンプレートで前方宣言エラーが出ると
何をどう直したらいいかさっぱりわからないとかあったなぁ
2026/02/04(水) 23:45:17.08ID:vC0TodWY
複数のコンパイル単位で同じコードが実体化された時にリンクで衝突するとかもあった
ちゃんと理解してれば回避できるんだろうけど
2026/02/04(水) 23:59:02.58ID:iqzM/Dvd
>>645
C++テンプレートで実現される多くのことはRustで型パラメータ付き~になって静的定数もconstで実現されるからmacro_rules!に対応する感じではないね
2026/02/05(木) 00:39:41.47ID:lGPB74Rw
そういう例だけ見ればそういう結論になるでしょうね
2026/02/06(金) 13:31:03.82ID:I0vTysph
キミたち、Rust で何作ってるの?
結局UIはJSだったりするのw?
661デフォルトの名無しさん
垢版 |
2026/02/06(金) 17:48:40.27ID:0WOv9kuu
uiといえばjsのスレがまったくないのなんで?ほかの板にあると?
フロント関連てrustなんかよりよっぽど活発なのにスレがないのが不思議
svelteが書きやすくて軽石いいかんじ
2026/02/06(金) 17:50:33.29ID:OS2ysny0
>>661
要ると思ったらお前が建てろよ。
2026/02/06(金) 22:45:42.59ID:PHhG16HM
Web屋みたいなバイコで置換されたような雑魚が使う言語はこの板にはあわない
2026/02/07(土) 14:46:11.84ID:/kjFAAWe
>>663
ほんそれ
最近はruby厨も消えて嬉しい
665デフォルトの名無しさん
垢版 |
2026/02/08(日) 15:49:19.67ID:fqW5YQRh
>>1とその組織一同刮目して下記のリンク先を見よ!

【脳科学】非侵襲型BCIに中国発スタートアップ参入。超音波技術を活用 [すらいむ★]
2026/02/03(火) 23:06:17.90
https://egg.5ch.net/test/read.cgi/scienceplus/1770127577/
2026/02/09(月) 10:18:35.10ID:tiXp1BFN
666get
667デフォルトの名無しさん
垢版 |
2026/02/10(火) 15:24:08.04ID:CD1581fi
>>660
そこでdioxusですよ
2026/02/10(火) 18:25:23.08ID:58LyFzm2
ChromeのXMLパーサーがRustになるらしい
669デフォルトの名無しさん
垢版 |
2026/02/10(火) 19:57:01.89ID:28FyfaoA
>>668
爆速になるやんけ
これからはHTMLの時代か
670デフォルトの名無しさん
垢版 |
2026/02/10(火) 19:58:45.66ID:28FyfaoA
>>660
今日もサーバーサイドでAIにRustでSQLを書かせてきたよ
2026/02/10(火) 20:17:44.54ID:u7ZvlxFh
>>670
短い文章なのすげーバカなのが分かる名文
2026/02/10(火) 20:21:11.79ID:R4YjqvL3
>>669
広く使われている libxml2 が個人プロジェクトに過ぎないし脆弱性の対応にも手が回らないという状況からの移行なので性能的な向上を目指しているわけじゃないし、たぶんそんなに性能は上がらない。
673デフォルトの名無しさん
垢版 |
2026/02/10(火) 21:22:03.26ID:28FyfaoA
>>671
データベース知らんかすまんな
2026/02/11(水) 09:34:12.59ID:pP4fIuLV
CからRustへの置き換えの目的は安全性がメインで、速度はむしろ低下しがち
Rust製AV1デコーダー (rav1d) も、C版に比べて5%以上遅い状況を脱せてなくて、改良できた人に賞金を出すとかやってたし

XMLやCSSみたいなブラウザ周りの技術は既にC/C++でガチガチに最適化されてるから、「Rustで爆速に」といった体験にはならないと思う
(もちろん、安全性という別の目的があるわけだけど)
2026/02/11(水) 09:47:08.98ID:psN8RSOE
Rustの場合マルチスレッド対応しやすいから高速化できる場合もあるけどね
大規模なCをマルチスレッド化するにはデータ競合を目視で注意深く排除する必要があって事実上不可能になりがち
XMLがそれに該当するかは分からんけど
2026/02/11(水) 10:08:05.03ID:W2cqdmk2
そりゃ単純化しすぎだな
Rustの効果がないとは言わないけど、既存コードのマルチスレッド化における難所は多くの場合はロジックの競合の方で、Rustだから楽になるというものでもない
2026/02/11(水) 10:34:33.34ID:0ilTTy9d
CのRust化ってとりあえず通そうと見かけ上の競合を回避するために本来の設計上は必要のなかったMutexやらRwLockやらが連打されがちだから、
マルチスレッド化したのに速くならない、むしろ遅くなる、みたいなことになりやすい面もありそうだな
変数が多すぎて一般的にどうこう言える話ではない
2026/02/11(水) 10:57:28.07ID:K+wCFkFH
古いソフトウェア (ライブラリ) については言語がどうこうじゃなくて見直しされることそのものが速度へ寄与することもあると言えばある。
昔と今じゃ色々と前提になる事情が違うから今に合わせるだけで性能は上がる。

とはいえ事情が違うのは速度性能だけではなくて脆弱性を作らないことの比重が高くなったというのもある。
ましてやインターネットに接続するためのソフトとなると脆弱性防止はかなり強い要件なのでそのために実行コストを支払うといくらかは性能の伸びを抑制することもあるだろう。
2026/02/11(水) 12:03:39.82ID:hjQFt304
>改良できた人に賞金を出す
unsafe禁止なんかな
2026/02/11(水) 14:20:57.97ID:ht8B+Ihb
それ、もう終わったよ
2026/02/11(水) 15:25:05.73ID:ziFYqCGW
で5%以下に出来たのかな
2026/02/11(水) 15:55:15.84ID:rUTxOxVZ
パフォーマンスの差を埋められないままメンテナンスモードに入ったみたいだね
もうすぐ放棄されると思うよ
2026/02/11(水) 15:57:47.35ID:K+wCFkFH
パフォーマンスの差はどこで生まれているのかちゃんと検証できてるの?
もしかしたら C 版に致命的な脆弱性があるかわりに高速になってるとか無い?
2026/02/11(水) 16:27:29.29ID:rUTxOxVZ
公式に「Rustコードとツールチェインが原因」と明言されてる。それ以上の議論は無用だろう。
仮にそんな脆弱性があって、それがRustコンパイラによって検出可能なものであるなら、とっくに移植の過程で明らかになってるよ。
んな未知の脆弱性みたいな陰謀論的な話をするなら、そもそも誰も使っていないRust版の方が未知の脆弱性が存在する可能性は遥かに高いわけで。
2026/02/11(水) 17:11:35.80ID:K+wCFkFH
>>684
検証が済んでるならそれでいいんだ。
せっかくならこういうサンプルを元にツールチェインの改良もして欲しいもんだがや。
2026/02/11(水) 17:26:29.56ID:0ch9SBYx
>>675
>大規模なCをマルチスレッド化するにはデータ競合を目視で注意深く排除する必要があって事実上不可能になりがち
これほんとか?
聞いたことないんだがメジャーなOSSでの実例ある?

ちなみにXML Parserはシーケンシャルに処理しないといけないからマルチスレッド化したところで高速化できないぞ
2026/02/11(水) 21:18:03.64ID:TXGx0TEz
Rustにするだけで高速化って、元がPythonやらTypeScriptの時にだけ言う話じゃないの?
C/C++が最速級なのはあんまり否定もないような
688デフォルトの名無しさん
垢版 |
2026/02/11(水) 22:06:27.96ID:H1/+M3gU
cと速度負荷も変わらんのに無理やりリライトする必要なくね
rustてビルドも遅いし開発体験は良くないし
689デフォルトの名無しさん
垢版 |
2026/02/11(水) 22:48:22.79ID:z+NIOEiS
GC言語からのRustへのリライトは高速化省メモリ化のメリット
C/C++からRustへのリライトは安全化のメリット
目的が異なる
2026/02/11(水) 22:57:50.74ID:QB2WQNX0
Chrome 145に入ったJPEG XLデコーダーもRust
2026/02/11(水) 23:06:45.55ID:QB2WQNX0
古いCのOSSは、ソースがifdefまみれでごちゃついてるし、
開発当時はシングルコアが一般的な環境だったりしてそれ前提の構造(グローバル変数にいろいろ持ってるとか)になってるし、
今さら大幅書き換えしてまで改良しようって意欲のある人がいないんでしょ

RustやGoで書き直すなら、rayonみたいなライブラリ呼ぶだけで並列化できる
2026/02/12(木) 01:14:16.12ID:gfteXzsg
条件付きコンパイルのリファクタリング方法はCでもRustでも同じだぞ
2026/02/12(木) 03:08:18.61ID:b8K+ql27
>>687
PythonやらTypeScriptをC化しても高速化されないのと同様に
PythonやらTypeScriptをRust化しても高速化されない
2026/02/12(木) 03:26:07.74ID:sKzry6pj
>>693
PythonやJavaScriptで書かれたものはC/C++/Rustによって確実に高速化できる
695デフォルトの名無しさん
垢版 |
2026/02/12(木) 06:46:06.84ID:ohB8/3B6
てかjsてすでにcに迫るぐらい速くなってるよね
2026/02/12(木) 07:56:13.92ID:iD6Lc3up
>>695
jsは遅い
原理的にcのように速く動かない
697デフォルトの名無しさん
垢版 |
2026/02/12(木) 07:59:01.99ID:EyE/qaYY
>>696
その「原理的」も説明しないと。
2026/02/12(木) 08:03:40.70ID:hglpZQMM
>>571
rust だけだよ?

こんなバカなことしてるのは
2026/02/12(木) 08:04:01.11ID:7EU05KnB
あ、go もしてるw
2026/02/12(木) 08:11:38.42ID:WwCEJHTh
jsは型が安定している場合には異常に速く、書き換えても期待したほどの効果が出ない場合も多い
逆に、そうでない場合にはCやRustに単純移植しようとするとハッシュテーブルだらけになりやすくて、静的型の恩恵がなくjsより煩雑なだけのゴミコードになりがち
701デフォルトの名無しさん
垢版 |
2026/02/12(木) 08:20:21.85ID:AjJD7YZw
JSは遅い言語
JSが速いと言ってる人はアタオカ
2026/02/12(木) 08:43:07.57ID:+j3WqIsc
まあねぇ、 JavaScript は設計がぐちゃぐちゃで Ruby 以下のクソで最適化の足を引っ張るような言語仕様も盛りだくさんだが
広まってしまったせいで莫大な開発リソースが投じられて性能があがってるのも本当なんだ。
やれるものなら別の言語でやり直ししたい人もたくさんいると思う。
2026/02/12(木) 09:20:12.25ID:RpyT/dNP
>>694
doubt!
2026/02/12(木) 10:52:08.60ID:FvcPRo23
今日もまた ペラい知識で 空中戦
ニートが集う Rust界隈
2026/02/12(木) 11:36:58.02ID:RpyT/dNP
bindgenで質問なんですけど
.hの方に
struct Hage {
const unsigned long long *a;
};
struct Hoge {
const size_t *o;
};
とあるとき
生成されたbindings.rsが
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Hage {
pub a: *const ::std::os::raw::c_ulonglong, // 実質 a: *const u64
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Hoge {
pub o: *mut usize,
}
となって*constと*mutの違いがあるのですが何故でしょう?またo: *const usizeにするにはどうすれば?
const unsigned int *x;とかconst int *y;とかは普通にx: *const u32, y: *const i32になってくれます
2026/02/12(木) 11:54:28.52ID:HDBjJChe
JavaScriptもPythonもライブラリがC/C++/Rustで書かれていることが証だよな
速い言語によって支えられている遅い言語の立場
2026/02/12(木) 11:55:24.26ID:wHzNB0T9
>>705
変数は不変 参照先も不変
【Rust】 let ptr: &i32 = ...
【C】 const int* const ptr = ...

変数は可変 参照先は不変
【Rust】 let mut ptr: &i32 = ...
【C】 const int* ptr = ...

変数は不変 参照先は可変
【Rust】 let ptr: &mut i32 = ...
【C】 int* const ptr = ...

変数は可変 参照先も可変
【Rust】 let mut ptr: &mut i32 = ...
【C】 int* ptr = ...
2026/02/12(木) 12:08:10.52ID:Sn0IILX6
>>705
0.72.1で試してみたが pub o: *const usize,になるぞ
2026/02/12(木) 12:10:46.35ID:Sn0IILX6
>>707
*mutと&mutの区別がついてない?
2026/02/12(木) 12:15:40.16ID:wHzNB0T9
>>709
本気か?
Rustは基本の参照の場合だろ
生ポに置き換えろ
2026/02/12(木) 12:28:01.74ID:uDuC3z0t
>>710
区別ついてないんだな
2026/02/12(木) 13:27:50.69ID:6HEAumIP
うーん・・・
struct Hoge {
const size_t *o;
};
struct Hage {
size_t *a;
};
struct Fuga {
const size_t *f;
};
と描いたときと
struct Hage {
size_t *a;
};
struct Hoge {
const size_t *o;
};
struct Fuga {
const size_t *f;
};
と描いたときで結果違うなぁ
なんじゃこりゃω
2026/02/12(木) 16:08:09.62ID:rm5KCNCk
Rustを使いこなすにはサードパーティのライブラリに関する諸問題を自力で調べ倒して解決する技術力とフロンティア精神が必要不可欠
714デフォルトの名無しさん
垢版 |
2026/02/12(木) 19:02:08.36ID:5xnq9dpS
困ったら、チャッピーやジェミナイなどに聞くよろし
2026/02/12(木) 20:12:26.64ID:cDrSWYaM
解説動画ばかり観て何かを解った気になるだけの若者
2026/02/12(木) 20:30:39.94ID:B7HPrD3G
いろんな言語機能が相互に絡み合ってるから学ぶべき順序って一直線には並べられないものなんだよな。
なので本で学ぶときは前後を行ったり来たりするのが普通で、動画だとそれがやりにくい。
一部には動画が分かりやすい場合もあるのは否定しないが基本的には体系的にまとめられた本のほうがやりやすいように感じる。
ただ、基本を終えて仕様書を確認する段になったら AI に解説させて関連する仕様を引用させるような使い方は割と良いと思うよ。
717デフォルトの名無しさん
垢版 |
2026/02/12(木) 23:02:31.08ID:ohB8/3B6
hogefugaとかガラパゴス使うな
foo bar quxだ
2026/02/12(木) 23:13:10.53ID:IkMdMKh3
テストデータにunkoを使うな!
719デフォルトの名無しさん
垢版 |
2026/02/13(金) 11:05:53.66ID:rkG0pZds
itertoolsがなんでstdじゃないんだろ
2026/02/13(金) 12:07:03.84ID:s1yzf6M3
stdじゃないとインターネットつかえなくなっとき困るよな
2026/02/13(金) 12:10:33.45ID:J1AOLeLS
所有権と参照ルール (を無視)
https://qiita.com/toyboot4e/items/694d8960c7573b905984
C の関数が C 構造体のポインタを使うとき、 wrapper は &mut self ではなく &self を引数にできます。
すると Rust の借用ルールを疎かにしてしまいますが、考えることは減ります。
僕は積極的に &self を引数にしています :)
2026/02/13(金) 12:16:30.01ID:J1AOLeLS
https://github.com/rust-lang/rust-bindgen/issues/1727
>Hmm... Yeah, this looks def. wrong. Var::is_const is returning false unexpectedly.
>I don't think this should be very hard to track down.
>So the clang type for this test-case is const int [1], kind: ConstantArray.
>But clang_isConstQualifiedType returns false for that...
( ゚д゚)ポカーン
2026/02/13(金) 12:18:01.57ID:J1AOLeLS
https://github.com/rust-lang/rust-bindgen/issues/1849
>Multidimensional array binding has incorrect mutability.
これがRustの文化か
2026/02/13(金) 13:49:55.97ID:5s43JTa6
AI による概要
rust-bindgenによるC/C++ヘッダファイルからRust FFI(Foreign Function Interface)への変換において、
mut(可変性)の扱いが「いい加減」に感じられる、あるいは予期せぬ動作を引き起こすという点は、
多くのRust開発者が経験する典型的な問題です。
具体的には、C言語のconstを正しく解釈しなかったり、本来可変であってほしいポインタが定数として生成されたり、
あるいはその逆(実際は定数なのにmutがつく)といった挙動が、
安全性重視のRustにおいて技術的負債やバグの原因になります。
この問題の背景と対応策を整理します。
2026/02/13(金) 13:58:14.51ID:5s43JTa6
結論として、bindgenは完璧ではなく、特に可変性においてRustの厳格なルールを自動的に満たすことは困難です。
自動生成はあくまで「型情報の取得」に留め、mutの可変性は手動で安全なラッパーを作成して隠蔽するのが現状のベストプラクティスです。
2026/02/13(金) 21:44:40.36ID:m1UWnMBw
>>718
unknownの略ですけど!?
2026/02/14(土) 09:23:08.63ID:h6z32gRk
>自分の誤りを認識した場合、それを認める書き込みは決して行わず、
>別人の振りをして最初から正しく理解していた体を装う
2026/02/14(土) 13:16:05.34ID:GVAVZs+H
中華思想だな
2026/02/14(土) 16:51:15.13ID:GwzolVb9
>>727
「誤りを指摘されると指摘した相手にとにかく非があると主張する」のもお忘れなく
2026/02/14(土) 16:56:15.71ID:ze+RozSj
bindgenなんか使わなくても、AIにbindをgenしてもらえばいいんじゃない?
2026/02/14(土) 18:37:42.94ID:ZlDBNMi7
>>729
中国政府、トランプ、石丸伸二的な人達がよく使う手口じゃん
情弱を騙す手口として日本でも浸透してきてんだよな
732デフォルトの名無しさん
垢版 |
2026/02/15(日) 11:49:20.84ID:jhTnOWdq
右とか左とか関係無く自責より他責を好む人が良く使う手口という意味なら同意
>情弱を騙す手口として日本でも浸透してきてんだ
昔からあったんじゃないかな
2026/02/15(日) 13:35:57.15ID:jhTnOWdq
無能になるまで出世すると言うのもあるな。
その人の能力の限界(で無能化)に達したところで昇進が止まるため、組織は無能な上司であふれると言うピーターの法則
これは日本に限らない模様
2026/02/15(日) 16:11:37.18ID:SOPSIcmx
認知的不協和
https://www.youtube.com/watch?v=rwB8Um7naK0
2026/02/15(日) 16:15:18.93ID:u5Wg/hQW
認知的不協和
https://www.youtube.com/watch?v=rwB8Um7naK0
2026/02/16(月) 13:32:59.40ID:Igc0CmxY
struct Hoge (pub Vec<Fuga>);
とか
struct Hage {pub a: Vec<Fuga>}

let o = Hoge(vec![いろいろ]);
let a = Hage{a: vec![いろいろ]};
があるとき
let p: *const Fuga = &o.0[0] as *const Fuga;
とか
let q: *const Fuga = &a.a[0] as *const Fuga;
は期待する値が得られるのですが
let p_00: *const Fuga = &o.0 as *const Vec<Fuga> as *const Fuga;
とか
let q_00: *const Fuga = &a.a as *const Vec<Fuga> as *const Fuga;
とか
let p_0: *const Fuga = &o as *const Hoge as *const Fuga;
とか
let q_0: *const Fuga = &a as *const Hage as *const Fuga;
とか
は一応コンパイルは通るけど期待する値(Vecの要素の先頭アドレス)にはなっていません
structやVecのインスタンスの先頭アドレスがVecの要素の先頭アドレスであることは期待出来ないのでしょうか?
一致させることは不可能?
2026/02/16(月) 13:37:33.22ID:Igc0CmxY
let p: *const Fuga = o.as_ptr() as *const Fuga;
let q: *const Fuga = a.as_ptr() as *const Fuga;
の方が普通なん?
2026/02/16(月) 14:38:14.28ID:ANJ7dJAR
bindgenの微妙な動作と違ってこれはチャッピーでも大丈夫だろ
2026/02/16(月) 15:10:45.18ID:Xu/gSQdS
>>736
あるオブジェクトがその要素と同じレイアウトであることは期待できるときと出来ないときがある。
Vec は要素を格納する配列の本体はヒープに確保しているので Vec 自身と重なることはない。
たとえば MaybeUninit は格納している要素と同じレイアウト、アラインが保証される。
それが必要なような型は #[repr(transparent)] が付いてる。
2026/02/17(火) 12:49:25.29ID:6mHKPWLu
Array使えば医院で内科医
2026/02/18(水) 14:37:16.91ID:UaaZuUGV
>>736
Vec<T>という構造体は先頭アドレスと確保長さと有効長さの3つで構成されている
その先頭アドレスこそが*const T
それを得るにはvec.as_ptr()を使う
ちなみにvec.as_slice()でスライス&[T]つまり先頭アドレスと有効長のペアが得られる
2026/02/19(木) 19:09:14.78ID:Rn8V4f5h
AIってPythonとRust苦手そう
2026/02/19(木) 19:19:09.51ID:S0W7Yby7
Pythonについては全くそんなことはなく、なんならClaude CodeやCodexといったエージェントがデータを加工したいと考えたら
Pythonを自律的に書いて実行しやがるレベルで得意
Rustはまだコンパイルエラーの頻度が比較的高いが、エージェントなら自分でエラー読んで自分で直してくれる
744デフォルトの名無しさん
垢版 |
2026/02/19(木) 19:24:46.95ID:M452rQNZ
rustて一番使われてるのwebバックエンドだしなんか中途半端よな
2026/02/19(木) 19:36:27.65ID:/2EnFzsi
>>736
これなんでコンパイルエラーにしないんだろ?
746デフォルトの名無しさん
垢版 |
2026/02/19(木) 19:47:55.26ID:nI94p44k
AIは高級言語が得意だそうだ(本人談)
一方電子回路とかラダー回路とか、大の苦手だとよ

結局テキストベースで多数派を選んで試行錯誤してるに過ぎない
論理的に考えてやってるわけでも何でもないわけだ

あと絵を理論的に修正していく作業も苦手
自分で描いた絵を見ることが出来ないからだそうだw
2026/02/19(木) 19:58:55.55ID:Rw/o0MM7
どうした急に
2026/02/19(木) 20:46:42.27ID:fJlQpt7v
別型のポインタのキャストはsized (thin) → unsized (fat)だけ無理そう
unsized→sized(スライス*[T}→先頭要素*T)はメタ情報を捨てる形で許容してる
VecはDerefが絡んでややこしくなるからas_ptr使った方がいいな

https://doc.rust-lang.org/reference/expressions/operator-expr.html#r-expr.as.pointer
2026/02/19(木) 23:16:18.36ID:/ShQkq21
>>748
おお〜これはバグの温床になるな
750デフォルトの名無しさん
垢版 |
2026/02/20(金) 16:06:06.61ID:JaPthDTw
&raw const v
&raw mut v
はどうなんだろ
2026/02/21(土) 09:30:40.30ID:ftaqCpnX
フーン
https://internals.rust-lang.org/t/cleaning-up-ref-confusion/16705
----ワカリマ線----
2026/02/22(日) 12:11:41.68ID:C/K3j3au
>>750
&rawはTから*const Tや*mut Tを作るだけで
T→Uの変換が起こるわけじゃないから別によくね?

>>736の`*const Vec<Fuga> as *const Fuga`とかは
明らかに正しくないからコンパイル時に弾く仕組みを入れるか
p→pのキャストを運用でunsafe扱いにするかしないと危ない
753デフォルトの名無しさん
垢版 |
2026/02/22(日) 12:44:48.71ID:sV/YX2oD
&o.0 as *const Vec<Fuga> as *const Fuga とか
&o.0 as *const Vec<Fuga> とかを
&raw o.0 とか(1)
&raw o に(2)したところで
(1)や(2)が &raw o.0[0] や &o.0[0] as *const Fuga になる訳じゃなくないか
2026/02/23(月) 08:10:37.43ID:XzBA4EzZ
株式会社アイ・エス・ビー
https://kizuna.5ch.net/test/read.cgi/infosys/1756826944/

https://www.isb.co.jp/about/company-profile/
2026/02/24(火) 14:23:07.63ID:3PH4s5Yz
Servo vs. Ladybird?

Ladybird adopts Rust, with help from AI - Ladybird
https://ladybird.org/posts/adopting-rust/
756デフォルトの名無しさん
垢版 |
2026/02/24(火) 14:33:51.51ID:rUeO0tIz
>>755
Chromiumに対抗する新たなWebブラウザ基盤Ladybirdプロジェクトが始まった時
なぜか今さらC++採用で期待薄だったが結局Rust採用を始めたのか
2026/02/24(火) 23:14:14.55ID:c2Ni5UiC
AI使えば2週間でRust移植終わるんなら、ChromiumをAIでRustにしたほうが生産性よくない?
2026/02/25(水) 00:40:27.24ID:MPw0+/GH
>>757
AIに1万以上課金して使ったことあるが全くコンパイルエラー直せなかった
もう2年前ぐらいだけどドブに1万円札落としたとき並に衝撃的すぎてそれ以来手でコード書いてる
妄想もほどほどに。Rustは無理だわ
759デフォルトの名無しさん
垢版 |
2026/02/25(水) 00:42:18.01ID:Fvf+dJV2
2年前と今じゃさすがに別物や
360度違う
2026/02/25(水) 00:47:19.88ID:MPw0+/GH
そうなの?延々自分でコード破壊し、変数のライフタイムすらも理解してない雰囲気で無茶苦茶にコードいじって数十個コンパイルエラー発生、
エラーが多すぎるのでgit restoreとか言って全部作業抹消するという謎
お金は普通に請求1万以上、お前自分で書いたコード全部消したやん、、、
呆れて呆然とした
2026/02/25(水) 07:34:14.10ID:0x5jKylI
まぁ2年前ならそんなもんじゃない?
半年前でもだいぶ昔の話だねってくらいの発展速度だからな
2026/02/25(水) 07:59:23.70ID:FdmLYENu
戦前の人間が「電子製品は信用ならん」と言ってるくらいには昔の話だね
2026/02/25(水) 08:04:46.99ID:MPw0+/GH
rust ver.1.80 ぐらいの時期だから全然昔じゃないし
おまいらだって昨日のことのように過去を語るやん

10年前の話をしてるわけじゃないぞ?
10年前なら確かに公開されてるクレートも少なかったし色々情報少なかったが2年前と今日だとrust関連の情報はそんな変わらんやん
2026/02/25(水) 08:18:30.95ID:DBTlbj1A
そうだね、おじいちゃん
2026/02/25(水) 08:18:59.16ID:UOfUspbY
そりゃRustと生成AIじゃ全然時間感覚が違うから
Rustの2年前は最近だけど生成AIなら大昔よ
別に必ずしも最先端に追従すべきとも思わんけど
最近の事情を知らずに「2年前は~」とか言ってると
またおじいちゃんがなんか言ってる、
みたいに受け取られるので言わないほうがいいよ
2026/02/25(水) 08:20:58.69ID:SMP/b+22
生成AIの性能が今よりずっと低かった、という話じゃないの?
2026/02/25(水) 09:25:13.35ID:WvnNIYYj
2年前だとCopilot用途でも微妙だった時代か
業務でAIエージェントを平行稼働させて1行もコード書かないのは当たり前で
生成物もレビューしたつもりでほぼ手直し無しでコミットする今日とは
幼稚園児と社会人ぐらいの差はあるな
2026/02/25(水) 10:16:01.93ID:wlxx4maV
AIあるならRustいらないよね
2026/02/25(水) 10:29:15.32ID:P3AkPFQR
AIは人間のようにコンパイルエラーを出し、人間のように直す
固い言語は、AIにも人間にも必要
2026/02/25(水) 11:05:03.22ID:wlxx4maV
2026/02/25(水) 11:34:21.63ID:Ahl4/FG+
どのモデルがRustが得意とかあるなら知りたいかも
772デフォルトの名無しさん
垢版 |
2026/02/25(水) 14:14:48.67ID:MOGILlKo
>延々自分でコード破壊し、変数のライフタイムすらも理解してない
めっちゃ判ります
2026/02/25(水) 14:15:57.39ID:MOGILlKo
>>771
関数型で一方通行でmut無しとかは向いてると思うよ
2026/02/25(水) 16:08:16.36ID:yKGm4nBM
お前らナイトリービルドつかってるやつ何%くらいおる?
775デフォルトの名無しさん
垢版 |
2026/03/02(月) 09:09:11.27ID:Qk4Jowt/
rustのフリーランス案件見たことない
需要あるのか?
今覚えてるとこだけど
仕事に繋がらないとモチベが保てない
776デフォルトの名無しさん
垢版 |
2026/03/02(月) 09:51:46.08ID:Tdclyok1
国内じゃむりぽ
英語使えて外資でリモートならありそう
777デフォルトの名無しさん
垢版 |
2026/03/02(月) 10:53:37.44ID:lEbKv3qe
777get
778デフォルトの名無しさん
垢版 |
2026/03/02(月) 19:21:03.31ID:Qk4Jowt/
AIでコード生成するなら学習資産がある言語が有利だから
やっぱC/C++の覇権が続くのかなぁ?
2026/03/02(月) 19:38:21.92ID:xcICWUoA
>>778
意外かもしれないが数テラバイト程度の品質の高いコードがあれば AI が学習するには充分だし過剰にたくさんあっても処理しきらない。
質の低いコードからは質の低いやり方も学んでしまうので闇雲に分量があれば良いというわけでもない。
2026/03/03(火) 00:24:03.23ID:gio+EDYS
>>779
たとえが悪すぎる
良い料理人やシェフはかならず分厚いレシピ本を何冊も買って読んでる
下手な料理人は我流でやる

これと人工知能って全く一緒でレシピば多いほど良い
ネタ元のレシピが少ないとアイデアの引き出しも少ないからうまい料理は作れない
2026/03/03(火) 06:49:47.16ID:kgicJrQR
@[email protected] 🔗 https://social.rust-lang.org/users/rust/statuses/116161587093926891
-
RE: https://social.rust-lang.org/@rust/115565961664226194

The results of the 2025 State of Rust Survey are now available! 📊

https://blog.rust-lang.org/2026/03/02/2025-State-Of-Rust-Survey-results/
2026/03/03(火) 06:54:19.74ID:kgicJrQR
>>774
>>781 の調査では回答者の3割らしい
2026/03/03(火) 07:52:41.35ID:Ui/HNf2k
>780
どうだろうな
将棋などのゲームの世界では定石をたくさん用意するよりもモンテカルロ木探索のような力技の方が良い結果を出せるようになってしまった。
コーディングでもそういうことが起きるかも。
2026/03/03(火) 10:37:35.92ID:KP8f8oK3
>>783
将棋はネタ元の棋譜が多いからよかったんだろ?

将棋エンジン同士の対戦やかAI同士の対戦が最初から人間の名人戦のように質が高かったわけじゃないからな
2026/03/03(火) 10:46:11.60ID:FieZNE0k
>>780
いいえ。
学習の分量は一定量を越えると急激に質が良くなります (いわゆる層転移) がその一定量を越えてからは量が質に与える影響は鈍化します。
その一定量に届くラインまでにどれだけ質の良い学習素材を用意できるかがキモで、学習量が多ければ多いほど良いということはないです。 少なくとも計算量 (それに必要な電力コストや時間) とのトレードオフで割に合わないです。
いまや Rust は充分に「一定量」の素材はあるので C/C++ に比べて AI の質が劣ることはないです。
2026/03/03(火) 11:03:01.16ID:AKCntDuk
>>785
じゃ今現在claude, gpt, gemini等の各種生成AIが生成するRustの質が低いのはなぜ?
C++は知らないけどCに比べると圧倒的に質が低いぞ
787デフォルトの名無しさん
垢版 |
2026/03/03(火) 11:58:07.21ID:qeORX8NI
そこら辺のAIは、論理的に思考して答え言ってないからな
世の中に出回ってるテキストベースの情報を見てよさげなのを答えてるだけだからな
情報少なければ質も悪い
788デフォルトの名無しさん
垢版 |
2026/03/03(火) 12:27:01.49ID:cfupQG0m
>>787
どのへんのAIだと品質いいの?
2026/03/03(火) 12:51:44.48ID:lsDo16z9
>>787
>世の中に出回ってるテキストベースの情報を見てよさげなのを答えてるだけだからな
この前提が正しいと仮定しても他の言語に比べてRustの質が低い理由にはならないだろ
その程度の論理的思考もできんのか?

もちろん前提も間違ってるんだけど
2026/03/03(火) 13:02:15.04ID:rtyBzEfN
>>789
>>世の中に出回ってるテキストベースの情報を見てよさげなのを答えてるだけだからな
>この前提~
>もちろん前提も間違ってるんだけど

確認だけど「よさげなのを答えてるだけ」の部分を否定してるだけたよな

「世の中に出回ってるテキストベースの情報」の質と量がある臨界点以上集まらないと
AIの品質がシンギュラリティレベルを超えないから

もちろんプログラミング言語の特性によってその臨界点が遠い場合も有り得る
791デフォルトの名無しさん
垢版 |
2026/03/03(火) 13:02:31.43ID:duhBFzhd
AIはプログラム言語の意味は理解できてもそれらを使って最適にプログラミングする能力は無い
思考してないし検証もしてないからな

将棋プログラムのような最適手を試行し学習する手段で回答なんかしない
それ用に作り上げたAIだけがそういうことが出来る
792デフォルトの名無しさん
垢版 |
2026/03/03(火) 13:04:06.36ID:duhBFzhd
だからラダーとか電子回路のことを聞くとノータリンだ
なぜかと聞けばAIが答えてくれる
苦手なんだとよw
2026/03/03(火) 13:05:44.93ID:rtyBzEfN
ここでのシンギュラリティとは世の中が変わると言う話ではなく
AIがデータ作成と検証(仮説理論と実験)を繰り返して自律的に進化していく段階をイメージしている
2026/03/03(火) 13:09:40.98ID:g/jMsKup
>>789
非論理的なのはそこら辺のAIが返した回答のコピペだからだろ
一連のレスを見れば論理を理解してないのは明らか
2026/03/03(火) 13:10:25.58ID:8ikcv3ew
>「世の中に出回ってるテキストベースの情報」の質と量がある臨界点以上集まらないと
>AIの品質がシンギュラリティレベルを超えないから

・・・・・
2026/03/03(火) 13:12:53.80ID:Ttfq0zXr
>>791
思考できないなら理解もできまい
797デフォルトの名無しさん
垢版 |
2026/03/03(火) 13:30:35.23ID:duhBFzhd
テキストベースでの思考と理解しかしていない
だからプログラミングしてるのではなく、この命令の後はこの文字が来るという学習の結果をずらずら並べてるに過ぎない
普通のプログラミングならそれで充分だしな

でも誰もやったことがないアルゴリズムの発見とかは出来ない
それが出来るのはそういう目的で作られたAIにしかできない
798デフォルトの名無しさん
垢版 |
2026/03/03(火) 13:33:25.45ID:duhBFzhd
AI は「プログラミングができる」が、
“思考してからコードを出す”タイプではなく、
“コードを予測して出す”タイプが主流です。
ただし、形式手法と統合された AI は
安全性・再現性・境界条件の明確化を満たす方向に進化しており、
制御系や PLC にも適用可能な未来が見えています。

↑AIの回答
799デフォルトの名無しさん
垢版 |
2026/03/03(火) 13:34:36.80ID:duhBFzhd
AI は Python、C、C++、JavaScript などの 高級言語のコードをテキストとして直接生成できます。
• 関数やクラスの作成
• アルゴリズムの実装
• バグ修正の提案
• 既存コードのリファクタリング
ただし内部で マシン語を扱ったり、コンパイラのように構文木を厳密に構築しているわけではありません。
統計モデルとして「次に来るべきトークン」を予測しているだけです。

↑AIの回答
800デフォルトの名無しさん
垢版 |
2026/03/03(火) 13:35:35.37ID:duhBFzhd
最近は、単なるテキスト生成を超えて、思考プロセスを強化した AI が登場しています。
• Tree-of-Thought:複数のコード案を分岐させて探索
• Self-Debug:自分で生成したコードをテストして修正
• Compiler Feedback Loop:コンパイルエラーを読み取り再生成
• Program-of-Thought:アルゴリズムをコードとして推論
これにより、従来より 論理性・再現性・整合性 が向上しています。

↑AIの回答
2026/03/03(火) 13:45:46.03ID:rITZOFdm
AIで調べものをしたりAI回答をコピペするのは構わない
ただしそこから直接的に見出した自分の意見を「他人も納得し得る形」にしないと意味ない
2026/03/03(火) 14:04:50.55ID:9UZukxKC
>>797
どこまでいってもやってることは計算で思考や理解はしていないかと
2026/03/03(火) 14:18:14.73ID:vuzqt6ZT
AIの回答ペタペタするだけなら人間いらないんだよな
自分で聞くから
OSSにAIに書かせて吟味してないソース投げる馬鹿とお同じ
2026/03/03(火) 14:25:57.59ID:M8J9tcnp
>>786
万人向けに設計されている AI は自律性が低く指示に対して従順です。
つまり指示の的確さが結果の質に反映されます。
あなたが Rust より C のほうが得意なら AI の生成するコードもそうなりがちです。

AI が生成する Rust コードは C コードより質が高いと感じている人も多いです。
2026/03/03(火) 14:47:37.90ID:wN3hmWku
>>790
>>785の“いまや Rust は充分に「一定量」の素材はあるので C/C++ に比べて AI の質が劣ることはないです。”と矛盾してるだろ

少しくらいは自分の頭で考えないといつまで経ってもそのままだぞ
2026/03/03(火) 14:52:44.83ID:Tr0ESCKs
>>804
> つまり指示の的確さが結果の質に反映されます。
これが足切りになる層がいる

ザックリした指示で、一発で即完成形で出してくれるのはC/C++かな

Rustでマンデルブロー集合をGPUで計算してPNG出力するプログラムを指示しみてくれ
自分のところではコンパイルが通らないコードが出て来た
2026/03/03(火) 14:57:35.52ID:wN3hmWku
>>804
CとRustならむしろRustのほうが得意だけどそれ関係ない
ベース部分の比較は出力言語の指定箇所以外は同じ入力で試さないと意味がないからな

ちょっとアレ過ぎてお話にならないわ
2026/03/03(火) 15:00:09.81ID:UTF77Ts7
ブラウザ上のチャットでコーディングしているおじいちゃん…
2026/03/03(火) 15:02:32.92ID:wN3hmWku
>>806
それはザックリすぎるわ
そのCかC++で出力されたまともなコードをRustに変換させて結果まともなコードになるのであれば
指示次第ではまともなRustのコードを出力できる力はあるということになる
2026/03/03(火) 16:51:28.01ID:xnYkhOI4
赤くなってる奴は無課金チャッピーの出力をメモ帳にコピペして
cargo runを繰り返してる年寄りだということはわかる

とくに考え方を変える必要はないけどAIエージェント前提の話に入ってこないでくれる?
2026/03/03(火) 16:53:54.25ID:KgdJcOpC
Rustでコンパイル通らないのはそりゃそうだろうとしか
人間でもなかなか一発で通らないだろ
AIエージェントはエラー見ながら自分で解決するんだよ
2026/03/03(火) 17:50:01.27ID:M8J9tcnp
無課金チャットの ChatGPT, Claude, Gemini で判断しているのだとしたら C とか Rust とか関係なく質は低いですよ。
プログラミングをサポートするための調整はされていないからです。
特にコンテキスト長がかなり短いのでまともな大きさのプログラムだと全体の整合性を取ることが出来ません。
作業しながら自分がやっていることを忘れるということなので学習量がどうこうというレベルの話ではないです。
Rust は C に比べて記述が遠回りになりがちな部分もある (結果的にコードの分量が多くなる) と考えればコンテキスト長の限界に引っかかりやすくなるということは多少はあるかもしれないです。
それでもモジュールひとつ分くらいはまともに書ける力はあるので適切に分割すれば極端に悪いコードは生成されないと思うんですけどね。
2026/03/03(火) 18:16:25.54ID:FuOdyu6p
またコピペかよw
こいつどうしようもねーな
814デフォルトの名無しさん
垢版 |
2026/03/03(火) 20:00:59.45ID:xNoabcwU
aiコピペぉぢさんの魅力
815デフォルトの名無しさん
垢版 |
2026/03/03(火) 21:04:23.57ID:bIvmBBlq
>>789と790が最高のバカだったな
2026/03/03(火) 23:35:54.08ID:sPnBeKpG
元々社会にいらないとされていた人間は、AIの力を借りても結局AIがあればいらない人間にしかならないんだよな
2026/03/03(火) 23:54:32.57ID:MNQJL7yf
AIのチューニングや出力結果の調整
が適切に出来るならともかくね
2026/03/04(水) 01:10:01.30ID:vspC71jS
このスレって、もともとトレイト境界の翻訳が間違ってるとかでレスバしてたのに今度はさらにどうでもいいことでレスバ
過疎化しすぎじゃん
819デフォルトの名無しさん
垢版 |
2026/03/04(水) 07:02:07.30ID:4OWeHuLG
コードを予測してるだけでは、情報量の少ないRustの方が質が悪いのは当然

ちゃんと思考してアルゴリズム考えてコード作成すりゃ同じパフォーマンスになるのも当然

今のAIの実力を知らないからおかしくなる
2026/03/04(水) 09:13:37.11ID:vLlR32uD
今の生成AIがまるで思考してるかのように
2026/03/04(水) 09:42:52.06ID:QHvwosAA
思考してるよ
我々の程度の低い脳活動を思考と呼ぶのなら
2026/03/04(水) 09:57:17.27ID:KWCerV5u
そちらのおっしゃる思考とは
823デフォルトの名無しさん
垢版 |
2026/03/04(水) 09:58:59.10ID:Be7jgWUt
そりゃ幼稚園児だって思考して作文くらい書く
でも内容が幼稚だったり真実でなかったり

生成AIはコード予測と言う思考しかしておらず、プログラミングと言う思考はしていない
2026/03/04(水) 10:01:27.10ID:l/jj9Szm
電卓の内部のマイコンが実際には演算なんかやってないのと同じだな
2026/03/04(水) 10:18:09.24ID:1jEWDt9+
>>818
そう言えばそんなのあったな
何年も前の昔話のようだ
>>824
学校のグラウンドとか使って生徒1人1人に「お前はNAND」「お前はOR」とか決めて手を繋いでコンピュータ作ったら面白そう
2026/03/04(水) 12:05:32.56ID:AcKGUYjx
人もAIも使わないRust
827デフォルトの名無しさん
垢版 |
2026/03/04(水) 15:00:43.96ID:OrlFWOPZ
>>825
俺はHで
828デフォルトの名無しさん
垢版 |
2026/03/05(木) 08:54:58.94ID:uUyDlQ6+
>>825
手が3本必要
2026/03/05(木) 09:10:06.73ID:BjPJDcyA
>>828
パンツをおろせ
830デフォルトの名無しさん
垢版 |
2026/03/05(木) 10:02:18.77ID:uUyDlQ6+
>>829
握るのも握られるのも嫌だなあ。

僕はインバータで良いや。
831デフォルトの名無しさん
垢版 |
2026/03/05(木) 13:48:19.71ID:+yoLdZY0
Rustみたいなコンパイルが厳格な言語は
嘘つきまくるAI生成のコードとは
ある意味で親和性いいような気がする
2026/03/05(木) 15:29:52.02ID:GrZo6tuI
ロケット今回も堕ちたよ
Rust使え
833デフォルトの名無しさん
垢版 |
2026/03/05(木) 17:49:25.52ID:+yNdHe3l
AIって言わば記録力だけがいいだけの馬鹿ってやつで
日本の大卒者の大多数と同じ

使えないやつの筆頭だがうまく使えば役に立つ
任せて丸投げは危険
834デフォルトの名無しさん
垢版 |
2026/03/05(木) 22:28:00.78ID:TdyH89si
>>832
手が回らないからかニッチなそう言う組込みはターゲットにしてない
gcc, llvm のターゲットにはなっててもRustのターゲットはさらに少ない
SpaceXなんかはx86の今どきなら最低違いの使ってるらしいが
使うチップも宇宙線対策でそんな密度高いの使わないので重い汎用OSよりも生バイナリ動かせるほうが嬉しい
一発コケると洒落ならんから信頼性、そして準ずる実績とか欲しい
新しいことやってこけるくらいなら既存のCやHDLの資産使おうになる
スペースワン、カイロスはその資産もないんでトライ・アンド・エラー必要
金あったSpaceXでさえ4発目でようやくあがった
2026/03/06(金) 10:52:27.36ID:eqcs8cMN
結論 rustは誰も使わない
836デフォルトの名無しさん
垢版 |
2026/03/06(金) 11:47:16.85ID:oAg7GdjP
これだけRustが普及している状況で化石か?
2026/03/06(金) 15:02:07.32ID:UfOJQwwp
>>834
新しいことやらなくてもコケてるやん
838デフォルトの名無しさん
垢版 |
2026/03/06(金) 22:45:59.43ID:q/oKxOvs
5ch net ドメイン剥奪ワロス
2026/03/07(土) 09:47:57.16ID:t4G626i5
「航行は全て順調だったが自爆装置が勝手に・・・」前も同じ失敗してたよな
2026/03/07(土) 22:59:06.55ID:ZL4wM2mV
自爆すべきときにしないよりはすべきでないときにするほうがマシではある。
2026/03/08(日) 09:51:44.13ID:PgMm4yxY
const HOGE: [HogeType; 4] = [HogeType{}, HogeType{}, HogeType{}, HogeType{}];
は通るのに
const HOGE = [HogeType{}, HogeType{}, HogeType{}, HogeType{}];
は : [HogeType; 4] を付けろと言われるのがうざいです
const とは言え要素数は変更したい(動的じゃなくて静的)とき
(4なら良いけど400とか有ったら)毎回数えないといけないのは面倒
せめて
const HOGE: [HogeType; _] = [HogeType{}, HogeType{}, HogeType{}, HogeType{}];
位に省略出来たら良いのに
2026/03/08(日) 10:37:41.42ID:wA2ynCho
const HOGE: &[HogeType] = &[HogeType{}, HogeType{}, HogeType{}, HogeType{}];
843デフォルトの名無しさん
垢版 |
2026/03/08(日) 11:54:08.42ID:AiHrPN7l
普及してるというより、いろんなところにこっそり入り込ませてる感じ。
844デフォルトの名無しさん
垢版 |
2026/03/08(日) 13:22:26.53ID:/qWzUlZb
git clone xxx/rust.git

cd rust

du -sh .

/mnt/vms/GIT/RUST/rust
16G .

branch を stable に変更すると src/gcc をまるごと(3G弱)取得しようとするし


アタマになにわいてんだよゴミ言語
845デフォルトの名無しさん
垢版 |
2026/03/08(日) 13:36:34.19ID:QH+Bwu9+
何のためにcloneしてるの?
そして何を文句言ってるの?
846デフォルトの名無しさん
垢版 |
2026/03/08(日) 13:46:31.24ID:qxEk/aR3
>>842
配列の参照を渡す時はアドレスだけ渡せばよいけど
スライスにすると長さも渡さなければいけないデメリットもあるため使い分けだね
2026/03/08(日) 17:36:33.58ID:Sbf6b4OL
巨大リポジトリを丸ごとクローンしようとするとは
アタマになにわいてんだよブーメラン刺さってますよ
848デフォルトの名無しさん
垢版 |
2026/03/08(日) 18:07:53.11ID:luHwuS6f
GIT ってサイズが不明でレジュームもできない、
数GをDLして途中で切断されると全て無駄になるし。
849デフォルトの名無しさん
垢版 |
2026/03/08(日) 18:09:19.31ID:luHwuS6f
llvm-project も gcc も、大半のファイルは使わないのに
態々rust が submodule としてフルで飼ってるし……
850デフォルトの名無しさん
垢版 |
2026/03/08(日) 18:11:22.69ID:luHwuS6f
ま、できるだけ排除してみますよ……
851デフォルトの名無しさん
垢版 |
2026/03/08(日) 18:31:43.60ID:6LQjTSRb
普通の用途でgit cloneする必要がない
どうしても必要な用途ならば文句を言うのはおかしい
2026/03/08(日) 19:05:51.71ID:Sbf6b4OL
何をしたいのか知らんけど―depth=1とかでいいでしょ

rust自体をビルドする時もpre-builtのllvmで問題ない
あんまり古いバージョンでは駄目だろうが
2026/03/09(月) 08:27:23.99ID:EtAo0pjn
>>849
連投するようなお前が言えることか?

LLVM のインターフェイスはそんなに安定してないんだよ。
場合によっては Rust のために LLVM を修正することもある。
足並みを揃えないとコンパイルすらできないから一体にしとかないと仕方ないんだ。
良いとは言わんが、そうしているのは理由がある。
854デフォルトの名無しさん
垢版 |
2026/03/09(月) 10:27:27.29ID:XmKYp6SM
llvm-project をまるごと飼っておく理由はどこにもないな。
2026/03/09(月) 10:41:34.33ID:y3Qo4WIR
windows-rs の windows-numerics の実装ってとてつもなくセンス悪いね
しかも全然未完成ジャマイカ
856デフォルトの名無しさん
垢版 |
2026/03/09(月) 10:55:21.24ID:XVPzdn5K
プログラマで使ってるやつも少ないだろうしwindowsなんかその程度でええやろ
ms社員でもmac多いし
857デフォルトの名無しさん
垢版 |
2026/03/09(月) 11:11:33.30ID:HGNMBh8y
>>855
マイクロソフトが作った剥き出し作品だから
858デフォルトの名無しさん
垢版 |
2026/03/09(月) 13:43:07.71ID:IzizxnOu
近頃は .cargo 以下に 勝手に git clone するのもあるのなw
2026/03/09(月) 14:37:46.12ID:BcOaz4JO
directx_math が正解か
860デフォルトの名無しさん
垢版 |
2026/03/09(月) 17:32:51.90ID:ZeHnxVQL
use directx_math::*; しちゃえ
2026/03/09(月) 17:50:21.61ID:EtAo0pjn
>>855
windows-rs は API の素直な投射を意図してる。
Rust 的には筋が悪いことも多いけど Windows の API のドキュメントを見ながら使うにはそのほうが良い。
windows-rs のドキュメントなんてなんの説明もないし。
2026/03/10(火) 09:35:48.90ID:e5EmWKMm
Rustの型チェックは有難いが無駄に型が増え過ぎて組み合わせ爆発になるな
863デフォルトの名無しさん
垢版 |
2026/03/10(火) 09:52:23.99ID:b0S6IJua
ジェネリックなコードしか書かなくて済むから組み合わせ爆発は起きない
2026/03/10(火) 11:01:47.52ID:CEuRkOn+
ジェネリックなコードを書くために構造体 × トレイトの組み合わせ爆発が起きる
Rustでは構造上避けられない問題
865デフォルトの名無しさん
垢版 |
2026/03/10(火) 12:06:46.73ID:Zbk2B5sO
>>864
爆発は起きない
ある構造体に必要なトレイトは限定される
さらに構造体に共通なコードはトレイト側のみで記述される
866デフォルトの名無しさん
垢版 |
2026/03/10(火) 12:53:27.77ID:Zfw0U02T
トレイトの用途が重複してるなぁとなる時はあるね
2026/03/10(火) 13:08:30.62ID:cQ/KCsiy
トレイト実装は掛け算になるからマクロ使わないと辛い
LISPとかに馴染んでるとマクロ使ったコード生成に抵抗少ないけど
C言語寄りの人だと心理的な抵抗があるかもしれない
868デフォルトの名無しさん
垢版 |
2026/03/10(火) 13:31:48.91ID:1TvFPdP3
>>867
トレイト実装のほとんどは共通化されたデフォルト実装になるから掛け算にならない
各型の個別実装は型固有のrequired methodのみ必要最小限になる
あとは後に必要に応じて型固有の最適化実装があるかどうか程度
2026/03/10(火) 14:36:13.81ID:e5EmWKMm
proc_macro2 を外部 crate に置かないといけない仕様はなんでなん
2026/03/10(火) 15:03:32.14ID:cQ/KCsiy
>>869
缶切りが缶詰の中に入ってたら困るから
2026/03/10(火) 15:03:49.61ID:5VpW+IbG
>>869
ひとつのクレート内ではマクロ展開が「全て」完了してからマクロの無いプログラムとしての解釈が始まるという単純化したルールだから同じクレートにあるマクロ定義はそれが必要なタイミングではまだ定義されてないことになる。
このルールは Scheme のマクロとライブラリの仕組みを踏襲してる。
2026/03/10(火) 15:14:02.95ID:Z0ql+IYL
>>865
いやもう起きてるじゃん
num crateとか見てごらんよ

num crateの主要な構造体は3個
num crateで定義されたトレイトは17個
そしてその3個の構造体に対するトレイト実装はなんと約1200個

爆発しすぎて草生えるレベル
873デフォルトの名無しさん
垢版 |
2026/03/10(火) 15:57:21.22ID:28BSIgk8
axumの自由でコンパクトすぎる設計って肥大化すると結局ワンパターンになる
フレームワークってそんなに自由じゃなくてもいいよね
874デフォルトの名無しさん
垢版 |
2026/03/10(火) 16:21:46.94ID:NFLCjIVK
>>872
num crareはプリミティブに関する本来は標準ライブライでやるべきことをしている特殊なクレート
一般のクレートでそんなことは生じない
2026/03/10(火) 17:11:15.39ID:5VpW+IbG
数値型を表すトレイトは標準ライブラリに有って欲しいなぁとは思う。
2026/03/11(水) 16:37:43.90ID:BII56HKn
crates の破綻
877デフォルトの名無しさん
垢版 |
2026/03/12(木) 07:20:10.89ID:GDFGiQDP
 headless_chromeだけど
仕様上、頻繁に接続切れるのは仕方ないにしても
何でエラーをanyhowで返してくるんや
めちゃくちゃエラー処理しにくいがな

皆もlibはthiserrorとか使ってくれな
878デフォルトの名無しさん
垢版 |
2026/03/12(木) 08:11:36.96ID:LggIehaH
>>877
ライブラリがanyhow::Errorを返すことは禁止されている
anyhow::Errorはimpl std::error::Errorを実装していないため他のエラー型への自動変換や他のエラー型の中にdyn収容などができないためだ
例えばstd::io::Errorのnew(kind, error)やother(error)による収容もトレイト境界を満たせずできない
2026/03/12(木) 10:25:01.18ID:4w8dve2E
>>876
複数のcratesにまたがる場合workspace造ってsub-cratesにすれば良いけど
publishすると結局ばら撒かれるよね?
2026/03/12(木) 14:21:55.59ID:p6E29MVL
du -sh ~/.cargo
2.1G /home/oresama/.cargo

調子に乗り過ぎ()
881デフォルトの名無しさん
垢版 |
2026/03/12(木) 19:54:31.19ID:+rN3DdSP
rust遅い
速度計測したらpythonのが速いわ
ライブラリ成熟の差やね
2026/03/12(木) 20:38:18.55ID:E07tKJsp
Rustで書いたバブルソートとPythonで書いたクイックソートならそりゃ後者が早いだろう
だからなんだって話で、AIエージェントがあればもういらないレベルの人間
883デフォルトの名無しさん
垢版 |
2026/03/12(木) 23:00:49.43ID:wO9bV9sB
https://i.imgur.com/YPab4wb.jpeg
884デフォルトの名無しさん
垢版 |
2026/03/12(木) 23:18:41.24ID:XTp9T2EE
api程度ならgoでええわ
クレート入れる度にディスク削ってくるから書くのは低レイヤーだけにしとこ
2026/03/12(木) 23:34:35.26ID:K4u+C7vv
>>883
現実はもっと遅いよね
886デフォルトの名無しさん
垢版 |
2026/03/12(木) 23:41:23.68ID:LeelrD0z
クレートのディスク容量なんて誤差だろ
887デフォルトの名無しさん
垢版 |
2026/03/13(金) 00:11:35.95ID:li//GGm3
512MBのHDDとか使ってるのかな
2026/03/13(金) 00:35:17.96ID:igjBS7sj
ディスクて
889デフォルトの名無しさん
垢版 |
2026/03/13(金) 10:52:14.44ID:v3t9BGXz
buildしたらcleanしろよ
2026/03/13(金) 10:55:30.44ID:C/RuFZJh
複おじと100点おじがAIスレで共闘中www
891デフォルトの名無しさん
垢版 |
2026/03/13(金) 11:36:15.86ID:utxEbVld
>>883
RustのLOGOmarkなんで変わってんの
新しくなったんか
2026/03/13(金) 13:49:04.91ID:NxtGLrlC
>>891
Rust という名前のゲームがあって、それと取り違えてる。
https://store.steampowered.com/app/252490/Rust/?l=japanese
2026/03/13(金) 15:02:07.32ID:F9UgDvDP

俺がRustと勘違いしてDiscordに入ったゲームだ
894デフォルトの名無しさん
垢版 |
2026/03/13(金) 18:01:43.33ID:XPrdXGKe
向こうさんもクリエイティブなゲームだから稀にアンジャッシュも起こるとか
895デフォルトの名無しさん
垢版 |
2026/03/14(土) 09:26:29.24ID:A3+zBo28
もう2(5)チャンネルも廃れたな
896デフォルトの名無しさん
垢版 |
2026/03/14(土) 10:38:22.67ID:OdM3R2S0
geminiとかclaudeとかとRustについて駄弁っているほうが有意義だからね。新しい人間はわざわざこんなところに来ない。
897デフォルトの名無しさん
垢版 |
2026/03/14(土) 11:10:38.67ID:sVkUX/u1
>>885
でも安全性を考えれば
速度と両立があるRustって感じなんか?
2026/03/14(土) 11:40:47.44ID:SPLDb608
>>897
NO

ほぼ全てUnsafe 2.19秒
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-rust-9.html

Unsafe控え目 3.24秒
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-rust-7.html

Unsafeなし 3.46秒
https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-rust-3.html

別ソース
https://madnight.github.io/benchmarksgame/nbody.html
2026/03/14(土) 12:04:56.83ID:nsGYDvrv
充分にチューニングしていない素直なコードで処理速度を比較してもそれはそれで公平とは言えないだろう。
言語が違う時点で条件が違うんだから誰もが納得する比較なんて出来ないよ。
この手のマイクロベンチマークは言語の特性を把握するために使うものであって優劣を計るようなものではない。

まあどんな条件でも圧倒的に速いとか圧倒的に遅いとかの極端な優等生・劣等生は別枠になることもあるかもしれないけど。
2026/03/14(土) 12:08:45.85ID:+8fCJ8ku
Pythonは辞書を多用する関係で文字列のハッシュ値を内部で保持してるから
素人が何も考えずに移植してRustのHashMapが遅いって文句を言う事象は定期的に発生する
901デフォルトの名無しさん
垢版 |
2026/03/14(土) 12:10:03.07ID:5dMjP9zC
用途が違うんだから比較するのがおかしい
通勤するときにF1マシン使わんやろ
2026/03/14(土) 14:19:54.78ID:lcaUGCqR
通勤車両がPythonでF1車両がRustということなら
Rustはコストが高すぎて使われないということになるね。
2026/03/14(土) 14:31:50.24ID:+8fCJ8ku
通勤車両も利用者が1人だと廃線になりそうだな
904デフォルトの名無しさん
垢版 |
2026/03/14(土) 14:40:53.40ID:+TdW5/94
Rustの爆速幻想もPythonの鈍足説も、実際触ってみると案外そうでもないですよね。結局Rustは「速さ」というより「安全性」に全振りした言語なんだろうな、と。今のAIの実力だとRustをガシガシ書かせるのはまだ厳しいですが、それが可能になる頃には、人間不在の「AIネイティブ言語」が生まれていそうです。界隈も、ガチで必要としている1%の企業と、趣味で楽しむ99%の技術好きが支えているような、歪で面白いパワーバランスを感じます。
2026/03/14(土) 15:04:37.08ID:0SsO8fq5
Claude opusに設計、インターフェース、テストmd用意してRustで書かせてるけどパフォーマンスは良いよ
GoとRustで悩んだけどRust>Go>Pythonじゃない?用途によるけど
コードをゴリゴリ書くよりテスト買いてAI壁打ち、無理なら手作業って流れだとRustは悪くない
906デフォルトの名無しさん
垢版 |
2026/03/14(土) 18:56:39.72ID:sVkUX/u1
>>898
Rustの存在価値無いやんけ…
2026/03/14(土) 19:08:14.05ID:iVZZDYSc
C++こそ至高ということだ
2026/03/14(土) 19:10:43.77ID:TZ1M6sto
Rustって何だったんだろうな
2026/03/14(土) 19:20:06.31ID:Bsf+mOUP
幻滅期に入った感はあるな
みんなAIエージェントに夢中でもはやコードに対する興味を失ってしまった
2026/03/14(土) 21:19:15.61ID:mcLPnWXP
AIエージェント時代はいかにガードレールを敷くかがプログラムコードの役目なので
むしろAIそのもの以外はなんでもかんでもRustにするのが流行りになってる
911デフォルトの名無しさん
垢版 |
2026/03/14(土) 21:34:35.69ID:MFQ06zWd
使いたくても使えない人が
「どうせ酸っぱいに決まってる」
と言ってるような感はあるよね

実際、Rustの利は速度なんかじゃなくて……
あれ、インターホンがなった。ちょっと出てくる。
912デフォルトの名無しさん
垢版 |
2026/03/15(日) 00:35:17.12ID:9B6BUJ0A
Goより全然良いんだけど何でRust嫌われてるんだ?
913デフォルトの名無しさん
垢版 |
2026/03/15(日) 03:22:36.04ID:eKtwcXBI
クレート入れると毎回うんこビルドが走るしラスアナが重いので開発体験が悪い
914デフォルトの名無しさん
垢版 |
2026/03/15(日) 05:02:50.33ID:IWZL2wvB
1回だけだろ
どの言語でもライブラリ使うなら同じ
915デフォルトの名無しさん
垢版 |
2026/03/15(日) 05:37:45.25ID:fCjqnl3D
C++屋だから所有権とかライフタイムとかは
unique_ptrみたいなもんだと理解してる
2026/03/15(日) 08:21:18.30ID:TBbme1xV
「みたいな」はどういう意味でなのかによる。
2026/03/15(日) 09:54:22.20ID:ICGx0pi/
そもそも何でこんな書き方がクセあるの?
考え方よりcやc#やkotlinとかから入るとしんどすぎる
2026/03/15(日) 11:03:04.70ID:65qh32M1
真っ当に Algol 系文法の後継者に見えるのでそんなにクセつよには感じない。
具体的にどういう記法をクセに感じるの?
919デフォルトの名無しさん
垢版 |
2026/03/15(日) 11:08:27.23ID:eKtwcXBI
文字列型がなくて文字は全部バイトスライスのzigのほうがやばい
2026/03/15(日) 13:08:27.55ID:qaLJXPfy
Rustの文字列もバイト配列(or Slice)のwrapperだが
921デフォルトの名無しさん
垢版 |
2026/03/15(日) 15:10:05.15ID:BiGyOWHu
>>920
どの言語でも文字列の内部の実装はそのような感じになるけど外部にどう見せるかが一番重要なところ
RustはUTF8が絶対に崩れない点や部分文字列もダングリング参照にならない点など
2026/03/15(日) 15:30:54.44ID:65qh32M1
ZIG は C/C++ との連携も意図しているので ZIG の側だけで保証しきらないことまで熱心にやる気はないんだと思う。
標準ライブラリと言語全体での強力な保証はなくても ZIG で UTF-8 を扱うこと自体はごく普通に出来るし。
923デフォルトの名無しさん
垢版 |
2026/03/15(日) 15:46:29.73ID:Ai9Pv8Na
utf8の途中でちょん切れたり不正なutf8になったりするのは困るよね
Rustは安全安心
2026/03/15(日) 20:08:57.21ID:WvD++qQ8
文字コードが乱立してた太古の時代ならいざ知らず
今の時代に俺の言語では文字列とはこういうものだ!っていうのを言語で定めてないのはかなり厳しい
2026/03/15(日) 20:34:22.42ID:TBbme1xV
「現代のパソコン」だけを見ているとそう思えるかもしれないけど公官庁のシステムとかは EBCDIC 系の文字コードも結構使われているらしいし、
逆にフリースタンディング環境で文字コードが重要じゃない場面でも保証しなければならないとなったなら足を引っ張る場面もあるんじゃね。
まあ UTF-8 で一貫しているのが楽なのは同意するがそれがいつでもできるわけでもないとも思う。
926デフォルトの名無しさん
垢版 |
2026/03/15(日) 20:54:42.25ID:AL6yhnrX
RustはUTF-8以外もencoding_rsとencoding_rs_ioで扱えているよ
2026/03/15(日) 22:14:32.46ID:kVybsDaK
別にデフォルトでUTF-8と決めたからといって
バイト列や他エンコードを扱えなくなるわけじゃないし
決めないことを正当化できるわけじゃない気がするけどな
2026/03/15(日) 22:27:19.60ID:x4ADG6p4
文字数はカウントしたいかも
929デフォルトの名無しさん
垢版 |
2026/03/15(日) 22:45:40.31ID:kmug04Be
文字数とは何か?
これらはそれぞれ1文字でいいのか?
「﷽」
「🏳‍🌈」
「👨‍👩‍👧‍👦」
2026/03/15(日) 23:20:55.24ID:FzW39QOD
普通は書記素クラスタの数を数えたいから2,3番目は1文字扱いが自然な実装だろう
一番上はノーコメント
931デフォルトの名無しさん
垢版 |
2026/03/16(月) 07:20:10.53ID:+F73MsAX
中途半端でも対応してた方が嬉しい場合と、中途半端ならない方がいい場合とがあるよな。そしてそれが立場によって微妙にちがう。
2026/03/16(月) 09:55:32.33ID:HraqHf6s
既に存在しているファイルに対してサイズ0で上書きしたいときに
A)
let f = "hoge";
let fp = fs::File::create(f)?;
let mut bw = BufWriter::new(fp);
bw.write_all(b"")?;
bw.flush()?;
これでサイズ0のファイルになるのですが
B)
let f = "hoge";
let fp = fs::OpenOptions::new().write(true).append(false).open(f)?;
let mut bw = BufWriter::new(fp);
bw.write_all(b"")?;
bw.flush()?;
だとファイルが更新されません
bw.write_all(b"a")?;
とか1バイトでも書き込むとサイズ1のファイルとして更新出来るのですが
B)の方法で0バイト書き込む感じでサイズ0にするのは無理?
2026/03/16(月) 10:50:43.20ID:ySbp9iwl
こういうの見て自分で調べて答えを出そうとしか思えないから俺はAIに置き換えられる人材なんだろうなって思った
2026/03/16(月) 11:09:49.02ID:HyYGipei
createで何が不満?って言われそう
935デフォルトの名無しさん
垢版 |
2026/03/16(月) 11:36:17.12ID:Yy1mASgz
buffer の中身が空っぽなら書き込まれないのは(そこの動作だけ観れば)正常かも知れないが
OpenOptions::new().write(true).append(false).open が File::create と等価ではないことが問題になるかどうか
936デフォルトの名無しさん
垢版 |
2026/03/16(月) 11:44:13.68ID:O8bNBNMT
File::create と等価になるのは
OpenOptions::new().write(true).append(false).truncate(true).open だわ
2026/03/16(月) 13:45:50.60ID:AYm4uEFE
これにて一件落着
938デフォルトの名無しさん
垢版 |
2026/03/16(月) 13:58:43.77ID:ipeCa2bP
>>932
素直にやりたいことだけをメソッド指定すればいい
サイズ0の時刻更新されたファイルを作りたい場合

既にファイルがある場合のみ作りたいならば
std::fs::OpenOptions::new().write(true).truncate(true).open(path)
これはもし事前にファイルがなければNotFoundエラーになる

ファイルがない場合も作りたいならば
std::fs::OpenOptions::new().write(true).create(true).truncate(true).open(path)
これは常に作られる

いずれもこのopenのみでよい
writeやflushは不要
2026/03/16(月) 16:15:04.46ID:thUj3m8P
fs::write("hoge", "");でいいよね
2026/03/17(火) 11:54:48.64ID:TEC35O2v
drop(fs::File::create("hoge")?);
最適化で消されるかな
941デフォルトの名無しさん
垢版 |
2026/03/20(金) 10:54:21.71ID:gKtq9gXa
なんかすさまじく処理系依存な気がする
素直に削除→生成しといた方が余計な心配抱えなくて済みそう
2026/03/20(金) 14:33:26.74ID:tgmqbSxQ
処理系に依存しない
.write(true)モードでオープンして
.truncate(true)すればサイズ0になる
あとはやりたい方針次第で>>938の.create(true)を付けるかどうか
2026/03/20(金) 14:42:28.97ID:U8sOw+Xf
削除→生成は作成日時が新しくなるので用途によってはダメ

処理系依存部分はstdが吸収してくれる建前なので
サポートされてないプラットフォーム向けか
テストでバグが見つかったというのでなければ
fs::writeで十分

存在しない場合にエラーにしたければif existsでok
アトミックじゃないけど問題になるユースケースではない
2026/03/20(金) 14:53:19.55ID:U8sOw+Xf
あーfileじゃなくてdirectoryのパターンがあるか
2026/03/20(金) 15:04:50.42ID:4e1JjiXR
>>941
> 素直に削除→生成しといた方が余計な心配抱えなくて済みそう

ファイルをシンボリックリンクにして別ドライブに実体データを退避する使い方があると思うけど
「削除→生成」されたらリンクが壊れるよ
2026/03/20(金) 15:20:16.86ID:ZQATUU1y
>>943
fs::writeは必要ない
これは書き込みを必要とせずopenモードだけの話
>>938が正解
2026/03/20(金) 15:47:52.70ID:U8sOw+Xf
>>946
fs::writeが使ってるwrite_allは長さ0なら書き込みにいかない
長さ0かどうかのチェックが行われるだけ

不要に低い抽象度のAPIをいじる必要もなければ
長さ0の場合とそうでない場合とで処理内容を分ける必要もない
丸っと上書きでよければ長さ0でもそうでなくてもfs::writeでok

>>938は不正解
2026/03/20(金) 15:48:35.09ID:NI35hDRW
>>929,930
そのアラビア語は一文字(記号)扱いっぽいね
「㋿」と同じイメージかな
2026/03/20(金) 15:56:15.76ID:U8sOw+Xf
>素直にやりたいことだけをメソッド指定すればいい from >>938

選択肢1: std::fs::OpenOptions::new().write(true).create(true).truncate(true).open(path)
選択肢2: std::fs::write(path, "")

どちらがあなたのやりたいことですか?
2026/03/20(金) 16:00:16.66ID:C3mdLiae
どの言語でやっても削除や書き込みは必要なくてopenのモード指定だけで済むよ

元のCのlibcもこうだからね
fd = open(path, O_WRONLY | O_CREAT | O_TRUNC);
close(fd);

Rustでもそのまま1対1に対応するよ
std::fs::OpenOptions::new()
 .write(true)
 .create(true)
 .truncate(true)
 .open(path);
もちろんcloseはDropにより自動close
951デフォルトの名無しさん
垢版 |
2026/03/21(土) 01:39:24.49ID:XA1yQvtN
てかそんなしょうもない処理にrust使う必要ないやろ
pythonで書けよ
2026/03/21(土) 01:56:26.53ID:nkzY5578
どの言語でも誤差
遅いPythonを使うメリットは薄い
2026/03/21(土) 02:02:56.28ID:CiL2YN+l
Roc言語はコンパイラをRustからZigへ移行するんだってね
一年前のニュースだけど
理由はビルドがクソ遅いから
2026/03/21(土) 02:48:12.16ID:1qvt0kuz
Roc言語はSwiftのようにメモリ解放の基本が参照カウンタ方式だから高速化に限界があって流行らないまま
2026/03/22(日) 01:07:18.14ID:WcAd0qF3
>>953
RustってC++の何倍くらいビルドが遅い?
956デフォルトの名無しさん
垢版 |
2026/03/22(日) 07:26:35.54ID:hzg2Z5hP
>>955
対g++だったら5割程度遅い
2026/03/23(月) 19:15:45.24ID:InxYNOPp
>>956
AIは、C/C++ に比べて 2〜3 倍くらいになる事がある、と言っていた。
2026/03/24(火) 13:41:29.62ID:7goM5+Kz
ヌルポ代入とか比較するときに
let hage: *const Hage = std::ffi::null();
let hoge: *mut Hoge = std::ffi::null_mut();
if hage == std::ffi::null() {...}
if hoge == std::ffi::null_mut() {...}
とか null の方にまでクドクドと mut 付けて区別する必要あるのが面倒
2026/03/24(火) 15:43:52.04ID:H16+5cnl
>>958
null かどうか判定したいときは null と比較するんじゃなくて is_null を使えばいいよ。
null を入れたいときは default を使う。
高度な推論が出来るんだから推論に頼ればいい。
960デフォルトの名無しさん
垢版 |
2026/03/25(水) 17:26:18.82ID:ad3FH0UK
Rustってネットで持ち上げられてね?
メモリ安全が一人歩きしてC++をRustに書き換えたら完全に安全って思ってる人多そう
https://www.youtube.com/watch?v=NMN9kUUOR1c
961デフォルトの名無しさん
垢版 |
2026/03/25(水) 17:27:32.14ID:ad3FH0UK
JavaやPythonなんかのランタイムGCありのメモリ安全言語でバグ出してるやつがRust使っても同じようにバグ出す未来しか見えないんだが
962デフォルトの名無しさん
垢版 |
2026/03/25(水) 17:54:03.81ID:mVuzglJK
Rustを持ち上げてるやつで実際に業務で使ったことあるやつどれくらいなんだろうな
俺は業務で使ってみたけど微妙な気がするからもう採用しない
2026/03/25(水) 18:24:44.01ID:KZGvhoek
まあ C++ よりは Rust のほうが良いと思う。
というか C++ がだるい。
964デフォルトの名無しさん
垢版 |
2026/03/25(水) 18:31:41.16ID:vwvkeA78
メモリ安全だけどリソース安全じゃ無いからねぇ
結局、失敗経験のあるプログラマが注意深く組み上げる必要がある部分が残ってる

俺はRust信者だから async dropの軟着陸を願ってるけど
Hylo, Koka, Austral, Mojoなんか出てきてるから どうなるかなぁ
2026/03/25(水) 19:21:55.59ID:M5aalIOe
信頼できるレベルと各種エコシステム構築へ人材と資本投下がなされ整備されないと言語マニアしか手を出さない
既にIT大手各社が採用していてそのインフラとして使われているRust一択でしょ
966デフォルトの名無しさん
垢版 |
2026/03/25(水) 22:04:55.83ID:3w74r8+z
まぁ使いこなせないやつはPythonでもやってたほうが安全
967デフォルトの名無しさん
垢版 |
2026/03/26(木) 06:34:27.25ID:dXFIDAyf
>>961
マイクロソフトでも採用されたし、Linuxでも使って良いことにになったんだが、そいつらの判断が間違っててお前が正しいってこと?
968デフォルトの名無しさん
垢版 |
2026/03/26(木) 07:07:14.08ID:Mf+ZycM0
>>967
うん
969デフォルトの名無しさん
垢版 |
2026/03/26(木) 08:15:50.34ID:pQOs1sEw
確かにメモリ安全なのはCプラとかと比較した話でGCある言語も十分安全だしな

そして世の中ではそんな言語でバグが起きまくってるわけで……
970デフォルトの名無しさん
垢版 |
2026/03/26(木) 08:45:17.61ID:dXFIDAyf
Rustを嫌がってる人たちって要は学習コストが高いからでしょ?
難しすぎて覚えるのが嫌ってわがまま言ってるだけ
でもAIで学習コストと下がった、というかAIがある程度作ってくれるようになったらこれからRustはどんどん普及すると思う
2026/03/26(木) 09:36:10.85ID:VjFUKHH7
出来る人が AI の補助で楽できるようになるかもしれないけど出来ない人が出来るようになったりはしないよ。
文章を書くときの漢字変換と同じくらいのレベルでの補助でしかない。
それでも充分すぎるほどに有用とはいえ、初心者にとってのハードルは下がらない。
972デフォルトの名無しさん
垢版 |
2026/03/26(木) 09:36:33.60ID:VMyRwu/X
>>967
>マイクロソフトでも採用されたし、Linuxでも使って良いことにになった

>JavaやPythonなんかのランタイムGCありのメモリ安全言語でバグ出してるやつがRust使っても同じようにバグ出す未来
がそもそも無関係だからな
973デフォルトの名無しさん
垢版 |
2026/03/26(木) 09:38:16.38ID:VMyRwu/X
>>971
ほんそれ
出来ない人がAI使うと一生出来ないままだろ
2026/03/26(木) 10:23:04.23ID:NjtzgXUD
>>967
驚いた!
2026/03/26(木) 10:26:05.61ID:f2M6R6go
sudo-rsで脆弱性が発見されたように実装ミスはrustでは防げないのよね
むしろビルドが通れば安全とか過信してロジックのミスが多発するような気がする
2026/03/26(木) 10:33:45.59ID:/A2TJEsK
つまりZigが正解ってことだね
977デフォルトの名無しさん
垢版 |
2026/03/26(木) 10:44:41.82ID:dXFIDAyf
>>975
確かにその通り。
Rustは『バグがゼロになる魔法』ではなく、脆弱性の約7割を占めると言われるメモリ関連のバグ(バッファオーバーフローやUse-after-freeなど)をコンパイル時に排除するものだよ。
ロジックのミスはどの言語でも起きるけど、Rustを使うことで『メモリ破壊の心配』という低レイヤーの不安から解放されて、より高度なロジックの検証に脳のリソースを割けるようになるのが本当の価値だと思う。
2026/03/26(木) 11:18:52.31ID:f2M6R6go
>>977
sudo-rsの脆弱性見るとすごい初歩的なミスで、より高度なロジックに脳のリソースを割けたようには見えませんけどね
上にも書いたけど逆に安全性を過信してミスが出ると思いますよ
2026/03/26(木) 11:59:25.18ID:vQjWCGSx
それは C と Rust の比較ではなくプロジェクトが未熟か成熟しているかの問題でしょ。
最初はカスでだんだん改良されるという普通のプロセス。

スズキが外国でバイク工場を稼働したら最初はタイヤが付いてないのが完成品として流れてきたみたいな話もあるし、そんなもんだよ。
日本国内での知見を持っていても未知の土地では意味不明なことも起こる。
980デフォルトの名無しさん
垢版 |
2026/03/26(木) 12:11:16.74ID:Mf+ZycM0
>>977
それはランタイムGCありの言語でも言えることだろ
981デフォルトの名無しさん
垢版 |
2026/03/26(木) 12:15:09.08ID:dXFIDAyf
>>978
『高度なロジックにリソースを割く』というのは、単にミスをしないという意味じゃなくて、『非決定的なバグ(たまにしか起きないメモリバグやレースコンディション)の調査に時間を溶かさなくて済む』ってこと
sudo-rsのミスも、発見された後は純粋なロジックの修正だけで済んだはず
もしこれがポインタの計算ミスが絡む怪奇現象だったら、修正と検証にその何倍も時間がかかっていたはずだよ
982デフォルトの名無しさん
垢版 |
2026/03/26(木) 12:20:07.59ID:dXFIDAyf
>>980
まあ、メモリ安全性だけならGC言語でもいいよ
でも、sudoのような『極限のパフォーマンス』と『絶対に止まってはいけない確実性』が求められる領域で、GCという重い仕組みを使わずに安全性を担保できるのは、今のところRustだけ
GC言語の『安心感』を、C言語の『スピード』で実現するのがRustだよ
2026/03/26(木) 12:39:14.37ID:hRem1vcJ
sudoって『極限のパフォーマンス』と『絶対に止まってはいけない確実性』が求められる領域か?
2026/03/26(木) 12:43:07.22ID:/A2TJEsK
sudo-rsもそうなんだけど、Rust化のついでにしれっと脱GPLしてMITライセンスになってるのが気になる
実はそれが真の目的なのでは?
985デフォルトの名無しさん
垢版 |
2026/03/26(木) 12:52:07.13ID:9LBdYkRG
>>984
日本だと翻訳は二次著作物なのでGPLから逃げられないけど、海外だと違うんかな?
2026/03/26(木) 13:04:01.69ID:vxyZS0Yf
>>985
欧米でも同じだよ。
結局のところ、GPLは「著作権者」が利用者に課す条件でしかない。
裁判で争う余地はあるけど、それは「元のC版の権利者」が「自分の表現が不当に翻案された」と訴えた場合の話。
sudoみたいに権利者が多岐にわたるプロジェクトだと、誰が原告になってどのコードの権利を主張するのかって問題だけで詰む。
結局、開発側が「これはクリーンルーム設計の再実装です」って言い張れば、それを覆すのは極めて難しい。
987デフォルトの名無しさん
垢版 |
2026/03/26(木) 13:04:52.58ID:Q2wgFsqU
>>984
その通り
前からそう指摘されてる
2026/03/26(木) 13:15:09.72ID:yPj1PUED
>>983
どちらも求められてない
複おじがフェイク流してるだけだから
額面通り受け取ってはいけない
2026/03/26(木) 13:16:56.17ID:E98A7ao2
>>986
> 覆すのは極めて難しい。
例えばgit/githubで元のGPLプロジェクトをclone/forkしたログでアウトでは
2026/03/26(木) 13:29:29.89ID:8v6/4hgv
>>989
GPLは法律じゃないからね
著作権者が訴えない限り違法でもなんでもない
2026/03/26(木) 13:38:23.16ID:1ge5wFl8
親告罪だっけ?
第三者が訴えられるのって?
著作権違反が親告罪だかは知らんけど
2026/03/26(木) 13:40:55.66ID:1ge5wFl8
もしかして>>990はそもそも著作権限でGPL規定しても
法的には無効だとでも言ってるのか?
2026/03/26(木) 14:01:56.51ID:b5iNeq5P
sudo-rsがやばそうだからってアクロバティック擁護してるだけだな
2026/03/26(木) 14:09:18.84ID:vQjWCGSx
>>985
著作権は著作 (表現) の権利であって書かれているアイデアには権利が及ばない。
たとえば料理のレシピ本を第三者がコピーして配布する自由はないがその料理を作ってふるまうのは自由だし表現を変えて説明するのもある程度は許容される。
プログラムを別の言語に置き換えたとき真似たのが表現なのかアイデアなのかの境界線は明瞭ではなく、文章の翻訳とは基準が異なる。
個々に裁判する以外には決定されないがおそらくプログラムはその性質から「機能」を重視した解釈がされるはずなので一対一の対応が大半の部分で明らかな場合でもなければ別言語への置き換えは著作権を根拠に阻止は出来ないと思う。

※ これは著作権の考え方の話であって別の権利が及ぶ場合はあるかもしれません
995デフォルトの名無しさん
垢版 |
2026/03/26(木) 14:57:14.28ID:AuyuXpZU
Rustの話をしろ
2026/03/26(木) 15:02:52.12ID:ePn0y1Ti
>>984>>987
sudoはGPLじゃないんだが君たち大丈夫かw
2026/03/26(木) 15:53:07.88ID:m4Sfrr/7
sudoに限らずってことじゃないか
2026/03/26(木) 16:04:05.73ID:sVDNc+3s
>>997
その「〜限らず」の使い方あってるのか?

sudo-rsはMITライセンスにTodd C. Millerの名前も記載されてるしFAQにも説明がある
>>994の説明とかもsudo-rsに関しては的外れ
999デフォルトの名無しさん
垢版 |
2026/03/26(木) 16:29:16.46ID:ZMuTo2I4
すまん文盲だったか
1000デフォルトの名無しさん
垢版 |
2026/03/26(木) 16:29:30.93ID:ZMuTo2I4
梅乙
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 119日 4時間 4分 8秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。

▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.io/

▼ UPLIFTログインはこちら ▼
https://uplift.5ch.io/login
レス数が1000を超えています。これ以上書き込みはできません。

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