|
|
dd314a0a72
|
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>
|
2025-12-04 19:15:37 +09:00 |
|
|
|
c86b6e3baa
|
fix(hako_check): Restore functionality with void-safety guards and option parsing
重大バグを2つ修正して hako_check をセルフホスティングソースで使えるように:
1. cli.hako の VoidBox.get() エラー修正 (最優先)
- HakoAnalysisBuilderBox.build_from_source_flags() が void を返す可能性に対応
- フォールバック処理を追加: null/void チェック → Minimal MapBox 生成
- 134行の null チェックが不十分だった
2. hako_check.sh の引数処理修正 (中優先)
- --dead-code, --rules, --no-ast, --debug オプションをサポート
- 以前は --format のみ処理、他はそのまま sed に渡されていた
- while ループで全オプションを正しくパース、EXTRA_ARGS に蓄積
3. cli.hako への EXTRA_ARGS 伝播
- --format "$FORMAT" $EXTRA_ARGS を引数として cli.hako に渡す
結果:
✅ hako_check がセルフホスティングソースで実行可能に
✅ [lint/summary] failures: 1 が出力される(正常動作)
✅ --dead-code オプションが実装済みだが、スクリプトが反映していなかった
次のステップ: デバッグ出力ノイズ削減(デフォルトで [DEBUG/build_block] を非表示)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-04 19:11:20 +09:00 |
|
|
|
e948bcb4f8
|
feat(hako_check): Phase 154-170 hako_check dead code detection & JSON library design
🎉 Phase 154-170 完了!hako_check に死んだコード検出を統合
📋 Phase 154: MIR CFG 統合 & HC020 設計
- DeadBlockAnalyzerBox(570行) - 箱化モジュール化
- ブロックレベルの unreachable 検出設計
- テストケース4本、スモークテスト
🔧 Phase 155: MIR CFG データブリッジ(MVP)
- src/runner/mir_json_emit.rs: MIR JSON に CFG を追加
- tools/hako_check/analysis_consumer.hako: 空のCFG構造体追加
- Phase 156 の準備完成
🌉 Phase 156: hako_check MIR パイプライン統合
- hako_check.sh: MIR JSON 生成ステップ追加
- cli.hako: --mir-json-content 引数処理
- analysis_consumer.hako: ~320行の手動JSON パーサー実装
- HC020 が実際にブロックを検出!
📐 Phase 170: .hako JSON ライブラリ設計
- 既存 JSON 利用箇所インベントリ(Program/MIR/CFG)
- Phase 156 JSON パーサの詳細分析(289行)
- JsonParserBox API 草案確定
- 利用予定マッピング(96%削減見込み)
🏗️ 設計原則:
- 箱化モジュール化パターン(Phase 153継承)
- Rust 層変更最小化(.hako + シェルスクリプト優先)
- セルフホスティング対応設計
📊 期待効果:
- hako_check JSON パーサ: 289行 → ~10行(96%削減)
- JsonParserBox 共通ライブラリ化(Phase 171+)
- hako_check/selfhost/デバッグツール で共通利用
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-04 16:16:56 +09:00 |
|
|
|
a3d5bacc55
|
Phase 30.1 & 73: Stage-3 features env and JoinIR flag cleanup
|
2025-11-30 14:30:28 +09:00 |
|
|
|
772149c86d
|
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>
|
2025-11-08 15:49:25 +09:00 |
|
|
|
58a6471883
|
Phase 21.3 WIP: Hako Source Checker improvements - HC011/HC016/HC017 実装完了
主な変更:
- ✅ HC011 (dead methods) 実装・テスト緑
- ✅ HC016 (unused alias) 実装・テスト緑
- ✅ HC017 (non-ascii quotes) 実装完了
- 🔧 tokenizer/parser_core 強化(AST優先ルート)
- 🛡️ plugin_guard.rs 追加(stderr専用出力)
- 📋 テストインフラ整備(run_tests.sh改善)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-08 00:46:34 +09:00 |
|
|
|
301b1d212a
|
Phase 21.2 Complete: VM Adapter正規実装 + devブリッジ完全撤去
## 🎉 Phase 21.2完全達成
### ✅ 実装完了
- VM static box 永続化(singleton infrastructure)
- devブリッジ完全撤去(adapter_dev.rs削除、by-name dispatch削除)
- .hako正規実装(MirCallV1Handler, AbiAdapterRegistry等)
- text-merge経路完全動作
- 全phase2120 adapter reps PASS(7テスト)
### 🐛 バグ修正
1. strip_local_decl修正
- トップレベルのみlocal削除、メソッド内は保持
- src/runner/modes/common_util/hako.rs:29
2. static box フィールド永続化
- MirInterpreter singleton storage実装
- me parameter binding修正(1:1マッピング)
- getField/setField string→singleton解決
- src/backend/mir_interpreter/{mod,exec,handlers/boxes_object_fields}.rs
3. Map.len alias rc=0修正
- [map/missing]パターン検出でnull扱い(4箇所)
- lang/src/vm/boxes/mir_call_v1_handler.hako:91-93,131-133,151-153,199-201
### 📁 主要変更ファイル
#### Rust(VM Runtime)
- src/backend/mir_interpreter/mod.rs - static box singleton storage
- src/backend/mir_interpreter/exec.rs - parameter binding fix
- src/backend/mir_interpreter/handlers/boxes_object_fields.rs - singleton resolution
- src/backend/mir_interpreter/handlers/calls.rs - dev bridge removal
- src/backend/mir_interpreter/utils/mod.rs - adapter_dev module removal
- src/backend/mir_interpreter/utils/adapter_dev.rs - DELETED (7555 bytes)
- src/runner/modes/vm.rs - static box declaration collection
- src/runner/modes/common_util/hako.rs - strip_local_decl fix
- src/instance_v2.rs - Clone implementation
#### Hako (.hako実装)
- lang/src/vm/boxes/mir_call_v1_handler.hako - [map/missing] detection
- lang/src/vm/boxes/abi_adapter_registry.hako - NEW (adapter registry)
- lang/src/vm/helpers/method_alias_policy.hako - method alias support
#### テスト
- tools/smokes/v2/profiles/quick/core/phase2120/s3_vm_adapter_*.sh - 7 new tests
### 🎯 テスト結果
```
✅ s3_vm_adapter_array_len_canary_vm.sh
✅ s3_vm_adapter_array_len_per_recv_canary_vm.sh
✅ s3_vm_adapter_array_length_alias_canary_vm.sh
✅ s3_vm_adapter_array_size_alias_canary_vm.sh
✅ s3_vm_adapter_map_len_alias_state_canary_vm.sh
✅ s3_vm_adapter_map_length_alias_state_canary_vm.sh
✅ s3_vm_adapter_map_size_struct_canary_vm.sh
```
環境フラグ: HAKO_ABI_ADAPTER=1 HAKO_ABI_ADAPTER_DEV=0
### 🏆 設計品質
- ✅ ハードコード禁止(AGENTS.md 5.1)完全準拠
- ✅ 構造的・一般化設計(特定Box名のif分岐なし)
- ✅ 後方互換性保持(既存コード破壊ゼロ)
- ✅ text-merge経路(.hako依存関係正しくマージ)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-07 19:32:44 +09:00 |
|