summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2014-01-03 20:36:49 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2014-01-03 20:36:49 (GMT)
commit1c0689c613b61c8944456e78c5b592e3aaa40aba (patch)
tree7f8bb895da42b257af0ca9cbc2dd13e60abf2186
parenta2924cabaf115169b1629424dbe71ba5a18670da (diff)
downloadcpython-1c0689c613b61c8944456e78c5b592e3aaa40aba.zip
cpython-1c0689c613b61c8944456e78c5b592e3aaa40aba.tar.gz
cpython-1c0689c613b61c8944456e78c5b592e3aaa40aba.tar.bz2
Issue #19526: Exclude all new API from the stable ABI.
-rw-r--r--Include/abstract.h2
-rw-r--r--Include/codecs.h2
-rw-r--r--Include/dictobject.h2
-rw-r--r--Include/fileutils.h4
-rw-r--r--Include/object.h2
-rw-r--r--Include/pyerrors.h6
-rw-r--r--Include/pyhash.h2
-rw-r--r--Include/pymem.h4
-rw-r--r--Include/pystate.h2
-rw-r--r--Include/pythonrun.h2
-rw-r--r--Include/sysmodule.h2
-rw-r--r--Include/unicodeobject.h2
-rw-r--r--Include/warnings.h4
-rw-r--r--Misc/NEWS3
14 files changed, 37 insertions, 2 deletions
diff --git a/Include/abstract.h b/Include/abstract.h
index d258ad5..4bc9952a 100644
--- a/Include/abstract.h
+++ b/Include/abstract.h
@@ -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__().
diff --git a/Include/codecs.h b/Include/codecs.h
index 5ca505f..8f0014e 100644
--- a/Include/codecs.h
+++ b/Include/codecs.h
@@ -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
diff --git a/Include/dictobject.h b/Include/dictobject.h
index 2859669..ef122bd 100644
--- a/Include/dictobject.h
+++ b/Include/dictobject.h
@@ -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);
diff --git a/Include/fileutils.h b/Include/fileutils.h
index 5466e3c..e9bad80 100644
--- a/Include/fileutils.h
+++ b/Include/fileutils.h
@@ -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
}
diff --git a/Include/object.h b/Include/object.h
index f539652..a278465 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -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. */
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
index ebc027f..3e92bb6 100644
--- a/Include/pyerrors.h
+++ b/Include/pyerrors.h
@@ -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 */
diff --git a/Include/pyhash.h b/Include/pyhash.h
index 83c9281..a7ca937 100644
--- a/Include/pyhash.h
+++ b/Include/pyhash.h
@@ -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;
diff --git a/Include/pymem.h b/Include/pymem.h
index 83f1537..2372b86 100644
--- a/Include/pymem.h
+++ b/Include/pymem.h
@@ -11,9 +11,11 @@
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. */
diff --git a/Include/pystate.h b/Include/pystate.h
index 06af808..1f3465f 100644
--- a/Include/pystate.h
+++ b/Include/pystate.h
@@ -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 */
diff --git a/Include/pythonrun.h b/Include/pythonrun.h
index c364947..2fc5578 100644
--- a/Include/pythonrun.h
+++ b/Include/pythonrun.h
@@ -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);
diff --git a/Include/sysmodule.h b/Include/sysmodule.h
index 925c2a3..79e52a3 100644
--- a/Include/sysmodule.h
+++ b/Include/sysmodule.h
@@ -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 *);
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h
index b6d331b..c088a0f 100644
--- a/Include/unicodeobject.h
+++ b/Include/unicodeobject.h
@@ -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,
diff --git a/Include/warnings.h b/Include/warnings.h
index 217c06a..effb9fad 100644
--- a/Include/warnings.h
+++ b/Include/warnings.h
@@ -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
diff --git a/Misc/NEWS b/Misc/NEWS
index f766ed9..13e7586 100644
--- 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].