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
|
{% from 'HelperObjectTools.c.j2' import CHECK_OBJECTS %}
|
|
19
4
|
{% if args_count == 1 %}
|
|
20
5
|
PyObject *CALL_METHODDESCR_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *called, PyObject *arg) {
|
|
@@ -84,7 +69,7 @@ PyObject *CALL_METHODDESCR_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObje
|
|
|
84
69
|
PyObject *result;
|
|
85
70
|
|
|
86
71
|
#if PYTHON_VERSION < 0x360
|
|
87
|
-
PyObject *pos_args = MAKE_TUPLE(args+1, {{args_count-1}});
|
|
72
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args+1, {{args_count-1}});
|
|
88
73
|
|
|
89
74
|
if (flags & METH_KEYWORDS) {
|
|
90
75
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
@@ -95,19 +80,19 @@ PyObject *CALL_METHODDESCR_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObje
|
|
|
95
80
|
Py_DECREF(pos_args);
|
|
96
81
|
#else
|
|
97
82
|
if (flags == (METH_VARARGS|METH_KEYWORDS)) {
|
|
98
|
-
PyObject *pos_args = MAKE_TUPLE(args+1, {{args_count-1}});
|
|
83
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args+1, {{args_count-1}});
|
|
99
84
|
result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
|
|
100
85
|
Py_DECREF(pos_args);
|
|
101
86
|
} else if (flags == METH_FASTCALL) {
|
|
102
87
|
#if PYTHON_VERSION < 0x370
|
|
103
88
|
result = (*(_PyCFunctionFast)method)(self, (PyObject **)args+1, {{args_count-1}}, NULL);
|
|
104
89
|
#else
|
|
105
|
-
PyObject *pos_args = MAKE_TUPLE(args+1, {{args_count-1}});
|
|
90
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args+1, {{args_count-1}});
|
|
106
91
|
result = (*(_PyCFunctionFast)method)(self, &pos_args, {{args_count}});
|
|
107
92
|
Py_DECREF(pos_args);
|
|
108
93
|
#endif
|
|
109
94
|
} else {
|
|
110
|
-
PyObject *pos_args = MAKE_TUPLE(args+1, {{args_count-1}});
|
|
95
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args+1, {{args_count-1}});
|
|
111
96
|
result = (*method)(self, pos_args);
|
|
112
97
|
Py_DECREF(pos_args);
|
|
113
98
|
}
|
|
@@ -133,7 +118,7 @@ PyObject *CALL_METHODDESCR_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObje
|
|
|
133
118
|
{% if args_count == 0 %}
|
|
134
119
|
PyObject *result = CALL_FUNCTION(tstate, called, const_tuple_empty, NULL);
|
|
135
120
|
{% else %}
|
|
136
|
-
PyObject *pos_args = MAKE_TUPLE(args, {{args_count}});
|
|
121
|
+
PyObject *pos_args = MAKE_TUPLE(tstate, args, {{args_count}});
|
|
137
122
|
|
|
138
123
|
PyObject *result = CALL_FUNCTION(tstate, called, pos_args, NULL);
|
|
139
124
|
|
|
@@ -143,3 +128,18 @@ PyObject *CALL_METHODDESCR_WITH_ARGS{{args_count}}(PyThreadState *tstate, PyObje
|
|
|
143
128
|
return result;
|
|
144
129
|
#endif
|
|
145
130
|
}
|
|
131
|
+
|
|
132
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
133
|
+
{# integrates with CPython, but also works on its own. #}
|
|
134
|
+
{# #}
|
|
135
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
136
|
+
{# you may not use this file except in compliance with the License. #}
|
|
137
|
+
{# You may obtain a copy of the License at #}
|
|
138
|
+
{# #}
|
|
139
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
140
|
+
{# #}
|
|
141
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
142
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
143
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
144
|
+
{# See the License for the specific language governing permissions and #}
|
|
145
|
+
{# limitations under the License. #}
|
|
@@ -1,26 +1,11 @@
|
|
|
1
|
-
{# Copyright
|
|
2
|
-
|
|
3
|
-
{
|
|
4
|
-
{# integrates with CPython, but also works on its own. #}
|
|
5
|
-
{# #}
|
|
6
|
-
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
7
|
-
{# you may not use this file except in compliance with the License. #}
|
|
8
|
-
{# You may obtain a copy of the License at #}
|
|
9
|
-
{# #}
|
|
10
|
-
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
11
|
-
{# #}
|
|
12
|
-
{# Unless required by applicable law or agreed to in writing, software #}
|
|
13
|
-
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
14
|
-
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
15
|
-
{# See the License for the specific language governing permissions and #}
|
|
16
|
-
{# limitations under the License. #}
|
|
17
|
-
{# #}
|
|
18
|
-
PyObject *MAKE_LIST{{args_count}}(PyObject *list) {
|
|
1
|
+
{# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
|
|
2
|
+
|
|
3
|
+
PyObject *MAKE_LIST{{args_count}}(PyThreadState *tstate, PyObject *list) {
|
|
19
4
|
CHECK_OBJECT(list);
|
|
20
5
|
assert(PyList_CheckExact(list));
|
|
21
6
|
assert(PyList_GET_SIZE(list) == {{args_count}});
|
|
22
7
|
|
|
23
|
-
PyObject *result = MAKE_LIST_EMPTY({{args_count}});
|
|
8
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, {{args_count}});
|
|
24
9
|
|
|
25
10
|
if (unlikely(result == NULL)) {
|
|
26
11
|
return NULL;
|
|
@@ -36,3 +21,18 @@ PyObject *MAKE_LIST{{args_count}}(PyObject *list) {
|
|
|
36
21
|
|
|
37
22
|
return result;
|
|
38
23
|
}
|
|
24
|
+
|
|
25
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
26
|
+
{# integrates with CPython, but also works on its own. #}
|
|
27
|
+
{# #}
|
|
28
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
29
|
+
{# you may not use this file except in compliance with the License. #}
|
|
30
|
+
{# You may obtain a copy of the License at #}
|
|
31
|
+
{# #}
|
|
32
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
33
|
+
{# #}
|
|
34
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
35
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
36
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
37
|
+
{# See the License for the specific language governing permissions and #}
|
|
38
|
+
{# limitations under the License. #}
|
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
{# Copyright
|
|
2
|
-
|
|
3
|
-
{
|
|
4
|
-
{# integrates with CPython, but also works on its own. #}
|
|
5
|
-
{# #}
|
|
6
|
-
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
7
|
-
{# you may not use this file except in compliance with the License. #}
|
|
8
|
-
{# You may obtain a copy of the License at #}
|
|
9
|
-
{# #}
|
|
10
|
-
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
11
|
-
{# #}
|
|
12
|
-
{# Unless required by applicable law or agreed to in writing, software #}
|
|
13
|
-
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
14
|
-
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
15
|
-
{# See the License for the specific language governing permissions and #}
|
|
16
|
-
{# limitations under the License. #}
|
|
17
|
-
{# #}
|
|
18
|
-
PyObject *MAKE_LIST{{args_count}}(
|
|
1
|
+
{# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
|
|
2
|
+
|
|
3
|
+
PyObject *MAKE_LIST{{args_count}}(PyThreadState *tstate,
|
|
19
4
|
{% for i in range(args_count) %}
|
|
20
5
|
{% if i != 0 %}
|
|
21
6
|
,
|
|
@@ -24,7 +9,7 @@ PyObject *MAKE_LIST{{args_count}}(
|
|
|
24
9
|
{% endfor %}
|
|
25
10
|
) {
|
|
26
11
|
|
|
27
|
-
PyObject *result = MAKE_LIST_EMPTY({{args_count}});
|
|
12
|
+
PyObject *result = MAKE_LIST_EMPTY(tstate, {{args_count}});
|
|
28
13
|
|
|
29
14
|
if (unlikely(result == NULL)) {
|
|
30
15
|
return NULL;
|
|
@@ -39,3 +24,18 @@ PyObject *MAKE_LIST{{args_count}}(
|
|
|
39
24
|
|
|
40
25
|
return result;
|
|
41
26
|
}
|
|
27
|
+
|
|
28
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
29
|
+
{# integrates with CPython, but also works on its own. #}
|
|
30
|
+
{# #}
|
|
31
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
32
|
+
{# you may not use this file except in compliance with the License. #}
|
|
33
|
+
{# You may obtain a copy of the License at #}
|
|
34
|
+
{# #}
|
|
35
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
36
|
+
{# #}
|
|
37
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
38
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
39
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
40
|
+
{# See the License for the specific language governing permissions and #}
|
|
41
|
+
{# 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
|
PyObject *{{builtin_type.type_name.upper()}}_{{method_name.upper()}}{{api_suffix}}(PyThreadState *tstate, {{builtin_type.getVariableDecl(builtin_arg_name)}} {{formatArgumentDeclaration(arg_types, arg_names, starting=False)}}) {
|
|
19
4
|
{{builtin_type.getCheckValueCode(builtin_arg_name)}}
|
|
20
5
|
|
|
@@ -51,3 +36,18 @@ PyObject *{{builtin_type.type_name.upper()}}_{{method_name.upper()}}{{api_suffix
|
|
|
51
36
|
{% endif %}
|
|
52
37
|
return result;
|
|
53
38
|
}
|
|
39
|
+
|
|
40
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
41
|
+
{# integrates with CPython, but also works on its own. #}
|
|
42
|
+
{# #}
|
|
43
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
44
|
+
{# you may not use this file except in compliance with the License. #}
|
|
45
|
+
{# You may obtain a copy of the License at #}
|
|
46
|
+
{# #}
|
|
47
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
48
|
+
{# #}
|
|
49
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
50
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
51
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
52
|
+
{# See the License for the specific language governing permissions and #}
|
|
53
|
+
{# limitations under the License. #}
|
|
@@ -1,26 +1,11 @@
|
|
|
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
|
{% macro dict_copy_iteration(result, dict_value, per_key_code, per_value_code, value_ref) %}
|
|
19
4
|
CHECK_OBJECT({{dict_value}});
|
|
20
5
|
assert(PyDict_CheckExact({{dict_value}}));
|
|
21
6
|
|
|
22
7
|
if (((PyDictObject *){{dict_value}})->ma_used == 0) {
|
|
23
|
-
{{ result }} = MAKE_DICT_EMPTY();
|
|
8
|
+
{{ result }} = MAKE_DICT_EMPTY(tstate);
|
|
24
9
|
}
|
|
25
10
|
else
|
|
26
11
|
{
|
|
@@ -41,7 +26,7 @@ else
|
|
|
41
26
|
PyObject *value = entry->me_value;
|
|
42
27
|
{{ per_value_code }}
|
|
43
28
|
|
|
44
|
-
int res = PyDict_SetItem({{ result }}, key, value);
|
|
29
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem({{ result }}, key, value);
|
|
45
30
|
assert(res == 0);
|
|
46
31
|
|
|
47
32
|
{% if value_ref == 1 %}
|
|
@@ -51,15 +36,15 @@ else
|
|
|
51
36
|
}
|
|
52
37
|
#else
|
|
53
38
|
/* Python 3 */
|
|
54
|
-
#ifndef PY_NOGIL
|
|
55
39
|
if (_PyDict_HasSplitTable(dict_mp)) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject();
|
|
40
|
+
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject(tstate);
|
|
59
41
|
assert(result_mp != NULL);
|
|
60
42
|
{{ result }} = (PyObject *)result_mp;
|
|
61
43
|
|
|
44
|
+
Py_ssize_t size = DK_ENTRIES_SIZE(dict_mp->ma_keys);
|
|
45
|
+
|
|
62
46
|
{% if per_key_code %}
|
|
47
|
+
#if PYTHON_VERSION < 0x3b0
|
|
63
48
|
for (Py_ssize_t i = 0; i < size; i++) {
|
|
64
49
|
PyDictKeyEntry *entry = &DK_ENTRIES(dict_mp->ma_keys)[i];
|
|
65
50
|
|
|
@@ -67,6 +52,16 @@ else
|
|
|
67
52
|
PyObject *key = entry->me_key;
|
|
68
53
|
{{ per_key_code }}
|
|
69
54
|
}
|
|
55
|
+
#else
|
|
56
|
+
Py_ssize_t pos = 0;
|
|
57
|
+
PyObject *key, *_value;
|
|
58
|
+
|
|
59
|
+
while(Nuitka_DictNext((PyObject *)dict_mp, &pos, &key, &_value)) {
|
|
60
|
+
CHECK_OBJECT(key);
|
|
61
|
+
CHECK_OBJECT(_value);
|
|
62
|
+
|
|
63
|
+
{{ per_key_code }}
|
|
64
|
+
#endif
|
|
70
65
|
}
|
|
71
66
|
{% endif %}
|
|
72
67
|
|
|
@@ -76,7 +71,7 @@ else
|
|
|
76
71
|
#if PYTHON_VERSION >= 0x3b0
|
|
77
72
|
// Need to preserve values prefix.
|
|
78
73
|
size_t prefix_size = ((uint8_t *)new_values)[-1];
|
|
79
|
-
memcpy((
|
|
74
|
+
memcpy((char *)new_values - prefix_size, (char *)dict_mp->ma_values - prefix_size, prefix_size-1);
|
|
80
75
|
#endif
|
|
81
76
|
|
|
82
77
|
result_mp->ma_values = new_values;
|
|
@@ -106,7 +101,6 @@ else
|
|
|
106
101
|
|
|
107
102
|
Nuitka_GC_Track(result_mp);
|
|
108
103
|
} else
|
|
109
|
-
#endif
|
|
110
104
|
{# TODO: This should be working for before 3.6 as well, but posed riddles with
|
|
111
105
|
crashes at release time. Need to check if the keys allocator is different
|
|
112
106
|
in some API somehow, or non-split dictionaries which didn't exist then are
|
|
@@ -119,14 +113,14 @@ else
|
|
|
119
113
|
assert(dict_mp->ma_values == NULL);
|
|
120
114
|
assert(dict_mp->ma_keys->dk_refcnt == 1);
|
|
121
115
|
|
|
122
|
-
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject();
|
|
116
|
+
PyDictObject *result_mp = _Nuitka_AllocatePyDictObject(tstate);
|
|
123
117
|
{{ result }} = (PyObject *)result_mp;
|
|
124
118
|
|
|
125
119
|
result_mp->ma_values = NULL;
|
|
126
120
|
result_mp->ma_used = dict_mp->ma_used;
|
|
127
121
|
|
|
128
122
|
Py_ssize_t keys_size = _Nuitka_Py_PyDict_KeysSize(dict_mp->ma_keys);
|
|
129
|
-
result_mp->ma_keys = (
|
|
123
|
+
result_mp->ma_keys = _Nuitka_AllocatePyDictKeysObject(tstate, keys_size);
|
|
130
124
|
assert(result_mp->ma_keys);
|
|
131
125
|
|
|
132
126
|
memcpy(result_mp->ma_keys, dict_mp->ma_keys, keys_size);
|
|
@@ -190,7 +184,7 @@ else
|
|
|
190
184
|
{% endif %}
|
|
191
185
|
PyObject *key = *key_ptr;
|
|
192
186
|
{% if per_key_code %}
|
|
193
|
-
if (is_unicode) {
|
|
187
|
+
if (is_unicode == false) {
|
|
194
188
|
{{ per_key_code }}
|
|
195
189
|
}
|
|
196
190
|
{% endif %}
|
|
@@ -213,46 +207,57 @@ else
|
|
|
213
207
|
{
|
|
214
208
|
{{ result }} = _PyDict_NewPresized(dict_mp->ma_used);
|
|
215
209
|
|
|
210
|
+
#if PYTHON_VERSION < 0x3b0
|
|
216
211
|
Py_ssize_t size = DK_ENTRIES_SIZE(dict_mp->ma_keys);
|
|
217
212
|
|
|
218
213
|
for (Py_ssize_t i = 0; i < size; i++) {
|
|
219
214
|
PyDictKeyEntry *entry = &DK_ENTRIES(dict_mp->ma_keys)[i];
|
|
215
|
+
PyObject *value = entry->me_value;
|
|
220
216
|
|
|
221
|
-
if (
|
|
217
|
+
if (value != NULL) {
|
|
222
218
|
PyObject *key = entry->me_key;
|
|
219
|
+
CHECK_OBJECT(key);
|
|
220
|
+
|
|
223
221
|
{{ per_key_code }}
|
|
224
222
|
|
|
225
|
-
|
|
226
|
-
{{per_value_code}}
|
|
223
|
+
CHECK_OBJECT(value);
|
|
227
224
|
|
|
228
|
-
|
|
225
|
+
{{ per_value_code }}
|
|
226
|
+
|
|
227
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem({{ result }}, key, value);
|
|
229
228
|
assert(res == 0);
|
|
230
229
|
|
|
231
230
|
{% if value_ref == 1 %}
|
|
232
231
|
Py_DECREF(value);
|
|
233
232
|
{% endif %}
|
|
234
|
-
|
|
235
233
|
}
|
|
236
234
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
{% endmacro %}
|
|
235
|
+
#else
|
|
236
|
+
Py_ssize_t pos = 0;
|
|
237
|
+
PyObject *key, *value;
|
|
241
238
|
|
|
242
|
-
|
|
243
|
-
|
|
239
|
+
while(Nuitka_DictNext((PyObject *)dict_mp, &pos, &key, &value)) {
|
|
240
|
+
CHECK_OBJECT(key);
|
|
241
|
+
CHECK_OBJECT(value);
|
|
244
242
|
|
|
245
|
-
|
|
246
|
-
typedef PyObject * PyDictValues;
|
|
247
|
-
#endif
|
|
243
|
+
{{ per_key_code }}
|
|
248
244
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
245
|
+
CHECK_OBJECT(value);
|
|
246
|
+
|
|
247
|
+
{{ per_value_code }}
|
|
248
|
+
|
|
249
|
+
NUITKA_MAY_BE_UNUSED int res = PyDict_SetItem({{ result }}, key, value);
|
|
250
|
+
assert(res == 0);
|
|
251
|
+
|
|
252
|
+
{% if value_ref == 1 %}
|
|
253
|
+
Py_DECREF(value);
|
|
254
|
+
{% endif %}
|
|
255
|
+
}
|
|
256
|
+
#endif
|
|
257
|
+
}
|
|
255
258
|
#endif
|
|
259
|
+
}
|
|
260
|
+
{% endmacro %}
|
|
256
261
|
|
|
257
262
|
// More than 2/3 of the keys are used, i.e. no space is wasted.
|
|
258
263
|
#if PYTHON_VERSION < 0x360
|
|
@@ -266,12 +271,12 @@ static inline PyDictValues *_Nuitka_PyDict_new_values(Py_ssize_t size) {
|
|
|
266
271
|
Py_ssize_t values_size = sizeof(PyObject *) * size;
|
|
267
272
|
|
|
268
273
|
#if PYTHON_VERSION < 0x3b0
|
|
269
|
-
return (PyDictValues *)
|
|
274
|
+
return (PyDictValues *)NuitkaMem_Malloc(values_size);
|
|
270
275
|
#else
|
|
271
276
|
// With Python3.11 or higher a prefix is allocated too.
|
|
272
277
|
size_t prefix_size = _Py_SIZE_ROUND_UP(size + 2, sizeof(PyObject *));
|
|
273
278
|
size_t n = prefix_size + values_size;
|
|
274
|
-
uint8_t *mem = (uint8_t *)
|
|
279
|
+
uint8_t *mem = (uint8_t *)NuitkaMem_Malloc(n);
|
|
275
280
|
|
|
276
281
|
assert(mem != NULL);
|
|
277
282
|
|
|
@@ -282,60 +287,8 @@ static inline PyDictValues *_Nuitka_PyDict_new_values(Py_ssize_t size) {
|
|
|
282
287
|
#endif
|
|
283
288
|
}
|
|
284
289
|
|
|
285
|
-
#if NUITKA_DICT_HAS_FREELIST
|
|
286
|
-
static struct _Py_dict_state *_Nuitka_Py_get_dict_state(void) {
|
|
287
|
-
PyInterpreterState *interp = _PyInterpreterState_GET();
|
|
288
|
-
return &interp->dict_state;
|
|
289
|
-
}
|
|
290
|
-
#endif
|
|
291
|
-
|
|
292
|
-
#if PYTHON_VERSION >= 0x300
|
|
293
|
-
static PyDictObject *_Nuitka_AllocatePyDictObject(void) {
|
|
294
|
-
PyDictObject *result_mp;
|
|
295
|
-
|
|
296
|
-
#if NUITKA_DICT_HAS_FREELIST
|
|
297
|
-
struct _Py_dict_state *state = _Nuitka_Py_get_dict_state();
|
|
298
|
-
|
|
299
|
-
if (state->numfree) {
|
|
300
|
-
result_mp = state->free_list[--state->numfree];
|
|
301
|
-
|
|
302
|
-
Nuitka_Py_NewReference((PyObject *)result_mp);
|
|
303
|
-
|
|
304
|
-
assert(PyDict_CheckExact((PyObject *)result_mp));
|
|
305
|
-
assert(result_mp != NULL);
|
|
306
|
-
} else
|
|
307
|
-
#endif
|
|
308
|
-
{
|
|
309
|
-
result_mp = (PyDictObject *)Nuitka_GC_New(&PyDict_Type);
|
|
310
|
-
}
|
|
311
290
|
|
|
312
|
-
|
|
313
|
-
}
|
|
314
|
-
#endif
|
|
315
|
-
|
|
316
|
-
#if PYTHON_VERSION >= 0x360 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_DICT_OPT)
|
|
317
|
-
static Py_ssize_t _Nuitka_Py_PyDict_KeysSize(PyDictKeysObject *keys) {
|
|
318
|
-
#if PYTHON_VERSION < 0x360
|
|
319
|
-
return sizeof(PyDictKeysObject) + (DK_SIZE(keys)-1) * sizeof(PyDictKeyEntry);
|
|
320
|
-
#elif PYTHON_VERSION < 0x370
|
|
321
|
-
return (sizeof(PyDictKeysObject) -
|
|
322
|
-
Py_MEMBER_SIZE(PyDictKeysObject, dk_indices) +
|
|
323
|
-
DK_IXSIZE(keys) * DK_SIZE(keys) +
|
|
324
|
-
DK_USABLE_FRACTION(DK_SIZE(keys)) * sizeof(PyDictKeyEntry));
|
|
325
|
-
#elif PYTHON_VERSION < 0x3b0
|
|
326
|
-
return (sizeof(PyDictKeysObject) + DK_IXSIZE(keys) * DK_SIZE(keys) +
|
|
327
|
-
DK_USABLE_FRACTION(DK_SIZE(keys)) * sizeof(PyDictKeyEntry));
|
|
328
|
-
#else
|
|
329
|
-
size_t entry_size = keys->dk_kind == DICT_KEYS_GENERAL
|
|
330
|
-
? sizeof(PyDictKeyEntry) : sizeof(PyDictUnicodeEntry);
|
|
331
|
-
return (sizeof(PyDictKeysObject)
|
|
332
|
-
+ ((size_t)1 << keys->dk_log2_index_bytes)
|
|
333
|
-
+ DK_USABLE_FRACTION(DK_SIZE(keys)) * entry_size);
|
|
334
|
-
#endif
|
|
335
|
-
}
|
|
336
|
-
#endif
|
|
337
|
-
|
|
338
|
-
PyObject *DICT_COPY(PyObject *dict_value) {
|
|
291
|
+
PyObject *DICT_COPY(PyThreadState *tstate, PyObject *dict_value) {
|
|
339
292
|
#if _NUITKA_EXPERIMENTAL_DISABLE_DICT_OPT
|
|
340
293
|
CHECK_OBJECT(dict_value);
|
|
341
294
|
assert(PyDict_CheckExact(dict_value));
|
|
@@ -357,7 +310,7 @@ PyObject *DEEP_COPY_DICT(PyThreadState *tstate, PyObject *dict_value) {
|
|
|
357
310
|
CHECK_OBJECT(dict_value);
|
|
358
311
|
assert(PyDict_CheckExact(dict_value));
|
|
359
312
|
|
|
360
|
-
result = DICT_COPY(dict_value);
|
|
313
|
+
result = DICT_COPY(tstate, dict_value);
|
|
361
314
|
|
|
362
315
|
Py_ssize_t pos = 0;
|
|
363
316
|
PyObject *key, *value;
|
|
@@ -377,7 +330,7 @@ PyObject *DEEP_COPY_DICT(PyThreadState *tstate, PyObject *dict_value) {
|
|
|
377
330
|
}
|
|
378
331
|
|
|
379
332
|
// Helper for function calls with star dict arguments. */
|
|
380
|
-
static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
333
|
+
static PyObject *COPY_DICT_KW(PyThreadState *tstate, PyObject *dict_value) {
|
|
381
334
|
PyObject *result;
|
|
382
335
|
bool had_kw_error = false;
|
|
383
336
|
|
|
@@ -385,7 +338,7 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
385
338
|
CHECK_OBJECT(dict_value);
|
|
386
339
|
assert(PyDict_CheckExact(dict_value));
|
|
387
340
|
|
|
388
|
-
result = DICT_COPY(dict_value);
|
|
341
|
+
result = DICT_COPY(tstate, dict_value);
|
|
389
342
|
|
|
390
343
|
Py_ssize_t pos = 0;
|
|
391
344
|
PyObject *key, *value;
|
|
@@ -406,3 +359,18 @@ static PyObject *COPY_DICT_KW(PyObject *dict_value) {
|
|
|
406
359
|
|
|
407
360
|
return result;
|
|
408
361
|
}
|
|
362
|
+
|
|
363
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
364
|
+
{# integrates with CPython, but also works on its own. #}
|
|
365
|
+
{# #}
|
|
366
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
367
|
+
{# you may not use this file except in compliance with the License. #}
|
|
368
|
+
{# You may obtain a copy of the License at #}
|
|
369
|
+
{# #}
|
|
370
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
371
|
+
{# #}
|
|
372
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
373
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
374
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
375
|
+
{# See the License for the specific language governing permissions and #}
|
|
376
|
+
{# limitations under the License. #}
|
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
{# Copyright
|
|
2
|
-
|
|
3
|
-
{
|
|
4
|
-
{# integrates with CPython, but also works on its own. #}
|
|
5
|
-
{# #}
|
|
6
|
-
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
7
|
-
{# you may not use this file except in compliance with the License. #}
|
|
8
|
-
{# You may obtain a copy of the License at #}
|
|
9
|
-
{# #}
|
|
10
|
-
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
11
|
-
{# #}
|
|
12
|
-
{# Unless required by applicable law or agreed to in writing, software #}
|
|
13
|
-
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
14
|
-
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
15
|
-
{# See the License for the specific language governing permissions and #}
|
|
16
|
-
{# limitations under the License. #}
|
|
17
|
-
{# #}
|
|
18
|
-
{{target.getTypeDecl()}} {{module_code_name}}(void) {
|
|
1
|
+
{# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
|
|
2
|
+
|
|
3
|
+
{{ target.getTypeDecl() }} {{module_code_name}}(void) {
|
|
19
4
|
static PyObject *module_{{module_code_name.lower()}} = NULL;
|
|
20
5
|
|
|
21
6
|
if (module_{{module_code_name.lower()}} == NULL) {
|
|
@@ -26,8 +11,7 @@
|
|
|
26
11
|
#ifndef __NUITKA_NO_ASSERT__
|
|
27
12
|
PyErr_PrintEx(0);
|
|
28
13
|
#endif
|
|
29
|
-
|
|
30
|
-
abort();
|
|
14
|
+
NUITKA_ERROR_EXIT("Unexpected failure of hard import of '{{module_name}}'");
|
|
31
15
|
{% else %}
|
|
32
16
|
return NULL;
|
|
33
17
|
{% endif %}
|
|
@@ -36,3 +20,18 @@
|
|
|
36
20
|
|
|
37
21
|
return module_{{module_code_name.lower()}};
|
|
38
22
|
}
|
|
23
|
+
|
|
24
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
25
|
+
{# integrates with CPython, but also works on its own. #}
|
|
26
|
+
{# #}
|
|
27
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
28
|
+
{# you may not use this file except in compliance with the License. #}
|
|
29
|
+
{# You may obtain a copy of the License at #}
|
|
30
|
+
{# #}
|
|
31
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
32
|
+
{# #}
|
|
33
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
34
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
35
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
36
|
+
{# See the License for the specific language governing permissions and #}
|
|
37
|
+
{# 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
|
{% macro declare_long_access(type_desc, operand) %}
|
|
19
4
|
{% if type_desc == long_desc %}
|
|
20
5
|
PyLongObject *{{operand.lstrip("*")}}_long_object = (PyLongObject *){{operand}};
|
|
@@ -31,7 +16,7 @@
|
|
|
31
16
|
}
|
|
32
17
|
|
|
33
18
|
Py_ssize_t {{operand}}_digit_count = 0;
|
|
34
|
-
digit {{operand}}_digits[5]; // Could be more minimal and depend on sizeof(digit)
|
|
19
|
+
digit {{operand}}_digits[5] = {0}; // Could be more minimal and depend on sizeof(digit)
|
|
35
20
|
{
|
|
36
21
|
unsigned long t = {{operand}}_abs_ival;
|
|
37
22
|
|
|
@@ -44,10 +29,25 @@
|
|
|
44
29
|
}
|
|
45
30
|
}
|
|
46
31
|
|
|
47
|
-
Py_ssize_t {{operand}}_size = {{operand}}_is_negative == false ? {{operand}}_digit_count : -{{operand}}_digit_count;
|
|
32
|
+
NUITKA_MAY_BE_UNUSED Py_ssize_t {{operand}}_size = {{operand}}_is_negative == false ? {{operand}}_digit_count : -{{operand}}_digit_count;
|
|
48
33
|
{% elif type_desc == c_digit_desc %}
|
|
49
34
|
{# Nothing to do really, banking on C compiler to optimize repeated operations. #}
|
|
50
35
|
{% else %}
|
|
51
36
|
# error "Not done for {{type_desc}} yet"
|
|
52
37
|
{% endif %}
|
|
53
38
|
{% endmacro %}
|
|
39
|
+
|
|
40
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
41
|
+
{# integrates with CPython, but also works on its own. #}
|
|
42
|
+
{# #}
|
|
43
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
44
|
+
{# you may not use this file except in compliance with the License. #}
|
|
45
|
+
{# You may obtain a copy of the License at #}
|
|
46
|
+
{# #}
|
|
47
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
48
|
+
{# #}
|
|
49
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
50
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
51
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
52
|
+
{# See the License for the specific language governing permissions and #}
|
|
53
|
+
{# limitations under the License. #}
|