/
opt
/
imh
/
python3.13
/
include
/
python3.13
/
internal
/
/opt/imh/python3.13/include/python3.13/internal
mkdir
upload
Name
Size
Mode
Actions
mimalloc/
-
0755
rm
pycore_abstract.h
1915
0644
edit
dl
rm
pycore_asdl.h
3035
0644
edit
dl
rm
pycore_ast.h
31520
0644
edit
dl
rm
pycore_ast_state.h
6779
0644
edit
dl
rm
pycore_atexit.h
1433
0644
edit
dl
rm
pycore_backoff.h
3902
0644
edit
dl
rm
pycore_bitutils.h
6026
0644
edit
dl
rm
pycore_blocks_output_buffer.h
8772
0644
edit
dl
rm
pycore_brc.h
2102
0644
edit
dl
rm
pycore_bytesobject.h
5099
0644
edit
dl
rm
pycore_bytes_methods.h
3933
0644
edit
dl
rm
pycore_call.h
6135
0644
edit
dl
rm
pycore_capsule.h
397
0644
edit
dl
rm
pycore_cell.h
1057
0644
edit
dl
rm
pycore_ceval.h
11162
0644
edit
dl
rm
pycore_ceval_state.h
3921
0644
edit
dl
rm
pycore_code.h
19864
0644
edit
dl
rm
pycore_codecs.h
2465
0644
edit
dl
rm
pycore_compile.h
3750
0644
edit
dl
rm
pycore_complexobject.h
588
0644
edit
dl
rm
pycore_condvar.h
2704
0644
edit
dl
rm
pycore_context.h
1182
0644
edit
dl
rm
pycore_critical_section.h
7968
0644
edit
dl
rm
pycore_crossinterp.h
12128
0644
edit
dl
rm
pycore_descrobject.h
543
0644
edit
dl
rm
pycore_dict.h
12264
0644
edit
dl
rm
pycore_dict_state.h
732
0644
edit
dl
rm
pycore_dtoa.h
1727
0644
edit
dl
rm
pycore_emscripten_signal.h
685
0644
edit
dl
rm
pycore_emscripten_trampoline.h
3180
0644
edit
dl
rm
pycore_exceptions.h
900
0644
edit
dl
rm
pycore_faulthandler.h
2245
0644
edit
dl
rm
pycore_fileutils.h
9468
0644
edit
dl
rm
pycore_fileutils_windows.h
2713
0644
edit
dl
rm
pycore_floatobject.h
1495
0644
edit
dl
rm
pycore_flowgraph.h
1489
0644
edit
dl
rm
pycore_format.h
480
0644
edit
dl
rm
pycore_frame.h
10875
0644
edit
dl
rm
pycore_freelist.h
4810
0644
edit
dl
rm
pycore_function.h
1538
0644
edit
dl
rm
pycore_gc.h
12967
0644
edit
dl
rm
pycore_genobject.h
859
0644
edit
dl
rm
pycore_getopt.h
490
0644
edit
dl
rm
pycore_gil.h
2196
0644
edit
dl
rm
pycore_global_objects.h
3090
0644
edit
dl
rm
pycore_global_objects_fini_generated.h
117804
0644
edit
dl
rm
pycore_global_strings.h
26706
0644
edit
dl
rm
pycore_hamt.h
3742
0644
edit
dl
rm
pycore_hashtable.h
4361
0644
edit
dl
rm
pycore_identifier.h
515
0644
edit
dl
rm
pycore_import.h
7731
0644
edit
dl
rm
pycore_importdl.h
4055
0644
edit
dl
rm
pycore_initconfig.h
6375
0644
edit
dl
rm
pycore_instruction_sequence.h
2161
0644
edit
dl
rm
pycore_instruments.h
2331
0644
edit
dl
rm
pycore_interp.h
15063
0644
edit
dl
rm
pycore_intrinsics.h
1756
0644
edit
dl
rm
pycore_jit.h
527
0644
edit
dl
rm
pycore_list.h
1859
0644
edit
dl
rm
pycore_llist.h
2420
0644
edit
dl
rm
pycore_lock.h
8538
0644
edit
dl
rm
pycore_long.h
9966
0644
edit
dl
rm
pycore_memoryobject.h
427
0644
edit
dl
rm
pycore_mimalloc.h
1637
0644
edit
dl
rm
pycore_modsupport.h
3351
0644
edit
dl
rm
pycore_moduleobject.h
1572
0644
edit
dl
rm
pycore_namespace.h
435
0644
edit
dl
rm
pycore_object.h
27936
0644
edit
dl
rm
pycore_object_alloc.h
2176
0644
edit
dl
rm
pycore_object_stack.h
2384
0644
edit
dl
rm
pycore_object_state.h
942
0644
edit
dl
rm
pycore_obmalloc.h
27418
0644
edit
dl
rm
pycore_obmalloc_init.h
1935
0644
edit
dl
rm
pycore_opcode_metadata.h
84722
0644
edit
dl
rm
pycore_opcode_utils.h
2122
0644
edit
dl
rm
pycore_optimizer.h
8303
0644
edit
dl
rm
pycore_parking_lot.h
3351
0644
edit
dl
rm
pycore_parser.h
2089
0644
edit
dl
rm
pycore_pathconfig.h
658
0644
edit
dl
rm
pycore_pyarena.h
2862
0644
edit
dl
rm
pycore_pyatomic_ft_wrappers.h
8056
0644
edit
dl
rm
pycore_pybuffer.h
510
0644
edit
dl
rm
pycore_pyerrors.h
4960
0644
edit
dl
rm
pycore_pyhash.h
2813
0644
edit
dl
rm
pycore_pylifecycle.h
4465
0644
edit
dl
rm
pycore_pymath.h
8600
0644
edit
dl
rm
pycore_pymem.h
4485
0644
edit
dl
rm
pycore_pymem_init.h
3520
0644
edit
dl
rm
pycore_pystate.h
9964
0644
edit
dl
rm
pycore_pystats.h
420
0644
edit
dl
rm
pycore_pythonrun.h
758
0644
edit
dl
rm
pycore_pythread.h
5431
0644
edit
dl
rm
pycore_qsbr.h
5524
0644
edit
dl
rm
pycore_range.h
346
0644
edit
dl
rm
pycore_runtime.h
13165
0644
edit
dl
rm
pycore_runtime_init.h
13045
0644
edit
dl
rm
pycore_runtime_init_generated.h
46820
0644
edit
dl
rm
pycore_semaphore.h
1731
0644
edit
dl
rm
pycore_setobject.h
951
0644
edit
dl
rm
pycore_signal.h
2931
0644
edit
dl
rm
pycore_sliceobject.h
369
0644
edit
dl
rm
pycore_stackref.h
5186
0644
edit
dl
rm
pycore_strhex.h
1013
0644
edit
dl
rm
pycore_structseq.h
963
0644
edit
dl
rm
pycore_symtable.h
8671
0644
edit
dl
rm
pycore_sysmodule.h
1177
0644
edit
dl
rm
pycore_time.h
11794
0644
edit
dl
rm
pycore_token.h
3001
0644
edit
dl
rm
pycore_traceback.h
3629
0644
edit
dl
rm
pycore_tracemalloc.h
4533
0644
edit
dl
rm
pycore_tstate.h
1354
0644
edit
dl
rm
pycore_tuple.h
820
0644
edit
dl
rm
pycore_typeobject.h
8877
0644
edit
dl
rm
pycore_typevarobject.h
924
0644
edit
dl
rm
pycore_ucnhash.h
958
0644
edit
dl
rm
pycore_unicodeobject.h
13270
0644
edit
dl
rm
pycore_unicodeobject_generated.h
132140
0644
edit
dl
rm
pycore_unionobject.h
742
0644
edit
dl
rm
pycore_uop_ids.h
10267
0644
edit
dl
rm
pycore_uop_metadata.h
39469
0644
edit
dl
rm
pycore_warnings.h
840
0644
edit
dl
rm
pycore_weakref.h
3889
0644
edit
dl
rm
Edit:
/opt/imh/python3.13/include/python3.13/internal/pycore_backoff.h
(3902B)
#ifndef Py_INTERNAL_BACKOFF_H #define Py_INTERNAL_BACKOFF_H #ifdef __cplusplus extern "C" { #endif #ifndef Py_BUILD_CORE # error "this header requires Py_BUILD_CORE define" #endif #include <assert.h> #include <stdbool.h> #include <stdint.h> typedef struct { union { struct { uint16_t backoff : 4; uint16_t value : 12; }; uint16_t as_counter; // For printf("%#x", ...) }; } _Py_BackoffCounter; /* 16-bit countdown counters using exponential backoff. These are used by the adaptive specializer to count down until it is time to specialize an instruction. If specialization fails the counter is reset using exponential backoff. Another use is for the Tier 2 optimizer to decide when to create a new Tier 2 trace (executor). Again, exponential backoff is used. The 16-bit counter is structured as a 12-bit unsigned 'value' and a 4-bit 'backoff' field. When resetting the counter, the backoff field is incremented (until it reaches a limit) and the value is set to a bit mask representing the value 2**backoff - 1. The maximum backoff is 12 (the number of value bits). There is an exceptional value which must not be updated, 0xFFFF. */ #define UNREACHABLE_BACKOFF 0xFFFF static inline bool is_unreachable_backoff_counter(_Py_BackoffCounter counter) { return counter.as_counter == UNREACHABLE_BACKOFF; } static inline _Py_BackoffCounter make_backoff_counter(uint16_t value, uint16_t backoff) { assert(backoff <= 15); assert(value <= 0xFFF); _Py_BackoffCounter result; result.value = value; result.backoff = backoff; return result; } static inline _Py_BackoffCounter forge_backoff_counter(uint16_t counter) { _Py_BackoffCounter result; result.as_counter = counter; return result; } static inline _Py_BackoffCounter restart_backoff_counter(_Py_BackoffCounter counter) { assert(!is_unreachable_backoff_counter(counter)); if (counter.backoff < 12) { return make_backoff_counter((1 << (counter.backoff + 1)) - 1, counter.backoff + 1); } else { return make_backoff_counter((1 << 12) - 1, 12); } } static inline _Py_BackoffCounter pause_backoff_counter(_Py_BackoffCounter counter) { return make_backoff_counter(counter.value | 1, counter.backoff); } static inline _Py_BackoffCounter advance_backoff_counter(_Py_BackoffCounter counter) { if (!is_unreachable_backoff_counter(counter)) { return make_backoff_counter((counter.value - 1) & 0xFFF, counter.backoff); } else { return counter; } } static inline bool backoff_counter_triggers(_Py_BackoffCounter counter) { return counter.value == 0; } /* Initial JUMP_BACKWARD counter. * This determines when we create a trace for a loop. * Backoff sequence 16, 32, 64, 128, 256, 512, 1024, 2048, 4096. */ #define JUMP_BACKWARD_INITIAL_VALUE 16 #define JUMP_BACKWARD_INITIAL_BACKOFF 4 static inline _Py_BackoffCounter initial_jump_backoff_counter(void) { return make_backoff_counter(JUMP_BACKWARD_INITIAL_VALUE, JUMP_BACKWARD_INITIAL_BACKOFF); } /* Initial exit temperature. * Must be larger than ADAPTIVE_COOLDOWN_VALUE, * otherwise when a side exit warms up we may construct * a new trace before the Tier 1 code has properly re-specialized. * Backoff sequence 64, 128, 256, 512, 1024, 2048, 4096. */ #define COLD_EXIT_INITIAL_VALUE 64 #define COLD_EXIT_INITIAL_BACKOFF 6 static inline _Py_BackoffCounter initial_temperature_backoff_counter(void) { return make_backoff_counter(COLD_EXIT_INITIAL_VALUE, COLD_EXIT_INITIAL_BACKOFF); } /* Unreachable backoff counter. */ static inline _Py_BackoffCounter initial_unreachable_backoff_counter(void) { return forge_backoff_counter(UNREACHABLE_BACKOFF); } #ifdef __cplusplus } #endif #endif /* !Py_INTERNAL_BACKOFF_H */
Save
cmd:
run