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/Backend.scons
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
# -*- python -*-
|
|
2
|
-
# Copyright
|
|
3
|
-
|
|
4
|
-
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
5
|
-
# integrates with CPython, but also works on its own.
|
|
6
|
-
#
|
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
# you may not use this file except in compliance with the License.
|
|
9
|
-
# You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
# See the License for the specific language governing permissions and
|
|
17
|
-
# limitations under the License.
|
|
18
|
-
#
|
|
2
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
3
|
+
|
|
19
4
|
|
|
20
5
|
"""
|
|
21
6
|
The Nuitka scons file. If you have Scons or platform knowledge, please be
|
|
@@ -53,7 +38,13 @@ from nuitka.Tracing import (
|
|
|
53
38
|
scons_logger,
|
|
54
39
|
setQuiet,
|
|
55
40
|
)
|
|
56
|
-
from nuitka.utils.
|
|
41
|
+
from nuitka.utils.FileOperations import (
|
|
42
|
+
changeFilenameExtension,
|
|
43
|
+
deleteFile,
|
|
44
|
+
getExternalUsePath,
|
|
45
|
+
getFilenameExtension,
|
|
46
|
+
isFilesystemEncodable,
|
|
47
|
+
)
|
|
57
48
|
from nuitka.utils.Json import loadJsonFromFilename
|
|
58
49
|
from nuitka.utils.Utils import (
|
|
59
50
|
isDebianBasedLinux,
|
|
@@ -101,7 +92,7 @@ from .SconsUtils import (
|
|
|
101
92
|
writeSconsReport,
|
|
102
93
|
)
|
|
103
94
|
|
|
104
|
-
# spell-checker: ignore ccversion,ccflags,werror,cppdefines,cpppath
|
|
95
|
+
# spell-checker: ignore ccversion,ccflags,werror,cppdefines,cpppath,linkflags,libpath
|
|
105
96
|
|
|
106
97
|
# Set the arguments.
|
|
107
98
|
setArguments(ARGUMENTS)
|
|
@@ -118,18 +109,12 @@ source_dir = getArgumentRequired("source_dir")
|
|
|
118
109
|
nuitka_src = getArgumentRequired("nuitka_src")
|
|
119
110
|
static_src = os.path.join(source_dir, "static")
|
|
120
111
|
|
|
121
|
-
# The name of executable
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
# The name of executable that we produce (in executable mode).
|
|
125
|
-
result_exe = getArgumentDefaulted("result_exe", None)
|
|
112
|
+
# The name of executable that we are supposed to produce.
|
|
113
|
+
result_exe = getArgumentRequired("result_exe")
|
|
126
114
|
|
|
127
115
|
# Name of the main program (in executable mode, typically __main__ but can be in a package too.)
|
|
128
116
|
main_module_name = getArgumentDefaulted("main_module_name", "__main__")
|
|
129
117
|
|
|
130
|
-
# The suffix for an extension module (in module mode).
|
|
131
|
-
module_suffix = getArgumentDefaulted("module_suffix", None)
|
|
132
|
-
|
|
133
118
|
# Full names shall be used, no remapping for cacheable filenames.
|
|
134
119
|
full_names = getArgumentBool("full_names", False)
|
|
135
120
|
|
|
@@ -139,6 +124,10 @@ module_mode = getArgumentBool("module_mode", False)
|
|
|
139
124
|
# Debug mode: Less optimizations, debug information in the resulting binary.
|
|
140
125
|
debug_mode = getArgumentBool("debug_mode", False)
|
|
141
126
|
|
|
127
|
+
# Debugger mode: Debug information in the resulting binary and intention to run
|
|
128
|
+
# in debugger.
|
|
129
|
+
debugger_mode = getArgumentBool("debugger_mode", False)
|
|
130
|
+
|
|
142
131
|
# Profiling mode: Outputs vmprof based information from program run.
|
|
143
132
|
profile_mode = getArgumentBool("profile_mode", False)
|
|
144
133
|
|
|
@@ -167,6 +156,9 @@ deployment_mode = getArgumentBool("deployment", False)
|
|
|
167
156
|
# Experimental indications. Do things that are not yet safe to do.
|
|
168
157
|
no_deployment = getArgumentList("no_deployment", "")
|
|
169
158
|
|
|
159
|
+
# Debug mode indications. Do check things with fine granularity.
|
|
160
|
+
debug_modes = getArgumentList("debug_modes", "")
|
|
161
|
+
|
|
170
162
|
# Tracing mode. Output program progress.
|
|
171
163
|
trace_mode = getArgumentBool("trace_mode", False)
|
|
172
164
|
|
|
@@ -177,12 +169,8 @@ lto_mode = getArgumentDefaulted("lto_mode", "auto")
|
|
|
177
169
|
# PGO mode: Use profile guided optimization of C compiler if available.
|
|
178
170
|
pgo_mode = getArgumentDefaulted("pgo_mode", "no")
|
|
179
171
|
|
|
180
|
-
#
|
|
181
|
-
|
|
182
|
-
win_target = os.name == "nt"
|
|
183
|
-
|
|
184
|
-
# Windows subsystem mode: Disable console for windows builds.
|
|
185
|
-
disable_console = getArgumentBool("disable_console", False)
|
|
172
|
+
# Console mode specified
|
|
173
|
+
console_mode = getArgumentDefaulted("console_mode", "attach")
|
|
186
174
|
|
|
187
175
|
# Windows might be running a Python whose DLL we have to use.
|
|
188
176
|
uninstalled_python = getArgumentBool("uninstalled_python", False)
|
|
@@ -203,7 +191,7 @@ clang_mode = getArgumentBool("clang_mode", False)
|
|
|
203
191
|
# Clang on Windows with no requirement to use MinGW64 or using MSYS2 MinGW flavor,
|
|
204
192
|
# is changed to ClangCL from Visual Studio.
|
|
205
193
|
clangcl_mode = False
|
|
206
|
-
if
|
|
194
|
+
if os.name == "nt" and not mingw_mode and clang_mode:
|
|
207
195
|
clang_mode = False
|
|
208
196
|
clangcl_mode = True
|
|
209
197
|
|
|
@@ -217,6 +205,9 @@ standalone_mode = getArgumentBool("standalone_mode", False)
|
|
|
217
205
|
# Onefile mode
|
|
218
206
|
onefile_mode = getArgumentBool("onefile_mode", False)
|
|
219
207
|
|
|
208
|
+
# MacOS bundle
|
|
209
|
+
macos_bundle_mode = getArgumentBool("macos_bundle_mode", False)
|
|
210
|
+
|
|
220
211
|
# Onefile temp mode
|
|
221
212
|
onefile_temp_mode = getArgumentBool("onefile_temp_mode", False)
|
|
222
213
|
|
|
@@ -227,13 +218,15 @@ forced_stderr_path = getArgumentDefaulted("forced_stderr_path", None)
|
|
|
227
218
|
show_scons_mode = getArgumentBool("show_scons", False)
|
|
228
219
|
scons_details_logger.is_quiet = not show_scons_mode
|
|
229
220
|
|
|
230
|
-
if int(os.
|
|
221
|
+
if int(os.getenv("NUITKA_QUIET", "0")):
|
|
231
222
|
setQuiet()
|
|
232
223
|
|
|
233
224
|
# Home of Python to be compiled against, used to find include files and
|
|
234
225
|
# libraries to link against.
|
|
235
226
|
python_prefix = getArgumentRequired("python_prefix")
|
|
236
227
|
|
|
228
|
+
python_prefix_external = getExternalUsePath(python_prefix)
|
|
229
|
+
|
|
237
230
|
# Forced MSVC version (windows-only)
|
|
238
231
|
msvc_version = getArgumentDefaulted("msvc_version", None)
|
|
239
232
|
|
|
@@ -287,6 +280,9 @@ cpp_include_dirs = getArgumentList("cpp_include_dirs", "")
|
|
|
287
280
|
link_dirs = getArgumentList("link_dirs", "")
|
|
288
281
|
link_libraries = getArgumentList("link_libraries", "")
|
|
289
282
|
|
|
283
|
+
# From statically compiled modules of the Python
|
|
284
|
+
link_module_libs = getArgumentList("link_module_libs", "")
|
|
285
|
+
|
|
290
286
|
# Allow automatic downloads for ccache, etc.
|
|
291
287
|
assume_yes_for_downloads = getArgumentBool("assume_yes_for_downloads", False)
|
|
292
288
|
|
|
@@ -299,6 +295,9 @@ macos_min_version = getArgumentDefaulted("macos_min_version", "")
|
|
|
299
295
|
# Target arch for macOS.
|
|
300
296
|
macos_target_arch = getArgumentDefaulted("macos_target_arch", "")
|
|
301
297
|
|
|
298
|
+
# gcc compiler cf_protection option
|
|
299
|
+
cf_protection = getArgumentDefaulted("cf_protection", "auto")
|
|
300
|
+
|
|
302
301
|
if getArgumentBool("progress_bar", True) and not show_scons_mode:
|
|
303
302
|
enableSconsProgressBar()
|
|
304
303
|
|
|
@@ -319,6 +318,7 @@ env = createEnvironment(
|
|
|
319
318
|
target_arch=target_arch,
|
|
320
319
|
experimental=experimental,
|
|
321
320
|
no_deployment=no_deployment,
|
|
321
|
+
debug_modes=debug_modes,
|
|
322
322
|
)
|
|
323
323
|
|
|
324
324
|
scons_details_logger.info("Initial CC: %r" % env.get("CC"))
|
|
@@ -335,7 +335,7 @@ if "CC" in os.environ:
|
|
|
335
335
|
elif clangcl_mode:
|
|
336
336
|
# If possible, add Clang directory from MSVC if available.
|
|
337
337
|
addClangClPathFromMSVC(env=env)
|
|
338
|
-
elif clang_mode:
|
|
338
|
+
elif clang_mode and not mingw_mode:
|
|
339
339
|
# If requested by the user, use the clang compiler, overriding what was
|
|
340
340
|
# said in environment.
|
|
341
341
|
|
|
@@ -357,8 +357,9 @@ env.the_cc_name = os.path.normcase(os.path.basename(env.the_compiler))
|
|
|
357
357
|
env.standalone_mode = standalone_mode
|
|
358
358
|
env.debug_mode = debug_mode
|
|
359
359
|
env.unstripped_mode = unstripped_mode
|
|
360
|
-
env.
|
|
360
|
+
env.console_mode = console_mode
|
|
361
361
|
env.source_dir = source_dir
|
|
362
|
+
env.nuitka_src = nuitka_src
|
|
362
363
|
env.low_memory = low_memory
|
|
363
364
|
env.macos_min_version = macos_min_version
|
|
364
365
|
env.macos_target_arch = macos_target_arch
|
|
@@ -374,10 +375,13 @@ env.gcc_mode = isGccName(env.the_cc_name) or clang_mode
|
|
|
374
375
|
env.clang_mode = clang_mode
|
|
375
376
|
|
|
376
377
|
# Only use MSVC if not already clear, we are using MinGW.
|
|
377
|
-
env.msvc_mode =
|
|
378
|
-
env.mingw_mode =
|
|
378
|
+
env.msvc_mode = os.name == "nt" and not env.gcc_mode
|
|
379
|
+
env.mingw_mode = os.name == "nt" and env.gcc_mode
|
|
379
380
|
env.clangcl_mode = clangcl_mode
|
|
380
381
|
|
|
382
|
+
# gcc compiler cf_protection option
|
|
383
|
+
env.cf_protection = cf_protection
|
|
384
|
+
|
|
381
385
|
# Consider switching from gcc to its g++ compiler as a workaround that makes us work without C11.
|
|
382
386
|
switchFromGccToGpp(
|
|
383
387
|
env=env,
|
|
@@ -392,7 +396,7 @@ if show_scons_mode:
|
|
|
392
396
|
my_print("Scons: Compiler used", end=" ")
|
|
393
397
|
my_print(getExecutablePath(env.the_compiler, env=env), end=" ")
|
|
394
398
|
|
|
395
|
-
if
|
|
399
|
+
if os.name == "nt" and env.msvc_mode:
|
|
396
400
|
my_print("(MSVC %s)" % getMsvcVersionString(env))
|
|
397
401
|
|
|
398
402
|
my_print()
|
|
@@ -409,6 +413,7 @@ setupCCompiler(
|
|
|
409
413
|
lto_mode=lto_mode,
|
|
410
414
|
pgo_mode=pgo_mode,
|
|
411
415
|
job_count=job_count,
|
|
416
|
+
onefile_compile=False,
|
|
412
417
|
)
|
|
413
418
|
|
|
414
419
|
|
|
@@ -422,14 +427,14 @@ if env.gcc_mode and not env.clang_mode and env.gcc_version >= (8,):
|
|
|
422
427
|
"--file-prefix-map=%s=%s" % (os.path.normpath(source_dir), "."),
|
|
423
428
|
"--file-prefix-map=%s=%s"
|
|
424
429
|
% (
|
|
425
|
-
os.path.normpath(os.path.join(source_dir, "static_src")),
|
|
426
|
-
os.path.normpath(os.path.join(nuitka_src, "static_src")),
|
|
430
|
+
os.path.normpath(os.path.join(env.source_dir, "static_src")),
|
|
431
|
+
os.path.normpath(os.path.join(env.nuitka_src, "static_src")),
|
|
427
432
|
),
|
|
428
433
|
]
|
|
429
434
|
)
|
|
430
435
|
|
|
431
436
|
if env.msvc_mode:
|
|
432
|
-
# With Clang on Windows, there is also an linker to use.
|
|
437
|
+
# With Clang on Windows, there is also an linker to use. spell-checker: ignore bigobj
|
|
433
438
|
env.Append(
|
|
434
439
|
CCFLAGS=[
|
|
435
440
|
"/EHsc", # No C++ exception handling code.
|
|
@@ -444,7 +449,7 @@ if env.msvc_mode:
|
|
|
444
449
|
|
|
445
450
|
if module_mode:
|
|
446
451
|
# Make sure we handle import library on our own and put it into the
|
|
447
|
-
# build directory
|
|
452
|
+
# build directory, spell-checker: ignore IMPLIB
|
|
448
453
|
|
|
449
454
|
no_import_lib = True
|
|
450
455
|
env.Append(
|
|
@@ -460,10 +465,19 @@ if env.debug_mode:
|
|
|
460
465
|
if env.gcc_mode:
|
|
461
466
|
# Allow gcc/clang to point out all kinds of inconsistency to us by
|
|
462
467
|
# raising an error.
|
|
468
|
+
|
|
469
|
+
if "allow-c-warnings" not in env.experimental_flags and not debugger_mode:
|
|
470
|
+
env.Append(
|
|
471
|
+
CCFLAGS=[
|
|
472
|
+
"-Wall",
|
|
473
|
+
"-Werror",
|
|
474
|
+
]
|
|
475
|
+
)
|
|
476
|
+
else:
|
|
477
|
+
env.Append(CCFLAGS=["-Wno-unused-but-set-variable"])
|
|
478
|
+
|
|
463
479
|
env.Append(
|
|
464
480
|
CCFLAGS=[
|
|
465
|
-
"-Wall",
|
|
466
|
-
"-Werror",
|
|
467
481
|
# Unfortunately Py_INCREF(Py_False) triggers aliasing warnings,
|
|
468
482
|
# which are unfounded, so disable them.
|
|
469
483
|
"-Wno-error=strict-aliasing",
|
|
@@ -495,6 +509,9 @@ if env.debug_mode:
|
|
|
495
509
|
if python_version >= (3, 4):
|
|
496
510
|
env.Append(CCFLAGS=["/wd4512", "/wd4510", "/wd4610"])
|
|
497
511
|
|
|
512
|
+
if python_version >= (3, 13):
|
|
513
|
+
env.Append(CCFLAGS=["/wd4324"])
|
|
514
|
+
|
|
498
515
|
# We use null arrays in our structure Python declarations, which C11 does
|
|
499
516
|
# not really allow, but should work.
|
|
500
517
|
env.Append(CCFLAGS=["/wd4200"])
|
|
@@ -515,6 +532,9 @@ if trace_mode:
|
|
|
515
532
|
if env.standalone_mode:
|
|
516
533
|
env.Append(CPPDEFINES=["_NUITKA_STANDALONE"])
|
|
517
534
|
|
|
535
|
+
if macos_bundle_mode:
|
|
536
|
+
env.Append(CPPDEFINES=["_NUITKA_MACOS_BUNDLE"])
|
|
537
|
+
|
|
518
538
|
if onefile_mode:
|
|
519
539
|
env.Append(CPPDEFINES=["_NUITKA_ONEFILE_MODE"])
|
|
520
540
|
|
|
@@ -538,44 +558,17 @@ if env.static_libpython:
|
|
|
538
558
|
env.Append(CPPDEFINES=["Py_NO_ENABLE_SHARED"])
|
|
539
559
|
|
|
540
560
|
|
|
541
|
-
def detectHostMultiArch():
|
|
542
|
-
stdout = check_output("dpkg-architecture")
|
|
543
|
-
|
|
544
|
-
for line in stdout.splitlines():
|
|
545
|
-
line = line.strip()
|
|
546
|
-
|
|
547
|
-
if line.startswith(b"DEB_HOST_MULTI_ARCH="):
|
|
548
|
-
return line.split("=", 1)[1].decode("utf8")
|
|
549
|
-
|
|
550
|
-
return None
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
if env.gcc_mode and env.debian_python:
|
|
554
|
-
# TODO: Seems rather meaningless nowadays and hard codes this to not be
|
|
555
|
-
# self compiled or so.
|
|
556
|
-
if python_version == (3, 3):
|
|
557
|
-
host_multi_arch = detectHostMultiArch()
|
|
558
|
-
|
|
559
|
-
if host_multi_arch is not None:
|
|
560
|
-
env.Append(
|
|
561
|
-
CCFLAGS=[
|
|
562
|
-
"-I"
|
|
563
|
-
+ os.path.join(
|
|
564
|
-
"/usr/include/", host_multi_arch, "python" + python_abi_version
|
|
565
|
-
)
|
|
566
|
-
]
|
|
567
|
-
)
|
|
568
|
-
|
|
569
|
-
|
|
570
561
|
def _detectPythonHeaderPath():
|
|
571
|
-
if
|
|
562
|
+
if os.name == "nt":
|
|
572
563
|
# On Windows, the CPython installation layout is relatively fixed, but on MSYS2
|
|
573
564
|
# compiled for mingw64, it's more standard.
|
|
574
565
|
|
|
575
566
|
candidates = [
|
|
576
|
-
os.path.join(
|
|
567
|
+
os.path.join(python_prefix_external, "include"),
|
|
577
568
|
# On MSYS2 with MinGW64 Python, it is also the other form.
|
|
578
|
-
os.path.join(
|
|
569
|
+
os.path.join(
|
|
570
|
+
python_prefix_external, "include", "python" + python_abi_version
|
|
571
|
+
),
|
|
579
572
|
]
|
|
580
573
|
else:
|
|
581
574
|
# The python header path is a combination of python version and debug
|
|
@@ -583,10 +576,14 @@ def _detectPythonHeaderPath():
|
|
|
583
576
|
# include path.
|
|
584
577
|
|
|
585
578
|
candidates = [
|
|
586
|
-
os.path.join(
|
|
579
|
+
os.path.join(
|
|
580
|
+
python_prefix_external, "include", "python" + python_abi_version
|
|
581
|
+
),
|
|
582
|
+
# CPython source code checkout
|
|
583
|
+
os.path.join(python_prefix_external, "Include"),
|
|
587
584
|
# Haiku specific paths:
|
|
588
585
|
os.path.join(
|
|
589
|
-
|
|
586
|
+
python_prefix_external, "develop/headers", "python" + python_abi_version
|
|
590
587
|
),
|
|
591
588
|
]
|
|
592
589
|
|
|
@@ -594,7 +591,7 @@ def _detectPythonHeaderPath():
|
|
|
594
591
|
if python_debug and "d" in python_abi_version:
|
|
595
592
|
candidates.append(
|
|
596
593
|
os.path.join(
|
|
597
|
-
|
|
594
|
+
python_prefix_external,
|
|
598
595
|
"include",
|
|
599
596
|
"python" + python_abi_version.replace("d", ""),
|
|
600
597
|
)
|
|
@@ -602,55 +599,64 @@ def _detectPythonHeaderPath():
|
|
|
602
599
|
|
|
603
600
|
for candidate in candidates:
|
|
604
601
|
if os.path.exists(os.path.join(candidate, "Python.h")):
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
if win_target:
|
|
608
|
-
scons_logger.sysexit(
|
|
609
|
-
"""Error, you seem to be using the unsupported embeddable CPython distribution."""
|
|
610
|
-
)
|
|
602
|
+
yield candidate
|
|
603
|
+
break
|
|
611
604
|
else:
|
|
612
|
-
|
|
613
|
-
|
|
605
|
+
if os.name == "nt":
|
|
606
|
+
scons_logger.sysexit(
|
|
607
|
+
"""\
|
|
608
|
+
Error, you seem to be using the unsupported embeddable CPython distribution \
|
|
609
|
+
use a full Python instead."""
|
|
610
|
+
)
|
|
611
|
+
else:
|
|
612
|
+
scons_logger.sysexit(
|
|
613
|
+
"""\
|
|
614
614
|
Error, no 'Python.h' %s headers can be found at '%s', dependency \
|
|
615
615
|
not satisfied!"""
|
|
616
|
-
|
|
617
|
-
|
|
616
|
+
% ("debug" if python_debug else "development", candidates)
|
|
617
|
+
)
|
|
618
|
+
|
|
619
|
+
if python_version >= (3, 13):
|
|
620
|
+
yield os.path.join(candidate, "internal", "mimalloc")
|
|
618
621
|
|
|
622
|
+
if env.self_compiled_python_uninstalled:
|
|
623
|
+
yield python_prefix_external
|
|
619
624
|
|
|
620
|
-
|
|
625
|
+
|
|
626
|
+
env.Append(CPPPATH=list(_detectPythonHeaderPath()))
|
|
621
627
|
|
|
622
628
|
# To support self-built Python on Windows, need to also add the "PC" directory,
|
|
623
629
|
# that a normal install won't have.
|
|
624
630
|
if os.name == "nt":
|
|
625
|
-
python_header_path = os.path.join(
|
|
631
|
+
python_header_path = os.path.join(python_prefix_external, "PC")
|
|
626
632
|
|
|
627
633
|
if os.path.exists(python_header_path):
|
|
628
634
|
env.Append(CPPPATH=[python_header_path])
|
|
629
635
|
|
|
630
|
-
|
|
631
|
-
def getWindowsPythonDLLPath():
|
|
632
|
-
return os.environ["NUITKA_PYTHON_DLL_PATH"]
|
|
633
|
-
|
|
634
|
-
|
|
635
636
|
if env.nuitka_python:
|
|
636
637
|
env.Append(CPPDEFINES=["_NUITKA_PYTHON"])
|
|
637
638
|
|
|
638
639
|
if env.static_libpython:
|
|
639
640
|
env.Append(CPPDEFINES=["_NUITKA_STATIC_LIBPYTHON"])
|
|
640
641
|
|
|
641
|
-
|
|
642
|
+
# TODO: This ought to be decided outside of scons and per flavor maybe.
|
|
643
|
+
if env.static_libpython and (
|
|
644
|
+
(not os.name == "nt" and not isMacOS()) or env.nuitka_python
|
|
645
|
+
):
|
|
642
646
|
env.Append(CPPDEFINES=["_NUITKA_USE_UNEXPOSED_API"])
|
|
643
647
|
|
|
644
|
-
if
|
|
648
|
+
if os.name == "nt":
|
|
645
649
|
if env.nuitka_python:
|
|
646
650
|
env.Append(
|
|
647
651
|
LINKFLAGS=[
|
|
648
652
|
"/LTCG",
|
|
649
|
-
"/USEPROFILE:PGD=" + os.path.join(
|
|
653
|
+
"/USEPROFILE:PGD=" + os.path.join(python_prefix_external, "python.pgd"),
|
|
650
654
|
]
|
|
651
655
|
)
|
|
652
656
|
|
|
653
|
-
link_data = loadJsonFromFilename(
|
|
657
|
+
link_data = loadJsonFromFilename(
|
|
658
|
+
os.path.join(python_prefix_external, "link.json")
|
|
659
|
+
)
|
|
654
660
|
env.Append(LIBS=link_data["libraries"])
|
|
655
661
|
env.Append(LIBPATH=link_data["library_dirs"])
|
|
656
662
|
for define, value in link_data["macros"]:
|
|
@@ -683,7 +689,7 @@ if win_target:
|
|
|
683
689
|
pc_build_dir = "PCBuild"
|
|
684
690
|
|
|
685
691
|
for candidate in ("libs", pc_build_dir):
|
|
686
|
-
win_lib_path = os.path.join(
|
|
692
|
+
win_lib_path = os.path.join(python_prefix_external, candidate)
|
|
687
693
|
|
|
688
694
|
if os.path.exists(os.path.join(win_lib_path, win_lib_name + ".lib")):
|
|
689
695
|
break
|
|
@@ -697,17 +703,22 @@ if win_target:
|
|
|
697
703
|
addWinLib()
|
|
698
704
|
elif not module_mode:
|
|
699
705
|
# Add the python library path to the library path
|
|
700
|
-
python_lib_path = os.path.join(
|
|
706
|
+
python_lib_path = os.path.join(python_prefix_external, "lib")
|
|
701
707
|
env.Append(LIBPATH=[python_lib_path])
|
|
702
708
|
|
|
709
|
+
# Any module libs that are for self-compiled Python to be static.
|
|
710
|
+
env.Append(_LIBFLAGS=["-l" + lib_desc for lib_desc in link_module_libs])
|
|
711
|
+
|
|
703
712
|
if env.nuitka_python:
|
|
704
|
-
link_data = loadJsonFromFilename(
|
|
713
|
+
link_data = loadJsonFromFilename(
|
|
714
|
+
os.path.join(python_prefix_external, "link.json")
|
|
715
|
+
)
|
|
705
716
|
for lib in link_data["libraries"]:
|
|
706
717
|
# Need to prevent Scons from stripping .a from the passed in libs.
|
|
707
|
-
if
|
|
708
|
-
env.Append(_LIBFLAGS=[lib])
|
|
709
|
-
elif lib.startswith(":") and lib.endswith(".a"):
|
|
718
|
+
if lib.startswith(":") and lib.endswith(".a"):
|
|
710
719
|
env.Append(_LIBFLAGS=["-l" + lib])
|
|
720
|
+
elif os.path.isfile(lib):
|
|
721
|
+
env.Append(_LIBFLAGS=[lib])
|
|
711
722
|
else:
|
|
712
723
|
env.Append(LIBS=[lib])
|
|
713
724
|
env.Append(LIBPATH=link_data["library_dirs"])
|
|
@@ -726,18 +737,21 @@ elif not module_mode:
|
|
|
726
737
|
|
|
727
738
|
# The linker won't succeed in searching for those for system Python of Debian
|
|
728
739
|
# compiled Pythons. Help that. For self-compiled,
|
|
729
|
-
if
|
|
740
|
+
if python_prefix_external == "/usr" and isDebianBasedLinux():
|
|
730
741
|
env.Append(LIBS=["z", "m", "util", "pthread"])
|
|
731
742
|
|
|
732
743
|
if python_version >= (3,):
|
|
733
744
|
env.Append(LIBS=["expat"])
|
|
734
745
|
|
|
735
746
|
env.Append(LINKFLAGS=["-Xlinker", "-export-dynamic", "-rdynamic"])
|
|
747
|
+
|
|
748
|
+
if env.arch_python:
|
|
749
|
+
env.Append(LINKFLAGS=["-rdynamic"])
|
|
736
750
|
else:
|
|
737
751
|
# Fedora, Debian and Ubuntu distinguish the system libraries like this.
|
|
738
752
|
if (
|
|
739
753
|
python_debug
|
|
740
|
-
and
|
|
754
|
+
and python_prefix_external == "/usr"
|
|
741
755
|
and python_version < (3,)
|
|
742
756
|
and (isDebianBasedLinux() or isFedoraBasedLinux())
|
|
743
757
|
):
|
|
@@ -745,7 +759,7 @@ elif not module_mode:
|
|
|
745
759
|
else:
|
|
746
760
|
env.Append(LIBS=["python" + python_abi_version])
|
|
747
761
|
|
|
748
|
-
if
|
|
762
|
+
if python_prefix_external != "/usr" and "linux" in sys.platform:
|
|
749
763
|
env.Append(LIBS=["dl", "pthread", "util", "rt", "m"])
|
|
750
764
|
|
|
751
765
|
if env.gcc_mode:
|
|
@@ -768,7 +782,7 @@ if isMacOS():
|
|
|
768
782
|
|
|
769
783
|
# The static include files reside in Nuitka installation, which may be where
|
|
770
784
|
# the "nuitka.build" package lives.
|
|
771
|
-
nuitka_include = os.path.join(nuitka_src, "include")
|
|
785
|
+
nuitka_include = os.path.join(env.nuitka_src, "include")
|
|
772
786
|
|
|
773
787
|
if not os.path.exists(os.path.join(nuitka_include, "nuitka", "prelude.h")):
|
|
774
788
|
scons_logger.sysexit(
|
|
@@ -778,10 +792,29 @@ if not os.path.exists(os.path.join(nuitka_include, "nuitka", "prelude.h")):
|
|
|
778
792
|
|
|
779
793
|
# We have include files in the build directory and the static include directory
|
|
780
794
|
# that is located inside Nuitka installation.
|
|
781
|
-
env.Append(
|
|
795
|
+
env.Append(
|
|
796
|
+
CPPPATH=[
|
|
797
|
+
source_dir,
|
|
798
|
+
nuitka_include,
|
|
799
|
+
os.path.join(env.nuitka_src, "static_src"),
|
|
800
|
+
os.path.join(env.nuitka_src, "inline_copy", "libbacktrace"),
|
|
801
|
+
]
|
|
802
|
+
)
|
|
803
|
+
|
|
804
|
+
if env.debian_python and python_version >= (3, 12):
|
|
805
|
+
env.Append(
|
|
806
|
+
CPPPATH=[
|
|
807
|
+
os.path.join(env.nuitka_src, "inline_copy", "python_hacl", "hacl_312"),
|
|
808
|
+
os.path.join(
|
|
809
|
+
env.nuitka_src, "inline_copy", "python_hacl", "hacl_312", "include"
|
|
810
|
+
),
|
|
811
|
+
]
|
|
812
|
+
)
|
|
813
|
+
|
|
814
|
+
env.Append(CPPDEFINES=["_NUITKA_INLINE_COPY_HACL"])
|
|
782
815
|
|
|
783
816
|
# Set load libpython from binary directory default
|
|
784
|
-
if env.gcc_mode and not isMacOS() and not
|
|
817
|
+
if env.gcc_mode and not isMacOS() and not os.name == "nt" and not module_mode:
|
|
785
818
|
if env.standalone_mode:
|
|
786
819
|
rpath = "$$ORIGIN"
|
|
787
820
|
else:
|
|
@@ -820,8 +853,8 @@ else:
|
|
|
820
853
|
# For complete outputs, we have to match the C runtime of the Python DLL, if any,
|
|
821
854
|
# for Nuitka-Python there is of course none.
|
|
822
855
|
if not env.nuitka_python and (
|
|
823
|
-
forced_stdout_path not in ("
|
|
824
|
-
or forced_stderr_path not in ("
|
|
856
|
+
forced_stdout_path not in ("{NONE}", "{NULL}", None)
|
|
857
|
+
or forced_stderr_path not in ("{NONE}", "{NULL}", None)
|
|
825
858
|
):
|
|
826
859
|
env.Append(CCFLAGS=["/MD"]) # Multithreaded, dynamic version of C run time.
|
|
827
860
|
else:
|
|
@@ -857,9 +890,8 @@ def discoverSourceFiles():
|
|
|
857
890
|
|
|
858
891
|
result += [
|
|
859
892
|
provideStaticSourceFile(
|
|
893
|
+
env=env,
|
|
860
894
|
sub_path=filename,
|
|
861
|
-
nuitka_src=nuitka_src,
|
|
862
|
-
source_dir=source_dir,
|
|
863
895
|
c11_mode=env.c11_mode,
|
|
864
896
|
)
|
|
865
897
|
for filename in static_src_filenames
|
|
@@ -870,13 +902,36 @@ def discoverSourceFiles():
|
|
|
870
902
|
|
|
871
903
|
source_files = discoverSourceFiles()
|
|
872
904
|
|
|
905
|
+
# Remove the target file to avoid cases where it falsely doesn't get rebuild
|
|
906
|
+
# and then lingers from previous builds,
|
|
907
|
+
deleteFile(result_exe, must_exist=False)
|
|
908
|
+
|
|
909
|
+
# Workaround for MinGW64 not supporting unicode result paths for "-o" basename.
|
|
910
|
+
if os.name == "nt" and not isFilesystemEncodable(result_exe):
|
|
911
|
+
result_exe = os.path.join(
|
|
912
|
+
os.path.dirname(result_exe),
|
|
913
|
+
"_nuitka_temp.pyd" if module_mode else "_nuitka_temp.exe",
|
|
914
|
+
)
|
|
915
|
+
|
|
916
|
+
deleteFile(result_exe, must_exist=False)
|
|
917
|
+
|
|
873
918
|
if module_mode:
|
|
874
|
-
# For Python modules, the standard shared library extension is not what
|
|
875
|
-
#
|
|
919
|
+
# For Python modules, the standard shared library extension is not what gets
|
|
920
|
+
# used. spell-checker: ignore SHLIBSUFFIX
|
|
921
|
+
module_suffix = getFilenameExtension(result_exe)
|
|
922
|
+
result_base_path = changeFilenameExtension(result_exe, "")
|
|
923
|
+
|
|
924
|
+
extra_suffix = getFilenameExtension(result_base_path)
|
|
925
|
+
if extra_suffix != "":
|
|
926
|
+
module_suffix = extra_suffix + module_suffix
|
|
927
|
+
result_base_path = changeFilenameExtension(result_base_path, "")
|
|
928
|
+
|
|
929
|
+
assert getFilenameExtension(result_base_path) == "", result_base_path
|
|
930
|
+
|
|
876
931
|
env["SHLIBSUFFIX"] = module_suffix
|
|
877
932
|
|
|
878
933
|
target = env.SharedLibrary(
|
|
879
|
-
|
|
934
|
+
result_base_path, source_files, no_import_lib=no_import_lib
|
|
880
935
|
)
|
|
881
936
|
else:
|
|
882
937
|
target = env.Program(result_exe, source_files)
|
|
@@ -884,10 +939,6 @@ else:
|
|
|
884
939
|
# Use compiler/linker flags provided via environment variables
|
|
885
940
|
importEnvironmentVariableSettings(env)
|
|
886
941
|
|
|
887
|
-
# Remove the target file to avoid cases where it falsely doesn't get rebuild
|
|
888
|
-
# and then lingers from previous builds,
|
|
889
|
-
if os.path.exists(target[0].abspath):
|
|
890
|
-
os.unlink(target[0].abspath)
|
|
891
942
|
|
|
892
943
|
if job_count:
|
|
893
944
|
scons_details_logger.info("Told to run compilation on %d CPUs." % job_count)
|
|
@@ -897,6 +948,7 @@ def createBuildDefinitionsFile():
|
|
|
897
948
|
build_definitions = {}
|
|
898
949
|
|
|
899
950
|
if uninstalled_python and not env.static_libpython:
|
|
951
|
+
# Use the non-external one, so it's not a short path.
|
|
900
952
|
build_definitions["PYTHON_HOME_PATH"] = python_prefix
|
|
901
953
|
|
|
902
954
|
build_definitions["NO_PYTHON_WARNINGS"] = 1 if no_python_warnings else 0
|
|
@@ -939,25 +991,23 @@ def createBuildDefinitionsFile():
|
|
|
939
991
|
build_definitions["SYSFLAG_ISOLATED"] = 1 if python_sysflag_isolated else 0
|
|
940
992
|
|
|
941
993
|
if forced_stdout_path:
|
|
942
|
-
if forced_stdout_path == "
|
|
994
|
+
if forced_stdout_path == "{NONE}":
|
|
943
995
|
build_definitions["NUITKA_FORCED_STDOUT_NONE_BOOL"] = 1
|
|
944
|
-
elif forced_stdout_path == "
|
|
996
|
+
elif forced_stdout_path == "{NULL}":
|
|
945
997
|
build_definitions["NUITKA_FORCED_STDOUT_NULL_BOOL"] = 1
|
|
946
998
|
else:
|
|
947
999
|
build_definitions["NUITKA_FORCED_STDOUT_PATH"] = forced_stdout_path
|
|
948
1000
|
|
|
949
1001
|
if forced_stderr_path:
|
|
950
|
-
if forced_stderr_path == "
|
|
1002
|
+
if forced_stderr_path == "{NONE}":
|
|
951
1003
|
build_definitions["NUITKA_FORCED_STDERR_NONE_BOOL"] = 1
|
|
952
|
-
elif forced_stderr_path == "
|
|
1004
|
+
elif forced_stderr_path == "{NULL}":
|
|
953
1005
|
build_definitions["NUITKA_FORCED_STDERR_NULL_BOOL"] = 1
|
|
954
1006
|
else:
|
|
955
1007
|
build_definitions["NUITKA_FORCED_STDERR_PATH"] = forced_stderr_path
|
|
956
1008
|
|
|
957
1009
|
build_definitions["NUITKA_MAIN_MODULE_NAME"] = main_module_name
|
|
958
|
-
|
|
959
|
-
if main_module_name != "__main__":
|
|
960
|
-
build_definitions["NUITKA_MAIN_PACKAGE_MODE"] = 1
|
|
1010
|
+
build_definitions["NUITKA_MAIN_IS_PACKAGE_BOOL"] = main_module_name != "__main__"
|
|
961
1011
|
|
|
962
1012
|
createDefinitionsFile(source_dir, "build_definitions.h", build_definitions)
|
|
963
1013
|
|
|
@@ -966,7 +1016,7 @@ if forced_stderr_path and not forced_stdout_path:
|
|
|
966
1016
|
env.Append(CPPDEFINES=["NUITKA_STDERR_NOT_VISIBLE"])
|
|
967
1017
|
|
|
968
1018
|
if file_reference_mode == "original":
|
|
969
|
-
env.Append(CPPDEFINES=["
|
|
1019
|
+
env.Append(CPPDEFINES=["_NUITKA_FILE_REFERENCE_ORIGINAL_MODE"])
|
|
970
1020
|
|
|
971
1021
|
|
|
972
1022
|
createBuildDefinitionsFile()
|
|
@@ -998,7 +1048,6 @@ env.Append(LIBS=link_libraries)
|
|
|
998
1048
|
# Work around windows bugs and use watchdogs to track progress of compilation.
|
|
999
1049
|
enableSpawnMonitoring(
|
|
1000
1050
|
env=env,
|
|
1001
|
-
win_target=win_target,
|
|
1002
1051
|
module_mode=module_mode,
|
|
1003
1052
|
source_files=source_files,
|
|
1004
1053
|
)
|
|
@@ -1008,12 +1057,13 @@ enableSpawnMonitoring(
|
|
|
1008
1057
|
changeKeyboardInterruptToErrorExit()
|
|
1009
1058
|
|
|
1010
1059
|
# Check if ccache is installed, and complain if it is not.
|
|
1011
|
-
if env.gcc_mode
|
|
1060
|
+
if env.gcc_mode:
|
|
1012
1061
|
enableCcache(
|
|
1013
1062
|
env=env,
|
|
1014
1063
|
source_dir=source_dir,
|
|
1015
|
-
python_prefix=
|
|
1064
|
+
python_prefix=python_prefix_external,
|
|
1016
1065
|
assume_yes_for_downloads=assume_yes_for_downloads,
|
|
1066
|
+
disable_ccache=disable_ccache,
|
|
1017
1067
|
)
|
|
1018
1068
|
|
|
1019
1069
|
if env.msvc_mode and not disable_ccache:
|
|
@@ -1022,12 +1072,24 @@ if env.msvc_mode and not disable_ccache:
|
|
|
1022
1072
|
source_dir=source_dir,
|
|
1023
1073
|
)
|
|
1024
1074
|
|
|
1025
|
-
writeSconsReport(
|
|
1026
|
-
env=env,
|
|
1027
|
-
source_dir=source_dir,
|
|
1028
|
-
)
|
|
1075
|
+
writeSconsReport(env=env, target=target)
|
|
1029
1076
|
|
|
1030
1077
|
setSconsProgressBarTotal(name=env.progressbar_name, total=len(source_files))
|
|
1031
1078
|
|
|
1032
1079
|
scons_details_logger.info("Launching Scons target: %s" % target)
|
|
1033
1080
|
env.Default(target)
|
|
1081
|
+
|
|
1082
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1083
|
+
# integrates with CPython, but also works on its own.
|
|
1084
|
+
#
|
|
1085
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1086
|
+
# you may not use this file except in compliance with the License.
|
|
1087
|
+
# You may obtain a copy of the License at
|
|
1088
|
+
#
|
|
1089
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1090
|
+
#
|
|
1091
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1092
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1093
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1094
|
+
# See the License for the specific language governing permissions and
|
|
1095
|
+
# limitations under the License.
|