summaryrefslogtreecommitdiff
path: root/numpy/distutils/ccompiler.py
Commit message (Collapse)AuthorAgeFilesLines
* MAINT: Remove dummy_threadingKevin Sheppard2021-02-111-4/+2
| | | | Threading is guaranteed to be supported in Python 3.7+
* Remove code that will never runmarload2020-07-131-8/+0
|
* MAINT: Clean up, mostly unused imports.Warren Weckesser2020-01-231-1/+0
|
* MAINT: resolve pyflake F403 'from module import *' usedMike Taves2020-01-231-3/+8
| | | | | | * For external modules, resolve imported members * Most internal relative modules were ignored or marked noqa: F403 * Convert a few internal absolute imports to relative imports
* [MAINT] Cleanup python2 sys.version checksSeth Troisi2020-01-201-6/+2
|
* MAINT: cleanup sys.version dependant codeSeth Troisi2020-01-121-5/+2
|
* Merge pull request #15248 from eric-wieser/avoid-exc_infoCharles Harris2020-01-051-5/+4
|\ | | | | MAINT: cleanup use of sys.exc_info
| * MAINT: cleanup use of sys.exc_infoEric Wieser2020-01-051-5/+4
| | | | | | | | | | | | This code originates from python 2.6, before there was an `as` clause in `except`. This removes all callers of `numpy.distutils.compat.get_exception`.
* | MAINT: add --std=c99 in setup.py, not distutilsmattip2020-01-051-5/+0
| |
* | MAINT: Remove unnecessary 'from __future__ import ...' statementsJon Dufresne2020-01-031-2/+0
|/ | | | | As numpy is Python 3 only, these import statements are now unnecessary and don't alter runtime behavior.
* BUG: remove -std=c99 for c++ compilation (#15194)Matti Picus2019-12-301-1/+1
| | | This flag is only legal for C compilers
* MAINT: fixes from reviewmattip2019-10-261-1/+1
|
* BUILD: add std=c99 flag for gcc, cleanup error reportingmattip2019-10-251-0/+5
|
* BUG: fixes from reviewmattip2019-09-201-2/+3
|
* BUILD: add --debug-configure option to reduce output, use logger moremattip2019-09-201-4/+10
|
* BUG: Remove our patched version of `distutils.split_quoted`, which was a ↵Eric Wieser2019-03-021-60/+0
| | | | | | | | workaround for our broken `exec_command`. This was removed in gh-1217, but then added back in gh-1321. Now that we've fixed exec_command, I believe we can finally take it out for good.
* also match the stderr in get_version()Jingbei Li2019-01-231-1/+1
| | | which used to fail for ifort
* BUG: ensure new-lines in compiler error messages are actually printed to the ↵Eric Wieser2018-12-091-6/+6
| | | | | | console Previously this would show `b'first_line\nsecond_line'`
* MAINT: Use list and dict comprehension when possible (#12445)Roman Yurchak2018-12-011-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use list comprehension * More list comprehension migration * Revert key copying in dict * A few more fixes * More reverts * Use dict comprehension * Fix dict comprehension * Address review comments * More review comments * Fix for empty unpacking of zip(* * Revert zip(* unpacking altogether * Fix dict copying * More simplifications
* BUG: Do not double-quote arguments to the command lineEric Wieser2018-11-181-8/+8
| | | | | | After the recent patch to CCompiler.spawn, the file-paths no longer need manual quoting - that's handled as needed within subprocess. Fixes #12411
* MAINT: remove exec_command usage from ccompiler.pyTyler Reddy2018-10-311-16/+50
| | | | | | * replaced the usage of exec_command() in ccompiler distutils module with subprocess equivalent
* DOC: fix minor typosUnknown2017-12-121-1/+1
|
* BUG: Fix Intel compilation on Unix.Charles Harris2017-06-261-0/+20
| | | | | | | | | | | Fixes two problems: * c compilers do not have a find_executables method. * get_version return a LooseVersion instance, not string. Closes #9278. [ci skip]
* BUG: KeyboardInterrupt is swallowed all over the placeEric Wieser2017-06-031-1/+1
| | | | Bare except is very rarely the right thing
* BUG: distutils, add compatiblity python parallelizationJulian Taylor2017-05-041-3/+44
| | | | | | | | | | | | | | | | | | | | Python 3.5 also added build parallelization at the extension level instead of the file leve numpy uses. This causes two problems: - numpy.distutils is not threadsafe with duplicated source files When source files are duplicated in multiple extensions the output objects are overwritten which can truncate in a parallel context. This is fixed by keeping track of the files being worked on and wait for completion if another thread is already using the object name. - The parallelization on two nested levels causes oversubscription. When building multiple extensions with multiple source files the number of jobs running is multiplied. This is fixed by adding a semaphore that limits the number of jobs numpy starts to the defined amount. closes gh-7139
* BUG: check compiler flags to determine the need for a rebuildJulian Taylor2017-05-021-5/+17
| | | | | | | Some projects compile an extension multiple times with different flags. As it is not intended to get the extension name from the compiler object, store the last used flags in the dependency file and also check if they match the flags of the current build.
* ENH: automatically determine compile dependenciesJulian Taylor2017-04-101-2/+66
| | | | | Use these dependencies to avoid unnecessary recompilations of unchanged files.
* Monkey-patch _msvccompile.gen_lib_option like any other compilatorsValentin Valls2016-08-101-1/+1
| | | | | | | `setuptools` is now using `_msvccompile` instead of `msvccompile9`. numpy is monkey-patching symmetrically `gen_lib_options` and `spawn` function for all compilators. But `_msvccompile.gen_lib_options` was not monkey-patched while `_msvccompile.spawn` is already monkey-patched throug the super class `ccompiler.spawn`. This patch only symmetrically patch `_msvccompile` to prevent param file quoting.
* MAINT: Resolve import naming collision and optimize importsFrancis T. O'Donovan2015-12-121-5/+3
|
* BUG: fix AttributeError in numpy/distutils.Ryan Grout2015-10-191-2/+3
| | | | Corrects an AttributeError on windows in some cases caused by #6185
* LIBPATH with spaces is now supported Python 2.7+ and Win32Gabi Davar2015-10-161-2/+2
|
* Distutils doesn't warn unless compiler_cxx is emptyPeter Iannucci2015-08-101-1/+1
| | | Warns on OS X with MacPorts Python because it doesn't recognize clang. There isn't actually a problem, though, as distutils.sysconfig has done its job just fine. Proposed fix.
* BUG: distutils: fix a typo in 64-bit Intel compiler for Windows support.Ralf Gommers2015-05-061-1/+1
| | | | Snuck in in gh-5694.
* ENH: distutils: add compiler classes for Intel compilers + MSVC-built Python.Ralf Gommers2015-03-191-3/+11
| | | | Thanks to Intel for contributing this patch. Contact: Yolanda Chen.
* ENH: support parallel compilation of extensionsJulian Taylor2014-10-281-8/+34
| | | | | | | | | | | | | | 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.
* STY: Giant comma spacing fixup.Charles Harris2013-08-181-30/+30
| | | | | | | 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.
* MAINT: Remove msvc_on_amd64 functionChristoph Gohlke2013-05-221-4/+1
| | | | This function is no longer required for building with msvc on AMD64
* MAINT: Apply 2to3 idioms fixer.Charles Harris2013-05-021-1/+1
| | | | | | | | | | | | | | | | | | | The idioms fixer makes the following replacements. 1) int <- bool 2) comparison or identity of types <- isinstance 3) a.sort() <- sorted(a) There were two problems that needed to be dealt with after the application of the fixer. First, the replacement of comparison or identity of types by isinstance was not always correct. The isinstance function returns true for subtypes whereas many of the places where the fixer made a substitution needed to check for exact type equality. Second, the sorted function was applied to arrays, but because it treats them as iterators and constructs a sorted list from the result, that is the wrong thing to do. Closes #3062.
* 2to3: apply `dict` fixer.Charles Harris2013-04-061-2/+2
| | | | | | | | | | | | | | | In Python3 `dict.items()`, `dict.keys()`, and `dict.values()` are iterators. This causes problems when a list is needed so the 2to3 fixer explicitly constructs a list when is finds on of those functions. However, that is usually not necessary, so a lot of the work here has been cleaning up those places where the fix is not needed. The big exception to that is the `numpy/f2py/crackfortran.py` file. The code there makes extensive use of loops that modify the contents of the dictionary being looped through, which raises an error. That together with the obscurity of the code in that file made it safest to let the `dict` fixer do its worst. Closes #3050.
* 2to3: Apply `print` fixer.Charles Harris2013-04-061-1/+1
| | | | | | | Add `print_function` to all `from __future__ import ...` statements and use the python3 print function syntax everywhere. Closes #3078.
* 2to3: Use absolute imports.Charles Harris2013-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* 2to3: Put `from __future__ import division in every python file.Charles Harris2013-03-011-0/+2
| | | | | | | | 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.
* BLD: fix build for py3k + pip. Closes #1857. Thanks to Erik Bray.Ralf Gommers2011-08-131-1/+5
| | | | Also works inside a virtualenv.
* ENH: add Intel 64-bit C compiler. Closes #960.rgommers2011-03-111-0/+3
|
* STY: clean up unused code. Closes #1409. Thanks to Bruce Southey.rgommers2011-01-241-13/+1
|
* ENH: add support for the PathScale compilers on Linux. Closes #1043.rgommers2010-12-021-1/+5
| | | | Thanks to R. Perez.
* Fix version matcher for cases where version string appears in second line ↵Pearu Peterson2010-03-171-0/+3
| | | | (Intel Visual Compiler, IA-32, Version 11.1)
* ENH: Support changed distutils API in Python 2.7.Stefan van der Walt2010-02-241-1/+5
|
* Py3k: handle relative import in ccompiler.David Cournapeau2009-12-031-1/+5
|
* Fix some more issues for ccompiler: string module obsolete.David Cournapeau2009-12-031-2/+2
|