Issue 45434: [C API] Clean-up the Python.h header file
Created on 2021-10-11 20:08 by vstinner, last changed 2022-04-11 14:59 by admin. This issue is now closed.
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 28883 | merged | vstinner, 2021-10-11 20:22 | |
| PR 28888 | merged | vstinner, 2021-10-11 21:04 | |
| PR 28912 | merged | vstinner, 2021-10-13 01:13 | |
| PR 28913 | merged | vstinner, 2021-10-13 01:27 | |
| PR 28914 | merged | vstinner, 2021-10-13 01:43 | |
| PR 28922 | merged | vstinner, 2021-10-13 12:16 | |
| PR 28923 | merged | vstinner, 2021-10-13 12:48 | |
| PR 28924 | merged | vstinner, 2021-10-13 13:44 | |
| PR 28960 | merged | vstinner, 2021-10-14 22:37 | |
| PR 28963 | merged | vstinner, 2021-10-14 23:24 | |
| PR 28973 | merged | vstinner, 2021-10-15 10:07 | |
| PR 29015 | merged | corona10, 2021-10-18 08:27 | |
| PR 29027 | merged | vstinner, 2021-10-18 10:38 | |
| Messages (19) | |||
|---|---|---|---|
| msg403675 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-11 20:08 | |
I would like to remove #include <stdlib.h> from Python.h, and make Python.h smaller. |
|||
| msg403684 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-11 20:51 | |
New changeset 47717d1186563695e798b40350d15b00d04a5237 by Victor Stinner in branch 'main': bpo-45434: Cleanup Python.h header file (GH-28883) https://github.com/python/cpython/commit/47717d1186563695e798b40350d15b00d04a5237 |
|||
| msg403689 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-11 21:30 | |
New changeset 03ea862b8a8234176761240ba122254e9eb11663 by Victor Stinner in branch 'main': bpo-45434: Python.h no longer includes <stdlib.h> (GH-28888) https://github.com/python/cpython/commit/03ea862b8a8234176761240ba122254e9eb11663 |
|||
| msg403775 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-13 01:39 | |
New changeset 489176e4285314f9ea87b8bd91fe1d55d9af2c42 by Victor Stinner in branch 'main': bpo-45434: Convert Py_GETENV() macro to a function (GH-28912) https://github.com/python/cpython/commit/489176e4285314f9ea87b8bd91fe1d55d9af2c42 |
|||
| msg403785 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-13 02:38 | |
New changeset c63623a0a6892ce8683dbf8c769793ea897e6ba8 by Victor Stinner in branch 'main': bpo-45434: bytearrayobject.h no longer includes <stdarg.h> (GH-28913) https://github.com/python/cpython/commit/c63623a0a6892ce8683dbf8c769793ea897e6ba8 |
|||
| msg403829 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-13 13:03 | |
New changeset 97308dfcdc0696e0b116c37386e2ff4d72e6c3f4 by Victor Stinner in branch 'main': bpo-45434: Move _Py_BEGIN_SUPPRESS_IPH to pycore_fileutils.h (GH-28922) https://github.com/python/cpython/commit/97308dfcdc0696e0b116c37386e2ff4d72e6c3f4 |
|||
| msg403831 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-13 13:22 | |
New changeset bbe7497c5a44c2b4ec726605cf5a9086ba02daf1 by Victor Stinner in branch 'main': bpo-45434: Remove pystrhex.h header file (GH-28923) https://github.com/python/cpython/commit/bbe7497c5a44c2b4ec726605cf5a9086ba02daf1 |
|||
| msg403841 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-13 15:21 | |
Oh, Include/errcode.h *is* used by PyRun_InteractiveOneFlags() and its variants. It's mentioned in its documentation: Returns ``0`` when the input was executed successfully, ``-1`` if there was an exception, or an error code from the :file:`errcode.h` include file distributed as part of Python if there was a parse error. (Note that :file:`errcode.h` is not included by :file:`Python.h`, so must be included specifically if needed.) |
|||
| msg403842 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-13 15:22 | |
New changeset 713bb19356bce9b8f2b95461834fe1dae505f889 by Victor Stinner in branch 'main': bpo-45434: Mark the PyTokenizer C API as private (GH-28924) https://github.com/python/cpython/commit/713bb19356bce9b8f2b95461834fe1dae505f889 |
|||
| msg403843 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-13 15:24 | |
PyRun_InteractiveOneObjectEx() returns a single error code of errcode.h: E_EOF (11):
if (mod == NULL) {
_PyArena_Free(arena);
if (errcode == E_EOF) {
PyErr_Clear();
return E_EOF;
}
return -1;
}
|
|||
| msg403859 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-13 17:26 | |
New changeset aac29af6785712019d34f1a7f15b3c408a4f68ae by Victor Stinner in branch 'main': bpo-45434: pyport.h no longer includes <stdlib.h> (GH-28914) https://github.com/python/cpython/commit/aac29af6785712019d34f1a7f15b3c408a4f68ae |
|||
| msg403940 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-14 20:05 | |
I tried to remove the <string.h> include from Python.h: -#include <string.h> // memcpy() ... but it required me to modify 100+ files. I don't know the exact number, I gave up after 100 files. I was near half of C extensions built by setup.py, so the number total may be around 150 files which should include explicitly <string.h>. "#include <errno.h>" can now be removed from Python.h, but I'm not sure if it's a good idea. I started by removing <stdlib.h> and my plan is to see if it breaks third party C extensions. Right now, Cython is broken which prevents me to use my https://github.com/vstinner/pythonci tool :-( |
|||
| msg403959 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-14 23:09 | |
New changeset 284994762d820d8e09cc019f8f7c4bc501e37dd4 by Victor Stinner in branch 'main': bpo-45434: Limited Python.h no longer includes stdio.h (GH-28960) https://github.com/python/cpython/commit/284994762d820d8e09cc019f8f7c4bc501e37dd4 |
|||
| msg403963 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-14 23:50 | |
New changeset 7076bef8ba8836a19d5033f4ceb8eb9837de2301 by Victor Stinner in branch 'main': bpo-45434: Remove useless space in includes (GH-28963) https://github.com/python/cpython/commit/7076bef8ba8836a19d5033f4ceb8eb9837de2301 |
|||
| msg404002 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-15 11:06 | |
New changeset 105582e74c1817bc6a9d99bcb6540b34a3367292 by Victor Stinner in branch 'main': bpo-45434: Remove Include/eval.h header file (GH-28973) https://github.com/python/cpython/commit/105582e74c1817bc6a9d99bcb6540b34a3367292 |
|||
| msg404162 - (view) | Author: Dong-hee Na (corona10) * ![]() |
Date: 2021-10-18 08:31 | |
New changeset fd03917786a9036ee87b7df604dfb260cc2420c9 by Dong-hee Na in branch 'main': bpo-45434: Include stdlib.h for specialize stat (GH-29015) https://github.com/python/cpython/commit/fd03917786a9036ee87b7df604dfb260cc2420c9 |
|||
| msg404170 - (view) | Author: Thomas Wouters (twouters) * ![]() |
Date: 2021-10-18 09:47 | |
Victor, what's the benefit of doing this work? Are there real problems this fixes? I'm worried about the churn in third-party extensions, examples, tutorials, etc, especially for audiences that upon seeing a compiler error won't immediately realise they need to include stdlib.h themselves. (Also, since Python.h sets things like _POSIX_C_SOURCE and _XOPEN_SOURCE, including them in the wrong order can produce even more confusing errors, or errors that only appear on some platforms.) |
|||
| msg404172 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-18 09:58 | |
I reopen the issue. |
|||
| msg404283 - (view) | Author: STINNER Victor (vstinner) * ![]() |
Date: 2021-10-19 10:10 | |
New changeset 52af0756b2ffc6788e364971d05cdaf127d77d5a by Victor Stinner in branch 'main': bpo-45434: Only exclude <stdlib.h> in Python 3.11 limited C API (GH-29027) https://github.com/python/cpython/commit/52af0756b2ffc6788e364971d05cdaf127d77d5a |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:59:51 | admin | set | github: 89597 |
| 2021-10-19 15:01:04 | vstinner | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2021-10-19 10:10:26 | vstinner | set | messages: + msg404283 |
| 2021-10-18 10:38:48 | vstinner | set | stage: resolved -> patch review pull_requests: + pull_request27298 |
| 2021-10-18 09:58:07 | vstinner | set | status: closed -> open resolution: fixed -> (no value) messages: + msg404172 |
| 2021-10-18 09:47:47 | twouters | set | nosy:
+ twouters messages: + msg404170 |
| 2021-10-18 08:31:32 | corona10 | set | messages: + msg404162 |
| 2021-10-18 08:27:46 | corona10 | set | nosy:
+ corona10 pull_requests: + pull_request27295 |
| 2021-10-15 11:06:09 | vstinner | set | messages: + msg404002 |
| 2021-10-15 10:07:13 | vstinner | set | pull_requests: + pull_request27261 |
| 2021-10-15 06:43:20 | vstinner | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2021-10-14 23:50:12 | vstinner | set | messages: + msg403963 |
| 2021-10-14 23:24:18 | vstinner | set | pull_requests: + pull_request27252 |
| 2021-10-14 23:09:13 | vstinner | set | messages: + msg403959 |
| 2021-10-14 22:37:51 | vstinner | set | pull_requests: + pull_request27249 |
| 2021-10-14 20:05:29 | vstinner | set | messages: + msg403940 |
| 2021-10-13 17:26:00 | vstinner | set | messages: + msg403859 |
| 2021-10-13 15:24:19 | vstinner | set | messages: + msg403843 |
| 2021-10-13 15:22:18 | vstinner | set | messages: + msg403842 |
| 2021-10-13 15:21:56 | vstinner | set | messages: + msg403841 |
| 2021-10-13 13:44:05 | vstinner | set | pull_requests: + pull_request27214 |
| 2021-10-13 13:22:43 | vstinner | set | messages: + msg403831 |
| 2021-10-13 13:03:43 | vstinner | set | messages: + msg403829 |
| 2021-10-13 12:48:18 | vstinner | set | pull_requests: + pull_request27213 |
| 2021-10-13 12:16:08 | vstinner | set | pull_requests: + pull_request27212 |
| 2021-10-13 02:38:03 | vstinner | set | messages: + msg403785 |
| 2021-10-13 01:43:01 | vstinner | set | pull_requests: + pull_request27204 |
| 2021-10-13 01:39:57 | vstinner | set | messages: + msg403775 |
| 2021-10-13 01:27:19 | vstinner | set | pull_requests: + pull_request27203 |
| 2021-10-13 01:13:39 | vstinner | set | pull_requests: + pull_request27202 |
| 2021-10-11 21:30:09 | vstinner | set | messages: + msg403689 |
| 2021-10-11 21:04:11 | vstinner | set | pull_requests: + pull_request27183 |
| 2021-10-11 20:51:40 | vstinner | set | messages: + msg403684 |
| 2021-10-11 20:22:29 | vstinner | set | keywords:
+ patch stage: patch review pull_requests: + pull_request27180 |
| 2021-10-11 20:08:05 | vstinner | create | |
