phase: 20.49 COMPLETE; 20.50 Flow+String minimal reps; 20.51 selfhost v0/v1 minimal (Option A/B); hv1-inline binop/unop/copy; docs + run_all + CURRENT_TASK -> 21.0

This commit is contained in:
nyash-codex
2025-11-06 15:41:52 +09:00
parent 2dc370223d
commit 77d4fd72b3
1658 changed files with 6288 additions and 2612 deletions

View File

@ -35,8 +35,8 @@ if [[ "${NYASH_LLVM_BITOPS_SMOKE:-0}" == "1" ]]; then
echo "[llvm-smoke] building + linking apps/ny-llvm-bitops ..." >&2
OBJ_BIT="$PWD/target/aot_objects/bitops_smoke.o"
rm -f "$OBJ_BIT"
NYASH_LLVM_OBJ_OUT="$OBJ_BIT" "$BIN" --backend llvm apps/tests/ny-llvm-bitops/main.nyash >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_BIT" ./tools/build_llvm.sh apps/tests/ny-llvm-bitops/main.nyash -o app_bitops_llvm >/dev/null || true
NYASH_LLVM_OBJ_OUT="$OBJ_BIT" "$BIN" --backend llvm apps/tests/ny-llvm-bitops/main.hako >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_BIT" ./tools/build_llvm.sh apps/tests/ny-llvm-bitops/main.hako -o app_bitops_llvm >/dev/null || true
echo "[llvm-smoke] running app_bitops_llvm ..." >&2
out_bit=$(./app_bitops_llvm || true)
echo "[llvm-smoke] output: $out_bit" >&2
@ -52,9 +52,9 @@ fi
echo "[llvm-smoke] building nyash (${MODE}, feature=${LLVM_FEATURE})..." >&2
cargo build -q ${MODE:+--${MODE}} --features "${LLVM_FEATURE}"
echo "[llvm-smoke] running --backend llvm on examples/llvm11_core_smoke.nyash ..." >&2
echo "[llvm-smoke] running --backend llvm on examples/llvm11_core_smoke.hako ..." >&2
rm -f "$OBJ"
NYASH_LLVM_USE_HARNESS=1 NYASH_LLVM_OBJ_OUT="$OBJ" "$BIN" --backend llvm examples/llvm11_core_smoke.nyash >/dev/null || true
NYASH_LLVM_USE_HARNESS=1 NYASH_LLVM_OBJ_OUT="$OBJ" "$BIN" --backend llvm examples/llvm11_core_smoke.hako >/dev/null || true
if [[ ! -f "$OBJ" ]]; then
echo "error: expected object not found: $OBJ" >&2
@ -69,14 +69,14 @@ echo "[llvm-smoke] OK: object generated: $OBJ ($(stat -c%s "$OBJ") bytes)" >&2
# --- Stage-3 loop control smoke (break/continue) ---
if [[ "${NYASH_LLVM_STAGE3_SMOKE:-0}" == "1" ]]; then
echo "[llvm-smoke] building + linking apps/tests/llvm_stage3_loop_only.nyash ..." >&2
echo "[llvm-smoke] building + linking apps/tests/llvm_stage3_loop_only.hako ..." >&2
OBJ_STAGE3="$PWD/target/aot_objects/stage3_loop_smoke.o"
rm -f "$OBJ_STAGE3"
# Loop-only case: harness should succeed (no exceptions in IR)
NYASH_LLVM_USE_HARNESS=1 NYASH_LLVM_OBJ_OUT="$OBJ_STAGE3" \
"$BIN" --backend llvm apps/tests/llvm_stage3_loop_only.nyash >/dev/null || true
"$BIN" --backend llvm apps/tests/llvm_stage3_loop_only.hako >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_STAGE3" \
./tools/build_llvm.sh apps/tests/llvm_stage3_loop_only.nyash -o app_stage3_loop >/dev/null || true
./tools/build_llvm.sh apps/tests/llvm_stage3_loop_only.hako -o app_stage3_loop >/dev/null || true
echo "[llvm-smoke] running app_stage3_loop ..." >&2
out_stage3=$(./app_stage3_loop || true)
echo "[llvm-smoke] output: $out_stage3" >&2
@ -95,8 +95,8 @@ if [[ "${NYASH_LLVM_ARRAY_SMOKE:-0}" == "1" ]]; then
# Pre-emit object explicitly (more stable)
OBJ_ARRAY="$PWD/target/aot_objects/array_smoke.o"
rm -f "$OBJ_ARRAY"
NYASH_LLVM_OBJ_OUT="$OBJ_ARRAY" "$BIN" --backend llvm apps/tests/ny-llvm-smoke/main.nyash >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_ARRAY" ./tools/build_llvm.sh apps/tests/ny-llvm-smoke/main.nyash -o app_link >/dev/null
NYASH_LLVM_OBJ_OUT="$OBJ_ARRAY" "$BIN" --backend llvm apps/tests/ny-llvm-smoke/main.hako >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_ARRAY" ./tools/build_llvm.sh apps/tests/ny-llvm-smoke/main.hako -o app_link >/dev/null
echo "[llvm-smoke] running app_link ..." >&2
out_smoke=$(./app_link || true)
echo "[llvm-smoke] output: $out_smoke" >&2
@ -117,8 +117,8 @@ if [[ "${NYASH_LLVM_ARRAY_RET_SMOKE:-0}" == "1" ]] && [[ "${NYASH_DISABLE_PLUGIN
fi
OBJ_AR="$PWD/target/aot_objects/array_ret_smoke.o"
rm -f "$OBJ_AR"
NYASH_LLVM_OBJ_OUT="$OBJ_AR" "$BIN" --backend llvm apps/tests/ny-array-llvm-ret/main.nyash >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_AR" ./tools/build_llvm.sh apps/tests/ny-array-llvm-ret/main.nyash -o app_array_ret_llvm >/dev/null || true
NYASH_LLVM_OBJ_OUT="$OBJ_AR" "$BIN" --backend llvm apps/tests/ny-array-llvm-ret/main.hako >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_AR" ./tools/build_llvm.sh apps/tests/ny-array-llvm-ret/main.hako -o app_array_ret_llvm >/dev/null || true
echo "[llvm-smoke] running app_array_ret_llvm ..." >&2
out_ar=$(./app_array_ret_llvm || true)
echo "[llvm-smoke] output: $out_ar" >&2
@ -136,8 +136,8 @@ if [[ "${NYASH_LLVM_ECHO_SMOKE:-0}" == "1" ]]; then
echo "[llvm-smoke] building + linking apps/ny-echo-lite ..." >&2
OBJ_ECHO="$PWD/target/aot_objects/echo_smoke.o"
rm -f "$OBJ_ECHO"
NYASH_LLVM_OBJ_OUT="$OBJ_ECHO" "$BIN" --backend llvm apps/tests/ny-echo-lite/main.nyash >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_ECHO" ./tools/build_llvm.sh apps/tests/ny-echo-lite/main.nyash -o app_echo_llvm >/dev/null
NYASH_LLVM_OBJ_OUT="$OBJ_ECHO" "$BIN" --backend llvm apps/tests/ny-echo-lite/main.hako >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_ECHO" ./tools/build_llvm.sh apps/tests/ny-echo-lite/main.hako -o app_echo_llvm >/dev/null
echo "[llvm-smoke] running app_echo_llvm with stdin ..." >&2
echo "hello-llvm" | ./app_echo_llvm > /tmp/ny_echo_llvm.out || true
read -r first_line < /tmp/ny_echo_llvm.out || true
@ -161,8 +161,8 @@ if [[ "${NYASH_LLVM_MAP_SMOKE:-0}" == "1" ]] && [[ "${NYASH_DISABLE_PLUGINS:-0}"
# Pre-emit object to avoid current lowering gaps, then link
OBJ_MAP="$PWD/target/aot_objects/map_smoke.o"
rm -f "$OBJ_MAP"
NYASH_LLVM_OBJ_OUT="$OBJ_MAP" "$BIN" --backend llvm apps/tests/ny-map-llvm-smoke/main.nyash >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_MAP" ./tools/build_llvm.sh apps/tests/ny-map-llvm-smoke/main.nyash -o app_map_llvm >/dev/null || true
NYASH_LLVM_OBJ_OUT="$OBJ_MAP" "$BIN" --backend llvm apps/tests/ny-map-llvm-smoke/main.hako >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_MAP" ./tools/build_llvm.sh apps/tests/ny-map-llvm-smoke/main.hako -o app_map_llvm >/dev/null || true
echo "[llvm-smoke] running app_map_llvm ..." >&2
out_map=$(./app_map_llvm || true)
echo "[llvm-smoke] output: $out_map" >&2
@ -183,8 +183,8 @@ if [[ "${NYASH_LLVM_VINVOKE_SMOKE:-0}" == "1" ]] && [[ "${NYASH_DISABLE_PLUGINS:
fi
OBJ_V="$PWD/target/aot_objects/vinvoke_smoke.o"
rm -f "$OBJ_V"
NYASH_LLVM_OBJ_OUT="$OBJ_V" "$BIN" --backend llvm apps/tests/ny-vinvoke-smoke/main.nyash >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_V" ./tools/build_llvm.sh apps/tests/ny-vinvoke-smoke/main.nyash -o app_vinvoke_llvm >/dev/null || true
NYASH_LLVM_OBJ_OUT="$OBJ_V" "$BIN" --backend llvm apps/tests/ny-vinvoke-smoke/main.hako >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_V" ./tools/build_llvm.sh apps/tests/ny-vinvoke-smoke/main.hako -o app_vinvoke_llvm >/dev/null || true
echo "[llvm-smoke] running app_vinvoke_llvm ..." >&2
out_v=$(./app_vinvoke_llvm || true)
echo "[llvm-smoke] output: $out_v" >&2
@ -205,8 +205,8 @@ if [[ "${NYASH_LLVM_VINVOKE_RET_SMOKE:-0}" == "1" ]] && [[ "${NYASH_DISABLE_PLUG
fi
OBJ_VR="$PWD/target/aot_objects/vinvoke_ret_smoke.o"
rm -f "$OBJ_VR"
NYASH_LLVM_OBJ_OUT="$OBJ_VR" "$BIN" --backend llvm apps/tests/ny-vinvoke-llvm-ret/main.nyash >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_VR" ./tools/build_llvm.sh apps/tests/ny-vinvoke-llvm-ret/main.nyash -o app_vinvoke_ret_llvm >/dev/null || true
NYASH_LLVM_OBJ_OUT="$OBJ_VR" "$BIN" --backend llvm apps/tests/ny-vinvoke-llvm-ret/main.hako >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_VR" ./tools/build_llvm.sh apps/tests/ny-vinvoke-llvm-ret/main.hako -o app_vinvoke_ret_llvm >/dev/null || true
echo "[llvm-smoke] running app_vinvoke_ret_llvm ..." >&2
out_vr=$(./app_vinvoke_ret_llvm || true)
echo "[llvm-smoke] output: $out_vr" >&2
@ -227,9 +227,9 @@ if [[ "${NYASH_LLVM_VINVOKE_RET_SMOKE:-0}" == "1" ]] && [[ "${NYASH_DISABLE_PLUG
fi
OBJ_SIZE="$PWD/target/aot_objects/vinvoke_size_smoke.o"
rm -f "$OBJ_SIZE"
NYASH_LLVM_OBJ_OUT="$OBJ_SIZE" "$BIN" --backend llvm apps/tests/ny-vinvoke-llvm-ret-size/main.nyash >/dev/null || true
NYASH_LLVM_OBJ_OUT="$OBJ_SIZE" "$BIN" --backend llvm apps/tests/ny-vinvoke-llvm-ret-size/main.hako >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_SIZE" ./tools/build_llvm.sh apps/tests/ny-vinvoke-llvm-ret-size/main.nyash -o app_vinvoke_ret_size_llvm >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_SIZE" ./tools/build_llvm.sh apps/tests/ny-vinvoke-llvm-ret-size/main.hako -o app_vinvoke_ret_size_llvm >/dev/null || true
echo "[llvm-smoke] running app_vinvoke_ret_size_llvm ..." >&2
out_size=$(./app_vinvoke_ret_size_llvm || true)
echo "[llvm-smoke] output: $out_size" >&2
@ -247,8 +247,8 @@ if [[ "${NYASH_LLVM_PLUGIN_RET_SMOKE:-0}" == "1" ]] && [[ "${NYASH_DISABLE_PLUGI
echo "[llvm-smoke] building + linking apps/ny-plugin-ret-llvm-smoke ..." >&2
OBJ_RET="$PWD/target/aot_objects/plugin_ret_smoke.o"
rm -f "$OBJ_RET"
NYASH_LLVM_OBJ_OUT="$OBJ_RET" "$BIN" --backend llvm apps/tests/ny-plugin-ret-llvm-smoke/main.nyash >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_RET" ./tools/build_llvm.sh apps/tests/ny-plugin-ret-llvm-smoke/main.nyash -o app_plugin_ret_llvm >/dev/null || true
NYASH_LLVM_OBJ_OUT="$OBJ_RET" "$BIN" --backend llvm apps/tests/ny-plugin-ret-llvm-smoke/main.hako >/dev/null || true
NYASH_LLVM_SKIP_EMIT=1 NYASH_LLVM_OBJ_OUT="$OBJ_RET" ./tools/build_llvm.sh apps/tests/ny-plugin-ret-llvm-smoke/main.hako -o app_plugin_ret_llvm >/dev/null || true
echo "[llvm-smoke] running app_plugin_ret_llvm ..." >&2
out_ret=$(./app_plugin_ret_llvm || true)
echo "[llvm-smoke] output: $out_ret" >&2