HiPE to be removed in OTP 24?

HiPE is the runtime and compiler support for native code generation of Erlang modules that some of you might have tried, it is part of the OTP repository today.

The OTP team is planning to remove HiPE in the OTP 24 release for the following reasons:

  • we plan to introduce a new way of executing Erlang, the “JIT” described by Lukas Larsson at Code Beam V
  • since OTP 22, HiPE is not fully functional (does not handle all beam instructions and combinations)
  • there is no use of HiPE among our primary customers. We actually don’t know where HiPE is used except for speeding up Dialyzer which we have another solution for.
  • The current support for HiPE in the code is a blocker or creates extra work in our new development.

In order to not remove HiPE in OTP 24, we really soon need maintainers committing (long term) to keep HiPE in shape and up to date with the rest of OTP.


I have posted it in the similar time as you as I wasn’t sure if you are there as well. I have removed my post.

Personally - as long as there will be alternative way to have more performance out of Erlang like JIT backed by for example LLVM (I haven’t seen @garazdawi presentation yet) - I am ok with that, and keeping such complex codebase is not worth keeping HiPE.


The new way of executing Erlang presented by Lukas is not dependent on LLVM at all, which is very nice.


Well exactly how it works is not presented by Lukas only announced to be presented in September

For those interested, I believe this is the video under discussion

1 Like

I am quite interested to see what you guys come up with. I personally don’t think being dependent on LLVM is a bad thing per se but let’s see what your solution looks like! :023:

https://www.youtube.com/watch?v=lM7UV95Rpyo&feature=emb_title here’s an update on the JIT stuff.