1 名前:デフォルトの名無しさん [2017/12/24(日) 18:27:01.98 ID:EGydBhQv0.net] Mozilla発のプログラミング言語「Rust」のスレです ■公式 https://www.rust-lang.org/ https://blog.rust-lang.org/ https://github.com/rust-lang/rust ■ワッチョイ スレ建て時、一行目に !extend:on:vvvvv:1000:512 を入れること ■派生元スレ プログラミング言語 Rust 4 https://mevius.5ch.net/test/read.cgi/tech/1507970294/ VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
167 名前:デフォルトの名無しさん mailto:sage [2020/11/25(水) 00:47:44.38 ID:lt8VNqOR0.net] るすと
168 名前:デフォルトの名無しさん [2022/05/03(火) 15:19:34.90 ID:FP7f4hyR0.net] Rの発音が難しい
169 名前:デフォルトの名無しさん mailto:age [2022/08/07(日) 14:18:50.38 ID:Xv2x2xOXM.net] うんこすレッド
170 名前:デフォルトの名無しさん [2022/11/13(日) 22:46:23.74 ID:gb51z1Py0.net] 日本語の発音ってかイントネーションはみんなどっち? ラスト(ミファファ=スタバ) ラスト(ミドド=ベスト(着る方))
171 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 18:15:29.98 ID:QMFF+6AxM.net] 1オクターブ上のドでミドド
172 名前:デフォルトの名無しさん [2022/12/18(日) 17:46:12.72 ID:fqk1SiW30.net] 本スレ最近ひどいね age
173 名前:デフォルトの名無しさん [2023/01/09(月) 20:41:28.12 ID:XnWHdmBW0.net] Rustの型って何を言ってるのか良う分からないくらい一気に複雑になるんだけど、改善の兆しってある? filter(|x| ...).map.(|x| ...)ってやると戻り値がMap<Filter<...>>みたいに、情報量がほぼ増えないのに型の表記だけが増えてくのが見づらくてしゃあないんだが 「ここを関数に切り出しておきたい」ってのも難しくね? impl Traitあるだろって言われるけど、自分ひとりでできた試しが無い
174 名前:デフォルトの名無しさん (ワッチョイ 1301-nt2E) mailto:sage [2023/01/09(月) 22:31:09.52 ID:ZXgjuOo50.net] >>173 .filter(|x| ...).map.(|x| …)とやったら ざっくり言うと戻り値はIterator<Item=T>でowned, shared reference, mutable referenceの3種類 Map<Filter<...>>とかの詳細な型を知りたいと思うことは基本ないからそこまで困らない デコレータとかコンポジション的なものとして理解しとけばいいと思う 関数に切り出すのはGC言語と比べると難しい どの値の所有権をどの呼び出しレイヤーで保持すべきかを整理しながらリファクタリングする必要がある ただある程度パターンがあるからそれが理解できるとそこまで難しくはない
175 名前:デフォルトの名無しさん [2023/01/11(水) 20:45:10.66 ID:+OHiCBbi0.net] >>174 標準ライブラリでiteratorのメソッドならそうなんだろうな、って他言語でも溜め込んだ知識で何とかなるけどさ、 例えばwarpっていうWebフレームワークはリクエストの解決にfilterを使ってるんだけど、 https://docs.rs/warp/latest/warp/filters/index.html ↑ここからたどって、例えばリクエストのパスにマッチするフィルタを作成するwarp::filters::pathってのがあるんだけど、 こいつの戻り値が独自型のExactってやつなのね warp作ってる人はここに様々な条件を追加できるようにしているんだけど、pathの戻り値にどう組み合わせられるかってのをどう探せるんだろっていつもなってる 他のcrateも、単機能で目的果たせるライブラリならまだいいけど、高階関数で機能組み合わせてねってやつはrustdoc見ても意味が分からなくなってる
176 名前:デフォルトの名無しさん mailto:sage [2023/01/11(水) 23:31:54.91 ID:B6T7GQUU0.net] >>175 ExactがFilterだと分かれば別のFilterを組み合わせられることはわかるでしょ? warpのFilterシステムを理解させるための解説ドキュメントが不足してるのと 他で類似の仕組みをあまり経験したことがないのが理由なんじゃないのかな? 型が入れ子の形でチェインされてる状態に慣れてないから それがわかりにくさの原因のように感じるかもしれないけど JavaやgoのReader/Writerみたいにデコレータ的に型を重ねていくのはそんな特殊なことじゃないよ
177 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 07:36:35.15 ID:fjq3kaV70.net] iterator系の処理はどんな言語でもやりすぎると意味不明なんでいい単位で説明変数や関数に切り出すのは大事だよ。
178 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 10:57:06.97 ID:yHqsf2Vi0.net] 関数単位で切り出す場合はimpl TraitやBox<dyn Trait>使った方が良いと思う 実装の詳細が型として露出してしまうのはよろしくないし 何より長い型を書き下すのはめんどくさい
179 名前:デフォルトの名無しさん (ワッチョイ d3c9-tb1I) [2023/01/13(金) 00:49:21.00 ID:Eg8x4Zf+0.net] >>176 いやExactがFilterかどうかが分からないんだ。自信が無い https://docs.rs/warp/latest/warp/filters/path/struct.Exact.html https://docs.rs/warp/latest/warp/trait.Filter.html ↑2つを見ても、ExactがFilterをimplしているとは書いてないんだ 知ってたらマジで教えてほしいんだが、どこ見ればいいの? >>178 そう思うのは人情だが、じゃあどういう型の関数にすればいいのかって話 ググらずに分かる?俺は分からなかった
180 名前:デフォルトの名無しさん [2023/01/13(金) 01:52:07.98 ID:USdCnak/0.net] >>179 非公開の(だけど実装が漏れている)FilterBaseトレイトを介してFilterを実装してるんだね…… FilterBaseが公開されていればExactのblanket implementationsに出てくるはず 同じことは指摘されているが放置されている模様 https://github.com/seanmonstar/warp/issues/742
181 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 20:16:02.99 ID:Eg8x4Zf+0.net] もしかして特段に分かりづらい構造だったのかWarp
182 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 21:03:44.68 ID:4YqzJ2Gc0.net] Sealed TraitっていうユーザーにTraitを実装させないための一般的なパターンなんだけど privateなTraitはドキュメントには現れないのでExactがFilterBaseを実装してることを確かめたければソースを見るしかない でも関数や構造体の説明にFilterだよって書いてるんだからまずはそこからじゃないか? path()「Create an exact match path segment Filter.」 Exact「A Filter matching an exact path segment.」
183 名前:デフォルトの名無しさん [2023/01/14(土) 03:14:01.24 ID:4QhVLL220.net] いや型の説明がコメントにしか無いかったら疑うのが基本じゃないか…? 説明にある通りの使い方はできるけど、何故そう使えるのか分からない、となった上での話 前にもちらっと書いたところもそうなんだけど、impl Filterを返す関数のシグネチャも独力だと分からなかったんだよ。もっと情報の少ないクレートでやる必要が出てきたら詰んじゃう
184 名前:デフォルトの名無しさん mailto:sage [2023/01/19(木) 13:09:59.92 ID:CHvJHSS40.net] [T]と[T; N]があるように strに対するSizedなstr<N>とかできんかね
185 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 03:46:54.24 ID:qSgQK/Ke0.net] ttps://doc.rust-lang.org/beta/unstable-book/language-features/yeet-expr.html 名前の元ネタがよくわからん
186 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 04:28:40.21 ID:iZgCgX3R0.net] >>185 trY Early-ExiT で yeet じゃない? experimental だからわざとクソ命名してそう。
187 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 08:29:44.05 ID:VTBemk9l0.net] 意味合いとしては > Yeet is a slang phrase meaning to throw with force とのことらしい https://internals.rust-lang.org/t/syntax-for-returning-early-with-an-error/14181 https://www.urbandictionary.com/define.php?term=Yeet yeetの初出はここらしい https://mobile.twitter.com/josh_triplett/status/1248658754976927750 命名に関するbikeshedを避けつつ機能を実験するために導入するみたいね (deleted an unsolicited ad)
188 名前:デフォルトの名無しさん mailto:sage [2023/02/04(土) 16:11:28.39 ID:4OrKEijd0.net] Servoプロジェクトが再始動 https://servo.org/blog/2023/01/16/servo-2023/ https://servo.org/blog/2023/02/03/servo-2023-roadmap/
189 名前:デフォルトの名無しさん [2023/02/26(日) 21:57:18.73 ID:vJeOsMT8M.net] 新スレとして再利用と聞いてage
190 名前:デフォルトの名無しさん [2023/03/02(木) 01:57:12.70 ID:9x7ptNRV0.net] ProviderとDemandってCOMのQueryInterface的な使い方もできるのかな
191 名前:デフォルトの名無しさん [2023/03/07(火) 03:24:09.91 ID:CjRtBzJ10.net] Bevy 0.10 is out now! https://bevyengine.org/news/bevy-0-10/
192 名前:デフォルトの名無しさん [2023/03/10(金) 03:58:23.25 ID:9+yNdzD90.net] Announcing Rust 1.68.0 https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.html 今回は小粒?
193 名前:デフォルトの名無しさん mailto:sage [2023/03/10(金) 11:19:42.21 ID:Rc7TQThZ0.net] cargoのsparse protocolは嬉しい
194 名前:デフォルトの名無しさん (テテンテンテン MMee-qnN+) mailto:sage [2023/03/15(水) 08:26:46.78 ID:L9HRqQqHM.net] Default alloc error handlerはLinus指摘の取り込みかな。
195 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 10:58:18.74 ID:efRde3jV0.net] Linusの話は、メモリアロケーション失敗時にpanicするなという話だと思うけど、今回の変更とは全く関係ない 今回の変更でalloc crateがalloc_error_handlerのデフォルト実装を提供するようになった 新たに提供されたalloc_error_handlerはpanicする実装になっているので、メモリアロケーション失敗時にpanicになることは変わらない 単に、利用者がalloc_error_handlerを独自に実装する必要がなくなったというだけ Linusの指摘に対しては、Box::try_newなどのアロケーション失敗を呼び出し元に通知するAPIを用意することで対応している
196 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 12:35:43.18 ID:i0vzrjRpM.net] >>195 サンクス。 Linusは「単にエラーを返せ」と言っていたから、error handlerじゃ確かに駄目だね。
197 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 13:35:50.81 ID:jUGp7X9a0.net] Rust製の高速なwebpack互換バンドラ「Rspack」登場。現時点で5倍から10倍の性能向上 https://www.publickey1.jp/blog/23/rustwebpackrspack510.html > Rust製の高速なバンドラとしては、webpackの主要な開発者がNext.jsに入社してwebpackの後継として開発している「Turbopack」もあります。 > 現時点ではまだwebpackが抜きん出た人気を得ていますが、現時点で主要な開発者が抜けてしまったwebpack後継の座を狙った競争が始まったといえそうです。
198 名前:デフォルトの名無しさん mailto:sage [2023/03/26(日) 17:12:36.73 ID:EfkiJTmm0.net] >>197 ちょっとスレチ気味だけれど Turbopack(新調で700倍高速) vs Rspack(互換性維持で5~10倍高速) webpackからの乗り換えはしばらく様子見
199 名前:デフォルトの名無しさん [2023/03/27(月) 08:53:03.64 ID:ZY+RQ7940.net] 一度普及したソフトの作者自身が後継プロジェクトを立ち上げてもなぜかうまくいかない法則
200 名前:デフォルトの名無しさん (ワッチョイ 9901-3uzD) mailto:sage [2023/03/27(月) 09:40:06.58 ID:AuSpH/AF0.net] Rust遅くね?
201 名前:デフォルトの名無しさん mailto:sage [2023/03/27(月) 10:40:29.19 ID:jab4un3HM.net] 速度遅くてもウケたプロダクトの動作速度上げたところで 現行をリプレイスする理由にならないからな それにRustがいかに速かろうと今の時代ネックはIOである可能性が高いし
202 名前:デフォルトの名無しさん mailto:sage [2023/03/27(月) 12:01:17.21 ID:eSvQrfce0.net] >>200 詳しく見ていないけど、ロジックにボトルネックがあるのかもね。
203 名前:デフォルトの名無しさん mailto:sage [2023/03/27(月) 16:02:39.08 ID:IjV2Ctjk0.net] 10倍のオーダーで速度差出るなら性能がリプレース理由になる場合も増えると思うよ 数分かかる処理が数秒で終わると快適さが全然違うだろうし
204 名前:デフォルトの名無しさん mailto:sage [2023/03/27(月) 16:27:48.16 ID:Fq2x4U//0.net] >>201 どうせ IO がネックだからってのは昔から言われてることだけど クラウドサービスを前提にすると事情が違うと聞いたことがある。 レスポンスタイムにあまり差が無かったとしても課金は演算量 (CPU の使用量) に対して だからなるべく効率的に実行できる言語を使ったほうが安く上がるんだとさ。
205 名前:デフォルトの名無しさん mailto:sage [2023/03/27(月) 23:41:07.73 ID:t8oeSgw5a.net] Ruby on Rails 6 では、webpack が標準だったけど、 Rails 7 では、Import Maps で、CDN から直接インポートするように変わった。 脱webpack/node.js ES2015 に対応していないブラウザ用に、バンドルする方法もある。 バンドラーは、esbuild, rollup, webpackの3つ
206 名前:デフォルトの名無しさん (ワッチョイ a75f-iKPJ) mailto:sage [2023/04/17(月) 10:02:11.42 ID:Dh5lk+HW0.net] ドキュメントコメントを reStructuredText で書きたい
207 名前:デフォルトの名無しさん mailto:sage [2023/04/24(月) 12:17:06.73 ID:LQT8UQ2a0.net] let-else の else ブロックの中だけ rustfmt 効かなくて設定間違えたかと思ったら フツーに未対応だった https://github.com/rust-lang/rustfmt/issues/4914
208 名前:デフォルトの名無しさん (ブーイモ MM8e-sjlm) [2023/04/24(月) 18:39:33.31 ID:75I/tfQdM.net] let-elseは鬼っ子だから 改行位置決めるのも大変
209 名前:デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti) mailto:sage [2023/04/24(月) 18:43:14.72 ID:3hT7+QpVM.net] 横から済みませんがが、 Rust で Vec に要素を追加した場合にメモリー不足になったかどうかを検出 するのはどうしたらよいんでしたっけ?
210 名前:デフォルトの名無しさん (ブーイモ MM8e-sjlm) [2023/04/24(月) 18:47:43.95 ID:fDr9n68aM.net] try_reserve
211 名前:デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti) mailto:sage [2023/04/24(月) 18:53:28.63 ID:3hT7+QpVM.net] >>210 それは予め領域を確保しておく関数で、確保できなかった場合には、 Result<(), TryReserveError> という戻り値を返す関数と言うことですか? そして、関数呼び出しの直後に ? を書くと、エラー発生時にそこで アプリをダウンさせると言うことですか?
212 名前:デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti) mailto:sage [2023/04/24(月) 19:00:53.57 ID:3hT7+QpVM.net] >>211 事故レスですが、? 演算子は、x ? と書くと、x の値が Err(y) だったら、 return Err(From::from(y)), というような動作をする関数のようですね。
213 名前:デフォルトの名無しさん (ブーイモ MM0a-sjlm) [2023/04/24(月) 19:01:30.05 ID:ELtZniCQM.net] いろいろ違う 落としたいならpanicさせとけばいい
214 名前:デフォルトの名無しさん (ワッチョイ 1eda-2ihv) mailto:sage [2023/04/25(火) 00:44:30.70 ID:hB6+7TeQ0.net] メモリ不足を検出した場合に何をしたいかで適切な対応は変わってくるけど、何をしたいの?
215 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 01:46:37.95 ID:ICFLZD9/M.net] >>214 メモリー不足の時にメモリー不足である旨のエラーメッセージを出して、 なんらかの自作の処理コードを動かしたいです。
216 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 01:47:29.28 ID:ICFLZD9/M.net] >>215 なお、Vecに追加する動作を行なった関数の中で処理をしたいです。
217 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 07:31:37.92 ID:S/F8mIrU0.net] 重要: メモリ不足だからと言ってmallocが失敗するとは限らない
218 名前:デフォルトの名無しさん (ワッチョイ 2a3e-ASru) mailto:sage [2023/04/25(火) 09:38:35.21 ID:ug7UW9j70.net] 今の Linux カーネルだとアプリケーションからオーバーコミットを無効にすることは出来るようになってるぞ。
219 名前:デフォルトの名無しさん (ワッチョイ 1eda-2ihv) mailto:sage [2023/04/25(火) 10:43:39.39 ID:hB6+7TeQ0.net] try_reserveの戻り値がErrだったら処理を実行するだけだよ この説明で分からないならenumやResult型について勉強した方が良いよ あとtry_reserveの失敗要因はメモリ不足だけじゃないけど、エラー種別はnightlyじゃないと取得できないみたいね
220 名前:デフォルトの名無しさん mailto:sage [2023/04/29(土) 19:47:07.81 ID:OSQfAzE+0.net] RefMut <-> Ref にも Rc <-> Weak みたいな相互変換メソッドがあればいいのに
221 名前:デフォルトの名無しさん (ワッチョイ bfda-qKNM) mailto:sage [2023/04/30(日) 04:06:33.86 ID:5bTJo9fJ0.net] >>220 RefCell自体を取り回して必要なところで都度RefやRefMutを作れば良いのでは
222 名前:デフォルトの名無しさん (ワッチョイ 375f-k3Rv) mailto:sage [2023/04/30(日) 11:51:12.53 ID:cNEEfLAb0.net] >>221 実際今はそれでやってて、別に問題になるほどじゃないんが、ちょっと無駄だよなあと Ref/RefMutってあんまりあちこち取り回す用にできてないよね
223 名前:デフォルトの名無しさん (アウアウウー Sa1b-qKNM) mailto:sage [2023/04/30(日) 13:58:26.96 ID:ZqZbVcjya.net] >>222 RefやRefMutはMutexのGuardみたいなもんなんだから取り回す範囲は極力狭くするべきなんじゃね
224 名前:デフォルトの名無しさん (ワッチョイ 375f-k3Rv) mailto:sage [2023/05/03(水) 20:42:40.07 ID:CZOik0F40.net] Rustにもこんなのあるんか……ええな https://zenn.dev/kk/articles/20230213_creusot_intro
225 名前:デフォルトの名無しさん (ワッチョイ 335f-awLq) mailto:sage [2023/05/19(金) 17:46:12.04 ID:vnYwlZ+00.net] Rust for Linux updates! More pin-init and refactoring! - YouTube https://www.youtube.com/watch?v=jAanHvcuYtA
226 名前:デフォルトの名無しさん mailto:sage [2023/06/02(金) 02:43:27.18 ID:w12tfZkT0.net] The RustConf Keynote Fiasco, explained https://fasterthanli.me/articles/the-rustconf-keynote-fiasco-explained 一連の事件は結局不幸な伝言ゲームの結果だったということだろうか
227 名前:デフォルトの名無しさん mailto:sage [2023/06/04(日) 13:53:56.01 ID:xOmzDhxR0.net] 以前からCodeLLDBでたまに値がちゃんと表示されないことがあるなーと思ってたら再帰型が原因だったんですね 今ほとんど再帰でできてる部分触ってるせいで困ってる…… dbg!書けばいいだけではあるんだけど泥臭くて嫌だわね https://github.com/vadimcn/codelldb/issues/605
228 名前:デフォルトの名無しさん (ワッチョイ d336-IjPS) mailto:sage [2023/07/29(土) 22:43:04.08 ID:nwVMjVJQ0.net] いつのまにかrust-specがマージされてる。まだ作業終わってないけど。 ttps://github.com/rust-lang/rfcs/pull/3355 ttps://github.com/rust-lang/rust/issues/113527 rustにもようやく仕様が。
229 名前:デフォルトの名無しさん (ワッチョイ eada-0btC) mailto:sage [2023/07/30(日) 17:17:19.50 ID:9Mwyt07S0.net] これから編集者雇うみたいだからまだまだ時間は掛かりそうだけど、前進だね
230 名前:デフォルトの名無しさん (ワッチョイ 0f5f-4nYy) mailto:sage [2023/08/10(木) 03:13:56.19 ID:cXfKj1l90.net] Hugging FaceがPyTorch的なRust製フレームワークを作り始めたらしい https://github.com/huggingface/candle
231 名前:デフォルトの名無しさん (ワッチョイ 275f-orer) mailto:sage [2023/08/16(水) 18:13:46.91 ID:Wd6XOYTc0.net] >> https://mevius.5ch.net/test/read.cgi/tech/1692105879/16 rustupを使わないクロスコンパイル環境の構築方法あるらしいよ https://users.rust-lang.org/t/how-to-add-cross-compile-target-for-offline-system-without-rustup/80811/4 大人しくrustup使っておけよとしか思わんが一応……
232 名前:デフォルトの名無しさん (ワッチョイ bb36-3sKl) mailto:sage [2023/08/16(水) 19:50:14.01 ID:e6GDzmE20.net] githubにrustupのソースコードあるから読めばいいよ。
233 名前:デフォルトの名無しさん (ワッチョイ 8b01-1ZN1) mailto:sage [2023/08/16(水) 23:13:21.01 ID:1NDN9ysp0.net] >>231 サンキュ。試してみます
234 名前:デフォルトの名無しさん (ワッチョイ f9a9-75c1) mailto:sage [2023/08/22(火) 03:24:00.61 ID:Fec2bVY90.net] おおきに、感謝やで!
235 名前:デフォルトの名無しさん (ワッチョイ d95f-GBSa) mailto:sage [2023/08/30(水) 12:04:57.70 ID:LqLNxSZ40.net] Debugを上位トレイトに持たないトレイトのオブジェクトをなんとかしてdbg!する方法は無いもんじゃろか
236 名前:デフォルトの名無しさん (ワッチョイ 3536-8/Q7) mailto:sage [2023/08/30(水) 15:40:36.29 ID:lfrnRSB90.net] ない。基本的なトレイトを実装してないのはバグ。
237 名前:デフォルトの名無しさん (ワッチョイ 4ada-0cXD) mailto:sage [2023/08/30(水) 20:29:40.52 ID:y+HDByBG0.net] 参照をポインタにしてアドレスを表示してみるとか
238 名前:デフォルトの名無しさん (ワッチョイ 4ada-0cXD) mailto:sage [2023/08/30(水) 20:30:28.57 ID:y+HDByBG0.net] 構造体フィールドの中身を知りたいという事ならAnyを継承させてダウンキャストするかDebugを継承したtraitにするしかないね
239 名前:デフォルトの名無しさん (ワッチョイ b3bc-yE7J) mailto:sage [2023/09/12(火) 06:34:45.51 ID:8vWycgZc0.net] アノ店、今日は休みやねんな
240 名前:デフォルトの名無しさん (ワッチョイ 0f36-8z3m) mailto:sage [2023/09/21(木) 01:15:23.63 ID:d9SQw4Jt0.net] intellij rustからRustRoverギリギリ燃えてないな。プラグインもIDEAもバグが増えたのが懸念とか言われてるけど。
241 名前:デフォルトの名無しさん (ワッチョイ 0f01-w8tn) mailto:sage [2023/09/21(木) 23:43:40.50 ID:2whQHU6y0.net] RustのコンパイルターゲットはTierで分けられているけど x86_64-pc-windows-msvc ←Tier1 x86_64-unknown-none ←Tier2 この違いって何? Tier1の条件を見るとすべてのテストに合格すること的な事が書いてあるしプラットフォームが不明の状態でそれは不可能はなず 組み込み向けなどの低レイヤー用途を想定したターゲットにTier1のものはなくすべてTier2以下になっている もしこれが理由なら自分が書いたコードはTier1と同レベルに翻訳される(実行できなかったり実行結果が不正なコードは生成されない)事が 期待できるけどそう考えて問題ないのだろうか
242 名前:デフォルトの名無しさん (ワッチョイ 3fda-n7kY) mailto:sage [2023/09/22(金) 01:00:34.44 ID:J+8eUZUM0.net] >>241 x86_64なら現実的にはほぼ動くとは思う ただ、あくまでもrust側ではコンパイルが通ることしか確認してなくて、生成されたコードが正しく動作するかは未確認の状態 利用者側が動作確認をきちんとやる必要があるよ
243 名前:デフォルトの名無しさん (ワッチョイ 0f01-w8tn) mailto:sage [2023/09/22(金) 02:06:03.04 ID:/khf3L7K0.net] >>242 例えばベアメタル開発用などでOSとインターフェイスしないコードのみほしい場合 x86_64-pc-windows-msvc(x86_64-unknown-linux-gnuとかでも可)でスタティックリンクのライブラリとしてビルドしてカスタムリンク x86_64-unknown-noneでビルド の二択だと出力物の信頼性はどちらの方が高いのだろうか。どちらも適切なローダーを用意すれば動作するはず 特に低レイヤーの開発で翻訳不良があるとトラブルシュートが沼りやすいし、前者の方が有利なら ゴミが付いたりビルドが複雑化するなどのデメリットを考慮しても検討する価値があるはず
244 名前:デフォルトの名無しさん (ワッチョイ 0f36-8z3m) mailto:sage [2023/09/22(金) 04:58:40.40 ID:B04DzdQA0.net] より正確にはtier2はwith/without Host Toolsに分かれる。 withの方はtarget環境扱いだけじゃなくてネイティブなhost toolsを使用して開発環境として使える。 *-*-none-*はベアメタル向けだからHost Toolsのサポートはない。 言い換えるとtier2 with Host Toolsはセルフホストできる。 Tier 1にもwith/withoutの分類があるけど事実上withoutの方がない。 これは今のところHost Toolsをサポートしてないtier 1が存在しないから。 だからビルド環境に指定したいならx86_64-unknown-none。
245 名前:デフォルトの名無しさん (ワッチョイ 0f01-w8tn) mailto:sage [2023/09/22(金) 23:10:21.93 ID:/khf3L7K0.net] x86_64-unknown-noneが吐くコードをどのくらい信用して良いのかって話ね Tier2=十分にテストされていない=不正命令例外を吐いたり意図しない演算結果になる可能性がある とかだと開発に重大な影響が出るし勘弁してほしい。Tier1のターゲットならそんな可能性は無視できるはずだし
246 名前:デフォルトの名無しさん (ワッチョイ 0ff8-fp56) mailto:sage [2023/09/22(金) 23:26:27.84 ID:wn++FXk10.net] テスト云々はlibstdが主なんでは? そもそもコード生成するのはLLVMなんだし機械語レベルじゃRust側のTierは関係ない気がする
247 名前:デフォルトの名無しさん (ワッチョイ 0f01-w8tn) mailto:sage [2023/09/22(金) 23:47:16.64 ID:/khf3L7K0.net] x86_64-unknown-noneがTier2の理由がstdのテストができないからならそれでいいんだけどね Platform Supportを見ても >x86_64-unknown-none * Freestanding/bare-metal x86_64, softfloat としか書いていない。hardfloatが使えない?のはよくわからないが
248 名前:デフォルトの名無しさん (ワッチョイ 0336-3hLy) mailto:sage [2023/09/23(土) 01:27:48.45 ID:JOYgBSwC0.net] Tierはrustcのコードベースがビルドできるかどうかの保証であって吐くバイナリの質の保証じゃない。 そもそもrustcはフロントエンドだからどういうバイナリ吐くかは無関係。 tier 1/2の違いは自動テストが常に実行されるかどうかの違いだけ。 全部Platform Supportに書いてあるからこの説明でわからんならどこが理解できないのか言ってくれ。
249 名前:デフォルトの名無しさん (ワッチョイ 5301-3pIy) mailto:sage [2023/09/24(日) 21:37:53.69 ID:JmCRMtY30.net] Tier表記がアテにならないならコードの質を比較するにはどうしたらいいんだろ x86_64とavrが同じ品質、同じ最適化レベルなわけないよな
250 名前:デフォルトの名無しさん (ワッチョイ 0ada-sj2L) mailto:sage [2023/09/25(月) 08:27:06.59 ID:gOdfC5Fq0.net] rustに限らずコンパイラの生成コードの品質はアセンブリ見て判断するしかないんじゃね LLVM IRもプラットフォームごとに差があるのかね?
251 名前:デフォルトの名無しさん [2023/11/08(水) 11:25:16.25 ID:QNjJKK3y0.net] Rust製ブラウザエンジンの「Servo」、アプリに組み込み可能なクロスプラットフォーム対応WebView化を目指す。Electron代替を目指す「Tauri」への組み込み実現へ - Publickey https://www.publickey1.jp/blog/23/rustservowebviewelectrontauri.html 期待
252 名前:デフォルトの名無しさん [2023/11/13(月) 11:53:03.89 ID:k6bqA1Ku0.net] https://rust-lang.github.io/rfcs/3192-dyno.html 気づいたらポシャっててstd-1.73.0からProvider/Demandも消えてた やっぱりRTTIとかそういうのはあんまり乗り気じゃないのかな??
253 名前:デフォルトの名無しさん (ワッチョイ e3f0-Krj3) mailto:sage [2023/12/28(木) 17:26:22.81 ID:WYblPX1w0.net] RubyのYJITって仕組みはRustで実装されてるんだな ソース見てビビった
254 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 19:28:59.59 ID:13cJB/jM0.net] >>253 へぇ、Node.jsもあちこちが遅いからと ちょこちょこ便利ライブラリの中身がRustに置き換わり始めてるし 今後こういう流れは加速しそうだな
255 名前:デフォルトの名無しさん (ワッチョイ ff3e-XnzH) mailto:sage [2023/12/28(木) 21:34:36.48 ID:x05ZB4jI0.net] 遅い部分を Rust でなおそうというよりは、 Rust へ置き換わる流れに乗るついでに駄目なところをそろそろなんとかしようぜという感じじゃないかな。 イマイチなのがわかっててもちゃんと動いてるなら何かきっかけがないと重い腰が上がらないのはよくあること。
256 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 22:12:11.01 ID:WYblPX1w0.net] YJITのコード、相当面白いな RustでJITしてるよw マシンコードゴリゴリ生成してる
257 名前:デフォルトの名無しさん (アウアウウー Saa7-9gAl) mailto:sage [2023/12/29(金) 18:42:09.07 ID:gLXDegz1a.net] rustってJavaやpythonみたいに爆発的に流行るわけじゃなくてじわじわ広まっていく感じなんだろうな
258 名前:デフォルトの名無しさん mailto:sage [2023/12/29(金) 22:02:28.40 ID:iUQmWV32a.net] YJIT、最初はCで実装されてたがRustに変えたみたい bindgenでCRuby側のAPIをRust側に持ってきて それを使いながらJITでマシンコード生成してる 面白すぎる コードもめちゃくちゃ読みやすいぞ
259 名前:デフォルトの名無しさん (ワッチョイ 9701-Hbjn) mailto:sage [2024/02/04(日) 19:30:07.17 ID:TI/zzvYY0.net] RustのRTOSはTockがあるけどFreeRTOSやTOPPERS/SSP、μT-Kernelなど既成のRTOSとの比較レビューってある?
260 名前:デフォルトの名無しさん [2024/03/22(金) 21:59:30.16 ID:qT4SZAGX0.net] Rust 1.77.0 https://blog.rust-lang.org/2024/03/21/Rust-1.77.0.html
261 名前:デフォルトの名無しさん (ワッチョイ 9f5f-n+Ch) [2024/05/05(日) 01:37:56.22 ID:uZIblCBW0.net] Rust 1.78.0 https://blog.rust-lang.org/2024/05/02/Rust-1.78.0.html
262 名前:デフォルトの名無しさん [2024/05/28(火) 05:50:07.80 ID:2O15FncY0.net] あげとくか
263 名前:デフォルトの名無しさん (アウアウウー Sac5-j0d5) [2024/05/28(火) 11:26:44.51 ID:NhejqWbKa.net] >>257 それなりに使われるだろうけど普及はしないよこんな糞言語
264 名前:デフォルトの名無しさん (ワッチョイ a17d-AeJW) mailto:sage [2024/05/28(火) 12:40:58.42 ID:62OgaQom0.net] >>263 普及の定義をしようや
265 名前:デフォルトの名無しさん (ワッチョイ d37f-ikRv) [2024/05/29(水) 01:14:08.00 ID:stYwN08n0.net] lazy_cellが安定化 https://github.com/rust-lang/rust/issues/109736
266 名前:デフォルトの名無しさん mailto:sage [2024/06/05(水) 14:11:47.67 ID:nZd9x5hFa.net] >>264 糞言語は定義しなくていいということですか
267 名前:デフォルトの名無しさん (ワッチョイ be29-u9Nc) mailto:sage [2024/06/05(水) 15:39:16.16 ID:NzLbLFLA0.net] >>266 糞言語でも神言語でもいいから 普及したかどうか基準を明確になれば良い