Nuitka-winsvc 2.1.6__cp311-cp311-win_amd64.whl → 2.2.1__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of Nuitka-winsvc might be problematic. Click here for more details.

Files changed (232) hide show
  1. {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.1.dist-info}/METADATA +1 -1
  2. {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.1.dist-info}/RECORD +232 -223
  3. nuitka/Errors.py +4 -0
  4. nuitka/HardImportRegistry.py +18 -1
  5. nuitka/MainControl.py +27 -30
  6. nuitka/OptionParsing.py +32 -30
  7. nuitka/Options.py +26 -13
  8. nuitka/OutputDirectories.py +7 -4
  9. nuitka/PostProcessing.py +9 -7
  10. nuitka/Progress.py +3 -3
  11. nuitka/PythonVersions.py +2 -2
  12. nuitka/TreeXML.py +1 -1
  13. nuitka/Version.py +1 -1
  14. nuitka/build/Backend.scons +2 -1
  15. nuitka/build/DataComposerInterface.py +1 -0
  16. nuitka/build/Onefile.scons +2 -1
  17. nuitka/build/SconsCaching.py +64 -46
  18. nuitka/build/SconsCompilerSettings.py +19 -6
  19. nuitka/build/SconsHacks.py +0 -1
  20. nuitka/build/SconsInterface.py +84 -5
  21. nuitka/build/SconsProgress.py +0 -1
  22. nuitka/build/SconsUtils.py +8 -4
  23. nuitka/build/include/nuitka/allocator.h +8 -3
  24. nuitka/build/include/nuitka/compiled_cell.h +8 -0
  25. nuitka/build/include/nuitka/exceptions.h +554 -179
  26. nuitka/build/include/nuitka/helper/dictionaries.h +1 -1
  27. nuitka/build/include/nuitka/helper/import_hard.h +3 -0
  28. nuitka/build/include/nuitka/helper/ints.h +15 -2
  29. nuitka/build/include/nuitka/helper/lists.h +4 -1
  30. nuitka/build/include/nuitka/helper/raising.h +12 -0
  31. nuitka/build/include/nuitka/helper/tuples.h +5 -1
  32. nuitka/build/include/nuitka/helpers.h +4 -0
  33. nuitka/build/include/nuitka/importing.h +3 -4
  34. nuitka/build/include/nuitka/jit_sources.h +25 -0
  35. nuitka/build/include/nuitka/prelude.h +38 -11
  36. nuitka/build/include/nuitka/printing.h +3 -0
  37. nuitka/build/include/nuitka/threading.h +2 -6
  38. nuitka/build/include/nuitka/type_aliases.h +27 -0
  39. nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
  40. nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -4
  41. nuitka/build/static_src/CompiledAsyncgenType.c +99 -114
  42. nuitka/build/static_src/CompiledCodeHelpers.c +24 -14
  43. nuitka/build/static_src/CompiledCoroutineType.c +96 -114
  44. nuitka/build/static_src/CompiledFrameType.c +14 -11
  45. nuitka/build/static_src/CompiledFunctionType.c +34 -7
  46. nuitka/build/static_src/CompiledGeneratorType.c +248 -142
  47. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +60 -70
  48. nuitka/build/static_src/CompiledMethodType.c +8 -7
  49. nuitka/build/static_src/HelpersAttributes.c +2 -19
  50. nuitka/build/static_src/HelpersBuiltin.c +2 -1
  51. nuitka/build/static_src/HelpersComparisonEq.c +32 -18
  52. nuitka/build/static_src/HelpersComparisonGe.c +50 -36
  53. nuitka/build/static_src/HelpersComparisonGt.c +50 -36
  54. nuitka/build/static_src/HelpersComparisonLe.c +50 -36
  55. nuitka/build/static_src/HelpersComparisonLt.c +50 -36
  56. nuitka/build/static_src/HelpersComparisonNe.c +32 -18
  57. nuitka/build/static_src/HelpersDeepcopy.c +6 -8
  58. nuitka/build/static_src/HelpersDictionaries.c +8 -3
  59. nuitka/build/static_src/HelpersExceptions.c +36 -22
  60. nuitka/build/static_src/HelpersFilesystemPaths.c +7 -7
  61. nuitka/build/static_src/HelpersImportHard.c +15 -0
  62. nuitka/build/static_src/HelpersJitSources.c +46 -0
  63. nuitka/build/static_src/HelpersLists.c +40 -0
  64. nuitka/build/static_src/HelpersOperationBinaryAdd.c +66 -66
  65. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +80 -33
  66. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +16 -13
  67. nuitka/build/static_src/HelpersOperationBinarySub.c +39 -39
  68. nuitka/build/static_src/HelpersOperationInplaceAdd.c +54 -54
  69. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +1 -1
  70. nuitka/build/static_src/HelpersOperationInplaceSub.c +50 -50
  71. nuitka/build/static_src/HelpersProfiling.c +3 -4
  72. nuitka/build/static_src/HelpersRaising.c +62 -1
  73. nuitka/build/static_src/HelpersStrings.c +203 -8
  74. nuitka/build/static_src/HelpersTypes.c +42 -0
  75. nuitka/build/static_src/MainProgram.c +1 -1
  76. nuitka/build/static_src/MetaPathBasedLoader.c +2 -1
  77. nuitka/build/static_src/OnefileBootstrap.c +3 -3
  78. nuitka/code_generation/BinaryOperationHelperDefinitions.py +5 -3
  79. nuitka/code_generation/BuiltinCodes.py +1 -0
  80. nuitka/code_generation/CodeGeneration.py +11 -0
  81. nuitka/code_generation/CodeHelpers.py +5 -3
  82. nuitka/code_generation/CodeObjectCodes.py +10 -6
  83. nuitka/code_generation/ComparisonCodes.py +19 -3
  84. nuitka/code_generation/ConstantCodes.py +5 -0
  85. nuitka/code_generation/Contexts.py +22 -6
  86. nuitka/code_generation/Emission.py +1 -0
  87. nuitka/code_generation/ErrorCodes.py +8 -16
  88. nuitka/code_generation/EvalCodes.py +5 -3
  89. nuitka/code_generation/ExceptionCodes.py +8 -1
  90. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +1 -0
  91. nuitka/code_generation/FrameCodes.py +5 -3
  92. nuitka/code_generation/FunctionCodes.py +0 -1
  93. nuitka/code_generation/GeneratorCodes.py +3 -3
  94. nuitka/code_generation/GlobalConstants.py +0 -2
  95. nuitka/code_generation/ImportCodes.py +2 -0
  96. nuitka/code_generation/JitCodes.py +44 -0
  97. nuitka/code_generation/ListCodes.py +11 -17
  98. nuitka/code_generation/MatchCodes.py +0 -1
  99. nuitka/code_generation/ModuleCodes.py +2 -1
  100. nuitka/code_generation/Namify.py +0 -1
  101. nuitka/code_generation/NetworkxCodes.py +51 -0
  102. nuitka/code_generation/OperationCodes.py +8 -6
  103. nuitka/code_generation/PackageResourceCodes.py +7 -5
  104. nuitka/code_generation/TensorflowCodes.py +54 -0
  105. nuitka/code_generation/TypeAliasCodes.py +71 -0
  106. nuitka/code_generation/VariableCodes.py +7 -5
  107. nuitka/code_generation/VariableDeclarations.py +1 -0
  108. nuitka/code_generation/c_types/CTypeCLongs.py +0 -1
  109. nuitka/code_generation/c_types/CTypeNuitkaInts.py +0 -1
  110. nuitka/code_generation/c_types/CTypeVoids.py +1 -0
  111. nuitka/code_generation/templates/CodeTemplatesConstants.py +14 -0
  112. nuitka/code_generation/templates/CodeTemplatesExceptions.py +1 -1
  113. nuitka/code_generation/templates/CodeTemplatesIterators.py +0 -1
  114. nuitka/code_generation/templates/CodeTemplatesLoader.py +0 -1
  115. nuitka/code_generation/templates/CodeTemplatesModules.py +4 -1
  116. nuitka/code_generation/templates/CodeTemplatesVariables.py +8 -8
  117. nuitka/code_generation/templates/TemplateDebugWrapper.py +0 -1
  118. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +4 -0
  119. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +9 -7
  120. nuitka/containers/Namedtuples.py +0 -1
  121. nuitka/finalizations/Finalization.py +1 -0
  122. nuitka/finalizations/FinalizeMarkups.py +0 -1
  123. nuitka/freezer/DllDependenciesMacOS.py +60 -13
  124. nuitka/freezer/DllDependenciesPosix.py +0 -1
  125. nuitka/freezer/IncludedDataFiles.py +46 -15
  126. nuitka/freezer/IncludedEntryPoints.py +5 -3
  127. nuitka/freezer/Standalone.py +6 -1
  128. nuitka/importing/ImportCache.py +2 -2
  129. nuitka/importing/ImportResolving.py +80 -78
  130. nuitka/importing/Importing.py +34 -1
  131. nuitka/nodes/AttributeNodesGenerated.py +21 -6
  132. nuitka/nodes/BuiltinComplexNodes.py +1 -0
  133. nuitka/nodes/BuiltinFormatNodes.py +1 -0
  134. nuitka/nodes/BuiltinIteratorNodes.py +5 -3
  135. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +21 -6
  136. nuitka/nodes/BuiltinRefNodes.py +8 -1
  137. nuitka/nodes/BuiltinVarsNodes.py +0 -1
  138. nuitka/nodes/ChildrenHavingMixins.py +906 -186
  139. nuitka/nodes/CodeObjectSpecs.py +1 -1
  140. nuitka/nodes/ConstantRefNodes.py +38 -0
  141. nuitka/nodes/CtypesNodes.py +0 -1
  142. nuitka/nodes/DictionaryNodes.py +0 -1
  143. nuitka/nodes/ExceptionNodes.py +10 -0
  144. nuitka/nodes/ExpressionBases.py +15 -9
  145. nuitka/nodes/ExpressionBasesGenerated.py +32 -15
  146. nuitka/nodes/FunctionNodes.py +50 -5
  147. nuitka/nodes/HardImportNodesGenerated.py +245 -60
  148. nuitka/nodes/ImportHardNodes.py +27 -13
  149. nuitka/nodes/ImportNodes.py +90 -70
  150. nuitka/nodes/InjectCNodes.py +0 -1
  151. nuitka/nodes/ModuleNodes.py +10 -5
  152. nuitka/nodes/NetworkxNodes.py +45 -0
  153. nuitka/nodes/OperatorNodesUnary.py +1 -0
  154. nuitka/nodes/OsSysNodes.py +0 -1
  155. nuitka/nodes/PackageMetadataNodes.py +0 -1
  156. nuitka/nodes/PackageResourceNodes.py +10 -6
  157. nuitka/nodes/StatementBasesGenerated.py +107 -60
  158. nuitka/nodes/StringConcatenationNodes.py +1 -0
  159. nuitka/nodes/TensorflowNodes.py +38 -0
  160. nuitka/nodes/TypeNodes.py +21 -0
  161. nuitka/nodes/VariableRefNodes.py +1 -0
  162. nuitka/nodes/shapes/BuiltinTypeShapes.py +25 -15
  163. nuitka/optimizations/Optimization.py +7 -6
  164. nuitka/optimizations/OptimizeBuiltinCalls.py +11 -9
  165. nuitka/optimizations/Tags.py +0 -1
  166. nuitka/optimizations/TraceCollections.py +6 -55
  167. nuitka/optimizations/ValueTraces.py +49 -1
  168. nuitka/plugins/PluginBase.py +26 -4
  169. nuitka/plugins/Plugins.py +49 -12
  170. nuitka/plugins/standard/AntiBloatPlugin.py +12 -2
  171. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +0 -1
  172. nuitka/plugins/standard/DataFilesPlugin.py +2 -6
  173. nuitka/plugins/standard/DillPlugin.py +3 -3
  174. nuitka/plugins/standard/DllFilesPlugin.py +29 -23
  175. nuitka/plugins/standard/GiPlugin.py +1 -0
  176. nuitka/plugins/standard/ImplicitImports.py +8 -7
  177. nuitka/plugins/standard/MatplotlibPlugin.py +1 -0
  178. nuitka/plugins/standard/OptionsNannyPlugin.py +3 -7
  179. nuitka/plugins/standard/PkgResourcesPlugin.py +0 -1
  180. nuitka/plugins/standard/PmwPlugin.py +10 -9
  181. nuitka/plugins/standard/PySidePyQtPlugin.py +0 -28
  182. nuitka/plugins/standard/TensorflowPlugin.py +1 -0
  183. nuitka/plugins/standard/TorchPlugin.py +1 -0
  184. nuitka/plugins/standard/TrioPlugin.py +1 -0
  185. nuitka/plugins/standard/standard.nuitka-package.config.yml +242 -34
  186. nuitka/reports/CompilationReportReader.py +0 -1
  187. nuitka/reports/Reports.py +49 -5
  188. nuitka/specs/BuiltinParameterSpecs.py +10 -2
  189. nuitka/specs/BuiltinStrOperationSpecs.py +1 -1
  190. nuitka/specs/BuiltinTypeOperationSpecs.py +0 -1
  191. nuitka/specs/HardImportSpecs.py +34 -1
  192. nuitka/specs/ParameterSpecs.py +11 -9
  193. nuitka/tools/environments/Virtualenv.py +0 -1
  194. nuitka/tools/specialize/CTypeDescriptions.py +15 -11
  195. nuitka/tools/specialize/SpecializeC.py +11 -9
  196. nuitka/tools/specialize/SpecializePython.py +57 -30
  197. nuitka/tools/testing/Common.py +24 -7
  198. nuitka/tools/testing/OutputComparison.py +4 -0
  199. nuitka/tools/testing/Pythons.py +0 -1
  200. nuitka/tools/testing/compare_with_cpython/__main__.py +0 -4
  201. nuitka/tools/watch/GitHub.py +4 -1
  202. nuitka/tools/watch/__main__.py +22 -1
  203. nuitka/tree/Building.py +3 -0
  204. nuitka/tree/InternalModule.py +0 -1
  205. nuitka/tree/ReformulationAssertStatements.py +1 -0
  206. nuitka/tree/ReformulationAssignmentStatements.py +26 -3
  207. nuitka/tree/ReformulationClasses3.py +23 -26
  208. nuitka/tree/ReformulationContractionExpressions.py +5 -3
  209. nuitka/tree/ReformulationDictionaryCreation.py +6 -5
  210. nuitka/tree/ReformulationExecStatements.py +8 -6
  211. nuitka/tree/ReformulationFunctionStatements.py +10 -6
  212. nuitka/tree/SourceHandling.py +8 -0
  213. nuitka/tree/TreeHelpers.py +6 -3
  214. nuitka/utils/AppDirs.py +6 -2
  215. nuitka/utils/CStrings.py +1 -1
  216. nuitka/utils/CommandLineOptions.py +0 -1
  217. nuitka/utils/Distributions.py +3 -3
  218. nuitka/utils/Download.py +5 -1
  219. nuitka/utils/Execution.py +6 -3
  220. nuitka/utils/FileOperations.py +61 -34
  221. nuitka/utils/Importing.py +4 -4
  222. nuitka/utils/InstanceCounters.py +1 -0
  223. nuitka/utils/MacOSApp.py +1 -0
  224. nuitka/utils/Shebang.py +1 -0
  225. nuitka/utils/Utils.py +39 -1
  226. nuitka/utils/WindowsFileUsage.py +4 -3
  227. {Nuitka_winsvc-2.1.6.data → Nuitka_winsvc-2.2.1.data}/scripts/nuitka-run.bat +0 -0
  228. {Nuitka_winsvc-2.1.6.data → Nuitka_winsvc-2.2.1.data}/scripts/nuitka.bat +0 -0
  229. {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.1.dist-info}/LICENSE.txt +0 -0
  230. {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.1.dist-info}/WHEEL +0 -0
  231. {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.1.dist-info}/entry_points.txt +0 -0
  232. {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.1.dist-info}/top_level.txt +0 -0
@@ -6111,15 +6111,19 @@ static PyObject *COMPARE_GE_OBJECT_LONG_LONG(PyObject *operand1, PyObject *opera
6111
6111
 
6112
6112
  if (operand1_long_object == operand2_long_object) {
6113
6113
  r = true;
6114
- } else if (Py_SIZE(operand1_long_object) != Py_SIZE(operand2_long_object)) {
6115
- r = Py_SIZE(operand1_long_object) - Py_SIZE(operand2_long_object) > 0;
6114
+ } else if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
6115
+ Nuitka_LongGetSignedDigitSize(operand2_long_object)) {
6116
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - Nuitka_LongGetSignedDigitSize(operand2_long_object) >
6117
+ 0;
6116
6118
  } else {
6117
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
6119
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
6118
6120
  r = true;
6119
6121
  while (--i >= 0) {
6120
- if (operand1_long_object->ob_digit[i] != operand2_long_object->ob_digit[i]) {
6121
- r = operand1_long_object->ob_digit[i] > operand2_long_object->ob_digit[i];
6122
- if (Py_SIZE(operand1_long_object) < 0) {
6122
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] !=
6123
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i]) {
6124
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] >
6125
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i];
6126
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
6123
6127
  r = !r;
6124
6128
  }
6125
6129
  break;
@@ -6734,15 +6738,19 @@ static bool COMPARE_GE_CBOOL_LONG_LONG(PyObject *operand1, PyObject *operand2) {
6734
6738
 
6735
6739
  if (operand1_long_object == operand2_long_object) {
6736
6740
  r = true;
6737
- } else if (Py_SIZE(operand1_long_object) != Py_SIZE(operand2_long_object)) {
6738
- r = Py_SIZE(operand1_long_object) - Py_SIZE(operand2_long_object) > 0;
6741
+ } else if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
6742
+ Nuitka_LongGetSignedDigitSize(operand2_long_object)) {
6743
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - Nuitka_LongGetSignedDigitSize(operand2_long_object) >
6744
+ 0;
6739
6745
  } else {
6740
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
6746
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
6741
6747
  r = true;
6742
6748
  while (--i >= 0) {
6743
- if (operand1_long_object->ob_digit[i] != operand2_long_object->ob_digit[i]) {
6744
- r = operand1_long_object->ob_digit[i] > operand2_long_object->ob_digit[i];
6745
- if (Py_SIZE(operand1_long_object) < 0) {
6749
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] !=
6750
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i]) {
6751
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] >
6752
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i];
6753
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
6746
6754
  r = !r;
6747
6755
  }
6748
6756
  break;
@@ -11577,15 +11585,15 @@ static PyObject *COMPARE_GE_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11577
11585
 
11578
11586
  bool r;
11579
11587
 
11580
- if (Py_SIZE(operand1_long_object) != operand2_size) {
11581
- r = Py_SIZE(operand1_long_object) - operand2_size > 0;
11588
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) != operand2_size) {
11589
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - operand2_size > 0;
11582
11590
  } else {
11583
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11591
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11584
11592
  r = true;
11585
11593
  while (--i >= 0) {
11586
- if (operand1_long_object->ob_digit[i] != operand2_digits[i]) {
11587
- r = operand1_long_object->ob_digit[i] > operand2_digits[i];
11588
- if (Py_SIZE(operand1_long_object) < 0) {
11594
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != operand2_digits[i]) {
11595
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] > operand2_digits[i];
11596
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11589
11597
  r = !r;
11590
11598
  }
11591
11599
  break;
@@ -11641,15 +11649,15 @@ static bool COMPARE_GE_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11641
11649
 
11642
11650
  bool r;
11643
11651
 
11644
- if (Py_SIZE(operand1_long_object) != operand2_size) {
11645
- r = Py_SIZE(operand1_long_object) - operand2_size > 0;
11652
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) != operand2_size) {
11653
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - operand2_size > 0;
11646
11654
  } else {
11647
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11655
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11648
11656
  r = true;
11649
11657
  while (--i >= 0) {
11650
- if (operand1_long_object->ob_digit[i] != operand2_digits[i]) {
11651
- r = operand1_long_object->ob_digit[i] > operand2_digits[i];
11652
- if (Py_SIZE(operand1_long_object) < 0) {
11658
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != operand2_digits[i]) {
11659
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] > operand2_digits[i];
11660
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11653
11661
  r = !r;
11654
11662
  }
11655
11663
  break;
@@ -11722,15 +11730,18 @@ static PyObject *COMPARE_GE_OBJECT_LONG_DIGIT(PyObject *operand1, long operand2)
11722
11730
 
11723
11731
  bool r;
11724
11732
 
11725
- if (Py_SIZE(operand1_long_object) != (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11726
- r = Py_SIZE(operand1_long_object) - (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) > 0;
11733
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
11734
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11735
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) -
11736
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) >
11737
+ 0;
11727
11738
  } else {
11728
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11739
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11729
11740
  r = true;
11730
11741
  while (--i >= 0) {
11731
- if (operand1_long_object->ob_digit[i] != (digit)Py_ABS(operand2)) {
11732
- r = operand1_long_object->ob_digit[i] > (digit)Py_ABS(operand2);
11733
- if (Py_SIZE(operand1_long_object) < 0) {
11742
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != (digit)Py_ABS(operand2)) {
11743
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] > (digit)Py_ABS(operand2);
11744
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11734
11745
  r = !r;
11735
11746
  }
11736
11747
  break;
@@ -11759,15 +11770,18 @@ static bool COMPARE_GE_CBOOL_LONG_DIGIT(PyObject *operand1, long operand2) {
11759
11770
 
11760
11771
  bool r;
11761
11772
 
11762
- if (Py_SIZE(operand1_long_object) != (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11763
- r = Py_SIZE(operand1_long_object) - (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) > 0;
11773
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
11774
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11775
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) -
11776
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) >
11777
+ 0;
11764
11778
  } else {
11765
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11779
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11766
11780
  r = true;
11767
11781
  while (--i >= 0) {
11768
- if (operand1_long_object->ob_digit[i] != (digit)Py_ABS(operand2)) {
11769
- r = operand1_long_object->ob_digit[i] > (digit)Py_ABS(operand2);
11770
- if (Py_SIZE(operand1_long_object) < 0) {
11782
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != (digit)Py_ABS(operand2)) {
11783
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] > (digit)Py_ABS(operand2);
11784
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11771
11785
  r = !r;
11772
11786
  }
11773
11787
  break;
@@ -6095,15 +6095,19 @@ static PyObject *COMPARE_GT_OBJECT_LONG_LONG(PyObject *operand1, PyObject *opera
6095
6095
 
6096
6096
  if (operand1_long_object == operand2_long_object) {
6097
6097
  r = false;
6098
- } else if (Py_SIZE(operand1_long_object) != Py_SIZE(operand2_long_object)) {
6099
- r = Py_SIZE(operand1_long_object) - Py_SIZE(operand2_long_object) > 0;
6098
+ } else if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
6099
+ Nuitka_LongGetSignedDigitSize(operand2_long_object)) {
6100
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - Nuitka_LongGetSignedDigitSize(operand2_long_object) >
6101
+ 0;
6100
6102
  } else {
6101
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
6103
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
6102
6104
  r = false;
6103
6105
  while (--i >= 0) {
6104
- if (operand1_long_object->ob_digit[i] != operand2_long_object->ob_digit[i]) {
6105
- r = operand1_long_object->ob_digit[i] > operand2_long_object->ob_digit[i];
6106
- if (Py_SIZE(operand1_long_object) < 0) {
6106
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] !=
6107
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i]) {
6108
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] >
6109
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i];
6110
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
6107
6111
  r = !r;
6108
6112
  }
6109
6113
  break;
@@ -6718,15 +6722,19 @@ static bool COMPARE_GT_CBOOL_LONG_LONG(PyObject *operand1, PyObject *operand2) {
6718
6722
 
6719
6723
  if (operand1_long_object == operand2_long_object) {
6720
6724
  r = false;
6721
- } else if (Py_SIZE(operand1_long_object) != Py_SIZE(operand2_long_object)) {
6722
- r = Py_SIZE(operand1_long_object) - Py_SIZE(operand2_long_object) > 0;
6725
+ } else if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
6726
+ Nuitka_LongGetSignedDigitSize(operand2_long_object)) {
6727
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - Nuitka_LongGetSignedDigitSize(operand2_long_object) >
6728
+ 0;
6723
6729
  } else {
6724
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
6730
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
6725
6731
  r = false;
6726
6732
  while (--i >= 0) {
6727
- if (operand1_long_object->ob_digit[i] != operand2_long_object->ob_digit[i]) {
6728
- r = operand1_long_object->ob_digit[i] > operand2_long_object->ob_digit[i];
6729
- if (Py_SIZE(operand1_long_object) < 0) {
6733
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] !=
6734
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i]) {
6735
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] >
6736
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i];
6737
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
6730
6738
  r = !r;
6731
6739
  }
6732
6740
  break;
@@ -11561,15 +11569,15 @@ static PyObject *COMPARE_GT_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11561
11569
 
11562
11570
  bool r;
11563
11571
 
11564
- if (Py_SIZE(operand1_long_object) != operand2_size) {
11565
- r = Py_SIZE(operand1_long_object) - operand2_size > 0;
11572
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) != operand2_size) {
11573
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - operand2_size > 0;
11566
11574
  } else {
11567
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11575
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11568
11576
  r = false;
11569
11577
  while (--i >= 0) {
11570
- if (operand1_long_object->ob_digit[i] != operand2_digits[i]) {
11571
- r = operand1_long_object->ob_digit[i] > operand2_digits[i];
11572
- if (Py_SIZE(operand1_long_object) < 0) {
11578
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != operand2_digits[i]) {
11579
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] > operand2_digits[i];
11580
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11573
11581
  r = !r;
11574
11582
  }
11575
11583
  break;
@@ -11625,15 +11633,15 @@ static bool COMPARE_GT_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11625
11633
 
11626
11634
  bool r;
11627
11635
 
11628
- if (Py_SIZE(operand1_long_object) != operand2_size) {
11629
- r = Py_SIZE(operand1_long_object) - operand2_size > 0;
11636
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) != operand2_size) {
11637
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - operand2_size > 0;
11630
11638
  } else {
11631
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11639
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11632
11640
  r = false;
11633
11641
  while (--i >= 0) {
11634
- if (operand1_long_object->ob_digit[i] != operand2_digits[i]) {
11635
- r = operand1_long_object->ob_digit[i] > operand2_digits[i];
11636
- if (Py_SIZE(operand1_long_object) < 0) {
11642
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != operand2_digits[i]) {
11643
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] > operand2_digits[i];
11644
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11637
11645
  r = !r;
11638
11646
  }
11639
11647
  break;
@@ -11706,15 +11714,18 @@ static PyObject *COMPARE_GT_OBJECT_LONG_DIGIT(PyObject *operand1, long operand2)
11706
11714
 
11707
11715
  bool r;
11708
11716
 
11709
- if (Py_SIZE(operand1_long_object) != (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11710
- r = Py_SIZE(operand1_long_object) - (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) > 0;
11717
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
11718
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11719
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) -
11720
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) >
11721
+ 0;
11711
11722
  } else {
11712
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11723
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11713
11724
  r = false;
11714
11725
  while (--i >= 0) {
11715
- if (operand1_long_object->ob_digit[i] != (digit)Py_ABS(operand2)) {
11716
- r = operand1_long_object->ob_digit[i] > (digit)Py_ABS(operand2);
11717
- if (Py_SIZE(operand1_long_object) < 0) {
11726
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != (digit)Py_ABS(operand2)) {
11727
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] > (digit)Py_ABS(operand2);
11728
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11718
11729
  r = !r;
11719
11730
  }
11720
11731
  break;
@@ -11743,15 +11754,18 @@ static bool COMPARE_GT_CBOOL_LONG_DIGIT(PyObject *operand1, long operand2) {
11743
11754
 
11744
11755
  bool r;
11745
11756
 
11746
- if (Py_SIZE(operand1_long_object) != (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11747
- r = Py_SIZE(operand1_long_object) - (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) > 0;
11757
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
11758
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11759
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) -
11760
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) >
11761
+ 0;
11748
11762
  } else {
11749
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11763
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11750
11764
  r = false;
11751
11765
  while (--i >= 0) {
11752
- if (operand1_long_object->ob_digit[i] != (digit)Py_ABS(operand2)) {
11753
- r = operand1_long_object->ob_digit[i] > (digit)Py_ABS(operand2);
11754
- if (Py_SIZE(operand1_long_object) < 0) {
11766
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != (digit)Py_ABS(operand2)) {
11767
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] > (digit)Py_ABS(operand2);
11768
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11755
11769
  r = !r;
11756
11770
  }
11757
11771
  break;
@@ -6173,15 +6173,19 @@ static PyObject *COMPARE_LE_OBJECT_LONG_LONG(PyObject *operand1, PyObject *opera
6173
6173
 
6174
6174
  if (operand1_long_object == operand2_long_object) {
6175
6175
  r = true;
6176
- } else if (Py_SIZE(operand1_long_object) != Py_SIZE(operand2_long_object)) {
6177
- r = Py_SIZE(operand1_long_object) - Py_SIZE(operand2_long_object) < 0;
6176
+ } else if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
6177
+ Nuitka_LongGetSignedDigitSize(operand2_long_object)) {
6178
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - Nuitka_LongGetSignedDigitSize(operand2_long_object) <
6179
+ 0;
6178
6180
  } else {
6179
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
6181
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
6180
6182
  r = true;
6181
6183
  while (--i >= 0) {
6182
- if (operand1_long_object->ob_digit[i] != operand2_long_object->ob_digit[i]) {
6183
- r = operand1_long_object->ob_digit[i] < operand2_long_object->ob_digit[i];
6184
- if (Py_SIZE(operand1_long_object) < 0) {
6184
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] !=
6185
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i]) {
6186
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] <
6187
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i];
6188
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
6185
6189
  r = !r;
6186
6190
  }
6187
6191
  break;
@@ -6802,15 +6806,19 @@ static bool COMPARE_LE_CBOOL_LONG_LONG(PyObject *operand1, PyObject *operand2) {
6802
6806
 
6803
6807
  if (operand1_long_object == operand2_long_object) {
6804
6808
  r = true;
6805
- } else if (Py_SIZE(operand1_long_object) != Py_SIZE(operand2_long_object)) {
6806
- r = Py_SIZE(operand1_long_object) - Py_SIZE(operand2_long_object) < 0;
6809
+ } else if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
6810
+ Nuitka_LongGetSignedDigitSize(operand2_long_object)) {
6811
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - Nuitka_LongGetSignedDigitSize(operand2_long_object) <
6812
+ 0;
6807
6813
  } else {
6808
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
6814
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
6809
6815
  r = true;
6810
6816
  while (--i >= 0) {
6811
- if (operand1_long_object->ob_digit[i] != operand2_long_object->ob_digit[i]) {
6812
- r = operand1_long_object->ob_digit[i] < operand2_long_object->ob_digit[i];
6813
- if (Py_SIZE(operand1_long_object) < 0) {
6817
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] !=
6818
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i]) {
6819
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] <
6820
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i];
6821
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
6814
6822
  r = !r;
6815
6823
  }
6816
6824
  break;
@@ -11663,15 +11671,15 @@ static PyObject *COMPARE_LE_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11663
11671
 
11664
11672
  bool r;
11665
11673
 
11666
- if (Py_SIZE(operand1_long_object) != operand2_size) {
11667
- r = Py_SIZE(operand1_long_object) - operand2_size < 0;
11674
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) != operand2_size) {
11675
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - operand2_size < 0;
11668
11676
  } else {
11669
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11677
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11670
11678
  r = true;
11671
11679
  while (--i >= 0) {
11672
- if (operand1_long_object->ob_digit[i] != operand2_digits[i]) {
11673
- r = operand1_long_object->ob_digit[i] < operand2_digits[i];
11674
- if (Py_SIZE(operand1_long_object) < 0) {
11680
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != operand2_digits[i]) {
11681
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] < operand2_digits[i];
11682
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11675
11683
  r = !r;
11676
11684
  }
11677
11685
  break;
@@ -11727,15 +11735,15 @@ static bool COMPARE_LE_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11727
11735
 
11728
11736
  bool r;
11729
11737
 
11730
- if (Py_SIZE(operand1_long_object) != operand2_size) {
11731
- r = Py_SIZE(operand1_long_object) - operand2_size < 0;
11738
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) != operand2_size) {
11739
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - operand2_size < 0;
11732
11740
  } else {
11733
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11741
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11734
11742
  r = true;
11735
11743
  while (--i >= 0) {
11736
- if (operand1_long_object->ob_digit[i] != operand2_digits[i]) {
11737
- r = operand1_long_object->ob_digit[i] < operand2_digits[i];
11738
- if (Py_SIZE(operand1_long_object) < 0) {
11744
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != operand2_digits[i]) {
11745
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] < operand2_digits[i];
11746
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11739
11747
  r = !r;
11740
11748
  }
11741
11749
  break;
@@ -11808,15 +11816,18 @@ static PyObject *COMPARE_LE_OBJECT_LONG_DIGIT(PyObject *operand1, long operand2)
11808
11816
 
11809
11817
  bool r;
11810
11818
 
11811
- if (Py_SIZE(operand1_long_object) != (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11812
- r = Py_SIZE(operand1_long_object) - (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) < 0;
11819
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
11820
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11821
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) -
11822
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) <
11823
+ 0;
11813
11824
  } else {
11814
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11825
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11815
11826
  r = true;
11816
11827
  while (--i >= 0) {
11817
- if (operand1_long_object->ob_digit[i] != (digit)Py_ABS(operand2)) {
11818
- r = operand1_long_object->ob_digit[i] < (digit)Py_ABS(operand2);
11819
- if (Py_SIZE(operand1_long_object) < 0) {
11828
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != (digit)Py_ABS(operand2)) {
11829
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] < (digit)Py_ABS(operand2);
11830
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11820
11831
  r = !r;
11821
11832
  }
11822
11833
  break;
@@ -11845,15 +11856,18 @@ static bool COMPARE_LE_CBOOL_LONG_DIGIT(PyObject *operand1, long operand2) {
11845
11856
 
11846
11857
  bool r;
11847
11858
 
11848
- if (Py_SIZE(operand1_long_object) != (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11849
- r = Py_SIZE(operand1_long_object) - (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) < 0;
11859
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
11860
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11861
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) -
11862
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) <
11863
+ 0;
11850
11864
  } else {
11851
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11865
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11852
11866
  r = true;
11853
11867
  while (--i >= 0) {
11854
- if (operand1_long_object->ob_digit[i] != (digit)Py_ABS(operand2)) {
11855
- r = operand1_long_object->ob_digit[i] < (digit)Py_ABS(operand2);
11856
- if (Py_SIZE(operand1_long_object) < 0) {
11868
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != (digit)Py_ABS(operand2)) {
11869
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] < (digit)Py_ABS(operand2);
11870
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11857
11871
  r = !r;
11858
11872
  }
11859
11873
  break;
@@ -6157,15 +6157,19 @@ static PyObject *COMPARE_LT_OBJECT_LONG_LONG(PyObject *operand1, PyObject *opera
6157
6157
 
6158
6158
  if (operand1_long_object == operand2_long_object) {
6159
6159
  r = false;
6160
- } else if (Py_SIZE(operand1_long_object) != Py_SIZE(operand2_long_object)) {
6161
- r = Py_SIZE(operand1_long_object) - Py_SIZE(operand2_long_object) < 0;
6160
+ } else if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
6161
+ Nuitka_LongGetSignedDigitSize(operand2_long_object)) {
6162
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - Nuitka_LongGetSignedDigitSize(operand2_long_object) <
6163
+ 0;
6162
6164
  } else {
6163
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
6165
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
6164
6166
  r = false;
6165
6167
  while (--i >= 0) {
6166
- if (operand1_long_object->ob_digit[i] != operand2_long_object->ob_digit[i]) {
6167
- r = operand1_long_object->ob_digit[i] < operand2_long_object->ob_digit[i];
6168
- if (Py_SIZE(operand1_long_object) < 0) {
6168
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] !=
6169
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i]) {
6170
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] <
6171
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i];
6172
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
6169
6173
  r = !r;
6170
6174
  }
6171
6175
  break;
@@ -6786,15 +6790,19 @@ static bool COMPARE_LT_CBOOL_LONG_LONG(PyObject *operand1, PyObject *operand2) {
6786
6790
 
6787
6791
  if (operand1_long_object == operand2_long_object) {
6788
6792
  r = false;
6789
- } else if (Py_SIZE(operand1_long_object) != Py_SIZE(operand2_long_object)) {
6790
- r = Py_SIZE(operand1_long_object) - Py_SIZE(operand2_long_object) < 0;
6793
+ } else if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
6794
+ Nuitka_LongGetSignedDigitSize(operand2_long_object)) {
6795
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - Nuitka_LongGetSignedDigitSize(operand2_long_object) <
6796
+ 0;
6791
6797
  } else {
6792
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
6798
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
6793
6799
  r = false;
6794
6800
  while (--i >= 0) {
6795
- if (operand1_long_object->ob_digit[i] != operand2_long_object->ob_digit[i]) {
6796
- r = operand1_long_object->ob_digit[i] < operand2_long_object->ob_digit[i];
6797
- if (Py_SIZE(operand1_long_object) < 0) {
6801
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] !=
6802
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i]) {
6803
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] <
6804
+ Nuitka_LongGetDigitPointer(operand2_long_object)[i];
6805
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
6798
6806
  r = !r;
6799
6807
  }
6800
6808
  break;
@@ -11647,15 +11655,15 @@ static PyObject *COMPARE_LT_OBJECT_LONG_CLONG(PyObject *operand1, long operand2)
11647
11655
 
11648
11656
  bool r;
11649
11657
 
11650
- if (Py_SIZE(operand1_long_object) != operand2_size) {
11651
- r = Py_SIZE(operand1_long_object) - operand2_size < 0;
11658
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) != operand2_size) {
11659
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - operand2_size < 0;
11652
11660
  } else {
11653
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11661
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11654
11662
  r = false;
11655
11663
  while (--i >= 0) {
11656
- if (operand1_long_object->ob_digit[i] != operand2_digits[i]) {
11657
- r = operand1_long_object->ob_digit[i] < operand2_digits[i];
11658
- if (Py_SIZE(operand1_long_object) < 0) {
11664
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != operand2_digits[i]) {
11665
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] < operand2_digits[i];
11666
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11659
11667
  r = !r;
11660
11668
  }
11661
11669
  break;
@@ -11711,15 +11719,15 @@ static bool COMPARE_LT_CBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
11711
11719
 
11712
11720
  bool r;
11713
11721
 
11714
- if (Py_SIZE(operand1_long_object) != operand2_size) {
11715
- r = Py_SIZE(operand1_long_object) - operand2_size < 0;
11722
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) != operand2_size) {
11723
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) - operand2_size < 0;
11716
11724
  } else {
11717
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11725
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11718
11726
  r = false;
11719
11727
  while (--i >= 0) {
11720
- if (operand1_long_object->ob_digit[i] != operand2_digits[i]) {
11721
- r = operand1_long_object->ob_digit[i] < operand2_digits[i];
11722
- if (Py_SIZE(operand1_long_object) < 0) {
11728
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != operand2_digits[i]) {
11729
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] < operand2_digits[i];
11730
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11723
11731
  r = !r;
11724
11732
  }
11725
11733
  break;
@@ -11792,15 +11800,18 @@ static PyObject *COMPARE_LT_OBJECT_LONG_DIGIT(PyObject *operand1, long operand2)
11792
11800
 
11793
11801
  bool r;
11794
11802
 
11795
- if (Py_SIZE(operand1_long_object) != (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11796
- r = Py_SIZE(operand1_long_object) - (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) < 0;
11803
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
11804
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11805
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) -
11806
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) <
11807
+ 0;
11797
11808
  } else {
11798
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11809
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11799
11810
  r = false;
11800
11811
  while (--i >= 0) {
11801
- if (operand1_long_object->ob_digit[i] != (digit)Py_ABS(operand2)) {
11802
- r = operand1_long_object->ob_digit[i] < (digit)Py_ABS(operand2);
11803
- if (Py_SIZE(operand1_long_object) < 0) {
11812
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != (digit)Py_ABS(operand2)) {
11813
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] < (digit)Py_ABS(operand2);
11814
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11804
11815
  r = !r;
11805
11816
  }
11806
11817
  break;
@@ -11829,15 +11840,18 @@ static bool COMPARE_LT_CBOOL_LONG_DIGIT(PyObject *operand1, long operand2) {
11829
11840
 
11830
11841
  bool r;
11831
11842
 
11832
- if (Py_SIZE(operand1_long_object) != (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11833
- r = Py_SIZE(operand1_long_object) - (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) < 0;
11843
+ if (Nuitka_LongGetSignedDigitSize(operand1_long_object) !=
11844
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1))) {
11845
+ r = Nuitka_LongGetSignedDigitSize(operand1_long_object) -
11846
+ (Py_ssize_t)((operand2 == 0) ? 0 : ((operand2 < 0) ? -1 : 1)) <
11847
+ 0;
11834
11848
  } else {
11835
- Py_ssize_t i = Py_ABS(Py_SIZE(operand1_long_object));
11849
+ Py_ssize_t i = Nuitka_LongGetDigitSize(operand1_long_object);
11836
11850
  r = false;
11837
11851
  while (--i >= 0) {
11838
- if (operand1_long_object->ob_digit[i] != (digit)Py_ABS(operand2)) {
11839
- r = operand1_long_object->ob_digit[i] < (digit)Py_ABS(operand2);
11840
- if (Py_SIZE(operand1_long_object) < 0) {
11852
+ if (Nuitka_LongGetDigitPointer(operand1_long_object)[i] != (digit)Py_ABS(operand2)) {
11853
+ r = Nuitka_LongGetDigitPointer(operand1_long_object)[i] < (digit)Py_ABS(operand2);
11854
+ if (Nuitka_LongIsNegative(operand1_long_object)) {
11841
11855
  r = !r;
11842
11856
  }
11843
11857
  break;