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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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円くらいのチップになりませんかね?
800: 2022/09/25(日)08:24 ID:j3K9KjV7(1) AAS
Option<NoneZeroUsize>などを使えば
IDやカウンタなどの用途でOption<usize>などを使っていたものを
半分のメモリサイズで済むようになるの?
801: 2022/09/25(日)11:42 ID:sQFmQmse(1) AAS
>>799
任せてください。符号ビット省略しておきますね
802: 2022/09/25(日)15:32 ID:F2Viqk5M(1) AAS
Microsoftがやりそうなことだけど、Rustに独自拡張を含めたりとかしてほしくない
803
(1): 2022/09/25(日)17:24 ID:xalR35FT(1/2) AAS
Linuxはカーネル開発の為に今まさにRustに独自拡張を含ませようとしてるのに
Microsoftはダメなの?
804: 2022/09/25(日)17:34 ID:4B3i10Bx(1) AAS
try_new()とかtry_reserve()とか元々ないのが不思議だったし導入の良いきっかけとなっただけ
805: 2022/09/25(日)17:57 ID:6lgwXJxi(1/3) AAS
言語自体forkして独自のエコシステムを構築しようとしなければ別に良いのでは
806
(1): 2022/09/25(日)18:09 ID:6wI0gbs/(1) AAS
正直LinuxにRustなんて辞めればいいのに・・・
807
(2): 2022/09/25(日)18:14 ID:Td47G6We(1/4) AAS
Rustに限った話じゃないんだけどそれなりに複雑なロジック(例えばデコーダやパーサ)の実践的なテストの
作り方の解説とかどっかにある?例えばJPEGやPNG、MP3、AVIとかを扱うようなコードを想定
関数単体のテストはともかく、結合した状態で全てのコードを動かそうとすると入力パターンがどんどん増えるし
パディングビットにゴミがあっても問題ないかなどを考慮しだすと更に膨れあがる
さらに歴史が長いフォーマットだと、そもそも仕様をどう定義するのかという点が問題になることもあるし
808: 2022/09/25(日)18:21 ID:xalR35FT(2/2) AAS
テストがすごいのはSQLite
809: 2022/09/25(日)19:04 ID:rVqFiGXV(1) AAS
>>803
別に独自拡張とか入れてないだろ
コンパイラへの機能追加は全部本体に入れていてnightlyで使える状態だし
Linuxカーネル向けのallocなんかは単にライブラリであって言語自体がforkしてるわけではない
810
(1): 2022/09/25(日)19:57 ID:6lgwXJxi(2/3) AAS
>>806
なんかまずいことでもあるの?
811
(1): 2022/09/25(日)19:59 ID:Rxhh3DJ9(1) AAS
>>810
迷走と凋落、そして黒歴史化。
812
(1): 2022/09/25(日)20:07 ID:58piYD8Z(1) AAS
>>807
メディアのエンコーディングのことはさっぱりしらんけど、一般的には結合テストじゃなくて、単体テストでパターンは網羅すべし
できるんならやればいいけど、結合テストで入力の網羅なんて普通はやらない
813
(1): 2022/09/25(日)20:26 ID:Td47G6We(2/4) AAS
>>812
条件分岐で関数Aを呼ぶべき所を間違えてA'を呼んでいて出力結果がちょっと変・・・というのをさっきやらかした
関数そのものに問題はないし処理内容がちょっと違うだけなので実行は出来てしまうのがいやらしい
で、テストを作ろうとしたけどどうしようか悩み中
814
(1): 2022/09/25(日)20:37 ID:lhW/fB5K(1) AAS
そういうのは呼び出し側の単体でええんちゃうの
1-
あと 188 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.019s