Rolling out (or unrolling) struct field reorderings

I think we should revert the change too. We have high standards about preventing breakage for our users, and they have high expectations, so we must stay vigilant.

As with any potential breakage, it is important to understand the impact before making the change. We can’t just hope things will turn out ok.

Making it opt-in for now seems fine, but I would like to do more extensive ecosystem testing before turning it on. Here are two things we can do:

  • Run the test suite of every crate in crates.io looking for breakage
  • Do some global analysis of every crate to find users that are not using repr properly for FFI.

Are there other common failure modes we can look for? Can we identify bad transmutes?