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
nuitka/build/SconsInterface.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
|
""" Scons interface.
|
|
19
5
|
|
|
20
6
|
Interaction with scons. Find the binary, and run it with a set of given
|
|
@@ -31,29 +17,41 @@ import sys
|
|
|
31
17
|
from nuitka import Options, Tracing
|
|
32
18
|
from nuitka.__past__ import unicode
|
|
33
19
|
from nuitka.containers.OrderedDicts import OrderedDict
|
|
34
|
-
from nuitka.Options import
|
|
20
|
+
from nuitka.Options import (
|
|
21
|
+
getOnefileChildGraceTime,
|
|
22
|
+
isExperimental,
|
|
23
|
+
isOnefileMode,
|
|
24
|
+
)
|
|
35
25
|
from nuitka.plugins.Plugins import Plugins
|
|
36
26
|
from nuitka.PythonFlavors import (
|
|
37
27
|
isAnacondaPython,
|
|
38
28
|
isMSYS2MingwPython,
|
|
39
29
|
isNuitkaPython,
|
|
30
|
+
isSelfCompiledPythonUninstalled,
|
|
40
31
|
)
|
|
41
32
|
from nuitka.PythonVersions import (
|
|
42
33
|
getSystemPrefixPath,
|
|
43
|
-
getTargetPythonDLLPath,
|
|
44
34
|
python_version,
|
|
35
|
+
python_version_str,
|
|
45
36
|
)
|
|
37
|
+
from nuitka.utils.AppDirs import getCacheDirEnvironmentVariableName
|
|
38
|
+
from nuitka.utils.Download import getDownloadCacheDir, getDownloadCacheName
|
|
46
39
|
from nuitka.utils.Execution import (
|
|
47
40
|
getExecutablePath,
|
|
48
41
|
withEnvironmentVarsOverridden,
|
|
49
42
|
)
|
|
50
43
|
from nuitka.utils.FileOperations import (
|
|
44
|
+
areSamePaths,
|
|
45
|
+
changeFilenameExtension,
|
|
51
46
|
deleteFile,
|
|
52
47
|
getDirectoryRealPath,
|
|
53
48
|
getExternalUsePath,
|
|
54
49
|
getWindowsShortPathName,
|
|
55
50
|
hasFilenameExtension,
|
|
56
51
|
listDir,
|
|
52
|
+
makePath,
|
|
53
|
+
putTextFileContents,
|
|
54
|
+
renameFile,
|
|
57
55
|
withDirectoryChange,
|
|
58
56
|
)
|
|
59
57
|
from nuitka.utils.InstalledPythons import findInstalledPython
|
|
@@ -66,7 +64,7 @@ from nuitka.utils.Utils import (
|
|
|
66
64
|
)
|
|
67
65
|
|
|
68
66
|
from .SconsCaching import checkCachingSuccess
|
|
69
|
-
from .SconsUtils import flushSconsReports
|
|
67
|
+
from .SconsUtils import flushSconsReports, getSconsReportValue
|
|
70
68
|
|
|
71
69
|
|
|
72
70
|
def getSconsDataPath():
|
|
@@ -90,7 +88,7 @@ def _getSconsBinaryCall():
|
|
|
90
88
|
|
|
91
89
|
inline_path = os.path.join(_getSconsInlinePath(), "bin", "scons.py")
|
|
92
90
|
|
|
93
|
-
if os.path.exists(inline_path):
|
|
91
|
+
if os.path.exists(inline_path) and not isExperimental("force-system-scons"):
|
|
94
92
|
return [
|
|
95
93
|
_getPythonForSconsExePath(),
|
|
96
94
|
"-W",
|
|
@@ -118,7 +116,17 @@ def _getPythonForSconsExePath():
|
|
|
118
116
|
if python_exe is not None:
|
|
119
117
|
return python_exe
|
|
120
118
|
|
|
121
|
-
scons_supported_pythons = (
|
|
119
|
+
scons_supported_pythons = (
|
|
120
|
+
"3.5",
|
|
121
|
+
"3.6",
|
|
122
|
+
"3.7",
|
|
123
|
+
"3.8",
|
|
124
|
+
"3.9",
|
|
125
|
+
"3.10",
|
|
126
|
+
"3.11",
|
|
127
|
+
"3.12",
|
|
128
|
+
"3.13",
|
|
129
|
+
)
|
|
122
130
|
if not isWin32Windows():
|
|
123
131
|
scons_supported_pythons += ("2.7", "2.6")
|
|
124
132
|
|
|
@@ -150,14 +158,7 @@ Anaconda Python.
|
|
|
150
158
|
|
|
151
159
|
|
|
152
160
|
@contextlib.contextmanager
|
|
153
|
-
def _setupSconsEnvironment2(
|
|
154
|
-
is_backend = scons_filename == "Backend.scons"
|
|
155
|
-
|
|
156
|
-
if is_backend and isWin32Windows() and not Options.shallUseStaticLibPython():
|
|
157
|
-
# On Win32, we use the Python.DLL path for some things. We pass it
|
|
158
|
-
# via environment variable
|
|
159
|
-
os.environ["NUITKA_PYTHON_DLL_PATH"] = getTargetPythonDLLPath()
|
|
160
|
-
|
|
161
|
+
def _setupSconsEnvironment2():
|
|
161
162
|
os.environ["NUITKA_PYTHON_EXE_PATH"] = sys.executable
|
|
162
163
|
|
|
163
164
|
# Remove environment variables that can only harm if we have to switch
|
|
@@ -179,6 +180,14 @@ def _setupSconsEnvironment2(scons_filename):
|
|
|
179
180
|
|
|
180
181
|
os.environ["NUITKA_PACKAGE_DIR"] = os.path.abspath(nuitka.__path__[0])
|
|
181
182
|
|
|
183
|
+
# When downloading in Scons, use the external path.
|
|
184
|
+
if isWin32Windows():
|
|
185
|
+
download_cache_dir = getDownloadCacheDir()
|
|
186
|
+
makePath(download_cache_dir)
|
|
187
|
+
os.environ[getCacheDirEnvironmentVariableName(getDownloadCacheName())] = (
|
|
188
|
+
getExternalUsePath(download_cache_dir)
|
|
189
|
+
)
|
|
190
|
+
|
|
182
191
|
yield
|
|
183
192
|
|
|
184
193
|
if old_pythonpath is not None:
|
|
@@ -187,16 +196,13 @@ def _setupSconsEnvironment2(scons_filename):
|
|
|
187
196
|
if old_pythonhome is not None:
|
|
188
197
|
os.environ["PYTHONHOME"] = old_pythonhome
|
|
189
198
|
|
|
190
|
-
if "NUITKA_PYTHON_DLL_PATH" in os.environ:
|
|
191
|
-
del os.environ["NUITKA_PYTHON_DLL_PATH"]
|
|
192
|
-
|
|
193
199
|
del os.environ["NUITKA_PYTHON_EXE_PATH"]
|
|
194
200
|
|
|
195
201
|
del os.environ["NUITKA_PACKAGE_DIR"]
|
|
196
202
|
|
|
197
203
|
|
|
198
204
|
@contextlib.contextmanager
|
|
199
|
-
def _setupSconsEnvironment(
|
|
205
|
+
def _setupSconsEnvironment():
|
|
200
206
|
"""Setup the scons execution environment.
|
|
201
207
|
|
|
202
208
|
For the target Python we provide "NUITKA_PYTHON_DLL_PATH" to see where the
|
|
@@ -215,7 +221,7 @@ def _setupSconsEnvironment(scons_filename):
|
|
|
215
221
|
change_dir = None
|
|
216
222
|
|
|
217
223
|
with withDirectoryChange(change_dir, allow_none=True):
|
|
218
|
-
with _setupSconsEnvironment2(
|
|
224
|
+
with _setupSconsEnvironment2():
|
|
219
225
|
yield
|
|
220
226
|
|
|
221
227
|
|
|
@@ -270,8 +276,63 @@ def _buildSconsCommand(options, scons_filename):
|
|
|
270
276
|
return scons_command
|
|
271
277
|
|
|
272
278
|
|
|
279
|
+
def _createSconsDebugScript(source_dir, scons_command):
|
|
280
|
+
# we wrote debug shell script only if build process called, not "--version" call.
|
|
281
|
+
scons_debug_python_name = "scons-debug.py"
|
|
282
|
+
|
|
283
|
+
putTextFileContents(
|
|
284
|
+
filename=os.path.join(source_dir, scons_debug_python_name),
|
|
285
|
+
contents="""\
|
|
286
|
+
# -*- coding: utf-8 -*-
|
|
287
|
+
|
|
288
|
+
import sys
|
|
289
|
+
import os
|
|
290
|
+
import subprocess
|
|
291
|
+
|
|
292
|
+
exit_code = subprocess.call(
|
|
293
|
+
%(scons_command)r,
|
|
294
|
+
env=%(env)r,
|
|
295
|
+
shell=False
|
|
296
|
+
)"""
|
|
297
|
+
% {"scons_command": scons_command, "env": dict(os.environ)},
|
|
298
|
+
encoding="utf8",
|
|
299
|
+
)
|
|
300
|
+
|
|
301
|
+
if isWin32Windows():
|
|
302
|
+
script_extension = ".bat"
|
|
303
|
+
|
|
304
|
+
script_prelude = """\
|
|
305
|
+
cd "%~dp0"
|
|
306
|
+
"""
|
|
307
|
+
else:
|
|
308
|
+
script_extension = ".sh"
|
|
309
|
+
|
|
310
|
+
script_prelude = """\
|
|
311
|
+
#!/bin/bash
|
|
312
|
+
cd "${0%/*}"
|
|
313
|
+
"""
|
|
314
|
+
|
|
315
|
+
putTextFileContents(
|
|
316
|
+
filename=os.path.join(
|
|
317
|
+
source_dir,
|
|
318
|
+
changeFilenameExtension(scons_debug_python_name, script_extension),
|
|
319
|
+
),
|
|
320
|
+
contents="""\
|
|
321
|
+
%(script_prelude)s
|
|
322
|
+
|
|
323
|
+
'%(scons_python)s' '%(scons_debug_script_name)s'
|
|
324
|
+
"""
|
|
325
|
+
% {
|
|
326
|
+
"script_prelude": script_prelude,
|
|
327
|
+
"scons_python": scons_command[0],
|
|
328
|
+
"scons_debug_script_name": scons_debug_python_name,
|
|
329
|
+
},
|
|
330
|
+
encoding="utf8",
|
|
331
|
+
)
|
|
332
|
+
|
|
333
|
+
|
|
273
334
|
def runScons(options, env_values, scons_filename):
|
|
274
|
-
with _setupSconsEnvironment(
|
|
335
|
+
with _setupSconsEnvironment():
|
|
275
336
|
env_values["_NUITKA_BUILD_DEFINITIONS_CATALOG"] = ",".join(env_values.keys())
|
|
276
337
|
|
|
277
338
|
if "source_dir" in options and Options.shallCompileWithoutBuildDirectory():
|
|
@@ -282,10 +343,9 @@ def runScons(options, env_values, scons_filename):
|
|
|
282
343
|
options = copy.deepcopy(options)
|
|
283
344
|
source_dir = options["source_dir"]
|
|
284
345
|
options["source_dir"] = "."
|
|
285
|
-
options["result_name"] = getExternalUsePath(
|
|
286
|
-
options["result_name"], only_dirname=True
|
|
287
|
-
)
|
|
288
346
|
options["nuitka_src"] = getExternalUsePath(options["nuitka_src"])
|
|
347
|
+
|
|
348
|
+
orig_result_exe = options.get("result_exe")
|
|
289
349
|
if "result_exe" in options:
|
|
290
350
|
options["result_exe"] = getExternalUsePath(
|
|
291
351
|
options["result_exe"], only_dirname=True
|
|
@@ -310,13 +370,37 @@ def runScons(options, env_values, scons_filename):
|
|
|
310
370
|
Tracing.flushStandardOutputs()
|
|
311
371
|
|
|
312
372
|
with withEnvironmentVarsOverridden(env_values):
|
|
313
|
-
|
|
373
|
+
# Create debug script to quickly re-run this step only.
|
|
374
|
+
if source_dir is not None:
|
|
375
|
+
_createSconsDebugScript(
|
|
376
|
+
source_dir=source_dir, scons_command=scons_command
|
|
377
|
+
)
|
|
378
|
+
|
|
379
|
+
source_dir = getExternalUsePath(source_dir)
|
|
380
|
+
try:
|
|
381
|
+
result = subprocess.call(scons_command, shell=False, cwd=source_dir)
|
|
382
|
+
except KeyboardInterrupt:
|
|
383
|
+
Tracing.scons_logger.sysexit("User interrupted scons build.")
|
|
314
384
|
|
|
315
385
|
# TODO: Actually this should only flush one of these, namely the one for
|
|
316
386
|
# current source_dir.
|
|
317
387
|
flushSconsReports()
|
|
318
388
|
|
|
319
389
|
if "source_dir" in options and result == 0:
|
|
390
|
+
if "result_exe" in options:
|
|
391
|
+
scons_created_exe = getSconsReportValue(
|
|
392
|
+
source_dir or options["source_dir"], "TARGET"
|
|
393
|
+
)
|
|
394
|
+
|
|
395
|
+
if not os.path.exists(scons_created_exe):
|
|
396
|
+
Tracing.scons_logger.sysexit(
|
|
397
|
+
"Error, scons failed to create the expected file %r. "
|
|
398
|
+
% scons_created_exe
|
|
399
|
+
)
|
|
400
|
+
|
|
401
|
+
if not areSamePaths(options["result_exe"], scons_created_exe):
|
|
402
|
+
renameFile(scons_created_exe, orig_result_exe)
|
|
403
|
+
|
|
320
404
|
checkCachingSuccess(source_dir or options["source_dir"])
|
|
321
405
|
|
|
322
406
|
return result == 0
|
|
@@ -331,6 +415,7 @@ def asBoolStr(value):
|
|
|
331
415
|
def cleanSconsDirectory(source_dir):
|
|
332
416
|
"""Clean scons build directory."""
|
|
333
417
|
|
|
418
|
+
# spell-checker: ignore gcda
|
|
334
419
|
extensions = (
|
|
335
420
|
".bin",
|
|
336
421
|
".c",
|
|
@@ -377,11 +462,16 @@ def setCommonSconsOptions(options):
|
|
|
377
462
|
# Scons gets transported many details, that we express as variables, and
|
|
378
463
|
# have checks for them, leading to many branches and statements,
|
|
379
464
|
# pylint: disable=too-many-branches,too-many-statements
|
|
465
|
+
options["nuitka_src"] = getSconsDataPath()
|
|
466
|
+
|
|
467
|
+
options["python_version"] = python_version_str
|
|
380
468
|
|
|
381
469
|
options["python_prefix"] = getDirectoryRealPath(getSystemPrefixPath())
|
|
382
470
|
|
|
383
471
|
options["experimental"] = ",".join(Options.getExperimentalIndications())
|
|
384
472
|
|
|
473
|
+
options["debug_modes"] = ",".join(Options.getDebugModeIndications())
|
|
474
|
+
|
|
385
475
|
options["no_deployment"] = ",".join(Options.getNoDeploymentIndications())
|
|
386
476
|
|
|
387
477
|
if Options.shallRunInDebugger():
|
|
@@ -408,8 +498,8 @@ def setCommonSconsOptions(options):
|
|
|
408
498
|
if Options.shallDisableCCacheUsage():
|
|
409
499
|
options["disable_ccache"] = asBoolStr(True)
|
|
410
500
|
|
|
411
|
-
if
|
|
412
|
-
options["
|
|
501
|
+
if isWin32Windows() and Options.getWindowsConsoleMode() != "attach":
|
|
502
|
+
options["console_mode"] = Options.getWindowsConsoleMode()
|
|
413
503
|
|
|
414
504
|
if Options.getLtoMode() != "auto":
|
|
415
505
|
options["lto_mode"] = Options.getLtoMode()
|
|
@@ -426,6 +516,9 @@ def setCommonSconsOptions(options):
|
|
|
426
516
|
if isMSYS2MingwPython():
|
|
427
517
|
options["msys2_mingw_python"] = asBoolStr(True)
|
|
428
518
|
|
|
519
|
+
if isSelfCompiledPythonUninstalled():
|
|
520
|
+
options["self_compiled_python_uninstalled"] = asBoolStr(True)
|
|
521
|
+
|
|
429
522
|
cpp_defines = Plugins.getPreprocessorSymbols()
|
|
430
523
|
if cpp_defines:
|
|
431
524
|
options["cpp_defines"] = ",".join(
|
|
@@ -455,17 +548,13 @@ def setCommonSconsOptions(options):
|
|
|
455
548
|
|
|
456
549
|
options["macos_min_version"] = macos_min_version
|
|
457
550
|
|
|
458
|
-
macos_target_arch = Options.getMacOSTargetArch()
|
|
459
|
-
|
|
460
|
-
if macos_target_arch == "universal":
|
|
461
|
-
Tracing.general.sysexit(
|
|
462
|
-
"Cannot create universal macOS binaries (yet), please pick an arch and create two binaries."
|
|
463
|
-
)
|
|
464
|
-
|
|
465
|
-
options["macos_target_arch"] = macos_target_arch
|
|
551
|
+
options["macos_target_arch"] = Options.getMacOSTargetArch()
|
|
466
552
|
|
|
467
553
|
options["target_arch"] = getArchitecture()
|
|
468
554
|
|
|
555
|
+
if Options.getFcfProtectionMode() != "auto":
|
|
556
|
+
options["cf_protection"] = Options.getFcfProtectionMode()
|
|
557
|
+
|
|
469
558
|
env_values = OrderedDict()
|
|
470
559
|
|
|
471
560
|
string_values = Options.getWindowsVersionInfoStrings()
|
|
@@ -481,12 +570,8 @@ def setCommonSconsOptions(options):
|
|
|
481
570
|
|
|
482
571
|
if product_version is None:
|
|
483
572
|
product_version = file_version
|
|
484
|
-
if product_version is not None:
|
|
485
|
-
product_version = ".".join(str(d) for d in product_version)
|
|
486
573
|
if file_version is None:
|
|
487
574
|
file_version = product_version
|
|
488
|
-
else:
|
|
489
|
-
file_version = ".".join(str(d) for d in file_version)
|
|
490
575
|
|
|
491
576
|
if product_version != file_version:
|
|
492
577
|
effective_version = "%s-%s" % (
|
|
@@ -514,3 +599,19 @@ def setCommonSconsOptions(options):
|
|
|
514
599
|
)
|
|
515
600
|
|
|
516
601
|
return env_values
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
605
|
+
# integrates with CPython, but also works on its own.
|
|
606
|
+
#
|
|
607
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
608
|
+
# you may not use this file except in compliance with the License.
|
|
609
|
+
# You may obtain a copy of the License at
|
|
610
|
+
#
|
|
611
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
612
|
+
#
|
|
613
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
614
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
615
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
616
|
+
# See the License for the specific language governing permissions and
|
|
617
|
+
# limitations under the License.
|
nuitka/build/SconsProgress.py
CHANGED
|
@@ -1,27 +1,12 @@
|
|
|
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
|
""" Progress bar for Scons compilation part.
|
|
19
5
|
|
|
20
6
|
This does only the interfacing with tracing and collection of information.
|
|
21
7
|
|
|
22
8
|
"""
|
|
23
9
|
|
|
24
|
-
|
|
25
10
|
from nuitka.Progress import (
|
|
26
11
|
closeProgressBar,
|
|
27
12
|
enableProgressBar,
|
|
@@ -90,3 +75,19 @@ Slow C linking detected, used %.0fs so far, consider using '--lto=no' \
|
|
|
90
75
|
for faster linking, or '--lto=yes"' to disable this message. """
|
|
91
76
|
% delta_time
|
|
92
77
|
)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
81
|
+
# integrates with CPython, but also works on its own.
|
|
82
|
+
#
|
|
83
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
84
|
+
# you may not use this file except in compliance with the License.
|
|
85
|
+
# You may obtain a copy of the License at
|
|
86
|
+
#
|
|
87
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
88
|
+
#
|
|
89
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
90
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
91
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
92
|
+
# See the License for the specific language governing permissions and
|
|
93
|
+
# limitations under the License.
|
nuitka/build/SconsSpawn.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
|
""" Spawning processes.
|
|
19
5
|
|
|
20
6
|
This is to replace the standard spawn implementation with one that tracks the
|
|
@@ -36,7 +22,7 @@ from .SconsProgress import (
|
|
|
36
22
|
reportSlowCompilation,
|
|
37
23
|
updateSconsProgressBar,
|
|
38
24
|
)
|
|
39
|
-
from .SconsUtils import decodeData
|
|
25
|
+
from .SconsUtils import decodeData, reportSconsUnexpectedOutput
|
|
40
26
|
|
|
41
27
|
|
|
42
28
|
# Thread class to run a command
|
|
@@ -128,6 +114,12 @@ surely happen again."""
|
|
|
128
114
|
)
|
|
129
115
|
|
|
130
116
|
|
|
117
|
+
def _getNoSuchCommandErrorMessage():
|
|
118
|
+
import ctypes
|
|
119
|
+
|
|
120
|
+
return ctypes.WinError(3).args[1]
|
|
121
|
+
|
|
122
|
+
|
|
131
123
|
# To work around Windows not supporting command lines of greater than 10K by
|
|
132
124
|
# default:
|
|
133
125
|
def _getWindowsSpawnFunction(env, module_mode, source_files):
|
|
@@ -168,6 +160,9 @@ def _getWindowsSpawnFunction(env, module_mode, source_files):
|
|
|
168
160
|
closeSconsProgressBar()
|
|
169
161
|
raise exception
|
|
170
162
|
|
|
163
|
+
if rv != 0:
|
|
164
|
+
closeSconsProgressBar()
|
|
165
|
+
|
|
171
166
|
if cmd == "link":
|
|
172
167
|
data = _filterMsvcLinkOutput(
|
|
173
168
|
env=env, module_mode=module_mode, data=data, exit_code=rv
|
|
@@ -189,20 +184,31 @@ def _getWindowsSpawnFunction(env, module_mode, source_files):
|
|
|
189
184
|
)
|
|
190
185
|
|
|
191
186
|
if data is not None and data.rstrip():
|
|
192
|
-
my_print("Unexpected output from this command:", style="
|
|
193
|
-
my_print(cmdline, style="
|
|
187
|
+
my_print("Unexpected output from this command:", style="scons-unexpected")
|
|
188
|
+
my_print(cmdline, style="scons-unexpected")
|
|
194
189
|
|
|
195
190
|
if str is not bytes:
|
|
196
191
|
data = decodeData(data)
|
|
197
192
|
|
|
198
|
-
my_print(
|
|
193
|
+
my_print(
|
|
194
|
+
data, style="scons-unexpected", end="" if data.endswith("\n") else "\n"
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
reportSconsUnexpectedOutput(env, cmdline, stdout=data, stderr=None)
|
|
199
198
|
|
|
200
199
|
if err:
|
|
201
200
|
if str is not bytes:
|
|
202
201
|
err = decodeData(err)
|
|
203
202
|
|
|
204
203
|
err = "\r\n".join(
|
|
205
|
-
line
|
|
204
|
+
line
|
|
205
|
+
for line in err.split("\r\n")
|
|
206
|
+
if not isIgnoredError(line)
|
|
207
|
+
if not (
|
|
208
|
+
env.mingw_mode
|
|
209
|
+
and env.lto_mode
|
|
210
|
+
and line == _getNoSuchCommandErrorMessage()
|
|
211
|
+
)
|
|
206
212
|
)
|
|
207
213
|
|
|
208
214
|
if err:
|
|
@@ -212,7 +218,9 @@ def _getWindowsSpawnFunction(env, module_mode, source_files):
|
|
|
212
218
|
_raiseCorruptedObjectFilesExit(cache_name="ccache")
|
|
213
219
|
|
|
214
220
|
err += "\r\n"
|
|
215
|
-
my_print(err, style="
|
|
221
|
+
my_print(err, style="scons-unexpected", end="")
|
|
222
|
+
|
|
223
|
+
reportSconsUnexpectedOutput(env, cmdline, stdout=None, stderr=err)
|
|
216
224
|
|
|
217
225
|
return rv
|
|
218
226
|
|
|
@@ -290,11 +298,11 @@ length parameter; this could be due to transposed parameters"""
|
|
|
290
298
|
return False
|
|
291
299
|
|
|
292
300
|
|
|
293
|
-
def subprocess_spawn(args):
|
|
294
|
-
sh, _cmd, args,
|
|
301
|
+
def subprocess_spawn(env, args):
|
|
302
|
+
sh, _cmd, args, os_env = args
|
|
295
303
|
|
|
296
304
|
_stdout, stderr, exit_code = executeProcess(
|
|
297
|
-
command=[sh, "-c", " ".join(args)], env=
|
|
305
|
+
command=[sh, "-c", " ".join(args)], env=os_env
|
|
298
306
|
)
|
|
299
307
|
|
|
300
308
|
if str is not bytes:
|
|
@@ -317,15 +325,18 @@ def subprocess_spawn(args):
|
|
|
317
325
|
if exit_code != 0 and "terminated with signal 11" in line:
|
|
318
326
|
exit_code = -11
|
|
319
327
|
|
|
320
|
-
my_print(line, style="
|
|
328
|
+
my_print(line, style="scons-unexpected", file=sys.stderr)
|
|
329
|
+
|
|
330
|
+
reportSconsUnexpectedOutput(env, args, stdout=None, stderr=line)
|
|
321
331
|
|
|
322
332
|
return exit_code
|
|
323
333
|
|
|
324
334
|
|
|
325
335
|
class SpawnThread(threading.Thread):
|
|
326
|
-
def __init__(self, *args):
|
|
336
|
+
def __init__(self, env, *args):
|
|
327
337
|
threading.Thread.__init__(self)
|
|
328
338
|
|
|
339
|
+
self.env = env
|
|
329
340
|
self.args = args
|
|
330
341
|
|
|
331
342
|
self.timer_report = TimerReport(
|
|
@@ -346,7 +357,7 @@ class SpawnThread(threading.Thread):
|
|
|
346
357
|
try:
|
|
347
358
|
# execute the command, queue the result
|
|
348
359
|
with self.timer_report:
|
|
349
|
-
self.result = subprocess_spawn(self.args)
|
|
360
|
+
self.result = subprocess_spawn(env=self.env, args=self.args)
|
|
350
361
|
except Exception as e: # will rethrow all, pylint: disable=broad-except
|
|
351
362
|
self.exception = e
|
|
352
363
|
|
|
@@ -355,7 +366,7 @@ class SpawnThread(threading.Thread):
|
|
|
355
366
|
|
|
356
367
|
|
|
357
368
|
def _runSpawnMonitored(env, sh, cmd, args, os_env):
|
|
358
|
-
thread = SpawnThread(sh, cmd, args, os_env)
|
|
369
|
+
thread = SpawnThread(env, sh, cmd, args, os_env)
|
|
359
370
|
thread.start()
|
|
360
371
|
|
|
361
372
|
# Allow 6 minutes before warning for long compile time.
|
|
@@ -385,9 +396,11 @@ def _getWrappedSpawnFunction(env):
|
|
|
385
396
|
|
|
386
397
|
if exception:
|
|
387
398
|
closeSconsProgressBar()
|
|
388
|
-
|
|
389
399
|
raise exception
|
|
390
400
|
|
|
401
|
+
if result != 0:
|
|
402
|
+
closeSconsProgressBar()
|
|
403
|
+
|
|
391
404
|
# Segmentation fault should give a clear error.
|
|
392
405
|
if result == -11:
|
|
393
406
|
scons_logger.sysexit(
|
|
@@ -402,10 +415,26 @@ it or using '--clang' option."""
|
|
|
402
415
|
return spawnCommand
|
|
403
416
|
|
|
404
417
|
|
|
405
|
-
def enableSpawnMonitoring(env,
|
|
406
|
-
if
|
|
418
|
+
def enableSpawnMonitoring(env, module_mode, source_files):
|
|
419
|
+
if os.name == "nt":
|
|
407
420
|
env["SPAWN"] = _getWindowsSpawnFunction(
|
|
408
421
|
env=env, module_mode=module_mode, source_files=source_files
|
|
409
422
|
)
|
|
410
423
|
else:
|
|
411
424
|
env["SPAWN"] = _getWrappedSpawnFunction(env=env)
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
428
|
+
# integrates with CPython, but also works on its own.
|
|
429
|
+
#
|
|
430
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
431
|
+
# you may not use this file except in compliance with the License.
|
|
432
|
+
# You may obtain a copy of the License at
|
|
433
|
+
#
|
|
434
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
435
|
+
#
|
|
436
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
437
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
438
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
439
|
+
# See the License for the specific language governing permissions and
|
|
440
|
+
# limitations under the License.
|