wasm: WebAssembly Language Toolkit and Interpreter

[ language, library, mit ] [ Propose Tags ]

Library for parsing and interpreting WebAssembly, including: * WebAssembly Text Representation Parser * WebAssembly Binary Represetnation encoder and decoder * Spec-compatible Module validator (checked with Spec Core Test Suite) * Spec-compatible Interpreter (checked with Spec Core Test Suite) * Extended scripting grammar parser and executor * WebAssembly Module building eDSL


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 1.0.0, 1.1.0, 1.1.1
Dependencies array (>=0.5 && <0.6), base (>=4.6 && <5), bytestring (>=0.10 && <0.12), cereal (>=0.5 && <0.6), containers (>=0.5 && <0.7), deepseq (>=1.4 && <1.5), ieee754 (>=0.8 && <0.9), mtl (>=2.2.1 && <2.3), primitive (>=0.7 && <0.8), text (>=1.1 && <1.3), transformers (>=0.4 && <0.6), utf8-string (>=1.0 && <1.1), vector (>=0.12 && <0.13) [details]
License MIT
Author Ilya Rezvov
Maintainer rezvov.ilya@gmail.com
Category Language
Home page https:github.com/SPY/haskell-wasm
Bug tracker https:github.com/SPY/haskell-wasm/issues
Source repo head: git clone https://github.com/SPY/haskell-wasm
Uploaded by irezvov at 2021-12-12T04:34:48Z
Distributions
Downloads 1009 total (9 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for wasm-1.1.1

[back to package description]

Haskell WebAssembly Toolkit

Goals

  • Provide a WebAssembly code generation tool for Haskell
  • Create an infrastructure for Cmm to WebAssembly code generator
  • Have Fun :)

Status

  • Lexer: supports nested block comments and all lexemes from the WebAssembly Spec
  • Parser: parses all examples from WebAssembly Core TestsSuit (including folded instructions parsing)
  • Renaming Phase: substitute identifiers with correct indexes, expand all implicit type declarations)
  • Binary format parser/serializer
  • Validation Phase: execute a verification procedure from the Spec
  • Execution Phase: implement a simple interpreter
  • Support extended Core Test Suit assertion grammar
  • Compile Core Tests to Tasty test cases and pass all tests

Todo

  • Improve error messages for text representation parsing
  • Text Representation pretty-printer
  • Command line tool for calling interpreter/compiler/validator
  • Codegen interface for type enforced generating valid WASM code

Development

Clond sources to directory and use stack for running tests:

stack build && stack test