Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
- Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +18 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +400 -0
- nuitka/MainControl.py +200 -112
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +368 -175
- nuitka/Options.py +632 -213
- nuitka/OutputDirectories.py +40 -21
- nuitka/PostProcessing.py +73 -50
- nuitka/Progress.py +58 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +106 -19
- nuitka/Serialization.py +68 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +108 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +21 -7
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +202 -140
- nuitka/build/CCompilerVersion.scons +39 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +50 -54
- nuitka/build/SconsCaching.py +93 -90
- nuitka/build/SconsCompilerSettings.py +157 -69
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +154 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +147 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +105 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +18 -18
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +18 -18
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +91 -53
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +29 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +593 -190
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -18
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +24 -22
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +32 -20
- nuitka/build/include/nuitka/helper/iterators.h +17 -17
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +29 -17
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +14 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +38 -20
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +128 -46
- nuitka/build/include/nuitka/printing.h +22 -17
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +32 -33
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +27 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +176 -182
- nuitka/build/static_src/CompiledCellType.c +63 -40
- nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
- nuitka/build/static_src/CompiledCoroutineType.c +196 -203
- nuitka/build/static_src/CompiledFrameType.c +287 -133
- nuitka/build/static_src/CompiledFunctionType.c +389 -95
- nuitka/build/static_src/CompiledGeneratorType.c +376 -252
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
- nuitka/build/static_src/CompiledMethodType.c +83 -71
- nuitka/build/static_src/HelpersAllocator.c +88 -19
- nuitka/build/static_src/HelpersAttributes.c +33 -54
- nuitka/build/static_src/HelpersBuiltin.c +43 -33
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +33 -30
- nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonEq.c +518 -492
- nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
- nuitka/build/static_src/HelpersComparisonGe.c +513 -497
- nuitka/build/static_src/HelpersComparisonGt.c +512 -496
- nuitka/build/static_src/HelpersComparisonLe.c +513 -497
- nuitka/build/static_src/HelpersComparisonLt.c +512 -496
- nuitka/build/static_src/HelpersComparisonNe.c +520 -492
- nuitka/build/static_src/HelpersConsole.c +96 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +51 -29
- nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +161 -50
- nuitka/build/static_src/HelpersFiles.c +37 -17
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +48 -20
- nuitka/build/static_src/HelpersImportHard.c +53 -17
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +140 -50
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +173 -146
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
- nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
- nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
- nuitka/build/static_src/HelpersProfiling.c +24 -23
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +88 -20
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +234 -37
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +68 -23
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +359 -263
- nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
- nuitka/build/static_src/OnefileBootstrap.c +276 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +19 -17
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +20 -17
- nuitka/code_generation/CallCodes.py +19 -17
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +48 -27
- nuitka/code_generation/CodeHelperSelection.py +19 -17
- nuitka/code_generation/CodeHelpers.py +24 -20
- nuitka/code_generation/CodeObjectCodes.py +34 -24
- nuitka/code_generation/ComparisonCodes.py +38 -20
- nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +152 -26
- nuitka/code_generation/CoroutineCodes.py +19 -17
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +25 -23
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +27 -33
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +27 -18
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +24 -20
- nuitka/code_generation/FunctionCodes.py +24 -21
- nuitka/code_generation/GeneratorCodes.py +23 -20
- nuitka/code_generation/GlobalConstants.py +43 -23
- nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +19 -17
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +19 -17
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +43 -25
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +29 -31
- nuitka/code_generation/PackageResourceCodes.py +59 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +19 -17
- nuitka/code_generation/Reports.py +19 -17
- nuitka/code_generation/ReturnCodes.py +19 -17
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +19 -17
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +71 -0
- nuitka/code_generation/VariableCodes.py +26 -22
- nuitka/code_generation/VariableDeclarations.py +20 -17
- nuitka/code_generation/YieldCodes.py +22 -20
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +19 -17
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
- nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
- nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
- nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +18 -18
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +121 -48
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +44 -32
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +19 -18
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +19 -18
- nuitka/distutils/DistutilCommands.py +34 -23
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +20 -17
- nuitka/finalizations/FinalizeMarkups.py +21 -41
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +48 -28
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +147 -57
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +29 -21
- nuitka/freezer/ImportDetection.py +20 -17
- nuitka/freezer/IncludedDataFiles.py +118 -47
- nuitka/freezer/IncludedEntryPoints.py +102 -38
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +105 -50
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +286 -92
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +131 -47
- nuitka/importing/StandardLibrary.py +46 -28
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +19 -17
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +24 -20
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +68 -19
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1250 -302
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +21 -23
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +19 -17
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +29 -17
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +54 -32
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +19 -17
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +81 -35
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +21 -19
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +545 -129
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +436 -446
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +45 -43
- nuitka/nodes/NodeMakingHelpers.py +21 -19
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +20 -17
- nuitka/nodes/OsSysNodes.py +66 -18
- nuitka/nodes/OutlineNodes.py +22 -20
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -77
- nuitka/nodes/StatementNodes.py +19 -17
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +26 -24
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +40 -17
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +145 -39
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +40 -17
- nuitka/nodes/shapes/StandardShapes.py +27 -20
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +19 -17
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +610 -109
- nuitka/plugins/Plugins.py +241 -58
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +407 -46
- nuitka/plugins/standard/KivyPlugin.py +30 -17
- nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +74 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +103 -53
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +94 -30
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3449 -1299
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
- nuitka/reports/CompilationReportReader.py +67 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +352 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +30 -20
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +67 -22
- nuitka/specs/ParameterSpecs.py +56 -41
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +19 -21
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +93 -71
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +31 -27
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +106 -52
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +36 -29
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +22 -25
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
- nuitka/tools/watch/AutoStage.py +144 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +176 -147
- nuitka/tree/ComplexCallHelperFunctions.py +80 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +20 -17
- nuitka/tree/ReformulationAssignmentStatements.py +92 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +146 -98
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +40 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +58 -54
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +244 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +21 -19
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +84 -19
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +73 -34
- nuitka/utils/FileOperations.py +318 -74
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +118 -24
- nuitka/utils/InstalledPythons.py +80 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +19 -17
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +115 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/top_level.txt +0 -0
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,16 @@ 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
|
+
)
|
|
122
129
|
if not isWin32Windows():
|
|
123
130
|
scons_supported_pythons += ("2.7", "2.6")
|
|
124
131
|
|
|
@@ -150,14 +157,7 @@ Anaconda Python.
|
|
|
150
157
|
|
|
151
158
|
|
|
152
159
|
@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
|
-
|
|
160
|
+
def _setupSconsEnvironment2():
|
|
161
161
|
os.environ["NUITKA_PYTHON_EXE_PATH"] = sys.executable
|
|
162
162
|
|
|
163
163
|
# Remove environment variables that can only harm if we have to switch
|
|
@@ -179,6 +179,14 @@ def _setupSconsEnvironment2(scons_filename):
|
|
|
179
179
|
|
|
180
180
|
os.environ["NUITKA_PACKAGE_DIR"] = os.path.abspath(nuitka.__path__[0])
|
|
181
181
|
|
|
182
|
+
# When downloading in Scons, use the external path.
|
|
183
|
+
if isWin32Windows():
|
|
184
|
+
download_cache_dir = getDownloadCacheDir()
|
|
185
|
+
makePath(download_cache_dir)
|
|
186
|
+
os.environ[getCacheDirEnvironmentVariableName(getDownloadCacheName())] = (
|
|
187
|
+
getExternalUsePath(download_cache_dir)
|
|
188
|
+
)
|
|
189
|
+
|
|
182
190
|
yield
|
|
183
191
|
|
|
184
192
|
if old_pythonpath is not None:
|
|
@@ -187,16 +195,13 @@ def _setupSconsEnvironment2(scons_filename):
|
|
|
187
195
|
if old_pythonhome is not None:
|
|
188
196
|
os.environ["PYTHONHOME"] = old_pythonhome
|
|
189
197
|
|
|
190
|
-
if "NUITKA_PYTHON_DLL_PATH" in os.environ:
|
|
191
|
-
del os.environ["NUITKA_PYTHON_DLL_PATH"]
|
|
192
|
-
|
|
193
198
|
del os.environ["NUITKA_PYTHON_EXE_PATH"]
|
|
194
199
|
|
|
195
200
|
del os.environ["NUITKA_PACKAGE_DIR"]
|
|
196
201
|
|
|
197
202
|
|
|
198
203
|
@contextlib.contextmanager
|
|
199
|
-
def _setupSconsEnvironment(
|
|
204
|
+
def _setupSconsEnvironment():
|
|
200
205
|
"""Setup the scons execution environment.
|
|
201
206
|
|
|
202
207
|
For the target Python we provide "NUITKA_PYTHON_DLL_PATH" to see where the
|
|
@@ -215,7 +220,7 @@ def _setupSconsEnvironment(scons_filename):
|
|
|
215
220
|
change_dir = None
|
|
216
221
|
|
|
217
222
|
with withDirectoryChange(change_dir, allow_none=True):
|
|
218
|
-
with _setupSconsEnvironment2(
|
|
223
|
+
with _setupSconsEnvironment2():
|
|
219
224
|
yield
|
|
220
225
|
|
|
221
226
|
|
|
@@ -270,8 +275,63 @@ def _buildSconsCommand(options, scons_filename):
|
|
|
270
275
|
return scons_command
|
|
271
276
|
|
|
272
277
|
|
|
278
|
+
def _createSconsDebugScript(source_dir, scons_command):
|
|
279
|
+
# we wrote debug shell script only if build process called, not "--version" call.
|
|
280
|
+
scons_debug_python_name = "scons-debug.py"
|
|
281
|
+
|
|
282
|
+
putTextFileContents(
|
|
283
|
+
filename=os.path.join(source_dir, scons_debug_python_name),
|
|
284
|
+
contents="""\
|
|
285
|
+
# -*- coding: utf-8 -*-
|
|
286
|
+
|
|
287
|
+
import sys
|
|
288
|
+
import os
|
|
289
|
+
import subprocess
|
|
290
|
+
|
|
291
|
+
exit_code = subprocess.call(
|
|
292
|
+
%(scons_command)r,
|
|
293
|
+
env=%(env)r,
|
|
294
|
+
shell=False
|
|
295
|
+
)"""
|
|
296
|
+
% {"scons_command": scons_command, "env": dict(os.environ)},
|
|
297
|
+
encoding="utf8",
|
|
298
|
+
)
|
|
299
|
+
|
|
300
|
+
if isWin32Windows():
|
|
301
|
+
script_extension = ".bat"
|
|
302
|
+
|
|
303
|
+
script_prelude = """\
|
|
304
|
+
cd "%~dp0"
|
|
305
|
+
"""
|
|
306
|
+
else:
|
|
307
|
+
script_extension = ".sh"
|
|
308
|
+
|
|
309
|
+
script_prelude = """\
|
|
310
|
+
#!/bin/bash
|
|
311
|
+
cd "${0%/*}"
|
|
312
|
+
"""
|
|
313
|
+
|
|
314
|
+
putTextFileContents(
|
|
315
|
+
filename=os.path.join(
|
|
316
|
+
source_dir,
|
|
317
|
+
changeFilenameExtension(scons_debug_python_name, script_extension),
|
|
318
|
+
),
|
|
319
|
+
contents="""\
|
|
320
|
+
%(script_prelude)s
|
|
321
|
+
|
|
322
|
+
'%(scons_python)s' '%(scons_debug_script_name)s'
|
|
323
|
+
"""
|
|
324
|
+
% {
|
|
325
|
+
"script_prelude": script_prelude,
|
|
326
|
+
"scons_python": scons_command[0],
|
|
327
|
+
"scons_debug_script_name": scons_debug_python_name,
|
|
328
|
+
},
|
|
329
|
+
encoding="utf8",
|
|
330
|
+
)
|
|
331
|
+
|
|
332
|
+
|
|
273
333
|
def runScons(options, env_values, scons_filename):
|
|
274
|
-
with _setupSconsEnvironment(
|
|
334
|
+
with _setupSconsEnvironment():
|
|
275
335
|
env_values["_NUITKA_BUILD_DEFINITIONS_CATALOG"] = ",".join(env_values.keys())
|
|
276
336
|
|
|
277
337
|
if "source_dir" in options and Options.shallCompileWithoutBuildDirectory():
|
|
@@ -282,10 +342,9 @@ def runScons(options, env_values, scons_filename):
|
|
|
282
342
|
options = copy.deepcopy(options)
|
|
283
343
|
source_dir = options["source_dir"]
|
|
284
344
|
options["source_dir"] = "."
|
|
285
|
-
options["result_name"] = getExternalUsePath(
|
|
286
|
-
options["result_name"], only_dirname=True
|
|
287
|
-
)
|
|
288
345
|
options["nuitka_src"] = getExternalUsePath(options["nuitka_src"])
|
|
346
|
+
|
|
347
|
+
orig_result_exe = options.get("result_exe")
|
|
289
348
|
if "result_exe" in options:
|
|
290
349
|
options["result_exe"] = getExternalUsePath(
|
|
291
350
|
options["result_exe"], only_dirname=True
|
|
@@ -310,13 +369,37 @@ def runScons(options, env_values, scons_filename):
|
|
|
310
369
|
Tracing.flushStandardOutputs()
|
|
311
370
|
|
|
312
371
|
with withEnvironmentVarsOverridden(env_values):
|
|
313
|
-
|
|
372
|
+
# Create debug script to quickly re-run this step only.
|
|
373
|
+
if source_dir is not None:
|
|
374
|
+
_createSconsDebugScript(
|
|
375
|
+
source_dir=source_dir, scons_command=scons_command
|
|
376
|
+
)
|
|
377
|
+
|
|
378
|
+
source_dir = getExternalUsePath(source_dir)
|
|
379
|
+
try:
|
|
380
|
+
result = subprocess.call(scons_command, shell=False, cwd=source_dir)
|
|
381
|
+
except KeyboardInterrupt:
|
|
382
|
+
Tracing.scons_logger.sysexit("User interrupted scons build.")
|
|
314
383
|
|
|
315
384
|
# TODO: Actually this should only flush one of these, namely the one for
|
|
316
385
|
# current source_dir.
|
|
317
386
|
flushSconsReports()
|
|
318
387
|
|
|
319
388
|
if "source_dir" in options and result == 0:
|
|
389
|
+
if "result_exe" in options:
|
|
390
|
+
scons_created_exe = getSconsReportValue(
|
|
391
|
+
source_dir or options["source_dir"], "TARGET"
|
|
392
|
+
)
|
|
393
|
+
|
|
394
|
+
if not os.path.exists(scons_created_exe):
|
|
395
|
+
Tracing.scons_logger.sysexit(
|
|
396
|
+
"Error, scons failed to create the expected file %r. "
|
|
397
|
+
% scons_created_exe
|
|
398
|
+
)
|
|
399
|
+
|
|
400
|
+
if not areSamePaths(options["result_exe"], scons_created_exe):
|
|
401
|
+
renameFile(scons_created_exe, orig_result_exe)
|
|
402
|
+
|
|
320
403
|
checkCachingSuccess(source_dir or options["source_dir"])
|
|
321
404
|
|
|
322
405
|
return result == 0
|
|
@@ -331,6 +414,7 @@ def asBoolStr(value):
|
|
|
331
414
|
def cleanSconsDirectory(source_dir):
|
|
332
415
|
"""Clean scons build directory."""
|
|
333
416
|
|
|
417
|
+
# spell-checker: ignore gcda
|
|
334
418
|
extensions = (
|
|
335
419
|
".bin",
|
|
336
420
|
".c",
|
|
@@ -377,11 +461,16 @@ def setCommonSconsOptions(options):
|
|
|
377
461
|
# Scons gets transported many details, that we express as variables, and
|
|
378
462
|
# have checks for them, leading to many branches and statements,
|
|
379
463
|
# pylint: disable=too-many-branches,too-many-statements
|
|
464
|
+
options["nuitka_src"] = getSconsDataPath()
|
|
465
|
+
|
|
466
|
+
options["python_version"] = python_version_str
|
|
380
467
|
|
|
381
468
|
options["python_prefix"] = getDirectoryRealPath(getSystemPrefixPath())
|
|
382
469
|
|
|
383
470
|
options["experimental"] = ",".join(Options.getExperimentalIndications())
|
|
384
471
|
|
|
472
|
+
options["debug_modes"] = ",".join(Options.getDebugModeIndications())
|
|
473
|
+
|
|
385
474
|
options["no_deployment"] = ",".join(Options.getNoDeploymentIndications())
|
|
386
475
|
|
|
387
476
|
if Options.shallRunInDebugger():
|
|
@@ -408,8 +497,8 @@ def setCommonSconsOptions(options):
|
|
|
408
497
|
if Options.shallDisableCCacheUsage():
|
|
409
498
|
options["disable_ccache"] = asBoolStr(True)
|
|
410
499
|
|
|
411
|
-
if
|
|
412
|
-
options["
|
|
500
|
+
if isWin32Windows() and Options.getWindowsConsoleMode() != "attach":
|
|
501
|
+
options["console_mode"] = Options.getWindowsConsoleMode()
|
|
413
502
|
|
|
414
503
|
if Options.getLtoMode() != "auto":
|
|
415
504
|
options["lto_mode"] = Options.getLtoMode()
|
|
@@ -426,6 +515,9 @@ def setCommonSconsOptions(options):
|
|
|
426
515
|
if isMSYS2MingwPython():
|
|
427
516
|
options["msys2_mingw_python"] = asBoolStr(True)
|
|
428
517
|
|
|
518
|
+
if isSelfCompiledPythonUninstalled():
|
|
519
|
+
options["self_compiled_python_uninstalled"] = asBoolStr(True)
|
|
520
|
+
|
|
429
521
|
cpp_defines = Plugins.getPreprocessorSymbols()
|
|
430
522
|
if cpp_defines:
|
|
431
523
|
options["cpp_defines"] = ",".join(
|
|
@@ -455,17 +547,13 @@ def setCommonSconsOptions(options):
|
|
|
455
547
|
|
|
456
548
|
options["macos_min_version"] = macos_min_version
|
|
457
549
|
|
|
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
|
|
550
|
+
options["macos_target_arch"] = Options.getMacOSTargetArch()
|
|
466
551
|
|
|
467
552
|
options["target_arch"] = getArchitecture()
|
|
468
553
|
|
|
554
|
+
if Options.getFcfProtectionMode() != "auto":
|
|
555
|
+
options["cf_protection"] = Options.getFcfProtectionMode()
|
|
556
|
+
|
|
469
557
|
env_values = OrderedDict()
|
|
470
558
|
|
|
471
559
|
string_values = Options.getWindowsVersionInfoStrings()
|
|
@@ -481,12 +569,8 @@ def setCommonSconsOptions(options):
|
|
|
481
569
|
|
|
482
570
|
if product_version is None:
|
|
483
571
|
product_version = file_version
|
|
484
|
-
if product_version is not None:
|
|
485
|
-
product_version = ".".join(str(d) for d in product_version)
|
|
486
572
|
if file_version is None:
|
|
487
573
|
file_version = product_version
|
|
488
|
-
else:
|
|
489
|
-
file_version = ".".join(str(d) for d in file_version)
|
|
490
574
|
|
|
491
575
|
if product_version != file_version:
|
|
492
576
|
effective_version = "%s-%s" % (
|
|
@@ -514,3 +598,19 @@ def setCommonSconsOptions(options):
|
|
|
514
598
|
)
|
|
515
599
|
|
|
516
600
|
return env_values
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
604
|
+
# integrates with CPython, but also works on its own.
|
|
605
|
+
#
|
|
606
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
607
|
+
# you may not use this file except in compliance with the License.
|
|
608
|
+
# You may obtain a copy of the License at
|
|
609
|
+
#
|
|
610
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
611
|
+
#
|
|
612
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
613
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
614
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
615
|
+
# See the License for the specific language governing permissions and
|
|
616
|
+
# 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.
|