-
-
Notifications
You must be signed in to change notification settings - Fork 10.9k
BLD: mingwpy fixes #6354
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BLD: mingwpy fixes #6354
Conversation
Howto compile numpy master with mingwpy: Install mingwpy with pip (https://anaconda.org/carlkl/mingwpy) and extract the OpenBLAS archives: https://bitbucket.org/carlkl/mingw-w64-for-python/downloads/OpenBLAS_mingwpy_amd64.7z / https://bitbucket.org/carlkl/mingw-w64-for-python/downloads/OpenBLAS_mingwpy-win32.7z.
I encountered some new errors in numpy.test() with numpy.master I have to dig in. |
# Don't call build_import_library() and build_msvcr_library. | ||
|
||
if 'MinGW-W64' not in str(out_string): | ||
if 'MinGW-W64' not in str(out_string) and 'mingwpy' not in str(out_string): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comment here about when each of these strings appear?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be nice if we could warn rather than fail when an different mingw is used.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The strings appear with either vanilla mingw-w64: MinGW-W64
or with mingwpy: mingwpy
. In both cases build_import_library()
shouldn't be called, see comment above in the code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Line may also be too long. You can put the expression in (...)
and split it over two lines if needed.
Does this work with the old mingw32 version we have been using? |
I guess that leads to the bigger question - are we planning to switch to these tools soon? Maybe that needs to go to the mailing list? |
I didn't t made tests of the PR with mingw32. A comparison python-2.7-win32) of numpy-1.10.0rc1 (mingw32 atlas build, sourceforge) and numpy-1.11.0.dev0 (master, mingwpy OpenBLAS build) shows: mingw32: mingwpy: |
Carl - how do the error counts compare on the 1.9.x branch? Are you using mingw32 on the numpy-vendor VM? |
@matthew-brett I compared the latest numpy binary download from sourceforge http://sourceforge.net/projects/numpy/files/NumPy/1.10.0rc1/numpy-1.10.0rc1-win32-superpack-python2.7.exe (sse2 version) to my self build numpy-master with PR. |
If you add your patches to the 1.9.x branch, what do you get at the moment, for your toolchain? |
on 1.9.2: no errors / failures for win32 and 4 errors for amd64. >>> print np.longdouble(-np.inf)
inf
|
Time for another conference call about how to proceed on getting these builds as the standard for numpy etc? I'm around nearly all the time, on West coast US time. |
I agree on that, I will create a doodle on that the next days. |
Let me know what happens. At present it looks like this will not be in 1.10.0. Because we are shooting for 1.11.0 in Feb/Mar, that might not be too bad. |
Can we merge this one in mean-time though? It would be good to get a version of this into 1.9.4. |
If requested (for cross checking) I can create a mingwpy patch for 1.9.4. |
Thanks, a patch against 1.9.x maintenance would be excellent. Any comments here? Christoph? |
Carl's builds have been pretty much on par with the old 32-bit toolchain in terms of test errors/failures for a while now. So I'd support a less conservative course at this point: I'd be fine with merging patches into master if they look OK without checking each change against the old toolchain. |
Let's let this play out in 1.11 development. @rgommers Thanks for the nudge. |
There is also an announcment on the numpy ML: I build numpy master (numpy-1.11.0.dev0 , 0243bce) windows binary wheels for testing purpose. The only thing to do before building was to copy libopenblaspy.dll to numpy/core and to create a site.cfg that points to the OpenBLAS include and lib folders. Install the wheels on anaconda.org with with pip:
These builds are compiled with OPENBLAS trunk for BLAS/LAPACK support and the mingwpy compiler toolchain. OpenBLAS is deployed within the numpy wheels. To be performant on all usual CPU architectures OpenBLAS is configured with it's 'dynamic architecture' and automatic CPU detection. This version of numpy fakes long double as double just like the MSVC builds. Some test statistics: win32 (32 bit) amd64 (64bit) |
See also #6495. |
latest patches for OpenBLAS/mingwpy builds on Windows. Features longdouble==double fake to better match MSVC behaviour. Better mingw32 detection.