Purerlex
PurerlEx allows you to automatically compile purerl code with mix, both in mix compile and with recompile in iex -S mix.
Assumptions:
-
All your non-dependency source files are in
src/**/*.purs,lib/**/*.pursand/ortest/**/*.pursrelative to yourmix.exs. These are the only places we look for changed files in (via mtime). -
Your spago build outputs files in the
outputfolder in the project root. -
Your spago project is in the root of the mix project (
mix.exsandspago.dhallare in the same folder, not in sub-folders). -
You have
spagoon your path.
Installation
First install it by adding purerlex to your list of dependencies in mix.exs:
def deps do
[
{:purerlex, "~> 0.5.0"}
]
end
Then run mix deps.get in your console to fetch from Hex
Then add the :purerl compiler to (the beginning of) the list of compilers and add "output" to the erlc_paths:
def project do
[
...
erlc_paths: ["output"], # purerl
compilers: [:purerl] ++ Mix.compilers(),
...
]
end
Optionally, for dev builds, you can add the :purserl compiler instead and run a faster compiler fork from https://github.com/drathier/purserl/ .
Docs are also available at https://hexdocs.pm/purerlex.