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
|
@@ -1,20 +1,4 @@
|
|
|
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
|
|
18
2
|
|
|
19
3
|
/* This file is included from another C file, help IDEs to still parse it on its own. */
|
|
20
4
|
#ifdef __IDE_ONLY__
|
|
@@ -49,12 +33,12 @@ static inline PyDictValues *_Nuitka_PyDict_new_values(Py_ssize_t size) {
|
|
|
49
33
|
Py_ssize_t values_size = sizeof(PyObject *) * size;
|
|
50
34
|
|
|
51
35
|
#if PYTHON_VERSION < 0x3b0
|
|
52
|
-
return (PyDictValues *)
|
|
36
|
+
return (PyDictValues *)NuitkaMem_Malloc(values_size);
|
|
53
37
|
#else
|
|
54
38
|
// With Python3.11 or higher a prefix is allocated too.
|
|
55
39
|
size_t prefix_size = _Py_SIZE_ROUND_UP(size + 2, sizeof(PyObject *));
|
|
56
40
|
size_t n = prefix_size + values_size;
|
|
57
|
-
uint8_t *mem = (uint8_t *)
|
|
41
|
+
uint8_t *mem = (uint8_t *)NuitkaMem_Malloc(n);
|
|
58
42
|
|
|
59
43
|
assert(mem != NULL);
|
|
60
44
|
|
|
@@ -65,22 +49,26 @@ static inline PyDictValues *_Nuitka_PyDict_new_values(Py_ssize_t size) {
|
|
|
65
49
|
#endif
|
|
66
50
|
}
|
|
67
51
|
|
|
68
|
-
#if NUITKA_DICT_HAS_FREELIST
|
|
69
|
-
static struct _Py_dict_state *_Nuitka_Py_get_dict_state(void) {
|
|
70
|
-
PyInterpreterState *interp = _PyInterpreterState_GET();
|
|
71
|
-
return &interp->dict_state;
|
|
72
|
-
}
|
|
73
|
-
#endif
|
|
74
|
-
|
|
75
52
|
#if PYTHON_VERSION >= 0x300
|
|
76
|
-
static PyDictObject *_Nuitka_AllocatePyDictObject(
|
|
53
|
+
static PyDictObject *_Nuitka_AllocatePyDictObject(PyThreadState *tstate) {
|
|
77
54
|
PyDictObject *result_mp;
|
|
78
55
|
|
|
79
56
|
#if NUITKA_DICT_HAS_FREELIST
|
|
80
|
-
|
|
57
|
+
// This is the CPython name, spell-checker: ignore numfree
|
|
58
|
+
|
|
59
|
+
#if PYTHON_VERSION < 0x3d0
|
|
60
|
+
PyDictObject **items = tstate->interp->dict_state.free_list;
|
|
61
|
+
int *numfree = &tstate->interp->dict_state.numfree;
|
|
62
|
+
#else
|
|
63
|
+
struct _Py_object_freelists *freelists = _Nuitka_object_freelists_GET(tstate);
|
|
64
|
+
struct _Py_dict_freelist *state = &freelists->dicts;
|
|
65
|
+
PyDictObject **items = state->items;
|
|
66
|
+
int *numfree = &state->numfree;
|
|
67
|
+
#endif
|
|
81
68
|
|
|
82
|
-
if (
|
|
83
|
-
|
|
69
|
+
if (*numfree) {
|
|
70
|
+
(*numfree) -= 1;
|
|
71
|
+
result_mp = items[*numfree];
|
|
84
72
|
|
|
85
73
|
Nuitka_Py_NewReference((PyObject *)result_mp);
|
|
86
74
|
|
|
@@ -96,6 +84,38 @@ static PyDictObject *_Nuitka_AllocatePyDictObject(void) {
|
|
|
96
84
|
}
|
|
97
85
|
#endif
|
|
98
86
|
|
|
87
|
+
#if PYTHON_VERSION >= 0x360
|
|
88
|
+
static PyDictKeysObject *_Nuitka_AllocatePyDictKeysObject(PyThreadState *tstate, Py_ssize_t keys_size) {
|
|
89
|
+
// CPython names, spell-checker: ignore numfree,dictkeys
|
|
90
|
+
PyDictKeysObject *dk;
|
|
91
|
+
|
|
92
|
+
// TODO: Cannot always use cached objects. Need to also consider
|
|
93
|
+
// "log2_size == PyDict_LOG_MINSIZE && unicode" as a criterion,
|
|
94
|
+
// seems it can only be used for the smallest keys type.
|
|
95
|
+
#if NUITKA_DICT_HAS_FREELIST && 0
|
|
96
|
+
#if PYTHON_VERSION < 0x3d0
|
|
97
|
+
PyDictKeysObject **items = tstate->interp->dict_state.keys_free_list;
|
|
98
|
+
int *numfree = &tstate->interp->dict_state.keys_numfree;
|
|
99
|
+
#else
|
|
100
|
+
struct _Py_object_freelists *freelists = _Nuitka_object_freelists_GET(tstate);
|
|
101
|
+
struct _Py_dictkeys_freelist *state = &freelists->dictkeys;
|
|
102
|
+
PyDictKeysObject **items = state->items;
|
|
103
|
+
int *numfree = &state->numfree;
|
|
104
|
+
#endif
|
|
105
|
+
|
|
106
|
+
if (*numfree) {
|
|
107
|
+
(*numfree) -= 1;
|
|
108
|
+
dk = items[*numfree];
|
|
109
|
+
} else
|
|
110
|
+
#endif
|
|
111
|
+
{
|
|
112
|
+
dk = (PyDictKeysObject *)NuitkaObject_Malloc(keys_size);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return dk;
|
|
116
|
+
}
|
|
117
|
+
#endif
|
|
118
|
+
|
|
99
119
|
#if PYTHON_VERSION >= 0x360 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_DICT_OPT)
|
|
100
120
|
static Py_ssize_t _Nuitka_Py_PyDict_KeysSize(PyDictKeysObject *keys) {
|
|
101
121
|
#if PYTHON_VERSION < 0x360
|
|
@@ -114,7 +134,7 @@ static Py_ssize_t _Nuitka_Py_PyDict_KeysSize(PyDictKeysObject *keys) {
|
|
|
114
134
|
}
|
|
115
135
|
#endif
|
|
116
136
|
|
|
117
|
-
PyObject *DICT_COPY(PyObject *dict_value) {
|
|
137
|
+
PyObject *DICT_COPY(PyThreadState *tstate, PyObject *dict_value) {
|
|
118
138
|
#if _NUITKA_EXPERIMENTAL_DISABLE_DICT_OPT
|
|
119
139
|
CHECK_OBJECT(dict_value);
|
|
120
140
|
assert(PyDict_CheckExact(dict_value));
|
|
@@ -127,7 +147,7 @@ PyObject *DICT_COPY(PyObject *dict_value) {
|
|
|
127
147
|
assert(PyDict_CheckExact(dict_value));
|
|
128
148
|
|
|
129
149
|
if (((PyDictObject *)dict_value)->ma_used == 0) {
|
|
130
|
-
result = MAKE_DICT_EMPTY();
|
|
150
|
+
result = MAKE_DICT_EMPTY(tstate);
|
|
131
151
|
} else {
|
|
132
152
|
PyDictObject *dict_mp = (PyDictObject *)dict_value;
|
|
133
153
|
|
|
@@ -144,7 +164,7 @@ PyObject *DICT_COPY(PyObject *dict_value) {
|
|
|
144
164
|
|
|
145
165
|
PyObject *value = entry->me_value;
|
|
146
166
|
|
|
147
|
-
int res = PyDict_SetItem(result, key, value);
|
|
167
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem(result, key, value);
|
|
148
168
|
assert(res == 0);
|
|
149
169
|
}
|
|
150
170
|
}
|
|
@@ -152,19 +172,19 @@ PyObject *DICT_COPY(PyObject *dict_value) {
|
|
|
152
172
|
/* Python 3 */
|
|
153
173
|
#ifndef PY_NOGIL
|
|
154
174
|
if (_PyDict_HasSplitTable(dict_mp)) {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject();
|
|
175
|
+
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject(tstate);
|
|
158
176
|
assert(result_mp != NULL);
|
|
159
177
|
result = (PyObject *)result_mp;
|
|
160
178
|
|
|
179
|
+
Py_ssize_t size = DK_ENTRIES_SIZE(dict_mp->ma_keys);
|
|
180
|
+
|
|
161
181
|
PyDictValues *new_values = _Nuitka_PyDict_new_values(size);
|
|
162
182
|
assert(new_values != NULL);
|
|
163
183
|
|
|
164
184
|
#if PYTHON_VERSION >= 0x3b0
|
|
165
185
|
// Need to preserve values prefix.
|
|
166
186
|
size_t prefix_size = ((uint8_t *)new_values)[-1];
|
|
167
|
-
memcpy((
|
|
187
|
+
memcpy((char *)new_values - prefix_size, (char *)dict_mp->ma_values - prefix_size, prefix_size - 1);
|
|
168
188
|
#endif
|
|
169
189
|
|
|
170
190
|
result_mp->ma_values = new_values;
|
|
@@ -200,14 +220,14 @@ PyObject *DICT_COPY(PyObject *dict_value) {
|
|
|
200
220
|
assert(dict_mp->ma_values == NULL);
|
|
201
221
|
assert(dict_mp->ma_keys->dk_refcnt == 1);
|
|
202
222
|
|
|
203
|
-
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject();
|
|
223
|
+
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject(tstate);
|
|
204
224
|
result = (PyObject *)result_mp;
|
|
205
225
|
|
|
206
226
|
result_mp->ma_values = NULL;
|
|
207
227
|
result_mp->ma_used = dict_mp->ma_used;
|
|
208
228
|
|
|
209
229
|
Py_ssize_t keys_size = _Nuitka_Py_PyDict_KeysSize(dict_mp->ma_keys);
|
|
210
|
-
result_mp->ma_keys = (
|
|
230
|
+
result_mp->ma_keys = _Nuitka_AllocatePyDictKeysObject(tstate, keys_size);
|
|
211
231
|
assert(result_mp->ma_keys);
|
|
212
232
|
|
|
213
233
|
memcpy(result_mp->ma_keys, dict_mp->ma_keys, keys_size);
|
|
@@ -277,20 +297,37 @@ PyObject *DICT_COPY(PyObject *dict_value) {
|
|
|
277
297
|
{
|
|
278
298
|
result = _PyDict_NewPresized(dict_mp->ma_used);
|
|
279
299
|
|
|
300
|
+
#if PYTHON_VERSION < 0x3b0
|
|
280
301
|
Py_ssize_t size = DK_ENTRIES_SIZE(dict_mp->ma_keys);
|
|
281
302
|
|
|
282
303
|
for (Py_ssize_t i = 0; i < size; i++) {
|
|
283
304
|
PyDictKeyEntry *entry = &DK_ENTRIES(dict_mp->ma_keys)[i];
|
|
305
|
+
PyObject *value = entry->me_value;
|
|
284
306
|
|
|
285
|
-
if (
|
|
307
|
+
if (value != NULL) {
|
|
286
308
|
PyObject *key = entry->me_key;
|
|
309
|
+
CHECK_OBJECT(key);
|
|
287
310
|
|
|
288
|
-
|
|
311
|
+
CHECK_OBJECT(value);
|
|
289
312
|
|
|
290
|
-
int res = PyDict_SetItem(result, key, value);
|
|
313
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem(result, key, value);
|
|
291
314
|
assert(res == 0);
|
|
292
315
|
}
|
|
293
316
|
}
|
|
317
|
+
#else
|
|
318
|
+
Py_ssize_t pos = 0;
|
|
319
|
+
PyObject *key, *value;
|
|
320
|
+
|
|
321
|
+
while (Nuitka_DictNext((PyObject *)dict_mp, &pos, &key, &value)) {
|
|
322
|
+
CHECK_OBJECT(key);
|
|
323
|
+
CHECK_OBJECT(value);
|
|
324
|
+
|
|
325
|
+
CHECK_OBJECT(value);
|
|
326
|
+
|
|
327
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem(result, key, value);
|
|
328
|
+
assert(res == 0);
|
|
329
|
+
}
|
|
330
|
+
#endif
|
|
294
331
|
}
|
|
295
332
|
#endif
|
|
296
333
|
}
|
|
@@ -306,7 +343,7 @@ PyObject *DEEP_COPY_DICT(PyThreadState *tstate, PyObject *dict_value) {
|
|
|
306
343
|
CHECK_OBJECT(dict_value);
|
|
307
344
|
assert(PyDict_CheckExact(dict_value));
|
|
308
345
|
|
|
309
|
-
result = DICT_COPY(dict_value);
|
|
346
|
+
result = DICT_COPY(tstate, dict_value);
|
|
310
347
|
|
|
311
348
|
Py_ssize_t pos = 0;
|
|
312
349
|
PyObject *key, *value;
|
|
@@ -323,7 +360,7 @@ PyObject *DEEP_COPY_DICT(PyThreadState *tstate, PyObject *dict_value) {
|
|
|
323
360
|
assert(PyDict_CheckExact(dict_value));
|
|
324
361
|
|
|
325
362
|
if (((PyDictObject *)dict_value)->ma_used == 0) {
|
|
326
|
-
result = MAKE_DICT_EMPTY();
|
|
363
|
+
result = MAKE_DICT_EMPTY(tstate);
|
|
327
364
|
} else {
|
|
328
365
|
PyDictObject *dict_mp = (PyDictObject *)dict_value;
|
|
329
366
|
|
|
@@ -341,7 +378,7 @@ PyObject *DEEP_COPY_DICT(PyThreadState *tstate, PyObject *dict_value) {
|
|
|
341
378
|
PyObject *value = entry->me_value;
|
|
342
379
|
value = DEEP_COPY(tstate, value);
|
|
343
380
|
|
|
344
|
-
int res = PyDict_SetItem(result, key, value);
|
|
381
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem(result, key, value);
|
|
345
382
|
assert(res == 0);
|
|
346
383
|
|
|
347
384
|
Py_DECREF(value);
|
|
@@ -351,19 +388,19 @@ PyObject *DEEP_COPY_DICT(PyThreadState *tstate, PyObject *dict_value) {
|
|
|
351
388
|
/* Python 3 */
|
|
352
389
|
#ifndef PY_NOGIL
|
|
353
390
|
if (_PyDict_HasSplitTable(dict_mp)) {
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject();
|
|
391
|
+
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject(tstate);
|
|
357
392
|
assert(result_mp != NULL);
|
|
358
393
|
result = (PyObject *)result_mp;
|
|
359
394
|
|
|
395
|
+
Py_ssize_t size = DK_ENTRIES_SIZE(dict_mp->ma_keys);
|
|
396
|
+
|
|
360
397
|
PyDictValues *new_values = _Nuitka_PyDict_new_values(size);
|
|
361
398
|
assert(new_values != NULL);
|
|
362
399
|
|
|
363
400
|
#if PYTHON_VERSION >= 0x3b0
|
|
364
401
|
// Need to preserve values prefix.
|
|
365
402
|
size_t prefix_size = ((uint8_t *)new_values)[-1];
|
|
366
|
-
memcpy((
|
|
403
|
+
memcpy((char *)new_values - prefix_size, (char *)dict_mp->ma_values - prefix_size, prefix_size - 1);
|
|
367
404
|
#endif
|
|
368
405
|
|
|
369
406
|
result_mp->ma_values = new_values;
|
|
@@ -399,14 +436,14 @@ PyObject *DEEP_COPY_DICT(PyThreadState *tstate, PyObject *dict_value) {
|
|
|
399
436
|
assert(dict_mp->ma_values == NULL);
|
|
400
437
|
assert(dict_mp->ma_keys->dk_refcnt == 1);
|
|
401
438
|
|
|
402
|
-
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject();
|
|
439
|
+
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject(tstate);
|
|
403
440
|
result = (PyObject *)result_mp;
|
|
404
441
|
|
|
405
442
|
result_mp->ma_values = NULL;
|
|
406
443
|
result_mp->ma_used = dict_mp->ma_used;
|
|
407
444
|
|
|
408
445
|
Py_ssize_t keys_size = _Nuitka_Py_PyDict_KeysSize(dict_mp->ma_keys);
|
|
409
|
-
result_mp->ma_keys = (
|
|
446
|
+
result_mp->ma_keys = _Nuitka_AllocatePyDictKeysObject(tstate, keys_size);
|
|
410
447
|
assert(result_mp->ma_keys);
|
|
411
448
|
|
|
412
449
|
memcpy(result_mp->ma_keys, dict_mp->ma_keys, keys_size);
|
|
@@ -478,23 +515,45 @@ PyObject *DEEP_COPY_DICT(PyThreadState *tstate, PyObject *dict_value) {
|
|
|
478
515
|
{
|
|
479
516
|
result = _PyDict_NewPresized(dict_mp->ma_used);
|
|
480
517
|
|
|
518
|
+
#if PYTHON_VERSION < 0x3b0
|
|
481
519
|
Py_ssize_t size = DK_ENTRIES_SIZE(dict_mp->ma_keys);
|
|
482
520
|
|
|
483
521
|
for (Py_ssize_t i = 0; i < size; i++) {
|
|
484
522
|
PyDictKeyEntry *entry = &DK_ENTRIES(dict_mp->ma_keys)[i];
|
|
523
|
+
PyObject *value = entry->me_value;
|
|
485
524
|
|
|
486
|
-
if (
|
|
525
|
+
if (value != NULL) {
|
|
487
526
|
PyObject *key = entry->me_key;
|
|
527
|
+
CHECK_OBJECT(key);
|
|
528
|
+
|
|
529
|
+
CHECK_OBJECT(value);
|
|
488
530
|
|
|
489
|
-
PyObject *value = entry->me_value;
|
|
490
531
|
value = DEEP_COPY(tstate, value);
|
|
491
532
|
|
|
492
|
-
int res = PyDict_SetItem(result, key, value);
|
|
533
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem(result, key, value);
|
|
493
534
|
assert(res == 0);
|
|
494
535
|
|
|
495
536
|
Py_DECREF(value);
|
|
496
537
|
}
|
|
497
538
|
}
|
|
539
|
+
#else
|
|
540
|
+
Py_ssize_t pos = 0;
|
|
541
|
+
PyObject *key, *value;
|
|
542
|
+
|
|
543
|
+
while (Nuitka_DictNext((PyObject *)dict_mp, &pos, &key, &value)) {
|
|
544
|
+
CHECK_OBJECT(key);
|
|
545
|
+
CHECK_OBJECT(value);
|
|
546
|
+
|
|
547
|
+
CHECK_OBJECT(value);
|
|
548
|
+
|
|
549
|
+
value = DEEP_COPY(tstate, value);
|
|
550
|
+
|
|
551
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem(result, key, value);
|
|
552
|
+
assert(res == 0);
|
|
553
|
+
|
|
554
|
+
Py_DECREF(value);
|
|
555
|
+
}
|
|
556
|
+
#endif
|
|
498
557
|
}
|
|
499
558
|
#endif
|
|
500
559
|
}
|
|
@@ -505,7 +564,7 @@ PyObject *DEEP_COPY_DICT(PyThreadState *tstate, PyObject *dict_value) {
|
|
|
505
564
|
}
|
|
506
565
|
|
|
507
566
|
// Helper for function calls with star dict arguments. */
|
|
508
|
-
static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
567
|
+
static PyObject *COPY_DICT_KW(PyThreadState *tstate, PyObject *dict_value) {
|
|
509
568
|
PyObject *result;
|
|
510
569
|
bool had_kw_error = false;
|
|
511
570
|
|
|
@@ -513,7 +572,7 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
513
572
|
CHECK_OBJECT(dict_value);
|
|
514
573
|
assert(PyDict_CheckExact(dict_value));
|
|
515
574
|
|
|
516
|
-
result = DICT_COPY(dict_value);
|
|
575
|
+
result = DICT_COPY(tstate, dict_value);
|
|
517
576
|
|
|
518
577
|
Py_ssize_t pos = 0;
|
|
519
578
|
PyObject *key, *value;
|
|
@@ -528,7 +587,7 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
528
587
|
assert(PyDict_CheckExact(dict_value));
|
|
529
588
|
|
|
530
589
|
if (((PyDictObject *)dict_value)->ma_used == 0) {
|
|
531
|
-
result = MAKE_DICT_EMPTY();
|
|
590
|
+
result = MAKE_DICT_EMPTY(tstate);
|
|
532
591
|
} else {
|
|
533
592
|
PyDictObject *dict_mp = (PyDictObject *)dict_value;
|
|
534
593
|
|
|
@@ -548,7 +607,7 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
548
607
|
|
|
549
608
|
PyObject *value = entry->me_value;
|
|
550
609
|
|
|
551
|
-
int res = PyDict_SetItem(result, key, value);
|
|
610
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem(result, key, value);
|
|
552
611
|
assert(res == 0);
|
|
553
612
|
}
|
|
554
613
|
}
|
|
@@ -556,12 +615,13 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
556
615
|
/* Python 3 */
|
|
557
616
|
#ifndef PY_NOGIL
|
|
558
617
|
if (_PyDict_HasSplitTable(dict_mp)) {
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject();
|
|
618
|
+
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject(tstate);
|
|
562
619
|
assert(result_mp != NULL);
|
|
563
620
|
result = (PyObject *)result_mp;
|
|
564
621
|
|
|
622
|
+
Py_ssize_t size = DK_ENTRIES_SIZE(dict_mp->ma_keys);
|
|
623
|
+
|
|
624
|
+
#if PYTHON_VERSION < 0x3b0
|
|
565
625
|
for (Py_ssize_t i = 0; i < size; i++) {
|
|
566
626
|
PyDictKeyEntry *entry = &DK_ENTRIES(dict_mp->ma_keys)[i];
|
|
567
627
|
|
|
@@ -571,6 +631,18 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
571
631
|
had_kw_error = true;
|
|
572
632
|
}
|
|
573
633
|
}
|
|
634
|
+
#else
|
|
635
|
+
Py_ssize_t pos = 0;
|
|
636
|
+
PyObject *key, *_value;
|
|
637
|
+
|
|
638
|
+
while (Nuitka_DictNext((PyObject *)dict_mp, &pos, &key, &_value)) {
|
|
639
|
+
CHECK_OBJECT(key);
|
|
640
|
+
CHECK_OBJECT(_value);
|
|
641
|
+
|
|
642
|
+
if (unlikely(!checkKeywordType(key))) {
|
|
643
|
+
had_kw_error = true;
|
|
644
|
+
}
|
|
645
|
+
#endif
|
|
574
646
|
}
|
|
575
647
|
|
|
576
648
|
PyDictValues *new_values = _Nuitka_PyDict_new_values(size);
|
|
@@ -579,7 +651,7 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
579
651
|
#if PYTHON_VERSION >= 0x3b0
|
|
580
652
|
// Need to preserve values prefix.
|
|
581
653
|
size_t prefix_size = ((uint8_t *)new_values)[-1];
|
|
582
|
-
memcpy((
|
|
654
|
+
memcpy((char *)new_values - prefix_size, (char *)dict_mp->ma_values - prefix_size, prefix_size - 1);
|
|
583
655
|
#endif
|
|
584
656
|
|
|
585
657
|
result_mp->ma_values = new_values;
|
|
@@ -615,14 +687,14 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
615
687
|
assert(dict_mp->ma_values == NULL);
|
|
616
688
|
assert(dict_mp->ma_keys->dk_refcnt == 1);
|
|
617
689
|
|
|
618
|
-
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject();
|
|
690
|
+
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject(tstate);
|
|
619
691
|
result = (PyObject *)result_mp;
|
|
620
692
|
|
|
621
693
|
result_mp->ma_values = NULL;
|
|
622
694
|
result_mp->ma_used = dict_mp->ma_used;
|
|
623
695
|
|
|
624
696
|
Py_ssize_t keys_size = _Nuitka_Py_PyDict_KeysSize(dict_mp->ma_keys);
|
|
625
|
-
result_mp->ma_keys = (
|
|
697
|
+
result_mp->ma_keys = _Nuitka_AllocatePyDictKeysObject(tstate, keys_size);
|
|
626
698
|
assert(result_mp->ma_keys);
|
|
627
699
|
|
|
628
700
|
memcpy(result_mp->ma_keys, dict_mp->ma_keys, keys_size);
|
|
@@ -675,7 +747,7 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
675
747
|
|
|
676
748
|
Py_INCREF(value);
|
|
677
749
|
PyObject *key = *key_ptr;
|
|
678
|
-
if (is_unicode) {
|
|
750
|
+
if (is_unicode == false) {
|
|
679
751
|
if (unlikely(!checkKeywordType(key))) {
|
|
680
752
|
had_kw_error = true;
|
|
681
753
|
}
|
|
@@ -699,23 +771,45 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
699
771
|
{
|
|
700
772
|
result = _PyDict_NewPresized(dict_mp->ma_used);
|
|
701
773
|
|
|
774
|
+
#if PYTHON_VERSION < 0x3b0
|
|
702
775
|
Py_ssize_t size = DK_ENTRIES_SIZE(dict_mp->ma_keys);
|
|
703
776
|
|
|
704
777
|
for (Py_ssize_t i = 0; i < size; i++) {
|
|
705
778
|
PyDictKeyEntry *entry = &DK_ENTRIES(dict_mp->ma_keys)[i];
|
|
779
|
+
PyObject *value = entry->me_value;
|
|
706
780
|
|
|
707
|
-
if (
|
|
781
|
+
if (value != NULL) {
|
|
708
782
|
PyObject *key = entry->me_key;
|
|
783
|
+
CHECK_OBJECT(key);
|
|
784
|
+
|
|
709
785
|
if (unlikely(!checkKeywordType(key))) {
|
|
710
786
|
had_kw_error = true;
|
|
711
787
|
}
|
|
712
788
|
|
|
713
|
-
|
|
789
|
+
CHECK_OBJECT(value);
|
|
714
790
|
|
|
715
|
-
int res = PyDict_SetItem(result, key, value);
|
|
791
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem(result, key, value);
|
|
716
792
|
assert(res == 0);
|
|
717
793
|
}
|
|
718
794
|
}
|
|
795
|
+
#else
|
|
796
|
+
Py_ssize_t pos = 0;
|
|
797
|
+
PyObject *key, *value;
|
|
798
|
+
|
|
799
|
+
while (Nuitka_DictNext((PyObject *)dict_mp, &pos, &key, &value)) {
|
|
800
|
+
CHECK_OBJECT(key);
|
|
801
|
+
CHECK_OBJECT(value);
|
|
802
|
+
|
|
803
|
+
if (unlikely(!checkKeywordType(key))) {
|
|
804
|
+
had_kw_error = true;
|
|
805
|
+
}
|
|
806
|
+
|
|
807
|
+
CHECK_OBJECT(value);
|
|
808
|
+
|
|
809
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem(result, key, value);
|
|
810
|
+
assert(res == 0);
|
|
811
|
+
}
|
|
812
|
+
#endif
|
|
719
813
|
}
|
|
720
814
|
#endif
|
|
721
815
|
}
|
|
@@ -729,3 +823,18 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
729
823
|
|
|
730
824
|
return result;
|
|
731
825
|
}
|
|
826
|
+
|
|
827
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
828
|
+
// integrates with CPython, but also works on its own.
|
|
829
|
+
//
|
|
830
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
831
|
+
// you may not use this file except in compliance with the License.
|
|
832
|
+
// You may obtain a copy of the License at
|
|
833
|
+
//
|
|
834
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
835
|
+
//
|
|
836
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
837
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
838
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
839
|
+
// See the License for the specific language governing permissions and
|
|
840
|
+
// limitations under the License.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
/* These helpers are used to report C backtraces */
|
|
4
|
+
|
|
5
|
+
#include "backtrace/backtrace.h"
|
|
6
|
+
|
|
7
|
+
static struct backtrace_state *our_backtrace_state = NULL;
|
|
8
|
+
|
|
9
|
+
void INIT_C_BACKTRACES(void) {
|
|
10
|
+
our_backtrace_state = backtrace_create_state(NULL, 1, NULL, NULL);
|
|
11
|
+
assert(our_backtrace_state != NULL);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
static int bt_frame_count = 0;
|
|
15
|
+
|
|
16
|
+
static int ourBacktraceFullCallback(void *data, uintptr_t pc, const char *filename, int lineno, const char *function) {
|
|
17
|
+
if (strcmp(function, "DUMP_C_BACKTRACE") != 0) {
|
|
18
|
+
fprintf(stderr, "#%d %s:%d %s\n", bt_frame_count, filename, lineno, function);
|
|
19
|
+
bt_frame_count += 1;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (strcmp(function, "main") == 0) {
|
|
23
|
+
return 1;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
void DUMP_C_BACKTRACE(void) {
|
|
30
|
+
assert(our_backtrace_state != NULL);
|
|
31
|
+
|
|
32
|
+
bt_frame_count = 0;
|
|
33
|
+
backtrace_full(our_backtrace_state, 0, ourBacktraceFullCallback, NULL, NULL);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#include "backtrace/backtrace.c"
|
|
37
|
+
#include "backtrace/dwarf.c"
|
|
38
|
+
#if !defined(_WIN32)
|
|
39
|
+
#include "backtrace/elf.c"
|
|
40
|
+
#include "backtrace/mmap.c"
|
|
41
|
+
#else
|
|
42
|
+
#include "backtrace/alloc.c"
|
|
43
|
+
#include "backtrace/pecoff.c"
|
|
44
|
+
#endif
|
|
45
|
+
#include "backtrace/fileline.c"
|
|
46
|
+
#include "backtrace/posix.c"
|
|
47
|
+
#include "backtrace/read.c"
|
|
48
|
+
#include "backtrace/sort.c"
|
|
49
|
+
#include "backtrace/state.c"
|
|
50
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
51
|
+
// integrates with CPython, but also works on its own.
|
|
52
|
+
//
|
|
53
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
54
|
+
// you may not use this file except in compliance with the License.
|
|
55
|
+
// You may obtain a copy of the License at
|
|
56
|
+
//
|
|
57
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
58
|
+
//
|
|
59
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
60
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
61
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
62
|
+
// See the License for the specific language governing permissions and
|
|
63
|
+
// limitations under the License.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
// Helpers for working with environment variables from Python binary in a
|
|
4
|
+
// portable way.
|
|
5
|
+
|
|
6
|
+
#include "nuitka/environment_variables.h"
|
|
7
|
+
|
|
8
|
+
#include "HelpersEnvironmentVariablesSystem.c"
|
|
9
|
+
|
|
10
|
+
void undoEnvironmentVariable(PyThreadState *tstate, char const *variable_name, environment_char_t const *old_value) {
|
|
11
|
+
PyObject *os_module = IMPORT_HARD_OS();
|
|
12
|
+
CHECK_OBJECT(os_module);
|
|
13
|
+
|
|
14
|
+
PyObject *os_environ = PyObject_GetAttrString(os_module, "environ");
|
|
15
|
+
CHECK_OBJECT(os_environ);
|
|
16
|
+
|
|
17
|
+
PyObject *variable_name_str = Nuitka_String_FromString(variable_name);
|
|
18
|
+
CHECK_OBJECT(variable_name_str);
|
|
19
|
+
|
|
20
|
+
if (old_value) {
|
|
21
|
+
setEnvironmentVariable(variable_name, old_value);
|
|
22
|
+
|
|
23
|
+
#ifdef _WIN32
|
|
24
|
+
PyObject *env_value = NuitkaUnicode_FromWideChar(old_value, -1);
|
|
25
|
+
#else
|
|
26
|
+
PyObject *env_value = Nuitka_String_FromString(old_value);
|
|
27
|
+
#endif
|
|
28
|
+
CHECK_OBJECT(env_value);
|
|
29
|
+
|
|
30
|
+
int res = PyObject_SetItem(os_environ, variable_name_str, env_value);
|
|
31
|
+
|
|
32
|
+
if (unlikely(res != 0)) {
|
|
33
|
+
PyErr_PrintEx(1);
|
|
34
|
+
Py_Exit(1);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
Py_DECREF(env_value);
|
|
38
|
+
} else {
|
|
39
|
+
unsetEnvironmentVariable(variable_name);
|
|
40
|
+
|
|
41
|
+
int res = PyObject_DelItem(os_environ, variable_name_str);
|
|
42
|
+
|
|
43
|
+
if (unlikely(res != 0)) {
|
|
44
|
+
CLEAR_ERROR_OCCURRED(tstate);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
Py_DECREF(variable_name_str);
|
|
49
|
+
Py_DECREF(os_environ);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
53
|
+
// integrates with CPython, but also works on its own.
|
|
54
|
+
//
|
|
55
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
56
|
+
// you may not use this file except in compliance with the License.
|
|
57
|
+
// You may obtain a copy of the License at
|
|
58
|
+
//
|
|
59
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
60
|
+
//
|
|
61
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
62
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
63
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
64
|
+
// See the License for the specific language governing permissions and
|
|
65
|
+
// limitations under the License.
|