A Jupyter kernel for the Wasm reference interpreter
Project description
Wasm Spec Kernel
A Jupyter kernel for the WebAssembly reference interpreter (see webassembly/spec).
You can try this kernel out in an example notebook using Binder:
Installation
Wasm Reference Interpreter
This kernel requires a Wasm reference interpreter to be available in the environment (e.g. the Wasm interpreter is not distributed with this Python package).
You can clone a WebAssembly spec repo and build the interpreter yourself using the OCaml toolchain.
@awendland provides a pre-compiled variant of the Wasm reference interpreter with language extensions for abstract types at awendland/webassembly-spec-abstypes.
Configuration
Either:
- Place the interpreter in your
$PATH
with the namewasm
, or - Specify the interpreter's location when installing the kernel with
python -m wasm_spec_kernel.install --interpreter wherever_you_stored_the/interpreter
Jupyter Kernel
To install:
pip install wasm_spec_kernel
python -m wasm_spec_kernel.install
To use it, open up a new Jupyter notebook. For example, via:
jupyter notebook
# In the notebook interface, select Wasm from the 'New' menu
jupyter qtconsole --kernel wasm_spec
jupyter console --kernel wasm_spec
Purpose
This exists because the WebAssembly reference interpreter is written in OCaml and OCaml is difficult to compile to WebAssembly (otherwise the latest reference interpreter could be hosted via v1 WebAssembly already available in evergreen web browsers). A Jupyter kernel should assist with sharing WebAssembly code samples leveraging features from the various forks of the WebAssembly specification.
How This Works
For details of how this works, see the Jupyter docs on wrapper kernels, and Pexpect's docs on the replwrap module. Note that this kernel reimplements the pexpect.replwrap.REPLWrapper
class so that it works better with the Wasm reference interpreter.
Acknowledgements
This was based on bash_kernel by Thomas Kluyver. Tests were adapted from jupyter/jupyter_client and ipython/ipykernel.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file wasm_spec_kernel-0.1.1.tar.gz
.
File metadata
- Download URL: wasm_spec_kernel-0.1.1.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.9.0 Darwin/20.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e6cd1230cb5731cf90b3670918402fc15fb8c119afd21486531791986110f6f |
|
MD5 | d14ef9e57be204fea05844ef33c1ddd6 |
|
BLAKE2b-256 | cce495fd75dfed1afb87547acd5a5a162841a455a2228ead11cb9dd2a2f972a8 |
File details
Details for the file wasm_spec_kernel-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: wasm_spec_kernel-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.9.0 Darwin/20.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 607ac41eacc8f1737eecedab2da7f7902ac73d272fefc39a222c43b95f5004f9 |
|
MD5 | 22520b5d78ccad3910ff1297615bcad8 |
|
BLAKE2b-256 | 2a98aad69dfecbf5beada786d891d61e9900ad67421ed3129a1087c2b9e95377 |