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