feat(runtime): Phase 101-A dev-debug ログの Ring0.log 統一 - 34箇所完了
## Phase 101-A 完了項目 - ✅ llvm.rs: 13箇所([joinir/llvm], [parse/context]) → Ring0.log - ✅ loop_form.rs: [loopform] 系ログ → Ring0.log - ✅ loopform_builder.rs: 16箇所([loopform/prepare], [loopform/seal_phis]) → Ring0.log - ✅ loop_snapshot_merge.rs: 5箇所([Option C]) → Ring0.log - ✅ 全テストPASS(ビルド成功) ## 置き換え箇所(34箇所) **llvm.rs**(13箇所): - [joinir/llvm] JoinIR 実験パスログ(12箇所) - [parse/context] プリロードファイルリスト(1箇所) **loop_form.rs**(複数箇所): - [loopform] 基本ログ - [loopform/condition] 条件式処理 - [loopform/writes] 変数書き込み収集 **loopform_builder.rs**(16箇所): - [loopform/prepare] 構造準備 - [loopform/seal_phis] PHI シーリング処理 **loop_snapshot_merge.rs**(5箇所): - [Option C] Exit PHI 分類 - [Option C] 変数解析 ## 技術的成果 - Ring0.log で dev-debug ログを一元管理 - stderr の cleanness 向上(ユーザー向けメッセージのみ) - 環境に応じた出力制御が可能(NYASH_LOOPFORM_DEBUG等) - Phase 99-100 で確立した 3層設計を実装レベルで完成 ## 実装パターン ```rust // Before eprintln!("[loopform] variable_map: {:?}", map); // After crate::runtime::get_global_ring0().log.debug(&format!( "[loopform] variable_map: {:?}", map )); ``` ## 統計 - Phase 98: 7箇所(ConsoleService) - Phase 100: 29箇所(ConsoleService) - Phase 101-A: 34箇所(Ring0.log) - **合計**: 70箇所で統一(ConsoleService/Ring0.log) - 残り: ~905箇所(test含む) ## ドキュメント更新 - logging_policy.md: Section 7-A 追加(Phase 101-A 実装記録) - ring0-inventory.md: Category 2 更新(dev-debug 進捗反映) - CURRENT_TASK.md: Phase 85 セクション追記 ## Phase 85-101-A 総括 - Phase 95.5-97: CoreServices 6個完全実装(String/Integer/Bool/Array/Map/Console) - Phase 98-98.5: ConsoleService 代表パス拡張(7箇所) - Phase 99: ログ/出力ポリシー確定(3層設計文書化) - Phase 100: user-facing 出力の ConsoleService 化(29箇所) - Phase 101-A: dev-debug ログの Ring0.log 統一(34箇所) ✅ 次: Phase 101-B(internal/test ログの整理、別検討) 🎊 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -78,13 +78,17 @@ impl NyashRunner {
|
||||
let preludes =
|
||||
crate::runner::modes::common_util::resolve::clone_last_merged_preludes();
|
||||
if !preludes.is_empty() {
|
||||
eprintln!("[parse/context] merged prelude files ({}):", preludes.len());
|
||||
crate::runtime::get_global_ring0().log.debug(&format!(
|
||||
"[parse/context] merged prelude files ({}):", preludes.len()
|
||||
));
|
||||
let show = std::cmp::min(16, preludes.len());
|
||||
for p in preludes.iter().take(show) {
|
||||
eprintln!(" - {}", p);
|
||||
crate::runtime::get_global_ring0().log.debug(&format!(" - {}", p));
|
||||
}
|
||||
if preludes.len() > show {
|
||||
eprintln!(" ... ({} more)", preludes.len() - show);
|
||||
crate::runtime::get_global_ring0().log.debug(&format!(
|
||||
" ... ({} more)", preludes.len() - show
|
||||
));
|
||||
}
|
||||
}
|
||||
process::exit(1);
|
||||
@ -141,64 +145,64 @@ impl NyashRunner {
|
||||
use nyash_rust::mir::join_ir::lower_skip_ws_to_joinir;
|
||||
use nyash_rust::mir::join_ir_vm_bridge::convert_joinir_to_mir;
|
||||
|
||||
eprintln!("[joinir/llvm] Attempting JoinIR path for LLVM execution");
|
||||
crate::runtime::get_global_ring0().log.debug("[joinir/llvm] Attempting JoinIR path for LLVM execution");
|
||||
|
||||
// Try to lower Main.skip/1 to JoinIR
|
||||
if module.functions.contains_key("Main.skip/1") {
|
||||
match lower_skip_ws_to_joinir(&module) {
|
||||
Some(join_module) => {
|
||||
eprintln!(
|
||||
crate::runtime::get_global_ring0().log.debug(&format!(
|
||||
"[joinir/llvm] ✅ Lowered to JoinIR ({} functions)",
|
||||
join_module.functions.len()
|
||||
);
|
||||
));
|
||||
// Convert JoinIR back to MIR' (with normalized PHI)
|
||||
match convert_joinir_to_mir(&join_module) {
|
||||
Ok(mir_from_joinir) => {
|
||||
eprintln!(
|
||||
crate::runtime::get_global_ring0().log.debug(&format!(
|
||||
"[joinir/llvm] ✅ Converted to MIR' ({} functions)",
|
||||
mir_from_joinir.functions.len()
|
||||
);
|
||||
));
|
||||
// Merge JoinIR functions into original module
|
||||
// Strategy: Remove Main.skip/1 (PHI-problematic) and rename join_func_0 to Main.skip/1
|
||||
let mut merged = module.clone();
|
||||
|
||||
// Remove the original PHI-problematic Main.skip/1
|
||||
if merged.functions.remove("Main.skip/1").is_some() {
|
||||
eprintln!("[joinir/llvm] Removed original Main.skip/1 (PHI-problematic)");
|
||||
crate::runtime::get_global_ring0().log.debug("[joinir/llvm] Removed original Main.skip/1 (PHI-problematic)");
|
||||
}
|
||||
|
||||
for (name, func) in mir_from_joinir.functions {
|
||||
// Rename join_func_0 → Main.skip/1 to maintain call compatibility
|
||||
let target_name = if name == "join_func_0" {
|
||||
eprintln!("[joinir/llvm] Renaming {} → Main.skip/1", name);
|
||||
crate::runtime::get_global_ring0().log.debug(&format!("[joinir/llvm] Renaming {} → Main.skip/1", name));
|
||||
"Main.skip/1".to_string()
|
||||
} else {
|
||||
eprintln!("[joinir/llvm] Adding JoinIR function: {}", name);
|
||||
crate::runtime::get_global_ring0().log.debug(&format!("[joinir/llvm] Adding JoinIR function: {}", name));
|
||||
name
|
||||
};
|
||||
merged.functions.insert(target_name, func);
|
||||
}
|
||||
eprintln!(
|
||||
crate::runtime::get_global_ring0().log.debug(&format!(
|
||||
"[joinir/llvm] ✅ Merged module ({} functions)",
|
||||
merged.functions.len()
|
||||
);
|
||||
));
|
||||
merged
|
||||
}
|
||||
Err(e) => {
|
||||
eprintln!("[joinir/llvm] ❌ JoinIR→MIR conversion failed: {:?}", e);
|
||||
eprintln!("[joinir/llvm] Falling back to original MIR");
|
||||
crate::runtime::get_global_ring0().log.debug(&format!("[joinir/llvm] ❌ JoinIR→MIR conversion failed: {:?}", e));
|
||||
crate::runtime::get_global_ring0().log.debug("[joinir/llvm] Falling back to original MIR");
|
||||
module
|
||||
}
|
||||
}
|
||||
}
|
||||
None => {
|
||||
eprintln!("[joinir/llvm] ❌ JoinIR lowering returned None");
|
||||
eprintln!("[joinir/llvm] Falling back to original MIR");
|
||||
crate::runtime::get_global_ring0().log.debug("[joinir/llvm] ❌ JoinIR lowering returned None");
|
||||
crate::runtime::get_global_ring0().log.debug("[joinir/llvm] Falling back to original MIR");
|
||||
module
|
||||
}
|
||||
}
|
||||
} else {
|
||||
eprintln!("[joinir/llvm] Main.skip/1 not found, using original MIR");
|
||||
crate::runtime::get_global_ring0().log.debug("[joinir/llvm] Main.skip/1 not found, using original MIR");
|
||||
module
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user