Nuitka-winsvc 2.4.11__cp311-cp311-win_amd64.whl → 2.5.6__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/METADATA +56 -109
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/RECORD +304 -280
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +31 -0
- nuitka/HardImportRegistry.py +8 -0
- nuitka/MainControl.py +9 -4
- nuitka/OptionParsing.py +108 -54
- nuitka/Options.py +69 -13
- 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 +4 -0
- nuitka/build/SconsCompilerSettings.py +14 -3
- nuitka/build/SconsInterface.py +3 -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 +8 -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 +75 -31
- 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/helper/tuples.h +12 -0
- nuitka/build/include/nuitka/helpers.h +12 -2
- nuitka/build/include/nuitka/prelude.h +36 -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 +106 -40
- nuitka/build/static_src/CompiledCoroutineType.c +41 -31
- 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 +433 -46
- nuitka/build/static_src/CompiledMethodType.c +6 -12
- nuitka/build/static_src/HelpersAllocator.c +266 -28
- nuitka/build/static_src/HelpersAttributes.c +0 -21
- nuitka/build/static_src/HelpersBuiltin.c +23 -14
- 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/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 +4 -2
- nuitka/build/static_src/HelpersDeepcopy.c +1 -0
- nuitka/build/static_src/HelpersDictionaries.c +195 -36
- nuitka/build/static_src/HelpersDictionariesGenerated.c +12 -107
- 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/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 +2 -2
- nuitka/build/static_src/HelpersTypes.c +98 -2
- nuitka/build/static_src/MainProgram.c +132 -28
- 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 +76 -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 +4 -106
- 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 +5 -2
- nuitka/freezer/DllDependenciesMacOS.py +18 -1
- nuitka/freezer/DllDependenciesWin32.py +26 -12
- nuitka/freezer/ImportDetection.py +6 -0
- nuitka/freezer/IncludedDataFiles.py +37 -6
- nuitka/freezer/Onefile.py +1 -0
- nuitka/freezer/Standalone.py +72 -18
- nuitka/importing/Importing.py +33 -6
- nuitka/importing/Recursion.py +5 -2
- nuitka/importing/StandardLibrary.py +57 -59
- nuitka/nodes/AsyncgenNodes.py +3 -6
- nuitka/nodes/BuiltinIteratorNodes.py +2 -2
- 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/DictionaryNodes.py +1 -1
- 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/VariableAssignNodes.py +2 -1
- nuitka/nodes/shapes/BuiltinTypeShapes.py +24 -7
- nuitka/nodes/shapes/IteratorShapes.py +71 -0
- nuitka/nodes/shapes/ShapeMixins.py +18 -0
- nuitka/nodes/shapes/StandardShapes.py +47 -44
- nuitka/optimizations/BytecodeDemotion.py +2 -1
- nuitka/plugins/PluginBase.py +64 -22
- nuitka/plugins/Plugins.py +16 -3
- nuitka/plugins/standard/AntiBloatPlugin.py +23 -12
- nuitka/plugins/standard/DllFilesPlugin.py +78 -2
- nuitka/plugins/standard/ImplicitImports.py +5 -15
- nuitka/plugins/standard/KivyPlugin.py +3 -12
- nuitka/plugins/standard/MatplotlibPlugin.py +12 -1
- nuitka/plugins/standard/MultiprocessingPlugin.py +11 -20
- nuitka/plugins/standard/OptionsNannyPlugin.py +5 -4
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PySidePyQtPlugin.py +8 -0
- nuitka/plugins/standard/TkinterPlugin.py +23 -3
- nuitka/plugins/standard/TransformersPlugin.py +70 -275
- nuitka/plugins/standard/standard.nuitka-package.config.yml +413 -30
- 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/environments/Virtualenv.py +13 -5
- nuitka/tools/general/dll_report/__main__.py +10 -1
- nuitka/tools/onefile_compressor/OnefileCompressor.py +1 -1
- nuitka/tools/podman/__main__.py +4 -2
- nuitka/tools/specialize/CTypeDescriptions.py +158 -9
- nuitka/tools/specialize/SpecializeC.py +218 -56
- nuitka/tools/testing/Common.py +69 -62
- 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 +18 -39
- nuitka/utils/Hashing.py +5 -1
- 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/SharedLibraries.py +24 -0
- nuitka/utils/Signing.py +9 -1
- nuitka/utils/Utils.py +1 -0
- {Nuitka_winsvc-2.4.11.data → Nuitka_winsvc-2.5.6.data}/scripts/nuitka-run.cmd +0 -0
- {Nuitka_winsvc-2.4.11.data → Nuitka_winsvc-2.5.6.data}/scripts/nuitka.cmd +0 -0
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.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,18 +190,24 @@ 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
|
}
|
|
198
198
|
|
|
199
199
|
#else
|
|
200
|
-
// Will be written by Nuitka_PyDictLookupStr in all cases.
|
|
201
200
|
PyObject **value;
|
|
202
|
-
NUITKA_MAY_BE_UNUSED Py_ssize_t found
|
|
201
|
+
NUITKA_MAY_BE_UNUSED Py_ssize_t found;
|
|
202
|
+
|
|
203
|
+
// We cannot use Nuitka_PyDictLookupStr in all cases, some modules misbehave
|
|
204
|
+
// and put non-strings in module dictionaries.
|
|
205
|
+
if (unlikely(dict->ma_keys->dk_kind == DICT_KEYS_GENERAL)) {
|
|
206
|
+
found = Nuitka_PyDictLookup(dict, (PyObject *)key, hash, &value);
|
|
207
|
+
} else {
|
|
208
|
+
found = Nuitka_PyDictLookupStr(dict, (PyObject *)key, hash, &value);
|
|
209
|
+
}
|
|
210
|
+
|
|
203
211
|
assert(found != DKIX_ERROR);
|
|
204
212
|
|
|
205
213
|
return value;
|
|
@@ -268,6 +276,17 @@ extern int DICT_HAS_ITEM(PyThreadState *tstate, PyObject *dict, PyObject *key);
|
|
|
268
276
|
// Convert to dictionary, helper for built-in "dict" mainly.
|
|
269
277
|
extern PyObject *TO_DICT(PyThreadState *tstate, PyObject *seq_obj, PyObject *dict_obj);
|
|
270
278
|
|
|
279
|
+
// For 3.6 to 3.10, the dictionary version tag is used for caching purposes, so
|
|
280
|
+
// we need to maintain it. However it's private value so we have to play a game
|
|
281
|
+
// of having our own number space inside of their 64 bit numbers.
|
|
282
|
+
#if PYTHON_VERSION >= 0x360 && PYTHON_VERSION <= 0x3c0
|
|
283
|
+
#define _NUITKA_MAINTAIN_DICT_VERSION_TAG 1
|
|
284
|
+
#endif
|
|
285
|
+
|
|
286
|
+
#if _NUITKA_MAINTAIN_DICT_VERSION_TAG
|
|
287
|
+
extern uint64_t nuitka_dict_version_tag_counter;
|
|
288
|
+
#endif
|
|
289
|
+
|
|
271
290
|
NUITKA_MAY_BE_UNUSED static void UPDATE_STRING_DICT0(PyDictObject *dict, Nuitka_StringObject *key, PyObject *value) {
|
|
272
291
|
CHECK_OBJECT(value);
|
|
273
292
|
|
|
@@ -281,18 +300,25 @@ NUITKA_MAY_BE_UNUSED static void UPDATE_STRING_DICT0(PyDictObject *dict, Nuitka_
|
|
|
281
300
|
#endif
|
|
282
301
|
|
|
283
302
|
PyObject *old = GET_DICT_ENTRY_VALUE(entry);
|
|
303
|
+
CHECK_OBJECT_X(old);
|
|
284
304
|
|
|
285
|
-
|
|
286
|
-
// speculatively try the quickest access method.
|
|
287
|
-
if (likely(old != NULL)) {
|
|
288
|
-
Py_INCREF(value);
|
|
289
|
-
SET_DICT_ENTRY_VALUE(entry, value);
|
|
305
|
+
if (value != old) {
|
|
290
306
|
|
|
291
|
-
|
|
307
|
+
// Values are more likely (more often) set than not set, in that case
|
|
308
|
+
// speculatively try the quickest access method.
|
|
309
|
+
if (likely(old != NULL)) {
|
|
310
|
+
Py_INCREF(value);
|
|
311
|
+
SET_DICT_ENTRY_VALUE(entry, value);
|
|
292
312
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
313
|
+
#if _NUITKA_MAINTAIN_DICT_VERSION_TAG
|
|
314
|
+
dict->ma_version_tag = nuitka_dict_version_tag_counter++;
|
|
315
|
+
#endif
|
|
316
|
+
CHECK_OBJECT(old);
|
|
317
|
+
|
|
318
|
+
Py_DECREF(old);
|
|
319
|
+
} else {
|
|
320
|
+
DICT_SET_ITEM((PyObject *)dict, (PyObject *)key, value);
|
|
321
|
+
}
|
|
296
322
|
}
|
|
297
323
|
}
|
|
298
324
|
|
|
@@ -315,14 +341,23 @@ NUITKA_MAY_BE_UNUSED static void UPDATE_STRING_DICT_INPLACE(PyDictObject *dict,
|
|
|
315
341
|
|
|
316
342
|
PyObject *old = GET_DICT_ENTRY_VALUE(entry);
|
|
317
343
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
344
|
+
if (old != value) {
|
|
345
|
+
// Values are more likely (more often) set than not set, in that case
|
|
346
|
+
// speculatively try the quickest access method.
|
|
347
|
+
if (likely(old != NULL)) {
|
|
348
|
+
SET_DICT_ENTRY_VALUE(entry, value);
|
|
349
|
+
|
|
350
|
+
#if _NUITKA_MAINTAIN_DICT_VERSION_TAG
|
|
351
|
+
dict->ma_version_tag = nuitka_dict_version_tag_counter++;
|
|
352
|
+
#endif
|
|
353
|
+
} else {
|
|
354
|
+
DICT_SET_ITEM((PyObject *)dict, (PyObject *)key, value);
|
|
355
|
+
Py_DECREF(value);
|
|
356
|
+
|
|
357
|
+
CHECK_OBJECT(value);
|
|
358
|
+
}
|
|
322
359
|
} else {
|
|
323
|
-
DICT_SET_ITEM((PyObject *)dict, (PyObject *)key, value);
|
|
324
360
|
Py_DECREF(value);
|
|
325
|
-
|
|
326
361
|
CHECK_OBJECT(value);
|
|
327
362
|
}
|
|
328
363
|
}
|
|
@@ -345,16 +380,25 @@ NUITKA_MAY_BE_UNUSED static void UPDATE_STRING_DICT1(PyDictObject *dict, Nuitka_
|
|
|
345
380
|
#endif
|
|
346
381
|
|
|
347
382
|
PyObject *old = GET_DICT_ENTRY_VALUE(entry);
|
|
383
|
+
CHECK_OBJECT_X(old);
|
|
348
384
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
385
|
+
if (old != value) {
|
|
386
|
+
// Values are more likely (more often) set than not set, in that case
|
|
387
|
+
// speculatively try the quickest access method.
|
|
388
|
+
if (likely(old != NULL)) {
|
|
389
|
+
SET_DICT_ENTRY_VALUE(entry, value);
|
|
353
390
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
391
|
+
#if _NUITKA_MAINTAIN_DICT_VERSION_TAG
|
|
392
|
+
dict->ma_version_tag = nuitka_dict_version_tag_counter++;
|
|
393
|
+
#endif
|
|
394
|
+
Py_DECREF(old);
|
|
395
|
+
} else {
|
|
396
|
+
DICT_SET_ITEM((PyObject *)dict, (PyObject *)key, value);
|
|
357
397
|
|
|
398
|
+
Py_DECREF(value);
|
|
399
|
+
CHECK_OBJECT(value);
|
|
400
|
+
}
|
|
401
|
+
} else {
|
|
358
402
|
Py_DECREF(value);
|
|
359
403
|
CHECK_OBJECT(value);
|
|
360
404
|
}
|
|
@@ -370,13 +414,13 @@ extern PyObject *DICT_ITEMS(PyObject *dict);
|
|
|
370
414
|
#endif
|
|
371
415
|
|
|
372
416
|
// Python3 dictionary keys, Python2 iterkeys returns dictionary keys iterator
|
|
373
|
-
extern PyObject *DICT_ITERKEYS(PyObject *dict);
|
|
417
|
+
extern PyObject *DICT_ITERKEYS(PyThreadState *tstate, PyObject *dict);
|
|
374
418
|
|
|
375
419
|
// Python3 dictionary values, Python2 itervalues returns dictionary values iterator
|
|
376
|
-
extern PyObject *DICT_ITERVALUES(PyObject *dict);
|
|
420
|
+
extern PyObject *DICT_ITERVALUES(PyThreadState *tstate, PyObject *dict);
|
|
377
421
|
|
|
378
422
|
// Python3 dictionary items, Python2 iteritems returns dictionary items iterator
|
|
379
|
-
extern PyObject *DICT_ITERITEMS(PyObject *dict);
|
|
423
|
+
extern PyObject *DICT_ITERITEMS(PyThreadState *tstate, PyObject *dict);
|
|
380
424
|
|
|
381
425
|
// Python dictionary keys view
|
|
382
426
|
extern PyObject *DICT_VIEWKEYS(PyObject *dict);
|