Skip to content

misc: bump to 0.17.1 and add spec tests#60

Draft
q82419 wants to merge 5 commits into
masterfrom
yiying/0.17.x
Draft

misc: bump to 0.17.1 and add spec tests#60
q82419 wants to merge 5 commits into
masterfrom
yiying/0.17.x

Conversation

@q82419

@q82419 q82419 commented Jul 13, 2026

Copy link
Copy Markdown
Member

No description provided.

q82419 added 5 commits July 13, 2026 12:01
- Wrap the new WasmEdge_LimitContext as the Limit context type, following
  the same structure as the other type contexts (FunctionType, etc.), with
  the 64-bit limit constructors for the memory64 proposal and the IsEqual
  API. Remove NewLimitShared (shared limits require a max in WasmEdge
  0.17.1).
- Widen the memory/table instance offset/size APIs to 64-bit.
- Add Configure.SetRunMode/GetRunMode (interpreter/JIT/AOT) and
  Configure.SetWASMStandard (WASM 1.0/2.0/3.0), replacing the deprecated
  force-interpreter configuration.
- Add SetLogLevel with the LogLevel enumeration.
- Add NewWasiModuleWithFds/InitWasiWithFds.
- Add VM.RegisterModuleWithAlias, VM.ForceDeleteRegisteredModule, and
  Executor.RegisterImportWithAlias.
- Add the generic Ref value type for GC proposal references, and IsNull
  for FuncRef/ExternRef/Ref.
- Remove all wasm-bindgen support (VM.ExecuteBindgen*, bindgen consts).
- Fix nil pointer dereference in FunctionType.GetParameters/GetReturns.
- Replace deprecated reflect.SliceHeader usage with unsafe.Slice.
- Fix main.go smoke test which referenced a nonexistent constant.

Assisted-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: YiYing He <yiying@secondstate.io>
Go 1.25 is the lowest non-EOL Go release.

Assisted-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: YiYing He <yiying@secondstate.io>
Covers configure, limits, values (v128/funcref/externref), AST
loading/validation and type listing, module/table/memory/global
instances, host functions and calling frames, executor, store, VM
workflows (incl. WASI, async, registered modules), compiler (universal
and native AOT outputs), JIT/AOT run modes, statistics, results,
plug-ins, and the CLI drivers, with wat2wasm-generated fixtures in
wasmedge/testdata.

Also fixes two issues found by the tests:

- Rebuild NewExternRef on WasmEdge_ValueGenExternRef. The previous
  implementation forged the value from an i64 and crashed the 0.17.x
  runtime, which keeps reference metadata in the value payload.
- Document that VM.ForceDeleteRegisteredModule destroys the module
  instance, and make releasing a consumed ExternRef fail loudly even on
  copies of the value.

Assisted-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: YiYing He <yiying@secondstate.io>
Add the spectest package which runs the wast2json-converted WASM spec
test suites from WasmEdge/wasmedge-spectest (wasm-core-20260322)
against the Go bindings, mirroring the WasmEdge C API spec tests:

- All suite folders of WasmEdge test/spec except component-model:
  wasm-1.0/2.0/3.0, the wasm-3.0 proposal folders, and threads
  (including the thread/wait commands via shared module instances).
- Interpreter, AOT (native output per module), and JIT modes; the
  exception-handling folder runs in interpreter mode only.
- The suites are downloaded and cached under spectest/testdata on the
  first run (override with WASMEDGE_SPECTEST_PATH).

Supporting changes in the bindings:

- Add NewNullExternRef and support nil in NewFuncRef for null
  reference values, needed by the suite arguments.
- The spec tests re-execute themselves with GODEBUG=asyncpreemptoff=1:
  the WasmEdge trap handlers are installed without SA_ONSTACK, which
  the Go runtime rejects when its preemption signal interrupts a
  compiled-code execution window.

All 495 units pass in all enabled modes on macOS arm64 against
WasmEdge 0.17.1.

Assisted-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: YiYing He <yiying@secondstate.io>
- README: WasmEdge 0.17.1 with the install_v2.sh installer, Go >= 1.25,
  and a testing section for the unit and spec tests.
- CI: build and test with Go 1.25/1.26 against WasmEdge 0.17.1, run the
  unit tests and all spec test modes, and drop the removed wasm-bindgen
  examples from the examples workflow.
- Bazel: bump the module to 0.17.1, the Go SDK to 1.25.0, the wasmedge_c
  archives to the 0.17.1 release assets, and list the new source and
  test files.
- Changelog: add the v0.17.1 section.

Assisted-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: YiYing He <yiying@secondstate.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant