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
|
@@ -852,7 +852,7 @@ PyObject *CALL_FUNCTION_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called,
|
|
|
852
852
|
|
|
853
853
|
return result;
|
|
854
854
|
}
|
|
855
|
-
PyObject *
|
|
855
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS1(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
856
856
|
assert(PyTuple_CheckExact(pos_args));
|
|
857
857
|
assert(PyTuple_GET_SIZE(pos_args) == 1);
|
|
858
858
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -1709,7 +1709,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS2(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
1709
1709
|
|
|
1710
1710
|
return result;
|
|
1711
1711
|
}
|
|
1712
|
-
PyObject *
|
|
1712
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS2(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
1713
1713
|
assert(PyTuple_CheckExact(pos_args));
|
|
1714
1714
|
assert(PyTuple_GET_SIZE(pos_args) == 2);
|
|
1715
1715
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -1996,7 +1996,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS2(PyThreadState *tstate, PyObject *called, P
|
|
|
1996
1996
|
result = Nuitka_CallMethodFunctionPosArgs(
|
|
1997
1997
|
tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, 2);
|
|
1998
1998
|
} else {
|
|
1999
|
-
result =
|
|
1999
|
+
result = CALL_FUNCTION_WITH_POS_ARGS2(tstate, init_method, pos_args);
|
|
2000
2000
|
if (init_method_needs_release) {
|
|
2001
2001
|
Py_DECREF(init_method);
|
|
2002
2002
|
}
|
|
@@ -2071,7 +2071,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS2(PyThreadState *tstate, PyObject *called, P
|
|
|
2071
2071
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj,
|
|
2072
2072
|
args, 2);
|
|
2073
2073
|
} else {
|
|
2074
|
-
result =
|
|
2074
|
+
result = CALL_FUNCTION_WITH_POS_ARGS2(tstate, init_method, pos_args);
|
|
2075
2075
|
Py_DECREF(init_method);
|
|
2076
2076
|
}
|
|
2077
2077
|
if (unlikely(result == NULL)) {
|
|
@@ -2547,7 +2547,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS3(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2547
2547
|
|
|
2548
2548
|
return result;
|
|
2549
2549
|
}
|
|
2550
|
-
PyObject *
|
|
2550
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS3(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
2551
2551
|
assert(PyTuple_CheckExact(pos_args));
|
|
2552
2552
|
assert(PyTuple_GET_SIZE(pos_args) == 3);
|
|
2553
2553
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -2834,7 +2834,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS3(PyThreadState *tstate, PyObject *called, P
|
|
|
2834
2834
|
result = Nuitka_CallMethodFunctionPosArgs(
|
|
2835
2835
|
tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, 3);
|
|
2836
2836
|
} else {
|
|
2837
|
-
result =
|
|
2837
|
+
result = CALL_FUNCTION_WITH_POS_ARGS3(tstate, init_method, pos_args);
|
|
2838
2838
|
if (init_method_needs_release) {
|
|
2839
2839
|
Py_DECREF(init_method);
|
|
2840
2840
|
}
|
|
@@ -2909,7 +2909,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS3(PyThreadState *tstate, PyObject *called, P
|
|
|
2909
2909
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj,
|
|
2910
2910
|
args, 3);
|
|
2911
2911
|
} else {
|
|
2912
|
-
result =
|
|
2912
|
+
result = CALL_FUNCTION_WITH_POS_ARGS3(tstate, init_method, pos_args);
|
|
2913
2913
|
Py_DECREF(init_method);
|
|
2914
2914
|
}
|
|
2915
2915
|
if (unlikely(result == NULL)) {
|
|
@@ -3385,7 +3385,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS4(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
3385
3385
|
|
|
3386
3386
|
return result;
|
|
3387
3387
|
}
|
|
3388
|
-
PyObject *
|
|
3388
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS4(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
3389
3389
|
assert(PyTuple_CheckExact(pos_args));
|
|
3390
3390
|
assert(PyTuple_GET_SIZE(pos_args) == 4);
|
|
3391
3391
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -3672,7 +3672,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS4(PyThreadState *tstate, PyObject *called, P
|
|
|
3672
3672
|
result = Nuitka_CallMethodFunctionPosArgs(
|
|
3673
3673
|
tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, 4);
|
|
3674
3674
|
} else {
|
|
3675
|
-
result =
|
|
3675
|
+
result = CALL_FUNCTION_WITH_POS_ARGS4(tstate, init_method, pos_args);
|
|
3676
3676
|
if (init_method_needs_release) {
|
|
3677
3677
|
Py_DECREF(init_method);
|
|
3678
3678
|
}
|
|
@@ -3747,7 +3747,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS4(PyThreadState *tstate, PyObject *called, P
|
|
|
3747
3747
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj,
|
|
3748
3748
|
args, 4);
|
|
3749
3749
|
} else {
|
|
3750
|
-
result =
|
|
3750
|
+
result = CALL_FUNCTION_WITH_POS_ARGS4(tstate, init_method, pos_args);
|
|
3751
3751
|
Py_DECREF(init_method);
|
|
3752
3752
|
}
|
|
3753
3753
|
if (unlikely(result == NULL)) {
|
|
@@ -4223,7 +4223,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS5(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
4223
4223
|
|
|
4224
4224
|
return result;
|
|
4225
4225
|
}
|
|
4226
|
-
PyObject *
|
|
4226
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS5(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
4227
4227
|
assert(PyTuple_CheckExact(pos_args));
|
|
4228
4228
|
assert(PyTuple_GET_SIZE(pos_args) == 5);
|
|
4229
4229
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -4510,7 +4510,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS5(PyThreadState *tstate, PyObject *called, P
|
|
|
4510
4510
|
result = Nuitka_CallMethodFunctionPosArgs(
|
|
4511
4511
|
tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, 5);
|
|
4512
4512
|
} else {
|
|
4513
|
-
result =
|
|
4513
|
+
result = CALL_FUNCTION_WITH_POS_ARGS5(tstate, init_method, pos_args);
|
|
4514
4514
|
if (init_method_needs_release) {
|
|
4515
4515
|
Py_DECREF(init_method);
|
|
4516
4516
|
}
|
|
@@ -4585,7 +4585,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS5(PyThreadState *tstate, PyObject *called, P
|
|
|
4585
4585
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj,
|
|
4586
4586
|
args, 5);
|
|
4587
4587
|
} else {
|
|
4588
|
-
result =
|
|
4588
|
+
result = CALL_FUNCTION_WITH_POS_ARGS5(tstate, init_method, pos_args);
|
|
4589
4589
|
Py_DECREF(init_method);
|
|
4590
4590
|
}
|
|
4591
4591
|
if (unlikely(result == NULL)) {
|
|
@@ -5061,7 +5061,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS6(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5061
5061
|
|
|
5062
5062
|
return result;
|
|
5063
5063
|
}
|
|
5064
|
-
PyObject *
|
|
5064
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS6(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
5065
5065
|
assert(PyTuple_CheckExact(pos_args));
|
|
5066
5066
|
assert(PyTuple_GET_SIZE(pos_args) == 6);
|
|
5067
5067
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -5348,7 +5348,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS6(PyThreadState *tstate, PyObject *called, P
|
|
|
5348
5348
|
result = Nuitka_CallMethodFunctionPosArgs(
|
|
5349
5349
|
tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, 6);
|
|
5350
5350
|
} else {
|
|
5351
|
-
result =
|
|
5351
|
+
result = CALL_FUNCTION_WITH_POS_ARGS6(tstate, init_method, pos_args);
|
|
5352
5352
|
if (init_method_needs_release) {
|
|
5353
5353
|
Py_DECREF(init_method);
|
|
5354
5354
|
}
|
|
@@ -5423,7 +5423,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS6(PyThreadState *tstate, PyObject *called, P
|
|
|
5423
5423
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj,
|
|
5424
5424
|
args, 6);
|
|
5425
5425
|
} else {
|
|
5426
|
-
result =
|
|
5426
|
+
result = CALL_FUNCTION_WITH_POS_ARGS6(tstate, init_method, pos_args);
|
|
5427
5427
|
Py_DECREF(init_method);
|
|
5428
5428
|
}
|
|
5429
5429
|
if (unlikely(result == NULL)) {
|
|
@@ -5899,7 +5899,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS7(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5899
5899
|
|
|
5900
5900
|
return result;
|
|
5901
5901
|
}
|
|
5902
|
-
PyObject *
|
|
5902
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS7(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
5903
5903
|
assert(PyTuple_CheckExact(pos_args));
|
|
5904
5904
|
assert(PyTuple_GET_SIZE(pos_args) == 7);
|
|
5905
5905
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -6186,7 +6186,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS7(PyThreadState *tstate, PyObject *called, P
|
|
|
6186
6186
|
result = Nuitka_CallMethodFunctionPosArgs(
|
|
6187
6187
|
tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, 7);
|
|
6188
6188
|
} else {
|
|
6189
|
-
result =
|
|
6189
|
+
result = CALL_FUNCTION_WITH_POS_ARGS7(tstate, init_method, pos_args);
|
|
6190
6190
|
if (init_method_needs_release) {
|
|
6191
6191
|
Py_DECREF(init_method);
|
|
6192
6192
|
}
|
|
@@ -6261,7 +6261,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS7(PyThreadState *tstate, PyObject *called, P
|
|
|
6261
6261
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj,
|
|
6262
6262
|
args, 7);
|
|
6263
6263
|
} else {
|
|
6264
|
-
result =
|
|
6264
|
+
result = CALL_FUNCTION_WITH_POS_ARGS7(tstate, init_method, pos_args);
|
|
6265
6265
|
Py_DECREF(init_method);
|
|
6266
6266
|
}
|
|
6267
6267
|
if (unlikely(result == NULL)) {
|
|
@@ -6737,7 +6737,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS8(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
6737
6737
|
|
|
6738
6738
|
return result;
|
|
6739
6739
|
}
|
|
6740
|
-
PyObject *
|
|
6740
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS8(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
6741
6741
|
assert(PyTuple_CheckExact(pos_args));
|
|
6742
6742
|
assert(PyTuple_GET_SIZE(pos_args) == 8);
|
|
6743
6743
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -7024,7 +7024,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS8(PyThreadState *tstate, PyObject *called, P
|
|
|
7024
7024
|
result = Nuitka_CallMethodFunctionPosArgs(
|
|
7025
7025
|
tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, 8);
|
|
7026
7026
|
} else {
|
|
7027
|
-
result =
|
|
7027
|
+
result = CALL_FUNCTION_WITH_POS_ARGS8(tstate, init_method, pos_args);
|
|
7028
7028
|
if (init_method_needs_release) {
|
|
7029
7029
|
Py_DECREF(init_method);
|
|
7030
7030
|
}
|
|
@@ -7099,7 +7099,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS8(PyThreadState *tstate, PyObject *called, P
|
|
|
7099
7099
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj,
|
|
7100
7100
|
args, 8);
|
|
7101
7101
|
} else {
|
|
7102
|
-
result =
|
|
7102
|
+
result = CALL_FUNCTION_WITH_POS_ARGS8(tstate, init_method, pos_args);
|
|
7103
7103
|
Py_DECREF(init_method);
|
|
7104
7104
|
}
|
|
7105
7105
|
if (unlikely(result == NULL)) {
|
|
@@ -7575,7 +7575,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS9(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
7575
7575
|
|
|
7576
7576
|
return result;
|
|
7577
7577
|
}
|
|
7578
|
-
PyObject *
|
|
7578
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS9(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
7579
7579
|
assert(PyTuple_CheckExact(pos_args));
|
|
7580
7580
|
assert(PyTuple_GET_SIZE(pos_args) == 9);
|
|
7581
7581
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -7862,7 +7862,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS9(PyThreadState *tstate, PyObject *called, P
|
|
|
7862
7862
|
result = Nuitka_CallMethodFunctionPosArgs(
|
|
7863
7863
|
tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, 9);
|
|
7864
7864
|
} else {
|
|
7865
|
-
result =
|
|
7865
|
+
result = CALL_FUNCTION_WITH_POS_ARGS9(tstate, init_method, pos_args);
|
|
7866
7866
|
if (init_method_needs_release) {
|
|
7867
7867
|
Py_DECREF(init_method);
|
|
7868
7868
|
}
|
|
@@ -7937,7 +7937,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS9(PyThreadState *tstate, PyObject *called, P
|
|
|
7937
7937
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj,
|
|
7938
7938
|
args, 9);
|
|
7939
7939
|
} else {
|
|
7940
|
-
result =
|
|
7940
|
+
result = CALL_FUNCTION_WITH_POS_ARGS9(tstate, init_method, pos_args);
|
|
7941
7941
|
Py_DECREF(init_method);
|
|
7942
7942
|
}
|
|
7943
7943
|
if (unlikely(result == NULL)) {
|
|
@@ -8413,7 +8413,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS10(PyThreadState *tstate, PyObject *called, PyO
|
|
|
8413
8413
|
|
|
8414
8414
|
return result;
|
|
8415
8415
|
}
|
|
8416
|
-
PyObject *
|
|
8416
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS10(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
8417
8417
|
assert(PyTuple_CheckExact(pos_args));
|
|
8418
8418
|
assert(PyTuple_GET_SIZE(pos_args) == 10);
|
|
8419
8419
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -8700,7 +8700,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS10(PyThreadState *tstate, PyObject *called,
|
|
|
8700
8700
|
result = Nuitka_CallMethodFunctionPosArgs(
|
|
8701
8701
|
tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, 10);
|
|
8702
8702
|
} else {
|
|
8703
|
-
result =
|
|
8703
|
+
result = CALL_FUNCTION_WITH_POS_ARGS10(tstate, init_method, pos_args);
|
|
8704
8704
|
if (init_method_needs_release) {
|
|
8705
8705
|
Py_DECREF(init_method);
|
|
8706
8706
|
}
|
|
@@ -8775,7 +8775,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS10(PyThreadState *tstate, PyObject *called,
|
|
|
8775
8775
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj,
|
|
8776
8776
|
args, 10);
|
|
8777
8777
|
} else {
|
|
8778
|
-
result =
|
|
8778
|
+
result = CALL_FUNCTION_WITH_POS_ARGS10(tstate, init_method, pos_args);
|
|
8779
8779
|
Py_DECREF(init_method);
|
|
8780
8780
|
}
|
|
8781
8781
|
if (unlikely(result == NULL)) {
|
|
@@ -8820,8 +8820,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS10(PyThreadState *tstate, PyObject *called,
|
|
|
8820
8820
|
|
|
8821
8821
|
return result;
|
|
8822
8822
|
}
|
|
8823
|
-
PyObject *
|
|
8824
|
-
|
|
8823
|
+
PyObject *CALL_FUNCTION_WITH_NO_ARGS_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *kw_values,
|
|
8824
|
+
PyObject *kw_names) {
|
|
8825
8825
|
|
|
8826
8826
|
CHECK_OBJECT(kw_names);
|
|
8827
8827
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -8986,8 +8986,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS1_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
8986
8986
|
|
|
8987
8987
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
8988
8988
|
}
|
|
8989
|
-
PyObject *
|
|
8990
|
-
|
|
8989
|
+
PyObject *CALL_FUNCTION_WITH_ARGS1_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
8990
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
8991
8991
|
CHECK_OBJECTS(args, 1);
|
|
8992
8992
|
CHECK_OBJECT(kw_names);
|
|
8993
8993
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -9074,8 +9074,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS1_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
9074
9074
|
|
|
9075
9075
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
9076
9076
|
}
|
|
9077
|
-
PyObject *
|
|
9078
|
-
|
|
9077
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS1_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
9078
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
9079
9079
|
assert(PyTuple_CheckExact(pos_args));
|
|
9080
9080
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
9081
9081
|
CHECK_OBJECTS(args, 1);
|
|
@@ -9245,8 +9245,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS2_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
9245
9245
|
|
|
9246
9246
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
9247
9247
|
}
|
|
9248
|
-
PyObject *
|
|
9249
|
-
|
|
9248
|
+
PyObject *CALL_FUNCTION_WITH_ARGS2_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
9249
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
9250
9250
|
CHECK_OBJECTS(args, 2);
|
|
9251
9251
|
CHECK_OBJECT(kw_names);
|
|
9252
9252
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -9333,8 +9333,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS2_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
9333
9333
|
|
|
9334
9334
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
9335
9335
|
}
|
|
9336
|
-
PyObject *
|
|
9337
|
-
|
|
9336
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS2_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
9337
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
9338
9338
|
assert(PyTuple_CheckExact(pos_args));
|
|
9339
9339
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
9340
9340
|
CHECK_OBJECTS(args, 2);
|
|
@@ -9504,8 +9504,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS3_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
9504
9504
|
|
|
9505
9505
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
9506
9506
|
}
|
|
9507
|
-
PyObject *
|
|
9508
|
-
|
|
9507
|
+
PyObject *CALL_FUNCTION_WITH_ARGS3_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
9508
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
9509
9509
|
CHECK_OBJECTS(args, 3);
|
|
9510
9510
|
CHECK_OBJECT(kw_names);
|
|
9511
9511
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -9592,8 +9592,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS3_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
9592
9592
|
|
|
9593
9593
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
9594
9594
|
}
|
|
9595
|
-
PyObject *
|
|
9596
|
-
|
|
9595
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS3_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
9596
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
9597
9597
|
assert(PyTuple_CheckExact(pos_args));
|
|
9598
9598
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
9599
9599
|
CHECK_OBJECTS(args, 3);
|
|
@@ -9763,8 +9763,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS4_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
9763
9763
|
|
|
9764
9764
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
9765
9765
|
}
|
|
9766
|
-
PyObject *
|
|
9767
|
-
|
|
9766
|
+
PyObject *CALL_FUNCTION_WITH_ARGS4_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
9767
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
9768
9768
|
CHECK_OBJECTS(args, 4);
|
|
9769
9769
|
CHECK_OBJECT(kw_names);
|
|
9770
9770
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -9851,8 +9851,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS4_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
9851
9851
|
|
|
9852
9852
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
9853
9853
|
}
|
|
9854
|
-
PyObject *
|
|
9855
|
-
|
|
9854
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS4_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
9855
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
9856
9856
|
assert(PyTuple_CheckExact(pos_args));
|
|
9857
9857
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
9858
9858
|
CHECK_OBJECTS(args, 4);
|
|
@@ -10022,8 +10022,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS5_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
10022
10022
|
|
|
10023
10023
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
10024
10024
|
}
|
|
10025
|
-
PyObject *
|
|
10026
|
-
|
|
10025
|
+
PyObject *CALL_FUNCTION_WITH_ARGS5_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
10026
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
10027
10027
|
CHECK_OBJECTS(args, 5);
|
|
10028
10028
|
CHECK_OBJECT(kw_names);
|
|
10029
10029
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -10110,8 +10110,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS5_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
10110
10110
|
|
|
10111
10111
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
10112
10112
|
}
|
|
10113
|
-
PyObject *
|
|
10114
|
-
|
|
10113
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS5_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
10114
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
10115
10115
|
assert(PyTuple_CheckExact(pos_args));
|
|
10116
10116
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
10117
10117
|
CHECK_OBJECTS(args, 5);
|
|
@@ -10281,8 +10281,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS6_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
10281
10281
|
|
|
10282
10282
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
10283
10283
|
}
|
|
10284
|
-
PyObject *
|
|
10285
|
-
|
|
10284
|
+
PyObject *CALL_FUNCTION_WITH_ARGS6_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
10285
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
10286
10286
|
CHECK_OBJECTS(args, 6);
|
|
10287
10287
|
CHECK_OBJECT(kw_names);
|
|
10288
10288
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -10369,8 +10369,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS6_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
10369
10369
|
|
|
10370
10370
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
10371
10371
|
}
|
|
10372
|
-
PyObject *
|
|
10373
|
-
|
|
10372
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS6_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
10373
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
10374
10374
|
assert(PyTuple_CheckExact(pos_args));
|
|
10375
10375
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
10376
10376
|
CHECK_OBJECTS(args, 6);
|
|
@@ -10540,8 +10540,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS7_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
10540
10540
|
|
|
10541
10541
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
10542
10542
|
}
|
|
10543
|
-
PyObject *
|
|
10544
|
-
|
|
10543
|
+
PyObject *CALL_FUNCTION_WITH_ARGS7_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
10544
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
10545
10545
|
CHECK_OBJECTS(args, 7);
|
|
10546
10546
|
CHECK_OBJECT(kw_names);
|
|
10547
10547
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -10628,8 +10628,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS7_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
10628
10628
|
|
|
10629
10629
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
10630
10630
|
}
|
|
10631
|
-
PyObject *
|
|
10632
|
-
|
|
10631
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS7_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
10632
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
10633
10633
|
assert(PyTuple_CheckExact(pos_args));
|
|
10634
10634
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
10635
10635
|
CHECK_OBJECTS(args, 7);
|
|
@@ -10799,8 +10799,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS8_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
10799
10799
|
|
|
10800
10800
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
10801
10801
|
}
|
|
10802
|
-
PyObject *
|
|
10803
|
-
|
|
10802
|
+
PyObject *CALL_FUNCTION_WITH_ARGS8_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
10803
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
10804
10804
|
CHECK_OBJECTS(args, 8);
|
|
10805
10805
|
CHECK_OBJECT(kw_names);
|
|
10806
10806
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -10887,8 +10887,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS8_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
10887
10887
|
|
|
10888
10888
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
10889
10889
|
}
|
|
10890
|
-
PyObject *
|
|
10891
|
-
|
|
10890
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS8_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
10891
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
10892
10892
|
assert(PyTuple_CheckExact(pos_args));
|
|
10893
10893
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
10894
10894
|
CHECK_OBJECTS(args, 8);
|
|
@@ -11058,8 +11058,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS9_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
11058
11058
|
|
|
11059
11059
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
11060
11060
|
}
|
|
11061
|
-
PyObject *
|
|
11062
|
-
|
|
11061
|
+
PyObject *CALL_FUNCTION_WITH_ARGS9_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
11062
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
11063
11063
|
CHECK_OBJECTS(args, 9);
|
|
11064
11064
|
CHECK_OBJECT(kw_names);
|
|
11065
11065
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -11146,8 +11146,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS9_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
11146
11146
|
|
|
11147
11147
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
11148
11148
|
}
|
|
11149
|
-
PyObject *
|
|
11150
|
-
|
|
11149
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS9_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
11150
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
11151
11151
|
assert(PyTuple_CheckExact(pos_args));
|
|
11152
11152
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
11153
11153
|
CHECK_OBJECTS(args, 9);
|
|
@@ -11317,8 +11317,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS10_VECTORCALL(PyThreadState *tstate, PyObject *
|
|
|
11317
11317
|
|
|
11318
11318
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
11319
11319
|
}
|
|
11320
|
-
PyObject *
|
|
11321
|
-
|
|
11320
|
+
PyObject *CALL_FUNCTION_WITH_ARGS10_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args,
|
|
11321
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
11322
11322
|
CHECK_OBJECTS(args, 10);
|
|
11323
11323
|
CHECK_OBJECT(kw_names);
|
|
11324
11324
|
assert(PyTuple_CheckExact(kw_names));
|
|
@@ -11405,8 +11405,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS10_KWSPLIT(PyThreadState *tstate, PyObject *cal
|
|
|
11405
11405
|
|
|
11406
11406
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
11407
11407
|
}
|
|
11408
|
-
PyObject *
|
|
11409
|
-
|
|
11408
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS10_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args,
|
|
11409
|
+
PyObject *const *kw_values, PyObject *kw_names) {
|
|
11410
11410
|
assert(PyTuple_CheckExact(pos_args));
|
|
11411
11411
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
11412
11412
|
CHECK_OBJECTS(args, 10);
|
|
@@ -0,0 +1,183 @@
|
|
|
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
|
+
static PyObject *COMPARE_EQ_OBJECT_CLONG_CLONG(long operand1, long operand2) {
|
|
13
|
+
|
|
14
|
+
const long a = operand1;
|
|
15
|
+
const long b = operand2;
|
|
16
|
+
|
|
17
|
+
bool r = a == b;
|
|
18
|
+
|
|
19
|
+
// Convert to target type.
|
|
20
|
+
PyObject *result = BOOL_FROM(r);
|
|
21
|
+
Py_INCREF_IMMORTAL(result);
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "NILONG" to Nuitka int/long/C long value.
|
|
25
|
+
*/
|
|
26
|
+
PyObject *RICH_COMPARE_EQ_OBJECT_NILONG_NILONG(nuitka_ilong *operand1, nuitka_ilong *operand2) {
|
|
27
|
+
CHECK_NILONG_OBJECT(operand1);
|
|
28
|
+
CHECK_NILONG_OBJECT(operand2);
|
|
29
|
+
|
|
30
|
+
bool left_c_usable = IS_NILONG_C_VALUE_VALID(operand1);
|
|
31
|
+
bool right_c_usable = IS_NILONG_C_VALUE_VALID(operand2);
|
|
32
|
+
|
|
33
|
+
if (left_c_usable && right_c_usable) {
|
|
34
|
+
return COMPARE_EQ_OBJECT_CLONG_CLONG(operand1->c_value, operand2->c_value);
|
|
35
|
+
} else if (!left_c_usable && !right_c_usable) {
|
|
36
|
+
return RICH_COMPARE_EQ_OBJECT_LONG_LONG(operand1->python_value, operand2->python_value);
|
|
37
|
+
} else {
|
|
38
|
+
bool r;
|
|
39
|
+
if (left_c_usable) {
|
|
40
|
+
r = COMPARE_EQ_CBOOL_LONG_CLONG(operand2->python_value, operand1->c_value);
|
|
41
|
+
r = !r;
|
|
42
|
+
} else {
|
|
43
|
+
r = COMPARE_EQ_CBOOL_LONG_CLONG(operand1->python_value, operand2->c_value);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Convert to target type.
|
|
47
|
+
PyObject *result = BOOL_FROM(r);
|
|
48
|
+
Py_INCREF_IMMORTAL(result);
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static bool COMPARE_EQ_CBOOL_CLONG_CLONG(long operand1, long operand2) {
|
|
54
|
+
|
|
55
|
+
const long a = operand1;
|
|
56
|
+
const long b = operand2;
|
|
57
|
+
|
|
58
|
+
bool r = a == b;
|
|
59
|
+
|
|
60
|
+
// Convert to target type.
|
|
61
|
+
bool result = r;
|
|
62
|
+
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "NILONG" to Nuitka int/long/C long value.
|
|
66
|
+
*/
|
|
67
|
+
bool RICH_COMPARE_EQ_CBOOL_NILONG_NILONG(nuitka_ilong *operand1, nuitka_ilong *operand2) {
|
|
68
|
+
CHECK_NILONG_OBJECT(operand1);
|
|
69
|
+
CHECK_NILONG_OBJECT(operand2);
|
|
70
|
+
|
|
71
|
+
bool left_c_usable = IS_NILONG_C_VALUE_VALID(operand1);
|
|
72
|
+
bool right_c_usable = IS_NILONG_C_VALUE_VALID(operand2);
|
|
73
|
+
|
|
74
|
+
if (left_c_usable && right_c_usable) {
|
|
75
|
+
return COMPARE_EQ_CBOOL_CLONG_CLONG(operand1->c_value, operand2->c_value);
|
|
76
|
+
} else if (!left_c_usable && !right_c_usable) {
|
|
77
|
+
return RICH_COMPARE_EQ_CBOOL_LONG_LONG(operand1->python_value, operand2->python_value);
|
|
78
|
+
} else {
|
|
79
|
+
bool r;
|
|
80
|
+
if (left_c_usable) {
|
|
81
|
+
r = COMPARE_EQ_CBOOL_LONG_CLONG(operand2->python_value, operand1->c_value);
|
|
82
|
+
r = !r;
|
|
83
|
+
} else {
|
|
84
|
+
r = COMPARE_EQ_CBOOL_LONG_CLONG(operand1->python_value, operand2->c_value);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Convert to target type.
|
|
88
|
+
bool result = r;
|
|
89
|
+
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
95
|
+
PyObject *RICH_COMPARE_EQ_OBJECT_NILONG_CLONG(nuitka_ilong *operand1, long operand2) {
|
|
96
|
+
CHECK_NILONG_OBJECT(operand1);
|
|
97
|
+
|
|
98
|
+
bool left_c_usable = IS_NILONG_C_VALUE_VALID(operand1);
|
|
99
|
+
bool right_c_usable = true;
|
|
100
|
+
|
|
101
|
+
if (left_c_usable && right_c_usable) {
|
|
102
|
+
return COMPARE_EQ_OBJECT_CLONG_CLONG(operand1->c_value, operand2);
|
|
103
|
+
} else if (!left_c_usable && !right_c_usable) {
|
|
104
|
+
ENFORCE_NILONG_OBJECT_VALUE(operand1);
|
|
105
|
+
|
|
106
|
+
return COMPARE_EQ_OBJECT_LONG_CLONG(operand1->python_value, operand2);
|
|
107
|
+
} else {
|
|
108
|
+
return COMPARE_EQ_OBJECT_LONG_CLONG(operand1->python_value, operand2);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "CLONG" to C platform long value. */
|
|
113
|
+
bool RICH_COMPARE_EQ_CBOOL_NILONG_CLONG(nuitka_ilong *operand1, long operand2) {
|
|
114
|
+
CHECK_NILONG_OBJECT(operand1);
|
|
115
|
+
|
|
116
|
+
bool left_c_usable = IS_NILONG_C_VALUE_VALID(operand1);
|
|
117
|
+
bool right_c_usable = true;
|
|
118
|
+
|
|
119
|
+
if (left_c_usable && right_c_usable) {
|
|
120
|
+
return COMPARE_EQ_CBOOL_CLONG_CLONG(operand1->c_value, operand2);
|
|
121
|
+
} else if (!left_c_usable && !right_c_usable) {
|
|
122
|
+
ENFORCE_NILONG_OBJECT_VALUE(operand1);
|
|
123
|
+
|
|
124
|
+
return COMPARE_EQ_CBOOL_LONG_CLONG(operand1->python_value, operand2);
|
|
125
|
+
} else {
|
|
126
|
+
return COMPARE_EQ_CBOOL_LONG_CLONG(operand1->python_value, operand2);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
131
|
+
* Python objects. */
|
|
132
|
+
PyObject *RICH_COMPARE_EQ_OBJECT_NILONG_DIGIT(nuitka_ilong *operand1, long operand2) {
|
|
133
|
+
CHECK_NILONG_OBJECT(operand1);
|
|
134
|
+
assert(Py_ABS(operand2) < (1 << PyLong_SHIFT));
|
|
135
|
+
|
|
136
|
+
bool left_c_usable = IS_NILONG_C_VALUE_VALID(operand1);
|
|
137
|
+
bool right_c_usable = true;
|
|
138
|
+
|
|
139
|
+
if (left_c_usable && right_c_usable) {
|
|
140
|
+
return COMPARE_EQ_OBJECT_CLONG_CLONG(operand1->c_value, operand2);
|
|
141
|
+
} else if (!left_c_usable && !right_c_usable) {
|
|
142
|
+
ENFORCE_NILONG_OBJECT_VALUE(operand1);
|
|
143
|
+
|
|
144
|
+
return COMPARE_EQ_OBJECT_LONG_DIGIT(operand1->python_value, operand2);
|
|
145
|
+
} else {
|
|
146
|
+
return COMPARE_EQ_OBJECT_LONG_DIGIT(operand1->python_value, operand2);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* Code referring to "NILONG" corresponds to Nuitka int/long/C long value and "DIGIT" to C platform digit value for long
|
|
151
|
+
* Python objects. */
|
|
152
|
+
bool RICH_COMPARE_EQ_CBOOL_NILONG_DIGIT(nuitka_ilong *operand1, long operand2) {
|
|
153
|
+
CHECK_NILONG_OBJECT(operand1);
|
|
154
|
+
assert(Py_ABS(operand2) < (1 << PyLong_SHIFT));
|
|
155
|
+
|
|
156
|
+
bool left_c_usable = IS_NILONG_C_VALUE_VALID(operand1);
|
|
157
|
+
bool right_c_usable = true;
|
|
158
|
+
|
|
159
|
+
if (left_c_usable && right_c_usable) {
|
|
160
|
+
return COMPARE_EQ_CBOOL_CLONG_CLONG(operand1->c_value, operand2);
|
|
161
|
+
} else if (!left_c_usable && !right_c_usable) {
|
|
162
|
+
ENFORCE_NILONG_OBJECT_VALUE(operand1);
|
|
163
|
+
|
|
164
|
+
return COMPARE_EQ_CBOOL_LONG_DIGIT(operand1->python_value, operand2);
|
|
165
|
+
} else {
|
|
166
|
+
return COMPARE_EQ_CBOOL_LONG_DIGIT(operand1->python_value, operand2);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
171
|
+
// integrates with CPython, but also works on its own.
|
|
172
|
+
//
|
|
173
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
174
|
+
// you may not use this file except in compliance with the License.
|
|
175
|
+
// You may obtain a copy of the License at
|
|
176
|
+
//
|
|
177
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
178
|
+
//
|
|
179
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
180
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
181
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
182
|
+
// See the License for the specific language governing permissions and
|
|
183
|
+
// limitations under the License.
|