Files
hakorune/docs/development/current/main/phases/phase-259/README.md

30 lines
1.3 KiB
Markdown
Raw Normal View History

Status: Active
Scope: `StringUtils.is_integer/1`nested-if + loopを JoinIR で受理して `--profile quick` を進める。
Related:
- Now: `docs/development/current/main/10-Now.md`
- Phase 258: `docs/development/current/main/phases/phase-258/README.md`
- Design goal: `docs/development/current/main/design/join-explicit-cfg-construction.md`
# Phase 259: `StringUtils.is_integer/1` (nested-if + loop)
## Current Status (SSOT)
- Current first FAIL: `json_lint_vm / StringUtils.is_integer/1`
- Shape summaryログ由来:
- prelude: nested-if to compute `start` (handles leading `"-"`)
- loop: `loop(i < s.length()) { if not this.is_digit(s.substring(i, i+1)) { return false } i = i + 1 }`
- post: `return true`
- caps: `If,Loop,NestedIf,Return`
## Goal
- `StringUtils.is_integer/1` を JoinIR で受理し、quick の first FAIL を次へ進める
## Proposed Approach (P0)
方針: preludenested-ifは既存 lowering のまま、loop 部分だけを scan パターンへ寄せる(構造で解決)。
P0 の狙い:
- loop の core は “scan until mismatch” で、Pattern6scanと近い
- ただし return 値が `i/-1` ではなく `true/false` なので、scan パターンの “return payload” を一般化する必要がある可能性がある