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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions