On 8/21/23 00:39, Po Lu wrote:
John Ericson <l...@johnericson.me> writes:

Thanks Jacob,

That's absolutely right that Win NT supports multiple personalities
and so all sorts of things are possible. (Indeed that is how WSL1
worked.)

MinGW stands for "Minimalist GNU for Windows" [1], and I suspect that
is why Saleem choose windows-gnu in that commit almost a decade ago. I
supposed we could say that "minimalist GNU" is not "GNU", and do
windows-mingnu or something, and then I could submit an LLVM patch to
try to support that. But I suppose I lean towards support configs that
at least one of GCC or Clang supports already, rather than making up
completely new stuff.
GNU config is part of the GNU project, developing the GNU operating
system, which opted for ``mingw'' many, many moons ago.  We are under no
obligation to adhere to LLVM standards, especially when they require us
to misrepresent the nature of a specific system configuration.

I agree the GNU project is not under any such obligation, and that's why I proposed windows-mingw as a compromise. It is more work for me to go make both GCC and LLVM support, but I rather do that than be stuck with plain mingw32.

Also, I would like to point out that the "scales to more variations"
argument is not at all hypothetical. If one looks at [2] one will see
that MSYS is a variation of Cygwin, and a mingw-style environments can
be made from the newer ucrt or older msvcrt. Today there are just too
many subtle variations to capture them all with sensible. It looks
like MSYS [3] reuses a triple for multiple configurations, and just
relies on users getting the PATH right, but that clearly isn't
ideal. Creating windows-* variants to handle them all in a consistent
and predictable manner is much better.
We can create new triplets for new environments once they do come into
existence.  But they should not duplicate existing ones, and they must
conform to the existing naming convention for configuration triplets.

There is no existing convention for windows. So far every time a new "brand name" 3rd position component has been chosen without any sort of pattern. Now that I've made (over the past few years) GNU config be more structured and more easily support longer configs, it is time to establish a convention. windows-* makes sense, and has precedent.

John


Reply via email to