6.2 KiB
6.2 KiB
Phase 20.11 — Smokes (予定)
-
AOT(小ライブラリ / プラグイン / FFI)
- quick/llvm/aot_c_lib_compile_link_run.sh(小ライブラリ)
- 依存: ny-llvmc + cc/clang。期待: compile→link→run=0、短文errは現状と同型
- quick/plugins/aot_plugin_compile_link_vm.sh(AotBox)
- 依存: AotBox プラグイン + ny-llvmc + cc/clang(未整備は SKIP)
- quick/llvm/aot_c_api_compile_link_run_ffi.sh(FFI 経路)
- 依存: libhako_llvmc_ffi(未実装は SKIP)
- quick/rust-aot/aot_c_api_ffi_unsupported.sh(FFI 現状: UNSUPPORTED 固定の観測)
- 期待:
HAKO_AOT_USE_FFI=1で非ゼロRC(短文は err 側、ここでは RC のみ確認)
- 期待:
- quick/llvm/aot_c_lib_compile_link_run.sh(小ライブラリ)
-
Runner 決定フック(観測のみ)
- quick/core/using_resolver_decision_vm.sh
HAKO_USING_DECISION_FROM_LANG=1で起動- 期待: 短文
[using-resolver] decision: OK(負例はdecision: FAIL) - 備考: バイナリが未更新の場合は SKIP(runner hook 未実装)
- quick/core/using_resolver_decision_apply_ok_vm.sh(採用フック: 成功)
HAKO_USING_DECISION_APPLY=1で起動- 期待: 短文
[using-resolver] decision-apply: OK(最小実装:挙動不変)
- quick/core/using_resolver_decision_apply_fail_vm.sh(採用フック: 負例 強制)
HAKO_USING_DECISION_APPLY=1 HAKO_USING_DECISION_FORCE_FAIL=1で起動- 期待: 短文
[using-resolver] decision-apply: FAIL
- quick/core/using_resolver_decision_apply_in_vm.sh(採用フック: JSON 読込み)
HAKO_USING_DECISION_IN=<json>を指定- 期待: 短文
[using-resolver] decision-apply: OK
- quick/core/using_resolver_decision_apply_fetch_vm.sh(採用フック: langから形状合成)
HAKO_USING_DECISION_FETCH=1で tiny-program 合成→FileBox 経由で JSON を取得- 期待: 短文
[using-resolver] decision-apply: OK|NOOP
- quick/core/using_resolver_decision_vm.sh
-
配布テンプレ(shape-only)
- tools/ci/run_local_checks.sh に dist テンプレ生成の存在チェック(WARN)
Notes
- 既定挙動は変えない(FFI/決定フックとも opt‑in)。
- Windows は依存満たない場合 SKIP を許容。
— LLVM Script Builder(予定・opt‑in) —
- quick/llvm/llvm_script_const_ret.sh(HAKO_LLVM_SCRIPT_BUILDER=1)
- 期待: const→ret の exe 生成・実行=0。生成は AotBox/小ライブラリ経路を再利用可。
- quick/llvm/llvm_script_binop_cmp.sh(HAKO_LLVM_SCRIPT_BUILDER=1)
- 期待: 加算→比較→ret の最小分岐。未実装は Fail‑Fast(UNSUPPORTED)。
- quick/rust-aot/llvm_script_v1_compare_branch_skip.sh(v1: compare/branch プレースホルダ)
- 期待: 現状 SKIP(将来の実装に置き換え)
- quick/rust-aot/llvm_script_v1_phi_skip.sh(v1: phi プレースホルダ)
- 期待: 現状 SKIP(将来の実装に置き換え)
- quick/rust-aot/llvm_script_v0_facade_const_ret.sh(Facade: v0 ビルダ → AotFacade)
- 期待: const→ret の exe 生成・実行=0。内部は JSON 直構築で依存レス。
- quick/rust-aot/llvm_script_v0_facade_binop.sh(Facade: v0 ビルダ → AotFacade)
- 期待: (2+3)→ret の exe 生成・実行=0。内部は JSON 直構築で依存レス。
- quick/rust-aot/llvm_script_v0_facade_const_overrides.sh(overrides:selfhost.*での解決経路)
- 期待: overrides 経由でも const→ret の exe 生成が通る(依存=ny-llvmc/AotBox)。
- quick/rust-aot/llvm_aot_facade_wrappers_ret0.sh(AotFacade ラッパ: ret0)
- 期待: ret0 の exe 生成・実行=0。Facade 直下の薄いAPIでJSON生成→委譲。
- quick/rust-aot/llvm_aot_facade_wrappers_binop.sh(AotFacade ラッパ: (2+3)→ret)
- 期待: (2+3)→ret の exe 生成・実行=0。Facade 直下の薄いAPIでJSON生成→委譲。
- quick/rust-aot/llvm_aot_facade_wrappers_console_{log,warn,error}.sh(AotFacade ラッパ: console系)
- 期待: 環境が揃っていれば EXE 生成・実行=0。未整備の環境は [SKIP](link unavailable)
- Linux では
CC="clang -fuse-ld=lld"またはHAKO_AOT_LDFLAGS="-no-pie -Wl,-z,notext"推奨
- quick/rust-aot/llvm_aot_facade_wrappers_time_now_ms.sh(AotFacade ラッパ: env.time.now_ms)
- 期待: now_ms 呼出しを含む JSON を生成し exe 生成・実行=0(戻り値は0に正規化)
- quick/rust-aot/llvm_aot_facade_wrappers_json_stringify.sh(AotFacade ラッパ: JSON.stringify)
- 期待: nyash.json.stringify_h を介した呼出しで exe 生成・実行=0(戻り値は0に正規化)
- quick/rust-aot/llvm_aot_facade_wrappers_compare_eq.sh(AotFacade ラッパ: compare Eq 最小)
- 期待: compare(Eq)が含まれる JSON を生成し exe 生成・実行=0(compare結果は 0 に正規化して返す)。
- quick/rust-aot/llvm_aot_facade_wrappers_compare_branch.sh(Facade: compare→branch)
- 期待: 分岐含有の JSON を生成し exe 生成・実行=0
- quick/rust-aot/llvm_aot_facade_wrappers_phi_if.sh(Facade: phi-if 最小)
- 期待: PHI 含有の JSON を生成し exe 生成・実行=0
- quick/rust-aot/llvm_script_v1_builder_compare_branch.sh(Builder→Facade)
- 期待: Builder 生成JSONを Facade で compile/link→実行=0
- quick/rust-aot/llvm_script_v1_builder_ret0.sh(Builder→Facade)
- 期待: ret0 の JSON を生成し exe 生成・実行=0
- quick/rust-aot/llvm_script_v1_builder_phi_if.sh(Builder→Facade)
- 期待: PHI 含有の JSON を生成し exe 生成・実行=0
— 失敗系(観測) —
-
quick/rust-aot/aot_negative_missing_llvmc.sh
- 条件:
NYASH_NY_LLVM_COMPILERを不正パスに指定 - 期待: compile で非ゼロ(短文は err 側、ここでは RC のみ確認)
- 条件:
-
quick/rust-aot/aot_negative_missing_nyrt.sh
- 条件:
NYASH_EMIT_EXE_NYRTを不正ディレクトリに指定 - 期待: link で非ゼロ(短文は err 側、ここでは RC のみ確認)
- 条件:
-
Runner 決定(負例拡充)
- quick/core/using_resolver_decision_apply_in_missing_vm.sh(INファイル欠如)
- 期待: 短文
[using-resolver] decision-apply: FAIL
- 期待: 短文
- quick/core/using_resolver_decision_apply_in_malformed_vm.sh(IN JSON不正)
- 期待: 短文
[using-resolver] decision-apply: FAIL
- 期待: 短文
- quick/core/using_resolver_decision_apply_in_missing_vm.sh(INファイル欠如)