Nuitka-winsvc 2.2.3__cp311-cp311-win_amd64.whl → 2.3.2__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 (201) hide show
  1. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.2.dist-info}/METADATA +2 -1
  2. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.2.dist-info}/RECORD +201 -200
  3. nuitka/Bytecodes.py +4 -2
  4. nuitka/HardImportRegistry.py +1 -0
  5. nuitka/MainControl.py +16 -10
  6. nuitka/ModuleRegistry.py +15 -0
  7. nuitka/OptionParsing.py +30 -8
  8. nuitka/Options.py +106 -45
  9. nuitka/PostProcessing.py +9 -8
  10. nuitka/PythonVersions.py +2 -1
  11. nuitka/Serialization.py +47 -30
  12. nuitka/Version.py +1 -1
  13. nuitka/build/Backend.scons +46 -19
  14. nuitka/build/CCompilerVersion.scons +3 -3
  15. nuitka/build/Onefile.scons +4 -4
  16. nuitka/build/SconsCaching.py +3 -2
  17. nuitka/build/SconsCompilerSettings.py +18 -6
  18. nuitka/build/SconsInterface.py +28 -8
  19. nuitka/build/SconsUtils.py +9 -1
  20. nuitka/build/include/nuitka/allocator.h +58 -2
  21. nuitka/build/include/nuitka/compiled_frame.h +48 -13
  22. nuitka/build/include/nuitka/compiled_function.h +4 -0
  23. nuitka/build/include/nuitka/constants.h +6 -0
  24. nuitka/build/include/nuitka/exception_groups.h +6 -6
  25. nuitka/build/include/nuitka/exceptions.h +3 -3
  26. nuitka/build/include/nuitka/freelists.h +11 -0
  27. nuitka/build/include/nuitka/helper/dictionaries.h +5 -4
  28. nuitka/build/include/nuitka/helper/lists.h +5 -5
  29. nuitka/build/include/nuitka/helper/lists_generated.h +12 -12
  30. nuitka/build/include/nuitka/helper/sequences.h +6 -0
  31. nuitka/build/include/nuitka/helper/slices.h +14 -8
  32. nuitka/build/include/nuitka/helper/subscripts.h +1 -184
  33. nuitka/build/include/nuitka/helper/tuples.h +42 -33
  34. nuitka/build/include/nuitka/importing.h +5 -0
  35. nuitka/build/include/nuitka/prelude.h +49 -5
  36. nuitka/build/include/nuitka/safe_string_ops.h +1 -0
  37. nuitka/build/include/nuitka/threading.h +13 -10
  38. nuitka/build/static_src/CompiledAsyncgenType.c +19 -8
  39. nuitka/build/static_src/CompiledCellType.c +1 -1
  40. nuitka/build/static_src/CompiledCodeHelpers.c +18 -16
  41. nuitka/build/static_src/CompiledCoroutineType.c +23 -19
  42. nuitka/build/static_src/CompiledFrameType.c +46 -34
  43. nuitka/build/static_src/CompiledFunctionType.c +55 -34
  44. nuitka/build/static_src/CompiledGeneratorType.c +21 -19
  45. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +127 -130
  46. nuitka/build/static_src/CompiledMethodType.c +15 -17
  47. nuitka/build/static_src/HelpersAllocator.c +71 -0
  48. nuitka/build/static_src/HelpersAttributes.c +1 -1
  49. nuitka/build/static_src/HelpersBuiltin.c +5 -5
  50. nuitka/build/static_src/HelpersBytes.c +2 -2
  51. nuitka/build/static_src/HelpersCalling.c +3 -0
  52. nuitka/build/static_src/HelpersCallingGenerated.c +952 -133
  53. nuitka/build/static_src/HelpersComparisonEq.c +329 -329
  54. nuitka/build/static_src/HelpersComparisonEqUtils.c +3 -1
  55. nuitka/build/static_src/HelpersComparisonGe.c +322 -322
  56. nuitka/build/static_src/HelpersComparisonGt.c +321 -321
  57. nuitka/build/static_src/HelpersComparisonLe.c +322 -322
  58. nuitka/build/static_src/HelpersComparisonLt.c +321 -321
  59. nuitka/build/static_src/HelpersComparisonNe.c +329 -329
  60. nuitka/build/static_src/HelpersConsole.c +96 -0
  61. nuitka/build/static_src/HelpersConstantsBlob.c +10 -6
  62. nuitka/build/static_src/HelpersDeepcopy.c +10 -8
  63. nuitka/build/static_src/HelpersDictionaries.c +17 -11
  64. nuitka/build/static_src/HelpersDictionariesGenerated.c +65 -29
  65. nuitka/build/static_src/HelpersExceptions.c +107 -9
  66. nuitka/build/static_src/HelpersFilesystemPaths.c +64 -4
  67. nuitka/build/static_src/HelpersFloats.c +20 -14
  68. nuitka/build/static_src/HelpersImport.c +1 -1
  69. nuitka/build/static_src/HelpersJitSources.c +1 -1
  70. nuitka/build/static_src/HelpersLists.c +29 -19
  71. nuitka/build/static_src/HelpersListsGenerated.c +24 -24
  72. nuitka/build/static_src/HelpersMatching.c +32 -5
  73. nuitka/build/static_src/HelpersOperationBinaryAdd.c +90 -63
  74. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +4 -4
  75. nuitka/build/static_src/HelpersOperationBinaryBitand.c +33 -33
  76. nuitka/build/static_src/HelpersOperationBinaryBitor.c +33 -33
  77. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +33 -33
  78. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +24 -24
  79. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +24 -24
  80. nuitka/build/static_src/HelpersOperationBinaryLshift.c +30 -30
  81. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +7 -7
  82. nuitka/build/static_src/HelpersOperationBinaryMod.c +90 -90
  83. nuitka/build/static_src/HelpersOperationBinaryMult.c +64 -58
  84. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +24 -24
  85. nuitka/build/static_src/HelpersOperationBinaryPow.c +27 -27
  86. nuitka/build/static_src/HelpersOperationBinaryRshift.c +30 -30
  87. nuitka/build/static_src/HelpersOperationBinarySub.c +24 -24
  88. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +24 -24
  89. nuitka/build/static_src/HelpersOperationInplaceAdd.c +67 -49
  90. nuitka/build/static_src/HelpersOperationInplaceBitand.c +25 -25
  91. nuitka/build/static_src/HelpersOperationInplaceBitor.c +25 -25
  92. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +25 -25
  93. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +28 -28
  94. nuitka/build/static_src/HelpersOperationInplaceLshift.c +18 -18
  95. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +10 -10
  96. nuitka/build/static_src/HelpersOperationInplaceMod.c +70 -70
  97. nuitka/build/static_src/HelpersOperationInplaceMult.c +33 -33
  98. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +28 -28
  99. nuitka/build/static_src/HelpersOperationInplacePow.c +28 -28
  100. nuitka/build/static_src/HelpersOperationInplaceRshift.c +18 -18
  101. nuitka/build/static_src/HelpersOperationInplaceSub.c +28 -28
  102. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +28 -28
  103. nuitka/build/static_src/HelpersRaising.c +10 -3
  104. nuitka/build/static_src/HelpersSafeStrings.c +14 -4
  105. nuitka/build/static_src/HelpersSlices.c +12 -5
  106. nuitka/build/static_src/HelpersStrings.c +1 -1
  107. nuitka/build/static_src/HelpersTuples.c +20 -15
  108. nuitka/build/static_src/InspectPatcher.c +74 -6
  109. nuitka/build/static_src/MainProgram.c +90 -25
  110. nuitka/build/static_src/MetaPathBasedLoader.c +81 -45
  111. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +2 -2
  112. nuitka/build/static_src/OnefileBootstrap.c +16 -17
  113. nuitka/code_generation/CodeGeneration.py +5 -2
  114. nuitka/code_generation/ConstantCodes.py +2 -2
  115. nuitka/code_generation/DictCodes.py +2 -2
  116. nuitka/code_generation/GlobalConstants.py +5 -0
  117. nuitka/code_generation/GlobalsLocalsCodes.py +2 -2
  118. nuitka/code_generation/ListCodes.py +2 -2
  119. nuitka/code_generation/LocalsDictCodes.py +1 -1
  120. nuitka/code_generation/ModuleCodes.py +19 -0
  121. nuitka/code_generation/PackageResourceCodes.py +14 -0
  122. nuitka/code_generation/SliceCodes.py +3 -3
  123. nuitka/code_generation/SubscriptCodes.py +5 -13
  124. nuitka/code_generation/TupleCodes.py +1 -1
  125. nuitka/code_generation/c_types/CTypePyObjectPointers.py +7 -7
  126. nuitka/code_generation/templates/CodeTemplatesConstants.py +7 -5
  127. nuitka/code_generation/templates/CodeTemplatesLoader.py +2 -0
  128. nuitka/code_generation/templates/CodeTemplatesModules.py +80 -54
  129. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +1 -1
  130. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +59 -8
  131. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +5 -5
  132. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +2 -2
  133. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +2 -2
  134. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +57 -21
  135. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -1
  136. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +5 -5
  137. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +18 -18
  138. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +11 -11
  139. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +3 -3
  140. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +3 -3
  141. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +7 -7
  142. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +3 -3
  143. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +11 -11
  144. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +7 -7
  145. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +10 -10
  146. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +1 -1
  147. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +3 -3
  148. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +4 -1
  149. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +4 -1
  150. nuitka/finalizations/FinalizeMarkups.py +0 -18
  151. nuitka/freezer/DependsExe.py +9 -4
  152. nuitka/freezer/DllDependenciesMacOS.py +1 -1
  153. nuitka/freezer/DllDependenciesWin32.py +1 -1
  154. nuitka/freezer/ImportDetection.py +1 -0
  155. nuitka/freezer/IncludedDataFiles.py +13 -4
  156. nuitka/freezer/IncludedEntryPoints.py +16 -0
  157. nuitka/freezer/Onefile.py +0 -1
  158. nuitka/freezer/Standalone.py +38 -21
  159. nuitka/importing/ImportCache.py +3 -2
  160. nuitka/importing/Importing.py +16 -3
  161. nuitka/importing/StandardLibrary.py +4 -0
  162. nuitka/nodes/ChildrenHavingMixins.py +2 -0
  163. nuitka/nodes/ExpressionBasesGenerated.py +4 -0
  164. nuitka/nodes/HardImportNodesGenerated.py +83 -0
  165. nuitka/nodes/ModuleNodes.py +10 -2
  166. nuitka/nodes/OsSysNodes.py +16 -0
  167. nuitka/nodes/SubscriptNodes.py +3 -3
  168. nuitka/plugins/PluginBase.py +2 -0
  169. nuitka/plugins/standard/DataFilesPlugin.py +22 -1
  170. nuitka/plugins/standard/DillPlugin/DillPlugin.c +3 -3
  171. nuitka/plugins/standard/ImplicitImports.py +3 -0
  172. nuitka/plugins/standard/OptionsNannyPlugin.py +9 -41
  173. nuitka/plugins/standard/PkgResourcesPlugin.py +8 -2
  174. nuitka/plugins/standard/PySidePyQtPlugin.py +3 -0
  175. nuitka/plugins/standard/standard.nuitka-package.config.yml +28 -13
  176. nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +2 -2
  177. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +7 -2
  178. nuitka/specs/HardImportSpecs.py +3 -0
  179. nuitka/specs/ParameterSpecs.py +26 -15
  180. nuitka/tools/general/find_module/FindModuleCode.py +3 -2
  181. nuitka/tools/specialize/CTypeDescriptions.py +11 -9
  182. nuitka/tools/testing/Common.py +12 -5
  183. nuitka/tools/testing/SearchModes.py +5 -1
  184. nuitka/tools/testing/run_nuitka_tests/__main__.py +37 -0
  185. nuitka/tools/watch/GitHub.py +1 -7
  186. nuitka/tree/Building.py +9 -6
  187. nuitka/tree/ReformulationMatchStatements.py +51 -14
  188. nuitka/tree/TreeHelpers.py +8 -0
  189. nuitka/utils/CStrings.py +7 -0
  190. nuitka/utils/Execution.py +10 -1
  191. nuitka/utils/FileOperations.py +21 -13
  192. nuitka/utils/Importing.py +24 -0
  193. nuitka/utils/ReExecute.py +12 -3
  194. nuitka/utils/SharedLibraries.py +26 -1
  195. nuitka/utils/Yaml.py +9 -1
  196. {Nuitka_winsvc-2.2.3.data → Nuitka_winsvc-2.3.2.data}/scripts/nuitka-run.bat +0 -0
  197. {Nuitka_winsvc-2.2.3.data → Nuitka_winsvc-2.3.2.data}/scripts/nuitka.bat +0 -0
  198. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.2.dist-info}/LICENSE.txt +0 -0
  199. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.2.dist-info}/WHEEL +0 -0
  200. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.2.dist-info}/entry_points.txt +0 -0
  201. {Nuitka_winsvc-2.2.3.dist-info → Nuitka_winsvc-2.3.2.dist-info}/top_level.txt +0 -0
@@ -210,7 +210,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_OBJECT_FLOAT(PyObject **
210
210
  goto exit_inplace_result_object;
211
211
  }
212
212
 
213
- Py_DECREF(x);
213
+ Py_DECREF_IMMORTAL(x);
214
214
  }
215
215
 
216
216
  {
@@ -236,7 +236,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_OBJECT_FLOAT(PyObject **
236
236
  goto exit_inplace_result_object;
237
237
  }
238
238
 
239
- Py_DECREF(x);
239
+ Py_DECREF_IMMORTAL(x);
240
240
  }
241
241
 
242
242
  if (slot2 != NULL) {
@@ -247,7 +247,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_OBJECT_FLOAT(PyObject **
247
247
  goto exit_inplace_result_object;
248
248
  }
249
249
 
250
- Py_DECREF(x);
250
+ Py_DECREF_IMMORTAL(x);
251
251
  }
252
252
 
253
253
  #if PYTHON_VERSION < 0x300
@@ -568,7 +568,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_FLOAT_OBJECT(PyObject **
568
568
  goto exit_inplace_result_object;
569
569
  }
570
570
 
571
- Py_DECREF(x);
571
+ Py_DECREF_IMMORTAL(x);
572
572
  slot2 = NULL;
573
573
  }
574
574
  }
@@ -580,7 +580,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_FLOAT_OBJECT(PyObject **
580
580
  goto exit_inplace_result_object;
581
581
  }
582
582
 
583
- Py_DECREF(x);
583
+ Py_DECREF_IMMORTAL(x);
584
584
  }
585
585
 
586
586
  if (slot2 != NULL) {
@@ -591,7 +591,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_FLOAT_OBJECT(PyObject **
591
591
  goto exit_inplace_result_object;
592
592
  }
593
593
 
594
- Py_DECREF(x);
594
+ Py_DECREF_IMMORTAL(x);
595
595
  }
596
596
 
597
597
  #if PYTHON_VERSION < 0x300
@@ -942,7 +942,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_OBJECT_LONG(PyObject **o
942
942
  goto exit_inplace_result_object;
943
943
  }
944
944
 
945
- Py_DECREF(x);
945
+ Py_DECREF_IMMORTAL(x);
946
946
  }
947
947
 
948
948
  {
@@ -968,7 +968,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_OBJECT_LONG(PyObject **o
968
968
  goto exit_inplace_result_object;
969
969
  }
970
970
 
971
- Py_DECREF(x);
971
+ Py_DECREF_IMMORTAL(x);
972
972
  }
973
973
 
974
974
  if (slot2 != NULL) {
@@ -979,7 +979,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_OBJECT_LONG(PyObject **o
979
979
  goto exit_inplace_result_object;
980
980
  }
981
981
 
982
- Py_DECREF(x);
982
+ Py_DECREF_IMMORTAL(x);
983
983
  }
984
984
 
985
985
  #if PYTHON_VERSION < 0x300
@@ -1174,7 +1174,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_LONG_OBJECT(PyObject **o
1174
1174
  goto exit_inplace_result_object;
1175
1175
  }
1176
1176
 
1177
- Py_DECREF(x);
1177
+ Py_DECREF_IMMORTAL(x);
1178
1178
  slot2 = NULL;
1179
1179
  }
1180
1180
  }
@@ -1186,7 +1186,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_LONG_OBJECT(PyObject **o
1186
1186
  goto exit_inplace_result_object;
1187
1187
  }
1188
1188
 
1189
- Py_DECREF(x);
1189
+ Py_DECREF_IMMORTAL(x);
1190
1190
  }
1191
1191
 
1192
1192
  if (slot2 != NULL) {
@@ -1197,7 +1197,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_LONG_OBJECT(PyObject **o
1197
1197
  goto exit_inplace_result_object;
1198
1198
  }
1199
1199
 
1200
- Py_DECREF(x);
1200
+ Py_DECREF_IMMORTAL(x);
1201
1201
  }
1202
1202
 
1203
1203
  #if PYTHON_VERSION < 0x300
@@ -1502,7 +1502,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_OBJECT_INT(PyObject **op
1502
1502
  goto exit_inplace_result_object;
1503
1503
  }
1504
1504
 
1505
- Py_DECREF(x);
1505
+ Py_DECREF_IMMORTAL(x);
1506
1506
  }
1507
1507
 
1508
1508
  {
@@ -1528,7 +1528,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_OBJECT_INT(PyObject **op
1528
1528
  goto exit_inplace_result_object;
1529
1529
  }
1530
1530
 
1531
- Py_DECREF(x);
1531
+ Py_DECREF_IMMORTAL(x);
1532
1532
  }
1533
1533
 
1534
1534
  if (slot2 != NULL) {
@@ -1539,7 +1539,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_OBJECT_INT(PyObject **op
1539
1539
  goto exit_inplace_result_object;
1540
1540
  }
1541
1541
 
1542
- Py_DECREF(x);
1542
+ Py_DECREF_IMMORTAL(x);
1543
1543
  }
1544
1544
 
1545
1545
  #if PYTHON_VERSION < 0x300
@@ -1809,7 +1809,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_INT_OBJECT(PyObject **op
1809
1809
  goto exit_inplace_result_object;
1810
1810
  }
1811
1811
 
1812
- Py_DECREF(x);
1812
+ Py_DECREF_IMMORTAL(x);
1813
1813
  slot2 = NULL;
1814
1814
  }
1815
1815
  }
@@ -1821,7 +1821,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_INT_OBJECT(PyObject **op
1821
1821
  goto exit_inplace_result_object;
1822
1822
  }
1823
1823
 
1824
- Py_DECREF(x);
1824
+ Py_DECREF_IMMORTAL(x);
1825
1825
  }
1826
1826
 
1827
1827
  if (slot2 != NULL) {
@@ -1832,7 +1832,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_POW_INT_OBJECT(PyObject **op
1832
1832
  goto exit_inplace_result_object;
1833
1833
  }
1834
1834
 
1835
- Py_DECREF(x);
1835
+ Py_DECREF_IMMORTAL(x);
1836
1836
  }
1837
1837
 
1838
1838
  #if PYTHON_VERSION < 0x300
@@ -2093,7 +2093,7 @@ static inline bool _INPLACE_OPERATION_POW_FLOAT_LONG(PyObject **operand1, PyObje
2093
2093
  goto exit_inplace_result_object;
2094
2094
  }
2095
2095
 
2096
- Py_DECREF(x);
2096
+ Py_DECREF_IMMORTAL(x);
2097
2097
  }
2098
2098
 
2099
2099
  // Statically recognized that coercion is not possible with these types
@@ -2167,7 +2167,7 @@ static inline bool _INPLACE_OPERATION_POW_LONG_FLOAT(PyObject **operand1, PyObje
2167
2167
  goto exit_inplace_result_object;
2168
2168
  }
2169
2169
 
2170
- Py_DECREF(x);
2170
+ Py_DECREF_IMMORTAL(x);
2171
2171
  }
2172
2172
 
2173
2173
  // Statically recognized that coercion is not possible with these types
@@ -2236,7 +2236,7 @@ static inline bool _INPLACE_OPERATION_POW_FLOAT_INT(PyObject **operand1, PyObjec
2236
2236
  goto exit_inplace_result_object;
2237
2237
  }
2238
2238
 
2239
- Py_DECREF(x);
2239
+ Py_DECREF_IMMORTAL(x);
2240
2240
  }
2241
2241
 
2242
2242
  // Statically recognized that coercion is not possible with these types
@@ -2308,7 +2308,7 @@ static inline bool _INPLACE_OPERATION_POW_INT_FLOAT(PyObject **operand1, PyObjec
2308
2308
  goto exit_inplace_result_object;
2309
2309
  }
2310
2310
 
2311
- Py_DECREF(x);
2311
+ Py_DECREF_IMMORTAL(x);
2312
2312
  }
2313
2313
 
2314
2314
  // Statically recognized that coercion is not possible with these types
@@ -2374,7 +2374,7 @@ static inline bool _INPLACE_OPERATION_POW_LONG_INT(PyObject **operand1, PyObject
2374
2374
  goto exit_inplace_result_object;
2375
2375
  }
2376
2376
 
2377
- Py_DECREF(x);
2377
+ Py_DECREF_IMMORTAL(x);
2378
2378
  }
2379
2379
 
2380
2380
  // Statically recognized that coercion is not possible with these types
@@ -2446,7 +2446,7 @@ static inline bool _INPLACE_OPERATION_POW_INT_LONG(PyObject **operand1, PyObject
2446
2446
  goto exit_inplace_result_object;
2447
2447
  }
2448
2448
 
2449
- Py_DECREF(x);
2449
+ Py_DECREF_IMMORTAL(x);
2450
2450
  }
2451
2451
 
2452
2452
  // Statically recognized that coercion is not possible with these types
@@ -2634,7 +2634,7 @@ static inline bool _INPLACE_OPERATION_POW_OBJECT_OBJECT(PyObject **operand1, PyO
2634
2634
  goto exit_inplace_result_object;
2635
2635
  }
2636
2636
 
2637
- Py_DECREF(x);
2637
+ Py_DECREF_IMMORTAL(x);
2638
2638
  }
2639
2639
 
2640
2640
  {
@@ -2663,7 +2663,7 @@ static inline bool _INPLACE_OPERATION_POW_OBJECT_OBJECT(PyObject **operand1, PyO
2663
2663
  goto exit_inplace_result_object;
2664
2664
  }
2665
2665
 
2666
- Py_DECREF(x);
2666
+ Py_DECREF_IMMORTAL(x);
2667
2667
  slot2 = NULL;
2668
2668
  }
2669
2669
  }
@@ -2675,7 +2675,7 @@ static inline bool _INPLACE_OPERATION_POW_OBJECT_OBJECT(PyObject **operand1, PyO
2675
2675
  goto exit_inplace_result_object;
2676
2676
  }
2677
2677
 
2678
- Py_DECREF(x);
2678
+ Py_DECREF_IMMORTAL(x);
2679
2679
  }
2680
2680
 
2681
2681
  if (slot2 != NULL) {
@@ -2686,7 +2686,7 @@ static inline bool _INPLACE_OPERATION_POW_OBJECT_OBJECT(PyObject **operand1, PyO
2686
2686
  goto exit_inplace_result_object;
2687
2687
  }
2688
2688
 
2689
- Py_DECREF(x);
2689
+ Py_DECREF_IMMORTAL(x);
2690
2690
  }
2691
2691
 
2692
2692
  #if PYTHON_VERSION < 0x300
@@ -80,7 +80,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_OBJECT_LONG(PyObject
80
80
  goto exit_inplace_result_object;
81
81
  }
82
82
 
83
- Py_DECREF(x);
83
+ Py_DECREF_IMMORTAL(x);
84
84
  }
85
85
 
86
86
  {
@@ -106,7 +106,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_OBJECT_LONG(PyObject
106
106
  goto exit_inplace_result_object;
107
107
  }
108
108
 
109
- Py_DECREF(x);
109
+ Py_DECREF_IMMORTAL(x);
110
110
  }
111
111
 
112
112
  if (slot2 != NULL) {
@@ -117,7 +117,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_OBJECT_LONG(PyObject
117
117
  goto exit_inplace_result_object;
118
118
  }
119
119
 
120
- Py_DECREF(x);
120
+ Py_DECREF_IMMORTAL(x);
121
121
  }
122
122
 
123
123
  #if PYTHON_VERSION < 0x300
@@ -312,7 +312,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_LONG_OBJECT(PyObject
312
312
  goto exit_inplace_result_object;
313
313
  }
314
314
 
315
- Py_DECREF(x);
315
+ Py_DECREF_IMMORTAL(x);
316
316
  slot2 = NULL;
317
317
  }
318
318
  }
@@ -324,7 +324,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_LONG_OBJECT(PyObject
324
324
  goto exit_inplace_result_object;
325
325
  }
326
326
 
327
- Py_DECREF(x);
327
+ Py_DECREF_IMMORTAL(x);
328
328
  }
329
329
 
330
330
  if (slot2 != NULL) {
@@ -335,7 +335,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_LONG_OBJECT(PyObject
335
335
  goto exit_inplace_result_object;
336
336
  }
337
337
 
338
- Py_DECREF(x);
338
+ Py_DECREF_IMMORTAL(x);
339
339
  }
340
340
 
341
341
  #if PYTHON_VERSION < 0x300
@@ -608,7 +608,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_OBJECT_INT(PyObject *
608
608
  goto exit_inplace_result_object;
609
609
  }
610
610
 
611
- Py_DECREF(x);
611
+ Py_DECREF_IMMORTAL(x);
612
612
  }
613
613
 
614
614
  {
@@ -634,7 +634,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_OBJECT_INT(PyObject *
634
634
  goto exit_inplace_result_object;
635
635
  }
636
636
 
637
- Py_DECREF(x);
637
+ Py_DECREF_IMMORTAL(x);
638
638
  }
639
639
 
640
640
  if (slot2 != NULL) {
@@ -645,7 +645,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_OBJECT_INT(PyObject *
645
645
  goto exit_inplace_result_object;
646
646
  }
647
647
 
648
- Py_DECREF(x);
648
+ Py_DECREF_IMMORTAL(x);
649
649
  }
650
650
 
651
651
  #if PYTHON_VERSION < 0x300
@@ -883,7 +883,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_INT_OBJECT(PyObject *
883
883
  goto exit_inplace_result_object;
884
884
  }
885
885
 
886
- Py_DECREF(x);
886
+ Py_DECREF_IMMORTAL(x);
887
887
  slot2 = NULL;
888
888
  }
889
889
  }
@@ -895,7 +895,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_INT_OBJECT(PyObject *
895
895
  goto exit_inplace_result_object;
896
896
  }
897
897
 
898
- Py_DECREF(x);
898
+ Py_DECREF_IMMORTAL(x);
899
899
  }
900
900
 
901
901
  if (slot2 != NULL) {
@@ -906,7 +906,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_RSHIFT_INT_OBJECT(PyObject *
906
906
  goto exit_inplace_result_object;
907
907
  }
908
908
 
909
- Py_DECREF(x);
909
+ Py_DECREF_IMMORTAL(x);
910
910
  }
911
911
 
912
912
  #if PYTHON_VERSION < 0x300
@@ -1136,7 +1136,7 @@ static inline bool _INPLACE_OPERATION_RSHIFT_LONG_INT(PyObject **operand1, PyObj
1136
1136
  goto exit_inplace_result_object;
1137
1137
  }
1138
1138
 
1139
- Py_DECREF(x);
1139
+ Py_DECREF_IMMORTAL(x);
1140
1140
  }
1141
1141
 
1142
1142
  // Statically recognized that coercion is not possible with these types
@@ -1208,7 +1208,7 @@ static inline bool _INPLACE_OPERATION_RSHIFT_INT_LONG(PyObject **operand1, PyObj
1208
1208
  goto exit_inplace_result_object;
1209
1209
  }
1210
1210
 
1211
- Py_DECREF(x);
1211
+ Py_DECREF_IMMORTAL(x);
1212
1212
  }
1213
1213
 
1214
1214
  // Statically recognized that coercion is not possible with these types
@@ -1361,7 +1361,7 @@ static inline bool _INPLACE_OPERATION_RSHIFT_OBJECT_OBJECT(PyObject **operand1,
1361
1361
  goto exit_inplace_result_object;
1362
1362
  }
1363
1363
 
1364
- Py_DECREF(x);
1364
+ Py_DECREF_IMMORTAL(x);
1365
1365
  }
1366
1366
 
1367
1367
  {
@@ -1390,7 +1390,7 @@ static inline bool _INPLACE_OPERATION_RSHIFT_OBJECT_OBJECT(PyObject **operand1,
1390
1390
  goto exit_inplace_result_object;
1391
1391
  }
1392
1392
 
1393
- Py_DECREF(x);
1393
+ Py_DECREF_IMMORTAL(x);
1394
1394
  slot2 = NULL;
1395
1395
  }
1396
1396
  }
@@ -1402,7 +1402,7 @@ static inline bool _INPLACE_OPERATION_RSHIFT_OBJECT_OBJECT(PyObject **operand1,
1402
1402
  goto exit_inplace_result_object;
1403
1403
  }
1404
1404
 
1405
- Py_DECREF(x);
1405
+ Py_DECREF_IMMORTAL(x);
1406
1406
  }
1407
1407
 
1408
1408
  if (slot2 != NULL) {
@@ -1413,7 +1413,7 @@ static inline bool _INPLACE_OPERATION_RSHIFT_OBJECT_OBJECT(PyObject **operand1,
1413
1413
  goto exit_inplace_result_object;
1414
1414
  }
1415
1415
 
1416
- Py_DECREF(x);
1416
+ Py_DECREF_IMMORTAL(x);
1417
1417
  }
1418
1418
 
1419
1419
  #if PYTHON_VERSION < 0x300
@@ -115,7 +115,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_OBJECT_INT(PyObject **op
115
115
  goto exit_inplace_result_object;
116
116
  }
117
117
 
118
- Py_DECREF(x);
118
+ Py_DECREF_IMMORTAL(x);
119
119
  }
120
120
 
121
121
  {
@@ -141,7 +141,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_OBJECT_INT(PyObject **op
141
141
  goto exit_inplace_result_object;
142
142
  }
143
143
 
144
- Py_DECREF(x);
144
+ Py_DECREF_IMMORTAL(x);
145
145
  }
146
146
 
147
147
  if (slot2 != NULL) {
@@ -152,7 +152,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_OBJECT_INT(PyObject **op
152
152
  goto exit_inplace_result_object;
153
153
  }
154
154
 
155
- Py_DECREF(x);
155
+ Py_DECREF_IMMORTAL(x);
156
156
  }
157
157
 
158
158
  #if PYTHON_VERSION < 0x300
@@ -377,7 +377,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_INT_OBJECT(PyObject **op
377
377
  goto exit_inplace_result_object;
378
378
  }
379
379
 
380
- Py_DECREF(x);
380
+ Py_DECREF_IMMORTAL(x);
381
381
  slot2 = NULL;
382
382
  }
383
383
  }
@@ -389,7 +389,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_INT_OBJECT(PyObject **op
389
389
  goto exit_inplace_result_object;
390
390
  }
391
391
 
392
- Py_DECREF(x);
392
+ Py_DECREF_IMMORTAL(x);
393
393
  }
394
394
 
395
395
  if (slot2 != NULL) {
@@ -400,7 +400,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_INT_OBJECT(PyObject **op
400
400
  goto exit_inplace_result_object;
401
401
  }
402
402
 
403
- Py_DECREF(x);
403
+ Py_DECREF_IMMORTAL(x);
404
404
  }
405
405
 
406
406
  #if PYTHON_VERSION < 0x300
@@ -732,7 +732,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_OBJECT_LONG(PyObject **o
732
732
  goto exit_inplace_result_object;
733
733
  }
734
734
 
735
- Py_DECREF(x);
735
+ Py_DECREF_IMMORTAL(x);
736
736
  }
737
737
 
738
738
  {
@@ -758,7 +758,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_OBJECT_LONG(PyObject **o
758
758
  goto exit_inplace_result_object;
759
759
  }
760
760
 
761
- Py_DECREF(x);
761
+ Py_DECREF_IMMORTAL(x);
762
762
  }
763
763
 
764
764
  if (slot2 != NULL) {
@@ -769,7 +769,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_OBJECT_LONG(PyObject **o
769
769
  goto exit_inplace_result_object;
770
770
  }
771
771
 
772
- Py_DECREF(x);
772
+ Py_DECREF_IMMORTAL(x);
773
773
  }
774
774
 
775
775
  #if PYTHON_VERSION < 0x300
@@ -1042,7 +1042,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_LONG_OBJECT(PyObject **o
1042
1042
  goto exit_inplace_result_object;
1043
1043
  }
1044
1044
 
1045
- Py_DECREF(x);
1045
+ Py_DECREF_IMMORTAL(x);
1046
1046
  slot2 = NULL;
1047
1047
  }
1048
1048
  }
@@ -1054,7 +1054,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_LONG_OBJECT(PyObject **o
1054
1054
  goto exit_inplace_result_object;
1055
1055
  }
1056
1056
 
1057
- Py_DECREF(x);
1057
+ Py_DECREF_IMMORTAL(x);
1058
1058
  }
1059
1059
 
1060
1060
  if (slot2 != NULL) {
@@ -1065,7 +1065,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_LONG_OBJECT(PyObject **o
1065
1065
  goto exit_inplace_result_object;
1066
1066
  }
1067
1067
 
1068
- Py_DECREF(x);
1068
+ Py_DECREF_IMMORTAL(x);
1069
1069
  }
1070
1070
 
1071
1071
  #if PYTHON_VERSION < 0x300
@@ -1375,7 +1375,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_OBJECT_FLOAT(PyObject **
1375
1375
  goto exit_inplace_result_object;
1376
1376
  }
1377
1377
 
1378
- Py_DECREF(x);
1378
+ Py_DECREF_IMMORTAL(x);
1379
1379
  }
1380
1380
 
1381
1381
  {
@@ -1401,7 +1401,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_OBJECT_FLOAT(PyObject **
1401
1401
  goto exit_inplace_result_object;
1402
1402
  }
1403
1403
 
1404
- Py_DECREF(x);
1404
+ Py_DECREF_IMMORTAL(x);
1405
1405
  }
1406
1406
 
1407
1407
  if (slot2 != NULL) {
@@ -1412,7 +1412,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_OBJECT_FLOAT(PyObject **
1412
1412
  goto exit_inplace_result_object;
1413
1413
  }
1414
1414
 
1415
- Py_DECREF(x);
1415
+ Py_DECREF_IMMORTAL(x);
1416
1416
  }
1417
1417
 
1418
1418
  #if PYTHON_VERSION < 0x300
@@ -1610,7 +1610,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_FLOAT_OBJECT(PyObject **
1610
1610
  goto exit_inplace_result_object;
1611
1611
  }
1612
1612
 
1613
- Py_DECREF(x);
1613
+ Py_DECREF_IMMORTAL(x);
1614
1614
  slot2 = NULL;
1615
1615
  }
1616
1616
  }
@@ -1622,7 +1622,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_FLOAT_OBJECT(PyObject **
1622
1622
  goto exit_inplace_result_object;
1623
1623
  }
1624
1624
 
1625
- Py_DECREF(x);
1625
+ Py_DECREF_IMMORTAL(x);
1626
1626
  }
1627
1627
 
1628
1628
  if (slot2 != NULL) {
@@ -1633,7 +1633,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_SUB_FLOAT_OBJECT(PyObject **
1633
1633
  goto exit_inplace_result_object;
1634
1634
  }
1635
1635
 
1636
- Py_DECREF(x);
1636
+ Py_DECREF_IMMORTAL(x);
1637
1637
  }
1638
1638
 
1639
1639
  #if PYTHON_VERSION < 0x300
@@ -1823,7 +1823,7 @@ static inline bool _INPLACE_OPERATION_SUB_FLOAT_LONG(PyObject **operand1, PyObje
1823
1823
  goto exit_inplace_result_object;
1824
1824
  }
1825
1825
 
1826
- Py_DECREF(x);
1826
+ Py_DECREF_IMMORTAL(x);
1827
1827
  }
1828
1828
 
1829
1829
  // Statically recognized that coercion is not possible with these types
@@ -1897,7 +1897,7 @@ static inline bool _INPLACE_OPERATION_SUB_LONG_FLOAT(PyObject **operand1, PyObje
1897
1897
  goto exit_inplace_result_object;
1898
1898
  }
1899
1899
 
1900
- Py_DECREF(x);
1900
+ Py_DECREF_IMMORTAL(x);
1901
1901
  }
1902
1902
 
1903
1903
  // Statically recognized that coercion is not possible with these types
@@ -1966,7 +1966,7 @@ static inline bool _INPLACE_OPERATION_SUB_FLOAT_INT(PyObject **operand1, PyObjec
1966
1966
  goto exit_inplace_result_object;
1967
1967
  }
1968
1968
 
1969
- Py_DECREF(x);
1969
+ Py_DECREF_IMMORTAL(x);
1970
1970
  }
1971
1971
 
1972
1972
  // Statically recognized that coercion is not possible with these types
@@ -2038,7 +2038,7 @@ static inline bool _INPLACE_OPERATION_SUB_INT_FLOAT(PyObject **operand1, PyObjec
2038
2038
  goto exit_inplace_result_object;
2039
2039
  }
2040
2040
 
2041
- Py_DECREF(x);
2041
+ Py_DECREF_IMMORTAL(x);
2042
2042
  }
2043
2043
 
2044
2044
  // Statically recognized that coercion is not possible with these types
@@ -2104,7 +2104,7 @@ static inline bool _INPLACE_OPERATION_SUB_LONG_INT(PyObject **operand1, PyObject
2104
2104
  goto exit_inplace_result_object;
2105
2105
  }
2106
2106
 
2107
- Py_DECREF(x);
2107
+ Py_DECREF_IMMORTAL(x);
2108
2108
  }
2109
2109
 
2110
2110
  // Statically recognized that coercion is not possible with these types
@@ -2176,7 +2176,7 @@ static inline bool _INPLACE_OPERATION_SUB_INT_LONG(PyObject **operand1, PyObject
2176
2176
  goto exit_inplace_result_object;
2177
2177
  }
2178
2178
 
2179
- Py_DECREF(x);
2179
+ Py_DECREF_IMMORTAL(x);
2180
2180
  }
2181
2181
 
2182
2182
  // Statically recognized that coercion is not possible with these types
@@ -2568,7 +2568,7 @@ static inline bool _INPLACE_OPERATION_SUB_OBJECT_OBJECT(PyObject **operand1, PyO
2568
2568
  goto exit_inplace_result_object;
2569
2569
  }
2570
2570
 
2571
- Py_DECREF(x);
2571
+ Py_DECREF_IMMORTAL(x);
2572
2572
  }
2573
2573
 
2574
2574
  {
@@ -2597,7 +2597,7 @@ static inline bool _INPLACE_OPERATION_SUB_OBJECT_OBJECT(PyObject **operand1, PyO
2597
2597
  goto exit_inplace_result_object;
2598
2598
  }
2599
2599
 
2600
- Py_DECREF(x);
2600
+ Py_DECREF_IMMORTAL(x);
2601
2601
  slot2 = NULL;
2602
2602
  }
2603
2603
  }
@@ -2609,7 +2609,7 @@ static inline bool _INPLACE_OPERATION_SUB_OBJECT_OBJECT(PyObject **operand1, PyO
2609
2609
  goto exit_inplace_result_object;
2610
2610
  }
2611
2611
 
2612
- Py_DECREF(x);
2612
+ Py_DECREF_IMMORTAL(x);
2613
2613
  }
2614
2614
 
2615
2615
  if (slot2 != NULL) {
@@ -2620,7 +2620,7 @@ static inline bool _INPLACE_OPERATION_SUB_OBJECT_OBJECT(PyObject **operand1, PyO
2620
2620
  goto exit_inplace_result_object;
2621
2621
  }
2622
2622
 
2623
- Py_DECREF(x);
2623
+ Py_DECREF_IMMORTAL(x);
2624
2624
  }
2625
2625
 
2626
2626
  #if PYTHON_VERSION < 0x300