Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__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.4.8.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
- Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +18 -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 +400 -0
- nuitka/MainControl.py +200 -112
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +368 -175
- nuitka/Options.py +632 -213
- nuitka/OutputDirectories.py +40 -21
- nuitka/PostProcessing.py +73 -50
- nuitka/Progress.py +58 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +106 -19
- nuitka/Serialization.py +68 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +108 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +21 -7
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +202 -140
- nuitka/build/CCompilerVersion.scons +39 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +50 -54
- nuitka/build/SconsCaching.py +93 -90
- nuitka/build/SconsCompilerSettings.py +157 -69
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +154 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +147 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +105 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +18 -18
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +18 -18
- 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 +91 -53
- 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 +29 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- 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 +593 -190
- 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 -18
- 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 +17 -17
- 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 +24 -22
- 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 +32 -20
- nuitka/build/include/nuitka/helper/iterators.h +17 -17
- 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 +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -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_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 +17 -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 +17 -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 +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +29 -17
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +14 -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 +38 -20
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +128 -46
- nuitka/build/include/nuitka/printing.h +22 -17
- 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 +32 -33
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +27 -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/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 +176 -182
- nuitka/build/static_src/CompiledCellType.c +63 -40
- nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
- nuitka/build/static_src/CompiledCoroutineType.c +196 -203
- nuitka/build/static_src/CompiledFrameType.c +287 -133
- nuitka/build/static_src/CompiledFunctionType.c +389 -95
- nuitka/build/static_src/CompiledGeneratorType.c +376 -252
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
- nuitka/build/static_src/CompiledMethodType.c +83 -71
- nuitka/build/static_src/HelpersAllocator.c +88 -19
- nuitka/build/static_src/HelpersAttributes.c +33 -54
- nuitka/build/static_src/HelpersBuiltin.c +43 -33
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +33 -30
- nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonEq.c +518 -492
- nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
- nuitka/build/static_src/HelpersComparisonGe.c +513 -497
- nuitka/build/static_src/HelpersComparisonGt.c +512 -496
- nuitka/build/static_src/HelpersComparisonLe.c +513 -497
- nuitka/build/static_src/HelpersComparisonLt.c +512 -496
- nuitka/build/static_src/HelpersComparisonNe.c +520 -492
- nuitka/build/static_src/HelpersConsole.c +96 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +51 -29
- nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
- 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 +161 -50
- nuitka/build/static_src/HelpersFiles.c +37 -17
- 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 +48 -20
- nuitka/build/static_src/HelpersImportHard.c +53 -17
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +140 -50
- 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 +173 -146
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
- nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
- nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
- nuitka/build/static_src/HelpersProfiling.c +24 -23
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +88 -20
- 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 +234 -37
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +68 -23
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +359 -263
- nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
- nuitka/build/static_src/OnefileBootstrap.c +276 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +19 -17
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +20 -17
- nuitka/code_generation/CallCodes.py +19 -17
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +48 -27
- nuitka/code_generation/CodeHelperSelection.py +19 -17
- nuitka/code_generation/CodeHelpers.py +24 -20
- nuitka/code_generation/CodeObjectCodes.py +34 -24
- nuitka/code_generation/ComparisonCodes.py +38 -20
- nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +152 -26
- nuitka/code_generation/CoroutineCodes.py +19 -17
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +25 -23
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +27 -33
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +27 -18
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +24 -20
- nuitka/code_generation/FunctionCodes.py +24 -21
- nuitka/code_generation/GeneratorCodes.py +23 -20
- nuitka/code_generation/GlobalConstants.py +43 -23
- nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
- 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 +19 -17
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +19 -17
- 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 +43 -25
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +29 -31
- nuitka/code_generation/PackageResourceCodes.py +59 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +19 -17
- nuitka/code_generation/Reports.py +19 -17
- nuitka/code_generation/ReturnCodes.py +19 -17
- 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 +19 -17
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +71 -0
- nuitka/code_generation/VariableCodes.py +26 -22
- nuitka/code_generation/VariableDeclarations.py +20 -17
- nuitka/code_generation/YieldCodes.py +22 -20
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +19 -17
- 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 +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
- nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
- nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
- nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -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 +18 -18
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
- 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 +121 -48
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
- 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/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
- 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 +44 -32
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
- 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 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
- 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 +19 -18
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +19 -18
- nuitka/distutils/DistutilCommands.py +34 -23
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +20 -17
- nuitka/finalizations/FinalizeMarkups.py +21 -41
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +48 -28
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +147 -57
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +29 -21
- nuitka/freezer/ImportDetection.py +20 -17
- nuitka/freezer/IncludedDataFiles.py +118 -47
- nuitka/freezer/IncludedEntryPoints.py +102 -38
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +105 -50
- 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 +286 -92
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +131 -47
- nuitka/importing/StandardLibrary.py +46 -28
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +19 -17
- 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 +24 -20
- 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 +68 -19
- 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 +1250 -302
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +21 -23
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +19 -17
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +29 -17
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +54 -32
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +19 -17
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +81 -35
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +21 -19
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +545 -129
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +436 -446
- 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 +45 -43
- nuitka/nodes/NodeMakingHelpers.py +21 -19
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +20 -17
- nuitka/nodes/OsSysNodes.py +66 -18
- nuitka/nodes/OutlineNodes.py +22 -20
- 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 -77
- nuitka/nodes/StatementNodes.py +19 -17
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +26 -24
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +40 -17
- 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 +145 -39
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +40 -17
- nuitka/nodes/shapes/StandardShapes.py +27 -20
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +19 -17
- 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 +610 -109
- nuitka/plugins/Plugins.py +241 -58
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
- 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 +407 -46
- nuitka/plugins/standard/KivyPlugin.py +30 -17
- nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
- 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/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +74 -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 +103 -53
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +94 -30
- 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 +3449 -1299
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
- nuitka/reports/CompilationReportReader.py +67 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +352 -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 +30 -20
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +67 -22
- nuitka/specs/ParameterSpecs.py +56 -41
- 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 +19 -21
- 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 +93 -71
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +31 -27
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +106 -52
- 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 +36 -29
- 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 +22 -25
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
- nuitka/tools/watch/AutoStage.py +144 -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 +176 -147
- nuitka/tree/ComplexCallHelperFunctions.py +80 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +20 -17
- nuitka/tree/ReformulationAssignmentStatements.py +92 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +146 -98
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +40 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +58 -54
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +244 -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 +21 -19
- 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 +84 -19
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +73 -34
- nuitka/utils/FileOperations.py +318 -74
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +118 -24
- nuitka/utils/InstalledPythons.py +80 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +19 -17
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- 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 +115 -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.4.8.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.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
|
/** Compiled methods.
|
|
19
4
|
*
|
|
20
5
|
* It strives to be full replacement for normal method objects, but
|
|
@@ -27,6 +12,7 @@
|
|
|
27
12
|
#ifdef __IDE_ONLY__
|
|
28
13
|
#include "nuitka/freelists.h"
|
|
29
14
|
#include "nuitka/prelude.h"
|
|
15
|
+
#include <structmember.h>
|
|
30
16
|
#endif
|
|
31
17
|
|
|
32
18
|
static PyObject *Nuitka_Method_get__doc__(struct Nuitka_MethodObject *method, void *closure) {
|
|
@@ -40,8 +26,8 @@ static PyObject *Nuitka_Method_get__doc__(struct Nuitka_MethodObject *method, vo
|
|
|
40
26
|
return result;
|
|
41
27
|
}
|
|
42
28
|
|
|
43
|
-
static PyGetSetDef
|
|
44
|
-
|
|
29
|
+
static PyGetSetDef Nuitka_Method_tp_getset[] = {{(char *)"__doc__", (getter)Nuitka_Method_get__doc__, NULL, NULL},
|
|
30
|
+
{NULL}};
|
|
45
31
|
|
|
46
32
|
#define OFF(x) offsetof(struct Nuitka_MethodObject, x)
|
|
47
33
|
|
|
@@ -58,20 +44,19 @@ static PyMemberDef Nuitka_Method_members[] = {
|
|
|
58
44
|
{NULL}};
|
|
59
45
|
|
|
60
46
|
static PyObject *Nuitka_Method_reduce(struct Nuitka_MethodObject *method) {
|
|
61
|
-
#if PYTHON_VERSION < 0x300
|
|
62
47
|
PyThreadState *tstate = PyThreadState_GET();
|
|
63
48
|
|
|
49
|
+
#if PYTHON_VERSION < 0x300
|
|
50
|
+
// spell-checker: ignore instancemethod
|
|
64
51
|
SET_CURRENT_EXCEPTION_TYPE0_STR(tstate, PyExc_TypeError, "can't pickle instancemethod objects");
|
|
65
52
|
return NULL;
|
|
66
53
|
#elif PYTHON_VERSION < 0x340
|
|
67
|
-
PyThreadState *tstate = PyThreadState_GET();
|
|
68
|
-
|
|
69
54
|
SET_CURRENT_EXCEPTION_TYPE0_STR(tstate, PyExc_TypeError, "can't pickle method objects");
|
|
70
55
|
return NULL;
|
|
71
56
|
#else
|
|
72
|
-
PyObject *result = MAKE_TUPLE_EMPTY(2);
|
|
57
|
+
PyObject *result = MAKE_TUPLE_EMPTY(tstate, 2);
|
|
73
58
|
PyTuple_SET_ITEM0(result, 0, LOOKUP_BUILTIN(const_str_plain_getattr));
|
|
74
|
-
PyObject *arg_tuple = MAKE_TUPLE2(method->m_object, method->m_function->m_name);
|
|
59
|
+
PyObject *arg_tuple = MAKE_TUPLE2(tstate, method->m_object, method->m_function->m_name);
|
|
75
60
|
PyTuple_SET_ITEM(result, 1, arg_tuple);
|
|
76
61
|
|
|
77
62
|
CHECK_OBJECT_DEEP(result);
|
|
@@ -104,13 +89,13 @@ static PyObject *Nuitka_Method_reduce_ex(struct Nuitka_MethodObject *method, PyO
|
|
|
104
89
|
return NULL;
|
|
105
90
|
}
|
|
106
91
|
|
|
107
|
-
PyObject *result = MAKE_TUPLE_EMPTY(5);
|
|
92
|
+
PyObject *result = MAKE_TUPLE_EMPTY(tstate, 5);
|
|
108
93
|
PyTuple_SET_ITEM(result, 0, newobj_func);
|
|
109
|
-
PyObject *type_tuple = MAKE_TUPLE1((PyObject *)&Nuitka_Method_Type);
|
|
94
|
+
PyObject *type_tuple = MAKE_TUPLE1(tstate, (PyObject *)&Nuitka_Method_Type);
|
|
110
95
|
PyTuple_SET_ITEM(result, 1, type_tuple);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
96
|
+
PyTuple_SET_ITEM_IMMORTAL(result, 2, Py_None);
|
|
97
|
+
PyTuple_SET_ITEM_IMMORTAL(result, 3, Py_None);
|
|
98
|
+
PyTuple_SET_ITEM_IMMORTAL(result, 4, Py_None);
|
|
114
99
|
|
|
115
100
|
CHECK_OBJECT_DEEP(result);
|
|
116
101
|
|
|
@@ -258,16 +243,17 @@ static PyObject *Nuitka_Method_tp_call(struct Nuitka_MethodObject *method, PyObj
|
|
|
258
243
|
}
|
|
259
244
|
}
|
|
260
245
|
|
|
261
|
-
static PyObject *Nuitka_Method_tp_descr_get(struct Nuitka_MethodObject *method, PyObject *object,
|
|
246
|
+
static PyObject *Nuitka_Method_tp_descr_get(struct Nuitka_MethodObject *method, PyObject *object,
|
|
247
|
+
PyObject *class_object) {
|
|
262
248
|
// Don't rebind already bound methods.
|
|
263
249
|
if (method->m_object != NULL) {
|
|
264
250
|
Py_INCREF(method);
|
|
265
251
|
return (PyObject *)method;
|
|
266
252
|
}
|
|
267
253
|
|
|
268
|
-
if (method->m_class != NULL &&
|
|
254
|
+
if (method->m_class != NULL && class_object != NULL) {
|
|
269
255
|
// Quick subclass test, bound methods remain the same if the class is a sub class
|
|
270
|
-
int result = PyObject_IsSubclass(
|
|
256
|
+
int result = PyObject_IsSubclass(class_object, method->m_class);
|
|
271
257
|
|
|
272
258
|
if (unlikely(result < 0)) {
|
|
273
259
|
return NULL;
|
|
@@ -277,7 +263,7 @@ static PyObject *Nuitka_Method_tp_descr_get(struct Nuitka_MethodObject *method,
|
|
|
277
263
|
}
|
|
278
264
|
}
|
|
279
265
|
|
|
280
|
-
return Nuitka_Method_New(method->m_function, object,
|
|
266
|
+
return Nuitka_Method_New(method->m_function, object, class_object);
|
|
281
267
|
}
|
|
282
268
|
|
|
283
269
|
static PyObject *Nuitka_Method_tp_getattro(struct Nuitka_MethodObject *method, PyObject *name) {
|
|
@@ -292,6 +278,8 @@ static PyObject *Nuitka_Method_tp_getattro(struct Nuitka_MethodObject *method, P
|
|
|
292
278
|
}
|
|
293
279
|
}
|
|
294
280
|
|
|
281
|
+
// Delegate all other attributes to the underlying function.
|
|
282
|
+
// TODO: Could be a bit more direct here, and know this is generic lookup.
|
|
295
283
|
return PyObject_GetAttr((PyObject *)method->m_function, name);
|
|
296
284
|
}
|
|
297
285
|
|
|
@@ -334,13 +322,13 @@ static PyObject *Nuitka_Method_tp_repr(struct Nuitka_MethodObject *method) {
|
|
|
334
322
|
#endif
|
|
335
323
|
|
|
336
324
|
#if PYTHON_VERSION < 0x350
|
|
337
|
-
PyObject *result =
|
|
338
|
-
"<bound compiled_method %s.%s of %s>", GET_CLASS_NAME(method->m_class),
|
|
339
|
-
|
|
325
|
+
PyObject *result =
|
|
326
|
+
Nuitka_String_FromFormat("<bound compiled_method %s.%s of %s>", GET_CLASS_NAME(method->m_class),
|
|
327
|
+
Nuitka_String_AsString_Unchecked(method->m_function->m_name),
|
|
328
|
+
Nuitka_String_AsString_Unchecked(object_repr));
|
|
340
329
|
#else
|
|
341
|
-
PyObject *result =
|
|
342
|
-
|
|
343
|
-
Nuitka_String_AsString_Unchecked(object_repr));
|
|
330
|
+
PyObject *result =
|
|
331
|
+
PyUnicode_FromFormat("<bound compiled_method %U of %U>", method->m_function->m_qualname, object_repr);
|
|
344
332
|
#endif
|
|
345
333
|
|
|
346
334
|
Py_DECREF(object_repr);
|
|
@@ -410,7 +398,7 @@ static PyObject *Nuitka_Method_tp_richcompare(struct Nuitka_MethodObject *a, str
|
|
|
410
398
|
result = BOOL_FROM(!b_res);
|
|
411
399
|
}
|
|
412
400
|
|
|
413
|
-
|
|
401
|
+
Py_INCREF_IMMORTAL(result);
|
|
414
402
|
return result;
|
|
415
403
|
}
|
|
416
404
|
|
|
@@ -428,10 +416,9 @@ static void Nuitka_Method_tp_dealloc(struct Nuitka_MethodObject *method) {
|
|
|
428
416
|
// Save the current exception, if any, we must to not corrupt it.
|
|
429
417
|
PyThreadState *tstate = PyThreadState_GET();
|
|
430
418
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
RESTORE_ERROR_OCCURRED(tstate, save_exception_type, save_exception_value, save_exception_tb);
|
|
419
|
+
struct Nuitka_ExceptionPreservationItem saved_exception_state1;
|
|
420
|
+
FETCH_ERROR_OCCURRED_STATE(tstate, &saved_exception_state1);
|
|
421
|
+
RESTORE_ERROR_OCCURRED_STATE(tstate, &saved_exception_state1);
|
|
435
422
|
#endif
|
|
436
423
|
|
|
437
424
|
Nuitka_GC_UnTrack(method);
|
|
@@ -449,42 +436,57 @@ static void Nuitka_Method_tp_dealloc(struct Nuitka_MethodObject *method) {
|
|
|
449
436
|
releaseToFreeList(free_list_methods, method, MAX_METHOD_FREE_LIST_COUNT);
|
|
450
437
|
|
|
451
438
|
#ifndef __NUITKA_NO_ASSERT__
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
439
|
+
struct Nuitka_ExceptionPreservationItem saved_exception_state2;
|
|
440
|
+
FETCH_ERROR_OCCURRED_STATE(tstate, &saved_exception_state2);
|
|
441
|
+
RESTORE_ERROR_OCCURRED_STATE(tstate, &saved_exception_state2);
|
|
442
|
+
|
|
443
|
+
ASSERT_SAME_EXCEPTION_STATE(&saved_exception_state1, &saved_exception_state2);
|
|
455
444
|
#endif
|
|
456
445
|
}
|
|
457
446
|
|
|
458
447
|
static PyObject *Nuitka_Method_tp_new(PyTypeObject *type, PyObject *args, PyObject *kw) {
|
|
459
448
|
PyObject *func;
|
|
460
449
|
PyObject *self;
|
|
461
|
-
PyObject *
|
|
450
|
+
PyObject *class_object = NULL;
|
|
462
451
|
|
|
463
452
|
if (!_PyArg_NoKeywords("compiled_method", kw)) {
|
|
464
453
|
return NULL;
|
|
465
|
-
}
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
if (!PyArg_UnpackTuple(args, "compiled_method", 2, 3, &func, &self, &class_object)) {
|
|
466
457
|
return NULL;
|
|
467
|
-
}
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
CHECK_OBJECT(func);
|
|
461
|
+
|
|
462
|
+
if (!PyCallable_Check(func)) {
|
|
468
463
|
PyThreadState *tstate = PyThreadState_GET();
|
|
469
464
|
|
|
470
465
|
SET_CURRENT_EXCEPTION_TYPE0_STR(tstate, PyExc_TypeError, "first argument must be callable");
|
|
471
466
|
return NULL;
|
|
472
|
-
}
|
|
473
|
-
if (self == Py_None) {
|
|
474
|
-
self = NULL;
|
|
475
|
-
}
|
|
467
|
+
}
|
|
476
468
|
|
|
477
|
-
|
|
478
|
-
|
|
469
|
+
if (self == Py_None) {
|
|
470
|
+
self = NULL;
|
|
471
|
+
}
|
|
479
472
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
473
|
+
if (self == NULL && class_object == NULL) {
|
|
474
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
475
|
+
|
|
476
|
+
SET_CURRENT_EXCEPTION_TYPE0_STR(tstate, PyExc_TypeError, "unbound methods must have non-NULL im_class");
|
|
477
|
+
return NULL;
|
|
483
478
|
}
|
|
484
479
|
|
|
485
|
-
|
|
480
|
+
if (Nuitka_Method_Check(func)) {
|
|
481
|
+
return Nuitka_Method_New(((struct Nuitka_MethodObject *)func)->m_function, self, class_object);
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
if (Nuitka_Function_Check(func) == false) {
|
|
485
|
+
SET_CURRENT_EXCEPTION_TYPE_COMPLAINT_NICE("Cannot create compiled_ method from type '%s'", func);
|
|
486
|
+
return NULL;
|
|
487
|
+
}
|
|
486
488
|
|
|
487
|
-
return Nuitka_Method_New((struct Nuitka_FunctionObject *)func, self,
|
|
489
|
+
return Nuitka_Method_New((struct Nuitka_FunctionObject *)func, self, class_object);
|
|
488
490
|
}
|
|
489
491
|
|
|
490
492
|
PyTypeObject Nuitka_Method_Type = {
|
|
@@ -531,7 +533,7 @@ PyTypeObject Nuitka_Method_Type = {
|
|
|
531
533
|
0, // tp_iternext
|
|
532
534
|
Nuitka_Method_methods, // tp_methods
|
|
533
535
|
Nuitka_Method_members, // tp_members
|
|
534
|
-
|
|
536
|
+
Nuitka_Method_tp_getset, // tp_getset
|
|
535
537
|
0, // tp_base
|
|
536
538
|
0, // tp_dict
|
|
537
539
|
(descrgetfunc)Nuitka_Method_tp_descr_get, // tp_descr_get
|
|
@@ -549,7 +551,7 @@ PyTypeObject Nuitka_Method_Type = {
|
|
|
549
551
|
0, // tp_weaklist
|
|
550
552
|
0, // tp_del
|
|
551
553
|
0 // tp_version_tag
|
|
552
|
-
#if PYTHON_VERSION >=
|
|
554
|
+
#if PYTHON_VERSION >= 0x300
|
|
553
555
|
,
|
|
554
556
|
0 /* tp_finalizer */
|
|
555
557
|
#endif
|
|
@@ -557,14 +559,9 @@ PyTypeObject Nuitka_Method_Type = {
|
|
|
557
559
|
|
|
558
560
|
void _initCompiledMethodType(void) {
|
|
559
561
|
Nuitka_PyType_Ready(&Nuitka_Method_Type, &PyMethod_Type, false, true, false, false, false);
|
|
560
|
-
|
|
561
|
-
#ifdef _NUITKA_PLUGIN_DILL_ENABLED
|
|
562
|
-
// TODO: Move this to a __nuitka__ module maybe
|
|
563
|
-
PyObject_SetAttrString((PyObject *)builtin_module, "compiled_method", (PyObject *)&Nuitka_Method_Type);
|
|
564
|
-
#endif
|
|
565
562
|
}
|
|
566
563
|
|
|
567
|
-
PyObject *Nuitka_Method_New(struct Nuitka_FunctionObject *function, PyObject *object, PyObject *
|
|
564
|
+
PyObject *Nuitka_Method_New(struct Nuitka_FunctionObject *function, PyObject *object, PyObject *class_object) {
|
|
568
565
|
struct Nuitka_MethodObject *result;
|
|
569
566
|
|
|
570
567
|
CHECK_OBJECT((PyObject *)function);
|
|
@@ -584,8 +581,8 @@ PyObject *Nuitka_Method_New(struct Nuitka_FunctionObject *function, PyObject *ob
|
|
|
584
581
|
|
|
585
582
|
result->m_object = object;
|
|
586
583
|
Py_XINCREF(object);
|
|
587
|
-
result->m_class =
|
|
588
|
-
Py_XINCREF(
|
|
584
|
+
result->m_class = class_object;
|
|
585
|
+
Py_XINCREF(class_object);
|
|
589
586
|
|
|
590
587
|
result->m_weakrefs = NULL;
|
|
591
588
|
|
|
@@ -596,3 +593,18 @@ PyObject *Nuitka_Method_New(struct Nuitka_FunctionObject *function, PyObject *ob
|
|
|
596
593
|
Nuitka_GC_Track(result);
|
|
597
594
|
return (PyObject *)result;
|
|
598
595
|
}
|
|
596
|
+
|
|
597
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
598
|
+
// integrates with CPython, but also works on its own.
|
|
599
|
+
//
|
|
600
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
601
|
+
// you may not use this file except in compliance with the License.
|
|
602
|
+
// You may obtain a copy of the License at
|
|
603
|
+
//
|
|
604
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
605
|
+
//
|
|
606
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
607
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
608
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
609
|
+
// See the License for the specific language governing permissions and
|
|
610
|
+
// 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
|
// For interacting with the Python GC unexposed details
|
|
19
4
|
|
|
20
5
|
// This file is included from another C file, help IDEs to still parse it on
|
|
@@ -23,8 +8,44 @@
|
|
|
23
8
|
#include "nuitka/prelude.h"
|
|
24
9
|
#endif
|
|
25
10
|
|
|
11
|
+
void *(*python_obj_malloc)(void *ctx, size_t size) = NULL;
|
|
12
|
+
void *(*python_mem_malloc)(void *ctx, size_t size) = NULL;
|
|
13
|
+
void *(*python_mem_calloc)(void *ctx, size_t nelem, size_t elsize) = NULL;
|
|
14
|
+
|
|
15
|
+
#if defined(Py_DEBUG)
|
|
16
|
+
void *python_obj_ctx = NULL;
|
|
17
|
+
void *python_mem_ctx = NULL;
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
void initNuitkaAllocators(void) {
|
|
21
|
+
// PyMem_SetupDebugHooks();
|
|
22
|
+
|
|
23
|
+
PyMemAllocatorEx allocators;
|
|
24
|
+
|
|
25
|
+
PyMem_GetAllocator(PYMEM_DOMAIN_OBJ, &allocators);
|
|
26
|
+
|
|
27
|
+
#if defined(Py_DEBUG)
|
|
28
|
+
python_obj_ctx = allocators.ctx;
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
python_obj_malloc = allocators.malloc;
|
|
32
|
+
|
|
33
|
+
PyMem_GetAllocator(PYMEM_DOMAIN_MEM, &allocators);
|
|
34
|
+
|
|
35
|
+
#if defined(Py_DEBUG)
|
|
36
|
+
python_mem_ctx = allocators.ctx;
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
python_mem_malloc = allocators.malloc;
|
|
40
|
+
python_mem_calloc = allocators.calloc;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
#if PYTHON_VERSION >= 0x3b0
|
|
44
|
+
|
|
26
45
|
typedef struct _gc_runtime_state GCState;
|
|
27
46
|
|
|
47
|
+
#if PYTHON_VERSION < 0x3d0
|
|
48
|
+
|
|
28
49
|
#define AS_GC(o) ((PyGC_Head *)(((char *)(o)) - sizeof(PyGC_Head)))
|
|
29
50
|
#define FROM_GC(g) ((PyObject *)(((char *)(g)) + sizeof(PyGC_Head)))
|
|
30
51
|
|
|
@@ -61,8 +82,6 @@ static void Nuitka_invoke_gc_callback(PyThreadState *tstate, const char *phase,
|
|
|
61
82
|
PyObject *info = NULL;
|
|
62
83
|
|
|
63
84
|
if (PyList_GET_SIZE(gcstate->callbacks) != 0) {
|
|
64
|
-
assert(false);
|
|
65
|
-
|
|
66
85
|
info =
|
|
67
86
|
Py_BuildValue("{sisnsn}", "generation", generation, "collected", collected, "uncollectable", uncollectable);
|
|
68
87
|
|
|
@@ -611,8 +630,19 @@ static Py_ssize_t Nuitka_gc_collect_generations(PyThreadState *tstate) {
|
|
|
611
630
|
return n;
|
|
612
631
|
}
|
|
613
632
|
|
|
633
|
+
#else
|
|
634
|
+
|
|
635
|
+
static void Nuitka_Py_ScheduleGC(PyThreadState *tstate) {
|
|
636
|
+
if (!_Py_eval_breaker_bit_is_set(tstate, _PY_GC_SCHEDULED_BIT)) {
|
|
637
|
+
_Py_set_eval_breaker_bit(tstate, _PY_GC_SCHEDULED_BIT);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
#endif
|
|
642
|
+
|
|
614
643
|
// This is called during object creation and might trigger garbage collection
|
|
615
644
|
void Nuitka_PyObject_GC_Link(PyObject *op) {
|
|
645
|
+
#if PYTHON_VERSION < 0x3d0
|
|
616
646
|
PyGC_Head *g = AS_GC(op);
|
|
617
647
|
|
|
618
648
|
PyThreadState *tstate = _PyThreadState_GET();
|
|
@@ -629,4 +659,43 @@ void Nuitka_PyObject_GC_Link(PyObject *op) {
|
|
|
629
659
|
Nuitka_gc_collect_generations(tstate);
|
|
630
660
|
gcstate->collecting = 0;
|
|
631
661
|
}
|
|
662
|
+
#else
|
|
663
|
+
PyGC_Head *gc = _Py_AS_GC(op);
|
|
664
|
+
|
|
665
|
+
// gc must be correctly aligned
|
|
666
|
+
_PyObject_ASSERT(op, ((uintptr_t)gc & (sizeof(uintptr_t) - 1)) == 0);
|
|
667
|
+
|
|
668
|
+
// TODO: Have this passed.
|
|
669
|
+
|
|
670
|
+
PyThreadState *tstate = _PyThreadState_GET();
|
|
671
|
+
GCState *gcstate = &tstate->interp->gc;
|
|
672
|
+
|
|
673
|
+
gc->_gc_next = 0;
|
|
674
|
+
gc->_gc_prev = 0;
|
|
675
|
+
|
|
676
|
+
gcstate->young.count++;
|
|
677
|
+
gcstate->heap_size++;
|
|
678
|
+
|
|
679
|
+
if (gcstate->young.count > gcstate->young.threshold && gcstate->enabled && gcstate->young.threshold &&
|
|
680
|
+
!_Py_atomic_load_int_relaxed(&gcstate->collecting) && !_PyErr_Occurred(tstate)) {
|
|
681
|
+
Nuitka_Py_ScheduleGC(tstate);
|
|
682
|
+
}
|
|
683
|
+
#endif
|
|
632
684
|
}
|
|
685
|
+
|
|
686
|
+
#endif
|
|
687
|
+
|
|
688
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
689
|
+
// integrates with CPython, but also works on its own.
|
|
690
|
+
//
|
|
691
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
692
|
+
// you may not use this file except in compliance with the License.
|
|
693
|
+
// You may obtain a copy of the License at
|
|
694
|
+
//
|
|
695
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
696
|
+
//
|
|
697
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
698
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
699
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
700
|
+
// See the License for the specific language governing permissions and
|
|
701
|
+
// limitations under the License.
|
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
//
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
|
-
// integrates with CPython, but also works on its own.
|
|
5
|
-
//
|
|
6
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
// you may not use this file except in compliance with the License.
|
|
8
|
-
// You may obtain a copy of the License at
|
|
9
|
-
//
|
|
10
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
//
|
|
12
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
// See the License for the specific language governing permissions and
|
|
16
|
-
// limitations under the License.
|
|
17
|
-
//
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
18
2
|
|
|
19
3
|
// This file is included from another C file, help IDEs to still parse it on
|
|
20
4
|
// its own.
|
|
@@ -22,25 +6,23 @@
|
|
|
22
6
|
#include "nuitka/prelude.h"
|
|
23
7
|
#endif
|
|
24
8
|
|
|
25
|
-
// spell-checker: ignore klass
|
|
26
|
-
|
|
27
9
|
#if PYTHON_VERSION < 0x300
|
|
28
|
-
PyObject *FIND_ATTRIBUTE_IN_CLASS(PyClassObject *
|
|
29
|
-
CHECK_OBJECT(
|
|
10
|
+
PyObject *FIND_ATTRIBUTE_IN_CLASS(PyClassObject *class_object, PyObject *attr_name) {
|
|
11
|
+
CHECK_OBJECT(class_object);
|
|
30
12
|
CHECK_OBJECT(attr_name);
|
|
31
13
|
|
|
32
|
-
assert(PyClass_Check(
|
|
14
|
+
assert(PyClass_Check(class_object));
|
|
33
15
|
assert(PyString_CheckExact(attr_name));
|
|
34
16
|
|
|
35
|
-
PyObject *result = GET_STRING_DICT_VALUE((PyDictObject *)
|
|
17
|
+
PyObject *result = GET_STRING_DICT_VALUE((PyDictObject *)class_object->cl_dict, (PyStringObject *)attr_name);
|
|
36
18
|
|
|
37
19
|
if (result == NULL) {
|
|
38
|
-
assert(PyTuple_Check(
|
|
20
|
+
assert(PyTuple_Check(class_object->cl_bases));
|
|
39
21
|
|
|
40
|
-
Py_ssize_t base_count = PyTuple_GET_SIZE(
|
|
22
|
+
Py_ssize_t base_count = PyTuple_GET_SIZE(class_object->cl_bases);
|
|
41
23
|
|
|
42
24
|
for (Py_ssize_t i = 0; i < base_count; i++) {
|
|
43
|
-
result = FIND_ATTRIBUTE_IN_CLASS((PyClassObject *)PyTuple_GET_ITEM(
|
|
25
|
+
result = FIND_ATTRIBUTE_IN_CLASS((PyClassObject *)PyTuple_GET_ITEM(class_object->cl_bases, i), attr_name);
|
|
44
26
|
|
|
45
27
|
if (result != NULL) {
|
|
46
28
|
break;
|
|
@@ -140,7 +122,7 @@ PyObject *LOOKUP_ATTRIBUTE(PyThreadState *tstate, PyObject *source, PyObject *at
|
|
|
140
122
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
141
123
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
142
124
|
|
|
143
|
-
if (func != NULL &&
|
|
125
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
144
126
|
PyObject *result = func(descr, source, (PyObject *)type);
|
|
145
127
|
Py_DECREF(descr);
|
|
146
128
|
|
|
@@ -292,7 +274,7 @@ PyObject *LOOKUP_ATTRIBUTE_DICT_SLOT(PyThreadState *tstate, PyObject *source) {
|
|
|
292
274
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
293
275
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
294
276
|
|
|
295
|
-
if (func != NULL &&
|
|
277
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
296
278
|
PyObject *result = func(descr, source, (PyObject *)type);
|
|
297
279
|
Py_DECREF(descr);
|
|
298
280
|
|
|
@@ -409,7 +391,7 @@ PyObject *LOOKUP_ATTRIBUTE_CLASS_SLOT(PyThreadState *tstate, PyObject *source) {
|
|
|
409
391
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
410
392
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
411
393
|
|
|
412
|
-
if (func != NULL &&
|
|
394
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
413
395
|
PyObject *result = func(descr, source, (PyObject *)type);
|
|
414
396
|
Py_DECREF(descr);
|
|
415
397
|
|
|
@@ -574,7 +556,7 @@ bool HAS_ATTR_BOOL(PyThreadState *tstate, PyObject *source, PyObject *attr_name)
|
|
|
574
556
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
575
557
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
576
558
|
|
|
577
|
-
if (func != NULL &&
|
|
559
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
578
560
|
PyObject *result = func(descr, source, (PyObject *)type);
|
|
579
561
|
Py_DECREF(descr);
|
|
580
562
|
|
|
@@ -743,7 +725,7 @@ int HAS_ATTR_BOOL2(PyThreadState *tstate, PyObject *source, PyObject *attr_name)
|
|
|
743
725
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
744
726
|
func = Py_TYPE(descr)->tp_descr_get;
|
|
745
727
|
|
|
746
|
-
if (func != NULL &&
|
|
728
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
747
729
|
PyObject *result = func(descr, source, (PyObject *)type);
|
|
748
730
|
Py_DECREF(descr);
|
|
749
731
|
|
|
@@ -945,7 +927,7 @@ static bool SET_ATTRIBUTE_GENERIC(PyThreadState *tstate, PyTypeObject *type, PyO
|
|
|
945
927
|
if (NuitkaType_HasFeatureClass(Py_TYPE(descr))) {
|
|
946
928
|
descrsetfunc func = Py_TYPE(descr)->tp_descr_set;
|
|
947
929
|
|
|
948
|
-
if (func != NULL &&
|
|
930
|
+
if (func != NULL && Nuitka_Descr_IsData(descr)) {
|
|
949
931
|
int res = func(descr, target, value);
|
|
950
932
|
Py_DECREF(descr);
|
|
951
933
|
|
|
@@ -991,7 +973,7 @@ static bool SET_ATTRIBUTE_GENERIC(PyThreadState *tstate, PyTypeObject *type, PyO
|
|
|
991
973
|
dict = *dict_pointer;
|
|
992
974
|
|
|
993
975
|
if (dict == NULL) {
|
|
994
|
-
dict = MAKE_DICT_EMPTY();
|
|
976
|
+
dict = MAKE_DICT_EMPTY(tstate);
|
|
995
977
|
*dict_pointer = dict;
|
|
996
978
|
}
|
|
997
979
|
}
|
|
@@ -1208,7 +1190,7 @@ PyObject *LOOKUP_SPECIAL(PyThreadState *tstate, PyObject *source, PyObject *attr
|
|
|
1208
1190
|
}
|
|
1209
1191
|
}
|
|
1210
1192
|
|
|
1211
|
-
#if PYTHON_VERSION <
|
|
1193
|
+
#if PYTHON_VERSION < 0x3b0
|
|
1212
1194
|
SET_CURRENT_EXCEPTION_TYPE0_VALUE0(tstate, PyExc_AttributeError, attr_name);
|
|
1213
1195
|
#else
|
|
1214
1196
|
// TODO: Maybe we should have dedicated variations with the 4 hard coded
|
|
@@ -1244,19 +1226,7 @@ PyObject *GET_MODULE_VARIABLE_VALUE_FALLBACK(PyThreadState *tstate, PyObject *va
|
|
|
1244
1226
|
PyObject *result = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)variable_name);
|
|
1245
1227
|
|
|
1246
1228
|
if (unlikely(result == NULL)) {
|
|
1247
|
-
|
|
1248
|
-
PyObject *exception_value;
|
|
1249
|
-
|
|
1250
|
-
// TODO: Do this in one go, once FORMAT_NAME_ERROR becomes unused in code generation.
|
|
1251
|
-
FORMAT_NAME_ERROR(&exception_type, &exception_value, variable_name);
|
|
1252
|
-
|
|
1253
|
-
#if PYTHON_VERSION >= 0x300
|
|
1254
|
-
// TODO: FORMAT_NAME_ERROR for Python3 should already produce this normalized and chained.
|
|
1255
|
-
NORMALIZE_EXCEPTION(tstate, &exception_type, &exception_value, NULL);
|
|
1256
|
-
CHAIN_EXCEPTION(tstate, exception_value);
|
|
1257
|
-
#endif
|
|
1258
|
-
|
|
1259
|
-
RESTORE_ERROR_OCCURRED(tstate, exception_type, exception_value, NULL);
|
|
1229
|
+
SET_CURRENT_EXCEPTION_NAME_ERROR(tstate, variable_name);
|
|
1260
1230
|
}
|
|
1261
1231
|
|
|
1262
1232
|
return result;
|
|
@@ -1267,14 +1237,23 @@ PyObject *GET_MODULE_VARIABLE_VALUE_FALLBACK_IN_FUNCTION(PyThreadState *tstate,
|
|
|
1267
1237
|
PyObject *result = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)variable_name);
|
|
1268
1238
|
|
|
1269
1239
|
if (unlikely(result == NULL)) {
|
|
1270
|
-
|
|
1271
|
-
PyObject *exception_value;
|
|
1272
|
-
|
|
1273
|
-
FORMAT_GLOBAL_NAME_ERROR(&exception_type, &exception_value, variable_name);
|
|
1274
|
-
|
|
1275
|
-
RESTORE_ERROR_OCCURRED(tstate, exception_type, exception_value, NULL);
|
|
1240
|
+
SET_CURRENT_EXCEPTION_GLOBAL_NAME_ERROR(tstate, variable_name);
|
|
1276
1241
|
}
|
|
1277
1242
|
|
|
1278
1243
|
return result;
|
|
1279
1244
|
}
|
|
1280
|
-
#endif
|
|
1245
|
+
#endif
|
|
1246
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1247
|
+
// integrates with CPython, but also works on its own.
|
|
1248
|
+
//
|
|
1249
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
1250
|
+
// you may not use this file except in compliance with the License.
|
|
1251
|
+
// You may obtain a copy of the License at
|
|
1252
|
+
//
|
|
1253
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
1254
|
+
//
|
|
1255
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
1256
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
1257
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1258
|
+
// See the License for the specific language governing permissions and
|
|
1259
|
+
// limitations under the License.
|