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 HelperOperationBinary.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 PyObject *_BINARY_OPERATION_MOD_OBJECT_INT_INT(PyObject *operand1, PyObje
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;
@@ -84,7 +70,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_INT_INT(PyObject *operand1, PyObje
84
70
  }
85
71
 
86
72
  exit_result_ok_clong:
87
- result = PyInt_FromLong(clong_result);
73
+ result = Nuitka_PyInt_FromLong(clong_result);
88
74
  goto exit_result_ok;
89
75
 
90
76
  exit_result_object:
@@ -143,7 +129,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_OBJECT_INT(Py
143
129
  goto exit_binary_result_object;
144
130
  }
145
131
 
146
- Py_DECREF(x);
132
+ Py_DECREF_IMMORTAL(x);
147
133
  }
148
134
 
149
135
  if (slot2 != NULL) {
@@ -154,7 +140,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_OBJECT_INT(Py
154
140
  goto exit_binary_result_object;
155
141
  }
156
142
 
157
- Py_DECREF(x);
143
+ Py_DECREF_IMMORTAL(x);
158
144
  }
159
145
 
160
146
  #if PYTHON_VERSION < 0x300
@@ -290,6 +276,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_OBJECT_INT(PyObject *operand1, PyO
290
276
  clong_result = r;
291
277
  goto exit_result_ok_clong;
292
278
  }
279
+
293
280
  {
294
281
  PyObject *operand1_object = operand1;
295
282
  PyObject *operand2_object = operand2;
@@ -302,7 +289,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_OBJECT_INT(PyObject *operand1, PyO
302
289
  }
303
290
 
304
291
  exit_result_ok_clong:
305
- result = PyInt_FromLong(clong_result);
292
+ result = Nuitka_PyInt_FromLong(clong_result);
306
293
  goto exit_result_ok;
307
294
 
308
295
  exit_result_object:
@@ -366,7 +353,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_INT_OBJECT(Py
366
353
  goto exit_binary_result_object;
367
354
  }
368
355
 
369
- Py_DECREF(x);
356
+ Py_DECREF_IMMORTAL(x);
370
357
  slot2 = NULL;
371
358
  }
372
359
  }
@@ -378,7 +365,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_INT_OBJECT(Py
378
365
  goto exit_binary_result_object;
379
366
  }
380
367
 
381
- Py_DECREF(x);
368
+ Py_DECREF_IMMORTAL(x);
382
369
  }
383
370
 
384
371
  if (slot2 != NULL) {
@@ -389,7 +376,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_INT_OBJECT(Py
389
376
  goto exit_binary_result_object;
390
377
  }
391
378
 
392
- Py_DECREF(x);
379
+ Py_DECREF_IMMORTAL(x);
393
380
  }
394
381
 
395
382
  #if PYTHON_VERSION < 0x300
@@ -525,6 +512,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_INT_OBJECT(PyObject *operand1, PyO
525
512
  clong_result = r;
526
513
  goto exit_result_ok_clong;
527
514
  }
515
+
528
516
  {
529
517
  PyObject *operand1_object = operand1;
530
518
  PyObject *operand2_object = operand2;
@@ -537,7 +525,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_INT_OBJECT(PyObject *operand1, PyO
537
525
  }
538
526
 
539
527
  exit_result_ok_clong:
540
- result = PyInt_FromLong(clong_result);
528
+ result = Nuitka_PyInt_FromLong(clong_result);
541
529
  goto exit_result_ok;
542
530
 
543
531
  exit_result_object:
@@ -610,6 +598,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_INT_INT(PyObject *operand1, PyObj
610
598
  clong_result = r;
611
599
  goto exit_result_ok_clong;
612
600
  }
601
+
613
602
  {
614
603
  PyObject *operand1_object = operand1;
615
604
  PyObject *operand2_object = operand2;
@@ -682,7 +671,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_OBJECT_INT(P
682
671
  goto exit_binary_result_object;
683
672
  }
684
673
 
685
- Py_DECREF(x);
674
+ Py_DECREF_IMMORTAL(x);
686
675
  }
687
676
 
688
677
  if (slot2 != NULL) {
@@ -693,7 +682,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_OBJECT_INT(P
693
682
  goto exit_binary_result_object;
694
683
  }
695
684
 
696
- Py_DECREF(x);
685
+ Py_DECREF_IMMORTAL(x);
697
686
  }
698
687
 
699
688
  #if PYTHON_VERSION < 0x300
@@ -837,6 +826,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_OBJECT_INT(PyObject *operand1, Py
837
826
  clong_result = r;
838
827
  goto exit_result_ok_clong;
839
828
  }
829
+
840
830
  {
841
831
  PyObject *operand1_object = operand1;
842
832
  PyObject *operand2_object = operand2;
@@ -914,7 +904,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_INT_OBJECT(P
914
904
  goto exit_binary_result_object;
915
905
  }
916
906
 
917
- Py_DECREF(x);
907
+ Py_DECREF_IMMORTAL(x);
918
908
  slot2 = NULL;
919
909
  }
920
910
  }
@@ -926,7 +916,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_INT_OBJECT(P
926
916
  goto exit_binary_result_object;
927
917
  }
928
918
 
929
- Py_DECREF(x);
919
+ Py_DECREF_IMMORTAL(x);
930
920
  }
931
921
 
932
922
  if (slot2 != NULL) {
@@ -937,7 +927,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_INT_OBJECT(P
937
927
  goto exit_binary_result_object;
938
928
  }
939
929
 
940
- Py_DECREF(x);
930
+ Py_DECREF_IMMORTAL(x);
941
931
  }
942
932
 
943
933
  #if PYTHON_VERSION < 0x300
@@ -1081,6 +1071,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_INT_OBJECT(PyObject *operand1, Py
1081
1071
  clong_result = r;
1082
1072
  goto exit_result_ok_clong;
1083
1073
  }
1074
+
1084
1075
  {
1085
1076
  PyObject *operand1_object = operand1;
1086
1077
  PyObject *operand2_object = operand2;
@@ -1199,7 +1190,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_OBJECT_LONG(P
1199
1190
  goto exit_binary_result_object;
1200
1191
  }
1201
1192
 
1202
- Py_DECREF(x);
1193
+ Py_DECREF_IMMORTAL(x);
1203
1194
  }
1204
1195
 
1205
1196
  if (slot2 != NULL) {
@@ -1210,7 +1201,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_OBJECT_LONG(P
1210
1201
  goto exit_binary_result_object;
1211
1202
  }
1212
1203
 
1213
- Py_DECREF(x);
1204
+ Py_DECREF_IMMORTAL(x);
1214
1205
  }
1215
1206
 
1216
1207
  #if PYTHON_VERSION < 0x300
@@ -1388,7 +1379,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_LONG_OBJECT(P
1388
1379
  goto exit_binary_result_object;
1389
1380
  }
1390
1381
 
1391
- Py_DECREF(x);
1382
+ Py_DECREF_IMMORTAL(x);
1392
1383
  slot2 = NULL;
1393
1384
  }
1394
1385
  }
@@ -1400,7 +1391,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_LONG_OBJECT(P
1400
1391
  goto exit_binary_result_object;
1401
1392
  }
1402
1393
 
1403
- Py_DECREF(x);
1394
+ Py_DECREF_IMMORTAL(x);
1404
1395
  }
1405
1396
 
1406
1397
  if (slot2 != NULL) {
@@ -1411,7 +1402,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_LONG_OBJECT(P
1411
1402
  goto exit_binary_result_object;
1412
1403
  }
1413
1404
 
1414
- Py_DECREF(x);
1405
+ Py_DECREF_IMMORTAL(x);
1415
1406
  }
1416
1407
 
1417
1408
  #if PYTHON_VERSION < 0x300
@@ -1633,7 +1624,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_OBJECT_LONG(
1633
1624
  goto exit_binary_result_object;
1634
1625
  }
1635
1626
 
1636
- Py_DECREF(x);
1627
+ Py_DECREF_IMMORTAL(x);
1637
1628
  }
1638
1629
 
1639
1630
  if (slot2 != NULL) {
@@ -1644,7 +1635,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_OBJECT_LONG(
1644
1635
  goto exit_binary_result_object;
1645
1636
  }
1646
1637
 
1647
- Py_DECREF(x);
1638
+ Py_DECREF_IMMORTAL(x);
1648
1639
  }
1649
1640
 
1650
1641
  #if PYTHON_VERSION < 0x300
@@ -1832,7 +1823,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_LONG_OBJECT(
1832
1823
  goto exit_binary_result_object;
1833
1824
  }
1834
1825
 
1835
- Py_DECREF(x);
1826
+ Py_DECREF_IMMORTAL(x);
1836
1827
  slot2 = NULL;
1837
1828
  }
1838
1829
  }
@@ -1844,7 +1835,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_LONG_OBJECT(
1844
1835
  goto exit_binary_result_object;
1845
1836
  }
1846
1837
 
1847
- Py_DECREF(x);
1838
+ Py_DECREF_IMMORTAL(x);
1848
1839
  }
1849
1840
 
1850
1841
  if (slot2 != NULL) {
@@ -1855,7 +1846,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_LONG_OBJECT(
1855
1846
  goto exit_binary_result_object;
1856
1847
  }
1857
1848
 
1858
- Py_DECREF(x);
1849
+ Py_DECREF_IMMORTAL(x);
1859
1850
  }
1860
1851
 
1861
1852
  #if PYTHON_VERSION < 0x300
@@ -2106,7 +2097,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_OBJECT_FLOAT(
2106
2097
  goto exit_binary_result_object;
2107
2098
  }
2108
2099
 
2109
- Py_DECREF(x);
2100
+ Py_DECREF_IMMORTAL(x);
2110
2101
  }
2111
2102
 
2112
2103
  if (slot2 != NULL) {
@@ -2117,7 +2108,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_OBJECT_FLOAT(
2117
2108
  goto exit_binary_result_object;
2118
2109
  }
2119
2110
 
2120
- Py_DECREF(x);
2111
+ Py_DECREF_IMMORTAL(x);
2121
2112
  }
2122
2113
 
2123
2114
  #if PYTHON_VERSION < 0x300
@@ -2313,7 +2304,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_FLOAT_OBJECT(
2313
2304
  goto exit_binary_result_object;
2314
2305
  }
2315
2306
 
2316
- Py_DECREF(x);
2307
+ Py_DECREF_IMMORTAL(x);
2317
2308
  slot2 = NULL;
2318
2309
  }
2319
2310
  }
@@ -2325,7 +2316,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_FLOAT_OBJECT(
2325
2316
  goto exit_binary_result_object;
2326
2317
  }
2327
2318
 
2328
- Py_DECREF(x);
2319
+ Py_DECREF_IMMORTAL(x);
2329
2320
  }
2330
2321
 
2331
2322
  if (slot2 != NULL) {
@@ -2336,7 +2327,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_FLOAT_OBJECT(
2336
2327
  goto exit_binary_result_object;
2337
2328
  }
2338
2329
 
2339
- Py_DECREF(x);
2330
+ Py_DECREF_IMMORTAL(x);
2340
2331
  }
2341
2332
 
2342
2333
  #if PYTHON_VERSION < 0x300
@@ -2595,7 +2586,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_OBJECT_FLOAT
2595
2586
  goto exit_binary_result_object;
2596
2587
  }
2597
2588
 
2598
- Py_DECREF(x);
2589
+ Py_DECREF_IMMORTAL(x);
2599
2590
  }
2600
2591
 
2601
2592
  if (slot2 != NULL) {
@@ -2606,7 +2597,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_OBJECT_FLOAT
2606
2597
  goto exit_binary_result_object;
2607
2598
  }
2608
2599
 
2609
- Py_DECREF(x);
2600
+ Py_DECREF_IMMORTAL(x);
2610
2601
  }
2611
2602
 
2612
2603
  #if PYTHON_VERSION < 0x300
@@ -2810,7 +2801,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_FLOAT_OBJECT
2810
2801
  goto exit_binary_result_object;
2811
2802
  }
2812
2803
 
2813
- Py_DECREF(x);
2804
+ Py_DECREF_IMMORTAL(x);
2814
2805
  slot2 = NULL;
2815
2806
  }
2816
2807
  }
@@ -2822,7 +2813,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_FLOAT_OBJECT
2822
2813
  goto exit_binary_result_object;
2823
2814
  }
2824
2815
 
2825
- Py_DECREF(x);
2816
+ Py_DECREF_IMMORTAL(x);
2826
2817
  }
2827
2818
 
2828
2819
  if (slot2 != NULL) {
@@ -2833,7 +2824,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_MOD_NBOOL_FLOAT_OBJECT
2833
2824
  goto exit_binary_result_object;
2834
2825
  }
2835
2826
 
2836
- Py_DECREF(x);
2827
+ Py_DECREF_IMMORTAL(x);
2837
2828
  }
2838
2829
 
2839
2830
  #if PYTHON_VERSION < 0x300
@@ -3026,7 +3017,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_FLOAT_LONG(PyObject *operand1, PyO
3026
3017
  goto exit_binary_result_object;
3027
3018
  }
3028
3019
 
3029
- Py_DECREF(x);
3020
+ Py_DECREF_IMMORTAL(x);
3030
3021
  }
3031
3022
 
3032
3023
  // Statically recognized that coercion is not possible with these types
@@ -3083,7 +3074,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_LONG_FLOAT(PyObject *operand1, PyO
3083
3074
  goto exit_binary_result_object;
3084
3075
  }
3085
3076
 
3086
- Py_DECREF(x);
3077
+ Py_DECREF_IMMORTAL(x);
3087
3078
  }
3088
3079
 
3089
3080
  // Statically recognized that coercion is not possible with these types
@@ -3134,7 +3125,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_FLOAT_LONG(PyObject *operand1, Py
3134
3125
  goto exit_binary_result_object;
3135
3126
  }
3136
3127
 
3137
- Py_DECREF(x);
3128
+ Py_DECREF_IMMORTAL(x);
3138
3129
  }
3139
3130
 
3140
3131
  // Statically recognized that coercion is not possible with these types
@@ -3199,7 +3190,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_LONG_FLOAT(PyObject *operand1, Py
3199
3190
  goto exit_binary_result_object;
3200
3191
  }
3201
3192
 
3202
- Py_DECREF(x);
3193
+ Py_DECREF_IMMORTAL(x);
3203
3194
  }
3204
3195
 
3205
3196
  // Statically recognized that coercion is not possible with these types
@@ -3259,7 +3250,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_FLOAT_INT(PyObject *operand1, PyOb
3259
3250
  goto exit_binary_result_object;
3260
3251
  }
3261
3252
 
3262
- Py_DECREF(x);
3253
+ Py_DECREF_IMMORTAL(x);
3263
3254
  }
3264
3255
 
3265
3256
  // Statically recognized that coercion is not possible with these types
@@ -3314,7 +3305,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_INT_FLOAT(PyObject *operand1, PyOb
3314
3305
  goto exit_binary_result_object;
3315
3306
  }
3316
3307
 
3317
- Py_DECREF(x);
3308
+ Py_DECREF_IMMORTAL(x);
3318
3309
  }
3319
3310
 
3320
3311
  // Statically recognized that coercion is not possible with these types
@@ -3363,7 +3354,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_FLOAT_INT(PyObject *operand1, PyO
3363
3354
  goto exit_binary_result_object;
3364
3355
  }
3365
3356
 
3366
- Py_DECREF(x);
3357
+ Py_DECREF_IMMORTAL(x);
3367
3358
  }
3368
3359
 
3369
3360
  // Statically recognized that coercion is not possible with these types
@@ -3426,7 +3417,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_INT_FLOAT(PyObject *operand1, PyO
3426
3417
  goto exit_binary_result_object;
3427
3418
  }
3428
3419
 
3429
- Py_DECREF(x);
3420
+ Py_DECREF_IMMORTAL(x);
3430
3421
  }
3431
3422
 
3432
3423
  // Statically recognized that coercion is not possible with these types
@@ -3483,7 +3474,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_LONG_INT(PyObject *operand1, PyObj
3483
3474
  goto exit_binary_result_object;
3484
3475
  }
3485
3476
 
3486
- Py_DECREF(x);
3477
+ Py_DECREF_IMMORTAL(x);
3487
3478
  }
3488
3479
 
3489
3480
  // Statically recognized that coercion is not possible with these types
@@ -3538,7 +3529,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_INT_LONG(PyObject *operand1, PyObj
3538
3529
  goto exit_binary_result_object;
3539
3530
  }
3540
3531
 
3541
- Py_DECREF(x);
3532
+ Py_DECREF_IMMORTAL(x);
3542
3533
  }
3543
3534
 
3544
3535
  // Statically recognized that coercion is not possible with these types
@@ -3587,7 +3578,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_LONG_INT(PyObject *operand1, PyOb
3587
3578
  goto exit_binary_result_object;
3588
3579
  }
3589
3580
 
3590
- Py_DECREF(x);
3581
+ Py_DECREF_IMMORTAL(x);
3591
3582
  }
3592
3583
 
3593
3584
  // Statically recognized that coercion is not possible with these types
@@ -3650,7 +3641,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_INT_LONG(PyObject *operand1, PyOb
3650
3641
  goto exit_binary_result_object;
3651
3642
  }
3652
3643
 
3653
- Py_DECREF(x);
3644
+ Py_DECREF_IMMORTAL(x);
3654
3645
  }
3655
3646
 
3656
3647
  // Statically recognized that coercion is not possible with these types
@@ -3722,9 +3713,10 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_INT_CLONG(PyObject *operand1, long
3722
3713
  clong_result = r;
3723
3714
  goto exit_result_ok_clong;
3724
3715
  }
3716
+
3725
3717
  {
3726
3718
  PyObject *operand1_object = operand1;
3727
- PyObject *operand2_object = PyLong_FromLong(operand2);
3719
+ PyObject *operand2_object = Nuitka_PyLong_FromLong(operand2);
3728
3720
 
3729
3721
  PyObject *r = PyLong_Type.tp_as_number->nb_remainder(operand1_object, operand2_object);
3730
3722
  assert(r != Py_NotImplemented);
@@ -3736,7 +3728,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_INT_CLONG(PyObject *operand1, long
3736
3728
  }
3737
3729
 
3738
3730
  exit_result_ok_clong:
3739
- result = PyInt_FromLong(clong_result);
3731
+ result = Nuitka_PyInt_FromLong(clong_result);
3740
3732
  goto exit_result_ok;
3741
3733
 
3742
3734
  exit_result_object:
@@ -3803,8 +3795,9 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_CLONG_INT(long operand1, PyObject
3803
3795
  clong_result = r;
3804
3796
  goto exit_result_ok_clong;
3805
3797
  }
3798
+
3806
3799
  {
3807
- PyObject *operand1_object = PyLong_FromLong(operand1);
3800
+ PyObject *operand1_object = Nuitka_PyLong_FromLong(operand1);
3808
3801
  PyObject *operand2_object = operand2;
3809
3802
 
3810
3803
  PyObject *r = PyLong_Type.tp_as_number->nb_remainder(operand1_object, operand2_object);
@@ -3817,7 +3810,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_CLONG_INT(long operand1, PyObject
3817
3810
  }
3818
3811
 
3819
3812
  exit_result_ok_clong:
3820
- result = PyInt_FromLong(clong_result);
3813
+ result = Nuitka_PyInt_FromLong(clong_result);
3821
3814
  goto exit_result_ok;
3822
3815
 
3823
3816
  exit_result_object:
@@ -3883,9 +3876,10 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_INT_CLONG(PyObject *operand1, lon
3883
3876
  clong_result = r;
3884
3877
  goto exit_result_ok_clong;
3885
3878
  }
3879
+
3886
3880
  {
3887
3881
  PyObject *operand1_object = operand1;
3888
- PyObject *operand2_object = PyLong_FromLong(operand2);
3882
+ PyObject *operand2_object = Nuitka_PyLong_FromLong(operand2);
3889
3883
 
3890
3884
  PyObject *r = PyLong_Type.tp_as_number->nb_remainder(operand1_object, operand2_object);
3891
3885
  assert(r != Py_NotImplemented);
@@ -3965,8 +3959,9 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_CLONG_INT(long operand1, PyObject
3965
3959
  clong_result = r;
3966
3960
  goto exit_result_ok_clong;
3967
3961
  }
3962
+
3968
3963
  {
3969
- PyObject *operand1_object = PyLong_FromLong(operand1);
3964
+ PyObject *operand1_object = Nuitka_PyLong_FromLong(operand1);
3970
3965
  PyObject *operand2_object = operand2;
3971
3966
 
3972
3967
  PyObject *r = PyLong_Type.tp_as_number->nb_remainder(operand1_object, operand2_object);
@@ -4283,7 +4278,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_INT(PyObject *operand1, PyObje
4283
4278
  goto exit_binary_result_object;
4284
4279
  }
4285
4280
 
4286
- Py_DECREF(x);
4281
+ Py_DECREF_IMMORTAL(x);
4287
4282
  }
4288
4283
 
4289
4284
  if (slot2 != NULL) {
@@ -4294,7 +4289,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_INT(PyObject *operand1, PyObje
4294
4289
  goto exit_binary_result_object;
4295
4290
  }
4296
4291
 
4297
- Py_DECREF(x);
4292
+ Py_DECREF_IMMORTAL(x);
4298
4293
  }
4299
4294
 
4300
4295
  // Statically recognized that coercion is not possible with these types
@@ -4349,7 +4344,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_LONG(PyObject *operand1, PyObj
4349
4344
  goto exit_binary_result_object;
4350
4345
  }
4351
4346
 
4352
- Py_DECREF(x);
4347
+ Py_DECREF_IMMORTAL(x);
4353
4348
  }
4354
4349
 
4355
4350
  if (slot2 != NULL) {
@@ -4360,7 +4355,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_LONG(PyObject *operand1, PyObj
4360
4355
  goto exit_binary_result_object;
4361
4356
  }
4362
4357
 
4363
- Py_DECREF(x);
4358
+ Py_DECREF_IMMORTAL(x);
4364
4359
  }
4365
4360
 
4366
4361
  // Statically recognized that coercion is not possible with these types
@@ -4415,7 +4410,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_FLOAT(PyObject *operand1, PyOb
4415
4410
  goto exit_binary_result_object;
4416
4411
  }
4417
4412
 
4418
- Py_DECREF(x);
4413
+ Py_DECREF_IMMORTAL(x);
4419
4414
  }
4420
4415
 
4421
4416
  if (slot2 != NULL) {
@@ -4426,7 +4421,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_FLOAT(PyObject *operand1, PyOb
4426
4421
  goto exit_binary_result_object;
4427
4422
  }
4428
4423
 
4429
- Py_DECREF(x);
4424
+ Py_DECREF_IMMORTAL(x);
4430
4425
  }
4431
4426
 
4432
4427
  // Statically recognized that coercion is not possible with these types
@@ -4518,7 +4513,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_UNICODE(PyObject *operand1, Py
4518
4513
  goto exit_binary_result_object;
4519
4514
  }
4520
4515
 
4521
- Py_DECREF(x);
4516
+ Py_DECREF_IMMORTAL(x);
4522
4517
  }
4523
4518
 
4524
4519
  if (slot2 != NULL) {
@@ -4529,7 +4524,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_UNICODE(PyObject *operand1, Py
4529
4524
  goto exit_binary_result_object;
4530
4525
  }
4531
4526
 
4532
- Py_DECREF(x);
4527
+ Py_DECREF_IMMORTAL(x);
4533
4528
  }
4534
4529
 
4535
4530
  // Statically recognized that coercion is not possible with these types
@@ -4577,7 +4572,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_TUPLE(PyObject *operand1, PyOb
4577
4572
  goto exit_binary_result_object;
4578
4573
  }
4579
4574
 
4580
- Py_DECREF(x);
4575
+ Py_DECREF_IMMORTAL(x);
4581
4576
  }
4582
4577
 
4583
4578
  // Statically recognized that coercion is not possible with these types
@@ -4625,7 +4620,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_LIST(PyObject *operand1, PyObj
4625
4620
  goto exit_binary_result_object;
4626
4621
  }
4627
4622
 
4628
- Py_DECREF(x);
4623
+ Py_DECREF_IMMORTAL(x);
4629
4624
  }
4630
4625
 
4631
4626
  // Statically recognized that coercion is not possible with these types
@@ -4673,7 +4668,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_STR_DICT(PyObject *operand1, PyObj
4673
4668
  goto exit_binary_result_object;
4674
4669
  }
4675
4670
 
4676
- Py_DECREF(x);
4671
+ Py_DECREF_IMMORTAL(x);
4677
4672
  }
4678
4673
 
4679
4674
  // Statically recognized that coercion is not possible with these types
@@ -4732,7 +4727,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_STR_OBJECT(Py
4732
4727
  goto exit_binary_result_object;
4733
4728
  }
4734
4729
 
4735
- Py_DECREF(x);
4730
+ Py_DECREF_IMMORTAL(x);
4736
4731
  slot2 = NULL;
4737
4732
  }
4738
4733
  }
@@ -4744,7 +4739,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_STR_OBJECT(Py
4744
4739
  goto exit_binary_result_object;
4745
4740
  }
4746
4741
 
4747
- Py_DECREF(x);
4742
+ Py_DECREF_IMMORTAL(x);
4748
4743
  }
4749
4744
 
4750
4745
  if (slot2 != NULL) {
@@ -4755,7 +4750,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_STR_OBJECT(Py
4755
4750
  goto exit_binary_result_object;
4756
4751
  }
4757
4752
 
4758
- Py_DECREF(x);
4753
+ Py_DECREF_IMMORTAL(x);
4759
4754
  }
4760
4755
 
4761
4756
  #if PYTHON_VERSION < 0x300
@@ -4884,7 +4879,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_INT(PyObject *operand1, Py
4884
4879
  goto exit_binary_result_object;
4885
4880
  }
4886
4881
 
4887
- Py_DECREF(x);
4882
+ Py_DECREF_IMMORTAL(x);
4888
4883
  }
4889
4884
 
4890
4885
  if (slot2 != NULL) {
@@ -4895,7 +4890,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_INT(PyObject *operand1, Py
4895
4890
  goto exit_binary_result_object;
4896
4891
  }
4897
4892
 
4898
- Py_DECREF(x);
4893
+ Py_DECREF_IMMORTAL(x);
4899
4894
  }
4900
4895
 
4901
4896
  // Statically recognized that coercion is not possible with these types
@@ -4950,7 +4945,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_LONG(PyObject *operand1, P
4950
4945
  goto exit_binary_result_object;
4951
4946
  }
4952
4947
 
4953
- Py_DECREF(x);
4948
+ Py_DECREF_IMMORTAL(x);
4954
4949
  }
4955
4950
 
4956
4951
  if (slot2 != NULL) {
@@ -4961,7 +4956,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_LONG(PyObject *operand1, P
4961
4956
  goto exit_binary_result_object;
4962
4957
  }
4963
4958
 
4964
- Py_DECREF(x);
4959
+ Py_DECREF_IMMORTAL(x);
4965
4960
  }
4966
4961
 
4967
4962
  // Statically recognized that coercion is not possible with these types
@@ -5018,7 +5013,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_FLOAT(PyObject *operand1,
5018
5013
  goto exit_binary_result_object;
5019
5014
  }
5020
5015
 
5021
- Py_DECREF(x);
5016
+ Py_DECREF_IMMORTAL(x);
5022
5017
  }
5023
5018
 
5024
5019
  if (slot2 != NULL) {
@@ -5029,7 +5024,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_FLOAT(PyObject *operand1,
5029
5024
  goto exit_binary_result_object;
5030
5025
  }
5031
5026
 
5032
- Py_DECREF(x);
5027
+ Py_DECREF_IMMORTAL(x);
5033
5028
  }
5034
5029
 
5035
5030
  // Statically recognized that coercion is not possible with these types
@@ -5087,7 +5082,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_STR(PyObject *operand1, Py
5087
5082
  goto exit_binary_result_object;
5088
5083
  }
5089
5084
 
5090
- Py_DECREF(x);
5085
+ Py_DECREF_IMMORTAL(x);
5091
5086
  }
5092
5087
 
5093
5088
  if (slot2 != NULL) {
@@ -5098,7 +5093,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_STR(PyObject *operand1, Py
5098
5093
  goto exit_binary_result_object;
5099
5094
  }
5100
5095
 
5101
- Py_DECREF(x);
5096
+ Py_DECREF_IMMORTAL(x);
5102
5097
  }
5103
5098
 
5104
5099
  // Statically recognized that coercion is not possible with these types
@@ -5153,7 +5148,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_BYTES(PyObject *operand1,
5153
5148
  goto exit_binary_result_object;
5154
5149
  }
5155
5150
 
5156
- Py_DECREF(x);
5151
+ Py_DECREF_IMMORTAL(x);
5157
5152
  }
5158
5153
 
5159
5154
  if (slot2 != NULL) {
@@ -5164,7 +5159,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_BYTES(PyObject *operand1,
5164
5159
  goto exit_binary_result_object;
5165
5160
  }
5166
5161
 
5167
- Py_DECREF(x);
5162
+ Py_DECREF_IMMORTAL(x);
5168
5163
  }
5169
5164
 
5170
5165
  // Statically recognized that coercion is not possible with these types
@@ -5247,7 +5242,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_TUPLE(PyObject *operand1,
5247
5242
  goto exit_binary_result_object;
5248
5243
  }
5249
5244
 
5250
- Py_DECREF(x);
5245
+ Py_DECREF_IMMORTAL(x);
5251
5246
  }
5252
5247
 
5253
5248
  // Statically recognized that coercion is not possible with these types
@@ -5297,7 +5292,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_LIST(PyObject *operand1, P
5297
5292
  goto exit_binary_result_object;
5298
5293
  }
5299
5294
 
5300
- Py_DECREF(x);
5295
+ Py_DECREF_IMMORTAL(x);
5301
5296
  }
5302
5297
 
5303
5298
  // Statically recognized that coercion is not possible with these types
@@ -5347,7 +5342,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_UNICODE_DICT(PyObject *operand1, P
5347
5342
  goto exit_binary_result_object;
5348
5343
  }
5349
5344
 
5350
- Py_DECREF(x);
5345
+ Py_DECREF_IMMORTAL(x);
5351
5346
  }
5352
5347
 
5353
5348
  // Statically recognized that coercion is not possible with these types
@@ -5409,7 +5404,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_UNICODE_OBJEC
5409
5404
  goto exit_binary_result_object;
5410
5405
  }
5411
5406
 
5412
- Py_DECREF(x);
5407
+ Py_DECREF_IMMORTAL(x);
5413
5408
  slot2 = NULL;
5414
5409
  }
5415
5410
  }
@@ -5421,7 +5416,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_UNICODE_OBJEC
5421
5416
  goto exit_binary_result_object;
5422
5417
  }
5423
5418
 
5424
- Py_DECREF(x);
5419
+ Py_DECREF_IMMORTAL(x);
5425
5420
  }
5426
5421
 
5427
5422
  if (slot2 != NULL) {
@@ -5432,7 +5427,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_UNICODE_OBJEC
5432
5427
  goto exit_binary_result_object;
5433
5428
  }
5434
5429
 
5435
- Py_DECREF(x);
5430
+ Py_DECREF_IMMORTAL(x);
5436
5431
  }
5437
5432
 
5438
5433
  #if PYTHON_VERSION < 0x300
@@ -5564,7 +5559,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_BYTES_LONG(PyObject *operand1, PyO
5564
5559
  goto exit_binary_result_object;
5565
5560
  }
5566
5561
 
5567
- Py_DECREF(x);
5562
+ Py_DECREF_IMMORTAL(x);
5568
5563
  }
5569
5564
 
5570
5565
  if (slot2 != NULL) {
@@ -5575,7 +5570,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_BYTES_LONG(PyObject *operand1, PyO
5575
5570
  goto exit_binary_result_object;
5576
5571
  }
5577
5572
 
5578
- Py_DECREF(x);
5573
+ Py_DECREF_IMMORTAL(x);
5579
5574
  }
5580
5575
 
5581
5576
  // Statically recognized that coercion is not possible with these types
@@ -5630,7 +5625,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_BYTES_FLOAT(PyObject *operand1, Py
5630
5625
  goto exit_binary_result_object;
5631
5626
  }
5632
5627
 
5633
- Py_DECREF(x);
5628
+ Py_DECREF_IMMORTAL(x);
5634
5629
  }
5635
5630
 
5636
5631
  if (slot2 != NULL) {
@@ -5641,7 +5636,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_BYTES_FLOAT(PyObject *operand1, Py
5641
5636
  goto exit_binary_result_object;
5642
5637
  }
5643
5638
 
5644
- Py_DECREF(x);
5639
+ Py_DECREF_IMMORTAL(x);
5645
5640
  }
5646
5641
 
5647
5642
  // Statically recognized that coercion is not possible with these types
@@ -5734,7 +5729,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_BYTES_UNICODE(PyObject *operand1,
5734
5729
  goto exit_binary_result_object;
5735
5730
  }
5736
5731
 
5737
- Py_DECREF(x);
5732
+ Py_DECREF_IMMORTAL(x);
5738
5733
  }
5739
5734
 
5740
5735
  if (slot2 != NULL) {
@@ -5745,7 +5740,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_BYTES_UNICODE(PyObject *operand1,
5745
5740
  goto exit_binary_result_object;
5746
5741
  }
5747
5742
 
5748
- Py_DECREF(x);
5743
+ Py_DECREF_IMMORTAL(x);
5749
5744
  }
5750
5745
 
5751
5746
  // Statically recognized that coercion is not possible with these types
@@ -5793,7 +5788,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_BYTES_TUPLE(PyObject *operand1, Py
5793
5788
  goto exit_binary_result_object;
5794
5789
  }
5795
5790
 
5796
- Py_DECREF(x);
5791
+ Py_DECREF_IMMORTAL(x);
5797
5792
  }
5798
5793
 
5799
5794
  // Statically recognized that coercion is not possible with these types
@@ -5841,7 +5836,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_BYTES_LIST(PyObject *operand1, PyO
5841
5836
  goto exit_binary_result_object;
5842
5837
  }
5843
5838
 
5844
- Py_DECREF(x);
5839
+ Py_DECREF_IMMORTAL(x);
5845
5840
  }
5846
5841
 
5847
5842
  // Statically recognized that coercion is not possible with these types
@@ -5889,7 +5884,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_BYTES_DICT(PyObject *operand1, PyO
5889
5884
  goto exit_binary_result_object;
5890
5885
  }
5891
5886
 
5892
- Py_DECREF(x);
5887
+ Py_DECREF_IMMORTAL(x);
5893
5888
  }
5894
5889
 
5895
5890
  // Statically recognized that coercion is not possible with these types
@@ -5949,7 +5944,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_BYTES_OBJECT(
5949
5944
  goto exit_binary_result_object;
5950
5945
  }
5951
5946
 
5952
- Py_DECREF(x);
5947
+ Py_DECREF_IMMORTAL(x);
5953
5948
  slot2 = NULL;
5954
5949
  }
5955
5950
  }
@@ -5961,7 +5956,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_BYTES_OBJECT(
5961
5956
  goto exit_binary_result_object;
5962
5957
  }
5963
5958
 
5964
- Py_DECREF(x);
5959
+ Py_DECREF_IMMORTAL(x);
5965
5960
  }
5966
5961
 
5967
5962
  if (slot2 != NULL) {
@@ -5972,7 +5967,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_MOD_OBJECT_BYTES_OBJECT(
5972
5967
  goto exit_binary_result_object;
5973
5968
  }
5974
5969
 
5975
- Py_DECREF(x);
5970
+ Py_DECREF_IMMORTAL(x);
5976
5971
  }
5977
5972
 
5978
5973
  #if PYTHON_VERSION < 0x300
@@ -6114,6 +6109,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_OBJECT_OBJECT(PyObject *operand1,
6114
6109
  clong_result = r;
6115
6110
  goto exit_result_ok_clong;
6116
6111
  }
6112
+
6117
6113
  {
6118
6114
  PyObject *operand1_object = operand1;
6119
6115
  PyObject *operand2_object = operand2;
@@ -6126,7 +6122,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_OBJECT_OBJECT(PyObject *operand1,
6126
6122
  }
6127
6123
 
6128
6124
  exit_result_ok_clong:
6129
- result = PyInt_FromLong(clong_result);
6125
+ result = Nuitka_PyInt_FromLong(clong_result);
6130
6126
  goto exit_result_ok;
6131
6127
 
6132
6128
  exit_result_object:
@@ -6182,7 +6178,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_OBJECT_OBJECT(PyObject *operand1,
6182
6178
  goto exit_binary_result_object;
6183
6179
  }
6184
6180
 
6185
- Py_DECREF(x);
6181
+ Py_DECREF_IMMORTAL(x);
6186
6182
  slot2 = NULL;
6187
6183
  }
6188
6184
  }
@@ -6194,7 +6190,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_OBJECT_OBJECT(PyObject *operand1,
6194
6190
  goto exit_binary_result_object;
6195
6191
  }
6196
6192
 
6197
- Py_DECREF(x);
6193
+ Py_DECREF_IMMORTAL(x);
6198
6194
  }
6199
6195
 
6200
6196
  if (slot2 != NULL) {
@@ -6205,7 +6201,7 @@ static PyObject *_BINARY_OPERATION_MOD_OBJECT_OBJECT_OBJECT(PyObject *operand1,
6205
6201
  goto exit_binary_result_object;
6206
6202
  }
6207
6203
 
6208
- Py_DECREF(x);
6204
+ Py_DECREF_IMMORTAL(x);
6209
6205
  }
6210
6206
 
6211
6207
  #if PYTHON_VERSION < 0x300
@@ -6344,6 +6340,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_OBJECT_OBJECT(PyObject *operand1,
6344
6340
  clong_result = r;
6345
6341
  goto exit_result_ok_clong;
6346
6342
  }
6343
+
6347
6344
  {
6348
6345
  PyObject *operand1_object = operand1;
6349
6346
  PyObject *operand2_object = operand2;
@@ -6413,7 +6410,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_OBJECT_OBJECT(PyObject *operand1,
6413
6410
  goto exit_binary_result_object;
6414
6411
  }
6415
6412
 
6416
- Py_DECREF(x);
6413
+ Py_DECREF_IMMORTAL(x);
6417
6414
  slot2 = NULL;
6418
6415
  }
6419
6416
  }
@@ -6425,7 +6422,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_OBJECT_OBJECT(PyObject *operand1,
6425
6422
  goto exit_binary_result_object;
6426
6423
  }
6427
6424
 
6428
- Py_DECREF(x);
6425
+ Py_DECREF_IMMORTAL(x);
6429
6426
  }
6430
6427
 
6431
6428
  if (slot2 != NULL) {
@@ -6436,7 +6433,7 @@ static nuitka_bool _BINARY_OPERATION_MOD_NBOOL_OBJECT_OBJECT(PyObject *operand1,
6436
6433
  goto exit_binary_result_object;
6437
6434
  }
6438
6435
 
6439
- Py_DECREF(x);
6436
+ Py_DECREF_IMMORTAL(x);
6440
6437
  }
6441
6438
 
6442
6439
  #if PYTHON_VERSION < 0x300
@@ -6535,3 +6532,18 @@ exit_binary_exception:
6535
6532
  nuitka_bool BINARY_OPERATION_MOD_NBOOL_OBJECT_OBJECT(PyObject *operand1, PyObject *operand2) {
6536
6533
  return _BINARY_OPERATION_MOD_NBOOL_OBJECT_OBJECT(operand1, operand2);
6537
6534
  }
6535
+
6536
+ // Part of "Nuitka", an optimizing Python compiler that is compatible and
6537
+ // integrates with CPython, but also works on its own.
6538
+ //
6539
+ // Licensed under the Apache License, Version 2.0 (the "License");
6540
+ // you may not use this file except in compliance with the License.
6541
+ // You may obtain a copy of the License at
6542
+ //
6543
+ // http://www.apache.org/licenses/LICENSE-2.0
6544
+ //
6545
+ // Unless required by applicable law or agreed to in writing, software
6546
+ // distributed under the License is distributed on an "AS IS" BASIS,
6547
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
6548
+ // See the License for the specific language governing permissions and
6549
+ // limitations under the License.