Skip to content

chrbauer/haskell-wasm

This branch is 64 commits behind SPY/haskell-wasm:master.

Folders and files

NameName
Last commit message
Last commit date
Jun 20, 2018
Oct 22, 2022
Apr 20, 2021
Dec 12, 2021
Apr 5, 2021
Apr 15, 2018
Jul 16, 2019
Jul 15, 2020
Apr 5, 2021
Feb 13, 2023

Repository files navigation

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

About

Haskell WebAssembly Toolkit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Haskell 65.1%
  • Yacc 28.7%
  • Lex 6.1%
  • HTML 0.1%