Hacker News new | ask | show | jobs
by Thaxll 1685 days ago
> the escape analysis can change (hopefully without regressions) from version to version of Go, and that can mean performance regressions can happen.

Because it's not the case with Rust or any compiled language? LLVM has shown regressions wich is what Rust uses to compile code.

2sec search on google: https://github.com/rust-lang/rust/issues/24194

1 comments

Of course there have been regressions, but the semantics of the code don't typically change. A "dead heap allocation", or removing an unused call to malloc, is an interesting example but I think you'd be hard pressed to find a case where it caused a massive performance regression.

I think there may be some edge cases (constant folding, dead code removal) of course, but a change to LLVM cannot cause the 3 sorts of changes I identified in Go, Haskell, and JavaScript.