709c8d994c8df5e1ad981ef90f3a7babfbe6e27d
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 && stack test
Languages
Haskell
65.5%
Yacc
28.9%
Lex
5.5%
HTML
0.1%