Phase 10_6b scheduler complete; 10_4 GC hooks + counting/strict tracing; 10_c minimal JIT path (i64/bool consts, binop/compare/return, hostcall opt-in); docs & examples; add Phase 10.7 roadmap (JIT branch wiring + minimal ABI).

This commit is contained in:
Moe Charm
2025-08-27 17:06:46 +09:00
parent de03514085
commit ddae7fe1fc
67 changed files with 4618 additions and 268 deletions

View File

@ -161,6 +161,31 @@ JSON出力例:
ベンチマークと併用して、ホット命令の抽出・命令セット最適化に活用できます。
### ⏱️ 協調スケジューラPhase 10.6b
- VMはMIRの`safepoint`命令到達時にランタイムのスケジューラ`poll()`を呼びます。
- シングルスレ実装(既定)では、`spawn`/`spawn_after`で投入されたタスクを safepoint ごとに最大N件実行します。
- 制御: `NYASH_SCHED_POLL_BUDGET`(既定: 1でNを指定。
デモ実行:
```bash
cargo build --release -j32
NYASH_SCHED_DEMO=1 NYASH_SCHED_POLL_BUDGET=2 \
./target/release/nyash --backend vm examples/scheduler_demo.nyash
```
### 🧹 GCトレーシングPhase 10.4
- カウンタ有効化: `NYASH_GC_COUNTING=1`CountingGcを注入
- 出力レベル: `NYASH_GC_TRACE=1/2/3`
- 1: safepoint/barrierログカウンタ
- 2: + ルート内訳
- 3: + depth=2 リーチャビリティ概要
- 厳格検証: `NYASH_GC_BARRIER_STRICT=1`Write-Barrier未増分ならpanic
```bash
NYASH_GC_COUNTING=1 NYASH_GC_TRACE=2 \
./target/release/nyash --backend vm examples/scheduler_demo.nyash
```
## 🌐 WASM実行Web対応
### 特徴
@ -371,3 +396,20 @@ nyash --compile-wasm app.nyash -o public/app.wat
最終更新: 2025-08-14
作成者: Nyash Development Team
### 🔥 JIT実行Phase 10_c 最小経路)
- 有効化: `NYASH_JIT_EXEC=1` とし、`NYASH_JIT_THRESHOLD=1` でホット判定しきい値を下げる
- 追加情報: `NYASH_JIT_STATS=1` でJITコンパイル/実行時間、サイト集計を出力
- ダンプ: `NYASH_JIT_DUMP=1` でLowerカバレッジ/emit統計を表示
- HostCall配列/Map最小: `NYASH_JIT_HOSTCALL=1`
例:
```bash
NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 NYASH_JIT_HOSTCALL=1 NYASH_JIT_STATS=1 \
./target/release/nyash --backend vm examples/scheduler_demo.nyash
```
現状のカバレッジCore-1
- Const(i64/bool), BinOp(Add/Sub/Mul/Div/Mod), Compare(Eq/Ne/Lt/Le/Gt/Ge), Return
- Paramのi64経路複数引数対応
- Array/Mapの最小HostCalllen/get/set/push/size
- Branch/Jumpは統計カウントCLIFブロック配線は後続フェーズで拡張