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_PRELUDE_H__
|
|
19
4
|
#define __NUITKA_PRELUDE_H__
|
|
20
5
|
|
|
@@ -23,6 +8,8 @@
|
|
|
23
8
|
#define NDEBUG
|
|
24
9
|
#endif
|
|
25
10
|
|
|
11
|
+
#include "nuitka/debug_settings.h"
|
|
12
|
+
|
|
26
13
|
#if defined(_WIN32)
|
|
27
14
|
// Note: Keep this separate line, must be included before other Windows headers.
|
|
28
15
|
#include <windows.h>
|
|
@@ -42,9 +29,10 @@
|
|
|
42
29
|
|
|
43
30
|
/* This is needed or else we can't create modules name "proc" or "func". For
|
|
44
31
|
* Python3, the name collision can't happen, so we can limit it to Python2.
|
|
32
|
+
spell-checker: ignore initproc,initfunc
|
|
45
33
|
*/
|
|
46
|
-
#define initproc
|
|
47
|
-
#define initfunc
|
|
34
|
+
#define initproc python_init_proc
|
|
35
|
+
#define initfunc python_init_func
|
|
48
36
|
#define initstate python_initstate
|
|
49
37
|
|
|
50
38
|
// Python 3.11 headers give these warnings
|
|
@@ -55,20 +43,30 @@
|
|
|
55
43
|
#endif
|
|
56
44
|
|
|
57
45
|
/* Include the relevant Python C-API header files. */
|
|
58
|
-
#include
|
|
59
|
-
#include
|
|
60
|
-
#include
|
|
61
|
-
#include
|
|
62
|
-
#include
|
|
63
|
-
#include
|
|
46
|
+
#include <Python.h>
|
|
47
|
+
#include <frameobject.h>
|
|
48
|
+
#include <marshal.h>
|
|
49
|
+
#include <methodobject.h>
|
|
50
|
+
#include <osdefs.h>
|
|
51
|
+
#include <structseq.h>
|
|
64
52
|
|
|
65
53
|
#if PYTHON_VERSION < 0x3a0
|
|
66
54
|
#include "pydebug.h"
|
|
67
55
|
#endif
|
|
68
56
|
|
|
57
|
+
/* A way to not give warnings about things that are declared, but might not
|
|
58
|
+
* be used like in-line helper functions in headers or static per module
|
|
59
|
+
* variables from headers.
|
|
60
|
+
*/
|
|
61
|
+
#ifdef __GNUC__
|
|
62
|
+
#define NUITKA_MAY_BE_UNUSED __attribute__((__unused__))
|
|
63
|
+
#else
|
|
64
|
+
#define NUITKA_MAY_BE_UNUSED
|
|
65
|
+
#endif
|
|
66
|
+
|
|
69
67
|
// We are not following the 3.10 change to an inline function. At least
|
|
70
68
|
// not immediately.
|
|
71
|
-
#if PYTHON_VERSION >= 0x3a0
|
|
69
|
+
#if PYTHON_VERSION >= 0x3a0 && PYTHON_VERSION < 0x3c0
|
|
72
70
|
#undef Py_REFCNT
|
|
73
71
|
#define Py_REFCNT(ob) (_PyObject_CAST(ob)->ob_refcnt)
|
|
74
72
|
#endif
|
|
@@ -104,6 +102,37 @@
|
|
|
104
102
|
|
|
105
103
|
extern _PyRuntimeState _PyRuntime;
|
|
106
104
|
#else
|
|
105
|
+
|
|
106
|
+
#if PYTHON_VERSION >= 0x3c0
|
|
107
|
+
#include "internal/pycore_runtime.h"
|
|
108
|
+
#include "internal/pycore_typevarobject.h"
|
|
109
|
+
|
|
110
|
+
static inline size_t Nuitka_static_builtin_index_get(PyTypeObject *self) { return (size_t)self->tp_subclasses - 1; }
|
|
111
|
+
|
|
112
|
+
// Changed internal type access for Python3.13
|
|
113
|
+
#if PYTHON_VERSION < 0x3d0
|
|
114
|
+
#define managed_static_type_state static_builtin_state
|
|
115
|
+
|
|
116
|
+
static inline managed_static_type_state *Nuitka_static_builtin_state_get(PyInterpreterState *interp,
|
|
117
|
+
PyTypeObject *self) {
|
|
118
|
+
return &(interp->types.builtins[Nuitka_static_builtin_index_get(self)]);
|
|
119
|
+
}
|
|
120
|
+
#else
|
|
121
|
+
static inline managed_static_type_state *Nuitka_static_builtin_state_get(PyInterpreterState *interp,
|
|
122
|
+
PyTypeObject *self) {
|
|
123
|
+
return &(interp->types.builtins.initialized[Nuitka_static_builtin_index_get(self)]);
|
|
124
|
+
}
|
|
125
|
+
#endif
|
|
126
|
+
|
|
127
|
+
NUITKA_MAY_BE_UNUSED static inline managed_static_type_state *Nuitka_PyStaticType_GetState(PyInterpreterState *interp,
|
|
128
|
+
PyTypeObject *self) {
|
|
129
|
+
assert(self->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN);
|
|
130
|
+
return Nuitka_static_builtin_state_get(interp, self);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
#define _PyStaticType_GetState(interp, self) Nuitka_PyStaticType_GetState(interp, self)
|
|
134
|
+
#endif
|
|
135
|
+
|
|
107
136
|
#include "internal/pycore_pystate.h"
|
|
108
137
|
#endif
|
|
109
138
|
|
|
@@ -126,18 +155,29 @@ extern _PyRuntimeState _PyRuntime;
|
|
|
126
155
|
#endif
|
|
127
156
|
|
|
128
157
|
#if PYTHON_VERSION >= 0x3b0
|
|
158
|
+
#include <internal/pycore_dict.h>
|
|
129
159
|
#include <internal/pycore_frame.h>
|
|
130
160
|
#include <internal/pycore_gc.h>
|
|
131
161
|
#endif
|
|
132
162
|
|
|
133
163
|
// Uncompiled generator integration requires these.
|
|
134
164
|
#if PYTHON_VERSION >= 0x3b0
|
|
165
|
+
#if PYTHON_VERSION >= 0x3d0
|
|
166
|
+
#include <internal/pycore_opcode_utils.h>
|
|
167
|
+
#include <opcode_ids.h>
|
|
168
|
+
#else
|
|
135
169
|
#include <internal/pycore_opcode.h>
|
|
170
|
+
#endif
|
|
136
171
|
// Clashes with our helper names.
|
|
137
172
|
#undef CALL_FUNCTION
|
|
138
173
|
#endif
|
|
139
174
|
|
|
140
|
-
#if
|
|
175
|
+
#if PYTHON_VERSION >= 0x3c0
|
|
176
|
+
#include <cpython/code.h>
|
|
177
|
+
#endif
|
|
178
|
+
|
|
179
|
+
#if PYTHON_VERSION < 0x3c0
|
|
180
|
+
// Make sure we go the really fast variant, spell-checker: ignore gilstate
|
|
141
181
|
#undef PyThreadState_GET
|
|
142
182
|
#define _PyThreadState_Current _PyRuntime.gilstate.tstate_current
|
|
143
183
|
#define PyThreadState_GET() ((PyThreadState *)_Py_atomic_load_relaxed(&_PyThreadState_Current))
|
|
@@ -150,6 +190,15 @@ extern _PyRuntimeState _PyRuntime;
|
|
|
150
190
|
#include <objimpl.h>
|
|
151
191
|
#endif
|
|
152
192
|
|
|
193
|
+
#if PYTHON_VERSION >= 0x3d0
|
|
194
|
+
#include <internal/pycore_freelist.h>
|
|
195
|
+
#include <internal/pycore_intrinsics.h>
|
|
196
|
+
#include <internal/pycore_modsupport.h>
|
|
197
|
+
#include <internal/pycore_parking_lot.h>
|
|
198
|
+
#include <internal/pycore_setobject.h>
|
|
199
|
+
#include <internal/pycore_time.h>
|
|
200
|
+
#endif
|
|
201
|
+
|
|
153
202
|
#undef Py_BUILD_CORE
|
|
154
203
|
|
|
155
204
|
#endif
|
|
@@ -188,26 +237,19 @@ extern _PyRuntimeState _PyRuntime;
|
|
|
188
237
|
|
|
189
238
|
#define NUITKA_NO_RETURN HEDLEY_NO_RETURN
|
|
190
239
|
|
|
191
|
-
/* A way to not give warnings about things that are declared, but might not
|
|
192
|
-
* be used like in-line helper functions in headers or static per module
|
|
193
|
-
* variables from headers.
|
|
194
|
-
*/
|
|
195
|
-
#ifdef __GNUC__
|
|
196
|
-
#define NUITKA_MAY_BE_UNUSED __attribute__((__unused__))
|
|
197
|
-
#else
|
|
198
|
-
#define NUITKA_MAY_BE_UNUSED
|
|
199
|
-
#endif
|
|
200
|
-
|
|
201
240
|
/* This is used to indicate code control flows we know cannot happen. */
|
|
202
241
|
#ifndef __NUITKA_NO_ASSERT__
|
|
203
242
|
#define NUITKA_CANNOT_GET_HERE(NAME) \
|
|
204
243
|
PRINT_FORMAT("%s : %s\n", __FUNCTION__, #NAME); \
|
|
205
|
-
assert(false); \
|
|
206
244
|
abort();
|
|
207
245
|
#else
|
|
208
246
|
#define NUITKA_CANNOT_GET_HERE(NAME) abort();
|
|
209
247
|
#endif
|
|
210
248
|
|
|
249
|
+
#define NUITKA_ERROR_EXIT(NAME) \
|
|
250
|
+
PRINT_FORMAT("%s : %s\n", __FUNCTION__, #NAME); \
|
|
251
|
+
abort();
|
|
252
|
+
|
|
211
253
|
#ifdef _MSC_VER
|
|
212
254
|
/* Using "_alloca" extension due to MSVC restrictions for array variables
|
|
213
255
|
* on the local stack.
|
|
@@ -219,16 +261,10 @@ extern _PyRuntimeState _PyRuntime;
|
|
|
219
261
|
#define NUITKA_DYNAMIC_ARRAY_DECL(VARIABLE_NAME, ELEMENT_TYPE, COUNT) ELEMENT_TYPE VARIABLE_NAME[COUNT];
|
|
220
262
|
#endif
|
|
221
263
|
|
|
222
|
-
// Stringizing, to make strings out of defines use XSTRINGIZED(SOME_DEFINE) needs
|
|
223
|
-
// to level of defines to work.
|
|
224
|
-
#define _STRINGIZED(ARG) #ARG
|
|
225
|
-
#define STRINGIZED(ARG) _STRINGIZED(ARG)
|
|
226
|
-
|
|
227
264
|
/* Python3 removed PyInt instead of renaming PyLong, and PyObject_Str instead
|
|
228
265
|
* of renaming PyObject_Unicode. Define this to be easily portable.
|
|
229
266
|
*/
|
|
230
267
|
#if PYTHON_VERSION >= 0x300
|
|
231
|
-
#define PyInt_FromLong PyLong_FromLong
|
|
232
268
|
#define PyInt_AsLong PyLong_AsLong
|
|
233
269
|
#define PyInt_FromSsize_t PyLong_FromSsize_t
|
|
234
270
|
|
|
@@ -242,35 +278,62 @@ extern _PyRuntimeState _PyRuntime;
|
|
|
242
278
|
* which makes it easier to write portable code.
|
|
243
279
|
*/
|
|
244
280
|
#if PYTHON_VERSION < 0x300
|
|
281
|
+
#define PyUnicode_GET_LENGTH(x) (PyUnicode_GET_SIZE(x))
|
|
245
282
|
#define Nuitka_String_AsString PyString_AsString
|
|
246
283
|
#define Nuitka_String_AsString_Unchecked PyString_AS_STRING
|
|
247
284
|
#define Nuitka_String_Check PyString_Check
|
|
248
285
|
#define Nuitka_String_CheckExact PyString_CheckExact
|
|
286
|
+
NUITKA_MAY_BE_UNUSED static inline bool Nuitka_StringOrUnicode_CheckExact(PyObject *value) {
|
|
287
|
+
return PyString_CheckExact(value) || PyUnicode_CheckExact(value);
|
|
288
|
+
}
|
|
249
289
|
#define Nuitka_StringObject PyStringObject
|
|
250
290
|
#define Nuitka_String_FromString PyString_FromString
|
|
251
291
|
#define Nuitka_String_FromStringAndSize PyString_FromStringAndSize
|
|
252
292
|
#define Nuitka_String_FromFormat PyString_FromFormat
|
|
253
293
|
#define PyUnicode_CHECK_INTERNED (0)
|
|
294
|
+
NUITKA_MAY_BE_UNUSED static Py_UNICODE *Nuitka_UnicodeAsWideString(PyObject *str, Py_ssize_t *size) {
|
|
295
|
+
PyObject *unicode;
|
|
296
|
+
|
|
297
|
+
if (!PyUnicode_Check(str)) {
|
|
298
|
+
// Leaking memory, but for usages its acceptable to
|
|
299
|
+
// achieve that the pointer remains valid.
|
|
300
|
+
unicode = PyObject_Unicode(str);
|
|
301
|
+
} else {
|
|
302
|
+
unicode = str;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
if (size != NULL) {
|
|
306
|
+
*size = (Py_ssize_t)PyUnicode_GET_LENGTH(unicode);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
return PyUnicode_AsUnicode(unicode);
|
|
310
|
+
}
|
|
254
311
|
#else
|
|
255
312
|
#define Nuitka_String_AsString _PyUnicode_AsString
|
|
256
313
|
|
|
257
|
-
|
|
314
|
+
// Note: This private stuff from file "Objects/unicodeobject.c"
|
|
315
|
+
// spell-checker: ignore unicodeobject
|
|
258
316
|
#define _PyUnicode_UTF8(op) (((PyCompactUnicodeObject *)(op))->utf8)
|
|
259
317
|
#define PyUnicode_UTF8(op) \
|
|
260
318
|
(assert(PyUnicode_IS_READY(op)), \
|
|
261
319
|
PyUnicode_IS_COMPACT_ASCII(op) ? ((char *)((PyASCIIObject *)(op) + 1)) : _PyUnicode_UTF8(op))
|
|
320
|
+
#ifdef __NUITKA_NO_ASSERT__
|
|
262
321
|
#define Nuitka_String_AsString_Unchecked PyUnicode_UTF8
|
|
263
|
-
|
|
322
|
+
#else
|
|
323
|
+
NUITKA_MAY_BE_UNUSED static char const *Nuitka_String_AsString_Unchecked(PyObject *object) {
|
|
324
|
+
char const *result = PyUnicode_UTF8(object);
|
|
325
|
+
assert(result != NULL);
|
|
326
|
+
return result;
|
|
327
|
+
}
|
|
328
|
+
#endif
|
|
264
329
|
#define Nuitka_String_Check PyUnicode_Check
|
|
265
330
|
#define Nuitka_String_CheckExact PyUnicode_CheckExact
|
|
331
|
+
#define Nuitka_StringOrUnicode_CheckExact PyUnicode_CheckExact
|
|
266
332
|
#define Nuitka_StringObject PyUnicodeObject
|
|
267
333
|
#define Nuitka_String_FromString PyUnicode_FromString
|
|
268
334
|
#define Nuitka_String_FromStringAndSize PyUnicode_FromStringAndSize
|
|
269
335
|
#define Nuitka_String_FromFormat PyUnicode_FromFormat
|
|
270
|
-
#
|
|
271
|
-
|
|
272
|
-
#if PYTHON_VERSION < 0x300
|
|
273
|
-
#define PyUnicode_GET_LENGTH(x) (PyUnicode_GET_SIZE(x))
|
|
336
|
+
#define Nuitka_UnicodeAsWideString PyUnicode_AsWideCharString
|
|
274
337
|
#endif
|
|
275
338
|
|
|
276
339
|
// Wrap the type lookup for debug mode, to identify errors, and potentially
|
|
@@ -296,22 +359,6 @@ NUITKA_MAY_BE_UNUSED static PyObject *Nuitka_TypeLookup(PyTypeObject *type, PyOb
|
|
|
296
359
|
#define NUITKA_MODULE_ENTRY_FUNCTION PyObject *
|
|
297
360
|
#endif
|
|
298
361
|
|
|
299
|
-
/* Avoid gcc warnings about using an integer as a bool. This is a cherry-pick.
|
|
300
|
-
*
|
|
301
|
-
* This might apply to more versions. I am seeing this on 3.3.2, and it was
|
|
302
|
-
* fixed for Python 2.x only later. We could include more versions. This is
|
|
303
|
-
* only a problem with debug mode and therefore not too important maybe.
|
|
304
|
-
*/
|
|
305
|
-
#if PYTHON_VERSION >= 0x300 && PYTHON_VERSION < 0x340
|
|
306
|
-
|
|
307
|
-
#undef PyMem_MALLOC
|
|
308
|
-
#define PyMem_MALLOC(n) ((size_t)(n) > (size_t)PY_SSIZE_T_MAX ? NULL : malloc(((n) != 0) ? (n) : 1))
|
|
309
|
-
|
|
310
|
-
#undef PyMem_REALLOC
|
|
311
|
-
#define PyMem_REALLOC(p, n) ((size_t)(n) > (size_t)PY_SSIZE_T_MAX ? NULL : realloc((p), ((n) != 0) ? (n) : 1))
|
|
312
|
-
|
|
313
|
-
#endif
|
|
314
|
-
|
|
315
362
|
#if PYTHON_VERSION < 0x300
|
|
316
363
|
typedef long Py_hash_t;
|
|
317
364
|
#endif
|
|
@@ -372,9 +419,9 @@ extern PyThreadState *_PyThreadState_Current;
|
|
|
372
419
|
#endif
|
|
373
420
|
|
|
374
421
|
#if PYTHON_VERSION < 0x300
|
|
375
|
-
#define
|
|
422
|
+
#define TP_RICHCOMPARE(t) (PyType_HasFeature((t), Py_TPFLAGS_HAVE_RICHCOMPARE) ? (t)->tp_richcompare : NULL)
|
|
376
423
|
#else
|
|
377
|
-
#define
|
|
424
|
+
#define TP_RICHCOMPARE(t) ((t)->tp_richcompare)
|
|
378
425
|
#endif
|
|
379
426
|
|
|
380
427
|
// For older Python we need to define this ourselves.
|
|
@@ -398,6 +445,21 @@ extern PyThreadState *_PyThreadState_Current;
|
|
|
398
445
|
#define PyFloat_SET_DOUBLE(op, value) ((PyFloatObject *)(op))->ob_fval = value
|
|
399
446
|
#endif
|
|
400
447
|
|
|
448
|
+
#ifndef Py_NewRef
|
|
449
|
+
static inline PyObject *_Py_NewRef(PyObject *obj) {
|
|
450
|
+
Py_INCREF(obj);
|
|
451
|
+
return obj;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
static inline PyObject *_Py_XNewRef(PyObject *obj) {
|
|
455
|
+
Py_XINCREF(obj);
|
|
456
|
+
return obj;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
#define Py_NewRef(obj) _Py_NewRef((PyObject *)(obj))
|
|
460
|
+
#define Py_XNewRef(obj) _Py_XNewRef((PyObject *)(obj))
|
|
461
|
+
#endif
|
|
462
|
+
|
|
401
463
|
// For older Python, we don't have a feature "CLASS" anymore, that's implied now.
|
|
402
464
|
#if PYTHON_VERSION < 0x300
|
|
403
465
|
#define NuitkaType_HasFeatureClass(descr) (PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))
|
|
@@ -416,7 +478,7 @@ extern bool Nuitka_Type_IsSubtype(PyTypeObject *a, PyTypeObject *b);
|
|
|
416
478
|
#include <longintrepr.h>
|
|
417
479
|
|
|
418
480
|
#if PYTHON_VERSION < 0x270
|
|
419
|
-
// Not present in Python2.6 yet
|
|
481
|
+
// Not present in Python2.6 yet, spell-checker: ignore sdigit
|
|
420
482
|
typedef signed int sdigit;
|
|
421
483
|
#endif
|
|
422
484
|
#endif
|
|
@@ -433,7 +495,7 @@ typedef long nuitka_digit;
|
|
|
433
495
|
#include "nuitka/compiled_function.h"
|
|
434
496
|
|
|
435
497
|
/* Sentinel PyObject to be used for all our call iterator endings. */
|
|
436
|
-
extern PyObject *
|
|
498
|
+
extern PyObject *Nuitka_sentinel_value;
|
|
437
499
|
|
|
438
500
|
/* Value to use for __compiled__ value of all modules. */
|
|
439
501
|
extern PyObject *Nuitka_dunder_compiled_value;
|
|
@@ -453,11 +515,13 @@ extern PyObject *Nuitka_dunder_compiled_value;
|
|
|
453
515
|
#include "nuitka/filesystem_paths.h"
|
|
454
516
|
#include "nuitka/safe_string_ops.h"
|
|
455
517
|
|
|
518
|
+
#include "nuitka/jit_sources.h"
|
|
519
|
+
|
|
456
520
|
#if _NUITKA_EXPERIMENTAL_WRITEABLE_CONSTANTS
|
|
457
521
|
#include "nuitka_data_decoder.h"
|
|
458
522
|
#else
|
|
459
523
|
#define DECODE(x) assert(x)
|
|
460
|
-
#define
|
|
524
|
+
#define UN_TRANSLATE(x) (x)
|
|
461
525
|
#endif
|
|
462
526
|
|
|
463
527
|
#if _NUITKA_EXPERIMENTAL_FILE_TRACING
|
|
@@ -476,6 +540,8 @@ extern PyObject *Nuitka_dunder_compiled_value;
|
|
|
476
540
|
|
|
477
541
|
#define TRACE_FILE_LISTDIR(tstate, x, y) (false)
|
|
478
542
|
|
|
543
|
+
#define TRACE_FILE_STAT(tstate, x, y, z, r) (false)
|
|
544
|
+
|
|
479
545
|
#endif
|
|
480
546
|
|
|
481
547
|
#if _NUITKA_EXPERIMENTAL_INIT_PROGRAM
|
|
@@ -485,9 +551,35 @@ extern PyObject *Nuitka_dunder_compiled_value;
|
|
|
485
551
|
#define NUITKA_INIT_PROGRAM_LATE(module_name)
|
|
486
552
|
#endif
|
|
487
553
|
|
|
554
|
+
#if _NUITKA_EXPERIMENTAL_EXIT_PROGRAM
|
|
555
|
+
#include "nuitka_exit_program.h"
|
|
556
|
+
#else
|
|
557
|
+
#define NUITKA_FINALIZE_PROGRAM(tstate)
|
|
558
|
+
#endif
|
|
559
|
+
|
|
488
560
|
// Only Python3.9+ has a more precise check, while making the old one slow.
|
|
489
561
|
#ifndef PyCFunction_CheckExact
|
|
490
562
|
#define PyCFunction_CheckExact PyCFunction_Check
|
|
491
563
|
#endif
|
|
492
564
|
|
|
565
|
+
#ifdef _NUITKA_EXPERIMENTAL_DUMP_C_TRACEBACKS
|
|
566
|
+
extern void INIT_C_BACKTRACES(void);
|
|
567
|
+
extern void DUMP_C_BACKTRACE(void);
|
|
493
568
|
#endif
|
|
569
|
+
|
|
570
|
+
#endif
|
|
571
|
+
|
|
572
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
573
|
+
// integrates with CPython, but also works on its own.
|
|
574
|
+
//
|
|
575
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
576
|
+
// you may not use this file except in compliance with the License.
|
|
577
|
+
// You may obtain a copy of the License at
|
|
578
|
+
//
|
|
579
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
580
|
+
//
|
|
581
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
582
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
583
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
584
|
+
// See the License for the specific language governing permissions and
|
|
585
|
+
// 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_PRINTING_H__
|
|
19
4
|
#define __NUITKA_PRINTING_H__
|
|
20
5
|
|
|
@@ -23,7 +8,9 @@
|
|
|
23
8
|
|
|
24
9
|
extern bool PRINT_NEW_LINE(void);
|
|
25
10
|
extern bool PRINT_ITEM(PyObject *object);
|
|
11
|
+
extern bool PRINT_ITEM_LINE(PyObject *object);
|
|
26
12
|
extern bool PRINT_STRING(char const *str);
|
|
13
|
+
extern bool PRINT_STRING_W(wchar_t const *str);
|
|
27
14
|
extern bool PRINT_FORMAT(char const *fmt, ...);
|
|
28
15
|
extern bool PRINT_ITEM_TO(PyObject *file, PyObject *object);
|
|
29
16
|
extern bool PRINT_NEW_LINE_TO(PyObject *file);
|
|
@@ -46,13 +33,18 @@ extern void PRINT_TRACEBACK(PyTracebackObject *traceback);
|
|
|
46
33
|
#endif
|
|
47
34
|
|
|
48
35
|
// Print the exception state, including NULL values.
|
|
49
|
-
|
|
36
|
+
extern void _PRINT_EXCEPTION3(PyObject *exception_type, PyObject *exception_value, PyTracebackObject *exception_tb);
|
|
37
|
+
extern void _PRINT_EXCEPTION1(PyObject *exception_value);
|
|
38
|
+
|
|
39
|
+
#if PYTHON_VERSION < 0x3c0
|
|
50
40
|
#define PRINT_EXCEPTION(exception_type, exception_value, exception_tb) \
|
|
51
|
-
|
|
52
|
-
|
|
41
|
+
_PRINT_EXCEPTION3(exception_type, exception_value, exception_tb)
|
|
42
|
+
#define PRINT_EXCEPTION_STATE(exception_state) \
|
|
43
|
+
_PRINT_EXCEPTION3((exception_state)->exception_type, (exception_state)->exception_value, \
|
|
44
|
+
(exception_state)->exception_tb)
|
|
53
45
|
#else
|
|
54
|
-
#define PRINT_EXCEPTION(exception_type, exception_value, exception_tb)
|
|
55
|
-
|
|
46
|
+
#define PRINT_EXCEPTION(exception_type, exception_value, exception_tb) _PRINT_EXCEPTION1(exception_value)
|
|
47
|
+
#define PRINT_EXCEPTION_STATE(exception_state) _PRINT_EXCEPTION1((exception_state)->exception_value)
|
|
56
48
|
#endif
|
|
57
49
|
|
|
58
50
|
// Print the current exception state, including NULL values.
|
|
@@ -71,3 +63,18 @@ extern bool PRINT_NULL(void);
|
|
|
71
63
|
extern bool PRINT_TYPE(PyObject *object);
|
|
72
64
|
|
|
73
65
|
#endif
|
|
66
|
+
|
|
67
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
68
|
+
// integrates with CPython, but also works on its own.
|
|
69
|
+
//
|
|
70
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
71
|
+
// you may not use this file except in compliance with the License.
|
|
72
|
+
// You may obtain a copy of the License at
|
|
73
|
+
//
|
|
74
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
75
|
+
//
|
|
76
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
77
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
78
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
79
|
+
// See the License for the specific language governing permissions and
|
|
80
|
+
// 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_PYTHON_PGO_H__
|
|
19
4
|
#define __NUITKA_PYTHON_PGO_H__
|
|
20
5
|
|
|
@@ -26,6 +11,8 @@
|
|
|
26
11
|
|
|
27
12
|
#if _NUITKA_PGO_PYTHON
|
|
28
13
|
|
|
14
|
+
#include <stdint.h>
|
|
15
|
+
|
|
29
16
|
// Initialize PGO data collection.
|
|
30
17
|
extern void PGO_Initialize(void);
|
|
31
18
|
|
|
@@ -53,4 +40,18 @@ extern void PGO_onTechnicalModule(char const *module_name);
|
|
|
53
40
|
|
|
54
41
|
#endif
|
|
55
42
|
|
|
56
|
-
#endif
|
|
43
|
+
#endif
|
|
44
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
45
|
+
// integrates with CPython, but also works on its own.
|
|
46
|
+
//
|
|
47
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
48
|
+
// you may not use this file except in compliance with the License.
|
|
49
|
+
// You may obtain a copy of the License at
|
|
50
|
+
//
|
|
51
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
52
|
+
//
|
|
53
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
54
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
55
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
56
|
+
// See the License for the specific language governing permissions and
|
|
57
|
+
// 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_SAFE_STRING_OPS_H__
|
|
19
4
|
#define __NUITKA_SAFE_STRING_OPS_H__
|
|
20
5
|
|
|
@@ -34,17 +19,34 @@ extern void appendStringSafe(char *target, char const *source, size_t buffer_siz
|
|
|
34
19
|
|
|
35
20
|
/* Safe to use functions to append a wide char string, will abort program for overflow. */
|
|
36
21
|
extern void appendCharSafeW(wchar_t *target, char c, size_t buffer_size);
|
|
22
|
+
extern void appendWCharSafeW(wchar_t *target, wchar_t c, size_t buffer_size);
|
|
37
23
|
extern void appendStringSafeW(wchar_t *target, char const *source, size_t buffer_size);
|
|
38
24
|
extern void appendWStringSafeW(wchar_t *target, wchar_t const *source, size_t buffer_size);
|
|
39
25
|
|
|
40
26
|
/* Get OS error code and print it to stderr. */
|
|
41
27
|
#ifdef _WIN32
|
|
42
28
|
typedef DWORD error_code_t;
|
|
29
|
+
#define ERROR_CODE_FORMAT_STR "%ld"
|
|
43
30
|
static inline error_code_t getCurrentErrorCode(void) { return GetLastError(); }
|
|
44
31
|
#else
|
|
45
32
|
typedef int error_code_t;
|
|
33
|
+
#define ERROR_CODE_FORMAT_STR "%d"
|
|
46
34
|
static inline error_code_t getCurrentErrorCode(void) { return errno; }
|
|
47
35
|
#endif
|
|
48
36
|
extern void printOSErrorMessage(char const *message, error_code_t error_code);
|
|
49
37
|
|
|
50
|
-
#endif
|
|
38
|
+
#endif
|
|
39
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
40
|
+
// integrates with CPython, but also works on its own.
|
|
41
|
+
//
|
|
42
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
43
|
+
// you may not use this file except in compliance with the License.
|
|
44
|
+
// You may obtain a copy of the License at
|
|
45
|
+
//
|
|
46
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
47
|
+
//
|
|
48
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
49
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
50
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
51
|
+
// See the License for the specific language governing permissions and
|
|
52
|
+
// limitations under the License.
|