Kaydet (Commit) c229e6e8 authored tarafından Antoine Pitrou's avatar Antoine Pitrou

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

This will improve import performance a bit (especially under importlib).
üst ea6b4d5f
...@@ -939,6 +939,20 @@ Porting C code ...@@ -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
------------ ------------
......
...@@ -10,6 +10,9 @@ What's New in Python 3.3 Alpha 1? ...@@ -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.
......
...@@ -28,7 +28,6 @@ typedef struct Module { ...@@ -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}
}; };
......
...@@ -11,7 +11,6 @@ extern char *Py_GetProgramName(void); ...@@ -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}
}; };
......
...@@ -15,7 +15,6 @@ ...@@ -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}
}; };
......
...@@ -10,7 +10,6 @@ ...@@ -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}
}; };
......
...@@ -39,7 +39,6 @@ ...@@ -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[] = { ...@@ -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__ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment