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

@ -47,6 +47,8 @@ pub struct CliConfig {
pub emit_cfg: Option<String>,
// Verbose CLI
pub cli_verbose: bool,
// Tasks
pub run_task: Option<String>,
}
impl CliConfig {
@ -277,6 +279,12 @@ impl CliConfig {
.value_name("DOT_FILE")
.help("Emit JIT CFG as DOT to file (equivalent to setting NYASH_JIT_DOT)")
)
.arg(
Arg::new("run-task")
.long("run-task")
.value_name("NAME")
.help("Run a named task defined in nyash.toml [tasks]")
)
}
/// Convert ArgMatches to CliConfig
@ -316,6 +324,7 @@ impl CliConfig {
jit_only: matches.get_flag("jit-only"),
jit_direct: matches.get_flag("jit-direct"),
cli_verbose: matches.get_flag("verbose"),
run_task: matches.get_one::<String>("run-task").cloned(),
}
}
}