[過去ログ] Rust part16 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
770: 2022/09/23(金)18:05 ID:5/jqA4bf(1) AAS
C#も.Netも全く興味ないので知らないが
PythonでもJavaScriptでも何でもRustで作ったライブラリなどを簡単に呼び出すことができる仕組みがそれぞれ整えられている
既存のものの置き換えは無意味だが新たに作られるものはRustで書くことが増えている
771
(1): 2022/09/23(金)21:26 ID:Oi43IjEf(1) AAS
repr(C)でCのフリしたRustじゃなくて、俺はありのままのRustが動いている世界線が見たいよ
772: 2022/09/23(金)21:26 ID:bhLcJIv7(2/2) AAS
>>769
でも、破棄ならコミット後の状態にも戻せるぜ?
773
(1): 2022/09/23(金)21:42 ID:KYVSlV2v(1) AAS
>>771
ABI安定化するまではFFIでextern "C"は避けられないよ
774
(1): 2022/09/23(金)21:53 ID:wlVyCNVq(1) AAS
>>773
そんなことすべきでない
自由にRust コンパイラによる最適化の余地を与える現在の方針がベスト
外部に公開しなきゃいけない時に外部に公開する部分だけを#[repr(C)]や#[wasm_bindgen]など指定すればよい
775: 2022/09/23(金)23:40 ID:EyovOcQI(1) AAS
双方でマーシャル/アンマーシャルが必要になって無駄だよね
776: 2022/09/23(金)23:55 ID:9eaiNZZz(1) AAS
なるほど
777: 2022/09/23(金)23:58 ID:SxK8BSHj(1) AAS
対C/C++はそこまで必要ならそこもRustで書いちゃうから何ら問題はない
他の言語ではそれぞれもっと大きなオーバヘッドを持っているので誤差に収まり問題にならない
778: 2022/09/24(土)00:06 ID:j2XeJCoN(1) AAS
やっぱエアプの複オジはわかってないなぁ
779: 2022/09/24(土)00:11 ID:DaB/WDgt(1/6) AAS
>>774
pubなitemのABIに最適化関係ある?
なんかと混同してない?
780: 2022/09/24(土)00:14 ID:DaB/WDgt(2/6) AAS
もしかして repr(Rust) のこと言ってる?
781
(1): 2022/09/24(土)03:05 ID:ugWjDAH5(1) AAS
Rustだけで閉じていればpubであっても自由に最適化されるからpubかどうかは関係ないでしょう
結局Rustの外に公開する部分だけの話に限られるからそこだけ相手毎に応じる現行の方式のままで構わないでしょう
782
(2): 2022/09/24(土)08:50 ID:pfcr5AFZ(1) AAS
C++やRustはABI決まってないのにC言語は何故ほぼ決まってるの?
783: 2022/09/24(土)09:11 ID:DaB/WDgt(3/6) AAS
>>781
dylibの場合pubは大いに関係あるよ
784: 2022/09/24(土)09:15 ID:WR9fIR0K(1) AAS
ぶっちゃけあらゆるOSがC言語で書かれているあたりCの呪縛から逃れられないよ
785: 2022/09/24(土)09:26 ID:rPP8Qygy(1) AAS
>>782
名前をプログラマが決められるからだよ
786
(1): 2022/09/24(土)09:44 ID:BCuennz9(1) AAS
>>782
むしろCは決まってるの?
決まってるわけじゃなくて単純だし歴史も長いから結果的にほぼ変わらない&その現状に合わせて変わらない変更をしてるだけみたいなことをgccかなんかの中の人の記事で読んだ気がするんだけどデマなんかな
787: はちみつ餃子 ◆8X2XSCHEME 2022/09/24(土)10:38 ID:2HWwrIyG(1/3) AAS
近年になって作られた高速リンカ mold の作者の話でも、
文書化されていない暗黙の仕様に何度もぶつかったみたいなことだったはず。

C 以外の言語 (処理系) もツールチェインは共通のものを使っている場合は結構あるし
どれがどの挙動に依存しているかようわからんので安易に整理するわけにもいかず、
結局のところは C コンパイラとは長年に渡って協調してきたから細かい問題点が
解決されているというだけで、そんなにカッチリした仕様が確立しているわけではないと思う。
788: 2022/09/24(土)11:00 ID:DaB/WDgt(4/6) AAS
CはCPUベンダーが呼び出し規約を文書化してるよ
moldの話はELFやリンクに関連する話では
確かにABIのうちではあるけど言語ごとに異なる仕様になるようなものではないと思う
789
(1): 2022/09/24(土)11:33 ID:FWSMvJVe(1) AAS
AMD64の呼び出し規約をググるだけで2種類くらい出てくるのにコイツは何を言っているんだ?

>>786
呼び出し規約どころか構造体のレイアウトすら実装依存の部分があるよ
790: 2022/09/24(土)13:14 ID:DaB/WDgt(5/6) AAS
>>789
そこでいう実装依存ってプラットフォームごとの差違のこと?
それとも同じプラットフォームでもツールチェイン依存でレイアウトが変わりうる場合があるの?
791
(1): 2022/09/24(土)14:25 ID:PoJJisuz(1/2) AAS
cdeclとかstdcallみたいなやつ?
792
(1): はちみつ餃子 ◆8X2XSCHEME 2022/09/24(土)16:06 ID:2HWwrIyG(2/3) AAS
>>791
その段階ではあまり曖昧さはない。
リンクする前の状態はリンクに必要な情報一式が入ってるはずなんだけど、
その扱いが言語や処理系をまたぐとややこしくなることもあるってこと。
アーキテクチャによって扱いを変える必要がある場合もあるし。
793
(1): 2022/09/24(土)16:24 ID:PoJJisuz(2/2) AAS
>>792
コンパイラがリンカに渡す情報って統一規格があるの?
794: 2022/09/24(土)17:05 ID:7d8zqodE(1) AAS
>>793
別に統一されちゃいないがELFとかPEとか
795
(1): 2022/09/24(土)17:10 ID:GMpouZpq(1/2) AAS
じゃあ、そのオブジェクト・ファイル形式の仕様に問題があるってことでは?
796: はちみつ餃子 ◆8X2XSCHEME 2022/09/24(土)17:36 ID:2HWwrIyG(3/3) AAS
>>795
ELF に置き換わるときにオブジェクトファイルの仕様の曖昧さはほとんど解消されていると思う。
ただ現実には全てが正しく実装されているわけではなく、
場合によっては正しかったほうを間違った側にあわさざるを得ないとかいう場合もある。
仕様がどうこう言ったって、実装が間違っていたって現実にもう動いているものがあるのなら変えられんのよ。
そういう歴史的負債がどんどん積み重なってわけわからんようになる。
797: 2022/09/24(土)19:08 ID:eDCmZTMq(1) AAS
ARMの規約
外部リンク:github.com
798: 2022/09/24(土)22:13 ID:DaB/WDgt(6/6) AAS
元々の他言語からrust呼び出す話ならそのレベルの話は関係ないでしょ
LLVMがよしなにやってくれるのでは
799
(1): 2022/09/24(土)22:29 ID:GMpouZpq(2/2) AAS
ARM64ほどの絶対的パワーは必要ないので、ARM63で価格が120円くらいのチップになりませんかね?
1-
あと 203 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.013s