Major additions:
- Phase 11.8 MIR cleanup specification (Core-15→14→13 roadmap)
- Nyash ABI unified design document (3×u64 structure)
- TaskGroupBox foundation with cancelAll/joinAll methods
- Enhanced async/await with checkpoint auto-insertion
- Structured concurrency preparation (parent-child task relationships)
Documentation:
- docs/development/roadmap/phases/phase-11.8_mir_cleanup/: Complete Core-13 path
- docs/development/roadmap/phases/phase-12/NYASH-ABI-DESIGN.md: Unified ABI spec
- Updated Phase 12 README with AOT/JIT explanation for script performance
- Added async_task_system/ design docs
Implementation progress:
- FutureBox spawn tracking with weak/strong reference management
- VM checkpoint integration before/after await
- LLVM backend async support preparation
- Verifier rules for await-checkpoint enforcement
- Result<T,E> normalization for timeout/cancellation
Technical insights:
- MIR as 'atomic instructions', Box as 'molecules' philosophy
- 'Everything is Box' enables full-stack with minimal instructions
- Unified BoxCall for array/plugin/async operations future consolidation
Next steps:
- Complete TaskGroupBox implementation
- Migrate from global to scoped task management
- Implement LIFO cleanup on scope exit
- Continue Core-13 instruction consolidation
🚀 'From 15 atoms to infinite programs: The Nyash Box Theory'
19 lines
694 B
Bash
19 lines
694 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
ROOT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
|
BIN="$ROOT_DIR/target/release/nyash"
|
|
APP="$ROOT_DIR/apps/tests/async-spawn-instance/main.nyash"
|
|
|
|
echo "[smoke] Building nyash (cranelift-jit)"
|
|
cargo build --release --features cranelift-jit >/dev/null
|
|
|
|
echo "[smoke] VM run (10s timeout)"
|
|
timeout 10s env NYASH_PLUGIN_ONLY=1 NYASH_AWAIT_MAX_MS=5000 "$BIN" --backend vm "$APP" | tee /tmp/ny_vm.out || true
|
|
|
|
echo "[smoke] JIT run (10s timeout)"
|
|
timeout 10s env NYASH_PLUGIN_ONLY=1 NYASH_AWAIT_MAX_MS=5000 "$BIN" --backend cranelift "$APP" | tee /tmp/ny_jit.out || true
|
|
|
|
echo "[smoke] LLVM AOT skipped for this test (no 'env' binding in source)"
|
|
|
|
echo "[smoke] Done"
|