X



プログラミング言語 Rust 4【ワッチョイ】
0001デフォルトの名無しさん (ワッチョイ 83b3-KDL3)
垢版 |
2017/12/24(日) 18:27:01.98ID:EGydBhQv0
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
0211デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti)
垢版 |
2023/04/24(月) 18:53:28.63ID:3hT7+QpVM
>>210
それは予め領域を確保しておく関数で、確保できなかった場合には、
Result<(), TryReserveError>
という戻り値を返す関数と言うことですか?
そして、関数呼び出しの直後に ? を書くと、エラー発生時にそこで
アプリをダウンさせると言うことですか?
0213デフォルトの名無しさん (ブーイモ MM0a-sjlm)
垢版 |
2023/04/24(月) 19:01:30.05ID:ELtZniCQM
いろいろ違う
落としたいならpanicさせとけばいい
0219デフォルトの名無しさん (ワッチョイ 1eda-2ihv)
垢版 |
2023/04/25(火) 10:43:39.39ID:hB6+7TeQ0
try_reserveの戻り値がErrだったら処理を実行するだけだよ
この説明で分からないならenumやResult型について勉強した方が良いよ

あとtry_reserveの失敗要因はメモリ不足だけじゃないけど、エラー種別はnightlyじゃないと取得できないみたいね
0228デフォルトの名無しさん (ワッチョイ d336-IjPS)
垢版 |
2023/07/29(土) 22:43:04.08ID:nwVMjVJQ0
いつのまにかrust-specがマージされてる。まだ作業終わってないけど。
ttps://github.com/rust-lang/rfcs/pull/3355
ttps://github.com/rust-lang/rust/issues/113527
rustにもようやく仕様が。
0241デフォルトの名無しさん (ワッチョイ 0f01-w8tn)
垢版 |
2023/09/21(木) 23:43:40.50ID:2whQHU6y0
RustのコンパイルターゲットはTierで分けられているけど
x86_64-pc-windows-msvc ←Tier1
x86_64-unknown-none ←Tier2
この違いって何?
Tier1の条件を見るとすべてのテストに合格すること的な事が書いてあるしプラットフォームが不明の状態でそれは不可能はなず
組み込み向けなどの低レイヤー用途を想定したターゲットにTier1のものはなくすべてTier2以下になっている
もしこれが理由なら自分が書いたコードはTier1と同レベルに翻訳される(実行できなかったり実行結果が不正なコードは生成されない)事が
期待できるけどそう考えて問題ないのだろうか
0242デフォルトの名無しさん (ワッチョイ 3fda-n7kY)
垢版 |
2023/09/22(金) 01:00:34.44ID:J+8eUZUM0
>>241
x86_64なら現実的にはほぼ動くとは思う
ただ、あくまでもrust側ではコンパイルが通ることしか確認してなくて、生成されたコードが正しく動作するかは未確認の状態
利用者側が動作確認をきちんとやる必要があるよ
0243デフォルトの名無しさん (ワッチョイ 0f01-w8tn)
垢版 |
2023/09/22(金) 02:06:03.04ID:/khf3L7K0
>>242
例えばベアメタル開発用などでOSとインターフェイスしないコードのみほしい場合
x86_64-pc-windows-msvc(x86_64-unknown-linux-gnuとかでも可)でスタティックリンクのライブラリとしてビルドしてカスタムリンク
x86_64-unknown-noneでビルド
の二択だと出力物の信頼性はどちらの方が高いのだろうか。どちらも適切なローダーを用意すれば動作するはず
特に低レイヤーの開発で翻訳不良があるとトラブルシュートが沼りやすいし、前者の方が有利なら
ゴミが付いたりビルドが複雑化するなどのデメリットを考慮しても検討する価値があるはず
0244デフォルトの名無しさん (ワッチョイ 0f36-8z3m)
垢版 |
2023/09/22(金) 04:58:40.40ID:B04DzdQA0
より正確には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。
0245デフォルトの名無しさん (ワッチョイ 0f01-w8tn)
垢版 |
2023/09/22(金) 23:10:21.93ID:/khf3L7K0
x86_64-unknown-noneが吐くコードをどのくらい信用して良いのかって話ね
Tier2=十分にテストされていない=不正命令例外を吐いたり意図しない演算結果になる可能性がある
とかだと開発に重大な影響が出るし勘弁してほしい。Tier1のターゲットならそんな可能性は無視できるはずだし
0247デフォルトの名無しさん (ワッチョイ 0f01-w8tn)
垢版 |
2023/09/22(金) 23:47:16.64ID:/khf3L7K0
x86_64-unknown-noneがTier2の理由がstdのテストができないからならそれでいいんだけどね
Platform Supportを見ても
>x86_64-unknown-none * Freestanding/bare-metal x86_64, softfloat
としか書いていない。hardfloatが使えない?のはよくわからないが
0248デフォルトの名無しさん (ワッチョイ 0336-3hLy)
垢版 |
2023/09/23(土) 01:27:48.45ID:JOYgBSwC0
Tierはrustcのコードベースがビルドできるかどうかの保証であって吐くバイナリの質の保証じゃない。
そもそもrustcはフロントエンドだからどういうバイナリ吐くかは無関係。
tier 1/2の違いは自動テストが常に実行されるかどうかの違いだけ。

全部Platform Supportに書いてあるからこの説明でわからんならどこが理解できないのか言ってくれ。
0251デフォルトの名無しさん (ワッチョイ dd5f-ZTan)
垢版 |
2023/11/08(水) 11:25:16.25ID:QNjJKK3y0
Rust製ブラウザエンジンの「Servo」、アプリに組み込み可能なクロスプラットフォーム対応WebView化を目指す。Electron代替を目指す「Tauri」への組み込み実現へ - Publickey
https://www.publickey1.jp/blog/23/rustservowebviewelectrontauri.html

期待
0252デフォルトの名無しさん (ワッチョイ 9f5f-Lcu7)
垢版 |
2023/11/13(月) 11:53:03.89ID:k6bqA1Ku0
https://rust-lang.github.io/rfcs/3192-dyno.html

気づいたらポシャっててstd-1.73.0からProvider/Demandも消えてた
やっぱりRTTIとかそういうのはあんまり乗り気じゃないのかな??
0255デフォルトの名無しさん (ワッチョイ ff3e-XnzH)
垢版 |
2023/12/28(木) 21:34:36.48ID:x05ZB4jI0
遅い部分を Rust でなおそうというよりは、
Rust へ置き換わる流れに乗るついでに駄目なところをそろそろなんとかしようぜという感じじゃないかな。
イマイチなのがわかっててもちゃんと動いてるなら何かきっかけがないと重い腰が上がらないのはよくあること。
0258デフォルトの名無しさん (アウアウウー Saa7-Krj3)
垢版 |
2023/12/29(金) 22:02:28.40ID:iUQmWV32a
YJIT、最初はCで実装されてたがRustに変えたみたい
bindgenでCRuby側のAPIをRust側に持ってきて
それを使いながらJITでマシンコード生成してる
面白すぎる
コードもめちゃくちゃ読みやすいぞ
レスを投稿する


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