23 lines
1.0 KiB
Markdown
23 lines
1.0 KiB
Markdown
|
|
# LAYER GUARD — lang/src
|
|||
|
|
|
|||
|
|
責務
|
|||
|
|
- 言語側(自己ホスト)の箱・共通部品を配置する領域。
|
|||
|
|
- Rust エンジン層(engine/)への直接依存は禁止。Box 経由・公開 ABI のみ利用可。
|
|||
|
|
|
|||
|
|
禁止事項
|
|||
|
|
- engine/runtime への直接参照(相互依存の発生)
|
|||
|
|
- 外部 I/O や OS 依存(テストしにくい副作用)
|
|||
|
|
|
|||
|
|
許可事項
|
|||
|
|
- selfhost/shared の段階移行(まずは `shared/` から)
|
|||
|
|
- selfhost/vm や selfhost/compiler の段階移行(計画中)
|
|||
|
|
|
|||
|
|
Surface Policy(重要)
|
|||
|
|
- 禁止: lang/src 配下で `using "selfhost/..."` の直接参照。
|
|||
|
|
- 許可: lang/src の等価箱(ミラー)を参照すること。必要に応じて `hako_module.toml` でモジュール名エイリアスを定義。
|
|||
|
|
- 運用: 移行中はCIチェックで検出。段階的に WARN→FAIL へ昇格する。
|
|||
|
|
|
|||
|
|
運用
|
|||
|
|
- しばらくは selfhost/ と lang/src/ が共存(ミラー配置)。
|
|||
|
|
- 参照更新は小バッチで実施し、スモークで形状と出力を固定。
|