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_ALLOCATOR_H__
|
|
19
4
|
#define __NUITKA_ALLOCATOR_H__
|
|
20
5
|
|
|
@@ -28,7 +13,66 @@
|
|
|
28
13
|
#define _PyObject_GC_IS_TRACKED(obj) (1)
|
|
29
14
|
#endif
|
|
30
15
|
|
|
31
|
-
|
|
16
|
+
// The full API is available for Python 3.5 only
|
|
17
|
+
#if PYTHON_VERSION >= 0x350 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_ALLOCATORS)
|
|
18
|
+
extern void *(*python_obj_malloc)(void *ctx, size_t size);
|
|
19
|
+
extern void *(*python_mem_malloc)(void *ctx, size_t size);
|
|
20
|
+
extern void *(*python_mem_calloc)(void *ctx, size_t nelem, size_t elsize);
|
|
21
|
+
#ifndef Py_GIL_DISABLED
|
|
22
|
+
extern void *(*python_mem_realloc)(void *ctx, void *ptr, size_t new_size);
|
|
23
|
+
#else
|
|
24
|
+
extern void (*python_mem_free)(void *ctx, void *ptr);
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#if defined(Py_DEBUG)
|
|
28
|
+
extern void *python_obj_ctx;
|
|
29
|
+
extern void *python_mem_ctx;
|
|
30
|
+
#else
|
|
31
|
+
#define python_obj_ctx (NULL)
|
|
32
|
+
#define python_mem_ctx (NULL)
|
|
33
|
+
#endif
|
|
34
|
+
|
|
35
|
+
extern void initNuitkaAllocators(void);
|
|
36
|
+
|
|
37
|
+
// Our version of "PyObject_Malloc".
|
|
38
|
+
NUITKA_MAY_BE_UNUSED static void *NuitkaObject_Malloc(size_t size) { return python_obj_malloc(python_obj_ctx, size); }
|
|
39
|
+
|
|
40
|
+
// Our version of "PyMem_Malloc".
|
|
41
|
+
NUITKA_MAY_BE_UNUSED static void *NuitkaMem_Malloc(size_t size) { return python_mem_malloc(python_mem_ctx, size); }
|
|
42
|
+
|
|
43
|
+
// Our version of "PyMem_Calloc".
|
|
44
|
+
NUITKA_MAY_BE_UNUSED static void *NuitkaMem_Calloc(size_t nelem, size_t elsize) {
|
|
45
|
+
return python_mem_calloc(python_mem_ctx, nelem, elsize);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
#ifndef Py_GIL_DISABLED
|
|
49
|
+
// Our version of "PyMem_Realloc".
|
|
50
|
+
NUITKA_MAY_BE_UNUSED static void *NuitkaMem_Realloc(void *ptr, size_t new_size) {
|
|
51
|
+
return python_mem_realloc(python_mem_ctx, ptr, new_size);
|
|
52
|
+
}
|
|
53
|
+
#else
|
|
54
|
+
NUITKA_MAY_BE_UNUSED static void NuitkaMem_Free(void *ptr) { python_mem_free(python_mem_ctx, ptr); }
|
|
55
|
+
#endif
|
|
56
|
+
|
|
57
|
+
#else
|
|
58
|
+
#define NuitkaObject_Malloc(size) PyObject_MALLOC(size)
|
|
59
|
+
#define NuitkaMem_Malloc(size) PyMem_MALLOC(size)
|
|
60
|
+
#define NuitkaMem_Calloc(elem, elsize) PyMem_Calloc(elem, elsize)
|
|
61
|
+
#ifndef Py_GIL_DISABLED
|
|
62
|
+
#if defined(_WIN32)
|
|
63
|
+
// On Windows, mixing different runtime DLLs can cause issues at
|
|
64
|
+
// release, so we need to go through the API to get the proper
|
|
65
|
+
// DLL runtime.
|
|
66
|
+
#define NuitkaMem_Realloc(ptr, new_size) PyMem_Realloc(ptr, new_size)
|
|
67
|
+
#else
|
|
68
|
+
#define NuitkaMem_Realloc(ptr, new_size) PyMem_REALLOC(ptr, new_size)
|
|
69
|
+
#endif
|
|
70
|
+
#else
|
|
71
|
+
#define NuitkaMem_Free(ptr) PyMem_Free(ptr)
|
|
72
|
+
#endif
|
|
73
|
+
#endif
|
|
74
|
+
|
|
75
|
+
#if PYTHON_VERSION >= 0x380 && PYTHON_VERSION < 0x3c0
|
|
32
76
|
// Need to make Py_DECREF a macro again that doesn't call an API
|
|
33
77
|
static inline void _Nuitka_Py_DECREF(PyObject *ob) {
|
|
34
78
|
assert(ob != NULL && ob->ob_refcnt >= 0);
|
|
@@ -84,6 +128,60 @@ static inline void _Nuitka_Py_XDECREF(PyObject *ob) {
|
|
|
84
128
|
} \
|
|
85
129
|
} while (0)
|
|
86
130
|
|
|
131
|
+
#elif PYTHON_VERSION >= 0x3c0 && defined(_WIN32) && !defined(Py_DEBUG) && !defined(Py_TRACE_REFS) && \
|
|
132
|
+
!defined(Py_GIL_DISABLED) && !defined(_NUITKA_EXPERIMENTAL_DISABLE_PY_DECREF_OVERRIDE)
|
|
133
|
+
|
|
134
|
+
#undef Py_DECREF
|
|
135
|
+
#define Py_DECREF(arg) \
|
|
136
|
+
do { \
|
|
137
|
+
PyObject *op = _PyObject_CAST(arg); \
|
|
138
|
+
if (_Py_IsImmortal(op)) { \
|
|
139
|
+
break; \
|
|
140
|
+
} \
|
|
141
|
+
_Py_DECREF_STAT_INC(); \
|
|
142
|
+
if (--op->ob_refcnt == 0) { \
|
|
143
|
+
destructor dealloc = Py_TYPE(op)->tp_dealloc; \
|
|
144
|
+
(*dealloc)(op); \
|
|
145
|
+
} \
|
|
146
|
+
} while (0)
|
|
147
|
+
|
|
148
|
+
#undef Py_XDECREF
|
|
149
|
+
#define Py_XDECREF(arg) \
|
|
150
|
+
do { \
|
|
151
|
+
PyObject *xop = _PyObject_CAST(arg); \
|
|
152
|
+
if (xop != NULL) { \
|
|
153
|
+
Py_DECREF(xop); \
|
|
154
|
+
} \
|
|
155
|
+
} while (0)
|
|
156
|
+
|
|
157
|
+
#undef Py_IS_TYPE
|
|
158
|
+
#define Py_IS_TYPE(ob, type) (_PyObject_CAST(ob)->ob_type == (type))
|
|
159
|
+
|
|
160
|
+
#undef _Py_DECREF_SPECIALIZED
|
|
161
|
+
#define _Py_DECREF_SPECIALIZED(arg, dealloc) \
|
|
162
|
+
do { \
|
|
163
|
+
PyObject *op = _PyObject_CAST(arg); \
|
|
164
|
+
if (_Py_IsImmortal(op)) { \
|
|
165
|
+
break; \
|
|
166
|
+
} \
|
|
167
|
+
_Py_DECREF_STAT_INC(); \
|
|
168
|
+
if (--op->ob_refcnt == 0) { \
|
|
169
|
+
destructor d = (destructor)(dealloc); \
|
|
170
|
+
d(op); \
|
|
171
|
+
} \
|
|
172
|
+
} while (0)
|
|
173
|
+
#endif
|
|
174
|
+
|
|
175
|
+
// For Python3.12, avoid reference management if value is known to be immortal.
|
|
176
|
+
#if PYTHON_VERSION < 0x3c0
|
|
177
|
+
#define Py_INCREF_IMMORTAL(value) Py_INCREF(value)
|
|
178
|
+
#define Py_DECREF_IMMORTAL(value) Py_DECREF(value)
|
|
179
|
+
#elif defined(_NUITKA_DEBUG_DEBUG_IMMORTAL)
|
|
180
|
+
#define Py_INCREF_IMMORTAL(value) assert(Py_REFCNT(value) == _Py_IMMORTAL_REFCNT)
|
|
181
|
+
#define Py_DECREF_IMMORTAL(value) assert(Py_REFCNT(value) == _Py_IMMORTAL_REFCNT)
|
|
182
|
+
#else
|
|
183
|
+
#define Py_INCREF_IMMORTAL(value)
|
|
184
|
+
#define Py_DECREF_IMMORTAL(value)
|
|
87
185
|
#endif
|
|
88
186
|
|
|
89
187
|
// Macro introduced with Python3.9 or higher, make it generally available.
|
|
@@ -95,11 +193,26 @@ static inline void _Py_SET_TYPE(PyObject *ob, PyTypeObject *type) { ob->ob_type
|
|
|
95
193
|
// After Python 3.9 this was moved into the DLL potentially, making
|
|
96
194
|
// it expensive to call.
|
|
97
195
|
#if PYTHON_VERSION >= 0x390
|
|
98
|
-
static void
|
|
196
|
+
static inline void Nuitka_Py_NewReferenceNoTotal(PyObject *op) { Py_SET_REFCNT(op, 1); }
|
|
197
|
+
static inline void Nuitka_Py_NewReference(PyObject *op) {
|
|
99
198
|
#ifdef Py_REF_DEBUG
|
|
199
|
+
#if PYTHON_VERSION < 0x3c0
|
|
100
200
|
_Py_RefTotal++;
|
|
201
|
+
#else
|
|
202
|
+
// Refcounts are now in the interpreter state, spell-checker: ignore reftotal
|
|
203
|
+
_PyInterpreterState_GET()->object_state.reftotal++;
|
|
204
|
+
#endif
|
|
205
|
+
#endif
|
|
206
|
+
#if !defined(Py_GIL_DISABLED)
|
|
207
|
+
op->ob_refcnt = 1;
|
|
208
|
+
#else
|
|
209
|
+
op->ob_tid = _Py_ThreadId();
|
|
210
|
+
op->_padding = 0;
|
|
211
|
+
op->ob_mutex = (PyMutex){0};
|
|
212
|
+
op->ob_gc_bits = 0;
|
|
213
|
+
op->ob_ref_local = 1;
|
|
214
|
+
op->ob_ref_shared = 0;
|
|
101
215
|
#endif
|
|
102
|
-
Py_SET_REFCNT(op, 1);
|
|
103
216
|
}
|
|
104
217
|
#else
|
|
105
218
|
#define Nuitka_Py_NewReference(op) _Py_NewReference(op)
|
|
@@ -126,7 +239,7 @@ static PyObject *Nuitka_PyType_AllocNoTrackVar(PyTypeObject *type, Py_ssize_t ni
|
|
|
126
239
|
const size_t pre_size = Nuitka_PyType_PreHeaderSize(type);
|
|
127
240
|
assert(pre_size == sizeof(PyGC_Head));
|
|
128
241
|
|
|
129
|
-
char *alloc = (char *)
|
|
242
|
+
char *alloc = (char *)NuitkaObject_Malloc(size + pre_size);
|
|
130
243
|
assert(alloc);
|
|
131
244
|
PyObject *obj = (PyObject *)(alloc + pre_size);
|
|
132
245
|
|
|
@@ -161,7 +274,7 @@ static PyObject *Nuitka_PyType_AllocNoTrack(PyTypeObject *type) {
|
|
|
161
274
|
// TODO: This ought to be static for all our types, so remove it as a call.
|
|
162
275
|
const size_t pre_size = Nuitka_PyType_PreHeaderSize(type);
|
|
163
276
|
|
|
164
|
-
char *alloc = (char *)
|
|
277
|
+
char *alloc = (char *)NuitkaObject_Malloc(_PyObject_SIZE(type) + pre_size);
|
|
165
278
|
assert(alloc);
|
|
166
279
|
PyObject *obj = (PyObject *)(alloc + pre_size);
|
|
167
280
|
|
|
@@ -239,4 +352,97 @@ NUITKA_MAY_BE_UNUSED static void *Nuitka_GC_New(PyTypeObject *type) {
|
|
|
239
352
|
return op;
|
|
240
353
|
}
|
|
241
354
|
|
|
355
|
+
static bool inline Nuitka_GC_IS_TRACKED_X(PyObject *object) {
|
|
356
|
+
return object == NULL || _PyObject_GC_IS_TRACKED(object);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// To allow us marking some of our own values as immortal.
|
|
360
|
+
#if PYTHON_VERSION >= 0x3c0
|
|
361
|
+
static void inline Py_SET_REFCNT_IMMORTAL(PyObject *object) {
|
|
362
|
+
// Normally done only with 3.13, but it makes sense to do this.
|
|
363
|
+
if (_PyObject_IS_GC(object) && _PyObject_GC_IS_TRACKED(object)) {
|
|
364
|
+
Nuitka_GC_UnTrack(object);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
#ifdef Py_GIL_DISABLED
|
|
368
|
+
object->ob_tid = _Py_UNOWNED_TID;
|
|
369
|
+
object->ob_ref_local = _Py_IMMORTAL_REFCNT_LOCAL;
|
|
370
|
+
object->ob_ref_shared = 0;
|
|
371
|
+
#else
|
|
372
|
+
object->ob_refcnt = _Py_IMMORTAL_REFCNT;
|
|
373
|
+
#endif
|
|
374
|
+
}
|
|
375
|
+
#else
|
|
376
|
+
#define Py_SET_REFCNT_IMMORTAL(object)
|
|
377
|
+
#endif
|
|
378
|
+
|
|
379
|
+
// Have these defines from newer Python for all Python versions available
|
|
380
|
+
#ifndef _Py_CAST
|
|
381
|
+
#define _Py_CAST(type, expr) ((type)(expr))
|
|
382
|
+
#endif
|
|
383
|
+
|
|
384
|
+
#ifndef _PyObject_CAST
|
|
385
|
+
#define _PyObject_CAST(op) _Py_CAST(PyObject *, (op))
|
|
386
|
+
#endif
|
|
387
|
+
|
|
388
|
+
#ifndef Py_SETREF
|
|
389
|
+
#ifdef _Py_TYPEOF
|
|
390
|
+
#define Py_SETREF(dst, src) \
|
|
391
|
+
do { \
|
|
392
|
+
_Py_TYPEOF(dst) *_tmp_dst_ptr = &(dst); \
|
|
393
|
+
_Py_TYPEOF(dst) _tmp_old_dst = (*_tmp_dst_ptr); \
|
|
394
|
+
*_tmp_dst_ptr = (src); \
|
|
395
|
+
Py_DECREF(_tmp_old_dst); \
|
|
396
|
+
} while (0)
|
|
397
|
+
#else
|
|
398
|
+
#define Py_SETREF(dst, src) \
|
|
399
|
+
do { \
|
|
400
|
+
PyObject **_tmp_dst_ptr = _Py_CAST(PyObject **, &(dst)); \
|
|
401
|
+
PyObject *_tmp_old_dst = (*_tmp_dst_ptr); \
|
|
402
|
+
PyObject *_tmp_src = _PyObject_CAST(src); \
|
|
403
|
+
memcpy(_tmp_dst_ptr, &_tmp_src, sizeof(PyObject *)); \
|
|
404
|
+
Py_DECREF(_tmp_old_dst); \
|
|
405
|
+
} while (0)
|
|
406
|
+
#endif
|
|
407
|
+
#endif
|
|
408
|
+
|
|
409
|
+
#ifndef Py_XSETREF
|
|
410
|
+
/* Py_XSETREF() is a variant of Py_SETREF() that uses Py_XDECREF() instead of
|
|
411
|
+
* Py_DECREF().
|
|
412
|
+
*/
|
|
413
|
+
#ifdef _Py_TYPEOF
|
|
414
|
+
#define Py_XSETREF(dst, src) \
|
|
415
|
+
do { \
|
|
416
|
+
_Py_TYPEOF(dst) *_tmp_dst_ptr = &(dst); \
|
|
417
|
+
_Py_TYPEOF(dst) _tmp_old_dst = (*_tmp_dst_ptr); \
|
|
418
|
+
*_tmp_dst_ptr = (src); \
|
|
419
|
+
Py_XDECREF(_tmp_old_dst); \
|
|
420
|
+
} while (0)
|
|
421
|
+
#else
|
|
422
|
+
#define Py_XSETREF(dst, src) \
|
|
423
|
+
do { \
|
|
424
|
+
PyObject **_tmp_dst_ptr = _Py_CAST(PyObject **, &(dst)); \
|
|
425
|
+
PyObject *_tmp_old_dst = (*_tmp_dst_ptr); \
|
|
426
|
+
PyObject *_tmp_src = _PyObject_CAST(src); \
|
|
427
|
+
memcpy(_tmp_dst_ptr, &_tmp_src, sizeof(PyObject *)); \
|
|
428
|
+
Py_XDECREF(_tmp_old_dst); \
|
|
429
|
+
} while (0)
|
|
430
|
+
#endif
|
|
431
|
+
#endif
|
|
432
|
+
|
|
242
433
|
#endif
|
|
434
|
+
|
|
435
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
436
|
+
// integrates with CPython, but also works on its own.
|
|
437
|
+
//
|
|
438
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
439
|
+
// you may not use this file except in compliance with the License.
|
|
440
|
+
// You may obtain a copy of the License at
|
|
441
|
+
//
|
|
442
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
443
|
+
//
|
|
444
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
445
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
446
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
447
|
+
// See the License for the specific language governing permissions and
|
|
448
|
+
// 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_BUILTINS_H__
|
|
19
4
|
#define __NUITKA_BUILTINS_H__
|
|
20
5
|
|
|
@@ -95,3 +80,18 @@ NUITKA_MAY_BE_UNUSED static void Nuitka_SysSetObject(char const *name, PyObject
|
|
|
95
80
|
}
|
|
96
81
|
|
|
97
82
|
#endif
|
|
83
|
+
|
|
84
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
85
|
+
// integrates with CPython, but also works on its own.
|
|
86
|
+
//
|
|
87
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
88
|
+
// you may not use this file except in compliance with the License.
|
|
89
|
+
// You may obtain a copy of the License at
|
|
90
|
+
//
|
|
91
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
92
|
+
//
|
|
93
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
94
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
95
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
96
|
+
// See the License for the specific language governing permissions and
|
|
97
|
+
// 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_CALLING_H__
|
|
19
4
|
#define __NUITKA_CALLING_H__
|
|
20
5
|
|
|
@@ -26,7 +11,7 @@
|
|
|
26
11
|
// For exception test formatting and call code mostly.
|
|
27
12
|
extern char const *GET_CALLABLE_NAME(PyObject *object);
|
|
28
13
|
extern char const *GET_CALLABLE_DESC(PyObject *object);
|
|
29
|
-
extern char const *GET_CLASS_NAME(PyObject *
|
|
14
|
+
extern char const *GET_CLASS_NAME(PyObject *class_object);
|
|
30
15
|
extern char const *GET_INSTANCE_CLASS_NAME(PyThreadState *tstate, PyObject *instance);
|
|
31
16
|
|
|
32
17
|
// Also used in generated helper code.
|
|
@@ -96,24 +81,24 @@ NUITKA_MAY_BE_UNUSED static PyObject *CALL_FUNCTION(PyThreadState *tstate, PyObj
|
|
|
96
81
|
extern PyObject *CALL_FUNCTION_NO_ARGS(PyThreadState *tstate, PyObject *called);
|
|
97
82
|
|
|
98
83
|
// Function call variants with positional arguments tuple.
|
|
99
|
-
NUITKA_MAY_BE_UNUSED static PyObject *
|
|
100
|
-
|
|
84
|
+
NUITKA_MAY_BE_UNUSED static PyObject *CALL_FUNCTION_WITH_POS_ARGS(PyThreadState *tstate, PyObject *function_object,
|
|
85
|
+
PyObject *positional_args) {
|
|
101
86
|
return CALL_FUNCTION(tstate, function_object, positional_args, NULL);
|
|
102
87
|
}
|
|
103
88
|
|
|
104
89
|
// Method call variants with positional arguments tuple.
|
|
105
|
-
extern PyObject *
|
|
106
|
-
|
|
90
|
+
extern PyObject *CALL_METHOD_WITH_POS_ARGS(PyThreadState *tstate, PyObject *source, PyObject *attr_name,
|
|
91
|
+
PyObject *positional_args);
|
|
107
92
|
|
|
108
93
|
// TODO: Specialize in template too.
|
|
109
|
-
NUITKA_MAY_BE_UNUSED static PyObject *
|
|
94
|
+
NUITKA_MAY_BE_UNUSED static PyObject *CALL_FUNCTION_WITH_KW_ARGS(PyThreadState *tstate, PyObject *function_object,
|
|
110
95
|
PyObject *named_args) {
|
|
111
96
|
return CALL_FUNCTION(tstate, function_object, const_tuple_empty, named_args);
|
|
112
97
|
}
|
|
113
98
|
|
|
114
99
|
// Call built-in functions with using defaulted values.
|
|
115
100
|
extern PyObject *CALL_BUILTIN_KW_ARGS(PyThreadState *tstate, PyObject *callable, PyObject **args,
|
|
116
|
-
char const **arg_names, int max_args);
|
|
101
|
+
char const **arg_names, int max_args, int kw_only_args);
|
|
117
102
|
|
|
118
103
|
// For abstract class instantiation error message, during call.
|
|
119
104
|
extern void formatCannotInstantiateAbstractClass(PyThreadState *tstate, PyTypeObject *type);
|
|
@@ -121,3 +106,18 @@ extern void formatCannotInstantiateAbstractClass(PyThreadState *tstate, PyTypeOb
|
|
|
121
106
|
#include "nuitka/helper/calling_generated.h"
|
|
122
107
|
|
|
123
108
|
#endif
|
|
109
|
+
|
|
110
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
111
|
+
// integrates with CPython, but also works on its own.
|
|
112
|
+
//
|
|
113
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
114
|
+
// you may not use this file except in compliance with the License.
|
|
115
|
+
// You may obtain a copy of the License at
|
|
116
|
+
//
|
|
117
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
118
|
+
//
|
|
119
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
120
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
121
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
122
|
+
// See the License for the specific language governing permissions and
|
|
123
|
+
// 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_CHECKERS_H__
|
|
19
4
|
#define __NUITKA_CHECKERS_H__
|
|
20
5
|
|
|
@@ -37,4 +22,18 @@
|
|
|
37
22
|
extern void CHECK_OBJECT_DEEP(PyObject *value);
|
|
38
23
|
extern void CHECK_OBJECTS_DEEP(PyObject *const *values, Py_ssize_t size);
|
|
39
24
|
|
|
40
|
-
#endif
|
|
25
|
+
#endif
|
|
26
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
27
|
+
// integrates with CPython, but also works on its own.
|
|
28
|
+
//
|
|
29
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
30
|
+
// you may not use this file except in compliance with the License.
|
|
31
|
+
// You may obtain a copy of the License at
|
|
32
|
+
//
|
|
33
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
34
|
+
//
|
|
35
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
36
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
37
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
38
|
+
// See the License for the specific language governing permissions and
|
|
39
|
+
// 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
|
+
#ifndef __NUITKA_CHECKSUM_TOOLS_H__
|
|
4
|
+
#define __NUITKA_CHECKSUM_TOOLS_H__
|
|
5
|
+
|
|
6
|
+
// This file is included from another C file, help IDEs to still parse it on
|
|
7
|
+
// its own.
|
|
8
|
+
#ifdef __IDE_ONLY__
|
|
9
|
+
#include "nuitka/prelude.h"
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
extern uint32_t calcCRC32(unsigned char const *message, uint32_t size);
|
|
13
|
+
|
|
14
|
+
#endif
|
|
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,20 +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
|
-
#ifndef __NUITKA_CHECKSUM_TOOLS_H__
|
|
19
|
-
#define __NUITKA_CHECKSUM_TOOLS_H__
|
|
20
|
-
|
|
21
|
-
// This file is included from another C file, help IDEs to still parse it on
|
|
22
|
-
// its own.
|
|
23
|
-
#ifdef __IDE_ONLY__
|
|
24
|
-
#include "nuitka/prelude.h"
|
|
25
|
-
#endif
|
|
26
|
-
|
|
27
|
-
extern uint32_t initCRC32(void);
|
|
28
|
-
extern uint32_t updateCRC32(uint32_t crc, unsigned char const *message, uint32_t size);
|
|
29
|
-
extern uint32_t finalizeCRC32(uint32_t crc);
|
|
30
|
-
|
|
31
|
-
extern uint32_t calcCRC32(unsigned char const *message, uint32_t size);
|
|
32
|
-
|
|
33
|
-
#endif
|
|
@@ -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_ASYNCGEN_H__
|
|
19
4
|
#define __NUITKA_COMPILED_ASYNCGEN_H__
|
|
20
5
|
|
|
@@ -42,7 +27,7 @@ struct Nuitka_AsyncgenObject {
|
|
|
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 asyncgen objects in CPython.
|
|
48
33
|
PyObject *m_weakrefs;
|
|
@@ -119,6 +104,10 @@ static inline void SAVE_ASYNCGEN_EXCEPTION(PyThreadState *tstate, struct Nuitka_
|
|
|
119
104
|
* Python3.7: The exception is preserved in the asyncgen object itself
|
|
120
105
|
* which has a new "m_exc_state" structure just for that.
|
|
121
106
|
*/
|
|
107
|
+
#if _DEBUG_EXCEPTIONS
|
|
108
|
+
PRINT_STRING("SAVE_ASYNCGEN_EXCEPTION: Enter\n");
|
|
109
|
+
PRINT_PUBLISHED_EXCEPTION();
|
|
110
|
+
#endif
|
|
122
111
|
|
|
123
112
|
#if PYTHON_VERSION < 0x3b0
|
|
124
113
|
PyObject *saved_exception_type = EXC_TYPE(tstate);
|
|
@@ -128,11 +117,6 @@ static inline void SAVE_ASYNCGEN_EXCEPTION(PyThreadState *tstate, struct Nuitka_
|
|
|
128
117
|
PyTracebackObject *saved_exception_traceback = EXC_TRACEBACK(tstate);
|
|
129
118
|
#endif
|
|
130
119
|
|
|
131
|
-
#if _DEBUG_EXCEPTIONS
|
|
132
|
-
PRINT_STRING("SAVE_ASYNCGEN_EXCEPTION: Enter\n");
|
|
133
|
-
PRINT_EXCEPTION(saved_exception_type, saved_exception_value, saved_exception_traceback);
|
|
134
|
-
#endif
|
|
135
|
-
|
|
136
120
|
#if PYTHON_VERSION < 0x370
|
|
137
121
|
EXC_TYPE(tstate) = tstate->frame->f_exc_type;
|
|
138
122
|
EXC_VALUE(tstate) = tstate->frame->f_exc_value;
|
|
@@ -149,7 +133,7 @@ static inline void SAVE_ASYNCGEN_EXCEPTION(PyThreadState *tstate, struct Nuitka_
|
|
|
149
133
|
|
|
150
134
|
#if _DEBUG_EXCEPTIONS
|
|
151
135
|
PRINT_STRING("SAVE_ASYNCGEN_EXCEPTION: Leave\n");
|
|
152
|
-
|
|
136
|
+
PRINT_PUBLISHED_EXCEPTION();
|
|
153
137
|
#endif
|
|
154
138
|
|
|
155
139
|
#if PYTHON_VERSION < 0x370
|
|
@@ -181,7 +165,11 @@ static inline void RESTORE_ASYNCGEN_EXCEPTION(PyThreadState *tstate, struct Nuit
|
|
|
181
165
|
|
|
182
166
|
#if _DEBUG_EXCEPTIONS
|
|
183
167
|
PRINT_STRING("RESTORE_ASYNCGEN_EXCEPTION: Enter\n");
|
|
168
|
+
#if PYTHON_VERSION < 0x3b0
|
|
184
169
|
PRINT_EXCEPTION(saved_exception_type, saved_exception_value, saved_exception_traceback);
|
|
170
|
+
#else
|
|
171
|
+
_PRINT_EXCEPTION1(saved_exception_value);
|
|
172
|
+
#endif
|
|
185
173
|
#endif
|
|
186
174
|
|
|
187
175
|
#if PYTHON_VERSION < 0x370
|
|
@@ -212,7 +200,7 @@ static inline void RESTORE_ASYNCGEN_EXCEPTION(PyThreadState *tstate, struct Nuit
|
|
|
212
200
|
|
|
213
201
|
#if _DEBUG_EXCEPTIONS
|
|
214
202
|
PRINT_STRING("RESTORE_ASYNCGEN_EXCEPTION: Leave\n");
|
|
215
|
-
|
|
203
|
+
PRINT_PUBLISHED_EXCEPTION();
|
|
216
204
|
#endif
|
|
217
205
|
|
|
218
206
|
#if PYTHON_VERSION < 0x3b0
|
|
@@ -274,3 +262,18 @@ extern int count_released_Nuitka_AsyncgenAthrow_Type;
|
|
|
274
262
|
#endif
|
|
275
263
|
|
|
276
264
|
#endif
|
|
265
|
+
|
|
266
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
267
|
+
// integrates with CPython, but also works on its own.
|
|
268
|
+
//
|
|
269
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
270
|
+
// you may not use this file except in compliance with the License.
|
|
271
|
+
// You may obtain a copy of the License at
|
|
272
|
+
//
|
|
273
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
274
|
+
//
|
|
275
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
276
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
277
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
278
|
+
// See the License for the specific language governing permissions and
|
|
279
|
+
// 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_CELL_H__
|
|
19
4
|
#define __NUITKA_COMPILED_CELL_H__
|
|
20
5
|
|
|
@@ -35,7 +20,7 @@ struct Nuitka_CellObject {
|
|
|
35
20
|
};
|
|
36
21
|
|
|
37
22
|
// Create cell with out value, and with or without reference given.
|
|
38
|
-
extern struct Nuitka_CellObject *
|
|
23
|
+
extern struct Nuitka_CellObject *Nuitka_Cell_NewEmpty(void);
|
|
39
24
|
extern struct Nuitka_CellObject *Nuitka_Cell_New0(PyObject *value);
|
|
40
25
|
extern struct Nuitka_CellObject *Nuitka_Cell_New1(PyObject *value);
|
|
41
26
|
|
|
@@ -46,4 +31,34 @@ extern struct Nuitka_CellObject *Nuitka_Cell_New1(PyObject *value);
|
|
|
46
31
|
#define Nuitka_Cell_GET(cell) \
|
|
47
32
|
(CHECK_OBJECT(cell), assert(Nuitka_Cell_Check((PyObject *)cell)), (((struct Nuitka_CellObject *)(cell))->ob_ref))
|
|
48
33
|
#endif
|
|
34
|
+
|
|
35
|
+
#if _DEBUG_REFCOUNTS
|
|
36
|
+
extern int count_active_Nuitka_Cell_Type;
|
|
37
|
+
extern int count_allocated_Nuitka_Cell_Type;
|
|
38
|
+
extern int count_released_Nuitka_Cell_Type;
|
|
49
39
|
#endif
|
|
40
|
+
|
|
41
|
+
NUITKA_MAY_BE_UNUSED static inline void Nuitka_Cell_SET(struct Nuitka_CellObject *cell_object, PyObject *value) {
|
|
42
|
+
CHECK_OBJECT_X(value);
|
|
43
|
+
CHECK_OBJECT(cell_object);
|
|
44
|
+
|
|
45
|
+
assert(Nuitka_Cell_Check((PyObject *)cell_object));
|
|
46
|
+
cell_object->ob_ref = value;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
52
|
+
// integrates with CPython, but also works on its own.
|
|
53
|
+
//
|
|
54
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
55
|
+
// you may not use this file except in compliance with the License.
|
|
56
|
+
// You may obtain a copy of the License at
|
|
57
|
+
//
|
|
58
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
59
|
+
//
|
|
60
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
61
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
62
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
63
|
+
// See the License for the specific language governing permissions and
|
|
64
|
+
// limitations under the License.
|