Files
hakorune/docs/reference/environment-variables.md
nyash-codex 8750186e55 chore: Phase 26-H セッション完了 - 全ドキュメント更新
Phase 26-H 完了内容:
 JoinIR 型定義実装(src/mir/join_ir.rs)
 MIR → JoinIR 自動変換実装(lower_min_loop_to_joinir)
 自動変換テスト実装(mir_joinir_min_auto_lowering)
 PHI/Loop箱 → JoinIR 移行対応表追加(loopform_ssot.md)

ドキュメント更新:
- Phase 27 JoinIR タスク計画追加
- Phase 26-H タスク完了記録
- 各種 README 更新(進捗反映)
- CURRENT_TASK.md 更新

コミット統計: $(git status --short | wc -l) files changed

次のステップ: Phase 27 一般化 MIR → JoinIR 変換
2025-11-23 05:53:27 +09:00

5.7 KiB
Raw Blame History

環境変数リファレンス

Nyashの動作を制御する環境変数の一覧。


MIR Builder検証系

MIRビルダーの動作検証・デバッグ用環境変数。

環境変数 デフォルト 用途 追加Phase
NYASH_ME_CALL_ARITY_STRICT=1 OFF me.method呼び出しのarity不一致でエラー返却 Phase 25.x
NYASH_STATIC_CALL_TRACE=1 OFF Static method呼び出しのトレース出力 Phase 25.x
NYASH_VERIFY_ALLOW_NO_PHI=1 OFF PHI検証スキップ支配・マージ -
NYASH_VERIFY_ALLOW_LEGACY=1 OFF レガシー命令許可 -
NYASH_VERIFY_BARRIER_STRICT=1 OFF Barrier配置厳密チェック -
NYASH_VERIFY_EDGE_COPY_STRICT=1 OFF Edge copy検証 -
NYASH_VERIFY_RET_PURITY=1 OFF Return block純粋性検証 -
NYASH_BREAKFINDER_SSA_TRACE=1 OFF SSA詳細トレースBreakFinderBox等 -

使用例

# Dev環境で厳密検証arity不一致でビルドエラー
NYASH_ME_CALL_ARITY_STRICT=1 cargo test

# トレースのみwarning表示、エラーにはしない
NYASH_STATIC_CALL_TRACE=1 ./target/release/hakorune program.hako

# PHI検証を一時的にスキップ
NYASH_VERIFY_ALLOW_NO_PHI=1 ./target/release/hakorune program.hako

# SSA詳細トレースBreakFinderBox等のデバッグ
NYASH_BREAKFINDER_SSA_TRACE=1 cargo test mir_stage1_using_resolver_verify 2>&1 | grep "breakfinder/ssa"

Stage-1 CLI制御系

Stage-1 CLINyash selfhosting compilerの制御用環境変数。

環境変数 デフォルト 用途 追加Phase
NYASH_USE_STAGE1_CLI=1 OFF Stage-1 CLI有効化 Phase 25.1
STAGE1_CLI_DEBUG=1 OFF Stage-1 CLI詳細ログ Phase 25.1
STAGE1_EMIT_PROGRAM_JSON=1 OFF Program JSON出力モード Phase 25.1
STAGE1_EMIT_MIR_JSON=1 OFF MIR JSON出力モード Phase 25.1
STAGE1_BACKEND={vm|llvm|pyvm} vm 実行バックエンド指定 Phase 25.1
STAGE1_SOURCE=<path> - ソースファイルパス Phase 25.1
STAGE1_SOURCE_TEXT=<text> - ソーステキストinline指定 Phase 25.1
STAGE1_PROGRAM_JSON=<path> - Program JSONパス Phase 25.1

使用例

# Stage-1 CLI経由で.hakoファイルをコンパイル
NYASH_USE_STAGE1_CLI=1 STAGE1_SOURCE=program.hako \
  ./target/release/hakorune lang/src/runner/stage1_cli.hako

# Program JSON生成
STAGE1_EMIT_PROGRAM_JSON=1 STAGE1_SOURCE=program.hako \
  ./target/release/hakorune lang/src/runner/stage1_cli.hako

# デバッグログ付き
STAGE1_CLI_DEBUG=1 NYASH_USE_STAGE1_CLI=1 \
  ./target/release/hakorune program.hako

Parser制御系

パーサーの動作制御用環境変数。

環境変数 デフォルト 用途 追加Phase
NYASH_PARSER_STAGE3=1 OFF Stage-3 parser有効化 Phase 25.3
HAKO_PARSER_STAGE3=1 OFF Stage-3 parser有効化.hako側 Phase 25.3
NYASH_ENABLE_USING=1 OFF using文サポート有効化 Phase 25.1
HAKO_ENABLE_USING=1 OFF using文サポート有効化.hako側 Phase 25.1
HAKO_STAGEB_APPLY_USINGS=1 OFF Stage-B using適用 Phase 25.1

使用例

# using文を使ったプログラムをパース
NYASH_PARSER_STAGE3=1 NYASH_ENABLE_USING=1 \
  ./target/release/hakorune program_with_using.hako

デバッグ・観測系

デバッグ・トレース用環境変数。

環境変数 デフォルト 用途 追加Phase
NYASH_CLI_VERBOSE=1 OFF 詳細診断情報出力 -
NYASH_VM_TRACE=1 OFF VM実行トレース出力 -
NYASH_VM_DUMP_MIR=1 OFF VM実行前MIR出力 -
NYASH_DUMP_JSON_IR=1 OFF JSON IR出力 -
NYASH_STAGE1_MIR_DUMP=1 OFF Stage-1 MIR出力 Phase 25.x
NYASH_STAGE1_SCAN_GE=1 OFF Compare Ge命令スキャン Phase 25.x
NYASH_TO_I64_DEBUG=1 OFF to_i64変換デバッグ Phase 25.x
NYASH_FUNCSCANNER_DEBUG=1 OFF FuncScanner詳細ログ Phase 25.3

使用例

# VM実行トレース
NYASH_VM_TRACE=1 ./target/release/hakorune program.hako 2>&1 | grep "vm-trace"

# MIR確認複数手法
NYASH_VM_DUMP_MIR=1 ./target/release/hakorune program.hako
./target/release/hakorune --dump-mir program.hako
./target/release/hakorune --emit-mir-json debug.json program.hako

# Stage-1 CLI + MIRダンプ
NYASH_STAGE1_MIR_DUMP=1 cargo test mir_stage1_cli_emit_program_min

プラグイン・Box制御系

プラグインとBox factoryの制御用環境変数。

環境変数 デフォルト 用途 追加Phase
NYASH_DISABLE_PLUGINS=1 OFF プラグイン無効化 -
NYASH_BOX_FACTORY_POLICY={builtin_first|plugin_first} builtin_first Box factory優先順位 Phase 15.5
NYASH_FILEBOX_MODE={auto|plugin|builtin} auto FileBox実装選択 Phase 15.5

使用例

# プラグイン無効で実行コアBox経路のみ
NYASH_DISABLE_PLUGINS=1 ./target/release/hakorune program.hako

# Plugin優先でBox生成
NYASH_BOX_FACTORY_POLICY=plugin_first ./target/release/hakorune program.hako

参考