Files
wasmtime/misc/wasmtime-py
Nick Fitzgerald 842faf5aa6 Support for multi-value wasm (#399)
* deps: bump wasmparser to 0.39.2

This has a bug fix for multi-value Wasm validation that is required for getting
the spec tests passing.

https://github.com/yurydelendik/wasmparser.rs/pull/135

* Update cranelift to 0.46.1 to get multi-value Wasm support

The `cranelift_wasm` APIs had to change a little bit to maintain state necessary
when translating multi-value Wasm blocks. The `translate_module` function now
returns a `ModuleTranslationState` that is borrowed during each function's
translation.

* Enable multi-value proposal's spec tests

This enables all the Wasm multi-value proposal's spec tests other than the ones
that rely on functions having more return values than registers available on the
target. That is not supported by cranelift yet.

* wasmtime-interface-types: always use multi-value Wasm

And remove the return pointer hacks that work around the lack of multi-value.
2019-10-17 17:12:01 -07:00
..
2019-10-17 17:12:01 -07:00

Python 3 extension for interface with Wasmtime/Cranelift.

Build

First, you'll need to install some Python dependencies:

$ pip3 install setuptools wheel==0.31.1 setuptools-rust

Next you can build the extension with:

rustup run nightly python3 setup.py build

Note that a nightly version of Rust is required due to our usage of PyO3.

This will create a directory called build/lib which you can add to PYTHONPATH in order to get import wasmtime working.