John Ericson <l...@johnericson.me> writes:

> It is defunct because using Autotools with Microsoft's own compilers
> basically impossible. Everything that supports Microsoft's own tools
> is now using CMake or Meson for that, and bypassing GNU config and
> the rest completely. LLVM however offers both GCC- and MSVC-style
> CLIs, and so it is actually feasible to combine LLVM targeting
> `windows-msvc` with Autotools. (Cross compiling from Unix also
> helps make things easier too.)

This is incorrect.  There are two wrapper scripts which provide
Unix-compatible cc and CC, by translating its command line arguments
into options understood by cl.exe.

> There is no Emacs-specific story in what I wrote above. No doubt
> perhaps Emacs did encounter some unique problems in addition, but
> pain along these lines would affect everyone using `winnt` in this
> way. These multiple better options (Autotools with LLVM, CMake,
> Meson) obviate using `winnt` completely. 

The situations that compelled us to discontinue the MSVC build were very
much particular to Emacs: the C runtime library distributed with newer
versions of MSVC became incapable of running under Windows 9x, for
example.

>  emacs gave up on that! If anyone else is still using `winnt` we'll
>  here about it if we do a deprecation. 
>
>  We must not obsolete or remove a triplet that has served us
>  faithfully for eons, as recently as a decade ago.
>
> Deprecation doesn't break anything. There is no problem with
> deprecation. It is just a warning saying that something is no longer
> encouraged.

It is not our place to demand action from our users.  Do you recognize
how ubiquitous config.* are?

Users expect to be capable of replacing config.* in any Autoconf program
with their latest versions, without superfluous diagnostics or erroneous
results being generated.

>  Use llvmmsvc or something similar, if distinguishing between
>  MSVC and LLVM is truly of such paramount importance.
>
> LLVM's `windows-msvc` *is* the real `windows-msvc`; no one is trying
> to distinguish LLVM vs Microsoft's own tools in GNU config, just as
> no one is distinguishing GCC vs LLVM in GNU config.

We are not obliged to accept solecisms from other projects that
contravene our own standards and guidelines.

> Microsoft's own tools do not use GNU configs or anything like that, so
> the choice of triple doesn't matter; that is why winnt was fine a
> decade ago. LLVM however does support similar configs, and people
> add configs to GNU configs for LLVM all the time, not just I. (For
> example, the recent requests for "arm64ec" and "arm64_32" are
> things that *only* LLVM supports, not GCC.) LLVM *does not
> support* any `*winnt*` configs; you must use `windows-msvc` with it.
> So if GNU config does not this triple and instead just supports the
> likely abandoned and unused `winnt`, it is actively hostile to the one
> extant free software toolchain that targets this platform.

Since GNU config never previously provided for such "triplets", no
existing software will be affected.

> Everyone else that supported changing/removing `windows-gnu` like
> you also wrote that `windows-msvc` sounded useful and we should
> keep it. 

My point is, winnt already exists.  Does LLVM define _MSC_VER?

>  And in any case, `windows-msvc' is a no-go: there is a dash in
>  between, rendering the msvc an operating system identifier. 
>
> You do realize that GNU config already parses "operating system
> identifiers" that are blatantly not operating systems, and has done so
> for years? "elf", "coff", "musl", "uclibc" are all currently valid examples
> that are blatantly not OSes; but expediently accepted as OSes in
> order to support certain configs. We should continue to be practical
> and support `windows-msvc` just as we previously supported things
> like `linux-musl`.

linux-musl is so named because there is no canonical name for a
Musl-based Linux system.  The "musl" represents "musl-based operating
system", not merely the libc itself.  Ditto for ulibc.

ELF and COFF are aberrations inasmuch as there is _no_ operating system.

Neither of the foregoing conditions applies to MSVC, where the operating
system is MS-Windows.  Compounding all of that, this is not a court of
law: the mere existence of one folly, or one adjudication made in the
past, is not grounds upon which to permit more analogous mistakes to
transpire.

Reply via email to