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
|
""" Indentation of code.
|
|
19
5
|
|
|
20
6
|
Language independent, the amount of the spaces is not configurable, as it needs
|
|
@@ -22,14 +8,13 @@ to be the same as in templates.
|
|
|
22
8
|
"""
|
|
23
9
|
|
|
24
10
|
|
|
25
|
-
def _indentedCode(codes,
|
|
11
|
+
def _indentedCode(codes, prefix):
|
|
26
12
|
return "\n".join(
|
|
27
|
-
|
|
28
|
-
for line in codes
|
|
13
|
+
prefix + line if (line and line[0] != "#") else line for line in codes
|
|
29
14
|
)
|
|
30
15
|
|
|
31
16
|
|
|
32
|
-
def indented(codes, level=
|
|
17
|
+
def indented(codes, level=4, vert_block=False):
|
|
33
18
|
if type(codes) is str:
|
|
34
19
|
codes = codes.split("\n")
|
|
35
20
|
|
|
@@ -37,8 +22,24 @@ def indented(codes, level=1, vert_block=False):
|
|
|
37
22
|
codes.insert(0, "")
|
|
38
23
|
codes.append("")
|
|
39
24
|
|
|
40
|
-
return _indentedCode(codes,
|
|
25
|
+
return _indentedCode(codes, " " * level)
|
|
41
26
|
|
|
42
27
|
|
|
43
28
|
def getCommentCode(comment, emit):
|
|
44
29
|
emit("// " + comment)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
33
|
+
# integrates with CPython, but also works on its own.
|
|
34
|
+
#
|
|
35
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
36
|
+
# you may not use this file except in compliance with the License.
|
|
37
|
+
# You may obtain a copy of the License at
|
|
38
|
+
#
|
|
39
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
40
|
+
#
|
|
41
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
42
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
43
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
44
|
+
# See the License for the specific language governing permissions and
|
|
45
|
+
# 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 index values.
|
|
19
5
|
|
|
20
6
|
This is not for actual subscripts (see SubscriptCodes), but to convert
|
|
@@ -46,3 +32,19 @@ def getIndexCode(to_name, value_name, emit, context):
|
|
|
46
32
|
|
|
47
33
|
def getIndexValueCode(to_name, value, emit):
|
|
48
34
|
emit("%s = %d;" % (to_name, value))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
38
|
+
# integrates with CPython, but also works on its own.
|
|
39
|
+
#
|
|
40
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
41
|
+
# you may not use this file except in compliance with the License.
|
|
42
|
+
# You may obtain a copy of the License at
|
|
43
|
+
#
|
|
44
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
45
|
+
#
|
|
46
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
47
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
48
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
49
|
+
# See the License for the specific language governing permissions and
|
|
50
|
+
# limitations under the License.
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" C code inject related nodes.
|
|
5
|
+
|
|
6
|
+
These are only coming from special purpose plugins.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def generateInjectCCode(statement, emit, context):
|
|
11
|
+
# No intelligence here, just dumping the code, pylint: disable=unused-argument
|
|
12
|
+
emit(statement.c_code)
|
|
13
|
+
|
|
14
|
+
|
|
3
15
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
16
|
# integrates with CPython, but also works on its own.
|
|
5
17
|
#
|
|
@@ -14,13 +26,3 @@
|
|
|
14
26
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
27
|
# See the License for the specific language governing permissions and
|
|
16
28
|
# limitations under the License.
|
|
17
|
-
#
|
|
18
|
-
""" C code inject related nodes.
|
|
19
|
-
|
|
20
|
-
These are only coming from special purpose plugins.
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def generateInjectCCode(statement, emit, context):
|
|
25
|
-
# No intelligence here, just dumping the code, pylint: disable=unused-argument
|
|
26
|
-
emit(statement.c_code)
|
|
@@ -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
|
""" Integer related codes, long and int.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -106,3 +92,19 @@ def generateBuiltinInt2Code(to_name, expression, emit, context):
|
|
|
106
92
|
)
|
|
107
93
|
|
|
108
94
|
context.addCleanupTempName(result_name)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
98
|
+
# integrates with CPython, but also works on its own.
|
|
99
|
+
#
|
|
100
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
101
|
+
# you may not use this file except in compliance with the License.
|
|
102
|
+
# You may obtain a copy of the License at
|
|
103
|
+
#
|
|
104
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
105
|
+
#
|
|
106
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
107
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
108
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
109
|
+
# See the License for the specific language governing permissions and
|
|
110
|
+
# 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
|
""" Iteration related codes.
|
|
19
5
|
|
|
20
6
|
Next variants and unpacking with related checks.
|
|
@@ -40,10 +26,7 @@ from .ErrorCodes import (
|
|
|
40
26
|
from .Indentation import indented
|
|
41
27
|
from .LineNumberCodes import getErrorLineNumberUpdateCode
|
|
42
28
|
from .PythonAPICodes import generateCAPIObjectCode
|
|
43
|
-
from .templates.CodeTemplatesIterators import
|
|
44
|
-
template_iterator_check,
|
|
45
|
-
template_loop_break_next,
|
|
46
|
-
)
|
|
29
|
+
from .templates.CodeTemplatesIterators import template_loop_break_next
|
|
47
30
|
|
|
48
31
|
|
|
49
32
|
def generateBuiltinNext1Code(to_name, expression, emit, context):
|
|
@@ -51,15 +34,38 @@ def generateBuiltinNext1Code(to_name, expression, emit, context):
|
|
|
51
34
|
expression=expression, emit=emit, context=context
|
|
52
35
|
)
|
|
53
36
|
|
|
37
|
+
(
|
|
38
|
+
exception_state_name,
|
|
39
|
+
_exception_lineno,
|
|
40
|
+
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
41
|
+
|
|
54
42
|
with withObjectCodeTemporaryAssignment(
|
|
55
43
|
to_name, "next_value", expression, emit, context
|
|
56
44
|
) as result_name:
|
|
57
|
-
|
|
45
|
+
# TODO: Make use of "ITERATOR_NEXT_ITERATOR" in case of known type shape
|
|
46
|
+
# iterator.
|
|
47
|
+
emit(
|
|
48
|
+
"""\
|
|
49
|
+
%(to_name)s = ITERATOR_NEXT(%(iterator_name)s);
|
|
50
|
+
if (%(to_name)s == NULL) {
|
|
51
|
+
FETCH_ERROR_OCCURRED_STATE(tstate, &%(exception_state_name)s);
|
|
52
|
+
|
|
53
|
+
if (!HAS_EXCEPTION_STATE(&%(exception_state_name)s)) {
|
|
54
|
+
SET_EXCEPTION_PRESERVATION_STATE_STOP_ITERATION_EMPTY(tstate, &%(exception_state_name)s);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
"""
|
|
58
|
+
% {
|
|
59
|
+
"to_name": result_name,
|
|
60
|
+
"iterator_name": value_name,
|
|
61
|
+
"exception_state_name": exception_state_name,
|
|
62
|
+
}
|
|
63
|
+
)
|
|
58
64
|
|
|
59
65
|
getErrorExitCode(
|
|
60
66
|
check_name=result_name,
|
|
61
67
|
release_name=value_name,
|
|
62
|
-
|
|
68
|
+
fetched_exception=True,
|
|
63
69
|
emit=emit,
|
|
64
70
|
context=context,
|
|
65
71
|
)
|
|
@@ -67,8 +73,11 @@ def generateBuiltinNext1Code(to_name, expression, emit, context):
|
|
|
67
73
|
context.addCleanupTempName(result_name)
|
|
68
74
|
|
|
69
75
|
|
|
70
|
-
def getBuiltinLoopBreakNextCode(to_name, value, emit, context):
|
|
71
|
-
|
|
76
|
+
def getBuiltinLoopBreakNextCode(expression, to_name, value, emit, context):
|
|
77
|
+
if expression.getTypeShape().isShapeIterator():
|
|
78
|
+
emit("%s = %s;" % (to_name, "ITERATOR_NEXT_ITERATOR(%s)" % value))
|
|
79
|
+
else:
|
|
80
|
+
emit("%s = %s;" % (to_name, "ITERATOR_NEXT(%s)" % value))
|
|
72
81
|
|
|
73
82
|
getReleaseCode(release_name=value, emit=emit, context=context)
|
|
74
83
|
|
|
@@ -80,9 +89,7 @@ def getBuiltinLoopBreakNextCode(to_name, value, emit, context):
|
|
|
80
89
|
break_indicator_code = ""
|
|
81
90
|
|
|
82
91
|
(
|
|
83
|
-
|
|
84
|
-
exception_value,
|
|
85
|
-
exception_tb,
|
|
92
|
+
exception_state_name,
|
|
86
93
|
_exception_lineno,
|
|
87
94
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
88
95
|
|
|
@@ -92,15 +99,13 @@ def getBuiltinLoopBreakNextCode(to_name, value, emit, context):
|
|
|
92
99
|
"to_name": to_name,
|
|
93
100
|
"break_indicator_code": break_indicator_code,
|
|
94
101
|
"break_target": break_target,
|
|
95
|
-
"release_temps": indented(getErrorExitReleaseCode(context),
|
|
102
|
+
"release_temps": indented(getErrorExitReleaseCode(context), 8),
|
|
96
103
|
"var_description_code": indented(
|
|
97
|
-
getFrameVariableTypeDescriptionCode(context),
|
|
104
|
+
getFrameVariableTypeDescriptionCode(context), 8
|
|
98
105
|
),
|
|
99
|
-
"line_number_code": indented(getErrorLineNumberUpdateCode(context),
|
|
106
|
+
"line_number_code": indented(getErrorLineNumberUpdateCode(context), 8),
|
|
100
107
|
"exception_target": context.getExceptionEscape(),
|
|
101
|
-
"
|
|
102
|
-
"exception_value": exception_value,
|
|
103
|
-
"exception_tb": exception_tb,
|
|
108
|
+
"exception_state_name": exception_state_name,
|
|
104
109
|
}
|
|
105
110
|
)
|
|
106
111
|
|
|
@@ -125,19 +130,35 @@ def generateSpecialUnpackCode(to_name, expression, emit, context):
|
|
|
125
130
|
if not needs_check:
|
|
126
131
|
emit("%s = UNPACK_NEXT_INFALLIBLE(%s);" % (result_name, value_name))
|
|
127
132
|
elif python_version < 0x350:
|
|
133
|
+
(
|
|
134
|
+
exception_state_name,
|
|
135
|
+
_exception_lineno,
|
|
136
|
+
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
137
|
+
|
|
128
138
|
emit(
|
|
129
|
-
"%s = UNPACK_NEXT(tstate, %s, %s);"
|
|
130
|
-
% (
|
|
139
|
+
"%s = UNPACK_NEXT(tstate, &%s, %s, %s);"
|
|
140
|
+
% (
|
|
141
|
+
result_name,
|
|
142
|
+
exception_state_name,
|
|
143
|
+
value_name,
|
|
144
|
+
expression.getCount() - 1,
|
|
145
|
+
)
|
|
131
146
|
)
|
|
132
147
|
else:
|
|
133
148
|
starred = expression.getStarred()
|
|
134
149
|
expected = expression.getExpected()
|
|
135
150
|
|
|
151
|
+
(
|
|
152
|
+
exception_state_name,
|
|
153
|
+
_exception_lineno,
|
|
154
|
+
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
155
|
+
|
|
136
156
|
emit(
|
|
137
|
-
"%s = UNPACK_NEXT%s(tstate, %s, %s, %s);"
|
|
157
|
+
"%s = UNPACK_NEXT%s(tstate, &%s, %s, %s, %s);"
|
|
138
158
|
% (
|
|
139
159
|
result_name,
|
|
140
160
|
"_STARRED" if starred else "",
|
|
161
|
+
exception_state_name,
|
|
141
162
|
value_name,
|
|
142
163
|
expression.getCount() - 1,
|
|
143
164
|
expected,
|
|
@@ -147,8 +168,8 @@ def generateSpecialUnpackCode(to_name, expression, emit, context):
|
|
|
147
168
|
getErrorExitCode(
|
|
148
169
|
check_name=result_name,
|
|
149
170
|
release_name=value_name,
|
|
150
|
-
quick_exception="StopIteration",
|
|
151
171
|
needs_check=needs_check,
|
|
172
|
+
fetched_exception=True,
|
|
152
173
|
emit=emit,
|
|
153
174
|
context=context,
|
|
154
175
|
)
|
|
@@ -166,47 +187,25 @@ def generateUnpackCheckCode(statement, emit, context):
|
|
|
166
187
|
context=context,
|
|
167
188
|
)
|
|
168
189
|
|
|
169
|
-
# These variable cannot collide, as it's used very locally.
|
|
170
|
-
attempt_name = context.allocateTempName("iterator_attempt", unique=True)
|
|
171
|
-
|
|
172
|
-
release_code = getErrorExitReleaseCode(context)
|
|
173
|
-
var_description_code = getFrameVariableTypeDescriptionCode(context)
|
|
174
|
-
|
|
175
190
|
with context.withCurrentSourceCodeReference(statement.getSourceReference()):
|
|
176
191
|
(
|
|
177
|
-
|
|
178
|
-
exception_value,
|
|
179
|
-
exception_tb,
|
|
192
|
+
exception_state_name,
|
|
180
193
|
_exception_lineno,
|
|
181
194
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
182
195
|
|
|
196
|
+
res_name = context.getBoolResName()
|
|
197
|
+
|
|
183
198
|
emit(
|
|
184
|
-
|
|
185
|
-
%
|
|
186
|
-
"iterator_name": iterator_name,
|
|
187
|
-
"attempt_name": attempt_name,
|
|
188
|
-
"exception_exit": context.getExceptionEscape(),
|
|
189
|
-
"release_temps_1": indented(release_code, 3),
|
|
190
|
-
"line_number_code_1": indented(
|
|
191
|
-
getErrorLineNumberUpdateCode(context), 3
|
|
192
|
-
),
|
|
193
|
-
"var_description_code_1": indented(var_description_code, 3),
|
|
194
|
-
"release_temps_2": indented(release_code),
|
|
195
|
-
"var_description_code_2": indented(var_description_code),
|
|
196
|
-
"line_number_code_2": indented(getErrorLineNumberUpdateCode(context)),
|
|
197
|
-
"exception_type": exception_type,
|
|
198
|
-
"exception_value": exception_value,
|
|
199
|
-
"exception_tb": exception_tb,
|
|
200
|
-
"too_many_values_error": context.getConstantCode(
|
|
201
|
-
"too many values to unpack"
|
|
202
|
-
if python_version < 0x300
|
|
203
|
-
else "too many values to unpack (expected %d)"
|
|
204
|
-
% statement.getCount()
|
|
205
|
-
),
|
|
206
|
-
}
|
|
199
|
+
"%s = UNPACK_ITERATOR_CHECK(tstate, &%s, %s, %d);"
|
|
200
|
+
% (res_name, exception_state_name, iterator_name, statement.getCount())
|
|
207
201
|
)
|
|
208
202
|
|
|
209
|
-
|
|
203
|
+
getErrorExitBoolCode(
|
|
204
|
+
condition="%s == false" % res_name,
|
|
205
|
+
fetched_exception=True,
|
|
206
|
+
emit=emit,
|
|
207
|
+
context=context,
|
|
208
|
+
)
|
|
210
209
|
|
|
211
210
|
|
|
212
211
|
def generateUnpackCheckFromIteratedCode(statement, emit, context):
|
|
@@ -361,3 +360,19 @@ def generateBuiltinAllCode(to_name, expression, emit, context):
|
|
|
361
360
|
emit=emit,
|
|
362
361
|
context=context,
|
|
363
362
|
)
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
366
|
+
# integrates with CPython, but also works on its own.
|
|
367
|
+
#
|
|
368
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
369
|
+
# you may not use this file except in compliance with the License.
|
|
370
|
+
# You may obtain a copy of the License at
|
|
371
|
+
#
|
|
372
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
373
|
+
#
|
|
374
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
375
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
376
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
377
|
+
# See the License for the specific language governing permissions and
|
|
378
|
+
# limitations under the License.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Code generation for JIT specific stuff, preserving source code for runtime. """
|
|
5
|
+
|
|
6
|
+
from nuitka.Options import isStandaloneMode
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def addUncompiledFunctionSourceDict(func_value, context):
|
|
10
|
+
if (
|
|
11
|
+
isStandaloneMode()
|
|
12
|
+
and func_value is not None
|
|
13
|
+
and func_value.isExpressionFunctionCreation()
|
|
14
|
+
):
|
|
15
|
+
function_ref = func_value.subnode_function_ref
|
|
16
|
+
|
|
17
|
+
function_super_qualified_name = function_ref.getFunctionSuperQualifiedName()
|
|
18
|
+
function_source_code = function_ref.getFunctionSourceCode()
|
|
19
|
+
|
|
20
|
+
context.addModuleInitCode(
|
|
21
|
+
"""\
|
|
22
|
+
SET_UNCOMPILED_FUNCTION_SOURCE_DICT(%s, %s);
|
|
23
|
+
"""
|
|
24
|
+
% (
|
|
25
|
+
context.getConstantCode(function_super_qualified_name),
|
|
26
|
+
context.getConstantCode(function_source_code),
|
|
27
|
+
)
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
32
|
+
# integrates with CPython, but also works on its own.
|
|
33
|
+
#
|
|
34
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
35
|
+
# you may not use this file except in compliance with the License.
|
|
36
|
+
# You may obtain a copy of the License at
|
|
37
|
+
#
|
|
38
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
39
|
+
#
|
|
40
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
41
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
42
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
43
|
+
# See the License for the specific language governing permissions and
|
|
44
|
+
# 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
|
""" C labels, small helpers.
|
|
19
5
|
|
|
20
6
|
Much things are handled with "goto" statements in the generated code, error
|
|
@@ -63,3 +49,19 @@ def getStatementTrace(source_desc, statement_repr):
|
|
|
63
49
|
return 'NUITKA_PRINT_TRACE("Execute: " %s);' % (
|
|
64
50
|
encodePythonStringToC(source_desc + b" " + statement_repr),
|
|
65
51
|
)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
55
|
+
# integrates with CPython, but also works on its own.
|
|
56
|
+
#
|
|
57
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
58
|
+
# you may not use this file except in compliance with the License.
|
|
59
|
+
# You may obtain a copy of the License at
|
|
60
|
+
#
|
|
61
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
62
|
+
#
|
|
63
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
64
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
65
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
66
|
+
# See the License for the specific language governing permissions and
|
|
67
|
+
# 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
|
""" Generate code that updates the source code line.
|
|
19
5
|
|
|
20
6
|
"""
|
|
@@ -47,9 +33,7 @@ def getLineNumberUpdateCode(context):
|
|
|
47
33
|
|
|
48
34
|
def getErrorLineNumberUpdateCode(context):
|
|
49
35
|
(
|
|
50
|
-
|
|
51
|
-
_exception_value,
|
|
52
|
-
_exception_tb,
|
|
36
|
+
_exception_state,
|
|
53
37
|
exception_lineno,
|
|
54
38
|
) = context.variable_storage.getExceptionVariableDescriptions()
|
|
55
39
|
|
|
@@ -89,3 +73,19 @@ def getLineNumberCode(to_name, emit, context):
|
|
|
89
73
|
assert context.getFrameHandle() is not None
|
|
90
74
|
|
|
91
75
|
emit("%s = %s->m_frame.f_lineno;" % (to_name, context.getFrameHandle()))
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
79
|
+
# integrates with CPython, but also works on its own.
|
|
80
|
+
#
|
|
81
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
82
|
+
# you may not use this file except in compliance with the License.
|
|
83
|
+
# You may obtain a copy of the License at
|
|
84
|
+
#
|
|
85
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
86
|
+
#
|
|
87
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
88
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
89
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
90
|
+
# See the License for the specific language governing permissions and
|
|
91
|
+
# 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 lists.
|
|
19
5
|
|
|
20
6
|
Right now only the creation is done here. But more should be added later on.
|
|
@@ -68,7 +54,7 @@ def generateListCreationCode(to_name, expression, emit, context):
|
|
|
68
54
|
|
|
69
55
|
helper_code = generateElementCode(elements[0])
|
|
70
56
|
|
|
71
|
-
emit("%s = MAKE_LIST_EMPTY(%d);" % (result_name, len(elements)))
|
|
57
|
+
emit("%s = MAKE_LIST_EMPTY(tstate, %d);" % (result_name, len(elements)))
|
|
72
58
|
|
|
73
59
|
needs_exception_exit = any(
|
|
74
60
|
element.mayRaiseException(BaseException) for element in elements[1:]
|
|
@@ -201,7 +187,7 @@ def generateListOperationCopyCode(to_name, expression, emit, context):
|
|
|
201
187
|
with withObjectCodeTemporaryAssignment(
|
|
202
188
|
to_name, "list_copy_result", expression, emit, context
|
|
203
189
|
) as result_name:
|
|
204
|
-
emit("%s = LIST_COPY(%s);" % (result_name, list_arg_name))
|
|
190
|
+
emit("%s = LIST_COPY(tstate, %s);" % (result_name, list_arg_name))
|
|
205
191
|
|
|
206
192
|
getErrorExitCode(
|
|
207
193
|
check_name=result_name,
|
|
@@ -428,25 +414,19 @@ def generateListOperationRemoveCode(to_name, expression, emit, context):
|
|
|
428
414
|
expression=expression, emit=emit, context=context
|
|
429
415
|
)
|
|
430
416
|
|
|
431
|
-
|
|
432
|
-
to_name, "list_remove_result", expression, emit, context
|
|
433
|
-
) as result_name:
|
|
434
|
-
# TODO: Have a dedicated list helper instead, this could be more efficient,
|
|
435
|
-
# this call is also very bad.
|
|
436
|
-
emit("assert(PyList_CheckExact(%s));" % list_arg_name)
|
|
437
|
-
emit(
|
|
438
|
-
'%s = PyObject_CallMethod(%s, (char *)"remove", "O", %s);'
|
|
439
|
-
% (result_name, list_arg_name, value_arg_name)
|
|
440
|
-
)
|
|
417
|
+
res_name = context.getBoolResName()
|
|
441
418
|
|
|
442
|
-
|
|
443
|
-
check_name=result_name,
|
|
444
|
-
release_names=(list_arg_name, value_arg_name),
|
|
445
|
-
emit=emit,
|
|
446
|
-
context=context,
|
|
447
|
-
)
|
|
419
|
+
emit("%s = LIST_REMOVE(%s, %s);" % (res_name, list_arg_name, value_arg_name))
|
|
448
420
|
|
|
449
|
-
|
|
421
|
+
getErrorExitBoolCode(
|
|
422
|
+
condition="%s == false" % res_name,
|
|
423
|
+
release_names=(list_arg_name, value_arg_name),
|
|
424
|
+
needs_check=expression.mayRaiseExceptionOperation(),
|
|
425
|
+
emit=emit,
|
|
426
|
+
context=context,
|
|
427
|
+
)
|
|
428
|
+
|
|
429
|
+
assignConstantNoneResult(to_name, emit, context)
|
|
450
430
|
|
|
451
431
|
|
|
452
432
|
def generateListOperationSort1Code(to_name, expression, emit, context):
|
|
@@ -504,3 +484,19 @@ def generateBuiltinListCode(to_name, expression, emit, context):
|
|
|
504
484
|
emit=emit,
|
|
505
485
|
context=context,
|
|
506
486
|
)
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
490
|
+
# integrates with CPython, but also works on its own.
|
|
491
|
+
#
|
|
492
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
493
|
+
# you may not use this file except in compliance with the License.
|
|
494
|
+
# You may obtain a copy of the License at
|
|
495
|
+
#
|
|
496
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
497
|
+
#
|
|
498
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
499
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
500
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
501
|
+
# See the License for the specific language governing permissions and
|
|
502
|
+
# limitations under the License.
|