]> granicus.if.org Git - python/commitdiff
Issue #19526: Exclude all new API from the stable ABI.
authorMartin v. Löwis <martin@v.loewis.de>
Fri, 3 Jan 2014 20:36:49 +0000 (21:36 +0100)
committerMartin v. Löwis <martin@v.loewis.de>
Fri, 3 Jan 2014 20:36:49 +0000 (21:36 +0100)
14 files changed:
Include/abstract.h
Include/codecs.h
Include/dictobject.h
Include/fileutils.h
Include/object.h
Include/pyerrors.h
Include/pyhash.h
Include/pymem.h
Include/pystate.h
Include/pythonrun.h
Include/sysmodule.h
Include/unicodeobject.h
Include/warnings.h
Misc/NEWS

index d258ad5568756b1f4b2c4b9c4d4e44aa5ee22759..4bc9952ac6ee2ec81f5af26ba68acae2d692f310 100644 (file)
@@ -409,8 +409,8 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
 
 #ifndef Py_LIMITED_API
      PyAPI_FUNC(int) _PyObject_HasLen(PyObject *o);
+     PyAPI_FUNC(Py_ssize_t) PyObject_LengthHint(PyObject *o, Py_ssize_t);
 #endif
-PyAPI_FUNC(Py_ssize_t) PyObject_LengthHint(PyObject *o, Py_ssize_t);
 
        /*
      Guess the size of object o using len(o) or o.__length_hint__().
index 5ca505fbd5ec042229054add7311887090044094..8f0014e2377b401631a230b039f40cdd33169c97 100644 (file)
@@ -94,7 +94,7 @@ PyAPI_FUNC(PyObject *) PyCodec_Decode(
        const char *errors
        );
 
-#ifndef PY_LIMITED_API
+#ifndef Py_LIMITED_API
 /* Text codec specific encoding and decoding API.
 
    Checks the encoding against a list of codecs which do not
index 285966963c3e1bc10f67286f5a9527d3bb57210b..ef122bde9733b9f77ea4ed87fbcd7f9733e6aa80 100644 (file)
@@ -53,8 +53,10 @@ PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key);
 PyAPI_FUNC(PyObject *) PyDict_GetItemWithError(PyObject *mp, PyObject *key);
 PyAPI_FUNC(PyObject *) _PyDict_GetItemIdWithError(PyObject *dp,
                                                   struct _Py_Identifier *key);
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(PyObject *) PyDict_SetDefault(
     PyObject *mp, PyObject *key, PyObject *defaultobj);
+#endif
 PyAPI_FUNC(int) PyDict_SetItem(PyObject *mp, PyObject *key, PyObject *item);
 PyAPI_FUNC(int) PyDict_DelItem(PyObject *mp, PyObject *key);
 PyAPI_FUNC(void) PyDict_Clear(PyObject *mp);
index 5466e3c7e0d713aca171f807829137eaa79ff167..e9bad80b8734ccbc0218b8deaf434828651a4ee8 100644 (file)
@@ -27,9 +27,11 @@ PyAPI_FUNC(int) _Py_stat(
     struct stat *statbuf);
 #endif
 
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(int) _Py_open(
     const char *pathname,
     int flags);
+#endif
 
 PyAPI_FUNC(FILE *) _Py_wfopen(
     const wchar_t *path,
@@ -61,12 +63,14 @@ PyAPI_FUNC(wchar_t*) _Py_wgetcwd(
     wchar_t *buf,
     size_t size);
 
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(int) _Py_get_inheritable(int fd);
 
 PyAPI_FUNC(int) _Py_set_inheritable(int fd, int inheritable,
                                     int *atomic_flag_works);
 
 PyAPI_FUNC(int) _Py_dup(int fd);
+#endif
 
 #ifdef __cplusplus
 }
index f5396524c00f70c01069190cf7ea5a8e1bacabe4..a27846543e021b9d0e08e18d5e4c64be7e028e2a 100644 (file)
@@ -533,8 +533,10 @@ PyAPI_FUNC(int) PyObject_Not(PyObject *);
 PyAPI_FUNC(int) PyCallable_Check(PyObject *);
 
 PyAPI_FUNC(void) PyObject_ClearWeakRefs(PyObject *);
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(void) PyObject_CallFinalizer(PyObject *);
 PyAPI_FUNC(int) PyObject_CallFinalizerFromDealloc(PyObject *);
+#endif
 
 /* Same as PyObject_Generic{Get,Set}Attr, but passing the attributes
    dict as the last parameter. */
index ebc027fea383136ff660b8e58135e5fb1a977f4d..3e92bb68b05534e95050fabb3487889e5796394c 100644 (file)
@@ -75,7 +75,9 @@ typedef PyOSErrorObject PyWindowsErrorObject;
 
 PyAPI_FUNC(void) PyErr_SetNone(PyObject *);
 PyAPI_FUNC(void) PyErr_SetObject(PyObject *, PyObject *);
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(void) _PyErr_SetKeyError(PyObject *);
+#endif
 PyAPI_FUNC(void) PyErr_SetString(
     PyObject *exception,
     const char *string   /* decoded from utf-8 */
@@ -321,16 +323,20 @@ PyAPI_FUNC(void) PyErr_SyntaxLocationEx(
     const char *filename,       /* decoded from the filesystem encoding */
     int lineno,
     int col_offset);
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(void) PyErr_SyntaxLocationObject(
     PyObject *filename,
     int lineno,
     int col_offset);
+#endif
 PyAPI_FUNC(PyObject *) PyErr_ProgramText(
     const char *filename,       /* decoded from the filesystem encoding */
     int lineno);
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(PyObject *) PyErr_ProgramTextObject(
     PyObject *filename,
     int lineno);
+#endif
 
 /* The following functions are used to create and modify unicode
    exceptions from C */
index 83c928137baffadc225926d56abaa26492b90162..a7ca93758c3515fcf417e1254bdc53a4744965d4 100644 (file)
@@ -50,6 +50,7 @@ PyAPI_FUNC(Py_hash_t) _Py_HashBytes(const void*, Py_ssize_t);
  * (*) The siphash member may not be available on 32 bit platforms without
  *     an unsigned int64 data type.
  */
+#ifndef Py_LIMITED_API
 typedef union {
     /* ensure 24 bytes */
     unsigned char uc[24];
@@ -76,6 +77,7 @@ typedef union {
     } expat;
 } _Py_HashSecret_t;
 PyAPI_DATA(_Py_HashSecret_t) _Py_HashSecret;
+#endif
 
 #ifdef Py_DEBUG
 PyAPI_DATA(int) _Py_HashSecret_Initialized;
index 83f1537f3f55128cd6157c7d68417eb761fe30c6..2372b864a1d6da5a5ed45b7470a3790e96e18ac0 100644 (file)
 extern "C" {
 #endif
 
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(void *) PyMem_RawMalloc(size_t size);
 PyAPI_FUNC(void *) PyMem_RawRealloc(void *ptr, size_t new_size);
 PyAPI_FUNC(void) PyMem_RawFree(void *ptr);
+#endif
 
 
 /* BEWARE:
@@ -58,8 +60,10 @@ PyAPI_FUNC(void *) PyMem_Malloc(size_t size);
 PyAPI_FUNC(void *) PyMem_Realloc(void *ptr, size_t new_size);
 PyAPI_FUNC(void) PyMem_Free(void *ptr);
 
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(char *) _PyMem_RawStrdup(const char *str);
 PyAPI_FUNC(char *) _PyMem_Strdup(const char *str);
+#endif
 
 /* Macros. */
 
index 06af808444372e48f60c49720fe959b894b196ad..1f3465fdbd5236afcf31eb90d03d9e3af4b34954 100644 (file)
@@ -236,7 +236,9 @@ PyAPI_FUNC(PyThreadState *) PyGILState_GetThisThreadState(void);
 /* Helper/diagnostic function - return 1 if the current thread
  * currently holds the GIL, 0 otherwise
  */
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(int) PyGILState_Check(void);
+#endif
 
 #endif   /* #ifdef WITH_THREAD */
 
index c364947685170f104b3a637c417ef4a489f32aa1..2fc5578f04ba5ab99078eb6084c651c6932b1d4a 100644 (file)
@@ -155,10 +155,12 @@ PyAPI_FUNC(struct symtable *) Py_SymtableString(
     const char *str,
     const char *filename,       /* decoded from the filesystem encoding */
     int start);
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(struct symtable *) Py_SymtableStringObject(
     const char *str,
     PyObject *filename,
     int start);
+#endif
 
 PyAPI_FUNC(void) PyErr_Print(void);
 PyAPI_FUNC(void) PyErr_PrintEx(int);
index 925c2a34f47656ce75d48fd99ef761fe6151cbbc..79e52a365f47380b406b5dd8ad82713850735046 100644 (file)
@@ -8,7 +8,9 @@ extern "C" {
 #endif
 
 PyAPI_FUNC(PyObject *) PySys_GetObject(const char *);
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(PyObject *) _PySys_GetObjectId(_Py_Identifier *key);
+#endif
 PyAPI_FUNC(int) PySys_SetObject(const char *, PyObject *);
 PyAPI_FUNC(int) _PySys_SetObjectId(_Py_Identifier *key, PyObject *);
 
index b6d331bb8d3d7582ce463bdc870edf4087dca922..c088a0f0c13fd9034ec90eb0383fd3a62496c8f3 100644 (file)
@@ -2004,10 +2004,12 @@ PyAPI_FUNC(int) PyUnicode_Compare(
     PyObject *right             /* Right string */
     );
 
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(int) _PyUnicode_CompareWithId(
     PyObject *left,             /* Left string */
     _Py_Identifier *right       /* Right identifier */
     );
+#endif
 
 PyAPI_FUNC(int) PyUnicode_CompareWithASCIIString(
     PyObject *left,
index 217c06a665671130c93b69af7b73c3fc121e7478..effb9fad7196f4edb8dc4e12bcf9dd667d3ea4c4 100644 (file)
@@ -17,6 +17,7 @@ PyAPI_FUNC(int) PyErr_WarnFormat(
     Py_ssize_t stack_level,
     const char *format,         /* ASCII-encoded string  */
     ...);
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(int) PyErr_WarnExplicitObject(
     PyObject *category,
     PyObject *message,
@@ -24,6 +25,7 @@ PyAPI_FUNC(int) PyErr_WarnExplicitObject(
     int lineno,
     PyObject *module,
     PyObject *registry);
+#endif
 PyAPI_FUNC(int) PyErr_WarnExplicit(
     PyObject *category,
     const char *message,        /* UTF-8 encoded string */
@@ -32,11 +34,13 @@ PyAPI_FUNC(int) PyErr_WarnExplicit(
     const char *module,         /* UTF-8 encoded string */
     PyObject *registry);
 
+#ifndef Py_LIMITED_API
 PyAPI_FUNC(int)
 PyErr_WarnExplicitFormat(PyObject *category,
                          const char *filename, int lineno,
                          const char *module, PyObject *registry,
                          const char *format, ...);
+#endif
 
 /* DEPRECATED: Use PyErr_WarnEx() instead. */
 #ifndef Py_LIMITED_API
index f766ed930b3941781a758141cc2c2bec5cfaa900..13e75866d512ace7e02207cd869b97790dbcd8a7 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ Release date: 2014-01-05
 Core and Builtins
 -----------------
 
+- Issue #19526: Exclude all new API from the stable ABI. Exceptions can be
+  made if a need is demonstrated.
+
 - Issue #19969: PyBytes_FromFormatV() now raises an OverflowError if "%c"
   argument is not in range [0; 255].