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
|
""" Exception handling.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -25,6 +11,7 @@ from .CodeHelpers import (
|
|
|
25
11
|
generateExpressionCode,
|
|
26
12
|
withObjectCodeTemporaryAssignment,
|
|
27
13
|
)
|
|
14
|
+
from .ErrorCodes import getErrorExitCode
|
|
28
15
|
from .templates.CodeTemplatesExceptions import (
|
|
29
16
|
template_publish_exception_to_handler,
|
|
30
17
|
)
|
|
@@ -56,57 +43,83 @@ def getTracebackMakingIdentifier(context, lineno_name):
|
|
|
56
43
|
|
|
57
44
|
|
|
58
45
|
def generateExceptionCaughtTypeCode(to_name, expression, emit, context):
|
|
59
|
-
|
|
46
|
+
(
|
|
47
|
+
keeper_exception_state_name,
|
|
48
|
+
_keeper_lineno,
|
|
49
|
+
) = context.getExceptionKeeperVariables()
|
|
60
50
|
|
|
61
51
|
with withObjectCodeTemporaryAssignment(
|
|
62
52
|
to_name, "exception_caught_type", expression, emit, context
|
|
63
53
|
) as value_name:
|
|
64
|
-
if
|
|
65
|
-
emit("%s = EXC_TYPE(
|
|
54
|
+
if keeper_exception_state_name is None:
|
|
55
|
+
emit("%s = EXC_TYPE(tstate);" % (value_name,))
|
|
66
56
|
else:
|
|
67
|
-
|
|
57
|
+
if python_version < 0x3C0:
|
|
58
|
+
emit(
|
|
59
|
+
"%s = %s.exception_type;"
|
|
60
|
+
% (value_name, keeper_exception_state_name)
|
|
61
|
+
)
|
|
62
|
+
else:
|
|
63
|
+
emit(
|
|
64
|
+
"%s = %s.exception_value;"
|
|
65
|
+
% (value_name, keeper_exception_state_name)
|
|
66
|
+
)
|
|
68
67
|
|
|
69
68
|
|
|
70
69
|
def generateExceptionCaughtValueCode(to_name, expression, emit, context):
|
|
71
|
-
|
|
70
|
+
(
|
|
71
|
+
keeper_exception_state_name,
|
|
72
|
+
_keeper_lineno,
|
|
73
|
+
) = context.getExceptionKeeperVariables()
|
|
72
74
|
|
|
73
75
|
with withObjectCodeTemporaryAssignment(
|
|
74
76
|
to_name, "exception_caught_value", expression, emit, context
|
|
75
77
|
) as value_name:
|
|
76
|
-
if
|
|
77
|
-
emit("%s = EXC_VALUE(
|
|
78
|
+
if keeper_exception_state_name is None:
|
|
79
|
+
emit("%s = EXC_VALUE(tstate);" % value_name)
|
|
80
|
+
elif python_version >= 0x270:
|
|
81
|
+
emit("%s = %s.exception_value;" % (value_name, keeper_exception_state_name))
|
|
78
82
|
else:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
# For Python2.6, value can be NULL.
|
|
84
|
+
emit(
|
|
85
|
+
"%s = %s.exception_value ? %s.exception_value : Py_None;"
|
|
86
|
+
% (
|
|
87
|
+
value_name,
|
|
88
|
+
keeper_exception_state_name,
|
|
89
|
+
keeper_exception_state_name,
|
|
85
90
|
)
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
emit("CHECK_OBJECT(%s); " % value_name)
|
|
86
94
|
|
|
87
95
|
|
|
88
96
|
def generateExceptionCaughtTracebackCode(to_name, expression, emit, context):
|
|
89
|
-
|
|
97
|
+
(
|
|
98
|
+
keeper_exception_state_name,
|
|
99
|
+
keeper_lineno,
|
|
100
|
+
) = context.getExceptionKeeperVariables()
|
|
90
101
|
|
|
91
102
|
with withObjectCodeTemporaryAssignment(
|
|
92
103
|
to_name, "exception_caught_tb", expression, emit, context
|
|
93
104
|
) as value_name:
|
|
94
|
-
if
|
|
105
|
+
if keeper_exception_state_name is None:
|
|
95
106
|
if python_version < 0x3B0:
|
|
96
|
-
emit(
|
|
97
|
-
"%s = (PyObject *)EXC_TRACEBACK(PyThreadState_GET());"
|
|
98
|
-
% (value_name,)
|
|
99
|
-
)
|
|
107
|
+
emit("%s = (PyObject *)EXC_TRACEBACK(tstate);" % (value_name,))
|
|
100
108
|
else:
|
|
101
109
|
emit(
|
|
102
|
-
"
|
|
103
|
-
|
|
110
|
+
"""\
|
|
111
|
+
%(value_name)s = (PyObject *)GET_EXCEPTION_TRACEBACK(EXC_VALUE(tstate));
|
|
112
|
+
if (%(value_name)s == NULL) {
|
|
113
|
+
%(value_name)s = Py_None;
|
|
114
|
+
}"""
|
|
115
|
+
% {"value_name": value_name}
|
|
104
116
|
)
|
|
117
|
+
|
|
105
118
|
else:
|
|
106
119
|
emit(
|
|
107
120
|
"""\
|
|
108
|
-
if (%(
|
|
109
|
-
%(to_name)s = (PyObject *)%(
|
|
121
|
+
if (%(keeper_exception_state_name)s.exception_tb != NULL) {
|
|
122
|
+
%(to_name)s = (PyObject *)%(keeper_exception_state_name)s.exception_tb;
|
|
110
123
|
Py_INCREF(%(to_name)s);
|
|
111
124
|
} else {
|
|
112
125
|
%(to_name)s = (PyObject *)%(tb_making)s;
|
|
@@ -114,9 +127,9 @@ if (%(keeper_tb)s != NULL) {
|
|
|
114
127
|
"""
|
|
115
128
|
% {
|
|
116
129
|
"to_name": value_name,
|
|
117
|
-
"
|
|
130
|
+
"keeper_exception_state_name": keeper_exception_state_name,
|
|
118
131
|
"tb_making": getTracebackMakingIdentifier(
|
|
119
|
-
context=context, lineno_name=
|
|
132
|
+
context=context, lineno_name=keeper_lineno
|
|
120
133
|
),
|
|
121
134
|
}
|
|
122
135
|
)
|
|
@@ -125,12 +138,13 @@ if (%(keeper_tb)s != NULL) {
|
|
|
125
138
|
|
|
126
139
|
|
|
127
140
|
def getExceptionUnpublishedReleaseCode(emit, context):
|
|
128
|
-
|
|
141
|
+
(
|
|
142
|
+
keeper_exception_state_name,
|
|
143
|
+
_keeper_lineno,
|
|
144
|
+
) = context.getExceptionKeeperVariables()
|
|
129
145
|
|
|
130
|
-
if
|
|
131
|
-
emit("
|
|
132
|
-
emit("Py_XDECREF(%s);" % keeper_variables[1])
|
|
133
|
-
emit("Py_XDECREF(%s);" % keeper_variables[2])
|
|
146
|
+
if keeper_exception_state_name is not None:
|
|
147
|
+
emit("RELEASE_ERROR_OCCURRED_STATE(&%s);" % keeper_exception_state_name)
|
|
134
148
|
|
|
135
149
|
|
|
136
150
|
def generateExceptionPublishCode(statement, emit, context):
|
|
@@ -138,11 +152,9 @@ def generateExceptionPublishCode(statement, emit, context):
|
|
|
138
152
|
|
|
139
153
|
# Current variables cannot be used anymore now.
|
|
140
154
|
(
|
|
141
|
-
|
|
142
|
-
keeper_value,
|
|
143
|
-
keeper_tb,
|
|
155
|
+
keeper_exception_state_name,
|
|
144
156
|
keeper_lineno,
|
|
145
|
-
) = context.setExceptionKeeperVariables((None, None
|
|
157
|
+
) = context.setExceptionKeeperVariables((None, None))
|
|
146
158
|
|
|
147
159
|
emit(
|
|
148
160
|
template_publish_exception_to_handler
|
|
@@ -150,7 +162,7 @@ def generateExceptionPublishCode(statement, emit, context):
|
|
|
150
162
|
"tb_making": getTracebackMakingIdentifier(
|
|
151
163
|
context=context, lineno_name=keeper_lineno
|
|
152
164
|
),
|
|
153
|
-
"
|
|
165
|
+
"keeper_exception_state_name": keeper_exception_state_name,
|
|
154
166
|
"keeper_lineno": keeper_lineno,
|
|
155
167
|
"frame_identifier": context.getFrameHandle(),
|
|
156
168
|
}
|
|
@@ -158,15 +170,44 @@ def generateExceptionPublishCode(statement, emit, context):
|
|
|
158
170
|
|
|
159
171
|
# TODO: Make this one thing for performance with thread state shared, also for less code,
|
|
160
172
|
# then we should not make it in header anymore. Might be more scalable too.
|
|
161
|
-
emit(
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
173
|
+
emit("PUBLISH_CURRENT_EXCEPTION(tstate, &%s);" % keeper_exception_state_name)
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
def _attachExceptionAttributeCode(
|
|
177
|
+
to_name,
|
|
178
|
+
attribute_expression,
|
|
179
|
+
c_type_name,
|
|
180
|
+
c_attribute_name,
|
|
181
|
+
base_name_str,
|
|
182
|
+
emit,
|
|
183
|
+
context,
|
|
184
|
+
):
|
|
185
|
+
if attribute_expression is not None:
|
|
186
|
+
from .PythonAPICodes import getReferenceExportCode
|
|
187
|
+
|
|
188
|
+
exception_attribute_name = context.allocateTempName(
|
|
189
|
+
base_name_str + "_" + c_attribute_name
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
generateExpressionCode(
|
|
193
|
+
to_name=exception_attribute_name,
|
|
194
|
+
expression=attribute_expression,
|
|
195
|
+
emit=emit,
|
|
196
|
+
context=context,
|
|
197
|
+
allow_none=True,
|
|
198
|
+
)
|
|
165
199
|
|
|
200
|
+
getReferenceExportCode(exception_attribute_name, emit, context)
|
|
201
|
+
if context.needsCleanup(exception_attribute_name):
|
|
202
|
+
context.removeCleanupTempName(exception_attribute_name)
|
|
203
|
+
|
|
204
|
+
emit(
|
|
205
|
+
"((%s *)%s)->%s = %s;"
|
|
206
|
+
% (c_type_name, to_name, c_attribute_name, exception_attribute_name)
|
|
207
|
+
)
|
|
166
208
|
|
|
167
|
-
def generateBuiltinMakeExceptionCode(to_name, expression, emit, context):
|
|
168
|
-
# We try to make optimal code for various cases, pylint: disable=too-many-locals
|
|
169
209
|
|
|
210
|
+
def _generateBuiltinMakeExceptionCode(to_name, expression, for_raise, emit, context):
|
|
170
211
|
from .CallCodes import getCallCodeNoArgs, getCallCodePosArgsQuick
|
|
171
212
|
|
|
172
213
|
exception_arg_names = []
|
|
@@ -188,10 +229,27 @@ def generateBuiltinMakeExceptionCode(to_name, expression, emit, context):
|
|
|
188
229
|
with withObjectCodeTemporaryAssignment(
|
|
189
230
|
to_name, "exception_made", expression, emit, context
|
|
190
231
|
) as value_name:
|
|
191
|
-
|
|
232
|
+
exception_name = getExceptionIdentifier(exception_type)
|
|
233
|
+
|
|
234
|
+
if len(exception_arg_names) == 1 and for_raise:
|
|
235
|
+
emit(
|
|
236
|
+
"%s = MAKE_EXCEPTION_WITH_VALUE(tstate, %s, %s);"
|
|
237
|
+
% (value_name, exception_name, exception_arg_names[0])
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
getErrorExitCode(
|
|
241
|
+
check_name=value_name,
|
|
242
|
+
release_names=exception_arg_names,
|
|
243
|
+
needs_check=expression.mayRaiseExceptionOperation(),
|
|
244
|
+
emit=emit,
|
|
245
|
+
context=context,
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
context.addCleanupTempName(value_name)
|
|
249
|
+
elif exception_arg_names:
|
|
192
250
|
getCallCodePosArgsQuick(
|
|
193
251
|
to_name=value_name,
|
|
194
|
-
called_name=
|
|
252
|
+
called_name=exception_name,
|
|
195
253
|
expression=expression,
|
|
196
254
|
arg_names=exception_arg_names,
|
|
197
255
|
emit=emit,
|
|
@@ -201,59 +259,79 @@ def generateBuiltinMakeExceptionCode(to_name, expression, emit, context):
|
|
|
201
259
|
else:
|
|
202
260
|
getCallCodeNoArgs(
|
|
203
261
|
to_name=value_name,
|
|
204
|
-
called_name=
|
|
262
|
+
called_name=exception_name,
|
|
205
263
|
expression=expression,
|
|
206
264
|
emit=emit,
|
|
207
265
|
context=context,
|
|
208
266
|
)
|
|
209
267
|
|
|
210
|
-
if
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
emit=emit,
|
|
224
|
-
context=context,
|
|
225
|
-
allow_none=True,
|
|
226
|
-
)
|
|
268
|
+
if (
|
|
269
|
+
expression.isExpressionBuiltinMakeExceptionImportError()
|
|
270
|
+
or expression.isExpressionBuiltinMakeExceptionModuleNotFoundError()
|
|
271
|
+
):
|
|
272
|
+
_attachExceptionAttributeCode(
|
|
273
|
+
to_name=to_name,
|
|
274
|
+
attribute_expression=expression.subnode_name,
|
|
275
|
+
base_name_str="exception_import_error",
|
|
276
|
+
c_type_name="PyImportErrorObject",
|
|
277
|
+
c_attribute_name="name",
|
|
278
|
+
emit=emit,
|
|
279
|
+
context=context,
|
|
280
|
+
)
|
|
227
281
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
282
|
+
_attachExceptionAttributeCode(
|
|
283
|
+
to_name=to_name,
|
|
284
|
+
attribute_expression=expression.subnode_path,
|
|
285
|
+
base_name_str="exception_import_error",
|
|
286
|
+
c_type_name="PyImportErrorObject",
|
|
287
|
+
c_attribute_name="path",
|
|
288
|
+
emit=emit,
|
|
289
|
+
context=context,
|
|
290
|
+
)
|
|
231
291
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
292
|
+
elif expression.isExpressionBuiltinMakeExceptionAttributeError():
|
|
293
|
+
_attachExceptionAttributeCode(
|
|
294
|
+
to_name=to_name,
|
|
295
|
+
attribute_expression=expression.subnode_name,
|
|
296
|
+
base_name_str="exception_import_error",
|
|
297
|
+
c_type_name="PyAttributeErrorObject",
|
|
298
|
+
c_attribute_name="name",
|
|
299
|
+
emit=emit,
|
|
300
|
+
context=context,
|
|
301
|
+
)
|
|
236
302
|
|
|
237
|
-
|
|
303
|
+
_attachExceptionAttributeCode(
|
|
304
|
+
to_name=to_name,
|
|
305
|
+
attribute_expression=expression.subnode_obj,
|
|
306
|
+
base_name_str="exception_import_error",
|
|
307
|
+
c_type_name="PyAttributeErrorObject",
|
|
308
|
+
c_attribute_name="obj",
|
|
309
|
+
emit=emit,
|
|
310
|
+
context=context,
|
|
311
|
+
)
|
|
238
312
|
|
|
239
|
-
if import_error_path_expression is not None:
|
|
240
|
-
exception_importerror_path = context.allocateTempName(
|
|
241
|
-
"make_exception_importerror_path"
|
|
242
|
-
)
|
|
243
313
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
314
|
+
def generateBuiltinMakeExceptionCode(to_name, expression, emit, context):
|
|
315
|
+
_generateBuiltinMakeExceptionCode(
|
|
316
|
+
to_name=to_name,
|
|
317
|
+
expression=expression,
|
|
318
|
+
for_raise=expression.for_raise,
|
|
319
|
+
emit=emit,
|
|
320
|
+
context=context,
|
|
321
|
+
)
|
|
251
322
|
|
|
252
|
-
getReferenceExportCode(exception_importerror_path, emit, context)
|
|
253
|
-
if context.needsCleanup(exception_importerror_path):
|
|
254
|
-
context.removeCleanupTempName(exception_importerror_path)
|
|
255
323
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
324
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
325
|
+
# integrates with CPython, but also works on its own.
|
|
326
|
+
#
|
|
327
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
328
|
+
# you may not use this file except in compliance with the License.
|
|
329
|
+
# You may obtain a copy of the License at
|
|
330
|
+
#
|
|
331
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
332
|
+
#
|
|
333
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
334
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
335
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
336
|
+
# See the License for the specific language governing permissions and
|
|
337
|
+
# limitations under the License.
|
|
@@ -1,26 +1,13 @@
|
|
|
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
|
""" Module for helpers to select types for operation arguments.
|
|
19
5
|
|
|
20
6
|
This is first used for comparisons and binary operations, but should see
|
|
21
7
|
general use too and expand beyond constant values, e.g. covering constant
|
|
22
8
|
values that are of behind conditions or variables.
|
|
23
9
|
"""
|
|
10
|
+
|
|
24
11
|
from nuitka.nodes.shapes.BuiltinTypeShapes import (
|
|
25
12
|
tshape_bytearray,
|
|
26
13
|
tshape_bytes,
|
|
@@ -33,26 +20,39 @@ from nuitka.nodes.shapes.BuiltinTypeShapes import (
|
|
|
33
20
|
from nuitka.PythonVersions import (
|
|
34
21
|
isPythonValidCLongValue,
|
|
35
22
|
isPythonValidDigitValue,
|
|
36
|
-
python_version,
|
|
37
23
|
)
|
|
38
24
|
|
|
39
25
|
from .c_types.CTypeCFloats import CTypeCFloat
|
|
40
26
|
from .c_types.CTypeCLongs import CTypeCLong, CTypeCLongDigit
|
|
27
|
+
from .c_types.CTypeNuitkaInts import CTypeNuitkaIntOrLongStruct
|
|
41
28
|
from .c_types.CTypePyObjectPointers import CTypePyObjectPtr
|
|
29
|
+
from .VariableCodes import getLocalVariableDeclaration
|
|
42
30
|
|
|
43
31
|
|
|
44
|
-
def _pickIntFamilyType(expression):
|
|
32
|
+
def _pickIntFamilyType(expression, context):
|
|
45
33
|
if expression.isCompileTimeConstant():
|
|
46
|
-
|
|
47
|
-
# of it, for Python3, it should be avoided, it usually is around 2**30.
|
|
48
|
-
if python_version < 0x300:
|
|
49
|
-
c_type = CTypeCLong
|
|
50
|
-
elif isPythonValidDigitValue(expression.getCompileTimeConstant()):
|
|
34
|
+
if isPythonValidDigitValue(expression.getCompileTimeConstant()):
|
|
51
35
|
c_type = CTypeCLongDigit
|
|
52
36
|
elif isPythonValidCLongValue(expression.getCompileTimeConstant()):
|
|
53
37
|
c_type = CTypeCLong
|
|
54
38
|
else:
|
|
55
39
|
c_type = CTypePyObjectPtr
|
|
40
|
+
elif expression.isExpressionVariableRefOrTempVariableRef():
|
|
41
|
+
# TODO: Module variables are not doing it (yet?)
|
|
42
|
+
variable = expression.getVariable()
|
|
43
|
+
|
|
44
|
+
# TODO: Closure variables should be possible to have non
|
|
45
|
+
# CTypePyObjectPtr eventually.
|
|
46
|
+
if variable.isLocalVariable() and not variable.isSharedTechnically():
|
|
47
|
+
variable_declaration = getLocalVariableDeclaration(
|
|
48
|
+
context=context,
|
|
49
|
+
variable=expression.getVariable(),
|
|
50
|
+
variable_trace=expression.getVariableTrace(),
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
c_type = variable_declaration.getCType()
|
|
54
|
+
else:
|
|
55
|
+
c_type = CTypePyObjectPtr
|
|
56
56
|
else:
|
|
57
57
|
c_type = CTypePyObjectPtr
|
|
58
58
|
|
|
@@ -97,6 +97,8 @@ _long_argument_normalization = {
|
|
|
97
97
|
(CTypeCLong, CTypePyObjectPtr): True,
|
|
98
98
|
(CTypePyObjectPtr, CTypeCLongDigit): False,
|
|
99
99
|
(CTypeCLongDigit, CTypePyObjectPtr): True,
|
|
100
|
+
(CTypeNuitkaIntOrLongStruct, CTypeCLongDigit): False,
|
|
101
|
+
(CTypeCLongDigit, CTypeNuitkaIntOrLongStruct): True,
|
|
100
102
|
}
|
|
101
103
|
|
|
102
104
|
_str_argument_normalization = {
|
|
@@ -108,7 +110,7 @@ _bytes_argument_normalization = {
|
|
|
108
110
|
}
|
|
109
111
|
|
|
110
112
|
|
|
111
|
-
def decideExpressionCTypes(left, right, may_swap_arguments):
|
|
113
|
+
def decideExpressionCTypes(left, right, may_swap_arguments, context):
|
|
112
114
|
# Complex stuff with many cases, pylint: disable=too-many-branches
|
|
113
115
|
|
|
114
116
|
left_shape = left.getTypeShape()
|
|
@@ -117,8 +119,8 @@ def decideExpressionCTypes(left, right, may_swap_arguments):
|
|
|
117
119
|
if left_shape in _int_types_family and right_shape in _int_types_family:
|
|
118
120
|
may_swap_arguments = may_swap_arguments in ("number", "always")
|
|
119
121
|
|
|
120
|
-
left_c_type = _pickIntFamilyType(left)
|
|
121
|
-
right_c_type = _pickIntFamilyType(right)
|
|
122
|
+
left_c_type = _pickIntFamilyType(left, context)
|
|
123
|
+
right_c_type = _pickIntFamilyType(right, context)
|
|
122
124
|
|
|
123
125
|
needs_argument_swap = (
|
|
124
126
|
may_swap_arguments
|
|
@@ -207,3 +209,19 @@ def decideExpressionCTypes(left, right, may_swap_arguments):
|
|
|
207
209
|
left_c_type,
|
|
208
210
|
right_c_type,
|
|
209
211
|
)
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
215
|
+
# integrates with CPython, but also works on its own.
|
|
216
|
+
#
|
|
217
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
218
|
+
# you may not use this file except in compliance with the License.
|
|
219
|
+
# You may obtain a copy of the License at
|
|
220
|
+
#
|
|
221
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
222
|
+
#
|
|
223
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
224
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
225
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
226
|
+
# See the License for the specific language governing permissions and
|
|
227
|
+
# 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
|
""" Expression codes, side effects, or statements that are an unused expression.
|
|
19
5
|
|
|
20
6
|
When you write "f()", i.e. you don't use the return value, that is an expression
|
|
@@ -57,3 +43,19 @@ def generateSideEffectsCode(to_name, expression, emit, context):
|
|
|
57
43
|
emit=emit,
|
|
58
44
|
context=context,
|
|
59
45
|
)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
49
|
+
# integrates with CPython, but also works on its own.
|
|
50
|
+
#
|
|
51
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
52
|
+
# you may not use this file except in compliance with the License.
|
|
53
|
+
# You may obtain a copy of the License at
|
|
54
|
+
#
|
|
55
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
56
|
+
#
|
|
57
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
58
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
59
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
60
|
+
# See the License for the specific language governing permissions and
|
|
61
|
+
# 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
|
""" Frame codes
|
|
19
5
|
|
|
20
6
|
This is about frame stacks and their management. There are different kinds
|
|
@@ -258,9 +244,11 @@ def getFrameGuardHeavyCode(
|
|
|
258
244
|
"locals_size": getFrameLocalsStorageSize(
|
|
259
245
|
context.getFrameVariableTypeDescriptions()
|
|
260
246
|
),
|
|
261
|
-
"locals_dict_name":
|
|
262
|
-
|
|
263
|
-
|
|
247
|
+
"locals_dict_name": (
|
|
248
|
+
frame_node.getLocalsScope().getCodeName()
|
|
249
|
+
if use_locals_dict
|
|
250
|
+
else "NULL"
|
|
251
|
+
),
|
|
264
252
|
}
|
|
265
253
|
)
|
|
266
254
|
|
|
@@ -319,7 +307,6 @@ Py_CLEAR(%(frame_identifier)s->m_frame.f_locals);
|
|
|
319
307
|
frame_init_code=frame_init_code,
|
|
320
308
|
frame_exit_code=frame_exit_code,
|
|
321
309
|
context_identifier=context_identifier,
|
|
322
|
-
is_python34_or_later=python_version >= 0x340,
|
|
323
310
|
is_python3=python_version >= 0x300,
|
|
324
311
|
)
|
|
325
312
|
)
|
|
@@ -338,9 +325,7 @@ Py_CLEAR(%(frame_identifier)s->m_frame.f_locals);
|
|
|
338
325
|
|
|
339
326
|
if frame_exception_exit is not None:
|
|
340
327
|
(
|
|
341
|
-
|
|
342
|
-
_exception_value,
|
|
343
|
-
exception_tb,
|
|
328
|
+
exception_state_name,
|
|
344
329
|
exception_lineno,
|
|
345
330
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
346
331
|
|
|
@@ -357,7 +342,7 @@ Py_CLEAR(%(frame_identifier)s->m_frame.f_locals);
|
|
|
357
342
|
frame_exception_exit=frame_exception_exit,
|
|
358
343
|
frame_exit_code=frame_exit_code,
|
|
359
344
|
needs_preserve=needs_preserve,
|
|
360
|
-
|
|
345
|
+
exception_state_name=exception_state_name,
|
|
361
346
|
exception_lineno=exception_lineno,
|
|
362
347
|
)
|
|
363
348
|
)
|
|
@@ -379,9 +364,7 @@ def getFrameGuardGeneratorCode(
|
|
|
379
364
|
# We really need this many parameters here and it gets very
|
|
380
365
|
# detail rich, pylint: disable=too-many-locals
|
|
381
366
|
(
|
|
382
|
-
|
|
383
|
-
_exception_value,
|
|
384
|
-
exception_tb,
|
|
367
|
+
exception_state_name,
|
|
385
368
|
exception_lineno,
|
|
386
369
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
387
370
|
|
|
@@ -422,7 +405,6 @@ def getFrameGuardGeneratorCode(
|
|
|
422
405
|
frame_init_code=frame_init_code,
|
|
423
406
|
frame_exit_code=frame_exit_code,
|
|
424
407
|
is_generator=is_generator,
|
|
425
|
-
is_python34_or_later=python_version >= 0x340,
|
|
426
408
|
is_python3=python_version >= 0x300,
|
|
427
409
|
)
|
|
428
410
|
)
|
|
@@ -444,8 +426,7 @@ def getFrameGuardGeneratorCode(
|
|
|
444
426
|
"context_identifier": context_identifier,
|
|
445
427
|
"frame_identifier": frame_identifier,
|
|
446
428
|
"frame_cache_identifier": frame_cache_identifier,
|
|
447
|
-
"
|
|
448
|
-
"exception_tb": exception_tb,
|
|
429
|
+
"exception_state_name": exception_state_name,
|
|
449
430
|
"exception_lineno": exception_lineno,
|
|
450
431
|
"tb_making": getTracebackMakingIdentifier(
|
|
451
432
|
context=context, lineno_name=exception_lineno
|
|
@@ -510,3 +491,19 @@ SET_CURRENT_EXCEPTION(tstate, &%(exception_preserved)s);
|
|
|
510
491
|
"preserver_id": preserver_id,
|
|
511
492
|
}
|
|
512
493
|
)
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
497
|
+
# integrates with CPython, but also works on its own.
|
|
498
|
+
#
|
|
499
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
500
|
+
# you may not use this file except in compliance with the License.
|
|
501
|
+
# You may obtain a copy of the License at
|
|
502
|
+
#
|
|
503
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
504
|
+
#
|
|
505
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
506
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
507
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
508
|
+
# See the License for the specific language governing permissions and
|
|
509
|
+
# limitations under the License.
|