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,33 +1,24 @@
|
|
|
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
|
""" Mixins to use for composing type shapes.
|
|
19
5
|
|
|
20
6
|
"""
|
|
21
7
|
|
|
22
8
|
from .ControlFlowDescriptions import (
|
|
9
|
+
ControlFlowDescriptionAddUnsupported,
|
|
23
10
|
ControlFlowDescriptionElementBasedEscape,
|
|
24
11
|
ControlFlowDescriptionNoEscape,
|
|
12
|
+
ControlFlowDescriptionSubUnsupported,
|
|
25
13
|
)
|
|
26
14
|
|
|
27
15
|
|
|
28
16
|
class ShapeContainerMixin(object):
|
|
29
17
|
"""Mixin that defines the common container shape functions."""
|
|
30
18
|
|
|
19
|
+
# Mixins are required to define empty slots
|
|
20
|
+
__slots__ = ()
|
|
21
|
+
|
|
31
22
|
@staticmethod
|
|
32
23
|
def hasShapeSlotBool():
|
|
33
24
|
return True
|
|
@@ -62,18 +53,27 @@ class ShapeContainerMixin(object):
|
|
|
62
53
|
|
|
63
54
|
|
|
64
55
|
class ShapeContainerMutableMixin(ShapeContainerMixin):
|
|
56
|
+
# Mixins are required to define empty slots
|
|
57
|
+
__slots__ = ()
|
|
58
|
+
|
|
65
59
|
@staticmethod
|
|
66
60
|
def hasShapeSlotHash():
|
|
67
61
|
return False
|
|
68
62
|
|
|
69
63
|
|
|
70
64
|
class ShapeContainerImmutableMixin(ShapeContainerMixin):
|
|
65
|
+
# Mixins are required to define empty slots
|
|
66
|
+
__slots__ = ()
|
|
67
|
+
|
|
71
68
|
@staticmethod
|
|
72
69
|
def hasShapeSlotHash():
|
|
73
70
|
return True
|
|
74
71
|
|
|
75
72
|
|
|
76
73
|
class ShapeNotContainerMixin(object):
|
|
74
|
+
# Mixins are required to define empty slots
|
|
75
|
+
__slots__ = ()
|
|
76
|
+
|
|
77
77
|
@staticmethod
|
|
78
78
|
def hasShapeSlotBool():
|
|
79
79
|
return True
|
|
@@ -106,6 +106,9 @@ class ShapeNotContainerMixin(object):
|
|
|
106
106
|
class ShapeNotNumberMixin(object):
|
|
107
107
|
"""Mixin that defines the number slots to be set."""
|
|
108
108
|
|
|
109
|
+
# Mixins are required to define empty slots
|
|
110
|
+
__slots__ = ()
|
|
111
|
+
|
|
109
112
|
@staticmethod
|
|
110
113
|
def hasShapeSlotBool():
|
|
111
114
|
return True
|
|
@@ -130,14 +133,26 @@ class ShapeNotNumberMixin(object):
|
|
|
130
133
|
def hasShapeSlotComplex():
|
|
131
134
|
return False
|
|
132
135
|
|
|
136
|
+
# TODO: Seems misplaced
|
|
133
137
|
@staticmethod
|
|
134
138
|
def hasShapeModule():
|
|
135
139
|
return False
|
|
136
140
|
|
|
141
|
+
@staticmethod
|
|
142
|
+
def getOperationUnaryAddShape():
|
|
143
|
+
return None, ControlFlowDescriptionAddUnsupported
|
|
144
|
+
|
|
145
|
+
@staticmethod
|
|
146
|
+
def getOperationUnarySubShape():
|
|
147
|
+
return None, ControlFlowDescriptionSubUnsupported
|
|
148
|
+
|
|
137
149
|
|
|
138
150
|
class ShapeNumberMixin(object):
|
|
139
151
|
"""Mixin that defines the number slots to be set."""
|
|
140
152
|
|
|
153
|
+
# Mixins are required to define empty slots
|
|
154
|
+
__slots__ = ()
|
|
155
|
+
|
|
141
156
|
@staticmethod
|
|
142
157
|
def hasShapeSlotBool():
|
|
143
158
|
return True
|
|
@@ -178,8 +193,17 @@ class ShapeNumberMixin(object):
|
|
|
178
193
|
def getOperationUnaryReprEscape():
|
|
179
194
|
return ControlFlowDescriptionNoEscape
|
|
180
195
|
|
|
196
|
+
def getOperationUnaryAddShape(self):
|
|
197
|
+
return self, ControlFlowDescriptionNoEscape
|
|
198
|
+
|
|
199
|
+
def getOperationUnarySubShape(self):
|
|
200
|
+
return self, ControlFlowDescriptionNoEscape
|
|
201
|
+
|
|
181
202
|
|
|
182
203
|
class ShapeIteratorMixin(ShapeNotContainerMixin):
|
|
204
|
+
# Mixins are required to define empty slots
|
|
205
|
+
__slots__ = ()
|
|
206
|
+
|
|
183
207
|
@staticmethod
|
|
184
208
|
def isShapeIterator():
|
|
185
209
|
return True
|
|
@@ -212,3 +236,19 @@ class ShapeIteratorMixin(ShapeNotContainerMixin):
|
|
|
212
236
|
@staticmethod
|
|
213
237
|
def hasShapeSlotHash():
|
|
214
238
|
return True
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
242
|
+
# integrates with CPython, but also works on its own.
|
|
243
|
+
#
|
|
244
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
245
|
+
# you may not use this file except in compliance with the License.
|
|
246
|
+
# You may obtain a copy of the License at
|
|
247
|
+
#
|
|
248
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
249
|
+
#
|
|
250
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
251
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
252
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
253
|
+
# See the License for the specific language governing permissions and
|
|
254
|
+
# limitations under the License.
|
|
@@ -1,35 +1,26 @@
|
|
|
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
|
""" Standard shapes that commonly appear. """
|
|
19
5
|
|
|
20
6
|
from abc import abstractmethod
|
|
21
7
|
|
|
22
|
-
from nuitka.__past__ import getMetaClassBase
|
|
23
8
|
from nuitka.code_generation.c_types.CTypePyObjectPointers import (
|
|
24
9
|
CTypePyObjectPtr,
|
|
25
10
|
)
|
|
26
|
-
from nuitka.code_generation.Reports import
|
|
11
|
+
from nuitka.code_generation.Reports import (
|
|
12
|
+
onMissingOperation,
|
|
13
|
+
onMissingUnaryOperation,
|
|
14
|
+
)
|
|
15
|
+
from nuitka.utils.SlotMetaClasses import getMetaClassBase
|
|
27
16
|
|
|
28
17
|
from .ControlFlowDescriptions import ControlFlowDescriptionFullEscape
|
|
29
18
|
from .ShapeMixins import ShapeIteratorMixin
|
|
30
19
|
|
|
31
20
|
|
|
32
|
-
class ShapeBase(getMetaClassBase("Shape")):
|
|
21
|
+
class ShapeBase(getMetaClassBase("Shape", require_slots=True)):
|
|
22
|
+
__slots__ = ()
|
|
23
|
+
|
|
33
24
|
def __repr__(self):
|
|
34
25
|
return "<%s %s %s>" % (
|
|
35
26
|
self.__class__.__name__,
|
|
@@ -458,6 +449,16 @@ class ShapeBase(getMetaClassBase("Shape")):
|
|
|
458
449
|
|
|
459
450
|
return operation_result_unknown
|
|
460
451
|
|
|
452
|
+
def getOperationUnaryAddShape(self):
|
|
453
|
+
onMissingUnaryOperation("+", self)
|
|
454
|
+
|
|
455
|
+
return operation_result_unknown
|
|
456
|
+
|
|
457
|
+
def getOperationUnarySubShape(self):
|
|
458
|
+
onMissingUnaryOperation("-", self)
|
|
459
|
+
|
|
460
|
+
return operation_result_unknown
|
|
461
|
+
|
|
461
462
|
def getComparisonLtShape(self, right_shape):
|
|
462
463
|
onMissingOperation("Lt", self, right_shape)
|
|
463
464
|
|
|
@@ -493,6 +494,8 @@ class ShapeBase(getMetaClassBase("Shape")):
|
|
|
493
494
|
|
|
494
495
|
|
|
495
496
|
class ShapeTypeUnknown(ShapeBase):
|
|
497
|
+
__slots__ = ()
|
|
498
|
+
|
|
496
499
|
@staticmethod
|
|
497
500
|
def getOperationBinaryAddShape(right_shape):
|
|
498
501
|
return operation_result_unknown
|
|
@@ -553,6 +556,12 @@ class ShapeTypeUnknown(ShapeBase):
|
|
|
553
556
|
def getOperationBinaryMatMultShape(right_shape):
|
|
554
557
|
return operation_result_unknown
|
|
555
558
|
|
|
559
|
+
def getOperationUnaryAddShape(self):
|
|
560
|
+
return operation_result_unknown
|
|
561
|
+
|
|
562
|
+
def getOperationUnarySubShape(self):
|
|
563
|
+
return operation_result_unknown
|
|
564
|
+
|
|
556
565
|
@staticmethod
|
|
557
566
|
def getComparisonLtShape(right_shape):
|
|
558
567
|
return operation_result_unknown
|
|
@@ -566,7 +575,7 @@ tshape_unknown = ShapeTypeUnknown()
|
|
|
566
575
|
|
|
567
576
|
|
|
568
577
|
class ShapeTypeUninitialized(ShapeTypeUnknown):
|
|
569
|
-
|
|
578
|
+
__slots__ = ()
|
|
570
579
|
|
|
571
580
|
|
|
572
581
|
tshape_uninitialized = ShapeTypeUninitialized()
|
|
@@ -626,6 +635,8 @@ class ShapeLargeConstantValuePredictable(ShapeLargeConstantValue):
|
|
|
626
635
|
class ShapeIterator(ShapeBase, ShapeIteratorMixin):
|
|
627
636
|
"""Iterator created by iter with 2 arguments, TODO: could be way more specific."""
|
|
628
637
|
|
|
638
|
+
__slots__ = ()
|
|
639
|
+
|
|
629
640
|
@staticmethod
|
|
630
641
|
def isShapeIterator():
|
|
631
642
|
return None
|
|
@@ -658,6 +669,13 @@ class ShapeIterator(ShapeBase, ShapeIteratorMixin):
|
|
|
658
669
|
def getOperationUnaryReprEscape():
|
|
659
670
|
return ControlFlowDescriptionFullEscape
|
|
660
671
|
|
|
672
|
+
def getOperationUnaryAddShape(self):
|
|
673
|
+
# TODO: Move prepared values to separate module
|
|
674
|
+
return tshape_unknown, ControlFlowDescriptionFullEscape
|
|
675
|
+
|
|
676
|
+
def getOperationUnarySubShape(self):
|
|
677
|
+
return tshape_unknown, ControlFlowDescriptionFullEscape
|
|
678
|
+
|
|
661
679
|
|
|
662
680
|
tshape_iterator = ShapeIterator()
|
|
663
681
|
|
|
@@ -906,6 +924,22 @@ class ShapeLoopInitialAlternative(ShapeBase):
|
|
|
906
924
|
ControlFlowDescriptionFullEscape,
|
|
907
925
|
)
|
|
908
926
|
|
|
927
|
+
def getOperationUnaryAddShape(self):
|
|
928
|
+
return (
|
|
929
|
+
self._collectInitialShape(
|
|
930
|
+
operation=lambda left_shape: left_shape.getOperationUnaryAddShape()
|
|
931
|
+
),
|
|
932
|
+
ControlFlowDescriptionFullEscape,
|
|
933
|
+
)
|
|
934
|
+
|
|
935
|
+
def getOperationUnarySubShape(self):
|
|
936
|
+
return (
|
|
937
|
+
self._collectInitialShape(
|
|
938
|
+
operation=lambda left_shape: left_shape.getOperationUnarySubShape()
|
|
939
|
+
),
|
|
940
|
+
ControlFlowDescriptionFullEscape,
|
|
941
|
+
)
|
|
942
|
+
|
|
909
943
|
def getComparisonLtShape(self, right_shape):
|
|
910
944
|
if right_shape is tshape_unknown:
|
|
911
945
|
return operation_result_unknown
|
|
@@ -1170,6 +1204,16 @@ class ShapeLoopCompleteAlternative(ShapeBase):
|
|
|
1170
1204
|
)
|
|
1171
1205
|
)
|
|
1172
1206
|
|
|
1207
|
+
def getOperationUnaryAddShape(self):
|
|
1208
|
+
return self._collectShapeOperation(
|
|
1209
|
+
operation=lambda left_shape: left_shape.getOperationUnaryAddShape()
|
|
1210
|
+
)
|
|
1211
|
+
|
|
1212
|
+
def getOperationUnarySubShape(self):
|
|
1213
|
+
return self._collectShapeOperation(
|
|
1214
|
+
operation=lambda left_shape: left_shape.getOperationUnarySubShape()
|
|
1215
|
+
)
|
|
1216
|
+
|
|
1173
1217
|
# Special method to be called by other shapes encountering this type on
|
|
1174
1218
|
# the right side.
|
|
1175
1219
|
def getOperationBinaryAddLShape(self, left_shape):
|
|
@@ -1372,3 +1416,18 @@ class ShapeLoopCompleteAlternative(ShapeBase):
|
|
|
1372
1416
|
tshape_unknown_loop = ShapeLoopCompleteAlternative(shapes=(tshape_unknown,))
|
|
1373
1417
|
|
|
1374
1418
|
operation_result_unknown = tshape_unknown, ControlFlowDescriptionFullEscape
|
|
1419
|
+
|
|
1420
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1421
|
+
# integrates with CPython, but also works on its own.
|
|
1422
|
+
#
|
|
1423
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1424
|
+
# you may not use this file except in compliance with the License.
|
|
1425
|
+
# You may obtain a copy of the License at
|
|
1426
|
+
#
|
|
1427
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1428
|
+
#
|
|
1429
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1430
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1431
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1432
|
+
# See the License for the specific language governing permissions and
|
|
1433
|
+
# limitations under the License.
|
nuitka/nodes/shapes/__init__.py
CHANGED
|
@@ -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,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
|
""" Demotion of compiled modules to bytecode modules.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -37,6 +23,7 @@ from nuitka.plugins.Plugins import (
|
|
|
37
23
|
replaceTriggerModule,
|
|
38
24
|
)
|
|
39
25
|
from nuitka.Tracing import inclusion_logger
|
|
26
|
+
from nuitka.utils.FileOperations import getNormalizedPath
|
|
40
27
|
|
|
41
28
|
|
|
42
29
|
def demoteSourceCodeToBytecode(module_name, source_code, filename):
|
|
@@ -73,7 +60,7 @@ def demoteCompiledModuleToBytecode(module):
|
|
|
73
60
|
uncompiled_module = makeUncompiledPythonModule(
|
|
74
61
|
module_name=full_name,
|
|
75
62
|
reason=module.reason,
|
|
76
|
-
filename=filename,
|
|
63
|
+
filename=getNormalizedPath(filename),
|
|
77
64
|
bytecode=bytecode,
|
|
78
65
|
is_package=module.isCompiledPythonPackage(),
|
|
79
66
|
technical=full_name in detectEarlyImports(),
|
|
@@ -100,3 +87,19 @@ def demoteCompiledModuleToBytecode(module):
|
|
|
100
87
|
used_modules=used_modules,
|
|
101
88
|
distribution_names=distribution_names,
|
|
102
89
|
)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
93
|
+
# integrates with CPython, but also works on its own.
|
|
94
|
+
#
|
|
95
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
96
|
+
# you may not use this file except in compliance with the License.
|
|
97
|
+
# You may obtain a copy of the License at
|
|
98
|
+
#
|
|
99
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
100
|
+
#
|
|
101
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
102
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
103
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
104
|
+
# See the License for the specific language governing permissions and
|
|
105
|
+
# limitations under the License.
|
|
@@ -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
|
""" In-lining of functions.
|
|
19
5
|
|
|
20
6
|
Done by assigning the argument values to variables, and producing an outline
|
|
@@ -23,10 +9,9 @@ from the in-lined function.
|
|
|
23
9
|
|
|
24
10
|
from nuitka.nodes.OutlineNodes import ExpressionOutlineBody
|
|
25
11
|
from nuitka.nodes.VariableAssignNodes import makeStatementAssignmentVariable
|
|
26
|
-
from nuitka.nodes.VariableReleaseNodes import makeStatementsReleaseVariables
|
|
27
12
|
from nuitka.tree.Operations import VisitorNoopMixin, visitTree
|
|
28
13
|
from nuitka.tree.ReformulationTryFinallyStatements import (
|
|
29
|
-
|
|
14
|
+
makeTryFinallyReleaseStatement,
|
|
30
15
|
)
|
|
31
16
|
from nuitka.tree.TreeHelpers import makeStatementsSequence
|
|
32
17
|
|
|
@@ -97,15 +82,29 @@ def convertFunctionCallToOutline(provider, function_body, values, call_source_re
|
|
|
97
82
|
|
|
98
83
|
# TODO: Not possible to auto release with outline bodies too?
|
|
99
84
|
if auto_releases:
|
|
100
|
-
body =
|
|
85
|
+
body = makeTryFinallyReleaseStatement(
|
|
101
86
|
provider=outline_body,
|
|
102
87
|
tried=body,
|
|
103
|
-
|
|
104
|
-
variables=auto_releases, source_ref=function_source_ref
|
|
105
|
-
),
|
|
88
|
+
variables=auto_releases,
|
|
106
89
|
source_ref=function_source_ref,
|
|
107
90
|
)
|
|
108
91
|
|
|
109
92
|
outline_body.setChildBody(body)
|
|
110
93
|
|
|
111
94
|
return outline_body
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
98
|
+
# integrates with CPython, but also works on its own.
|
|
99
|
+
#
|
|
100
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
101
|
+
# you may not use this file except in compliance with the License.
|
|
102
|
+
# You may obtain a copy of the License at
|
|
103
|
+
#
|
|
104
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
105
|
+
#
|
|
106
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
107
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
108
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
109
|
+
# See the License for the specific language governing permissions and
|
|
110
|
+
# limitations under the License.
|
nuitka/optimizations/Graphs.py
CHANGED
|
@@ -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
|
""" Graph optimization states.
|
|
19
5
|
|
|
20
6
|
These are not the graphs you might be thinking of. This is for rending the
|
|
@@ -66,3 +52,19 @@ def endGraph(output_filename):
|
|
|
66
52
|
_addModuleGraph(module, "final")
|
|
67
53
|
|
|
68
54
|
graph.draw(output_filename + ".dot", prog="dot")
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
58
|
+
# integrates with CPython, but also works on its own.
|
|
59
|
+
#
|
|
60
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
61
|
+
# you may not use this file except in compliance with the License.
|
|
62
|
+
# You may obtain a copy of the License at
|
|
63
|
+
#
|
|
64
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
65
|
+
#
|
|
66
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
67
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
68
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
69
|
+
# See the License for the specific language governing permissions and
|
|
70
|
+
# limitations under the License.
|
|
@@ -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
|
""" Control the flow of optimizations applied to node tree.
|
|
19
5
|
|
|
20
6
|
Applies abstract execution on all so far known modules until no more
|
|
@@ -22,7 +8,6 @@ optimization is possible. Every successful optimization to anything might
|
|
|
22
8
|
make others possible.
|
|
23
9
|
"""
|
|
24
10
|
|
|
25
|
-
|
|
26
11
|
import inspect
|
|
27
12
|
|
|
28
13
|
from nuitka import ModuleRegistry, Options, Variables
|
|
@@ -41,7 +26,7 @@ from nuitka.utils.Timing import TimerReport
|
|
|
41
26
|
from . import Graphs
|
|
42
27
|
from .BytecodeDemotion import demoteCompiledModuleToBytecode
|
|
43
28
|
from .Tags import TagSet
|
|
44
|
-
from .TraceCollections import withChangeIndicationsTo
|
|
29
|
+
from .TraceCollections import fetchMergeCounts, withChangeIndicationsTo
|
|
45
30
|
|
|
46
31
|
tag_set = None
|
|
47
32
|
|
|
@@ -83,7 +68,12 @@ def optimizeCompiledPythonModule(module):
|
|
|
83
68
|
# allow to continue the loop even without changes one more time.
|
|
84
69
|
unchanged_count = 0
|
|
85
70
|
|
|
71
|
+
# Count the micro passes, so we can see how often we looped
|
|
72
|
+
micro_pass = 0
|
|
73
|
+
|
|
86
74
|
while True:
|
|
75
|
+
micro_pass += 1
|
|
76
|
+
|
|
87
77
|
tag_set.clear()
|
|
88
78
|
|
|
89
79
|
try:
|
|
@@ -135,7 +125,7 @@ def optimizeCompiledPythonModule(module):
|
|
|
135
125
|
|
|
136
126
|
considerUsedModules(module=module, pass_count=pass_count)
|
|
137
127
|
|
|
138
|
-
return touched
|
|
128
|
+
return touched, micro_pass
|
|
139
129
|
|
|
140
130
|
|
|
141
131
|
def optimizeUncompiledPythonModule(module):
|
|
@@ -171,14 +161,12 @@ def optimizeModule(module):
|
|
|
171
161
|
|
|
172
162
|
if module.isPythonExtensionModule():
|
|
173
163
|
optimizeExtensionModule(module)
|
|
174
|
-
|
|
164
|
+
return False, 0
|
|
175
165
|
elif module.isCompiledPythonModule():
|
|
176
|
-
|
|
166
|
+
return optimizeCompiledPythonModule(module)
|
|
177
167
|
else:
|
|
178
168
|
optimizeUncompiledPythonModule(module)
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
return changed
|
|
169
|
+
return False, 0
|
|
182
170
|
|
|
183
171
|
|
|
184
172
|
pass_count = 0
|
|
@@ -227,11 +215,13 @@ after that.""".format(
|
|
|
227
215
|
reportMemoryUsage(
|
|
228
216
|
"optimization/%d/%s" % (pass_count, current_module.getFullName()),
|
|
229
217
|
(
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
218
|
+
(
|
|
219
|
+
"Total memory usage before optimizing module '%s'"
|
|
220
|
+
% current_module.getFullName()
|
|
221
|
+
)
|
|
222
|
+
if Options.isShowProgress() or Options.isShowMemory()
|
|
223
|
+
else None
|
|
224
|
+
),
|
|
235
225
|
)
|
|
236
226
|
|
|
237
227
|
|
|
@@ -263,8 +253,6 @@ def restoreFromXML(text):
|
|
|
263
253
|
def makeOptimizationPass():
|
|
264
254
|
"""Make a single pass for optimization, indication potential completion."""
|
|
265
255
|
|
|
266
|
-
# Controls complex optimization
|
|
267
|
-
|
|
268
256
|
finished = True
|
|
269
257
|
|
|
270
258
|
ModuleRegistry.startTraversal()
|
|
@@ -297,14 +285,14 @@ def makeOptimizationPass():
|
|
|
297
285
|
with TimerReport(
|
|
298
286
|
message="Optimizing %s" % module_name, decider=False
|
|
299
287
|
) as module_timer:
|
|
300
|
-
changed = optimizeModule(current_module)
|
|
301
|
-
|
|
302
|
-
# module_timer=module_time_report.getTimer()
|
|
288
|
+
changed, micro_passes = optimizeModule(current_module)
|
|
303
289
|
|
|
304
290
|
ModuleRegistry.addModuleOptimizationTimeInformation(
|
|
305
291
|
module_name=module_name,
|
|
306
292
|
pass_number=pass_count,
|
|
307
293
|
time_used=module_timer.getDelta(),
|
|
294
|
+
micro_passes=micro_passes,
|
|
295
|
+
merge_counts=fetchMergeCounts(),
|
|
308
296
|
)
|
|
309
297
|
|
|
310
298
|
_traceProgressModuleEnd(current_module)
|
|
@@ -357,3 +345,19 @@ def optimizeModules(output_filename):
|
|
|
357
345
|
finished = makeOptimizationPass()
|
|
358
346
|
|
|
359
347
|
Graphs.endGraph(output_filename)
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
351
|
+
# integrates with CPython, but also works on its own.
|
|
352
|
+
#
|
|
353
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
354
|
+
# you may not use this file except in compliance with the License.
|
|
355
|
+
# You may obtain a copy of the License at
|
|
356
|
+
#
|
|
357
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
358
|
+
#
|
|
359
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
360
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
361
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
362
|
+
# See the License for the specific language governing permissions and
|
|
363
|
+
# limitations under the License.
|