Changing the default x86-64 compilation target to v2 or v3

I found this issue about changing the architecture for the compiler itself, but I've not found anything about changing the default target for things built by the compiler to newer standards. This should have fewer of the issues that are mentioned about distribution because it's just the default and users can choose to override to an older version if needed.

I think x86-64-v3 makes a good target as that's targeting CPUs introduced over 10 years ago and that's similar to changes that RedHat is making for RHEL 10. In other words, the vast majority of users wouldn't observe any change aside from a small performance bump & the rest can just override the default pretty easily.

Was wondering if there's any concerns with that & what the process would look like for making this change?

Similar idea in the same vein potentially is to change Cargo install to use target-cpu=native by default as it's seems unlikely that those binaries ever get distributed off the machine they're built on.

People do use cargo install into a specified root directory to produce images meant to run elsewhere; "native" would lead to breakage. It'd also make builds non-reproducible, in that the same build run on different systems would produce different results.

I'd love to see this happen. It would need a long lead time and plenty of announcements, and we might need to add a tier 2 target that still uses the old default.

I feel like those are CI cases that can update their flags. It's a fair point about reproducible builds, but is there infrastructure that Cargo leverages to validate that / is that planned to happen? If not, then I don't really understand the issue.

Not a hill I'm going to die on. Agreed on the announcements and tier 2 target. Pairing it with edition 2024 would have been more ideal but that ship has sailed. What would be the next steps?