Files
hakorune/docs/DEV_QUICKSTART.md
moe-charm b8bdb867d8 Merge selfhosting-dev into main (Core-13 pure CI/tests + LLVM bridge) (#126)
* WIP: sync before merging origin/main

* fix: unify using/module + build CLI; add missing helper in runner; build passes; core smokes green; jit any.len string now returns 3

* Apply local changes after merging main; keep docs/phase-15 removed per main; add phase-15.1 docs and tests

* Remove legacy docs/phase-15/README.md to align with main

* integration: add Core-13 pure CI, tests, and minimal LLVM execute bridge (no docs) (#125)

Co-authored-by: Tomoaki <tomoaki@example.com>

---------

Co-authored-by: Selfhosting Dev <selfhost@example.invalid>
Co-authored-by: Tomoaki <tomoaki@example.com>
2025-09-07 07:36:15 +09:00

36 lines
1.2 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.

# Developer Quickstart
This quickstart summarizes the most common build/run/test flows when working on Nyash.
See also
- Selfhosting onepager: `docs/self-hosting.md`
## Build
- VM/JIT (Cranelift): `cargo build --release --features cranelift-jit`
- LLVM AOT: `LLVM_SYS_180_PREFIX=$(llvm-config-18 --prefix) cargo build --release --features llvm`
## Run
- Quick VM run: `./target/release/nyash --backend vm apps/APP/main.nyash`
- LLVM emit+link helper: `tools/build_llvm.sh apps/APP/main.nyash -o app`
## Smokes
- Endtoend LLVM smokes: `./tools/llvm_smoke.sh release`
- Use env toggles like `NYASH_LLVM_VINVOKE_RET_SMOKE=1`
## Syntax Sugar (Phase 12.7)
- Control via env: `NYASH_SYNTAX_SUGAR_LEVEL=none|basic|full`
- Or via `nyash.toml`:
```toml
[syntax]
sugar_level = "none" # or "basic" / "full"
```
## MIR Migration Notes
- Implementation currently enforces Core15 during migration with tests in place.
- Core13 is the final minimal kernel target. The final flip documentation is tracked under:
`docs/development/roadmap/mir/core-13/step-50/`.
## Testing
- Rust unit tests: `cargo test`
- Targeted: e.g., tokenizer/sugar config `cargo test --lib sugar_basic_test -- --nocapture`