Message372973
| Author |
jaraco |
| Recipients |
dstufft, eric.araujo, jaraco, lukasz.langa |
| Date |
2020年07月04日.01:25:51 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1593825952.85.0.0742954618161.issue41207@roundup.psfhosted.org> |
| In-reply-to |
| Content |
In [pypa/setuptools#2228](https://github.com/pypa/setuptools/issues/2228), by adopting the distutils codebase from a late release of CPython, Setuptools stumbled onto an API-breaking change in distutils rooted at issue39763.
Details are in the Setuptools investigation, but to summarize:
- distutils.ccompiler.CCompiler.compile declares "raises CompileError on failure" and calls `self._compile`, implemented by subclasses.
- In at least `distutils.unixcompiler.UnixCCompiler._compile`, `distutils.spawn.spawn` is called (through CCompiler.spawn).
- Since GH-18743, `distutils.spawn.spawn` calls `subprocess.Popen` which raises FileNotFoundError when the target executable doesn't exist.
- Programs trapping CompileError but not FileNotFoundError will crash where once they had error handling.
Setuptools discovered this behavior in the 48.0 release when it incorporated these distutils changes into a vendored release of Setuptools, but the failures exhibited will apply to all builds (including pyyaml) on Python 3.9. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2020年07月04日 01:25:52 | jaraco | set | recipients:
+ jaraco, eric.araujo, lukasz.langa, dstufft |
| 2020年07月04日 01:25:52 | jaraco | set | messageid: <1593825952.85.0.0742954618161.issue41207@roundup.psfhosted.org> |
| 2020年07月04日 01:25:52 | jaraco | link | issue41207 messages |
| 2020年07月04日 01:25:51 | jaraco | create |
|