990d00393e
refactor(mir): Remove CompilationContext legacy fields (Phase 2-7/7) 🎉
...
Phase 2 完全完了!全 7 Context のレガシーフィールドを完全削除。
## Changes
- Migrated all access sites to comp_ctx.* (15 fields)
- Removed 15 deprecated fields:
* compilation_context
* current_static_box
* user_defined_boxes
* reserved_value_ids
* fn_body_ast
* weak_fields_by_box
* property_getters_by_box
* field_origin_class
* field_origin_by_box
* static_method_index
* method_tail_index
* method_tail_index_source_len
* type_registry
* current_slot_registry
* plugin_method_sigs
- Removed initialization code (15 field inits)
## Phase 2 完了!🎉
- builder.rs: 1222 → 1127 lines (-95 lines net)
- Deprecation warnings: 86 → 0 (完全排除)
- 全 36 deprecated fields 削除完了
- 全 14 sync helpers 削除完了
- 7 Context 完全SSOT化
## Tests
- cargo build --release: SUCCESS
- cargo test --release --lib: 1033/1033 PASS ✅
- Deprecation warnings: 0 ✅
Phase 2 Progress: 7/7 contexts complete (100%) ✅
- ✅ MetadataContext
- ✅ CoreContext
- ✅ TypeContext
- ✅ ScopeContext
- ✅ BindingContext
- ✅ VariableContext
- ✅ CompilationContext (this commit) 🎉
Phase 136 Context Box化: 完全完了!
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-16 04:07:17 +09:00
b92f85f993
refactor(mir): Remove TypeContext legacy fields (Phase 2-3/7)
...
完全移行→削除の安全順序(Option C)に従い、TypeContext の
deprecated フィールドと sync helpers を完全削除。
⚠️ 危険ゾーン: TypeFactsBox 等の同名フィールドと混同しないよう、
ファイル単位で手作業移行を実施。
## Changes
- Migrated all MirBuilder access sites to type_ctx.* (manual, 40+ files)
- Removed 3 deprecated fields (value_types, value_kinds, value_origin_newbox)
- Removed 2 sync helpers (sync_type_ctx_to_legacy, sync_legacy_to_type_ctx)
- Verified TypeFactsBox, CalleeGuardBox unchanged (no false positives)
## Tests
- cargo test --release --lib: 1029/1033 PASS
- TypeFactsBox integration: PASS (borrowed references unchanged)
- Deprecation warnings: 456 → 255 (-201, -44%)
## Safety Verification
✅ TypeFactsBox unchanged (still uses &'a BTreeMap borrowed references)
✅ CalleeGuardBox unchanged
✅ CalleeResolverBox unchanged
✅ BoxCompilationContext unchanged
Phase 2 Progress: 3/7 contexts complete (43%)
- ✅ MetadataContext
- ✅ CoreContext
- ✅ TypeContext (this commit)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-15 23:27:24 +09:00
466e636af6
Span trace utilities and runner source hint
2025-11-24 14:17:02 +09:00
28a312ea0d
feat(naming): Phase 25.4-A - NamingBox SSOT化完了
...
🎯 目的: static/global 呼び出しの名前決定を src/mir/naming.rs に一本化
✅ 実装完了:
- NamingBox(src/mir/naming.rs)実装
- encode_static_method(box, method, arity)
- normalize_static_global_name(func_name)
- static/global 名前の正規化ロジック統一
- MIR Builder統合(SSOT使用)
- src/mir/builder/decls.rs: build_static_main_box
- src/mir/builder/exprs.rs: 静的メソッド呼び出し
- src/mir/builder/metadata/propagate.rs: メタデータ伝播
- src/mir/builder/observe/mod.rs: Observe機能
- src/mir/builder/observe/types.rs: 型観測(新規)
- VM実行器統合(SSOT使用)
- src/backend/mir_interpreter/handlers/calls/global.rs
- normalize_static_global_name使用
- レガシーフォールバック削除済み確認
- テスト追加
- src/tests/mir_static_box_naming.rs
- encode/normalize の動作検証
📚 ドキュメント:
- docs/development/architecture/mir-naming-box.md
- NamingBoxの設計思想
- SSOT原則の説明
- 使用例
🎯 効果:
- 名前決定ロジックが1箇所に集約
- Builder/VM で同じ正規化ルールを使用
- 将来の名前空間拡張が容易
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-21 09:01:43 +09:00
f9d100ce01
chore: Phase 25.1 完了 - LoopForm v2/Stage1 CLI/環境変数削減 + Phase 26-D からの変更
...
Phase 25.1 完了成果:
- ✅ LoopForm v2 テスト・ドキュメント・コメント完備
- 4ケース(A/B/C/D)完全テストカバレッジ
- 最小再現ケース作成(SSAバグ調査用)
- SSOT文書作成(loopform_ssot.md)
- 全ソースに [LoopForm] コメントタグ追加
- ✅ Stage-1 CLI デバッグ環境構築
- stage1_cli.hako 実装
- stage1_bridge.rs ブリッジ実装
- デバッグツール作成(stage1_debug.sh/stage1_minimal.sh)
- アーキテクチャ改善提案文書
- ✅ 環境変数削減計画策定
- 25変数の完全調査・分類
- 6段階削減ロードマップ(25→5、80%削減)
- 即時削除可能変数特定(NYASH_CONFIG/NYASH_DEBUG)
Phase 26-D からの累積変更:
- PHI実装改善(ExitPhiBuilder/HeaderPhiBuilder等)
- MIRビルダーリファクタリング
- 型伝播・最適化パス改善
- その他約300ファイルの累積変更
🎯 技術的成果:
- SSAバグ根本原因特定(条件分岐内loop変数変更)
- Region+next_iパターン適用完了(UsingCollectorBox等)
- LoopFormパターン文書化・テスト化完了
- セルフホスティング基盤強化
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: ChatGPT <noreply@openai.com >
Co-Authored-By: Task Assistant <task@anthropic.com >
2025-11-21 06:25:17 +09:00
d3cbc71c9b
feat(mir): Phase 25.1f完了 - Conservative PHI + ControlForm観測レイヤー
...
🎉 Conservative PHI Box理論による完全SSA構築
**Phase 7-B: Conservative PHI実装**
- 片方branchのみ定義変数に対応(emit_void使用)
- 全変数にPHI生成(Conservative Box理論)
- Stage-1 resolver全テスト緑化(3/3 PASS)
**Phase 25.1f: ControlForm観測レイヤー**
- LoopShape/IfShape/ControlForm構造定義
- Loop/If統一インターフェース実装
- debug_dump/debug_validate機能追加
- NYASH_CONTROL_FORM_TRACE環境変数対応
**主な変更**:
- src/mir/builder/phi.rs: Conservative PHI実装
- src/mir/control_form.rs: ControlForm構造(NEW)
- src/mir/loop_builder.rs: LoopForm v2デフォルト化
**テスト結果**:
✅ mir_stage1_using_resolver_min_fragment_verifies
✅ mir_stage1_using_resolver_full_collect_entries_verifies
✅ mir_parserbox_parse_program2_harness_parses_minimal_source
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: ChatGPT <chatgpt@openai.com >
2025-11-18 18:56:35 +09:00
73844dbe04
feat(builder): CalleeBoxKind構造ガードで静的/ランタイムBox混線を根絶
...
🎯 箱理論の実践: 「境界を作る」原則による構造レベル分離
## 問題
- StageBArgsBox.resolve_src内のargs.get(i)が
Stage1UsingResolverBox.getに化ける(静的Box名混入)
- 未定義ValueIdエラー発生(receiver定義なし)
## 解決策(構造ガード)
✅ CalleeBoxKind enum追加
- StaticCompiler: Stage-B/Stage-1コンパイラBox
- RuntimeData: MapBox/ArrayBox等ランタイムBox
- UserDefined: ユーザー定義Box
✅ classify_box_kind(): Box名から種別判定
- 静的Box群を明示的に列挙(1箇所に集約)
- ランタイムBox群を明示的に列挙
- 将来の拡張も容易
✅ apply_static_runtime_guard(): 混線検出・正規化
- me-call判定(receiver型==box_name → 静的降下に委ねる)
- 真の混線検出(receiver型≠box_name → 正規化)
- トレースログで可視化
## 効果
- 修正前: Invalid value ValueId(150/187)
- 修正後: Unknown method 'is_space' (別issue、StringBox実装不足)
- → 静的Box名混入問題を根絶!
## 箱理論原則
- ✅ 境界を作る: Static/Runtime/UserDefinedを構造的に分離
- ✅ Fail-Fast: フォールバックより明示的エラー
- ✅ 箱にする: CalleeBoxKindでBox種類を1箇所に集約
## ファイル
- src/mir/definitions/call_unified.rs: CalleeBoxKind enum
- src/mir/builder/calls/call_unified.rs: classify_box_kind()
- src/mir/builder/calls/emit.rs: apply_static_runtime_guard()
- docs/development/roadmap/phases/phase-25.1d/README.md: 箱化メモ更新
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-17 23:13:57 +09:00
dd65cf7e4c
builder+vm: unify method calls via emit_unified_call; add RouterPolicy trace; finalize LocalSSA/BlockSchedule guards; docs + selfhost quickstart
...
- Unify standard method calls to emit_unified_call; route via RouterPolicy and apply rewrite::{special,known} at a single entry.\n- Stabilize emit-time invariants: LocalSSA finalize + BlockSchedule PHI→Copy→Call ordering; metadata propagation on copies.\n- Known rewrite default ON (userbox only, strict guards) with opt-out flag NYASH_REWRITE_KNOWN_DEFAULT=0.\n- Expand TypeAnnotation whitelist (is_digit_char/is_hex_digit_char/is_alpha_char/Map.has).\n- Docs: unified-method-resolution design note; Quick Reference normalization note; selfhosting/quickstart.\n- Tools: add tools/selfhost_smoke.sh (dev-only).\n- Keep behavior unchanged for Unknown/core/user-instance via BoxCall fallback; all tests green (quick/integration).
2025-09-28 20:38:09 +09:00