# nyash.toml — Configuration Reference (Phase 15.5) Status: Proposed(受け口から段階導入。未指定時は現行既定を維持) ## 目的 - 依存関係・実行方針の**唯一の真実(SSOT)**。 - using の解決(AST プレリュード)と、将来の Provider/Type 分離(受け口)を一元管理。 ## セクション一覧 ### [env] 任意の既定環境変数(`NYASH_*`)。CI/ローカルで上書き可。 ### [using] 検索ルート `paths = ["apps","lib","."]`、名前付きパッケージ `[using.]`、エイリアス `[using.aliases]`。 例: ```toml [using] paths = ["apps", "lib", "."] [using.json_native] path = "apps/lib/json_native/" main = "parser/parser.hako" [using.string_utils] path = "apps/lib/json_native/utils/string.hako" [using.aliases] json = "json_native" StringUtils = "string_utils" ``` ### Provider/Type(受け口・既定OFF) Stable Type Name(STN)を Provider ID(PVN)にマッピング。未指定時は現行ランタイム既定。 ```toml [types.StringBox] provider = "kernel:string@1.0" interop = "forbid" # forbid|explicit|auto(既定: forbid) [providers."kernel:string@1.0"] crate = "nyash-plugin-base-string" # 静的リンクのブートストラップ提供者 [providers."acme:string@2.1"] path = "./plugins/libacme_string.so" override = true [policy] factory = "plugin-first" # plugin-first|compat_plugin_first|static_only ``` 注意: - 本仕様は「受け口」の段階。実行挙動は段階導入(Verify→Lock→実行)。 - 互換性重視のため、未指定時は現行と同じ既定にフォールバックする。 ### [plugins.bootstrap] / [plugins.dynamic](提案) 静的リンクのブートストラップ束/動的ロード(開発)を明示。 ```toml [plugins.bootstrap] string = { crate = "nyash-plugin-base-string", version = "2.3.0" } integer = { crate = "nyash-plugin-base-integer", version = "1.5.1" } [plugins.dynamic] # string = { path = "./plugins/libnyash_string_plugin.so", override = true } ``` ## Profiles(using / AST) `NYASH_USING_PROFILE={dev|ci|prod}` - dev/ci: AST プレリュード既定ON(file-usingはdevで許可、ciは警告/限定) - prod: AST 既定OFF(toml 由来のみ、file-using はエラー) 実装ノート: - AST 既定は `src/config/env.rs: using_ast_enabled()` でプロファイルに従い決定。 - 既存のレガシー前置きは prod で禁止、dev/ci でも段階的に削除予定。 ## Verify(plugin-tester) CI/起動前に最低限の契約を検査(例: String の `birth/fini/toUtf8/fromUtf8/equals/length/concat`)。欠落時は即停止。 ## 参考 - Kernel/Plugin 方針: docs/reference/runtime/kernel-and-plugins.md - ADR: docs/development/adr/adr-001-no-corebox-everything-is-plugin.md