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
- prelude: nested-if to compute
Goal
StringUtils.is_integer/1を JoinIR で受理し、quick の first FAIL を次へ進める
Proposed Approach (P0)
方針: prelude(nested-if)は既存 lowering のまま、loop 部分だけを scan パターンへ寄せる(構造で解決)。
P0 の狙い:
- loop の core は “scan until mismatch” で、Pattern6(scan)と近い
- ただし return 値が
i/-1ではなくtrue/falseなので、scan パターンの “return payload” を一般化する必要がある可能性がある