[erlang-questions] HiPE in OTP 22

Kenneth Lundin kenneth@REDACTED
Fri Mar 22 15:42:39 CET 2019


In OTP 22 HiPE (the native code generator) is not fully functional.

The reasons for this are:

   1. We have introduced new beam instructions which the HiPE native code
   compiler does not handle.
   2. The new optimizations in the beam compiler create new combinations of
   instructions that HiPE does not handle correctly.
   3. Until now HiPE has been developed by Kostis Sagonas and his students
   at Uppsala University and Technial University of Athens. But now other
   projects take up all of their resources.
   4. The OTP team at Ericsson can't prioritize to address these issues
   either since
   - there is no use of HiPE among our primary customers
      - the effort needed to gainthe competence to addess the problems
      above is quite high.

In OTP 22 we have therefore decided to do a workaround for HiPE (native
code gen) in such a way that invokations of `erlc +native erlfile.erl` or `erlc
+native erlfile.beam` will automatically fall back to producing a .beam
file without native code if any of the new binary matching instructions are
used. A warning will also be produced when this happens.

The new beam instructions are used for binary matching so it is mostly (or
only) modules containing binary matching expressions which will fail the
native code generation. Notably is that the native code generations that
Dialyzer does on the fly will still work since the modules chosen do not
contain binary matching. Native code generation of Dialyzer makes the
analysis about 40% faster.

Building OTP with the configure option `--enable-native-libs` will still
work in OTP 22 but a note about potential instability when running native
code will be output, since we have noticed issues in our test when running
these builds.

We have no idea about who are using HiPE and for what, but in order to keep
HiPE in shape and as part of the OTP releases we need help in maintaining
it.
Volunteers  are welcome

/Kenneth, Erlang/OTP Ericsson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20190322/0d5e71af/attachment.htm>


More information about the erlang-questions mailing list