Phase 21.7 normalization: optimization pre-work + bench harness expansion
- Add opt-in optimizations (defaults OFF) - Ret purity verifier: NYASH_VERIFY_RET_PURITY=1 - strlen FAST enhancement for const handles - FAST_INT gate for same-BB SSA optimization - length cache for string literals in llvmlite - Expand bench harness (tools/perf/microbench.sh) - Add branch/call/stringchain/arraymap/chip8/kilo cases - Auto-calculate ratio vs C reference - Document in benchmarks/README.md - Compiler health improvements - Unify PHI insertion to insert_phi_at_head() - Add NYASH_LLVM_SKIP_BUILD=1 for build reuse - Runtime & safety enhancements - Clarify Rust/Hako ownership boundaries - Strengthen receiver localization (LocalSSA/pin/after-PHIs) - Stop excessive PluginInvoke→BoxCall rewrites - Update CURRENT_TASK.md, docs, and canaries 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
18
README.ja.md
18
README.ja.md
@ -32,6 +32,12 @@ ExternCall(env.*)と println 正規化: `docs/reference/runtime/externcall.m
|
||||
- `NYASH_DEV_DISABLE_LEGACY_METHOD_REWRITE=1`
|
||||
- JSON出力は unified ON で v1、OFF で v0(従来)
|
||||
|
||||
呼び出し実行(VM側の既定)
|
||||
- VM は `Callee` 種別でルーティング(Global/Method/Extern/…)。
|
||||
- callee なしのレガシー by‑name 呼び出しは廃止。Builder は常に `Callee` を付与してね(付与がない場合は Fail‑Fast)。
|
||||
- Extern の実体ディスパッチ(SSOT)は `src/backend/mir_interpreter/handlers/calls/externs.rs` に集約。`env.get` などの Global からもここに委譲する方針だよ。
|
||||
- arity サフィックスの正規化: `env.get/1` のような表記も受理し、`env.get` に正規化してからディスパッチするよ。
|
||||
|
||||
開発計測(任意)
|
||||
- `resolve.choose` の Known 率をKPIとして出力
|
||||
- `NYASH_DEBUG_KPI_KNOWN=1`(有効化)
|
||||
@ -52,6 +58,18 @@ ExternCall(env.*)と println 正規化: `docs/reference/runtime/externcall.m
|
||||
- 例: `using: duplicate import of '<canon_path>' at file.hako:12 (previous alias 'X' first seen at line 5)`
|
||||
- 重複を削除/統合して解消してください。
|
||||
|
||||
### パフォーマンス(MIR & AOT)
|
||||
- MIR 生成ベンチ(Stage‑B → MIR(JSON))
|
||||
- `tools/perf/bench_hakorune_emit_mir.sh apps/examples/json_query/main.hako 5`
|
||||
- 環境トグル: `HAKO_USING_RESOLVER_FIRST=1`, `HAKO_SELFHOST_BUILDER_FIRST=1`
|
||||
- MIR(JSON) → obj/exe ベンチ(ny-llvmc/crate)
|
||||
- `NYASH_LLVM_BACKEND=crate tools/perf/bench_ny_mir_builder.sh /tmp/program.mir.json 3`
|
||||
- 任意: `HAKO_LLVM_OPT_LEVEL=1`(既定 O0)
|
||||
- MIR(JSON) 構造比較
|
||||
- `tools/perf/compare_mir_json.sh out_before.json out_after.json`
|
||||
|
||||
詳細: `docs/guides/perf/benchmarks.md`
|
||||
|
||||
Phase‑15(2025‑09)アップデート
|
||||
- LLVM は ny‑llvmc(クレート backend)が主線。llvmlite は内部ハーネスとして ny‑llvmc から呼び出されます(利用者は ny‑llvmc/スクリプトを使えばOK)。
|
||||
- パーサの改行処理は TokenCursor に統一中(`NYASH_PARSER_TOKEN_CURSOR=1`)。
|
||||
|
||||
Reference in New Issue
Block a user