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

numpy.distutils changes and distinguishing Windows compilers #19

@rgommers

Description

@rgommers

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions