|
|
a6c04217d0
|
docs(phase29ac): start P1 reverse scan
|
2025-12-28 16:54:55 +09:00 |
|
|
|
209b04d808
|
docs(phase29ab): closeout P1-P9
|
2025-12-28 16:36:15 +09:00 |
|
|
|
c397016ac7
|
docs(phase29ab): record P8 ok fixtures and queue closeout
|
2025-12-28 16:00:45 +09:00 |
|
|
|
5edda8a0c2
|
docs(phase29ab): record P7 pattern6 negative fixtures
|
2025-12-28 15:41:58 +09:00 |
|
|
|
7ae96fcc4c
|
docs(phase29ab): record P6 pattern6 contract freeze
|
2025-12-28 15:38:49 +09:00 |
|
|
|
bea2a8d9bb
|
phase29ab(p5): freeze pattern7 split-scan near-miss with fixture+smoke
|
2025-12-28 14:32:19 +09:00 |
|
|
|
7a790a27cb
|
docs(phase29ab): record P4 derived-slot realworld seg
|
2025-12-28 14:09:15 +09:00 |
|
|
|
280a5a8187
|
docs+api: finalize phase29ab P3 contract and update examples
|
2025-12-28 10:57:48 +09:00 |
|
|
|
6ba9d995d2
|
docs(phase29ab): record P2 seg trim fixture+smoke
|
2025-12-28 09:04:18 +09:00 |
|
|
|
506339def0
|
docs(phase29ab): record P1 pattern2 fixture+smoke
|
2025-12-28 07:19:23 +09:00 |
|
|
|
61a3384bd2
|
docs(phase29aa): mark P8 complete
|
2025-12-28 06:32:46 +09:00 |
|
|
|
6d17a0f988
|
docs(phase29aa): mark P7 complete and queue P8
|
2025-12-28 06:00:34 +09:00 |
|
|
|
ec1a84c465
|
docs(phase29aa): mark P6 complete and queue P7
|
2025-12-28 05:21:28 +09:00 |
|
|
|
c8c99174af
|
docs(phase29aa): queue P6 intersection join
|
2025-12-28 04:44:18 +09:00 |
|
|
|
bf7b203586
|
phase29aa(p4): propagate rc state along jump chain to return
|
2025-12-28 01:56:36 +09:00 |
|
|
|
d70d9e3b89
|
docs(phase29aa): mark P3 complete and queue P4
|
2025-12-28 01:43:03 +09:00 |
|
|
|
94ad562aa5
|
Phase 29aa P3: Jump→Return single-pred rc propagation
|
2025-12-28 01:16:52 +09:00 |
|
|
|
ed68e48ed1
|
docs: update references after module splits
|
2025-12-27 21:43:47 +09:00 |
|
|
|
7be0b0c28e
|
phase29aa: RcPlan + guard no cleanup on jump/branch
|
2025-12-27 16:09:26 +09:00 |
|
|
|
b6e80943a3
|
phase29aa(p1): rc insertion plan/apply refactor
|
2025-12-27 16:02:32 +09:00 |
|
|
|
b895f67e07
|
docs(phase29aa): add P0 CFG-aware design and link from 29z
|
2025-12-27 15:38:18 +09:00 |
|
|
|
a916066631
|
phase29z(p2): return cleanup and null propagation doc alignment
|
2025-12-27 15:26:42 +09:00 |
|
|
|
084277ee18
|
docs(phase29z): P2 closeout markers and next steps
|
2025-12-27 15:21:40 +09:00 |
|
|
|
5a3d45ce53
|
phase29z(p1): handle explicit drop in rc insertion
|
2025-12-27 15:16:46 +09:00 |
|
|
|
977f105e4e
|
phase29z(p0): minimal RC insertion overwrite release
|
2025-12-27 15:03:05 +09:00 |
|
|
|
2223c1309b
|
docs(phase29z): Add RC insertion minimal instructions
|
2025-12-27 14:18:33 +09:00 |
|
|
|
292fb83dcb
|
docs(phase29y): Finalize P0 SSOT
|
2025-12-27 14:17:18 +09:00 |
|
|
|
9c6b725e3e
|
docs(phase29y): Add P0 docs-finalize instructions
|
2025-12-27 14:04:56 +09:00 |
|
|
|
60e3510b26
|
docs(phase287): Complete P9 closeout
|
2025-12-27 14:02:53 +09:00 |
|
|
|
25bd15a64c
|
docs(phase287): Add P9 closeout instructions
|
2025-12-27 13:57:33 +09:00 |
|
|
|
74c6df1acb
|
docs(phase287): Mark P7 complete, add P8 instructions
|
2025-12-27 13:39:04 +09:00 |
|
|
|
df4d0b1776
|
docs(phase287): Mark P6 complete, add P7 instructions
|
2025-12-27 13:26:33 +09:00 |
|
|
|
8d4472ddd3
|
docs(phase287): Mark P5 complete, add P6 instructions
|
2025-12-27 13:20:16 +09:00 |
|
|
|
ad5b6085c1
|
docs(phase287): Mark P4 complete, add P5 instructions
|
2025-12-27 12:50:17 +09:00 |
|
|
|
2f7061e2e5
|
docs(phase287): Mark P3 complete, add P4 instructions
|
2025-12-27 12:17:47 +09:00 |
|
|
|
fe895e8838
|
refactor(joinir): Phase 287 P2 - Modularize contract_checks (facade pattern)
- contract_checks.rs (846行) を facade 化
- 6モジュールへ分割(1 module = 1 contract):
- terminator_targets.rs (208行) - Branch/Jump検証
- exit_bindings.rs (35行) - exit_bindings ↔ exit_phis
- carrier_inputs.rs (145行) - carrier_inputs完全性
- boundary_creation.rs (160行) - B1/C2不変条件
- entry_params.rs (317行) - Entry param一貫性
- mod.rs (30行) - Facade
- Total: 846 → 895行(+49行モジュール境界オーバーヘッド)
- 意味論不変: エラータグ/ヒント文すべて保存
- Fail-Fast遵守: silent fallback追加なし
- 検証: Build 0 errors / Pattern6 RC=9 / quick 154/154 PASS
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-27 11:05:40 +09:00 |
|
|
|
26a739189d
|
docs(phase-29y): note pilot plumbing completion in Now/Backlog
|
2025-12-27 02:07:54 +09:00 |
|
|
|
348b19f42d
|
docs(phase-29y): self-contained consult packet + entry
|
2025-12-27 01:03:24 +09:00 |
|
|
|
606e236d6d
|
fix(phase-285): restore weak_basic_llvm + complete LLVM detection/quick SSOT
|
2025-12-26 16:32:37 +09:00 |
|
|
|
72552cddfb
|
docs(phase-285): add P3 LLVM one-pass instructions
|
2025-12-26 14:21:12 +09:00 |
|
|
|
fbd9c83b62
|
docs: reflect Phase 285 P2.2 completion (KeepAlive/ReleaseStrong)
|
2025-12-26 14:17:19 +09:00 |
|
|
|
22945c190c
|
feat(joinir): Phase 286 P3.2 - Pattern5 Plan line (loop(true) + early exit)
- Pattern5InfiniteEarlyExitPlan (Return/Break variants)
- extract_pattern5_plan() for loop(true) literal only
- normalize_pattern5_return(): 5 blocks CFG (header→body→found/step)
- normalize_pattern5_break(): 6 blocks CFG with carrier PHI
- NormalizationPlanBox exclusion for Pattern5-style loops
- Fixtures: phase286_pattern5_{return,break}_min.hako
- quick smoke 154/154 PASS
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-26 09:56:34 +09:00 |
|
|
|
65304ec0c4
|
docs(joinir): Phase 286 Pattern2調査・設計相談パケット追加
- phase286_pattern2_frag_poc.hako: Pattern2 PoC fixture
- phase286_pattern2_frag_poc.sh: integration smoke
- phase-286-plan-normalization-consult.md: Plan正規化の設計相談
- 10-Now.md, 30-Backlog.md: 進捗更新
- pattern2-deferred.md: 更新
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-26 04:58:38 +09:00 |
|
|
|
1d24e9a106
|
feat(joinir): Phase 286 P2.3 + Phase 287 - Pattern9 Plan化 + Router table-driven
## Phase 286 P2.3: Pattern9 AccumConstLoop Plan化 PoC
- DomainPlan::Pattern9AccumConstLoop 追加
- PlanNormalizer::normalize_pattern9_accum_const_loop() 実装
- PHI 2本(loop_var, acc_var)
- const/var 両方 OK(sum = sum + 1 または sum = sum + i)
- Pattern9 は Pattern1 より優先(より具体的なパターン)
- Integration test: phase286_pattern9_frag_poc PASS (return: 3)
- Regression: quick 154 PASS
## Phase 287: Router table-driven Plan extraction
- PLAN_EXTRACTORS static table で Pattern6/7/4/9/1 を統一管理
- PlanExtractorEntry/PlanExtractorVariant 構造体追加
- try_plan_extractors() で ~100行 → 3行に集約
- メンテナンス性向上(新 Pattern 追加はテーブル1行追加のみ)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-26 02:38:09 +09:00 |
|
|
|
2b86b658d8
|
docs(repl): Phase 288 documentation cleanup
Updated documentation to reflect actual implementation status:
- docs/reference/language/repl.md: Corrected examples (variable persistence TODO)
- docs/development/current/main/10-Now.md: Phase 288 completion noted
- docs/development/current/main/30-Backlog.md: Updated with Phase 288.1 tasks
- docs/development/current/main/phases/phase-288/: Added phase documentation
Accurate REPL behavior examples:
- x = 1 works (implicit local)
- print(x) errors (persistence in Phase 288.1)
- Expression auto-display deferred
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-25 14:01:32 +09:00 |
|
|
|
4cc324c06e
|
smokes(v2): Slim quick profile (Phase 287 P1)
Phase 287 P1 completed: Quick profile optimization
Changes:
- Moved 204 heavy tests from quick to integration profile
- Reduced execution time: 449.1s → 55.0s (88% reduction)
- Reduced test count: 651 → 447 tests (31% reduction)
- Maintained relative path structure for --filter compatibility
Moved test directories (14 total):
- phase2100, phase2211, phase2120, phase2220, phase251
- phase2160, phase2047-2051 (7 dirs), analyze
Profile responsibilities:
- quick: Fast feedback (55s, 447 tests)
- integration: Comprehensive validation (selfhost, S3, LLVM)
Documentation updates:
- tools/smokes/v2/README.md: Profile definitions
- docs/development/current/main/phases/phase-287/README.md: P1 results
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-25 07:48:18 +09:00 |
|
|
|
f740e6542f
|
feat(phase285): Complete weak reference implementation (VM + LLVM harness)
Phase 285LLVM-1.1 to 1.4 + weak reference infrastructure:
**LLVM Harness** (Phase 285LLVM-1.x):
- 285LLVM-1.1: User Box registration & debug output
- 285LLVM-1.2: WeakRef basic operations (identity deferred)
- 285LLVM-1.3: InstanceBox field access (getField/setField)
- 285LLVM-1.4: print Handle resolution (type tag propagation)
**VM Runtime** (nyash_kernel):
- FFI functions: nyrt_weak_new, nyrt_weak_to_strong, nyrt_weak_drop
(crates/nyash_kernel/src/lib.rs: +209 lines)
- WeakRef plugin invoke support
(crates/nyash_kernel/src/plugin/invoke.rs: +250 lines)
- weak_handles.rs: WeakRef handle registry (NEW)
**LLVM Python Backend**:
- WeakRef instruction lowering (weak.py: NEW)
- Entry point integration (entry.py: +93 lines)
- Instruction lowering (instruction_lower.py: +13 lines)
- LLVM harness runner script (tools/run_llvm_harness.sh: NEW)
**MIR & Runtime**:
- WeakRef emission & validation
- MIR JSON export for weak instructions
- Environment variable support (NYASH_WEAK_*, HAKO_WEAK_*)
**Documentation**:
- CLAUDE.md: Phase 285 completion notes
- LANGUAGE_REFERENCE_2025.md: Weak reference syntax
- 10-Now.md & 30-Backlog.md: Phase 285 status updates
Total: +864 lines, 24 files changed
SSOT: docs/reference/language/lifecycle.md
Related: Phase 285W-Syntax-0, Phase 285W-Syntax-0.1
|
2025-12-25 00:11:34 +09:00 |
|
|
|
661bbe1ab7
|
feat(phase284): P1 Complete - Return in Loop with Block Remap Fix
## Summary
Completed Phase 284 P1: Enable return statements in Pattern4/5 loops via
JoinInst::Ret infrastructure (100% pre-existing, no new infrastructure needed).
**Critical Bug Fix**: Block ID remap priority
- Fixed: local_block_map must take precedence over skipped_entry_redirects
- Root cause: Function-local block IDs can collide with global remap entries
(example: loop_step:bb4 vs k_exit:bb4 after merge allocation)
- Impact: Conditional Jump else branches were incorrectly redirected to exit
- Solution: Check local_block_map FIRST, then skipped_entry_redirects
## Implementation
### New Files
- `src/mir/join_ir/lowering/return_collector.rs` - Return detection SSOT (top-level only, P1 scope)
- `apps/tests/phase284_p1_return_in_loop_min.hako` - Test fixture (exit code 7)
- Smoke test scripts (VM/LLVM)
### Modified Files
- `loop_with_continue_minimal.rs`: Return condition check + Jump generation
- `pattern4_with_continue.rs`: K_RETURN registration in continuation_funcs
- `canonical_names.rs`: K_RETURN constant
- `instruction_rewriter.rs`: Fixed Branch remap priority (P1 fix)
- `terminator.rs`: Fixed Jump/Branch remap priority (P1 fix)
- `conversion_pipeline.rs`: Return normalization support
## Testing
✅ VM: exit=7 PASS
✅ LLVM: exit=7 PASS
✅ Baseline: 46 PASS, 1 FAIL (pre-existing emit issue)
✅ Zero regression
## Design Notes
- JoinInst::Ret infrastructure was 100% complete before P1
- Bridge automatically converts JoinInst::Ret → MIR Return terminator
- Pattern4/5 now properly merge k_return as non-skippable continuation
- Correct semantics: true condition → return, false → continue loop
## Next Phase (P2+)
- Refactor: Block remap SSOT (block_remapper.rs)
- Refactor: Return jump emitter extraction
- Scope: Nested if/loop returns, multiple returns
- Design: Standardize early exit pattern (return/break/continue as Jump with cond)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2025-12-23 14:21:27 +09:00 |
|
|
|
41d92bedb9
|
refactor(extractors): Phase 282 P9a - CommonExtractionHelpers SSOT統合(スコープ限定版)
# Phase 282 P9a 完了 (Scope-Limited Integration)
## 実装内容
- **common_helpers.rs 作成**: 4グループの共通ヘルパー統合 (316行)
- Group 1: Control Flow Counting (count_control_flow - 汎用カウンター)
- Group 2: Control Flow Detection (has_break/continue/return_statement)
- Group 3: Condition Validation (extract_loop_variable, is_true_literal)
- Group 4: Pattern5専用ヘルパー (validate_continue_at_end, validate_break_in_simple_if)
- **Pattern統合完了**: Pattern5 → Pattern4 → Pattern2 → Pattern1
- Pattern5: ~90行削減 (5 tests PASS)
- Pattern4: ~66行削減 (5 tests PASS)
- Pattern2: ~67行削減 (4 tests PASS)
- Pattern1: ~28行削減 (3 tests PASS)
- Pattern3: 別フェーズに延期(pattern固有ロジック除外)
## 成果
- **コード削減**: ~251行(Pattern3除く、total ~400行見込み)
- **テスト**: 40 unit tests PASS (23 common_helpers + 17 extractors)
- **スモークテスト**: 45 PASS, 1 pre-existing FAIL(退行ゼロ)
- **ビルド警告**: 130 → 120 (-10)
## USER CORRECTIONS適用済み
1. ✅ スコープ限定(共通ロジックのみ、pattern固有除外)
2. ✅ Placeholder禁止(SSOT違反排除)
3. ✅ 統合順序変更(Pattern3を最後/別フェーズへ)
## 追加ドキュメント
- Phase 284 計画追加(Return as ExitKind SSOT)
- 10-Now.md, 30-Backlog.md 更新
🎯 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-23 11:14:28 +09:00 |
|
|
|
bfbc9b26bf
|
fix(joinir): Phase 283 P0 - Pattern3 Undefined ValueId Bug Fix
- Fix: extract_if_condition() moved after local_cond_env construction
(loop_with_if_phi_if_sum.rs:175)
- Root cause: condition extraction before i_param/sum_param creation
- Result: i % 2 referenced caller's ConditionEnv with unmapped ValueId
- Fail-Fast: Add condition_bindings validation in merge (mod.rs)
- Fixture: Update loop_if_phi.hako for C2 compatibility (sum.toString())
- Verified: VM execution outputs sum=9 ✅
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-23 08:14:27 +09:00 |
|