Nuitka-winsvc 2.4.8__cp311-cp311-win_amd64.whl → 2.5.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.
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +2 -1
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/RECORD +294 -271
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +31 -0
- nuitka/HardImportRegistry.py +8 -0
- nuitka/MainControl.py +9 -4
- nuitka/OptionParsing.py +105 -52
- nuitka/Options.py +73 -16
- nuitka/OutputDirectories.py +7 -2
- nuitka/PostProcessing.py +69 -38
- nuitka/Progress.py +16 -1
- nuitka/PythonVersions.py +2 -1
- nuitka/Serialization.py +4 -2
- nuitka/Tracing.py +69 -1
- nuitka/Version.py +2 -2
- nuitka/build/Backend.scons +45 -5
- nuitka/build/CCompilerVersion.scons +6 -0
- nuitka/build/Onefile.scons +6 -0
- nuitka/build/SconsCaching.py +12 -2
- nuitka/build/SconsCompilerSettings.py +17 -6
- nuitka/build/SconsInterface.py +1 -0
- nuitka/build/SconsUtils.py +5 -0
- nuitka/build/include/nuitka/allocator.h +124 -1
- nuitka/build/include/nuitka/calling.h +6 -6
- nuitka/build/include/nuitka/compiled_asyncgen.h +10 -7
- nuitka/build/include/nuitka/compiled_frame.h +2 -1
- nuitka/build/include/nuitka/constants.h +6 -0
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/exceptions.h +264 -121
- nuitka/build/include/nuitka/helper/attributes.h +0 -4
- nuitka/build/include/nuitka/helper/calling_generated.h +52 -52
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/dictionaries.h +65 -29
- nuitka/build/include/nuitka/helper/ints.h +86 -37
- nuitka/build/include/nuitka/helper/iterators.h +82 -34
- nuitka/build/include/nuitka/helper/operations.h +3 -0
- nuitka/build/include/nuitka/helper/operations_binary_add.h +6 -0
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +6 -0
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +3 -0
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +3 -0
- nuitka/build/include/nuitka/helper/raising.h +47 -28
- nuitka/build/include/nuitka/helper/richcomparisons.h +7 -0
- nuitka/build/include/nuitka/helpers.h +12 -2
- nuitka/build/include/nuitka/prelude.h +35 -25
- nuitka/build/include/nuitka/printing.h +9 -7
- nuitka/build/include/nuitka/threading.h +15 -1
- nuitka/build/include/nuitka/type_aliases.h +3 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +45 -39
- nuitka/build/static_src/CompiledCellType.c +6 -4
- nuitka/build/static_src/CompiledCodeHelpers.c +104 -40
- nuitka/build/static_src/CompiledCoroutineType.c +40 -30
- nuitka/build/static_src/CompiledFrameType.c +110 -79
- nuitka/build/static_src/CompiledFunctionType.c +173 -151
- nuitka/build/static_src/CompiledGeneratorType.c +51 -49
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +424 -46
- nuitka/build/static_src/CompiledMethodType.c +10 -13
- nuitka/build/static_src/HelpersAllocator.c +270 -32
- nuitka/build/static_src/HelpersAttributes.c +0 -21
- nuitka/build/static_src/HelpersBuiltin.c +22 -13
- nuitka/build/static_src/HelpersCalling.c +7 -7
- nuitka/build/static_src/HelpersCallingGenerated.c +70 -70
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +18 -4
- nuitka/build/static_src/HelpersComparisonEqUtils.c +1 -0
- nuitka/build/static_src/HelpersComparisonGe.c +18 -4
- nuitka/build/static_src/HelpersComparisonGt.c +18 -4
- nuitka/build/static_src/HelpersComparisonLe.c +18 -4
- nuitka/build/static_src/HelpersComparisonLt.c +18 -4
- nuitka/build/static_src/HelpersComparisonNe.c +18 -4
- nuitka/build/static_src/HelpersConsole.c +34 -8
- nuitka/build/static_src/HelpersConstantsBlob.c +10 -4
- nuitka/build/static_src/HelpersDictionaries.c +181 -34
- nuitka/build/static_src/HelpersDictionariesGenerated.c +0 -106
- nuitka/build/static_src/HelpersExceptions.c +24 -50
- nuitka/build/static_src/HelpersFiles.c +79 -5
- nuitka/build/static_src/HelpersImport.c +13 -9
- nuitka/build/static_src/HelpersImportHard.c +23 -46
- nuitka/build/static_src/HelpersLists.c +98 -9
- nuitka/build/static_src/HelpersMatching.c +1 -1
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +224 -6
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +3 -0
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +5 -5
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +5 -5
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +5 -5
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +8 -2
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +14 -8
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +36 -36
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +1 -0
- nuitka/build/static_src/HelpersOperationBinaryMod.c +22 -10
- nuitka/build/static_src/HelpersOperationBinaryMult.c +17 -7
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +14 -8
- nuitka/build/static_src/HelpersOperationBinaryPow.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +4 -4
- nuitka/build/static_src/HelpersOperationBinarySub.c +229 -8
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +8 -2
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +162 -10
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +5 -5
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +5 -5
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +5 -5
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +11 -6
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +20 -20
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +1 -0
- nuitka/build/static_src/HelpersOperationInplaceMod.c +11 -6
- nuitka/build/static_src/HelpersOperationInplaceMult.c +11 -6
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +11 -6
- nuitka/build/static_src/HelpersOperationInplacePow.c +20 -20
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +4 -4
- nuitka/build/static_src/HelpersOperationInplaceSub.c +163 -10
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +6 -1
- nuitka/build/static_src/HelpersProfiling.c +1 -1
- nuitka/build/static_src/HelpersRaising.c +255 -310
- nuitka/build/static_src/HelpersStrings.c +1 -1
- nuitka/build/static_src/HelpersTuples.c +1 -1
- nuitka/build/static_src/HelpersTypes.c +98 -2
- nuitka/build/static_src/MainProgram.c +117 -29
- nuitka/build/static_src/MetaPathBasedLoader.c +18 -19
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +134 -11
- nuitka/build/static_src/OnefileBootstrap.c +6 -1
- nuitka/code_generation/AsyncgenCodes.py +2 -6
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +269 -167
- nuitka/code_generation/BuiltinCodes.py +9 -1
- nuitka/code_generation/CallCodes.py +16 -16
- nuitka/code_generation/CodeGeneration.py +14 -2
- nuitka/code_generation/CodeHelperSelection.py +1 -1
- nuitka/code_generation/CodeHelpers.py +4 -1
- nuitka/code_generation/CodeObjectCodes.py +2 -2
- nuitka/code_generation/ComparisonCodes.py +13 -2
- nuitka/code_generation/ComparisonHelperDefinitions.py +23 -8
- nuitka/code_generation/Contexts.py +28 -16
- nuitka/code_generation/CoroutineCodes.py +2 -6
- nuitka/code_generation/DictCodes.py +3 -3
- nuitka/code_generation/ErrorCodes.py +34 -50
- nuitka/code_generation/ExceptionCodes.py +165 -96
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +25 -10
- nuitka/code_generation/FrameCodes.py +4 -11
- nuitka/code_generation/FunctionCodes.py +2 -6
- nuitka/code_generation/GeneratorCodes.py +2 -6
- nuitka/code_generation/GlobalConstants.py +8 -2
- nuitka/code_generation/GlobalsLocalsCodes.py +2 -2
- nuitka/code_generation/IteratorCodes.py +67 -54
- nuitka/code_generation/LineNumberCodes.py +1 -3
- nuitka/code_generation/ModuleCodes.py +28 -4
- nuitka/code_generation/OperationCodes.py +51 -20
- nuitka/code_generation/PackageResourceCodes.py +37 -0
- nuitka/code_generation/RaisingCodes.py +164 -90
- nuitka/code_generation/Reports.py +13 -5
- nuitka/code_generation/ReturnCodes.py +2 -16
- nuitka/code_generation/TryCodes.py +12 -24
- nuitka/code_generation/TypeAliasCodes.py +48 -0
- nuitka/code_generation/VariableCodes.py +99 -40
- nuitka/code_generation/VariableDeclarations.py +8 -8
- nuitka/code_generation/YieldCodes.py +1 -1
- nuitka/code_generation/c_types/CTypeBases.py +10 -2
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +3 -0
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +3 -4
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +70 -25
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +1 -1
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +16 -6
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +2 -2
- nuitka/code_generation/templates/CodeTemplatesConstants.py +11 -3
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +2 -2
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +15 -16
- nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -10
- nuitka/code_generation/templates/CodeTemplatesFunction.py +2 -2
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +2 -2
- nuitka/code_generation/templates/CodeTemplatesIterators.py +1 -35
- nuitka/code_generation/templates/CodeTemplatesModules.py +34 -4
- nuitka/code_generation/templates/CodeTemplatesVariables.py +73 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +3 -3
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +3 -3
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +0 -105
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -2
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +9 -9
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +9 -9
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +7 -7
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +9 -9
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +7 -7
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +4 -4
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +1 -1
- nuitka/containers/Namedtuples.py +6 -0
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/distutils/Build.py +14 -0
- nuitka/distutils/DistutilCommands.py +50 -10
- nuitka/finalizations/Finalization.py +3 -3
- nuitka/finalizations/FinalizeMarkups.py +10 -14
- nuitka/freezer/DependsExe.py +13 -3
- nuitka/freezer/DllDependenciesMacOS.py +18 -1
- nuitka/freezer/DllDependenciesWin32.py +26 -12
- nuitka/freezer/ImportDetection.py +3 -0
- nuitka/freezer/IncludedDataFiles.py +31 -8
- nuitka/freezer/IncludedEntryPoints.py +3 -2
- nuitka/freezer/Standalone.py +76 -18
- nuitka/importing/Importing.py +33 -6
- nuitka/importing/Recursion.py +12 -1
- nuitka/importing/StandardLibrary.py +57 -59
- nuitka/nodes/AsyncgenNodes.py +3 -6
- nuitka/nodes/BuiltinIteratorNodes.py +1 -1
- nuitka/nodes/BuiltinRefNodes.py +14 -30
- nuitka/nodes/ChildrenHavingMixins.py +439 -46
- nuitka/nodes/ConditionalNodes.py +3 -2
- nuitka/nodes/CoroutineNodes.py +3 -6
- nuitka/nodes/ExceptionNodes.py +102 -26
- nuitka/nodes/ExpressionBasesGenerated.py +288 -4
- nuitka/nodes/FrameNodes.py +22 -11
- nuitka/nodes/FunctionNodes.py +3 -3
- nuitka/nodes/GeneratorNodes.py +3 -6
- nuitka/nodes/HardImportNodesGenerated.py +182 -0
- nuitka/nodes/ImportNodes.py +2 -2
- nuitka/nodes/NodeBases.py +28 -1
- nuitka/nodes/NodeMakingHelpers.py +71 -50
- nuitka/nodes/OperatorNodesUnary.py +128 -3
- nuitka/nodes/OsSysNodes.py +37 -6
- nuitka/nodes/OutlineNodes.py +2 -2
- nuitka/nodes/StatementBasesGenerated.py +0 -2
- nuitka/nodes/StatementNodes.py +8 -7
- nuitka/nodes/SubscriptNodes.py +1 -1
- nuitka/nodes/TypeNodes.py +28 -1
- nuitka/nodes/shapes/BuiltinTypeShapes.py +24 -7
- nuitka/nodes/shapes/ShapeMixins.py +17 -0
- nuitka/nodes/shapes/StandardShapes.py +53 -1
- nuitka/optimizations/BytecodeDemotion.py +2 -1
- nuitka/plugins/PluginBase.py +64 -22
- nuitka/plugins/Plugins.py +6 -3
- nuitka/plugins/standard/AntiBloatPlugin.py +23 -12
- nuitka/plugins/standard/ImplicitImports.py +1 -13
- nuitka/plugins/standard/KivyPlugin.py +3 -12
- nuitka/plugins/standard/MatplotlibPlugin.py +12 -1
- nuitka/plugins/standard/MultiprocessingPlugin.py +11 -20
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PySidePyQtPlugin.py +8 -0
- nuitka/plugins/standard/TkinterPlugin.py +0 -56
- nuitka/plugins/standard/TransformersPlugin.py +70 -275
- nuitka/plugins/standard/standard.nuitka-package.config.yml +510 -28
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +35 -2
- nuitka/reports/CompilationReportReader.py +12 -0
- nuitka/reports/Reports.py +11 -0
- nuitka/specs/BuiltinParameterSpecs.py +5 -1
- nuitka/specs/HardImportSpecs.py +7 -0
- nuitka/specs/ParameterSpecs.py +4 -4
- nuitka/tools/general/dll_report/__main__.py +10 -1
- nuitka/tools/onefile_compressor/OnefileCompressor.py +1 -1
- nuitka/tools/specialize/CTypeDescriptions.py +158 -9
- nuitka/tools/specialize/SpecializeC.py +218 -56
- nuitka/tools/testing/Common.py +70 -63
- nuitka/tools/testing/compare_with_cpython/__main__.py +3 -1
- nuitka/tools/testing/measure_construct_performance/__main__.py +1 -8
- nuitka/tools/testing/run_nuitka_tests/__main__.py +77 -11
- nuitka/tools/watch/AutoStage.py +1 -0
- nuitka/tree/Building.py +10 -37
- nuitka/tree/ComplexCallHelperFunctions.py +4 -0
- nuitka/tree/ReformulationAssertStatements.py +31 -14
- nuitka/tree/ReformulationAssignmentStatements.py +5 -1
- nuitka/tree/ReformulationClasses3.py +94 -19
- nuitka/tree/ReformulationDictionaryCreation.py +1 -0
- nuitka/tree/ReformulationFunctionStatements.py +1 -1
- nuitka/tree/ReformulationMatchStatements.py +3 -1
- nuitka/tree/ReformulationYieldExpressions.py +23 -5
- nuitka/utils/CommandLineOptions.py +27 -3
- nuitka/utils/Download.py +2 -2
- nuitka/utils/Execution.py +36 -31
- nuitka/utils/FileOperations.py +39 -54
- nuitka/utils/Importing.py +2 -14
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +9 -4
- nuitka/utils/Json.py +2 -2
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/Utils.py +17 -0
- {Nuitka_winsvc-2.4.8.data → Nuitka_winsvc-2.5.1.data}/scripts/nuitka-run.cmd +0 -0
- {Nuitka_winsvc-2.4.8.data → Nuitka_winsvc-2.5.1.data}/scripts/nuitka.cmd +0 -0
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -9,87 +9,87 @@
|
|
|
9
9
|
|
|
10
10
|
extern PyObject *CALL_FUNCTION_NO_ARGS(PyThreadState *tstate, PyObject *called);
|
|
11
11
|
extern PyObject *CALL_FUNCTION_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called, PyObject *arg);
|
|
12
|
-
extern PyObject *
|
|
12
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS1(PyThreadState *tstate, PyObject *called, PyObject *pos_args);
|
|
13
13
|
extern PyObject *CALL_FUNCTION_WITH_ARGS2(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
14
|
-
extern PyObject *
|
|
14
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS2(PyThreadState *tstate, PyObject *called, PyObject *pos_args);
|
|
15
15
|
extern PyObject *CALL_FUNCTION_WITH_ARGS3(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
16
|
-
extern PyObject *
|
|
16
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS3(PyThreadState *tstate, PyObject *called, PyObject *pos_args);
|
|
17
17
|
extern PyObject *CALL_FUNCTION_WITH_ARGS4(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
18
|
-
extern PyObject *
|
|
18
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS4(PyThreadState *tstate, PyObject *called, PyObject *pos_args);
|
|
19
19
|
extern PyObject *CALL_FUNCTION_WITH_ARGS5(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
20
|
-
extern PyObject *
|
|
20
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS5(PyThreadState *tstate, PyObject *called, PyObject *pos_args);
|
|
21
21
|
extern PyObject *CALL_FUNCTION_WITH_ARGS6(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
22
|
-
extern PyObject *
|
|
22
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS6(PyThreadState *tstate, PyObject *called, PyObject *pos_args);
|
|
23
23
|
extern PyObject *CALL_FUNCTION_WITH_ARGS7(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
24
|
-
extern PyObject *
|
|
24
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS7(PyThreadState *tstate, PyObject *called, PyObject *pos_args);
|
|
25
25
|
extern PyObject *CALL_FUNCTION_WITH_ARGS8(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
26
|
-
extern PyObject *
|
|
26
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS8(PyThreadState *tstate, PyObject *called, PyObject *pos_args);
|
|
27
27
|
extern PyObject *CALL_FUNCTION_WITH_ARGS9(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
28
|
-
extern PyObject *
|
|
28
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS9(PyThreadState *tstate, PyObject *called, PyObject *pos_args);
|
|
29
29
|
extern PyObject *CALL_FUNCTION_WITH_ARGS10(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
30
|
-
extern PyObject *
|
|
31
|
-
extern PyObject *
|
|
32
|
-
|
|
30
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS10(PyThreadState *tstate, PyObject *called, PyObject *pos_args);
|
|
31
|
+
extern PyObject *CALL_FUNCTION_WITH_NO_ARGS_KW_SPLIT(PyThreadState *tstate, PyObject *called,
|
|
32
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
33
33
|
extern PyObject *CALL_FUNCTION_WITH_ARGS1_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
34
34
|
PyObject *kw_names);
|
|
35
|
-
extern PyObject *
|
|
36
|
-
|
|
37
|
-
extern PyObject *
|
|
38
|
-
|
|
35
|
+
extern PyObject *CALL_FUNCTION_WITH_ARGS1_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
36
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
37
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS1_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
38
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
39
39
|
extern PyObject *CALL_FUNCTION_WITH_ARGS2_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
40
40
|
PyObject *kw_names);
|
|
41
|
-
extern PyObject *
|
|
42
|
-
|
|
43
|
-
extern PyObject *
|
|
44
|
-
|
|
41
|
+
extern PyObject *CALL_FUNCTION_WITH_ARGS2_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
42
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
43
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS2_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
44
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
45
45
|
extern PyObject *CALL_FUNCTION_WITH_ARGS3_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
46
46
|
PyObject *kw_names);
|
|
47
|
-
extern PyObject *
|
|
48
|
-
|
|
49
|
-
extern PyObject *
|
|
50
|
-
|
|
47
|
+
extern PyObject *CALL_FUNCTION_WITH_ARGS3_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
48
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
49
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS3_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
50
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
51
51
|
extern PyObject *CALL_FUNCTION_WITH_ARGS4_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
52
52
|
PyObject *kw_names);
|
|
53
|
-
extern PyObject *
|
|
54
|
-
|
|
55
|
-
extern PyObject *
|
|
56
|
-
|
|
53
|
+
extern PyObject *CALL_FUNCTION_WITH_ARGS4_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
54
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
55
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS4_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
56
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
57
57
|
extern PyObject *CALL_FUNCTION_WITH_ARGS5_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
58
58
|
PyObject *kw_names);
|
|
59
|
-
extern PyObject *
|
|
60
|
-
|
|
61
|
-
extern PyObject *
|
|
62
|
-
|
|
59
|
+
extern PyObject *CALL_FUNCTION_WITH_ARGS5_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
60
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
61
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS5_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
62
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
63
63
|
extern PyObject *CALL_FUNCTION_WITH_ARGS6_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
64
64
|
PyObject *kw_names);
|
|
65
|
-
extern PyObject *
|
|
66
|
-
|
|
67
|
-
extern PyObject *
|
|
68
|
-
|
|
65
|
+
extern PyObject *CALL_FUNCTION_WITH_ARGS6_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
66
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
67
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS6_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
68
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
69
69
|
extern PyObject *CALL_FUNCTION_WITH_ARGS7_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
70
70
|
PyObject *kw_names);
|
|
71
|
-
extern PyObject *
|
|
72
|
-
|
|
73
|
-
extern PyObject *
|
|
74
|
-
|
|
71
|
+
extern PyObject *CALL_FUNCTION_WITH_ARGS7_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
72
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
73
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS7_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
74
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
75
75
|
extern PyObject *CALL_FUNCTION_WITH_ARGS8_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
76
76
|
PyObject *kw_names);
|
|
77
|
-
extern PyObject *
|
|
78
|
-
|
|
79
|
-
extern PyObject *
|
|
80
|
-
|
|
77
|
+
extern PyObject *CALL_FUNCTION_WITH_ARGS8_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
78
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
79
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS8_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
80
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
81
81
|
extern PyObject *CALL_FUNCTION_WITH_ARGS9_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
82
82
|
PyObject *kw_names);
|
|
83
|
-
extern PyObject *
|
|
84
|
-
|
|
85
|
-
extern PyObject *
|
|
86
|
-
|
|
83
|
+
extern PyObject *CALL_FUNCTION_WITH_ARGS9_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
84
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
85
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS9_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
86
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
87
87
|
extern PyObject *CALL_FUNCTION_WITH_ARGS10_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
88
88
|
PyObject *kw_names);
|
|
89
|
-
extern PyObject *
|
|
90
|
-
|
|
91
|
-
extern PyObject *
|
|
92
|
-
|
|
89
|
+
extern PyObject *CALL_FUNCTION_WITH_ARGS10_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
90
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
91
|
+
extern PyObject *CALL_FUNCTION_WITH_POS_ARGS10_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
92
|
+
PyObject *const *kw_values, PyObject *kw_names);
|
|
93
93
|
extern PyObject *CALL_METHODDESCR_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called, PyObject *arg);
|
|
94
94
|
extern PyObject *CALL_METHODDESCR_WITH_ARGS2(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
95
95
|
extern PyObject *CALL_METHODDESCR_WITH_ARGS3(PyThreadState *tstate, PyObject *called, PyObject *const *args);
|
|
@@ -0,0 +1,47 @@
|
|
|
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 "==" (EQ) comparisons */
|
|
11
|
+
|
|
12
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "NILONG" to Nuitka int/long/C long value.
|
|
13
|
+
*/
|
|
14
|
+
extern PyObject *RICH_COMPARE_EQ_OBJECT_NILONG_NILONG(nuitka_ilong *operand1, nuitka_ilong *operand2);
|
|
15
|
+
|
|
16
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "NILONG" to Nuitka int/long/C long value.
|
|
17
|
+
*/
|
|
18
|
+
extern bool RICH_COMPARE_EQ_CBOOL_NILONG_NILONG(nuitka_ilong *operand1, nuitka_ilong *operand2);
|
|
19
|
+
|
|
20
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
21
|
+
extern PyObject *RICH_COMPARE_EQ_OBJECT_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
22
|
+
|
|
23
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
24
|
+
extern bool RICH_COMPARE_EQ_CBOOL_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
25
|
+
|
|
26
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
27
|
+
* Python objects. */
|
|
28
|
+
extern PyObject *RICH_COMPARE_EQ_OBJECT_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
29
|
+
|
|
30
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
31
|
+
* Python objects. */
|
|
32
|
+
extern bool RICH_COMPARE_EQ_CBOOL_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
33
|
+
|
|
34
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
35
|
+
// integrates with CPython, but also works on its own.
|
|
36
|
+
//
|
|
37
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
38
|
+
// you may not use this file except in compliance with the License.
|
|
39
|
+
// You may obtain a copy of the License at
|
|
40
|
+
//
|
|
41
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
42
|
+
//
|
|
43
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
44
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
45
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
46
|
+
// See the License for the specific language governing permissions and
|
|
47
|
+
// limitations under the License.
|
|
@@ -0,0 +1,39 @@
|
|
|
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 ">=" (GE) comparisons */
|
|
11
|
+
|
|
12
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
13
|
+
extern PyObject *RICH_COMPARE_GE_OBJECT_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
14
|
+
|
|
15
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
16
|
+
extern bool RICH_COMPARE_GE_CBOOL_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
17
|
+
|
|
18
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
19
|
+
* Python objects. */
|
|
20
|
+
extern PyObject *RICH_COMPARE_GE_OBJECT_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
21
|
+
|
|
22
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
23
|
+
* Python objects. */
|
|
24
|
+
extern bool RICH_COMPARE_GE_CBOOL_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
25
|
+
|
|
26
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
27
|
+
// integrates with CPython, but also works on its own.
|
|
28
|
+
//
|
|
29
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
30
|
+
// you may not use this file except in compliance with the License.
|
|
31
|
+
// You may obtain a copy of the License at
|
|
32
|
+
//
|
|
33
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
34
|
+
//
|
|
35
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
36
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
37
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
38
|
+
// See the License for the specific language governing permissions and
|
|
39
|
+
// limitations under the License.
|
|
@@ -0,0 +1,39 @@
|
|
|
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 ">" (GT) comparisons */
|
|
11
|
+
|
|
12
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
13
|
+
extern PyObject *RICH_COMPARE_GT_OBJECT_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
14
|
+
|
|
15
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
16
|
+
extern bool RICH_COMPARE_GT_CBOOL_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
17
|
+
|
|
18
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
19
|
+
* Python objects. */
|
|
20
|
+
extern PyObject *RICH_COMPARE_GT_OBJECT_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
21
|
+
|
|
22
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
23
|
+
* Python objects. */
|
|
24
|
+
extern bool RICH_COMPARE_GT_CBOOL_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
25
|
+
|
|
26
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
27
|
+
// integrates with CPython, but also works on its own.
|
|
28
|
+
//
|
|
29
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
30
|
+
// you may not use this file except in compliance with the License.
|
|
31
|
+
// You may obtain a copy of the License at
|
|
32
|
+
//
|
|
33
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
34
|
+
//
|
|
35
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
36
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
37
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
38
|
+
// See the License for the specific language governing permissions and
|
|
39
|
+
// limitations under the License.
|
|
@@ -0,0 +1,47 @@
|
|
|
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 "<=" (LE) comparisons */
|
|
11
|
+
|
|
12
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "NILONG" to Nuitka int/long/C long value.
|
|
13
|
+
*/
|
|
14
|
+
extern PyObject *RICH_COMPARE_LE_OBJECT_NILONG_NILONG(nuitka_ilong *operand1, nuitka_ilong *operand2);
|
|
15
|
+
|
|
16
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "NILONG" to Nuitka int/long/C long value.
|
|
17
|
+
*/
|
|
18
|
+
extern bool RICH_COMPARE_LE_CBOOL_NILONG_NILONG(nuitka_ilong *operand1, nuitka_ilong *operand2);
|
|
19
|
+
|
|
20
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
21
|
+
extern PyObject *RICH_COMPARE_LE_OBJECT_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
22
|
+
|
|
23
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
24
|
+
extern bool RICH_COMPARE_LE_CBOOL_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
25
|
+
|
|
26
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
27
|
+
* Python objects. */
|
|
28
|
+
extern PyObject *RICH_COMPARE_LE_OBJECT_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
29
|
+
|
|
30
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
31
|
+
* Python objects. */
|
|
32
|
+
extern bool RICH_COMPARE_LE_CBOOL_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
33
|
+
|
|
34
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
35
|
+
// integrates with CPython, but also works on its own.
|
|
36
|
+
//
|
|
37
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
38
|
+
// you may not use this file except in compliance with the License.
|
|
39
|
+
// You may obtain a copy of the License at
|
|
40
|
+
//
|
|
41
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
42
|
+
//
|
|
43
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
44
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
45
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
46
|
+
// See the License for the specific language governing permissions and
|
|
47
|
+
// limitations under the License.
|
|
@@ -0,0 +1,47 @@
|
|
|
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 "<" (LT) comparisons */
|
|
11
|
+
|
|
12
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "NILONG" to Nuitka int/long/C long value.
|
|
13
|
+
*/
|
|
14
|
+
extern PyObject *RICH_COMPARE_LT_OBJECT_NILONG_NILONG(nuitka_ilong *operand1, nuitka_ilong *operand2);
|
|
15
|
+
|
|
16
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "NILONG" to Nuitka int/long/C long value.
|
|
17
|
+
*/
|
|
18
|
+
extern bool RICH_COMPARE_LT_CBOOL_NILONG_NILONG(nuitka_ilong *operand1, nuitka_ilong *operand2);
|
|
19
|
+
|
|
20
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
21
|
+
extern PyObject *RICH_COMPARE_LT_OBJECT_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
22
|
+
|
|
23
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
24
|
+
extern bool RICH_COMPARE_LT_CBOOL_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
25
|
+
|
|
26
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
27
|
+
* Python objects. */
|
|
28
|
+
extern PyObject *RICH_COMPARE_LT_OBJECT_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
29
|
+
|
|
30
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
31
|
+
* Python objects. */
|
|
32
|
+
extern bool RICH_COMPARE_LT_CBOOL_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
33
|
+
|
|
34
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
35
|
+
// integrates with CPython, but also works on its own.
|
|
36
|
+
//
|
|
37
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
38
|
+
// you may not use this file except in compliance with the License.
|
|
39
|
+
// You may obtain a copy of the License at
|
|
40
|
+
//
|
|
41
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
42
|
+
//
|
|
43
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
44
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
45
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
46
|
+
// See the License for the specific language governing permissions and
|
|
47
|
+
// limitations under the License.
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
extern PyObject *RICH_COMPARE_NE_OBJECT_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
14
|
+
|
|
15
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
16
|
+
extern bool RICH_COMPARE_NE_CBOOL_NILONG_CLONG(nuitka_ilong *operand1, long operand2);
|
|
17
|
+
|
|
18
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
19
|
+
* Python objects. */
|
|
20
|
+
extern PyObject *RICH_COMPARE_NE_OBJECT_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
21
|
+
|
|
22
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
23
|
+
* Python objects. */
|
|
24
|
+
extern bool RICH_COMPARE_NE_CBOOL_NILONG_DIGIT(nuitka_ilong *operand1, long operand2);
|
|
25
|
+
|
|
26
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
27
|
+
// integrates with CPython, but also works on its own.
|
|
28
|
+
//
|
|
29
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
30
|
+
// you may not use this file except in compliance with the License.
|
|
31
|
+
// You may obtain a copy of the License at
|
|
32
|
+
//
|
|
33
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
34
|
+
//
|
|
35
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
36
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
37
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
38
|
+
// See the License for the specific language governing permissions and
|
|
39
|
+
// limitations under the License.
|
|
@@ -31,7 +31,7 @@ static PyDictEntry *GET_STRING_DICT_ENTRY(PyDictObject *dict, Nuitka_StringObjec
|
|
|
31
31
|
|
|
32
32
|
// Only improvement would be to identify how to ensure that the hash is
|
|
33
33
|
// computed already. Calling hash early on could do that potentially.
|
|
34
|
-
if (hash == -1) {
|
|
34
|
+
if (unlikely(hash == -1)) {
|
|
35
35
|
hash = PyString_Type.tp_hash((PyObject *)key);
|
|
36
36
|
key->ob_shash = hash;
|
|
37
37
|
}
|
|
@@ -57,7 +57,7 @@ static PyObject *GET_STRING_DICT_VALUE(PyDictObject *dict, Nuitka_StringObject *
|
|
|
57
57
|
|
|
58
58
|
#else
|
|
59
59
|
|
|
60
|
-
//
|
|
60
|
+
// Python3
|
|
61
61
|
|
|
62
62
|
// Quick dictionary lookup for a string value.
|
|
63
63
|
|
|
@@ -144,6 +144,8 @@ struct _dictkeysobject {
|
|
|
144
144
|
typedef PyObject **Nuitka_DictEntryHandle;
|
|
145
145
|
|
|
146
146
|
#if PYTHON_VERSION >= 0x3b0
|
|
147
|
+
extern Py_ssize_t Nuitka_Py_unicodekeys_lookup_unicode(PyDictKeysObject *dk, PyObject *key, Py_hash_t hash);
|
|
148
|
+
|
|
147
149
|
extern Py_ssize_t Nuitka_PyDictLookup(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject ***value_addr);
|
|
148
150
|
extern Py_ssize_t Nuitka_PyDictLookupStr(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject ***value_addr);
|
|
149
151
|
#endif
|
|
@@ -188,10 +190,8 @@ static Nuitka_DictEntryHandle GET_STRING_DICT_ENTRY(PyDictObject *dict, Nuitka_S
|
|
|
188
190
|
|
|
189
191
|
if (value == NULL) {
|
|
190
192
|
return NULL;
|
|
191
|
-
#ifndef PY_NOGIL
|
|
192
193
|
} else if (_PyDict_HasSplitTable(dict)) {
|
|
193
194
|
return &dict->ma_values[ix];
|
|
194
|
-
#endif
|
|
195
195
|
} else {
|
|
196
196
|
return &DK_ENTRIES(dict->ma_keys)[ix].me_value;
|
|
197
197
|
}
|
|
@@ -268,6 +268,17 @@ extern int DICT_HAS_ITEM(PyThreadState *tstate, PyObject *dict, PyObject *key);
|
|
|
268
268
|
// Convert to dictionary, helper for built-in "dict" mainly.
|
|
269
269
|
extern PyObject *TO_DICT(PyThreadState *tstate, PyObject *seq_obj, PyObject *dict_obj);
|
|
270
270
|
|
|
271
|
+
// For 3.6 to 3.10, the dictionary version tag is used for caching purposes, so
|
|
272
|
+
// we need to maintain it. However it's private value so we have to play a game
|
|
273
|
+
// of having our own number space inside of their 64 bit numbers.
|
|
274
|
+
#if PYTHON_VERSION >= 0x360 && PYTHON_VERSION <= 0x3c0
|
|
275
|
+
#define _NUITKA_MAINTAIN_DICT_VERSION_TAG 1
|
|
276
|
+
#endif
|
|
277
|
+
|
|
278
|
+
#if _NUITKA_MAINTAIN_DICT_VERSION_TAG
|
|
279
|
+
extern uint64_t nuitka_dict_version_tag_counter;
|
|
280
|
+
#endif
|
|
281
|
+
|
|
271
282
|
NUITKA_MAY_BE_UNUSED static void UPDATE_STRING_DICT0(PyDictObject *dict, Nuitka_StringObject *key, PyObject *value) {
|
|
272
283
|
CHECK_OBJECT(value);
|
|
273
284
|
|
|
@@ -281,18 +292,25 @@ NUITKA_MAY_BE_UNUSED static void UPDATE_STRING_DICT0(PyDictObject *dict, Nuitka_
|
|
|
281
292
|
#endif
|
|
282
293
|
|
|
283
294
|
PyObject *old = GET_DICT_ENTRY_VALUE(entry);
|
|
295
|
+
CHECK_OBJECT_X(old);
|
|
284
296
|
|
|
285
|
-
|
|
286
|
-
// speculatively try the quickest access method.
|
|
287
|
-
if (likely(old != NULL)) {
|
|
288
|
-
Py_INCREF(value);
|
|
289
|
-
SET_DICT_ENTRY_VALUE(entry, value);
|
|
297
|
+
if (value != old) {
|
|
290
298
|
|
|
291
|
-
|
|
299
|
+
// Values are more likely (more often) set than not set, in that case
|
|
300
|
+
// speculatively try the quickest access method.
|
|
301
|
+
if (likely(old != NULL)) {
|
|
302
|
+
Py_INCREF(value);
|
|
303
|
+
SET_DICT_ENTRY_VALUE(entry, value);
|
|
292
304
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
305
|
+
#if _NUITKA_MAINTAIN_DICT_VERSION_TAG
|
|
306
|
+
dict->ma_version_tag = nuitka_dict_version_tag_counter++;
|
|
307
|
+
#endif
|
|
308
|
+
CHECK_OBJECT(old);
|
|
309
|
+
|
|
310
|
+
Py_DECREF(old);
|
|
311
|
+
} else {
|
|
312
|
+
DICT_SET_ITEM((PyObject *)dict, (PyObject *)key, value);
|
|
313
|
+
}
|
|
296
314
|
}
|
|
297
315
|
}
|
|
298
316
|
|
|
@@ -315,14 +333,23 @@ NUITKA_MAY_BE_UNUSED static void UPDATE_STRING_DICT_INPLACE(PyDictObject *dict,
|
|
|
315
333
|
|
|
316
334
|
PyObject *old = GET_DICT_ENTRY_VALUE(entry);
|
|
317
335
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
336
|
+
if (old != value) {
|
|
337
|
+
// Values are more likely (more often) set than not set, in that case
|
|
338
|
+
// speculatively try the quickest access method.
|
|
339
|
+
if (likely(old != NULL)) {
|
|
340
|
+
SET_DICT_ENTRY_VALUE(entry, value);
|
|
341
|
+
|
|
342
|
+
#if _NUITKA_MAINTAIN_DICT_VERSION_TAG
|
|
343
|
+
dict->ma_version_tag = nuitka_dict_version_tag_counter++;
|
|
344
|
+
#endif
|
|
345
|
+
} else {
|
|
346
|
+
DICT_SET_ITEM((PyObject *)dict, (PyObject *)key, value);
|
|
347
|
+
Py_DECREF(value);
|
|
348
|
+
|
|
349
|
+
CHECK_OBJECT(value);
|
|
350
|
+
}
|
|
322
351
|
} else {
|
|
323
|
-
DICT_SET_ITEM((PyObject *)dict, (PyObject *)key, value);
|
|
324
352
|
Py_DECREF(value);
|
|
325
|
-
|
|
326
353
|
CHECK_OBJECT(value);
|
|
327
354
|
}
|
|
328
355
|
}
|
|
@@ -345,16 +372,25 @@ NUITKA_MAY_BE_UNUSED static void UPDATE_STRING_DICT1(PyDictObject *dict, Nuitka_
|
|
|
345
372
|
#endif
|
|
346
373
|
|
|
347
374
|
PyObject *old = GET_DICT_ENTRY_VALUE(entry);
|
|
375
|
+
CHECK_OBJECT_X(old);
|
|
348
376
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
377
|
+
if (old != value) {
|
|
378
|
+
// Values are more likely (more often) set than not set, in that case
|
|
379
|
+
// speculatively try the quickest access method.
|
|
380
|
+
if (likely(old != NULL)) {
|
|
381
|
+
SET_DICT_ENTRY_VALUE(entry, value);
|
|
353
382
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
383
|
+
#if _NUITKA_MAINTAIN_DICT_VERSION_TAG
|
|
384
|
+
dict->ma_version_tag = nuitka_dict_version_tag_counter++;
|
|
385
|
+
#endif
|
|
386
|
+
Py_DECREF(old);
|
|
387
|
+
} else {
|
|
388
|
+
DICT_SET_ITEM((PyObject *)dict, (PyObject *)key, value);
|
|
357
389
|
|
|
390
|
+
Py_DECREF(value);
|
|
391
|
+
CHECK_OBJECT(value);
|
|
392
|
+
}
|
|
393
|
+
} else {
|
|
358
394
|
Py_DECREF(value);
|
|
359
395
|
CHECK_OBJECT(value);
|
|
360
396
|
}
|
|
@@ -370,13 +406,13 @@ extern PyObject *DICT_ITEMS(PyObject *dict);
|
|
|
370
406
|
#endif
|
|
371
407
|
|
|
372
408
|
// Python3 dictionary keys, Python2 iterkeys returns dictionary keys iterator
|
|
373
|
-
extern PyObject *DICT_ITERKEYS(PyObject *dict);
|
|
409
|
+
extern PyObject *DICT_ITERKEYS(PyThreadState *tstate, PyObject *dict);
|
|
374
410
|
|
|
375
411
|
// Python3 dictionary values, Python2 itervalues returns dictionary values iterator
|
|
376
|
-
extern PyObject *DICT_ITERVALUES(PyObject *dict);
|
|
412
|
+
extern PyObject *DICT_ITERVALUES(PyThreadState *tstate, PyObject *dict);
|
|
377
413
|
|
|
378
414
|
// Python3 dictionary items, Python2 iteritems returns dictionary items iterator
|
|
379
|
-
extern PyObject *DICT_ITERITEMS(PyObject *dict);
|
|
415
|
+
extern PyObject *DICT_ITERITEMS(PyThreadState *tstate, PyObject *dict);
|
|
380
416
|
|
|
381
417
|
// Python dictionary keys view
|
|
382
418
|
extern PyObject *DICT_VIEWKEYS(PyObject *dict);
|