プログラミング言語 Rust 4【ワッチョイ】 (302レス)
1-

156: (ワッチョイ 0d2d-IuOd) 2018/07/01(日)09:29 ID:61/yGhxs0(1)調 AAS
emacs + flycheck
racerは重すぎるんでOFFにしてる
157: (アウウィフ FF85-mzC7) 2018/07/01(日)15:40 ID:ep584YMHF(1)調 AAS
秀丸
158: (ワッチョイ 79b3-HrKv) 2018/07/01(日)18:12 ID:VIP13YQk0(1)調 AAS
禿丸ってなに?
159: (ワッチョイ 6ee8-Fk5m) 2018/07/01(日)19:19 ID:3lsiwbVs0(2/2)調 AAS
こっちまでネタスレかよ
160: (ブーイモ MM22-Unb+) 2018/07/03(火)18:54 ID:A246qspJM(1)調 AAS
https://i.imgur.com/VVJNac4.jpg

161: (ワッチョイ 45fa-2e90) 2018/07/04(水)21:50 ID:gFgZc5FG0(1)調 AAS
5PW
162: (ブーイモ MM2b-0Xn2) 2018/07/05(木)00:59 ID:lJi2a9VDM(1)調 AAS
おーい、hgmr
163: (アメ MM5b-Ip0i) 2018/07/28(土)09:13 ID:pjkfXvHGM(1)調 AAS
hnmr王子〜♪
164: (ワッチョイ 12d5-YWSl) 2018/07/29(日)02:13 ID:QHCaZ13N0(1)調 AAS
まさか繋いでくれる人がいるとは思わなかった
165: (ブーイモ MM5b-Hl5m) 2018/07/31(火)16:45 ID:0aJU5h1JM(1)調 AAS
花村てなんや
オーバーウォッチか
166: (アメ MM67-tZ6u) 2018/08/05(日)20:37 ID:XPCi/u53M(1)調 AAS
王子に対し無礼であろう!
https://www.nhk.or.jp/archives/sp/search/special/detail/?d=youth007
167: (ワッチョイ d75f-8s6k) 2020/11/25(水)00:47 ID:lt8VNqOR0(1)調 AAS
るすと
168: (ワッチョイ dfad-VZQ6) 2022/05/03(火)15:19 ID:FP7f4hyR0(1)調 AAS
Rの発音が難しい
169: (テテンテンテン MM73-rSKY) [age] 2022/08/07(日)14:18 ID:Xv2x2xOXM(1)調 AAS
うんこすレッド
170: (ワッチョイ 7501-zStA) 2022/11/13(日)22:46 ID:gb51z1Py0(1)調 AAS
日本語の発音ってかイントネーションはみんなどっち?
ラスト(ミファファ=スタバ)
ラスト(ミドド=ベスト(着る方))
171: (ブーイモ MM4b-Yt0T) 2022/11/16(水)18:15 ID:QMFF+6AxM(1)調 AAS
1オクターブ上のドでミドド
172: (ワッチョイ 1f5f-MR5z) 2022/12/18(日)17:46 ID:fqk1SiW30(1)調 AAS
本スレ最近ひどいね
age
173
(1): (ワッチョイ d3c9-tb1I) 2023/01/09(月)20:41 ID:XnWHdmBW0(1)調 AAS
Rustの型って何を言ってるのか良う分からないくらい一気に複雑になるんだけど、改善の兆しってある?
filter(|x| ...).map.(|x| ...)ってやると戻り値がMap<Filter<...>>みたいに、情報量がほぼ増えないのに型の表記だけが増えてくのが見づらくてしゃあないんだが

「ここを関数に切り出しておきたい」ってのも難しくね?
impl Traitあるだろって言われるけど、自分ひとりでできた試しが無い
174
(1): (ワッチョイ 1301-nt2E) 2023/01/09(月)22:31 ID:ZXgjuOo50(1)調 AAS
>>173
.filter(|x| ...).map.(|x| …)とやったら
ざっくり言うと戻り値はIterator<Item=T>でowned, shared reference, mutable referenceの3種類
Map<Filter<...>>とかの詳細な型を知りたいと思うことは基本ないからそこまで困らない
デコレータとかコンポジション的なものとして理解しとけばいいと思う

関数に切り出すのはGC言語と比べると難しい
どの値の所有権をどの呼び出しレイヤーで保持すべきかを整理しながらリファクタリングする必要がある
ただある程度パターンがあるからそれが理解できるとそこまで難しくはない
175
(1): (ワッチョイ d3c9-c71v) 2023/01/11(水)20:45 ID:+OHiCBbi0(1)調 AAS
>>174
標準ライブラリでiteratorのメソッドならそうなんだろうな、って他言語でも溜め込んだ知識で何とかなるけどさ、
例えばwarpっていうWebフレームワークはリクエストの解決にfilterを使ってるんだけど、
https://docs.rs/warp/latest/warp/filters/index.html
↑ここからたどって、例えばリクエストのパスにマッチするフィルタを作成するwarp::filters::pathってのがあるんだけど、
こいつの戻り値が独自型のExactってやつなのね

warp作ってる人はここに様々な条件を追加できるようにしているんだけど、pathの戻り値にどう組み合わせられるかってのをどう探せるんだろっていつもなってる
他のcrateも、単機能で目的果たせるライブラリならまだいいけど、高階関数で機能組み合わせてねってやつはrustdoc見ても意味が分からなくなってる
176
(1): (ワッチョイ 1301-nt2E) 2023/01/11(水)23:31 ID:B6T7GQUU0(1)調 AAS
>>175
ExactがFilterだと分かれば別のFilterを組み合わせられることはわかるでしょ?

warpのFilterシステムを理解させるための解説ドキュメントが不足してるのと
他で類似の仕組みをあまり経験したことがないのが理由なんじゃないのかな?

型が入れ子の形でチェインされてる状態に慣れてないから
それがわかりにくさの原因のように感じるかもしれないけど
JavaやgoのReader/Writerみたいにデコレータ的に型を重ねていくのはそんな特殊なことじゃないよ
177: (ワッチョイ 119b-EcXc) 2023/01/12(木)07:36 ID:fjq3kaV70(1)調 AAS
iterator系の処理はどんな言語でもやりすぎると意味不明なんでいい単位で説明変数や関数に切り出すのは大事だよ。
178
(1): (ワッチョイ dbda-xq+Q) 2023/01/12(木)10:57 ID:yHqsf2Vi0(1)調 AAS
関数単位で切り出す場合はimpl TraitやBox<dyn Trait>使った方が良いと思う
実装の詳細が型として露出してしまうのはよろしくないし
何より長い型を書き下すのはめんどくさい
179
(1): (ワッチョイ d3c9-tb1I) 2023/01/13(金)00:49 ID:Eg8x4Zf+0(1/2)調 AAS
>>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: (ワッチョイ 795f-H4iZ) 2023/01/13(金)01:52 ID:USdCnak/0(1)調 AAS
>>179
非公開の(だけど実装が漏れている)FilterBaseトレイトを介してFilterを実装してるんだね……
FilterBaseが公開されていればExactのblanket implementationsに出てくるはず

同じことは指摘されているが放置されている模様
https://github.com/seanmonstar/warp/issues/742
181: (ワッチョイ d3c9-RZrR) 2023/01/13(金)20:16 ID:Eg8x4Zf+0(2/2)調 AAS
もしかして特段に分かりづらい構造だったのかWarp
182: (ワッチョイ 1301-nt2E) 2023/01/13(金)21:03 ID:4YqzJ2Gc0(1)調 AAS
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: (ワッチョイ eac9-KPE0) 2023/01/14(土)03:14 ID:4QhVLL220(1)調 AAS
いや型の説明がコメントにしか無いかったら疑うのが基本じゃないか…?
説明にある通りの使い方はできるけど、何故そう使えるのか分からない、となった上での話
前にもちらっと書いたところもそうなんだけど、impl Filterを返す関数のシグネチャも独力だと分からなかったんだよ。もっと情報の少ないクレートでやる必要が出てきたら詰んじゃう
184: (ワッチョイ 595f-qxpo) 2023/01/19(木)13:09 ID:CHvJHSS40(1)調 AAS
[T]と[T; N]があるように
strに対するSizedなstr<N>とかできんかね
185
(1): (ワッチョイ a75f-+rQD) 2023/01/29(日)03:46 ID:qSgQK/Ke0(1)調 AAS
https://doc.rust-lang.org/beta/unstable-book/language-features/yeet-expr.html

名前の元ネタがよくわからん
186: (ワッチョイ db9b-kLGU) 2023/01/29(日)04:28 ID:iZgCgX3R0(1)調 AAS
>>185
trY Early-ExiT で yeet じゃない?
experimental だからわざとクソ命名してそう。
187: (ワッチョイ f6da-RqI+) 2023/01/29(日)08:29 ID:VTBemk9l0(1)調 AAS
意味合いとしては
> 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を避けつつ機能を実験するために導入するみたいね
https://twitter.com/5chan_nel (5ch newer account)
188: (ワッチョイ 0f5f-xW4J) 2023/02/04(土)16:11 ID:4OrKEijd0(1)調 AAS
Servoプロジェクトが再始動
https://servo.org/blog/2023/01/16/servo-2023/
https://servo.org/blog/2023/02/03/servo-2023-roadmap/
189: (ドコグロ MM49-+MOc) 2023/02/26(日)21:57 ID:vJeOsMT8M(1)調 AAS
新スレとして再利用と聞いてage
190: (ワッチョイ 615f-+MOc) 2023/03/02(木)01:57 ID:9x7ptNRV0(1)調 AAS
ProviderとDemandってCOMのQueryInterface的な使い方もできるのかな
191: (ワッチョイ 715f-BZjt) 2023/03/07(火)03:24 ID:CjRtBzJ10(1)調 AAS
Bevy 0.10 is out now!
https://bevyengine.org/news/bevy-0-10/
192: (ワッチョイ 715f-h7+G) 2023/03/10(金)03:58 ID:9+yNdzD90(1)調 AAS
Announcing Rust 1.68.0
https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.html

今回は小粒?
193: (ワッチョイ fbda-8+Io) 2023/03/10(金)11:19 ID:Rc7TQThZ0(1)調 AAS
cargoのsparse protocolは嬉しい
194: (テテンテンテン MMee-qnN+) 2023/03/15(水)08:26 ID:L9HRqQqHM(1)調 AAS
Default alloc error handlerはLinus指摘の取り込みかな。
195
(1): (ワッチョイ 4eda-Wvvr) 2023/03/15(水)10:58 ID:efRde3jV0(1)調 AAS
Linusの話は、メモリアロケーション失敗時にpanicするなという話だと思うけど、今回の変更とは全く関係ない

今回の変更でalloc crateがalloc_error_handlerのデフォルト実装を提供するようになった
新たに提供されたalloc_error_handlerはpanicする実装になっているので、メモリアロケーション失敗時にpanicになることは変わらない
単に、利用者がalloc_error_handlerを独自に実装する必要がなくなったというだけ

Linusの指摘に対しては、Box::try_newなどのアロケーション失敗を呼び出し元に通知するAPIを用意することで対応している
196: (テテンテンテン MMee-qnN+) 2023/03/15(水)12:35 ID:i0vzrjRpM(1)調 AAS
>>195
サンクス。
Linusは「単にエラーを返せ」と言っていたから、error handlerじゃ確かに駄目だね。
197
(1): (ワッチョイ 715f-SGwy) 2023/03/15(水)13:35 ID:jUGp7X9a0(1)調 AAS
Rust製の高速なwebpack互換バンドラ「Rspack」登場。現時点で5倍から10倍の性能向上
https://www.publickey1.jp/blog/23/rustwebpackrspack510.html

> Rust製の高速なバンドラとしては、webpackの主要な開発者がNext.jsに入社してwebpackの後継として開発している「Turbopack」もあります。
> 現時点ではまだwebpackが抜きん出た人気を得ていますが、現時点で主要な開発者が抜けてしまったwebpack後継の座を狙った競争が始まったといえそうです。
198: (ワッチョイ 4d23-/phF) 2023/03/26(日)17:12 ID:EfkiJTmm0(1)調 AAS
>>197
ちょっとスレチ気味だけれど
Turbopack(新調で700倍高速) vs Rspack(互換性維持で5~10倍高速)
webpackからの乗り換えはしばらく様子見
199: (ワッチョイ e510-t3VU) 2023/03/27(月)08:53 ID:ZY+RQ7940(1)調 AAS
一度普及したソフトの作者自身が後継プロジェクトを立ち上げてもなぜかうまくいかない法則
200
(1): (ワッチョイ 9901-3uzD) 2023/03/27(月)09:40 ID:AuSpH/AF0(1)調 AAS
Rust遅くね?
201
(1): (ワンミングク MM92-WVM1) 2023/03/27(月)10:40 ID:jab4un3HM(1)調 AAS
速度遅くてもウケたプロダクトの動作速度上げたところで
現行をリプレイスする理由にならないからな
それにRustがいかに速かろうと今の時代ネックはIOである可能性が高いし
202: (ワッチョイ ed9c-dC9y) 2023/03/27(月)12:01 ID:eSvQrfce0(1)調 AAS
>>200
詳しく見ていないけど、ロジックにボトルネックがあるのかもね。
203: (ワッチョイ c6da-/i8d) 2023/03/27(月)16:02 ID:IjV2Ctjk0(1)調 AAS
10倍のオーダーで速度差出るなら性能がリプレース理由になる場合も増えると思うよ
数分かかる処理が数秒で終わると快適さが全然違うだろうし
204: (ワッチョイ 453e-wSlO) 2023/03/27(月)16:27 ID:Fq2x4U//0(1)調 AAS
>>201
どうせ IO がネックだからってのは昔から言われてることだけど
クラウドサービスを前提にすると事情が違うと聞いたことがある。

レスポンスタイムにあまり差が無かったとしても課金は演算量 (CPU の使用量) に対して
だからなるべく効率的に実行できる言語を使ったほうが安く上がるんだとさ。
205: (アウアウウー Saa5-jS6D) 2023/03/27(月)23:41 ID:t8oeSgw5a(1)調 AAS
Ruby on Rails 6 では、webpack が標準だったけど、
Rails 7 では、Import Maps で、CDN から直接インポートするように変わった。
脱webpack/node.js

ES2015 に対応していないブラウザ用に、バンドルする方法もある。
バンドラーは、esbuild, rollup, webpackの3つ
206: (ワッチョイ a75f-iKPJ) 2023/04/17(月)10:02 ID:Dh5lk+HW0(1)調 AAS
ドキュメントコメントを reStructuredText で書きたい
207: (ワッチョイ a95f-mr0i) 2023/04/24(月)12:17 ID:LQT8UQ2a0(1)調 AAS
let-else の else ブロックの中だけ rustfmt 効かなくて設定間違えたかと思ったら
フツーに未対応だった
https://github.com/rust-lang/rustfmt/issues/4914
208: (ブーイモ MM8e-sjlm) 2023/04/24(月)18:39 ID:75I/tfQdM(1)調 AAS
let-elseは鬼っ子だから
改行位置決めるのも大変
209: (オイコラミネオ MMb5-+3Ti) 2023/04/24(月)18:43 ID:3hT7+QpVM(1/3)調 AAS
横から済みませんがが、
Rust で Vec に要素を追加した場合にメモリー不足になったかどうかを検出
するのはどうしたらよいんでしたっけ?
210
(1): (ブーイモ MM8e-sjlm) 2023/04/24(月)18:47 ID:fDr9n68aM(1)調 AAS
try_reserve
211
(1): (オイコラミネオ MMb5-+3Ti) 2023/04/24(月)18:53 ID:3hT7+QpVM(2/3)調 AAS
>>210
それは予め領域を確保しておく関数で、確保できなかった場合には、
Result<(), TryReserveError>
という戻り値を返す関数と言うことですか?
そして、関数呼び出しの直後に ? を書くと、エラー発生時にそこで
アプリをダウンさせると言うことですか?
212: (オイコラミネオ MMb5-+3Ti) 2023/04/24(月)19:00 ID:3hT7+QpVM(3/3)調 AAS
>>211
事故レスですが、? 演算子は、x ? と書くと、x の値が Err(y) だったら、
return Err(From::from(y)),
というような動作をする関数のようですね。
213: (ブーイモ MM0a-sjlm) 2023/04/24(月)19:01 ID:ELtZniCQM(1)調 AAS
いろいろ違う
落としたいならpanicさせとけばいい
214
(1): (ワッチョイ 1eda-2ihv) 2023/04/25(火)00:44 ID:hB6+7TeQ0(1/2)調 AAS
メモリ不足を検出した場合に何をしたいかで適切な対応は変わってくるけど、何をしたいの?
215
(1): (オイコラミネオ MMb5-+3Ti) 2023/04/25(火)01:46 ID:ICFLZD9/M(1/2)調 AAS
>>214
メモリー不足の時にメモリー不足である旨のエラーメッセージを出して、
なんらかの自作の処理コードを動かしたいです。
216: (オイコラミネオ MMb5-+3Ti) 2023/04/25(火)01:47 ID:ICFLZD9/M(2/2)調 AAS
>>215
なお、Vecに追加する動作を行なった関数の中で処理をしたいです。
217: (ワッチョイ a95f-U0+R) 2023/04/25(火)07:31 ID:S/F8mIrU0(1)調 AAS
重要:
メモリ不足だからと言ってmallocが失敗するとは限らない
218: (ワッチョイ 2a3e-ASru) 2023/04/25(火)09:38 ID:ug7UW9j70(1)調 AAS
今の Linux カーネルだとアプリケーションからオーバーコミットを無効にすることは出来るようになってるぞ。
219: (ワッチョイ 1eda-2ihv) 2023/04/25(火)10:43 ID:hB6+7TeQ0(2/2)調 AAS
try_reserveの戻り値がErrだったら処理を実行するだけだよ
この説明で分からないならenumやResult型について勉強した方が良いよ

あとtry_reserveの失敗要因はメモリ不足だけじゃないけど、エラー種別はnightlyじゃないと取得できないみたいね
220
(1): (ワッチョイ 375f-k3Rv) 2023/04/29(土)19:47 ID:OSQfAzE+0(1)調 AAS
RefMut <-> Ref にも Rc <-> Weak みたいな相互変換メソッドがあればいいのに
221
(1): (ワッチョイ bfda-qKNM) 2023/04/30(日)04:06 ID:5bTJo9fJ0(1)調 AAS
>>220
RefCell自体を取り回して必要なところで都度RefやRefMutを作れば良いのでは
222
(1): (ワッチョイ 375f-k3Rv) 2023/04/30(日)11:51 ID:cNEEfLAb0(1)調 AAS
>>221
実際今はそれでやってて、別に問題になるほどじゃないんが、ちょっと無駄だよなあと
Ref/RefMutってあんまりあちこち取り回す用にできてないよね
223: (アウアウウー Sa1b-qKNM) 2023/04/30(日)13:58 ID:ZqZbVcjya(1)調 AAS
>>222
RefやRefMutはMutexのGuardみたいなもんなんだから取り回す範囲は極力狭くするべきなんじゃね
224: (ワッチョイ 375f-k3Rv) 2023/05/03(水)20:42 ID:CZOik0F40(1)調 AAS
Rustにもこんなのあるんか……ええな
https://zenn.dev/kk/articles/20230213_creusot_intro
225: (ワッチョイ 335f-awLq) 2023/05/19(金)17:46 ID:vnYwlZ+00(1)調 AAS
Rust for Linux updates! More pin-init and refactoring! - YouTube
https://www.youtube.com/watch?v=jAanHvcuYtA
226: (ワッチョイ 7b5f-e8Lq) 2023/06/02(金)02:43 ID:w12tfZkT0(1)調 AAS
The RustConf Keynote Fiasco, explained
https://fasterthanli.me/articles/the-rustconf-keynote-fiasco-explained

一連の事件は結局不幸な伝言ゲームの結果だったということだろうか
227: (ワッチョイ 7d5f-vCKA) 2023/06/04(日)13:53 ID:xOmzDhxR0(1)調 AAS
以前からCodeLLDBでたまに値がちゃんと表示されないことがあるなーと思ってたら再帰型が原因だったんですね
今ほとんど再帰でできてる部分触ってるせいで困ってる……
dbg!書けばいいだけではあるんだけど泥臭くて嫌だわね
https://github.com/vadimcn/codelldb/issues/605
228: (ワッチョイ d336-IjPS) 2023/07/29(土)22:43 ID:nwVMjVJQ0(1)調 AAS
いつのまにかrust-specがマージされてる。まだ作業終わってないけど。
https://github.com/rust-lang/rfcs/pull/3355
https://github.com/rust-lang/rust/issues/113527
rustにもようやく仕様が。
229: (ワッチョイ eada-0btC) 2023/07/30(日)17:17 ID:9Mwyt07S0(1)調 AAS
これから編集者雇うみたいだからまだまだ時間は掛かりそうだけど、前進だね
230: (ワッチョイ 0f5f-4nYy) 2023/08/10(木)03:13 ID:cXfKj1l90(1)調 AAS
Hugging FaceがPyTorch的なRust製フレームワークを作り始めたらしい
https://github.com/huggingface/candle
231
(1): (ワッチョイ 275f-orer) 2023/08/16(水)18:13 ID:Wd6XOYTc0(1)調 AAS
>> 2chスレ:tech

rustupを使わないクロスコンパイル環境の構築方法あるらしいよ
https://users.rust-lang.org/t/how-to-add-cross-compile-target-for-offline-system-without-rustup/80811/4

大人しくrustup使っておけよとしか思わんが一応……
232: (ワッチョイ bb36-3sKl) 2023/08/16(水)19:50 ID:e6GDzmE20(1)調 AAS
githubにrustupのソースコードあるから読めばいいよ。
233: (ワッチョイ 8b01-1ZN1) 2023/08/16(水)23:13 ID:1NDN9ysp0(1)調 AAS
>>231
サンキュ。試してみます
234: (ワッチョイ f9a9-75c1) 2023/08/22(火)03:24 ID:Fec2bVY90(1)調 AAS
おおきに、感謝やで!
235: (ワッチョイ d95f-GBSa) 2023/08/30(水)12:04 ID:LqLNxSZ40(1)調 AAS
Debugを上位トレイトに持たないトレイトのオブジェクトをなんとかしてdbg!する方法は無いもんじゃろか
236: (ワッチョイ 3536-8/Q7) 2023/08/30(水)15:40 ID:lfrnRSB90(1)調 AAS
ない。基本的なトレイトを実装してないのはバグ。
237: (ワッチョイ 4ada-0cXD) 2023/08/30(水)20:29 ID:y+HDByBG0(1/2)調 AAS
参照をポインタにしてアドレスを表示してみるとか
238: (ワッチョイ 4ada-0cXD) 2023/08/30(水)20:30 ID:y+HDByBG0(2/2)調 AAS
構造体フィールドの中身を知りたいという事ならAnyを継承させてダウンキャストするかDebugを継承したtraitにするしかないね
239: (ワッチョイ b3bc-yE7J) 2023/09/12(火)06:34 ID:8vWycgZc0(1)調 AAS
アノ店、今日は休みやねんな
240: (ワッチョイ 0f36-8z3m) 2023/09/21(木)01:15 ID:d9SQw4Jt0(1)調 AAS
intellij rustからRustRoverギリギリ燃えてないな。プラグインもIDEAもバグが増えたのが懸念とか言われてるけど。
241
(1): (ワッチョイ 0f01-w8tn) 2023/09/21(木)23:43 ID:2whQHU6y0(1)調 AAS
RustのコンパイルターゲットはTierで分けられているけど
x86_64-pc-windows-msvc ←Tier1
x86_64-unknown-none ←Tier2
この違いって何?
Tier1の条件を見るとすべてのテストに合格すること的な事が書いてあるしプラットフォームが不明の状態でそれは不可能はなず
組み込み向けなどの低レイヤー用途を想定したターゲットにTier1のものはなくすべてTier2以下になっている
もしこれが理由なら自分が書いたコードはTier1と同レベルに翻訳される(実行できなかったり実行結果が不正なコードは生成されない)事が
期待できるけどそう考えて問題ないのだろうか
242
(1): (ワッチョイ 3fda-n7kY) 2023/09/22(金)01:00 ID:J+8eUZUM0(1)調 AAS
>>241
x86_64なら現実的にはほぼ動くとは思う
ただ、あくまでもrust側ではコンパイルが通ることしか確認してなくて、生成されたコードが正しく動作するかは未確認の状態
利用者側が動作確認をきちんとやる必要があるよ
243: (ワッチョイ 0f01-w8tn) 2023/09/22(金)02:06 ID:/khf3L7K0(1/3)調 AAS
>>242
例えばベアメタル開発用などでOSとインターフェイスしないコードのみほしい場合
x86_64-pc-windows-msvc(x86_64-unknown-linux-gnuとかでも可)でスタティックリンクのライブラリとしてビルドしてカスタムリンク
x86_64-unknown-noneでビルド
の二択だと出力物の信頼性はどちらの方が高いのだろうか。どちらも適切なローダーを用意すれば動作するはず
特に低レイヤーの開発で翻訳不良があるとトラブルシュートが沼りやすいし、前者の方が有利なら
ゴミが付いたりビルドが複雑化するなどのデメリットを考慮しても検討する価値があるはず
244: (ワッチョイ 0f36-8z3m) 2023/09/22(金)04:58 ID:B04DzdQA0(1)調 AAS
より正確には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) 2023/09/22(金)23:10 ID:/khf3L7K0(2/3)調 AAS
x86_64-unknown-noneが吐くコードをどのくらい信用して良いのかって話ね
Tier2=十分にテストされていない=不正命令例外を吐いたり意図しない演算結果になる可能性がある
とかだと開発に重大な影響が出るし勘弁してほしい。Tier1のターゲットならそんな可能性は無視できるはずだし
246: (ワッチョイ 0ff8-fp56) 2023/09/22(金)23:26 ID:wn++FXk10(1)調 AAS
テスト云々はlibstdが主なんでは?
そもそもコード生成するのはLLVMなんだし機械語レベルじゃRust側のTierは関係ない気がする
247: (ワッチョイ 0f01-w8tn) 2023/09/22(金)23:47 ID:/khf3L7K0(3/3)調 AAS
x86_64-unknown-noneがTier2の理由がstdのテストができないからならそれでいいんだけどね
Platform Supportを見ても
>x86_64-unknown-none * Freestanding/bare-metal x86_64, softfloat
としか書いていない。hardfloatが使えない?のはよくわからないが
248: (ワッチョイ 0336-3hLy) 2023/09/23(土)01:27 ID:JOYgBSwC0(1)調 AAS
Tierはrustcのコードベースがビルドできるかどうかの保証であって吐くバイナリの質の保証じゃない。
そもそもrustcはフロントエンドだからどういうバイナリ吐くかは無関係。
tier 1/2の違いは自動テストが常に実行されるかどうかの違いだけ。

全部Platform Supportに書いてあるからこの説明でわからんならどこが理解できないのか言ってくれ。
249: (ワッチョイ 5301-3pIy) 2023/09/24(日)21:37 ID:JmCRMtY30(1)調 AAS
Tier表記がアテにならないならコードの質を比較するにはどうしたらいいんだろ
x86_64とavrが同じ品質、同じ最適化レベルなわけないよな
250: (ワッチョイ 0ada-sj2L) 2023/09/25(月)08:27 ID:gOdfC5Fq0(1)調 AAS
rustに限らずコンパイラの生成コードの品質はアセンブリ見て判断するしかないんじゃね
LLVM IRもプラットフォームごとに差があるのかね?
251: (ワッチョイ dd5f-ZTan) 2023/11/08(水)11:25 ID:QNjJKK3y0(1)調 AAS
Rust製ブラウザエンジンの「Servo」、アプリに組み込み可能なクロスプラットフォーム対応WebView化を目指す。Electron代替を目指す「Tauri」への組み込み実現へ - Publickey
https://www.publickey1.jp/blog/23/rustservowebviewelectrontauri.html

期待
252: (ワッチョイ 9f5f-Lcu7) 2023/11/13(月)11:53 ID:k6bqA1Ku0(1)調 AAS
https://rust-lang.github.io/rfcs/3192-dyno.html

気づいたらポシャっててstd-1.73.0からProvider/Demandも消えてた
やっぱりRTTIとかそういうのはあんまり乗り気じゃないのかな??
253
(1): (ワッチョイ e3f0-Krj3) 2023/12/28(木)17:26 ID:WYblPX1w0(1/2)調 AAS
RubyのYJITって仕組みはRustで実装されてるんだな
ソース見てビビった
254: (ワッチョイ 6397-cIbC) 2023/12/28(木)19:28 ID:13cJB/jM0(1)調 AAS
>>253
へぇ、Node.jsもあちこちが遅いからと
ちょこちょこ便利ライブラリの中身がRustに置き換わり始めてるし
今後こういう流れは加速しそうだな
255: (ワッチョイ ff3e-XnzH) 2023/12/28(木)21:34 ID:x05ZB4jI0(1)調 AAS
遅い部分を Rust でなおそうというよりは、
Rust へ置き換わる流れに乗るついでに駄目なところをそろそろなんとかしようぜという感じじゃないかな。
イマイチなのがわかっててもちゃんと動いてるなら何かきっかけがないと重い腰が上がらないのはよくあること。
1-
あと 47 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.028s