[表示 : 全て 最新50 1-99 101- 201- 301- 2ch.scのread.cgiへ]
Update time : 09/03 20:58 / Filesize : 75 KB / Number-of Response : 305
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミング言語 Rust 4【ワッチョイ】



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

153 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 02:21:52.91 ID:hOXxhpxn0.net]
いやじゃ、いやじゃ、Eclipseなんぞ使いとうない

154 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 03:02:12.97 ID:T78MqQu/0.net]
みんなどんな環境で書いてるの?今はvscode使ってるんだけどrlsがあまりに不安定すぎてストレスが…

155 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 06:22:17.39 ID:3lsiwbVs0.net]
vscodeだよ
racerも不安定だったような

156 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 09:29:47.37 ID:61/yGhxs0.net]
emacs + flycheck
racerは重すぎるんでOFFにしてる

157 名前:デフォルトの名無しさん [2018/07/01(日) 15:40:20.37 ID:ep584YMHF.net]
秀丸

158 名前:デフォルトの名無しさん [2018/07/01(日) 18:12:28.40 ID:VIP13YQk0.net]
禿丸ってなに?

159 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 19:19:06.36 ID:3lsiwbVs0.net]
こっちまでネタスレかよ

160 名前:デフォルトの名無しさん [2018/07/03(火) 18:54:31.94 ID:A246qspJM.net]
https://i.imgur.com/VVJNac4.jpg

161 名前:デフォルトの名無しさん [2018/07/04(水) 21:50:46.22 ID:gFgZc5FG0.net]
5PW



162 名前:デフォルトの名無しさん [2018/07/05(木) 00:59:18.40 ID:lJi2a9VDM.net]
おーい、hgmr

163 名前:デフォルトの名無しさん mailto:sage [2018/07/28(土) 09:13:36.59 ID:pjkfXvHGM.net]
hnmr王子〜♪

164 名前:デフォルトの名無しさん [2018/07/29(日) 02:13:01.57 ID:QHCaZ13N0.net]
まさか繋いでくれる人がいるとは思わなかった

165 名前:デフォルトの名無しさん mailto:sage [2018/07/31(火) 16:45:34.48 ID:0aJU5h1JM.net]
花村てなんや
オーバーウォッチか

166 名前:デフォルトの名無しさん mailto:sage [2018/08/05(日) 20:37:41.10 ID:XPCi/u53M.net]
王子に対し無礼であろう!
https://www.nhk.or.jp/archives/sp/search/special/detail/?d=youth007

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で実装されてるんだな
ソース見てビビった






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<75KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef