You’re reading too much into the answers in this thread and taking an aggressive stance that is not helpful.
You felt insulted when people expressed ideas different than your own and hinted at ignorance. Now you’re claiming antipathy and distrust, and inputting behaviours that I’m pretty sure the authors did not intent (I know most of them throughout the years).
It would be helpful if you try to understand where these arguments are coming from, ie. developing a compiler that has its own internal design but having to map the public API of some other compiler that, despite multiple attempts (some from my part) did not reciprocate collaboration in the slightest on said APIs.
The biggest flaw here is that for too long we’ve been silently pretending to behave in that way, doing our best to match some expectations, but not wanting to incur in the same design flaws and broken behaviour.
I have personally been through this battle with Android, the Linux Kernel, some Linux distros, Chromium and the stance that most people are demonstrating in this thread has made those projects better by fixing their code instead of breaking yet another compiler. Too many developers in those projects have thanked Clang developers for standing behind their design decisions and behind the IEEE/ISO standards. That was, and still is, a commendable effort.
But as I think you know, every case is different, and fast-math
means different things to different people. Claiming your interpretation is the right one is short-sighted.
That is why I was alluding to documentation. We don’t have documentation like GCC on what our passes mean and how they compose because we’ve been piggy-backing on their API for too long. In this case, GCC isn’t wrong to not collaborate with us on their API. But coming up with a different API is also problematic.
So my proposal is simple: stick to GCC docs for the things we do equal, write our own docs for the things we do different. We should also strive to have a clear explanation why we took those choices.
I also encourage non-clang folks like yourself to write up how you use the API and why it matters, so that the design can be reasonable, not shoe-horned.
This will invariably means people will have to change their make files depending on the compiler, but honestly, this is probably the best thing to do anyway.