| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
|
|
| |
This makes it easier to visually jump between functions.
A couple places have changed to not emit leading whitespace where they previously did. Since this is C code and not fortran, that doesn't matter.
|
|
|
|
| |
All of this code was already correct, this just tidies it a little
|
|\
| |
| | |
BLD: Add libflame as a LAPACK back-end
|
| |
| |
| |
| | |
Signed-off-by: Nick Papior <nickpapior@gmail.com>
|
| |
| |
| |
| |
| |
| |
| | |
Now libflame may be used as a LAPACK back-end.
libflame requires an external BLAS so one has to
also have this enabled.
Also added release notes for NPY_*_ORDER and libFLAME.
|
|/
|
|
|
|
| |
* distutils/system_info.py fix missing subprocess import
* Update system_info.py
|
|\
| |
| | |
BLD: Allow users to specify BLAS and LAPACK library link order
|
| |
| |
| |
| | |
Signed-off-by: Nick Papior <nickpapior@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Nick Papior <nickpapior@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Nick Papior <nickpapior@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Nick Papior <nickpapior@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a user requests NPY_BLAS/LAPACK_ORDER they can omit Netlib
BLAS/LAPACK. In that case there will not be raised anything.
This commit fixes this issue so that there will always be
issues raised if the user hasn't requested the basic libraries.
Signed-off-by: Nick Papior <nickpapior@gmail.com>
|
| |
| |
| |
| |
| |
| |
| | |
Also added a test to travis (apparently ATLAS=None... is not tested
on circleCI).
Signed-off-by: Nick Papior <nickpapior@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prior to this enhancement compiling numpy would forcefully check BLAS/LAPACK
libraries in the following order:
BLAS:
- mkl
- blis
- openblas
- atlas
- accelerate
- NetLIB BLAS
- LAPACK
- mkl
- openblas
- atlas
- accelerate
- NetLIB LAPACK
This is problematic if a user want to build using, say, OpenBLAS but MKL is installed.
Even populating the site.cfg correspondingly one would get a successfull build, but
using MKL, if present.
The same applies to OpenBLAS vs. ATLAS etc.
Especially for developers this may be desirable to check performance with various
BLAS/LAPACK libraries.
This fixes the above issues by enabling users to forcefully set the order of loads
via environment variables:
$> export NUMPY_BLAS_ORDER=openblas,mkl,atlas
$> python setup.py config ...
would first try OpenBLAS (if existing), then MKL, and finally ATLAS.
In this case the build would fail if neither of OpenBLAS, MKL or ATLAS is present.
I.e. this can also be easierly used to test whether a linking would work. This
is because specifying a single library forces only one library check and has
no fall-back procedure (as requested by the user!).
The same applies to:
NUMPY_LAPACK_ORDER=openblas,mkl,atlas
This has meant that the blas_opt_info and lapack_opt_info classes in
system_info.py has *completely* changed.
Effectively there is only ONE change:
A fall-back of LAPACK was previously using get_info('blas') to get
the BLAS library to correctly link LAPACK. However, this may be undesirable
when the user has OpenBLAS/BLIS/ATLAS in a BLAS only installation but wants
to use the NetLIB LAPACK. Hence now lapack_opt_info uses get_info('blas_opt')
which does change the fall-back routine slightly. But perhaps for an easier build?
Signed-off-by: Nick Papior <nickpapior@gmail.com>
|
| |
| |
| | |
* BLD: use libraries as a key consistently in all site.cfg sections
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes CBLAS testing a bit easier since it checks 5 cases:
- user-defined libraries
- cblas + user-defined libraries
- blas + user-defined libraries
- cblas
- blas
In given order.
Since the has_cblas changed API it also changed name
to get_cblas_libs.
|
| |
|
|
|
|
| |
inexistent, avoiding unhandled exception.
|
|\
| |
| | |
BUG: parse shell escaping in extra_compile_args and extra_link_args
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Thanks to a change in exec_command, these strings are no longer passed onto the shell.
Since config files do not support list values, our best bet is to perform shell-splitting immediately.
This brings the behavior back in line a little to how it was before.
On windows systems, the behavior has changed. Previously it was treated as a single argument unless it contained quotes, resulting in the following weird behavior:
# passes as one argument, preserving spaces
extra_link_args=-Wl,rpath=A:/path/with spaces
# passes as two arguments, preserving spaces
extra_link_args="-Wl,rpath=A:\path\with spaces" -lgfortran
# passes as one long quoted argument (surprising and undesirable)
extra_link_args=-Wl,rpath=A:\path\without_spaces -lgfortran
Now it behaves as windows escaping via subprocess (but _not_ via cmd) normally would:
# Passed as two separate arguments (probably not as intended, but should be expected)
extra_link_args=-Wl,rpath=A:/path/with spaces
# passes as two arguments, preserving spaces
extra_link_args="-Wl,rpath=A:\path\with spaces" -lgfortran
# passes as two arguments
extra_link_args=-Wl,rpath=A:\path\without_spaces -lgfortran
Fixes gh-12659
|
|\ \
| |/
| | |
BUG: Do not insert extra double quote into preprocessor macros
|
| |
| |
| |
| |
| |
| |
| |
| | |
These are not used by our code, but it's possible downstream users are using them - without this patch, they would get a syntax error in their C code.
This also correctly handles version strings that contain embedded quotes, although probably still fails on non-ascii data.
Fixes gh-12893, on the probably correct assumption it was broken in the first place.
|
|/
|
|
|
|
|
|
|
|
|
|
| |
(#12448)
* Review F401,F841,F842 flake8 errors (unused variables, imports)
* Review comments
* More tests in test_installed_npymath_ini
* Review comments
|
| |
|
|
|
|
|
|
| |
* replace exec_command() with its standard
library equivalent in distutils system_info
module
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the special-cased handling of OSX Accelerate/vecLib libraries,
and move the code (which was duplicated in two places) to a new
accelerate_info class, which is used in the same way as openblas/etc
libs.
Also add a configuration section and an environment variable for
controlling whether Accelerate/vecLib is to be used or not. Previously,
it was not possible to use generic BLAS/LAPACK instead of Accelerate on
OSX.
|
| |
|
|
|
|
|
|
|
|
| |
When building NumPy for iOS, you build on macOS, with compiler flags to target iOS or the iOS simulator. However, setup.py runs on macOS, so sys.platform == 'darwin', regardless of the platform being targetted.
distutils provides an environment variable - _PYTHON_HOST_PLATFORM - to indicate when you are building for a different platform. This patches uses that variable to identify cross-platform builds and disable macOS specific features.
The patch also renames an internal method in strfuncs to avoid a collision with a symbol in iOS's standard library, and includes math.h to avoid errors about undefined symbols.
|
|
|
|
|
|
|
|
|
|
| |
In linux and particulary MinGW on windows, library names may
be prefixed with "lib." However, if the library name is prefixed
with "lib" on MSVC or ABI-equivalent (clang/intel), the prefix should
not be excluded from the library name. This caused system_info
to find "libopenblas" or "libsuitesparse" but then add "openblas"
to the library names, which is of course problematic because
MSVC would not look for "libopenblas" but rather "openblas."
|
|
|
|
|
| |
Autoconfigure libraries and headers when conda is detected
on the path. Also support copenblas and clapack when found.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add concept of unlinkable Fortran object files on the level of
build_clib/build_ext.
Make build_clib generate fake static libs when unlinkable object files are
present, postponing the actual linkage to build_ext.
This enables MSVC+gfortran DLL chaining to only involve those DLLs that
are actually necessary for each .pyd file, rather than linking everything
in to every file. Linking everything to everywhere has issues due to
potential symbol clashes and the fact that library build order is
unspecified.
Record shared_libs on disk instead of in system_info. This is necessary
for partial builds -- it is not guaranteed the compiler is actually called
for all of the DLL files.
Remove magic from openblas msvc detection. That this worked previously
relied on the side effect that the generated openblas DLL would be added
to shared_libs, and then being linked to all generated outputs.
|
|
|
|
|
|
|
|
|
|
| |
This allows mingw's gfortran to work with MSVC. DLLs are
autogenerated using heuristics that should work with most
cases. In addition, a libopenblas DLL is compiled from
the static lib for use with MSVC.
All generated DLLs have randomized names so that no clashes
will occur.
|
|
|
|
| |
Bare except is very rarely the right thing
|
|
|
|
|
| |
blas specified in site.cfg could have non-standard include dirs.
It should be read and saved in distutils/__config__.py
|
|
|
|
| |
Closes gh-8293.
|
|
|
|
| |
Also clean up some unused variables.
|
| |
|
|
|
|
|
| |
The PIPE in the tests caused a ResourceWarning during testing in
python 3.
|
| |
|
|
|
|
|
|
| |
Before, the list of libraries was resorted to match the order of
library_dirs. Now, the opposite occurs: library_dirs is resorted to
match the library order.
|
|
|
|
| |
Reference: https://software.intel.com/en-us/node/528500
|
| |
|
|
|
|
| |
Closes #7572 inability to install in virtualenvs with percent in their path.
|