erlangdialyzerrebar3

Does Rebar3 compile Dialyzer modules with HiPE?


When running Dialyzer stand-alone, it compiles its modules with HiPE, in order to speed up the analysis:

dialyzer --src -r .
  Checking whether the PLT /home/foo/.dialyzer_plt is up-to-date... yes
  Compiling some key modules to native code... done in 0m12.27s
  Proceeding with analysis...

This can make a big difference to run time when there are many modules to be analysed.

Does Rebar3 do that when you run the rebar3 dialyzer command? The documentation doesn't say one way or another.


Solution

  • As mentioned by Dogbert in a comment, the default in rebar3 is to use the source format. The native one has a pending pull request (https://github.com/erlang/rebar3/pull/1493) to switch to the HiPE format when available, but in the context of rebar3, the non-native version benchmarked as faster and so far we haven't merged it in.

    I've just updated the PR discussion in there to see if it couldn't be included even if not enabled by default.