feat(hako_check): Improve usability with debug output filtering
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 <noreply@anthropic.com>
This commit is contained in:
@ -78,10 +78,18 @@ run_one() {
|
|||||||
HAKO_ENABLE_USING=1 \
|
HAKO_ENABLE_USING=1 \
|
||||||
NYASH_USING_AST=1 \
|
NYASH_USING_AST=1 \
|
||||||
NYASH_NY_COMPILER_TIMEOUT_MS="${NYASH_NY_COMPILER_TIMEOUT_MS:-8000}" \
|
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 \
|
"$BIN" --backend vm "$ROOT/tools/hako_check/cli.hako" -- "${args_arr[@]}" --format "$FORMAT" $EXTRA_ARGS \
|
||||||
>"/tmp/hako_lint_out_$$.log" 2>&1 || true
|
>"/tmp/hako_lint_out_$$.log" 2>&1 || true
|
||||||
local out rc
|
local out rc
|
||||||
out="$(cat "/tmp/hako_lint_out_$$.log")"; rc=0
|
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
|
# Extract RC
|
||||||
if echo "$out" | grep -q '^RC: '; then
|
if echo "$out" | grep -q '^RC: '; then
|
||||||
rc="$(echo "$out" | sed -n 's/^RC: //p' | tail -n1)"
|
rc="$(echo "$out" | sed -n 's/^RC: //p' | tail -n1)"
|
||||||
|
|||||||
Reference in New Issue
Block a user