Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__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-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
- Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +18 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +400 -0
- nuitka/MainControl.py +200 -112
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +368 -175
- nuitka/Options.py +632 -213
- nuitka/OutputDirectories.py +40 -21
- nuitka/PostProcessing.py +73 -50
- nuitka/Progress.py +58 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +106 -19
- nuitka/Serialization.py +68 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +108 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +21 -7
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +202 -140
- nuitka/build/CCompilerVersion.scons +39 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +50 -54
- nuitka/build/SconsCaching.py +93 -90
- nuitka/build/SconsCompilerSettings.py +157 -69
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +154 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +147 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +105 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +18 -18
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +18 -18
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +91 -53
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +29 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +593 -190
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -18
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +24 -22
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +32 -20
- nuitka/build/include/nuitka/helper/iterators.h +17 -17
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +29 -17
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +14 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +38 -20
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +128 -46
- nuitka/build/include/nuitka/printing.h +22 -17
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +32 -33
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +27 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +176 -182
- nuitka/build/static_src/CompiledCellType.c +63 -40
- nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
- nuitka/build/static_src/CompiledCoroutineType.c +196 -203
- nuitka/build/static_src/CompiledFrameType.c +287 -133
- nuitka/build/static_src/CompiledFunctionType.c +389 -95
- nuitka/build/static_src/CompiledGeneratorType.c +376 -252
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
- nuitka/build/static_src/CompiledMethodType.c +83 -71
- nuitka/build/static_src/HelpersAllocator.c +88 -19
- nuitka/build/static_src/HelpersAttributes.c +33 -54
- nuitka/build/static_src/HelpersBuiltin.c +43 -33
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +33 -30
- nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonEq.c +518 -492
- nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
- nuitka/build/static_src/HelpersComparisonGe.c +513 -497
- nuitka/build/static_src/HelpersComparisonGt.c +512 -496
- nuitka/build/static_src/HelpersComparisonLe.c +513 -497
- nuitka/build/static_src/HelpersComparisonLt.c +512 -496
- nuitka/build/static_src/HelpersComparisonNe.c +520 -492
- nuitka/build/static_src/HelpersConsole.c +96 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +51 -29
- nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +161 -50
- nuitka/build/static_src/HelpersFiles.c +37 -17
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +48 -20
- nuitka/build/static_src/HelpersImportHard.c +53 -17
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +140 -50
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +173 -146
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
- nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
- nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
- nuitka/build/static_src/HelpersProfiling.c +24 -23
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +88 -20
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +234 -37
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +68 -23
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +359 -263
- nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
- nuitka/build/static_src/OnefileBootstrap.c +276 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +19 -17
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +20 -17
- nuitka/code_generation/CallCodes.py +19 -17
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +48 -27
- nuitka/code_generation/CodeHelperSelection.py +19 -17
- nuitka/code_generation/CodeHelpers.py +24 -20
- nuitka/code_generation/CodeObjectCodes.py +34 -24
- nuitka/code_generation/ComparisonCodes.py +38 -20
- nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +152 -26
- nuitka/code_generation/CoroutineCodes.py +19 -17
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +25 -23
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +27 -33
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +27 -18
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +24 -20
- nuitka/code_generation/FunctionCodes.py +24 -21
- nuitka/code_generation/GeneratorCodes.py +23 -20
- nuitka/code_generation/GlobalConstants.py +43 -23
- nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +19 -17
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +19 -17
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +43 -25
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +29 -31
- nuitka/code_generation/PackageResourceCodes.py +59 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +19 -17
- nuitka/code_generation/Reports.py +19 -17
- nuitka/code_generation/ReturnCodes.py +19 -17
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +19 -17
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +71 -0
- nuitka/code_generation/VariableCodes.py +26 -22
- nuitka/code_generation/VariableDeclarations.py +20 -17
- nuitka/code_generation/YieldCodes.py +22 -20
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +19 -17
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
- nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
- nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
- nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +18 -18
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +121 -48
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +44 -32
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +19 -18
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +19 -18
- nuitka/distutils/DistutilCommands.py +34 -23
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +20 -17
- nuitka/finalizations/FinalizeMarkups.py +21 -41
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +48 -28
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +147 -57
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +29 -21
- nuitka/freezer/ImportDetection.py +20 -17
- nuitka/freezer/IncludedDataFiles.py +118 -47
- nuitka/freezer/IncludedEntryPoints.py +102 -38
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +105 -50
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +286 -92
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +131 -47
- nuitka/importing/StandardLibrary.py +46 -28
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +19 -17
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +24 -20
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +68 -19
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1250 -302
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +21 -23
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +19 -17
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +29 -17
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +54 -32
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +19 -17
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +81 -35
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +21 -19
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +545 -129
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +436 -446
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +45 -43
- nuitka/nodes/NodeMakingHelpers.py +21 -19
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +20 -17
- nuitka/nodes/OsSysNodes.py +66 -18
- nuitka/nodes/OutlineNodes.py +22 -20
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -77
- nuitka/nodes/StatementNodes.py +19 -17
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +26 -24
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +40 -17
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +145 -39
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +40 -17
- nuitka/nodes/shapes/StandardShapes.py +27 -20
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +19 -17
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +610 -109
- nuitka/plugins/Plugins.py +241 -58
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +407 -46
- nuitka/plugins/standard/KivyPlugin.py +30 -17
- nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +74 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +103 -53
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +94 -30
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3449 -1299
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
- nuitka/reports/CompilationReportReader.py +67 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +352 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +30 -20
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +67 -22
- nuitka/specs/ParameterSpecs.py +56 -41
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +19 -21
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +93 -71
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +31 -27
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +106 -52
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +36 -29
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +22 -25
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
- nuitka/tools/watch/AutoStage.py +144 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +176 -147
- nuitka/tree/ComplexCallHelperFunctions.py +80 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +20 -17
- nuitka/tree/ReformulationAssignmentStatements.py +92 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +146 -98
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +40 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +58 -54
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +244 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +21 -19
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +84 -19
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +73 -34
- nuitka/utils/FileOperations.py +318 -74
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +118 -24
- nuitka/utils/InstalledPythons.py +80 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +19 -17
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +115 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/top_level.txt +0 -0
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
|
-
// integrates with CPython, but also works on its own.
|
|
5
|
-
//
|
|
6
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
// you may not use this file except in compliance with the License.
|
|
8
|
-
// You may obtain a copy of the License at
|
|
9
|
-
//
|
|
10
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
//
|
|
12
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
// See the License for the specific language governing permissions and
|
|
16
|
-
// limitations under the License.
|
|
17
|
-
//
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
18
3
|
/* WARNING, this code is GENERATED. Modify the template CodeTemplateCallsPositional.c.j2 instead! */
|
|
19
4
|
|
|
20
5
|
/* This file is included from another C file, help IDEs to still parse it on its own. */
|
|
@@ -105,6 +90,44 @@ PyObject *CALL_FUNCTION_NO_ARGS(PyThreadState *tstate, PyObject *called) {
|
|
|
105
90
|
}
|
|
106
91
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
107
92
|
} else if (PyCFunction_CheckExact(called)) {
|
|
93
|
+
#if PYTHON_VERSION >= 0x380
|
|
94
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
95
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
96
|
+
return NULL;
|
|
97
|
+
}
|
|
98
|
+
#endif
|
|
99
|
+
|
|
100
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
101
|
+
|
|
102
|
+
PyObject *result;
|
|
103
|
+
|
|
104
|
+
if (!(flags & METH_VARARGS)) {
|
|
105
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
106
|
+
|
|
107
|
+
assert(func != NULL);
|
|
108
|
+
result = func(called, NULL, 0, NULL);
|
|
109
|
+
|
|
110
|
+
CHECK_OBJECT_X(result);
|
|
111
|
+
} else {
|
|
112
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
113
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
114
|
+
|
|
115
|
+
PyObject *pos_args = const_tuple_empty;
|
|
116
|
+
|
|
117
|
+
if (flags & METH_KEYWORDS) {
|
|
118
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
119
|
+
} else {
|
|
120
|
+
result = (*method)(self, pos_args);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
125
|
+
Py_LeaveRecursiveCall();
|
|
126
|
+
#endif
|
|
127
|
+
CHECK_OBJECT_X(result);
|
|
128
|
+
|
|
129
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
130
|
+
#else
|
|
108
131
|
// Try to be fast about wrapping the arguments.
|
|
109
132
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
110
133
|
|
|
@@ -178,7 +201,8 @@ PyObject *CALL_FUNCTION_NO_ARGS(PyThreadState *tstate, PyObject *called) {
|
|
|
178
201
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
179
202
|
}
|
|
180
203
|
#endif
|
|
181
|
-
#
|
|
204
|
+
#endif
|
|
205
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
182
206
|
} else if (PyFunction_Check(called)) {
|
|
183
207
|
#if PYTHON_VERSION < 0x3b0
|
|
184
208
|
PyObject *result = callPythonFunctionNoArgs(called);
|
|
@@ -486,6 +510,46 @@ PyObject *CALL_FUNCTION_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called,
|
|
|
486
510
|
}
|
|
487
511
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
488
512
|
} else if (PyCFunction_CheckExact(called)) {
|
|
513
|
+
#if PYTHON_VERSION >= 0x380
|
|
514
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
515
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
516
|
+
return NULL;
|
|
517
|
+
}
|
|
518
|
+
#endif
|
|
519
|
+
|
|
520
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
521
|
+
|
|
522
|
+
PyObject *result;
|
|
523
|
+
|
|
524
|
+
if (!(flags & METH_VARARGS)) {
|
|
525
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
526
|
+
|
|
527
|
+
assert(func != NULL);
|
|
528
|
+
result = func(called, args, 1, NULL);
|
|
529
|
+
|
|
530
|
+
CHECK_OBJECT_X(result);
|
|
531
|
+
} else {
|
|
532
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
533
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
534
|
+
|
|
535
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
536
|
+
|
|
537
|
+
if (flags & METH_KEYWORDS) {
|
|
538
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
539
|
+
} else {
|
|
540
|
+
result = (*method)(self, pos_args);
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
Py_DECREF(pos_args);
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
547
|
+
Py_LeaveRecursiveCall();
|
|
548
|
+
#endif
|
|
549
|
+
CHECK_OBJECT_X(result);
|
|
550
|
+
|
|
551
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
552
|
+
#else
|
|
489
553
|
// Try to be fast about wrapping the arguments.
|
|
490
554
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
491
555
|
|
|
@@ -527,7 +591,7 @@ PyObject *CALL_FUNCTION_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called,
|
|
|
527
591
|
PyObject *result;
|
|
528
592
|
|
|
529
593
|
#if PYTHON_VERSION < 0x360
|
|
530
|
-
PyObject *pos_args = MAKE_TUPLE(args, 1);
|
|
594
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
531
595
|
if (flags & METH_KEYWORDS) {
|
|
532
596
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
533
597
|
} else {
|
|
@@ -537,19 +601,19 @@ PyObject *CALL_FUNCTION_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called,
|
|
|
537
601
|
Py_DECREF(pos_args);
|
|
538
602
|
#else
|
|
539
603
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
540
|
-
PyObject *pos_args = MAKE_TUPLE(args, 1);
|
|
604
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
541
605
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
542
606
|
Py_DECREF(pos_args);
|
|
543
607
|
} else if (flags == METH_FASTCALL) {
|
|
544
608
|
#if PYTHON_VERSION < 0x370
|
|
545
609
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args, 1, NULL);
|
|
546
610
|
#else
|
|
547
|
-
PyObject *pos_args = MAKE_TUPLE(args, 1);
|
|
611
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
548
612
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 1);
|
|
549
613
|
Py_DECREF(pos_args);
|
|
550
614
|
#endif
|
|
551
615
|
} else {
|
|
552
|
-
PyObject *pos_args = MAKE_TUPLE(args, 1);
|
|
616
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
553
617
|
result = (*method)(self, pos_args);
|
|
554
618
|
Py_DECREF(pos_args);
|
|
555
619
|
}
|
|
@@ -564,7 +628,8 @@ PyObject *CALL_FUNCTION_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called,
|
|
|
564
628
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
565
629
|
}
|
|
566
630
|
#endif
|
|
567
|
-
#
|
|
631
|
+
#endif
|
|
632
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
568
633
|
} else if (PyFunction_Check(called)) {
|
|
569
634
|
#if PYTHON_VERSION < 0x3b0
|
|
570
635
|
PyObject *result = callPythonFunction(called, args, 1);
|
|
@@ -605,7 +670,7 @@ PyObject *CALL_FUNCTION_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called,
|
|
|
605
670
|
obj = called_type->tp_alloc(called_type, 0);
|
|
606
671
|
CHECK_OBJECT(obj);
|
|
607
672
|
} else {
|
|
608
|
-
pos_args = MAKE_TUPLE(args, 1);
|
|
673
|
+
pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
609
674
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
610
675
|
}
|
|
611
676
|
|
|
@@ -678,7 +743,7 @@ PyObject *CALL_FUNCTION_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called,
|
|
|
678
743
|
}
|
|
679
744
|
} else {
|
|
680
745
|
if (pos_args == NULL) {
|
|
681
|
-
pos_args = MAKE_TUPLE(args, 1);
|
|
746
|
+
pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
682
747
|
}
|
|
683
748
|
|
|
684
749
|
if (unlikely(type->tp_init(obj, pos_args, NULL) < 0)) {
|
|
@@ -777,7 +842,7 @@ PyObject *CALL_FUNCTION_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called,
|
|
|
777
842
|
PRINT_NEW_LINE();
|
|
778
843
|
#endif
|
|
779
844
|
|
|
780
|
-
PyObject *pos_args = MAKE_TUPLE(args, 1);
|
|
845
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
781
846
|
|
|
782
847
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
783
848
|
|
|
@@ -898,6 +963,42 @@ PyObject *CALL_FUNCTION_WITH_POSARGS1(PyThreadState *tstate, PyObject *called, P
|
|
|
898
963
|
}
|
|
899
964
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
900
965
|
} else if (PyCFunction_CheckExact(called)) {
|
|
966
|
+
#if PYTHON_VERSION >= 0x380
|
|
967
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
968
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
969
|
+
return NULL;
|
|
970
|
+
}
|
|
971
|
+
#endif
|
|
972
|
+
|
|
973
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
974
|
+
|
|
975
|
+
PyObject *result;
|
|
976
|
+
|
|
977
|
+
if (!(flags & METH_VARARGS)) {
|
|
978
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
979
|
+
|
|
980
|
+
assert(func != NULL);
|
|
981
|
+
result = func(called, args, 1, NULL);
|
|
982
|
+
|
|
983
|
+
CHECK_OBJECT_X(result);
|
|
984
|
+
} else {
|
|
985
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
986
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
987
|
+
|
|
988
|
+
if (flags & METH_KEYWORDS) {
|
|
989
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
990
|
+
} else {
|
|
991
|
+
result = (*method)(self, pos_args);
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
996
|
+
Py_LeaveRecursiveCall();
|
|
997
|
+
#endif
|
|
998
|
+
CHECK_OBJECT_X(result);
|
|
999
|
+
|
|
1000
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
1001
|
+
#else
|
|
901
1002
|
// Try to be fast about wrapping the arguments.
|
|
902
1003
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
903
1004
|
|
|
@@ -968,7 +1069,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS1(PyThreadState *tstate, PyObject *called, P
|
|
|
968
1069
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
969
1070
|
}
|
|
970
1071
|
#endif
|
|
971
|
-
#
|
|
1072
|
+
#endif
|
|
1073
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
972
1074
|
} else if (PyFunction_Check(called)) {
|
|
973
1075
|
#if PYTHON_VERSION < 0x3b0
|
|
974
1076
|
PyObject *result = callPythonFunction(called, args, 1);
|
|
@@ -1288,6 +1390,46 @@ PyObject *CALL_FUNCTION_WITH_ARGS2(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
1288
1390
|
}
|
|
1289
1391
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
1290
1392
|
} else if (PyCFunction_CheckExact(called)) {
|
|
1393
|
+
#if PYTHON_VERSION >= 0x380
|
|
1394
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
1395
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
1396
|
+
return NULL;
|
|
1397
|
+
}
|
|
1398
|
+
#endif
|
|
1399
|
+
|
|
1400
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
1401
|
+
|
|
1402
|
+
PyObject *result;
|
|
1403
|
+
|
|
1404
|
+
if (!(flags & METH_VARARGS)) {
|
|
1405
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
1406
|
+
|
|
1407
|
+
assert(func != NULL);
|
|
1408
|
+
result = func(called, args, 2, NULL);
|
|
1409
|
+
|
|
1410
|
+
CHECK_OBJECT_X(result);
|
|
1411
|
+
} else {
|
|
1412
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
1413
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
1414
|
+
|
|
1415
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
1416
|
+
|
|
1417
|
+
if (flags & METH_KEYWORDS) {
|
|
1418
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
1419
|
+
} else {
|
|
1420
|
+
result = (*method)(self, pos_args);
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1423
|
+
Py_DECREF(pos_args);
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
1427
|
+
Py_LeaveRecursiveCall();
|
|
1428
|
+
#endif
|
|
1429
|
+
CHECK_OBJECT_X(result);
|
|
1430
|
+
|
|
1431
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
1432
|
+
#else
|
|
1291
1433
|
// Try to be fast about wrapping the arguments.
|
|
1292
1434
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
1293
1435
|
|
|
@@ -1313,7 +1455,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS2(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
1313
1455
|
PyObject *result;
|
|
1314
1456
|
|
|
1315
1457
|
#if PYTHON_VERSION < 0x360
|
|
1316
|
-
PyObject *pos_args = MAKE_TUPLE(args, 2);
|
|
1458
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
1317
1459
|
if (flags & METH_KEYWORDS) {
|
|
1318
1460
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
1319
1461
|
} else {
|
|
@@ -1323,19 +1465,19 @@ PyObject *CALL_FUNCTION_WITH_ARGS2(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
1323
1465
|
Py_DECREF(pos_args);
|
|
1324
1466
|
#else
|
|
1325
1467
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
1326
|
-
PyObject *pos_args = MAKE_TUPLE(args, 2);
|
|
1468
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
1327
1469
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
1328
1470
|
Py_DECREF(pos_args);
|
|
1329
1471
|
} else if (flags == METH_FASTCALL) {
|
|
1330
1472
|
#if PYTHON_VERSION < 0x370
|
|
1331
1473
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args, 2, NULL);
|
|
1332
1474
|
#else
|
|
1333
|
-
PyObject *pos_args = MAKE_TUPLE(args, 2);
|
|
1475
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
1334
1476
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 2);
|
|
1335
1477
|
Py_DECREF(pos_args);
|
|
1336
1478
|
#endif
|
|
1337
1479
|
} else {
|
|
1338
|
-
PyObject *pos_args = MAKE_TUPLE(args, 2);
|
|
1480
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
1339
1481
|
result = (*method)(self, pos_args);
|
|
1340
1482
|
Py_DECREF(pos_args);
|
|
1341
1483
|
}
|
|
@@ -1350,7 +1492,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS2(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
1350
1492
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
1351
1493
|
}
|
|
1352
1494
|
#endif
|
|
1353
|
-
#
|
|
1495
|
+
#endif
|
|
1496
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
1354
1497
|
} else if (PyFunction_Check(called)) {
|
|
1355
1498
|
#if PYTHON_VERSION < 0x3b0
|
|
1356
1499
|
PyObject *result = callPythonFunction(called, args, 2);
|
|
@@ -1385,7 +1528,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS2(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
1385
1528
|
obj = called_type->tp_alloc(called_type, 0);
|
|
1386
1529
|
CHECK_OBJECT(obj);
|
|
1387
1530
|
} else {
|
|
1388
|
-
pos_args = MAKE_TUPLE(args, 2);
|
|
1531
|
+
pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
1389
1532
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
1390
1533
|
}
|
|
1391
1534
|
|
|
@@ -1457,7 +1600,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS2(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
1457
1600
|
}
|
|
1458
1601
|
} else {
|
|
1459
1602
|
if (pos_args == NULL) {
|
|
1460
|
-
pos_args = MAKE_TUPLE(args, 2);
|
|
1603
|
+
pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
1461
1604
|
}
|
|
1462
1605
|
|
|
1463
1606
|
if (unlikely(type->tp_init(obj, pos_args, NULL) < 0)) {
|
|
@@ -1556,7 +1699,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS2(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
1556
1699
|
PRINT_NEW_LINE();
|
|
1557
1700
|
#endif
|
|
1558
1701
|
|
|
1559
|
-
PyObject *pos_args = MAKE_TUPLE(args, 2);
|
|
1702
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
1560
1703
|
|
|
1561
1704
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
1562
1705
|
|
|
@@ -1681,6 +1824,42 @@ PyObject *CALL_FUNCTION_WITH_POSARGS2(PyThreadState *tstate, PyObject *called, P
|
|
|
1681
1824
|
}
|
|
1682
1825
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
1683
1826
|
} else if (PyCFunction_CheckExact(called)) {
|
|
1827
|
+
#if PYTHON_VERSION >= 0x380
|
|
1828
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
1829
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
1830
|
+
return NULL;
|
|
1831
|
+
}
|
|
1832
|
+
#endif
|
|
1833
|
+
|
|
1834
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
1835
|
+
|
|
1836
|
+
PyObject *result;
|
|
1837
|
+
|
|
1838
|
+
if (!(flags & METH_VARARGS)) {
|
|
1839
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
1840
|
+
|
|
1841
|
+
assert(func != NULL);
|
|
1842
|
+
result = func(called, args, 2, NULL);
|
|
1843
|
+
|
|
1844
|
+
CHECK_OBJECT_X(result);
|
|
1845
|
+
} else {
|
|
1846
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
1847
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
1848
|
+
|
|
1849
|
+
if (flags & METH_KEYWORDS) {
|
|
1850
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
1851
|
+
} else {
|
|
1852
|
+
result = (*method)(self, pos_args);
|
|
1853
|
+
}
|
|
1854
|
+
}
|
|
1855
|
+
|
|
1856
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
1857
|
+
Py_LeaveRecursiveCall();
|
|
1858
|
+
#endif
|
|
1859
|
+
CHECK_OBJECT_X(result);
|
|
1860
|
+
|
|
1861
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
1862
|
+
#else
|
|
1684
1863
|
// Try to be fast about wrapping the arguments.
|
|
1685
1864
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
1686
1865
|
|
|
@@ -1735,7 +1914,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS2(PyThreadState *tstate, PyObject *called, P
|
|
|
1735
1914
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
1736
1915
|
}
|
|
1737
1916
|
#endif
|
|
1738
|
-
#
|
|
1917
|
+
#endif
|
|
1918
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
1739
1919
|
} else if (PyFunction_Check(called)) {
|
|
1740
1920
|
#if PYTHON_VERSION < 0x3b0
|
|
1741
1921
|
PyObject *result = callPythonFunction(called, args, 2);
|
|
@@ -2048,6 +2228,46 @@ PyObject *CALL_FUNCTION_WITH_ARGS3(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2048
2228
|
}
|
|
2049
2229
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
2050
2230
|
} else if (PyCFunction_CheckExact(called)) {
|
|
2231
|
+
#if PYTHON_VERSION >= 0x380
|
|
2232
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
2233
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
2234
|
+
return NULL;
|
|
2235
|
+
}
|
|
2236
|
+
#endif
|
|
2237
|
+
|
|
2238
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
2239
|
+
|
|
2240
|
+
PyObject *result;
|
|
2241
|
+
|
|
2242
|
+
if (!(flags & METH_VARARGS)) {
|
|
2243
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
2244
|
+
|
|
2245
|
+
assert(func != NULL);
|
|
2246
|
+
result = func(called, args, 3, NULL);
|
|
2247
|
+
|
|
2248
|
+
CHECK_OBJECT_X(result);
|
|
2249
|
+
} else {
|
|
2250
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
2251
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
2252
|
+
|
|
2253
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
2254
|
+
|
|
2255
|
+
if (flags & METH_KEYWORDS) {
|
|
2256
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
2257
|
+
} else {
|
|
2258
|
+
result = (*method)(self, pos_args);
|
|
2259
|
+
}
|
|
2260
|
+
|
|
2261
|
+
Py_DECREF(pos_args);
|
|
2262
|
+
}
|
|
2263
|
+
|
|
2264
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
2265
|
+
Py_LeaveRecursiveCall();
|
|
2266
|
+
#endif
|
|
2267
|
+
CHECK_OBJECT_X(result);
|
|
2268
|
+
|
|
2269
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
2270
|
+
#else
|
|
2051
2271
|
// Try to be fast about wrapping the arguments.
|
|
2052
2272
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
2053
2273
|
|
|
@@ -2073,7 +2293,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS3(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2073
2293
|
PyObject *result;
|
|
2074
2294
|
|
|
2075
2295
|
#if PYTHON_VERSION < 0x360
|
|
2076
|
-
PyObject *pos_args = MAKE_TUPLE(args, 3);
|
|
2296
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
2077
2297
|
if (flags & METH_KEYWORDS) {
|
|
2078
2298
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
2079
2299
|
} else {
|
|
@@ -2083,19 +2303,19 @@ PyObject *CALL_FUNCTION_WITH_ARGS3(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2083
2303
|
Py_DECREF(pos_args);
|
|
2084
2304
|
#else
|
|
2085
2305
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
2086
|
-
PyObject *pos_args = MAKE_TUPLE(args, 3);
|
|
2306
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
2087
2307
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
2088
2308
|
Py_DECREF(pos_args);
|
|
2089
2309
|
} else if (flags == METH_FASTCALL) {
|
|
2090
2310
|
#if PYTHON_VERSION < 0x370
|
|
2091
2311
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args, 3, NULL);
|
|
2092
2312
|
#else
|
|
2093
|
-
PyObject *pos_args = MAKE_TUPLE(args, 3);
|
|
2313
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
2094
2314
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 3);
|
|
2095
2315
|
Py_DECREF(pos_args);
|
|
2096
2316
|
#endif
|
|
2097
2317
|
} else {
|
|
2098
|
-
PyObject *pos_args = MAKE_TUPLE(args, 3);
|
|
2318
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
2099
2319
|
result = (*method)(self, pos_args);
|
|
2100
2320
|
Py_DECREF(pos_args);
|
|
2101
2321
|
}
|
|
@@ -2110,7 +2330,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS3(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2110
2330
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
2111
2331
|
}
|
|
2112
2332
|
#endif
|
|
2113
|
-
#
|
|
2333
|
+
#endif
|
|
2334
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
2114
2335
|
} else if (PyFunction_Check(called)) {
|
|
2115
2336
|
#if PYTHON_VERSION < 0x3b0
|
|
2116
2337
|
PyObject *result = callPythonFunction(called, args, 3);
|
|
@@ -2145,7 +2366,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS3(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2145
2366
|
obj = called_type->tp_alloc(called_type, 0);
|
|
2146
2367
|
CHECK_OBJECT(obj);
|
|
2147
2368
|
} else {
|
|
2148
|
-
pos_args = MAKE_TUPLE(args, 3);
|
|
2369
|
+
pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
2149
2370
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
2150
2371
|
}
|
|
2151
2372
|
|
|
@@ -2217,7 +2438,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS3(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2217
2438
|
}
|
|
2218
2439
|
} else {
|
|
2219
2440
|
if (pos_args == NULL) {
|
|
2220
|
-
pos_args = MAKE_TUPLE(args, 3);
|
|
2441
|
+
pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
2221
2442
|
}
|
|
2222
2443
|
|
|
2223
2444
|
if (unlikely(type->tp_init(obj, pos_args, NULL) < 0)) {
|
|
@@ -2316,7 +2537,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS3(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2316
2537
|
PRINT_NEW_LINE();
|
|
2317
2538
|
#endif
|
|
2318
2539
|
|
|
2319
|
-
PyObject *pos_args = MAKE_TUPLE(args, 3);
|
|
2540
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
2320
2541
|
|
|
2321
2542
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
2322
2543
|
|
|
@@ -2441,6 +2662,42 @@ PyObject *CALL_FUNCTION_WITH_POSARGS3(PyThreadState *tstate, PyObject *called, P
|
|
|
2441
2662
|
}
|
|
2442
2663
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
2443
2664
|
} else if (PyCFunction_CheckExact(called)) {
|
|
2665
|
+
#if PYTHON_VERSION >= 0x380
|
|
2666
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
2667
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
2668
|
+
return NULL;
|
|
2669
|
+
}
|
|
2670
|
+
#endif
|
|
2671
|
+
|
|
2672
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
2673
|
+
|
|
2674
|
+
PyObject *result;
|
|
2675
|
+
|
|
2676
|
+
if (!(flags & METH_VARARGS)) {
|
|
2677
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
2678
|
+
|
|
2679
|
+
assert(func != NULL);
|
|
2680
|
+
result = func(called, args, 3, NULL);
|
|
2681
|
+
|
|
2682
|
+
CHECK_OBJECT_X(result);
|
|
2683
|
+
} else {
|
|
2684
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
2685
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
2686
|
+
|
|
2687
|
+
if (flags & METH_KEYWORDS) {
|
|
2688
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
2689
|
+
} else {
|
|
2690
|
+
result = (*method)(self, pos_args);
|
|
2691
|
+
}
|
|
2692
|
+
}
|
|
2693
|
+
|
|
2694
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
2695
|
+
Py_LeaveRecursiveCall();
|
|
2696
|
+
#endif
|
|
2697
|
+
CHECK_OBJECT_X(result);
|
|
2698
|
+
|
|
2699
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
2700
|
+
#else
|
|
2444
2701
|
// Try to be fast about wrapping the arguments.
|
|
2445
2702
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
2446
2703
|
|
|
@@ -2495,7 +2752,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS3(PyThreadState *tstate, PyObject *called, P
|
|
|
2495
2752
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
2496
2753
|
}
|
|
2497
2754
|
#endif
|
|
2498
|
-
#
|
|
2755
|
+
#endif
|
|
2756
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
2499
2757
|
} else if (PyFunction_Check(called)) {
|
|
2500
2758
|
#if PYTHON_VERSION < 0x3b0
|
|
2501
2759
|
PyObject *result = callPythonFunction(called, args, 3);
|
|
@@ -2808,6 +3066,46 @@ PyObject *CALL_FUNCTION_WITH_ARGS4(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2808
3066
|
}
|
|
2809
3067
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
2810
3068
|
} else if (PyCFunction_CheckExact(called)) {
|
|
3069
|
+
#if PYTHON_VERSION >= 0x380
|
|
3070
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
3071
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
3072
|
+
return NULL;
|
|
3073
|
+
}
|
|
3074
|
+
#endif
|
|
3075
|
+
|
|
3076
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
3077
|
+
|
|
3078
|
+
PyObject *result;
|
|
3079
|
+
|
|
3080
|
+
if (!(flags & METH_VARARGS)) {
|
|
3081
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
3082
|
+
|
|
3083
|
+
assert(func != NULL);
|
|
3084
|
+
result = func(called, args, 4, NULL);
|
|
3085
|
+
|
|
3086
|
+
CHECK_OBJECT_X(result);
|
|
3087
|
+
} else {
|
|
3088
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
3089
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
3090
|
+
|
|
3091
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
3092
|
+
|
|
3093
|
+
if (flags & METH_KEYWORDS) {
|
|
3094
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
3095
|
+
} else {
|
|
3096
|
+
result = (*method)(self, pos_args);
|
|
3097
|
+
}
|
|
3098
|
+
|
|
3099
|
+
Py_DECREF(pos_args);
|
|
3100
|
+
}
|
|
3101
|
+
|
|
3102
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
3103
|
+
Py_LeaveRecursiveCall();
|
|
3104
|
+
#endif
|
|
3105
|
+
CHECK_OBJECT_X(result);
|
|
3106
|
+
|
|
3107
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
3108
|
+
#else
|
|
2811
3109
|
// Try to be fast about wrapping the arguments.
|
|
2812
3110
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
2813
3111
|
|
|
@@ -2833,7 +3131,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS4(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2833
3131
|
PyObject *result;
|
|
2834
3132
|
|
|
2835
3133
|
#if PYTHON_VERSION < 0x360
|
|
2836
|
-
PyObject *pos_args = MAKE_TUPLE(args, 4);
|
|
3134
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
2837
3135
|
if (flags & METH_KEYWORDS) {
|
|
2838
3136
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
2839
3137
|
} else {
|
|
@@ -2843,19 +3141,19 @@ PyObject *CALL_FUNCTION_WITH_ARGS4(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2843
3141
|
Py_DECREF(pos_args);
|
|
2844
3142
|
#else
|
|
2845
3143
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
2846
|
-
PyObject *pos_args = MAKE_TUPLE(args, 4);
|
|
3144
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
2847
3145
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
2848
3146
|
Py_DECREF(pos_args);
|
|
2849
3147
|
} else if (flags == METH_FASTCALL) {
|
|
2850
3148
|
#if PYTHON_VERSION < 0x370
|
|
2851
3149
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args, 4, NULL);
|
|
2852
3150
|
#else
|
|
2853
|
-
PyObject *pos_args = MAKE_TUPLE(args, 4);
|
|
3151
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
2854
3152
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 4);
|
|
2855
3153
|
Py_DECREF(pos_args);
|
|
2856
3154
|
#endif
|
|
2857
3155
|
} else {
|
|
2858
|
-
PyObject *pos_args = MAKE_TUPLE(args, 4);
|
|
3156
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
2859
3157
|
result = (*method)(self, pos_args);
|
|
2860
3158
|
Py_DECREF(pos_args);
|
|
2861
3159
|
}
|
|
@@ -2870,7 +3168,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS4(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2870
3168
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
2871
3169
|
}
|
|
2872
3170
|
#endif
|
|
2873
|
-
#
|
|
3171
|
+
#endif
|
|
3172
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
2874
3173
|
} else if (PyFunction_Check(called)) {
|
|
2875
3174
|
#if PYTHON_VERSION < 0x3b0
|
|
2876
3175
|
PyObject *result = callPythonFunction(called, args, 4);
|
|
@@ -2905,7 +3204,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS4(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2905
3204
|
obj = called_type->tp_alloc(called_type, 0);
|
|
2906
3205
|
CHECK_OBJECT(obj);
|
|
2907
3206
|
} else {
|
|
2908
|
-
pos_args = MAKE_TUPLE(args, 4);
|
|
3207
|
+
pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
2909
3208
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
2910
3209
|
}
|
|
2911
3210
|
|
|
@@ -2977,7 +3276,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS4(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
2977
3276
|
}
|
|
2978
3277
|
} else {
|
|
2979
3278
|
if (pos_args == NULL) {
|
|
2980
|
-
pos_args = MAKE_TUPLE(args, 4);
|
|
3279
|
+
pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
2981
3280
|
}
|
|
2982
3281
|
|
|
2983
3282
|
if (unlikely(type->tp_init(obj, pos_args, NULL) < 0)) {
|
|
@@ -3076,7 +3375,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS4(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
3076
3375
|
PRINT_NEW_LINE();
|
|
3077
3376
|
#endif
|
|
3078
3377
|
|
|
3079
|
-
PyObject *pos_args = MAKE_TUPLE(args, 4);
|
|
3378
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
3080
3379
|
|
|
3081
3380
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
3082
3381
|
|
|
@@ -3201,6 +3500,42 @@ PyObject *CALL_FUNCTION_WITH_POSARGS4(PyThreadState *tstate, PyObject *called, P
|
|
|
3201
3500
|
}
|
|
3202
3501
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
3203
3502
|
} else if (PyCFunction_CheckExact(called)) {
|
|
3503
|
+
#if PYTHON_VERSION >= 0x380
|
|
3504
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
3505
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
3506
|
+
return NULL;
|
|
3507
|
+
}
|
|
3508
|
+
#endif
|
|
3509
|
+
|
|
3510
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
3511
|
+
|
|
3512
|
+
PyObject *result;
|
|
3513
|
+
|
|
3514
|
+
if (!(flags & METH_VARARGS)) {
|
|
3515
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
3516
|
+
|
|
3517
|
+
assert(func != NULL);
|
|
3518
|
+
result = func(called, args, 4, NULL);
|
|
3519
|
+
|
|
3520
|
+
CHECK_OBJECT_X(result);
|
|
3521
|
+
} else {
|
|
3522
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
3523
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
3524
|
+
|
|
3525
|
+
if (flags & METH_KEYWORDS) {
|
|
3526
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
3527
|
+
} else {
|
|
3528
|
+
result = (*method)(self, pos_args);
|
|
3529
|
+
}
|
|
3530
|
+
}
|
|
3531
|
+
|
|
3532
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
3533
|
+
Py_LeaveRecursiveCall();
|
|
3534
|
+
#endif
|
|
3535
|
+
CHECK_OBJECT_X(result);
|
|
3536
|
+
|
|
3537
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
3538
|
+
#else
|
|
3204
3539
|
// Try to be fast about wrapping the arguments.
|
|
3205
3540
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
3206
3541
|
|
|
@@ -3255,7 +3590,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS4(PyThreadState *tstate, PyObject *called, P
|
|
|
3255
3590
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
3256
3591
|
}
|
|
3257
3592
|
#endif
|
|
3258
|
-
#
|
|
3593
|
+
#endif
|
|
3594
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
3259
3595
|
} else if (PyFunction_Check(called)) {
|
|
3260
3596
|
#if PYTHON_VERSION < 0x3b0
|
|
3261
3597
|
PyObject *result = callPythonFunction(called, args, 4);
|
|
@@ -3568,6 +3904,46 @@ PyObject *CALL_FUNCTION_WITH_ARGS5(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
3568
3904
|
}
|
|
3569
3905
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
3570
3906
|
} else if (PyCFunction_CheckExact(called)) {
|
|
3907
|
+
#if PYTHON_VERSION >= 0x380
|
|
3908
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
3909
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
3910
|
+
return NULL;
|
|
3911
|
+
}
|
|
3912
|
+
#endif
|
|
3913
|
+
|
|
3914
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
3915
|
+
|
|
3916
|
+
PyObject *result;
|
|
3917
|
+
|
|
3918
|
+
if (!(flags & METH_VARARGS)) {
|
|
3919
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
3920
|
+
|
|
3921
|
+
assert(func != NULL);
|
|
3922
|
+
result = func(called, args, 5, NULL);
|
|
3923
|
+
|
|
3924
|
+
CHECK_OBJECT_X(result);
|
|
3925
|
+
} else {
|
|
3926
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
3927
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
3928
|
+
|
|
3929
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 5);
|
|
3930
|
+
|
|
3931
|
+
if (flags & METH_KEYWORDS) {
|
|
3932
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
3933
|
+
} else {
|
|
3934
|
+
result = (*method)(self, pos_args);
|
|
3935
|
+
}
|
|
3936
|
+
|
|
3937
|
+
Py_DECREF(pos_args);
|
|
3938
|
+
}
|
|
3939
|
+
|
|
3940
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
3941
|
+
Py_LeaveRecursiveCall();
|
|
3942
|
+
#endif
|
|
3943
|
+
CHECK_OBJECT_X(result);
|
|
3944
|
+
|
|
3945
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
3946
|
+
#else
|
|
3571
3947
|
// Try to be fast about wrapping the arguments.
|
|
3572
3948
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
3573
3949
|
|
|
@@ -3593,7 +3969,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS5(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
3593
3969
|
PyObject *result;
|
|
3594
3970
|
|
|
3595
3971
|
#if PYTHON_VERSION < 0x360
|
|
3596
|
-
PyObject *pos_args = MAKE_TUPLE(args, 5);
|
|
3972
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 5);
|
|
3597
3973
|
if (flags & METH_KEYWORDS) {
|
|
3598
3974
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
3599
3975
|
} else {
|
|
@@ -3603,19 +3979,19 @@ PyObject *CALL_FUNCTION_WITH_ARGS5(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
3603
3979
|
Py_DECREF(pos_args);
|
|
3604
3980
|
#else
|
|
3605
3981
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
3606
|
-
PyObject *pos_args = MAKE_TUPLE(args, 5);
|
|
3982
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 5);
|
|
3607
3983
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
3608
3984
|
Py_DECREF(pos_args);
|
|
3609
3985
|
} else if (flags == METH_FASTCALL) {
|
|
3610
3986
|
#if PYTHON_VERSION < 0x370
|
|
3611
3987
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args, 5, NULL);
|
|
3612
3988
|
#else
|
|
3613
|
-
PyObject *pos_args = MAKE_TUPLE(args, 5);
|
|
3989
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 5);
|
|
3614
3990
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 5);
|
|
3615
3991
|
Py_DECREF(pos_args);
|
|
3616
3992
|
#endif
|
|
3617
3993
|
} else {
|
|
3618
|
-
PyObject *pos_args = MAKE_TUPLE(args, 5);
|
|
3994
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 5);
|
|
3619
3995
|
result = (*method)(self, pos_args);
|
|
3620
3996
|
Py_DECREF(pos_args);
|
|
3621
3997
|
}
|
|
@@ -3630,7 +4006,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS5(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
3630
4006
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
3631
4007
|
}
|
|
3632
4008
|
#endif
|
|
3633
|
-
#
|
|
4009
|
+
#endif
|
|
4010
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
3634
4011
|
} else if (PyFunction_Check(called)) {
|
|
3635
4012
|
#if PYTHON_VERSION < 0x3b0
|
|
3636
4013
|
PyObject *result = callPythonFunction(called, args, 5);
|
|
@@ -3665,7 +4042,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS5(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
3665
4042
|
obj = called_type->tp_alloc(called_type, 0);
|
|
3666
4043
|
CHECK_OBJECT(obj);
|
|
3667
4044
|
} else {
|
|
3668
|
-
pos_args = MAKE_TUPLE(args, 5);
|
|
4045
|
+
pos_args = MAKE_TUPLE(tstate, args, 5);
|
|
3669
4046
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
3670
4047
|
}
|
|
3671
4048
|
|
|
@@ -3737,7 +4114,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS5(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
3737
4114
|
}
|
|
3738
4115
|
} else {
|
|
3739
4116
|
if (pos_args == NULL) {
|
|
3740
|
-
pos_args = MAKE_TUPLE(args, 5);
|
|
4117
|
+
pos_args = MAKE_TUPLE(tstate, args, 5);
|
|
3741
4118
|
}
|
|
3742
4119
|
|
|
3743
4120
|
if (unlikely(type->tp_init(obj, pos_args, NULL) < 0)) {
|
|
@@ -3836,7 +4213,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS5(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
3836
4213
|
PRINT_NEW_LINE();
|
|
3837
4214
|
#endif
|
|
3838
4215
|
|
|
3839
|
-
PyObject *pos_args = MAKE_TUPLE(args, 5);
|
|
4216
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 5);
|
|
3840
4217
|
|
|
3841
4218
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
3842
4219
|
|
|
@@ -3961,6 +4338,42 @@ PyObject *CALL_FUNCTION_WITH_POSARGS5(PyThreadState *tstate, PyObject *called, P
|
|
|
3961
4338
|
}
|
|
3962
4339
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
3963
4340
|
} else if (PyCFunction_CheckExact(called)) {
|
|
4341
|
+
#if PYTHON_VERSION >= 0x380
|
|
4342
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
4343
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
4344
|
+
return NULL;
|
|
4345
|
+
}
|
|
4346
|
+
#endif
|
|
4347
|
+
|
|
4348
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
4349
|
+
|
|
4350
|
+
PyObject *result;
|
|
4351
|
+
|
|
4352
|
+
if (!(flags & METH_VARARGS)) {
|
|
4353
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
4354
|
+
|
|
4355
|
+
assert(func != NULL);
|
|
4356
|
+
result = func(called, args, 5, NULL);
|
|
4357
|
+
|
|
4358
|
+
CHECK_OBJECT_X(result);
|
|
4359
|
+
} else {
|
|
4360
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
4361
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
4362
|
+
|
|
4363
|
+
if (flags & METH_KEYWORDS) {
|
|
4364
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
4365
|
+
} else {
|
|
4366
|
+
result = (*method)(self, pos_args);
|
|
4367
|
+
}
|
|
4368
|
+
}
|
|
4369
|
+
|
|
4370
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
4371
|
+
Py_LeaveRecursiveCall();
|
|
4372
|
+
#endif
|
|
4373
|
+
CHECK_OBJECT_X(result);
|
|
4374
|
+
|
|
4375
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
4376
|
+
#else
|
|
3964
4377
|
// Try to be fast about wrapping the arguments.
|
|
3965
4378
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
3966
4379
|
|
|
@@ -4015,7 +4428,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS5(PyThreadState *tstate, PyObject *called, P
|
|
|
4015
4428
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
4016
4429
|
}
|
|
4017
4430
|
#endif
|
|
4018
|
-
#
|
|
4431
|
+
#endif
|
|
4432
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
4019
4433
|
} else if (PyFunction_Check(called)) {
|
|
4020
4434
|
#if PYTHON_VERSION < 0x3b0
|
|
4021
4435
|
PyObject *result = callPythonFunction(called, args, 5);
|
|
@@ -4328,6 +4742,46 @@ PyObject *CALL_FUNCTION_WITH_ARGS6(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
4328
4742
|
}
|
|
4329
4743
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
4330
4744
|
} else if (PyCFunction_CheckExact(called)) {
|
|
4745
|
+
#if PYTHON_VERSION >= 0x380
|
|
4746
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
4747
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
4748
|
+
return NULL;
|
|
4749
|
+
}
|
|
4750
|
+
#endif
|
|
4751
|
+
|
|
4752
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
4753
|
+
|
|
4754
|
+
PyObject *result;
|
|
4755
|
+
|
|
4756
|
+
if (!(flags & METH_VARARGS)) {
|
|
4757
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
4758
|
+
|
|
4759
|
+
assert(func != NULL);
|
|
4760
|
+
result = func(called, args, 6, NULL);
|
|
4761
|
+
|
|
4762
|
+
CHECK_OBJECT_X(result);
|
|
4763
|
+
} else {
|
|
4764
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
4765
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
4766
|
+
|
|
4767
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 6);
|
|
4768
|
+
|
|
4769
|
+
if (flags & METH_KEYWORDS) {
|
|
4770
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
4771
|
+
} else {
|
|
4772
|
+
result = (*method)(self, pos_args);
|
|
4773
|
+
}
|
|
4774
|
+
|
|
4775
|
+
Py_DECREF(pos_args);
|
|
4776
|
+
}
|
|
4777
|
+
|
|
4778
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
4779
|
+
Py_LeaveRecursiveCall();
|
|
4780
|
+
#endif
|
|
4781
|
+
CHECK_OBJECT_X(result);
|
|
4782
|
+
|
|
4783
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
4784
|
+
#else
|
|
4331
4785
|
// Try to be fast about wrapping the arguments.
|
|
4332
4786
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
4333
4787
|
|
|
@@ -4353,7 +4807,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS6(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
4353
4807
|
PyObject *result;
|
|
4354
4808
|
|
|
4355
4809
|
#if PYTHON_VERSION < 0x360
|
|
4356
|
-
PyObject *pos_args = MAKE_TUPLE(args, 6);
|
|
4810
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 6);
|
|
4357
4811
|
if (flags & METH_KEYWORDS) {
|
|
4358
4812
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
4359
4813
|
} else {
|
|
@@ -4363,19 +4817,19 @@ PyObject *CALL_FUNCTION_WITH_ARGS6(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
4363
4817
|
Py_DECREF(pos_args);
|
|
4364
4818
|
#else
|
|
4365
4819
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
4366
|
-
PyObject *pos_args = MAKE_TUPLE(args, 6);
|
|
4820
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 6);
|
|
4367
4821
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
4368
4822
|
Py_DECREF(pos_args);
|
|
4369
4823
|
} else if (flags == METH_FASTCALL) {
|
|
4370
4824
|
#if PYTHON_VERSION < 0x370
|
|
4371
4825
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args, 6, NULL);
|
|
4372
4826
|
#else
|
|
4373
|
-
PyObject *pos_args = MAKE_TUPLE(args, 6);
|
|
4827
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 6);
|
|
4374
4828
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 6);
|
|
4375
4829
|
Py_DECREF(pos_args);
|
|
4376
4830
|
#endif
|
|
4377
4831
|
} else {
|
|
4378
|
-
PyObject *pos_args = MAKE_TUPLE(args, 6);
|
|
4832
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 6);
|
|
4379
4833
|
result = (*method)(self, pos_args);
|
|
4380
4834
|
Py_DECREF(pos_args);
|
|
4381
4835
|
}
|
|
@@ -4390,7 +4844,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS6(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
4390
4844
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
4391
4845
|
}
|
|
4392
4846
|
#endif
|
|
4393
|
-
#
|
|
4847
|
+
#endif
|
|
4848
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
4394
4849
|
} else if (PyFunction_Check(called)) {
|
|
4395
4850
|
#if PYTHON_VERSION < 0x3b0
|
|
4396
4851
|
PyObject *result = callPythonFunction(called, args, 6);
|
|
@@ -4425,7 +4880,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS6(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
4425
4880
|
obj = called_type->tp_alloc(called_type, 0);
|
|
4426
4881
|
CHECK_OBJECT(obj);
|
|
4427
4882
|
} else {
|
|
4428
|
-
pos_args = MAKE_TUPLE(args, 6);
|
|
4883
|
+
pos_args = MAKE_TUPLE(tstate, args, 6);
|
|
4429
4884
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
4430
4885
|
}
|
|
4431
4886
|
|
|
@@ -4497,7 +4952,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS6(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
4497
4952
|
}
|
|
4498
4953
|
} else {
|
|
4499
4954
|
if (pos_args == NULL) {
|
|
4500
|
-
pos_args = MAKE_TUPLE(args, 6);
|
|
4955
|
+
pos_args = MAKE_TUPLE(tstate, args, 6);
|
|
4501
4956
|
}
|
|
4502
4957
|
|
|
4503
4958
|
if (unlikely(type->tp_init(obj, pos_args, NULL) < 0)) {
|
|
@@ -4596,7 +5051,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS6(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
4596
5051
|
PRINT_NEW_LINE();
|
|
4597
5052
|
#endif
|
|
4598
5053
|
|
|
4599
|
-
PyObject *pos_args = MAKE_TUPLE(args, 6);
|
|
5054
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 6);
|
|
4600
5055
|
|
|
4601
5056
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
4602
5057
|
|
|
@@ -4721,6 +5176,42 @@ PyObject *CALL_FUNCTION_WITH_POSARGS6(PyThreadState *tstate, PyObject *called, P
|
|
|
4721
5176
|
}
|
|
4722
5177
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
4723
5178
|
} else if (PyCFunction_CheckExact(called)) {
|
|
5179
|
+
#if PYTHON_VERSION >= 0x380
|
|
5180
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
5181
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
5182
|
+
return NULL;
|
|
5183
|
+
}
|
|
5184
|
+
#endif
|
|
5185
|
+
|
|
5186
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
5187
|
+
|
|
5188
|
+
PyObject *result;
|
|
5189
|
+
|
|
5190
|
+
if (!(flags & METH_VARARGS)) {
|
|
5191
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
5192
|
+
|
|
5193
|
+
assert(func != NULL);
|
|
5194
|
+
result = func(called, args, 6, NULL);
|
|
5195
|
+
|
|
5196
|
+
CHECK_OBJECT_X(result);
|
|
5197
|
+
} else {
|
|
5198
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
5199
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
5200
|
+
|
|
5201
|
+
if (flags & METH_KEYWORDS) {
|
|
5202
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
5203
|
+
} else {
|
|
5204
|
+
result = (*method)(self, pos_args);
|
|
5205
|
+
}
|
|
5206
|
+
}
|
|
5207
|
+
|
|
5208
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
5209
|
+
Py_LeaveRecursiveCall();
|
|
5210
|
+
#endif
|
|
5211
|
+
CHECK_OBJECT_X(result);
|
|
5212
|
+
|
|
5213
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
5214
|
+
#else
|
|
4724
5215
|
// Try to be fast about wrapping the arguments.
|
|
4725
5216
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
4726
5217
|
|
|
@@ -4775,7 +5266,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS6(PyThreadState *tstate, PyObject *called, P
|
|
|
4775
5266
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
4776
5267
|
}
|
|
4777
5268
|
#endif
|
|
4778
|
-
#
|
|
5269
|
+
#endif
|
|
5270
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
4779
5271
|
} else if (PyFunction_Check(called)) {
|
|
4780
5272
|
#if PYTHON_VERSION < 0x3b0
|
|
4781
5273
|
PyObject *result = callPythonFunction(called, args, 6);
|
|
@@ -5071,23 +5563,63 @@ PyObject *CALL_FUNCTION_WITH_ARGS7(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5071
5563
|
memcpy(python_pars + 1 + 7, &PyTuple_GET_ITEM(function->m_defaults, 0),
|
|
5072
5564
|
function->m_defaults_given * sizeof(PyObject *));
|
|
5073
5565
|
|
|
5074
|
-
for (Py_ssize_t i = 1; i < function->m_args_overall_count; i++) {
|
|
5075
|
-
Py_INCREF(python_pars[i]);
|
|
5076
|
-
}
|
|
5566
|
+
for (Py_ssize_t i = 1; i < function->m_args_overall_count; i++) {
|
|
5567
|
+
Py_INCREF(python_pars[i]);
|
|
5568
|
+
}
|
|
5569
|
+
|
|
5570
|
+
result = function->m_c_code(tstate, function, python_pars);
|
|
5571
|
+
} else {
|
|
5572
|
+
result = Nuitka_CallMethodFunctionPosArgs(tstate, function, method->m_object, args, 7);
|
|
5573
|
+
}
|
|
5574
|
+
|
|
5575
|
+
Py_LeaveRecursiveCall();
|
|
5576
|
+
|
|
5577
|
+
CHECK_OBJECT_X(result);
|
|
5578
|
+
|
|
5579
|
+
return result;
|
|
5580
|
+
}
|
|
5581
|
+
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
5582
|
+
} else if (PyCFunction_CheckExact(called)) {
|
|
5583
|
+
#if PYTHON_VERSION >= 0x380
|
|
5584
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
5585
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
5586
|
+
return NULL;
|
|
5587
|
+
}
|
|
5588
|
+
#endif
|
|
5589
|
+
|
|
5590
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
5591
|
+
|
|
5592
|
+
PyObject *result;
|
|
5593
|
+
|
|
5594
|
+
if (!(flags & METH_VARARGS)) {
|
|
5595
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
5596
|
+
|
|
5597
|
+
assert(func != NULL);
|
|
5598
|
+
result = func(called, args, 7, NULL);
|
|
5599
|
+
|
|
5600
|
+
CHECK_OBJECT_X(result);
|
|
5601
|
+
} else {
|
|
5602
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
5603
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
5604
|
+
|
|
5605
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 7);
|
|
5077
5606
|
|
|
5078
|
-
|
|
5607
|
+
if (flags & METH_KEYWORDS) {
|
|
5608
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
5079
5609
|
} else {
|
|
5080
|
-
result =
|
|
5610
|
+
result = (*method)(self, pos_args);
|
|
5081
5611
|
}
|
|
5082
5612
|
|
|
5083
|
-
|
|
5613
|
+
Py_DECREF(pos_args);
|
|
5614
|
+
}
|
|
5084
5615
|
|
|
5085
|
-
|
|
5616
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
5617
|
+
Py_LeaveRecursiveCall();
|
|
5618
|
+
#endif
|
|
5619
|
+
CHECK_OBJECT_X(result);
|
|
5086
5620
|
|
|
5087
|
-
|
|
5088
|
-
|
|
5089
|
-
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
5090
|
-
} else if (PyCFunction_CheckExact(called)) {
|
|
5621
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
5622
|
+
#else
|
|
5091
5623
|
// Try to be fast about wrapping the arguments.
|
|
5092
5624
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
5093
5625
|
|
|
@@ -5113,7 +5645,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS7(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5113
5645
|
PyObject *result;
|
|
5114
5646
|
|
|
5115
5647
|
#if PYTHON_VERSION < 0x360
|
|
5116
|
-
PyObject *pos_args = MAKE_TUPLE(args, 7);
|
|
5648
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 7);
|
|
5117
5649
|
if (flags & METH_KEYWORDS) {
|
|
5118
5650
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
5119
5651
|
} else {
|
|
@@ -5123,19 +5655,19 @@ PyObject *CALL_FUNCTION_WITH_ARGS7(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5123
5655
|
Py_DECREF(pos_args);
|
|
5124
5656
|
#else
|
|
5125
5657
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
5126
|
-
PyObject *pos_args = MAKE_TUPLE(args, 7);
|
|
5658
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 7);
|
|
5127
5659
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
5128
5660
|
Py_DECREF(pos_args);
|
|
5129
5661
|
} else if (flags == METH_FASTCALL) {
|
|
5130
5662
|
#if PYTHON_VERSION < 0x370
|
|
5131
5663
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args, 7, NULL);
|
|
5132
5664
|
#else
|
|
5133
|
-
PyObject *pos_args = MAKE_TUPLE(args, 7);
|
|
5665
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 7);
|
|
5134
5666
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 7);
|
|
5135
5667
|
Py_DECREF(pos_args);
|
|
5136
5668
|
#endif
|
|
5137
5669
|
} else {
|
|
5138
|
-
PyObject *pos_args = MAKE_TUPLE(args, 7);
|
|
5670
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 7);
|
|
5139
5671
|
result = (*method)(self, pos_args);
|
|
5140
5672
|
Py_DECREF(pos_args);
|
|
5141
5673
|
}
|
|
@@ -5150,7 +5682,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS7(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5150
5682
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
5151
5683
|
}
|
|
5152
5684
|
#endif
|
|
5153
|
-
#
|
|
5685
|
+
#endif
|
|
5686
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
5154
5687
|
} else if (PyFunction_Check(called)) {
|
|
5155
5688
|
#if PYTHON_VERSION < 0x3b0
|
|
5156
5689
|
PyObject *result = callPythonFunction(called, args, 7);
|
|
@@ -5185,7 +5718,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS7(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5185
5718
|
obj = called_type->tp_alloc(called_type, 0);
|
|
5186
5719
|
CHECK_OBJECT(obj);
|
|
5187
5720
|
} else {
|
|
5188
|
-
pos_args = MAKE_TUPLE(args, 7);
|
|
5721
|
+
pos_args = MAKE_TUPLE(tstate, args, 7);
|
|
5189
5722
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
5190
5723
|
}
|
|
5191
5724
|
|
|
@@ -5257,7 +5790,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS7(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5257
5790
|
}
|
|
5258
5791
|
} else {
|
|
5259
5792
|
if (pos_args == NULL) {
|
|
5260
|
-
pos_args = MAKE_TUPLE(args, 7);
|
|
5793
|
+
pos_args = MAKE_TUPLE(tstate, args, 7);
|
|
5261
5794
|
}
|
|
5262
5795
|
|
|
5263
5796
|
if (unlikely(type->tp_init(obj, pos_args, NULL) < 0)) {
|
|
@@ -5356,7 +5889,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS7(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5356
5889
|
PRINT_NEW_LINE();
|
|
5357
5890
|
#endif
|
|
5358
5891
|
|
|
5359
|
-
PyObject *pos_args = MAKE_TUPLE(args, 7);
|
|
5892
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 7);
|
|
5360
5893
|
|
|
5361
5894
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
5362
5895
|
|
|
@@ -5481,6 +6014,42 @@ PyObject *CALL_FUNCTION_WITH_POSARGS7(PyThreadState *tstate, PyObject *called, P
|
|
|
5481
6014
|
}
|
|
5482
6015
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
5483
6016
|
} else if (PyCFunction_CheckExact(called)) {
|
|
6017
|
+
#if PYTHON_VERSION >= 0x380
|
|
6018
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
6019
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
6020
|
+
return NULL;
|
|
6021
|
+
}
|
|
6022
|
+
#endif
|
|
6023
|
+
|
|
6024
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
6025
|
+
|
|
6026
|
+
PyObject *result;
|
|
6027
|
+
|
|
6028
|
+
if (!(flags & METH_VARARGS)) {
|
|
6029
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
6030
|
+
|
|
6031
|
+
assert(func != NULL);
|
|
6032
|
+
result = func(called, args, 7, NULL);
|
|
6033
|
+
|
|
6034
|
+
CHECK_OBJECT_X(result);
|
|
6035
|
+
} else {
|
|
6036
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
6037
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
6038
|
+
|
|
6039
|
+
if (flags & METH_KEYWORDS) {
|
|
6040
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
6041
|
+
} else {
|
|
6042
|
+
result = (*method)(self, pos_args);
|
|
6043
|
+
}
|
|
6044
|
+
}
|
|
6045
|
+
|
|
6046
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
6047
|
+
Py_LeaveRecursiveCall();
|
|
6048
|
+
#endif
|
|
6049
|
+
CHECK_OBJECT_X(result);
|
|
6050
|
+
|
|
6051
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
6052
|
+
#else
|
|
5484
6053
|
// Try to be fast about wrapping the arguments.
|
|
5485
6054
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
5486
6055
|
|
|
@@ -5535,7 +6104,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS7(PyThreadState *tstate, PyObject *called, P
|
|
|
5535
6104
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
5536
6105
|
}
|
|
5537
6106
|
#endif
|
|
5538
|
-
#
|
|
6107
|
+
#endif
|
|
6108
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
5539
6109
|
} else if (PyFunction_Check(called)) {
|
|
5540
6110
|
#if PYTHON_VERSION < 0x3b0
|
|
5541
6111
|
PyObject *result = callPythonFunction(called, args, 7);
|
|
@@ -5848,6 +6418,46 @@ PyObject *CALL_FUNCTION_WITH_ARGS8(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5848
6418
|
}
|
|
5849
6419
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
5850
6420
|
} else if (PyCFunction_CheckExact(called)) {
|
|
6421
|
+
#if PYTHON_VERSION >= 0x380
|
|
6422
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
6423
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
6424
|
+
return NULL;
|
|
6425
|
+
}
|
|
6426
|
+
#endif
|
|
6427
|
+
|
|
6428
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
6429
|
+
|
|
6430
|
+
PyObject *result;
|
|
6431
|
+
|
|
6432
|
+
if (!(flags & METH_VARARGS)) {
|
|
6433
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
6434
|
+
|
|
6435
|
+
assert(func != NULL);
|
|
6436
|
+
result = func(called, args, 8, NULL);
|
|
6437
|
+
|
|
6438
|
+
CHECK_OBJECT_X(result);
|
|
6439
|
+
} else {
|
|
6440
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
6441
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
6442
|
+
|
|
6443
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 8);
|
|
6444
|
+
|
|
6445
|
+
if (flags & METH_KEYWORDS) {
|
|
6446
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
6447
|
+
} else {
|
|
6448
|
+
result = (*method)(self, pos_args);
|
|
6449
|
+
}
|
|
6450
|
+
|
|
6451
|
+
Py_DECREF(pos_args);
|
|
6452
|
+
}
|
|
6453
|
+
|
|
6454
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
6455
|
+
Py_LeaveRecursiveCall();
|
|
6456
|
+
#endif
|
|
6457
|
+
CHECK_OBJECT_X(result);
|
|
6458
|
+
|
|
6459
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
6460
|
+
#else
|
|
5851
6461
|
// Try to be fast about wrapping the arguments.
|
|
5852
6462
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
5853
6463
|
|
|
@@ -5873,7 +6483,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS8(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5873
6483
|
PyObject *result;
|
|
5874
6484
|
|
|
5875
6485
|
#if PYTHON_VERSION < 0x360
|
|
5876
|
-
PyObject *pos_args = MAKE_TUPLE(args, 8);
|
|
6486
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 8);
|
|
5877
6487
|
if (flags & METH_KEYWORDS) {
|
|
5878
6488
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
5879
6489
|
} else {
|
|
@@ -5883,19 +6493,19 @@ PyObject *CALL_FUNCTION_WITH_ARGS8(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5883
6493
|
Py_DECREF(pos_args);
|
|
5884
6494
|
#else
|
|
5885
6495
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
5886
|
-
PyObject *pos_args = MAKE_TUPLE(args, 8);
|
|
6496
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 8);
|
|
5887
6497
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
5888
6498
|
Py_DECREF(pos_args);
|
|
5889
6499
|
} else if (flags == METH_FASTCALL) {
|
|
5890
6500
|
#if PYTHON_VERSION < 0x370
|
|
5891
6501
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args, 8, NULL);
|
|
5892
6502
|
#else
|
|
5893
|
-
PyObject *pos_args = MAKE_TUPLE(args, 8);
|
|
6503
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 8);
|
|
5894
6504
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 8);
|
|
5895
6505
|
Py_DECREF(pos_args);
|
|
5896
6506
|
#endif
|
|
5897
6507
|
} else {
|
|
5898
|
-
PyObject *pos_args = MAKE_TUPLE(args, 8);
|
|
6508
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 8);
|
|
5899
6509
|
result = (*method)(self, pos_args);
|
|
5900
6510
|
Py_DECREF(pos_args);
|
|
5901
6511
|
}
|
|
@@ -5910,7 +6520,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS8(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5910
6520
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
5911
6521
|
}
|
|
5912
6522
|
#endif
|
|
5913
|
-
#
|
|
6523
|
+
#endif
|
|
6524
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
5914
6525
|
} else if (PyFunction_Check(called)) {
|
|
5915
6526
|
#if PYTHON_VERSION < 0x3b0
|
|
5916
6527
|
PyObject *result = callPythonFunction(called, args, 8);
|
|
@@ -5945,7 +6556,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS8(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
5945
6556
|
obj = called_type->tp_alloc(called_type, 0);
|
|
5946
6557
|
CHECK_OBJECT(obj);
|
|
5947
6558
|
} else {
|
|
5948
|
-
pos_args = MAKE_TUPLE(args, 8);
|
|
6559
|
+
pos_args = MAKE_TUPLE(tstate, args, 8);
|
|
5949
6560
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
5950
6561
|
}
|
|
5951
6562
|
|
|
@@ -6017,7 +6628,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS8(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
6017
6628
|
}
|
|
6018
6629
|
} else {
|
|
6019
6630
|
if (pos_args == NULL) {
|
|
6020
|
-
pos_args = MAKE_TUPLE(args, 8);
|
|
6631
|
+
pos_args = MAKE_TUPLE(tstate, args, 8);
|
|
6021
6632
|
}
|
|
6022
6633
|
|
|
6023
6634
|
if (unlikely(type->tp_init(obj, pos_args, NULL) < 0)) {
|
|
@@ -6116,7 +6727,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS8(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
6116
6727
|
PRINT_NEW_LINE();
|
|
6117
6728
|
#endif
|
|
6118
6729
|
|
|
6119
|
-
PyObject *pos_args = MAKE_TUPLE(args, 8);
|
|
6730
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 8);
|
|
6120
6731
|
|
|
6121
6732
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
6122
6733
|
|
|
@@ -6241,6 +6852,42 @@ PyObject *CALL_FUNCTION_WITH_POSARGS8(PyThreadState *tstate, PyObject *called, P
|
|
|
6241
6852
|
}
|
|
6242
6853
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
6243
6854
|
} else if (PyCFunction_CheckExact(called)) {
|
|
6855
|
+
#if PYTHON_VERSION >= 0x380
|
|
6856
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
6857
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
6858
|
+
return NULL;
|
|
6859
|
+
}
|
|
6860
|
+
#endif
|
|
6861
|
+
|
|
6862
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
6863
|
+
|
|
6864
|
+
PyObject *result;
|
|
6865
|
+
|
|
6866
|
+
if (!(flags & METH_VARARGS)) {
|
|
6867
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
6868
|
+
|
|
6869
|
+
assert(func != NULL);
|
|
6870
|
+
result = func(called, args, 8, NULL);
|
|
6871
|
+
|
|
6872
|
+
CHECK_OBJECT_X(result);
|
|
6873
|
+
} else {
|
|
6874
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
6875
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
6876
|
+
|
|
6877
|
+
if (flags & METH_KEYWORDS) {
|
|
6878
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
6879
|
+
} else {
|
|
6880
|
+
result = (*method)(self, pos_args);
|
|
6881
|
+
}
|
|
6882
|
+
}
|
|
6883
|
+
|
|
6884
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
6885
|
+
Py_LeaveRecursiveCall();
|
|
6886
|
+
#endif
|
|
6887
|
+
CHECK_OBJECT_X(result);
|
|
6888
|
+
|
|
6889
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
6890
|
+
#else
|
|
6244
6891
|
// Try to be fast about wrapping the arguments.
|
|
6245
6892
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
6246
6893
|
|
|
@@ -6295,7 +6942,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS8(PyThreadState *tstate, PyObject *called, P
|
|
|
6295
6942
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
6296
6943
|
}
|
|
6297
6944
|
#endif
|
|
6298
|
-
#
|
|
6945
|
+
#endif
|
|
6946
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
6299
6947
|
} else if (PyFunction_Check(called)) {
|
|
6300
6948
|
#if PYTHON_VERSION < 0x3b0
|
|
6301
6949
|
PyObject *result = callPythonFunction(called, args, 8);
|
|
@@ -6608,6 +7256,46 @@ PyObject *CALL_FUNCTION_WITH_ARGS9(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
6608
7256
|
}
|
|
6609
7257
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
6610
7258
|
} else if (PyCFunction_CheckExact(called)) {
|
|
7259
|
+
#if PYTHON_VERSION >= 0x380
|
|
7260
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
7261
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
7262
|
+
return NULL;
|
|
7263
|
+
}
|
|
7264
|
+
#endif
|
|
7265
|
+
|
|
7266
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
7267
|
+
|
|
7268
|
+
PyObject *result;
|
|
7269
|
+
|
|
7270
|
+
if (!(flags & METH_VARARGS)) {
|
|
7271
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
7272
|
+
|
|
7273
|
+
assert(func != NULL);
|
|
7274
|
+
result = func(called, args, 9, NULL);
|
|
7275
|
+
|
|
7276
|
+
CHECK_OBJECT_X(result);
|
|
7277
|
+
} else {
|
|
7278
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
7279
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
7280
|
+
|
|
7281
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 9);
|
|
7282
|
+
|
|
7283
|
+
if (flags & METH_KEYWORDS) {
|
|
7284
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
7285
|
+
} else {
|
|
7286
|
+
result = (*method)(self, pos_args);
|
|
7287
|
+
}
|
|
7288
|
+
|
|
7289
|
+
Py_DECREF(pos_args);
|
|
7290
|
+
}
|
|
7291
|
+
|
|
7292
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
7293
|
+
Py_LeaveRecursiveCall();
|
|
7294
|
+
#endif
|
|
7295
|
+
CHECK_OBJECT_X(result);
|
|
7296
|
+
|
|
7297
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
7298
|
+
#else
|
|
6611
7299
|
// Try to be fast about wrapping the arguments.
|
|
6612
7300
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
6613
7301
|
|
|
@@ -6633,7 +7321,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS9(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
6633
7321
|
PyObject *result;
|
|
6634
7322
|
|
|
6635
7323
|
#if PYTHON_VERSION < 0x360
|
|
6636
|
-
PyObject *pos_args = MAKE_TUPLE(args, 9);
|
|
7324
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 9);
|
|
6637
7325
|
if (flags & METH_KEYWORDS) {
|
|
6638
7326
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
6639
7327
|
} else {
|
|
@@ -6643,19 +7331,19 @@ PyObject *CALL_FUNCTION_WITH_ARGS9(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
6643
7331
|
Py_DECREF(pos_args);
|
|
6644
7332
|
#else
|
|
6645
7333
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
6646
|
-
PyObject *pos_args = MAKE_TUPLE(args, 9);
|
|
7334
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 9);
|
|
6647
7335
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
6648
7336
|
Py_DECREF(pos_args);
|
|
6649
7337
|
} else if (flags == METH_FASTCALL) {
|
|
6650
7338
|
#if PYTHON_VERSION < 0x370
|
|
6651
7339
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args, 9, NULL);
|
|
6652
7340
|
#else
|
|
6653
|
-
PyObject *pos_args = MAKE_TUPLE(args, 9);
|
|
7341
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 9);
|
|
6654
7342
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 9);
|
|
6655
7343
|
Py_DECREF(pos_args);
|
|
6656
7344
|
#endif
|
|
6657
7345
|
} else {
|
|
6658
|
-
PyObject *pos_args = MAKE_TUPLE(args, 9);
|
|
7346
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 9);
|
|
6659
7347
|
result = (*method)(self, pos_args);
|
|
6660
7348
|
Py_DECREF(pos_args);
|
|
6661
7349
|
}
|
|
@@ -6670,7 +7358,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS9(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
6670
7358
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
6671
7359
|
}
|
|
6672
7360
|
#endif
|
|
6673
|
-
#
|
|
7361
|
+
#endif
|
|
7362
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
6674
7363
|
} else if (PyFunction_Check(called)) {
|
|
6675
7364
|
#if PYTHON_VERSION < 0x3b0
|
|
6676
7365
|
PyObject *result = callPythonFunction(called, args, 9);
|
|
@@ -6705,7 +7394,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS9(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
6705
7394
|
obj = called_type->tp_alloc(called_type, 0);
|
|
6706
7395
|
CHECK_OBJECT(obj);
|
|
6707
7396
|
} else {
|
|
6708
|
-
pos_args = MAKE_TUPLE(args, 9);
|
|
7397
|
+
pos_args = MAKE_TUPLE(tstate, args, 9);
|
|
6709
7398
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
6710
7399
|
}
|
|
6711
7400
|
|
|
@@ -6777,7 +7466,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS9(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
6777
7466
|
}
|
|
6778
7467
|
} else {
|
|
6779
7468
|
if (pos_args == NULL) {
|
|
6780
|
-
pos_args = MAKE_TUPLE(args, 9);
|
|
7469
|
+
pos_args = MAKE_TUPLE(tstate, args, 9);
|
|
6781
7470
|
}
|
|
6782
7471
|
|
|
6783
7472
|
if (unlikely(type->tp_init(obj, pos_args, NULL) < 0)) {
|
|
@@ -6876,7 +7565,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS9(PyThreadState *tstate, PyObject *called, PyOb
|
|
|
6876
7565
|
PRINT_NEW_LINE();
|
|
6877
7566
|
#endif
|
|
6878
7567
|
|
|
6879
|
-
PyObject *pos_args = MAKE_TUPLE(args, 9);
|
|
7568
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 9);
|
|
6880
7569
|
|
|
6881
7570
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
6882
7571
|
|
|
@@ -7001,6 +7690,42 @@ PyObject *CALL_FUNCTION_WITH_POSARGS9(PyThreadState *tstate, PyObject *called, P
|
|
|
7001
7690
|
}
|
|
7002
7691
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
7003
7692
|
} else if (PyCFunction_CheckExact(called)) {
|
|
7693
|
+
#if PYTHON_VERSION >= 0x380
|
|
7694
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
7695
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
7696
|
+
return NULL;
|
|
7697
|
+
}
|
|
7698
|
+
#endif
|
|
7699
|
+
|
|
7700
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
7701
|
+
|
|
7702
|
+
PyObject *result;
|
|
7703
|
+
|
|
7704
|
+
if (!(flags & METH_VARARGS)) {
|
|
7705
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
7706
|
+
|
|
7707
|
+
assert(func != NULL);
|
|
7708
|
+
result = func(called, args, 9, NULL);
|
|
7709
|
+
|
|
7710
|
+
CHECK_OBJECT_X(result);
|
|
7711
|
+
} else {
|
|
7712
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
7713
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
7714
|
+
|
|
7715
|
+
if (flags & METH_KEYWORDS) {
|
|
7716
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
7717
|
+
} else {
|
|
7718
|
+
result = (*method)(self, pos_args);
|
|
7719
|
+
}
|
|
7720
|
+
}
|
|
7721
|
+
|
|
7722
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
7723
|
+
Py_LeaveRecursiveCall();
|
|
7724
|
+
#endif
|
|
7725
|
+
CHECK_OBJECT_X(result);
|
|
7726
|
+
|
|
7727
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
7728
|
+
#else
|
|
7004
7729
|
// Try to be fast about wrapping the arguments.
|
|
7005
7730
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
7006
7731
|
|
|
@@ -7055,7 +7780,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS9(PyThreadState *tstate, PyObject *called, P
|
|
|
7055
7780
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
7056
7781
|
}
|
|
7057
7782
|
#endif
|
|
7058
|
-
#
|
|
7783
|
+
#endif
|
|
7784
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
7059
7785
|
} else if (PyFunction_Check(called)) {
|
|
7060
7786
|
#if PYTHON_VERSION < 0x3b0
|
|
7061
7787
|
PyObject *result = callPythonFunction(called, args, 9);
|
|
@@ -7368,6 +8094,46 @@ PyObject *CALL_FUNCTION_WITH_ARGS10(PyThreadState *tstate, PyObject *called, PyO
|
|
|
7368
8094
|
}
|
|
7369
8095
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
7370
8096
|
} else if (PyCFunction_CheckExact(called)) {
|
|
8097
|
+
#if PYTHON_VERSION >= 0x380
|
|
8098
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
8099
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
8100
|
+
return NULL;
|
|
8101
|
+
}
|
|
8102
|
+
#endif
|
|
8103
|
+
|
|
8104
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
8105
|
+
|
|
8106
|
+
PyObject *result;
|
|
8107
|
+
|
|
8108
|
+
if (!(flags & METH_VARARGS)) {
|
|
8109
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
8110
|
+
|
|
8111
|
+
assert(func != NULL);
|
|
8112
|
+
result = func(called, args, 10, NULL);
|
|
8113
|
+
|
|
8114
|
+
CHECK_OBJECT_X(result);
|
|
8115
|
+
} else {
|
|
8116
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
8117
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
8118
|
+
|
|
8119
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 10);
|
|
8120
|
+
|
|
8121
|
+
if (flags & METH_KEYWORDS) {
|
|
8122
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
8123
|
+
} else {
|
|
8124
|
+
result = (*method)(self, pos_args);
|
|
8125
|
+
}
|
|
8126
|
+
|
|
8127
|
+
Py_DECREF(pos_args);
|
|
8128
|
+
}
|
|
8129
|
+
|
|
8130
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
8131
|
+
Py_LeaveRecursiveCall();
|
|
8132
|
+
#endif
|
|
8133
|
+
CHECK_OBJECT_X(result);
|
|
8134
|
+
|
|
8135
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
8136
|
+
#else
|
|
7371
8137
|
// Try to be fast about wrapping the arguments.
|
|
7372
8138
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
7373
8139
|
|
|
@@ -7393,7 +8159,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS10(PyThreadState *tstate, PyObject *called, PyO
|
|
|
7393
8159
|
PyObject *result;
|
|
7394
8160
|
|
|
7395
8161
|
#if PYTHON_VERSION < 0x360
|
|
7396
|
-
PyObject *pos_args = MAKE_TUPLE(args, 10);
|
|
8162
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 10);
|
|
7397
8163
|
if (flags & METH_KEYWORDS) {
|
|
7398
8164
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
7399
8165
|
} else {
|
|
@@ -7403,19 +8169,19 @@ PyObject *CALL_FUNCTION_WITH_ARGS10(PyThreadState *tstate, PyObject *called, PyO
|
|
|
7403
8169
|
Py_DECREF(pos_args);
|
|
7404
8170
|
#else
|
|
7405
8171
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
7406
|
-
PyObject *pos_args = MAKE_TUPLE(args, 10);
|
|
8172
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 10);
|
|
7407
8173
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
7408
8174
|
Py_DECREF(pos_args);
|
|
7409
8175
|
} else if (flags == METH_FASTCALL) {
|
|
7410
8176
|
#if PYTHON_VERSION < 0x370
|
|
7411
8177
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args, 10, NULL);
|
|
7412
8178
|
#else
|
|
7413
|
-
PyObject *pos_args = MAKE_TUPLE(args, 10);
|
|
8179
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 10);
|
|
7414
8180
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 10);
|
|
7415
8181
|
Py_DECREF(pos_args);
|
|
7416
8182
|
#endif
|
|
7417
8183
|
} else {
|
|
7418
|
-
PyObject *pos_args = MAKE_TUPLE(args, 10);
|
|
8184
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 10);
|
|
7419
8185
|
result = (*method)(self, pos_args);
|
|
7420
8186
|
Py_DECREF(pos_args);
|
|
7421
8187
|
}
|
|
@@ -7430,7 +8196,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS10(PyThreadState *tstate, PyObject *called, PyO
|
|
|
7430
8196
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
7431
8197
|
}
|
|
7432
8198
|
#endif
|
|
7433
|
-
#
|
|
8199
|
+
#endif
|
|
8200
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
7434
8201
|
} else if (PyFunction_Check(called)) {
|
|
7435
8202
|
#if PYTHON_VERSION < 0x3b0
|
|
7436
8203
|
PyObject *result = callPythonFunction(called, args, 10);
|
|
@@ -7465,7 +8232,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS10(PyThreadState *tstate, PyObject *called, PyO
|
|
|
7465
8232
|
obj = called_type->tp_alloc(called_type, 0);
|
|
7466
8233
|
CHECK_OBJECT(obj);
|
|
7467
8234
|
} else {
|
|
7468
|
-
pos_args = MAKE_TUPLE(args, 10);
|
|
8235
|
+
pos_args = MAKE_TUPLE(tstate, args, 10);
|
|
7469
8236
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
7470
8237
|
}
|
|
7471
8238
|
|
|
@@ -7537,7 +8304,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS10(PyThreadState *tstate, PyObject *called, PyO
|
|
|
7537
8304
|
}
|
|
7538
8305
|
} else {
|
|
7539
8306
|
if (pos_args == NULL) {
|
|
7540
|
-
pos_args = MAKE_TUPLE(args, 10);
|
|
8307
|
+
pos_args = MAKE_TUPLE(tstate, args, 10);
|
|
7541
8308
|
}
|
|
7542
8309
|
|
|
7543
8310
|
if (unlikely(type->tp_init(obj, pos_args, NULL) < 0)) {
|
|
@@ -7636,7 +8403,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS10(PyThreadState *tstate, PyObject *called, PyO
|
|
|
7636
8403
|
PRINT_NEW_LINE();
|
|
7637
8404
|
#endif
|
|
7638
8405
|
|
|
7639
|
-
PyObject *pos_args = MAKE_TUPLE(args, 10);
|
|
8406
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 10);
|
|
7640
8407
|
|
|
7641
8408
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
7642
8409
|
|
|
@@ -7761,6 +8528,42 @@ PyObject *CALL_FUNCTION_WITH_POSARGS10(PyThreadState *tstate, PyObject *called,
|
|
|
7761
8528
|
}
|
|
7762
8529
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
7763
8530
|
} else if (PyCFunction_CheckExact(called)) {
|
|
8531
|
+
#if PYTHON_VERSION >= 0x380
|
|
8532
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
8533
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
8534
|
+
return NULL;
|
|
8535
|
+
}
|
|
8536
|
+
#endif
|
|
8537
|
+
|
|
8538
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
8539
|
+
|
|
8540
|
+
PyObject *result;
|
|
8541
|
+
|
|
8542
|
+
if (!(flags & METH_VARARGS)) {
|
|
8543
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
8544
|
+
|
|
8545
|
+
assert(func != NULL);
|
|
8546
|
+
result = func(called, args, 10, NULL);
|
|
8547
|
+
|
|
8548
|
+
CHECK_OBJECT_X(result);
|
|
8549
|
+
} else {
|
|
8550
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
8551
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
8552
|
+
|
|
8553
|
+
if (flags & METH_KEYWORDS) {
|
|
8554
|
+
result = (*(PyCFunctionWithKeywords)(void (*)(void))method)(self, pos_args, NULL);
|
|
8555
|
+
} else {
|
|
8556
|
+
result = (*method)(self, pos_args);
|
|
8557
|
+
}
|
|
8558
|
+
}
|
|
8559
|
+
|
|
8560
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
8561
|
+
Py_LeaveRecursiveCall();
|
|
8562
|
+
#endif
|
|
8563
|
+
CHECK_OBJECT_X(result);
|
|
8564
|
+
|
|
8565
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
8566
|
+
#else
|
|
7764
8567
|
// Try to be fast about wrapping the arguments.
|
|
7765
8568
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
7766
8569
|
|
|
@@ -7815,7 +8618,8 @@ PyObject *CALL_FUNCTION_WITH_POSARGS10(PyThreadState *tstate, PyObject *called,
|
|
|
7815
8618
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
7816
8619
|
}
|
|
7817
8620
|
#endif
|
|
7818
|
-
#
|
|
8621
|
+
#endif
|
|
8622
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
7819
8623
|
} else if (PyFunction_Check(called)) {
|
|
7820
8624
|
#if PYTHON_VERSION < 0x3b0
|
|
7821
8625
|
PyObject *result = callPythonFunction(called, args, 10);
|
|
@@ -8156,7 +8960,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS1_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
8156
8960
|
return NULL;
|
|
8157
8961
|
}
|
|
8158
8962
|
|
|
8159
|
-
PyObject *pos_args = MAKE_TUPLE(args, 1);
|
|
8963
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
8160
8964
|
|
|
8161
8965
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
8162
8966
|
|
|
@@ -8244,7 +9048,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS1_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
8244
9048
|
return NULL;
|
|
8245
9049
|
}
|
|
8246
9050
|
|
|
8247
|
-
PyObject *pos_args = MAKE_TUPLE(args, 1);
|
|
9051
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
8248
9052
|
|
|
8249
9053
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
8250
9054
|
|
|
@@ -8415,7 +9219,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS2_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
8415
9219
|
return NULL;
|
|
8416
9220
|
}
|
|
8417
9221
|
|
|
8418
|
-
PyObject *pos_args = MAKE_TUPLE(args, 2);
|
|
9222
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
8419
9223
|
|
|
8420
9224
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
8421
9225
|
|
|
@@ -8503,7 +9307,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS2_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
8503
9307
|
return NULL;
|
|
8504
9308
|
}
|
|
8505
9309
|
|
|
8506
|
-
PyObject *pos_args = MAKE_TUPLE(args, 2);
|
|
9310
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
8507
9311
|
|
|
8508
9312
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
8509
9313
|
|
|
@@ -8674,7 +9478,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS3_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
8674
9478
|
return NULL;
|
|
8675
9479
|
}
|
|
8676
9480
|
|
|
8677
|
-
PyObject *pos_args = MAKE_TUPLE(args, 3);
|
|
9481
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
8678
9482
|
|
|
8679
9483
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
8680
9484
|
|
|
@@ -8762,7 +9566,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS3_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
8762
9566
|
return NULL;
|
|
8763
9567
|
}
|
|
8764
9568
|
|
|
8765
|
-
PyObject *pos_args = MAKE_TUPLE(args, 3);
|
|
9569
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
8766
9570
|
|
|
8767
9571
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
8768
9572
|
|
|
@@ -8933,7 +9737,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS4_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
8933
9737
|
return NULL;
|
|
8934
9738
|
}
|
|
8935
9739
|
|
|
8936
|
-
PyObject *pos_args = MAKE_TUPLE(args, 4);
|
|
9740
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
8937
9741
|
|
|
8938
9742
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
8939
9743
|
|
|
@@ -9021,7 +9825,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS4_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
9021
9825
|
return NULL;
|
|
9022
9826
|
}
|
|
9023
9827
|
|
|
9024
|
-
PyObject *pos_args = MAKE_TUPLE(args, 4);
|
|
9828
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
9025
9829
|
|
|
9026
9830
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
9027
9831
|
|
|
@@ -9192,7 +9996,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS5_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
9192
9996
|
return NULL;
|
|
9193
9997
|
}
|
|
9194
9998
|
|
|
9195
|
-
PyObject *pos_args = MAKE_TUPLE(args, 5);
|
|
9999
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 5);
|
|
9196
10000
|
|
|
9197
10001
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
9198
10002
|
|
|
@@ -9280,7 +10084,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS5_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
9280
10084
|
return NULL;
|
|
9281
10085
|
}
|
|
9282
10086
|
|
|
9283
|
-
PyObject *pos_args = MAKE_TUPLE(args, 5);
|
|
10087
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 5);
|
|
9284
10088
|
|
|
9285
10089
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
9286
10090
|
|
|
@@ -9451,7 +10255,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS6_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
9451
10255
|
return NULL;
|
|
9452
10256
|
}
|
|
9453
10257
|
|
|
9454
|
-
PyObject *pos_args = MAKE_TUPLE(args, 6);
|
|
10258
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 6);
|
|
9455
10259
|
|
|
9456
10260
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
9457
10261
|
|
|
@@ -9539,7 +10343,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS6_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
9539
10343
|
return NULL;
|
|
9540
10344
|
}
|
|
9541
10345
|
|
|
9542
|
-
PyObject *pos_args = MAKE_TUPLE(args, 6);
|
|
10346
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 6);
|
|
9543
10347
|
|
|
9544
10348
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
9545
10349
|
|
|
@@ -9710,7 +10514,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS7_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
9710
10514
|
return NULL;
|
|
9711
10515
|
}
|
|
9712
10516
|
|
|
9713
|
-
PyObject *pos_args = MAKE_TUPLE(args, 7);
|
|
10517
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 7);
|
|
9714
10518
|
|
|
9715
10519
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
9716
10520
|
|
|
@@ -9798,7 +10602,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS7_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
9798
10602
|
return NULL;
|
|
9799
10603
|
}
|
|
9800
10604
|
|
|
9801
|
-
PyObject *pos_args = MAKE_TUPLE(args, 7);
|
|
10605
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 7);
|
|
9802
10606
|
|
|
9803
10607
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
9804
10608
|
|
|
@@ -9969,7 +10773,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS8_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
9969
10773
|
return NULL;
|
|
9970
10774
|
}
|
|
9971
10775
|
|
|
9972
|
-
PyObject *pos_args = MAKE_TUPLE(args, 8);
|
|
10776
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 8);
|
|
9973
10777
|
|
|
9974
10778
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
9975
10779
|
|
|
@@ -10057,7 +10861,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS8_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
10057
10861
|
return NULL;
|
|
10058
10862
|
}
|
|
10059
10863
|
|
|
10060
|
-
PyObject *pos_args = MAKE_TUPLE(args, 8);
|
|
10864
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 8);
|
|
10061
10865
|
|
|
10062
10866
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
10063
10867
|
|
|
@@ -10228,7 +11032,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS9_VECTORCALL(PyThreadState *tstate, PyObject *c
|
|
|
10228
11032
|
return NULL;
|
|
10229
11033
|
}
|
|
10230
11034
|
|
|
10231
|
-
PyObject *pos_args = MAKE_TUPLE(args, 9);
|
|
11035
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 9);
|
|
10232
11036
|
|
|
10233
11037
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
10234
11038
|
|
|
@@ -10316,7 +11120,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS9_KWSPLIT(PyThreadState *tstate, PyObject *call
|
|
|
10316
11120
|
return NULL;
|
|
10317
11121
|
}
|
|
10318
11122
|
|
|
10319
|
-
PyObject *pos_args = MAKE_TUPLE(args, 9);
|
|
11123
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 9);
|
|
10320
11124
|
|
|
10321
11125
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
10322
11126
|
|
|
@@ -10487,7 +11291,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS10_VECTORCALL(PyThreadState *tstate, PyObject *
|
|
|
10487
11291
|
return NULL;
|
|
10488
11292
|
}
|
|
10489
11293
|
|
|
10490
|
-
PyObject *pos_args = MAKE_TUPLE(args, 10);
|
|
11294
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 10);
|
|
10491
11295
|
|
|
10492
11296
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
10493
11297
|
|
|
@@ -10575,7 +11379,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS10_KWSPLIT(PyThreadState *tstate, PyObject *cal
|
|
|
10575
11379
|
return NULL;
|
|
10576
11380
|
}
|
|
10577
11381
|
|
|
10578
|
-
PyObject *pos_args = MAKE_TUPLE(args, 10);
|
|
11382
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 10);
|
|
10579
11383
|
|
|
10580
11384
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
10581
11385
|
|
|
@@ -10733,7 +11537,7 @@ PyObject *CALL_METHODDESCR_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *call
|
|
|
10733
11537
|
PyObject *result;
|
|
10734
11538
|
|
|
10735
11539
|
#if PYTHON_VERSION < 0x360
|
|
10736
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 0);
|
|
11540
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 0);
|
|
10737
11541
|
|
|
10738
11542
|
if (flags & METH_KEYWORDS) {
|
|
10739
11543
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
@@ -10744,19 +11548,19 @@ PyObject *CALL_METHODDESCR_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *call
|
|
|
10744
11548
|
Py_DECREF(pos_args);
|
|
10745
11549
|
#else
|
|
10746
11550
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
10747
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 0);
|
|
11551
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 0);
|
|
10748
11552
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
10749
11553
|
Py_DECREF(pos_args);
|
|
10750
11554
|
} else if (flags == METH_FASTCALL) {
|
|
10751
11555
|
#if PYTHON_VERSION < 0x370
|
|
10752
11556
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args + 1, 0, NULL);
|
|
10753
11557
|
#else
|
|
10754
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 0);
|
|
11558
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 0);
|
|
10755
11559
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 1);
|
|
10756
11560
|
Py_DECREF(pos_args);
|
|
10757
11561
|
#endif
|
|
10758
11562
|
} else {
|
|
10759
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 0);
|
|
11563
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 0);
|
|
10760
11564
|
result = (*method)(self, pos_args);
|
|
10761
11565
|
Py_DECREF(pos_args);
|
|
10762
11566
|
}
|
|
@@ -10775,7 +11579,7 @@ PyObject *CALL_METHODDESCR_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *call
|
|
|
10775
11579
|
PRINT_NEW_LINE();
|
|
10776
11580
|
#endif
|
|
10777
11581
|
|
|
10778
|
-
PyObject *pos_args = MAKE_TUPLE(args, 1);
|
|
11582
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 1);
|
|
10779
11583
|
|
|
10780
11584
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
10781
11585
|
|
|
@@ -10835,7 +11639,7 @@ PyObject *CALL_METHODDESCR_WITH_ARGS2(PyThreadState *tstate, PyObject *called, P
|
|
|
10835
11639
|
PyObject *result;
|
|
10836
11640
|
|
|
10837
11641
|
#if PYTHON_VERSION < 0x360
|
|
10838
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 1);
|
|
11642
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 1);
|
|
10839
11643
|
|
|
10840
11644
|
if (flags & METH_KEYWORDS) {
|
|
10841
11645
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
@@ -10846,19 +11650,19 @@ PyObject *CALL_METHODDESCR_WITH_ARGS2(PyThreadState *tstate, PyObject *called, P
|
|
|
10846
11650
|
Py_DECREF(pos_args);
|
|
10847
11651
|
#else
|
|
10848
11652
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
10849
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 1);
|
|
11653
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 1);
|
|
10850
11654
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
10851
11655
|
Py_DECREF(pos_args);
|
|
10852
11656
|
} else if (flags == METH_FASTCALL) {
|
|
10853
11657
|
#if PYTHON_VERSION < 0x370
|
|
10854
11658
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args + 1, 1, NULL);
|
|
10855
11659
|
#else
|
|
10856
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 1);
|
|
11660
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 1);
|
|
10857
11661
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 2);
|
|
10858
11662
|
Py_DECREF(pos_args);
|
|
10859
11663
|
#endif
|
|
10860
11664
|
} else {
|
|
10861
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 1);
|
|
11665
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 1);
|
|
10862
11666
|
result = (*method)(self, pos_args);
|
|
10863
11667
|
Py_DECREF(pos_args);
|
|
10864
11668
|
}
|
|
@@ -10877,7 +11681,7 @@ PyObject *CALL_METHODDESCR_WITH_ARGS2(PyThreadState *tstate, PyObject *called, P
|
|
|
10877
11681
|
PRINT_NEW_LINE();
|
|
10878
11682
|
#endif
|
|
10879
11683
|
|
|
10880
|
-
PyObject *pos_args = MAKE_TUPLE(args, 2);
|
|
11684
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 2);
|
|
10881
11685
|
|
|
10882
11686
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
10883
11687
|
|
|
@@ -10930,7 +11734,7 @@ PyObject *CALL_METHODDESCR_WITH_ARGS3(PyThreadState *tstate, PyObject *called, P
|
|
|
10930
11734
|
PyObject *result;
|
|
10931
11735
|
|
|
10932
11736
|
#if PYTHON_VERSION < 0x360
|
|
10933
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 2);
|
|
11737
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 2);
|
|
10934
11738
|
|
|
10935
11739
|
if (flags & METH_KEYWORDS) {
|
|
10936
11740
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
@@ -10941,19 +11745,19 @@ PyObject *CALL_METHODDESCR_WITH_ARGS3(PyThreadState *tstate, PyObject *called, P
|
|
|
10941
11745
|
Py_DECREF(pos_args);
|
|
10942
11746
|
#else
|
|
10943
11747
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
10944
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 2);
|
|
11748
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 2);
|
|
10945
11749
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
10946
11750
|
Py_DECREF(pos_args);
|
|
10947
11751
|
} else if (flags == METH_FASTCALL) {
|
|
10948
11752
|
#if PYTHON_VERSION < 0x370
|
|
10949
11753
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args + 1, 2, NULL);
|
|
10950
11754
|
#else
|
|
10951
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 2);
|
|
11755
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 2);
|
|
10952
11756
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 3);
|
|
10953
11757
|
Py_DECREF(pos_args);
|
|
10954
11758
|
#endif
|
|
10955
11759
|
} else {
|
|
10956
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 2);
|
|
11760
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 2);
|
|
10957
11761
|
result = (*method)(self, pos_args);
|
|
10958
11762
|
Py_DECREF(pos_args);
|
|
10959
11763
|
}
|
|
@@ -10972,7 +11776,7 @@ PyObject *CALL_METHODDESCR_WITH_ARGS3(PyThreadState *tstate, PyObject *called, P
|
|
|
10972
11776
|
PRINT_NEW_LINE();
|
|
10973
11777
|
#endif
|
|
10974
11778
|
|
|
10975
|
-
PyObject *pos_args = MAKE_TUPLE(args, 3);
|
|
11779
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 3);
|
|
10976
11780
|
|
|
10977
11781
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
10978
11782
|
|
|
@@ -11025,7 +11829,7 @@ PyObject *CALL_METHODDESCR_WITH_ARGS4(PyThreadState *tstate, PyObject *called, P
|
|
|
11025
11829
|
PyObject *result;
|
|
11026
11830
|
|
|
11027
11831
|
#if PYTHON_VERSION < 0x360
|
|
11028
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 3);
|
|
11832
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 3);
|
|
11029
11833
|
|
|
11030
11834
|
if (flags & METH_KEYWORDS) {
|
|
11031
11835
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
@@ -11036,19 +11840,19 @@ PyObject *CALL_METHODDESCR_WITH_ARGS4(PyThreadState *tstate, PyObject *called, P
|
|
|
11036
11840
|
Py_DECREF(pos_args);
|
|
11037
11841
|
#else
|
|
11038
11842
|
if (flags == (METH_VARARGS | METH_KEYWORDS)) {
|
|
11039
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 3);
|
|
11843
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 3);
|
|
11040
11844
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
11041
11845
|
Py_DECREF(pos_args);
|
|
11042
11846
|
} else if (flags == METH_FASTCALL) {
|
|
11043
11847
|
#if PYTHON_VERSION < 0x370
|
|
11044
11848
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args + 1, 3, NULL);
|
|
11045
11849
|
#else
|
|
11046
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 3);
|
|
11850
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 3);
|
|
11047
11851
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, 4);
|
|
11048
11852
|
Py_DECREF(pos_args);
|
|
11049
11853
|
#endif
|
|
11050
11854
|
} else {
|
|
11051
|
-
PyObject *pos_args = MAKE_TUPLE(args + 1, 3);
|
|
11855
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 3);
|
|
11052
11856
|
result = (*method)(self, pos_args);
|
|
11053
11857
|
Py_DECREF(pos_args);
|
|
11054
11858
|
}
|
|
@@ -11067,7 +11871,7 @@ PyObject *CALL_METHODDESCR_WITH_ARGS4(PyThreadState *tstate, PyObject *called, P
|
|
|
11067
11871
|
PRINT_NEW_LINE();
|
|
11068
11872
|
#endif
|
|
11069
11873
|
|
|
11070
|
-
PyObject *pos_args = MAKE_TUPLE(args, 4);
|
|
11874
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, 4);
|
|
11071
11875
|
|
|
11072
11876
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
11073
11877
|
|
|
@@ -11099,7 +11903,7 @@ PyObject *CALL_METHOD_NO_ARGS(PyThreadState *tstate, PyObject *source, PyObject
|
|
|
11099
11903
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
11100
11904
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
11101
11905
|
|
|
11102
|
-
if (func != NULL &&
|
|
11906
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
11103
11907
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
11104
11908
|
Py_DECREF(descr);
|
|
11105
11909
|
|
|
@@ -11265,7 +12069,7 @@ PyObject *CALL_METHOD_NO_ARGS(PyThreadState *tstate, PyObject *source, PyObject
|
|
|
11265
12069
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
11266
12070
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
11267
12071
|
|
|
11268
|
-
if (func != NULL &&
|
|
12072
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
11269
12073
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
11270
12074
|
Py_DECREF(descr);
|
|
11271
12075
|
|
|
@@ -11325,7 +12129,7 @@ PyObject *CALL_METHOD_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *source, P
|
|
|
11325
12129
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
11326
12130
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
11327
12131
|
|
|
11328
|
-
if (func != NULL &&
|
|
12132
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
11329
12133
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
11330
12134
|
Py_DECREF(descr);
|
|
11331
12135
|
|
|
@@ -11491,7 +12295,7 @@ PyObject *CALL_METHOD_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *source, P
|
|
|
11491
12295
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
11492
12296
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
11493
12297
|
|
|
11494
|
-
if (func != NULL &&
|
|
12298
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
11495
12299
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
11496
12300
|
Py_DECREF(descr);
|
|
11497
12301
|
|
|
@@ -11550,7 +12354,7 @@ PyObject *CALL_METHOD_WITH_ARGS2(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
11550
12354
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
11551
12355
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
11552
12356
|
|
|
11553
|
-
if (func != NULL &&
|
|
12357
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
11554
12358
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
11555
12359
|
Py_DECREF(descr);
|
|
11556
12360
|
|
|
@@ -11716,7 +12520,7 @@ PyObject *CALL_METHOD_WITH_ARGS2(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
11716
12520
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
11717
12521
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
11718
12522
|
|
|
11719
|
-
if (func != NULL &&
|
|
12523
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
11720
12524
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
11721
12525
|
Py_DECREF(descr);
|
|
11722
12526
|
|
|
@@ -11775,7 +12579,7 @@ PyObject *CALL_METHOD_WITH_ARGS3(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
11775
12579
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
11776
12580
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
11777
12581
|
|
|
11778
|
-
if (func != NULL &&
|
|
12582
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
11779
12583
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
11780
12584
|
Py_DECREF(descr);
|
|
11781
12585
|
|
|
@@ -11941,7 +12745,7 @@ PyObject *CALL_METHOD_WITH_ARGS3(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
11941
12745
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
11942
12746
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
11943
12747
|
|
|
11944
|
-
if (func != NULL &&
|
|
12748
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
11945
12749
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
11946
12750
|
Py_DECREF(descr);
|
|
11947
12751
|
|
|
@@ -12000,7 +12804,7 @@ PyObject *CALL_METHOD_WITH_ARGS4(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
12000
12804
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
12001
12805
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
12002
12806
|
|
|
12003
|
-
if (func != NULL &&
|
|
12807
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
12004
12808
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
12005
12809
|
Py_DECREF(descr);
|
|
12006
12810
|
|
|
@@ -12166,7 +12970,7 @@ PyObject *CALL_METHOD_WITH_ARGS4(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
12166
12970
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
12167
12971
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
12168
12972
|
|
|
12169
|
-
if (func != NULL &&
|
|
12973
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
12170
12974
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
12171
12975
|
Py_DECREF(descr);
|
|
12172
12976
|
|
|
@@ -12225,7 +13029,7 @@ PyObject *CALL_METHOD_WITH_ARGS5(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
12225
13029
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
12226
13030
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
12227
13031
|
|
|
12228
|
-
if (func != NULL &&
|
|
13032
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
12229
13033
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
12230
13034
|
Py_DECREF(descr);
|
|
12231
13035
|
|
|
@@ -12391,7 +13195,7 @@ PyObject *CALL_METHOD_WITH_ARGS5(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
12391
13195
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
12392
13196
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
12393
13197
|
|
|
12394
|
-
if (func != NULL &&
|
|
13198
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
12395
13199
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
12396
13200
|
Py_DECREF(descr);
|
|
12397
13201
|
|
|
@@ -12450,7 +13254,7 @@ PyObject *CALL_METHOD_WITH_ARGS6(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
12450
13254
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
12451
13255
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
12452
13256
|
|
|
12453
|
-
if (func != NULL &&
|
|
13257
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
12454
13258
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
12455
13259
|
Py_DECREF(descr);
|
|
12456
13260
|
|
|
@@ -12616,7 +13420,7 @@ PyObject *CALL_METHOD_WITH_ARGS6(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
12616
13420
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
12617
13421
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
12618
13422
|
|
|
12619
|
-
if (func != NULL &&
|
|
13423
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
12620
13424
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
12621
13425
|
Py_DECREF(descr);
|
|
12622
13426
|
|
|
@@ -12675,7 +13479,7 @@ PyObject *CALL_METHOD_WITH_ARGS7(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
12675
13479
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
12676
13480
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
12677
13481
|
|
|
12678
|
-
if (func != NULL &&
|
|
13482
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
12679
13483
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
12680
13484
|
Py_DECREF(descr);
|
|
12681
13485
|
|
|
@@ -12841,7 +13645,7 @@ PyObject *CALL_METHOD_WITH_ARGS7(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
12841
13645
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
12842
13646
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
12843
13647
|
|
|
12844
|
-
if (func != NULL &&
|
|
13648
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
12845
13649
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
12846
13650
|
Py_DECREF(descr);
|
|
12847
13651
|
|
|
@@ -12900,7 +13704,7 @@ PyObject *CALL_METHOD_WITH_ARGS8(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
12900
13704
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
12901
13705
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
12902
13706
|
|
|
12903
|
-
if (func != NULL &&
|
|
13707
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
12904
13708
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
12905
13709
|
Py_DECREF(descr);
|
|
12906
13710
|
|
|
@@ -13066,7 +13870,7 @@ PyObject *CALL_METHOD_WITH_ARGS8(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
13066
13870
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
13067
13871
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
13068
13872
|
|
|
13069
|
-
if (func != NULL &&
|
|
13873
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
13070
13874
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
13071
13875
|
Py_DECREF(descr);
|
|
13072
13876
|
|
|
@@ -13125,7 +13929,7 @@ PyObject *CALL_METHOD_WITH_ARGS9(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
13125
13929
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
13126
13930
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
13127
13931
|
|
|
13128
|
-
if (func != NULL &&
|
|
13932
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
13129
13933
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
13130
13934
|
Py_DECREF(descr);
|
|
13131
13935
|
|
|
@@ -13291,7 +14095,7 @@ PyObject *CALL_METHOD_WITH_ARGS9(PyThreadState *tstate, PyObject *source, PyObje
|
|
|
13291
14095
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
13292
14096
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
13293
14097
|
|
|
13294
|
-
if (func != NULL &&
|
|
14098
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
13295
14099
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
13296
14100
|
Py_DECREF(descr);
|
|
13297
14101
|
|
|
@@ -13350,7 +14154,7 @@ PyObject *CALL_METHOD_WITH_ARGS10(PyThreadState *tstate, PyObject *source, PyObj
|
|
|
13350
14154
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
13351
14155
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
13352
14156
|
|
|
13353
|
-
if (func != NULL &&
|
|
14157
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
13354
14158
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
13355
14159
|
Py_DECREF(descr);
|
|
13356
14160
|
|
|
@@ -13516,7 +14320,7 @@ PyObject *CALL_METHOD_WITH_ARGS10(PyThreadState *tstate, PyObject *source, PyObj
|
|
|
13516
14320
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
13517
14321
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
13518
14322
|
|
|
13519
|
-
if (func != NULL &&
|
|
14323
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
13520
14324
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
13521
14325
|
Py_DECREF(descr);
|
|
13522
14326
|
|
|
@@ -13550,3 +14354,18 @@ PyObject *CALL_METHOD_WITH_ARGS10(PyThreadState *tstate, PyObject *source, PyObj
|
|
|
13550
14354
|
return NULL;
|
|
13551
14355
|
}
|
|
13552
14356
|
}
|
|
14357
|
+
|
|
14358
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
14359
|
+
// integrates with CPython, but also works on its own.
|
|
14360
|
+
//
|
|
14361
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
14362
|
+
// you may not use this file except in compliance with the License.
|
|
14363
|
+
// You may obtain a copy of the License at
|
|
14364
|
+
//
|
|
14365
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
14366
|
+
//
|
|
14367
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
14368
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14369
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14370
|
+
// See the License for the specific language governing permissions and
|
|
14371
|
+
// limitations under the License.
|