From dd314a0a72fd72043967192f4fdc292bdf3bbc29 Mon Sep 17 00:00:00 2001 From: nyash-codex Date: Thu, 4 Dec 2025 19:15:37 +0900 Subject: [PATCH] feat(hako_check): Improve usability with debug output filtering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1 実装: デバッグ出力ノイズを除去して、実際の lint 結果を見やすく 改善内容: 1. デバッグ出力の自動フィルタリング (デフォルト有効) - [DEBUG/...] 系の出力を全て除去 - [ControlForm::...] 制御フロー出力を除去 - [BUILDER] MIR ビルダー出力を除去 - [rule/exec] ルール実行出力を除去 2. 環境変数サポート追加 - HAKO_CHECK_DEBUG=1 で詳細デバッグ出力有効化 - HAKO_CHECK_VERBOSE=1 で詳細モード有効化(将来実装予定) 3. 実際の エラーメッセージが明確に見える - 修正前: 大量の [DEBUG] 出力に埋もれて見えない - 修正後: [ERROR] メッセージが直接見える 実行例: ```bash # デフォルト: クリーンな出力 ./tools/hako_check.sh file.hako [ERROR] ❌ MIR compilation error: Undefined variable: void [lint/summary] failures: 1 # デバッグモード: 詳細情報表示 HAKO_CHECK_DEBUG=1 ./tools/hako_check.sh file.hako [DEBUG/build_block] Processing 3 statements [ControlForm::Loop] entry=BasicBlockId(2) ... ``` 次のステップ (Phase 2, 3): - Rust 側のデバッグ出力環境変数制御化 - エラーメッセージの構造化とヒント表示 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- tools/hako_check.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/hako_check.sh b/tools/hako_check.sh index 03acd87a..ce939b39 100644 --- a/tools/hako_check.sh +++ b/tools/hako_check.sh @@ -78,10 +78,18 @@ run_one() { HAKO_ENABLE_USING=1 \ NYASH_USING_AST=1 \ NYASH_NY_COMPILER_TIMEOUT_MS="${NYASH_NY_COMPILER_TIMEOUT_MS:-8000}" \ + HAKO_CHECK_DEBUG="${HAKO_CHECK_DEBUG:-0}" \ + HAKO_CHECK_VERBOSE="${HAKO_CHECK_VERBOSE:-0}" \ "$BIN" --backend vm "$ROOT/tools/hako_check/cli.hako" -- "${args_arr[@]}" --format "$FORMAT" $EXTRA_ARGS \ >"/tmp/hako_lint_out_$$.log" 2>&1 || true local out rc out="$(cat "/tmp/hako_lint_out_$$.log")"; rc=0 + + # Phase 1: Filter out debug noise unless HAKO_CHECK_DEBUG=1 + if [ "${HAKO_CHECK_DEBUG:-0}" != "1" ]; then + out="$(echo "$out" | grep -v '^\[DEBUG' | grep -v '^\[ControlForm::' | grep -v '^\[BUILDER\]' | grep -v '^\[rule/exec\]')" + fi + # Extract RC if echo "$out" | grep -q '^RC: '; then rc="$(echo "$out" | sed -n 's/^RC: //p' | tail -n1)"