## Phase 71-SSA: StageBDriverBox birth warning 解消 - Fixed false-positive dev verify warning for static boxes - StageBDriverBox is a static box, so it doesn't follow NewBox→birth pattern - Modified lifecycle.rs to skip StageBDriverBox from birth() requirement ## Phase 73-A: Stage-3 legacy ENV 統一化 - Consolidated NYASH_PARSER_STAGE3 and HAKO_PARSER_STAGE3 → NYASH_FEATURES=stage3 - Updated 20 test files (46 direct replacements) - Special handling for parser_stage3.rs compat layer and mir_static_main_args_loop.rs - All test files now use unified NYASH_FEATURES=stage3 ## Phase 72-73: ENV inventory documented - Created phase72-73-env-inventory.md with complete usage analysis - Identified 113 direct ENV reads requiring SSOT consolidation - Prioritized Phase 72 (JoinIR EXPERIMENT SSOT) and Phase 73 (Stage-3 cleanup) ## Phase 74-SSA: Minimal reproduction for static box delegation - Created parser_box_minimal.hako and ssa_static_delegation_min.hako - Investigated spawn failure in selfhost compiler (arguments too long) - Root cause: NYASH_NY_COMPILER_EMIT_ONLY=1 defaults to emit-only mode 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
37 lines
900 B
Plaintext
37 lines
900 B
Plaintext
// Phase 74-SSA: Minimal reproduction of static box delegation bug
|
|
// Goal: Reproduce ValueId undef caused by box → static box delegation
|
|
//
|
|
// Pattern: box A delegates to static box B (matches ParserBox → ParserStringUtilsBox)
|
|
// Expected bug: ValueId mapping fails for arguments in delegation
|
|
|
|
static box TargetBox {
|
|
is_digit(ch) {
|
|
if ch >= "0" && ch <= "9" { return 1 }
|
|
return 0
|
|
}
|
|
}
|
|
|
|
box DelegateBox {
|
|
// Non-static box delegating to static box (matches ParserBox pattern)
|
|
is_digit(ch) {
|
|
// This delegation should cause SSA undef (ValueId mapping failure)
|
|
return TargetBox.is_digit(ch)
|
|
}
|
|
|
|
birth() {
|
|
return 0
|
|
}
|
|
}
|
|
|
|
box Main {
|
|
main() {
|
|
local delegate = new DelegateBox()
|
|
local ch = "7"
|
|
// Call through delegation
|
|
local d = delegate.is_digit(ch)
|
|
// Use result to avoid SSA dead code elimination
|
|
if d == 1 { return 0 }
|
|
return 1
|
|
}
|
|
}
|