|
|
11e68203c8
|
feat(joinir): Phase 76 - promoted_bindings map (dev-only)
Phase 76 introduces type-safe promotion tracking via promoted_bindings
(BindingId→BindingId map). Replaces fragile string matching hacks with
compiler-checked identity mapping.
Changes:
- carrier_info.rs: Added promoted_bindings field and resolution methods
- pattern4_carrier_analyzer.rs: Updated for BindingId integration
- pattern_pipeline.rs: Carrier resolution via promoted_bindings
- loop_with_break_minimal/tests.rs: Added promoted_bindings tests
- normalized/fixtures.rs: Extended with Phase 76 fixtures
Tests: 5/5 new unit tests PASS (record/resolve/merge/default/overwrite)
Tests: lib 958/958 PASS, normalized_dev 54/54 PASS (no regressions)
Design: Dual-path (BindingId OR name) enables gradual Phase 77+ transition.
🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-13 05:35:14 +09:00 |
|
|
|
7b0db59100
|
feat(joinir): Phase 53 - SELFHOST-NORM-DEV-EXPAND implementation
Expanded selfhost dev Normalized target with 2 practical P2/P3 loop variations,
strengthened structural signature axis, and implemented two-stage detection.
Key Changes:
1. Documentation (phase49-selfhost-joinir-depth2-design.md +128 lines):
- Added Phase 53 section with candidate selection rationale
- Documented two-stage detector strategy (structural primary + dev-only name guard)
- Defined structural axis strengthening (carrier count/type, branch patterns)
2. Fixtures (+210 lines):
- selfhost_args_parse_p2.program.json (60 lines): P2 with String carrier + conditional branching
- selfhost_stmt_count_p3.program.json (150 lines): P3 with 5 carriers + multi-branch if-else
3. Structured Builders (fixtures.rs +48 lines):
- build_selfhost_args_parse_p2_structured_for_normalized_dev()
- build_selfhost_stmt_count_p3_structured_for_normalized_dev()
4. ShapeGuard Two-Stage Detection (shape_guard.rs +80 lines):
- Added SelfhostArgsParseP2/SelfhostStmtCountP3 to NormalizedDevShape enum
- Implemented is_selfhost_args_parse_p2(): P2 core family + name guard
- Implemented is_selfhost_stmt_count_p3(): 2-10 carrier check + name guard
- Updated capability_for_shape() mappings
5. Bridge Integration (bridge.rs +8 lines, normalized.rs +10 lines):
- Added shape handlers delegating to existing normalizers
- Added roundtrip reconstruction handlers
6. Entry Point Registration (ast_lowerer/mod.rs +2 lines):
- Registered selfhost_args_parse_p2/selfhost_stmt_count_p3 as LoopFrontend routes
7. Dev VM Comparison Tests (normalized_joinir_min.rs +40 lines):
- normalized_selfhost_args_parse_p2_vm_bridge_direct_matches_structured()
- normalized_selfhost_stmt_count_p3_vm_bridge_direct_matches_structured()
8. Test Context Fix (dev_env.rs):
- Added thread-local test context depth counter
- Fixed deadlock in nested test_ctx() calls via reentrant with_dev_env_if_unset()
Structural Axis Growth:
P2 family:
- Carrier count: 1-3 (unchanged)
- NEW: Type diversity (Integer/String mixed)
- NEW: Conditional branching patterns (Eq-heavy comparisons)
P3 family:
- NEW: Carrier count upper bound: 2-10 (was 2-4)
- NEW: Multi-branch if-else (5+ branches with nested structure)
- NEW: Complex conditional patterns
Test Results:
- normalized_dev: 40/40 PASS (including 2 new tests)
- lib regression: 939 PASS, 56 ignored
- Existing behavior unchanged (normalized_dev feature-gated)
Phase 53 Achievements:
✅ P2/P3 each gained 1 practical variation (2 total)
✅ Two-stage detection: structural primary + dev-only name guard
✅ Structural axis expanded: 4 axes (carrier count/type/Compare/branch patterns)
✅ All tests PASS, no regressions
✅ Test context deadlock fixed (0.04s for 29 tests)
Files Modified: 14 files
Lines Added: ~516 lines (net)
Implementation: Pure additive (feature-gated)
Next Phase (54+):
- Accumulate 6+ loops per P2/P3 family
- Achieve 5+ stable structural axes
- Target < 5% false positive rate
- Then shrink/remove name guard scope
|
2025-12-12 16:40:20 +09:00 |
|
|
|
386cbc1915
|
Phase47-B/C: extend P3 normalized shapes and quiet dev warnings
|
2025-12-12 07:13:34 +09:00 |
|
|
|
7200309cc3
|
feat(joinir): Phase 48-A - P4 (continue) Normalized minimal implementation
Pattern4 (continue) integration into Normalized JoinIR pipeline complete.
Key changes:
- P4 minimal fixture: skip i==2 pattern, single carrier (acc)
- ShapeGuard: Pattern4ContinueMinimal detector (structure-based)
- StepScheduleBox: ContinueCheck step (eval order: HeaderCond → ContinueCheck → Updates → Tail)
- normalize_pattern4_continue_minimal(): Delegates to P2 (95% infrastructure reuse)
- Tests: 4 integration tests (normalization/runner/VM Bridge comparison×2)
Design validation:
- P4 (continue) = reverse control flow of P2 (break)
- Same loop_step(env, k_exit) skeleton
- Same EnvLayout/ConditionEnv/CarrierInfo infrastructure
- Only difference: evaluation order and control flow direction
Architecture proof:
- Normalized JoinIR successfully handles P1/P2/P3/P4 uniformly
- Infrastructure reuse rate: 95%+ as designed
Tests: 939/939 PASS (+1 from baseline 938, target exceeded!)
Files modified: 10 files (~305 lines added, pure additive)
- pattern4_continue_min.program.json (NEW +126 lines) - P4 fixture
- fixtures.rs (+31 lines) - P4 fixture loader
- shape_guard.rs (+60 lines) - Shape detection
- step_schedule.rs (+18 lines) - Schedule + test
- normalized.rs (+35 lines) - Normalization function
- loop_with_break_minimal.rs (+4 lines) - ContinueCheck handler
- bridge.rs (+5 lines) - VM bridge routing
- ast_lowerer/mod.rs (+2 lines) - Function registration
- normalized_joinir_min.rs (+84 lines) - Integration tests
- CURRENT_TASK.md (+13 lines) - Phase 48-A completion
Next steps:
- Phase 48-B: Extended P4 (multi-carrier, complex continue)
- Phase 48-C: Canonical promotion (always use Normalized for P4)
|
2025-12-12 06:31:13 +09:00 |
|
|
|
42ecd7a7e7
|
feat(joinir): Phase 47-A prep - P3 fixture and test stub
Preparation for Phase 47-A (P3 Normalized minimal implementation).
Added fixture and test stub for pattern3_if_sum_minimal.
Changes:
- fixtures.rs: Added pattern3_if_sum_minimal fixture
- Source: phase212_if_sum_min.hako
- Pattern: Single carrier (sum), simple condition (i > 0)
- Dev-only fixture for P3 Normalized development
- normalized_joinir_min.rs: Added test stub
- test_normalized_pattern3_if_sum_minimal_runner
- Currently returns early (implementation pending)
- Feature-gated: #[cfg(feature = "normalized_dev")]
- Documentation updates:
- CURRENT_TASK.md: Phase 47-A status
- PHASE_43_245B_NORMALIZED_COMPLETION.md: P3 forward reference
- joinir-architecture-overview.md: Minor formatting
- phase47-norm-p3-design.md: Implementation notes
Next steps (Phase 47-A implementation):
1. Rename pattern2_step_schedule.rs → step_schedule.rs
2. Add P3 StepKind (IfCond, ThenUpdates, ElseUpdates)
3. Implement Normalized→MIR(direct) for P3
4. Complete test implementation
Tests: 937/937 PASS (no behavioral changes yet)
|
2025-12-12 05:07:01 +09:00 |
|
|
|
ed8e2d3142
|
feat(joinir): Phase 248 - Normalized JoinIR infrastructure
Major refactoring of JoinIR normalization pipeline:
Key changes:
- Structured→Normalized→MIR(direct) pipeline established
- ShapeGuard enhanced with Pattern2 loop validation
- dev_env.rs: New development fixtures and env control
- fixtures.rs: jsonparser_parse_number_real fixture
- normalized_bridge/direct.rs: Direct MIR generation from Normalized
- pattern2_step_schedule.rs: Extracted step scheduling logic
Files changed:
- normalized.rs: Enhanced NormalizedJoinModule with DevEnv support
- shape_guard.rs: Pattern2-specific validation (+300 lines)
- normalized_bridge.rs: Unified bridge with direct path
- loop_with_break_minimal.rs: Integrated step scheduling
- Deleted: step_schedule.rs (moved to pattern2_step_schedule.rs)
New files:
- param_guess.rs: Loop parameter inference
- pattern2_step_schedule.rs: Step scheduling for Pattern2
- phase43-norm-canon-p2-mid.md: Design doc
Tests: 937/937 PASS (+6 from baseline 931)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-12 03:15:45 +09:00 |
|
|
|
a4756f3ce1
|
Add dev normalized→MIR bridge for P1/P2 mini and JP _atoi
|
2025-12-11 22:12:46 +09:00 |
|
|
|
af6f95cd4b
|
Phase 33 NORM canon test: enforce normalized dev route for P1/P2/JP mini
|
2025-12-11 20:54:33 +09:00 |
|