Files
hakorune/apps/selfhost-compiler/README.md
Selfhosting Dev af11c6855b 🚀 Start Phase 15.3: Nyash compiler MVP implementation
Major milestone:
- Set up apps/selfhost-compiler/ directory structure
- Implement basic Nyash compiler in Nyash (CompilerBox)
- Stage-1: Basic arithmetic parser (int/string/+/-/*/括弧/return)
- JSON v0 output compatible with --ny-parser-pipe
- Runner integration with NYASH_USE_NY_COMPILER=1 flag
- Comprehensive smoke tests for PHI/Bridge/Stage-2

Technical updates:
- Updated CLAUDE.md with Phase 15.3 status and MIR14 details
- Statement separation policy: newline-based with minimal ASI
- Fixed runaway ny-parser-pipe processes (CPU 94.9%)
- Clarified MIR14 as canonical instruction set (not 13/18)
- LoopForm strategy: PHI auto-generation during reverse lowering

Collaborative development:
- ChatGPT5 implementing compiler skeleton
- Codex provided LoopForm PHI generation guidance
- Claude maintaining documentation and coordination

🎉 セルフホスティングの歴史的一歩!自分自身をコンパイルする日が近いにゃ!

Co-Authored-By: ChatGPT <noreply@openai.com>
2025-09-15 01:21:37 +09:00

19 lines
848 B
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.

# Nyash Selfhost Compiler (MVP scaffold)
This is the Phase 15.3 work-in-progress Nyash compiler implemented in Ny.
Layout
- `compiler.nyash`: entry (CompilerBox). Reads `tmp/ny_parser_input.ny`, prints JSON v0.
- `parser/`: lexer/parser/ast (scaffolds; to be filled as we extend Stage2)
- `mir/`: builder/optimizer stubs (future; current target is JSON v0 emit)
- `tests/`: Stage1/2 samples (TBD)
Run (behind flag)
- `NYASH_USE_NY_COMPILER=1 target/release/nyash --backend vm <program.nyash>`
- The runner writes the input to `tmp/ny_parser_input.ny` and invokes this program.
- It captures a JSON v0 line from stdout and executes it via the JSON bridge.
Notes
- Early MVP emits a minimal JSON v0 (currently a placeholder: return 0). We will gradually wire lexer/parser/emitter.
- Keep JSON v0 spec in `docs/reference/ir/json_v0.md`.