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 for implicit and explicit exception raises.
|
|
19
5
|
|
|
20
6
|
Exceptions from other operations are consider ErrorCodes domain.
|
|
@@ -22,13 +8,16 @@ Exceptions from other operations are consider ErrorCodes domain.
|
|
|
22
8
|
"""
|
|
23
9
|
|
|
24
10
|
from nuitka import Options
|
|
11
|
+
from nuitka.Builtins import isBaseExceptionSimpleExtension
|
|
12
|
+
from nuitka.PythonVersions import python_version
|
|
25
13
|
|
|
26
14
|
from .CodeHelpers import (
|
|
27
15
|
generateChildExpressionsCode,
|
|
28
16
|
generateExpressionCode,
|
|
29
17
|
withObjectCodeTemporaryAssignment,
|
|
30
18
|
)
|
|
31
|
-
from .ErrorCodes import getFrameVariableTypeDescriptionCode
|
|
19
|
+
from .ErrorCodes import getErrorExitCode, getFrameVariableTypeDescriptionCode
|
|
20
|
+
from .ExceptionCodes import getExceptionIdentifier
|
|
32
21
|
from .LabelCodes import getGotoCode
|
|
33
22
|
from .LineNumberCodes import (
|
|
34
23
|
emitErrorLineNumberUpdateCode,
|
|
@@ -44,6 +33,80 @@ def generateReraiseCode(statement, emit, context):
|
|
|
44
33
|
getReRaiseExceptionCode(emit=emit, context=context)
|
|
45
34
|
|
|
46
35
|
|
|
36
|
+
def _haveQuickExceptionCreationCode(exception_name):
|
|
37
|
+
result = exception_name in ("StopIteration",)
|
|
38
|
+
|
|
39
|
+
# TODO: Get this complete for larger test suites.
|
|
40
|
+
# assert result, exception_name
|
|
41
|
+
|
|
42
|
+
return result
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def _generateExceptionNormalizeCode(to_name, exception_type, emit, context):
|
|
46
|
+
|
|
47
|
+
if exception_type.isExpressionBuiltinExceptionRef():
|
|
48
|
+
exception_name = exception_type.getExceptionName()
|
|
49
|
+
if isBaseExceptionSimpleExtension(exception_type.getCompileTimeConstant()):
|
|
50
|
+
emit(
|
|
51
|
+
"%s = MAKE_BASE_EXCEPTION_DERIVED_EMPTY(%s);"
|
|
52
|
+
% (to_name, getExceptionIdentifier(exception_name))
|
|
53
|
+
)
|
|
54
|
+
context.addCleanupTempName(to_name)
|
|
55
|
+
|
|
56
|
+
return
|
|
57
|
+
elif _haveQuickExceptionCreationCode(exception_type.getExceptionName()):
|
|
58
|
+
# TODO: Code generation like this here, ought to be shared with
|
|
59
|
+
# the one for ExpressionBuiltinMakeExceptionRef once that is
|
|
60
|
+
# done too.
|
|
61
|
+
if exception_name == "StopIteration":
|
|
62
|
+
emit("%s = MAKE_STOP_ITERATION_EMPTY();" % to_name)
|
|
63
|
+
else:
|
|
64
|
+
assert False, exception_name
|
|
65
|
+
|
|
66
|
+
context.addCleanupTempName(to_name)
|
|
67
|
+
return
|
|
68
|
+
|
|
69
|
+
# TODO: Can only fall through if exception builtins are not fully handled,
|
|
70
|
+
# but we should make sure that doesn't ever happen by handling them all.
|
|
71
|
+
|
|
72
|
+
if exception_type.isExpressionBuiltinMakeException():
|
|
73
|
+
# TODO: Make this shape based, but currently the nodes do not
|
|
74
|
+
# provide the shape, we need to add that.
|
|
75
|
+
|
|
76
|
+
# No need to normalize these.
|
|
77
|
+
generateExpressionCode(
|
|
78
|
+
to_name=to_name,
|
|
79
|
+
expression=exception_type,
|
|
80
|
+
emit=emit,
|
|
81
|
+
context=context,
|
|
82
|
+
)
|
|
83
|
+
else:
|
|
84
|
+
# Need to normalize exceptions.
|
|
85
|
+
raise_type_input_name = context.allocateTempName("raise_type_input")
|
|
86
|
+
|
|
87
|
+
generateExpressionCode(
|
|
88
|
+
to_name=raise_type_input_name,
|
|
89
|
+
expression=exception_type,
|
|
90
|
+
emit=emit,
|
|
91
|
+
context=context,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
emit(
|
|
95
|
+
"%s = NORMALIZE_EXCEPTION_VALUE_FOR_RAISE(tstate, %s);"
|
|
96
|
+
% (to_name, raise_type_input_name)
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
getErrorExitCode(
|
|
100
|
+
check_name=to_name,
|
|
101
|
+
release_name=raise_type_input_name,
|
|
102
|
+
needs_check=True,
|
|
103
|
+
emit=emit,
|
|
104
|
+
context=context,
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
context.addCleanupTempName(to_name)
|
|
108
|
+
|
|
109
|
+
|
|
47
110
|
def generateRaiseCode(statement, emit, context):
|
|
48
111
|
exception_type = statement.subnode_exception_type
|
|
49
112
|
exception_value = statement.subnode_exception_value
|
|
@@ -58,12 +121,20 @@ def generateRaiseCode(statement, emit, context):
|
|
|
58
121
|
|
|
59
122
|
raise_type_name = context.allocateTempName("raise_type")
|
|
60
123
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
124
|
+
if python_version >= 0x3C0:
|
|
125
|
+
_generateExceptionNormalizeCode(
|
|
126
|
+
to_name=raise_type_name,
|
|
127
|
+
exception_type=exception_type,
|
|
128
|
+
emit=emit,
|
|
129
|
+
context=context,
|
|
130
|
+
)
|
|
131
|
+
else:
|
|
132
|
+
generateExpressionCode(
|
|
133
|
+
to_name=raise_type_name,
|
|
134
|
+
expression=exception_type,
|
|
135
|
+
emit=emit,
|
|
136
|
+
context=context,
|
|
137
|
+
)
|
|
67
138
|
|
|
68
139
|
raise_cause_name = context.allocateTempName("raise_cause")
|
|
69
140
|
|
|
@@ -88,12 +159,20 @@ def generateRaiseCode(statement, emit, context):
|
|
|
88
159
|
elif exception_value is None and exception_tb is None:
|
|
89
160
|
raise_type_name = context.allocateTempName("raise_type")
|
|
90
161
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
162
|
+
if python_version >= 0x3C0:
|
|
163
|
+
_generateExceptionNormalizeCode(
|
|
164
|
+
to_name=raise_type_name,
|
|
165
|
+
exception_type=exception_type,
|
|
166
|
+
emit=emit,
|
|
167
|
+
context=context,
|
|
168
|
+
)
|
|
169
|
+
else:
|
|
170
|
+
generateExpressionCode(
|
|
171
|
+
to_name=raise_type_name,
|
|
172
|
+
expression=exception_type,
|
|
173
|
+
emit=emit,
|
|
174
|
+
context=context,
|
|
175
|
+
)
|
|
97
176
|
|
|
98
177
|
with context.withCurrentSourceCodeReference(
|
|
99
178
|
value=exception_type.getCompatibleSourceReference()
|
|
@@ -127,7 +206,6 @@ def generateRaiseCode(statement, emit, context):
|
|
|
127
206
|
_getRaiseExceptionWithValueCode(
|
|
128
207
|
raise_type_name=raise_type_name,
|
|
129
208
|
raise_value_name=raise_value_name,
|
|
130
|
-
implicit=statement.isStatementRaiseExceptionImplicit(),
|
|
131
209
|
emit=emit,
|
|
132
210
|
context=context,
|
|
133
211
|
)
|
|
@@ -167,7 +245,7 @@ def generateRaiseCode(statement, emit, context):
|
|
|
167
245
|
|
|
168
246
|
|
|
169
247
|
def generateRaiseExpressionCode(to_name, expression, emit, context):
|
|
170
|
-
|
|
248
|
+
(exception_value_name,) = generateChildExpressionsCode(
|
|
171
249
|
expression=expression, emit=emit, context=context
|
|
172
250
|
)
|
|
173
251
|
|
|
@@ -192,10 +270,8 @@ def generateRaiseExpressionCode(to_name, expression, emit, context):
|
|
|
192
270
|
# That's how we indicate exception to the surrounding world.
|
|
193
271
|
emit("%s = NULL;" % value_name)
|
|
194
272
|
|
|
195
|
-
|
|
196
|
-
raise_type_name=
|
|
197
|
-
raise_value_name=arg_names[1],
|
|
198
|
-
implicit=True,
|
|
273
|
+
_getRaiseExceptionWithTypeCode(
|
|
274
|
+
raise_type_name=exception_value_name,
|
|
199
275
|
emit=emit,
|
|
200
276
|
context=context,
|
|
201
277
|
)
|
|
@@ -203,26 +279,25 @@ def generateRaiseExpressionCode(to_name, expression, emit, context):
|
|
|
203
279
|
|
|
204
280
|
def getReRaiseExceptionCode(emit, context):
|
|
205
281
|
(
|
|
206
|
-
|
|
207
|
-
exception_value,
|
|
208
|
-
exception_tb,
|
|
282
|
+
exception_state_name,
|
|
209
283
|
exception_lineno,
|
|
210
284
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
211
285
|
|
|
212
|
-
|
|
286
|
+
(
|
|
287
|
+
keeper_exception_state_name,
|
|
288
|
+
_keeper_lineno,
|
|
289
|
+
) = context.getExceptionKeeperVariables()
|
|
213
290
|
|
|
214
|
-
if
|
|
291
|
+
if keeper_exception_state_name is None:
|
|
215
292
|
emit(
|
|
216
293
|
"""\
|
|
217
|
-
%(bool_res_name)s = RERAISE_EXCEPTION(
|
|
294
|
+
%(bool_res_name)s = RERAISE_EXCEPTION(tstate, &%(exception_state_name)s);
|
|
218
295
|
if (unlikely(%(bool_res_name)s == false)) {
|
|
219
296
|
%(update_code)s
|
|
220
297
|
}
|
|
221
298
|
"""
|
|
222
299
|
% {
|
|
223
|
-
"
|
|
224
|
-
"exception_value": exception_value,
|
|
225
|
-
"exception_tb": exception_tb,
|
|
300
|
+
"exception_state_name": exception_state_name,
|
|
226
301
|
"bool_res_name": context.getBoolResName(),
|
|
227
302
|
"update_code": getErrorLineNumberUpdateCode(context),
|
|
228
303
|
}
|
|
@@ -233,10 +308,15 @@ if (unlikely(%(bool_res_name)s == false)) {
|
|
|
233
308
|
if frame_handle:
|
|
234
309
|
emit(
|
|
235
310
|
"""\
|
|
236
|
-
|
|
237
|
-
|
|
311
|
+
{
|
|
312
|
+
PyTracebackObject *exception_tb = GET_EXCEPTION_STATE_TRACEBACK(&%(exception_state_name)s);
|
|
313
|
+
|
|
314
|
+
if ((exception_tb != NULL) && (exception_tb->tb_frame == &%(frame_identifier)s->m_frame)) {
|
|
315
|
+
%(frame_identifier)s->m_frame.f_lineno = exception_tb->tb_lineno;
|
|
316
|
+
}
|
|
317
|
+
}"""
|
|
238
318
|
% {
|
|
239
|
-
"
|
|
319
|
+
"exception_state_name": exception_state_name,
|
|
240
320
|
"frame_identifier": context.getFrameHandle(),
|
|
241
321
|
}
|
|
242
322
|
)
|
|
@@ -244,28 +324,20 @@ if (%(exception_tb)s && %(exception_tb)s->tb_frame == &%(frame_identifier)s->m_f
|
|
|
244
324
|
emit(getFrameVariableTypeDescriptionCode(context))
|
|
245
325
|
else:
|
|
246
326
|
(
|
|
247
|
-
|
|
248
|
-
keeper_value,
|
|
249
|
-
keeper_tb,
|
|
327
|
+
keeper_exception_state_name,
|
|
250
328
|
keeper_lineno,
|
|
251
329
|
) = context.getExceptionKeeperVariables()
|
|
252
330
|
|
|
253
331
|
emit(
|
|
254
332
|
"""\
|
|
255
333
|
// Re-raise.
|
|
256
|
-
%(
|
|
257
|
-
%(exception_value)s = %(keeper_value)s;
|
|
258
|
-
%(exception_tb)s = %(keeper_tb)s;
|
|
334
|
+
%(exception_state_name)s = %(keeper_exception_state_name)s;
|
|
259
335
|
%(exception_lineno)s = %(keeper_lineno)s;
|
|
260
336
|
"""
|
|
261
337
|
% {
|
|
262
|
-
"
|
|
263
|
-
"exception_value": exception_value,
|
|
264
|
-
"exception_tb": exception_tb,
|
|
338
|
+
"exception_state_name": exception_state_name,
|
|
265
339
|
"exception_lineno": exception_lineno,
|
|
266
|
-
"
|
|
267
|
-
"keeper_value": keeper_value,
|
|
268
|
-
"keeper_tb": keeper_tb,
|
|
340
|
+
"keeper_exception_state_name": keeper_exception_state_name,
|
|
269
341
|
"keeper_lineno": keeper_lineno,
|
|
270
342
|
}
|
|
271
343
|
)
|
|
@@ -275,23 +347,23 @@ if (%(exception_tb)s && %(exception_tb)s->tb_frame == &%(frame_identifier)s->m_f
|
|
|
275
347
|
|
|
276
348
|
def _getRaiseExceptionWithCauseCode(raise_type_name, raise_cause_name, emit, context):
|
|
277
349
|
(
|
|
278
|
-
|
|
279
|
-
exception_value,
|
|
280
|
-
exception_tb,
|
|
350
|
+
exception_state_name,
|
|
281
351
|
_exception_lineno,
|
|
282
352
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
283
353
|
|
|
284
|
-
|
|
285
|
-
|
|
354
|
+
if python_version < 0x3C0:
|
|
355
|
+
emit("%s.exception_type = %s;" % (exception_state_name, raise_type_name))
|
|
356
|
+
else:
|
|
357
|
+
emit("%s.exception_value = %s;" % (exception_state_name, raise_type_name))
|
|
286
358
|
|
|
287
|
-
|
|
359
|
+
getReferenceExportCode(raise_type_name, emit, context)
|
|
288
360
|
|
|
289
361
|
getReferenceExportCode(raise_cause_name, emit, context)
|
|
290
362
|
|
|
291
363
|
emitErrorLineNumberUpdateCode(emit, context)
|
|
292
364
|
emit(
|
|
293
|
-
"RAISE_EXCEPTION_WITH_CAUSE(tstate, &%s,
|
|
294
|
-
% (
|
|
365
|
+
"RAISE_EXCEPTION_WITH_CAUSE(tstate, &%s, %s);"
|
|
366
|
+
% (exception_state_name, raise_cause_name)
|
|
295
367
|
)
|
|
296
368
|
|
|
297
369
|
emit(getFrameVariableTypeDescriptionCode(context))
|
|
@@ -306,20 +378,24 @@ def _getRaiseExceptionWithCauseCode(raise_type_name, raise_cause_name, emit, con
|
|
|
306
378
|
|
|
307
379
|
def _getRaiseExceptionWithTypeCode(raise_type_name, emit, context):
|
|
308
380
|
(
|
|
309
|
-
|
|
310
|
-
exception_value,
|
|
311
|
-
exception_tb,
|
|
381
|
+
exception_state_name,
|
|
312
382
|
_exception_lineno,
|
|
313
383
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
314
384
|
|
|
315
|
-
|
|
316
|
-
|
|
385
|
+
if python_version < 0x3C0:
|
|
386
|
+
emit("%s.exception_type = %s;" % (exception_state_name, raise_type_name))
|
|
387
|
+
getReferenceExportCode(raise_type_name, emit, context)
|
|
317
388
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
"RAISE_EXCEPTION_WITH_TYPE(tstate, &%s
|
|
321
|
-
|
|
322
|
-
|
|
389
|
+
emitErrorLineNumberUpdateCode(emit, context)
|
|
390
|
+
|
|
391
|
+
emit("RAISE_EXCEPTION_WITH_TYPE(tstate, &%s);" % exception_state_name)
|
|
392
|
+
else:
|
|
393
|
+
emit("%s.exception_value = %s;" % (exception_state_name, raise_type_name))
|
|
394
|
+
getReferenceExportCode(raise_type_name, emit, context)
|
|
395
|
+
|
|
396
|
+
emitErrorLineNumberUpdateCode(emit, context)
|
|
397
|
+
|
|
398
|
+
emit("RAISE_EXCEPTION_WITH_VALUE(tstate, &%s);" % exception_state_name)
|
|
323
399
|
|
|
324
400
|
emit(getFrameVariableTypeDescriptionCode(context))
|
|
325
401
|
|
|
@@ -329,33 +405,20 @@ def _getRaiseExceptionWithTypeCode(raise_type_name, emit, context):
|
|
|
329
405
|
context.removeCleanupTempName(raise_type_name)
|
|
330
406
|
|
|
331
407
|
|
|
332
|
-
def _getRaiseExceptionWithValueCode(
|
|
333
|
-
raise_type_name, raise_value_name, implicit, emit, context
|
|
334
|
-
):
|
|
408
|
+
def _getRaiseExceptionWithValueCode(raise_type_name, raise_value_name, emit, context):
|
|
335
409
|
(
|
|
336
|
-
|
|
337
|
-
exception_value,
|
|
338
|
-
exception_tb,
|
|
410
|
+
exception_state_name,
|
|
339
411
|
_exception_lineno,
|
|
340
412
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
341
413
|
|
|
342
|
-
emit("%s = %s;" % (
|
|
414
|
+
emit("%s.exception_type = %s;" % (exception_state_name, raise_type_name))
|
|
343
415
|
getReferenceExportCode(raise_type_name, emit, context)
|
|
344
|
-
emit("%s = %s;" % (
|
|
416
|
+
emit("%s.exception_value = %s;" % (exception_state_name, raise_value_name))
|
|
345
417
|
getReferenceExportCode(raise_value_name, emit, context)
|
|
346
418
|
|
|
347
419
|
emitErrorLineNumberUpdateCode(emit, context)
|
|
348
420
|
|
|
349
|
-
|
|
350
|
-
emit(
|
|
351
|
-
"RAISE_EXCEPTION_%s(tstate, &%s, &%s, &%s);"
|
|
352
|
-
% (
|
|
353
|
-
("IMPLICIT" if implicit else "WITH_VALUE"),
|
|
354
|
-
exception_type,
|
|
355
|
-
exception_value,
|
|
356
|
-
exception_tb,
|
|
357
|
-
)
|
|
358
|
-
)
|
|
421
|
+
emit("RAISE_EXCEPTION_WITH_TYPE_AND_VALUE(tstate, &%s);" % (exception_state_name,))
|
|
359
422
|
|
|
360
423
|
emit(getFrameVariableTypeDescriptionCode(context))
|
|
361
424
|
|
|
@@ -371,24 +434,21 @@ def _getRaiseExceptionWithTracebackCode(
|
|
|
371
434
|
raise_type_name, raise_value_name, raise_tb_name, emit, context
|
|
372
435
|
):
|
|
373
436
|
(
|
|
374
|
-
|
|
375
|
-
exception_value,
|
|
376
|
-
exception_tb,
|
|
437
|
+
exception_state_name,
|
|
377
438
|
_exception_lineno,
|
|
378
439
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
379
440
|
|
|
380
|
-
emit("%s = %s;" % (
|
|
441
|
+
emit("%s.exception_type = %s;" % (exception_state_name, raise_type_name))
|
|
381
442
|
getReferenceExportCode(raise_type_name, emit, context)
|
|
382
|
-
emit("%s = %s;" % (
|
|
443
|
+
emit("%s.exception_value = %s;" % (exception_state_name, raise_value_name))
|
|
383
444
|
getReferenceExportCode(raise_value_name, emit, context)
|
|
384
|
-
|
|
385
|
-
emit("%s = (PyTracebackObject *)%s;" % (exception_tb, raise_tb_name))
|
|
386
|
-
getReferenceExportCode(raise_tb_name, emit, context)
|
|
387
|
-
|
|
388
445
|
emit(
|
|
389
|
-
"
|
|
390
|
-
% (
|
|
446
|
+
"%s.exception_tb = (PyTracebackObject *)%s;"
|
|
447
|
+
% (exception_state_name, raise_tb_name)
|
|
391
448
|
)
|
|
449
|
+
getReferenceExportCode(raise_tb_name, emit, context)
|
|
450
|
+
|
|
451
|
+
emit("RAISE_EXCEPTION_WITH_TRACEBACK(tstate, &%s);" % (exception_state_name))
|
|
392
452
|
|
|
393
453
|
# If anything is wrong, that will be used.
|
|
394
454
|
emitErrorLineNumberUpdateCode(emit, context)
|
|
@@ -403,3 +463,19 @@ def _getRaiseExceptionWithTracebackCode(
|
|
|
403
463
|
context.removeCleanupTempName(raise_value_name)
|
|
404
464
|
if context.needsCleanup(raise_tb_name):
|
|
405
465
|
context.removeCleanupTempName(raise_tb_name)
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
469
|
+
# integrates with CPython, but also works on its own.
|
|
470
|
+
#
|
|
471
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
472
|
+
# you may not use this file except in compliance with the License.
|
|
473
|
+
# You may obtain a copy of the License at
|
|
474
|
+
#
|
|
475
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
476
|
+
#
|
|
477
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
478
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
479
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
480
|
+
# See the License for the specific language governing permissions and
|
|
481
|
+
# 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
|
""" Reports about code generation.
|
|
19
5
|
|
|
20
6
|
Initially this is about missing optimization only, but it should expand into
|
|
21
7
|
real stuff.
|
|
22
8
|
"""
|
|
23
9
|
|
|
10
|
+
from nuitka import Options
|
|
24
11
|
from nuitka.containers.OrderedDicts import OrderedDict
|
|
25
12
|
from nuitka.containers.OrderedSets import OrderedSet
|
|
26
13
|
from nuitka.Tracing import code_generation_logger, optimization_logger
|
|
@@ -40,8 +27,8 @@ _error_for_missing = False
|
|
|
40
27
|
def doMissingOptimizationReport():
|
|
41
28
|
for helper, source_refs in _missing_helpers.items():
|
|
42
29
|
message = "Missing C helper code variant, used fallback: %s at %s" % (
|
|
43
|
-
",".join(source_ref.getAsString() for source_ref in source_refs),
|
|
44
30
|
helper,
|
|
31
|
+
",".join(source_ref.getAsString() for source_ref in source_refs),
|
|
45
32
|
)
|
|
46
33
|
|
|
47
34
|
if _error_for_missing:
|
|
@@ -89,13 +76,20 @@ def onMissingOperation(operation, left, right):
|
|
|
89
76
|
_missing_operations.add((operation, left, right))
|
|
90
77
|
|
|
91
78
|
|
|
79
|
+
def onMissingUnaryOperation(operation, shape):
|
|
80
|
+
# Avoid the circular dependency on tshape_uninitialized from StandardShapes.
|
|
81
|
+
if shape.__class__.__name__ != "ShapeTypeUninitialized":
|
|
82
|
+
_missing_operations.add((operation, shape))
|
|
83
|
+
|
|
84
|
+
|
|
92
85
|
def onMissingTrust(operation, source_ref, *args):
|
|
93
|
-
|
|
86
|
+
if Options.report_missing_trust:
|
|
87
|
+
key = (operation,) + args
|
|
94
88
|
|
|
95
|
-
|
|
96
|
-
|
|
89
|
+
if key not in _missing_trust:
|
|
90
|
+
_missing_trust[key] = OrderedSet()
|
|
97
91
|
|
|
98
|
-
|
|
92
|
+
_missing_trust[key].add(source_ref)
|
|
99
93
|
|
|
100
94
|
|
|
101
95
|
def onMissingOverload(method_name, node):
|
|
@@ -103,3 +97,19 @@ def onMissingOverload(method_name, node):
|
|
|
103
97
|
_missing_overloads[method_name] = OrderedSet()
|
|
104
98
|
|
|
105
99
|
_missing_overloads[method_name].add(node.kind)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
103
|
+
# integrates with CPython, but also works on its own.
|
|
104
|
+
#
|
|
105
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
106
|
+
# you may not use this file except in compliance with the License.
|
|
107
|
+
# You may obtain a copy of the License at
|
|
108
|
+
#
|
|
109
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
110
|
+
#
|
|
111
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
112
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
113
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
114
|
+
# See the License for the specific language governing permissions and
|
|
115
|
+
# 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
|
""" Return codes
|
|
19
5
|
|
|
20
6
|
This handles code generation for return statements of normal functions and of
|
|
@@ -109,19 +95,13 @@ def generateGeneratorReturnValueCode(statement, emit, context):
|
|
|
109
95
|
context.removeCleanupTempName(return_value_name)
|
|
110
96
|
else:
|
|
111
97
|
emit("Py_INCREF(%s);" % return_value_name)
|
|
112
|
-
elif statement.getParentVariableProvider().needsGeneratorReturnHandling():
|
|
113
|
-
return_value_name = context.getGeneratorReturnValueName()
|
|
114
|
-
|
|
115
|
-
generator_return_name = context.allocateTempName(
|
|
116
|
-
"generator_return", "bool", unique=True
|
|
117
|
-
)
|
|
118
|
-
|
|
119
|
-
emit("%s = true;" % generator_return_name)
|
|
120
98
|
|
|
121
99
|
getGotoCode(context.getReturnTarget(), emit)
|
|
122
100
|
|
|
123
101
|
|
|
124
102
|
def generateGeneratorReturnNoneCode(statement, emit, context):
|
|
103
|
+
# We don't need the statement, pylint: disable=unused-argument
|
|
104
|
+
|
|
125
105
|
if context.getOwner().isExpressionAsyncgenObjectBody():
|
|
126
106
|
pass
|
|
127
107
|
elif python_version >= 0x300:
|
|
@@ -143,13 +123,21 @@ def generateGeneratorReturnNoneCode(statement, emit, context):
|
|
|
143
123
|
context.removeCleanupTempName(return_value_name)
|
|
144
124
|
else:
|
|
145
125
|
emit("Py_INCREF(%s);" % return_value_name)
|
|
146
|
-
elif statement.getParentVariableProvider().needsGeneratorReturnHandling():
|
|
147
|
-
return_value_name = context.getGeneratorReturnValueName()
|
|
148
126
|
|
|
149
|
-
|
|
150
|
-
"generator_return", "bool", unique=True
|
|
151
|
-
)
|
|
127
|
+
getGotoCode(context.getReturnTarget(), emit)
|
|
152
128
|
|
|
153
|
-
emit("%s = true;" % generator_return_name)
|
|
154
129
|
|
|
155
|
-
|
|
130
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
131
|
+
# integrates with CPython, but also works on its own.
|
|
132
|
+
#
|
|
133
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
134
|
+
# you may not use this file except in compliance with the License.
|
|
135
|
+
# You may obtain a copy of the License at
|
|
136
|
+
#
|
|
137
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
138
|
+
#
|
|
139
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
140
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
141
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
142
|
+
# See the License for the specific language governing permissions and
|
|
143
|
+
# 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 sets.
|
|
19
5
|
|
|
20
6
|
Right now only the creation, and set add code is done here. But more should be
|
|
@@ -192,3 +178,19 @@ def generateBuiltinFrozensetCode(to_name, expression, emit, context):
|
|
|
192
178
|
emit=emit,
|
|
193
179
|
context=context,
|
|
194
180
|
)
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
184
|
+
# integrates with CPython, but also works on its own.
|
|
185
|
+
#
|
|
186
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
187
|
+
# you may not use this file except in compliance with the License.
|
|
188
|
+
# You may obtain a copy of the License at
|
|
189
|
+
#
|
|
190
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
191
|
+
#
|
|
192
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
193
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
194
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
195
|
+
# See the License for the specific language governing permissions and
|
|
196
|
+
# limitations under the License.
|