[Python-Dev] Rename Include/internals/ to Include/pycore/
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:
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
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"?
> 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:
> * 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".
> 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