Stream: git-wasmtime

Topic: wasmtime / issue #13979 FACT can't handle async-to-async ...


view this post on Zulip Wasmtime GitHub notifications bot (Jul 25 2026 at 19:36):

alexcrichton opened issue #13979:

The component-model-memory64 integration is still a work in progress but I wanted to note this nonetheless.

This input:

(component
  (component $A
    (core module $a
      (memory (export "memory") i64 1)
      (func (export "realloc") (param i64 i64 i64 i64) (result i64) (i64.const 128))
      (func (export "run") (result i32) (i32.const 0))
      (func (export "cb") (param i32 i32 i32) (result i32) (i32.const 0))
    )
    (core instance $a (instantiate $a))
    (type $r (tuple u64 u64 u64))
    (func (export "run") async (result $r)
      (canon lift (core func $a "run") async
        (callback (func $a "cb"))
        (memory $a "memory")
        (realloc (func $a "realloc"))))
  )
  (instance $ia (instantiate $A))

  (component $B
    (type $r (tuple u64 u64 u64))
    (import "run" (func $f async (result $r)))
    (core module $libc
      (memory (export "memory") 1)
      (func (export "realloc") (param i32 i32 i32 i32) (result i32) (i32.const 128))
    )
    (core instance $libc (instantiate $libc))
    (core func $lower
      (canon lower (func $f) (memory $libc "memory") (realloc (func $libc "realloc"))))
    (core module $main
      (import "" "f" (func (param i32)))
      (func (export "run") (call 0 (i32.const 256)))
    )
    (core instance $imain (instantiate $main (with "" (instance (export "f" (func $lower))))))
    (func (export "run") (canon lift (core func $imain "run")))
  )
  (instance $ib (instantiate $B (with "run" (func $ia "run"))))
  (export "run" (func $ib "run"))
)

fails with:

$ cargo run compile async-retptr64.wat -W component-model-memory64
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.00s
     Running `/home/alex/code/wasmtime2/target/debug/wasmtime compile async-retptr64.wat -W component-model-memory64`

thread 'main' (2603957) panicked at crates/environ/src/fact/trampoline.rs:1093:13:
assertion `left == right` failed
  left: I64
 right: I32
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'main' (2603957) panicked at crates/environ/src/fact/trampoline.rs:4607:13:
temporary local not free'd
stack backtrace:
   0:     0x5ee098ae86e8 - std[bcb96dfbba0ab899]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/2d8144b7880597b6e6d3dfd63a9a9efae3f533d3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
...
  45:     0x5ee0938d5325 - _start
  46:                0x0 - <unknown>

thread 'main' (2603957) panicked at /rustc/2d8144b7880597b6e6d3dfd63a9a9efae3f533d3/library/core/src/panicking.rs:233:5:
panic in a destructor during cleanup
thread caused non-unwinding panic. aborting.
zsh: IOT instruction (core dumped)  cargo run compile async-retptr64.wat -W component-model-memory64

view this post on Zulip Wasmtime GitHub notifications bot (Jul 25 2026 at 19:36):

alexcrichton added the wasm-proposal:memory64 label to Issue #13979.

view this post on Zulip Wasmtime GitHub notifications bot (Jul 25 2026 at 19:36):

alexcrichton added the wasm-proposal:component-model label to Issue #13979.


Last updated: Jul 29 2026 at 05:03 UTC