Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +93 -54
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +717 -171
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -22
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +89 -51
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +25 -21
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +73 -40
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +29 -22
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +39 -30
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +44 -24
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +132 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Code generation contexts.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -24,7 +10,7 @@ from abc import abstractmethod
|
|
|
24
10
|
from contextlib import contextmanager
|
|
25
11
|
|
|
26
12
|
from nuitka import Options
|
|
27
|
-
from nuitka.__past__ import
|
|
13
|
+
from nuitka.__past__ import iterItems
|
|
28
14
|
from nuitka.Constants import isMutable
|
|
29
15
|
from nuitka.PythonVersions import python_version
|
|
30
16
|
from nuitka.Serialization import ConstantAccessor
|
|
@@ -34,6 +20,7 @@ from nuitka.utils.InstanceCounters import (
|
|
|
34
20
|
counted_init,
|
|
35
21
|
isCountingInstances,
|
|
36
22
|
)
|
|
23
|
+
from nuitka.utils.SlotMetaClasses import getMetaClassBase
|
|
37
24
|
|
|
38
25
|
from .VariableDeclarations import VariableDeclaration, VariableStorage
|
|
39
26
|
|
|
@@ -44,6 +31,9 @@ class TempMixin(object):
|
|
|
44
31
|
# Lots of details, everything gets to store bits here, to indicate
|
|
45
32
|
# code generation states, and there are many, pylint: disable=too-many-instance-attributes
|
|
46
33
|
|
|
34
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
35
|
+
__slots__ = ()
|
|
36
|
+
|
|
47
37
|
def __init__(self):
|
|
48
38
|
self.tmp_names = {}
|
|
49
39
|
|
|
@@ -59,7 +49,7 @@ class TempMixin(object):
|
|
|
59
49
|
self.false_target = None
|
|
60
50
|
|
|
61
51
|
self.keeper_variable_count = 0
|
|
62
|
-
self.exception_keepers = (None, None
|
|
52
|
+
self.exception_keepers = (None, None)
|
|
63
53
|
|
|
64
54
|
self.preserver_variable_declaration = {}
|
|
65
55
|
|
|
@@ -75,6 +65,9 @@ class TempMixin(object):
|
|
|
75
65
|
# We might be hard coding too many details for special temps
|
|
76
66
|
# here, pylint: disable=too-many-branches
|
|
77
67
|
|
|
68
|
+
# TODO: This should be achieved.
|
|
69
|
+
# assert not base_name.startswith("tmp_"), base_name
|
|
70
|
+
|
|
78
71
|
if unique:
|
|
79
72
|
number = None
|
|
80
73
|
else:
|
|
@@ -179,24 +172,14 @@ class TempMixin(object):
|
|
|
179
172
|
debug = Options.is_debug and python_version >= 0x300
|
|
180
173
|
|
|
181
174
|
if debug:
|
|
182
|
-
keeper_obj_init = "
|
|
175
|
+
keeper_obj_init = "Empty_Nuitka_ExceptionPreservationItem"
|
|
183
176
|
else:
|
|
184
177
|
keeper_obj_init = None
|
|
185
178
|
|
|
186
179
|
return (
|
|
187
180
|
self.variable_storage.addVariableDeclarationTop(
|
|
188
|
-
"
|
|
189
|
-
"
|
|
190
|
-
keeper_obj_init,
|
|
191
|
-
),
|
|
192
|
-
self.variable_storage.addVariableDeclarationTop(
|
|
193
|
-
"PyObject *",
|
|
194
|
-
"exception_keeper_value_%d" % self.keeper_variable_count,
|
|
195
|
-
keeper_obj_init,
|
|
196
|
-
),
|
|
197
|
-
self.variable_storage.addVariableDeclarationTop(
|
|
198
|
-
"PyTracebackObject *",
|
|
199
|
-
"exception_keeper_tb_%d" % self.keeper_variable_count,
|
|
181
|
+
"struct Nuitka_ExceptionPreservationItem",
|
|
182
|
+
"exception_keeper_name_%d" % self.keeper_variable_count,
|
|
200
183
|
keeper_obj_init,
|
|
201
184
|
),
|
|
202
185
|
self.variable_storage.addVariableDeclarationTop(
|
|
@@ -212,6 +195,7 @@ class TempMixin(object):
|
|
|
212
195
|
def setExceptionKeeperVariables(self, keeper_vars):
|
|
213
196
|
result = self.exception_keepers
|
|
214
197
|
self.exception_keepers = tuple(keeper_vars)
|
|
198
|
+
assert len(self.exception_keepers) == 2
|
|
215
199
|
return result
|
|
216
200
|
|
|
217
201
|
def addExceptionPreserverVariables(self, preserver_id):
|
|
@@ -225,12 +209,12 @@ class TempMixin(object):
|
|
|
225
209
|
else:
|
|
226
210
|
preserver_obj_init = None
|
|
227
211
|
|
|
228
|
-
self.preserver_variable_declaration[
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
212
|
+
self.preserver_variable_declaration[preserver_id] = (
|
|
213
|
+
self.variable_storage.addVariableDeclarationTop(
|
|
214
|
+
"struct Nuitka_ExceptionStackItem",
|
|
215
|
+
"exception_preserved_%d" % preserver_id,
|
|
216
|
+
preserver_obj_init,
|
|
217
|
+
)
|
|
234
218
|
)
|
|
235
219
|
|
|
236
220
|
return self.preserver_variable_declaration[preserver_id]
|
|
@@ -301,6 +285,9 @@ CodeObjectHandle = collections.namedtuple(
|
|
|
301
285
|
|
|
302
286
|
|
|
303
287
|
class CodeObjectsMixin(object):
|
|
288
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
289
|
+
__slots__ = ()
|
|
290
|
+
|
|
304
291
|
def __init__(self):
|
|
305
292
|
# Code objects needed made unique by a key.
|
|
306
293
|
self.code_objects = {}
|
|
@@ -328,7 +315,7 @@ class CodeObjectsMixin(object):
|
|
|
328
315
|
)
|
|
329
316
|
|
|
330
317
|
if key not in self.code_objects:
|
|
331
|
-
self.code_objects[key] = "
|
|
318
|
+
self.code_objects[key] = "code_objects_%s" % self._calcHash(key)
|
|
332
319
|
|
|
333
320
|
return self.code_objects[key]
|
|
334
321
|
|
|
@@ -336,7 +323,9 @@ class CodeObjectsMixin(object):
|
|
|
336
323
|
return getStringHash("-".join(str(s) for s in key))
|
|
337
324
|
|
|
338
325
|
|
|
339
|
-
class PythonContextBase(getMetaClassBase("Context")):
|
|
326
|
+
class PythonContextBase(getMetaClassBase("Context", require_slots=True)):
|
|
327
|
+
__slots__ = ("source_ref", "current_source_ref")
|
|
328
|
+
|
|
340
329
|
@counted_init
|
|
341
330
|
def __init__(self):
|
|
342
331
|
self.source_ref = None
|
|
@@ -370,6 +359,10 @@ class PythonContextBase(getMetaClassBase("Context")):
|
|
|
370
359
|
def getConstantCode(self, constant, deep_check=False):
|
|
371
360
|
pass
|
|
372
361
|
|
|
362
|
+
@abstractmethod
|
|
363
|
+
def addModuleInitCode(self, code):
|
|
364
|
+
pass
|
|
365
|
+
|
|
373
366
|
@abstractmethod
|
|
374
367
|
def getModuleCodeName(self):
|
|
375
368
|
pass
|
|
@@ -522,6 +515,8 @@ class PythonContextBase(getMetaClassBase("Context")):
|
|
|
522
515
|
class PythonChildContextBase(PythonContextBase):
|
|
523
516
|
# Base classes can be abstract, pylint: disable=I0021,abstract-method
|
|
524
517
|
|
|
518
|
+
__slots__ = ("parent",)
|
|
519
|
+
|
|
525
520
|
def __init__(self, parent):
|
|
526
521
|
PythonContextBase.__init__(self)
|
|
527
522
|
|
|
@@ -530,6 +525,9 @@ class PythonChildContextBase(PythonContextBase):
|
|
|
530
525
|
def getConstantCode(self, constant, deep_check=False):
|
|
531
526
|
return self.parent.getConstantCode(constant, deep_check=deep_check)
|
|
532
527
|
|
|
528
|
+
def addModuleInitCode(self, code):
|
|
529
|
+
self.parent.addModuleInitCode(code)
|
|
530
|
+
|
|
533
531
|
def getModuleCodeName(self):
|
|
534
532
|
return self.parent.getModuleCodeName()
|
|
535
533
|
|
|
@@ -566,8 +564,14 @@ class PythonChildContextBase(PythonContextBase):
|
|
|
566
564
|
def addFunctionCreationInfo(self, creation_info):
|
|
567
565
|
return self.parent.addFunctionCreationInfo(creation_info)
|
|
568
566
|
|
|
567
|
+
def setModuleVariableAccessorCaching(self, variable_name, caching):
|
|
568
|
+
self.parent.setModuleVariableAccessorCaching(variable_name, caching)
|
|
569
|
+
|
|
569
570
|
|
|
570
571
|
class FrameDeclarationsMixin(object):
|
|
572
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
573
|
+
__slots__ = ()
|
|
574
|
+
|
|
571
575
|
def __init__(self):
|
|
572
576
|
# Frame is active or not, default not.
|
|
573
577
|
self.frame_variables_stack = [""]
|
|
@@ -599,7 +603,7 @@ class FrameDeclarationsMixin(object):
|
|
|
599
603
|
)
|
|
600
604
|
|
|
601
605
|
else:
|
|
602
|
-
frame_handle = code_identifier.replace("
|
|
606
|
+
frame_handle = code_identifier.replace("code_objects_", "frame_")
|
|
603
607
|
|
|
604
608
|
if self.frames_used > 1:
|
|
605
609
|
frame_handle += "_%d" % self.frames_used
|
|
@@ -699,6 +703,9 @@ class FrameDeclarationsMixin(object):
|
|
|
699
703
|
|
|
700
704
|
|
|
701
705
|
class ReturnReleaseModeMixin(object):
|
|
706
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
707
|
+
__slots__ = ()
|
|
708
|
+
|
|
702
709
|
def __init__(self):
|
|
703
710
|
self.return_release_mode = False
|
|
704
711
|
|
|
@@ -722,6 +729,9 @@ class ReturnReleaseModeMixin(object):
|
|
|
722
729
|
|
|
723
730
|
|
|
724
731
|
class ReturnValueNameMixin(object):
|
|
732
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
733
|
+
__slots__ = ()
|
|
734
|
+
|
|
725
735
|
def __init__(self):
|
|
726
736
|
self.return_name = None
|
|
727
737
|
|
|
@@ -738,9 +748,9 @@ class ReturnValueNameMixin(object):
|
|
|
738
748
|
|
|
739
749
|
|
|
740
750
|
class PythonModuleContext(
|
|
751
|
+
FrameDeclarationsMixin,
|
|
741
752
|
TempMixin,
|
|
742
753
|
CodeObjectsMixin,
|
|
743
|
-
FrameDeclarationsMixin,
|
|
744
754
|
ReturnReleaseModeMixin,
|
|
745
755
|
ReturnValueNameMixin,
|
|
746
756
|
PythonContextBase,
|
|
@@ -748,6 +758,46 @@ class PythonModuleContext(
|
|
|
748
758
|
# Plenty of attributes, because it's storing so many different things.
|
|
749
759
|
# pylint: disable=too-many-instance-attributes
|
|
750
760
|
|
|
761
|
+
__slots__ = (
|
|
762
|
+
"module",
|
|
763
|
+
"name",
|
|
764
|
+
"code_name",
|
|
765
|
+
"declaration_codes",
|
|
766
|
+
"helper_codes",
|
|
767
|
+
"frame_handle",
|
|
768
|
+
"variable_storage",
|
|
769
|
+
"function_table_entries",
|
|
770
|
+
"constant_accessor",
|
|
771
|
+
"module_init_codes",
|
|
772
|
+
"module_variable_caching",
|
|
773
|
+
# FrameDeclarationsMixin
|
|
774
|
+
"frame_variables_stack",
|
|
775
|
+
"frame_type_descriptions",
|
|
776
|
+
"frame_variable_types",
|
|
777
|
+
"frames_used",
|
|
778
|
+
"frame_stack",
|
|
779
|
+
"locals_dict_names",
|
|
780
|
+
# TempMixin:
|
|
781
|
+
"tmp_names",
|
|
782
|
+
"labels",
|
|
783
|
+
"exception_escape",
|
|
784
|
+
"loop_continue",
|
|
785
|
+
"loop_break",
|
|
786
|
+
"true_target",
|
|
787
|
+
"false_target",
|
|
788
|
+
"keeper_variable_count",
|
|
789
|
+
"exception_keepers",
|
|
790
|
+
"preserver_variable_declaration",
|
|
791
|
+
"cleanup_names",
|
|
792
|
+
# CodeObjectsMixin
|
|
793
|
+
"code_objects",
|
|
794
|
+
# ReturnReleaseModeMixin
|
|
795
|
+
"return_release_mode",
|
|
796
|
+
"return_exit",
|
|
797
|
+
# ReturnValueNameMixin
|
|
798
|
+
"return_name",
|
|
799
|
+
)
|
|
800
|
+
|
|
751
801
|
def __init__(self, module, data_filename):
|
|
752
802
|
PythonContextBase.__init__(self)
|
|
753
803
|
|
|
@@ -776,6 +826,10 @@ class PythonModuleContext(
|
|
|
776
826
|
top_level_name="mod_consts", data_filename=data_filename
|
|
777
827
|
)
|
|
778
828
|
|
|
829
|
+
self.module_init_codes = []
|
|
830
|
+
|
|
831
|
+
self.module_variable_caching = {}
|
|
832
|
+
|
|
779
833
|
def __repr__(self):
|
|
780
834
|
return "<PythonModuleContext instance for module %s>" % self.name
|
|
781
835
|
|
|
@@ -785,6 +839,18 @@ class PythonModuleContext(
|
|
|
785
839
|
def getEntryPoint(self):
|
|
786
840
|
return self.module
|
|
787
841
|
|
|
842
|
+
def setModuleVariableAccessorCaching(self, variable_name, caching):
|
|
843
|
+
if caching:
|
|
844
|
+
self.module_variable_caching[variable_name] = True
|
|
845
|
+
elif variable_name not in self.module_variable_caching:
|
|
846
|
+
self.module_variable_caching[variable_name] = False
|
|
847
|
+
|
|
848
|
+
def isModuleVariableAccessorCaching(self, variable_name):
|
|
849
|
+
return self.module_variable_caching.get(variable_name, False)
|
|
850
|
+
|
|
851
|
+
def getModuleVariableAccessors(self):
|
|
852
|
+
return self.module_variable_caching
|
|
853
|
+
|
|
788
854
|
def isCompiledPythonModule(self):
|
|
789
855
|
return True
|
|
790
856
|
|
|
@@ -835,6 +901,12 @@ class PythonModuleContext(
|
|
|
835
901
|
def getConstantsCount(self):
|
|
836
902
|
return self.constant_accessor.getConstantsCount()
|
|
837
903
|
|
|
904
|
+
def getModuleInitCodes(self):
|
|
905
|
+
return self.module_init_codes
|
|
906
|
+
|
|
907
|
+
def addModuleInitCode(self, code):
|
|
908
|
+
self.module_init_codes.append(code)
|
|
909
|
+
|
|
838
910
|
def addFunctionCreationInfo(self, creation_info):
|
|
839
911
|
self.function_table_entries.append(creation_info)
|
|
840
912
|
|
|
@@ -857,6 +929,36 @@ class PythonFunctionContext(
|
|
|
857
929
|
ReturnValueNameMixin,
|
|
858
930
|
PythonChildContextBase,
|
|
859
931
|
):
|
|
932
|
+
__slots__ = (
|
|
933
|
+
"function",
|
|
934
|
+
"frame_handle",
|
|
935
|
+
"variable_storage",
|
|
936
|
+
# FrameDeclarationsMixin
|
|
937
|
+
"frame_variables_stack",
|
|
938
|
+
"frame_type_descriptions",
|
|
939
|
+
"frame_variable_types",
|
|
940
|
+
"frames_used",
|
|
941
|
+
"frame_stack",
|
|
942
|
+
"locals_dict_names",
|
|
943
|
+
# TempMixin:
|
|
944
|
+
"tmp_names",
|
|
945
|
+
"labels",
|
|
946
|
+
"exception_escape",
|
|
947
|
+
"loop_continue",
|
|
948
|
+
"loop_break",
|
|
949
|
+
"true_target",
|
|
950
|
+
"false_target",
|
|
951
|
+
"keeper_variable_count",
|
|
952
|
+
"exception_keepers",
|
|
953
|
+
"preserver_variable_declaration",
|
|
954
|
+
"cleanup_names",
|
|
955
|
+
# ReturnReleaseModeMixin
|
|
956
|
+
"return_release_mode",
|
|
957
|
+
"return_exit",
|
|
958
|
+
# ReturnValueNameMixin
|
|
959
|
+
"return_name",
|
|
960
|
+
)
|
|
961
|
+
|
|
860
962
|
def __init__(self, parent, function):
|
|
861
963
|
PythonChildContextBase.__init__(self, parent=parent)
|
|
862
964
|
|
|
@@ -902,6 +1004,8 @@ class PythonFunctionContext(
|
|
|
902
1004
|
|
|
903
1005
|
|
|
904
1006
|
class PythonFunctionDirectContext(PythonFunctionContext):
|
|
1007
|
+
__slots__ = ()
|
|
1008
|
+
|
|
905
1009
|
@staticmethod
|
|
906
1010
|
def getContextObjectName():
|
|
907
1011
|
return None
|
|
@@ -916,6 +1020,8 @@ class PythonFunctionDirectContext(PythonFunctionContext):
|
|
|
916
1020
|
|
|
917
1021
|
|
|
918
1022
|
class PythonGeneratorObjectContext(PythonFunctionContext):
|
|
1023
|
+
__slots__ = ()
|
|
1024
|
+
|
|
919
1025
|
def _makeVariableStorage(self):
|
|
920
1026
|
return VariableStorage(heap_name="%s_heap" % self.getContextObjectName())
|
|
921
1027
|
|
|
@@ -939,18 +1045,24 @@ class PythonGeneratorObjectContext(PythonFunctionContext):
|
|
|
939
1045
|
|
|
940
1046
|
|
|
941
1047
|
class PythonCoroutineObjectContext(PythonGeneratorObjectContext):
|
|
1048
|
+
__slots__ = ()
|
|
1049
|
+
|
|
942
1050
|
@staticmethod
|
|
943
1051
|
def getContextObjectName():
|
|
944
1052
|
return "coroutine"
|
|
945
1053
|
|
|
946
1054
|
|
|
947
1055
|
class PythonAsyncgenObjectContext(PythonGeneratorObjectContext):
|
|
1056
|
+
__slots__ = ()
|
|
1057
|
+
|
|
948
1058
|
@staticmethod
|
|
949
1059
|
def getContextObjectName():
|
|
950
1060
|
return "asyncgen"
|
|
951
1061
|
|
|
952
1062
|
|
|
953
1063
|
class PythonFunctionCreatedContext(PythonFunctionContext):
|
|
1064
|
+
__slots__ = ()
|
|
1065
|
+
|
|
954
1066
|
@staticmethod
|
|
955
1067
|
def getContextObjectName():
|
|
956
1068
|
return None
|
|
@@ -967,6 +1079,16 @@ class PythonFunctionCreatedContext(PythonFunctionContext):
|
|
|
967
1079
|
class PythonFunctionOutlineContext(
|
|
968
1080
|
ReturnReleaseModeMixin, ReturnValueNameMixin, PythonChildContextBase
|
|
969
1081
|
):
|
|
1082
|
+
__slots__ = (
|
|
1083
|
+
"outline",
|
|
1084
|
+
"variable_storage",
|
|
1085
|
+
# ReturnReleaseModeMixin
|
|
1086
|
+
"return_release_mode",
|
|
1087
|
+
"return_exit",
|
|
1088
|
+
# ReturnValueNameMixin
|
|
1089
|
+
"return_name",
|
|
1090
|
+
)
|
|
1091
|
+
|
|
970
1092
|
def __init__(self, parent, outline):
|
|
971
1093
|
PythonChildContextBase.__init__(self, parent=parent)
|
|
972
1094
|
|
|
@@ -1095,3 +1217,19 @@ class PythonFunctionOutlineContext(
|
|
|
1095
1217
|
|
|
1096
1218
|
def getContextObjectName(self):
|
|
1097
1219
|
return self.parent.getContextObjectName()
|
|
1220
|
+
|
|
1221
|
+
|
|
1222
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1223
|
+
# integrates with CPython, but also works on its own.
|
|
1224
|
+
#
|
|
1225
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1226
|
+
# you may not use this file except in compliance with the License.
|
|
1227
|
+
# You may obtain a copy of the License at
|
|
1228
|
+
#
|
|
1229
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1230
|
+
#
|
|
1231
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1232
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1233
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1234
|
+
# See the License for the specific language governing permissions and
|
|
1235
|
+
# limitations under the License.
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Code to generate and interact with compiled coroutine objects.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -101,17 +87,13 @@ def getCoroutineObjectCode(
|
|
|
101
87
|
|
|
102
88
|
if needs_exception_exit:
|
|
103
89
|
(
|
|
104
|
-
|
|
105
|
-
exception_value,
|
|
106
|
-
exception_tb,
|
|
90
|
+
exception_state_name,
|
|
107
91
|
_exception_lineno,
|
|
108
92
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
109
93
|
|
|
110
94
|
generator_exit = template_coroutine_exception_exit % {
|
|
111
95
|
"function_cleanup": indented(function_cleanup),
|
|
112
|
-
"
|
|
113
|
-
"exception_value": exception_value,
|
|
114
|
-
"exception_tb": exception_tb,
|
|
96
|
+
"exception_state_name": exception_state_name,
|
|
115
97
|
}
|
|
116
98
|
else:
|
|
117
99
|
generator_exit = template_coroutine_noexception_exit % {
|
|
@@ -254,3 +236,19 @@ def generateAsyncNextCode(to_name, expression, emit, context):
|
|
|
254
236
|
)
|
|
255
237
|
|
|
256
238
|
context.addCleanupTempName(result_name)
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
242
|
+
# integrates with CPython, but also works on its own.
|
|
243
|
+
#
|
|
244
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
245
|
+
# you may not use this file except in compliance with the License.
|
|
246
|
+
# You may obtain a copy of the License at
|
|
247
|
+
#
|
|
248
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
249
|
+
#
|
|
250
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
251
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
252
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
253
|
+
# See the License for the specific language governing permissions and
|
|
254
|
+
# limitations under the License.
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Code generation for ctypes module stuff. """
|
|
19
5
|
|
|
20
6
|
from .BuiltinCodes import getBuiltinCallViaSpecCode
|
|
@@ -42,3 +28,19 @@ def generateCtypesCdllCallCode(to_name, expression, emit, context):
|
|
|
42
28
|
emit=emit,
|
|
43
29
|
context=context,
|
|
44
30
|
)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
34
|
+
# integrates with CPython, but also works on its own.
|
|
35
|
+
#
|
|
36
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
37
|
+
# you may not use this file except in compliance with the License.
|
|
38
|
+
# You may obtain a copy of the License at
|
|
39
|
+
#
|
|
40
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
41
|
+
#
|
|
42
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
43
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
44
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
45
|
+
# See the License for the specific language governing permissions and
|
|
46
|
+
# limitations under the License.
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Code generation for dictionaries.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -279,13 +265,14 @@ def generateDictOperationGet2Code(to_name, expression, emit, context):
|
|
|
279
265
|
renderTemplateFromString(
|
|
280
266
|
r"""
|
|
281
267
|
{% if expression.known_hashable_key %}
|
|
282
|
-
%(value_name)s =
|
|
268
|
+
%(value_name)s = DICT_GET_ITEM1(tstate, %(dict_name)s, %(key_name)s);
|
|
283
269
|
if (%(value_name)s == NULL) {
|
|
284
270
|
{% else %}
|
|
285
|
-
%(value_name)s =
|
|
271
|
+
%(value_name)s = DICT_GET_ITEM_WITH_HASH_ERROR1(tstate, %(dict_name)s, %(key_name)s);
|
|
286
272
|
if (%(value_name)s == NULL && !HAS_ERROR_OCCURRED(tstate)) {
|
|
287
273
|
{% endif %}
|
|
288
274
|
%(value_name)s = Py_None;
|
|
275
|
+
Py_INCREF_IMMORTAL(%(value_name)s);
|
|
289
276
|
}
|
|
290
277
|
""",
|
|
291
278
|
expression=expression,
|
|
@@ -305,15 +292,14 @@ if (%(value_name)s == NULL && !HAS_ERROR_OCCURRED(tstate)) {
|
|
|
305
292
|
context=context,
|
|
306
293
|
)
|
|
307
294
|
|
|
295
|
+
context.addCleanupTempName(value_name)
|
|
296
|
+
|
|
308
297
|
|
|
309
298
|
def generateDictOperationGet3Code(to_name, expression, emit, context):
|
|
310
299
|
dict_name, key_name, default_name = generateChildExpressionsCode(
|
|
311
300
|
expression=expression, emit=emit, context=context
|
|
312
301
|
)
|
|
313
302
|
|
|
314
|
-
# TODO: This code could actually make it dependent on default taking
|
|
315
|
-
# a reference or not, and then use DICT_GET_ITEM0/DICT_GET_ITEM_WITH_HASH_ERROR0 if not.
|
|
316
|
-
|
|
317
303
|
with withObjectCodeTemporaryAssignment(
|
|
318
304
|
to_name, "dict_value", expression, emit, context
|
|
319
305
|
) as value_name:
|
|
@@ -555,7 +541,7 @@ def generateDictOperationCopyCode(to_name, expression, emit, context):
|
|
|
555
541
|
generateCAPIObjectCode(
|
|
556
542
|
to_name=to_name,
|
|
557
543
|
capi="DICT_COPY",
|
|
558
|
-
tstate=
|
|
544
|
+
tstate=True,
|
|
559
545
|
arg_desc=(("dict_arg", expression.subnode_dict_arg),),
|
|
560
546
|
may_raise=False,
|
|
561
547
|
conversion_check=decideConversionCheckNeeded(to_name, expression),
|
|
@@ -600,7 +586,7 @@ def generateDictOperationIteritemsCode(to_name, expression, emit, context):
|
|
|
600
586
|
generateCAPIObjectCode(
|
|
601
587
|
to_name=to_name,
|
|
602
588
|
capi="DICT_ITERITEMS",
|
|
603
|
-
tstate=
|
|
589
|
+
tstate=True,
|
|
604
590
|
arg_desc=(("dict_arg", expression.subnode_dict_arg),),
|
|
605
591
|
may_raise=expression.mayRaiseException(BaseException),
|
|
606
592
|
conversion_check=decideConversionCheckNeeded(to_name, expression),
|
|
@@ -642,7 +628,7 @@ def generateDictOperationIterkeysCode(to_name, expression, emit, context):
|
|
|
642
628
|
generateCAPIObjectCode(
|
|
643
629
|
to_name=to_name,
|
|
644
630
|
capi="DICT_ITERKEYS",
|
|
645
|
-
tstate=
|
|
631
|
+
tstate=True,
|
|
646
632
|
arg_desc=(("dict_arg", expression.subnode_dict_arg),),
|
|
647
633
|
may_raise=False,
|
|
648
634
|
conversion_check=decideConversionCheckNeeded(to_name, expression),
|
|
@@ -729,7 +715,7 @@ def generateDictOperationItervaluesCode(to_name, expression, emit, context):
|
|
|
729
715
|
generateCAPIObjectCode(
|
|
730
716
|
to_name=to_name,
|
|
731
717
|
capi="DICT_ITERVALUES",
|
|
732
|
-
tstate=
|
|
718
|
+
tstate=True,
|
|
733
719
|
arg_desc=(("dict_arg", expression.subnode_dict_arg),),
|
|
734
720
|
may_raise=False,
|
|
735
721
|
conversion_check=decideConversionCheckNeeded(to_name, expression),
|
|
@@ -914,3 +900,19 @@ def generateDictOperationRemoveCode(statement, emit, context):
|
|
|
914
900
|
emit=emit,
|
|
915
901
|
context=context,
|
|
916
902
|
)
|
|
903
|
+
|
|
904
|
+
|
|
905
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
906
|
+
# integrates with CPython, but also works on its own.
|
|
907
|
+
#
|
|
908
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
909
|
+
# you may not use this file except in compliance with the License.
|
|
910
|
+
# You may obtain a copy of the License at
|
|
911
|
+
#
|
|
912
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
913
|
+
#
|
|
914
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
915
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
916
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
917
|
+
# See the License for the specific language governing permissions and
|
|
918
|
+
# limitations under the License.
|