公式
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 part28
https://mevius.5ch.net/test/read.cgi/tech/1742805420/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part29
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2025/05/03(土) 00:47:30.13ID:phVJ5tWC746デフォルトの名無しさん
2025/05/22(木) 15:32:41.47ID:bU6I8/FS これがAI時代のプルリクエストか
https://github.com/microsoft/edit/pull/164
https://github.com/microsoft/edit/pull/164
747デフォルトの名無しさん
2025/05/22(木) 15:37:54.16ID:uqmyB1Ls748デフォルトの名無しさん
2025/05/22(木) 15:38:10.97ID:K7SIzHpJ749デフォルトの名無しさん
2025/05/22(木) 15:40:33.23ID:KP+m41xg 情報があればLLMの精度も上がらんかな
750デフォルトの名無しさん
2025/05/22(木) 15:42:18.46ID:SZpXeR4e751デフォルトの名無しさん
2025/05/22(木) 15:45:34.88ID:aYSVJIqg752デフォルトの名無しさん
2025/05/22(木) 15:46:16.26ID:SZpXeR4e753デフォルトの名無しさん
2025/05/22(木) 15:48:23.67ID:bU6I8/FS >>751
じゃあ、gccrsでビルドしなおすだけで$20,000もらえるの?
じゃあ、gccrsでビルドしなおすだけで$20,000もらえるの?
754デフォルトの名無しさん
2025/05/22(木) 16:30:41.91ID:2nBK69jH >>753
ただし欧米かニュージーランドかオーストラリア在住が必須とあるので、日本人お断り案件
ただし欧米かニュージーランドかオーストラリア在住が必須とあるので、日本人お断り案件
755デフォルトの名無しさん
2025/05/22(木) 16:33:47.34ID:Wyc/rge8 最適化ってのはレジスタ割り当てとかは合理的な割り当てアルゴリズムがあるが、
ヒューリスティックな手法も合わせて使ってる。
大量の置き換えパターンを辞書として持っておくという泥臭い仕組みだったりする。
これは言語の性質によるので言語中立で高性能な最適化機構を持ったコンパイラバックエンドなんて無理なんじゃねーかなと思ってる。
ヒューリスティックな手法も合わせて使ってる。
大量の置き換えパターンを辞書として持っておくという泥臭い仕組みだったりする。
これは言語の性質によるので言語中立で高性能な最適化機構を持ったコンパイラバックエンドなんて無理なんじゃねーかなと思ってる。
756デフォルトの名無しさん
2025/05/22(木) 17:31:19.79ID:tAcTMpoq Rustって泥臭い役割を避けているから愛され言語イエーイしてるよね
757デフォルトの名無しさん
2025/05/22(木) 17:33:10.42ID:4yMDsF24 Rustはルールが厳しくてすんなり書けない事が多い お世辞にも書きやすい状況じゃない
それ自体は仕方がないけど回避するために何か方策が必要になることが多い
現在のstableでは機能不足でありeditの作者はnightlyビルドを使ってる
関数の充実が待たれるが結局その都度使える関数を探さないといけない
それ自体は仕方がないけど回避するために何か方策が必要になることが多い
現在のstableでは機能不足でありeditの作者はnightlyビルドを使ってる
関数の充実が待たれるが結局その都度使える関数を探さないといけない
758デフォルトの名無しさん
2025/05/22(木) 17:42:54.78ID:+oBlNCwp ネット上での統合失調症【糖質】の機器の説明との押し問答と同じ状態を表している
無知だからこうなのだよ!
※ 周囲の人は統合失調症の思考を聞いているのでしょうならその思考通りに統合失調症は話せばよいのでしょう?
※同じ話を統合失調症も聞いておりますけれど?
「AIがMicrosoftの従業員を徐々に狂わせていく様子を見るのが趣味」というネットユーザーの投稿が話題に
2025年05月22日 14時00分
https://gigazine.net/news/20250522-github-copilot-coding-agent-error/
>>「AIが『直しました』と言い、人間が『いいえ、まだ壊れています』と言い、AIが変更を加えて『問題ありません、直りました』と言い、さらに数回繰り返すところが気に入っています」といったコメントや、
>>「残念なことに、私もまさにこのパターンに従う人間の開発者と一緒に働いたことがあります」とのコメントのほか、
>>「問題は、今後10年間でモデルが実際に改善され、実現可能になるという確かな証拠がないことです。テストと研究はともかく、製品に導入するのは全く別物です。大手ソフトウェア企業は、株主の利益を満足させるために運営されています」など、未完成で不確かな製品を公開することに異議を唱えるコメントが付けられました。
無知だからこうなのだよ!
※ 周囲の人は統合失調症の思考を聞いているのでしょうならその思考通りに統合失調症は話せばよいのでしょう?
※同じ話を統合失調症も聞いておりますけれど?
「AIがMicrosoftの従業員を徐々に狂わせていく様子を見るのが趣味」というネットユーザーの投稿が話題に
2025年05月22日 14時00分
https://gigazine.net/news/20250522-github-copilot-coding-agent-error/
>>「AIが『直しました』と言い、人間が『いいえ、まだ壊れています』と言い、AIが変更を加えて『問題ありません、直りました』と言い、さらに数回繰り返すところが気に入っています」といったコメントや、
>>「残念なことに、私もまさにこのパターンに従う人間の開発者と一緒に働いたことがあります」とのコメントのほか、
>>「問題は、今後10年間でモデルが実際に改善され、実現可能になるという確かな証拠がないことです。テストと研究はともかく、製品に導入するのは全く別物です。大手ソフトウェア企業は、株主の利益を満足させるために運営されています」など、未完成で不確かな製品を公開することに異議を唱えるコメントが付けられました。
759デフォルトの名無しさん
2025/05/22(木) 17:45:59.66ID:uhPOTko+ 生ごみ拾ってくんな
760デフォルトの名無しさん
2025/05/22(木) 18:00:14.35ID:d39+JgNA >>755
>>500,736 の場合は特にasmコードが実行時間の大半を占めている前提で考えて
「inline」asmとその前後(のCコードのgcc出力)が相性良く仕上がっているからかなぁ、と思ったら
dav1dにはinline asmはなくて関数単位でasmを使っているだけの様に見える
https://code.videolan.org/videolan/dav1d
それでもgccとclangで差があると言うのだから「泥臭い」最適化には頭が上がらない
ましてやasmコードそのままに横入り/ただ乗りするプロジェクトに憤りを感じる
>>500,736 の場合は特にasmコードが実行時間の大半を占めている前提で考えて
「inline」asmとその前後(のCコードのgcc出力)が相性良く仕上がっているからかなぁ、と思ったら
dav1dにはinline asmはなくて関数単位でasmを使っているだけの様に見える
https://code.videolan.org/videolan/dav1d
それでもgccとclangで差があると言うのだから「泥臭い」最適化には頭が上がらない
ましてやasmコードそのままに横入り/ただ乗りするプロジェクトに憤りを感じる
761デフォルトの名無しさん
2025/05/22(木) 19:00:56.60ID:XBxWc1wb 考えて見たら
> 横入り/ただ乗りするプロジェクト
の方は内々ではちゃんとお金出すってさ、videolan側で変更が発生した場合
videolan側へも関わった人数分の懸賞金配分があるべきだよね
> 横入り/ただ乗りするプロジェクト
の方は内々ではちゃんとお金出すってさ、videolan側で変更が発生した場合
videolan側へも関わった人数分の懸賞金配分があるべきだよね
762デフォルトの名無しさん
2025/05/22(木) 19:18:13.29ID:Wyc/rge8 >>760
オープンソースライセンスで、しかも二条項MITという緩いライセンスを選択している以上はただ乗り歓迎という意思表示だろう。
性能的に不十分ではあっても技術的開拓をしてる分だけ単なるユーザよりは貢献してるわけだし、そこに憤るのは筋違いだと思うぞ。
オープンソースライセンスで、しかも二条項MITという緩いライセンスを選択している以上はただ乗り歓迎という意思表示だろう。
性能的に不十分ではあっても技術的開拓をしてる分だけ単なるユーザよりは貢献してるわけだし、そこに憤るのは筋違いだと思うぞ。
763デフォルトの名無しさん
2025/05/22(木) 19:23:31.51ID:m1kcBvrt >>762
tailwindも勘違いしてる
tailwindも勘違いしてる
764デフォルトの名無しさん
2025/05/22(木) 20:47:22.62ID:ETRzBAed ガーイガイガガイガガイガガイ私ガイガイガイガイゴミガイジ
周りに迷惑をかけ続けるクソガイジ
プログラミング出来ないイキリ無能
死んだ方がマシ人間
ガイガイクソガイジ
周りに迷惑をかけ続けるクソガイジ
プログラミング出来ないイキリ無能
死んだ方がマシ人間
ガイガイクソガイジ
765デフォルトの名無しさん
2025/05/22(木) 20:47:47.49ID:ETRzBAed 死にますクソガイジです
766デフォルトの名無しさん
2025/05/22(木) 20:49:14.84ID:ETRzBAed やる気ある無能クソガイジだけど質問ある?
767デフォルトの名無しさん
2025/05/22(木) 20:53:07.80ID:dgzgwN3Q なんでRustで作られたモノが極端に少ないのかと思ってたけど
理由が分かっちゃったよ
理由が分かっちゃったよ
768デフォルトの名無しさん
2025/05/22(木) 21:18:38.27ID:wA1n0evO rav1d高速化コンテストだけど
MaybeUninit を使ってゼロクリアを避けただけで
実行時間差の2割が解決したらしい
MaybeUninit を使ってゼロクリアを避けただけで
実行時間差の2割が解決したらしい
769デフォルトの名無しさん
2025/05/22(木) 21:25:17.88ID:vWuNaL1X >>767
新たに作られたものはRustが多い
新たに作られたものはRustが多い
770デフォルトの名無しさん
2025/05/22(木) 21:28:24.04ID:Wyc/rge8 >>767
Rust の公式リポジトリ (crayes.io) のクレートが 18 万個。
python のリポジトリ (pypi.org) にあるパッケージが 63 万個。
JavaScript が 200 万個。
まあ比較すれば少ないが、 JavaScript の1割弱ならかなり多い部類だろ……
Hakell だと1万7千、OCamlなんて4千ちょっとだぞ。
Rust の公式リポジトリ (crayes.io) のクレートが 18 万個。
python のリポジトリ (pypi.org) にあるパッケージが 63 万個。
JavaScript が 200 万個。
まあ比較すれば少ないが、 JavaScript の1割弱ならかなり多い部類だろ……
Hakell だと1万7千、OCamlなんて4千ちょっとだぞ。
771デフォルトの名無しさん
2025/05/22(木) 21:31:44.54ID:NUp+tA1x772デフォルトの名無しさん
2025/05/22(木) 21:33:15.61ID:00rOw+nM >>770
こっちが恥ずかしくなる
こっちが恥ずかしくなる
773デフォルトの名無しさん
2025/05/22(木) 21:33:58.09ID:Wyc/rge8 ゼロクリアする必要がない (から削除してよい) ことをコンパイラが見抜けないもんなのか?
774デフォルトの名無しさん
2025/05/22(木) 21:53:24.32ID:NUp+tA1x >>773
特定の使われ方するものに限って将来型システム拡張で対応できる可能性があるかもしれないらしいけど現状は無理だね
型Tの入る場所には型Tの何か入れておかないと未定義動作となってしまう
そこで現在はMaybeUninit型という初期化しなくていい型が用意されていてそれを使うことでCと同じ速さにできる
特定の使われ方するものに限って将来型システム拡張で対応できる可能性があるかもしれないらしいけど現状は無理だね
型Tの入る場所には型Tの何か入れておかないと未定義動作となってしまう
そこで現在はMaybeUninit型という初期化しなくていい型が用意されていてそれを使うことでCと同じ速さにできる
775デフォルトの名無しさん
2025/05/22(木) 22:18:19.76ID:Lnn/kL7w Apple M3で8.8%遅かったのが7%になったとな
「5%遅い」はAMD Ryzenでの数字
「5%遅い」はAMD Ryzenでの数字
776デフォルトの名無しさん
2025/05/23(金) 00:20:06.09ID:DMG4+Dzb777デフォルトの名無しさん
2025/05/23(金) 00:34:18.82ID:KwpCF/mF778デフォルトの名無しさん
2025/05/23(金) 01:14:01.61ID:47lL8rKF 外部の状態が関係してるから静的解析では無理だろ
self.buffer.extract_raw(beg.offset, end.offset, &mut replacement, 0);
で取得したreplacementが長さ0である可能性とか分からん
self.buffer.extract_raw(beg.offset, end.offset, &mut replacement, 0);
で取得したreplacementが長さ0である可能性とか分からん
779デフォルトの名無しさん
2025/05/23(金) 18:12:15.45ID:fSCiRT4u 開発自体は別言語で行って最後にRustに移植で良い気がしてきた
780デフォルトの名無しさん
2025/05/23(金) 19:45:55.43ID:OOOuBnce バカはそれでいい
781デフォルトの名無しさん
2025/05/23(金) 20:53:28.09ID:KhcqusRd 神は仰った
天才と思う者だけRustを使いなさい
Rustを使うものはバカだけになった
天才と思う者だけRustを使いなさい
Rustを使うものはバカだけになった
782デフォルトの名無しさん
2025/05/23(金) 20:55:45.35ID:XkE7Ub7P バカは移植できないしRustも使えないだろ
783デフォルトの名無しさん
2025/05/23(金) 21:06:36.34ID:q2+gUe0H >>779
別言語って具体的に何?
別言語って具体的に何?
784デフォルトの名無しさん
2025/05/23(金) 21:11:13.25ID:zy1r+aa1 バカは別言語が気になる
785デフォルトの名無しさん
2025/05/23(金) 21:14:51.67ID:j/zkYBBs オレはTypeScriptで書いてたWEB APIをRustで書き直したよ
その後保守性わるくてTypeScriptに戻したけど
またRustで書き直そうかと迷ってる
性能か保守性か悩ましい
その後保守性わるくてTypeScriptに戻したけど
またRustで書き直そうかと迷ってる
性能か保守性か悩ましい
786デフォルトの名無しさん
2025/05/23(金) 21:20:15.08ID:Ka+y5wx4 保守性の高さからRustが使われる
Rustより保守性の高い言語はない
Rustより保守性の高い言語はない
787デフォルトの名無しさん
2025/05/23(金) 21:25:40.65ID:jtcLJX4P プロトタイプはPythonでいいぞ
788デフォルトの名無しさん
2025/05/23(金) 21:48:17.92ID:fSCiRT4u GC言語などでメモリ関係なくコード書いて最後にRustでいいんじゃないか
asmの代わりがRust
asmの代わりがRust
789デフォルトの名無しさん
2025/05/23(金) 22:03:24.19ID:ai481srR 保守性高いと進化留まりガチ
790デフォルトの名無しさん
2025/05/23(金) 22:31:16.60ID:cq9daAD7 Rustの保守性の高さは並列排他に至るまで対応する強力な型システムがベース
進化を重ねていて両立
進化を重ねていて両立
791デフォルトの名無しさん
2025/05/23(金) 23:00:21.91ID:wyAziAax 体言止めおじ
792デフォルトの名無しさん
2025/05/23(金) 23:13:32.86ID:41zDvF3c >>785
Rustの保守性の良し悪しはともかく、そんなしょっちゅう書き直せる程度のものなら保守性なんか気にする必要ないっしょ
Rustの保守性の良し悪しはともかく、そんなしょっちゅう書き直せる程度のものなら保守性なんか気にする必要ないっしょ
793デフォルトの名無しさん
2025/05/23(金) 23:21:45.26ID:Or/WqP1C >>778
今回のは長さ0になる可能性があることが分かるやろ
はっきり分からないような場合でも解析ツール的にはフォルスポジティブでも安全側に倒しておいたほうがいいから「長さ0にならないとは断言できない」っというので警告を出す条件としては十分
今回のは長さ0になる可能性があることが分かるやろ
はっきり分からないような場合でも解析ツール的にはフォルスポジティブでも安全側に倒しておいたほうがいいから「長さ0にならないとは断言できない」っというので警告を出す条件としては十分
794デフォルトの名無しさん
2025/05/24(土) 09:17:30.06ID:WNK/IsVL コンパイルが通れば安全じゃなかったの
795デフォルトの名無しさん
2025/05/24(土) 09:24:29.16ID:yzzSRgnL >>794
アホ?テスト通せよ
アホ?テスト通せよ
796デフォルトの名無しさん
2025/05/24(土) 09:42:12.79ID:ZlHMVtxs797デフォルトの名無しさん
2025/05/24(土) 09:42:56.36ID:ZlHMVtxs Rustでもほとんどのプログラミング言語と同じでインデックス境界チェックエラーにより落ちてくれる
798デフォルトの名無しさん
2025/05/24(土) 09:44:36.18ID:ZlHMVtxs Rustでこれを避けるにはindex値が範囲内か不明の時はxxx[index]アクセスをしないこと
get*やイテレータなどを使う
get*やイテレータなどを使う
799デフォルトの名無しさん
2025/05/24(土) 10:24:46.55ID:s9P60fxK イテレーターとインデックスアクセスじゃスピード変わりそう
と言うより用途が違う
と言うより用途が違う
800デフォルトの名無しさん
2025/05/24(土) 10:39:58.90ID:Dj63S0pS 末尾\0が保証されてるCのコードをそのまま移植したんでしょ
いわゆる「Rustは清書用」バグ
いわゆる「Rustは清書用」バグ
801デフォルトの名無しさん
2025/05/24(土) 11:01:12.40ID:dDDF+ndx たとえば「任意のコードを実行可能」な脆弱性が「異常終了するだけ」の実行時エラーで置き換えられる
この種類の置き換えはJavaでもできる
この種類の置き換えはJavaでもできる
802デフォルトの名無しさん
2025/05/24(土) 11:12:53.59ID:31NR7JIu803デフォルトの名無しさん
2025/05/24(土) 11:25:25.71ID:hdyPRmcZ >>800
関係ないやろ
関係ないやろ
804デフォルトの名無しさん
2025/05/24(土) 11:33:16.13ID:31NR7JIu アクセス違反だがCでは落ちずに動いていた
Rustにしたことでバグが露呈
Rustにしたことでバグが露呈
805デフォルトの名無しさん
2025/05/24(土) 11:58:41.99ID:WNK/IsVL >>795
このスレでさんざんコンパイル通れば安全という話を見てきたんですが
このスレでさんざんコンパイル通れば安全という話を見てきたんですが
806デフォルトの名無しさん
2025/05/24(土) 12:00:21.23ID:dDDF+ndx ていうか、mutを制限しない限り、末尾\0は別の値に変更できるから末尾\0は保証されない
807デフォルトの名無しさん
2025/05/24(土) 12:06:04.95ID:Yxl83xTJ >>805
コンパイルが通れば安全というのはRust-bookの翻訳の間違いな。原文読まないと
手を動かさないと理解できないだろうが、Rustにはテストフレームワークが組み込まれてるし、さらに外部のクレートを使うことが推奨される
cargo-nextest
cargo-insta
あたりね
ライブラリークレートをコーディングするときに並行してテストコードも書いて、バウンダリーズとかに問題がないことを確認した上でcrates.ioやgithubに公開しないと恥かくよ。上のヌル文字終端とかもCから来た人なら絶対テストに入れるべきよ
恥を気にしない人なら好きにしてくれ!
コンパイルが通れば安全というのはRust-bookの翻訳の間違いな。原文読まないと
手を動かさないと理解できないだろうが、Rustにはテストフレームワークが組み込まれてるし、さらに外部のクレートを使うことが推奨される
cargo-nextest
cargo-insta
あたりね
ライブラリークレートをコーディングするときに並行してテストコードも書いて、バウンダリーズとかに問題がないことを確認した上でcrates.ioやgithubに公開しないと恥かくよ。上のヌル文字終端とかもCから来た人なら絶対テストに入れるべきよ
恥を気にしない人なら好きにしてくれ!
808デフォルトの名無しさん
2025/05/24(土) 12:24:06.94ID:qBFhvLyI >>805
Rustではコンパイラが通れば必ず安全が保証されるよ
Rustではコンパイラが通れば必ず安全が保証されるよ
809デフォルトの名無しさん
2025/05/24(土) 12:24:29.19ID:qBFhvLyI >>805
MSエディタはインデックス範囲外をpanicするAPIを使っていて安全に落ちていて他の言語と同じ
MSエディタはインデックス範囲外をpanicするAPIを使っていて安全に落ちていて他の言語と同じ
810デフォルトの名無しさん
2025/05/24(土) 12:26:01.00ID:n4i2OJDy811デフォルトの名無しさん
2025/05/24(土) 12:30:11.61ID:qBFhvLyI panicがイヤならpanicしないAPIを使えば解決するね
panicするAPIを使っておいてpanic違反するのはマゾみたいなもの
panicするAPIを使っておいてpanic違反するのはマゾみたいなもの
812デフォルトの名無しさん
2025/05/24(土) 12:45:05.58ID:Dj63S0pS >>803
Cの場合は空文字列でも\0があるから最初に
if (str[0] == '\t)
をぶつけても問題にならないよ
このフローをそのままRustに持ち込んだ感じ
もとのコード見れないから断言はできんが
Cの場合は空文字列でも\0があるから最初に
if (str[0] == '\t)
をぶつけても問題にならないよ
このフローをそのままRustに持ち込んだ感じ
もとのコード見れないから断言はできんが
813デフォルトの名無しさん
2025/05/24(土) 12:45:10.09ID:hrBpr2UE とっくに化けの皮は剥がれてるのに、こんな新規参入のない掲示板で耳障りのいいことばっかり書いて何になると思ってるんだろうか
814デフォルトの名無しさん
2025/05/24(土) 13:50:39.66ID:O3jtwJBp コード見たけどRustならスライスとそのメソッド使うところ
なぜかインデックスアクセス多いな
該当部の直後も
while remove < self.tab_size as usize
&& offset + remove < replacement.len()
&& replacement[offset + remove] == b' '
{
remove += 1;
}
なぜかインデックスアクセス多いな
該当部の直後も
while remove < self.tab_size as usize
&& offset + remove < replacement.len()
&& replacement[offset + remove] == b' '
{
remove += 1;
}
815デフォルトの名無しさん
2025/05/24(土) 14:01:45.35ID:BEuCRZEl 最初に機能の弱い他の言語で書くからそうなる
最初から抽象的に書けるRustを使うべき
最初から抽象的に書けるRustを使うべき
816デフォルトの名無しさん
2025/05/24(土) 14:17:39.59ID:h3vjyAnh えー、このクソ言語で?
817デフォルトの名無しさん
2025/05/24(土) 14:34:27.01ID:a4AdJqTs crates.ioの恥は描き捨て
818デフォルトの名無しさん
2025/05/24(土) 14:47:03.56ID:278FQlA0 続けるだけでは意味がない。研究が示した「成長できない人の条件」
公開日2025.05.24 13:00:14 SATURDAY
http://nazology.kusuguru.co.jp/archives/177845
公開日2025.05.24 13:00:14 SATURDAY
http://nazology.kusuguru.co.jp/archives/177845
819デフォルトの名無しさん
2025/05/24(土) 15:05:18.87ID:DHz/6DDr 古く機能が弱いプログラミング言語にこだわってる人は成長できない
820デフォルトの名無しさん
2025/05/24(土) 15:11:27.10ID:dDDF+ndx キラキラは個人の成長じゃなくて人類の進化なのに
821デフォルトの名無しさん
2025/05/24(土) 15:17:37.34ID:wO2qY8QG >>812
仮にCバージョンでTextBufferをnull終端した状態で管理していたとしてもreplacementはその一部分を指し示すものなのでnull終端したりはしないぞ
仮にCバージョンでTextBufferをnull終端した状態で管理していたとしてもreplacementはその一部分を指し示すものなのでnull終端したりはしないぞ
822デフォルトの名無しさん
2025/05/24(土) 15:21:29.32ID:DHz/6DDr null終端は部分文字列が作れないからそういう時には使わないよな
823デフォルトの名無しさん
2025/05/24(土) 16:45:23.89ID:Dj63S0pS >>821
コード見てないだろ
https://github.com/microsoft/edit/blob/main/src/buffer/mod.rs
のunindent()が何やってるか追えば対象の一部分を作業用の一時bufferに読み込んでるの分かるはず
エディタは履歴管理も必要だからね
コード見てないだろ
https://github.com/microsoft/edit/blob/main/src/buffer/mod.rs
のunindent()が何やってるか追えば対象の一部分を作業用の一時bufferに読み込んでるの分かるはず
エディタは履歴管理も必要だからね
824デフォルトの名無しさん
2025/05/24(土) 17:16:21.68ID:OcBn8OTY >>792
まだ本番運用前だからね
TypeScriptとかJavaScriptのホットリロード(pm2)がプログラム修正時にすごくありがたいんよ
でもRustで性能上がるのはわかりきってるから悩ましい
本番環境で実行中のプロセスは実行終了まで旧バージョンで動作させて
新たな処理は新バージョン用の新プロセスで実行してくれるようなRust用のしくみ(pm2のRust版みたいなの)ないのかな
まだ本番運用前だからね
TypeScriptとかJavaScriptのホットリロード(pm2)がプログラム修正時にすごくありがたいんよ
でもRustで性能上がるのはわかりきってるから悩ましい
本番環境で実行中のプロセスは実行終了まで旧バージョンで動作させて
新たな処理は新バージョン用の新プロセスで実行してくれるようなRust用のしくみ(pm2のRust版みたいなの)ないのかな
825デフォルトの名無しさん
2025/05/24(土) 17:46:57.96ID:lRCaLjeC Common Lisp は実行性能が良くて抽象度も高いしホットリロードの本家みたいなもんだ。
だけどまぁ Lisp 系ってだけで敬遠するのが世間の普通だし、慣れが不十分だと何でも使い難いよ。
慣れてるのがやりやすいというだけの本当に単純な話なんで、
Rust 初心者が今まで使ってた言語より使い難い! ってのは言語の比較になってない。
だけどまぁ Lisp 系ってだけで敬遠するのが世間の普通だし、慣れが不十分だと何でも使い難いよ。
慣れてるのがやりやすいというだけの本当に単純な話なんで、
Rust 初心者が今まで使ってた言語より使い難い! ってのは言語の比較になってない。
826デフォルトの名無しさん
2025/05/24(土) 17:57:30.53ID:wO2qY8QG827デフォルトの名無しさん
2025/05/24(土) 18:01:36.37ID:jDLm1nrI そういや、一昔前は新しい言語が話題になれば必ずLispと比べて腐すのが作法だったのに
近頃は見なくなったな
近頃は見なくなったな
828デフォルトの名無しさん
2025/05/24(土) 18:12:36.04ID:lRCaLjeC Rust はカテゴリとしてはシステムプログラミング言語だ。
C++ などに慣れている人が Rust 入門する分にはそんなにハードルは高くないと思う。
むしろ C++ 使いこそ Rust を賞賛しているケースが目につく。
C++ は必要なものは揃っている現実的な言語だが後付けだらけでグダグダだし、メモリアクセス関連で未定義を踏むのはベテランでもやることだからな……。
それが解決するなら大歓迎だ。
ウェブ系 (JavaScript, TypeScript) からだと Rust は色々と分かり難い要素が多そうだが、
ウェブ界隈で Rust の存在感が出てきてしまったから使わざるを得ないこともあるだろうし、
仕方なく使ってれば文句も出るんだろうと思ってる。
C++ などに慣れている人が Rust 入門する分にはそんなにハードルは高くないと思う。
むしろ C++ 使いこそ Rust を賞賛しているケースが目につく。
C++ は必要なものは揃っている現実的な言語だが後付けだらけでグダグダだし、メモリアクセス関連で未定義を踏むのはベテランでもやることだからな……。
それが解決するなら大歓迎だ。
ウェブ系 (JavaScript, TypeScript) からだと Rust は色々と分かり難い要素が多そうだが、
ウェブ界隈で Rust の存在感が出てきてしまったから使わざるを得ないこともあるだろうし、
仕方なく使ってれば文句も出るんだろうと思ってる。
829デフォルトの名無しさん
2025/05/24(土) 18:24:31.95ID:dDDF+ndx OOP時代に耳障りのいいことが色々言われたおかげで
演算子や関数名を左端に書く時代は終わった
けど演算子は継承やvirtualでうまく表現できなかったからOOP時代も終わった
演算子や関数名を左端に書く時代は終わった
けど演算子は継承やvirtualでうまく表現できなかったからOOP時代も終わった
830デフォルトの名無しさん
2025/05/24(土) 20:46:05.09ID:6QA0+Pxw >演算子や関数名を左端に書く時代
なにこれ
なにこれ
831デフォルトの名無しさん
2025/05/24(土) 21:37:14.29ID:lRCaLjeC >>830
たぶん LISP のことを言ってる。
たぶん LISP のことを言ってる。
832デフォルトの名無しさん
2025/05/24(土) 21:53:46.20ID:piRiqje+ >>824
そんなBFFみたいなのをRustで書くのはあまり一般的ではないでしょ
普通にNextとかにしてパフォーマンスクリティカルな部分だけRustで書いてRPCかFFIで呼べばいいのでは?
どうせ君はやってみたいだけ俺スゲーしたいだけなんだから、その方が合理的な判断でRustを採用してるっぽくなって自尊心高まるぞ
そんなBFFみたいなのをRustで書くのはあまり一般的ではないでしょ
普通にNextとかにしてパフォーマンスクリティカルな部分だけRustで書いてRPCかFFIで呼べばいいのでは?
どうせ君はやってみたいだけ俺スゲーしたいだけなんだから、その方が合理的な判断でRustを採用してるっぽくなって自尊心高まるぞ
833デフォルトの名無しさん
2025/05/24(土) 22:24:13.67ID:BtZwAmFy >>727
unindent関数で各行をreplacement.drain(offset..offset + remove)しているけど
indexを使わずにイテレーターでやる場合、更に追加のバッファが必要になる感じで良いのかな?
unindent関数で各行をreplacement.drain(offset..offset + remove)しているけど
indexを使わずにイテレーターでやる場合、更に追加のバッファが必要になる感じで良いのかな?
834デフォルトの名無しさん
2025/05/24(土) 22:57:52.90ID:ObNXdxnD >>814
安全に速くするにはこう?
remote += replacement[(offset + remote)..]
.iter()
.take_while(|b| **b == b' ')
.take(tab_size as usize - remote)
.count();
安全に速くするにはこう?
remote += replacement[(offset + remote)..]
.iter()
.take_while(|b| **b == b' ')
.take(tab_size as usize - remote)
.count();
835デフォルトの名無しさん
2025/05/24(土) 23:12:04.53ID:CwChNIBX spaceとtabが混ざっているとインデントレベルが破綻するね
例えば tab_width==4 で
space tab の並びはインデント1つ分
例えば tab_width==4 で
space tab の並びはインデント1つ分
836デフォルトの名無しさん
2025/05/24(土) 23:12:54.11ID:CwChNIBX unindent後も
tab の並びでインデント1つ分
tab の並びでインデント1つ分
837デフォルトの名無しさん
2025/05/24(土) 23:23:16.50ID:aRH5Qbe1 それは混ぜた人の問題だから仕様でいいだろ
838デフォルトの名無しさん
2025/05/24(土) 23:35:00.85ID:OcBn8OTY839デフォルトの名無しさん
2025/05/24(土) 23:39:02.86ID:1Azz3exJ840デフォルトの名無しさん
2025/05/25(日) 01:10:56.69ID:TXvAFiBF >>838
さすがにそのレベルだと完全に無意味なオーバーエンジニアリングだから、もう好きにしたらいいのでは
さすがにそのレベルだと完全に無意味なオーバーエンジニアリングだから、もう好きにしたらいいのでは
841デフォルトの名無しさん
2025/05/25(日) 01:44:17.05ID:xLL5QQea どうせ君はやってみたいだけ俺スゲーしたいだけなんだから
見ず知らずの相手にここまでひどい人格否定ワード言われる筋合いはないぞ。追放かなこいつ
見ず知らずの相手にここまでひどい人格否定ワード言われる筋合いはないぞ。追放かなこいつ
842デフォルトの名無しさん
2025/05/25(日) 04:45:11.33ID:SHX6eUvx メモリ保護以外にもなんかねーのか
もう一歩欲しいよな
型アノテーションもつけてくれ
もう一歩欲しいよな
型アノテーションもつけてくれ
843デフォルトの名無しさん
2025/05/25(日) 10:06:04.62ID:yaAj4Ooc Web APIでhttpサーバ部分がボトルネックになるってどんな状況なんだろ
大量のIO待ちリクエストが発生するような状況ならあるかもしれないが、そんなの>>824みたいなゆるいスタイルで作るかなあ
大量のIO待ちリクエストが発生するような状況ならあるかもしれないが、そんなの>>824みたいなゆるいスタイルで作るかなあ
844デフォルトの名無しさん
2025/05/25(日) 10:20:43.43ID:hwv8Rr4+845デフォルトの名無しさん
2025/05/25(日) 10:57:10.37ID:yaAj4Ooc >>844
ffi等による部分的なRust化で効果がないってことは、838のいうhttpサーバーというのはhttpサーバーのミドルウェア部分(アプリケーションコードを含まない)のみを指してるはずで、
それがネックだとすると、レスポンスタイムの殆どをIOが占めていて、かつ同時処理されるリクエスト数がサーバー台数に対して無茶苦茶多いという極端な状況が考えられる
そんな状況なら一般的なWebアプリだったらDBのコストの方が遥かに高くつくんじゃないかなあ
ffi等による部分的なRust化で効果がないってことは、838のいうhttpサーバーというのはhttpサーバーのミドルウェア部分(アプリケーションコードを含まない)のみを指してるはずで、
それがネックだとすると、レスポンスタイムの殆どをIOが占めていて、かつ同時処理されるリクエスト数がサーバー台数に対して無茶苦茶多いという極端な状況が考えられる
そんな状況なら一般的なWebアプリだったらDBのコストの方が遥かに高くつくんじゃないかなあ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに [ニョキニョキ★]
- 米中電話会談、トランプ氏は「米国側は中国にとっての台湾問題の重要性を理解する」 [1ゲットロボ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- 【速報】習主席とトランプ大統領が電話会談 台湾問題について★4 [ニョキニョキ★]
- 【速報】盗難車ひき逃げで歩行者ら12人死傷 逃走した“運転手”の37歳男を逮捕 東京・足立区 ★5 [Ailuropoda melanoleuca★]
- 【社会】毎月引き落とされるなんて…高齢者が理解しづらい「サブスク」 「解約できない」と不満も [シャチ★]
