Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +93 -54
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +717 -171
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -22
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +89 -51
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +25 -21
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +73 -40
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +29 -22
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +39 -30
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +44 -24
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +132 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" This contains the tuning of the compilers towards defined goals.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -48,15 +34,16 @@ from .SconsUtils import (
|
|
|
48
34
|
getMsvcVersionString,
|
|
49
35
|
isClangName,
|
|
50
36
|
isGccName,
|
|
37
|
+
isZigName,
|
|
51
38
|
raiseNoCompilerFoundErrorExit,
|
|
52
39
|
setEnvironmentVariable,
|
|
53
40
|
)
|
|
54
41
|
|
|
55
|
-
# spell-checker: ignore CPPDEFINES,CPPPATH,CXXVERSION,CCFLAGS,LINKFLAGS,CXXFLAGS
|
|
42
|
+
# spell-checker: ignore LIBPATH,CPPDEFINES,CPPPATH,CXXVERSION,CCFLAGS,LINKFLAGS,CXXFLAGS
|
|
56
43
|
# spell-checker: ignore -flto,-fpartial-inlining,-freorder-functions,-defsym,-fprofile
|
|
57
44
|
# spell-checker: ignore -fwrapv,-Wunused,fcompare,-ftrack,-fvisibility,-municode,
|
|
58
45
|
# spell-checker: ignore -feliminate,noexecstack,implib
|
|
59
|
-
# spell-checker: ignore LTCG,GENPROFILE,USEPROFILE,
|
|
46
|
+
# spell-checker: ignore LTCG,GENPROFILE,USEPROFILE,CGTHREADS
|
|
60
47
|
|
|
61
48
|
|
|
62
49
|
def _detectWindowsSDK(env):
|
|
@@ -113,6 +100,10 @@ def _enableC11Settings(env):
|
|
|
113
100
|
c11_mode = True
|
|
114
101
|
elif env.clang_mode:
|
|
115
102
|
c11_mode = True
|
|
103
|
+
|
|
104
|
+
# For now, zig doesn't support C11 mode in the form needed by Nuitka
|
|
105
|
+
if isZigName(env.the_cc_name):
|
|
106
|
+
c11_mode = False
|
|
116
107
|
elif env.gcc_mode and env.gcc_version >= (5,):
|
|
117
108
|
c11_mode = True
|
|
118
109
|
else:
|
|
@@ -120,13 +111,13 @@ def _enableC11Settings(env):
|
|
|
120
111
|
|
|
121
112
|
if c11_mode:
|
|
122
113
|
if env.gcc_mode:
|
|
123
|
-
env.Append(
|
|
114
|
+
env.Append(CFLAGS=["-std=c11"])
|
|
124
115
|
elif env.msvc_mode:
|
|
125
|
-
env.Append(
|
|
116
|
+
env.Append(CFLAGS=["/std:c11"])
|
|
126
117
|
|
|
127
118
|
if env.msvc_mode and c11_mode:
|
|
128
119
|
# Windows SDK shows this even in non-debug mode in C11 mode.
|
|
129
|
-
env.Append(CCFLAGS=["/wd5105"])
|
|
120
|
+
env.Append(CCFLAGS=["/wd5105", "/wd4391"])
|
|
130
121
|
|
|
131
122
|
if not c11_mode:
|
|
132
123
|
env.Append(CPPDEFINES=["_NUITKA_NON_C11_MODE"])
|
|
@@ -161,6 +152,12 @@ def _enableLtoSettings(
|
|
|
161
152
|
elif env.nuitka_python:
|
|
162
153
|
lto_mode = True
|
|
163
154
|
reason = "known to be supported (Nuitka-Python)"
|
|
155
|
+
elif env.fedora_python:
|
|
156
|
+
lto_mode = True
|
|
157
|
+
reason = "known to be supported (Fedora Python)"
|
|
158
|
+
elif env.arch_python:
|
|
159
|
+
lto_mode = True
|
|
160
|
+
reason = "known to be supported (Arch Python)"
|
|
164
161
|
elif (
|
|
165
162
|
env.debian_python
|
|
166
163
|
and env.gcc_mode
|
|
@@ -173,8 +170,12 @@ def _enableLtoSettings(
|
|
|
173
170
|
lto_mode = False
|
|
174
171
|
reason = "known to be not supported (CondaCC)"
|
|
175
172
|
elif isMacOS() and env.gcc_mode and env.clang_mode:
|
|
176
|
-
|
|
177
|
-
|
|
173
|
+
if env.debugger_mode:
|
|
174
|
+
lto_mode = False
|
|
175
|
+
reason = "must be disabled to see line numbers (macOS clang)"
|
|
176
|
+
else:
|
|
177
|
+
lto_mode = True
|
|
178
|
+
reason = "known to be supported (macOS clang)"
|
|
178
179
|
elif env.mingw_mode and env.clang_mode:
|
|
179
180
|
lto_mode = False
|
|
180
181
|
reason = "known to not be supported (new MinGW64 Clang)"
|
|
@@ -191,6 +192,7 @@ def _enableLtoSettings(
|
|
|
191
192
|
orig_lto_mode == "auto"
|
|
192
193
|
and lto_mode
|
|
193
194
|
and env.module_count > module_count_threshold
|
|
195
|
+
and not env.nuitka_python
|
|
194
196
|
):
|
|
195
197
|
lto_mode = False
|
|
196
198
|
reason = "might to be too slow %s (>= %d threshold), force with --lto=yes" % (
|
|
@@ -210,26 +212,31 @@ version for lto mode (>= 4.6). Disabled."""
|
|
|
210
212
|
reason = "gcc 4.6 is doesn't have good enough LTO support"
|
|
211
213
|
|
|
212
214
|
if env.gcc_mode and lto_mode:
|
|
213
|
-
env.Append(CCFLAGS=["-flto"])
|
|
214
|
-
|
|
215
215
|
if env.clang_mode:
|
|
216
|
+
env.Append(CCFLAGS=["-flto"])
|
|
216
217
|
env.Append(LINKFLAGS=["-flto"])
|
|
217
218
|
else:
|
|
219
|
+
env.Append(CCFLAGS=["-flto=%d" % job_count])
|
|
220
|
+
env.Append(LINKFLAGS=["-flto=%d" % job_count])
|
|
221
|
+
|
|
218
222
|
env.Append(CCFLAGS=["-fuse-linker-plugin", "-fno-fat-lto-objects"])
|
|
219
223
|
env.Append(LINKFLAGS=["-fuse-linker-plugin"])
|
|
220
224
|
|
|
221
|
-
env.Append(LINKFLAGS=["-flto=%d" % job_count])
|
|
222
|
-
|
|
223
225
|
# Need to tell the linker these things are OK.
|
|
224
226
|
env.Append(LINKFLAGS=["-fpartial-inlining", "-freorder-functions"])
|
|
225
227
|
|
|
228
|
+
if env.mingw_mode and "MAKE" not in os.environ:
|
|
229
|
+
setEnvironmentVariable(env, "MAKE", "mingw32-make.exe")
|
|
230
|
+
|
|
226
231
|
# Tell compiler to use link time optimization for MSVC
|
|
227
232
|
if env.msvc_mode and lto_mode:
|
|
228
233
|
env.Append(CCFLAGS=["/GL"])
|
|
229
234
|
|
|
230
235
|
if not env.clangcl_mode:
|
|
231
236
|
env.Append(LINKFLAGS=["/LTCG"])
|
|
232
|
-
|
|
237
|
+
|
|
238
|
+
if getMsvcVersion(env) >= (14, 3):
|
|
239
|
+
env.Append(LINKFLAGS=["/CGTHREADS:%d" % job_count])
|
|
233
240
|
|
|
234
241
|
if orig_lto_mode == "auto":
|
|
235
242
|
scons_details_logger.info(
|
|
@@ -251,7 +258,7 @@ def checkWindowsCompilerFound(
|
|
|
251
258
|
env, target_arch, clang_mode, msvc_version, assume_yes_for_downloads
|
|
252
259
|
):
|
|
253
260
|
"""Remove compiler of wrong arch or too old gcc and replace with downloaded winlibs gcc."""
|
|
254
|
-
# Many cases to deal with, pylint: disable=too-many-branches
|
|
261
|
+
# Many cases to deal with, pylint: disable=too-many-branches,too-many-statements
|
|
255
262
|
|
|
256
263
|
if os.name == "nt":
|
|
257
264
|
# On Windows, in case MSVC was not found and not previously forced, use the
|
|
@@ -259,7 +266,8 @@ def checkWindowsCompilerFound(
|
|
|
259
266
|
compiler_path = getExecutablePath(env["CC"], env=env)
|
|
260
267
|
|
|
261
268
|
scons_details_logger.info(
|
|
262
|
-
"Checking usability of '%s' from '%s'."
|
|
269
|
+
"Checking usability of binary '%s' from environment '%s'."
|
|
270
|
+
% (compiler_path, env["CC"])
|
|
263
271
|
)
|
|
264
272
|
|
|
265
273
|
# On MSYS2, cannot use the POSIX compiler, drop that even before we check arches, since that
|
|
@@ -288,6 +296,14 @@ def checkWindowsCompilerFound(
|
|
|
288
296
|
compiler_path = None
|
|
289
297
|
env["CC"] = None
|
|
290
298
|
|
|
299
|
+
if compiler_path is not None:
|
|
300
|
+
the_cc_name = os.path.basename(compiler_path)
|
|
301
|
+
|
|
302
|
+
if clang_mode and not isClangName(the_cc_name):
|
|
303
|
+
# This will trigger using it to use our own clang in branch below.
|
|
304
|
+
compiler_path = None
|
|
305
|
+
env["CC"] = None
|
|
306
|
+
|
|
291
307
|
# Drop wrong arch compiler, most often found by scans. There might be wrong gcc or cl on the PATH.
|
|
292
308
|
if compiler_path is not None:
|
|
293
309
|
the_cc_name = os.path.basename(compiler_path)
|
|
@@ -361,16 +377,10 @@ For Python version %s MSVC %s or later is required, not %s which is too old."""
|
|
|
361
377
|
the_cc_name = os.path.basename(compiler_path)
|
|
362
378
|
|
|
363
379
|
if isGccName(the_cc_name):
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
min_version = (11, 2)
|
|
367
|
-
if gcc_version is not None and (
|
|
368
|
-
gcc_version < min_version
|
|
369
|
-
or "force-winlibs-gcc" in env.experimental_flags
|
|
370
|
-
):
|
|
380
|
+
if "force-accept-windows-gcc" not in env.experimental_flags:
|
|
371
381
|
scons_logger.info(
|
|
372
|
-
"
|
|
373
|
-
% (compiler_path,
|
|
382
|
+
"Non downloaded winlibs-gcc '%s' is being ignored, Nuitka is very dependent on the precise one."
|
|
383
|
+
% (compiler_path,)
|
|
374
384
|
)
|
|
375
385
|
|
|
376
386
|
# This also will trigger using it to use our own gcc in branch below.
|
|
@@ -379,7 +389,7 @@ For Python version %s MSVC %s or later is required, not %s which is too old."""
|
|
|
379
389
|
|
|
380
390
|
if compiler_path is None and msvc_version is None:
|
|
381
391
|
scons_details_logger.info(
|
|
382
|
-
"No usable C compiler, attempt fallback to winlibs gcc."
|
|
392
|
+
"No usable C compiler, attempt fallback to winlibs gcc or clang."
|
|
383
393
|
)
|
|
384
394
|
|
|
385
395
|
# This will download "gcc.exe" (and "clang.exe") when all others have been
|
|
@@ -398,6 +408,7 @@ For Python version %s MSVC %s or later is required, not %s which is too old."""
|
|
|
398
408
|
target_arch=target_arch,
|
|
399
409
|
experimental=env.experimental_flags,
|
|
400
410
|
no_deployment=env.no_deployment_flags,
|
|
411
|
+
debug_modes=env.debug_modes_flags,
|
|
401
412
|
)
|
|
402
413
|
|
|
403
414
|
if clang_mode:
|
|
@@ -491,6 +502,11 @@ unsigned char const *getConstantsBlobData(void) {
|
|
|
491
502
|
# Indicate "linker" resource mode.
|
|
492
503
|
env.Append(CPPDEFINES=["_NUITKA_CONSTANTS_FROM_LINKER"])
|
|
493
504
|
|
|
505
|
+
# For MinGW the symbol name to be used is more low level.
|
|
506
|
+
constant_bin_link_name = "constant_bin_data"
|
|
507
|
+
if env.mingw_mode:
|
|
508
|
+
constant_bin_link_name = "_" + constant_bin_link_name
|
|
509
|
+
|
|
494
510
|
env.Append(
|
|
495
511
|
LINKFLAGS=[
|
|
496
512
|
"-Wl,-b",
|
|
@@ -503,9 +519,9 @@ unsigned char const *getConstantsBlobData(void) {
|
|
|
503
519
|
mingw_mode=env.mingw_mode or isPosixWindows(),
|
|
504
520
|
),
|
|
505
521
|
"-Wl,-defsym",
|
|
506
|
-
"-Wl,%
|
|
522
|
+
"-Wl,%s=_binary_%s___constants_bin_start"
|
|
507
523
|
% (
|
|
508
|
-
|
|
524
|
+
constant_bin_link_name,
|
|
509
525
|
"".join(re.sub("[^a-zA-Z0-9_]", "_", c) for c in env.source_dir),
|
|
510
526
|
),
|
|
511
527
|
]
|
|
@@ -573,7 +589,7 @@ def enableWindowsStackSize(env, target_arch):
|
|
|
573
589
|
env.Append(LINKFLAGS=["-Wl,--stack,%d" % stack_size])
|
|
574
590
|
|
|
575
591
|
|
|
576
|
-
def setupCCompiler(env, lto_mode, pgo_mode, job_count):
|
|
592
|
+
def setupCCompiler(env, lto_mode, pgo_mode, job_count, onefile_compile):
|
|
577
593
|
# This is driven by many branches on purpose and has a lot of things
|
|
578
594
|
# to deal with for LTO checks and flags, pylint: disable=too-many-branches,too-many-statements
|
|
579
595
|
|
|
@@ -615,6 +631,9 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count):
|
|
|
615
631
|
# compilation more memory hungry, but also faster.
|
|
616
632
|
env.Append(CCFLAGS="-pipe")
|
|
617
633
|
|
|
634
|
+
# gcc compiler cf_protection option
|
|
635
|
+
if env.cf_protection != "auto":
|
|
636
|
+
env.Append(CCFLAGS=["-fcf-protection=%s" % env.cf_protection])
|
|
618
637
|
# Support for clang.
|
|
619
638
|
if "clang" in env.the_cc_name:
|
|
620
639
|
env.Append(CCFLAGS=["-w"])
|
|
@@ -623,14 +642,14 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count):
|
|
|
623
642
|
# Don't export anything by default, this should create smaller executables.
|
|
624
643
|
env.Append(CCFLAGS=["-fvisibility=hidden", "-fvisibility-inlines-hidden"])
|
|
625
644
|
|
|
626
|
-
if env.debug_mode:
|
|
645
|
+
if env.debug_mode and "allow-c-warnings" not in env.experimental_flags:
|
|
627
646
|
env.Append(CCFLAGS=["-Wunused-but-set-variable"])
|
|
628
647
|
|
|
629
648
|
# Support for macOS standalone to run on older OS versions.
|
|
630
649
|
if isMacOS():
|
|
631
650
|
setEnvironmentVariable(env, "MACOSX_DEPLOYMENT_TARGET", env.macos_min_version)
|
|
632
651
|
|
|
633
|
-
target_flag = "--target=%s-
|
|
652
|
+
target_flag = "--target=%s-macos%s" % (
|
|
634
653
|
env.macos_target_arch,
|
|
635
654
|
env.macos_min_version,
|
|
636
655
|
)
|
|
@@ -712,9 +731,13 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count):
|
|
|
712
731
|
# thing, and Nuitka-Python is not affected.
|
|
713
732
|
env.Append(
|
|
714
733
|
LINKFLAGS=[
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
734
|
+
(
|
|
735
|
+
"-O3"
|
|
736
|
+
if env.nuitka_python
|
|
737
|
+
or os.name == "nt"
|
|
738
|
+
or not env.static_libpython
|
|
739
|
+
else "-O2"
|
|
740
|
+
)
|
|
718
741
|
]
|
|
719
742
|
)
|
|
720
743
|
|
|
@@ -731,9 +754,13 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count):
|
|
|
731
754
|
if env.gcc_mode:
|
|
732
755
|
env.Append(
|
|
733
756
|
CCFLAGS=[
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
757
|
+
(
|
|
758
|
+
"-O3"
|
|
759
|
+
if env.nuitka_python
|
|
760
|
+
or os.name == "nt"
|
|
761
|
+
or not env.static_libpython
|
|
762
|
+
else "-O2"
|
|
763
|
+
)
|
|
737
764
|
]
|
|
738
765
|
)
|
|
739
766
|
elif env.msvc_mode:
|
|
@@ -758,19 +785,29 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count):
|
|
|
758
785
|
if not env.clang_mode:
|
|
759
786
|
env.Append(LINKFLAGS=["-Wl,--enable-auto-import"])
|
|
760
787
|
|
|
761
|
-
|
|
788
|
+
# Even if console is forced, for Win32 it means to specify Windows
|
|
789
|
+
# subsystem, we can still attach or create.
|
|
790
|
+
if env.console_mode in ("attach", "disable"):
|
|
791
|
+
if env.mingw_mode:
|
|
762
792
|
env.Append(LINKFLAGS=["-Wl,--subsystem,windows"])
|
|
763
|
-
|
|
764
|
-
if env.mingw_mode or env.msvc_mode:
|
|
765
|
-
if env.disable_console:
|
|
766
793
|
env.Append(CPPDEFINES=["_NUITKA_WINMAIN_ENTRY_POINT"])
|
|
794
|
+
elif env.msvc_mode:
|
|
795
|
+
env.Append(LINKFLAGS=["/SUBSYSTEM:windows"])
|
|
796
|
+
env.Append(CPPDEFINES=["_NUITKA_WINMAIN_ENTRY_POINT"])
|
|
797
|
+
|
|
798
|
+
if env.console_mode == "attach" and os.name == "nt":
|
|
799
|
+
env.Append(CPPDEFINES=["_NUITKA_ATTACH_CONSOLE_WINDOW"])
|
|
800
|
+
|
|
801
|
+
if env.console_mode == "hide" and os.name == "nt":
|
|
802
|
+
env.Append(CPPDEFINES=["_NUITKA_HIDE_CONSOLE_WINDOW"])
|
|
803
|
+
env.Append(LIBS=["User32"])
|
|
767
804
|
|
|
768
|
-
# Avoid dependency on MinGW libraries
|
|
805
|
+
# Avoid dependency on MinGW libraries, spell-checker: ignore libgcc
|
|
769
806
|
if env.mingw_mode and not env.clang_mode:
|
|
770
807
|
env.Append(LINKFLAGS=["-static-libgcc"])
|
|
771
808
|
|
|
772
809
|
# MinGW64 for 64 bits needs this due to CPython bugs.
|
|
773
|
-
if env.mingw_mode and env.target_arch == "x86_64":
|
|
810
|
+
if env.mingw_mode and env.target_arch == "x86_64" and env.python_version < (3, 12):
|
|
774
811
|
env.Append(CPPDEFINES=["MS_WIN64"])
|
|
775
812
|
|
|
776
813
|
# For shell API usage to lookup app folders we need this. Note that on Windows ARM
|
|
@@ -783,6 +820,24 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count):
|
|
|
783
820
|
if isFedoraBasedLinux():
|
|
784
821
|
env.Append(CCFLAGS=["-fPIC"])
|
|
785
822
|
|
|
823
|
+
# We use zlib for crc32 functionality
|
|
824
|
+
zlib_inline_copy_dir = os.path.join(env.nuitka_src, "inline_copy", "zlib")
|
|
825
|
+
if os.path.exists(os.path.join(zlib_inline_copy_dir, "crc32.c")):
|
|
826
|
+
env.Append(
|
|
827
|
+
CPPPATH=[
|
|
828
|
+
zlib_inline_copy_dir,
|
|
829
|
+
],
|
|
830
|
+
)
|
|
831
|
+
else:
|
|
832
|
+
# TODO: Should only happen for official Debian packages, and there we
|
|
833
|
+
# can use the zlib static linking maybe, but for onefile it's not easy
|
|
834
|
+
# to get it, so just use slow checksum for now.
|
|
835
|
+
if onefile_compile:
|
|
836
|
+
env.Append(CPPDEFINES=["_NUITKA_USE_OWN_CRC32"])
|
|
837
|
+
else:
|
|
838
|
+
env.Append(CPPDEFINES=["_NUITKA_USE_SYSTEM_CRC32"])
|
|
839
|
+
env.Append(LIBS="z")
|
|
840
|
+
|
|
786
841
|
|
|
787
842
|
def _enablePgoSettings(env, pgo_mode):
|
|
788
843
|
if pgo_mode == "no":
|
|
@@ -907,20 +962,29 @@ version (>= 5.3)."""
|
|
|
907
962
|
)
|
|
908
963
|
|
|
909
964
|
if env.gcc_version < (5,):
|
|
910
|
-
|
|
965
|
+
if env.python_version < (3, 11):
|
|
966
|
+
scons_logger.info(
|
|
967
|
+
"The provided gcc is too old, switching to its g++ instead.",
|
|
968
|
+
mnemonic="too-old-gcc",
|
|
969
|
+
)
|
|
911
970
|
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
971
|
+
# Switch to g++ from gcc then if possible, when C11 mode is false.
|
|
972
|
+
the_gpp_compiler = os.path.join(
|
|
973
|
+
os.path.dirname(env.the_compiler),
|
|
974
|
+
os.path.basename(env.the_compiler).replace("gcc", "g++"),
|
|
975
|
+
)
|
|
917
976
|
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
977
|
+
if getExecutablePath(the_gpp_compiler, env=env):
|
|
978
|
+
env.the_compiler = the_gpp_compiler
|
|
979
|
+
env.the_cc_name = env.the_cc_name.replace("gcc", "g++")
|
|
980
|
+
else:
|
|
981
|
+
scons_logger.sysexit(
|
|
982
|
+
"Error, your gcc is too old for C11 support, and no related g++ to workaround that is found."
|
|
983
|
+
)
|
|
921
984
|
else:
|
|
922
985
|
scons_logger.sysexit(
|
|
923
|
-
"Error, your gcc is too old for C11 support,
|
|
986
|
+
"Error, your gcc is too old for C11 support, install a newer one.",
|
|
987
|
+
mnemonic="too-old-gcc",
|
|
924
988
|
)
|
|
925
989
|
|
|
926
990
|
|
|
@@ -929,6 +993,25 @@ def reportCCompiler(env, context, output_func):
|
|
|
929
993
|
|
|
930
994
|
if env.the_cc_name == "cl":
|
|
931
995
|
cc_output = "%s %s" % (env.the_cc_name, getMsvcVersionString(env))
|
|
996
|
+
elif isGccName(env.the_cc_name):
|
|
997
|
+
if env.gcc_version is None:
|
|
998
|
+
env.gcc_version = myDetectVersion(env, env.the_compiler)
|
|
999
|
+
|
|
1000
|
+
cc_output = "%s %s" % (
|
|
1001
|
+
env.the_cc_name,
|
|
1002
|
+
".".join(str(d) for d in env.gcc_version),
|
|
1003
|
+
)
|
|
1004
|
+
elif isClangName(env.the_cc_name):
|
|
1005
|
+
clang_version = myDetectVersion(env, env.the_cc_name)
|
|
1006
|
+
if clang_version is None:
|
|
1007
|
+
clang_version = "not found"
|
|
1008
|
+
else:
|
|
1009
|
+
clang_version = ".".join(str(d) for d in clang_version)
|
|
1010
|
+
|
|
1011
|
+
cc_output = "%s %s" % (
|
|
1012
|
+
env.the_cc_name,
|
|
1013
|
+
clang_version,
|
|
1014
|
+
)
|
|
932
1015
|
else:
|
|
933
1016
|
cc_output = env.the_cc_name
|
|
934
1017
|
|
|
@@ -966,3 +1049,19 @@ def importEnvironmentVariableSettings(env):
|
|
|
966
1049
|
"Scons: Inherited LDFLAGS='%s' variable." % os.environ["LDFLAGS"]
|
|
967
1050
|
)
|
|
968
1051
|
env.Append(LINKFLAGS=os.environ["LDFLAGS"].split())
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1055
|
+
# integrates with CPython, but also works on its own.
|
|
1056
|
+
#
|
|
1057
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1058
|
+
# you may not use this file except in compliance with the License.
|
|
1059
|
+
# You may obtain a copy of the License at
|
|
1060
|
+
#
|
|
1061
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1062
|
+
#
|
|
1063
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1064
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1065
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1066
|
+
# See the License for the specific language governing permissions and
|
|
1067
|
+
# limitations under the License.
|
nuitka/build/SconsHacks.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
|
""" Hacks for scons that we apply.
|
|
19
5
|
|
|
20
6
|
We block some tools from the standard scan, there is e.g. no need to ask
|
|
@@ -26,7 +12,6 @@ version.
|
|
|
26
12
|
|
|
27
13
|
"""
|
|
28
14
|
|
|
29
|
-
|
|
30
15
|
import os
|
|
31
16
|
import re
|
|
32
17
|
|
|
@@ -93,6 +78,7 @@ def _myDetectVersion(cc):
|
|
|
93
78
|
command = (
|
|
94
79
|
cc,
|
|
95
80
|
"-dumpversion",
|
|
81
|
+
"-dumpfullversion",
|
|
96
82
|
)
|
|
97
83
|
else:
|
|
98
84
|
command = (
|
|
@@ -156,7 +142,11 @@ def myDetect(self, progs):
|
|
|
156
142
|
return None
|
|
157
143
|
|
|
158
144
|
# Note: Actually, with our inline copy, this is maybe not supposed to
|
|
159
|
-
# happen at all
|
|
145
|
+
# happen a lot at all. It's a bit hard to pass debug flag to here, or
|
|
146
|
+
# else we could assert it.
|
|
147
|
+
# for p in progs:
|
|
148
|
+
# if p not in ("x86_64-conda-linux-gnu-gcc", "gcc", "cc", "g++"):
|
|
149
|
+
# assert False, p
|
|
160
150
|
|
|
161
151
|
return orig_detect(self, progs)
|
|
162
152
|
|
|
@@ -207,3 +197,19 @@ def makeGccUseLinkerFile(source_files, module_mode, env):
|
|
|
207
197
|
tmpfile.write('"%s"\n' % filename)
|
|
208
198
|
|
|
209
199
|
tmpfile.write(env.subst("$SOURCES"))
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
203
|
+
# integrates with CPython, but also works on its own.
|
|
204
|
+
#
|
|
205
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
206
|
+
# you may not use this file except in compliance with the License.
|
|
207
|
+
# You may obtain a copy of the License at
|
|
208
|
+
#
|
|
209
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
210
|
+
#
|
|
211
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
212
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
213
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
214
|
+
# See the License for the specific language governing permissions and
|
|
215
|
+
# limitations under the License.
|