Setup infrastructure for Phase 22.1 (TLV C shim & Resolver SSOT):
Core changes:
- Add nyash_tlv, nyash_c_core, nyash_kernel_min_c crates (opt-in)
- Implement SSOT resolver bridge (src/using/ssot_bridge.rs)
- Add HAKO_USING_SSOT=1 / HAKO_USING_SSOT_HAKO=1 env support
- Add HAKO_TLV_SHIM=1 infrastructure (requires --features tlv-shim)
MIR builder improvements:
- Fix using/alias consistency in Hako MIR builder
- Add hako.mir.builder.internal.{prog_scan,pattern_util} to nyash.toml
- Normalize LLVM extern calls: nyash.console.* → nyash_console_*
Smoke tests:
- Add phase2211 tests (using_ssot_hako_parity_canary_vm.sh)
- Add phase2220, phase2230, phase2231 test structure
- Add phase2100 S3 backend selector tests
- Improve test_runner.sh with quiet/timeout controls
Documentation:
- Add docs/ENV_VARS.md (Phase 22.1 env vars reference)
- Add docs/development/runtime/C_CORE_ABI.md
- Update de-rust-roadmap.md with Phase 22.x details
Tools:
- Add tools/hakorune_emit_mir.sh (Hako-first MIR emission wrapper)
- Add tools/tlv_roundtrip_smoke.sh placeholder
- Improve ny_mir_builder.sh with better backend selection
Known issues (to be fixed):
- Parser infinite loop in static method parameter parsing
- Stage-B output contamination with "RC: 0" (needs NYASH_JSON_ONLY=1)
- phase2211/using_ssot_hako_parity_canary_vm.sh fork bomb (needs recursion guard)
Next steps: Fix parser infinite loop + Stage-B quiet mode for green tests
24 lines
755 B
Bash
24 lines
755 B
Bash
#!/usr/bin/env bash
|
||
#!/usr/bin/env bash
|
||
# TLV round‑trip smoke (Phase 22.1)
|
||
# Always runs a focused test against the nyash-tlv crate only.
|
||
set -euo pipefail
|
||
|
||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||
echo "[info] Building nyash-tlv (c-shim) ..." >&2
|
||
(
|
||
cd "$ROOT" && cargo build -p nyash-tlv --features c-shim --release >/dev/null
|
||
)
|
||
|
||
python3 - "$ROOT" << 'PY'
|
||
import sys, importlib.util, pathlib, subprocess, json
|
||
root = pathlib.Path(sys.argv[1])
|
||
print("[info] TLV roundtrip (identity)")
|
||
# Since nyash-tlv is a lib crate, we exec `cargo test -p nyash-tlv` as a quick proof.
|
||
rc = subprocess.call(["cargo","test","-p","nyash-tlv","--release","--","identity_roundtrip"], cwd=root)
|
||
sys.exit(0 if rc == 0 else 1)
|
||
PY
|
||
|
||
echo "[PASS] tlv_roundtrip_smoke"
|
||
exit 0
|