This repository was archived by the owner on Apr 17, 2025. It is now read-only.

Description
MingwPy related PRs to Numpy that got reverted (in numpy/numpy#6534) are numpy/numpy#5614 and numpy/numpy#6354. The issues seemed to come from how to detect which compiler is used. That's a bit of a mess right now. Plus mingw32ccompiler.py could use a cleanup as well.
What would be good to start with is to decide/document what situations on Windows need distinguishing and how. First thought:
- Compilers:
- MSVC 32-bit and 64-bit
- MinGW 3.4.5 32-bit (don't break this for a while, there are external users like BioPython).
- MingwPy 32-bit and 64-bit
- Other MinGW-w64 builds (unsupported by Numpy, but shouldn't break them in
numpy.distutils).
- Cygwin (?)
- How to detect compilers:
- In
numpy.distutils.misc_util, implement a class that figures out what is what, so we don't get ad-hoc is_win64-like functions inside compiler classes.
- That class should allow cleanly checking what compiler is used.
- Maybe this needs a better way than parsing
gcc --version for mingwpy?
- C/C++ code:
- There's now stuff like
#if defined(__MINGW32__), defined(__MINGW64__),defined(_WIN64)and#if (defined(_MSC_VER)`` in numpy.
- It's not always clear if that treats mingw 3.4.5 and mingwpy 32-bit, or mingwpy 64-bit and MSVC, the same or not - and whether that's correct or not.
- Starting with a doc page here on how it's recommended to check for each compiler and bit-ness would be useful.