diff --git a/lang/src/compiler/entry/compiler_stageb.hako b/lang/src/compiler/entry/compiler_stageb.hako index 5613eeb1..24dda570 100644 --- a/lang/src/compiler/entry/compiler_stageb.hako +++ b/lang/src/compiler/entry/compiler_stageb.hako @@ -14,6 +14,7 @@ using hako.compiler.entry.bundle_resolver as BundleResolver using lang.compiler.parser.box as ParserBox using lang.compiler.entry.func_scanner as FuncScannerBox using lang.compiler.entry.using_resolver as Stage1UsingResolverBox +using lang.compiler.builder.mod as CompilerBuilder // Phase 25.1c: CLI argument → source resolution static box StageBArgsBox { @@ -647,6 +648,26 @@ static box StageBDriverBox { // 既定で MIR 直出力は行わない(重い経路を避け、一行出力を保証)。 local ast_json = p.parse_program2(body_src) + // 6.3) Apply SSA transformations (CompilerBuilder pipeline) + { + local trace = env.get("HAKO_COMPILER_BUILDER_TRACE") + if trace != null && ("" + trace) == "1" { + local preview_len = 200 + local ajson_len = ("" + ast_json).length() + if ajson_len < preview_len { preview_len = ajson_len } + print("[compiler-builder] before: " + ("" + ast_json).substring(0, preview_len) + "...") + } + + ast_json = CompilerBuilder.apply_all(ast_json) + + if trace != null && ("" + trace) == "1" { + local preview_len = 200 + local ajson_len = ("" + ast_json).length() + if ajson_len < preview_len { preview_len = ajson_len } + print("[compiler-builder] after: " + ("" + ast_json).substring(0, preview_len) + "...") + } + } + // 6.5) Dev-toggle: scan for function definitions (static box { method (...) {...} }) // Toggle: HAKO_STAGEB_FUNC_SCAN // Policy: diff --git a/lang/src/compiler/hako_module.toml b/lang/src/compiler/hako_module.toml index 2e7460ff..ae4c7c80 100644 --- a/lang/src/compiler/hako_module.toml +++ b/lang/src/compiler/hako_module.toml @@ -29,6 +29,7 @@ pipeline_v2.emit_return_box = "pipeline_v2/emit_return_box.hako" pipeline_v2.emit_binop_box = "pipeline_v2/emit_binop_box.hako" # Builder / SSA / Rewrite (scaffolds) +builder.mod = "builder/mod.hako" builder.ssa.local = "builder/ssa/local_ssa.hako" builder.ssa.loop = "builder/ssa/loopssa.hako" builder.ssa.cond_inserter = "builder/ssa/cond_inserter.hako" diff --git a/nyash.toml b/nyash.toml index 48639dee..b42f46bc 100644 --- a/nyash.toml +++ b/nyash.toml @@ -121,8 +121,10 @@ path = "lang/src/shared/common/string_helpers.hako" "selfhost.shared.json.json_inst_encode_box" = "lang/src/shared/json/json_inst_encode_box.hako" "selfhost.shared.common.string_ops" = "lang/src/shared/common/string_ops.hako" "lang.compiler.pipeline_v2.using_resolver" = "lang/src/compiler/pipeline_v2/using_resolver_box.hako" +"lang.compiler.builder.mod" = "lang/src/compiler/builder/mod.hako" "lang.compiler.builder.ssa.localvar" = "lang/src/compiler/builder/ssa/local_ssa.hako" "lang.compiler.builder.ssa.loop" = "lang/src/compiler/builder/ssa/loopssa.hako" +"lang.compiler.builder.ssa.loopssa" = "lang/src/compiler/builder/ssa/loopssa.hako" "lang.compiler.builder.ssa.cond_inserter" = "lang/src/compiler/builder/ssa/cond_inserter.hako" "lang.compiler.builder.rewrite.special" = "lang/src/compiler/builder/rewrite/special.hako" "lang.compiler.builder.rewrite.known" = "lang/src/compiler/builder/rewrite/known.hako"