feat(mir): Phase 25.1f完了 - Conservative PHI + ControlForm観測レイヤー
🎉 Conservative PHI Box理論による完全SSA構築 **Phase 7-B: Conservative PHI実装** - 片方branchのみ定義変数に対応(emit_void使用) - 全変数にPHI生成(Conservative Box理論) - Stage-1 resolver全テスト緑化(3/3 PASS) **Phase 25.1f: ControlForm観測レイヤー** - LoopShape/IfShape/ControlForm構造定義 - Loop/If統一インターフェース実装 - debug_dump/debug_validate機能追加 - NYASH_CONTROL_FORM_TRACE環境変数対応 **主な変更**: - src/mir/builder/phi.rs: Conservative PHI実装 - src/mir/control_form.rs: ControlForm構造(NEW) - src/mir/loop_builder.rs: LoopForm v2デフォルト化 **テスト結果**: ✅ mir_stage1_using_resolver_min_fragment_verifies ✅ mir_stage1_using_resolver_full_collect_entries_verifies ✅ mir_parserbox_parse_program2_harness_parses_minimal_source 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: ChatGPT <chatgpt@openai.com>
This commit is contained in:
@ -2,7 +2,7 @@ use crate::runner;
|
||||
use serde_json::Value as JsonValue;
|
||||
use std::collections::HashMap;
|
||||
use std::fs;
|
||||
use std::io::Write;
|
||||
// use std::io::Write; // kept for future pretty-print extensions
|
||||
|
||||
/// Convert Program(JSON v0) to MIR(JSON v0) and return it as a String.
|
||||
/// Fail-Fast: prints stable tags on stderr and returns Err with the same tag text.
|
||||
@ -52,7 +52,7 @@ pub fn program_json_to_mir_json_with_imports(program_json: &str, imports: HashMa
|
||||
let _ = fs::remove_file(&tmp_path);
|
||||
// Ensure v1 schema: if output lacks schema_version but has functions, wrap minimally
|
||||
let s = match serde_json::from_str::<JsonValue>(&s0) {
|
||||
Ok(JsonValue::Object(mut m)) => {
|
||||
Ok(JsonValue::Object(m)) => {
|
||||
if m.get("schema_version").is_none() {
|
||||
if let Some(funcs) = m.get("functions").cloned() {
|
||||
let v1 = serde_json::json!({"schema_version":"1.0","functions": funcs});
|
||||
|
||||
Reference in New Issue
Block a user