Phase 12: VM/JIT identical execution tests + host API slot routing
ChatGPT5による統一実行パス実装: - VM/JIT同一実行テスト追加(Array/Map/String/Instance) - host_api slot経由呼び出し(NYASH_JIT_HOST_BRIDGE=1) - extern_registry拡張(console系メソッドslot登録) - CI: vm-jit-identical.yml(STRICT/非STRICT両系テスト) - InstanceBox getField/setField slot 1,2統一 技術的改善: - JIT: ops_ext委譲による統一メソッド解決 - VM: vtable/PIC/名前ベースフォールバック階層 - host_bridge: TLV encode/decode BoxRef対応 - C ABI: nyrt_host_api.h外部公開ヘッダー テスト追加: - identical_exec_collections: Array/Map操作一致 - identical_exec_instance: ユーザー定義Box一致 - identical_exec_string: StringBox操作一致 - host_reverse_slot: 逆引きslot解決テスト 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
41
.github/workflows/vm-jit-identical.yml
vendored
Normal file
41
.github/workflows/vm-jit-identical.yml
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
name: VM-JIT Identical Execution
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
strict: ["0", "1"]
|
||||
vt: ["0", "1"]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
profile: minimal
|
||||
override: true
|
||||
- name: Cargo test (subset, with JIT feature)
|
||||
env:
|
||||
RUSTFLAGS: "-C debuginfo=0"
|
||||
NYASH_ABI_STRICT: ${{ matrix.strict }}
|
||||
NYASH_ABI_VTABLE: ${{ matrix.vt }}
|
||||
NYASH_JIT_HOST_BRIDGE: "1"
|
||||
NYASH_EXTERN_ROUTE_SLOTS: "1"
|
||||
NYASH_VM_PIC_THRESHOLD: "8"
|
||||
run: |
|
||||
cargo test --features cranelift-jit \
|
||||
src/tests/identical_exec.rs \
|
||||
src/tests/identical_exec_collections.rs \
|
||||
src/tests/identical_exec_string.rs \
|
||||
src/tests/identical_exec_instance.rs \
|
||||
src/tests/vtable_array_string.rs \
|
||||
src/tests/vtable_strict.rs \
|
||||
src/tests/host_reverse_slot.rs \
|
||||
-- --nocapture
|
||||
Reference in New Issue
Block a user