mirror of https://github.com/python/cpython
gh-107211: No longer export internal functions (7) (#108425)
No longer export _PyUnicode_FromId() internal C API function. Change comment style to "// comment" and add comment explaining why other functions have to be exported. Update Tools/build/generate_token.py to update Include/internal/pycore_token.h comments.
This commit is contained in:
parent
52c6a6e48a
commit
f1ae706ca5
|
@ -98,16 +98,20 @@ extern int _Py_FdIsInteractive(FILE *fp, PyObject *filename);
|
||||||
extern const char* _Py_gitidentifier(void);
|
extern const char* _Py_gitidentifier(void);
|
||||||
extern const char* _Py_gitversion(void);
|
extern const char* _Py_gitversion(void);
|
||||||
|
|
||||||
|
// Export for '_asyncio' shared extension
|
||||||
PyAPI_FUNC(int) _Py_IsInterpreterFinalizing(PyInterpreterState *interp);
|
PyAPI_FUNC(int) _Py_IsInterpreterFinalizing(PyInterpreterState *interp);
|
||||||
|
|
||||||
/* Random */
|
/* Random */
|
||||||
extern int _PyOS_URandom(void *buffer, Py_ssize_t size);
|
extern int _PyOS_URandom(void *buffer, Py_ssize_t size);
|
||||||
|
|
||||||
// Export for '_random' shared extension
|
// Export for '_random' shared extension
|
||||||
PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
|
PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
|
||||||
|
|
||||||
/* Legacy locale support */
|
/* Legacy locale support */
|
||||||
extern int _Py_CoerceLegacyLocale(int warn);
|
extern int _Py_CoerceLegacyLocale(int warn);
|
||||||
extern int _Py_LegacyLocaleDetected(int warn);
|
extern int _Py_LegacyLocaleDetected(int warn);
|
||||||
|
|
||||||
|
// Export for 'readline' shared extension
|
||||||
PyAPI_FUNC(char*) _Py_SetLocaleFromEnv(int category);
|
PyAPI_FUNC(char*) _Py_SetLocaleFromEnv(int category);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -66,6 +66,9 @@ _Py_ThreadCanHandleSignals(PyInterpreterState *interp)
|
||||||
#if defined(HAVE_THREAD_LOCAL) && !defined(Py_BUILD_CORE_MODULE)
|
#if defined(HAVE_THREAD_LOCAL) && !defined(Py_BUILD_CORE_MODULE)
|
||||||
extern _Py_thread_local PyThreadState *_Py_tss_tstate;
|
extern _Py_thread_local PyThreadState *_Py_tss_tstate;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Export for most shared extensions, used via _PyThreadState_GET() static
|
||||||
|
// inline function.
|
||||||
PyAPI_FUNC(PyThreadState *) _PyThreadState_GetCurrent(void);
|
PyAPI_FUNC(PyThreadState *) _PyThreadState_GetCurrent(void);
|
||||||
|
|
||||||
/* Get the current Python thread state.
|
/* Get the current Python thread state.
|
||||||
|
|
|
@ -272,6 +272,9 @@ typedef struct pyruntimestate {
|
||||||
|
|
||||||
/* other API */
|
/* other API */
|
||||||
|
|
||||||
|
// Export _PyRuntime for shared extensions which use it in static inline
|
||||||
|
// functions for best performance, like _Py_IsMainThread() or _Py_ID().
|
||||||
|
// It's also made accessible for debuggers and profilers.
|
||||||
PyAPI_DATA(_PyRuntimeState) _PyRuntime;
|
PyAPI_DATA(_PyRuntimeState) _PyRuntime;
|
||||||
|
|
||||||
extern PyStatus _PyRuntimeState_Init(_PyRuntimeState *runtime);
|
extern PyStatus _PyRuntimeState_Init(_PyRuntimeState *runtime);
|
||||||
|
|
|
@ -8,17 +8,17 @@ extern "C" {
|
||||||
# error "this header requires Py_BUILD_CORE define"
|
# error "this header requires Py_BUILD_CORE define"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Export for 'pickle' shared extension
|
// Export for '_pickle' shared extension
|
||||||
PyAPI_FUNC(int) _PySet_NextEntry(
|
PyAPI_FUNC(int) _PySet_NextEntry(
|
||||||
PyObject *set,
|
PyObject *set,
|
||||||
Py_ssize_t *pos,
|
Py_ssize_t *pos,
|
||||||
PyObject **key,
|
PyObject **key,
|
||||||
Py_hash_t *hash);
|
Py_hash_t *hash);
|
||||||
|
|
||||||
// Export for 'pickle' shared extension
|
// Export for '_pickle' shared extension
|
||||||
PyAPI_FUNC(int) _PySet_Update(PyObject *set, PyObject *iterable);
|
PyAPI_FUNC(int) _PySet_Update(PyObject *set, PyObject *iterable);
|
||||||
|
|
||||||
// Export _PySet_Dummy for the gdb plugin's benefit
|
// Export for the gdb plugin's (python-gdb.py) benefit
|
||||||
PyAPI_DATA(PyObject *) _PySet_Dummy;
|
PyAPI_DATA(PyObject *) _PySet_Dummy;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
|
@ -14,8 +14,8 @@ extern int _PySys_Audit(
|
||||||
const char *argFormat,
|
const char *argFormat,
|
||||||
...);
|
...);
|
||||||
|
|
||||||
/* We want minimal exposure of this function, so use extern rather than
|
// _PySys_ClearAuditHooks() must not be exported: use extern rather than
|
||||||
PyAPI_FUNC() to not export the symbol. */
|
// PyAPI_FUNC(). We want minimal exposure of this function.
|
||||||
extern void _PySys_ClearAuditHooks(PyThreadState *tstate);
|
extern void _PySys_ClearAuditHooks(PyThreadState *tstate);
|
||||||
|
|
||||||
extern int _PySys_SetAttr(PyObject *, PyObject *);
|
extern int _PySys_SetAttr(PyObject *, PyObject *);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Auto-generated by Tools/build/generate_token.py */
|
// Auto-generated by Tools/build/generate_token.py
|
||||||
|
|
||||||
/* Token types */
|
/* Token types */
|
||||||
#ifndef Py_INTERNAL_TOKEN_H
|
#ifndef Py_INTERNAL_TOKEN_H
|
||||||
|
@ -94,7 +94,7 @@ extern "C" {
|
||||||
(x) == FSTRING_MIDDLE)
|
(x) == FSTRING_MIDDLE)
|
||||||
|
|
||||||
|
|
||||||
// Symbols exported for test_peg_generator
|
// Export these 4 symbols for 'test_peg_generator'
|
||||||
PyAPI_DATA(const char * const) _PyParser_TokenNames[]; /* Token names */
|
PyAPI_DATA(const char * const) _PyParser_TokenNames[]; /* Token names */
|
||||||
PyAPI_FUNC(int) _PyToken_OneChar(int);
|
PyAPI_FUNC(int) _PyToken_OneChar(int);
|
||||||
PyAPI_FUNC(int) _PyToken_TwoChars(int, int);
|
PyAPI_FUNC(int) _PyToken_TwoChars(int, int);
|
||||||
|
|
|
@ -114,8 +114,10 @@ extern static_builtin_state * _PyStaticType_GetState(PyInterpreterState *, PyTyp
|
||||||
extern void _PyStaticType_ClearWeakRefs(PyInterpreterState *, PyTypeObject *type);
|
extern void _PyStaticType_ClearWeakRefs(PyInterpreterState *, PyTypeObject *type);
|
||||||
extern void _PyStaticType_Dealloc(PyInterpreterState *, PyTypeObject *);
|
extern void _PyStaticType_Dealloc(PyInterpreterState *, PyTypeObject *);
|
||||||
|
|
||||||
// Export for 'math' shared extension via _PyType_IsReady() function
|
// Export for 'math' shared extension, used via _PyType_IsReady() static inline
|
||||||
|
// function
|
||||||
PyAPI_FUNC(PyObject *) _PyType_GetDict(PyTypeObject *);
|
PyAPI_FUNC(PyObject *) _PyType_GetDict(PyTypeObject *);
|
||||||
|
|
||||||
extern PyObject * _PyType_GetBases(PyTypeObject *type);
|
extern PyObject * _PyType_GetBases(PyTypeObject *type);
|
||||||
extern PyObject * _PyType_GetMRO(PyTypeObject *type);
|
extern PyObject * _PyType_GetMRO(PyTypeObject *type);
|
||||||
extern PyObject* _PyType_GetSubclasses(PyTypeObject *);
|
extern PyObject* _PyType_GetSubclasses(PyTypeObject *);
|
||||||
|
|
|
@ -24,6 +24,7 @@ extern int _PyUnicode_IsCased(Py_UCS4 ch);
|
||||||
|
|
||||||
/* --- Unicode API -------------------------------------------------------- */
|
/* --- Unicode API -------------------------------------------------------- */
|
||||||
|
|
||||||
|
// Export for '_json' shared extension
|
||||||
PyAPI_FUNC(int) _PyUnicode_CheckConsistency(
|
PyAPI_FUNC(int) _PyUnicode_CheckConsistency(
|
||||||
PyObject *op,
|
PyObject *op,
|
||||||
int check_content);
|
int check_content);
|
||||||
|
@ -31,10 +32,10 @@ PyAPI_FUNC(int) _PyUnicode_CheckConsistency(
|
||||||
extern void _PyUnicode_ExactDealloc(PyObject *op);
|
extern void _PyUnicode_ExactDealloc(PyObject *op);
|
||||||
extern Py_ssize_t _PyUnicode_InternedSize(void);
|
extern Py_ssize_t _PyUnicode_InternedSize(void);
|
||||||
|
|
||||||
/* Get a copy of a Unicode string. */
|
// Get a copy of a Unicode string.
|
||||||
|
// Export for '_datetime' shared extension.
|
||||||
PyAPI_FUNC(PyObject*) _PyUnicode_Copy(
|
PyAPI_FUNC(PyObject*) _PyUnicode_Copy(
|
||||||
PyObject *unicode
|
PyObject *unicode);
|
||||||
);
|
|
||||||
|
|
||||||
/* Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash
|
/* Unsafe version of PyUnicode_Fill(): don't check arguments and so may crash
|
||||||
if parameters are invalid (e.g. if length is longer than the string). */
|
if parameters are invalid (e.g. if length is longer than the string). */
|
||||||
|
@ -93,11 +94,13 @@ typedef struct {
|
||||||
unsigned char readonly;
|
unsigned char readonly;
|
||||||
} _PyUnicodeWriter ;
|
} _PyUnicodeWriter ;
|
||||||
|
|
||||||
/* Initialize a Unicode writer.
|
// Initialize a Unicode writer.
|
||||||
*
|
//
|
||||||
* By default, the minimum buffer size is 0 character and overallocation is
|
// By default, the minimum buffer size is 0 character and overallocation is
|
||||||
* disabled. Set min_length, min_char and overallocate attributes to control
|
// disabled. Set min_length, min_char and overallocate attributes to control
|
||||||
* the allocation of the buffer. */
|
// the allocation of the buffer.
|
||||||
|
//
|
||||||
|
// Export the _PyUnicodeWriter API for '_multibytecodec' shared extension.
|
||||||
PyAPI_FUNC(void)
|
PyAPI_FUNC(void)
|
||||||
_PyUnicodeWriter_Init(_PyUnicodeWriter *writer);
|
_PyUnicodeWriter_Init(_PyUnicodeWriter *writer);
|
||||||
|
|
||||||
|
@ -204,12 +207,14 @@ extern PyObject* _PyUnicode_EncodeUTF7(
|
||||||
|
|
||||||
/* --- UTF-8 Codecs ------------------------------------------------------- */
|
/* --- UTF-8 Codecs ------------------------------------------------------- */
|
||||||
|
|
||||||
|
// Export for '_tkinter' shared extension.
|
||||||
PyAPI_FUNC(PyObject*) _PyUnicode_AsUTF8String(
|
PyAPI_FUNC(PyObject*) _PyUnicode_AsUTF8String(
|
||||||
PyObject *unicode,
|
PyObject *unicode,
|
||||||
const char *errors);
|
const char *errors);
|
||||||
|
|
||||||
/* --- UTF-32 Codecs ------------------------------------------------------ */
|
/* --- UTF-32 Codecs ------------------------------------------------------ */
|
||||||
|
|
||||||
|
// Export for '_tkinter' shared extension
|
||||||
PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF32(
|
PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF32(
|
||||||
PyObject *object, /* Unicode object */
|
PyObject *object, /* Unicode object */
|
||||||
const char *errors, /* error handling */
|
const char *errors, /* error handling */
|
||||||
|
@ -217,20 +222,21 @@ PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF32(
|
||||||
|
|
||||||
/* --- UTF-16 Codecs ------------------------------------------------------ */
|
/* --- UTF-16 Codecs ------------------------------------------------------ */
|
||||||
|
|
||||||
/* Returns a Python string object holding the UTF-16 encoded value of
|
// Returns a Python string object holding the UTF-16 encoded value of
|
||||||
the Unicode data.
|
// the Unicode data.
|
||||||
|
//
|
||||||
If byteorder is not 0, output is written according to the following
|
// If byteorder is not 0, output is written according to the following
|
||||||
byte order:
|
// byte order:
|
||||||
|
//
|
||||||
byteorder == -1: little endian
|
// byteorder == -1: little endian
|
||||||
byteorder == 0: native byte order (writes a BOM mark)
|
// byteorder == 0: native byte order (writes a BOM mark)
|
||||||
byteorder == 1: big endian
|
// byteorder == 1: big endian
|
||||||
|
//
|
||||||
If byteorder is 0, the output string will always start with the
|
// If byteorder is 0, the output string will always start with the
|
||||||
Unicode BOM mark (U+FEFF). In the other two modes, no BOM mark is
|
// Unicode BOM mark (U+FEFF). In the other two modes, no BOM mark is
|
||||||
prepended.
|
// prepended.
|
||||||
*/
|
//
|
||||||
|
// Export for '_tkinter' shared extension
|
||||||
PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF16(
|
PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF16(
|
||||||
PyObject* unicode, /* Unicode object */
|
PyObject* unicode, /* Unicode object */
|
||||||
const char *errors, /* error handling */
|
const char *errors, /* error handling */
|
||||||
|
@ -297,13 +303,14 @@ extern PyObject* _PyUnicode_EncodeCharmap(
|
||||||
|
|
||||||
/* --- Decimal Encoder ---------------------------------------------------- */
|
/* --- Decimal Encoder ---------------------------------------------------- */
|
||||||
|
|
||||||
/* Coverts a Unicode object holding a decimal value to an ASCII string
|
// Coverts a Unicode object holding a decimal value to an ASCII string
|
||||||
for using in int, float and complex parsers.
|
// for using in int, float and complex parsers.
|
||||||
Transforms code points that have decimal digit property to the
|
// Transforms code points that have decimal digit property to the
|
||||||
corresponding ASCII digit code points. Transforms spaces to ASCII.
|
// corresponding ASCII digit code points. Transforms spaces to ASCII.
|
||||||
Transforms code points starting from the first non-ASCII code point that
|
// Transforms code points starting from the first non-ASCII code point that
|
||||||
is neither a decimal digit nor a space to the end into '?'. */
|
// is neither a decimal digit nor a space to the end into '?'.
|
||||||
|
//
|
||||||
|
// Export for '_testinternalcapi' shared extension.
|
||||||
PyAPI_FUNC(PyObject*) _PyUnicode_TransformDecimalAndSpaceToASCII(
|
PyAPI_FUNC(PyObject*) _PyUnicode_TransformDecimalAndSpaceToASCII(
|
||||||
PyObject *unicode); /* Unicode object */
|
PyObject *unicode); /* Unicode object */
|
||||||
|
|
||||||
|
@ -323,9 +330,10 @@ extern int _PyUnicode_EqualToASCIIId(
|
||||||
_Py_Identifier *right /* Right identifier */
|
_Py_Identifier *right /* Right identifier */
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Test whether a unicode is equal to ASCII string. Return 1 if true,
|
// Test whether a unicode is equal to ASCII string. Return 1 if true,
|
||||||
0 otherwise. The right argument must be ASCII-encoded string.
|
// 0 otherwise. The right argument must be ASCII-encoded string.
|
||||||
Any error occurs inside will be cleared before return. */
|
// Any error occurs inside will be cleared before return.
|
||||||
|
// Export for '_ctypes' shared extension
|
||||||
PyAPI_FUNC(int) _PyUnicode_EqualToASCIIString(
|
PyAPI_FUNC(int) _PyUnicode_EqualToASCIIString(
|
||||||
PyObject *left,
|
PyObject *left,
|
||||||
const char *right /* ASCII-encoded string */
|
const char *right /* ASCII-encoded string */
|
||||||
|
@ -357,14 +365,17 @@ extern Py_ssize_t _PyUnicode_InsertThousandsGrouping(
|
||||||
|
|
||||||
extern PyObject* _PyUnicode_FormatLong(PyObject *, int, int, int);
|
extern PyObject* _PyUnicode_FormatLong(PyObject *, int, int, int);
|
||||||
|
|
||||||
/* Return an interned Unicode object for an Identifier; may fail if there is no memory.*/
|
// Return an interned Unicode object for an Identifier; may fail if there is no
|
||||||
|
// memory.
|
||||||
|
// Export for '_testembed' program.
|
||||||
PyAPI_FUNC(PyObject*) _PyUnicode_FromId(_Py_Identifier*);
|
PyAPI_FUNC(PyObject*) _PyUnicode_FromId(_Py_Identifier*);
|
||||||
|
|
||||||
/* Fast equality check when the inputs are known to be exact unicode types
|
/* Fast equality check when the inputs are known to be exact unicode types
|
||||||
and where the hash values are equal (i.e. a very probable match) */
|
and where the hash values are equal (i.e. a very probable match) */
|
||||||
extern int _PyUnicode_EQ(PyObject *, PyObject *);
|
extern int _PyUnicode_EQ(PyObject *, PyObject *);
|
||||||
|
|
||||||
/* Equality check. */
|
// Equality check.
|
||||||
|
// Export for '_pickle' shared extension.
|
||||||
PyAPI_FUNC(int) _PyUnicode_Equal(PyObject *, PyObject *);
|
PyAPI_FUNC(int) _PyUnicode_Equal(PyObject *, PyObject *);
|
||||||
|
|
||||||
extern int _PyUnicode_WideCharString_Converter(PyObject *, void *);
|
extern int _PyUnicode_WideCharString_Converter(PyObject *, void *);
|
||||||
|
|
|
@ -14,9 +14,9 @@
|
||||||
#include "pycore_bitutils.h" // _Py_bswap32()
|
#include "pycore_bitutils.h" // _Py_bswap32()
|
||||||
#include "pycore_bytesobject.h" // _PyBytes_Find()
|
#include "pycore_bytesobject.h" // _PyBytes_Find()
|
||||||
#include "pycore_compile.h" // _PyCompile_CodeGen, _PyCompile_OptimizeCfg, _PyCompile_Assemble, _PyCompile_CleanDoc
|
#include "pycore_compile.h" // _PyCompile_CodeGen, _PyCompile_OptimizeCfg, _PyCompile_Assemble, _PyCompile_CleanDoc
|
||||||
#include "pycore_ceval.h" // _PyEval_AddPendingCall
|
#include "pycore_ceval.h" // _PyEval_AddPendingCall()
|
||||||
#include "pycore_dict.h" // _PyDictOrValues_GetValues()
|
#include "pycore_dict.h" // _PyDictOrValues_GetValues()
|
||||||
#include "pycore_fileutils.h" // _Py_normpath
|
#include "pycore_fileutils.h" // _Py_normpath()
|
||||||
#include "pycore_frame.h" // _PyInterpreterFrame
|
#include "pycore_frame.h" // _PyInterpreterFrame
|
||||||
#include "pycore_gc.h" // PyGC_Head
|
#include "pycore_gc.h" // PyGC_Head
|
||||||
#include "pycore_hashtable.h" // _Py_hashtable_new()
|
#include "pycore_hashtable.h" // _Py_hashtable_new()
|
||||||
|
|
|
@ -50,7 +50,7 @@ def update_file(file, content):
|
||||||
|
|
||||||
|
|
||||||
token_h_template = f"""\
|
token_h_template = f"""\
|
||||||
/* {AUTO_GENERATED_BY_SCRIPT} */
|
// {AUTO_GENERATED_BY_SCRIPT}
|
||||||
"""
|
"""
|
||||||
token_h_template += """\
|
token_h_template += """\
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ extern "C" {
|
||||||
(x) == FSTRING_MIDDLE)
|
(x) == FSTRING_MIDDLE)
|
||||||
|
|
||||||
|
|
||||||
// Symbols exported for test_peg_generator
|
// Export these 4 symbols for 'test_peg_generator'
|
||||||
PyAPI_DATA(const char * const) _PyParser_TokenNames[]; /* Token names */
|
PyAPI_DATA(const char * const) _PyParser_TokenNames[]; /* Token names */
|
||||||
PyAPI_FUNC(int) _PyToken_OneChar(int);
|
PyAPI_FUNC(int) _PyToken_OneChar(int);
|
||||||
PyAPI_FUNC(int) _PyToken_TwoChars(int, int);
|
PyAPI_FUNC(int) _PyToken_TwoChars(int, int);
|
||||||
|
|
Loading…
Reference in New Issue