Home | Notifications | New Note | Local | Federated | Search | Logout
Grey Area@greyarea@mitra.vpclmulqdq.moe
脳を焼かれた独立傭兵
荒事と情報戦
Applied Cryptography/System Programming
You are cordially invited to a night at the opera.
Joined: 2026-03-04 16:06:23
3 notes, 0 following, 0 followers
Reply to @suwako@sns.076.moe
Grey Area@greyarea@mitra.vpclmulqdq.moe (2026-03-04 17:28:52)
@suwako
odin build . -o:minimal -no-bounds-check -disable-assertからodin build . -o:speed -no-bounds-check -disable-assertでもっと減ると思います。
clangやgccに例えれば:
-o:none->-O0
-o:minimal->-O1
-o:speed->-O2(おすすめ)
-o:size->-Os何故デフォルトで古いプロセッサをサポートしないのか理解出来ませんが、回避策があると分かって良かったです。”大半のユーザーが20年前のCPUを使ってないだろう”と、その決断がされたのが関数ごとに使う機能(例えば@(enable_target_feature="avx,avx2"))の設定が実装される前だったからだと思います。
Reply to @greyarea@mitra.vpclmulqdq.moe
Grey Area@greyarea@mitra.vpclmulqdq.moe (2026-03-04 08:01:28)
@suwako但し後で分かったのですが、Odinは静的リンクも出来ます。Linuxだとaisne :: Documents/Development/odin-wycheproof ‹feature/ecdsa*› % odin build . -extra-linker-flags:-static
aisne :: Documents/Development/odin-wycheproof ‹feature/ecdsa*› % ldd odin-wycheproof
not a dynamic executable
Reply to @suwako@sns.076.moe
Grey Area@greyarea@mitra.vpclmulqdq.moe (2026-03-04 07:48:13)
@suwako問題:ドキュメント本も有料だけどあります。(https://odinbook.com/)Core 2 DuoにOdinがない?odin run . -microarch:x86-64かodin run . -microarch:core_2_duo_ssse3. デフォルトはNehalem(SSE4.2)世代になってます。アセンブリはどうなっているか見てみましょう。odin build . -o:speedでマシになります。デフォルトは-o:minimalなのでLLVMのSROAがスキップされます。fmtパッケージはRTTIなどを使うのでかなり重たいです。fmtを使わずにosやsysを使うともっと小さくできます。Odinは只文字を表示するだけで、裏で大量のメモリ確保や操作、エラーチェックをしている様です。コンパイル時に-no-bounds-check,-disable-assertなどがあります。
スコープ事に#no_bounds_checkもできます。但し後で分かったのですが、Odinは静的リンクも出来ます。サポートは現在OS次第です。後コンパイル時間が結構長い事に気づきました。-show-more-timingsでどこで時間を食ってるかが表示されます。大半はLLVMかリンクだと思います。