I think the discussion is mostly about how we'll ship the official Windows and Linux builds, I don't think it really matters as much if you're building for your own OS. I would agree with you that I don't think moving the illumos builds to AVX makes much sense, because the average illumos user has even older hardware than the average Linux user... like, the one guy in the thread who turned out to be using my illumos builds was actually the one who had a Pentium D, I think that says it all.ptribble wrote: ↑2024-03-07, 18:40I presume that keeping to an SSE2 baseline wouldn't invalidate status as an official build?
For Tribblix, I would do just that. I know that I have users on relatively old, but still fairly capable, hardware. And in general I would try and avoid being in the situation where the OS itself would work happily on a wide range of hardware (we require 64-bit, nothing more specific than that) but a key application wouldn't.
In terms of Linux distributions, my recollection is that Ubuntu is using x86-64-v1 as a baseline, RHEL and SLES are currently x86-64-v2, withe RHEL10 mooted as x86-64-v3. So adding an AVX requirement (which means x86-64-v3) means that you're shipping something that has more stringent requirements than the OS underneath. (And, in terms of Microarchitecture Levels, AVX and AVX2 come together.) That's my perspective, but as I'm not a Linux user I have no skin in the game at all.
Also, we actually aren't doing x86-64-v3, because that would include AVX2. We're basically doing x86-64-v2 plus AVX, which means stuff like Sandy Bridge and Bulldozer would still be compatible with Pale Moon, but something like Nehalem wouldn't be. You see, MSVC doesn't care about Intel's official microarchitecture levels, and lets us target AVX as basically v2 plus AVX, and AVX2 as v3, and then doesn't provide a way to target v2 by itself at all except via undocumented flags. Moonchild primarily runs Windows and doesn't know how seriously people take Intel's microarchitecture levels on other platforms, and how people on Linux or other Unix systems think of AVX and AVX2 as such a package deal that most of them wouldn't even consider targeting the Sandy Bridge/Bulldozer level specifically.
AVX2 would be unacceptable to the community because too many people here still have Bulldozer/Sandy Bridge era hardware, but there aren't enough people on hardware earlier than that to hold things back from going with plain AVX. That's what I gathered from the poll data.
This thread about my e-mail client contains a summary up the weird mismatch between default MSVC optimization levels and default GCC optimizations levels, and why this thread's perspective on the issue likely seems so alien to Unix/Linux people:
viewtopic.php?p=249393#p249393