| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  | #ifndef Py_INTERNAL_RUNTIME_INIT_H
 | 
					
						
							|  |  |  | #define Py_INTERNAL_RUNTIME_INIT_H
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef Py_BUILD_CORE
 | 
					
						
							|  |  |  | #  error "this header requires Py_BUILD_CORE define"
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-21 20:05:59 +02:00
										 |  |  | #include "pycore_ceval_state.h"   // _PyEval_RUNTIME_PERF_INIT
 | 
					
						
							|  |  |  | #include "pycore_faulthandler.h"  // _faulthandler_runtime_state_INIT
 | 
					
						
							|  |  |  | #include "pycore_floatobject.h"   // _py_float_format_unknown
 | 
					
						
							|  |  |  | #include "pycore_object.h"        // _PyObject_HEAD_INIT
 | 
					
						
							|  |  |  | #include "pycore_obmalloc_init.h" // _obmalloc_global_state_INIT
 | 
					
						
							|  |  |  | #include "pycore_parser.h"        // _parser_runtime_state_INIT
 | 
					
						
							|  |  |  | #include "pycore_pyhash.h"        // pyhash_state_INIT
 | 
					
						
							|  |  |  | #include "pycore_pymem_init.h"    // _pymem_allocators_standard_INIT
 | 
					
						
							|  |  |  | #include "pycore_runtime_init_generated.h"  // _Py_bytes_characters_INIT
 | 
					
						
							|  |  |  | #include "pycore_signal.h"        // _signals_RUNTIME_INIT
 | 
					
						
							|  |  |  | #include "pycore_tracemalloc.h"   // _tracemalloc_runtime_state_INIT
 | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-06 19:40:09 -07:00
										 |  |  | extern PyTypeObject _PyExc_MemoryError; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  | /* The static initializers defined here should only be used
 | 
					
						
							|  |  |  |    in the runtime init code (in pystate.c and pylifecycle.c). */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-11 16:30:46 -07:00
										 |  |  | #define _PyRuntimeState_INIT(runtime) \
 | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  |     { \ | 
					
						
							| 
									
										
										
										
											2023-07-11 20:35:41 +01:00
										 |  |  |         .debug_offsets = { \ | 
					
						
							|  |  |  |             .cookie = "xdebugpy", \ | 
					
						
							|  |  |  |             .version = PY_VERSION_HEX, \ | 
					
						
							|  |  |  |             .runtime_state = { \ | 
					
						
							|  |  |  |                 .finalizing = offsetof(_PyRuntimeState, _finalizing), \ | 
					
						
							|  |  |  |                 .interpreters_head = offsetof(_PyRuntimeState, interpreters.head), \ | 
					
						
							|  |  |  |             }, \ | 
					
						
							|  |  |  |             .interpreter_state = { \ | 
					
						
							|  |  |  |                 .next = offsetof(PyInterpreterState, next), \ | 
					
						
							|  |  |  |                 .threads_head = offsetof(PyInterpreterState, threads.head), \ | 
					
						
							|  |  |  |                 .gc = offsetof(PyInterpreterState, gc), \ | 
					
						
							|  |  |  |                 .imports_modules = offsetof(PyInterpreterState, imports.modules), \ | 
					
						
							|  |  |  |                 .sysdict = offsetof(PyInterpreterState, sysdict), \ | 
					
						
							|  |  |  |                 .builtins = offsetof(PyInterpreterState, builtins), \ | 
					
						
							|  |  |  |                 .ceval_gil = offsetof(PyInterpreterState, ceval.gil), \ | 
					
						
							|  |  |  |                 .gil_runtime_state_locked = offsetof(PyInterpreterState, _gil.locked), \ | 
					
						
							|  |  |  |                 .gil_runtime_state_holder = offsetof(PyInterpreterState, _gil.last_holder), \ | 
					
						
							|  |  |  |             }, \ | 
					
						
							|  |  |  |             .thread_state = { \ | 
					
						
							|  |  |  |                 .prev = offsetof(PyThreadState, prev), \ | 
					
						
							|  |  |  |                 .next = offsetof(PyThreadState, next), \ | 
					
						
							|  |  |  |                 .interp = offsetof(PyThreadState, interp), \ | 
					
						
							| 
									
										
										
										
											2023-08-17 11:16:03 +01:00
										 |  |  |                 .current_frame = offsetof(PyThreadState, current_frame), \ | 
					
						
							| 
									
										
										
										
											2023-07-11 20:35:41 +01:00
										 |  |  |                 .thread_id = offsetof(PyThreadState, thread_id), \ | 
					
						
							|  |  |  |                 .native_thread_id = offsetof(PyThreadState, native_thread_id), \ | 
					
						
							|  |  |  |             }, \ | 
					
						
							|  |  |  |             .interpreter_frame = { \ | 
					
						
							|  |  |  |                 .previous = offsetof(_PyInterpreterFrame, previous), \ | 
					
						
							|  |  |  |                 .executable = offsetof(_PyInterpreterFrame, f_executable), \ | 
					
						
							| 
									
										
										
										
											2023-10-26 14:43:10 +01:00
										 |  |  |                 .instr_ptr = offsetof(_PyInterpreterFrame, instr_ptr), \ | 
					
						
							| 
									
										
										
										
											2023-07-11 20:35:41 +01:00
										 |  |  |                 .localsplus = offsetof(_PyInterpreterFrame, localsplus), \ | 
					
						
							|  |  |  |                 .owner = offsetof(_PyInterpreterFrame, owner), \ | 
					
						
							|  |  |  |             }, \ | 
					
						
							|  |  |  |             .code_object = { \ | 
					
						
							|  |  |  |                 .filename = offsetof(PyCodeObject, co_filename), \ | 
					
						
							|  |  |  |                 .name = offsetof(PyCodeObject, co_name), \ | 
					
						
							|  |  |  |                 .linetable = offsetof(PyCodeObject, co_linetable), \ | 
					
						
							|  |  |  |                 .firstlineno = offsetof(PyCodeObject, co_firstlineno), \ | 
					
						
							|  |  |  |                 .argcount = offsetof(PyCodeObject, co_argcount), \ | 
					
						
							|  |  |  |                 .localsplusnames = offsetof(PyCodeObject, co_localsplusnames), \ | 
					
						
							|  |  |  |                 .localspluskinds = offsetof(PyCodeObject, co_localspluskinds), \ | 
					
						
							|  |  |  |                 .co_code_adaptive = offsetof(PyCodeObject, co_code_adaptive), \ | 
					
						
							|  |  |  |             }, \ | 
					
						
							|  |  |  |             .pyobject = { \ | 
					
						
							|  |  |  |                 .ob_type = offsetof(PyObject, ob_type), \ | 
					
						
							|  |  |  |             }, \ | 
					
						
							|  |  |  |             .type_object = { \ | 
					
						
							|  |  |  |                 .tp_name = offsetof(PyTypeObject, tp_name), \ | 
					
						
							|  |  |  |             }, \ | 
					
						
							|  |  |  |             .tuple_object = { \ | 
					
						
							|  |  |  |                 .ob_item = offsetof(PyTupleObject, ob_item), \ | 
					
						
							|  |  |  |             }, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2022-11-11 16:30:46 -07:00
										 |  |  |         .allocators = { \ | 
					
						
							| 
									
										
										
										
											2023-06-08 14:06:54 -06:00
										 |  |  |             .standard = _pymem_allocators_standard_INIT(runtime), \ | 
					
						
							|  |  |  |             .debug = _pymem_allocators_debug_INIT, \ | 
					
						
							|  |  |  |             .obj_arena = _pymem_allocators_obj_arena_INIT, \ | 
					
						
							| 
									
										
										
										
											2022-11-11 16:30:46 -07:00
										 |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2023-04-24 17:23:57 -06:00
										 |  |  |         .obmalloc = _obmalloc_global_state_INIT, \ | 
					
						
							| 
									
										
										
										
											2022-11-16 09:37:14 -07:00
										 |  |  |         .pyhash_state = pyhash_state_INIT, \ | 
					
						
							| 
									
										
										
										
											2022-12-12 16:50:19 -07:00
										 |  |  |         .signals = _signals_RUNTIME_INIT, \ | 
					
						
							| 
									
										
										
										
											2022-01-13 16:33:40 -07:00
										 |  |  |         .interpreters = { \ | 
					
						
							|  |  |  |             /* This prevents interpreters from getting created \
 | 
					
						
							|  |  |  |               until _PyInterpreterState_Enable() is called. */ \ | 
					
						
							|  |  |  |             .next_id = -1, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2023-01-19 16:04:14 -07:00
										 |  |  |         /* A TSS key must be initialized with Py_tss_NEEDS_INIT \
 | 
					
						
							|  |  |  |            in accordance with the specification. */ \ | 
					
						
							|  |  |  |         .autoTSSkey = Py_tss_NEEDS_INIT, \ | 
					
						
							| 
									
										
										
										
											2022-12-16 06:48:03 -07:00
										 |  |  |         .parser = _parser_runtime_state_INIT, \ | 
					
						
							| 
									
										
										
										
											2022-12-08 17:17:20 -07:00
										 |  |  |         .ceval = { \ | 
					
						
							|  |  |  |             .perf = _PyEval_RUNTIME_PERF_INIT, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2022-11-16 09:37:14 -07:00
										 |  |  |         .gilstate = { \ | 
					
						
							|  |  |  |             .check_enabled = 1, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							|  |  |  |         .fileutils = { \ | 
					
						
							|  |  |  |             .force_ascii = -1, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2022-12-12 09:58:46 -07:00
										 |  |  |         .faulthandler = _faulthandler_runtime_state_INIT, \ | 
					
						
							| 
									
										
										
										
											2022-12-12 08:44:23 -07:00
										 |  |  |         .tracemalloc = _tracemalloc_runtime_state_INIT, \ | 
					
						
							| 
									
										
										
										
											2022-11-16 09:37:14 -07:00
										 |  |  |         .float_state = { \ | 
					
						
							|  |  |  |             .float_format = _py_float_format_unknown, \ | 
					
						
							|  |  |  |             .double_format = _py_float_format_unknown, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							|  |  |  |         .types = { \ | 
					
						
							|  |  |  |             .next_version_tag = 1, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2022-12-14 11:53:57 -07:00
										 |  |  |         .static_objects = { \ | 
					
						
							| 
									
										
										
										
											2022-11-11 13:23:41 -07:00
										 |  |  |             .singletons = { \ | 
					
						
							|  |  |  |                 .small_ints = _Py_small_ints_INIT, \ | 
					
						
							|  |  |  |                 .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \ | 
					
						
							|  |  |  |                 .bytes_characters = _Py_bytes_characters_INIT, \ | 
					
						
							|  |  |  |                 .strings = { \ | 
					
						
							|  |  |  |                     .literals = _Py_str_literals_INIT, \ | 
					
						
							|  |  |  |                     .identifiers = _Py_str_identifiers_INIT, \ | 
					
						
							|  |  |  |                     .ascii = _Py_str_ascii_INIT, \ | 
					
						
							|  |  |  |                     .latin1 = _Py_str_latin1_INIT, \ | 
					
						
							|  |  |  |                 }, \ | 
					
						
							|  |  |  |                 .tuple_empty = { \ | 
					
						
							| 
									
										
										
										
											2023-10-30 12:06:09 -04:00
										 |  |  |                     .ob_base = _PyVarObject_HEAD_INIT(&PyTuple_Type, 0), \ | 
					
						
							| 
									
										
										
										
											2022-11-11 13:23:41 -07:00
										 |  |  |                 }, \ | 
					
						
							| 
									
										
										
										
											2022-11-16 09:54:28 -07:00
										 |  |  |                 .hamt_bitmap_node_empty = { \ | 
					
						
							| 
									
										
										
										
											2023-10-30 12:06:09 -04:00
										 |  |  |                     .ob_base = _PyVarObject_HEAD_INIT(&_PyHamt_BitmapNode_Type, 0), \ | 
					
						
							| 
									
										
										
										
											2022-11-16 09:54:28 -07:00
										 |  |  |                 }, \ | 
					
						
							|  |  |  |                 .context_token_missing = { \ | 
					
						
							| 
									
										
										
										
											2023-10-30 12:06:09 -04:00
										 |  |  |                     .ob_base = _PyObject_HEAD_INIT(&_PyContextTokenMissing_Type), \ | 
					
						
							| 
									
										
										
										
											2022-11-16 09:54:28 -07:00
										 |  |  |                 }, \ | 
					
						
							| 
									
										
										
										
											2022-11-11 13:23:41 -07:00
										 |  |  |             }, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2023-02-28 13:14:40 -07:00
										 |  |  |         ._main_interpreter = _PyInterpreterState_INIT(runtime._main_interpreter), \ | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-28 13:14:40 -07:00
										 |  |  | #define _PyInterpreterState_INIT(INTERP) \
 | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  |     { \ | 
					
						
							| 
									
										
										
										
											2022-01-13 17:17:28 -07:00
										 |  |  |         .id_refcount = -1, \ | 
					
						
							| 
									
										
										
										
											2023-02-15 15:32:31 -07:00
										 |  |  |         .imports = IMPORTS_INIT, \ | 
					
						
							| 
									
										
										
										
											2023-04-24 17:23:57 -06:00
										 |  |  |         .obmalloc = _obmalloc_state_INIT(INTERP.obmalloc), \ | 
					
						
							| 
									
										
										
										
											2022-01-13 17:17:28 -07:00
										 |  |  |         .ceval = { \ | 
					
						
							|  |  |  |             .recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							|  |  |  |         .gc = { \ | 
					
						
							|  |  |  |             .enabled = 1, \ | 
					
						
							|  |  |  |             .generations = { \ | 
					
						
							|  |  |  |                 /* .head is set in _PyGC_InitState(). */ \ | 
					
						
							|  |  |  |                 { .threshold = 700, }, \ | 
					
						
							|  |  |  |                 { .threshold = 10, }, \ | 
					
						
							|  |  |  |                 { .threshold = 10, }, \ | 
					
						
							|  |  |  |             }, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2023-08-03 13:51:08 -06:00
										 |  |  |         .object_state = _py_object_state_INIT(INTERP), \ | 
					
						
							| 
									
										
										
										
											2023-02-28 13:14:40 -07:00
										 |  |  |         .dtoa = _dtoa_state_INIT(&(INTERP)), \ | 
					
						
							| 
									
										
										
										
											2023-05-10 07:28:40 -06:00
										 |  |  |         .dict_state = _dict_state_INIT, \ | 
					
						
							| 
									
										
										
										
											2023-03-08 15:56:36 -07:00
										 |  |  |         .func_state = { \ | 
					
						
							|  |  |  |             .next_version = 1, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2023-04-24 16:30:13 -06:00
										 |  |  |         .types = { \ | 
					
						
							|  |  |  |             .next_version_tag = _Py_TYPE_BASE_VERSION_TAG, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2022-11-11 14:24:18 -07:00
										 |  |  |         .static_objects = { \ | 
					
						
							|  |  |  |             .singletons = { \ | 
					
						
							|  |  |  |                 ._not_used = 1, \ | 
					
						
							| 
									
										
										
										
											2022-11-16 09:54:28 -07:00
										 |  |  |                 .hamt_empty = { \ | 
					
						
							| 
									
										
										
										
											2023-10-30 12:06:09 -04:00
										 |  |  |                     .ob_base = _PyObject_HEAD_INIT(&_PyHamt_Type), \ | 
					
						
							| 
									
										
										
										
											2022-11-16 09:54:28 -07:00
										 |  |  |                     .h_root = (PyHamtNode*)&_Py_SINGLETON(hamt_bitmap_node_empty), \ | 
					
						
							|  |  |  |                 }, \ | 
					
						
							| 
									
										
										
										
											2023-03-06 19:40:09 -07:00
										 |  |  |                 .last_resort_memory_error = { \ | 
					
						
							| 
									
										
										
										
											2023-10-30 12:06:09 -04:00
										 |  |  |                     _PyObject_HEAD_INIT(&_PyExc_MemoryError), \ | 
					
						
							| 
									
										
										
										
											2023-10-24 02:06:59 +03:00
										 |  |  |                     .args = (PyObject*)&_Py_SINGLETON(tuple_empty) \ | 
					
						
							| 
									
										
										
										
											2023-03-06 19:40:09 -07:00
										 |  |  |                 }, \ | 
					
						
							| 
									
										
										
										
											2022-11-11 14:24:18 -07:00
										 |  |  |             }, \ | 
					
						
							|  |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  |         ._initial_thread = _PyThreadState_INIT, \ | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _PyThreadState_INIT \
 | 
					
						
							|  |  |  |     { \ | 
					
						
							| 
									
										
										
										
											2023-10-03 09:20:48 -06:00
										 |  |  |         ._whence = _PyThreadState_WHENCE_NOTSET, \ | 
					
						
							| 
									
										
										
										
											2022-10-05 01:34:03 +01:00
										 |  |  |         .py_recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \ | 
					
						
							| 
									
										
										
										
											2022-01-13 17:09:24 -07:00
										 |  |  |         .context_ver = 1, \ | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-03 13:51:08 -06:00
										 |  |  | #ifdef Py_TRACE_REFS
 | 
					
						
							|  |  |  | # define _py_object_state_INIT(INTERP) \
 | 
					
						
							|  |  |  |     { \ | 
					
						
							| 
									
										
										
										
											2023-08-31 18:33:34 +02:00
										 |  |  |         .refchain = NULL, \ | 
					
						
							| 
									
										
										
										
											2023-08-03 13:51:08 -06:00
										 |  |  |     } | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | # define _py_object_state_INIT(INTERP) \
 | 
					
						
							|  |  |  |     { 0 } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | // global objects
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _PyBytes_SIMPLE_INIT(CH, LEN) \
 | 
					
						
							|  |  |  |     { \ | 
					
						
							| 
									
										
										
										
											2023-10-30 12:06:09 -04:00
										 |  |  |         _PyVarObject_HEAD_INIT(&PyBytes_Type, (LEN)), \ | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  |         .ob_shash = -1, \ | 
					
						
							| 
									
										
										
										
											2022-06-20 16:04:52 +02:00
										 |  |  |         .ob_sval = { (CH) }, \ | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | #define _PyBytes_CHAR_INIT(CH) \
 | 
					
						
							|  |  |  |     { \ | 
					
						
							| 
									
										
										
										
											2022-06-20 16:04:52 +02:00
										 |  |  |         _PyBytes_SIMPLE_INIT((CH), 1) \ | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-10 04:32:00 +05:30
										 |  |  | #define _PyUnicode_ASCII_BASE_INIT(LITERAL, ASCII) \
 | 
					
						
							| 
									
										
										
										
											2022-02-08 13:39:07 -07:00
										 |  |  |     { \ | 
					
						
							| 
									
										
										
										
											2023-10-30 12:06:09 -04:00
										 |  |  |         .ob_base = _PyObject_HEAD_INIT(&PyUnicode_Type), \ | 
					
						
							| 
									
										
										
										
											2022-03-10 04:32:00 +05:30
										 |  |  |         .length = sizeof(LITERAL) - 1, \ | 
					
						
							|  |  |  |         .hash = -1, \ | 
					
						
							|  |  |  |         .state = { \ | 
					
						
							|  |  |  |             .kind = 1, \ | 
					
						
							|  |  |  |             .compact = 1, \ | 
					
						
							| 
									
										
										
										
											2022-06-20 16:04:52 +02:00
										 |  |  |             .ascii = (ASCII), \ | 
					
						
							| 
									
										
										
										
											2023-07-27 13:56:59 -06:00
										 |  |  |             .statically_allocated = 1, \ | 
					
						
							| 
									
										
										
										
											2022-02-08 13:39:07 -07:00
										 |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2022-03-10 04:32:00 +05:30
										 |  |  |     } | 
					
						
							|  |  |  | #define _PyASCIIObject_INIT(LITERAL) \
 | 
					
						
							|  |  |  |     { \ | 
					
						
							| 
									
										
										
										
											2022-06-20 16:04:52 +02:00
										 |  |  |         ._ascii = _PyUnicode_ASCII_BASE_INIT((LITERAL), 1), \ | 
					
						
							|  |  |  |         ._data = (LITERAL) \ | 
					
						
							| 
									
										
										
										
											2022-02-08 13:39:07 -07:00
										 |  |  |     } | 
					
						
							|  |  |  | #define INIT_STR(NAME, LITERAL) \
 | 
					
						
							| 
									
										
										
										
											2022-11-08 01:36:23 +05:30
										 |  |  |     ._py_ ## NAME = _PyASCIIObject_INIT(LITERAL) | 
					
						
							| 
									
										
										
										
											2022-02-08 13:39:07 -07:00
										 |  |  | #define INIT_ID(NAME) \
 | 
					
						
							| 
									
										
										
										
											2022-11-08 01:36:23 +05:30
										 |  |  |     ._py_ ## NAME = _PyASCIIObject_INIT(#NAME) | 
					
						
							| 
									
										
										
										
											2022-09-03 12:13:08 +05:30
										 |  |  | #define _PyUnicode_LATIN1_INIT(LITERAL, UTF8) \
 | 
					
						
							| 
									
										
										
										
											2022-03-10 04:32:00 +05:30
										 |  |  |     { \ | 
					
						
							|  |  |  |         ._latin1 = { \ | 
					
						
							| 
									
										
										
										
											2022-06-20 16:04:52 +02:00
										 |  |  |             ._base = _PyUnicode_ASCII_BASE_INIT((LITERAL), 0), \ | 
					
						
							| 
									
										
										
										
											2022-09-03 12:13:08 +05:30
										 |  |  |             .utf8 = (UTF8), \ | 
					
						
							|  |  |  |             .utf8_length = sizeof(UTF8) - 1, \ | 
					
						
							| 
									
										
										
										
											2022-03-10 04:32:00 +05:30
										 |  |  |         }, \ | 
					
						
							| 
									
										
										
										
											2022-06-20 16:04:52 +02:00
										 |  |  |         ._data = (LITERAL), \ | 
					
						
							| 
									
										
										
										
											2022-03-10 04:32:00 +05:30
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-01-27 11:06:09 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-08 01:34:05 +05:30
										 |  |  | #include "pycore_runtime_init_generated.h"
 | 
					
						
							| 
									
										
										
										
											2022-01-13 15:54:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif /* !Py_INTERNAL_RUNTIME_INIT_H */
 |