Phase 11-12: LLVM backend initial, semantics layer, plugin unification

Major changes:
- LLVM backend initial implementation (compiler.rs, llvm mode)
- Semantics layer integration in interpreter (operators.rs)
- Phase 12 plugin architecture revision (3-layer system)
- Builtin box removal preparation
- MIR instruction set documentation (26→Core-15 migration)
- Cross-backend testing infrastructure
- Await/nowait syntax support

New features:
- LLVM AOT compilation support (--backend llvm)
- Semantics layer for interpreter→VM flow
- Tri-backend smoke tests
- Plugin-only registry mode

Bug fixes:
- Interpreter plugin box arithmetic operations
- Branch test returns incorrect values

Documentation:
- Phase 12 README.md updated with new plugin architecture
- Removed obsolete NYIR proposals
- Added LLVM test programs documentation

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Moe Charm
2025-09-01 23:44:34 +09:00
parent fff9749f47
commit 11506cee3b
196 changed files with 10955 additions and 380 deletions

View File

@ -28,8 +28,11 @@ static box Main {
parseArgs(args) {
local options = new MapBox()
loop(arg in args) {
// foreach は未対応のため、index で明示ループ
local i = 0
local n = args.length()
loop(i < n) {
local arg = args.get(i)
if arg == "--upper" {
options.set("upper", true)
} else if arg == "--lower" {
@ -39,6 +42,7 @@ static box Main {
} else if arg == "--help" || arg == "-h" {
options.set("help", true)
}
i = i + 1
}
return options
@ -47,8 +51,7 @@ static box Main {
processInput() {
loop(true) {
local input = me.console.readLine()
if input == null { break } // EOF
if input == null { return 0 } // EOF → 関数終了に変更break未対応MIR対策
local output = me.transformText(input)
me.console.log(output)
}
@ -75,4 +78,4 @@ static box Main {
me.console.log("")
me.console.log("Reads from stdin and echoes to stdout with optional transformation.")
}
}
}