Files
hakorune/docs/development/current/main/phases/phase-259

Status: Active
Scope: StringUtils.is_integer/1nested-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” を一般化する必要がある可能性がある