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/**/*.purs and/or test/**/*.purs relative to your mix.exs. These are the only places we look for changed files in (via mtime).
  • Your spago build outputs files in the output folder in the project root.
  • Your spago project is in the root of the mix project (mix.exs and spago.dhall are in the same folder, not in sub-folders).
  • You have spago on your path.

Installation

First install it by adding purerlex to your list of dependencies in mix.exs:

def deps do
  [
    {:purerlex, "~> 0.1.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

Docs are also available at https://hexdocs.pm/purerlex.