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/SconsUtils.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
|
""" Helper functions for the scons file.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -22,6 +8,7 @@
|
|
|
22
8
|
from __future__ import print_function
|
|
23
9
|
|
|
24
10
|
import os
|
|
11
|
+
import pickle
|
|
25
12
|
import shutil
|
|
26
13
|
import signal
|
|
27
14
|
import sys
|
|
@@ -30,13 +17,23 @@ from nuitka.__past__ import basestring, unicode
|
|
|
30
17
|
from nuitka.containers.OrderedDicts import OrderedDict
|
|
31
18
|
from nuitka.Tracing import scons_details_logger, scons_logger
|
|
32
19
|
from nuitka.utils.Execution import executeProcess
|
|
33
|
-
from nuitka.utils.FileOperations import
|
|
34
|
-
|
|
20
|
+
from nuitka.utils.FileOperations import (
|
|
21
|
+
changeFilenameExtension,
|
|
22
|
+
getFileContentByLine,
|
|
23
|
+
getFilenameExtension,
|
|
24
|
+
getWindowsShortPathName,
|
|
25
|
+
hasFilenameExtension,
|
|
26
|
+
isFilesystemEncodable,
|
|
27
|
+
openPickleFile,
|
|
28
|
+
openTextFile,
|
|
29
|
+
withFileLock,
|
|
30
|
+
)
|
|
31
|
+
from nuitka.utils.Utils import isLinux, isMacOS, isPosixWindows, isWin32Windows
|
|
35
32
|
|
|
36
33
|
|
|
37
34
|
def initScons():
|
|
38
35
|
# Avoid localized outputs.
|
|
39
|
-
os.environ["
|
|
36
|
+
os.environ["LC_ALL"] = "C"
|
|
40
37
|
|
|
41
38
|
def no_sync(self):
|
|
42
39
|
# That's a noop, pylint: disable=unused-argument
|
|
@@ -160,7 +157,7 @@ def prepareEnvironment(mingw_mode):
|
|
|
160
157
|
if os.path.isdir(cc_dirname):
|
|
161
158
|
addToPATH(None, cc_dirname, prefix=True)
|
|
162
159
|
|
|
163
|
-
if
|
|
160
|
+
if os.name == "nt" and isGccName(os.path.basename(os.environ["CC"])):
|
|
164
161
|
scons_details_logger.info(
|
|
165
162
|
"Environment CC seems to be a gcc, enabling mingw_mode."
|
|
166
163
|
)
|
|
@@ -176,7 +173,7 @@ def prepareEnvironment(mingw_mode):
|
|
|
176
173
|
|
|
177
174
|
|
|
178
175
|
def createEnvironment(
|
|
179
|
-
mingw_mode, msvc_version, target_arch, experimental, no_deployment
|
|
176
|
+
mingw_mode, msvc_version, target_arch, experimental, no_deployment, debug_modes
|
|
180
177
|
):
|
|
181
178
|
from SCons.Script import Environment # pylint: disable=I0021,import-error
|
|
182
179
|
|
|
@@ -210,9 +207,9 @@ def createEnvironment(
|
|
|
210
207
|
import SCons.Tool.msvc # pylint: disable=I0021,import-error
|
|
211
208
|
|
|
212
209
|
SCons.Tool.MSCommon.vc.msvc_setup_env = lambda *args: None
|
|
213
|
-
SCons.Tool.msvc.msvc_exists = (
|
|
214
|
-
|
|
215
|
-
)
|
|
210
|
+
SCons.Tool.msvc.msvc_exists = SCons.Tool.MSCommon.vc.msvc_exists = (
|
|
211
|
+
lambda *args: False
|
|
212
|
+
)
|
|
216
213
|
else:
|
|
217
214
|
# Everything else should use default, that is MSVC tools, but not MinGW64.
|
|
218
215
|
tools = ["default"]
|
|
@@ -238,10 +235,14 @@ def createEnvironment(
|
|
|
238
235
|
env.nuitka_python = getArgumentBool("nuitka_python", False)
|
|
239
236
|
env.debian_python = getArgumentBool("debian_python", False)
|
|
240
237
|
env.fedora_python = getArgumentBool("fedora_python", False)
|
|
238
|
+
env.arch_python = getArgumentBool("arch_python", False)
|
|
241
239
|
env.msys2_mingw_python = getArgumentBool("msys2_mingw_python", False)
|
|
242
240
|
env.anaconda_python = getArgumentBool("anaconda_python", False)
|
|
243
241
|
env.pyenv_python = getArgumentBool("pyenv_python", False)
|
|
244
242
|
env.apple_python = getArgumentBool("apple_python", False)
|
|
243
|
+
env.self_compiled_python_uninstalled = getArgumentBool(
|
|
244
|
+
"self_compiled_python_uninstalled", False
|
|
245
|
+
)
|
|
245
246
|
|
|
246
247
|
# Non-elf binary, important for linker settings.
|
|
247
248
|
env.noelf_mode = getArgumentBool("noelf_mode", False)
|
|
@@ -270,6 +271,9 @@ def createEnvironment(
|
|
|
270
271
|
_enableFlagSettings(env, "experimental", experimental)
|
|
271
272
|
env.experimental_flags = experimental
|
|
272
273
|
|
|
274
|
+
_enableFlagSettings(env, "debug", debug_modes)
|
|
275
|
+
env.debug_modes_flags = debug_modes
|
|
276
|
+
|
|
273
277
|
return env
|
|
274
278
|
|
|
275
279
|
|
|
@@ -286,11 +290,6 @@ def decodeData(data):
|
|
|
286
290
|
return data.decode("utf8", "backslashreplace")
|
|
287
291
|
|
|
288
292
|
|
|
289
|
-
# Windows target mode: Compile for Windows. Used to be an option, but we
|
|
290
|
-
# no longer cross compile this way.
|
|
291
|
-
win_target = os.name == "nt"
|
|
292
|
-
|
|
293
|
-
|
|
294
293
|
def getExecutablePath(filename, env):
|
|
295
294
|
"""Find an execute in either normal PATH, or Scons detected PATH."""
|
|
296
295
|
|
|
@@ -303,7 +302,7 @@ def getExecutablePath(filename, env):
|
|
|
303
302
|
filename = env[filename[1:]]
|
|
304
303
|
|
|
305
304
|
# Append ".exe" suffix on Windows if not already present.
|
|
306
|
-
if
|
|
305
|
+
if os.name == "nt" and not filename.lower().endswith(".exe"):
|
|
307
306
|
filename += ".exe"
|
|
308
307
|
|
|
309
308
|
# Either look at the initial "PATH" as given from the outside or look at the
|
|
@@ -321,7 +320,7 @@ def getExecutablePath(filename, env):
|
|
|
321
320
|
|
|
322
321
|
full = os.path.normpath(os.path.join(path_element, filename))
|
|
323
322
|
|
|
324
|
-
if os.path.
|
|
323
|
+
if os.path.isfile(full):
|
|
325
324
|
return full
|
|
326
325
|
|
|
327
326
|
return None
|
|
@@ -365,9 +364,9 @@ def addToPATH(env, dirname, prefix):
|
|
|
365
364
|
setEnvironmentVariable(env, "PATH", os.pathsep.join(path_value))
|
|
366
365
|
|
|
367
366
|
|
|
368
|
-
def writeSconsReport(env,
|
|
367
|
+
def writeSconsReport(env, target):
|
|
369
368
|
with openTextFile(
|
|
370
|
-
|
|
369
|
+
_getSconsReportFilename(env.source_dir), "w", encoding="utf8"
|
|
371
370
|
) as report_file:
|
|
372
371
|
# We are friends to get at this debug info, pylint: disable=protected-access
|
|
373
372
|
for key, value in sorted(env._dict.items()):
|
|
@@ -396,13 +395,33 @@ def writeSconsReport(env, source_dir):
|
|
|
396
395
|
print("clangcl_mode=%s" % env.clangcl_mode, file=report_file)
|
|
397
396
|
|
|
398
397
|
print("PATH=%s" % os.environ["PATH"], file=report_file)
|
|
398
|
+
print("TARGET=%s" % target[0].abspath, file=report_file)
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
def reportSconsUnexpectedOutput(env, cmdline, stdout, stderr):
|
|
402
|
+
with withFileLock("writing scons error report"):
|
|
403
|
+
file_handle, pickler = openPickleFile(
|
|
404
|
+
_getSconsErrorReportFilename(env.source_dir), "ab", protocol=2
|
|
405
|
+
)
|
|
406
|
+
pickler.dump((cmdline, stdout, stderr))
|
|
407
|
+
file_handle.close()
|
|
399
408
|
|
|
400
409
|
|
|
401
410
|
_scons_reports = {}
|
|
411
|
+
_scons_error_reports = {}
|
|
402
412
|
|
|
403
413
|
|
|
404
414
|
def flushSconsReports():
|
|
405
415
|
_scons_reports.clear()
|
|
416
|
+
_scons_error_reports.clear()
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
def _getSconsReportFilename(source_dir):
|
|
420
|
+
return os.path.join(source_dir, "scons-report.txt")
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
def _getSconsErrorReportFilename(source_dir):
|
|
424
|
+
return os.path.join(source_dir, "scons-error-report.txt")
|
|
406
425
|
|
|
407
426
|
|
|
408
427
|
def readSconsReport(source_dir):
|
|
@@ -410,7 +429,7 @@ def readSconsReport(source_dir):
|
|
|
410
429
|
scons_report = OrderedDict()
|
|
411
430
|
|
|
412
431
|
for line in getFileContentByLine(
|
|
413
|
-
|
|
432
|
+
_getSconsReportFilename(source_dir), encoding="utf8"
|
|
414
433
|
):
|
|
415
434
|
if "=" not in line:
|
|
416
435
|
continue
|
|
@@ -428,6 +447,47 @@ def getSconsReportValue(source_dir, key):
|
|
|
428
447
|
return readSconsReport(source_dir).get(key)
|
|
429
448
|
|
|
430
449
|
|
|
450
|
+
def readSconsErrorReport(source_dir):
|
|
451
|
+
if source_dir not in _scons_error_reports:
|
|
452
|
+
scons_error_report = OrderedDict()
|
|
453
|
+
|
|
454
|
+
scons_error_report_filename = _getSconsErrorReportFilename(source_dir)
|
|
455
|
+
if os.path.exists(scons_error_report_filename):
|
|
456
|
+
file_handle = openTextFile(scons_error_report_filename, "rb")
|
|
457
|
+
try:
|
|
458
|
+
while True:
|
|
459
|
+
try:
|
|
460
|
+
cmd, stdout, stderr = pickle.load(file_handle)
|
|
461
|
+
except EOFError:
|
|
462
|
+
break
|
|
463
|
+
|
|
464
|
+
if type(cmd) in (tuple, list):
|
|
465
|
+
cmd = " ".join(cmd)
|
|
466
|
+
|
|
467
|
+
if cmd not in scons_error_report:
|
|
468
|
+
scons_error_report[cmd] = ["", ""]
|
|
469
|
+
|
|
470
|
+
if type(stdout) in (tuple, list):
|
|
471
|
+
stdout = "\n".join(stdout)
|
|
472
|
+
|
|
473
|
+
if type(stderr) in (tuple, list):
|
|
474
|
+
stderr = "\n".join(stderr)
|
|
475
|
+
|
|
476
|
+
if stdout:
|
|
477
|
+
stdout = stdout.replace("\n\r", "\n")
|
|
478
|
+
scons_error_report[cmd][0] += stdout
|
|
479
|
+
if stderr:
|
|
480
|
+
stderr = stderr.replace("\n\r", "\n")
|
|
481
|
+
scons_error_report[cmd][1] += stderr
|
|
482
|
+
|
|
483
|
+
finally:
|
|
484
|
+
file_handle.close()
|
|
485
|
+
|
|
486
|
+
_scons_error_reports[source_dir] = scons_error_report
|
|
487
|
+
|
|
488
|
+
return _scons_error_reports[source_dir]
|
|
489
|
+
|
|
490
|
+
|
|
431
491
|
def addClangClPathFromMSVC(env):
|
|
432
492
|
cl_exe = getExecutablePath("cl", env=env)
|
|
433
493
|
|
|
@@ -483,7 +543,11 @@ def isGccName(cc_name):
|
|
|
483
543
|
|
|
484
544
|
|
|
485
545
|
def isClangName(cc_name):
|
|
486
|
-
return "clang" in cc_name and "-cl" not in cc_name
|
|
546
|
+
return ("clang" in cc_name and "-cl" not in cc_name) or isZigName(cc_name)
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
def isZigName(cc_name):
|
|
550
|
+
return "zig" in cc_name
|
|
487
551
|
|
|
488
552
|
|
|
489
553
|
def cheapCopyFile(src, dst):
|
|
@@ -491,7 +555,7 @@ def cheapCopyFile(src, dst):
|
|
|
491
555
|
if not os.path.exists(dirname):
|
|
492
556
|
os.makedirs(dirname)
|
|
493
557
|
|
|
494
|
-
if
|
|
558
|
+
if os.name == "nt":
|
|
495
559
|
# Windows has symlinks these days, but they do not integrate well
|
|
496
560
|
# with Python2 at least. So make a copy in any case.
|
|
497
561
|
if os.path.exists(dst):
|
|
@@ -524,11 +588,13 @@ def cheapCopyFile(src, dst):
|
|
|
524
588
|
shutil.copy(src, dst)
|
|
525
589
|
|
|
526
590
|
|
|
527
|
-
def provideStaticSourceFile(
|
|
528
|
-
source_filename = os.path.join(nuitka_src, "static_src", sub_path)
|
|
529
|
-
target_filename = os.path.join(
|
|
591
|
+
def provideStaticSourceFile(env, sub_path, c11_mode):
|
|
592
|
+
source_filename = os.path.join(env.nuitka_src, "static_src", sub_path)
|
|
593
|
+
target_filename = os.path.join(
|
|
594
|
+
env.source_dir, "static_src", os.path.basename(sub_path)
|
|
595
|
+
)
|
|
530
596
|
|
|
531
|
-
if target_filename
|
|
597
|
+
if hasFilenameExtension(target_filename, ".c") and not c11_mode:
|
|
532
598
|
target_filename += "pp" # .cpp suffix then.
|
|
533
599
|
|
|
534
600
|
cheapCopyFile(source_filename, target_filename)
|
|
@@ -545,32 +611,40 @@ def scanSourceDir(env, dirname, plugins):
|
|
|
545
611
|
# name.
|
|
546
612
|
added_path = False
|
|
547
613
|
|
|
548
|
-
for
|
|
549
|
-
if
|
|
614
|
+
for filename_base in sorted(os.listdir(dirname)):
|
|
615
|
+
if filename_base.endswith(".h") and plugins and not added_path:
|
|
550
616
|
# Adding path for source paths on the fly, spell-checker: ignore cpppath
|
|
551
617
|
env.Append(CPPPATH=[dirname])
|
|
552
618
|
added_path = True
|
|
553
619
|
|
|
554
620
|
# Only C files are of interest here.
|
|
555
|
-
if not
|
|
556
|
-
("
|
|
557
|
-
):
|
|
621
|
+
if not hasFilenameExtension(
|
|
622
|
+
filename_base, (".c", ".cpp")
|
|
623
|
+
) or not filename_base.startswith(("module.", "__", "plugin.")):
|
|
558
624
|
continue
|
|
559
625
|
|
|
560
|
-
filename = os.path.join(dirname,
|
|
626
|
+
filename = os.path.join(dirname, filename_base)
|
|
627
|
+
|
|
628
|
+
target_filename = filename
|
|
561
629
|
|
|
562
|
-
|
|
630
|
+
if isWin32Windows() and not isFilesystemEncodable(filename_base):
|
|
631
|
+
target_filename = getWindowsShortPathName(target_filename)
|
|
632
|
+
|
|
633
|
+
# Avoid ".C" suffixes, that MinGW64 wouldn't recognize.
|
|
634
|
+
target_filename = changeFilenameExtension(
|
|
635
|
+
target_filename, getFilenameExtension(target_filename).lower()
|
|
636
|
+
)
|
|
563
637
|
|
|
564
638
|
# We pretend to use C++ if no C11 compiler is present.
|
|
565
639
|
if env.c11_mode:
|
|
566
|
-
yield
|
|
640
|
+
yield target_filename
|
|
567
641
|
else:
|
|
568
|
-
if filename
|
|
569
|
-
|
|
642
|
+
if hasFilenameExtension(filename, ".c"):
|
|
643
|
+
target_filename += "pp" # .cpp" suffix then
|
|
570
644
|
|
|
571
|
-
os.rename(filename,
|
|
645
|
+
os.rename(filename, target_filename)
|
|
572
646
|
|
|
573
|
-
yield
|
|
647
|
+
yield target_filename
|
|
574
648
|
|
|
575
649
|
|
|
576
650
|
def makeCLiteral(value):
|
|
@@ -592,6 +666,8 @@ def createDefinitionsFile(source_dir, filename, definitions):
|
|
|
592
666
|
continue
|
|
593
667
|
|
|
594
668
|
if type(value) is int or key.endswith(("_BOOL", "_INT")):
|
|
669
|
+
if type(value) is bool:
|
|
670
|
+
value = int(value)
|
|
595
671
|
f.write("#define %s %s\n" % (key, value))
|
|
596
672
|
elif type(value) in (str, unicode) and key.endswith("_WIDE_STRING"):
|
|
597
673
|
f.write("#define %s L%s\n" % (key, makeCLiteral(value)))
|
|
@@ -610,7 +686,7 @@ def getMsvcVersion(env):
|
|
|
610
686
|
|
|
611
687
|
# TODO: Workaround for prompt being used.
|
|
612
688
|
if value is None:
|
|
613
|
-
value = os.
|
|
689
|
+
value = os.getenv("VCToolsVersion", "14.3").rsplit(".", 1)[0]
|
|
614
690
|
|
|
615
691
|
value = value.replace("exp", "")
|
|
616
692
|
return tuple((int(d) for d in value.split(".")))
|
|
@@ -665,7 +741,7 @@ def getLinkerArch(target_arch, mingw_mode):
|
|
|
665
741
|
global _linker_arch_determined, _linker_arch
|
|
666
742
|
|
|
667
743
|
if not _linker_arch_determined:
|
|
668
|
-
if
|
|
744
|
+
if os.name == "nt":
|
|
669
745
|
if target_arch == "x86_64":
|
|
670
746
|
_linker_arch = "pei-x86-64"
|
|
671
747
|
elif target_arch == "arm64":
|
|
@@ -771,3 +847,19 @@ def addBinaryBlobSection(env, blob_filename, section_name):
|
|
|
771
847
|
)
|
|
772
848
|
else:
|
|
773
849
|
assert False
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
853
|
+
# integrates with CPython, but also works on its own.
|
|
854
|
+
#
|
|
855
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
856
|
+
# you may not use this file except in compliance with the License.
|
|
857
|
+
# You may obtain a copy of the License at
|
|
858
|
+
#
|
|
859
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
860
|
+
#
|
|
861
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
862
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
863
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
864
|
+
# See the License for the specific language governing permissions and
|
|
865
|
+
# limitations under the License.
|
nuitka/build/__init__.py
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Dummy file to make this directory a package. """
|
|
5
|
+
|
|
3
6
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
7
|
# integrates with CPython, but also works on its own.
|
|
5
8
|
#
|
|
@@ -14,5 +17,3 @@
|
|
|
14
17
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
18
|
# See the License for the specific language governing permissions and
|
|
16
19
|
# limitations under the License.
|
|
17
|
-
#
|
|
18
|
-
""" Dummy file to make this directory a package. """
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
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
|
+
|
|
18
3
|
#ifndef __NUITKA_ALLOCATOR_H__
|
|
19
4
|
#define __NUITKA_ALLOCATOR_H__
|
|
20
5
|
|
|
@@ -28,7 +13,40 @@
|
|
|
28
13
|
#define _PyObject_GC_IS_TRACKED(obj) (1)
|
|
29
14
|
#endif
|
|
30
15
|
|
|
31
|
-
|
|
16
|
+
// The full API is available for Python 3.5 only
|
|
17
|
+
#if PYTHON_VERSION >= 0x350 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_ALLOCATORS)
|
|
18
|
+
extern void *(*python_obj_malloc)(void *ctx, size_t size);
|
|
19
|
+
extern void *(*python_mem_malloc)(void *ctx, size_t size);
|
|
20
|
+
extern void *(*python_mem_calloc)(void *ctx, size_t nelem, size_t elsize);
|
|
21
|
+
|
|
22
|
+
#if defined(Py_DEBUG)
|
|
23
|
+
extern void *python_obj_ctx;
|
|
24
|
+
extern void *python_mem_ctx;
|
|
25
|
+
#else
|
|
26
|
+
#define python_obj_ctx (NULL)
|
|
27
|
+
#define python_mem_ctx (NULL)
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
extern void initNuitkaAllocators(void);
|
|
31
|
+
|
|
32
|
+
// Our version of "PyObject_Malloc".
|
|
33
|
+
NUITKA_MAY_BE_UNUSED static void *NuitkaObject_Malloc(size_t size) { return python_obj_malloc(python_obj_ctx, size); }
|
|
34
|
+
|
|
35
|
+
// Our version of "PyMem_Malloc".
|
|
36
|
+
NUITKA_MAY_BE_UNUSED static void *NuitkaMem_Malloc(size_t size) { return python_mem_malloc(python_mem_ctx, size); }
|
|
37
|
+
|
|
38
|
+
// Our version of "PyMem_Calloc".
|
|
39
|
+
NUITKA_MAY_BE_UNUSED static void *NuitkaMem_Calloc(size_t nelem, size_t elsize) {
|
|
40
|
+
return python_mem_calloc(python_mem_ctx, nelem, elsize);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
#else
|
|
44
|
+
#define NuitkaObject_Malloc(size) PyObject_MALLOC(size)
|
|
45
|
+
#define NuitkaMem_Malloc(size) PyMem_MALLOC(size)
|
|
46
|
+
#define NuitkaMem_Calloc(elem, elsize) PyMem_CALLOC(elem, elsize)
|
|
47
|
+
#endif
|
|
48
|
+
|
|
49
|
+
#if PYTHON_VERSION >= 0x380 && PYTHON_VERSION < 0x3c0
|
|
32
50
|
// Need to make Py_DECREF a macro again that doesn't call an API
|
|
33
51
|
static inline void _Nuitka_Py_DECREF(PyObject *ob) {
|
|
34
52
|
assert(ob != NULL && ob->ob_refcnt >= 0);
|
|
@@ -86,6 +104,18 @@ static inline void _Nuitka_Py_XDECREF(PyObject *ob) {
|
|
|
86
104
|
|
|
87
105
|
#endif
|
|
88
106
|
|
|
107
|
+
// For Python3.12, avoid reference management if value is known to be immortal.
|
|
108
|
+
#if PYTHON_VERSION < 0x3c0
|
|
109
|
+
#define Py_INCREF_IMMORTAL(value) Py_INCREF(value)
|
|
110
|
+
#define Py_DECREF_IMMORTAL(value) Py_DECREF(value)
|
|
111
|
+
#elif defined(_NUITKA_DEBUG_DEBUG_IMMORTAL)
|
|
112
|
+
#define Py_INCREF_IMMORTAL(value) assert(Py_REFCNT(value) == _Py_IMMORTAL_REFCNT)
|
|
113
|
+
#define Py_DECREF_IMMORTAL(value) assert(Py_REFCNT(value) == _Py_IMMORTAL_REFCNT)
|
|
114
|
+
#else
|
|
115
|
+
#define Py_INCREF_IMMORTAL(value)
|
|
116
|
+
#define Py_DECREF_IMMORTAL(value)
|
|
117
|
+
#endif
|
|
118
|
+
|
|
89
119
|
// Macro introduced with Python3.9 or higher, make it generally available.
|
|
90
120
|
#ifndef Py_SET_TYPE
|
|
91
121
|
static inline void _Py_SET_TYPE(PyObject *ob, PyTypeObject *type) { ob->ob_type = type; }
|
|
@@ -95,11 +125,25 @@ static inline void _Py_SET_TYPE(PyObject *ob, PyTypeObject *type) { ob->ob_type
|
|
|
95
125
|
// After Python 3.9 this was moved into the DLL potentially, making
|
|
96
126
|
// it expensive to call.
|
|
97
127
|
#if PYTHON_VERSION >= 0x390
|
|
98
|
-
static void
|
|
128
|
+
static inline void Nuitka_Py_NewReferenceNoTotal(PyObject *op) { Py_SET_REFCNT(op, 1); }
|
|
129
|
+
static inline void Nuitka_Py_NewReference(PyObject *op) {
|
|
99
130
|
#ifdef Py_REF_DEBUG
|
|
131
|
+
#if PYTHON_VERSION < 0x3c0
|
|
100
132
|
_Py_RefTotal++;
|
|
133
|
+
#else
|
|
134
|
+
_PyInterpreterState_GET()->object_state.reftotal++;
|
|
135
|
+
#endif
|
|
136
|
+
#endif
|
|
137
|
+
#if !defined(Py_GIL_DISABLED)
|
|
138
|
+
op->ob_refcnt = 1;
|
|
139
|
+
#else
|
|
140
|
+
op->ob_tid = _Py_ThreadId();
|
|
141
|
+
op->_padding = 0;
|
|
142
|
+
op->ob_mutex = (PyMutex){0};
|
|
143
|
+
op->ob_gc_bits = 0;
|
|
144
|
+
op->ob_ref_local = 1;
|
|
145
|
+
op->ob_ref_shared = 0;
|
|
101
146
|
#endif
|
|
102
|
-
Py_SET_REFCNT(op, 1);
|
|
103
147
|
}
|
|
104
148
|
#else
|
|
105
149
|
#define Nuitka_Py_NewReference(op) _Py_NewReference(op)
|
|
@@ -126,7 +170,7 @@ static PyObject *Nuitka_PyType_AllocNoTrackVar(PyTypeObject *type, Py_ssize_t ni
|
|
|
126
170
|
const size_t pre_size = Nuitka_PyType_PreHeaderSize(type);
|
|
127
171
|
assert(pre_size == sizeof(PyGC_Head));
|
|
128
172
|
|
|
129
|
-
char *alloc = (char *)
|
|
173
|
+
char *alloc = (char *)NuitkaObject_Malloc(size + pre_size);
|
|
130
174
|
assert(alloc);
|
|
131
175
|
PyObject *obj = (PyObject *)(alloc + pre_size);
|
|
132
176
|
|
|
@@ -161,7 +205,7 @@ static PyObject *Nuitka_PyType_AllocNoTrack(PyTypeObject *type) {
|
|
|
161
205
|
// TODO: This ought to be static for all our types, so remove it as a call.
|
|
162
206
|
const size_t pre_size = Nuitka_PyType_PreHeaderSize(type);
|
|
163
207
|
|
|
164
|
-
char *alloc = (char *)
|
|
208
|
+
char *alloc = (char *)NuitkaObject_Malloc(_PyObject_SIZE(type) + pre_size);
|
|
165
209
|
assert(alloc);
|
|
166
210
|
PyObject *obj = (PyObject *)(alloc + pre_size);
|
|
167
211
|
|
|
@@ -239,4 +283,43 @@ NUITKA_MAY_BE_UNUSED static void *Nuitka_GC_New(PyTypeObject *type) {
|
|
|
239
283
|
return op;
|
|
240
284
|
}
|
|
241
285
|
|
|
286
|
+
static bool inline Nuitka_GC_IS_TRACKED_X(PyObject *object) {
|
|
287
|
+
return object == NULL || _PyObject_GC_IS_TRACKED(object);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// To allow us marking some of our own values as immortal.
|
|
291
|
+
#if PYTHON_VERSION >= 0x3c0
|
|
292
|
+
static void inline Py_SET_REFCNT_IMMORTAL(PyObject *object) {
|
|
293
|
+
// Normally done only with 3.13, but it makes sense to do this.
|
|
294
|
+
if (_PyObject_IS_GC(object) && _PyObject_GC_IS_TRACKED(object)) {
|
|
295
|
+
Nuitka_GC_UnTrack(object);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
#ifdef Py_GIL_DISABLED
|
|
299
|
+
object->ob_tid = _Py_UNOWNED_TID;
|
|
300
|
+
object->ob_ref_local = _Py_IMMORTAL_REFCNT_LOCAL;
|
|
301
|
+
object->ob_ref_shared = 0;
|
|
302
|
+
#else
|
|
303
|
+
object->ob_refcnt = _Py_IMMORTAL_REFCNT;
|
|
304
|
+
#endif
|
|
305
|
+
}
|
|
306
|
+
#else
|
|
307
|
+
#define Py_SET_REFCNT_IMMORTAL(object)
|
|
308
|
+
#endif
|
|
309
|
+
|
|
242
310
|
#endif
|
|
311
|
+
|
|
312
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
313
|
+
// integrates with CPython, but also works on its own.
|
|
314
|
+
//
|
|
315
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
316
|
+
// you may not use this file except in compliance with the License.
|
|
317
|
+
// You may obtain a copy of the License at
|
|
318
|
+
//
|
|
319
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
320
|
+
//
|
|
321
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
322
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
323
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
324
|
+
// See the License for the specific language governing permissions and
|
|
325
|
+
// limitations under the License.
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
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
|
+
|
|
18
3
|
#ifndef __NUITKA_BUILTINS_H__
|
|
19
4
|
#define __NUITKA_BUILTINS_H__
|
|
20
5
|
|
|
@@ -95,3 +80,18 @@ NUITKA_MAY_BE_UNUSED static void Nuitka_SysSetObject(char const *name, PyObject
|
|
|
95
80
|
}
|
|
96
81
|
|
|
97
82
|
#endif
|
|
83
|
+
|
|
84
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
85
|
+
// integrates with CPython, but also works on its own.
|
|
86
|
+
//
|
|
87
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
88
|
+
// you may not use this file except in compliance with the License.
|
|
89
|
+
// You may obtain a copy of the License at
|
|
90
|
+
//
|
|
91
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
92
|
+
//
|
|
93
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
94
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
95
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
96
|
+
// See the License for the specific language governing permissions and
|
|
97
|
+
// limitations under the License.
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
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
|
+
|
|
18
3
|
#ifndef __NUITKA_CALLING_H__
|
|
19
4
|
#define __NUITKA_CALLING_H__
|
|
20
5
|
|
|
@@ -26,7 +11,7 @@
|
|
|
26
11
|
// For exception test formatting and call code mostly.
|
|
27
12
|
extern char const *GET_CALLABLE_NAME(PyObject *object);
|
|
28
13
|
extern char const *GET_CALLABLE_DESC(PyObject *object);
|
|
29
|
-
extern char const *GET_CLASS_NAME(PyObject *
|
|
14
|
+
extern char const *GET_CLASS_NAME(PyObject *class_object);
|
|
30
15
|
extern char const *GET_INSTANCE_CLASS_NAME(PyThreadState *tstate, PyObject *instance);
|
|
31
16
|
|
|
32
17
|
// Also used in generated helper code.
|
|
@@ -121,3 +106,18 @@ extern void formatCannotInstantiateAbstractClass(PyThreadState *tstate, PyTypeOb
|
|
|
121
106
|
#include "nuitka/helper/calling_generated.h"
|
|
122
107
|
|
|
123
108
|
#endif
|
|
109
|
+
|
|
110
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
111
|
+
// integrates with CPython, but also works on its own.
|
|
112
|
+
//
|
|
113
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
114
|
+
// you may not use this file except in compliance with the License.
|
|
115
|
+
// You may obtain a copy of the License at
|
|
116
|
+
//
|
|
117
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
118
|
+
//
|
|
119
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
120
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
121
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
122
|
+
// See the License for the specific language governing permissions and
|
|
123
|
+
// limitations under the License.
|