Skip to content
  • Cheng Shao's avatar
    compiler/ghci/rts: remove stdcall support completely · 395412e8
    Cheng Shao authored and Marge Bot's avatar Marge Bot committed
    We have formally dropped i386 windows support (#18487) a long time
    ago. The stdcall foreign call convention is only used by i386 windows,
    and the legacy logic around it is a significant maintenance burden for
    future work that adds arm64 windows support (#24603). Therefore, this
    patch removes stdcall support completely from the compiler as well as
    the RTS (#24883):
    
    - stdcall is still recognized as a FFI calling convention in Haskell
      syntax. GHC will now unconditionally emit a warning
      (-Wunsupported-calling-conventions) and treat it as ccall.
    - Apart from minimum logic to support the parsing and warning logic,
      all other code paths related to stdcall has been completely stripped
      from the compiler.
    - ghci only supports FFI_DEFAULT_ABI and ccall convention from now on.
    - FFI foreign export adjustor code on all platforms no longer handles
      the stdcall case and only handles ccall from now on.
    - The Win32 specific parts of RTS no longer has special code paths for
      stdcall.
    
    This commit is the final nail on the coffin for i386 windows support.
    Further commits will perform more housecleaning to strip the legacy
    code paths and pave way for future arm64 windows support.
    395412e8