Files
hakorune/docs/tools/vm-stats-cookbook.md
Moe Charm 70af0fe566 feat: Add HTTP status tests and dynamic plugin documentation
- Add e2e_vm_http_status_404/500 tests to verify HTTP status handling
- ResultBox properly returns Ok(Response) for HTTP errors, Err for connection failures
- Create dynamic-plugin-flow.md documenting MIR→VM→Registry→Plugin flow
- Add vm-stats test files for HTTP 404/500 status codes
- Update net-plugin.md with HTTP error handling clarification
- Create E2E_TESTS.md documenting all E2E test behaviors
- Add mir-26-instruction-diet.md for MIR optimization plans
- Add vm-stats-cookbook.md for VM statistics usage guide
- Update MIR verifier to properly track self-assignment patterns

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-23 16:33:32 +09:00

39 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# VM Stats Cookbook
Collect VM instruction stats (JSON) to guide optimization and instruction set diet.
## Prerequisites
- Build: `cargo build --release -j32`
- Ensure plugins are configured in `nyash.toml` if your program uses them.
## Quick Start
```bash
# Human-readable
./target/release/nyash --backend vm --vm-stats local_tests/vm_stats_http_ok.nyash
# JSON for tooling
./target/release/nyash --backend vm --vm-stats --vm-stats-json local_tests/vm_stats_http_ok.nyash > vm_stats_ok.json
# Or via helper script
tools/run_vm_stats.sh local_tests/vm_stats_http_ok.nyash vm_stats_ok.json
```
## Sample Programs
- `local_tests/vm_stats_http_ok.nyash` — Server responds "OK" to a client GET.
- `local_tests/vm_stats_http_err.nyash` — Client GET to an unreachable port (Result Err path).
- `local_tests/vm_stats_http_404.nyash` — Server returns 404/"NF"; transport成功アプリ層エラーの代表例。
- `local_tests/vm_stats_http_500.nyash` — Server returns 500/"ERR"; 同上。
- `local_tests/vm_stats_filebox.nyash` — FileBox open/write/copyFrom/read.
## Tips
- Enable plugin debugging when needed:
- `NYASH_DEBUG_PLUGIN=1` — Show VM→Plugin TLV header preview.
- `NYASH_NET_LOG=1 NYASH_NET_LOG_FILE=net_plugin.log` — Net plugin logs.
- Env alternative to CLI flags:
- `NYASH_VM_STATS=1` and `NYASH_VM_STATS_JSON=1`.
## Next Steps
- Collect stats for normal and error flows (OK/404/500/unreachable, FileBox)。
- Compare hot instructions across scenariosBoxCall/Const/NewBox の比率、Branch/Jump/Phi の有無)。
- Feed findings into the 26-instruction diet discussionコア維持・メタ降格・型折りたたみ