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:
38
README.ja.md
38
README.ja.md
@ -128,6 +128,13 @@ cargo build --release --features cranelift-jit
|
||||
tools/smoke_aot_vs_vm.sh examples/aot_min_string_len.nyash
|
||||
```
|
||||
|
||||
### LLVM バックエンドの補足
|
||||
- `NYASH_LLVM_OBJ_OUT`: `--backend llvm` 実行時に `.o` を出力するパス。
|
||||
- 例: `NYASH_LLVM_OBJ_OUT=$PWD/nyash_llvm_temp.o ./target/release/nyash --backend llvm apps/ny-llvm-smoke/main.nyash`
|
||||
- `NYASH_LLVM_ALLOW_BY_NAME=1`: デバッグ専用の by-name フォールバック(by-id が未提供の場合の暫定措置)。
|
||||
- 開発時のみ有効化してください(本番では無効)。
|
||||
|
||||
|
||||
### 5. **WebAssembly** (ブラウザ用)
|
||||
```bash
|
||||
cargo build --release --features wasm-backend
|
||||
@ -139,6 +146,35 @@ cargo build --release --features wasm-backend
|
||||
|
||||
---
|
||||
|
||||
## 🧰 タスク実行 (nyash.toml)
|
||||
|
||||
`nyash.toml` の `[tasks]` と `[env]` で、ビルド/スモークなどのタスクを簡単に実行できます(MVP)。
|
||||
|
||||
例(nyash.toml の末尾に追記):
|
||||
|
||||
```
|
||||
[env]
|
||||
RUST_BACKTRACE = "1"
|
||||
|
||||
[tasks]
|
||||
build_llvm = "LLVM_SYS_180_PREFIX=$(llvm-config-18 --prefix) cargo build --release --features llvm"
|
||||
smoke_obj_array = "NYASH_LLVM_OBJ_OUT={root}/nyash_llvm_temp.o ./target/release/nyash --backend llvm apps/ny-llvm-smoke/main.nyash"
|
||||
```
|
||||
|
||||
実行:
|
||||
|
||||
```
|
||||
./target/release/nyash --run-task build_llvm
|
||||
./target/release/nyash --run-task smoke_obj_array
|
||||
```
|
||||
|
||||
補足:
|
||||
- `[env]` の値は実行前に環境へ適用されます。
|
||||
- `{root}` は現在のプロジェクトルートに展開されます。
|
||||
- 現状は最小機能(OS別/依存/並列は未対応)。
|
||||
|
||||
---
|
||||
|
||||
## 📊 **パフォーマンスベンチマーク**
|
||||
|
||||
実世界ベンチマーク結果 (ny_bench.nyash):
|
||||
@ -325,6 +361,8 @@ box GameObject {
|
||||
- 📚 ドキュメントの改善
|
||||
- 🎮 クールなサンプルプログラム
|
||||
|
||||
詳細は `AGENTS.md`(Repository Guidelines)をご参照ください。プロジェクト構成、ビルド/テスト手順、PRの要件を簡潔にまとめています。
|
||||
|
||||
## 📄 **ライセンス**
|
||||
|
||||
MIT ライセンス - プロジェクトで自由に使用してください!
|
||||
|
||||
Reference in New Issue
Block a user