📚 Phase 15計画を詳細化・更新: Python/llvmlite正式採用とプラグイン全方向ビルド戦略

 主な更新内容:
- Python/llvmlite実装の正式採用を明記(開発速度10倍、~2400行)
- プラグイン全方向ビルド戦略(.so/.o/.a同時生成)で単一EXE生成可能に
- 各実装の予想コード量を具体化(パーサー800行、MIR Builder 2500行、VM 5000行)
- 循環依存問題の解決を明記(nyrtがC ABI経由で提供)
- 現実的なスケジュール調整(2025年9月~2026年3月)

🎉 最新進捗:
- dep_tree_min_string.nyashオブジェクト生成成功(10.4KB)
- LLVM verifier green - dominance違反解決
- Resolver patternでSSA安全性確保

🚀 次のマイルストーン:
- Python/llvmliteでEXE生成パイプライン完成
- nyash-llvm-compiler分離設計
- NyashパーサーMVP実装開始

Everything is Boxの究極形が、ついに実現へ!

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Selfhosting Dev
2025-09-13 15:37:58 +09:00
parent 8e4f6d774d
commit 1d6fab4eda
44 changed files with 1653 additions and 598 deletions

View File

@ -50,6 +50,7 @@ fn lower_one_function<'ctx>(
func: &crate::mir::function::MirFunction,
name: &str,
box_type_ids: &HashMap<String, i64>,
llvm_funcs: &HashMap<String, FunctionValue<'ctx>>,
) -> Result<(), String> {
// Create basic blocks (prefix names with function label to avoid any ambiguity)
let fn_label = sanitize_symbol(name);
@ -226,7 +227,7 @@ fn lower_one_function<'ctx>(
callee,
args,
&build_const_str_map(func),
&std::collections::HashMap::new(),
llvm_funcs,
&bb_map,
&preds,
&block_end_values,
@ -579,7 +580,7 @@ impl LLVMCompiler {
// Lower all functions
for (name, func) in &mir_module.functions {
let llvm_func = *llvm_funcs.get(name).ok_or("predecl not found")?;
lower_one_function(&codegen, llvm_func, func, name, &box_type_ids)?;
lower_one_function(&codegen, llvm_func, func, name, &box_type_ids, &llvm_funcs)?;
}
// Build entry wrapper and emit object
@ -587,7 +588,7 @@ impl LLVMCompiler {
}
}
/* BEGIN_OLD_BLOCK
/*
MirInstruction::NewBox { dst, box_type, args } => {
instructions::lower_newbox(
&codegen,
@ -1127,7 +1128,8 @@ impl LLVMCompiler {
}
}
}
END_OLD_BLOCK */
Old duplicate lowering block removed
*/
#[cfg(test)]
mod tests {