Analyzer安定化完了: NYASH_DISABLE_PLUGINS=1復元 + plugin無効化根治

## 修正内容
1. **hako_check.sh/run_tests.sh**: NYASH_DISABLE_PLUGINS=1 + NYASH_BOX_FACTORY_POLICY=builtin_first追加
2. **src/box_factory/plugin.rs**: NYASH_DISABLE_PLUGINS=1チェック追加
3. **src/box_factory/mod.rs**: plugin shortcut pathでNYASH_DISABLE_PLUGINS尊重
4. **tools/hako_check/render/graphviz.hako**: smart quotes修正(parse error解消)

## 根本原因
- NYASH_USE_PLUGIN_BUILTINS=1が自動設定され、ArrayBox/MapBoxがplugin経由で生成を試行
- bid/registry.rsで"Plugin loading temporarily disabled"の状態でも試行されエラー
- mod.rs:272のshortcut pathがNYASH_DISABLE_PLUGINSを無視していた

## テスト結果
- 10/11 PASS(HC011,13-18,21-22,31)
- HC012: 既存issue(JSON安定化未完)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
nyash-codex
2025-11-08 15:49:25 +09:00
parent cef820596f
commit 772149c86d
26 changed files with 508 additions and 62 deletions

View File

@ -40,6 +40,20 @@ NYASH_DISABLE_PLUGINS = "1"
- NYASH_AWAIT_MAX_MS: await の最大待機ミリ秒(既定 5000
- (今後)タスク/スケジューラ関連の変数は `runtime.*` 名で集約予定
## CLI Script Args改行・特殊文字の安全輸送
- NYASH_SCRIPT_ARGS_JSON: `--` 以降のスクリプト引数JSON配列。標準経路。
- NYASH_SCRIPT_ARGS_HEX_JSON: 上記のHEX版各要素をUTF8→16進文字列化。VMは HEX→JSON→ARGV の順で復元を試みる。
- NYASH_ARGV: 互換目的のJSON配列最終フォールバック
メモ: 改行・特殊文字を含む長文を `--source-file <path> <text>` で渡す場合も HEX 経路で安全に輸送される。
## FileBox Providerコア/プラグイン切替)
- NYASH_FILEBOX_MODE: `auto|core-ro|plugin-only`
- auto既定: プラグインがあれば PluginFileIo、無ければ CoreRoFileIo
- core-ro: 常にコアの readonly 実装を使用Analyzer/CI 向け)
- plugin-only: プラグイン必須(無ければ FailFast
- NYASH_DISABLE_PLUGINS / HAKO_DISABLE_PLUGINS: `1` でプラグイン無効(結果として corero 相当)
## LLVM/AOT
- NYASH_LLVM_FEATURE: LLVM機能選択"llvm"(default) または "llvm-inkwell-legacy"
- LLVM_SYS_180_PREFIX: LLVM 18 のパス指定llvm-inkwell-legacy使用時のみ必要