The first release candiate of Erlang/OTP 22.0 has been released.
Dialyzers automatic compilation to native code does still work.
I know i am rather new here, but could someone be kind enough to explain me why this point is a problem? Dialyzer working looks like a good thing to me, right?
Also, the compiler optimizations look incredibly juicy to me!
Good work as always !
Yes, it is meant as a good thing. Dialyzer can still run faster by auto-compiling itself to native code.
There is some background on the compiler changes in SSA history. This blog post describes why we started the rewrite of major parts of the compiler and how we approached it. There are some technical details that in the blog post that can be skipped on a first reading. There is also a series of blog posts about all compiler passes if you want to dig deeper.
Another blog post describes some of the other optimizations in OTP 22: Retiring old performance pitfalls.
That’s a mighty fine work!