33 lines
1.7 KiB
Markdown
33 lines
1.7 KiB
Markdown
|
|
# Stability Policy (Segfault‑Free Invariant)
|
|||
|
|
|
|||
|
|
本リポジトリの本線は「セグフォしない(Segfault‑Free)」を絶対条件とします。すべての変更は以下のチェックを通った場合のみ採用します。
|
|||
|
|
|
|||
|
|
## 1) Guard ラン(Fail‑Fast)
|
|||
|
|
- 実行: `./scripts/larson.sh guard 2 4`
|
|||
|
|
- 条件: `remote_invalid` / `REMOTE_SENTINEL_TRAP` / `TINY_RING_EVENT_*` の一発ログが出ないこと
|
|||
|
|
- 境界: drain→bind→owner_acquire は「採用境界」1箇所のみ。publish側で drain/owner を触らない
|
|||
|
|
|
|||
|
|
## 2) Sanitizer ラン
|
|||
|
|
- ASan: `./scripts/larson.sh asan 2 4`
|
|||
|
|
- UBSan: `./scripts/larson.sh ubsan 2 4`
|
|||
|
|
- TSan: `./scripts/larson.sh tsan 2 4`
|
|||
|
|
|
|||
|
|
## 3) 本線の定義(デフォルトライン)
|
|||
|
|
- Box Refactor: `HAKMEM_TINY_PHASE6_BOX_REFACTOR=1`(ビルド既定)
|
|||
|
|
- SuperSlab 経路: 既定ON(`g_use_superslab=1`。ENVで明示的に 0 を指定した場合のみOFF)
|
|||
|
|
- 互換切替: 旧経路/A/B は ENV/Make で明示(本線は変えない)
|
|||
|
|
|
|||
|
|
## 4) 変更の入れ方(箱理論)
|
|||
|
|
- 新経路は必ず「箱」で追加し、ENV で切替可能にする
|
|||
|
|
- 変換点(drain/bind/owner)は 1 箇所集約(採用境界)
|
|||
|
|
- 可視化はワンショットログ/リング/カウンタに限定
|
|||
|
|
- Fail‑Fast: 整合性違反は即露出。隠さない
|
|||
|
|
|
|||
|
|
## 5) 既知の安全フック
|
|||
|
|
- Registry 小窓: `HAKMEM_TINY_REG_SCAN_MAX`(探索窓を制限)
|
|||
|
|
- Mid簡素化 refill: `HAKMEM_TINY_MID_REFILL_SIMPLE=1`(class>=4 で多段探索スキップ)
|
|||
|
|
- adopt OFF プロファイル: `scripts/profiles/tinyhot_tput_noadopt.env`
|
|||
|
|
|
|||
|
|
運用では上記 1)→2)→3) の順でチェックを通した後に性能検証を行ってください。
|
|||
|
|
|