Phase 25.1b: Step2完了(FuncBodyBasicLowerBox導入)
Step2実装内容: - FuncBodyBasicLowerBox導入(defs専用下請けモジュール) - _try_lower_local_if_return実装(Local+単純if) - _inline_local_ints実装(軽い正規化) - minimal lowers統合(Return/BinOp/IfCompare/MethodArray系) Fail-Fast体制確立: - MirBuilderBox: defs_onlyでも必ずタグ出力 - [builder/selfhost-first:unsupported:defs_only] - [builder/selfhost-first:unsupported:no_match] Phase構造整備: - Phase 25.1b README新設(Step0-3計画) - Phase 25.2b README新設(次期計画) - UsingResolverBox追加(using system対応準備) スモークテスト: - stage1_launcher_program_to_mir_canary_vm.sh追加 Next: Step3 LoopForm対応 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -155,6 +155,34 @@ impl NyashRunner {
|
||||
crate::runner::modes::common_util::hako::strip_local_decl(&code_final);
|
||||
}
|
||||
|
||||
// Optional: dump merged Hako source after using/prelude merge and Hako normalization.
|
||||
// Guarded by env; defaultはOFF(Phase 25.1a selfhost builder デバッグ用)。
|
||||
if std::env::var("NYASH_VM_DUMP_MERGED_HAKO")
|
||||
.ok()
|
||||
.as_deref()
|
||||
== Some("1")
|
||||
{
|
||||
let default_path = {
|
||||
let mut tmp = std::env::temp_dir();
|
||||
tmp.push("nyash_merged_vm.hako");
|
||||
tmp
|
||||
};
|
||||
let path = std::env::var("NYASH_VM_DUMP_MERGED_HAKO_PATH")
|
||||
.ok()
|
||||
.filter(|p| !p.is_empty())
|
||||
.unwrap_or_else(|| default_path.to_string_lossy().into_owned());
|
||||
|
||||
if let Err(e) = fs::write(&path, &code_final) {
|
||||
if trace {
|
||||
eprintln!("[vm/merged-hako] failed to write {}: {}", path, e);
|
||||
}
|
||||
} else if trace
|
||||
|| crate::config::env::env_bool("NYASH_VM_DUMP_MERGED_HAKO_LOG")
|
||||
{
|
||||
eprintln!("[vm/merged-hako] dumped merged code to {}", path);
|
||||
}
|
||||
}
|
||||
|
||||
if trace && (std::env::var("NYASH_PARSER_STAGE3").ok() == Some("1".into())
|
||||
|| std::env::var("HAKO_PARSER_STAGE3").ok() == Some("1".into()))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user