Remove legacy support for i386 windows and stdcall calling convention
This patch removes all legacy code paths related to i386 windows
(#18487 (closed)) and stdcall
calling convention (#24883 (closed)), making it much
easier to add arm64 windows support (#24603) in the future. A
high-level overview of changes:
- i386 windows related logic is stripped everywhere. While we stopped testing and building bindists a long time ago, it might have still worked for a certain degree, but that's no longer the case from now on.
-
stdcall
is still valid Haskell syntax, GHC will emit a warning (-Wunsupported-calling-conventions
, implied by-Wdefault
) and treat it asccall
unconditionally on all platforms. - Apart from minimum parsing/warning logic, all
stdcall
related logic is completely stripped from the compiler and the RTS. - The legacy CPP pattern of using different
stdcall
/ccall
conventions are rewritten to useccall
uniformly and remove CPP usage. - The testsuite is adjusted accordingly, some
stdcall
s are replaced byccall
s, but there do exist test case that preservestdcall
usage and ensure-Wunsupported-calling-conventions
fire as expected. - There is not a single modification to
base
, nor any change in user-facinginterface-stability
.
Closes #24883 (closed).