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

1.2 KiB
Raw Blame History

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:
    [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