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
@@ -127,7 +127,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_INT(PyObject **op
127
127
  goto exit_inplace_result_object;
128
128
  }
129
129
 
130
- Py_DECREF(x);
130
+ Py_DECREF_IMMORTAL(x);
131
131
  }
132
132
 
133
133
  {
@@ -153,7 +153,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_INT(PyObject **op
153
153
  goto exit_inplace_result_object;
154
154
  }
155
155
 
156
- Py_DECREF(x);
156
+ Py_DECREF_IMMORTAL(x);
157
157
  }
158
158
 
159
159
  if (slot2 != NULL) {
@@ -164,7 +164,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_INT(PyObject **op
164
164
  goto exit_inplace_result_object;
165
165
  }
166
166
 
167
- Py_DECREF(x);
167
+ Py_DECREF_IMMORTAL(x);
168
168
  }
169
169
 
170
170
  #if PYTHON_VERSION < 0x300
@@ -400,7 +400,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_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
  slot2 = NULL;
405
405
  }
406
406
  }
@@ -412,7 +412,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_INT_OBJECT(PyObject **op
412
412
  goto exit_inplace_result_object;
413
413
  }
414
414
 
415
- Py_DECREF(x);
415
+ Py_DECREF_IMMORTAL(x);
416
416
  }
417
417
 
418
418
  if (slot2 != NULL) {
@@ -423,7 +423,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_INT_OBJECT(PyObject **op
423
423
  goto exit_inplace_result_object;
424
424
  }
425
425
 
426
- Py_DECREF(x);
426
+ Py_DECREF_IMMORTAL(x);
427
427
  }
428
428
 
429
429
  #if PYTHON_VERSION < 0x300
@@ -689,7 +689,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_LONG(PyObject **o
689
689
  goto exit_inplace_result_object;
690
690
  }
691
691
 
692
- Py_DECREF(x);
692
+ Py_DECREF_IMMORTAL(x);
693
693
  }
694
694
 
695
695
  {
@@ -715,7 +715,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_LONG(PyObject **o
715
715
  goto exit_inplace_result_object;
716
716
  }
717
717
 
718
- Py_DECREF(x);
718
+ Py_DECREF_IMMORTAL(x);
719
719
  }
720
720
 
721
721
  if (slot2 != NULL) {
@@ -726,7 +726,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_LONG(PyObject **o
726
726
  goto exit_inplace_result_object;
727
727
  }
728
728
 
729
- Py_DECREF(x);
729
+ Py_DECREF_IMMORTAL(x);
730
730
  }
731
731
 
732
732
  #if PYTHON_VERSION < 0x300
@@ -921,7 +921,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_LONG_OBJECT(PyObject **o
921
921
  goto exit_inplace_result_object;
922
922
  }
923
923
 
924
- Py_DECREF(x);
924
+ Py_DECREF_IMMORTAL(x);
925
925
  slot2 = NULL;
926
926
  }
927
927
  }
@@ -933,7 +933,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_LONG_OBJECT(PyObject **o
933
933
  goto exit_inplace_result_object;
934
934
  }
935
935
 
936
- Py_DECREF(x);
936
+ Py_DECREF_IMMORTAL(x);
937
937
  }
938
938
 
939
939
  if (slot2 != NULL) {
@@ -944,7 +944,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_LONG_OBJECT(PyObject **o
944
944
  goto exit_inplace_result_object;
945
945
  }
946
946
 
947
- Py_DECREF(x);
947
+ Py_DECREF_IMMORTAL(x);
948
948
  }
949
949
 
950
950
  #if PYTHON_VERSION < 0x300
@@ -1196,7 +1196,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_FLOAT(PyObject **
1196
1196
  goto exit_inplace_result_object;
1197
1197
  }
1198
1198
 
1199
- Py_DECREF(x);
1199
+ Py_DECREF_IMMORTAL(x);
1200
1200
  }
1201
1201
 
1202
1202
  {
@@ -1222,7 +1222,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_FLOAT(PyObject **
1222
1222
  goto exit_inplace_result_object;
1223
1223
  }
1224
1224
 
1225
- Py_DECREF(x);
1225
+ Py_DECREF_IMMORTAL(x);
1226
1226
  }
1227
1227
 
1228
1228
  if (slot2 != NULL) {
@@ -1233,7 +1233,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_OBJECT_FLOAT(PyObject **
1233
1233
  goto exit_inplace_result_object;
1234
1234
  }
1235
1235
 
1236
- Py_DECREF(x);
1236
+ Py_DECREF_IMMORTAL(x);
1237
1237
  }
1238
1238
 
1239
1239
  #if PYTHON_VERSION < 0x300
@@ -1450,7 +1450,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_FLOAT_OBJECT(PyObject **
1450
1450
  goto exit_inplace_result_object;
1451
1451
  }
1452
1452
 
1453
- Py_DECREF(x);
1453
+ Py_DECREF_IMMORTAL(x);
1454
1454
  slot2 = NULL;
1455
1455
  }
1456
1456
  }
@@ -1462,7 +1462,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_FLOAT_OBJECT(PyObject **
1462
1462
  goto exit_inplace_result_object;
1463
1463
  }
1464
1464
 
1465
- Py_DECREF(x);
1465
+ Py_DECREF_IMMORTAL(x);
1466
1466
  }
1467
1467
 
1468
1468
  if (slot2 != NULL) {
@@ -1473,7 +1473,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_FLOAT_OBJECT(PyObject **
1473
1473
  goto exit_inplace_result_object;
1474
1474
  }
1475
1475
 
1476
- Py_DECREF(x);
1476
+ Py_DECREF_IMMORTAL(x);
1477
1477
  }
1478
1478
 
1479
1479
  #if PYTHON_VERSION < 0x300
@@ -1682,7 +1682,7 @@ static inline bool _INPLACE_OPERATION_MOD_FLOAT_LONG(PyObject **operand1, PyObje
1682
1682
  goto exit_inplace_result_object;
1683
1683
  }
1684
1684
 
1685
- Py_DECREF(x);
1685
+ Py_DECREF_IMMORTAL(x);
1686
1686
  }
1687
1687
 
1688
1688
  // Statically recognized that coercion is not possible with these types
@@ -1756,7 +1756,7 @@ static inline bool _INPLACE_OPERATION_MOD_LONG_FLOAT(PyObject **operand1, PyObje
1756
1756
  goto exit_inplace_result_object;
1757
1757
  }
1758
1758
 
1759
- Py_DECREF(x);
1759
+ Py_DECREF_IMMORTAL(x);
1760
1760
  }
1761
1761
 
1762
1762
  // Statically recognized that coercion is not possible with these types
@@ -1825,7 +1825,7 @@ static inline bool _INPLACE_OPERATION_MOD_FLOAT_INT(PyObject **operand1, PyObjec
1825
1825
  goto exit_inplace_result_object;
1826
1826
  }
1827
1827
 
1828
- Py_DECREF(x);
1828
+ Py_DECREF_IMMORTAL(x);
1829
1829
  }
1830
1830
 
1831
1831
  // Statically recognized that coercion is not possible with these types
@@ -1897,7 +1897,7 @@ static inline bool _INPLACE_OPERATION_MOD_INT_FLOAT(PyObject **operand1, PyObjec
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
@@ -1963,7 +1963,7 @@ static inline bool _INPLACE_OPERATION_MOD_LONG_INT(PyObject **operand1, PyObject
1963
1963
  goto exit_inplace_result_object;
1964
1964
  }
1965
1965
 
1966
- Py_DECREF(x);
1966
+ Py_DECREF_IMMORTAL(x);
1967
1967
  }
1968
1968
 
1969
1969
  // Statically recognized that coercion is not possible with these types
@@ -2035,7 +2035,7 @@ static inline bool _INPLACE_OPERATION_MOD_INT_LONG(PyObject **operand1, PyObject
2035
2035
  goto exit_inplace_result_object;
2036
2036
  }
2037
2037
 
2038
- Py_DECREF(x);
2038
+ Py_DECREF_IMMORTAL(x);
2039
2039
  }
2040
2040
 
2041
2041
  // Statically recognized that coercion is not possible with these types
@@ -2264,7 +2264,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_INT(PyObject **operand1, PyObject
2264
2264
  goto exit_inplace_result_object;
2265
2265
  }
2266
2266
 
2267
- Py_DECREF(x);
2267
+ Py_DECREF_IMMORTAL(x);
2268
2268
  }
2269
2269
 
2270
2270
  if (slot2 != NULL) {
@@ -2275,7 +2275,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_INT(PyObject **operand1, PyObject
2275
2275
  goto exit_inplace_result_object;
2276
2276
  }
2277
2277
 
2278
- Py_DECREF(x);
2278
+ Py_DECREF_IMMORTAL(x);
2279
2279
  }
2280
2280
 
2281
2281
  // Statically recognized that coercion is not possible with these types
@@ -2347,7 +2347,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_LONG(PyObject **operand1, PyObject
2347
2347
  goto exit_inplace_result_object;
2348
2348
  }
2349
2349
 
2350
- Py_DECREF(x);
2350
+ Py_DECREF_IMMORTAL(x);
2351
2351
  }
2352
2352
 
2353
2353
  if (slot2 != NULL) {
@@ -2358,7 +2358,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_LONG(PyObject **operand1, PyObject
2358
2358
  goto exit_inplace_result_object;
2359
2359
  }
2360
2360
 
2361
- Py_DECREF(x);
2361
+ Py_DECREF_IMMORTAL(x);
2362
2362
  }
2363
2363
 
2364
2364
  // Statically recognized that coercion is not possible with these types
@@ -2430,7 +2430,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_FLOAT(PyObject **operand1, PyObjec
2430
2430
  goto exit_inplace_result_object;
2431
2431
  }
2432
2432
 
2433
- Py_DECREF(x);
2433
+ Py_DECREF_IMMORTAL(x);
2434
2434
  }
2435
2435
 
2436
2436
  if (slot2 != NULL) {
@@ -2441,7 +2441,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_FLOAT(PyObject **operand1, PyObjec
2441
2441
  goto exit_inplace_result_object;
2442
2442
  }
2443
2443
 
2444
- Py_DECREF(x);
2444
+ Py_DECREF_IMMORTAL(x);
2445
2445
  }
2446
2446
 
2447
2447
  // Statically recognized that coercion is not possible with these types
@@ -2553,7 +2553,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_UNICODE(PyObject **operand1, PyObj
2553
2553
  goto exit_inplace_result_object;
2554
2554
  }
2555
2555
 
2556
- Py_DECREF(x);
2556
+ Py_DECREF_IMMORTAL(x);
2557
2557
  }
2558
2558
 
2559
2559
  if (slot2 != NULL) {
@@ -2564,7 +2564,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_UNICODE(PyObject **operand1, PyObj
2564
2564
  goto exit_inplace_result_object;
2565
2565
  }
2566
2566
 
2567
- Py_DECREF(x);
2567
+ Py_DECREF_IMMORTAL(x);
2568
2568
  }
2569
2569
 
2570
2570
  // Statically recognized that coercion is not possible with these types
@@ -2629,7 +2629,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_TUPLE(PyObject **operand1, PyObjec
2629
2629
  goto exit_inplace_result_object;
2630
2630
  }
2631
2631
 
2632
- Py_DECREF(x);
2632
+ Py_DECREF_IMMORTAL(x);
2633
2633
  }
2634
2634
 
2635
2635
  // Statically recognized that coercion is not possible with these types
@@ -2694,7 +2694,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_LIST(PyObject **operand1, PyObject
2694
2694
  goto exit_inplace_result_object;
2695
2695
  }
2696
2696
 
2697
- Py_DECREF(x);
2697
+ Py_DECREF_IMMORTAL(x);
2698
2698
  }
2699
2699
 
2700
2700
  // Statically recognized that coercion is not possible with these types
@@ -2759,7 +2759,7 @@ static inline bool _INPLACE_OPERATION_MOD_STR_DICT(PyObject **operand1, PyObject
2759
2759
  goto exit_inplace_result_object;
2760
2760
  }
2761
2761
 
2762
- Py_DECREF(x);
2762
+ Py_DECREF_IMMORTAL(x);
2763
2763
  }
2764
2764
 
2765
2765
  // Statically recognized that coercion is not possible with these types
@@ -2833,7 +2833,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_STR_OBJECT(PyObject **op
2833
2833
  goto exit_inplace_result_object;
2834
2834
  }
2835
2835
 
2836
- Py_DECREF(x);
2836
+ Py_DECREF_IMMORTAL(x);
2837
2837
  slot2 = NULL;
2838
2838
  }
2839
2839
  }
@@ -2845,7 +2845,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_STR_OBJECT(PyObject **op
2845
2845
  goto exit_inplace_result_object;
2846
2846
  }
2847
2847
 
2848
- Py_DECREF(x);
2848
+ Py_DECREF_IMMORTAL(x);
2849
2849
  }
2850
2850
 
2851
2851
  if (slot2 != NULL) {
@@ -2856,7 +2856,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_STR_OBJECT(PyObject **op
2856
2856
  goto exit_inplace_result_object;
2857
2857
  }
2858
2858
 
2859
- Py_DECREF(x);
2859
+ Py_DECREF_IMMORTAL(x);
2860
2860
  }
2861
2861
 
2862
2862
  #if PYTHON_VERSION < 0x300
@@ -3005,7 +3005,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_INT(PyObject **operand1, PyObj
3005
3005
  goto exit_inplace_result_object;
3006
3006
  }
3007
3007
 
3008
- Py_DECREF(x);
3008
+ Py_DECREF_IMMORTAL(x);
3009
3009
  }
3010
3010
 
3011
3011
  if (slot2 != NULL) {
@@ -3016,7 +3016,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_INT(PyObject **operand1, PyObj
3016
3016
  goto exit_inplace_result_object;
3017
3017
  }
3018
3018
 
3019
- Py_DECREF(x);
3019
+ Py_DECREF_IMMORTAL(x);
3020
3020
  }
3021
3021
 
3022
3022
  // Statically recognized that coercion is not possible with these types
@@ -3088,7 +3088,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_LONG(PyObject **operand1, PyOb
3088
3088
  goto exit_inplace_result_object;
3089
3089
  }
3090
3090
 
3091
- Py_DECREF(x);
3091
+ Py_DECREF_IMMORTAL(x);
3092
3092
  }
3093
3093
 
3094
3094
  if (slot2 != NULL) {
@@ -3099,7 +3099,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_LONG(PyObject **operand1, PyOb
3099
3099
  goto exit_inplace_result_object;
3100
3100
  }
3101
3101
 
3102
- Py_DECREF(x);
3102
+ Py_DECREF_IMMORTAL(x);
3103
3103
  }
3104
3104
 
3105
3105
  // Statically recognized that coercion is not possible with these types
@@ -3173,7 +3173,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_FLOAT(PyObject **operand1, PyO
3173
3173
  goto exit_inplace_result_object;
3174
3174
  }
3175
3175
 
3176
- Py_DECREF(x);
3176
+ Py_DECREF_IMMORTAL(x);
3177
3177
  }
3178
3178
 
3179
3179
  if (slot2 != NULL) {
@@ -3184,7 +3184,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_FLOAT(PyObject **operand1, PyO
3184
3184
  goto exit_inplace_result_object;
3185
3185
  }
3186
3186
 
3187
- Py_DECREF(x);
3187
+ Py_DECREF_IMMORTAL(x);
3188
3188
  }
3189
3189
 
3190
3190
  // Statically recognized that coercion is not possible with these types
@@ -3259,7 +3259,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_STR(PyObject **operand1, PyObj
3259
3259
  goto exit_inplace_result_object;
3260
3260
  }
3261
3261
 
3262
- Py_DECREF(x);
3262
+ Py_DECREF_IMMORTAL(x);
3263
3263
  }
3264
3264
 
3265
3265
  if (slot2 != NULL) {
@@ -3270,7 +3270,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_STR(PyObject **operand1, PyObj
3270
3270
  goto exit_inplace_result_object;
3271
3271
  }
3272
3272
 
3273
- Py_DECREF(x);
3273
+ Py_DECREF_IMMORTAL(x);
3274
3274
  }
3275
3275
 
3276
3276
  // Statically recognized that coercion is not possible with these types
@@ -3342,7 +3342,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_BYTES(PyObject **operand1, PyO
3342
3342
  goto exit_inplace_result_object;
3343
3343
  }
3344
3344
 
3345
- Py_DECREF(x);
3345
+ Py_DECREF_IMMORTAL(x);
3346
3346
  }
3347
3347
 
3348
3348
  if (slot2 != NULL) {
@@ -3353,7 +3353,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_BYTES(PyObject **operand1, PyO
3353
3353
  goto exit_inplace_result_object;
3354
3354
  }
3355
3355
 
3356
- Py_DECREF(x);
3356
+ Py_DECREF_IMMORTAL(x);
3357
3357
  }
3358
3358
 
3359
3359
  // Statically recognized that coercion is not possible with these types
@@ -3456,7 +3456,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_TUPLE(PyObject **operand1, PyO
3456
3456
  goto exit_inplace_result_object;
3457
3457
  }
3458
3458
 
3459
- Py_DECREF(x);
3459
+ Py_DECREF_IMMORTAL(x);
3460
3460
  }
3461
3461
 
3462
3462
  // Statically recognized that coercion is not possible with these types
@@ -3523,7 +3523,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_LIST(PyObject **operand1, PyOb
3523
3523
  goto exit_inplace_result_object;
3524
3524
  }
3525
3525
 
3526
- Py_DECREF(x);
3526
+ Py_DECREF_IMMORTAL(x);
3527
3527
  }
3528
3528
 
3529
3529
  // Statically recognized that coercion is not possible with these types
@@ -3590,7 +3590,7 @@ static inline bool _INPLACE_OPERATION_MOD_UNICODE_DICT(PyObject **operand1, PyOb
3590
3590
  goto exit_inplace_result_object;
3591
3591
  }
3592
3592
 
3593
- Py_DECREF(x);
3593
+ Py_DECREF_IMMORTAL(x);
3594
3594
  }
3595
3595
 
3596
3596
  // Statically recognized that coercion is not possible with these types
@@ -3666,7 +3666,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_UNICODE_OBJECT(PyObject
3666
3666
  goto exit_inplace_result_object;
3667
3667
  }
3668
3668
 
3669
- Py_DECREF(x);
3669
+ Py_DECREF_IMMORTAL(x);
3670
3670
  slot2 = NULL;
3671
3671
  }
3672
3672
  }
@@ -3678,7 +3678,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_UNICODE_OBJECT(PyObject
3678
3678
  goto exit_inplace_result_object;
3679
3679
  }
3680
3680
 
3681
- Py_DECREF(x);
3681
+ Py_DECREF_IMMORTAL(x);
3682
3682
  }
3683
3683
 
3684
3684
  if (slot2 != NULL) {
@@ -3689,7 +3689,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_UNICODE_OBJECT(PyObject
3689
3689
  goto exit_inplace_result_object;
3690
3690
  }
3691
3691
 
3692
- Py_DECREF(x);
3692
+ Py_DECREF_IMMORTAL(x);
3693
3693
  }
3694
3694
 
3695
3695
  #if PYTHON_VERSION < 0x300
@@ -3841,7 +3841,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_LONG(PyObject **operand1, PyObje
3841
3841
  goto exit_inplace_result_object;
3842
3842
  }
3843
3843
 
3844
- Py_DECREF(x);
3844
+ Py_DECREF_IMMORTAL(x);
3845
3845
  }
3846
3846
 
3847
3847
  if (slot2 != NULL) {
@@ -3852,7 +3852,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_LONG(PyObject **operand1, PyObje
3852
3852
  goto exit_inplace_result_object;
3853
3853
  }
3854
3854
 
3855
- Py_DECREF(x);
3855
+ Py_DECREF_IMMORTAL(x);
3856
3856
  }
3857
3857
 
3858
3858
  // Statically recognized that coercion is not possible with these types
@@ -3924,7 +3924,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_FLOAT(PyObject **operand1, PyObj
3924
3924
  goto exit_inplace_result_object;
3925
3925
  }
3926
3926
 
3927
- Py_DECREF(x);
3927
+ Py_DECREF_IMMORTAL(x);
3928
3928
  }
3929
3929
 
3930
3930
  if (slot2 != NULL) {
@@ -3935,7 +3935,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_FLOAT(PyObject **operand1, PyObj
3935
3935
  goto exit_inplace_result_object;
3936
3936
  }
3937
3937
 
3938
- Py_DECREF(x);
3938
+ Py_DECREF_IMMORTAL(x);
3939
3939
  }
3940
3940
 
3941
3941
  // Statically recognized that coercion is not possible with these types
@@ -4048,7 +4048,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_UNICODE(PyObject **operand1, PyO
4048
4048
  goto exit_inplace_result_object;
4049
4049
  }
4050
4050
 
4051
- Py_DECREF(x);
4051
+ Py_DECREF_IMMORTAL(x);
4052
4052
  }
4053
4053
 
4054
4054
  if (slot2 != NULL) {
@@ -4059,7 +4059,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_UNICODE(PyObject **operand1, PyO
4059
4059
  goto exit_inplace_result_object;
4060
4060
  }
4061
4061
 
4062
- Py_DECREF(x);
4062
+ Py_DECREF_IMMORTAL(x);
4063
4063
  }
4064
4064
 
4065
4065
  // Statically recognized that coercion is not possible with these types
@@ -4124,7 +4124,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_TUPLE(PyObject **operand1, PyObj
4124
4124
  goto exit_inplace_result_object;
4125
4125
  }
4126
4126
 
4127
- Py_DECREF(x);
4127
+ Py_DECREF_IMMORTAL(x);
4128
4128
  }
4129
4129
 
4130
4130
  // Statically recognized that coercion is not possible with these types
@@ -4189,7 +4189,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_LIST(PyObject **operand1, PyObje
4189
4189
  goto exit_inplace_result_object;
4190
4190
  }
4191
4191
 
4192
- Py_DECREF(x);
4192
+ Py_DECREF_IMMORTAL(x);
4193
4193
  }
4194
4194
 
4195
4195
  // Statically recognized that coercion is not possible with these types
@@ -4254,7 +4254,7 @@ static inline bool _INPLACE_OPERATION_MOD_BYTES_DICT(PyObject **operand1, PyObje
4254
4254
  goto exit_inplace_result_object;
4255
4255
  }
4256
4256
 
4257
- Py_DECREF(x);
4257
+ Py_DECREF_IMMORTAL(x);
4258
4258
  }
4259
4259
 
4260
4260
  // Statically recognized that coercion is not possible with these types
@@ -4328,7 +4328,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_BYTES_OBJECT(PyObject **
4328
4328
  goto exit_inplace_result_object;
4329
4329
  }
4330
4330
 
4331
- Py_DECREF(x);
4331
+ Py_DECREF_IMMORTAL(x);
4332
4332
  slot2 = NULL;
4333
4333
  }
4334
4334
  }
@@ -4340,7 +4340,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_BYTES_OBJECT(PyObject **
4340
4340
  goto exit_inplace_result_object;
4341
4341
  }
4342
4342
 
4343
- Py_DECREF(x);
4343
+ Py_DECREF_IMMORTAL(x);
4344
4344
  }
4345
4345
 
4346
4346
  if (slot2 != NULL) {
@@ -4351,7 +4351,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_MOD_BYTES_OBJECT(PyObject **
4351
4351
  goto exit_inplace_result_object;
4352
4352
  }
4353
4353
 
4354
- Py_DECREF(x);
4354
+ Py_DECREF_IMMORTAL(x);
4355
4355
  }
4356
4356
 
4357
4357
  #if PYTHON_VERSION < 0x300
@@ -4584,7 +4584,7 @@ static inline bool _INPLACE_OPERATION_MOD_OBJECT_OBJECT(PyObject **operand1, PyO
4584
4584
  goto exit_inplace_result_object;
4585
4585
  }
4586
4586
 
4587
- Py_DECREF(x);
4587
+ Py_DECREF_IMMORTAL(x);
4588
4588
  }
4589
4589
 
4590
4590
  {
@@ -4613,7 +4613,7 @@ static inline bool _INPLACE_OPERATION_MOD_OBJECT_OBJECT(PyObject **operand1, PyO
4613
4613
  goto exit_inplace_result_object;
4614
4614
  }
4615
4615
 
4616
- Py_DECREF(x);
4616
+ Py_DECREF_IMMORTAL(x);
4617
4617
  slot2 = NULL;
4618
4618
  }
4619
4619
  }
@@ -4625,7 +4625,7 @@ static inline bool _INPLACE_OPERATION_MOD_OBJECT_OBJECT(PyObject **operand1, PyO
4625
4625
  goto exit_inplace_result_object;
4626
4626
  }
4627
4627
 
4628
- Py_DECREF(x);
4628
+ Py_DECREF_IMMORTAL(x);
4629
4629
  }
4630
4630
 
4631
4631
  if (slot2 != NULL) {
@@ -4636,7 +4636,7 @@ static inline bool _INPLACE_OPERATION_MOD_OBJECT_OBJECT(PyObject **operand1, PyO
4636
4636
  goto exit_inplace_result_object;
4637
4637
  }
4638
4638
 
4639
- Py_DECREF(x);
4639
+ Py_DECREF_IMMORTAL(x);
4640
4640
  }
4641
4641
 
4642
4642
  #if PYTHON_VERSION < 0x300