phase-20.39 step1: introduce typed IR shadow in hv1 dispatcher; step2: remove hv1 include fallback from verify (direct route only); add IR types module export; docs+current_task updated

This commit is contained in:
nyash-codex
2025-11-04 16:45:01 +09:00
parent 30aa39f50b
commit ab81564174
14 changed files with 327 additions and 5368 deletions

View File

@ -269,17 +269,6 @@ verify_mir_rc() {
if [ "${HAKO_VERIFY_V1_FORCE_CORE:-0}" = "1" ]; then
"$NYASH_BIN" --mir-json-file "$json_path" >/dev/null 2>&1; return $?
fi
# Inline driver (env JSON): avoid embedding large JSON literal to keep parser robust
local code_v1=$(cat <<'HCODE'
using selfhost.vm.hv1.dispatch as NyVmDispatcherV1Box
static box Main { method main(args) {
local j = env.get("NYASH_VERIFY_JSON")
local rc = NyVmDispatcherV1Box.run(j)
print("" + rc)
return rc
} }
HCODE
)
# hv1 直行NyashParserバイパス: vm.rs冒頭で NYASH_VERIFY_JSON を検知して MIR 実行
local out_v1; out_v1=$(HAKO_V1_FLOW_TRACE=1 HAKO_V1_EXTERN_PROVIDER=1 HAKO_V1_DISPATCHER_FLOW=1 HAKO_V1_ALLOW_PHI_EXPERIMENT=1 \
HAKO_FAIL_FAST_ON_HAKO_IN_NYASH_VM=0 HAKO_ROUTE_HAKOVM=1 \
@ -288,28 +277,6 @@ HCODE
if [[ "$out_v1" =~ ^-?[0-9]+$ ]]; then
local n=$out_v1; if [ $n -lt 0 ]; then n=$(( (n % 256 + 256) % 256 )); else n=$(( n % 256 )); fi; return $n
fi
# Optional dev fallback: prelude_v1 include + preincludealias-only が安定したら撤去)
if [ "${SMOKES_HV1_INCLUDE_FALLBACK:-0}" = "1" ]; then
local code_v1_inc=$(cat <<'HCODE'
include "lang/src/vm/hakorune-vm/prelude_v1.hako"
static box Main { method main(args) {
local j = env.get("NYASH_VERIFY_JSON")
local rc = NyVmDispatcherV1Box.run(j)
print("" + rc)
return rc
} }
HCODE
)
out_v1=$(HAKO_ENABLE_USING=1 NYASH_ENABLE_USING=1 NYASH_USING_AST=1 \
HAKO_PREINCLUDE=1 NYASH_PREINCLUDE=1 \
HAKO_V1_FLOW_TRACE=1 HAKO_V1_EXTERN_PROVIDER=1 HAKO_V1_DISPATCHER_FLOW=1 HAKO_V1_ALLOW_PHI_EXPERIMENT=1 \
HAKO_FAIL_FAST_ON_HAKO_IN_NYASH_VM=0 \
NYASH_VERIFY_JSON="$(cat "$json_path")" \
run_nyash_vm -c "$code_v1_inc" 2>/dev/null | tr -d '\r' | awk '/^-?[0-9]+$/{n=$0} END{if(n!="") print n}')
if [[ "$out_v1" =~ ^-?[0-9]+$ ]]; then
local n=$out_v1; if [ $n -lt 0 ]; then n=$(( (n % 256 + 256) % 256 )); else n=$(( n % 256 )); fi; return $n
fi
fi
# No include+preinclude fallback succeeded → Core にフォールバック
"$NYASH_BIN" --mir-json-file "$json_path" >/dev/null 2>&1
return $?