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
|
/* WARNING, this code is GENERATED. Modify the template HelperOperationInplace.c.j2 instead! */
|
|
19
4
|
|
|
20
5
|
/* This file is included from another C file, help IDEs to still parse it on its own. */
|
|
@@ -131,7 +116,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_INT(PyObject **op
|
|
|
131
116
|
goto exit_inplace_result_object;
|
|
132
117
|
}
|
|
133
118
|
|
|
134
|
-
|
|
119
|
+
Py_DECREF_IMMORTAL(x);
|
|
135
120
|
}
|
|
136
121
|
|
|
137
122
|
{
|
|
@@ -157,7 +142,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_INT(PyObject **op
|
|
|
157
142
|
goto exit_inplace_result_object;
|
|
158
143
|
}
|
|
159
144
|
|
|
160
|
-
|
|
145
|
+
Py_DECREF_IMMORTAL(x);
|
|
161
146
|
}
|
|
162
147
|
|
|
163
148
|
if (slot2 != NULL) {
|
|
@@ -168,7 +153,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_INT(PyObject **op
|
|
|
168
153
|
goto exit_inplace_result_object;
|
|
169
154
|
}
|
|
170
155
|
|
|
171
|
-
|
|
156
|
+
Py_DECREF_IMMORTAL(x);
|
|
172
157
|
}
|
|
173
158
|
|
|
174
159
|
#if PYTHON_VERSION < 0x300
|
|
@@ -260,7 +245,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_INT(PyObject **op
|
|
|
260
245
|
}
|
|
261
246
|
}
|
|
262
247
|
|
|
263
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
248
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and 'int'", type1->tp_name);
|
|
264
249
|
goto exit_inplace_exception;
|
|
265
250
|
}
|
|
266
251
|
|
|
@@ -407,7 +392,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_INT_OBJECT(PyObject **op
|
|
|
407
392
|
goto exit_inplace_result_object;
|
|
408
393
|
}
|
|
409
394
|
|
|
410
|
-
|
|
395
|
+
Py_DECREF_IMMORTAL(x);
|
|
411
396
|
slot2 = NULL;
|
|
412
397
|
}
|
|
413
398
|
}
|
|
@@ -419,7 +404,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_INT_OBJECT(PyObject **op
|
|
|
419
404
|
goto exit_inplace_result_object;
|
|
420
405
|
}
|
|
421
406
|
|
|
422
|
-
|
|
407
|
+
Py_DECREF_IMMORTAL(x);
|
|
423
408
|
}
|
|
424
409
|
|
|
425
410
|
if (slot2 != NULL) {
|
|
@@ -430,7 +415,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_INT_OBJECT(PyObject **op
|
|
|
430
415
|
goto exit_inplace_result_object;
|
|
431
416
|
}
|
|
432
417
|
|
|
433
|
-
|
|
418
|
+
Py_DECREF_IMMORTAL(x);
|
|
434
419
|
}
|
|
435
420
|
|
|
436
421
|
#if PYTHON_VERSION < 0x300
|
|
@@ -512,7 +497,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_INT_OBJECT(PyObject **op
|
|
|
512
497
|
// No inplace sequence repeat slot sq_inplace_concat available for this type.
|
|
513
498
|
}
|
|
514
499
|
|
|
515
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
500
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'int' and '%s'", type2->tp_name);
|
|
516
501
|
goto exit_inplace_exception;
|
|
517
502
|
}
|
|
518
503
|
|
|
@@ -642,11 +627,11 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_LONG(PyObject **operand1, PyObjec
|
|
|
642
627
|
|
|
643
628
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
644
629
|
|
|
645
|
-
if (
|
|
646
|
-
long r = MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object);
|
|
630
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
631
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object));
|
|
647
632
|
|
|
648
633
|
if (Py_REFCNT(*operand1) == 1) {
|
|
649
|
-
Nuitka_LongUpdateFromCLong(&*operand1, r);
|
|
634
|
+
Nuitka_LongUpdateFromCLong(&*operand1, (long)r);
|
|
650
635
|
goto exit_result_ok;
|
|
651
636
|
} else {
|
|
652
637
|
PyObject *obj = Nuitka_LongFromCLong(r);
|
|
@@ -659,16 +644,16 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_LONG(PyObject **operand1, PyObjec
|
|
|
659
644
|
}
|
|
660
645
|
|
|
661
646
|
if (Py_REFCNT(*operand1) == 1) {
|
|
662
|
-
digit const *b_digits = operand2_long_object
|
|
663
|
-
Py_ssize_t b_digit_count =
|
|
647
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
648
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
664
649
|
|
|
665
|
-
bool a_negative =
|
|
666
|
-
bool b_negative =
|
|
650
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
651
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
667
652
|
|
|
668
653
|
if (a_negative) {
|
|
669
654
|
if (b_negative) {
|
|
670
655
|
*operand1 = _Nuitka_LongAddInplaceDigits(*operand1, b_digits, b_digit_count);
|
|
671
|
-
|
|
656
|
+
Nuitka_LongSetSignNegative(*operand1);
|
|
672
657
|
} else {
|
|
673
658
|
*operand1 = _Nuitka_LongSubInplaceDigits(*operand1, b_digits, b_digit_count, -1);
|
|
674
659
|
}
|
|
@@ -685,17 +670,17 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_LONG(PyObject **operand1, PyObjec
|
|
|
685
670
|
{
|
|
686
671
|
PyLongObject *z;
|
|
687
672
|
|
|
688
|
-
digit const *a_digits = operand1_long_object
|
|
689
|
-
Py_ssize_t a_digit_count =
|
|
690
|
-
bool a_negative =
|
|
691
|
-
digit const *b_digits = operand2_long_object
|
|
692
|
-
Py_ssize_t b_digit_count =
|
|
693
|
-
bool b_negative =
|
|
673
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
674
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
675
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
676
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
677
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
678
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
694
679
|
|
|
695
680
|
if (a_negative) {
|
|
696
681
|
if (b_negative) {
|
|
697
682
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
698
|
-
|
|
683
|
+
Nuitka_LongFlipSign(z);
|
|
699
684
|
} else {
|
|
700
685
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
701
686
|
}
|
|
@@ -766,7 +751,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_LONG(PyObject **o
|
|
|
766
751
|
goto exit_inplace_result_object;
|
|
767
752
|
}
|
|
768
753
|
|
|
769
|
-
|
|
754
|
+
Py_DECREF_IMMORTAL(x);
|
|
770
755
|
}
|
|
771
756
|
|
|
772
757
|
{
|
|
@@ -792,7 +777,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_LONG(PyObject **o
|
|
|
792
777
|
goto exit_inplace_result_object;
|
|
793
778
|
}
|
|
794
779
|
|
|
795
|
-
|
|
780
|
+
Py_DECREF_IMMORTAL(x);
|
|
796
781
|
}
|
|
797
782
|
|
|
798
783
|
if (slot2 != NULL) {
|
|
@@ -803,7 +788,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_LONG(PyObject **o
|
|
|
803
788
|
goto exit_inplace_result_object;
|
|
804
789
|
}
|
|
805
790
|
|
|
806
|
-
|
|
791
|
+
Py_DECREF_IMMORTAL(x);
|
|
807
792
|
}
|
|
808
793
|
|
|
809
794
|
#if PYTHON_VERSION < 0x300
|
|
@@ -896,9 +881,9 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_LONG(PyObject **o
|
|
|
896
881
|
}
|
|
897
882
|
|
|
898
883
|
#if PYTHON_VERSION < 0x300
|
|
899
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
884
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and 'long'", type1->tp_name);
|
|
900
885
|
#else
|
|
901
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
886
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and 'int'", type1->tp_name);
|
|
902
887
|
#endif
|
|
903
888
|
goto exit_inplace_exception;
|
|
904
889
|
}
|
|
@@ -947,11 +932,11 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_LONG(PyObject **operand1, PyObj
|
|
|
947
932
|
|
|
948
933
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
949
934
|
|
|
950
|
-
if (
|
|
951
|
-
long r = MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object);
|
|
935
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
936
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object));
|
|
952
937
|
|
|
953
938
|
if (Py_REFCNT(*operand1) == 1) {
|
|
954
|
-
Nuitka_LongUpdateFromCLong(&*operand1, r);
|
|
939
|
+
Nuitka_LongUpdateFromCLong(&*operand1, (long)r);
|
|
955
940
|
goto exit_result_ok;
|
|
956
941
|
} else {
|
|
957
942
|
PyObject *obj = Nuitka_LongFromCLong(r);
|
|
@@ -964,16 +949,16 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_LONG(PyObject **operand1, PyObj
|
|
|
964
949
|
}
|
|
965
950
|
|
|
966
951
|
if (Py_REFCNT(*operand1) == 1) {
|
|
967
|
-
digit const *b_digits = operand2_long_object
|
|
968
|
-
Py_ssize_t b_digit_count =
|
|
952
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
953
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
969
954
|
|
|
970
|
-
bool a_negative =
|
|
971
|
-
bool b_negative =
|
|
955
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
956
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
972
957
|
|
|
973
958
|
if (a_negative) {
|
|
974
959
|
if (b_negative) {
|
|
975
960
|
*operand1 = _Nuitka_LongAddInplaceDigits(*operand1, b_digits, b_digit_count);
|
|
976
|
-
|
|
961
|
+
Nuitka_LongSetSignNegative(*operand1);
|
|
977
962
|
} else {
|
|
978
963
|
*operand1 = _Nuitka_LongSubInplaceDigits(*operand1, b_digits, b_digit_count, -1);
|
|
979
964
|
}
|
|
@@ -990,17 +975,17 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_LONG(PyObject **operand1, PyObj
|
|
|
990
975
|
{
|
|
991
976
|
PyLongObject *z;
|
|
992
977
|
|
|
993
|
-
digit const *a_digits = operand1_long_object
|
|
994
|
-
Py_ssize_t a_digit_count =
|
|
995
|
-
bool a_negative =
|
|
996
|
-
digit const *b_digits = operand2_long_object
|
|
997
|
-
Py_ssize_t b_digit_count =
|
|
998
|
-
bool b_negative =
|
|
978
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
979
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
980
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
981
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
982
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
983
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
999
984
|
|
|
1000
985
|
if (a_negative) {
|
|
1001
986
|
if (b_negative) {
|
|
1002
987
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
1003
|
-
|
|
988
|
+
Nuitka_LongFlipSign(z);
|
|
1004
989
|
} else {
|
|
1005
990
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
1006
991
|
}
|
|
@@ -1089,7 +1074,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_LONG_OBJECT(PyObject **o
|
|
|
1089
1074
|
goto exit_inplace_result_object;
|
|
1090
1075
|
}
|
|
1091
1076
|
|
|
1092
|
-
|
|
1077
|
+
Py_DECREF_IMMORTAL(x);
|
|
1093
1078
|
slot2 = NULL;
|
|
1094
1079
|
}
|
|
1095
1080
|
}
|
|
@@ -1101,7 +1086,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_LONG_OBJECT(PyObject **o
|
|
|
1101
1086
|
goto exit_inplace_result_object;
|
|
1102
1087
|
}
|
|
1103
1088
|
|
|
1104
|
-
|
|
1089
|
+
Py_DECREF_IMMORTAL(x);
|
|
1105
1090
|
}
|
|
1106
1091
|
|
|
1107
1092
|
if (slot2 != NULL) {
|
|
@@ -1112,7 +1097,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_LONG_OBJECT(PyObject **o
|
|
|
1112
1097
|
goto exit_inplace_result_object;
|
|
1113
1098
|
}
|
|
1114
1099
|
|
|
1115
|
-
|
|
1100
|
+
Py_DECREF_IMMORTAL(x);
|
|
1116
1101
|
}
|
|
1117
1102
|
|
|
1118
1103
|
#if PYTHON_VERSION < 0x300
|
|
@@ -1195,9 +1180,9 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_LONG_OBJECT(PyObject **o
|
|
|
1195
1180
|
}
|
|
1196
1181
|
|
|
1197
1182
|
#if PYTHON_VERSION < 0x300
|
|
1198
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
1183
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'long' and '%s'", type2->tp_name);
|
|
1199
1184
|
#else
|
|
1200
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
1185
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'int' and '%s'", type2->tp_name);
|
|
1201
1186
|
#endif
|
|
1202
1187
|
goto exit_inplace_exception;
|
|
1203
1188
|
}
|
|
@@ -1246,11 +1231,11 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_OBJECT(PyObject **operand1, PyObj
|
|
|
1246
1231
|
|
|
1247
1232
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
1248
1233
|
|
|
1249
|
-
if (
|
|
1250
|
-
long r = MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object);
|
|
1234
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
1235
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object));
|
|
1251
1236
|
|
|
1252
1237
|
if (Py_REFCNT(*operand1) == 1) {
|
|
1253
|
-
Nuitka_LongUpdateFromCLong(&*operand1, r);
|
|
1238
|
+
Nuitka_LongUpdateFromCLong(&*operand1, (long)r);
|
|
1254
1239
|
goto exit_result_ok;
|
|
1255
1240
|
} else {
|
|
1256
1241
|
PyObject *obj = Nuitka_LongFromCLong(r);
|
|
@@ -1263,16 +1248,16 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_OBJECT(PyObject **operand1, PyObj
|
|
|
1263
1248
|
}
|
|
1264
1249
|
|
|
1265
1250
|
if (Py_REFCNT(*operand1) == 1) {
|
|
1266
|
-
digit const *b_digits = operand2_long_object
|
|
1267
|
-
Py_ssize_t b_digit_count =
|
|
1251
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
1252
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
1268
1253
|
|
|
1269
|
-
bool a_negative =
|
|
1270
|
-
bool b_negative =
|
|
1254
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
1255
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
1271
1256
|
|
|
1272
1257
|
if (a_negative) {
|
|
1273
1258
|
if (b_negative) {
|
|
1274
1259
|
*operand1 = _Nuitka_LongAddInplaceDigits(*operand1, b_digits, b_digit_count);
|
|
1275
|
-
|
|
1260
|
+
Nuitka_LongSetSignNegative(*operand1);
|
|
1276
1261
|
} else {
|
|
1277
1262
|
*operand1 = _Nuitka_LongSubInplaceDigits(*operand1, b_digits, b_digit_count, -1);
|
|
1278
1263
|
}
|
|
@@ -1289,17 +1274,17 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_OBJECT(PyObject **operand1, PyObj
|
|
|
1289
1274
|
{
|
|
1290
1275
|
PyLongObject *z;
|
|
1291
1276
|
|
|
1292
|
-
digit const *a_digits = operand1_long_object
|
|
1293
|
-
Py_ssize_t a_digit_count =
|
|
1294
|
-
bool a_negative =
|
|
1295
|
-
digit const *b_digits = operand2_long_object
|
|
1296
|
-
Py_ssize_t b_digit_count =
|
|
1297
|
-
bool b_negative =
|
|
1277
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
1278
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
1279
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
1280
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
1281
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
1282
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
1298
1283
|
|
|
1299
1284
|
if (a_negative) {
|
|
1300
1285
|
if (b_negative) {
|
|
1301
1286
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
1302
|
-
|
|
1287
|
+
Nuitka_LongFlipSign(z);
|
|
1303
1288
|
} else {
|
|
1304
1289
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
1305
1290
|
}
|
|
@@ -1426,7 +1411,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_FLOAT(PyObject **
|
|
|
1426
1411
|
goto exit_inplace_result_object;
|
|
1427
1412
|
}
|
|
1428
1413
|
|
|
1429
|
-
|
|
1414
|
+
Py_DECREF_IMMORTAL(x);
|
|
1430
1415
|
}
|
|
1431
1416
|
|
|
1432
1417
|
{
|
|
@@ -1452,7 +1437,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_FLOAT(PyObject **
|
|
|
1452
1437
|
goto exit_inplace_result_object;
|
|
1453
1438
|
}
|
|
1454
1439
|
|
|
1455
|
-
|
|
1440
|
+
Py_DECREF_IMMORTAL(x);
|
|
1456
1441
|
}
|
|
1457
1442
|
|
|
1458
1443
|
if (slot2 != NULL) {
|
|
@@ -1463,7 +1448,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_FLOAT(PyObject **
|
|
|
1463
1448
|
goto exit_inplace_result_object;
|
|
1464
1449
|
}
|
|
1465
1450
|
|
|
1466
|
-
|
|
1451
|
+
Py_DECREF_IMMORTAL(x);
|
|
1467
1452
|
}
|
|
1468
1453
|
|
|
1469
1454
|
#if PYTHON_VERSION < 0x300
|
|
@@ -1555,7 +1540,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_FLOAT(PyObject **
|
|
|
1555
1540
|
}
|
|
1556
1541
|
}
|
|
1557
1542
|
|
|
1558
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
1543
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and 'float'", type1->tp_name);
|
|
1559
1544
|
goto exit_inplace_exception;
|
|
1560
1545
|
}
|
|
1561
1546
|
|
|
@@ -1675,7 +1660,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_FLOAT_OBJECT(PyObject **
|
|
|
1675
1660
|
goto exit_inplace_result_object;
|
|
1676
1661
|
}
|
|
1677
1662
|
|
|
1678
|
-
|
|
1663
|
+
Py_DECREF_IMMORTAL(x);
|
|
1679
1664
|
slot2 = NULL;
|
|
1680
1665
|
}
|
|
1681
1666
|
}
|
|
@@ -1687,7 +1672,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_FLOAT_OBJECT(PyObject **
|
|
|
1687
1672
|
goto exit_inplace_result_object;
|
|
1688
1673
|
}
|
|
1689
1674
|
|
|
1690
|
-
|
|
1675
|
+
Py_DECREF_IMMORTAL(x);
|
|
1691
1676
|
}
|
|
1692
1677
|
|
|
1693
1678
|
if (slot2 != NULL) {
|
|
@@ -1698,7 +1683,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_FLOAT_OBJECT(PyObject **
|
|
|
1698
1683
|
goto exit_inplace_result_object;
|
|
1699
1684
|
}
|
|
1700
1685
|
|
|
1701
|
-
|
|
1686
|
+
Py_DECREF_IMMORTAL(x);
|
|
1702
1687
|
}
|
|
1703
1688
|
|
|
1704
1689
|
#if PYTHON_VERSION < 0x300
|
|
@@ -1780,7 +1765,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_FLOAT_OBJECT(PyObject **
|
|
|
1780
1765
|
// No inplace sequence repeat slot sq_inplace_concat available for this type.
|
|
1781
1766
|
}
|
|
1782
1767
|
|
|
1783
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
1768
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'float' and '%s'", type2->tp_name);
|
|
1784
1769
|
goto exit_inplace_exception;
|
|
1785
1770
|
}
|
|
1786
1771
|
|
|
@@ -1893,7 +1878,7 @@ static inline bool _INPLACE_OPERATION_ADD_FLOAT_LONG(PyObject **operand1, PyObje
|
|
|
1893
1878
|
goto exit_inplace_result_object;
|
|
1894
1879
|
}
|
|
1895
1880
|
|
|
1896
|
-
|
|
1881
|
+
Py_DECREF_IMMORTAL(x);
|
|
1897
1882
|
}
|
|
1898
1883
|
|
|
1899
1884
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -1904,9 +1889,9 @@ static inline bool _INPLACE_OPERATION_ADD_FLOAT_LONG(PyObject **operand1, PyObje
|
|
|
1904
1889
|
}
|
|
1905
1890
|
|
|
1906
1891
|
#if PYTHON_VERSION < 0x300
|
|
1907
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
1892
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'float' and 'long'");
|
|
1908
1893
|
#else
|
|
1909
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
1894
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'float' and 'int'");
|
|
1910
1895
|
#endif
|
|
1911
1896
|
goto exit_inplace_exception;
|
|
1912
1897
|
}
|
|
@@ -1972,7 +1957,7 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_FLOAT(PyObject **operand1, PyObje
|
|
|
1972
1957
|
goto exit_inplace_result_object;
|
|
1973
1958
|
}
|
|
1974
1959
|
|
|
1975
|
-
|
|
1960
|
+
Py_DECREF_IMMORTAL(x);
|
|
1976
1961
|
}
|
|
1977
1962
|
|
|
1978
1963
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -1983,9 +1968,9 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_FLOAT(PyObject **operand1, PyObje
|
|
|
1983
1968
|
}
|
|
1984
1969
|
|
|
1985
1970
|
#if PYTHON_VERSION < 0x300
|
|
1986
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
1971
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'long' and 'float'");
|
|
1987
1972
|
#else
|
|
1988
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
1973
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'int' and 'float'");
|
|
1989
1974
|
#endif
|
|
1990
1975
|
goto exit_inplace_exception;
|
|
1991
1976
|
}
|
|
@@ -2046,7 +2031,7 @@ static inline bool _INPLACE_OPERATION_ADD_FLOAT_INT(PyObject **operand1, PyObjec
|
|
|
2046
2031
|
goto exit_inplace_result_object;
|
|
2047
2032
|
}
|
|
2048
2033
|
|
|
2049
|
-
|
|
2034
|
+
Py_DECREF_IMMORTAL(x);
|
|
2050
2035
|
}
|
|
2051
2036
|
|
|
2052
2037
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -2056,7 +2041,7 @@ static inline bool _INPLACE_OPERATION_ADD_FLOAT_INT(PyObject **operand1, PyObjec
|
|
|
2056
2041
|
// No inplace sequence repeat slot sq_inplace_concat available for this type.
|
|
2057
2042
|
}
|
|
2058
2043
|
|
|
2059
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
2044
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'float' and 'int'");
|
|
2060
2045
|
goto exit_inplace_exception;
|
|
2061
2046
|
}
|
|
2062
2047
|
|
|
@@ -2123,7 +2108,7 @@ static inline bool _INPLACE_OPERATION_ADD_INT_FLOAT(PyObject **operand1, PyObjec
|
|
|
2123
2108
|
goto exit_inplace_result_object;
|
|
2124
2109
|
}
|
|
2125
2110
|
|
|
2126
|
-
|
|
2111
|
+
Py_DECREF_IMMORTAL(x);
|
|
2127
2112
|
}
|
|
2128
2113
|
|
|
2129
2114
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -2133,7 +2118,7 @@ static inline bool _INPLACE_OPERATION_ADD_INT_FLOAT(PyObject **operand1, PyObjec
|
|
|
2133
2118
|
// No inplace sequence repeat slot sq_inplace_concat available for this type.
|
|
2134
2119
|
}
|
|
2135
2120
|
|
|
2136
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
2121
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'int' and 'float'");
|
|
2137
2122
|
goto exit_inplace_exception;
|
|
2138
2123
|
}
|
|
2139
2124
|
|
|
@@ -2194,7 +2179,7 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_INT(PyObject **operand1, PyObject
|
|
|
2194
2179
|
goto exit_inplace_result_object;
|
|
2195
2180
|
}
|
|
2196
2181
|
|
|
2197
|
-
|
|
2182
|
+
Py_DECREF_IMMORTAL(x);
|
|
2198
2183
|
}
|
|
2199
2184
|
|
|
2200
2185
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -2204,7 +2189,7 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_INT(PyObject **operand1, PyObject
|
|
|
2204
2189
|
// No inplace sequence repeat slot sq_inplace_concat available for this type.
|
|
2205
2190
|
}
|
|
2206
2191
|
|
|
2207
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
2192
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'long' and 'int'");
|
|
2208
2193
|
goto exit_inplace_exception;
|
|
2209
2194
|
}
|
|
2210
2195
|
|
|
@@ -2271,7 +2256,7 @@ static inline bool _INPLACE_OPERATION_ADD_INT_LONG(PyObject **operand1, PyObject
|
|
|
2271
2256
|
goto exit_inplace_result_object;
|
|
2272
2257
|
}
|
|
2273
2258
|
|
|
2274
|
-
|
|
2259
|
+
Py_DECREF_IMMORTAL(x);
|
|
2275
2260
|
}
|
|
2276
2261
|
|
|
2277
2262
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -2281,7 +2266,7 @@ static inline bool _INPLACE_OPERATION_ADD_INT_LONG(PyObject **operand1, PyObject
|
|
|
2281
2266
|
// No inplace sequence repeat slot sq_inplace_concat available for this type.
|
|
2282
2267
|
}
|
|
2283
2268
|
|
|
2284
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
2269
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: 'int' and 'long'");
|
|
2285
2270
|
goto exit_inplace_exception;
|
|
2286
2271
|
}
|
|
2287
2272
|
|
|
@@ -2408,11 +2393,11 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_DIGIT(PyObject **operand1, long o
|
|
|
2408
2393
|
|
|
2409
2394
|
PyLongObject *operand1_long_object = (PyLongObject *)*operand1;
|
|
2410
2395
|
|
|
2411
|
-
if (
|
|
2412
|
-
long r = MEDIUM_VALUE(operand1_long_object) + (sdigit)operand2;
|
|
2396
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && (operand2 == 0 ? 0 : 1) <= 1) {
|
|
2397
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + (sdigit)operand2);
|
|
2413
2398
|
|
|
2414
2399
|
if (Py_REFCNT(*operand1) == 1) {
|
|
2415
|
-
Nuitka_LongUpdateFromCLong(&*operand1, r);
|
|
2400
|
+
Nuitka_LongUpdateFromCLong(&*operand1, (long)r);
|
|
2416
2401
|
goto exit_result_ok;
|
|
2417
2402
|
} else {
|
|
2418
2403
|
PyObject *obj = Nuitka_LongFromCLong(r);
|
|
@@ -2428,13 +2413,13 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_DIGIT(PyObject **operand1, long o
|
|
|
2428
2413
|
digit const *b_digits = (digit *)&operand2;
|
|
2429
2414
|
Py_ssize_t b_digit_count = (operand2 == 0 ? 0 : 1);
|
|
2430
2415
|
|
|
2431
|
-
bool a_negative =
|
|
2416
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
2432
2417
|
bool b_negative = operand2 < 0;
|
|
2433
2418
|
|
|
2434
2419
|
if (a_negative) {
|
|
2435
2420
|
if (b_negative) {
|
|
2436
2421
|
*operand1 = _Nuitka_LongAddInplaceDigits(*operand1, b_digits, b_digit_count);
|
|
2437
|
-
|
|
2422
|
+
Nuitka_LongSetSignNegative(*operand1);
|
|
2438
2423
|
} else {
|
|
2439
2424
|
*operand1 = _Nuitka_LongSubInplaceDigits(*operand1, b_digits, b_digit_count, -1);
|
|
2440
2425
|
}
|
|
@@ -2451,9 +2436,9 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_DIGIT(PyObject **operand1, long o
|
|
|
2451
2436
|
{
|
|
2452
2437
|
PyLongObject *z;
|
|
2453
2438
|
|
|
2454
|
-
digit const *a_digits = operand1_long_object
|
|
2455
|
-
Py_ssize_t a_digit_count =
|
|
2456
|
-
bool a_negative =
|
|
2439
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
2440
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
2441
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
2457
2442
|
digit const *b_digits = (digit *)&operand2;
|
|
2458
2443
|
Py_ssize_t b_digit_count = (operand2 == 0 ? 0 : 1);
|
|
2459
2444
|
bool b_negative = operand2 < 0;
|
|
@@ -2461,7 +2446,7 @@ static inline bool _INPLACE_OPERATION_ADD_LONG_DIGIT(PyObject **operand1, long o
|
|
|
2461
2446
|
if (a_negative) {
|
|
2462
2447
|
if (b_negative) {
|
|
2463
2448
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2464
|
-
|
|
2449
|
+
Nuitka_LongFlipSign(z);
|
|
2465
2450
|
} else {
|
|
2466
2451
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
2467
2452
|
}
|
|
@@ -2567,7 +2552,7 @@ static inline bool _INPLACE_OPERATION_ADD_STR_STR(PyObject **operand1, PyObject
|
|
|
2567
2552
|
assert(PyString_CheckExact(operand2));
|
|
2568
2553
|
|
|
2569
2554
|
if (Py_REFCNT(*operand1) == 1) {
|
|
2570
|
-
// We more or less own the operand, so we might
|
|
2555
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
2571
2556
|
// execute stuff in-place.
|
|
2572
2557
|
#if PYTHON_VERSION < 0x300
|
|
2573
2558
|
if (1 && !PyString_CHECK_INTERNED(*operand1) && 1) {
|
|
@@ -2645,7 +2630,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_STR(PyObject **op
|
|
|
2645
2630
|
goto exit_inplace_result_object;
|
|
2646
2631
|
}
|
|
2647
2632
|
|
|
2648
|
-
|
|
2633
|
+
Py_DECREF_IMMORTAL(x);
|
|
2649
2634
|
}
|
|
2650
2635
|
|
|
2651
2636
|
{
|
|
@@ -2660,7 +2645,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_STR(PyObject **op
|
|
|
2660
2645
|
goto exit_inplace_result_object;
|
|
2661
2646
|
}
|
|
2662
2647
|
|
|
2663
|
-
|
|
2648
|
+
Py_DECREF_IMMORTAL(x);
|
|
2664
2649
|
}
|
|
2665
2650
|
|
|
2666
2651
|
#if PYTHON_VERSION < 0x300
|
|
@@ -2718,7 +2703,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_STR(PyObject **op
|
|
|
2718
2703
|
}
|
|
2719
2704
|
}
|
|
2720
2705
|
|
|
2721
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
2706
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and 'str'", type1->tp_name);
|
|
2722
2707
|
goto exit_inplace_exception;
|
|
2723
2708
|
}
|
|
2724
2709
|
|
|
@@ -2747,7 +2732,7 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_STR(PyObject **operand1, PyObje
|
|
|
2747
2732
|
assert(PyString_CheckExact(operand2));
|
|
2748
2733
|
|
|
2749
2734
|
if (Py_REFCNT(*operand1) == 1) {
|
|
2750
|
-
// We more or less own the operand, so we might
|
|
2735
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
2751
2736
|
// execute stuff in-place.
|
|
2752
2737
|
#if PYTHON_VERSION < 0x300
|
|
2753
2738
|
if (PyString_CheckExact(*operand1) && !PyString_CHECK_INTERNED(*operand1) && 1) {
|
|
@@ -2829,7 +2814,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_STR_OBJECT(PyObject **op
|
|
|
2829
2814
|
goto exit_inplace_result_object;
|
|
2830
2815
|
}
|
|
2831
2816
|
|
|
2832
|
-
|
|
2817
|
+
Py_DECREF_IMMORTAL(x);
|
|
2833
2818
|
}
|
|
2834
2819
|
|
|
2835
2820
|
#if PYTHON_VERSION < 0x300
|
|
@@ -2908,7 +2893,7 @@ static inline bool _INPLACE_OPERATION_ADD_STR_OBJECT(PyObject **operand1, PyObje
|
|
|
2908
2893
|
CHECK_OBJECT(operand2);
|
|
2909
2894
|
|
|
2910
2895
|
if (Py_REFCNT(*operand1) == 1) {
|
|
2911
|
-
// We more or less own the operand, so we might
|
|
2896
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
2912
2897
|
// execute stuff in-place.
|
|
2913
2898
|
#if PYTHON_VERSION < 0x300
|
|
2914
2899
|
if (1 && !PyString_CHECK_INTERNED(*operand1) && PyString_CheckExact(operand2)) {
|
|
@@ -2967,7 +2952,7 @@ static inline bool _INPLACE_OPERATION_ADD_UNICODE_UNICODE(PyObject **operand1, P
|
|
|
2967
2952
|
assert(PyUnicode_CheckExact(operand2));
|
|
2968
2953
|
|
|
2969
2954
|
if (Py_REFCNT(*operand1) == 1) {
|
|
2970
|
-
// We more or less own the operand, so we might
|
|
2955
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
2971
2956
|
// execute stuff in-place.
|
|
2972
2957
|
|
|
2973
2958
|
#if PYTHON_VERSION >= 0x300
|
|
@@ -3037,7 +3022,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_UNICODE(PyObject
|
|
|
3037
3022
|
goto exit_inplace_result_object;
|
|
3038
3023
|
}
|
|
3039
3024
|
|
|
3040
|
-
|
|
3025
|
+
Py_DECREF_IMMORTAL(x);
|
|
3041
3026
|
}
|
|
3042
3027
|
|
|
3043
3028
|
{
|
|
@@ -3052,7 +3037,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_UNICODE(PyObject
|
|
|
3052
3037
|
goto exit_inplace_result_object;
|
|
3053
3038
|
}
|
|
3054
3039
|
|
|
3055
|
-
|
|
3040
|
+
Py_DECREF_IMMORTAL(x);
|
|
3056
3041
|
}
|
|
3057
3042
|
|
|
3058
3043
|
#if PYTHON_VERSION < 0x300
|
|
@@ -3111,9 +3096,9 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_UNICODE(PyObject
|
|
|
3111
3096
|
}
|
|
3112
3097
|
|
|
3113
3098
|
#if PYTHON_VERSION < 0x300
|
|
3114
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
3099
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and 'unicode'", type1->tp_name);
|
|
3115
3100
|
#else
|
|
3116
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
3101
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and 'str'", type1->tp_name);
|
|
3117
3102
|
#endif
|
|
3118
3103
|
goto exit_inplace_exception;
|
|
3119
3104
|
}
|
|
@@ -3143,7 +3128,7 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_UNICODE(PyObject **operand1, Py
|
|
|
3143
3128
|
assert(PyUnicode_CheckExact(operand2));
|
|
3144
3129
|
|
|
3145
3130
|
if (Py_REFCNT(*operand1) == 1) {
|
|
3146
|
-
// We more or less own the operand, so we might
|
|
3131
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
3147
3132
|
// execute stuff in-place.
|
|
3148
3133
|
|
|
3149
3134
|
#if PYTHON_VERSION >= 0x300
|
|
@@ -3229,7 +3214,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_UNICODE_OBJECT(PyObject
|
|
|
3229
3214
|
goto exit_inplace_result_object;
|
|
3230
3215
|
}
|
|
3231
3216
|
|
|
3232
|
-
|
|
3217
|
+
Py_DECREF_IMMORTAL(x);
|
|
3233
3218
|
}
|
|
3234
3219
|
|
|
3235
3220
|
#if PYTHON_VERSION < 0x300
|
|
@@ -3308,7 +3293,7 @@ static inline bool _INPLACE_OPERATION_ADD_UNICODE_OBJECT(PyObject **operand1, Py
|
|
|
3308
3293
|
CHECK_OBJECT(operand2);
|
|
3309
3294
|
|
|
3310
3295
|
if (Py_REFCNT(*operand1) == 1) {
|
|
3311
|
-
// We more or less own the operand, so we might
|
|
3296
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
3312
3297
|
// execute stuff in-place.
|
|
3313
3298
|
|
|
3314
3299
|
#if PYTHON_VERSION >= 0x300
|
|
@@ -3372,7 +3357,7 @@ static inline bool _INPLACE_OPERATION_ADD_BYTES_BYTES(PyObject **operand1, PyObj
|
|
|
3372
3357
|
assert(PyBytes_CheckExact(operand2));
|
|
3373
3358
|
|
|
3374
3359
|
if (Py_REFCNT(*operand1) == 1) {
|
|
3375
|
-
// We more or less own the operand, so we might
|
|
3360
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
3376
3361
|
// execute stuff in-place.
|
|
3377
3362
|
|
|
3378
3363
|
#if PYTHON_VERSION >= 0x300
|
|
@@ -3439,7 +3424,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_BYTES(PyObject **
|
|
|
3439
3424
|
goto exit_inplace_result_object;
|
|
3440
3425
|
}
|
|
3441
3426
|
|
|
3442
|
-
|
|
3427
|
+
Py_DECREF_IMMORTAL(x);
|
|
3443
3428
|
}
|
|
3444
3429
|
|
|
3445
3430
|
{
|
|
@@ -3454,7 +3439,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_BYTES(PyObject **
|
|
|
3454
3439
|
goto exit_inplace_result_object;
|
|
3455
3440
|
}
|
|
3456
3441
|
|
|
3457
|
-
|
|
3442
|
+
Py_DECREF_IMMORTAL(x);
|
|
3458
3443
|
}
|
|
3459
3444
|
|
|
3460
3445
|
#if PYTHON_VERSION < 0x300
|
|
@@ -3512,7 +3497,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_BYTES(PyObject **
|
|
|
3512
3497
|
}
|
|
3513
3498
|
}
|
|
3514
3499
|
|
|
3515
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
3500
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and 'bytes'", type1->tp_name);
|
|
3516
3501
|
goto exit_inplace_exception;
|
|
3517
3502
|
}
|
|
3518
3503
|
|
|
@@ -3541,7 +3526,7 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_BYTES(PyObject **operand1, PyOb
|
|
|
3541
3526
|
assert(PyBytes_CheckExact(operand2));
|
|
3542
3527
|
|
|
3543
3528
|
if (Py_REFCNT(*operand1) == 1) {
|
|
3544
|
-
// We more or less own the operand, so we might
|
|
3529
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
3545
3530
|
// execute stuff in-place.
|
|
3546
3531
|
|
|
3547
3532
|
#if PYTHON_VERSION >= 0x300
|
|
@@ -3624,7 +3609,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_BYTES_OBJECT(PyObject **
|
|
|
3624
3609
|
goto exit_inplace_result_object;
|
|
3625
3610
|
}
|
|
3626
3611
|
|
|
3627
|
-
|
|
3612
|
+
Py_DECREF_IMMORTAL(x);
|
|
3628
3613
|
}
|
|
3629
3614
|
|
|
3630
3615
|
#if PYTHON_VERSION < 0x300
|
|
@@ -3703,7 +3688,7 @@ static inline bool _INPLACE_OPERATION_ADD_BYTES_OBJECT(PyObject **operand1, PyOb
|
|
|
3703
3688
|
CHECK_OBJECT(operand2);
|
|
3704
3689
|
|
|
3705
3690
|
if (Py_REFCNT(*operand1) == 1) {
|
|
3706
|
-
// We more or less own the operand, so we might
|
|
3691
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
3707
3692
|
// execute stuff in-place.
|
|
3708
3693
|
|
|
3709
3694
|
#if PYTHON_VERSION >= 0x300
|
|
@@ -3777,7 +3762,10 @@ static inline bool _INPLACE_OPERATION_ADD_TUPLE_TUPLE(PyObject **operand1, PyObj
|
|
|
3777
3762
|
// Not every code path will make use of all possible results.
|
|
3778
3763
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
3779
3764
|
|
|
3780
|
-
|
|
3765
|
+
// TODO: Have this more globally passed in
|
|
3766
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
3767
|
+
|
|
3768
|
+
PyObject *x = TUPLE_CONCAT(tstate, *operand1, operand2);
|
|
3781
3769
|
|
|
3782
3770
|
assert(x != Py_NotImplemented);
|
|
3783
3771
|
obj_result = x;
|
|
@@ -3829,7 +3817,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_TUPLE(PyObject **
|
|
|
3829
3817
|
goto exit_inplace_result_object;
|
|
3830
3818
|
}
|
|
3831
3819
|
|
|
3832
|
-
|
|
3820
|
+
Py_DECREF_IMMORTAL(x);
|
|
3833
3821
|
}
|
|
3834
3822
|
|
|
3835
3823
|
{
|
|
@@ -3844,7 +3832,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_TUPLE(PyObject **
|
|
|
3844
3832
|
goto exit_inplace_result_object;
|
|
3845
3833
|
}
|
|
3846
3834
|
|
|
3847
|
-
|
|
3835
|
+
Py_DECREF_IMMORTAL(x);
|
|
3848
3836
|
}
|
|
3849
3837
|
|
|
3850
3838
|
#if PYTHON_VERSION < 0x300
|
|
@@ -3902,7 +3890,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_TUPLE(PyObject **
|
|
|
3902
3890
|
}
|
|
3903
3891
|
}
|
|
3904
3892
|
|
|
3905
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
3893
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and 'tuple'", type1->tp_name);
|
|
3906
3894
|
goto exit_inplace_exception;
|
|
3907
3895
|
}
|
|
3908
3896
|
|
|
@@ -3938,7 +3926,10 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_TUPLE(PyObject **operand1, PyOb
|
|
|
3938
3926
|
// Not every code path will make use of all possible results.
|
|
3939
3927
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
3940
3928
|
|
|
3941
|
-
|
|
3929
|
+
// TODO: Have this more globally passed in
|
|
3930
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
3931
|
+
|
|
3932
|
+
PyObject *x = TUPLE_CONCAT(tstate, *operand1, operand2);
|
|
3942
3933
|
|
|
3943
3934
|
assert(x != Py_NotImplemented);
|
|
3944
3935
|
obj_result = x;
|
|
@@ -4001,7 +3992,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_TUPLE_OBJECT(PyObject **
|
|
|
4001
3992
|
goto exit_inplace_result_object;
|
|
4002
3993
|
}
|
|
4003
3994
|
|
|
4004
|
-
|
|
3995
|
+
Py_DECREF_IMMORTAL(x);
|
|
4005
3996
|
}
|
|
4006
3997
|
|
|
4007
3998
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4100,7 +4091,10 @@ static inline bool _INPLACE_OPERATION_ADD_TUPLE_OBJECT(PyObject **operand1, PyOb
|
|
|
4100
4091
|
// Not every code path will make use of all possible results.
|
|
4101
4092
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
4102
4093
|
|
|
4103
|
-
|
|
4094
|
+
// TODO: Have this more globally passed in
|
|
4095
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
4096
|
+
|
|
4097
|
+
PyObject *x = TUPLE_CONCAT(tstate, *operand1, operand2);
|
|
4104
4098
|
|
|
4105
4099
|
assert(x != Py_NotImplemented);
|
|
4106
4100
|
obj_result = x;
|
|
@@ -4159,7 +4153,10 @@ static inline bool _INPLACE_OPERATION_ADD_LIST_LIST(PyObject **operand1, PyObjec
|
|
|
4159
4153
|
// Not every code path will make use of all possible results.
|
|
4160
4154
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
4161
4155
|
|
|
4162
|
-
|
|
4156
|
+
// TODO: Have this more globally passed in
|
|
4157
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
4158
|
+
|
|
4159
|
+
PyObject *x = LIST_CONCAT(tstate, *operand1, operand2);
|
|
4163
4160
|
assert(x != Py_NotImplemented);
|
|
4164
4161
|
|
|
4165
4162
|
obj_result = x;
|
|
@@ -4212,7 +4209,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_LIST(PyObject **o
|
|
|
4212
4209
|
goto exit_inplace_result_object;
|
|
4213
4210
|
}
|
|
4214
4211
|
|
|
4215
|
-
|
|
4212
|
+
Py_DECREF_IMMORTAL(x);
|
|
4216
4213
|
}
|
|
4217
4214
|
|
|
4218
4215
|
{
|
|
@@ -4227,7 +4224,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_LIST(PyObject **o
|
|
|
4227
4224
|
goto exit_inplace_result_object;
|
|
4228
4225
|
}
|
|
4229
4226
|
|
|
4230
|
-
|
|
4227
|
+
Py_DECREF_IMMORTAL(x);
|
|
4231
4228
|
}
|
|
4232
4229
|
|
|
4233
4230
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4285,7 +4282,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_OBJECT_LIST(PyObject **o
|
|
|
4285
4282
|
}
|
|
4286
4283
|
}
|
|
4287
4284
|
|
|
4288
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
4285
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and 'list'", type1->tp_name);
|
|
4289
4286
|
goto exit_inplace_exception;
|
|
4290
4287
|
}
|
|
4291
4288
|
|
|
@@ -4325,7 +4322,10 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_LIST(PyObject **operand1, PyObj
|
|
|
4325
4322
|
// Not every code path will make use of all possible results.
|
|
4326
4323
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
4327
4324
|
|
|
4328
|
-
|
|
4325
|
+
// TODO: Have this more globally passed in
|
|
4326
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
4327
|
+
|
|
4328
|
+
PyObject *x = LIST_CONCAT(tstate, *operand1, operand2);
|
|
4329
4329
|
assert(x != Py_NotImplemented);
|
|
4330
4330
|
|
|
4331
4331
|
obj_result = x;
|
|
@@ -4389,7 +4389,7 @@ static HEDLEY_NEVER_INLINE bool __INPLACE_OPERATION_ADD_LIST_OBJECT(PyObject **o
|
|
|
4389
4389
|
goto exit_inplace_result_object;
|
|
4390
4390
|
}
|
|
4391
4391
|
|
|
4392
|
-
|
|
4392
|
+
Py_DECREF_IMMORTAL(x);
|
|
4393
4393
|
}
|
|
4394
4394
|
|
|
4395
4395
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4497,7 +4497,10 @@ static inline bool _INPLACE_OPERATION_ADD_LIST_OBJECT(PyObject **operand1, PyObj
|
|
|
4497
4497
|
// Not every code path will make use of all possible results.
|
|
4498
4498
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
4499
4499
|
|
|
4500
|
-
|
|
4500
|
+
// TODO: Have this more globally passed in
|
|
4501
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
4502
|
+
|
|
4503
|
+
PyObject *x = LIST_CONCAT(tstate, *operand1, operand2);
|
|
4501
4504
|
assert(x != Py_NotImplemented);
|
|
4502
4505
|
|
|
4503
4506
|
obj_result = x;
|
|
@@ -4715,7 +4718,7 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_OBJECT(PyObject **operand1, PyO
|
|
|
4715
4718
|
#endif
|
|
4716
4719
|
|
|
4717
4720
|
if (Py_REFCNT(*operand1) == 1) {
|
|
4718
|
-
// We more or less own the operand, so we might
|
|
4721
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
4719
4722
|
// execute stuff in-place.
|
|
4720
4723
|
#if PYTHON_VERSION < 0x300
|
|
4721
4724
|
if (PyString_CheckExact(*operand1) && !PyString_CHECK_INTERNED(*operand1) && PyString_CheckExact(operand2)) {
|
|
@@ -4798,7 +4801,7 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_OBJECT(PyObject **operand1, PyO
|
|
|
4798
4801
|
goto exit_inplace_result_object;
|
|
4799
4802
|
}
|
|
4800
4803
|
|
|
4801
|
-
|
|
4804
|
+
Py_DECREF_IMMORTAL(x);
|
|
4802
4805
|
}
|
|
4803
4806
|
|
|
4804
4807
|
{
|
|
@@ -4826,7 +4829,7 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_OBJECT(PyObject **operand1, PyO
|
|
|
4826
4829
|
goto exit_inplace_result_object;
|
|
4827
4830
|
}
|
|
4828
4831
|
|
|
4829
|
-
|
|
4832
|
+
Py_DECREF_IMMORTAL(x);
|
|
4830
4833
|
slot2 = NULL;
|
|
4831
4834
|
}
|
|
4832
4835
|
}
|
|
@@ -4838,7 +4841,7 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_OBJECT(PyObject **operand1, PyO
|
|
|
4838
4841
|
goto exit_inplace_result_object;
|
|
4839
4842
|
}
|
|
4840
4843
|
|
|
4841
|
-
|
|
4844
|
+
Py_DECREF_IMMORTAL(x);
|
|
4842
4845
|
}
|
|
4843
4846
|
|
|
4844
4847
|
if (slot2 != NULL) {
|
|
@@ -4849,7 +4852,7 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_OBJECT(PyObject **operand1, PyO
|
|
|
4849
4852
|
goto exit_inplace_result_object;
|
|
4850
4853
|
}
|
|
4851
4854
|
|
|
4852
|
-
|
|
4855
|
+
Py_DECREF_IMMORTAL(x);
|
|
4853
4856
|
}
|
|
4854
4857
|
|
|
4855
4858
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4942,7 +4945,7 @@ static inline bool _INPLACE_OPERATION_ADD_OBJECT_OBJECT(PyObject **operand1, PyO
|
|
|
4942
4945
|
}
|
|
4943
4946
|
}
|
|
4944
4947
|
|
|
4945
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for
|
|
4948
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for +=: '%s' and '%s'", type1->tp_name,
|
|
4946
4949
|
type2->tp_name);
|
|
4947
4950
|
goto exit_inplace_exception;
|
|
4948
4951
|
}
|
|
@@ -5039,3 +5042,18 @@ exit_inplace_result_object:
|
|
|
5039
5042
|
bool INPLACE_OPERATION_ADD_LIST_TUPLE(PyObject **operand1, PyObject *operand2) {
|
|
5040
5043
|
return _INPLACE_OPERATION_ADD_LIST_TUPLE(operand1, operand2);
|
|
5041
5044
|
}
|
|
5045
|
+
|
|
5046
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
5047
|
+
// integrates with CPython, but also works on its own.
|
|
5048
|
+
//
|
|
5049
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
5050
|
+
// you may not use this file except in compliance with the License.
|
|
5051
|
+
// You may obtain a copy of the License at
|
|
5052
|
+
//
|
|
5053
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
5054
|
+
//
|
|
5055
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
5056
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
5057
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
5058
|
+
// See the License for the specific language governing permissions and
|
|
5059
|
+
// limitations under the License.
|