Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +93 -54
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +717 -171
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -22
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +89 -51
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +25 -21
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +73 -40
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +29 -22
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +39 -30
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +44 -24
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +132 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
|
-
// integrates with CPython, but also works on its own.
|
|
5
|
-
//
|
|
6
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
// you may not use this file except in compliance with the License.
|
|
8
|
-
// You may obtain a copy of the License at
|
|
9
|
-
//
|
|
10
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
//
|
|
12
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
// See the License for the specific language governing permissions and
|
|
16
|
-
// limitations under the License.
|
|
17
|
-
//
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
18
3
|
#ifndef __NUITKA_COMPILED_COROUTINE_H__
|
|
19
4
|
#define __NUITKA_COMPILED_COROUTINE_H__
|
|
20
5
|
|
|
@@ -42,7 +27,7 @@ struct Nuitka_CoroutineObject {
|
|
|
42
27
|
PyObject *m_module;
|
|
43
28
|
|
|
44
29
|
PyObject *m_qualname;
|
|
45
|
-
PyObject *
|
|
30
|
+
PyObject *m_yield_from;
|
|
46
31
|
|
|
47
32
|
// Weak references are supported for coroutine objects in CPython.
|
|
48
33
|
PyObject *m_weakrefs;
|
|
@@ -268,3 +253,18 @@ extern int count_released_Nuitka_AIterWrapper_Type;
|
|
|
268
253
|
#endif
|
|
269
254
|
|
|
270
255
|
#endif
|
|
256
|
+
|
|
257
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
258
|
+
// integrates with CPython, but also works on its own.
|
|
259
|
+
//
|
|
260
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
261
|
+
// you may not use this file except in compliance with the License.
|
|
262
|
+
// You may obtain a copy of the License at
|
|
263
|
+
//
|
|
264
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
265
|
+
//
|
|
266
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
267
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
268
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
269
|
+
// See the License for the specific language governing permissions and
|
|
270
|
+
// limitations under the License.
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
|
-
// integrates with CPython, but also works on its own.
|
|
5
|
-
//
|
|
6
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
// you may not use this file except in compliance with the License.
|
|
8
|
-
// You may obtain a copy of the License at
|
|
9
|
-
//
|
|
10
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
//
|
|
12
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
// See the License for the specific language governing permissions and
|
|
16
|
-
// limitations under the License.
|
|
17
|
-
//
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
18
3
|
#ifndef __NUITKA_COMPILED_FRAME_H__
|
|
19
4
|
#define __NUITKA_COMPILED_FRAME_H__
|
|
20
5
|
|
|
@@ -62,51 +47,70 @@ extern struct Nuitka_FrameObject *MAKE_CLASS_FRAME(PyThreadState *tstate, PyCode
|
|
|
62
47
|
// Create a code object for the given filename and function name
|
|
63
48
|
|
|
64
49
|
#if PYTHON_VERSION < 0x300
|
|
65
|
-
#define MAKE_CODE_OBJECT(filename, line, flags, function_name, function_qualname,
|
|
50
|
+
#define MAKE_CODE_OBJECT(filename, line, flags, function_name, function_qualname, arg_names, free_vars, arg_count, \
|
|
66
51
|
kw_only_count, pos_only_count) \
|
|
67
|
-
makeCodeObject(filename, line, flags, function_name,
|
|
52
|
+
makeCodeObject(filename, line, flags, function_name, arg_names, free_vars, arg_count)
|
|
68
53
|
extern PyCodeObject *makeCodeObject(PyObject *filename, int line, int flags, PyObject *function_name,
|
|
69
|
-
PyObject *
|
|
54
|
+
PyObject *arg_names, PyObject *free_vars, int arg_count);
|
|
70
55
|
#elif PYTHON_VERSION < 0x380
|
|
71
|
-
#define MAKE_CODE_OBJECT(filename, line, flags, function_name, function_qualname,
|
|
56
|
+
#define MAKE_CODE_OBJECT(filename, line, flags, function_name, function_qualname, arg_names, free_vars, arg_count, \
|
|
72
57
|
kw_only_count, pos_only_count) \
|
|
73
|
-
makeCodeObject(filename, line, flags, function_name,
|
|
58
|
+
makeCodeObject(filename, line, flags, function_name, arg_names, free_vars, arg_count, kw_only_count)
|
|
74
59
|
extern PyCodeObject *makeCodeObject(PyObject *filename, int line, int flags, PyObject *function_name,
|
|
75
|
-
PyObject *
|
|
60
|
+
PyObject *arg_names, PyObject *free_vars, int arg_count, int kw_only_count);
|
|
76
61
|
#elif PYTHON_VERSION < 0x3b0
|
|
77
|
-
#define MAKE_CODE_OBJECT(filename, line, flags, function_name, function_qualname,
|
|
62
|
+
#define MAKE_CODE_OBJECT(filename, line, flags, function_name, function_qualname, arg_names, free_vars, arg_count, \
|
|
78
63
|
kw_only_count, pos_only_count) \
|
|
79
|
-
makeCodeObject(filename, line, flags, function_name,
|
|
64
|
+
makeCodeObject(filename, line, flags, function_name, arg_names, free_vars, arg_count, kw_only_count, pos_only_count)
|
|
80
65
|
extern PyCodeObject *makeCodeObject(PyObject *filename, int line, int flags, PyObject *function_name,
|
|
81
|
-
PyObject *
|
|
66
|
+
PyObject *arg_names, PyObject *free_vars, int arg_count, int kw_only_count,
|
|
82
67
|
int pos_only_count);
|
|
83
68
|
#else
|
|
84
|
-
#define MAKE_CODE_OBJECT(filename, line, flags, function_name, function_qualname,
|
|
69
|
+
#define MAKE_CODE_OBJECT(filename, line, flags, function_name, function_qualname, arg_names, free_vars, arg_count, \
|
|
85
70
|
kw_only_count, pos_only_count) \
|
|
86
|
-
makeCodeObject(filename, line, flags, function_name, function_qualname,
|
|
71
|
+
makeCodeObject(filename, line, flags, function_name, function_qualname, arg_names, free_vars, arg_count, \
|
|
87
72
|
kw_only_count, pos_only_count)
|
|
88
73
|
extern PyCodeObject *makeCodeObject(PyObject *filename, int line, int flags, PyObject *function_name,
|
|
89
|
-
PyObject *function_qualname, PyObject *
|
|
90
|
-
int kw_only_count, int pos_only_count);
|
|
74
|
+
PyObject *function_qualname, PyObject *arg_names, PyObject *free_vars,
|
|
75
|
+
int arg_count, int kw_only_count, int pos_only_count);
|
|
91
76
|
#endif
|
|
92
77
|
|
|
93
78
|
NUITKA_MAY_BE_UNUSED static inline bool isFakeCodeObject(PyCodeObject *code) {
|
|
94
79
|
#if PYTHON_VERSION < 0x300
|
|
95
80
|
return code->co_code == const_str_empty;
|
|
96
|
-
#elif PYTHON_VERSION <
|
|
97
|
-
return code->co_code ==
|
|
81
|
+
#elif PYTHON_VERSION < 0x3b0
|
|
82
|
+
return code->co_code == const_bytes_empty;
|
|
98
83
|
#else
|
|
99
|
-
|
|
84
|
+
// Starting for Python3.11, we just proper bytecode that raises
|
|
85
|
+
// "RuntimeError" itself, so this function is only used to
|
|
86
|
+
// optimize checks away.
|
|
87
|
+
return false;
|
|
100
88
|
#endif
|
|
101
89
|
}
|
|
102
90
|
|
|
103
91
|
extern PyTypeObject Nuitka_Frame_Type;
|
|
104
92
|
|
|
105
|
-
static inline bool
|
|
93
|
+
static inline bool Nuitka_Frame_CheckExact(PyObject *object) {
|
|
106
94
|
CHECK_OBJECT(object);
|
|
107
95
|
return Py_TYPE(object) == &Nuitka_Frame_Type;
|
|
108
96
|
}
|
|
109
97
|
|
|
98
|
+
static inline bool Nuitka_Frame_Check(PyObject *object) {
|
|
99
|
+
assert(object);
|
|
100
|
+
|
|
101
|
+
if (!_PyObject_GC_IS_TRACKED(object)) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
CHECK_OBJECT(object);
|
|
106
|
+
|
|
107
|
+
if (Nuitka_Frame_CheckExact(object)) {
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return strcmp(Py_TYPE(object)->tp_name, "compiled_frame") == 0;
|
|
112
|
+
}
|
|
113
|
+
|
|
110
114
|
struct Nuitka_FrameObject {
|
|
111
115
|
PyFrameObject m_frame;
|
|
112
116
|
|
|
@@ -139,7 +143,7 @@ NUITKA_MAY_BE_UNUSED static inline bool isFrameUnusable(struct Nuitka_FrameObjec
|
|
|
139
143
|
frame_object == NULL ||
|
|
140
144
|
// Still in use
|
|
141
145
|
Py_REFCNT(frame_object) > 1 ||
|
|
142
|
-
#if PYTHON_VERSION <
|
|
146
|
+
#if PYTHON_VERSION < 0x300
|
|
143
147
|
// Last used by another thread (TODO: Could just set it when re-using)
|
|
144
148
|
frame_object->m_frame.f_tstate != PyThreadState_GET() ||
|
|
145
149
|
#endif
|
|
@@ -166,10 +170,20 @@ extern int count_hit_frame_cache_instances;
|
|
|
166
170
|
extern void dumpFrameStack(void);
|
|
167
171
|
#endif
|
|
168
172
|
|
|
173
|
+
#if PYTHON_VERSION >= 0x3b0
|
|
174
|
+
inline static PyCodeObject *Nuitka_InterpreterFrame_GetCodeObject(_PyInterpreterFrame *frame) {
|
|
175
|
+
#if PYTHON_VERSION < 0x3d0
|
|
176
|
+
return frame->f_code;
|
|
177
|
+
#else
|
|
178
|
+
return (PyCodeObject *)frame->f_executable;
|
|
179
|
+
#endif
|
|
180
|
+
}
|
|
181
|
+
#endif
|
|
182
|
+
|
|
169
183
|
inline static PyCodeObject *Nuitka_Frame_GetCodeObject(PyFrameObject *frame) {
|
|
170
184
|
#if PYTHON_VERSION >= 0x3b0
|
|
171
185
|
assert(frame->f_frame);
|
|
172
|
-
return frame->f_frame
|
|
186
|
+
return Nuitka_InterpreterFrame_GetCodeObject(frame->f_frame);
|
|
173
187
|
#else
|
|
174
188
|
return frame->f_code;
|
|
175
189
|
#endif
|
|
@@ -180,6 +194,7 @@ inline static void assertPythonFrameObject(PyFrameObject *frame_object) {
|
|
|
180
194
|
// TODO: Need to do this manually, as this is making frame caching code
|
|
181
195
|
// vulnerable to mistakes, but so far the compiled frame type is private
|
|
182
196
|
// assert(PyObject_IsInstance((PyObject *)frame_object, (PyObject *)&PyFrame_Type));
|
|
197
|
+
CHECK_OBJECT(frame_object);
|
|
183
198
|
|
|
184
199
|
CHECK_CODE_OBJECT(Nuitka_Frame_GetCodeObject(frame_object));
|
|
185
200
|
}
|
|
@@ -195,7 +210,7 @@ inline static void assertFrameObject(struct Nuitka_FrameObject *frame_object) {
|
|
|
195
210
|
}
|
|
196
211
|
|
|
197
212
|
inline static void assertThreadFrameObject(Nuitka_ThreadStateFrameType *frame) {
|
|
198
|
-
#if PYTHON_VERSION <
|
|
213
|
+
#if PYTHON_VERSION < 0x3b0
|
|
199
214
|
assertPythonFrameObject(frame);
|
|
200
215
|
#else
|
|
201
216
|
// For uncompiled frames of Python 3.11 these often do not exist. TODO: Figure
|
|
@@ -206,11 +221,11 @@ inline static void assertThreadFrameObject(Nuitka_ThreadStateFrameType *frame) {
|
|
|
206
221
|
#endif
|
|
207
222
|
}
|
|
208
223
|
|
|
209
|
-
// Mark frame as currently executed. Starting with Python 3
|
|
224
|
+
// Mark frame as currently executed. Starting with Python 3 that means it
|
|
210
225
|
// can or cannot be cleared, or should lead to a generator close. For Python2
|
|
211
226
|
// this is a no-op. Using a define to spare the compile from inlining an empty
|
|
212
227
|
// function.
|
|
213
|
-
#if PYTHON_VERSION >=
|
|
228
|
+
#if PYTHON_VERSION >= 0x300
|
|
214
229
|
|
|
215
230
|
#if PYTHON_VERSION < 0x3b0
|
|
216
231
|
|
|
@@ -238,7 +253,7 @@ static inline void Nuitka_Frame_MarkAsExecuting(struct Nuitka_FrameObject *frame
|
|
|
238
253
|
#define Nuitka_Frame_MarkAsExecuting(frame) ;
|
|
239
254
|
#endif
|
|
240
255
|
|
|
241
|
-
#if PYTHON_VERSION >=
|
|
256
|
+
#if PYTHON_VERSION >= 0x300
|
|
242
257
|
static inline void Nuitka_Frame_MarkAsNotExecuting(struct Nuitka_FrameObject *frame) {
|
|
243
258
|
CHECK_OBJECT(frame);
|
|
244
259
|
#if PYTHON_VERSION >= 0x3b0
|
|
@@ -254,7 +269,7 @@ static inline void Nuitka_Frame_MarkAsNotExecuting(struct Nuitka_FrameObject *fr
|
|
|
254
269
|
#define Nuitka_PythonFrame_MarkAsExecuting(frame) ;
|
|
255
270
|
#endif
|
|
256
271
|
|
|
257
|
-
#if PYTHON_VERSION >=
|
|
272
|
+
#if PYTHON_VERSION >= 0x300
|
|
258
273
|
static inline bool Nuitka_Frame_IsExecuting(struct Nuitka_FrameObject *frame) {
|
|
259
274
|
CHECK_OBJECT(frame);
|
|
260
275
|
#if PYTHON_VERSION >= 0x3b0
|
|
@@ -267,15 +282,24 @@ static inline bool Nuitka_Frame_IsExecuting(struct Nuitka_FrameObject *frame) {
|
|
|
267
282
|
}
|
|
268
283
|
#endif
|
|
269
284
|
|
|
270
|
-
#if PYTHON_VERSION >=
|
|
285
|
+
#if PYTHON_VERSION >= 0x3b0
|
|
286
|
+
|
|
287
|
+
#if PYTHON_VERSION < 0x3d0
|
|
288
|
+
#define CURRENT_TSTATE_INTERPRETER_FRAME(tstate) tstate->cframe->current_frame
|
|
289
|
+
#else
|
|
290
|
+
#define CURRENT_TSTATE_INTERPRETER_FRAME(tstate) tstate->current_frame
|
|
291
|
+
#endif
|
|
292
|
+
|
|
271
293
|
NUITKA_MAY_BE_UNUSED inline static void pushFrameStackInterpreterFrame(PyThreadState *tstate,
|
|
272
294
|
_PyInterpreterFrame *interpreter_frame) {
|
|
273
|
-
_PyInterpreterFrame *old = tstate
|
|
295
|
+
_PyInterpreterFrame *old = CURRENT_TSTATE_INTERPRETER_FRAME(tstate);
|
|
274
296
|
interpreter_frame->previous = old;
|
|
275
|
-
tstate
|
|
297
|
+
CURRENT_TSTATE_INTERPRETER_FRAME(tstate) = interpreter_frame;
|
|
276
298
|
|
|
277
|
-
if (old != NULL && interpreter_frame->frame_obj) {
|
|
299
|
+
if (old != NULL && !_PyFrame_IsIncomplete(old) && interpreter_frame->frame_obj) {
|
|
278
300
|
interpreter_frame->frame_obj->f_back = old->frame_obj;
|
|
301
|
+
CHECK_OBJECT_X(old->frame_obj);
|
|
302
|
+
|
|
279
303
|
Py_XINCREF(old->frame_obj);
|
|
280
304
|
}
|
|
281
305
|
}
|
|
@@ -293,7 +317,7 @@ NUITKA_MAY_BE_UNUSED inline static void pushFrameStackPythonFrame(PyThreadState
|
|
|
293
317
|
|
|
294
318
|
if (old) {
|
|
295
319
|
assertPythonFrameObject(old);
|
|
296
|
-
CHECK_CODE_OBJECT(old
|
|
320
|
+
CHECK_CODE_OBJECT(Nuitka_Frame_GetCodeObject(old));
|
|
297
321
|
}
|
|
298
322
|
|
|
299
323
|
// No recursion with identical frames allowed, assert against it.
|
|
@@ -304,7 +328,6 @@ NUITKA_MAY_BE_UNUSED inline static void pushFrameStackPythonFrame(PyThreadState
|
|
|
304
328
|
|
|
305
329
|
// Transfer ownership of old frame.
|
|
306
330
|
if (old != NULL) {
|
|
307
|
-
|
|
308
331
|
frame_object->f_back = old;
|
|
309
332
|
}
|
|
310
333
|
|
|
@@ -348,13 +371,13 @@ NUITKA_MAY_BE_UNUSED inline static void popFrameStack(PyThreadState *tstate) {
|
|
|
348
371
|
Nuitka_Frame_MarkAsNotExecuting(frame_object);
|
|
349
372
|
Py_DECREF(frame_object);
|
|
350
373
|
#else
|
|
351
|
-
assert(tstate
|
|
352
|
-
assert(tstate->cframe->current_frame);
|
|
374
|
+
assert(CURRENT_TSTATE_INTERPRETER_FRAME(tstate));
|
|
353
375
|
|
|
354
|
-
struct Nuitka_FrameObject *frame_object =
|
|
376
|
+
struct Nuitka_FrameObject *frame_object =
|
|
377
|
+
(struct Nuitka_FrameObject *)CURRENT_TSTATE_INTERPRETER_FRAME(tstate)->frame_obj;
|
|
355
378
|
CHECK_OBJECT(frame_object);
|
|
356
379
|
|
|
357
|
-
tstate
|
|
380
|
+
CURRENT_TSTATE_INTERPRETER_FRAME(tstate) = CURRENT_TSTATE_INTERPRETER_FRAME(tstate)->previous;
|
|
358
381
|
|
|
359
382
|
Nuitka_Frame_MarkAsNotExecuting(frame_object);
|
|
360
383
|
|
|
@@ -373,7 +396,7 @@ NUITKA_MAY_BE_UNUSED inline static void popFrameStack(PyThreadState *tstate) {
|
|
|
373
396
|
|
|
374
397
|
// TODO: These can be moved to private code, once all C library is included by
|
|
375
398
|
// compiled code helpers, but generators are currently not.
|
|
376
|
-
#if PYTHON_VERSION >=
|
|
399
|
+
#if PYTHON_VERSION >= 0x300
|
|
377
400
|
NUITKA_MAY_BE_UNUSED static void Nuitka_SetFrameGenerator(struct Nuitka_FrameObject *nuitka_frame,
|
|
378
401
|
PyObject *generator) {
|
|
379
402
|
#if PYTHON_VERSION < 0x3b0
|
|
@@ -401,7 +424,7 @@ NUITKA_MAY_BE_UNUSED static PyCodeObject *Nuitka_GetFrameCodeObject(struct Nuitk
|
|
|
401
424
|
#if PYTHON_VERSION < 0x3b0
|
|
402
425
|
return nuitka_frame->m_frame.f_code;
|
|
403
426
|
#else
|
|
404
|
-
return nuitka_frame->m_interpreter_frame
|
|
427
|
+
return Nuitka_InterpreterFrame_GetCodeObject(&nuitka_frame->m_interpreter_frame);
|
|
405
428
|
#endif
|
|
406
429
|
}
|
|
407
430
|
|
|
@@ -427,7 +450,7 @@ NUITKA_MAY_BE_UNUSED static Nuitka_ThreadStateFrameType *_Nuitka_GetThreadStateF
|
|
|
427
450
|
#if PYTHON_VERSION < 0x3b0
|
|
428
451
|
return tstate->frame;
|
|
429
452
|
#else
|
|
430
|
-
return tstate
|
|
453
|
+
return CURRENT_TSTATE_INTERPRETER_FRAME(tstate);
|
|
431
454
|
#endif
|
|
432
455
|
}
|
|
433
456
|
|
|
@@ -460,6 +483,7 @@ NUITKA_MAY_BE_UNUSED inline static void pushFrameStackGeneratorCompiledFrame(PyT
|
|
|
460
483
|
#define NUITKA_TYPE_DESCRIPTION_OBJECT 'o'
|
|
461
484
|
#define NUITKA_TYPE_DESCRIPTION_OBJECT_PTR 'O'
|
|
462
485
|
#define NUITKA_TYPE_DESCRIPTION_BOOL 'b'
|
|
486
|
+
#define NUITKA_TYPE_DESCRIPTION_NILONG 'L'
|
|
463
487
|
|
|
464
488
|
#if _DEBUG_REFCOUNTS
|
|
465
489
|
extern int count_active_Nuitka_Frame_Type;
|
|
@@ -468,3 +492,18 @@ extern int count_released_Nuitka_Frame_Type;
|
|
|
468
492
|
#endif
|
|
469
493
|
|
|
470
494
|
#endif
|
|
495
|
+
|
|
496
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
497
|
+
// integrates with CPython, but also works on its own.
|
|
498
|
+
//
|
|
499
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
500
|
+
// you may not use this file except in compliance with the License.
|
|
501
|
+
// You may obtain a copy of the License at
|
|
502
|
+
//
|
|
503
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
504
|
+
//
|
|
505
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
506
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
507
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
508
|
+
// See the License for the specific language governing permissions and
|
|
509
|
+
// limitations under the License.
|
|
@@ -1,26 +1,11 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
|
-
// integrates with CPython, but also works on its own.
|
|
5
|
-
//
|
|
6
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
// you may not use this file except in compliance with the License.
|
|
8
|
-
// You may obtain a copy of the License at
|
|
9
|
-
//
|
|
10
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
//
|
|
12
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
// See the License for the specific language governing permissions and
|
|
16
|
-
// limitations under the License.
|
|
17
|
-
//
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
18
3
|
#ifndef __NUITKA_COMPILED_FUNCTION_H__
|
|
19
4
|
#define __NUITKA_COMPILED_FUNCTION_H__
|
|
20
5
|
|
|
21
6
|
#ifdef __IDE_ONLY__
|
|
22
|
-
#include
|
|
23
|
-
#include
|
|
7
|
+
#include <Python.h>
|
|
8
|
+
#include <frameobject.h>
|
|
24
9
|
#endif
|
|
25
10
|
|
|
26
11
|
// Compiled function type.
|
|
@@ -86,6 +71,10 @@ struct Nuitka_FunctionObject {
|
|
|
86
71
|
PyObject *m_qualname;
|
|
87
72
|
#endif
|
|
88
73
|
|
|
74
|
+
#if PYTHON_VERSION >= 0x3c0
|
|
75
|
+
PyObject *m_type_params;
|
|
76
|
+
#endif
|
|
77
|
+
|
|
89
78
|
// Constant return value to use.
|
|
90
79
|
PyObject *m_constant_return_value;
|
|
91
80
|
|
|
@@ -108,7 +97,7 @@ extern struct Nuitka_FunctionObject *Nuitka_Function_New(function_impl_code c_co
|
|
|
108
97
|
#else
|
|
109
98
|
extern struct Nuitka_FunctionObject *Nuitka_Function_New(function_impl_code c_code, PyObject *name, PyObject *qualname,
|
|
110
99
|
PyCodeObject *code_object, PyObject *defaults,
|
|
111
|
-
PyObject *
|
|
100
|
+
PyObject *kw_defaults, PyObject *annotations, PyObject *module,
|
|
112
101
|
PyObject *doc, struct Nuitka_CellObject **closure,
|
|
113
102
|
Py_ssize_t closure_given);
|
|
114
103
|
#endif
|
|
@@ -119,6 +108,18 @@ extern void Nuitka_Function_EnableConstReturnFalse(struct Nuitka_FunctionObject
|
|
|
119
108
|
|
|
120
109
|
extern void Nuitka_Function_EnableConstReturnGeneric(struct Nuitka_FunctionObject *function, PyObject *value);
|
|
121
110
|
|
|
111
|
+
#ifdef _NUITKA_PLUGIN_DILL_ENABLED
|
|
112
|
+
extern int Nuitka_Function_GetFunctionCodeIndex(struct Nuitka_FunctionObject *function,
|
|
113
|
+
function_impl_code const *function_table);
|
|
114
|
+
extern struct Nuitka_FunctionObject *
|
|
115
|
+
Nuitka_Function_CreateFunctionViaCodeIndex(PyObject *module, PyObject *function_qualname, PyObject *function_index,
|
|
116
|
+
PyObject *code_object_desc, PyObject *constant_return_value,
|
|
117
|
+
PyObject *defaults, PyObject *kw_defaults, PyObject *doc, PyObject *closure,
|
|
118
|
+
function_impl_code const *function_table, int function_table_size);
|
|
119
|
+
extern PyObject *Nuitka_Function_ExtractCodeObjectDescription(PyThreadState *tstate,
|
|
120
|
+
struct Nuitka_FunctionObject *function);
|
|
121
|
+
#endif
|
|
122
|
+
|
|
122
123
|
static inline bool Nuitka_Function_Check(PyObject *object) { return Py_TYPE(object) == &Nuitka_Function_Type; }
|
|
123
124
|
|
|
124
125
|
static inline PyObject *Nuitka_Function_GetName(PyObject *object) {
|
|
@@ -147,4 +148,25 @@ PyObject *Nuitka_CallMethodFunctionPosArgsKwArgs(PyThreadState *tstate, struct N
|
|
|
147
148
|
PyObject *object, PyObject *const *args, Py_ssize_t args_size,
|
|
148
149
|
PyObject *kw);
|
|
149
150
|
|
|
151
|
+
#if _DEBUG_REFCOUNTS
|
|
152
|
+
extern int count_active_Nuitka_Function_Type;
|
|
153
|
+
extern int count_allocated_Nuitka_Function_Type;
|
|
154
|
+
extern int count_released_Nuitka_Function_Type;
|
|
150
155
|
#endif
|
|
156
|
+
|
|
157
|
+
#endif
|
|
158
|
+
|
|
159
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
160
|
+
// integrates with CPython, but also works on its own.
|
|
161
|
+
//
|
|
162
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
163
|
+
// you may not use this file except in compliance with the License.
|
|
164
|
+
// You may obtain a copy of the License at
|
|
165
|
+
//
|
|
166
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
167
|
+
//
|
|
168
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
169
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
170
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
171
|
+
// See the License for the specific language governing permissions and
|
|
172
|
+
// limitations under the License.
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
|
-
// integrates with CPython, but also works on its own.
|
|
5
|
-
//
|
|
6
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
// you may not use this file except in compliance with the License.
|
|
8
|
-
// You may obtain a copy of the License at
|
|
9
|
-
//
|
|
10
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
//
|
|
12
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
// See the License for the specific language governing permissions and
|
|
16
|
-
// limitations under the License.
|
|
17
|
-
//
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
18
3
|
#ifndef __NUITKA_COMPILED_GENERATOR_H__
|
|
19
4
|
#define __NUITKA_COMPILED_GENERATOR_H__
|
|
20
5
|
|
|
@@ -67,7 +52,7 @@ struct Nuitka_GeneratorObject {
|
|
|
67
52
|
#endif
|
|
68
53
|
#if PYTHON_VERSION >= 0x300
|
|
69
54
|
// The value currently yielded from.
|
|
70
|
-
PyObject *
|
|
55
|
+
PyObject *m_yield_from;
|
|
71
56
|
#endif
|
|
72
57
|
|
|
73
58
|
// Weak references are supported for generator objects in CPython.
|
|
@@ -257,4 +242,25 @@ NUITKA_MAY_BE_UNUSED static void DROP_GENERATOR_EXCEPTION(struct Nuitka_Generato
|
|
|
257
242
|
#endif
|
|
258
243
|
}
|
|
259
244
|
|
|
245
|
+
#if _DEBUG_REFCOUNTS
|
|
246
|
+
extern int count_active_Nuitka_Generator_Type;
|
|
247
|
+
extern int count_allocated_Nuitka_Generator_Type;
|
|
248
|
+
extern int count_released_Nuitka_Generator_Type;
|
|
260
249
|
#endif
|
|
250
|
+
|
|
251
|
+
#endif
|
|
252
|
+
|
|
253
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
254
|
+
// integrates with CPython, but also works on its own.
|
|
255
|
+
//
|
|
256
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
257
|
+
// you may not use this file except in compliance with the License.
|
|
258
|
+
// You may obtain a copy of the License at
|
|
259
|
+
//
|
|
260
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
261
|
+
//
|
|
262
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
263
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
264
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
265
|
+
// See the License for the specific language governing permissions and
|
|
266
|
+
// limitations under the License.
|
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
//
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
|
-
// integrates with CPython, but also works on its own.
|
|
5
|
-
//
|
|
6
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
// you may not use this file except in compliance with the License.
|
|
8
|
-
// You may obtain a copy of the License at
|
|
9
|
-
//
|
|
10
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
//
|
|
12
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
// See the License for the specific language governing permissions and
|
|
16
|
-
// limitations under the License.
|
|
17
|
-
//
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
18
2
|
|
|
19
3
|
#ifndef __NUITKA_COMPILED_METHOD_H__
|
|
20
4
|
#define __NUITKA_COMPILED_METHOD_H__
|
|
@@ -48,8 +32,23 @@ struct Nuitka_MethodObject {
|
|
|
48
32
|
extern PyTypeObject Nuitka_Method_Type;
|
|
49
33
|
|
|
50
34
|
// Make a method out of a function.
|
|
51
|
-
extern PyObject *Nuitka_Method_New(struct Nuitka_FunctionObject *function, PyObject *object, PyObject *
|
|
35
|
+
extern PyObject *Nuitka_Method_New(struct Nuitka_FunctionObject *function, PyObject *object, PyObject *class_object);
|
|
52
36
|
|
|
53
37
|
static inline bool Nuitka_Method_Check(PyObject *object) { return Py_TYPE(object) == &Nuitka_Method_Type; }
|
|
54
38
|
|
|
55
39
|
#endif
|
|
40
|
+
|
|
41
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
42
|
+
// integrates with CPython, but also works on its own.
|
|
43
|
+
//
|
|
44
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
45
|
+
// you may not use this file except in compliance with the License.
|
|
46
|
+
// You may obtain a copy of the License at
|
|
47
|
+
//
|
|
48
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
49
|
+
//
|
|
50
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
51
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
52
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
53
|
+
// See the License for the specific language governing permissions and
|
|
54
|
+
// limitations under the License.
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
|
-
// integrates with CPython, but also works on its own.
|
|
5
|
-
//
|
|
6
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
// you may not use this file except in compliance with the License.
|
|
8
|
-
// You may obtain a copy of the License at
|
|
9
|
-
//
|
|
10
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
//
|
|
12
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
// See the License for the specific language governing permissions and
|
|
16
|
-
// limitations under the License.
|
|
17
|
-
//
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
18
3
|
#ifndef __NUITKA_CONSTANTS_H__
|
|
19
4
|
#define __NUITKA_CONSTANTS_H__
|
|
20
5
|
|
|
@@ -102,10 +87,16 @@ extern PyObject **global_constants;
|
|
|
102
87
|
#define const_str_plain_range global_constants[29]
|
|
103
88
|
// 'rb'
|
|
104
89
|
#define const_str_plain_rb global_constants[29]
|
|
90
|
+
// 'b'
|
|
91
|
+
#define const_str_plain_b global_constants[29]
|
|
92
|
+
// 'w'
|
|
93
|
+
#define const_str_plain_w global_constants[29]
|
|
105
94
|
// 'open'
|
|
106
95
|
#define const_str_plain_open global_constants[30]
|
|
107
96
|
// 'keys'
|
|
108
97
|
#define const_str_plain_keys global_constants[30]
|
|
98
|
+
// 'get'
|
|
99
|
+
#define const_str_plain_get global_constants[30]
|
|
109
100
|
// 'as_file'
|
|
110
101
|
#define const_str_plain_as_file global_constants[30]
|
|
111
102
|
// 'register'
|
|
@@ -130,6 +121,10 @@ extern PyObject **global_constants;
|
|
|
130
121
|
#define const_str_plain_classmethod global_constants[36]
|
|
131
122
|
// 'name'
|
|
132
123
|
#define const_str_plain_name global_constants[37]
|
|
124
|
+
// 'ascii'
|
|
125
|
+
#define const_str_plain_ascii global_constants[37]
|
|
126
|
+
// 'punycode'
|
|
127
|
+
#define const_str_plain_punycode global_constants[37]
|
|
133
128
|
// 'globals'
|
|
134
129
|
#define const_str_plain_globals global_constants[38]
|
|
135
130
|
// 'locals'
|
|
@@ -148,18 +143,26 @@ extern PyObject **global_constants;
|
|
|
148
143
|
#define const_str_plain_isfile global_constants[42]
|
|
149
144
|
// 'listdir'
|
|
150
145
|
#define const_str_plain_listdir global_constants[42]
|
|
146
|
+
// 'stat'
|
|
147
|
+
#define const_str_plain_stat global_constants[42]
|
|
151
148
|
// 'basename'
|
|
152
149
|
#define const_str_plain_basename global_constants[42]
|
|
150
|
+
// 'dirname'
|
|
151
|
+
#define const_str_plain_dirname global_constants[42]
|
|
153
152
|
// 'abspath'
|
|
154
153
|
#define const_str_plain_abspath global_constants[42]
|
|
155
154
|
// 'isabs'
|
|
156
155
|
#define const_str_plain_isabs global_constants[42]
|
|
156
|
+
// 'normpath'
|
|
157
|
+
#define const_str_plain_normpath global_constants[42]
|
|
157
158
|
// 'path'
|
|
158
159
|
#define const_str_plain_path global_constants[42]
|
|
159
160
|
// '__newobj__'
|
|
160
161
|
#define const_str_plain___newobj__ global_constants[44]
|
|
161
162
|
// '.'
|
|
162
163
|
#define const_str_dot global_constants[45]
|
|
164
|
+
// '_'
|
|
165
|
+
#define const_str_underscore global_constants[45]
|
|
163
166
|
// '__getattr__'
|
|
164
167
|
#define const_str_plain___getattr__ global_constants[46]
|
|
165
168
|
// '__setattr__'
|
|
@@ -225,4 +228,18 @@ extern PyObject **global_constants;
|
|
|
225
228
|
#include "__constants.h"
|
|
226
229
|
#endif
|
|
227
230
|
|
|
228
|
-
#endif
|
|
231
|
+
#endif
|
|
232
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
233
|
+
// integrates with CPython, but also works on its own.
|
|
234
|
+
//
|
|
235
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
236
|
+
// you may not use this file except in compliance with the License.
|
|
237
|
+
// You may obtain a copy of the License at
|
|
238
|
+
//
|
|
239
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
240
|
+
//
|
|
241
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
242
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
243
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
244
|
+
// See the License for the specific language governing permissions and
|
|
245
|
+
// limitations under the License.
|