Go 1.22 Inlining Overhaul
docs.google.com
docs.google.com
I wrote one a long time ago that was a part of a project that was moderately popular, but it had issues and incremental changes had a tendency to trigger weird edge cases. in the end someone with a CS PhD wrote a different one (while keeping quiet on the awfulness of my implementation) and it was so much nicer in every way. Reading his code was like reading poetry.
That was when I realised code should be deliberate. Every line is a step towards a goal. I think that is why rewriting something when you understand the problem domain better can be so liberating.
Do you mean that after inlining the compiler has more visibility can can idenitfy UB that it was not sure was UB before?
An inliner together with other optimizations can definitely lead to weird behaviour if you are not intimately familiar with the C spec.
Inlining can be a problem as it is the reason many other optimizations are being run. For example, I managed to recover "sensitive data" due to a DSR pass being run after inlining. The code worked fine at O1, but kept "sensitive data" ( not really, it was a programming course in HS where we broke eachothers programs) in memory at O2.
Edit: but yes, almost all of the time the problem is PEBKAC.
The current build should be "Dev" and a new "release" should be introduced.