Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of Nuitka-winsvc might be problematic. Click here for more details.

Files changed (704) hide show
  1. Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka-run.cmd +9 -9
  2. Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
  3. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
  4. Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
  5. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
  6. nuitka/Builtins.py +18 -17
  7. nuitka/BytecodeCaching.py +24 -20
  8. nuitka/Bytecodes.py +23 -19
  9. nuitka/CacheCleanup.py +28 -23
  10. nuitka/Constants.py +19 -17
  11. nuitka/Errors.py +23 -17
  12. nuitka/HardImportRegistry.py +400 -0
  13. nuitka/MainControl.py +200 -112
  14. nuitka/ModuleRegistry.py +83 -20
  15. nuitka/OptionParsing.py +368 -175
  16. nuitka/Options.py +632 -213
  17. nuitka/OutputDirectories.py +40 -21
  18. nuitka/PostProcessing.py +73 -50
  19. nuitka/Progress.py +58 -24
  20. nuitka/PythonFlavors.py +141 -32
  21. nuitka/PythonOperators.py +18 -17
  22. nuitka/PythonVersions.py +106 -19
  23. nuitka/Serialization.py +68 -55
  24. nuitka/SourceCodeReferences.py +19 -17
  25. nuitka/Tracing.py +108 -70
  26. nuitka/TreeXML.py +31 -26
  27. nuitka/Variables.py +39 -41
  28. nuitka/Version.py +21 -7
  29. nuitka/__init__.py +5 -4
  30. nuitka/__main__.py +95 -29
  31. nuitka/__past__.py +44 -34
  32. nuitka/build/Backend.scons +202 -140
  33. nuitka/build/CCompilerVersion.scons +39 -31
  34. nuitka/build/DataComposerInterface.py +20 -17
  35. nuitka/build/Onefile.scons +50 -54
  36. nuitka/build/SconsCaching.py +93 -90
  37. nuitka/build/SconsCompilerSettings.py +157 -69
  38. nuitka/build/SconsHacks.py +25 -19
  39. nuitka/build/SconsInterface.py +154 -54
  40. nuitka/build/SconsProgress.py +19 -18
  41. nuitka/build/SconsSpawn.py +62 -33
  42. nuitka/build/SconsUtils.py +147 -55
  43. nuitka/build/__init__.py +5 -4
  44. nuitka/build/include/nuitka/allocator.h +105 -22
  45. nuitka/build/include/nuitka/builtins.h +17 -17
  46. nuitka/build/include/nuitka/calling.h +18 -18
  47. nuitka/build/include/nuitka/checkers.h +17 -18
  48. nuitka/build/include/nuitka/checksum_tools.h +14 -19
  49. nuitka/build/include/nuitka/compiled_asyncgen.h +18 -18
  50. nuitka/build/include/nuitka/compiled_cell.h +33 -18
  51. nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
  52. nuitka/build/include/nuitka/compiled_frame.h +91 -53
  53. nuitka/build/include/nuitka/compiled_function.h +42 -20
  54. nuitka/build/include/nuitka/compiled_generator.h +24 -18
  55. nuitka/build/include/nuitka/compiled_method.h +17 -18
  56. nuitka/build/include/nuitka/constants.h +29 -18
  57. nuitka/build/include/nuitka/constants_blob.h +17 -17
  58. nuitka/build/include/nuitka/environment_variables.h +30 -0
  59. nuitka/build/include/nuitka/environment_variables_system.h +45 -0
  60. nuitka/build/include/nuitka/exception_groups.h +23 -26
  61. nuitka/build/include/nuitka/exceptions.h +593 -190
  62. nuitka/build/include/nuitka/filesystem_paths.h +26 -20
  63. nuitka/build/include/nuitka/freelists.h +38 -18
  64. nuitka/build/include/nuitka/helper/attributes.h +24 -18
  65. nuitka/build/include/nuitka/helper/boolean.h +17 -17
  66. nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
  67. nuitka/build/include/nuitka/helper/bytes.h +14 -15
  68. nuitka/build/include/nuitka/helper/calling_generated.h +17 -17
  69. nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
  70. nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
  71. nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
  72. nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
  73. nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
  74. nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
  75. nuitka/build/include/nuitka/helper/complex.h +17 -17
  76. nuitka/build/include/nuitka/helper/dictionaries.h +24 -22
  77. nuitka/build/include/nuitka/helper/floats.h +17 -18
  78. nuitka/build/include/nuitka/helper/import_hard.h +25 -17
  79. nuitka/build/include/nuitka/helper/indexes.h +17 -18
  80. nuitka/build/include/nuitka/helper/ints.h +32 -20
  81. nuitka/build/include/nuitka/helper/iterators.h +17 -17
  82. nuitka/build/include/nuitka/helper/lists.h +26 -24
  83. nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
  84. nuitka/build/include/nuitka/helper/mappings.h +17 -18
  85. nuitka/build/include/nuitka/helper/operations.h +17 -17
  86. nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -17
  87. nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
  88. nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
  89. nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
  90. nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
  91. nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
  92. nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
  93. nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
  94. nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
  95. nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
  96. nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
  97. nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
  98. nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
  99. nuitka/build/include/nuitka/helper/operations_binary_sub.h +17 -17
  100. nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
  101. nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
  102. nuitka/build/include/nuitka/helper/operations_inplace_add.h +17 -17
  103. nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
  104. nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
  105. nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
  106. nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
  107. nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
  108. nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
  109. nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
  110. nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
  111. nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
  112. nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
  113. nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
  114. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +17 -17
  115. nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
  116. nuitka/build/include/nuitka/helper/raising.h +29 -17
  117. nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
  118. nuitka/build/include/nuitka/helper/richcomparisons.h +14 -14
  119. nuitka/build/include/nuitka/helper/sequences.h +19 -13
  120. nuitka/build/include/nuitka/helper/sets.h +11 -12
  121. nuitka/build/include/nuitka/helper/slices.h +31 -25
  122. nuitka/build/include/nuitka/helper/strings.h +16 -17
  123. nuitka/build/include/nuitka/helper/subscripts.h +18 -201
  124. nuitka/build/include/nuitka/helper/tuples.h +64 -52
  125. nuitka/build/include/nuitka/helpers.h +38 -20
  126. nuitka/build/include/nuitka/importing.h +28 -21
  127. nuitka/build/include/nuitka/jit_sources.h +25 -0
  128. nuitka/build/include/nuitka/prelude.h +128 -46
  129. nuitka/build/include/nuitka/printing.h +22 -17
  130. nuitka/build/include/nuitka/python_pgo.h +19 -18
  131. nuitka/build/include/nuitka/safe_string_ops.h +20 -18
  132. nuitka/build/include/nuitka/threading.h +32 -33
  133. nuitka/build/include/nuitka/tracing.h +28 -18
  134. nuitka/build/include/nuitka/type_aliases.h +27 -0
  135. nuitka/build/include/nuitka/unfreezing.h +29 -23
  136. nuitka/build/inline_copy/bin/scons.py +14 -0
  137. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
  138. nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
  139. nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
  140. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
  141. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
  142. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
  143. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
  144. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
  145. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
  146. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
  147. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
  148. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
  149. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
  150. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
  151. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
  152. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
  153. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
  154. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
  155. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
  156. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
  157. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
  158. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
  159. nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
  160. nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
  161. nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
  162. nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
  163. nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
  164. nuitka/build/inline_copy/zlib/LICENSE +22 -0
  165. nuitka/build/inline_copy/zlib/crc32.c +1049 -0
  166. nuitka/build/inline_copy/zlib/crc32.h +9446 -0
  167. nuitka/build/inline_copy/zlib/zconf.h +551 -0
  168. nuitka/build/inline_copy/zlib/zlib.h +1938 -0
  169. nuitka/build/inline_copy/zlib/zutil.h +275 -0
  170. nuitka/build/static_src/CompiledAsyncgenType.c +176 -182
  171. nuitka/build/static_src/CompiledCellType.c +63 -40
  172. nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
  173. nuitka/build/static_src/CompiledCoroutineType.c +196 -203
  174. nuitka/build/static_src/CompiledFrameType.c +287 -133
  175. nuitka/build/static_src/CompiledFunctionType.c +389 -95
  176. nuitka/build/static_src/CompiledGeneratorType.c +376 -252
  177. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
  178. nuitka/build/static_src/CompiledMethodType.c +83 -71
  179. nuitka/build/static_src/HelpersAllocator.c +88 -19
  180. nuitka/build/static_src/HelpersAttributes.c +33 -54
  181. nuitka/build/static_src/HelpersBuiltin.c +43 -33
  182. nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
  183. nuitka/build/static_src/HelpersBytes.c +19 -20
  184. nuitka/build/static_src/HelpersCalling.c +33 -30
  185. nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
  186. nuitka/build/static_src/HelpersChecksumTools.c +35 -21
  187. nuitka/build/static_src/HelpersClasses.c +17 -17
  188. nuitka/build/static_src/HelpersComparisonEq.c +518 -492
  189. nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
  190. nuitka/build/static_src/HelpersComparisonGe.c +513 -497
  191. nuitka/build/static_src/HelpersComparisonGt.c +512 -496
  192. nuitka/build/static_src/HelpersComparisonLe.c +513 -497
  193. nuitka/build/static_src/HelpersComparisonLt.c +512 -496
  194. nuitka/build/static_src/HelpersComparisonNe.c +520 -492
  195. nuitka/build/static_src/HelpersConsole.c +96 -0
  196. nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
  197. nuitka/build/static_src/HelpersDeepcopy.c +33 -33
  198. nuitka/build/static_src/HelpersDictionaries.c +51 -29
  199. nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
  200. nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
  201. nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
  202. nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
  203. nuitka/build/static_src/HelpersExceptions.c +161 -50
  204. nuitka/build/static_src/HelpersFiles.c +37 -17
  205. nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
  206. nuitka/build/static_src/HelpersFloats.c +37 -31
  207. nuitka/build/static_src/HelpersHeapStorage.c +21 -17
  208. nuitka/build/static_src/HelpersImport.c +48 -20
  209. nuitka/build/static_src/HelpersImportHard.c +53 -17
  210. nuitka/build/static_src/HelpersJitSources.c +46 -0
  211. nuitka/build/static_src/HelpersLists.c +140 -50
  212. nuitka/build/static_src/HelpersListsGenerated.c +41 -41
  213. nuitka/build/static_src/HelpersMappings.c +17 -17
  214. nuitka/build/static_src/HelpersMatching.c +137 -51
  215. nuitka/build/static_src/HelpersOperationBinaryAdd.c +173 -146
  216. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
  217. nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
  218. nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
  219. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
  220. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
  221. nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
  222. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
  223. nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
  224. nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
  225. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
  226. nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
  227. nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
  228. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
  229. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
  230. nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
  231. nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
  232. nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
  233. nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
  234. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
  235. nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
  236. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
  237. nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
  238. nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
  239. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
  240. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
  241. nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
  242. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
  243. nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
  244. nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
  245. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
  246. nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
  247. nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
  248. nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
  249. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
  250. nuitka/build/static_src/HelpersProfiling.c +24 -23
  251. nuitka/build/static_src/HelpersPythonPgo.c +22 -22
  252. nuitka/build/static_src/HelpersRaising.c +88 -20
  253. nuitka/build/static_src/HelpersSafeStrings.c +34 -22
  254. nuitka/build/static_src/HelpersSequences.c +18 -19
  255. nuitka/build/static_src/HelpersSlices.c +29 -23
  256. nuitka/build/static_src/HelpersStrings.c +234 -37
  257. nuitka/build/static_src/HelpersTuples.c +46 -34
  258. nuitka/build/static_src/HelpersTypes.c +68 -23
  259. nuitka/build/static_src/InspectPatcher.c +108 -27
  260. nuitka/build/static_src/MainProgram.c +359 -263
  261. nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
  262. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
  263. nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
  264. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
  265. nuitka/build/static_src/OnefileBootstrap.c +276 -164
  266. nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
  267. nuitka/code_generation/AsyncgenCodes.py +19 -17
  268. nuitka/code_generation/AttributeCodes.py +31 -27
  269. nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
  270. nuitka/code_generation/BranchCodes.py +19 -17
  271. nuitka/code_generation/BuiltinCodes.py +20 -17
  272. nuitka/code_generation/CallCodes.py +19 -17
  273. nuitka/code_generation/ClassCodes.py +19 -17
  274. nuitka/code_generation/CodeGeneration.py +48 -27
  275. nuitka/code_generation/CodeHelperSelection.py +19 -17
  276. nuitka/code_generation/CodeHelpers.py +24 -20
  277. nuitka/code_generation/CodeObjectCodes.py +34 -24
  278. nuitka/code_generation/ComparisonCodes.py +38 -20
  279. nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
  280. nuitka/code_generation/ConditionalCodes.py +19 -17
  281. nuitka/code_generation/ConstantCodes.py +82 -28
  282. nuitka/code_generation/Contexts.py +152 -26
  283. nuitka/code_generation/CoroutineCodes.py +19 -17
  284. nuitka/code_generation/CtypesCodes.py +19 -17
  285. nuitka/code_generation/DictCodes.py +25 -23
  286. nuitka/code_generation/Emission.py +21 -18
  287. nuitka/code_generation/ErrorCodes.py +27 -33
  288. nuitka/code_generation/EvalCodes.py +24 -20
  289. nuitka/code_generation/ExceptionCodes.py +27 -18
  290. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
  291. nuitka/code_generation/ExpressionCodes.py +19 -17
  292. nuitka/code_generation/FrameCodes.py +24 -20
  293. nuitka/code_generation/FunctionCodes.py +24 -21
  294. nuitka/code_generation/GeneratorCodes.py +23 -20
  295. nuitka/code_generation/GlobalConstants.py +43 -23
  296. nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
  297. nuitka/code_generation/IdCodes.py +19 -17
  298. nuitka/code_generation/ImportCodes.py +90 -50
  299. nuitka/code_generation/Indentation.py +23 -22
  300. nuitka/code_generation/IndexCodes.py +19 -17
  301. nuitka/code_generation/InjectCCodes.py +14 -12
  302. nuitka/code_generation/IntegerCodes.py +19 -17
  303. nuitka/code_generation/IteratorCodes.py +19 -17
  304. nuitka/code_generation/JitCodes.py +44 -0
  305. nuitka/code_generation/LabelCodes.py +19 -17
  306. nuitka/code_generation/LineNumberCodes.py +19 -17
  307. nuitka/code_generation/ListCodes.py +32 -36
  308. nuitka/code_generation/LoaderCodes.py +22 -17
  309. nuitka/code_generation/LocalsDictCodes.py +56 -32
  310. nuitka/code_generation/LoopCodes.py +19 -17
  311. nuitka/code_generation/MatchCodes.py +42 -22
  312. nuitka/code_generation/ModuleCodes.py +43 -25
  313. nuitka/code_generation/Namify.py +27 -23
  314. nuitka/code_generation/NetworkxCodes.py +51 -0
  315. nuitka/code_generation/OperationCodes.py +29 -31
  316. nuitka/code_generation/PackageResourceCodes.py +59 -23
  317. nuitka/code_generation/PrintCodes.py +19 -17
  318. nuitka/code_generation/PythonAPICodes.py +19 -17
  319. nuitka/code_generation/RaisingCodes.py +19 -17
  320. nuitka/code_generation/Reports.py +19 -17
  321. nuitka/code_generation/ReturnCodes.py +19 -17
  322. nuitka/code_generation/SetCodes.py +19 -17
  323. nuitka/code_generation/SliceCodes.py +22 -20
  324. nuitka/code_generation/StringCodes.py +19 -17
  325. nuitka/code_generation/SubscriptCodes.py +24 -30
  326. nuitka/code_generation/TensorflowCodes.py +54 -0
  327. nuitka/code_generation/TryCodes.py +19 -17
  328. nuitka/code_generation/TupleCodes.py +20 -18
  329. nuitka/code_generation/TypeAliasCodes.py +71 -0
  330. nuitka/code_generation/VariableCodes.py +26 -22
  331. nuitka/code_generation/VariableDeclarations.py +20 -17
  332. nuitka/code_generation/YieldCodes.py +22 -20
  333. nuitka/code_generation/__init__.py +5 -4
  334. nuitka/code_generation/c_types/CTypeBases.py +19 -17
  335. nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
  336. nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
  337. nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
  338. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +19 -17
  339. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
  340. nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
  341. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
  342. nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
  343. nuitka/code_generation/c_types/CTypeVoids.py +20 -17
  344. nuitka/code_generation/c_types/__init__.py +5 -4
  345. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
  346. nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
  347. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
  348. nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
  349. nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
  350. nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
  351. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
  352. nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
  353. nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
  354. nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
  355. nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -27
  356. nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
  357. nuitka/code_generation/templates/__init__.py +5 -4
  358. nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
  359. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +18 -18
  360. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
  361. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
  362. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
  363. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
  364. nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
  365. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +121 -48
  366. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
  367. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
  368. nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
  369. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
  370. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
  371. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
  372. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
  373. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
  374. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +44 -32
  375. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
  376. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
  377. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
  378. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
  379. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
  380. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
  381. nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
  382. nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
  383. nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
  384. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +17 -17
  385. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
  386. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
  387. nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
  388. nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
  389. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
  390. nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
  391. nuitka/containers/Namedtuples.py +19 -18
  392. nuitka/containers/OrderedSetsFallback.py +19 -17
  393. nuitka/containers/__init__.py +5 -4
  394. nuitka/distutils/Build.py +19 -18
  395. nuitka/distutils/DistutilCommands.py +34 -23
  396. nuitka/distutils/__init__.py +5 -4
  397. nuitka/finalizations/Finalization.py +20 -17
  398. nuitka/finalizations/FinalizeMarkups.py +21 -41
  399. nuitka/finalizations/__init__.py +5 -4
  400. nuitka/freezer/DependsExe.py +48 -28
  401. nuitka/freezer/DllDependenciesCommon.py +47 -20
  402. nuitka/freezer/DllDependenciesMacOS.py +147 -57
  403. nuitka/freezer/DllDependenciesPosix.py +29 -19
  404. nuitka/freezer/DllDependenciesWin32.py +29 -21
  405. nuitka/freezer/ImportDetection.py +20 -17
  406. nuitka/freezer/IncludedDataFiles.py +118 -47
  407. nuitka/freezer/IncludedEntryPoints.py +102 -38
  408. nuitka/freezer/Onefile.py +32 -22
  409. nuitka/freezer/Standalone.py +105 -50
  410. nuitka/freezer/__init__.py +5 -4
  411. nuitka/importing/IgnoreListing.py +19 -17
  412. nuitka/importing/ImportCache.py +24 -21
  413. nuitka/importing/ImportResolving.py +103 -95
  414. nuitka/importing/Importing.py +286 -92
  415. nuitka/importing/PreloadedPackages.py +21 -18
  416. nuitka/importing/Recursion.py +131 -47
  417. nuitka/importing/StandardLibrary.py +46 -28
  418. nuitka/importing/__init__.py +5 -4
  419. nuitka/nodes/AsyncgenNodes.py +19 -17
  420. nuitka/nodes/AttributeLookupNodes.py +19 -17
  421. nuitka/nodes/AttributeNodes.py +19 -17
  422. nuitka/nodes/AttributeNodesGenerated.py +49 -24
  423. nuitka/nodes/BuiltinAllNodes.py +19 -17
  424. nuitka/nodes/BuiltinAnyNodes.py +19 -17
  425. nuitka/nodes/BuiltinComplexNodes.py +20 -17
  426. nuitka/nodes/BuiltinDecodingNodes.py +19 -17
  427. nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
  428. nuitka/nodes/BuiltinDictNodes.py +19 -17
  429. nuitka/nodes/BuiltinFormatNodes.py +20 -17
  430. nuitka/nodes/BuiltinHashNodes.py +19 -17
  431. nuitka/nodes/BuiltinInputNodes.py +19 -17
  432. nuitka/nodes/BuiltinIntegerNodes.py +19 -17
  433. nuitka/nodes/BuiltinIteratorNodes.py +24 -20
  434. nuitka/nodes/BuiltinLenNodes.py +19 -17
  435. nuitka/nodes/BuiltinNextNodes.py +19 -17
  436. nuitka/nodes/BuiltinOpenNodes.py +52 -18
  437. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
  438. nuitka/nodes/BuiltinRangeNodes.py +21 -19
  439. nuitka/nodes/BuiltinRefNodes.py +68 -19
  440. nuitka/nodes/BuiltinSumNodes.py +20 -18
  441. nuitka/nodes/BuiltinTypeNodes.py +19 -17
  442. nuitka/nodes/BuiltinVarsNodes.py +19 -18
  443. nuitka/nodes/BytesNodes.py +19 -17
  444. nuitka/nodes/CallNodes.py +19 -17
  445. nuitka/nodes/Checkers.py +19 -17
  446. nuitka/nodes/ChildrenHavingMixins.py +1250 -302
  447. nuitka/nodes/ClassNodes.py +49 -29
  448. nuitka/nodes/CodeObjectSpecs.py +29 -18
  449. nuitka/nodes/ComparisonNodes.py +19 -17
  450. nuitka/nodes/ConditionalNodes.py +21 -23
  451. nuitka/nodes/ConstantRefNodes.py +57 -17
  452. nuitka/nodes/ContainerMakingNodes.py +19 -17
  453. nuitka/nodes/ContainerOperationNodes.py +19 -17
  454. nuitka/nodes/CoroutineNodes.py +19 -17
  455. nuitka/nodes/CtypesNodes.py +19 -18
  456. nuitka/nodes/DictionaryNodes.py +19 -18
  457. nuitka/nodes/ExceptionNodes.py +29 -17
  458. nuitka/nodes/ExecEvalNodes.py +19 -17
  459. nuitka/nodes/ExpressionBases.py +34 -26
  460. nuitka/nodes/ExpressionBasesGenerated.py +54 -32
  461. nuitka/nodes/ExpressionShapeMixins.py +19 -17
  462. nuitka/nodes/FrameNodes.py +19 -17
  463. nuitka/nodes/FunctionAttributeNodes.py +19 -17
  464. nuitka/nodes/FunctionNodes.py +81 -35
  465. nuitka/nodes/FutureSpecs.py +35 -20
  466. nuitka/nodes/GeneratorNodes.py +21 -19
  467. nuitka/nodes/GlobalsLocalsNodes.py +22 -17
  468. nuitka/nodes/HardImportNodesGenerated.py +545 -129
  469. nuitka/nodes/ImportHardNodes.py +46 -38
  470. nuitka/nodes/ImportNodes.py +436 -446
  471. nuitka/nodes/IndicatorMixins.py +19 -17
  472. nuitka/nodes/InjectCNodes.py +19 -18
  473. nuitka/nodes/IterationHandles.py +55 -34
  474. nuitka/nodes/KeyValuePairNodes.py +19 -17
  475. nuitka/nodes/ListOperationNodes.py +33 -21
  476. nuitka/nodes/LocalsDictNodes.py +19 -17
  477. nuitka/nodes/LocalsScopes.py +41 -41
  478. nuitka/nodes/LoopNodes.py +28 -17
  479. nuitka/nodes/MatchNodes.py +37 -24
  480. nuitka/nodes/ModuleAttributeNodes.py +18 -35
  481. nuitka/nodes/ModuleNodes.py +90 -31
  482. nuitka/nodes/NetworkxNodes.py +45 -0
  483. nuitka/nodes/NodeBases.py +45 -43
  484. nuitka/nodes/NodeMakingHelpers.py +21 -19
  485. nuitka/nodes/NodeMetaClasses.py +45 -28
  486. nuitka/nodes/OperatorNodes.py +28 -26
  487. nuitka/nodes/OperatorNodesUnary.py +20 -17
  488. nuitka/nodes/OsSysNodes.py +66 -18
  489. nuitka/nodes/OutlineNodes.py +22 -20
  490. nuitka/nodes/PackageMetadataNodes.py +37 -27
  491. nuitka/nodes/PackageResourceNodes.py +29 -23
  492. nuitka/nodes/PrintNodes.py +19 -17
  493. nuitka/nodes/ReturnNodes.py +20 -18
  494. nuitka/nodes/SideEffectNodes.py +19 -17
  495. nuitka/nodes/SliceNodes.py +20 -18
  496. nuitka/nodes/StatementBasesGenerated.py +125 -77
  497. nuitka/nodes/StatementNodes.py +19 -17
  498. nuitka/nodes/StrNodes.py +19 -17
  499. nuitka/nodes/StringConcatenationNodes.py +20 -17
  500. nuitka/nodes/SubscriptNodes.py +26 -24
  501. nuitka/nodes/TensorflowNodes.py +38 -0
  502. nuitka/nodes/TryNodes.py +19 -17
  503. nuitka/nodes/TypeMatchNodes.py +19 -17
  504. nuitka/nodes/TypeNodes.py +40 -17
  505. nuitka/nodes/VariableAssignNodes.py +122 -64
  506. nuitka/nodes/VariableDelNodes.py +19 -17
  507. nuitka/nodes/VariableNameNodes.py +19 -17
  508. nuitka/nodes/VariableRefNodes.py +63 -26
  509. nuitka/nodes/VariableReleaseNodes.py +19 -17
  510. nuitka/nodes/YieldNodes.py +21 -19
  511. nuitka/nodes/__init__.py +5 -4
  512. nuitka/nodes/shapes/BuiltinTypeShapes.py +145 -39
  513. nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
  514. nuitka/nodes/shapes/ShapeMixins.py +40 -17
  515. nuitka/nodes/shapes/StandardShapes.py +27 -20
  516. nuitka/nodes/shapes/__init__.py +5 -4
  517. nuitka/optimizations/BytecodeDemotion.py +19 -17
  518. nuitka/optimizations/FunctionInlining.py +22 -23
  519. nuitka/optimizations/Graphs.py +19 -17
  520. nuitka/optimizations/Optimization.py +39 -35
  521. nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
  522. nuitka/optimizations/Tags.py +19 -18
  523. nuitka/optimizations/TraceCollections.py +67 -24
  524. nuitka/optimizations/ValueTraces.py +92 -25
  525. nuitka/optimizations/__init__.py +5 -4
  526. nuitka/pgo/PGO.py +33 -23
  527. nuitka/pgo/__init__.py +5 -4
  528. nuitka/plugins/PluginBase.py +610 -109
  529. nuitka/plugins/Plugins.py +241 -58
  530. nuitka/plugins/YamlPluginBase.py +121 -0
  531. nuitka/plugins/__init__.py +5 -4
  532. nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
  533. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
  534. nuitka/plugins/standard/DataFilesPlugin.py +65 -29
  535. nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
  536. nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
  537. nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
  538. nuitka/plugins/standard/DillPlugin.py +42 -134
  539. nuitka/plugins/standard/DllFilesPlugin.py +125 -42
  540. nuitka/plugins/standard/EnumPlugin.py +19 -17
  541. nuitka/plugins/standard/EventletPlugin.py +19 -17
  542. nuitka/plugins/standard/GeventPlugin.py +19 -17
  543. nuitka/plugins/standard/GiPlugin.py +44 -28
  544. nuitka/plugins/standard/GlfwPlugin.py +20 -17
  545. nuitka/plugins/standard/ImplicitImports.py +407 -46
  546. nuitka/plugins/standard/KivyPlugin.py +30 -17
  547. nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
  548. nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
  549. nuitka/plugins/standard/NumpyPlugin.py +19 -17
  550. nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
  551. nuitka/plugins/standard/PbrPlugin.py +21 -19
  552. nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
  553. nuitka/plugins/standard/PmwPlugin.py +30 -27
  554. nuitka/plugins/standard/PySidePyQtPlugin.py +74 -80
  555. nuitka/plugins/standard/PywebViewPlugin.py +19 -17
  556. nuitka/plugins/standard/SpacyPlugin.py +136 -0
  557. nuitka/plugins/standard/TensorflowPlugin.py +20 -17
  558. nuitka/plugins/standard/TkinterPlugin.py +103 -53
  559. nuitka/plugins/standard/TorchPlugin.py +20 -17
  560. nuitka/plugins/standard/TransformersPlugin.py +94 -30
  561. nuitka/plugins/standard/TrioPlugin.py +18 -15
  562. nuitka/plugins/standard/UpxPlugin.py +21 -19
  563. nuitka/plugins/standard/__init__.py +5 -4
  564. nuitka/plugins/standard/standard.nuitka-package.config.yml +3449 -1299
  565. nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
  566. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
  567. nuitka/reports/CompilationReportReader.py +67 -0
  568. nuitka/reports/LicenseReport.rst.j2 +21 -21
  569. nuitka/reports/Reports.py +352 -76
  570. nuitka/reports/__init__.py +5 -4
  571. nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
  572. nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
  573. nuitka/specs/BuiltinListOperationSpecs.py +18 -17
  574. nuitka/specs/BuiltinParameterSpecs.py +30 -20
  575. nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
  576. nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
  577. nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
  578. nuitka/specs/HardImportSpecs.py +67 -22
  579. nuitka/specs/ParameterSpecs.py +56 -41
  580. nuitka/specs/__init__.py +5 -4
  581. nuitka/tools/Basics.py +20 -18
  582. nuitka/tools/__init__.py +5 -4
  583. nuitka/tools/commercial/__init__.py +7 -6
  584. nuitka/tools/data_composer/DataComposer.py +78 -62
  585. nuitka/tools/data_composer/__init__.py +5 -4
  586. nuitka/tools/data_composer/__main__.py +18 -17
  587. nuitka/tools/environments/CreateEnvironment.py +20 -17
  588. nuitka/tools/environments/Virtualenv.py +60 -32
  589. nuitka/tools/environments/__init__.py +5 -4
  590. nuitka/tools/general/__init__.py +5 -4
  591. nuitka/tools/general/dll_report/__init__.py +5 -4
  592. nuitka/tools/general/dll_report/__main__.py +19 -21
  593. nuitka/tools/general/find_module/FindModuleCode.py +35 -22
  594. nuitka/tools/general/find_module/__init__.py +5 -4
  595. nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
  596. nuitka/tools/onefile_compressor/__init__.py +5 -4
  597. nuitka/tools/onefile_compressor/__main__.py +18 -17
  598. nuitka/tools/podman/Podman.py +19 -17
  599. nuitka/tools/podman/__init__.py +5 -4
  600. nuitka/tools/podman/__main__.py +35 -19
  601. nuitka/tools/profiler/__init__.py +5 -4
  602. nuitka/tools/profiler/__main__.py +18 -17
  603. nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
  604. nuitka/tools/scanning/DisplayPackageData.py +31 -19
  605. nuitka/tools/scanning/__init__.py +5 -4
  606. nuitka/tools/specialize/CTypeDescriptions.py +93 -71
  607. nuitka/tools/specialize/Common.py +18 -17
  608. nuitka/tools/specialize/SpecializeC.py +31 -27
  609. nuitka/tools/specialize/SpecializePython.py +108 -45
  610. nuitka/tools/specialize/__init__.py +5 -4
  611. nuitka/tools/testing/Common.py +106 -52
  612. nuitka/tools/testing/Constructs.py +19 -17
  613. nuitka/tools/testing/OutputComparison.py +54 -18
  614. nuitka/tools/testing/Pythons.py +19 -18
  615. nuitka/tools/testing/RuntimeTracing.py +20 -19
  616. nuitka/tools/testing/SearchModes.py +26 -20
  617. nuitka/tools/testing/Valgrind.py +19 -17
  618. nuitka/tools/testing/__init__.py +5 -4
  619. nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
  620. nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
  621. nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
  622. nuitka/tools/testing/compare_with_cpython/__main__.py +36 -29
  623. nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
  624. nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
  625. nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
  626. nuitka/tools/testing/measure_construct_performance/__main__.py +22 -25
  627. nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
  628. nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
  629. nuitka/tools/watch/AutoStage.py +144 -0
  630. nuitka/tools/watch/GitHub.py +113 -0
  631. nuitka/tools/watch/__init__.py +5 -4
  632. nuitka/tools/watch/__main__.py +322 -91
  633. nuitka/tree/Building.py +176 -147
  634. nuitka/tree/ComplexCallHelperFunctions.py +80 -58
  635. nuitka/tree/Extractions.py +19 -17
  636. nuitka/tree/InternalModule.py +29 -20
  637. nuitka/tree/Operations.py +19 -17
  638. nuitka/tree/ReformulationAssertStatements.py +20 -17
  639. nuitka/tree/ReformulationAssignmentStatements.py +92 -91
  640. nuitka/tree/ReformulationBooleanExpressions.py +19 -17
  641. nuitka/tree/ReformulationCallExpressions.py +20 -18
  642. nuitka/tree/ReformulationClasses.py +45 -39
  643. nuitka/tree/ReformulationClasses3.py +146 -98
  644. nuitka/tree/ReformulationComparisonExpressions.py +29 -35
  645. nuitka/tree/ReformulationContractionExpressions.py +58 -55
  646. nuitka/tree/ReformulationDictionaryCreation.py +40 -35
  647. nuitka/tree/ReformulationExecStatements.py +42 -39
  648. nuitka/tree/ReformulationForLoopStatements.py +30 -34
  649. nuitka/tree/ReformulationFunctionStatements.py +58 -54
  650. nuitka/tree/ReformulationImportStatements.py +34 -29
  651. nuitka/tree/ReformulationLambdaExpressions.py +23 -24
  652. nuitka/tree/ReformulationMatchStatements.py +244 -92
  653. nuitka/tree/ReformulationMultidist.py +22 -18
  654. nuitka/tree/ReformulationNamespacePackages.py +55 -46
  655. nuitka/tree/ReformulationPrintStatements.py +23 -24
  656. nuitka/tree/ReformulationSequenceCreation.py +50 -49
  657. nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
  658. nuitka/tree/ReformulationTryExceptStatements.py +19 -17
  659. nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
  660. nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
  661. nuitka/tree/ReformulationWithStatements.py +39 -41
  662. nuitka/tree/ReformulationYieldExpressions.py +21 -19
  663. nuitka/tree/SourceHandling.py +76 -31
  664. nuitka/tree/SyntaxErrors.py +19 -17
  665. nuitka/tree/TreeHelpers.py +33 -20
  666. nuitka/tree/VariableClosure.py +35 -39
  667. nuitka/tree/__init__.py +5 -4
  668. nuitka/utils/AppDirs.py +41 -20
  669. nuitka/utils/CStrings.py +66 -21
  670. nuitka/utils/CommandLineOptions.py +84 -19
  671. nuitka/utils/Distributions.py +445 -54
  672. nuitka/utils/Download.py +89 -57
  673. nuitka/utils/Execution.py +73 -34
  674. nuitka/utils/FileOperations.py +318 -74
  675. nuitka/utils/Hashing.py +55 -33
  676. nuitka/utils/Images.py +26 -19
  677. nuitka/utils/Importing.py +118 -24
  678. nuitka/utils/InstalledPythons.py +80 -75
  679. nuitka/utils/InstanceCounters.py +20 -17
  680. nuitka/utils/Jinja2.py +30 -22
  681. nuitka/utils/Json.py +19 -17
  682. nuitka/utils/MacOSApp.py +26 -18
  683. nuitka/utils/MemoryUsage.py +20 -18
  684. nuitka/utils/ModuleNames.py +42 -26
  685. nuitka/utils/ReExecute.py +50 -28
  686. nuitka/utils/Rest.py +20 -17
  687. nuitka/utils/SharedLibraries.py +161 -75
  688. nuitka/utils/Shebang.py +20 -17
  689. nuitka/utils/Signing.py +63 -18
  690. nuitka/utils/SlotMetaClasses.py +57 -0
  691. nuitka/utils/StaticLibraries.py +83 -56
  692. nuitka/utils/ThreadedExecutor.py +18 -17
  693. nuitka/utils/Timing.py +22 -20
  694. nuitka/utils/Utils.py +115 -25
  695. nuitka/utils/WindowsFileUsage.py +22 -20
  696. nuitka/utils/WindowsResources.py +25 -18
  697. nuitka/utils/Yaml.py +62 -24
  698. nuitka/utils/__init__.py +5 -4
  699. Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
  700. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
  701. nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
  702. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/LICENSE.txt +0 -0
  703. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
  704. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/top_level.txt +0 -0
@@ -1,20 +1,5 @@
1
- // Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com
2
- //
3
- // Part of "Nuitka", an optimizing Python compiler that is compatible and
4
- // integrates with CPython, but also works on its own.
5
- //
6
- // Licensed under the Apache License, Version 2.0 (the "License");
7
- // you may not use this file except in compliance with the License.
8
- // You may obtain a copy of the License at
9
- //
10
- // http://www.apache.org/licenses/LICENSE-2.0
11
- //
12
- // Unless required by applicable law or agreed to in writing, software
13
- // distributed under the License is distributed on an "AS IS" BASIS,
14
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- // See the License for the specific language governing permissions and
16
- // limitations under the License.
17
- //
1
+ // Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
18
3
  /* WARNING, this code is GENERATED. Modify the template HelperOperationInplace.c.j2 instead! */
19
4
 
20
5
  /* This file is included from another C file, help IDEs to still parse it on its own. */
@@ -142,7 +127,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_INT(PyObject **op
142
127
  goto exit_inplace_result_object;
143
128
  }
144
129
 
145
- Py_DECREF(x);
130
+ Py_DECREF_IMMORTAL(x);
146
131
  }
147
132
 
148
133
  {
@@ -168,7 +153,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_INT(PyObject **op
168
153
  goto exit_inplace_result_object;
169
154
  }
170
155
 
171
- Py_DECREF(x);
156
+ Py_DECREF_IMMORTAL(x);
172
157
  }
173
158
 
174
159
  if (slot2 != NULL) {
@@ -179,7 +164,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_INT(PyObject **op
179
164
  goto exit_inplace_result_object;
180
165
  }
181
166
 
182
- Py_DECREF(x);
167
+ Py_DECREF_IMMORTAL(x);
183
168
  }
184
169
 
185
170
  #if PYTHON_VERSION < 0x300
@@ -256,7 +241,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_INT(PyObject **op
256
241
  }
257
242
  #endif
258
243
 
259
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: '%s' and 'int'", type1->tp_name);
244
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: '%s' and 'int'", type1->tp_name);
260
245
  goto exit_inplace_exception;
261
246
  }
262
247
 
@@ -415,7 +400,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_INT_OBJECT(PyObject **op
415
400
  goto exit_inplace_result_object;
416
401
  }
417
402
 
418
- Py_DECREF(x);
403
+ Py_DECREF_IMMORTAL(x);
419
404
  slot2 = NULL;
420
405
  }
421
406
  }
@@ -427,7 +412,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_INT_OBJECT(PyObject **op
427
412
  goto exit_inplace_result_object;
428
413
  }
429
414
 
430
- Py_DECREF(x);
415
+ Py_DECREF_IMMORTAL(x);
431
416
  }
432
417
 
433
418
  if (slot2 != NULL) {
@@ -438,7 +423,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_INT_OBJECT(PyObject **op
438
423
  goto exit_inplace_result_object;
439
424
  }
440
425
 
441
- Py_DECREF(x);
426
+ Py_DECREF_IMMORTAL(x);
442
427
  }
443
428
 
444
429
  #if PYTHON_VERSION < 0x300
@@ -515,7 +500,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_INT_OBJECT(PyObject **op
515
500
  }
516
501
  #endif
517
502
 
518
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'int' and '%s'", type2->tp_name);
503
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'int' and '%s'", type2->tp_name);
519
504
  goto exit_inplace_exception;
520
505
  }
521
506
 
@@ -704,7 +689,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_LONG(PyObject **o
704
689
  goto exit_inplace_result_object;
705
690
  }
706
691
 
707
- Py_DECREF(x);
692
+ Py_DECREF_IMMORTAL(x);
708
693
  }
709
694
 
710
695
  {
@@ -730,7 +715,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_LONG(PyObject **o
730
715
  goto exit_inplace_result_object;
731
716
  }
732
717
 
733
- Py_DECREF(x);
718
+ Py_DECREF_IMMORTAL(x);
734
719
  }
735
720
 
736
721
  if (slot2 != NULL) {
@@ -741,7 +726,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_LONG(PyObject **o
741
726
  goto exit_inplace_result_object;
742
727
  }
743
728
 
744
- Py_DECREF(x);
729
+ Py_DECREF_IMMORTAL(x);
745
730
  }
746
731
 
747
732
  #if PYTHON_VERSION < 0x300
@@ -819,9 +804,9 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_LONG(PyObject **o
819
804
  #endif
820
805
 
821
806
  #if PYTHON_VERSION < 0x300
822
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: '%s' and 'long'", type1->tp_name);
807
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: '%s' and 'long'", type1->tp_name);
823
808
  #else
824
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: '%s' and 'int'", type1->tp_name);
809
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: '%s' and 'int'", type1->tp_name);
825
810
  #endif
826
811
  goto exit_inplace_exception;
827
812
  }
@@ -936,7 +921,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_LONG_OBJECT(PyObject **o
936
921
  goto exit_inplace_result_object;
937
922
  }
938
923
 
939
- Py_DECREF(x);
924
+ Py_DECREF_IMMORTAL(x);
940
925
  slot2 = NULL;
941
926
  }
942
927
  }
@@ -948,7 +933,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_LONG_OBJECT(PyObject **o
948
933
  goto exit_inplace_result_object;
949
934
  }
950
935
 
951
- Py_DECREF(x);
936
+ Py_DECREF_IMMORTAL(x);
952
937
  }
953
938
 
954
939
  if (slot2 != NULL) {
@@ -959,7 +944,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_LONG_OBJECT(PyObject **o
959
944
  goto exit_inplace_result_object;
960
945
  }
961
946
 
962
- Py_DECREF(x);
947
+ Py_DECREF_IMMORTAL(x);
963
948
  }
964
949
 
965
950
  #if PYTHON_VERSION < 0x300
@@ -1037,9 +1022,9 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_LONG_OBJECT(PyObject **o
1037
1022
  #endif
1038
1023
 
1039
1024
  #if PYTHON_VERSION < 0x300
1040
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'long' and '%s'", type2->tp_name);
1025
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'long' and '%s'", type2->tp_name);
1041
1026
  #else
1042
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'int' and '%s'", type2->tp_name);
1027
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'int' and '%s'", type2->tp_name);
1043
1028
  #endif
1044
1029
  goto exit_inplace_exception;
1045
1030
  }
@@ -1211,7 +1196,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_FLOAT(PyObject **
1211
1196
  goto exit_inplace_result_object;
1212
1197
  }
1213
1198
 
1214
- Py_DECREF(x);
1199
+ Py_DECREF_IMMORTAL(x);
1215
1200
  }
1216
1201
 
1217
1202
  {
@@ -1237,7 +1222,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_FLOAT(PyObject **
1237
1222
  goto exit_inplace_result_object;
1238
1223
  }
1239
1224
 
1240
- Py_DECREF(x);
1225
+ Py_DECREF_IMMORTAL(x);
1241
1226
  }
1242
1227
 
1243
1228
  if (slot2 != NULL) {
@@ -1248,7 +1233,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_FLOAT(PyObject **
1248
1233
  goto exit_inplace_result_object;
1249
1234
  }
1250
1235
 
1251
- Py_DECREF(x);
1236
+ Py_DECREF_IMMORTAL(x);
1252
1237
  }
1253
1238
 
1254
1239
  #if PYTHON_VERSION < 0x300
@@ -1325,7 +1310,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_FLOAT(PyObject **
1325
1310
  }
1326
1311
  #endif
1327
1312
 
1328
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: '%s' and 'float'", type1->tp_name);
1313
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: '%s' and 'float'", type1->tp_name);
1329
1314
  goto exit_inplace_exception;
1330
1315
  }
1331
1316
 
@@ -1465,7 +1450,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_FLOAT_OBJECT(PyObject **
1465
1450
  goto exit_inplace_result_object;
1466
1451
  }
1467
1452
 
1468
- Py_DECREF(x);
1453
+ Py_DECREF_IMMORTAL(x);
1469
1454
  slot2 = NULL;
1470
1455
  }
1471
1456
  }
@@ -1477,7 +1462,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_FLOAT_OBJECT(PyObject **
1477
1462
  goto exit_inplace_result_object;
1478
1463
  }
1479
1464
 
1480
- Py_DECREF(x);
1465
+ Py_DECREF_IMMORTAL(x);
1481
1466
  }
1482
1467
 
1483
1468
  if (slot2 != NULL) {
@@ -1488,7 +1473,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_FLOAT_OBJECT(PyObject **
1488
1473
  goto exit_inplace_result_object;
1489
1474
  }
1490
1475
 
1491
- Py_DECREF(x);
1476
+ Py_DECREF_IMMORTAL(x);
1492
1477
  }
1493
1478
 
1494
1479
  #if PYTHON_VERSION < 0x300
@@ -1565,7 +1550,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_FLOAT_OBJECT(PyObject **
1565
1550
  }
1566
1551
  #endif
1567
1552
 
1568
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'float' and '%s'", type2->tp_name);
1553
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'float' and '%s'", type2->tp_name);
1569
1554
  goto exit_inplace_exception;
1570
1555
  }
1571
1556
 
@@ -1697,15 +1682,15 @@ static inline bool _INPLACE_OPERATION_MOD_FLOAT_LONG(PyObject **operand1, PyObje
1697
1682
  goto exit_inplace_result_object;
1698
1683
  }
1699
1684
 
1700
- Py_DECREF(x);
1685
+ Py_DECREF_IMMORTAL(x);
1701
1686
  }
1702
1687
 
1703
1688
  // Statically recognized that coercion is not possible with these types
1704
1689
 
1705
1690
  #if PYTHON_VERSION < 0x300
1706
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'float' and 'long'");
1691
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'float' and 'long'");
1707
1692
  #else
1708
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'float' and 'int'");
1693
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'float' and 'int'");
1709
1694
  #endif
1710
1695
  goto exit_inplace_exception;
1711
1696
  }
@@ -1771,15 +1756,15 @@ static inline bool _INPLACE_OPERATION_MOD_LONG_FLOAT(PyObject **operand1, PyObje
1771
1756
  goto exit_inplace_result_object;
1772
1757
  }
1773
1758
 
1774
- Py_DECREF(x);
1759
+ Py_DECREF_IMMORTAL(x);
1775
1760
  }
1776
1761
 
1777
1762
  // Statically recognized that coercion is not possible with these types
1778
1763
 
1779
1764
  #if PYTHON_VERSION < 0x300
1780
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'long' and 'float'");
1765
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'long' and 'float'");
1781
1766
  #else
1782
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'int' and 'float'");
1767
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'int' and 'float'");
1783
1768
  #endif
1784
1769
  goto exit_inplace_exception;
1785
1770
  }
@@ -1840,12 +1825,12 @@ static inline bool _INPLACE_OPERATION_MOD_FLOAT_INT(PyObject **operand1, PyObjec
1840
1825
  goto exit_inplace_result_object;
1841
1826
  }
1842
1827
 
1843
- Py_DECREF(x);
1828
+ Py_DECREF_IMMORTAL(x);
1844
1829
  }
1845
1830
 
1846
1831
  // Statically recognized that coercion is not possible with these types
1847
1832
 
1848
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'float' and 'int'");
1833
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'float' and 'int'");
1849
1834
  goto exit_inplace_exception;
1850
1835
  }
1851
1836
 
@@ -1912,12 +1897,12 @@ static inline bool _INPLACE_OPERATION_MOD_INT_FLOAT(PyObject **operand1, PyObjec
1912
1897
  goto exit_inplace_result_object;
1913
1898
  }
1914
1899
 
1915
- Py_DECREF(x);
1900
+ Py_DECREF_IMMORTAL(x);
1916
1901
  }
1917
1902
 
1918
1903
  // Statically recognized that coercion is not possible with these types
1919
1904
 
1920
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'int' and 'float'");
1905
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'int' and 'float'");
1921
1906
  goto exit_inplace_exception;
1922
1907
  }
1923
1908
 
@@ -1978,12 +1963,12 @@ static inline bool _INPLACE_OPERATION_MOD_LONG_INT(PyObject **operand1, PyObject
1978
1963
  goto exit_inplace_result_object;
1979
1964
  }
1980
1965
 
1981
- Py_DECREF(x);
1966
+ Py_DECREF_IMMORTAL(x);
1982
1967
  }
1983
1968
 
1984
1969
  // Statically recognized that coercion is not possible with these types
1985
1970
 
1986
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'long' and 'int'");
1971
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'long' and 'int'");
1987
1972
  goto exit_inplace_exception;
1988
1973
  }
1989
1974
 
@@ -2050,12 +2035,12 @@ static inline bool _INPLACE_OPERATION_MOD_INT_LONG(PyObject **operand1, PyObject
2050
2035
  goto exit_inplace_result_object;
2051
2036
  }
2052
2037
 
2053
- Py_DECREF(x);
2038
+ Py_DECREF_IMMORTAL(x);
2054
2039
  }
2055
2040
 
2056
2041
  // Statically recognized that coercion is not possible with these types
2057
2042
 
2058
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'int' and 'long'");
2043
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'int' and 'long'");
2059
2044
  goto exit_inplace_exception;
2060
2045
  }
2061
2046
 
@@ -2279,7 +2264,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_INT(PyObject **operand1, PyObject
2279
2264
  goto exit_inplace_result_object;
2280
2265
  }
2281
2266
 
2282
- Py_DECREF(x);
2267
+ Py_DECREF_IMMORTAL(x);
2283
2268
  }
2284
2269
 
2285
2270
  if (slot2 != NULL) {
@@ -2290,12 +2275,12 @@ static inline bool _INPLACE_OPERATION_MOD_STR_INT(PyObject **operand1, PyObject
2290
2275
  goto exit_inplace_result_object;
2291
2276
  }
2292
2277
 
2293
- Py_DECREF(x);
2278
+ Py_DECREF_IMMORTAL(x);
2294
2279
  }
2295
2280
 
2296
2281
  // Statically recognized that coercion is not possible with these types
2297
2282
 
2298
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'int'");
2283
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'int'");
2299
2284
  goto exit_inplace_exception;
2300
2285
  }
2301
2286
 
@@ -2362,7 +2347,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_LONG(PyObject **operand1, PyObject
2362
2347
  goto exit_inplace_result_object;
2363
2348
  }
2364
2349
 
2365
- Py_DECREF(x);
2350
+ Py_DECREF_IMMORTAL(x);
2366
2351
  }
2367
2352
 
2368
2353
  if (slot2 != NULL) {
@@ -2373,12 +2358,12 @@ static inline bool _INPLACE_OPERATION_MOD_STR_LONG(PyObject **operand1, PyObject
2373
2358
  goto exit_inplace_result_object;
2374
2359
  }
2375
2360
 
2376
- Py_DECREF(x);
2361
+ Py_DECREF_IMMORTAL(x);
2377
2362
  }
2378
2363
 
2379
2364
  // Statically recognized that coercion is not possible with these types
2380
2365
 
2381
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'long'");
2366
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'long'");
2382
2367
  goto exit_inplace_exception;
2383
2368
  }
2384
2369
 
@@ -2445,7 +2430,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_FLOAT(PyObject **operand1, PyObjec
2445
2430
  goto exit_inplace_result_object;
2446
2431
  }
2447
2432
 
2448
- Py_DECREF(x);
2433
+ Py_DECREF_IMMORTAL(x);
2449
2434
  }
2450
2435
 
2451
2436
  if (slot2 != NULL) {
@@ -2456,12 +2441,12 @@ static inline bool _INPLACE_OPERATION_MOD_STR_FLOAT(PyObject **operand1, PyObjec
2456
2441
  goto exit_inplace_result_object;
2457
2442
  }
2458
2443
 
2459
- Py_DECREF(x);
2444
+ Py_DECREF_IMMORTAL(x);
2460
2445
  }
2461
2446
 
2462
2447
  // Statically recognized that coercion is not possible with these types
2463
2448
 
2464
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'float'");
2449
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'float'");
2465
2450
  goto exit_inplace_exception;
2466
2451
  }
2467
2452
 
@@ -2568,7 +2553,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_UNICODE(PyObject **operand1, PyObj
2568
2553
  goto exit_inplace_result_object;
2569
2554
  }
2570
2555
 
2571
- Py_DECREF(x);
2556
+ Py_DECREF_IMMORTAL(x);
2572
2557
  }
2573
2558
 
2574
2559
  if (slot2 != NULL) {
@@ -2579,12 +2564,12 @@ static inline bool _INPLACE_OPERATION_MOD_STR_UNICODE(PyObject **operand1, PyObj
2579
2564
  goto exit_inplace_result_object;
2580
2565
  }
2581
2566
 
2582
- Py_DECREF(x);
2567
+ Py_DECREF_IMMORTAL(x);
2583
2568
  }
2584
2569
 
2585
2570
  // Statically recognized that coercion is not possible with these types
2586
2571
 
2587
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'unicode'");
2572
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'unicode'");
2588
2573
  goto exit_inplace_exception;
2589
2574
  }
2590
2575
 
@@ -2644,12 +2629,12 @@ static inline bool _INPLACE_OPERATION_MOD_STR_TUPLE(PyObject **operand1, PyObjec
2644
2629
  goto exit_inplace_result_object;
2645
2630
  }
2646
2631
 
2647
- Py_DECREF(x);
2632
+ Py_DECREF_IMMORTAL(x);
2648
2633
  }
2649
2634
 
2650
2635
  // Statically recognized that coercion is not possible with these types
2651
2636
 
2652
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'tuple'");
2637
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'tuple'");
2653
2638
  goto exit_inplace_exception;
2654
2639
  }
2655
2640
 
@@ -2709,12 +2694,12 @@ static inline bool _INPLACE_OPERATION_MOD_STR_LIST(PyObject **operand1, PyObject
2709
2694
  goto exit_inplace_result_object;
2710
2695
  }
2711
2696
 
2712
- Py_DECREF(x);
2697
+ Py_DECREF_IMMORTAL(x);
2713
2698
  }
2714
2699
 
2715
2700
  // Statically recognized that coercion is not possible with these types
2716
2701
 
2717
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'list'");
2702
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'list'");
2718
2703
  goto exit_inplace_exception;
2719
2704
  }
2720
2705
 
@@ -2774,12 +2759,12 @@ static inline bool _INPLACE_OPERATION_MOD_STR_DICT(PyObject **operand1, PyObject
2774
2759
  goto exit_inplace_result_object;
2775
2760
  }
2776
2761
 
2777
- Py_DECREF(x);
2762
+ Py_DECREF_IMMORTAL(x);
2778
2763
  }
2779
2764
 
2780
2765
  // Statically recognized that coercion is not possible with these types
2781
2766
 
2782
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'dict'");
2767
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'dict'");
2783
2768
  goto exit_inplace_exception;
2784
2769
  }
2785
2770
 
@@ -2848,7 +2833,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_STR_OBJECT(PyObject **op
2848
2833
  goto exit_inplace_result_object;
2849
2834
  }
2850
2835
 
2851
- Py_DECREF(x);
2836
+ Py_DECREF_IMMORTAL(x);
2852
2837
  slot2 = NULL;
2853
2838
  }
2854
2839
  }
@@ -2860,7 +2845,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_STR_OBJECT(PyObject **op
2860
2845
  goto exit_inplace_result_object;
2861
2846
  }
2862
2847
 
2863
- Py_DECREF(x);
2848
+ Py_DECREF_IMMORTAL(x);
2864
2849
  }
2865
2850
 
2866
2851
  if (slot2 != NULL) {
@@ -2871,7 +2856,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_STR_OBJECT(PyObject **op
2871
2856
  goto exit_inplace_result_object;
2872
2857
  }
2873
2858
 
2874
- Py_DECREF(x);
2859
+ Py_DECREF_IMMORTAL(x);
2875
2860
  }
2876
2861
 
2877
2862
  #if PYTHON_VERSION < 0x300
@@ -2914,7 +2899,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_STR_OBJECT(PyObject **op
2914
2899
  }
2915
2900
  #endif
2916
2901
 
2917
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and '%s'", type2->tp_name);
2902
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and '%s'", type2->tp_name);
2918
2903
  goto exit_inplace_exception;
2919
2904
  }
2920
2905
 
@@ -3020,7 +3005,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_INT(PyObject **operand1, PyObj
3020
3005
  goto exit_inplace_result_object;
3021
3006
  }
3022
3007
 
3023
- Py_DECREF(x);
3008
+ Py_DECREF_IMMORTAL(x);
3024
3009
  }
3025
3010
 
3026
3011
  if (slot2 != NULL) {
@@ -3031,12 +3016,12 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_INT(PyObject **operand1, PyObj
3031
3016
  goto exit_inplace_result_object;
3032
3017
  }
3033
3018
 
3034
- Py_DECREF(x);
3019
+ Py_DECREF_IMMORTAL(x);
3035
3020
  }
3036
3021
 
3037
3022
  // Statically recognized that coercion is not possible with these types
3038
3023
 
3039
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'unicode' and 'int'");
3024
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'unicode' and 'int'");
3040
3025
  goto exit_inplace_exception;
3041
3026
  }
3042
3027
 
@@ -3103,7 +3088,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_LONG(PyObject **operand1, PyOb
3103
3088
  goto exit_inplace_result_object;
3104
3089
  }
3105
3090
 
3106
- Py_DECREF(x);
3091
+ Py_DECREF_IMMORTAL(x);
3107
3092
  }
3108
3093
 
3109
3094
  if (slot2 != NULL) {
@@ -3114,15 +3099,15 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_LONG(PyObject **operand1, PyOb
3114
3099
  goto exit_inplace_result_object;
3115
3100
  }
3116
3101
 
3117
- Py_DECREF(x);
3102
+ Py_DECREF_IMMORTAL(x);
3118
3103
  }
3119
3104
 
3120
3105
  // Statically recognized that coercion is not possible with these types
3121
3106
 
3122
3107
  #if PYTHON_VERSION < 0x300
3123
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'unicode' and 'long'");
3108
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'unicode' and 'long'");
3124
3109
  #else
3125
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'int'");
3110
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'int'");
3126
3111
  #endif
3127
3112
  goto exit_inplace_exception;
3128
3113
  }
@@ -3188,7 +3173,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_FLOAT(PyObject **operand1, PyO
3188
3173
  goto exit_inplace_result_object;
3189
3174
  }
3190
3175
 
3191
- Py_DECREF(x);
3176
+ Py_DECREF_IMMORTAL(x);
3192
3177
  }
3193
3178
 
3194
3179
  if (slot2 != NULL) {
@@ -3199,15 +3184,15 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_FLOAT(PyObject **operand1, PyO
3199
3184
  goto exit_inplace_result_object;
3200
3185
  }
3201
3186
 
3202
- Py_DECREF(x);
3187
+ Py_DECREF_IMMORTAL(x);
3203
3188
  }
3204
3189
 
3205
3190
  // Statically recognized that coercion is not possible with these types
3206
3191
 
3207
3192
  #if PYTHON_VERSION < 0x300
3208
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'unicode' and 'float'");
3193
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'unicode' and 'float'");
3209
3194
  #else
3210
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'float'");
3195
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'float'");
3211
3196
  #endif
3212
3197
  goto exit_inplace_exception;
3213
3198
  }
@@ -3274,7 +3259,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_STR(PyObject **operand1, PyObj
3274
3259
  goto exit_inplace_result_object;
3275
3260
  }
3276
3261
 
3277
- Py_DECREF(x);
3262
+ Py_DECREF_IMMORTAL(x);
3278
3263
  }
3279
3264
 
3280
3265
  if (slot2 != NULL) {
@@ -3285,12 +3270,12 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_STR(PyObject **operand1, PyObj
3285
3270
  goto exit_inplace_result_object;
3286
3271
  }
3287
3272
 
3288
- Py_DECREF(x);
3273
+ Py_DECREF_IMMORTAL(x);
3289
3274
  }
3290
3275
 
3291
3276
  // Statically recognized that coercion is not possible with these types
3292
3277
 
3293
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'unicode' and 'str'");
3278
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'unicode' and 'str'");
3294
3279
  goto exit_inplace_exception;
3295
3280
  }
3296
3281
 
@@ -3357,7 +3342,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_BYTES(PyObject **operand1, PyO
3357
3342
  goto exit_inplace_result_object;
3358
3343
  }
3359
3344
 
3360
- Py_DECREF(x);
3345
+ Py_DECREF_IMMORTAL(x);
3361
3346
  }
3362
3347
 
3363
3348
  if (slot2 != NULL) {
@@ -3368,12 +3353,12 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_BYTES(PyObject **operand1, PyO
3368
3353
  goto exit_inplace_result_object;
3369
3354
  }
3370
3355
 
3371
- Py_DECREF(x);
3356
+ Py_DECREF_IMMORTAL(x);
3372
3357
  }
3373
3358
 
3374
3359
  // Statically recognized that coercion is not possible with these types
3375
3360
 
3376
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'bytes'");
3361
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'bytes'");
3377
3362
  goto exit_inplace_exception;
3378
3363
  }
3379
3364
 
@@ -3471,15 +3456,15 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_TUPLE(PyObject **operand1, PyO
3471
3456
  goto exit_inplace_result_object;
3472
3457
  }
3473
3458
 
3474
- Py_DECREF(x);
3459
+ Py_DECREF_IMMORTAL(x);
3475
3460
  }
3476
3461
 
3477
3462
  // Statically recognized that coercion is not possible with these types
3478
3463
 
3479
3464
  #if PYTHON_VERSION < 0x300
3480
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'unicode' and 'tuple'");
3465
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'unicode' and 'tuple'");
3481
3466
  #else
3482
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'tuple'");
3467
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'tuple'");
3483
3468
  #endif
3484
3469
  goto exit_inplace_exception;
3485
3470
  }
@@ -3538,15 +3523,15 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_LIST(PyObject **operand1, PyOb
3538
3523
  goto exit_inplace_result_object;
3539
3524
  }
3540
3525
 
3541
- Py_DECREF(x);
3526
+ Py_DECREF_IMMORTAL(x);
3542
3527
  }
3543
3528
 
3544
3529
  // Statically recognized that coercion is not possible with these types
3545
3530
 
3546
3531
  #if PYTHON_VERSION < 0x300
3547
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'unicode' and 'list'");
3532
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'unicode' and 'list'");
3548
3533
  #else
3549
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'list'");
3534
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'list'");
3550
3535
  #endif
3551
3536
  goto exit_inplace_exception;
3552
3537
  }
@@ -3605,15 +3590,15 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_DICT(PyObject **operand1, PyOb
3605
3590
  goto exit_inplace_result_object;
3606
3591
  }
3607
3592
 
3608
- Py_DECREF(x);
3593
+ Py_DECREF_IMMORTAL(x);
3609
3594
  }
3610
3595
 
3611
3596
  // Statically recognized that coercion is not possible with these types
3612
3597
 
3613
3598
  #if PYTHON_VERSION < 0x300
3614
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'unicode' and 'dict'");
3599
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'unicode' and 'dict'");
3615
3600
  #else
3616
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and 'dict'");
3601
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and 'dict'");
3617
3602
  #endif
3618
3603
  goto exit_inplace_exception;
3619
3604
  }
@@ -3681,7 +3666,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_UNICODE_OBJECT(PyObject
3681
3666
  goto exit_inplace_result_object;
3682
3667
  }
3683
3668
 
3684
- Py_DECREF(x);
3669
+ Py_DECREF_IMMORTAL(x);
3685
3670
  slot2 = NULL;
3686
3671
  }
3687
3672
  }
@@ -3693,7 +3678,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_UNICODE_OBJECT(PyObject
3693
3678
  goto exit_inplace_result_object;
3694
3679
  }
3695
3680
 
3696
- Py_DECREF(x);
3681
+ Py_DECREF_IMMORTAL(x);
3697
3682
  }
3698
3683
 
3699
3684
  if (slot2 != NULL) {
@@ -3704,7 +3689,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_UNICODE_OBJECT(PyObject
3704
3689
  goto exit_inplace_result_object;
3705
3690
  }
3706
3691
 
3707
- Py_DECREF(x);
3692
+ Py_DECREF_IMMORTAL(x);
3708
3693
  }
3709
3694
 
3710
3695
  #if PYTHON_VERSION < 0x300
@@ -3748,9 +3733,9 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_UNICODE_OBJECT(PyObject
3748
3733
  #endif
3749
3734
 
3750
3735
  #if PYTHON_VERSION < 0x300
3751
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'unicode' and '%s'", type2->tp_name);
3736
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'unicode' and '%s'", type2->tp_name);
3752
3737
  #else
3753
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'str' and '%s'", type2->tp_name);
3738
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'str' and '%s'", type2->tp_name);
3754
3739
  #endif
3755
3740
  goto exit_inplace_exception;
3756
3741
  }
@@ -3856,7 +3841,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_LONG(PyObject **operand1, PyObje
3856
3841
  goto exit_inplace_result_object;
3857
3842
  }
3858
3843
 
3859
- Py_DECREF(x);
3844
+ Py_DECREF_IMMORTAL(x);
3860
3845
  }
3861
3846
 
3862
3847
  if (slot2 != NULL) {
@@ -3867,12 +3852,12 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_LONG(PyObject **operand1, PyObje
3867
3852
  goto exit_inplace_result_object;
3868
3853
  }
3869
3854
 
3870
- Py_DECREF(x);
3855
+ Py_DECREF_IMMORTAL(x);
3871
3856
  }
3872
3857
 
3873
3858
  // Statically recognized that coercion is not possible with these types
3874
3859
 
3875
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'bytes' and 'int'");
3860
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'bytes' and 'int'");
3876
3861
  goto exit_inplace_exception;
3877
3862
  }
3878
3863
 
@@ -3939,7 +3924,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_FLOAT(PyObject **operand1, PyObj
3939
3924
  goto exit_inplace_result_object;
3940
3925
  }
3941
3926
 
3942
- Py_DECREF(x);
3927
+ Py_DECREF_IMMORTAL(x);
3943
3928
  }
3944
3929
 
3945
3930
  if (slot2 != NULL) {
@@ -3950,12 +3935,12 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_FLOAT(PyObject **operand1, PyObj
3950
3935
  goto exit_inplace_result_object;
3951
3936
  }
3952
3937
 
3953
- Py_DECREF(x);
3938
+ Py_DECREF_IMMORTAL(x);
3954
3939
  }
3955
3940
 
3956
3941
  // Statically recognized that coercion is not possible with these types
3957
3942
 
3958
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'bytes' and 'float'");
3943
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'bytes' and 'float'");
3959
3944
  goto exit_inplace_exception;
3960
3945
  }
3961
3946
 
@@ -4063,7 +4048,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_UNICODE(PyObject **operand1, PyO
4063
4048
  goto exit_inplace_result_object;
4064
4049
  }
4065
4050
 
4066
- Py_DECREF(x);
4051
+ Py_DECREF_IMMORTAL(x);
4067
4052
  }
4068
4053
 
4069
4054
  if (slot2 != NULL) {
@@ -4074,12 +4059,12 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_UNICODE(PyObject **operand1, PyO
4074
4059
  goto exit_inplace_result_object;
4075
4060
  }
4076
4061
 
4077
- Py_DECREF(x);
4062
+ Py_DECREF_IMMORTAL(x);
4078
4063
  }
4079
4064
 
4080
4065
  // Statically recognized that coercion is not possible with these types
4081
4066
 
4082
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'bytes' and 'str'");
4067
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'bytes' and 'str'");
4083
4068
  goto exit_inplace_exception;
4084
4069
  }
4085
4070
 
@@ -4139,12 +4124,12 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_TUPLE(PyObject **operand1, PyObj
4139
4124
  goto exit_inplace_result_object;
4140
4125
  }
4141
4126
 
4142
- Py_DECREF(x);
4127
+ Py_DECREF_IMMORTAL(x);
4143
4128
  }
4144
4129
 
4145
4130
  // Statically recognized that coercion is not possible with these types
4146
4131
 
4147
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'bytes' and 'tuple'");
4132
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'bytes' and 'tuple'");
4148
4133
  goto exit_inplace_exception;
4149
4134
  }
4150
4135
 
@@ -4204,12 +4189,12 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_LIST(PyObject **operand1, PyObje
4204
4189
  goto exit_inplace_result_object;
4205
4190
  }
4206
4191
 
4207
- Py_DECREF(x);
4192
+ Py_DECREF_IMMORTAL(x);
4208
4193
  }
4209
4194
 
4210
4195
  // Statically recognized that coercion is not possible with these types
4211
4196
 
4212
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'bytes' and 'list'");
4197
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'bytes' and 'list'");
4213
4198
  goto exit_inplace_exception;
4214
4199
  }
4215
4200
 
@@ -4269,12 +4254,12 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_DICT(PyObject **operand1, PyObje
4269
4254
  goto exit_inplace_result_object;
4270
4255
  }
4271
4256
 
4272
- Py_DECREF(x);
4257
+ Py_DECREF_IMMORTAL(x);
4273
4258
  }
4274
4259
 
4275
4260
  // Statically recognized that coercion is not possible with these types
4276
4261
 
4277
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'bytes' and 'dict'");
4262
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'bytes' and 'dict'");
4278
4263
  goto exit_inplace_exception;
4279
4264
  }
4280
4265
 
@@ -4343,7 +4328,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_BYTES_OBJECT(PyObject **
4343
4328
  goto exit_inplace_result_object;
4344
4329
  }
4345
4330
 
4346
- Py_DECREF(x);
4331
+ Py_DECREF_IMMORTAL(x);
4347
4332
  slot2 = NULL;
4348
4333
  }
4349
4334
  }
@@ -4355,7 +4340,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_BYTES_OBJECT(PyObject **
4355
4340
  goto exit_inplace_result_object;
4356
4341
  }
4357
4342
 
4358
- Py_DECREF(x);
4343
+ Py_DECREF_IMMORTAL(x);
4359
4344
  }
4360
4345
 
4361
4346
  if (slot2 != NULL) {
@@ -4366,7 +4351,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_BYTES_OBJECT(PyObject **
4366
4351
  goto exit_inplace_result_object;
4367
4352
  }
4368
4353
 
4369
- Py_DECREF(x);
4354
+ Py_DECREF_IMMORTAL(x);
4370
4355
  }
4371
4356
 
4372
4357
  #if PYTHON_VERSION < 0x300
@@ -4409,7 +4394,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_BYTES_OBJECT(PyObject **
4409
4394
  }
4410
4395
  #endif
4411
4396
 
4412
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: 'bytes' and '%s'", type2->tp_name);
4397
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: 'bytes' and '%s'", type2->tp_name);
4413
4398
  goto exit_inplace_exception;
4414
4399
  }
4415
4400
 
@@ -4599,7 +4584,7 @@ static inline bool _INPLACE_OPERATION_MOD_OBJECT_OBJECT(PyObject **operand1, PyO
4599
4584
  goto exit_inplace_result_object;
4600
4585
  }
4601
4586
 
4602
- Py_DECREF(x);
4587
+ Py_DECREF_IMMORTAL(x);
4603
4588
  }
4604
4589
 
4605
4590
  {
@@ -4628,7 +4613,7 @@ static inline bool _INPLACE_OPERATION_MOD_OBJECT_OBJECT(PyObject **operand1, PyO
4628
4613
  goto exit_inplace_result_object;
4629
4614
  }
4630
4615
 
4631
- Py_DECREF(x);
4616
+ Py_DECREF_IMMORTAL(x);
4632
4617
  slot2 = NULL;
4633
4618
  }
4634
4619
  }
@@ -4640,7 +4625,7 @@ static inline bool _INPLACE_OPERATION_MOD_OBJECT_OBJECT(PyObject **operand1, PyO
4640
4625
  goto exit_inplace_result_object;
4641
4626
  }
4642
4627
 
4643
- Py_DECREF(x);
4628
+ Py_DECREF_IMMORTAL(x);
4644
4629
  }
4645
4630
 
4646
4631
  if (slot2 != NULL) {
@@ -4651,7 +4636,7 @@ static inline bool _INPLACE_OPERATION_MOD_OBJECT_OBJECT(PyObject **operand1, PyO
4651
4636
  goto exit_inplace_result_object;
4652
4637
  }
4653
4638
 
4654
- Py_DECREF(x);
4639
+ Py_DECREF_IMMORTAL(x);
4655
4640
  }
4656
4641
 
4657
4642
  #if PYTHON_VERSION < 0x300
@@ -4729,7 +4714,7 @@ static inline bool _INPLACE_OPERATION_MOD_OBJECT_OBJECT(PyObject **operand1, PyO
4729
4714
  }
4730
4715
  #endif
4731
4716
 
4732
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%: '%s' and '%s'", type1->tp_name,
4717
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for %%=: '%s' and '%s'", type1->tp_name,
4733
4718
  type2->tp_name);
4734
4719
  goto exit_inplace_exception;
4735
4720
  }
@@ -4755,3 +4740,18 @@ exit_inplace_exception:
4755
4740
  bool INPLACE_OPERATION_MOD_OBJECT_OBJECT(PyObject **operand1, PyObject *operand2) {
4756
4741
  return _INPLACE_OPERATION_MOD_OBJECT_OBJECT(operand1, operand2);
4757
4742
  }
4743
+
4744
+ // Part of "Nuitka", an optimizing Python compiler that is compatible and
4745
+ // integrates with CPython, but also works on its own.
4746
+ //
4747
+ // Licensed under the Apache License, Version 2.0 (the "License");
4748
+ // you may not use this file except in compliance with the License.
4749
+ // You may obtain a copy of the License at
4750
+ //
4751
+ // http://www.apache.org/licenses/LICENSE-2.0
4752
+ //
4753
+ // Unless required by applicable law or agreed to in writing, software
4754
+ // distributed under the License is distributed on an "AS IS" BASIS,
4755
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4756
+ // See the License for the specific language governing permissions and
4757
+ // limitations under the License.