I assume the redundancy was there to handle the naming collision problem, but a better way to do that is to have only header files that users should ever use in "include/", and put the rest inside "include/python/" and "include/internal/" (and if possible, we don't distribute the internal directory as part of -develop packages, which only really impacts the Windows installer as far as we're concerned, but I assume some distros will care). That would mean a layout like: include/ Python.h typeslots.h Python/ abstract.h ... internal/ pycore_atomic.h ... End users/distutils should only -Iinclude, while our build can -Iinclude/Python and -Iinclude/internal as well. Or we can update all of our includes to specify the directory (which I'd prefer - #include "name.h" should look adjacent to the file first, while #include <name.h> looks at search paths first, which should be able to deal with collisions). Any change here is an improvement, though. I'll be happy for Py_BUILD_CORE to go away (or at least only imply -Iinclude/internal, rather than actual preprocessor work), no matter where files land precisely :) Cheers, Steve On 31Oct2018 1835, Eric Snow wrote: > On the one hand dropping redundancy in the filename is fine. On the > other having the names mirror the public header files is valuable. How > about leaving the base names alone and change the directory to "pyinternal"? > > -eric > > On Wed, Oct 31, 2018, 17:36 Victor Stinner <vstinner at redhat.com > <mailto:vstinner at redhat.com> wrote: > > Ok, thanks. I decided to remove the redundant "py", so I renamed > "pystate.h" to "pycore_state.h" (single "py", instead of > "pycore_pystate.h", double "py py"). > > I updated my PR: > https://github.com/python/cpython/pull/10263 > > * Rename Include/internal/ header files: > > * pyatomic.h -> pycore_atomic.h > * ceval.h -> pycore_ceval.h > * condvar.h -> pycore_condvar.h > * context.h -> pycore_context.h > * pygetopt.h -> pycore_getopt.h > * gil.h -> pycore_gil.h > * hamt.h -> pycore_hamt.h > * hash.h -> pycore_hash.h > * mem.h -> pycore_mem.h > * pystate.h -> pycore_state.h > * warnings.h -> pycore_warnings.h > > * PCbuild project, Makefile.pre.in <http://Makefile.pre.in>, > Modules/Setup: add the > Include/internal/ directory to the search paths of header files. > * Update include. For example, replace #include "internal/mem.h" > with #include "pycore_mem.h". > > Victor > Le mer. 31 oct. 2018 à 23:38, Eric Snow <ericsnowcurrently at gmail.com > <mailto:ericsnowcurrently at gmail.com>> a écrit : > > > > B > > On Wed, Oct 31, 2018 at 4:28 PM Victor Stinner > <vstinner at redhat.com <mailto:vstinner at redhat.com>> wrote: > > > > > > Le mer. 31 oct. 2018 à 22:19, Eric Snow > <ericsnowcurrently at gmail.com <mailto:ericsnowcurrently at gmail.com>> a > écrit : > > > > > Maybe we can keep "Include/internal/" directory name, but add > > > > > "pycore_" rather than "internal_" to header filenames? > > > > > > > > this sounds good to me. thanks for chasing this down. > > > > > > What do you prefer? > > > > > > (A Include/internal/internal_pystate.h > > > (B) Include/internal/pycore_pystate.h > > > (C) Include/pycore/pycore_pystate.h > > > > > > Victor >
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4