Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -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 +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- 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 +93 -54
- 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 +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- 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 +717 -171
- 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 -22
- 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 +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/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 +89 -51
- 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 +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- 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 +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -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_dual_add.h +34 -0
- 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 +23 -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 +20 -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 +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -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 +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- 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 +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -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/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/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 +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- 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 +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- 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 +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- 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 +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- 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 +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- 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 +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- 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 +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- 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 +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- 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 +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -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 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- 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 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- 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/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- 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 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- 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 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- 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 +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- 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 +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- 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 +25 -21
- 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 +73 -40
- 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 +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- 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 +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- 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 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- 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 +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- 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 +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- 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 +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- 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/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -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 +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- 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 +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -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 +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- 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 +29 -22
- 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 +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- 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 +39 -30
- 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 +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -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 +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -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 +44 -24
- 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 +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- 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 +132 -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.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
|
|
3
|
+
|
|
18
4
|
""" Templates for the variable handling.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -59,7 +45,7 @@ template_write_local_inplace = """\
|
|
|
59
45
|
"""
|
|
60
46
|
|
|
61
47
|
template_write_shared_inplace = """\
|
|
62
|
-
|
|
48
|
+
Nuitka_Cell_SET(%(identifier)s, %(tmp_name)s);
|
|
63
49
|
"""
|
|
64
50
|
|
|
65
51
|
|
|
@@ -76,7 +62,7 @@ template_write_local_clear_ref1 = """\
|
|
|
76
62
|
template_write_shared_unclear_ref0 = """\
|
|
77
63
|
{
|
|
78
64
|
PyObject *old = Nuitka_Cell_GET(%(identifier)s);
|
|
79
|
-
|
|
65
|
+
Nuitka_Cell_SET(%(identifier)s, %(tmp_name)s);
|
|
80
66
|
Py_XDECREF(old);
|
|
81
67
|
}
|
|
82
68
|
"""
|
|
@@ -84,7 +70,7 @@ template_write_shared_unclear_ref0 = """\
|
|
|
84
70
|
template_write_shared_unclear_ref1 = """\
|
|
85
71
|
{
|
|
86
72
|
PyObject *old = Nuitka_Cell_GET(%(identifier)s);
|
|
87
|
-
|
|
73
|
+
Nuitka_Cell_SET(%(identifier)s, %(tmp_name)s);
|
|
88
74
|
Py_INCREF(%(tmp_name)s);
|
|
89
75
|
Py_XDECREF(old);
|
|
90
76
|
}
|
|
@@ -92,13 +78,13 @@ template_write_shared_unclear_ref1 = """\
|
|
|
92
78
|
|
|
93
79
|
template_write_shared_clear_ref0 = """\
|
|
94
80
|
assert(Nuitka_Cell_GET(%(identifier)s) == NULL);
|
|
95
|
-
|
|
81
|
+
Nuitka_Cell_SET(%(identifier)s, %(tmp_name)s);
|
|
96
82
|
"""
|
|
97
83
|
|
|
98
84
|
template_write_shared_clear_ref1 = """\
|
|
99
85
|
assert(Nuitka_Cell_GET(%(identifier)s) == NULL);
|
|
100
86
|
Py_INCREF(%(tmp_name)s);
|
|
101
|
-
|
|
87
|
+
Nuitka_Cell_SET(%(identifier)s, %(tmp_name)s);
|
|
102
88
|
"""
|
|
103
89
|
|
|
104
90
|
|
|
@@ -110,7 +96,7 @@ Py_XDECREF(%(identifier)s);
|
|
|
110
96
|
template_del_shared_tolerant = """\
|
|
111
97
|
{
|
|
112
98
|
PyObject *old = Nuitka_Cell_GET(%(identifier)s);
|
|
113
|
-
|
|
99
|
+
Nuitka_Cell_SET(%(identifier)s, NULL);
|
|
114
100
|
Py_XDECREF(old);
|
|
115
101
|
}
|
|
116
102
|
"""
|
|
@@ -126,7 +112,7 @@ if (likely(%(result)s)) {
|
|
|
126
112
|
template_del_shared_intolerant = """\
|
|
127
113
|
{
|
|
128
114
|
PyObject *old = Nuitka_Cell_GET(%(identifier)s);
|
|
129
|
-
|
|
115
|
+
Nuitka_Cell_SET(%(identifier)s, NULL);
|
|
130
116
|
Py_XDECREF(old);
|
|
131
117
|
|
|
132
118
|
%(result)s = old != NULL;
|
|
@@ -142,7 +128,7 @@ Py_DECREF(%(identifier)s);
|
|
|
142
128
|
template_del_shared_known = """\
|
|
143
129
|
{
|
|
144
130
|
PyObject *old = Nuitka_Cell_GET(%(identifier)s);
|
|
145
|
-
|
|
131
|
+
Nuitka_Cell_SET(%(identifier)s, NULL);
|
|
146
132
|
|
|
147
133
|
CHECK_OBJECT(old);
|
|
148
134
|
Py_DECREF(old);
|
|
@@ -171,7 +157,7 @@ template_read_mvar_unclear = """\
|
|
|
171
157
|
"""
|
|
172
158
|
|
|
173
159
|
template_read_locals_dict_with_fallback = """\
|
|
174
|
-
%(to_name)s =
|
|
160
|
+
%(to_name)s = %(dict_get_item)s(tstate, %(locals_dict)s, %(var_name)s);
|
|
175
161
|
|
|
176
162
|
if (%(to_name)s == NULL) {
|
|
177
163
|
%(fallback)s
|
|
@@ -183,7 +169,9 @@ template_read_locals_dict_without_fallback = """\
|
|
|
183
169
|
"""
|
|
184
170
|
|
|
185
171
|
|
|
186
|
-
|
|
172
|
+
# Fallback has no ref, so take one to agree with PyObject_GetItem doing
|
|
173
|
+
# it.
|
|
174
|
+
template_read_locals_mapping_with_fallback_no_ref = """\
|
|
187
175
|
%(to_name)s = PyObject_GetItem(%(locals_dict)s, %(var_name)s);
|
|
188
176
|
|
|
189
177
|
if (%(to_name)s == NULL) {
|
|
@@ -196,6 +184,18 @@ if (%(to_name)s == NULL) {
|
|
|
196
184
|
}
|
|
197
185
|
"""
|
|
198
186
|
|
|
187
|
+
template_read_locals_mapping_with_fallback_ref = """\
|
|
188
|
+
%(to_name)s = PyObject_GetItem(%(locals_dict)s, %(var_name)s);
|
|
189
|
+
|
|
190
|
+
if (%(to_name)s == NULL) {
|
|
191
|
+
if (CHECK_AND_CLEAR_KEY_ERROR_OCCURRED(tstate)) {
|
|
192
|
+
%(fallback)s
|
|
193
|
+
} else {
|
|
194
|
+
goto %(exception_exit)s;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
"""
|
|
198
|
+
|
|
199
199
|
template_read_locals_mapping_without_fallback = """\
|
|
200
200
|
%(to_name)s = PyObject_GetItem(%(locals_dict)s, %(var_name)s);
|
|
201
201
|
"""
|
|
@@ -290,6 +290,94 @@ if (%(test_code)s) {
|
|
|
290
290
|
}
|
|
291
291
|
"""
|
|
292
292
|
|
|
293
|
+
template_module_variable_accessor_function = """\
|
|
294
|
+
static PyObject *%(accessor_function_name)s(PyThreadState *tstate) {
|
|
295
|
+
#if %(caching)s
|
|
296
|
+
PyObject *result;
|
|
297
|
+
|
|
298
|
+
#if PYTHON_VERSION < 0x3b0
|
|
299
|
+
static uint64_t dict_version = 0;
|
|
300
|
+
static PyObject *cache_value = NULL;
|
|
301
|
+
|
|
302
|
+
if (moduledict_%(module_identifier)s->ma_version_tag == dict_version) {
|
|
303
|
+
CHECK_OBJECT_X(cache_value);
|
|
304
|
+
result = cache_value;
|
|
305
|
+
} else {
|
|
306
|
+
dict_version = moduledict_%(module_identifier)s->ma_version_tag;
|
|
307
|
+
|
|
308
|
+
result = GET_STRING_DICT_VALUE(moduledict_%(module_identifier)s, (Nuitka_StringObject *)%(var_name)s);
|
|
309
|
+
cache_value = result;
|
|
310
|
+
}
|
|
311
|
+
#else
|
|
312
|
+
static uint32_t dict_keys_version = 0xFFFFFFFF;
|
|
313
|
+
static Py_ssize_t cache_dk_index = 0;
|
|
314
|
+
|
|
315
|
+
PyDictKeysObject *dk = moduledict_%(module_identifier)s->ma_keys;
|
|
316
|
+
assert(DK_IS_UNICODE(dk));
|
|
317
|
+
|
|
318
|
+
#if PYTHON_VERSION >= 0x3c0
|
|
319
|
+
uint32_t current_dk_version = _Nuitka_PyDictKeys_GetVersionForCurrentState(tstate->interp, dk);
|
|
320
|
+
#else
|
|
321
|
+
uint32_t current_dk_version = _Nuitka_PyDictKeys_GetVersionForCurrentState(dk);
|
|
322
|
+
#endif
|
|
323
|
+
|
|
324
|
+
if (current_dk_version != dict_keys_version) {
|
|
325
|
+
dict_keys_version = current_dk_version;
|
|
326
|
+
Py_hash_t hash = ((Nuitka_StringObject *)%(var_name)s)->_base._base.hash;
|
|
327
|
+
assert(hash != -1);
|
|
328
|
+
|
|
329
|
+
cache_dk_index = Nuitka_Py_unicodekeys_lookup_unicode(dk, %(var_name)s, hash);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
if (cache_dk_index >= 0) {
|
|
333
|
+
assert(dk->dk_kind != DICT_KEYS_SPLIT);
|
|
334
|
+
|
|
335
|
+
PyDictUnicodeEntry *entries = DK_UNICODE_ENTRIES(dk);
|
|
336
|
+
|
|
337
|
+
result = entries[cache_dk_index].me_value;
|
|
338
|
+
|
|
339
|
+
if (unlikely(result == NULL)) {
|
|
340
|
+
Py_hash_t hash = ((Nuitka_StringObject *)%(var_name)s)->_base._base.hash;
|
|
341
|
+
assert(hash != -1);
|
|
342
|
+
|
|
343
|
+
cache_dk_index = Nuitka_Py_unicodekeys_lookup_unicode(dk, %(var_name)s, hash);
|
|
344
|
+
|
|
345
|
+
if (cache_dk_index >= 0) {
|
|
346
|
+
result = entries[cache_dk_index].me_value;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
} else {
|
|
350
|
+
result = NULL;
|
|
351
|
+
}
|
|
352
|
+
#endif
|
|
353
|
+
|
|
354
|
+
#else
|
|
355
|
+
PyObject *result = GET_STRING_DICT_VALUE(moduledict_%(module_identifier)s, (Nuitka_StringObject *)%(var_name)s);
|
|
356
|
+
#endif
|
|
357
|
+
|
|
358
|
+
if (unlikely(result == NULL)) {
|
|
359
|
+
result = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)%(var_name)s);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
return result;
|
|
363
|
+
}
|
|
364
|
+
"""
|
|
365
|
+
|
|
293
366
|
from . import TemplateDebugWrapper # isort:skip
|
|
294
367
|
|
|
295
368
|
TemplateDebugWrapper.checkDebug(globals())
|
|
369
|
+
|
|
370
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
371
|
+
# integrates with CPython, but also works on its own.
|
|
372
|
+
#
|
|
373
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
374
|
+
# you may not use this file except in compliance with the License.
|
|
375
|
+
# You may obtain a copy of the License at
|
|
376
|
+
#
|
|
377
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
378
|
+
#
|
|
379
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
380
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
381
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
382
|
+
# See the License for the specific language governing permissions and
|
|
383
|
+
# limitations under the License.
|
|
@@ -1,26 +1,11 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
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
|
+
|
|
3
|
+
|
|
18
4
|
""" Nuitka templates can have more checks that the normal '%' operation.
|
|
19
5
|
|
|
20
6
|
This wraps strings with a class derived from "str" that does more checks.
|
|
21
7
|
"""
|
|
22
8
|
|
|
23
|
-
|
|
24
9
|
from nuitka import Options
|
|
25
10
|
from nuitka.__past__ import iterItems
|
|
26
11
|
from nuitka.Tracing import optimization_logger
|
|
@@ -77,3 +62,19 @@ def enableDebug(globals_dict):
|
|
|
77
62
|
def checkDebug(globals_dict):
|
|
78
63
|
if Options.is_debug:
|
|
79
64
|
enableDebug(globals_dict)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
68
|
+
# integrates with CPython, but also works on its own.
|
|
69
|
+
#
|
|
70
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
71
|
+
# you may not use this file except in compliance with the License.
|
|
72
|
+
# You may obtain a copy of the License at
|
|
73
|
+
#
|
|
74
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
75
|
+
#
|
|
76
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
77
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
78
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
79
|
+
# See the License for the specific language governing permissions and
|
|
80
|
+
# limitations under the License.
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Dummy file to make this directory a package. """
|
|
5
|
+
|
|
3
6
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
7
|
# integrates with CPython, but also works on its own.
|
|
5
8
|
#
|
|
@@ -14,5 +17,3 @@
|
|
|
14
17
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
18
|
# See the License for the specific language governing permissions and
|
|
16
19
|
# limitations under the License.
|
|
17
|
-
#
|
|
18
|
-
""" Dummy file to make this directory a package. """
|
|
@@ -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
|
{% from 'HelperObjectTools.c.j2' import CHECK_OBJECTS %}
|
|
19
4
|
{% macro call_function_with_args(called, args, args_count) %}
|
|
20
5
|
{% if args_count == 0 %}
|
|
@@ -57,7 +42,7 @@ PyObject *CALL_METHOD_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject *s
|
|
|
57
42
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
58
43
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
59
44
|
|
|
60
|
-
if (func != NULL &&
|
|
45
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
61
46
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
62
47
|
Py_DECREF(descr);
|
|
63
48
|
|
|
@@ -277,7 +262,7 @@ PyObject *CALL_METHOD_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject *s
|
|
|
277
262
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
278
263
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
279
264
|
|
|
280
|
-
if (func != NULL &&
|
|
265
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
281
266
|
PyObject *called_object = func(descr, source, (PyObject *)type);
|
|
282
267
|
Py_DECREF(descr);
|
|
283
268
|
|
|
@@ -319,3 +304,18 @@ PyObject *CALL_METHOD_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject *s
|
|
|
319
304
|
return NULL;
|
|
320
305
|
}
|
|
321
306
|
}
|
|
307
|
+
|
|
308
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
309
|
+
{# integrates with CPython, but also works on its own. #}
|
|
310
|
+
{# #}
|
|
311
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
312
|
+
{# you may not use this file except in compliance with the License. #}
|
|
313
|
+
{# You may obtain a copy of the License at #}
|
|
314
|
+
{# #}
|
|
315
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
316
|
+
{# #}
|
|
317
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
318
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
319
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
320
|
+
{# See the License for the specific language governing permissions and #}
|
|
321
|
+
{# limitations under the License. #}
|
|
@@ -1,29 +1,14 @@
|
|
|
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
|
{% from 'HelperObjectTools.c.j2' import CHECK_OBJECTS %}
|
|
19
4
|
{% if not has_dict_values %}
|
|
20
5
|
PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}_VECTORCALL(PyThreadState *tstate, PyObject *called, PyObject *const *args, PyObject *kw_names) {
|
|
21
6
|
{% elif args_count == 0 and has_dict_values %}
|
|
22
|
-
PyObject *
|
|
7
|
+
PyObject *CALL_FUNCTION_WITH_NO_ARGS_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *kw_values, PyObject *kw_names) {
|
|
23
8
|
{% elif not has_tuple_arg %}
|
|
24
|
-
PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}
|
|
9
|
+
PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *const *args, PyObject *const *kw_values, PyObject *kw_names) {
|
|
25
10
|
{% else %}
|
|
26
|
-
PyObject *
|
|
11
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS{{args_count}}_KW_SPLIT(PyThreadState *tstate, PyObject *called, PyObject *pos_args, PyObject *const *kw_values, PyObject *kw_names) {
|
|
27
12
|
assert(PyTuple_CheckExact(pos_args));
|
|
28
13
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
29
14
|
{% endif %}
|
|
@@ -108,7 +93,7 @@ PyObject *CALL_FUNCTION_WITH_POSARGS{{args_count}}_KWSPLIT(PyThreadState *tstate
|
|
|
108
93
|
{% if args_count == 0 %}
|
|
109
94
|
PyObject *pos_args = const_tuple_empty;
|
|
110
95
|
{% elif not has_tuple_arg or not has_dict_values %}
|
|
111
|
-
PyObject *pos_args = MAKE_TUPLE(args, {{args_count}});
|
|
96
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, {{args_count}});
|
|
112
97
|
{% endif %}
|
|
113
98
|
|
|
114
99
|
PyObject *named_args = _PyDict_NewPresized(nkwargs);
|
|
@@ -141,3 +126,18 @@ PyObject *CALL_FUNCTION_WITH_POSARGS{{args_count}}_KWSPLIT(PyThreadState *tstate
|
|
|
141
126
|
|
|
142
127
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
143
128
|
}
|
|
129
|
+
|
|
130
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
131
|
+
{# integrates with CPython, but also works on its own. #}
|
|
132
|
+
{# #}
|
|
133
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
134
|
+
{# you may not use this file except in compliance with the License. #}
|
|
135
|
+
{# You may obtain a copy of the License at #}
|
|
136
|
+
{# #}
|
|
137
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
138
|
+
{# #}
|
|
139
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
140
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
141
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
142
|
+
{# See the License for the specific language governing permissions and #}
|
|
143
|
+
{# limitations under the License. #}
|
|
@@ -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
|
{% from 'HelperObjectTools.c.j2' import CHECK_OBJECTS %}
|
|
19
4
|
{% if args_count == 0 %}
|
|
20
5
|
PyObject *CALL_FUNCTION_NO_ARGS(PyThreadState *tstate, PyObject *called) {
|
|
@@ -23,7 +8,7 @@ PyObject *CALL_FUNCTION_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called,
|
|
|
23
8
|
PyObject *const *args = &arg; // For easier code compatibility.
|
|
24
9
|
{% else %}
|
|
25
10
|
{% if has_tuple_arg %}
|
|
26
|
-
PyObject *
|
|
11
|
+
PyObject *CALL_FUNCTION_WITH_POS_ARGS{{args_count}}(PyThreadState *tstate, PyObject *called, PyObject *pos_args) {
|
|
27
12
|
assert(PyTuple_CheckExact(pos_args));
|
|
28
13
|
assert(PyTuple_GET_SIZE(pos_args) == {{args_count}});
|
|
29
14
|
PyObject *const *args = &PyTuple_GET_ITEM(pos_args, 0);
|
|
@@ -171,6 +156,56 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
171
156
|
}
|
|
172
157
|
#if !defined(_NUITKA_EXPERIMENTAL_DISABLE_CFUNCTION_CALL_OPT)
|
|
173
158
|
} else if (PyCFunction_CheckExact(called)) {
|
|
159
|
+
#if PYTHON_VERSION >= 0x380
|
|
160
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
161
|
+
if (unlikely(Py_EnterRecursiveCall((char *)" while calling a Python object"))) {
|
|
162
|
+
return NULL;
|
|
163
|
+
}
|
|
164
|
+
#endif
|
|
165
|
+
|
|
166
|
+
int flags = PyCFunction_GET_FLAGS(called);
|
|
167
|
+
|
|
168
|
+
PyObject *result;
|
|
169
|
+
|
|
170
|
+
if (!(flags & METH_VARARGS)) {
|
|
171
|
+
vectorcallfunc func = *((vectorcallfunc *)(((char *)called) + Py_TYPE(called)->tp_vectorcall_offset));
|
|
172
|
+
|
|
173
|
+
assert(func != NULL);
|
|
174
|
+
{% if args_count == 0 %}
|
|
175
|
+
result = func(called, NULL, 0, NULL);
|
|
176
|
+
{% else %}
|
|
177
|
+
result = func(called, args, {{args_count}}, NULL);
|
|
178
|
+
{% endif %}
|
|
179
|
+
|
|
180
|
+
CHECK_OBJECT_X(result);
|
|
181
|
+
} else {
|
|
182
|
+
PyCFunction method = PyCFunction_GET_FUNCTION(called);
|
|
183
|
+
PyObject *self = PyCFunction_GET_SELF(called);
|
|
184
|
+
|
|
185
|
+
{% if not has_tuple_arg and args_count != 0 %}
|
|
186
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, {{args_count}});
|
|
187
|
+
{% elif not has_tuple_arg %}
|
|
188
|
+
PyObject *pos_args = const_tuple_empty;
|
|
189
|
+
{% endif %}
|
|
190
|
+
|
|
191
|
+
if (flags & METH_KEYWORDS) {
|
|
192
|
+
result = (*(PyCFunctionWithKeywords)(void(*)(void))method)(self, pos_args, NULL);
|
|
193
|
+
} else {
|
|
194
|
+
result = (*method)(self, pos_args);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
{% if not has_tuple_arg and args_count != 0 %}
|
|
198
|
+
Py_DECREF(pos_args);
|
|
199
|
+
{% endif %}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
#ifdef _NUITKA_FULL_COMPAT
|
|
203
|
+
Py_LeaveRecursiveCall();
|
|
204
|
+
#endif
|
|
205
|
+
CHECK_OBJECT_X(result);
|
|
206
|
+
|
|
207
|
+
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
208
|
+
#else
|
|
174
209
|
// Try to be fast about wrapping the arguments.
|
|
175
210
|
int flags = PyCFunction_GET_FLAGS(called) & ~(METH_CLASS | METH_STATIC | METH_COEXIST);
|
|
176
211
|
|
|
@@ -245,7 +280,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
245
280
|
|
|
246
281
|
#if PYTHON_VERSION < 0x360
|
|
247
282
|
{% if not has_tuple_arg and args_count != 0 %}
|
|
248
|
-
PyObject *pos_args = MAKE_TUPLE(args, {{args_count}});
|
|
283
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, {{args_count}});
|
|
249
284
|
{% elif not has_tuple_arg %}
|
|
250
285
|
PyObject *pos_args = const_tuple_empty;
|
|
251
286
|
{% endif %}
|
|
@@ -261,7 +296,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
261
296
|
#else
|
|
262
297
|
if (flags == (METH_VARARGS|METH_KEYWORDS)) {
|
|
263
298
|
{% if not has_tuple_arg and args_count != 0 %}
|
|
264
|
-
PyObject *pos_args = MAKE_TUPLE(args, {{args_count}});
|
|
299
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, {{args_count}});
|
|
265
300
|
{% elif not has_tuple_arg %}
|
|
266
301
|
PyObject *pos_args = const_tuple_empty;
|
|
267
302
|
{% endif %}
|
|
@@ -278,7 +313,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
278
313
|
{% endif %}
|
|
279
314
|
#else
|
|
280
315
|
{% if not has_tuple_arg and args_count != 0 %}
|
|
281
|
-
PyObject *pos_args = MAKE_TUPLE(args, {{args_count}});
|
|
316
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, {{args_count}});
|
|
282
317
|
{% elif not has_tuple_arg %}
|
|
283
318
|
PyObject *pos_args = const_tuple_empty;
|
|
284
319
|
{% endif %}
|
|
@@ -289,7 +324,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
289
324
|
#endif
|
|
290
325
|
} else {
|
|
291
326
|
{% if not has_tuple_arg and args_count != 0 %}
|
|
292
|
-
PyObject *pos_args = MAKE_TUPLE(args, {{args_count}});
|
|
327
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, {{args_count}});
|
|
293
328
|
{% elif not has_tuple_arg %}
|
|
294
329
|
PyObject *pos_args = const_tuple_empty;
|
|
295
330
|
{% endif %}
|
|
@@ -309,7 +344,8 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
309
344
|
return Nuitka_CheckFunctionResult(tstate, called, result);
|
|
310
345
|
}
|
|
311
346
|
#endif
|
|
312
|
-
#
|
|
347
|
+
#endif
|
|
348
|
+
#if PYTHON_VERSION < 0x380 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_UNCOMPILED_FUNCTION_CALL_OPT)
|
|
313
349
|
} else if (PyFunction_Check(called)) {
|
|
314
350
|
#if PYTHON_VERSION < 0x3b0
|
|
315
351
|
{% if args_count == 0 %}
|
|
@@ -371,7 +407,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
371
407
|
CHECK_OBJECT(obj);
|
|
372
408
|
} else {
|
|
373
409
|
{% if not has_tuple_arg and args_count != 0 %}
|
|
374
|
-
pos_args = MAKE_TUPLE(args, {{args_count}});
|
|
410
|
+
pos_args = MAKE_TUPLE(tstate, args, {{args_count}});
|
|
375
411
|
{% endif %}
|
|
376
412
|
obj = called_type->tp_new(called_type, pos_args, NULL);
|
|
377
413
|
{# TODO: obj = _Py_CheckFunctionResult(obj) for Python3 in debug mode #}
|
|
@@ -448,7 +484,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
448
484
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, {{args_count}});
|
|
449
485
|
} else {
|
|
450
486
|
{% if has_tuple_arg %}
|
|
451
|
-
result =
|
|
487
|
+
result = CALL_FUNCTION_WITH_POS_ARGS{{args_count}}(tstate, init_method, pos_args);
|
|
452
488
|
{% else %}
|
|
453
489
|
result = CALL_FUNCTION_WITH_ARGS{{args_count}}(tstate, init_method, args);
|
|
454
490
|
{% endif %}
|
|
@@ -475,7 +511,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
475
511
|
} else {
|
|
476
512
|
{% if not has_tuple_arg and args_count != 0 %}
|
|
477
513
|
if (pos_args == NULL) {
|
|
478
|
-
pos_args = MAKE_TUPLE(args, {{args_count}});
|
|
514
|
+
pos_args = MAKE_TUPLE(tstate, args, {{args_count}});
|
|
479
515
|
}
|
|
480
516
|
{% endif %}
|
|
481
517
|
|
|
@@ -559,7 +595,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
559
595
|
result = Nuitka_CallMethodFunctionPosArgs(tstate, (struct Nuitka_FunctionObject const *)init_method, obj, args, {{args_count}});
|
|
560
596
|
} else {
|
|
561
597
|
{% if has_tuple_arg %}
|
|
562
|
-
result =
|
|
598
|
+
result = CALL_FUNCTION_WITH_POS_ARGS{{args_count}}(tstate, init_method, pos_args);
|
|
563
599
|
{% else %}
|
|
564
600
|
result = CALL_FUNCTION_WITH_ARGS{{args_count}}(tstate, init_method, args);
|
|
565
601
|
{% endif %}
|
|
@@ -610,7 +646,7 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
610
646
|
PyObject *result = CALL_FUNCTION(tstate, called, const_tuple_empty, NULL);
|
|
611
647
|
{% else %}
|
|
612
648
|
{% if not has_tuple_arg %}
|
|
613
|
-
PyObject *pos_args = MAKE_TUPLE(args, {{args_count}});
|
|
649
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, {{args_count}});
|
|
614
650
|
{% endif %}
|
|
615
651
|
|
|
616
652
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
@@ -624,3 +660,18 @@ PyObject *CALL_FUNCTION_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObject
|
|
|
624
660
|
|
|
625
661
|
return result;
|
|
626
662
|
}
|
|
663
|
+
|
|
664
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
665
|
+
{# integrates with CPython, but also works on its own. #}
|
|
666
|
+
{# #}
|
|
667
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
668
|
+
{# you may not use this file except in compliance with the License. #}
|
|
669
|
+
{# You may obtain a copy of the License at #}
|
|
670
|
+
{# #}
|
|
671
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
672
|
+
{# #}
|
|
673
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
674
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
675
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
676
|
+
{# See the License for the specific language governing permissions and #}
|
|
677
|
+
{# limitations under the License. #}
|