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
@@ -0,0 +1,121 @@
1
+ // Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+ /* WARNING, this code is GENERATED. Modify the template HelperOperationComparisonDual.c.j2 instead! */
4
+
5
+ /* This file is included from another C file, help IDEs to still parse it on its own. */
6
+ #ifdef __IDE_ONLY__
7
+ #include "nuitka/prelude.h"
8
+ #endif
9
+
10
+ /* C helpers for type specialized "!=" (NE) comparisons */
11
+
12
+ /* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
13
+ PyObject *RICH_COMPARE_NE_OBJECT_NILONG_CLONG(nuitka_ilong *operand1, long operand2) {
14
+ CHECK_NILONG_OBJECT(operand1);
15
+
16
+ bool left_c_usable = IS_NILONG_C_VALUE_VALID(operand1);
17
+ bool right_c_usable = true;
18
+
19
+ if (left_c_usable && right_c_usable) {
20
+ bool r = COMPARE_EQ_CBOOL_CLONG_CLONG(operand1->c_value, operand2);
21
+
22
+ // Convert to target type.
23
+ PyObject *result = BOOL_FROM(!r);
24
+ Py_INCREF_IMMORTAL(result);
25
+ return result;
26
+ } else if (!left_c_usable && !right_c_usable) {
27
+ ENFORCE_NILONG_OBJECT_VALUE(operand1);
28
+
29
+ return COMPARE_NE_OBJECT_LONG_CLONG(operand1->python_value, operand2);
30
+ } else {
31
+ return COMPARE_NE_OBJECT_LONG_CLONG(operand1->python_value, operand2);
32
+ }
33
+ }
34
+
35
+ /* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
36
+ bool RICH_COMPARE_NE_CBOOL_NILONG_CLONG(nuitka_ilong *operand1, long operand2) {
37
+ CHECK_NILONG_OBJECT(operand1);
38
+
39
+ bool left_c_usable = IS_NILONG_C_VALUE_VALID(operand1);
40
+ bool right_c_usable = true;
41
+
42
+ if (left_c_usable && right_c_usable) {
43
+ bool r = COMPARE_EQ_CBOOL_CLONG_CLONG(operand1->c_value, operand2);
44
+
45
+ // Convert to target type.
46
+ bool result = !r;
47
+
48
+ return result;
49
+ } else if (!left_c_usable && !right_c_usable) {
50
+ ENFORCE_NILONG_OBJECT_VALUE(operand1);
51
+
52
+ return COMPARE_NE_CBOOL_LONG_CLONG(operand1->python_value, operand2);
53
+ } else {
54
+ return COMPARE_NE_CBOOL_LONG_CLONG(operand1->python_value, operand2);
55
+ }
56
+ }
57
+
58
+ /* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
59
+ * Python objects. */
60
+ PyObject *RICH_COMPARE_NE_OBJECT_NILONG_DIGIT(nuitka_ilong *operand1, long operand2) {
61
+ CHECK_NILONG_OBJECT(operand1);
62
+ assert(Py_ABS(operand2) < (1 << PyLong_SHIFT));
63
+
64
+ bool left_c_usable = IS_NILONG_C_VALUE_VALID(operand1);
65
+ bool right_c_usable = true;
66
+
67
+ if (left_c_usable && right_c_usable) {
68
+ bool r = COMPARE_EQ_CBOOL_CLONG_CLONG(operand1->c_value, operand2);
69
+
70
+ // Convert to target type.
71
+ PyObject *result = BOOL_FROM(!r);
72
+ Py_INCREF_IMMORTAL(result);
73
+ return result;
74
+ } else if (!left_c_usable && !right_c_usable) {
75
+ ENFORCE_NILONG_OBJECT_VALUE(operand1);
76
+
77
+ return COMPARE_NE_OBJECT_LONG_DIGIT(operand1->python_value, operand2);
78
+ } else {
79
+ return COMPARE_NE_OBJECT_LONG_DIGIT(operand1->python_value, operand2);
80
+ }
81
+ }
82
+
83
+ /* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
84
+ * Python objects. */
85
+ bool RICH_COMPARE_NE_CBOOL_NILONG_DIGIT(nuitka_ilong *operand1, long operand2) {
86
+ CHECK_NILONG_OBJECT(operand1);
87
+ assert(Py_ABS(operand2) < (1 << PyLong_SHIFT));
88
+
89
+ bool left_c_usable = IS_NILONG_C_VALUE_VALID(operand1);
90
+ bool right_c_usable = true;
91
+
92
+ if (left_c_usable && right_c_usable) {
93
+ bool r = COMPARE_EQ_CBOOL_CLONG_CLONG(operand1->c_value, operand2);
94
+
95
+ // Convert to target type.
96
+ bool result = !r;
97
+
98
+ return result;
99
+ } else if (!left_c_usable && !right_c_usable) {
100
+ ENFORCE_NILONG_OBJECT_VALUE(operand1);
101
+
102
+ return COMPARE_NE_CBOOL_LONG_DIGIT(operand1->python_value, operand2);
103
+ } else {
104
+ return COMPARE_NE_CBOOL_LONG_DIGIT(operand1->python_value, operand2);
105
+ }
106
+ }
107
+
108
+ // Part of "Nuitka", an optimizing Python compiler that is compatible and
109
+ // integrates with CPython, but also works on its own.
110
+ //
111
+ // Licensed under the Apache License, Version 2.0 (the "License");
112
+ // you may not use this file except in compliance with the License.
113
+ // You may obtain a copy of the License at
114
+ //
115
+ // http://www.apache.org/licenses/LICENSE-2.0
116
+ //
117
+ // Unless required by applicable law or agreed to in writing, software
118
+ // distributed under the License is distributed on an "AS IS" BASIS,
119
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
120
+ // See the License for the specific language governing permissions and
121
+ // limitations under the License.
@@ -758,6 +758,8 @@ static PyObject *COMPARE_EQ_OBJECT_STR_STR(PyObject *operand1, PyObject *operand
758
758
  }
759
759
  }
760
760
  }
761
+ #endif
762
+ #if PYTHON_VERSION < 0x300
761
763
  /* Code referring to "OBJECT" corresponds to any Python object and "STR" to Python2 'str'. */
762
764
  PyObject *RICH_COMPARE_EQ_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operand2) {
763
765
 
@@ -1401,6 +1403,8 @@ static bool COMPARE_EQ_CBOOL_STR_STR(PyObject *operand1, PyObject *operand2) {
1401
1403
  }
1402
1404
  }
1403
1405
  }
1406
+ #endif
1407
+ #if PYTHON_VERSION < 0x300
1404
1408
  /* Code referring to "STR" corresponds to Python2 'str' and "STR" to Python2 'str'. */
1405
1409
  bool RICH_COMPARE_EQ_CBOOL_STR_STR(PyObject *operand1, PyObject *operand2) {
1406
1410
 
@@ -3616,6 +3620,8 @@ static PyObject *COMPARE_EQ_OBJECT_BYTES_BYTES(PyObject *operand1, PyObject *ope
3616
3620
  }
3617
3621
  }
3618
3622
  }
3623
+ #endif
3624
+ #if PYTHON_VERSION >= 0x300
3619
3625
  /* Code referring to "OBJECT" corresponds to any Python object and "BYTES" to Python3 'bytes'. */
3620
3626
  PyObject *RICH_COMPARE_EQ_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *operand2) {
3621
3627
 
@@ -4259,6 +4265,8 @@ static bool COMPARE_EQ_CBOOL_BYTES_BYTES(PyObject *operand1, PyObject *operand2)
4259
4265
  }
4260
4266
  }
4261
4267
  }
4268
+ #endif
4269
+ #if PYTHON_VERSION >= 0x300
4262
4270
  /* Code referring to "BYTES" corresponds to Python3 'bytes' and "BYTES" to Python3 'bytes'. */
4263
4271
  bool RICH_COMPARE_EQ_CBOOL_BYTES_BYTES(PyObject *operand1, PyObject *operand2) {
4264
4272
 
@@ -11760,7 +11768,6 @@ nuitka_bool RICH_COMPARE_EQ_NBOOL_LIST_LIST(PyObject *operand1, PyObject *operan
11760
11768
  return COMPARE_EQ_NBOOL_LIST_LIST(operand1, operand2);
11761
11769
  }
11762
11770
 
11763
- #if PYTHON_VERSION < 0x300
11764
11771
  static PyObject *COMPARE_EQ_OBJECT_LONG_CLONG(PyObject *operand1, long operand2) {
11765
11772
  CHECK_OBJECT(operand1);
11766
11773
  assert(PyLong_CheckExact(operand1));
@@ -11792,7 +11799,8 @@ static PyObject *COMPARE_EQ_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11792
11799
  }
11793
11800
  }
11794
11801
 
11795
- Py_ssize_t operand2_size = operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11802
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
11803
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11796
11804
 
11797
11805
  bool r;
11798
11806
 
@@ -11815,6 +11823,7 @@ static PyObject *COMPARE_EQ_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11815
11823
  Py_INCREF_IMMORTAL(result);
11816
11824
  return result;
11817
11825
  }
11826
+ #if PYTHON_VERSION < 0x300
11818
11827
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
11819
11828
  PyObject *RICH_COMPARE_EQ_OBJECT_LONG_INT(PyObject *operand1, PyObject *operand2) {
11820
11829
 
@@ -11822,7 +11831,6 @@ PyObject *RICH_COMPARE_EQ_OBJECT_LONG_INT(PyObject *operand1, PyObject *operand2
11822
11831
  }
11823
11832
  #endif
11824
11833
 
11825
- #if PYTHON_VERSION < 0x300
11826
11834
  static bool COMPARE_EQ_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11827
11835
  CHECK_OBJECT(operand1);
11828
11836
  assert(PyLong_CheckExact(operand1));
@@ -11854,7 +11862,8 @@ static bool COMPARE_EQ_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11854
11862
  }
11855
11863
  }
11856
11864
 
11857
- Py_ssize_t operand2_size = operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11865
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
11866
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11858
11867
 
11859
11868
  bool r;
11860
11869
 
@@ -11877,6 +11886,7 @@ static bool COMPARE_EQ_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11877
11886
 
11878
11887
  return result;
11879
11888
  }
11889
+ #if PYTHON_VERSION < 0x300
11880
11890
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
11881
11891
  bool RICH_COMPARE_EQ_CBOOL_LONG_INT(PyObject *operand1, PyObject *operand2) {
11882
11892
 
@@ -11899,6 +11909,8 @@ static PyObject *COMPARE_EQ_OBJECT_INT_CLONG(PyObject *operand1, long operand2)
11899
11909
  Py_INCREF_IMMORTAL(result);
11900
11910
  return result;
11901
11911
  }
11912
+ #endif
11913
+ #if PYTHON_VERSION < 0x300
11902
11914
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
11903
11915
  PyObject *RICH_COMPARE_EQ_OBJECT_INT_CLONG(PyObject *operand1, long operand2) {
11904
11916
 
@@ -11921,6 +11933,8 @@ static bool COMPARE_EQ_CBOOL_INT_CLONG(PyObject *operand1, long operand2) {
11921
11933
 
11922
11934
  return result;
11923
11935
  }
11936
+ #endif
11937
+ #if PYTHON_VERSION < 0x300
11924
11938
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
11925
11939
  bool RICH_COMPARE_EQ_CBOOL_INT_CLONG(PyObject *operand1, long operand2) {
11926
11940
 
@@ -756,6 +756,8 @@ static PyObject *COMPARE_GE_OBJECT_STR_STR(PyObject *operand1, PyObject *operand
756
756
  Py_INCREF_IMMORTAL(result);
757
757
  return result;
758
758
  }
759
+ #endif
760
+ #if PYTHON_VERSION < 0x300
759
761
  /* Code referring to "OBJECT" corresponds to any Python object and "STR" to Python2 'str'. */
760
762
  PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operand2) {
761
763
 
@@ -1390,6 +1392,8 @@ static bool COMPARE_GE_CBOOL_STR_STR(PyObject *operand1, PyObject *operand2) {
1390
1392
 
1391
1393
  return result;
1392
1394
  }
1395
+ #endif
1396
+ #if PYTHON_VERSION < 0x300
1393
1397
  /* Code referring to "OBJECT" corresponds to any Python object and "STR" to Python2 'str'. */
1394
1398
  nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_STR(PyObject *operand1, PyObject *operand2) {
1395
1399
 
@@ -3476,6 +3480,8 @@ static PyObject *COMPARE_GE_OBJECT_BYTES_BYTES(PyObject *operand1, PyObject *ope
3476
3480
  Py_INCREF_IMMORTAL(result);
3477
3481
  return result;
3478
3482
  }
3483
+ #endif
3484
+ #if PYTHON_VERSION >= 0x300
3479
3485
  /* Code referring to "OBJECT" corresponds to any Python object and "BYTES" to Python3 'bytes'. */
3480
3486
  PyObject *RICH_COMPARE_GE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *operand2) {
3481
3487
 
@@ -4110,6 +4116,8 @@ static bool COMPARE_GE_CBOOL_BYTES_BYTES(PyObject *operand1, PyObject *operand2)
4110
4116
 
4111
4117
  return result;
4112
4118
  }
4119
+ #endif
4120
+ #if PYTHON_VERSION >= 0x300
4113
4121
  /* Code referring to "OBJECT" corresponds to any Python object and "BYTES" to Python3 'bytes'. */
4114
4122
  nuitka_bool RICH_COMPARE_GE_NBOOL_OBJECT_BYTES(PyObject *operand1, PyObject *operand2) {
4115
4123
 
@@ -11549,7 +11557,6 @@ nuitka_bool RICH_COMPARE_GE_NBOOL_LIST_LIST(PyObject *operand1, PyObject *operan
11549
11557
  return COMPARE_GE_NBOOL_LIST_LIST(operand1, operand2);
11550
11558
  }
11551
11559
 
11552
- #if PYTHON_VERSION < 0x300
11553
11560
  static PyObject *COMPARE_GE_OBJECT_LONG_CLONG(PyObject *operand1, long operand2) {
11554
11561
  CHECK_OBJECT(operand1);
11555
11562
  assert(PyLong_CheckExact(operand1));
@@ -11581,7 +11588,8 @@ static PyObject *COMPARE_GE_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11581
11588
  }
11582
11589
  }
11583
11590
 
11584
- Py_ssize_t operand2_size = operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11591
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
11592
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11585
11593
 
11586
11594
  bool r;
11587
11595
 
@@ -11606,6 +11614,7 @@ static PyObject *COMPARE_GE_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11606
11614
  Py_INCREF_IMMORTAL(result);
11607
11615
  return result;
11608
11616
  }
11617
+ #if PYTHON_VERSION < 0x300
11609
11618
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
11610
11619
  PyObject *RICH_COMPARE_GE_OBJECT_LONG_INT(PyObject *operand1, PyObject *operand2) {
11611
11620
 
@@ -11613,7 +11622,6 @@ PyObject *RICH_COMPARE_GE_OBJECT_LONG_INT(PyObject *operand1, PyObject *operand2
11613
11622
  }
11614
11623
  #endif
11615
11624
 
11616
- #if PYTHON_VERSION < 0x300
11617
11625
  static bool COMPARE_GE_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11618
11626
  CHECK_OBJECT(operand1);
11619
11627
  assert(PyLong_CheckExact(operand1));
@@ -11645,7 +11653,8 @@ static bool COMPARE_GE_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11645
11653
  }
11646
11654
  }
11647
11655
 
11648
- Py_ssize_t operand2_size = operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11656
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
11657
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11649
11658
 
11650
11659
  bool r;
11651
11660
 
@@ -11670,6 +11679,7 @@ static bool COMPARE_GE_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11670
11679
 
11671
11680
  return result;
11672
11681
  }
11682
+ #if PYTHON_VERSION < 0x300
11673
11683
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
11674
11684
  bool RICH_COMPARE_GE_CBOOL_LONG_INT(PyObject *operand1, PyObject *operand2) {
11675
11685
 
@@ -11692,6 +11702,8 @@ static PyObject *COMPARE_GE_OBJECT_INT_CLONG(PyObject *operand1, long operand2)
11692
11702
  Py_INCREF_IMMORTAL(result);
11693
11703
  return result;
11694
11704
  }
11705
+ #endif
11706
+ #if PYTHON_VERSION < 0x300
11695
11707
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
11696
11708
  PyObject *RICH_COMPARE_GE_OBJECT_INT_CLONG(PyObject *operand1, long operand2) {
11697
11709
 
@@ -11714,6 +11726,8 @@ static bool COMPARE_GE_CBOOL_INT_CLONG(PyObject *operand1, long operand2) {
11714
11726
 
11715
11727
  return result;
11716
11728
  }
11729
+ #endif
11730
+ #if PYTHON_VERSION < 0x300
11717
11731
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
11718
11732
  bool RICH_COMPARE_GE_CBOOL_INT_CLONG(PyObject *operand1, long operand2) {
11719
11733
 
@@ -740,6 +740,8 @@ static PyObject *COMPARE_GT_OBJECT_STR_STR(PyObject *operand1, PyObject *operand
740
740
  Py_INCREF_IMMORTAL(result);
741
741
  return result;
742
742
  }
743
+ #endif
744
+ #if PYTHON_VERSION < 0x300
743
745
  /* Code referring to "OBJECT" corresponds to any Python object and "STR" to Python2 'str'. */
744
746
  PyObject *RICH_COMPARE_GT_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operand2) {
745
747
 
@@ -1374,6 +1376,8 @@ static bool COMPARE_GT_CBOOL_STR_STR(PyObject *operand1, PyObject *operand2) {
1374
1376
 
1375
1377
  return result;
1376
1378
  }
1379
+ #endif
1380
+ #if PYTHON_VERSION < 0x300
1377
1381
  /* Code referring to "OBJECT" corresponds to any Python object and "STR" to Python2 'str'. */
1378
1382
  nuitka_bool RICH_COMPARE_GT_NBOOL_OBJECT_STR(PyObject *operand1, PyObject *operand2) {
1379
1383
 
@@ -3460,6 +3464,8 @@ static PyObject *COMPARE_GT_OBJECT_BYTES_BYTES(PyObject *operand1, PyObject *ope
3460
3464
  Py_INCREF_IMMORTAL(result);
3461
3465
  return result;
3462
3466
  }
3467
+ #endif
3468
+ #if PYTHON_VERSION >= 0x300
3463
3469
  /* Code referring to "OBJECT" corresponds to any Python object and "BYTES" to Python3 'bytes'. */
3464
3470
  PyObject *RICH_COMPARE_GT_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *operand2) {
3465
3471
 
@@ -4094,6 +4100,8 @@ static bool COMPARE_GT_CBOOL_BYTES_BYTES(PyObject *operand1, PyObject *operand2)
4094
4100
 
4095
4101
  return result;
4096
4102
  }
4103
+ #endif
4104
+ #if PYTHON_VERSION >= 0x300
4097
4105
  /* Code referring to "OBJECT" corresponds to any Python object and "BYTES" to Python3 'bytes'. */
4098
4106
  nuitka_bool RICH_COMPARE_GT_NBOOL_OBJECT_BYTES(PyObject *operand1, PyObject *operand2) {
4099
4107
 
@@ -11533,7 +11541,6 @@ nuitka_bool RICH_COMPARE_GT_NBOOL_LIST_LIST(PyObject *operand1, PyObject *operan
11533
11541
  return COMPARE_GT_NBOOL_LIST_LIST(operand1, operand2);
11534
11542
  }
11535
11543
 
11536
- #if PYTHON_VERSION < 0x300
11537
11544
  static PyObject *COMPARE_GT_OBJECT_LONG_CLONG(PyObject *operand1, long operand2) {
11538
11545
  CHECK_OBJECT(operand1);
11539
11546
  assert(PyLong_CheckExact(operand1));
@@ -11565,7 +11572,8 @@ static PyObject *COMPARE_GT_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11565
11572
  }
11566
11573
  }
11567
11574
 
11568
- Py_ssize_t operand2_size = operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11575
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
11576
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11569
11577
 
11570
11578
  bool r;
11571
11579
 
@@ -11590,6 +11598,7 @@ static PyObject *COMPARE_GT_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11590
11598
  Py_INCREF_IMMORTAL(result);
11591
11599
  return result;
11592
11600
  }
11601
+ #if PYTHON_VERSION < 0x300
11593
11602
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
11594
11603
  PyObject *RICH_COMPARE_GT_OBJECT_LONG_INT(PyObject *operand1, PyObject *operand2) {
11595
11604
 
@@ -11597,7 +11606,6 @@ PyObject *RICH_COMPARE_GT_OBJECT_LONG_INT(PyObject *operand1, PyObject *operand2
11597
11606
  }
11598
11607
  #endif
11599
11608
 
11600
- #if PYTHON_VERSION < 0x300
11601
11609
  static bool COMPARE_GT_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11602
11610
  CHECK_OBJECT(operand1);
11603
11611
  assert(PyLong_CheckExact(operand1));
@@ -11629,7 +11637,8 @@ static bool COMPARE_GT_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11629
11637
  }
11630
11638
  }
11631
11639
 
11632
- Py_ssize_t operand2_size = operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11640
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
11641
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11633
11642
 
11634
11643
  bool r;
11635
11644
 
@@ -11654,6 +11663,7 @@ static bool COMPARE_GT_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11654
11663
 
11655
11664
  return result;
11656
11665
  }
11666
+ #if PYTHON_VERSION < 0x300
11657
11667
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
11658
11668
  bool RICH_COMPARE_GT_CBOOL_LONG_INT(PyObject *operand1, PyObject *operand2) {
11659
11669
 
@@ -11676,6 +11686,8 @@ static PyObject *COMPARE_GT_OBJECT_INT_CLONG(PyObject *operand1, long operand2)
11676
11686
  Py_INCREF_IMMORTAL(result);
11677
11687
  return result;
11678
11688
  }
11689
+ #endif
11690
+ #if PYTHON_VERSION < 0x300
11679
11691
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
11680
11692
  PyObject *RICH_COMPARE_GT_OBJECT_INT_CLONG(PyObject *operand1, long operand2) {
11681
11693
 
@@ -11698,6 +11710,8 @@ static bool COMPARE_GT_CBOOL_INT_CLONG(PyObject *operand1, long operand2) {
11698
11710
 
11699
11711
  return result;
11700
11712
  }
11713
+ #endif
11714
+ #if PYTHON_VERSION < 0x300
11701
11715
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
11702
11716
  bool RICH_COMPARE_GT_CBOOL_INT_CLONG(PyObject *operand1, long operand2) {
11703
11717
 
@@ -756,6 +756,8 @@ static PyObject *COMPARE_LE_OBJECT_STR_STR(PyObject *operand1, PyObject *operand
756
756
  Py_INCREF_IMMORTAL(result);
757
757
  return result;
758
758
  }
759
+ #endif
760
+ #if PYTHON_VERSION < 0x300
759
761
  /* Code referring to "OBJECT" corresponds to any Python object and "STR" to Python2 'str'. */
760
762
  PyObject *RICH_COMPARE_LE_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operand2) {
761
763
 
@@ -1398,6 +1400,8 @@ static bool COMPARE_LE_CBOOL_STR_STR(PyObject *operand1, PyObject *operand2) {
1398
1400
 
1399
1401
  return result;
1400
1402
  }
1403
+ #endif
1404
+ #if PYTHON_VERSION < 0x300
1401
1405
  /* Code referring to "STR" corresponds to Python2 'str' and "STR" to Python2 'str'. */
1402
1406
  bool RICH_COMPARE_LE_CBOOL_STR_STR(PyObject *operand1, PyObject *operand2) {
1403
1407
 
@@ -3506,6 +3510,8 @@ static PyObject *COMPARE_LE_OBJECT_BYTES_BYTES(PyObject *operand1, PyObject *ope
3506
3510
  Py_INCREF_IMMORTAL(result);
3507
3511
  return result;
3508
3512
  }
3513
+ #endif
3514
+ #if PYTHON_VERSION >= 0x300
3509
3515
  /* Code referring to "OBJECT" corresponds to any Python object and "BYTES" to Python3 'bytes'. */
3510
3516
  PyObject *RICH_COMPARE_LE_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *operand2) {
3511
3517
 
@@ -4148,6 +4154,8 @@ static bool COMPARE_LE_CBOOL_BYTES_BYTES(PyObject *operand1, PyObject *operand2)
4148
4154
 
4149
4155
  return result;
4150
4156
  }
4157
+ #endif
4158
+ #if PYTHON_VERSION >= 0x300
4151
4159
  /* Code referring to "BYTES" corresponds to Python3 'bytes' and "BYTES" to Python3 'bytes'. */
4152
4160
  bool RICH_COMPARE_LE_CBOOL_BYTES_BYTES(PyObject *operand1, PyObject *operand2) {
4153
4161
 
@@ -11635,7 +11643,6 @@ nuitka_bool RICH_COMPARE_LE_NBOOL_LIST_LIST(PyObject *operand1, PyObject *operan
11635
11643
  return COMPARE_LE_NBOOL_LIST_LIST(operand1, operand2);
11636
11644
  }
11637
11645
 
11638
- #if PYTHON_VERSION < 0x300
11639
11646
  static PyObject *COMPARE_LE_OBJECT_LONG_CLONG(PyObject *operand1, long operand2) {
11640
11647
  CHECK_OBJECT(operand1);
11641
11648
  assert(PyLong_CheckExact(operand1));
@@ -11667,7 +11674,8 @@ static PyObject *COMPARE_LE_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11667
11674
  }
11668
11675
  }
11669
11676
 
11670
- Py_ssize_t operand2_size = operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11677
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
11678
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11671
11679
 
11672
11680
  bool r;
11673
11681
 
@@ -11692,6 +11700,7 @@ static PyObject *COMPARE_LE_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11692
11700
  Py_INCREF_IMMORTAL(result);
11693
11701
  return result;
11694
11702
  }
11703
+ #if PYTHON_VERSION < 0x300
11695
11704
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
11696
11705
  PyObject *RICH_COMPARE_LE_OBJECT_LONG_INT(PyObject *operand1, PyObject *operand2) {
11697
11706
 
@@ -11699,7 +11708,6 @@ PyObject *RICH_COMPARE_LE_OBJECT_LONG_INT(PyObject *operand1, PyObject *operand2
11699
11708
  }
11700
11709
  #endif
11701
11710
 
11702
- #if PYTHON_VERSION < 0x300
11703
11711
  static bool COMPARE_LE_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11704
11712
  CHECK_OBJECT(operand1);
11705
11713
  assert(PyLong_CheckExact(operand1));
@@ -11731,7 +11739,8 @@ static bool COMPARE_LE_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11731
11739
  }
11732
11740
  }
11733
11741
 
11734
- Py_ssize_t operand2_size = operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11742
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
11743
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11735
11744
 
11736
11745
  bool r;
11737
11746
 
@@ -11756,6 +11765,7 @@ static bool COMPARE_LE_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11756
11765
 
11757
11766
  return result;
11758
11767
  }
11768
+ #if PYTHON_VERSION < 0x300
11759
11769
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
11760
11770
  bool RICH_COMPARE_LE_CBOOL_LONG_INT(PyObject *operand1, PyObject *operand2) {
11761
11771
 
@@ -11778,6 +11788,8 @@ static PyObject *COMPARE_LE_OBJECT_INT_CLONG(PyObject *operand1, long operand2)
11778
11788
  Py_INCREF_IMMORTAL(result);
11779
11789
  return result;
11780
11790
  }
11791
+ #endif
11792
+ #if PYTHON_VERSION < 0x300
11781
11793
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
11782
11794
  PyObject *RICH_COMPARE_LE_OBJECT_INT_CLONG(PyObject *operand1, long operand2) {
11783
11795
 
@@ -11800,6 +11812,8 @@ static bool COMPARE_LE_CBOOL_INT_CLONG(PyObject *operand1, long operand2) {
11800
11812
 
11801
11813
  return result;
11802
11814
  }
11815
+ #endif
11816
+ #if PYTHON_VERSION < 0x300
11803
11817
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
11804
11818
  bool RICH_COMPARE_LE_CBOOL_INT_CLONG(PyObject *operand1, long operand2) {
11805
11819
 
@@ -740,6 +740,8 @@ static PyObject *COMPARE_LT_OBJECT_STR_STR(PyObject *operand1, PyObject *operand
740
740
  Py_INCREF_IMMORTAL(result);
741
741
  return result;
742
742
  }
743
+ #endif
744
+ #if PYTHON_VERSION < 0x300
743
745
  /* Code referring to "OBJECT" corresponds to any Python object and "STR" to Python2 'str'. */
744
746
  PyObject *RICH_COMPARE_LT_OBJECT_OBJECT_STR(PyObject *operand1, PyObject *operand2) {
745
747
 
@@ -1382,6 +1384,8 @@ static bool COMPARE_LT_CBOOL_STR_STR(PyObject *operand1, PyObject *operand2) {
1382
1384
 
1383
1385
  return result;
1384
1386
  }
1387
+ #endif
1388
+ #if PYTHON_VERSION < 0x300
1385
1389
  /* Code referring to "STR" corresponds to Python2 'str' and "STR" to Python2 'str'. */
1386
1390
  bool RICH_COMPARE_LT_CBOOL_STR_STR(PyObject *operand1, PyObject *operand2) {
1387
1391
 
@@ -3490,6 +3494,8 @@ static PyObject *COMPARE_LT_OBJECT_BYTES_BYTES(PyObject *operand1, PyObject *ope
3490
3494
  Py_INCREF_IMMORTAL(result);
3491
3495
  return result;
3492
3496
  }
3497
+ #endif
3498
+ #if PYTHON_VERSION >= 0x300
3493
3499
  /* Code referring to "OBJECT" corresponds to any Python object and "BYTES" to Python3 'bytes'. */
3494
3500
  PyObject *RICH_COMPARE_LT_OBJECT_OBJECT_BYTES(PyObject *operand1, PyObject *operand2) {
3495
3501
 
@@ -4132,6 +4138,8 @@ static bool COMPARE_LT_CBOOL_BYTES_BYTES(PyObject *operand1, PyObject *operand2)
4132
4138
 
4133
4139
  return result;
4134
4140
  }
4141
+ #endif
4142
+ #if PYTHON_VERSION >= 0x300
4135
4143
  /* Code referring to "BYTES" corresponds to Python3 'bytes' and "BYTES" to Python3 'bytes'. */
4136
4144
  bool RICH_COMPARE_LT_CBOOL_BYTES_BYTES(PyObject *operand1, PyObject *operand2) {
4137
4145
 
@@ -11619,7 +11627,6 @@ nuitka_bool RICH_COMPARE_LT_NBOOL_LIST_LIST(PyObject *operand1, PyObject *operan
11619
11627
  return COMPARE_LT_NBOOL_LIST_LIST(operand1, operand2);
11620
11628
  }
11621
11629
 
11622
- #if PYTHON_VERSION < 0x300
11623
11630
  static PyObject *COMPARE_LT_OBJECT_LONG_CLONG(PyObject *operand1, long operand2) {
11624
11631
  CHECK_OBJECT(operand1);
11625
11632
  assert(PyLong_CheckExact(operand1));
@@ -11651,7 +11658,8 @@ static PyObject *COMPARE_LT_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11651
11658
  }
11652
11659
  }
11653
11660
 
11654
- Py_ssize_t operand2_size = operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11661
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
11662
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11655
11663
 
11656
11664
  bool r;
11657
11665
 
@@ -11676,6 +11684,7 @@ static PyObject *COMPARE_LT_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11676
11684
  Py_INCREF_IMMORTAL(result);
11677
11685
  return result;
11678
11686
  }
11687
+ #if PYTHON_VERSION < 0x300
11679
11688
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
11680
11689
  PyObject *RICH_COMPARE_LT_OBJECT_LONG_INT(PyObject *operand1, PyObject *operand2) {
11681
11690
 
@@ -11683,7 +11692,6 @@ PyObject *RICH_COMPARE_LT_OBJECT_LONG_INT(PyObject *operand1, PyObject *operand2
11683
11692
  }
11684
11693
  #endif
11685
11694
 
11686
- #if PYTHON_VERSION < 0x300
11687
11695
  static bool COMPARE_LT_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11688
11696
  CHECK_OBJECT(operand1);
11689
11697
  assert(PyLong_CheckExact(operand1));
@@ -11715,7 +11723,8 @@ static bool COMPARE_LT_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11715
11723
  }
11716
11724
  }
11717
11725
 
11718
- Py_ssize_t operand2_size = operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11726
+ NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
11727
+ operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
11719
11728
 
11720
11729
  bool r;
11721
11730
 
@@ -11740,6 +11749,7 @@ static bool COMPARE_LT_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11740
11749
 
11741
11750
  return result;
11742
11751
  }
11752
+ #if PYTHON_VERSION < 0x300
11743
11753
  /* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "INT" to Python2 'int'. */
11744
11754
  bool RICH_COMPARE_LT_CBOOL_LONG_INT(PyObject *operand1, PyObject *operand2) {
11745
11755
 
@@ -11762,6 +11772,8 @@ static PyObject *COMPARE_LT_OBJECT_INT_CLONG(PyObject *operand1, long operand2)
11762
11772
  Py_INCREF_IMMORTAL(result);
11763
11773
  return result;
11764
11774
  }
11775
+ #endif
11776
+ #if PYTHON_VERSION < 0x300
11765
11777
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
11766
11778
  PyObject *RICH_COMPARE_LT_OBJECT_INT_CLONG(PyObject *operand1, long operand2) {
11767
11779
 
@@ -11784,6 +11796,8 @@ static bool COMPARE_LT_CBOOL_INT_CLONG(PyObject *operand1, long operand2) {
11784
11796
 
11785
11797
  return result;
11786
11798
  }
11799
+ #endif
11800
+ #if PYTHON_VERSION < 0x300
11787
11801
  /* Code referring to "INT" corresponds to Python2 'int' and "CLONG" to C platform long value. */
11788
11802
  bool RICH_COMPARE_LT_CBOOL_INT_CLONG(PyObject *operand1, long operand2) {
11789
11803