1
1
mirror of https://github.com/tweag/asterius.git synced 2024-11-11 03:07:47 +03:00
A Haskell to WebAssembly compiler
Go to file
Shao Cheng e81f535f4e Implement & document the remote monad EDSL to write wasm in Haskell (+3 squashed commit)
Squashed commit:

[6504e82] Implement remote monad style EDSL for WebAssembly & use it to refactor most of builtin functions

[82c7048] Field test

[d958724] Start work on a shallow EDSL for hand-written WebAssembly code in Haskell
2018-07-29 20:58:15 +08:00
.circleci Split up & persist JSFFI info by modules (+3 squashed commit) 2018-07-28 04:50:32 +08:00
asterius Implement & document the remote monad EDSL to write wasm in Haskell (+3 squashed commit) 2018-07-29 20:58:15 +08:00
binaryen Finally got Haskell arrays working (+16 squashed commit) 2018-07-26 05:19:53 +08:00
docs Implement & document the remote monad EDSL to write wasm in Haskell (+3 squashed commit) 2018-07-29 20:58:15 +08:00
genapply Include genapply into build script of ghc-toolkit, to properly generate AutoApply.cmm 2018-04-23 20:35:53 +08:00
ghc-toolkit Finally got Haskell arrays working (+16 squashed commit) 2018-07-26 05:19:53 +08:00
.gitignore Improve JSFFI & docs (+18 squashed commit) 2018-07-16 21:21:31 +08:00
appveyor.yml Finally got Haskell arrays working (+16 squashed commit) 2018-07-26 05:19:53 +08:00
Dockerfile Improve JSFFI & docs (+18 squashed commit) 2018-07-16 21:21:31 +08:00
mkdocs.yml Implement & document the remote monad EDSL to write wasm in Haskell (+3 squashed commit) 2018-07-29 20:58:15 +08:00
README.md Finally got Haskell arrays working (+16 squashed commit) 2018-07-26 05:19:53 +08:00
stack.yaml Implement & document the remote monad EDSL to write wasm in Haskell (+3 squashed commit) 2018-07-29 20:58:15 +08:00

Asterius: A Haskell to WebAssembly compiler

CircleCI AppVeyor

A Haskell to WebAssembly compiler. Project status: alpha, in active development, some simple examples already work.

See the documentation for further instructions.

Quick start

We provide pre-built Docker images. Put the input .hs program in a directory and map the directory to a Docker volume:

terrorjack@ubuntu:~$ docker run -it -v ~/mirror:/mirror terrorjack/asterius
root@76bcb511663d:~# cd /mirror
root@76bcb511663d:/mirror# ahc-link --help
...

See the help text of ahc-link for further instructions.

What works for now:

  • All GHC language features except Template Haskell
  • Non-IO parts in ghc-prim/integer-simple/base/array
  • Importing JavaScript expressions via the foreign import javascript syntax

Better check the fib, jsffi and array test suites first to get some idea on current capabilities of asterius.

Sponsors

Asterius is maintained by Tweag I/O.

Have questions? Need help? Tweet at @tweagio.