This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
| Author | vstinner |
|---|---|
| Recipients | vstinner |
| Date | 2018年10月27日.00:42:22 |
| SpamBayes Score | -1.0 |
| Marked as misclassified | Yes |
| Message-id | <1540600944.05.0.788709270274.issue35081@psf.upfronthosting.co.za> |
| In-reply-to |
| Content | |
|---|---|
Currently, #include "pymem.h" may include Include/pymem.h or Include/internal/pymem.h depending where is the C file (.c) and if Include/internal/ is in the header search path or not. I propose to: * Rename Include/internal/ to Include/pycore/ * In this subdirectory, rename xxx.h to pycore_xxx.h to avoid any risk of confusion * Automatically include pycore_xxx.h in xxx.h if Py_BUILD_CORE is defined: this should avoid the need of explicit #include "internal/xxx.h" in C files For example, Include/internal/pystate.h becomes Include/pycore/pycore_pystate.h. Attached PR implements this idea. I chose to rename "internal" subdirectory to "pycore" to prepare the addition of other subdirectories. See: * https://pythoncapi.readthedocs.io/split_include.html * https://pythoncapi.readthedocs.io/ Next steps: * Move all code surrounded by #ifdef Py_BUILD_CORE from Include/*.h into Include/pycore/*.h: see the second commit of my PR for an example * Move core surrounded by #ifndef Py_LIMITED_API from Include/*.h into Include/limited/ (example of filename: Include/limited/limited_object.h) This change should be backward compatible since Include/internal/ must not be used outside CPython core. If someone does that, well, be ready for breakage :-) It's not supported. |
|
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2018年10月27日 00:42:24 | vstinner | set | recipients: + vstinner |
| 2018年10月27日 00:42:24 | vstinner | set | messageid: <1540600944.05.0.788709270274.issue35081@psf.upfronthosting.co.za> |
| 2018年10月27日 00:42:23 | vstinner | link | issue35081 messages |
| 2018年10月27日 00:42:22 | vstinner | create | |