| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
MAINT: remove redundant open() modes and io.open() alias
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
This fixes a bug in distutils that prevented the use of the C++ linker
needed to link _multiarray_umath.
Fixes #23595
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* BUILD: update OpenBLAS to 0.3.21 and clean up openblas download test
* set LDFLAGS on windows64 like the openblaslib build does
* use rtools compilers on windows when building wheels
* fix typos
* add rtools gfortran to PATH
* use the openblas dll from the zip archive without rewrapping
* typos
* copy dll import library for 64-bit interfaces
* revert many of the changes to azure-steps-windows.yaml, copy openblas better in wheels
* fix wildcard copy
* test OpenBLAS build worked with threadpoolctl
* typos
* install threadpoolctl where needed, use for loop to recursively copy
* update macos OpenBLAS suffixes for newer gfortran hashes
* use libgfortran5.dylib on macos
* fix scripts
* re-use gfortran install from MacPython/gfortran-install on macos
* use pre-release version of delocate
* fixes for wheel builds/tests
* add debugging cruft for pypy+win, macos wheels
* add DYLD_LIBRARY_PATH on macosx-x86_64
* use 32-bit openblas interfaces for ppc64le tests
* skip large_archive test that sometimes segfaults on PyPy+windows
|
|
|
|
|
|
|
|
| |
Numpy extensions define the extra_cxx_compile_args and extra_c_compile_args
filed, but distutils extensions don't. Take that into account when populating
build_extension.
Should fix #20928
|
|
|
|
|
|
|
|
|
|
|
|
| |
In SciPy we had a couple of cases where we build a Python extension
with C source files but linked against static libraries built from
Fortran code. Those should be using the Fortran linker, but this
was broken in 1.22.0 by gh-19713 (the PR that introduced C++ in NumPy).
This fixes a few issues in the `build_ext` command, and documents better
what is going on there.
Should close SciPy issues 8325 and 15414.
|
|
|
|
|
| |
This is just a technical prototype to measure and discuss the impact and
implication of moving to C++ for kernel code generation.
|
| |
|
|
|
|
|
|
|
|
|
| |
The bug can occur only if the build option `build`
was passed before the option `bdist_wheel`.
You may still realize a duplicate printing for the compiler
optimization report in the build log, which is normal due to
multiple calling of command `build` by setuptools.
|
|
|
|
|
| |
The error appears when option `build` is represented
before `bdist_wheel`.
|
|
|
|
|
| |
Same usage as the C dispatch-able sources except files extensions
should be `.dispatcher.cpp` or `.dispatch.cxx` rather than `.dispatch.c`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* BUG: don't mutate list of fake libraries while iterating over it
* BUG: iterate over copy of list
* TST: add build test for build_ext fix (#1)
* TST: add build test for build_ext fix
* TST: clearer test name
* STY: use triple quotes instead of lists of strings
* FIX: check for f77 compiler before test is run
* DOC: add comment explaining that a list copy is necessary
|
|
|
|
|
|
|
|
|
|
| |
The new path becomes `build/src.*/numpy/distutils/include/npy_cpu_dispatch_config.h`
instead of `numpy/core/src/common/_cpu_dispatch.h`.
The new path allows other projects to re-use the CPU dispatcher
once we decide to expose the following headers:
- `numpy/core/src/common/npy_cpu_dispatch.h`
- `numpy/core/src/common/npy_cpu_features.h`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'_simd' is a new module to bring the NumPy C SIMD vectorization interface "NPYV"
The module is designed to be extremely flexible so that it can accommodate any kind
intrinsics, also to generate a python interface almost similar to the C interface.
The main purpose of this module is to test NPYV intrinsics in python,
but still can be used as an effective solution in designing SIMD kernels.
Also add a new command-line argument `--simd-test` to control of targeted CPU features
for the `_simd` module.
Co-authored-by: Matti Picus <matti.picus@gmail.com>
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
|
|
|
|
| |
This patch also cleans up `CCompilerOpt` calls in build_ext and build_clib.
|
|
|
| |
see gh-17012 item 12
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Put `CCompilerOpt` in action through add two command line
arguments that passed directly to `CCompilerOpt`'s
parameters which explained as follows:
* `--cpu-baseline` minimal set of required optimizations,
default is 'min' which provides the minimum CPU features
that can safely run on a wide range of users platforms.
* `--cpu-dispatch` dispatched set of additional optimizations,
default is 'max-xop-fma4' which enables all CPU features,
except for AMD legacy features.
the new arguments can be reached from `build`, `build_clib`,
`build_ext`, if `build_clib` or `build_ext` are not specified
by the user the arguments of `build` will be used, which also
hold the default values.
- Activate the new compiler dispatcher that comes with `CCompilerOpt`,
through adding a hock inside `build_clib` and `build_ext`
that works as a filter taking any C source files ends with
`.dispatch.c` and pass it directly to `CCompilerOpt` and
then take returned objects and linked to the final C lib.
- Add a third command-line argument `--disable-optimization` which
explicitly disable the whole new infrastructure, also
It adds a new compiler definition called `NPY_DISABLE_OPTIMIZATION`.
when `--disable-optimization` is enabled the dispatch-able sources
that end with `.dispatch.c` will be treated as a normal
C sources, also due to this disabling any C headers that
generated by `CCompilerOpt` must guard it with `NPY_DISABLE_OPTIMIZATION`,
otherwise, it will definitely break the build.
- New auto-generated C header located at `core/include/numpy/_cpu_dispatch.h`,
the new header contains all definitions and headers of CPU features that
enabled according to specified configuration in `--cpu-baseline`
and `--cpu-dispatch`.
|
|
|
|
|
| |
* BUG: relpath fails for different drives on windows
* ENH: always use abspath
|
| |
|
|
|
|
|
|
|
| |
* Cleanup unused imports (F401) of mostly standard Python modules,
or some internal but unlikely referenced modules
* Where internal imports are potentially used, mark with noqa
* Avoid redefinition of imports (F811)
|
|
|
|
|
| |
As numpy is Python 3 only, these import statements are now unnecessary
and don't alter runtime behavior.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
* the single usage of exec_command in
distutils build_ext module has been
replaced with a standard library usage
of subprocess
|
|
|
|
|
|
|
| |
When the gfortran functionality is not used,
we don't want to enable the __config__
functionality. This mistake was put in as an earlier
optimization but led to failures with conda.
|
|
|
|
|
|
|
|
| |
Here, we align the extra-dll name to the one
that auditwheel uses, and we handle the case where
1) there is more than one root package and
2) the root package name is different
than the distribution name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
- Now that `set` datastructure has been added the `builtin` module, we do not need to explicitly import from `sets` module
|
|
|
|
|
|
|
|
| |
- Fix an incorrect import
- Enable C99 complex support (Qstd=c99)
- Don't use MSVC complex types for Intel compilers
Thanks to Intel for this patch (contact: Yolanda Chen).
|
|
|
|
| |
python3.5 uses --parallel instead of --jobs
|
|
|
|
|
| |
Ensure that build_ext.include_dirs is the same physical list as
build_ext.distribution.include_dirs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow extensions using numpy.distutils to compile in parallel.
By passing `--jobs=n` or `-j n` to `setup.py build` the compilation of
extensions is now performed in `n` parallel processes.
Additionally the environment variable NPY_NUM_BUILD_JOBS is used as
the default value, if its unset the default is serial compilation.
The parallelization is limited to within the files of an extension, so
only numpy multiarraymodule really profits but its still a nice
improvement when you have 2-4 cores.
Unfortunately Cython will not profit at all as it tends to build one
module per file.
|
|
|
|
|
| |
minimum requirement is python2.6, this allows removing a couple 2.3 and
2.4 checks.
|
|
|
|
|
|
|
| |
Run the 2to3 ws_comma fixer on *.py files. Some lines are now too long
and will need to be broken at some point. OTOH, some lines were already
too long and need to be broken at some point. Now seems as good a time
as any to do this with open PRs at a minimum.
|
| |
|
|
|
|
| |
use it
|
|
|
|
|
|
|
| |
Add `print_function` to all `from __future__ import ...` statements
and use the python3 print function syntax everywhere.
Closes #3078.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new import `absolute_import` is added the `from __future__ import`
statement and The 2to3 `import` fixer is run to make the imports
compatible. There are several things that need to be dealt with to make
this work.
1) Files meant to be run as scripts run in a different environment than
files imported as part of a package, and so changes to those files need
to be skipped. The affected script files are:
* all setup.py files
* numpy/core/code_generators/generate_umath.py
* numpy/core/code_generators/generate_numpy_api.py
* numpy/core/code_generators/generate_ufunc_api.py
2) Some imported modules are not available as they are created during
the build process and consequently 2to3 is unable to handle them
correctly. Files that import those modules need a bit of extra work.
The affected files are:
* core/__init__.py,
* core/numeric.py,
* core/_internal.py,
* core/arrayprint.py,
* core/fromnumeric.py,
* numpy/__init__.py,
* lib/npyio.py,
* lib/function_base.py,
* fft/fftpack.py,
* random/__init__.py
Closes #3172
|
|
|
|
|
|
|
|
| |
This should be harmless, as we already are division clean. However,
placement of this import takes some care. In the future a script
can be used to append new features without worry, at least until
such time as it exceeds a single line. Having that ability will
make it easier to deal with absolute imports and printing updates.
|
|
|
|
|
|
|
|
|
| |
This removes files and code supporting scons builds. After this change
numpy will only support builds using distutils or bento. The removal of
scons has been discussed on the list several times and a decision has been
made that scons support is no longer needed. This was originally discussed
for numpy 1.7 and because the distutils and bento methods are still
available we are skipping the usual deprecation period.
|
|
|
|
|
|
| |
Configuration.add_extension. Configuration.add_library, and Extension. These options
allow specifying extra compile options for compiling Fortran sources within a
setup.py file.
|
|
|
|
|
|
| |
Revert "Introduce new options extra_f77_compiler_args and extra_f90_compiler_args to Configuration.add_extension. Configuration.add_library, and Extension. These options allow specifying extra compile options for compiling Fortran sources within a setup.py file."
This reverts commit 43862759384a86cb4a95e8adb4d39fa1522acb28.
|
|
|
|
| |
Configuration.add_extension. Configuration.add_library, and Extension. These options allow specifying extra compile options for compiling Fortran sources within a setup.py file.
|
|
|
|
| |
command.
|
| |
|
|
|
|
|
|
|
| |
If numpy is built in-place and used by a third-party, we need to make
sure installable libraries are put in the source directory, to mimic an
install. Whenever build_ext is called with -i option, we call build_clib
with the -i option as well.
|