Nuitka-winsvc 2.4.11__cp311-cp311-win_amd64.whl → 2.5.6__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 (304) hide show
  1. {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/METADATA +56 -109
  2. {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/RECORD +304 -280
  3. {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/WHEEL +1 -1
  4. nuitka/Builtins.py +31 -0
  5. nuitka/HardImportRegistry.py +8 -0
  6. nuitka/MainControl.py +9 -4
  7. nuitka/OptionParsing.py +108 -54
  8. nuitka/Options.py +69 -13
  9. nuitka/OutputDirectories.py +7 -2
  10. nuitka/PostProcessing.py +69 -38
  11. nuitka/Progress.py +16 -1
  12. nuitka/PythonVersions.py +2 -1
  13. nuitka/Serialization.py +4 -2
  14. nuitka/Tracing.py +69 -1
  15. nuitka/Version.py +2 -2
  16. nuitka/build/Backend.scons +45 -5
  17. nuitka/build/CCompilerVersion.scons +6 -0
  18. nuitka/build/Onefile.scons +6 -0
  19. nuitka/build/SconsCaching.py +4 -0
  20. nuitka/build/SconsCompilerSettings.py +14 -3
  21. nuitka/build/SconsInterface.py +3 -0
  22. nuitka/build/SconsUtils.py +5 -0
  23. nuitka/build/include/nuitka/allocator.h +124 -1
  24. nuitka/build/include/nuitka/calling.h +6 -6
  25. nuitka/build/include/nuitka/compiled_asyncgen.h +10 -7
  26. nuitka/build/include/nuitka/compiled_frame.h +2 -1
  27. nuitka/build/include/nuitka/constants.h +8 -0
  28. nuitka/build/include/nuitka/debug_settings.h +60 -0
  29. nuitka/build/include/nuitka/exceptions.h +264 -121
  30. nuitka/build/include/nuitka/helper/attributes.h +0 -4
  31. nuitka/build/include/nuitka/helper/calling_generated.h +52 -52
  32. nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
  33. nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
  34. nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
  35. nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
  36. nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
  37. nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
  38. nuitka/build/include/nuitka/helper/dictionaries.h +75 -31
  39. nuitka/build/include/nuitka/helper/ints.h +86 -37
  40. nuitka/build/include/nuitka/helper/iterators.h +82 -34
  41. nuitka/build/include/nuitka/helper/operations.h +3 -0
  42. nuitka/build/include/nuitka/helper/operations_binary_add.h +6 -0
  43. nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
  44. nuitka/build/include/nuitka/helper/operations_binary_sub.h +6 -0
  45. nuitka/build/include/nuitka/helper/operations_inplace_add.h +3 -0
  46. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +3 -0
  47. nuitka/build/include/nuitka/helper/raising.h +47 -28
  48. nuitka/build/include/nuitka/helper/richcomparisons.h +7 -0
  49. nuitka/build/include/nuitka/helper/tuples.h +12 -0
  50. nuitka/build/include/nuitka/helpers.h +12 -2
  51. nuitka/build/include/nuitka/prelude.h +36 -25
  52. nuitka/build/include/nuitka/printing.h +9 -7
  53. nuitka/build/include/nuitka/threading.h +15 -1
  54. nuitka/build/include/nuitka/type_aliases.h +3 -0
  55. nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
  56. nuitka/build/inline_copy/stubgen/six.py +998 -0
  57. nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
  58. nuitka/build/static_src/CompiledAsyncgenType.c +45 -39
  59. nuitka/build/static_src/CompiledCellType.c +6 -4
  60. nuitka/build/static_src/CompiledCodeHelpers.c +106 -40
  61. nuitka/build/static_src/CompiledCoroutineType.c +41 -31
  62. nuitka/build/static_src/CompiledFrameType.c +110 -79
  63. nuitka/build/static_src/CompiledFunctionType.c +173 -151
  64. nuitka/build/static_src/CompiledGeneratorType.c +51 -49
  65. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +433 -46
  66. nuitka/build/static_src/CompiledMethodType.c +6 -12
  67. nuitka/build/static_src/HelpersAllocator.c +266 -28
  68. nuitka/build/static_src/HelpersAttributes.c +0 -21
  69. nuitka/build/static_src/HelpersBuiltin.c +23 -14
  70. nuitka/build/static_src/HelpersCalling.c +7 -7
  71. nuitka/build/static_src/HelpersCallingGenerated.c +70 -70
  72. nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
  73. nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
  74. nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
  75. nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
  76. nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
  77. nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
  78. nuitka/build/static_src/HelpersComparisonEq.c +18 -4
  79. nuitka/build/static_src/HelpersComparisonGe.c +18 -4
  80. nuitka/build/static_src/HelpersComparisonGt.c +18 -4
  81. nuitka/build/static_src/HelpersComparisonLe.c +18 -4
  82. nuitka/build/static_src/HelpersComparisonLt.c +18 -4
  83. nuitka/build/static_src/HelpersComparisonNe.c +18 -4
  84. nuitka/build/static_src/HelpersConsole.c +34 -8
  85. nuitka/build/static_src/HelpersConstantsBlob.c +4 -2
  86. nuitka/build/static_src/HelpersDeepcopy.c +1 -0
  87. nuitka/build/static_src/HelpersDictionaries.c +195 -36
  88. nuitka/build/static_src/HelpersDictionariesGenerated.c +12 -107
  89. nuitka/build/static_src/HelpersExceptions.c +24 -50
  90. nuitka/build/static_src/HelpersFiles.c +79 -5
  91. nuitka/build/static_src/HelpersImport.c +13 -9
  92. nuitka/build/static_src/HelpersImportHard.c +23 -46
  93. nuitka/build/static_src/HelpersLists.c +98 -9
  94. nuitka/build/static_src/HelpersOperationBinaryAdd.c +224 -6
  95. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +3 -0
  96. nuitka/build/static_src/HelpersOperationBinaryBitand.c +5 -5
  97. nuitka/build/static_src/HelpersOperationBinaryBitor.c +5 -5
  98. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +5 -5
  99. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +8 -2
  100. nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
  101. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +14 -8
  102. nuitka/build/static_src/HelpersOperationBinaryLshift.c +36 -36
  103. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +1 -0
  104. nuitka/build/static_src/HelpersOperationBinaryMod.c +22 -10
  105. nuitka/build/static_src/HelpersOperationBinaryMult.c +17 -7
  106. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +14 -8
  107. nuitka/build/static_src/HelpersOperationBinaryPow.c +24 -24
  108. nuitka/build/static_src/HelpersOperationBinaryRshift.c +4 -4
  109. nuitka/build/static_src/HelpersOperationBinarySub.c +229 -8
  110. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +8 -2
  111. nuitka/build/static_src/HelpersOperationInplaceAdd.c +162 -10
  112. nuitka/build/static_src/HelpersOperationInplaceBitand.c +5 -5
  113. nuitka/build/static_src/HelpersOperationInplaceBitor.c +5 -5
  114. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +5 -5
  115. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +11 -6
  116. nuitka/build/static_src/HelpersOperationInplaceLshift.c +20 -20
  117. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +1 -0
  118. nuitka/build/static_src/HelpersOperationInplaceMod.c +11 -6
  119. nuitka/build/static_src/HelpersOperationInplaceMult.c +11 -6
  120. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +11 -6
  121. nuitka/build/static_src/HelpersOperationInplacePow.c +20 -20
  122. nuitka/build/static_src/HelpersOperationInplaceRshift.c +4 -4
  123. nuitka/build/static_src/HelpersOperationInplaceSub.c +163 -10
  124. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +6 -1
  125. nuitka/build/static_src/HelpersProfiling.c +1 -1
  126. nuitka/build/static_src/HelpersRaising.c +255 -310
  127. nuitka/build/static_src/HelpersStrings.c +1 -1
  128. nuitka/build/static_src/HelpersTuples.c +2 -2
  129. nuitka/build/static_src/HelpersTypes.c +98 -2
  130. nuitka/build/static_src/MainProgram.c +132 -28
  131. nuitka/build/static_src/MetaPathBasedLoader.c +18 -19
  132. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +134 -11
  133. nuitka/build/static_src/OnefileBootstrap.c +6 -1
  134. nuitka/code_generation/AsyncgenCodes.py +2 -6
  135. nuitka/code_generation/BinaryOperationHelperDefinitions.py +269 -167
  136. nuitka/code_generation/BuiltinCodes.py +9 -1
  137. nuitka/code_generation/CallCodes.py +16 -16
  138. nuitka/code_generation/CodeGeneration.py +14 -2
  139. nuitka/code_generation/CodeHelperSelection.py +1 -1
  140. nuitka/code_generation/CodeHelpers.py +4 -1
  141. nuitka/code_generation/CodeObjectCodes.py +2 -2
  142. nuitka/code_generation/ComparisonCodes.py +13 -2
  143. nuitka/code_generation/ComparisonHelperDefinitions.py +23 -8
  144. nuitka/code_generation/Contexts.py +28 -16
  145. nuitka/code_generation/CoroutineCodes.py +2 -6
  146. nuitka/code_generation/DictCodes.py +3 -3
  147. nuitka/code_generation/ErrorCodes.py +34 -50
  148. nuitka/code_generation/ExceptionCodes.py +165 -96
  149. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +25 -10
  150. nuitka/code_generation/FrameCodes.py +4 -11
  151. nuitka/code_generation/FunctionCodes.py +2 -6
  152. nuitka/code_generation/GeneratorCodes.py +2 -6
  153. nuitka/code_generation/GlobalConstants.py +8 -2
  154. nuitka/code_generation/GlobalsLocalsCodes.py +2 -2
  155. nuitka/code_generation/IteratorCodes.py +67 -54
  156. nuitka/code_generation/LineNumberCodes.py +1 -3
  157. nuitka/code_generation/ModuleCodes.py +28 -4
  158. nuitka/code_generation/OperationCodes.py +51 -20
  159. nuitka/code_generation/PackageResourceCodes.py +37 -0
  160. nuitka/code_generation/RaisingCodes.py +164 -90
  161. nuitka/code_generation/Reports.py +13 -5
  162. nuitka/code_generation/ReturnCodes.py +2 -16
  163. nuitka/code_generation/TryCodes.py +12 -24
  164. nuitka/code_generation/TypeAliasCodes.py +48 -0
  165. nuitka/code_generation/VariableCodes.py +99 -40
  166. nuitka/code_generation/VariableDeclarations.py +8 -8
  167. nuitka/code_generation/YieldCodes.py +1 -1
  168. nuitka/code_generation/c_types/CTypeBases.py +10 -2
  169. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +3 -0
  170. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +3 -4
  171. nuitka/code_generation/c_types/CTypeNuitkaInts.py +70 -25
  172. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +1 -1
  173. nuitka/code_generation/c_types/CTypePyObjectPointers.py +16 -6
  174. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +2 -2
  175. nuitka/code_generation/templates/CodeTemplatesConstants.py +11 -3
  176. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +2 -2
  177. nuitka/code_generation/templates/CodeTemplatesExceptions.py +15 -16
  178. nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -10
  179. nuitka/code_generation/templates/CodeTemplatesFunction.py +2 -2
  180. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +2 -2
  181. nuitka/code_generation/templates/CodeTemplatesIterators.py +1 -35
  182. nuitka/code_generation/templates/CodeTemplatesModules.py +34 -4
  183. nuitka/code_generation/templates/CodeTemplatesVariables.py +76 -0
  184. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +3 -3
  185. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +3 -3
  186. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +4 -106
  187. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -2
  188. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +1 -1
  189. nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
  190. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +9 -9
  191. nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
  192. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +1 -1
  193. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +1 -1
  194. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +9 -9
  195. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +7 -7
  196. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +9 -9
  197. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +7 -7
  198. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +4 -4
  199. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +1 -1
  200. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +31 -31
  201. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +1 -1
  202. nuitka/containers/Namedtuples.py +6 -0
  203. nuitka/containers/OrderedSets.py +105 -5
  204. nuitka/distutils/Build.py +14 -0
  205. nuitka/distutils/DistutilCommands.py +50 -10
  206. nuitka/finalizations/Finalization.py +3 -3
  207. nuitka/finalizations/FinalizeMarkups.py +10 -14
  208. nuitka/freezer/DependsExe.py +5 -2
  209. nuitka/freezer/DllDependenciesMacOS.py +18 -1
  210. nuitka/freezer/DllDependenciesWin32.py +26 -12
  211. nuitka/freezer/ImportDetection.py +6 -0
  212. nuitka/freezer/IncludedDataFiles.py +37 -6
  213. nuitka/freezer/Onefile.py +1 -0
  214. nuitka/freezer/Standalone.py +72 -18
  215. nuitka/importing/Importing.py +33 -6
  216. nuitka/importing/Recursion.py +5 -2
  217. nuitka/importing/StandardLibrary.py +57 -59
  218. nuitka/nodes/AsyncgenNodes.py +3 -6
  219. nuitka/nodes/BuiltinIteratorNodes.py +2 -2
  220. nuitka/nodes/BuiltinRefNodes.py +14 -30
  221. nuitka/nodes/ChildrenHavingMixins.py +439 -46
  222. nuitka/nodes/ConditionalNodes.py +3 -2
  223. nuitka/nodes/CoroutineNodes.py +3 -6
  224. nuitka/nodes/DictionaryNodes.py +1 -1
  225. nuitka/nodes/ExceptionNodes.py +102 -26
  226. nuitka/nodes/ExpressionBasesGenerated.py +288 -4
  227. nuitka/nodes/FrameNodes.py +22 -11
  228. nuitka/nodes/FunctionNodes.py +3 -3
  229. nuitka/nodes/GeneratorNodes.py +3 -6
  230. nuitka/nodes/HardImportNodesGenerated.py +182 -0
  231. nuitka/nodes/ImportNodes.py +2 -2
  232. nuitka/nodes/NodeBases.py +28 -1
  233. nuitka/nodes/NodeMakingHelpers.py +71 -50
  234. nuitka/nodes/OperatorNodesUnary.py +128 -3
  235. nuitka/nodes/OsSysNodes.py +37 -6
  236. nuitka/nodes/OutlineNodes.py +2 -2
  237. nuitka/nodes/StatementBasesGenerated.py +0 -2
  238. nuitka/nodes/StatementNodes.py +8 -7
  239. nuitka/nodes/SubscriptNodes.py +1 -1
  240. nuitka/nodes/TypeNodes.py +28 -1
  241. nuitka/nodes/VariableAssignNodes.py +2 -1
  242. nuitka/nodes/shapes/BuiltinTypeShapes.py +24 -7
  243. nuitka/nodes/shapes/IteratorShapes.py +71 -0
  244. nuitka/nodes/shapes/ShapeMixins.py +18 -0
  245. nuitka/nodes/shapes/StandardShapes.py +47 -44
  246. nuitka/optimizations/BytecodeDemotion.py +2 -1
  247. nuitka/plugins/PluginBase.py +64 -22
  248. nuitka/plugins/Plugins.py +16 -3
  249. nuitka/plugins/standard/AntiBloatPlugin.py +23 -12
  250. nuitka/plugins/standard/DllFilesPlugin.py +78 -2
  251. nuitka/plugins/standard/ImplicitImports.py +5 -15
  252. nuitka/plugins/standard/KivyPlugin.py +3 -12
  253. nuitka/plugins/standard/MatplotlibPlugin.py +12 -1
  254. nuitka/plugins/standard/MultiprocessingPlugin.py +11 -20
  255. nuitka/plugins/standard/OptionsNannyPlugin.py +5 -4
  256. nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
  257. nuitka/plugins/standard/PySidePyQtPlugin.py +8 -0
  258. nuitka/plugins/standard/TkinterPlugin.py +23 -3
  259. nuitka/plugins/standard/TransformersPlugin.py +70 -275
  260. nuitka/plugins/standard/standard.nuitka-package.config.yml +413 -30
  261. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +35 -2
  262. nuitka/reports/CompilationReportReader.py +12 -0
  263. nuitka/reports/Reports.py +11 -0
  264. nuitka/specs/BuiltinParameterSpecs.py +5 -1
  265. nuitka/specs/HardImportSpecs.py +7 -0
  266. nuitka/specs/ParameterSpecs.py +4 -4
  267. nuitka/tools/environments/Virtualenv.py +13 -5
  268. nuitka/tools/general/dll_report/__main__.py +10 -1
  269. nuitka/tools/onefile_compressor/OnefileCompressor.py +1 -1
  270. nuitka/tools/podman/__main__.py +4 -2
  271. nuitka/tools/specialize/CTypeDescriptions.py +158 -9
  272. nuitka/tools/specialize/SpecializeC.py +218 -56
  273. nuitka/tools/testing/Common.py +69 -62
  274. nuitka/tools/testing/compare_with_cpython/__main__.py +3 -1
  275. nuitka/tools/testing/measure_construct_performance/__main__.py +1 -8
  276. nuitka/tools/testing/run_nuitka_tests/__main__.py +77 -11
  277. nuitka/tools/watch/AutoStage.py +1 -0
  278. nuitka/tree/Building.py +10 -37
  279. nuitka/tree/ComplexCallHelperFunctions.py +4 -0
  280. nuitka/tree/ReformulationAssertStatements.py +31 -14
  281. nuitka/tree/ReformulationAssignmentStatements.py +5 -1
  282. nuitka/tree/ReformulationClasses3.py +94 -19
  283. nuitka/tree/ReformulationDictionaryCreation.py +1 -0
  284. nuitka/tree/ReformulationFunctionStatements.py +1 -1
  285. nuitka/tree/ReformulationMatchStatements.py +3 -1
  286. nuitka/tree/ReformulationYieldExpressions.py +23 -5
  287. nuitka/utils/CommandLineOptions.py +27 -3
  288. nuitka/utils/Download.py +2 -2
  289. nuitka/utils/Execution.py +36 -31
  290. nuitka/utils/FileOperations.py +18 -39
  291. nuitka/utils/Hashing.py +5 -1
  292. nuitka/utils/Importing.py +2 -14
  293. nuitka/utils/InlineCopies.py +52 -0
  294. nuitka/utils/InstalledPythons.py +9 -4
  295. nuitka/utils/Json.py +2 -2
  296. nuitka/utils/PackageResources.py +44 -0
  297. nuitka/utils/SharedLibraries.py +24 -0
  298. nuitka/utils/Signing.py +9 -1
  299. nuitka/utils/Utils.py +1 -0
  300. {Nuitka_winsvc-2.4.11.data → Nuitka_winsvc-2.5.6.data}/scripts/nuitka-run.cmd +0 -0
  301. {Nuitka_winsvc-2.4.11.data → Nuitka_winsvc-2.5.6.data}/scripts/nuitka.cmd +0 -0
  302. {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/LICENSE.txt +0 -0
  303. {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/entry_points.txt +0 -0
  304. {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/top_level.txt +0 -0
@@ -1407,8 +1407,8 @@ static inline bool _INPLACE_OPERATION_POW_INT_INT(PyObject **operand1, PyObject
1407
1407
  break;
1408
1408
  }
1409
1409
  if (ix / temp != prev) {
1410
- PyObject *operand1_long = PyLong_FromLong(a);
1411
- PyObject *operand2_long = PyLong_FromLong(b);
1410
+ PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
1411
+ PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
1412
1412
 
1413
1413
  PyObject *r = _BINARY_OPERATION_POW_OBJECT_LONG_LONG(operand1_long, operand2_long);
1414
1414
 
@@ -1427,8 +1427,8 @@ static inline bool _INPLACE_OPERATION_POW_INT_INT(PyObject **operand1, PyObject
1427
1427
  temp = (unsigned long)temp * temp;
1428
1428
 
1429
1429
  if (prev != 0 && temp / prev != prev) {
1430
- PyObject *operand1_long = PyLong_FromLong(a);
1431
- PyObject *operand2_long = PyLong_FromLong(b);
1430
+ PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
1431
+ PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
1432
1432
 
1433
1433
  PyObject *r = _BINARY_OPERATION_POW_OBJECT_LONG_LONG(operand1_long, operand2_long);
1434
1434
 
@@ -1451,7 +1451,7 @@ exit_result_ok_clong:
1451
1451
 
1452
1452
  // That's our return value then. As we use a dedicated variable, it's
1453
1453
  // OK that way.
1454
- *operand1 = PyInt_FromLong(clong_result);
1454
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
1455
1455
  goto exit_result_ok;
1456
1456
 
1457
1457
  exit_result_object:
@@ -1695,8 +1695,8 @@ static inline bool _INPLACE_OPERATION_POW_OBJECT_INT(PyObject **operand1, PyObje
1695
1695
  break;
1696
1696
  }
1697
1697
  if (ix / temp != prev) {
1698
- PyObject *operand1_long = PyLong_FromLong(a);
1699
- PyObject *operand2_long = PyLong_FromLong(b);
1698
+ PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
1699
+ PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
1700
1700
 
1701
1701
  PyObject *r = _BINARY_OPERATION_POW_OBJECT_LONG_LONG(operand1_long, operand2_long);
1702
1702
 
@@ -1715,8 +1715,8 @@ static inline bool _INPLACE_OPERATION_POW_OBJECT_INT(PyObject **operand1, PyObje
1715
1715
  temp = (unsigned long)temp * temp;
1716
1716
 
1717
1717
  if (prev != 0 && temp / prev != prev) {
1718
- PyObject *operand1_long = PyLong_FromLong(a);
1719
- PyObject *operand2_long = PyLong_FromLong(b);
1718
+ PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
1719
+ PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
1720
1720
 
1721
1721
  PyObject *r = _BINARY_OPERATION_POW_OBJECT_LONG_LONG(operand1_long, operand2_long);
1722
1722
 
@@ -1739,7 +1739,7 @@ static inline bool _INPLACE_OPERATION_POW_OBJECT_INT(PyObject **operand1, PyObje
1739
1739
 
1740
1740
  // That's our return value then. As we use a dedicated variable, it's
1741
1741
  // OK that way.
1742
- *operand1 = PyInt_FromLong(clong_result);
1742
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
1743
1743
  goto exit_result_ok;
1744
1744
 
1745
1745
  exit_result_object:
@@ -1988,8 +1988,8 @@ static inline bool _INPLACE_OPERATION_POW_INT_OBJECT(PyObject **operand1, PyObje
1988
1988
  break;
1989
1989
  }
1990
1990
  if (ix / temp != prev) {
1991
- PyObject *operand1_long = PyLong_FromLong(a);
1992
- PyObject *operand2_long = PyLong_FromLong(b);
1991
+ PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
1992
+ PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
1993
1993
 
1994
1994
  PyObject *r = _BINARY_OPERATION_POW_OBJECT_LONG_LONG(operand1_long, operand2_long);
1995
1995
 
@@ -2008,8 +2008,8 @@ static inline bool _INPLACE_OPERATION_POW_INT_OBJECT(PyObject **operand1, PyObje
2008
2008
  temp = (unsigned long)temp * temp;
2009
2009
 
2010
2010
  if (prev != 0 && temp / prev != prev) {
2011
- PyObject *operand1_long = PyLong_FromLong(a);
2012
- PyObject *operand2_long = PyLong_FromLong(b);
2011
+ PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
2012
+ PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
2013
2013
 
2014
2014
  PyObject *r = _BINARY_OPERATION_POW_OBJECT_LONG_LONG(operand1_long, operand2_long);
2015
2015
 
@@ -2032,7 +2032,7 @@ static inline bool _INPLACE_OPERATION_POW_INT_OBJECT(PyObject **operand1, PyObje
2032
2032
 
2033
2033
  // That's our return value then. As we use a dedicated variable, it's
2034
2034
  // OK that way.
2035
- *operand1 = PyInt_FromLong(clong_result);
2035
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
2036
2036
  goto exit_result_ok;
2037
2037
 
2038
2038
  exit_result_object:
@@ -2534,8 +2534,8 @@ static inline bool _INPLACE_OPERATION_POW_OBJECT_OBJECT(PyObject **operand1, PyO
2534
2534
  break;
2535
2535
  }
2536
2536
  if (ix / temp != prev) {
2537
- PyObject *operand1_long = PyLong_FromLong(a);
2538
- PyObject *operand2_long = PyLong_FromLong(b);
2537
+ PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
2538
+ PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
2539
2539
 
2540
2540
  PyObject *r = _BINARY_OPERATION_POW_OBJECT_LONG_LONG(operand1_long, operand2_long);
2541
2541
 
@@ -2554,8 +2554,8 @@ static inline bool _INPLACE_OPERATION_POW_OBJECT_OBJECT(PyObject **operand1, PyO
2554
2554
  temp = (unsigned long)temp * temp;
2555
2555
 
2556
2556
  if (prev != 0 && temp / prev != prev) {
2557
- PyObject *operand1_long = PyLong_FromLong(a);
2558
- PyObject *operand2_long = PyLong_FromLong(b);
2557
+ PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
2558
+ PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
2559
2559
 
2560
2560
  PyObject *r = _BINARY_OPERATION_POW_OBJECT_LONG_LONG(operand1_long, operand2_long);
2561
2561
 
@@ -2578,7 +2578,7 @@ static inline bool _INPLACE_OPERATION_POW_OBJECT_OBJECT(PyObject **operand1, PyO
2578
2578
 
2579
2579
  // That's our return value then. As we use a dedicated variable, it's
2580
2580
  // OK that way.
2581
- *operand1 = PyInt_FromLong(clong_result);
2581
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
2582
2582
  goto exit_result_ok;
2583
2583
 
2584
2584
  exit_result_object:
@@ -550,7 +550,7 @@ exit_result_ok_clong:
550
550
 
551
551
  // That's our return value then. As we use a dedicated variable, it's
552
552
  // OK that way.
553
- *operand1 = PyInt_FromLong(clong_result);
553
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
554
554
  goto exit_result_ok;
555
555
 
556
556
  exit_result_ok_left:
@@ -806,7 +806,7 @@ static inline bool _INPLACE_OPERATION_RSHIFT_OBJECT_INT(PyObject **operand1, PyO
806
806
 
807
807
  // That's our return value then. As we use a dedicated variable, it's
808
808
  // OK that way.
809
- *operand1 = PyInt_FromLong(clong_result);
809
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
810
810
  goto exit_result_ok;
811
811
 
812
812
  exit_result_ok_left:
@@ -1067,7 +1067,7 @@ static inline bool _INPLACE_OPERATION_RSHIFT_INT_OBJECT(PyObject **operand1, PyO
1067
1067
 
1068
1068
  // That's our return value then. As we use a dedicated variable, it's
1069
1069
  // OK that way.
1070
- *operand1 = PyInt_FromLong(clong_result);
1070
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
1071
1071
  goto exit_result_ok;
1072
1072
 
1073
1073
  exit_result_ok_left:
@@ -1301,7 +1301,7 @@ static inline bool _INPLACE_OPERATION_RSHIFT_OBJECT_OBJECT(PyObject **operand1,
1301
1301
 
1302
1302
  // That's our return value then. As we use a dedicated variable, it's
1303
1303
  // OK that way.
1304
- *operand1 = PyInt_FromLong(clong_result);
1304
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
1305
1305
  goto exit_result_ok;
1306
1306
 
1307
1307
  exit_result_ok_left:
@@ -46,6 +46,7 @@ static inline bool _INPLACE_OPERATION_SUB_INT_INT(PyObject **operand1, PyObject
46
46
  clong_result = x;
47
47
  goto exit_result_ok_clong;
48
48
  }
49
+
49
50
  {
50
51
  PyObject *operand1_object = *operand1;
51
52
  PyObject *operand2_object = operand2;
@@ -64,7 +65,7 @@ exit_result_ok_clong:
64
65
 
65
66
  // That's our return value then. As we use a dedicated variable, it's
66
67
  // OK that way.
67
- *operand1 = PyInt_FromLong(clong_result);
68
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
68
69
  goto exit_result_ok;
69
70
 
70
71
  exit_result_object:
@@ -289,6 +290,7 @@ static inline bool _INPLACE_OPERATION_SUB_OBJECT_INT(PyObject **operand1, PyObje
289
290
  clong_result = x;
290
291
  goto exit_result_ok_clong;
291
292
  }
293
+
292
294
  {
293
295
  PyObject *operand1_object = *operand1;
294
296
  PyObject *operand2_object = operand2;
@@ -307,7 +309,7 @@ static inline bool _INPLACE_OPERATION_SUB_OBJECT_INT(PyObject **operand1, PyObje
307
309
 
308
310
  // That's our return value then. As we use a dedicated variable, it's
309
311
  // OK that way.
310
- *operand1 = PyInt_FromLong(clong_result);
312
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
311
313
  goto exit_result_ok;
312
314
 
313
315
  exit_result_object:
@@ -537,6 +539,7 @@ static inline bool _INPLACE_OPERATION_SUB_INT_OBJECT(PyObject **operand1, PyObje
537
539
  clong_result = x;
538
540
  goto exit_result_ok_clong;
539
541
  }
542
+
540
543
  {
541
544
  PyObject *operand1_object = *operand1;
542
545
  PyObject *operand2_object = operand2;
@@ -555,7 +558,7 @@ static inline bool _INPLACE_OPERATION_SUB_INT_OBJECT(PyObject **operand1, PyObje
555
558
 
556
559
  // That's our return value then. As we use a dedicated variable, it's
557
560
  // OK that way.
558
- *operand1 = PyInt_FromLong(clong_result);
561
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
559
562
  goto exit_result_ok;
560
563
 
561
564
  exit_result_object:
@@ -693,7 +696,7 @@ exit_result_ok_clong:
693
696
 
694
697
  // That's our return value then. As we use a dedicated variable, it's
695
698
  // OK that way.
696
- *operand1 = PyLong_FromLong(clong_result);
699
+ *operand1 = Nuitka_PyLong_FromLong(clong_result);
697
700
  goto exit_result_ok;
698
701
 
699
702
  exit_result_ok:
@@ -984,7 +987,7 @@ static inline bool _INPLACE_OPERATION_SUB_OBJECT_LONG(PyObject **operand1, PyObj
984
987
 
985
988
  // That's our return value then. As we use a dedicated variable, it's
986
989
  // OK that way.
987
- *operand1 = PyLong_FromLong(clong_result);
990
+ *operand1 = Nuitka_PyLong_FromLong(clong_result);
988
991
  goto exit_result_ok;
989
992
 
990
993
  exit_result_ok:
@@ -1280,7 +1283,7 @@ static inline bool _INPLACE_OPERATION_SUB_LONG_OBJECT(PyObject **operand1, PyObj
1280
1283
 
1281
1284
  // That's our return value then. As we use a dedicated variable, it's
1282
1285
  // OK that way.
1283
- *operand1 = PyLong_FromLong(clong_result);
1286
+ *operand1 = Nuitka_PyLong_FromLong(clong_result);
1284
1287
  goto exit_result_ok;
1285
1288
 
1286
1289
  exit_result_ok:
@@ -2241,9 +2244,10 @@ static inline bool _INPLACE_OPERATION_SUB_INT_CLONG(PyObject **operand1, long op
2241
2244
  clong_result = x;
2242
2245
  goto exit_result_ok_clong;
2243
2246
  }
2247
+
2244
2248
  {
2245
2249
  PyObject *operand1_object = *operand1;
2246
- PyObject *operand2_object = PyLong_FromLong(operand2);
2250
+ PyObject *operand2_object = Nuitka_PyLong_FromLong(operand2);
2247
2251
 
2248
2252
  PyObject *r = PyLong_Type.tp_as_number->nb_subtract(operand1_object, operand2_object);
2249
2253
  assert(r != Py_NotImplemented);
@@ -2261,7 +2265,7 @@ exit_result_ok_clong:
2261
2265
 
2262
2266
  // That's our return value then. As we use a dedicated variable, it's
2263
2267
  // OK that way.
2264
- *operand1 = PyInt_FromLong(clong_result);
2268
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
2265
2269
  goto exit_result_ok;
2266
2270
 
2267
2271
  exit_result_object:
@@ -2394,7 +2398,7 @@ exit_result_ok_clong:
2394
2398
 
2395
2399
  // That's our return value then. As we use a dedicated variable, it's
2396
2400
  // OK that way.
2397
- *operand1 = PyLong_FromLong(clong_result);
2401
+ *operand1 = Nuitka_PyLong_FromLong(clong_result);
2398
2402
  goto exit_result_ok;
2399
2403
 
2400
2404
  exit_result_ok:
@@ -2408,6 +2412,154 @@ bool INPLACE_OPERATION_SUB_LONG_DIGIT(PyObject **operand1, long operand2) {
2408
2412
  return _INPLACE_OPERATION_SUB_LONG_DIGIT(operand1, operand2);
2409
2413
  }
2410
2414
 
2415
+ /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "CLONG" to C platform long value. */
2416
+ static inline bool _INPLACE_OPERATION_SUB_LONG_CLONG(PyObject **operand1, long operand2) {
2417
+ assert(operand1); // Pointer must be non-null.
2418
+
2419
+ CHECK_OBJECT(*operand1);
2420
+ assert(PyLong_CheckExact(*operand1));
2421
+
2422
+ // Not every code path will make use of all possible results.
2423
+ #ifdef _MSC_VER
2424
+ #pragma warning(push)
2425
+ #pragma warning(disable : 4101)
2426
+ #endif
2427
+ NUITKA_MAY_BE_UNUSED PyObject *obj_result;
2428
+ NUITKA_MAY_BE_UNUSED long clong_result;
2429
+ #ifdef _MSC_VER
2430
+ #pragma warning(pop)
2431
+ #endif
2432
+
2433
+ PyLongObject *operand1_long_object = (PyLongObject *)*operand1;
2434
+
2435
+ bool operand2_is_negative;
2436
+ unsigned long operand2_abs_ival;
2437
+
2438
+ if (operand2 < 0) {
2439
+ operand2_abs_ival = (unsigned long)(-1 - operand2) + 1;
2440
+ operand2_is_negative = true;
2441
+ } else {
2442
+ operand2_abs_ival = (unsigned long)operand2;
2443
+ operand2_is_negative = false;
2444
+ }
2445
+
2446
+ Py_ssize_t operand2_digit_count = 0;
2447
+ digit operand2_digits[5] = {0}; // Could be more minimal and depend on sizeof(digit)
2448
+ {
2449
+ unsigned long t = operand2_abs_ival;
2450
+
2451
+ while (t != 0) {
2452
+ operand2_digit_count += 1;
2453
+ assert(operand2_digit_count <= (Py_ssize_t)(sizeof(operand2_digit_count) / sizeof(digit)));
2454
+
2455
+ operand2_digits[operand2_digit_count] = (digit)(t & PyLong_MASK);
2456
+ t >>= PyLong_SHIFT;
2457
+ }
2458
+ }
2459
+
2460
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
2461
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
2462
+
2463
+ if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && operand2_digit_count <= 1) {
2464
+ long r = (long)(MEDIUM_VALUE(operand1_long_object) - (sdigit)operand2);
2465
+
2466
+ if (Py_REFCNT(*operand1) == 1) {
2467
+ Nuitka_LongUpdateFromCLong(&*operand1, r);
2468
+ goto exit_result_ok;
2469
+ } else {
2470
+ PyObject *obj = Nuitka_LongFromCLong(r);
2471
+
2472
+ obj_result = obj;
2473
+ goto exit_result_object;
2474
+ }
2475
+ clong_result = r;
2476
+ goto exit_result_ok_clong;
2477
+ }
2478
+
2479
+ if (Py_REFCNT(*operand1) == 1) {
2480
+ digit const *b_digits = operand2_digits;
2481
+ Py_ssize_t b_digit_count = operand2_digit_count;
2482
+
2483
+ bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
2484
+ bool b_negative = operand2_is_negative;
2485
+
2486
+ if (a_negative) {
2487
+ if (b_negative) {
2488
+ *operand1 = _Nuitka_LongSubInplaceDigits(*operand1, b_digits, b_digit_count, -1);
2489
+ } else {
2490
+ *operand1 = _Nuitka_LongAddInplaceDigits(*operand1, b_digits, b_digit_count);
2491
+ Nuitka_LongSetSignNegative(*operand1);
2492
+ }
2493
+ } else {
2494
+ if (b_negative) {
2495
+ *operand1 = _Nuitka_LongAddInplaceDigits(*operand1, b_digits, b_digit_count);
2496
+ } else {
2497
+ *operand1 = _Nuitka_LongSubInplaceDigits(*operand1, b_digits, b_digit_count, 1);
2498
+ }
2499
+ }
2500
+
2501
+ goto exit_result_ok;
2502
+ }
2503
+ {
2504
+ PyLongObject *z;
2505
+
2506
+ digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
2507
+ Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
2508
+ bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
2509
+ digit const *b_digits = operand2_digits;
2510
+ Py_ssize_t b_digit_count = operand2_digit_count;
2511
+ bool b_negative = operand2_is_negative;
2512
+
2513
+ if (a_negative) {
2514
+ if (b_negative) {
2515
+ z = _Nuitka_LongSubDigits(a_digits, a_digit_count, b_digits, b_digit_count);
2516
+ } else {
2517
+ z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
2518
+ }
2519
+
2520
+ Nuitka_LongFlipSign(z);
2521
+ } else {
2522
+ if (b_negative) {
2523
+ z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
2524
+ } else {
2525
+ z = _Nuitka_LongSubDigits(a_digits, a_digit_count, b_digits, b_digit_count);
2526
+ }
2527
+ }
2528
+
2529
+ obj_result = (PyObject *)z;
2530
+ goto exit_result_object;
2531
+ }
2532
+
2533
+ exit_result_object:
2534
+ if (unlikely(obj_result == NULL)) {
2535
+ goto exit_result_exception;
2536
+ }
2537
+ // We got an object handed, that we have to release.
2538
+ Py_DECREF(*operand1);
2539
+ *operand1 = obj_result;
2540
+ goto exit_result_ok;
2541
+
2542
+ exit_result_ok_clong:
2543
+
2544
+ // We got an object handed, that we have to release.
2545
+ Py_DECREF(*operand1);
2546
+
2547
+ // That's our return value then. As we use a dedicated variable, it's
2548
+ // OK that way.
2549
+ *operand1 = Nuitka_PyLong_FromLong(clong_result);
2550
+ goto exit_result_ok;
2551
+
2552
+ exit_result_ok:
2553
+ return true;
2554
+
2555
+ exit_result_exception:
2556
+ return false;
2557
+ }
2558
+
2559
+ bool INPLACE_OPERATION_SUB_LONG_CLONG(PyObject **operand1, long operand2) {
2560
+ return _INPLACE_OPERATION_SUB_LONG_CLONG(operand1, operand2);
2561
+ }
2562
+
2411
2563
  /* Code referring to "FLOAT" corresponds to Python 'float' and "CFLOAT" to C platform float value. */
2412
2564
  static inline bool _INPLACE_OPERATION_SUB_FLOAT_CFLOAT(PyObject **operand1, double operand2) {
2413
2565
  assert(operand1); // Pointer must be non-null.
@@ -2494,6 +2646,7 @@ static inline bool _INPLACE_OPERATION_SUB_OBJECT_OBJECT(PyObject **operand1, PyO
2494
2646
  clong_result = x;
2495
2647
  goto exit_result_ok_clong;
2496
2648
  }
2649
+
2497
2650
  {
2498
2651
  PyObject *operand1_object = *operand1;
2499
2652
  PyObject *operand2_object = operand2;
@@ -2512,7 +2665,7 @@ static inline bool _INPLACE_OPERATION_SUB_OBJECT_OBJECT(PyObject **operand1, PyO
2512
2665
 
2513
2666
  // That's our return value then. As we use a dedicated variable, it's
2514
2667
  // OK that way.
2515
- *operand1 = PyInt_FromLong(clong_result);
2668
+ *operand1 = Nuitka_PyInt_FromLong(clong_result);
2516
2669
  goto exit_result_ok;
2517
2670
 
2518
2671
  exit_result_object:
@@ -68,6 +68,7 @@ static inline bool _INPLACE_OPERATION_TRUEDIV_INT_INT(PyObject **operand1, PyObj
68
68
  cfloat_result = r;
69
69
  goto exit_result_ok_cfloat;
70
70
  }
71
+
71
72
  {
72
73
  PyObject *operand1_object = *operand1;
73
74
  PyObject *operand2_object = operand2;
@@ -346,6 +347,7 @@ static inline bool _INPLACE_OPERATION_TRUEDIV_OBJECT_INT(PyObject **operand1, Py
346
347
  cfloat_result = r;
347
348
  goto exit_result_ok_cfloat;
348
349
  }
350
+
349
351
  {
350
352
  PyObject *operand1_object = *operand1;
351
353
  PyObject *operand2_object = operand2;
@@ -628,6 +630,7 @@ static inline bool _INPLACE_OPERATION_TRUEDIV_INT_OBJECT(PyObject **operand1, Py
628
630
  cfloat_result = r;
629
631
  goto exit_result_ok_cfloat;
630
632
  }
633
+
631
634
  {
632
635
  PyObject *operand1_object = *operand1;
633
636
  PyObject *operand2_object = operand2;
@@ -2170,9 +2173,10 @@ static inline bool _INPLACE_OPERATION_TRUEDIV_INT_CLONG(PyObject **operand1, lon
2170
2173
  cfloat_result = r;
2171
2174
  goto exit_result_ok_cfloat;
2172
2175
  }
2176
+
2173
2177
  {
2174
2178
  PyObject *operand1_object = *operand1;
2175
- PyObject *operand2_object = PyLong_FromLong(operand2);
2179
+ PyObject *operand2_object = Nuitka_PyLong_FromLong(operand2);
2176
2180
 
2177
2181
  PyObject *r = PyLong_Type.tp_as_number->nb_true_divide(operand1_object, operand2_object);
2178
2182
  assert(r != Py_NotImplemented);
@@ -2347,6 +2351,7 @@ static inline bool _INPLACE_OPERATION_TRUEDIV_OBJECT_OBJECT(PyObject **operand1,
2347
2351
  cfloat_result = r;
2348
2352
  goto exit_result_ok_cfloat;
2349
2353
  }
2354
+
2350
2355
  {
2351
2356
  PyObject *operand1_object = *operand1;
2352
2357
  PyObject *operand2_object = operand2;
@@ -47,7 +47,7 @@ void startProfiling(void) {
47
47
  PyThreadState *tstate = PyThreadState_GET();
48
48
 
49
49
  PyObject *result = CALL_FUNCTION_WITH_SINGLE_ARG(tstate, PyObject_GetAttrString(vmprof_module, "enable"),
50
- PyInt_FromLong(fileno(tempfile_profile)));
50
+ Nuitka_PyInt_FromLong(fileno(tempfile_profile)));
51
51
 
52
52
  if (result == NULL) {
53
53
  PyErr_Print();