phase15: update CLAUDE.md with Phase 15 enhancements from AGENTS.md

- Add JIT Self-Host Quickstart section for Phase 15
- Include important flags reference (plugins, parsers, debugging)
- Add Codex async workflow documentation for parallel tasks
- Update test execution with Phase 15 smoke tests
- Improve build time notes (JIT vs LLVM)
- Align with current Phase 15 progress and tooling

🎉 Bootstrap (c0→c1→c1') test confirmed working\!

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Tomoaki
2025-09-05 15:18:13 +09:00
parent a2b89fae7e
commit e323120c59
19 changed files with 393 additions and 62 deletions

View File

@ -10,21 +10,25 @@ This roadmap is a living checklist to advance Phase 15 with small, safe boxes. U
- [x] Docs path unify (phase-15 under roadmap tree)
- [x] Direct bridge (design + skeleton; feature-gated)
- [x] AOT P2 stubs (CraneliftAotBox/LinkerBox) + RUN smoke wiring
- [x] JITonly baseline stabilized (core smokes green; plugins optional)
- [x] Roundtrip (Case A/B) aligned; Case A reenabled via parser pipe
- [x] using/namespace (gated) + nyash.link minimal resolver
- [x] NyModules + ny_plugins regression suite (Windows path normalization/namespace derivation)
- [x] Standard Ny scripts scaffolds added (string/array/map P0) + examples + jit_smoke
## Next (small boxes)
1) Ny config loader (Ny-only)
- FileBox + TOMLBox to read `nyash.toml` → Map (env/tasks/plugins/box_types)
- Deliver as `apps/std/ny-config.nyash` with simple API: `read_root()`, `load_toml()`, `get_env()/get_tasks()`
2) Ny script plugins enumeration
- Add `[ny_plugins]` to `nyash.toml` for pure Nyash plugins
- Runner opt-in hook: `NYASH_LOAD_NY_PLUGINS=1`/`--load-ny-plugins` to include/register in order
3) Direct bridge (v0) rollout
- `--parser ny`/`NYASH_USE_NY_PARSER=1` routes to in-proc bridge (subset: return/int/+ - * /, parens)
- Keep JSON as debug dump (`NYASH_DUMP_JSON_IR=1`)
- Expand smokes + parity checks with rust path
4) AOT P2 (stub→first run)
- Emit `.obj/.o` → link → run; measure time/size; log instructions
1) Standard Ny std impl (P0→実体化)
- Implement P0 methods for string/array/map in Nyash (keep NyRT primitives minimal)
- Enable via `nyash.toml` `[ny_plugins]` (optin); extend `tools/jit_smoke.sh`
2) Ny compiler MVP (Ny→MIR on JIT path)
- Ny tokenizer + recursivedescent parser (current subset) in Ny; drive existing MIR builder
- Flag path: `NYASH_USE_NY_COMPILER=1` to switch rust→ny compiler; rust parser as fallback
- Add apps/selfhost-compiler/ and minimal smokes
3) Bootstrap loop (c0→c1→c1)
- Use existing trace/hash harness to compare parity; add optional CI gate
4) Plugins CI split (継続)
- Core alwayson (JIT, plugins disabled); Plugins as optional job (strict off by default)
## Later (incremental)
@ -33,6 +37,9 @@ This roadmap is a living checklist to advance Phase 15 with small, safe boxes. U
- 12.7 sugars normalized patterns in bridge (?. / ?? / range)
- E2E CI-lite matrix (no LLVM) for v0/v1/bridge roundtrip
- Ny script plugin examples under `apps/plugins-scripts/`
- Expand std Ny impl (String P1: trim/split/startsWith/endsWith; Array P1: map/each/filter; Map P1: values/entries/forEach)
- using/nyash.link E2E samples under `apps/` (small project template)
- Tighten Plugins job: migrate samples to Core13; reenable strict diagnostics
## Operational switches
@ -48,7 +55,7 @@ This roadmap is a living checklist to advance Phase 15 with small, safe boxes. U
## Stop criteria (Phase 15)
- v0 E2E green (parser pipe + direct bridge)
- v0 E2E green (parser pipe + direct bridge) including Ny compiler MVP switch
- v1 minimal samples pass via JSON bridge
- AOT P2: emit→link→run stable for constant/arith
- Docs/recipes usable on Windows/Unix