Hi!
I found that @Shnatsel disabled LTO for the Dist profile, which is used for prebuilt binaries, published on the GitHub Release page with motivation "Don't use LTO for cargo-dist builds to make them consistent with cargo install etc". Could you please elaborate on this a little bit more - how it affects the project?
I can understand motivation when LTO - even the Thin version - is not enabled for cargo install scenarios. You want to reduce compile time on users' machines and make it faster to install on a machines (especially on a weak machine). However, to be honest, if this is the case - cargo binstall should be mentioned as an alternative installation option at very least. But why disable LTO for prebuilt binaries that are later published as binary artifacts on GitHub Release page? Which issues brings this inconsistency in practice, that are worth of disabling LTO in all cases?
I've tried to find any LTO-related issue with the tool in via a search query but didn't find any issue from enabling LTO for the tool itself. However, I found a commit from 7 years ago with enabling FatLTO with some perfomance wins. So something changed and LTO doesn't bring any performance improvement for the tool anymore? If this is the case, the binary size would be definitely improved anyway even nowadays.
I am just trying to understand the logic behind this decision.
Thank you.
Hi!
I found that @Shnatsel disabled LTO for the Dist profile, which is used for prebuilt binaries, published on the GitHub Release page with motivation "Don't use LTO for cargo-dist builds to make them consistent with cargo install etc". Could you please elaborate on this a little bit more - how it affects the project?
I can understand motivation when LTO - even the Thin version - is not enabled for
cargo installscenarios. You want to reduce compile time on users' machines and make it faster to install on a machines (especially on a weak machine). However, to be honest, if this is the case -cargo binstallshould be mentioned as an alternative installation option at very least. But why disable LTO for prebuilt binaries that are later published as binary artifacts on GitHub Release page? Which issues brings this inconsistency in practice, that are worth of disabling LTO in all cases?I've tried to find any LTO-related issue with the tool in via a search query but didn't find any issue from enabling LTO for the tool itself. However, I found a commit from 7 years ago with enabling FatLTO with some perfomance wins. So something changed and LTO doesn't bring any performance improvement for the tool anymore? If this is the case, the binary size would be definitely improved anyway even nowadays.
I am just trying to understand the logic behind this decision.
Thank you.