Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +93 -54
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +717 -171
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -22
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +89 -51
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +25 -21
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +73 -40
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +29 -22
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +39 -30
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +44 -24
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +132 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -1,20 +1,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
|
/* This helpers is used to work with lists.
|
|
19
4
|
|
|
20
5
|
*/
|
|
@@ -29,23 +14,65 @@
|
|
|
29
14
|
|
|
30
15
|
static PyObject *Nuitka_LongFromCLong(long ival);
|
|
31
16
|
|
|
32
|
-
#
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
17
|
+
#ifdef Py_GIL_DISABLED
|
|
18
|
+
typedef struct {
|
|
19
|
+
Py_ssize_t allocated;
|
|
20
|
+
PyObject *ob_item[];
|
|
21
|
+
} _PyListArray;
|
|
22
|
+
|
|
23
|
+
static _PyListArray *Nuitka_AllocateListArray(size_t capacity) {
|
|
24
|
+
if (unlikely(capacity > PY_SSIZE_T_MAX / sizeof(PyObject *) - 1)) {
|
|
25
|
+
return NULL;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
_PyListArray *list_array = PyMem_Malloc(sizeof(_PyListArray) + capacity * sizeof(PyObject *));
|
|
29
|
+
|
|
30
|
+
if (unlikely(list_array == NULL)) {
|
|
31
|
+
return NULL;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
list_array->allocated = capacity;
|
|
35
|
+
return list_array;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
// spell-checker: ignore use_qsbr
|
|
39
|
+
static void Nuitka_FreeListArray(PyObject **items, bool use_qsbr) {
|
|
40
|
+
_PyListArray *array = _Py_CONTAINER_OF(items, _PyListArray, ob_item);
|
|
41
|
+
|
|
42
|
+
if (use_qsbr) {
|
|
43
|
+
NuitkaMem_FreeDelayed(array);
|
|
44
|
+
} else {
|
|
45
|
+
NuitkaMem_Free(array);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
#if NUITKA_LIST_HAS_FREELIST
|
|
52
|
+
|
|
53
|
+
PyObject *MAKE_LIST_EMPTY(PyThreadState *tstate, Py_ssize_t size) {
|
|
39
54
|
assert(size >= 0);
|
|
40
55
|
|
|
41
|
-
|
|
42
|
-
|
|
56
|
+
#if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT
|
|
57
|
+
return PyList_New(size);
|
|
58
|
+
#else
|
|
59
|
+
// This is the CPython name, spell-checker: ignore numfree
|
|
43
60
|
|
|
44
|
-
|
|
61
|
+
#if PYTHON_VERSION < 0x3d0
|
|
62
|
+
PyListObject **items = tstate->interp->list.free_list;
|
|
63
|
+
int *numfree = &tstate->interp->list.numfree;
|
|
64
|
+
#else
|
|
65
|
+
struct _Py_object_freelists *freelists = _Nuitka_object_freelists_GET(tstate);
|
|
66
|
+
struct _Py_list_freelist *state = &freelists->lists;
|
|
67
|
+
PyListObject **items = state->items;
|
|
68
|
+
int *numfree = &state->numfree;
|
|
69
|
+
#endif
|
|
70
|
+
assert(*numfree >= 0);
|
|
71
|
+
PyListObject *result_list;
|
|
45
72
|
|
|
46
|
-
if (
|
|
47
|
-
|
|
48
|
-
result_list =
|
|
73
|
+
if (*numfree) {
|
|
74
|
+
(*numfree) -= 1;
|
|
75
|
+
result_list = items[*numfree];
|
|
49
76
|
|
|
50
77
|
Nuitka_Py_NewReference((PyObject *)result_list);
|
|
51
78
|
} else {
|
|
@@ -54,12 +81,21 @@ PyObject *MAKE_LIST_EMPTY(Py_ssize_t size) {
|
|
|
54
81
|
|
|
55
82
|
// Elements are allocated separately.
|
|
56
83
|
if (size > 0) {
|
|
57
|
-
|
|
84
|
+
#ifdef Py_GIL_DISABLED
|
|
85
|
+
_PyListArray *list_array = Nuitka_AllocateListArray(size);
|
|
86
|
+
|
|
87
|
+
if (unlikely(list_array == NULL)) {
|
|
88
|
+
Py_DECREF(result_list);
|
|
89
|
+
return PyErr_NoMemory();
|
|
90
|
+
}
|
|
91
|
+
#else
|
|
92
|
+
result_list->ob_item = (PyObject **)NuitkaMem_Calloc(size, sizeof(PyObject *));
|
|
58
93
|
|
|
59
94
|
if (unlikely(result_list->ob_item == NULL)) {
|
|
60
95
|
Py_DECREF(result_list);
|
|
61
96
|
return PyErr_NoMemory();
|
|
62
97
|
}
|
|
98
|
+
#endif
|
|
63
99
|
} else {
|
|
64
100
|
result_list->ob_item = NULL;
|
|
65
101
|
}
|
|
@@ -70,15 +106,16 @@ PyObject *MAKE_LIST_EMPTY(Py_ssize_t size) {
|
|
|
70
106
|
Nuitka_GC_Track(result_list);
|
|
71
107
|
|
|
72
108
|
return (PyObject *)result_list;
|
|
109
|
+
#endif
|
|
73
110
|
}
|
|
74
111
|
#endif
|
|
75
112
|
|
|
76
|
-
PyObject *LIST_COPY(PyObject *list) {
|
|
113
|
+
PyObject *LIST_COPY(PyThreadState *tstate, PyObject *list) {
|
|
77
114
|
CHECK_OBJECT(list);
|
|
78
115
|
assert(PyList_CheckExact(list));
|
|
79
116
|
|
|
80
117
|
Py_ssize_t size = PyList_GET_SIZE(list);
|
|
81
|
-
PyObject *result = MAKE_LIST_EMPTY(size);
|
|
118
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, size);
|
|
82
119
|
|
|
83
120
|
if (unlikely(result == NULL)) {
|
|
84
121
|
return NULL;
|
|
@@ -93,34 +130,67 @@ PyObject *LIST_COPY(PyObject *list) {
|
|
|
93
130
|
return result;
|
|
94
131
|
}
|
|
95
132
|
|
|
96
|
-
static bool LIST_RESIZE(PyListObject *list, Py_ssize_t
|
|
133
|
+
static bool LIST_RESIZE(PyListObject *list, Py_ssize_t new_size) {
|
|
134
|
+
CHECK_OBJECT(list);
|
|
135
|
+
assert(new_size >= 0);
|
|
136
|
+
|
|
97
137
|
Py_ssize_t allocated = list->allocated;
|
|
98
138
|
|
|
99
|
-
if (allocated >=
|
|
100
|
-
Py_SET_SIZE(list,
|
|
139
|
+
if (allocated >= new_size && new_size >= (allocated >> 1)) {
|
|
140
|
+
Py_SET_SIZE(list, new_size);
|
|
101
141
|
|
|
102
142
|
return true;
|
|
103
143
|
}
|
|
104
144
|
|
|
105
145
|
size_t new_allocated;
|
|
106
146
|
|
|
107
|
-
if (
|
|
147
|
+
if (new_size == 0) {
|
|
108
148
|
new_allocated = 0;
|
|
109
149
|
} else {
|
|
110
|
-
new_allocated = ((size_t)
|
|
150
|
+
new_allocated = ((size_t)new_size + (new_size >> 3) + 6) & ~(size_t)3;
|
|
151
|
+
assert(new_allocated >= (size_t)new_size);
|
|
111
152
|
}
|
|
112
153
|
|
|
154
|
+
#ifdef Py_GIL_DISABLED
|
|
155
|
+
_PyListArray *array = Nuitka_AllocateListArray(new_allocated);
|
|
156
|
+
|
|
157
|
+
if (array == NULL) {
|
|
158
|
+
PyErr_NoMemory();
|
|
159
|
+
return -1;
|
|
160
|
+
}
|
|
161
|
+
PyObject **old_items = list->ob_item;
|
|
162
|
+
if (list->ob_item != NULL) {
|
|
163
|
+
size_t num_allocated_bytes;
|
|
164
|
+
if (new_allocated < (size_t)allocated) {
|
|
165
|
+
num_allocated_bytes = new_allocated * sizeof(PyObject *);
|
|
166
|
+
} else {
|
|
167
|
+
num_allocated_bytes = allocated * sizeof(PyObject *);
|
|
168
|
+
}
|
|
169
|
+
memcpy(array->ob_item, list->ob_item, num_allocated_bytes);
|
|
170
|
+
}
|
|
171
|
+
if (new_allocated > (size_t)allocated) {
|
|
172
|
+
memset(array->ob_item + allocated, 0, sizeof(PyObject *) * (new_allocated - allocated));
|
|
173
|
+
}
|
|
174
|
+
_Py_atomic_store_ptr_release(&list->ob_item, &array->ob_item);
|
|
175
|
+
list->allocated = new_allocated;
|
|
176
|
+
Py_SET_SIZE(list, new_size);
|
|
177
|
+
if (old_items != NULL) {
|
|
178
|
+
Nuitka_FreeListArray(old_items, _PyObject_GC_IS_SHARED(list));
|
|
179
|
+
}
|
|
180
|
+
#else
|
|
113
181
|
size_t num_allocated_bytes = new_allocated * sizeof(PyObject *);
|
|
114
182
|
|
|
115
|
-
|
|
183
|
+
// TODO: For Python3.13 No-GIL this is different code
|
|
184
|
+
PyObject **items = (PyObject **)NuitkaMem_Realloc(list->ob_item, num_allocated_bytes);
|
|
116
185
|
if (unlikely(items == NULL)) {
|
|
117
186
|
PyErr_NoMemory();
|
|
118
187
|
return false;
|
|
119
188
|
}
|
|
120
189
|
|
|
121
190
|
list->ob_item = items;
|
|
122
|
-
Py_SET_SIZE(list,
|
|
191
|
+
Py_SET_SIZE(list, new_size);
|
|
123
192
|
list->allocated = new_allocated;
|
|
193
|
+
#endif
|
|
124
194
|
|
|
125
195
|
return true;
|
|
126
196
|
}
|
|
@@ -233,7 +303,7 @@ bool LIST_EXTEND_FROM_ITERABLE(PyThreadState *tstate, PyObject *target, PyObject
|
|
|
233
303
|
|
|
234
304
|
Py_ssize_t cur_size = PyList_GET_SIZE(list);
|
|
235
305
|
|
|
236
|
-
#if PYTHON_VERSION >=
|
|
306
|
+
#if PYTHON_VERSION >= 0x300
|
|
237
307
|
// Guess a iterator size if possible
|
|
238
308
|
src_size = PyObject_LengthHint(other, 8);
|
|
239
309
|
|
|
@@ -322,6 +392,8 @@ bool LIST_EXTEND_FOR_UNPACK(PyThreadState *tstate, PyObject *list, PyObject *oth
|
|
|
322
392
|
|
|
323
393
|
PyObject *error = GET_ERROR_OCCURRED(tstate);
|
|
324
394
|
|
|
395
|
+
assert(error != NULL);
|
|
396
|
+
|
|
325
397
|
if (EXCEPTION_MATCH_BOOL_SINGLE(tstate, error, PyExc_TypeError) &&
|
|
326
398
|
(Py_TYPE(other)->tp_iter == NULL && !PySequence_Check(other))) {
|
|
327
399
|
CLEAR_ERROR_OCCURRED(tstate);
|
|
@@ -333,16 +405,16 @@ bool LIST_EXTEND_FOR_UNPACK(PyThreadState *tstate, PyObject *list, PyObject *oth
|
|
|
333
405
|
#endif
|
|
334
406
|
|
|
335
407
|
bool LIST_APPEND1(PyObject *target, PyObject *item) {
|
|
336
|
-
#if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT
|
|
337
|
-
int res = PyList_Append(target, item);
|
|
338
|
-
Py_DECREF(item);
|
|
339
|
-
return res == 0;
|
|
340
|
-
#else
|
|
341
408
|
CHECK_OBJECT(target);
|
|
342
409
|
assert(PyList_CheckExact(target));
|
|
343
410
|
|
|
344
411
|
CHECK_OBJECT(item);
|
|
345
412
|
|
|
413
|
+
#if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT
|
|
414
|
+
int res = PyList_Append(target, item);
|
|
415
|
+
Py_DECREF(item);
|
|
416
|
+
return res == 0;
|
|
417
|
+
#else
|
|
346
418
|
PyListObject *list = (PyListObject *)target;
|
|
347
419
|
|
|
348
420
|
Py_ssize_t cur_size = PyList_GET_SIZE(list);
|
|
@@ -361,15 +433,15 @@ bool LIST_APPEND1(PyObject *target, PyObject *item) {
|
|
|
361
433
|
}
|
|
362
434
|
|
|
363
435
|
bool LIST_APPEND0(PyObject *target, PyObject *item) {
|
|
364
|
-
#if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT
|
|
365
|
-
int res = PyList_Append(target, item);
|
|
366
|
-
return res == 0;
|
|
367
|
-
#else
|
|
368
436
|
CHECK_OBJECT(target);
|
|
369
437
|
assert(PyList_CheckExact(target));
|
|
370
438
|
|
|
371
439
|
CHECK_OBJECT(item);
|
|
372
440
|
|
|
441
|
+
#if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT
|
|
442
|
+
int res = PyList_Append(target, item);
|
|
443
|
+
return res == 0;
|
|
444
|
+
#else
|
|
373
445
|
PyListObject *list = (PyListObject *)target;
|
|
374
446
|
|
|
375
447
|
Py_ssize_t cur_size = PyList_GET_SIZE(list);
|
|
@@ -387,6 +459,47 @@ bool LIST_APPEND0(PyObject *target, PyObject *item) {
|
|
|
387
459
|
#endif
|
|
388
460
|
}
|
|
389
461
|
|
|
462
|
+
bool LIST_REMOVE(PyObject *target, PyObject *item) {
|
|
463
|
+
CHECK_OBJECT(target);
|
|
464
|
+
assert(PyList_CheckExact(target));
|
|
465
|
+
|
|
466
|
+
CHECK_OBJECT(item);
|
|
467
|
+
|
|
468
|
+
#if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT && 0
|
|
469
|
+
// TODO: This is not exposed, would need to delete as slice instead.
|
|
470
|
+
int res = PyList_Remove(target, item);
|
|
471
|
+
return res == 0;
|
|
472
|
+
#else
|
|
473
|
+
PyListObject *list = (PyListObject *)target;
|
|
474
|
+
|
|
475
|
+
Py_ssize_t cur_size = PyList_GET_SIZE(list);
|
|
476
|
+
|
|
477
|
+
for (Py_ssize_t i = 0; i < cur_size; i++) {
|
|
478
|
+
PyObject *element = list->ob_item[i];
|
|
479
|
+
|
|
480
|
+
Py_INCREF(element);
|
|
481
|
+
nuitka_bool cmp = RICH_COMPARE_EQ_NBOOL_OBJECT_OBJECT(element, item);
|
|
482
|
+
Py_DECREF(element);
|
|
483
|
+
|
|
484
|
+
if (cmp == NUITKA_BOOL_TRUE) {
|
|
485
|
+
Py_DECREF(element);
|
|
486
|
+
Py_SET_SIZE(list, cur_size - 1);
|
|
487
|
+
|
|
488
|
+
memmove(list->ob_item + i, list->ob_item + i + 1, sizeof(PyObject *) * (cur_size - i - 1));
|
|
489
|
+
|
|
490
|
+
return true;
|
|
491
|
+
} else if (unlikely(cmp == NUITKA_BOOL_EXCEPTION)) {
|
|
492
|
+
return false;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
497
|
+
|
|
498
|
+
SET_CURRENT_EXCEPTION_TYPE0_STR(tstate, PyExc_ValueError, "list.remove(x): x not in list");
|
|
499
|
+
return false;
|
|
500
|
+
#endif
|
|
501
|
+
}
|
|
502
|
+
|
|
390
503
|
void LIST_CLEAR(PyObject *target) {
|
|
391
504
|
CHECK_OBJECT(target);
|
|
392
505
|
assert(PyList_CheckExact(target));
|
|
@@ -494,7 +607,7 @@ static PyObject *_LIST_INDEX_COMMON(PyThreadState *tstate, PyListObject *list, P
|
|
|
494
607
|
|
|
495
608
|
#if PYTHON_VERSION < 0x300
|
|
496
609
|
PyObject *err_format = PyString_FromString("%r is not in list");
|
|
497
|
-
PyObject *format_tuple = MAKE_TUPLE1_0(item);
|
|
610
|
+
PyObject *format_tuple = MAKE_TUPLE1_0(tstate, item);
|
|
498
611
|
PyObject *err_string = PyString_Format(err_format, format_tuple);
|
|
499
612
|
Py_DECREF(format_tuple);
|
|
500
613
|
|
|
@@ -532,7 +645,18 @@ PyObject *LIST_INDEX3(PyThreadState *tstate, PyObject *list, PyObject *item, PyO
|
|
|
532
645
|
return NULL;
|
|
533
646
|
}
|
|
534
647
|
|
|
535
|
-
Py_ssize_t start_ssize
|
|
648
|
+
Py_ssize_t start_ssize;
|
|
649
|
+
#if PYTHON_VERSION < 0x300
|
|
650
|
+
if (PyInt_CheckExact(start_index)) {
|
|
651
|
+
start_ssize = PyInt_AS_LONG(start_index);
|
|
652
|
+
} else {
|
|
653
|
+
start_ssize = PyLong_AsSsize_t(start_index);
|
|
654
|
+
}
|
|
655
|
+
#else
|
|
656
|
+
start_ssize = PyLong_AsSsize_t(start_index);
|
|
657
|
+
#endif
|
|
658
|
+
|
|
659
|
+
Py_DECREF(start_index);
|
|
536
660
|
|
|
537
661
|
return _LIST_INDEX_COMMON(tstate, (PyListObject *)list, item, start_ssize, Py_SIZE(list));
|
|
538
662
|
}
|
|
@@ -551,11 +675,24 @@ PyObject *LIST_INDEX4(PyThreadState *tstate, PyObject *list, PyObject *item, PyO
|
|
|
551
675
|
return NULL;
|
|
552
676
|
}
|
|
553
677
|
|
|
554
|
-
Py_ssize_t start_ssize
|
|
678
|
+
Py_ssize_t start_ssize;
|
|
679
|
+
#if PYTHON_VERSION < 0x300
|
|
680
|
+
if (PyInt_CheckExact(start_index)) {
|
|
681
|
+
start_ssize = PyInt_AS_LONG(start_index);
|
|
682
|
+
} else {
|
|
683
|
+
start_ssize = PyLong_AsSsize_t(start_index);
|
|
684
|
+
}
|
|
685
|
+
#else
|
|
686
|
+
start_ssize = PyLong_AsSsize_t(start_index);
|
|
687
|
+
#endif
|
|
688
|
+
|
|
689
|
+
Py_DECREF(start_index);
|
|
555
690
|
|
|
556
691
|
PyObject *stop_index = Nuitka_Number_IndexAsLong(stop);
|
|
557
692
|
|
|
558
693
|
if (unlikely(stop_index == NULL)) {
|
|
694
|
+
Py_DECREF(start_index);
|
|
695
|
+
|
|
559
696
|
CLEAR_ERROR_OCCURRED(tstate);
|
|
560
697
|
|
|
561
698
|
SET_CURRENT_EXCEPTION_TYPE0_STR(tstate, PyExc_TypeError,
|
|
@@ -563,7 +700,18 @@ PyObject *LIST_INDEX4(PyThreadState *tstate, PyObject *list, PyObject *item, PyO
|
|
|
563
700
|
return NULL;
|
|
564
701
|
}
|
|
565
702
|
|
|
566
|
-
Py_ssize_t stop_ssize
|
|
703
|
+
Py_ssize_t stop_ssize;
|
|
704
|
+
#if PYTHON_VERSION < 0x300
|
|
705
|
+
if (PyInt_CheckExact(stop_index)) {
|
|
706
|
+
stop_ssize = PyInt_AS_LONG(stop_index);
|
|
707
|
+
} else {
|
|
708
|
+
stop_ssize = PyLong_AsSsize_t(stop_index);
|
|
709
|
+
}
|
|
710
|
+
#else
|
|
711
|
+
stop_ssize = PyLong_AsSsize_t(stop_index);
|
|
712
|
+
#endif
|
|
713
|
+
|
|
714
|
+
Py_DECREF(stop_index);
|
|
567
715
|
|
|
568
716
|
return _LIST_INDEX_COMMON(tstate, (PyListObject *)list, item, start_ssize, stop_ssize);
|
|
569
717
|
}
|
|
@@ -571,6 +719,7 @@ PyObject *LIST_INDEX4(PyThreadState *tstate, PyObject *list, PyObject *item, PyO
|
|
|
571
719
|
bool LIST_INSERT(PyThreadState *tstate, PyObject *list, PyObject *index, PyObject *item) {
|
|
572
720
|
CHECK_OBJECT(list);
|
|
573
721
|
assert(PyList_CheckExact(list));
|
|
722
|
+
CHECK_OBJECT(index);
|
|
574
723
|
CHECK_OBJECT(item);
|
|
575
724
|
|
|
576
725
|
// TODO: Avoid the clear, by having this as a variant that doesn't set the
|
|
@@ -584,7 +733,18 @@ bool LIST_INSERT(PyThreadState *tstate, PyObject *list, PyObject *index, PyObjec
|
|
|
584
733
|
return false;
|
|
585
734
|
}
|
|
586
735
|
|
|
587
|
-
Py_ssize_t index_ssize
|
|
736
|
+
Py_ssize_t index_ssize;
|
|
737
|
+
#if PYTHON_VERSION < 0x300
|
|
738
|
+
if (PyInt_CheckExact(index_long)) {
|
|
739
|
+
index_ssize = PyInt_AS_LONG(index_long);
|
|
740
|
+
} else {
|
|
741
|
+
index_ssize = PyLong_AsSsize_t(index_long);
|
|
742
|
+
}
|
|
743
|
+
#else
|
|
744
|
+
index_ssize = PyLong_AsSsize_t(index_long);
|
|
745
|
+
#endif
|
|
746
|
+
|
|
747
|
+
Py_DECREF(index_long);
|
|
588
748
|
|
|
589
749
|
LIST_INSERT_CONST(list, index_ssize, item);
|
|
590
750
|
return true;
|
|
@@ -654,7 +814,7 @@ void LIST_REVERSE(PyObject *list) {
|
|
|
654
814
|
}
|
|
655
815
|
}
|
|
656
816
|
|
|
657
|
-
#if PYTHON_VERSION >=
|
|
817
|
+
#if PYTHON_VERSION >= 0x300 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT)
|
|
658
818
|
static bool allocateListItems(PyListObject *list, Py_ssize_t size) {
|
|
659
819
|
PyObject **items = PyMem_New(PyObject *, size);
|
|
660
820
|
|
|
@@ -668,12 +828,13 @@ static bool allocateListItems(PyListObject *list, Py_ssize_t size) {
|
|
|
668
828
|
|
|
669
829
|
return true;
|
|
670
830
|
}
|
|
831
|
+
|
|
671
832
|
#endif
|
|
672
833
|
|
|
673
834
|
PyObject *MAKE_LIST(PyThreadState *tstate, PyObject *iterable) {
|
|
674
835
|
// Can leave the size hinting to later functions, because the list is allocated empty without
|
|
675
836
|
// items, and when then extending, etc. length hints can be used.
|
|
676
|
-
PyObject *list = MAKE_LIST_EMPTY(0);
|
|
837
|
+
PyObject *list = MAKE_LIST_EMPTY(tstate, 0);
|
|
677
838
|
|
|
678
839
|
#if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT
|
|
679
840
|
PyObject *result = _PyList_Extend((PyListObject *)list, iterable);
|
|
@@ -685,8 +846,10 @@ PyObject *MAKE_LIST(PyThreadState *tstate, PyObject *iterable) {
|
|
|
685
846
|
return list;
|
|
686
847
|
}
|
|
687
848
|
#else
|
|
688
|
-
|
|
689
|
-
|
|
849
|
+
Py_INCREF(iterable);
|
|
850
|
+
|
|
851
|
+
#if PYTHON_VERSION >= 0x300
|
|
852
|
+
if (Nuitka_PyObject_HasLen(iterable)) {
|
|
690
853
|
Py_ssize_t iter_len = Nuitka_PyObject_Size(iterable);
|
|
691
854
|
|
|
692
855
|
if (unlikely(iter_len == -1)) {
|
|
@@ -707,6 +870,8 @@ PyObject *MAKE_LIST(PyThreadState *tstate, PyObject *iterable) {
|
|
|
707
870
|
|
|
708
871
|
bool res = LIST_EXTEND_FROM_ITERABLE(tstate, list, iterable);
|
|
709
872
|
|
|
873
|
+
Py_DECREF(iterable);
|
|
874
|
+
|
|
710
875
|
if (unlikely(res == false)) {
|
|
711
876
|
Py_DECREF(list);
|
|
712
877
|
return NULL;
|
|
@@ -716,4 +881,18 @@ PyObject *MAKE_LIST(PyThreadState *tstate, PyObject *iterable) {
|
|
|
716
881
|
#endif
|
|
717
882
|
}
|
|
718
883
|
|
|
719
|
-
#include "HelpersListsGenerated.c"
|
|
884
|
+
#include "HelpersListsGenerated.c"
|
|
885
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
886
|
+
// integrates with CPython, but also works on its own.
|
|
887
|
+
//
|
|
888
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
889
|
+
// you may not use this file except in compliance with the License.
|
|
890
|
+
// You may obtain a copy of the License at
|
|
891
|
+
//
|
|
892
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
893
|
+
//
|
|
894
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
895
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
896
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
897
|
+
// See the License for the specific language governing permissions and
|
|
898
|
+
// 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
|
/* WARNING, this code is GENERATED. Modify the template CodeTemplateMakeListSmall.c.j2 instead! */
|
|
19
4
|
|
|
20
5
|
/* This file is included from another C file, help IDEs to still parse it on its own. */
|
|
@@ -22,9 +7,9 @@
|
|
|
22
7
|
#include "nuitka/prelude.h"
|
|
23
8
|
#endif
|
|
24
9
|
|
|
25
|
-
PyObject *MAKE_LIST1(PyObject *arg0) {
|
|
10
|
+
PyObject *MAKE_LIST1(PyThreadState *tstate, PyObject *arg0) {
|
|
26
11
|
|
|
27
|
-
PyObject *result = MAKE_LIST_EMPTY(1);
|
|
12
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 1);
|
|
28
13
|
|
|
29
14
|
if (unlikely(result == NULL)) {
|
|
30
15
|
return NULL;
|
|
@@ -36,9 +21,9 @@ PyObject *MAKE_LIST1(PyObject *arg0) {
|
|
|
36
21
|
|
|
37
22
|
return result;
|
|
38
23
|
}
|
|
39
|
-
PyObject *MAKE_LIST2(PyObject *arg0, PyObject *arg1) {
|
|
24
|
+
PyObject *MAKE_LIST2(PyThreadState *tstate, PyObject *arg0, PyObject *arg1) {
|
|
40
25
|
|
|
41
|
-
PyObject *result = MAKE_LIST_EMPTY(2);
|
|
26
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 2);
|
|
42
27
|
|
|
43
28
|
if (unlikely(result == NULL)) {
|
|
44
29
|
return NULL;
|
|
@@ -54,9 +39,9 @@ PyObject *MAKE_LIST2(PyObject *arg0, PyObject *arg1) {
|
|
|
54
39
|
|
|
55
40
|
return result;
|
|
56
41
|
}
|
|
57
|
-
PyObject *MAKE_LIST3(PyObject *arg0, PyObject *arg1, PyObject *arg2) {
|
|
42
|
+
PyObject *MAKE_LIST3(PyThreadState *tstate, PyObject *arg0, PyObject *arg1, PyObject *arg2) {
|
|
58
43
|
|
|
59
|
-
PyObject *result = MAKE_LIST_EMPTY(3);
|
|
44
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 3);
|
|
60
45
|
|
|
61
46
|
if (unlikely(result == NULL)) {
|
|
62
47
|
return NULL;
|
|
@@ -76,12 +61,12 @@ PyObject *MAKE_LIST3(PyObject *arg0, PyObject *arg1, PyObject *arg2) {
|
|
|
76
61
|
|
|
77
62
|
return result;
|
|
78
63
|
}
|
|
79
|
-
PyObject *MAKE_LIST4(PyObject *list) {
|
|
64
|
+
PyObject *MAKE_LIST4(PyThreadState *tstate, PyObject *list) {
|
|
80
65
|
CHECK_OBJECT(list);
|
|
81
66
|
assert(PyList_CheckExact(list));
|
|
82
67
|
assert(PyList_GET_SIZE(list) == 4);
|
|
83
68
|
|
|
84
|
-
PyObject *result = MAKE_LIST_EMPTY(4);
|
|
69
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 4);
|
|
85
70
|
|
|
86
71
|
if (unlikely(result == NULL)) {
|
|
87
72
|
return NULL;
|
|
@@ -110,12 +95,12 @@ PyObject *MAKE_LIST4(PyObject *list) {
|
|
|
110
95
|
|
|
111
96
|
return result;
|
|
112
97
|
}
|
|
113
|
-
PyObject *MAKE_LIST5(PyObject *list) {
|
|
98
|
+
PyObject *MAKE_LIST5(PyThreadState *tstate, PyObject *list) {
|
|
114
99
|
CHECK_OBJECT(list);
|
|
115
100
|
assert(PyList_CheckExact(list));
|
|
116
101
|
assert(PyList_GET_SIZE(list) == 5);
|
|
117
102
|
|
|
118
|
-
PyObject *result = MAKE_LIST_EMPTY(5);
|
|
103
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 5);
|
|
119
104
|
|
|
120
105
|
if (unlikely(result == NULL)) {
|
|
121
106
|
return NULL;
|
|
@@ -149,12 +134,12 @@ PyObject *MAKE_LIST5(PyObject *list) {
|
|
|
149
134
|
|
|
150
135
|
return result;
|
|
151
136
|
}
|
|
152
|
-
PyObject *MAKE_LIST6(PyObject *list) {
|
|
137
|
+
PyObject *MAKE_LIST6(PyThreadState *tstate, PyObject *list) {
|
|
153
138
|
CHECK_OBJECT(list);
|
|
154
139
|
assert(PyList_CheckExact(list));
|
|
155
140
|
assert(PyList_GET_SIZE(list) == 6);
|
|
156
141
|
|
|
157
|
-
PyObject *result = MAKE_LIST_EMPTY(6);
|
|
142
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 6);
|
|
158
143
|
|
|
159
144
|
if (unlikely(result == NULL)) {
|
|
160
145
|
return NULL;
|
|
@@ -193,12 +178,12 @@ PyObject *MAKE_LIST6(PyObject *list) {
|
|
|
193
178
|
|
|
194
179
|
return result;
|
|
195
180
|
}
|
|
196
|
-
PyObject *MAKE_LIST7(PyObject *list) {
|
|
181
|
+
PyObject *MAKE_LIST7(PyThreadState *tstate, PyObject *list) {
|
|
197
182
|
CHECK_OBJECT(list);
|
|
198
183
|
assert(PyList_CheckExact(list));
|
|
199
184
|
assert(PyList_GET_SIZE(list) == 7);
|
|
200
185
|
|
|
201
|
-
PyObject *result = MAKE_LIST_EMPTY(7);
|
|
186
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 7);
|
|
202
187
|
|
|
203
188
|
if (unlikely(result == NULL)) {
|
|
204
189
|
return NULL;
|
|
@@ -242,12 +227,12 @@ PyObject *MAKE_LIST7(PyObject *list) {
|
|
|
242
227
|
|
|
243
228
|
return result;
|
|
244
229
|
}
|
|
245
|
-
PyObject *MAKE_LIST8(PyObject *list) {
|
|
230
|
+
PyObject *MAKE_LIST8(PyThreadState *tstate, PyObject *list) {
|
|
246
231
|
CHECK_OBJECT(list);
|
|
247
232
|
assert(PyList_CheckExact(list));
|
|
248
233
|
assert(PyList_GET_SIZE(list) == 8);
|
|
249
234
|
|
|
250
|
-
PyObject *result = MAKE_LIST_EMPTY(8);
|
|
235
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 8);
|
|
251
236
|
|
|
252
237
|
if (unlikely(result == NULL)) {
|
|
253
238
|
return NULL;
|
|
@@ -296,12 +281,12 @@ PyObject *MAKE_LIST8(PyObject *list) {
|
|
|
296
281
|
|
|
297
282
|
return result;
|
|
298
283
|
}
|
|
299
|
-
PyObject *MAKE_LIST9(PyObject *list) {
|
|
284
|
+
PyObject *MAKE_LIST9(PyThreadState *tstate, PyObject *list) {
|
|
300
285
|
CHECK_OBJECT(list);
|
|
301
286
|
assert(PyList_CheckExact(list));
|
|
302
287
|
assert(PyList_GET_SIZE(list) == 9);
|
|
303
288
|
|
|
304
|
-
PyObject *result = MAKE_LIST_EMPTY(9);
|
|
289
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 9);
|
|
305
290
|
|
|
306
291
|
if (unlikely(result == NULL)) {
|
|
307
292
|
return NULL;
|
|
@@ -355,12 +340,12 @@ PyObject *MAKE_LIST9(PyObject *list) {
|
|
|
355
340
|
|
|
356
341
|
return result;
|
|
357
342
|
}
|
|
358
|
-
PyObject *MAKE_LIST10(PyObject *list) {
|
|
343
|
+
PyObject *MAKE_LIST10(PyThreadState *tstate, PyObject *list) {
|
|
359
344
|
CHECK_OBJECT(list);
|
|
360
345
|
assert(PyList_CheckExact(list));
|
|
361
346
|
assert(PyList_GET_SIZE(list) == 10);
|
|
362
347
|
|
|
363
|
-
PyObject *result = MAKE_LIST_EMPTY(10);
|
|
348
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 10);
|
|
364
349
|
|
|
365
350
|
if (unlikely(result == NULL)) {
|
|
366
351
|
return NULL;
|
|
@@ -419,12 +404,12 @@ PyObject *MAKE_LIST10(PyObject *list) {
|
|
|
419
404
|
|
|
420
405
|
return result;
|
|
421
406
|
}
|
|
422
|
-
PyObject *MAKE_LIST11(PyObject *list) {
|
|
407
|
+
PyObject *MAKE_LIST11(PyThreadState *tstate, PyObject *list) {
|
|
423
408
|
CHECK_OBJECT(list);
|
|
424
409
|
assert(PyList_CheckExact(list));
|
|
425
410
|
assert(PyList_GET_SIZE(list) == 11);
|
|
426
411
|
|
|
427
|
-
PyObject *result = MAKE_LIST_EMPTY(11);
|
|
412
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 11);
|
|
428
413
|
|
|
429
414
|
if (unlikely(result == NULL)) {
|
|
430
415
|
return NULL;
|
|
@@ -488,12 +473,12 @@ PyObject *MAKE_LIST11(PyObject *list) {
|
|
|
488
473
|
|
|
489
474
|
return result;
|
|
490
475
|
}
|
|
491
|
-
PyObject *MAKE_LIST12(PyObject *list) {
|
|
476
|
+
PyObject *MAKE_LIST12(PyThreadState *tstate, PyObject *list) {
|
|
492
477
|
CHECK_OBJECT(list);
|
|
493
478
|
assert(PyList_CheckExact(list));
|
|
494
479
|
assert(PyList_GET_SIZE(list) == 12);
|
|
495
480
|
|
|
496
|
-
PyObject *result = MAKE_LIST_EMPTY(12);
|
|
481
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, 12);
|
|
497
482
|
|
|
498
483
|
if (unlikely(result == NULL)) {
|
|
499
484
|
return NULL;
|
|
@@ -562,3 +547,18 @@ PyObject *MAKE_LIST12(PyObject *list) {
|
|
|
562
547
|
|
|
563
548
|
return result;
|
|
564
549
|
}
|
|
550
|
+
|
|
551
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
552
|
+
// integrates with CPython, but also works on its own.
|
|
553
|
+
//
|
|
554
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
555
|
+
// you may not use this file except in compliance with the License.
|
|
556
|
+
// You may obtain a copy of the License at
|
|
557
|
+
//
|
|
558
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
559
|
+
//
|
|
560
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
561
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
562
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
563
|
+
// See the License for the specific language governing permissions and
|
|
564
|
+
// limitations under the License.
|