nyash-codex
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
..
2025-11-20 08:41:37 +09:00
2025-12-04 04:13:15 +09:00
2025-11-06 15:41:52 +09:00
2025-11-25 10:19:02 +09:00
2025-09-22 07:54:25 +09:00
2025-09-15 22:14:42 +09:00
2025-09-19 02:07:38 +09:00
2025-11-06 15:41:52 +09:00
2025-12-10 00:01:53 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-01 09:05:02 +09:00
2025-08-23 16:33:32 +09:00
2025-09-16 23:49:36 +09:00
2025-09-16 23:49:36 +09:00
2025-12-09 03:40:25 +09:00
2025-09-16 23:49:36 +09:00
2025-11-20 03:56:12 +09:00
2025-09-16 23:49:36 +09:00
2025-11-21 06:25:17 +09:00
2025-09-16 23:49:36 +09:00
2025-12-11 13:13:08 +09:00
2025-09-16 23:49:36 +09:00
2025-12-02 12:36:28 +09:00
2025-12-08 23:43:26 +09:00
2025-12-12 16:40:20 +09:00
2025-09-16 16:28:25 +09:00
2025-12-11 17:16:10 +09:00
2025-12-11 13:13:08 +09:00
2025-12-11 17:16:10 +09:00
2025-09-25 01:09:48 +09:00
2025-09-16 23:49:36 +09:00
2025-09-16 23:49:36 +09:00
2025-09-16 23:49:36 +09:00