Issue #14040: Remove rarely used file name suffixes for C extensions (under POSIX mainly).

This will improve import performance a bit (especially under importlib).
This commit is contained in:
Antoine Pitrou 2012-02-20 19:41:11 +01:00
parent ea6b4d5f70
commit c229e6e8ff
7 changed files with 17 additions and 10 deletions

View file

@ -939,6 +939,20 @@ Porting C code
:c:func:`PyUnicode_FromFormat()`, your code will automatically take :c:func:`PyUnicode_FromFormat()`, your code will automatically take
advantage of the new unicode representations. advantage of the new unicode representations.
Building C extensions
---------------------
* The range of possible file names for C extensions has been narrowed.
Very rarely used spellings have been suppressed: under POSIX, files
named ``xxxmodule.so``, ``xxxmodule.abi3.so`` and
``xxxmodule.cpython-*.so`` are no longer recognized as implementing
the ``xxx`` module. If you had been generating such files, you have
to switch to the other spellings (i.e., remove the ``module`` string
from the file names).
(implemented in :issue:`14040`.)
Other issues Other issues
------------ ------------

View file

@ -10,6 +10,9 @@ What's New in Python 3.3 Alpha 1?
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #14040: Remove rarely used file name suffixes for C extensions
(under POSIX mainly).
- Issue #14051: Allow arbitrary attributes to be set of classmethod and - Issue #14051: Allow arbitrary attributes to be set of classmethod and
staticmethod. staticmethod.

View file

@ -28,7 +28,6 @@ typedef struct Module {
const struct filedescr _PyImport_DynLoadFiletab[] = { const struct filedescr _PyImport_DynLoadFiletab[] = {
{".so", "rb", C_EXTENSION}, {".so", "rb", C_EXTENSION},
{"module.so", "rb", C_EXTENSION},
{0, 0} {0, 0}
}; };

View file

@ -11,7 +11,6 @@ extern char *Py_GetProgramName(void);
const struct filedescr _PyImport_DynLoadFiletab[] = { const struct filedescr _PyImport_DynLoadFiletab[] = {
{".o", "rb", C_EXTENSION}, {".o", "rb", C_EXTENSION},
{"module.o", "rb", C_EXTENSION},
{0, 0} {0, 0}
}; };

View file

@ -15,7 +15,6 @@
const struct filedescr _PyImport_DynLoadFiletab[] = { const struct filedescr _PyImport_DynLoadFiletab[] = {
{SHLIB_EXT, "rb", C_EXTENSION}, {SHLIB_EXT, "rb", C_EXTENSION},
{"module"SHLIB_EXT, "rb", C_EXTENSION},
{0, 0} {0, 0}
}; };

View file

@ -10,7 +10,6 @@
const struct filedescr _PyImport_DynLoadFiletab[] = { const struct filedescr _PyImport_DynLoadFiletab[] = {
{".so", "rb", C_EXTENSION}, {".so", "rb", C_EXTENSION},
{"module.so", "rb", C_EXTENSION},
{0, 0} {0, 0}
}; };

View file

@ -39,7 +39,6 @@
const struct filedescr _PyImport_DynLoadFiletab[] = { const struct filedescr _PyImport_DynLoadFiletab[] = {
#ifdef __CYGWIN__ #ifdef __CYGWIN__
{".dll", "rb", C_EXTENSION}, {".dll", "rb", C_EXTENSION},
{"module.dll", "rb", C_EXTENSION},
#else /* !__CYGWIN__ */ #else /* !__CYGWIN__ */
#if defined(PYOS_OS2) && defined(PYCC_GCC) #if defined(PYOS_OS2) && defined(PYCC_GCC)
{".pyd", "rb", C_EXTENSION}, {".pyd", "rb", C_EXTENSION},
@ -48,15 +47,10 @@ const struct filedescr _PyImport_DynLoadFiletab[] = {
#ifdef __VMS #ifdef __VMS
{".exe", "rb", C_EXTENSION}, {".exe", "rb", C_EXTENSION},
{".EXE", "rb", C_EXTENSION}, {".EXE", "rb", C_EXTENSION},
{"module.exe", "rb", C_EXTENSION},
{"MODULE.EXE", "rb", C_EXTENSION},
#else /* !__VMS */ #else /* !__VMS */
{"." SOABI ".so", "rb", C_EXTENSION}, {"." SOABI ".so", "rb", C_EXTENSION},
{"module." SOABI ".so", "rb", C_EXTENSION},
{".abi" PYTHON_ABI_STRING ".so", "rb", C_EXTENSION}, {".abi" PYTHON_ABI_STRING ".so", "rb", C_EXTENSION},
{"module.abi" PYTHON_ABI_STRING ".so", "rb", C_EXTENSION},
{".so", "rb", C_EXTENSION}, {".so", "rb", C_EXTENSION},
{"module.so", "rb", C_EXTENSION},
#endif /* __VMS */ #endif /* __VMS */
#endif /* defined(PYOS_OS2) && defined(PYCC_GCC) */ #endif /* defined(PYOS_OS2) && defined(PYCC_GCC) */
#endif /* __CYGWIN__ */ #endif /* __CYGWIN__ */