go-ethereum/vendor/github.com/go-interpreter/wagon
Guillaume Ballet 9927596822 core/vm: Add wagon/wasm as an interpreter
* Implement the ewasm module and the EEI.
 * Add an ewasm standalone binary to test standalone files
 * use reflection to declare EEI module exports
 * check the module name when importing EEI functions
 * make eeiFuncs a function to avoid an init loop issue in call
 * Add a reference to the ewasm tests
 * wagon implementation of the Interpreter interface
 * update to wagon's PR #59 and uses the Process structure
 * Adapt to endianness change
 * All tests but 1 passing
 * CanRun only checks for the header
 * Add a "debug" module to support "printHex" in contracts

Notes:
  * There are very little checks, e.g. of
     the call depths and so on.
2018-10-05 15:15:41 +02:00
..
disasm core/vm: Add wagon/wasm as an interpreter 2018-10-05 15:15:41 +02:00
exec core/vm: Add wagon/wasm as an interpreter 2018-10-05 15:15:41 +02:00
internal/stack core/vm: Add wagon/wasm as an interpreter 2018-10-05 15:15:41 +02:00
wasm core/vm: Add wagon/wasm as an interpreter 2018-10-05 15:15:41 +02:00
doc.go core/vm: Add wagon/wasm as an interpreter 2018-10-05 15:15:41 +02:00
go.mod core/vm: Add wagon/wasm as an interpreter 2018-10-05 15:15:41 +02:00
LICENSE core/vm: Add wagon/wasm as an interpreter 2018-10-05 15:15:41 +02:00
README.md core/vm: Add wagon/wasm as an interpreter 2018-10-05 15:15:41 +02:00

wagon

Build Status codecov GoDoc

wagon is a WebAssembly-based interpreter in Go, for Go.

NOTE: wagon requires Go >= 1.9.x.

Purpose

wagon aims to provide tools (executables+libraries) to:

  • decode wasm binary files
  • load and execute wasm modules' bytecode.

wagon doesn't concern itself with the production of the wasm binary files; these files should be produced with another tool (such as wabt or binaryen.) wagon may provide a utility to produce wasm files from wast or wat files (and vice versa.)

The primary goal of wagon is to provide the building blocks to be able to build an interpreter for Go code, that could be embedded in Jupyter or any Go program.

Contributing

See the CONTRIBUTING guide for pointers on how to contribute to go-interpreter and wagon.