Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.5.1__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.5.1.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/METADATA +5 -3
- Nuitka_winsvc-2.5.1.dist-info/RECORD +977 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +49 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +209 -116
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +467 -221
- nuitka/Options.py +701 -225
- nuitka/OutputDirectories.py +47 -23
- nuitka/PostProcessing.py +133 -79
- nuitka/Progress.py +73 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +107 -19
- nuitka/Serialization.py +70 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +176 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +22 -8
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +243 -141
- nuitka/build/CCompilerVersion.scons +45 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +56 -54
- nuitka/build/SconsCaching.py +105 -92
- nuitka/build/SconsCompilerSettings.py +167 -68
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +155 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +152 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +228 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +24 -24
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +28 -25
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +93 -54
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +35 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +717 -171
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -22
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +69 -69
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +89 -51
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +115 -54
- nuitka/build/include/nuitka/helper/iterators.h +99 -51
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +20 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +23 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +20 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +68 -37
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +21 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +50 -22
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +163 -71
- nuitka/build/include/nuitka/printing.h +29 -22
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +45 -32
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +221 -221
- nuitka/build/static_src/CompiledCellType.c +69 -44
- nuitka/build/static_src/CompiledCodeHelpers.c +276 -159
- nuitka/build/static_src/CompiledCoroutineType.c +229 -226
- nuitka/build/static_src/CompiledFrameType.c +323 -138
- nuitka/build/static_src/CompiledFunctionType.c +547 -231
- nuitka/build/static_src/CompiledGeneratorType.c +416 -290
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +593 -228
- nuitka/build/static_src/CompiledMethodType.c +91 -82
- nuitka/build/static_src/HelpersAllocator.c +352 -45
- nuitka/build/static_src/HelpersAttributes.c +30 -72
- nuitka/build/static_src/HelpersBuiltin.c +65 -46
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +40 -37
- nuitka/build/static_src/HelpersCallingGenerated.c +1061 -242
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +536 -496
- nuitka/build/static_src/HelpersComparisonEqUtils.c +22 -19
- nuitka/build/static_src/HelpersComparisonGe.c +531 -501
- nuitka/build/static_src/HelpersComparisonGt.c +530 -500
- nuitka/build/static_src/HelpersComparisonLe.c +531 -501
- nuitka/build/static_src/HelpersComparisonLt.c +530 -500
- nuitka/build/static_src/HelpersComparisonNe.c +538 -496
- nuitka/build/static_src/HelpersConsole.c +122 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +550 -521
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +232 -63
- nuitka/build/static_src/HelpersDictionariesGenerated.c +130 -127
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +147 -62
- nuitka/build/static_src/HelpersFiles.c +116 -22
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +61 -29
- nuitka/build/static_src/HelpersImportHard.c +74 -61
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +237 -58
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +397 -152
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +102 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +55 -55
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +49 -43
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +83 -83
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +25 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +129 -117
- nuitka/build/static_src/HelpersOperationBinaryMult.c +98 -82
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +55 -49
- nuitka/build/static_src/HelpersOperationBinaryPow.c +68 -68
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +51 -51
- nuitka/build/static_src/HelpersOperationBinarySub.c +309 -88
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +49 -43
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +333 -163
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +58 -58
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +64 -64
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +38 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +145 -140
- nuitka/build/static_src/HelpersOperationInplaceMult.c +89 -84
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +73 -68
- nuitka/build/static_src/HelpersOperationInplacePow.c +82 -82
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +48 -48
- nuitka/build/static_src/HelpersOperationInplaceSub.c +275 -122
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +68 -63
- nuitka/build/static_src/HelpersProfiling.c +25 -24
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +296 -283
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +235 -38
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +166 -25
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +464 -280
- nuitka/build/static_src/MetaPathBasedLoader.c +381 -257
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +227 -29
- nuitka/build/static_src/OnefileBootstrap.c +281 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +21 -23
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +290 -184
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +29 -18
- nuitka/code_generation/CallCodes.py +35 -33
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +61 -28
- nuitka/code_generation/CodeHelperSelection.py +20 -18
- nuitka/code_generation/CodeHelpers.py +28 -21
- nuitka/code_generation/CodeObjectCodes.py +36 -26
- nuitka/code_generation/ComparisonCodes.py +51 -22
- nuitka/code_generation/ComparisonHelperDefinitions.py +42 -25
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +180 -42
- nuitka/code_generation/CoroutineCodes.py +21 -23
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +28 -26
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +57 -79
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +182 -104
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +45 -27
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +28 -31
- nuitka/code_generation/FunctionCodes.py +26 -27
- nuitka/code_generation/GeneratorCodes.py +25 -26
- nuitka/code_generation/GlobalConstants.py +51 -25
- nuitka/code_generation/GlobalsLocalsCodes.py +23 -21
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +86 -71
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +20 -20
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +71 -29
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +80 -51
- nuitka/code_generation/PackageResourceCodes.py +96 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +183 -107
- nuitka/code_generation/Reports.py +32 -22
- nuitka/code_generation/ReturnCodes.py +20 -32
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +31 -41
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +119 -0
- nuitka/code_generation/VariableCodes.py +118 -55
- nuitka/code_generation/VariableDeclarations.py +28 -25
- nuitka/code_generation/YieldCodes.py +23 -21
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +29 -19
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +22 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +22 -21
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +89 -43
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +20 -18
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +43 -31
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesConstants.py +143 -39
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +33 -33
- nuitka/code_generation/templates/CodeTemplatesFrames.py +36 -27
- nuitka/code_generation/templates/CodeTemplatesFunction.py +20 -19
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +21 -19
- nuitka/code_generation/templates/CodeTemplatesIterators.py +19 -53
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +278 -169
- nuitka/code_generation/templates/CodeTemplatesVariables.py +115 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +21 -21
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +79 -28
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +74 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +19 -20
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +50 -38
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +37 -37
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +35 -31
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +48 -48
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +27 -25
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +25 -18
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +33 -18
- nuitka/distutils/DistutilCommands.py +84 -33
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +21 -18
- nuitka/finalizations/FinalizeMarkups.py +31 -55
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +60 -30
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +165 -58
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +55 -33
- nuitka/freezer/ImportDetection.py +23 -17
- nuitka/freezer/IncludedDataFiles.py +142 -48
- nuitka/freezer/IncludedEntryPoints.py +104 -39
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +166 -53
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +319 -98
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +142 -47
- nuitka/importing/StandardLibrary.py +96 -80
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +22 -23
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +25 -21
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +73 -40
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1624 -283
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +24 -25
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +22 -23
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +131 -43
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +341 -35
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +41 -28
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +84 -38
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +24 -25
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +746 -148
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +438 -448
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +73 -44
- nuitka/nodes/NodeMakingHelpers.py +92 -69
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +148 -20
- nuitka/nodes/OsSysNodes.py +97 -18
- nuitka/nodes/OutlineNodes.py +24 -22
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -79
- nuitka/nodes/StatementNodes.py +27 -24
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +27 -25
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +68 -18
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +169 -46
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +57 -17
- nuitka/nodes/shapes/StandardShapes.py +80 -21
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +21 -18
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +655 -112
- nuitka/plugins/Plugins.py +247 -61
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +374 -135
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +403 -54
- nuitka/plugins/standard/KivyPlugin.py +24 -20
- nuitka/plugins/standard/MatplotlibPlugin.py +99 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +35 -39
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +82 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +102 -108
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +90 -231
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3925 -1293
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +154 -66
- nuitka/reports/CompilationReportReader.py +79 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +363 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +35 -21
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +74 -22
- nuitka/specs/ParameterSpecs.py +60 -45
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +29 -22
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +251 -80
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +248 -82
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +175 -114
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +39 -30
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +23 -33
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +134 -51
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +184 -182
- nuitka/tree/ComplexCallHelperFunctions.py +84 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +51 -31
- nuitka/tree/ReformulationAssignmentStatements.py +96 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +239 -116
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +41 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +59 -55
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +246 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +44 -24
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +111 -22
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +102 -58
- nuitka/utils/FileOperations.py +357 -128
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +119 -37
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +85 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +21 -19
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +132 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
|
-
// integrates with CPython, but also works on its own.
|
|
5
|
-
//
|
|
6
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
// you may not use this file except in compliance with the License.
|
|
8
|
-
// You may obtain a copy of the License at
|
|
9
|
-
//
|
|
10
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
//
|
|
12
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
// See the License for the specific language governing permissions and
|
|
16
|
-
// limitations under the License.
|
|
17
|
-
//
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
18
3
|
/* WARNING, this code is GENERATED. Modify the template HelperOperationBinary.c.j2 instead! */
|
|
19
4
|
|
|
20
5
|
/* This file is included from another C file, help IDEs to still parse it on its own. */
|
|
@@ -62,6 +47,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_INT_INT(PyObject *operand1, PyObje
|
|
|
62
47
|
clong_result = x;
|
|
63
48
|
goto exit_result_ok_clong;
|
|
64
49
|
}
|
|
50
|
+
|
|
65
51
|
{
|
|
66
52
|
PyObject *operand1_object = operand1;
|
|
67
53
|
PyObject *operand2_object = operand2;
|
|
@@ -74,7 +60,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_INT_INT(PyObject *operand1, PyObje
|
|
|
74
60
|
}
|
|
75
61
|
|
|
76
62
|
exit_result_ok_clong:
|
|
77
|
-
result =
|
|
63
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
78
64
|
goto exit_result_ok;
|
|
79
65
|
|
|
80
66
|
exit_result_object:
|
|
@@ -133,7 +119,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_INT(Py
|
|
|
133
119
|
goto exit_binary_result_object;
|
|
134
120
|
}
|
|
135
121
|
|
|
136
|
-
|
|
122
|
+
Py_DECREF_IMMORTAL(x);
|
|
137
123
|
}
|
|
138
124
|
|
|
139
125
|
if (slot2 != NULL) {
|
|
@@ -144,7 +130,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_INT(Py
|
|
|
144
130
|
goto exit_binary_result_object;
|
|
145
131
|
}
|
|
146
132
|
|
|
147
|
-
|
|
133
|
+
Py_DECREF_IMMORTAL(x);
|
|
148
134
|
}
|
|
149
135
|
|
|
150
136
|
#if PYTHON_VERSION < 0x300
|
|
@@ -281,6 +267,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_INT(PyObject *operand1, PyO
|
|
|
281
267
|
clong_result = x;
|
|
282
268
|
goto exit_result_ok_clong;
|
|
283
269
|
}
|
|
270
|
+
|
|
284
271
|
{
|
|
285
272
|
PyObject *operand1_object = operand1;
|
|
286
273
|
PyObject *operand2_object = operand2;
|
|
@@ -293,7 +280,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_INT(PyObject *operand1, PyO
|
|
|
293
280
|
}
|
|
294
281
|
|
|
295
282
|
exit_result_ok_clong:
|
|
296
|
-
result =
|
|
283
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
297
284
|
goto exit_result_ok;
|
|
298
285
|
|
|
299
286
|
exit_result_object:
|
|
@@ -356,7 +343,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_INT_OBJECT(Py
|
|
|
356
343
|
goto exit_binary_result_object;
|
|
357
344
|
}
|
|
358
345
|
|
|
359
|
-
|
|
346
|
+
Py_DECREF_IMMORTAL(x);
|
|
360
347
|
slot2 = NULL;
|
|
361
348
|
}
|
|
362
349
|
}
|
|
@@ -368,7 +355,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_INT_OBJECT(Py
|
|
|
368
355
|
goto exit_binary_result_object;
|
|
369
356
|
}
|
|
370
357
|
|
|
371
|
-
|
|
358
|
+
Py_DECREF_IMMORTAL(x);
|
|
372
359
|
}
|
|
373
360
|
|
|
374
361
|
if (slot2 != NULL) {
|
|
@@ -379,7 +366,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_INT_OBJECT(Py
|
|
|
379
366
|
goto exit_binary_result_object;
|
|
380
367
|
}
|
|
381
368
|
|
|
382
|
-
|
|
369
|
+
Py_DECREF_IMMORTAL(x);
|
|
383
370
|
}
|
|
384
371
|
|
|
385
372
|
#if PYTHON_VERSION < 0x300
|
|
@@ -508,6 +495,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_INT_OBJECT(PyObject *operand1, PyO
|
|
|
508
495
|
clong_result = x;
|
|
509
496
|
goto exit_result_ok_clong;
|
|
510
497
|
}
|
|
498
|
+
|
|
511
499
|
{
|
|
512
500
|
PyObject *operand1_object = operand1;
|
|
513
501
|
PyObject *operand2_object = operand2;
|
|
@@ -520,7 +508,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_INT_OBJECT(PyObject *operand1, PyO
|
|
|
520
508
|
}
|
|
521
509
|
|
|
522
510
|
exit_result_ok_clong:
|
|
523
|
-
result =
|
|
511
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
524
512
|
goto exit_result_ok;
|
|
525
513
|
|
|
526
514
|
exit_result_object:
|
|
@@ -633,7 +621,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_OBJECT_INT(P
|
|
|
633
621
|
goto exit_binary_result_object;
|
|
634
622
|
}
|
|
635
623
|
|
|
636
|
-
|
|
624
|
+
Py_DECREF_IMMORTAL(x);
|
|
637
625
|
}
|
|
638
626
|
|
|
639
627
|
if (slot2 != NULL) {
|
|
@@ -644,7 +632,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_OBJECT_INT(P
|
|
|
644
632
|
goto exit_binary_result_object;
|
|
645
633
|
}
|
|
646
634
|
|
|
647
|
-
|
|
635
|
+
Py_DECREF_IMMORTAL(x);
|
|
648
636
|
}
|
|
649
637
|
|
|
650
638
|
#if PYTHON_VERSION < 0x300
|
|
@@ -844,7 +832,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_INT_OBJECT(P
|
|
|
844
832
|
goto exit_binary_result_object;
|
|
845
833
|
}
|
|
846
834
|
|
|
847
|
-
|
|
835
|
+
Py_DECREF_IMMORTAL(x);
|
|
848
836
|
slot2 = NULL;
|
|
849
837
|
}
|
|
850
838
|
}
|
|
@@ -856,7 +844,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_INT_OBJECT(P
|
|
|
856
844
|
goto exit_binary_result_object;
|
|
857
845
|
}
|
|
858
846
|
|
|
859
|
-
|
|
847
|
+
Py_DECREF_IMMORTAL(x);
|
|
860
848
|
}
|
|
861
849
|
|
|
862
850
|
if (slot2 != NULL) {
|
|
@@ -867,7 +855,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_INT_OBJECT(P
|
|
|
867
855
|
goto exit_binary_result_object;
|
|
868
856
|
}
|
|
869
857
|
|
|
870
|
-
|
|
858
|
+
Py_DECREF_IMMORTAL(x);
|
|
871
859
|
}
|
|
872
860
|
|
|
873
861
|
#if PYTHON_VERSION < 0x300
|
|
@@ -1045,8 +1033,8 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_LONG_LONG(PyObject *operand1, PyOb
|
|
|
1045
1033
|
|
|
1046
1034
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
1047
1035
|
|
|
1048
|
-
if (
|
|
1049
|
-
long r = MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object);
|
|
1036
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
1037
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object));
|
|
1050
1038
|
|
|
1051
1039
|
clong_result = r;
|
|
1052
1040
|
goto exit_result_ok_clong;
|
|
@@ -1055,17 +1043,17 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_LONG_LONG(PyObject *operand1, PyOb
|
|
|
1055
1043
|
{
|
|
1056
1044
|
PyLongObject *z;
|
|
1057
1045
|
|
|
1058
|
-
digit const *a_digits = operand1_long_object
|
|
1059
|
-
Py_ssize_t a_digit_count =
|
|
1060
|
-
bool a_negative =
|
|
1061
|
-
digit const *b_digits = operand2_long_object
|
|
1062
|
-
Py_ssize_t b_digit_count =
|
|
1063
|
-
bool b_negative =
|
|
1046
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
1047
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
1048
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
1049
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
1050
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
1051
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
1064
1052
|
|
|
1065
1053
|
if (a_negative) {
|
|
1066
1054
|
if (b_negative) {
|
|
1067
1055
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
1068
|
-
|
|
1056
|
+
Nuitka_LongFlipSign(z);
|
|
1069
1057
|
} else {
|
|
1070
1058
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
1071
1059
|
}
|
|
@@ -1139,7 +1127,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_LONG(P
|
|
|
1139
1127
|
goto exit_binary_result_object;
|
|
1140
1128
|
}
|
|
1141
1129
|
|
|
1142
|
-
|
|
1130
|
+
Py_DECREF_IMMORTAL(x);
|
|
1143
1131
|
}
|
|
1144
1132
|
|
|
1145
1133
|
if (slot2 != NULL) {
|
|
@@ -1150,7 +1138,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_LONG(P
|
|
|
1150
1138
|
goto exit_binary_result_object;
|
|
1151
1139
|
}
|
|
1152
1140
|
|
|
1153
|
-
|
|
1141
|
+
Py_DECREF_IMMORTAL(x);
|
|
1154
1142
|
}
|
|
1155
1143
|
|
|
1156
1144
|
#if PYTHON_VERSION < 0x300
|
|
@@ -1279,8 +1267,8 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_LONG(PyObject *operand1, Py
|
|
|
1279
1267
|
|
|
1280
1268
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
1281
1269
|
|
|
1282
|
-
if (
|
|
1283
|
-
long r = MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object);
|
|
1270
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
1271
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object));
|
|
1284
1272
|
|
|
1285
1273
|
clong_result = r;
|
|
1286
1274
|
goto exit_result_ok_clong;
|
|
@@ -1289,17 +1277,17 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_LONG(PyObject *operand1, Py
|
|
|
1289
1277
|
{
|
|
1290
1278
|
PyLongObject *z;
|
|
1291
1279
|
|
|
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 =
|
|
1280
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
1281
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
1282
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
1283
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
1284
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
1285
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
1298
1286
|
|
|
1299
1287
|
if (a_negative) {
|
|
1300
1288
|
if (b_negative) {
|
|
1301
1289
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
1302
|
-
|
|
1290
|
+
Nuitka_LongFlipSign(z);
|
|
1303
1291
|
} else {
|
|
1304
1292
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
1305
1293
|
}
|
|
@@ -1377,7 +1365,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_LONG_OBJECT(P
|
|
|
1377
1365
|
goto exit_binary_result_object;
|
|
1378
1366
|
}
|
|
1379
1367
|
|
|
1380
|
-
|
|
1368
|
+
Py_DECREF_IMMORTAL(x);
|
|
1381
1369
|
slot2 = NULL;
|
|
1382
1370
|
}
|
|
1383
1371
|
}
|
|
@@ -1389,7 +1377,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_LONG_OBJECT(P
|
|
|
1389
1377
|
goto exit_binary_result_object;
|
|
1390
1378
|
}
|
|
1391
1379
|
|
|
1392
|
-
|
|
1380
|
+
Py_DECREF_IMMORTAL(x);
|
|
1393
1381
|
}
|
|
1394
1382
|
|
|
1395
1383
|
if (slot2 != NULL) {
|
|
@@ -1400,7 +1388,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_LONG_OBJECT(P
|
|
|
1400
1388
|
goto exit_binary_result_object;
|
|
1401
1389
|
}
|
|
1402
1390
|
|
|
1403
|
-
|
|
1391
|
+
Py_DECREF_IMMORTAL(x);
|
|
1404
1392
|
}
|
|
1405
1393
|
|
|
1406
1394
|
#if PYTHON_VERSION < 0x300
|
|
@@ -1521,8 +1509,8 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_LONG_OBJECT(PyObject *operand1, Py
|
|
|
1521
1509
|
|
|
1522
1510
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
1523
1511
|
|
|
1524
|
-
if (
|
|
1525
|
-
long r = MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object);
|
|
1512
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
1513
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object));
|
|
1526
1514
|
|
|
1527
1515
|
clong_result = r;
|
|
1528
1516
|
goto exit_result_ok_clong;
|
|
@@ -1531,17 +1519,17 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_LONG_OBJECT(PyObject *operand1, Py
|
|
|
1531
1519
|
{
|
|
1532
1520
|
PyLongObject *z;
|
|
1533
1521
|
|
|
1534
|
-
digit const *a_digits = operand1_long_object
|
|
1535
|
-
Py_ssize_t a_digit_count =
|
|
1536
|
-
bool a_negative =
|
|
1537
|
-
digit const *b_digits = operand2_long_object
|
|
1538
|
-
Py_ssize_t b_digit_count =
|
|
1539
|
-
bool b_negative =
|
|
1522
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
1523
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
1524
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
1525
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
1526
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
1527
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
1540
1528
|
|
|
1541
1529
|
if (a_negative) {
|
|
1542
1530
|
if (b_negative) {
|
|
1543
1531
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
1544
|
-
|
|
1532
|
+
Nuitka_LongFlipSign(z);
|
|
1545
1533
|
} else {
|
|
1546
1534
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
1547
1535
|
}
|
|
@@ -1606,8 +1594,8 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LONG_LONG(PyObject *operand1, PyO
|
|
|
1606
1594
|
|
|
1607
1595
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
1608
1596
|
|
|
1609
|
-
if (
|
|
1610
|
-
long r = MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object);
|
|
1597
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
1598
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object));
|
|
1611
1599
|
|
|
1612
1600
|
clong_result = r;
|
|
1613
1601
|
goto exit_result_ok_clong;
|
|
@@ -1616,17 +1604,17 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LONG_LONG(PyObject *operand1, PyO
|
|
|
1616
1604
|
{
|
|
1617
1605
|
PyLongObject *z;
|
|
1618
1606
|
|
|
1619
|
-
digit const *a_digits = operand1_long_object
|
|
1620
|
-
Py_ssize_t a_digit_count =
|
|
1621
|
-
bool a_negative =
|
|
1622
|
-
digit const *b_digits = operand2_long_object
|
|
1623
|
-
Py_ssize_t b_digit_count =
|
|
1624
|
-
bool b_negative =
|
|
1607
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
1608
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
1609
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
1610
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
1611
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
1612
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
1625
1613
|
|
|
1626
1614
|
if (a_negative) {
|
|
1627
1615
|
if (b_negative) {
|
|
1628
1616
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
1629
|
-
|
|
1617
|
+
Nuitka_LongFlipSign(z);
|
|
1630
1618
|
} else {
|
|
1631
1619
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
1632
1620
|
}
|
|
@@ -1702,7 +1690,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_OBJECT_LONG(
|
|
|
1702
1690
|
goto exit_binary_result_object;
|
|
1703
1691
|
}
|
|
1704
1692
|
|
|
1705
|
-
|
|
1693
|
+
Py_DECREF_IMMORTAL(x);
|
|
1706
1694
|
}
|
|
1707
1695
|
|
|
1708
1696
|
if (slot2 != NULL) {
|
|
@@ -1713,7 +1701,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_OBJECT_LONG(
|
|
|
1713
1701
|
goto exit_binary_result_object;
|
|
1714
1702
|
}
|
|
1715
1703
|
|
|
1716
|
-
|
|
1704
|
+
Py_DECREF_IMMORTAL(x);
|
|
1717
1705
|
}
|
|
1718
1706
|
|
|
1719
1707
|
#if PYTHON_VERSION < 0x300
|
|
@@ -1850,8 +1838,8 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_OBJECT_LONG(PyObject *operand1, P
|
|
|
1850
1838
|
|
|
1851
1839
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
1852
1840
|
|
|
1853
|
-
if (
|
|
1854
|
-
long r = MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object);
|
|
1841
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
1842
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object));
|
|
1855
1843
|
|
|
1856
1844
|
clong_result = r;
|
|
1857
1845
|
goto exit_result_ok_clong;
|
|
@@ -1860,17 +1848,17 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_OBJECT_LONG(PyObject *operand1, P
|
|
|
1860
1848
|
{
|
|
1861
1849
|
PyLongObject *z;
|
|
1862
1850
|
|
|
1863
|
-
digit const *a_digits = operand1_long_object
|
|
1864
|
-
Py_ssize_t a_digit_count =
|
|
1865
|
-
bool a_negative =
|
|
1866
|
-
digit const *b_digits = operand2_long_object
|
|
1867
|
-
Py_ssize_t b_digit_count =
|
|
1868
|
-
bool b_negative =
|
|
1851
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
1852
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
1853
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
1854
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
1855
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
1856
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
1869
1857
|
|
|
1870
1858
|
if (a_negative) {
|
|
1871
1859
|
if (b_negative) {
|
|
1872
1860
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
1873
|
-
|
|
1861
|
+
Nuitka_LongFlipSign(z);
|
|
1874
1862
|
} else {
|
|
1875
1863
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
1876
1864
|
}
|
|
@@ -1950,7 +1938,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_LONG_OBJECT(
|
|
|
1950
1938
|
goto exit_binary_result_object;
|
|
1951
1939
|
}
|
|
1952
1940
|
|
|
1953
|
-
|
|
1941
|
+
Py_DECREF_IMMORTAL(x);
|
|
1954
1942
|
slot2 = NULL;
|
|
1955
1943
|
}
|
|
1956
1944
|
}
|
|
@@ -1962,7 +1950,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_LONG_OBJECT(
|
|
|
1962
1950
|
goto exit_binary_result_object;
|
|
1963
1951
|
}
|
|
1964
1952
|
|
|
1965
|
-
|
|
1953
|
+
Py_DECREF_IMMORTAL(x);
|
|
1966
1954
|
}
|
|
1967
1955
|
|
|
1968
1956
|
if (slot2 != NULL) {
|
|
@@ -1973,7 +1961,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_LONG_OBJECT(
|
|
|
1973
1961
|
goto exit_binary_result_object;
|
|
1974
1962
|
}
|
|
1975
1963
|
|
|
1976
|
-
|
|
1964
|
+
Py_DECREF_IMMORTAL(x);
|
|
1977
1965
|
}
|
|
1978
1966
|
|
|
1979
1967
|
#if PYTHON_VERSION < 0x300
|
|
@@ -2102,8 +2090,8 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LONG_OBJECT(PyObject *operand1, P
|
|
|
2102
2090
|
|
|
2103
2091
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
2104
2092
|
|
|
2105
|
-
if (
|
|
2106
|
-
long r = MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object);
|
|
2093
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
2094
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + MEDIUM_VALUE(operand2_long_object));
|
|
2107
2095
|
|
|
2108
2096
|
clong_result = r;
|
|
2109
2097
|
goto exit_result_ok_clong;
|
|
@@ -2112,17 +2100,17 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LONG_OBJECT(PyObject *operand1, P
|
|
|
2112
2100
|
{
|
|
2113
2101
|
PyLongObject *z;
|
|
2114
2102
|
|
|
2115
|
-
digit const *a_digits = operand1_long_object
|
|
2116
|
-
Py_ssize_t a_digit_count =
|
|
2117
|
-
bool a_negative =
|
|
2118
|
-
digit const *b_digits = operand2_long_object
|
|
2119
|
-
Py_ssize_t b_digit_count =
|
|
2120
|
-
bool b_negative =
|
|
2103
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
2104
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
2105
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
2106
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
2107
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
2108
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
2121
2109
|
|
|
2122
2110
|
if (a_negative) {
|
|
2123
2111
|
if (b_negative) {
|
|
2124
2112
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2125
|
-
|
|
2113
|
+
Nuitka_LongFlipSign(z);
|
|
2126
2114
|
} else {
|
|
2127
2115
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
2128
2116
|
}
|
|
@@ -2247,7 +2235,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_FLOAT(
|
|
|
2247
2235
|
goto exit_binary_result_object;
|
|
2248
2236
|
}
|
|
2249
2237
|
|
|
2250
|
-
|
|
2238
|
+
Py_DECREF_IMMORTAL(x);
|
|
2251
2239
|
}
|
|
2252
2240
|
|
|
2253
2241
|
if (slot2 != NULL) {
|
|
@@ -2258,7 +2246,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_FLOAT(
|
|
|
2258
2246
|
goto exit_binary_result_object;
|
|
2259
2247
|
}
|
|
2260
2248
|
|
|
2261
|
-
|
|
2249
|
+
Py_DECREF_IMMORTAL(x);
|
|
2262
2250
|
}
|
|
2263
2251
|
|
|
2264
2252
|
#if PYTHON_VERSION < 0x300
|
|
@@ -2446,7 +2434,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_FLOAT_OBJECT(
|
|
|
2446
2434
|
goto exit_binary_result_object;
|
|
2447
2435
|
}
|
|
2448
2436
|
|
|
2449
|
-
|
|
2437
|
+
Py_DECREF_IMMORTAL(x);
|
|
2450
2438
|
slot2 = NULL;
|
|
2451
2439
|
}
|
|
2452
2440
|
}
|
|
@@ -2458,7 +2446,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_FLOAT_OBJECT(
|
|
|
2458
2446
|
goto exit_binary_result_object;
|
|
2459
2447
|
}
|
|
2460
2448
|
|
|
2461
|
-
|
|
2449
|
+
Py_DECREF_IMMORTAL(x);
|
|
2462
2450
|
}
|
|
2463
2451
|
|
|
2464
2452
|
if (slot2 != NULL) {
|
|
@@ -2469,7 +2457,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_FLOAT_OBJECT(
|
|
|
2469
2457
|
goto exit_binary_result_object;
|
|
2470
2458
|
}
|
|
2471
2459
|
|
|
2472
|
-
|
|
2460
|
+
Py_DECREF_IMMORTAL(x);
|
|
2473
2461
|
}
|
|
2474
2462
|
|
|
2475
2463
|
#if PYTHON_VERSION < 0x300
|
|
@@ -2694,7 +2682,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_OBJECT_FLOAT
|
|
|
2694
2682
|
goto exit_binary_result_object;
|
|
2695
2683
|
}
|
|
2696
2684
|
|
|
2697
|
-
|
|
2685
|
+
Py_DECREF_IMMORTAL(x);
|
|
2698
2686
|
}
|
|
2699
2687
|
|
|
2700
2688
|
if (slot2 != NULL) {
|
|
@@ -2705,7 +2693,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_OBJECT_FLOAT
|
|
|
2705
2693
|
goto exit_binary_result_object;
|
|
2706
2694
|
}
|
|
2707
2695
|
|
|
2708
|
-
|
|
2696
|
+
Py_DECREF_IMMORTAL(x);
|
|
2709
2697
|
}
|
|
2710
2698
|
|
|
2711
2699
|
#if PYTHON_VERSION < 0x300
|
|
@@ -2901,7 +2889,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_FLOAT_OBJECT
|
|
|
2901
2889
|
goto exit_binary_result_object;
|
|
2902
2890
|
}
|
|
2903
2891
|
|
|
2904
|
-
|
|
2892
|
+
Py_DECREF_IMMORTAL(x);
|
|
2905
2893
|
slot2 = NULL;
|
|
2906
2894
|
}
|
|
2907
2895
|
}
|
|
@@ -2913,7 +2901,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_FLOAT_OBJECT
|
|
|
2913
2901
|
goto exit_binary_result_object;
|
|
2914
2902
|
}
|
|
2915
2903
|
|
|
2916
|
-
|
|
2904
|
+
Py_DECREF_IMMORTAL(x);
|
|
2917
2905
|
}
|
|
2918
2906
|
|
|
2919
2907
|
if (slot2 != NULL) {
|
|
@@ -2924,7 +2912,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_FLOAT_OBJECT
|
|
|
2924
2912
|
goto exit_binary_result_object;
|
|
2925
2913
|
}
|
|
2926
2914
|
|
|
2927
|
-
|
|
2915
|
+
Py_DECREF_IMMORTAL(x);
|
|
2928
2916
|
}
|
|
2929
2917
|
|
|
2930
2918
|
#if PYTHON_VERSION < 0x300
|
|
@@ -3102,7 +3090,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_FLOAT_LONG(PyObject *operand1, PyO
|
|
|
3102
3090
|
goto exit_binary_result_object;
|
|
3103
3091
|
}
|
|
3104
3092
|
|
|
3105
|
-
|
|
3093
|
+
Py_DECREF_IMMORTAL(x);
|
|
3106
3094
|
}
|
|
3107
3095
|
|
|
3108
3096
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -3157,7 +3145,7 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_FLOAT_LONG(PyObject *operand1, Py
|
|
|
3157
3145
|
goto exit_binary_result_object;
|
|
3158
3146
|
}
|
|
3159
3147
|
|
|
3160
|
-
|
|
3148
|
+
Py_DECREF_IMMORTAL(x);
|
|
3161
3149
|
}
|
|
3162
3150
|
|
|
3163
3151
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -3221,7 +3209,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_FLOAT_INT(PyObject *operand1, PyOb
|
|
|
3221
3209
|
goto exit_binary_result_object;
|
|
3222
3210
|
}
|
|
3223
3211
|
|
|
3224
|
-
|
|
3212
|
+
Py_DECREF_IMMORTAL(x);
|
|
3225
3213
|
}
|
|
3226
3214
|
|
|
3227
3215
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -3274,7 +3262,7 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_FLOAT_INT(PyObject *operand1, PyO
|
|
|
3274
3262
|
goto exit_binary_result_object;
|
|
3275
3263
|
}
|
|
3276
3264
|
|
|
3277
|
-
|
|
3265
|
+
Py_DECREF_IMMORTAL(x);
|
|
3278
3266
|
}
|
|
3279
3267
|
|
|
3280
3268
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -3335,7 +3323,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_LONG_INT(PyObject *operand1, PyObj
|
|
|
3335
3323
|
goto exit_binary_result_object;
|
|
3336
3324
|
}
|
|
3337
3325
|
|
|
3338
|
-
|
|
3326
|
+
Py_DECREF_IMMORTAL(x);
|
|
3339
3327
|
}
|
|
3340
3328
|
|
|
3341
3329
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -3388,7 +3376,7 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LONG_INT(PyObject *operand1, PyOb
|
|
|
3388
3376
|
goto exit_binary_result_object;
|
|
3389
3377
|
}
|
|
3390
3378
|
|
|
3391
|
-
|
|
3379
|
+
Py_DECREF_IMMORTAL(x);
|
|
3392
3380
|
}
|
|
3393
3381
|
|
|
3394
3382
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -3453,9 +3441,10 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_INT_CLONG(PyObject *operand1, long
|
|
|
3453
3441
|
clong_result = x;
|
|
3454
3442
|
goto exit_result_ok_clong;
|
|
3455
3443
|
}
|
|
3444
|
+
|
|
3456
3445
|
{
|
|
3457
3446
|
PyObject *operand1_object = operand1;
|
|
3458
|
-
PyObject *operand2_object =
|
|
3447
|
+
PyObject *operand2_object = Nuitka_PyLong_FromLong(operand2);
|
|
3459
3448
|
|
|
3460
3449
|
PyObject *r = PyLong_Type.tp_as_number->nb_add(operand1_object, operand2_object);
|
|
3461
3450
|
assert(r != Py_NotImplemented);
|
|
@@ -3467,7 +3456,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_INT_CLONG(PyObject *operand1, long
|
|
|
3467
3456
|
}
|
|
3468
3457
|
|
|
3469
3458
|
exit_result_ok_clong:
|
|
3470
|
-
result =
|
|
3459
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
3471
3460
|
goto exit_result_ok;
|
|
3472
3461
|
|
|
3473
3462
|
exit_result_object:
|
|
@@ -3558,8 +3547,8 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_LONG_DIGIT(PyObject *operand1, lon
|
|
|
3558
3547
|
|
|
3559
3548
|
PyLongObject *operand1_long_object = (PyLongObject *)operand1;
|
|
3560
3549
|
|
|
3561
|
-
if (
|
|
3562
|
-
long r = MEDIUM_VALUE(operand1_long_object) + (sdigit)operand2;
|
|
3550
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && (operand2 == 0 ? 0 : 1) <= 1) {
|
|
3551
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + (sdigit)operand2);
|
|
3563
3552
|
|
|
3564
3553
|
clong_result = r;
|
|
3565
3554
|
goto exit_result_ok_clong;
|
|
@@ -3568,9 +3557,9 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_LONG_DIGIT(PyObject *operand1, lon
|
|
|
3568
3557
|
{
|
|
3569
3558
|
PyLongObject *z;
|
|
3570
3559
|
|
|
3571
|
-
digit const *a_digits = operand1_long_object
|
|
3572
|
-
Py_ssize_t a_digit_count =
|
|
3573
|
-
bool a_negative =
|
|
3560
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
3561
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
3562
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
3574
3563
|
digit const *b_digits = (digit *)&operand2;
|
|
3575
3564
|
Py_ssize_t b_digit_count = (operand2 == 0 ? 0 : 1);
|
|
3576
3565
|
bool b_negative = operand2 < 0;
|
|
@@ -3578,7 +3567,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_LONG_DIGIT(PyObject *operand1, lon
|
|
|
3578
3567
|
if (a_negative) {
|
|
3579
3568
|
if (b_negative) {
|
|
3580
3569
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
3581
|
-
|
|
3570
|
+
Nuitka_LongFlipSign(z);
|
|
3582
3571
|
} else {
|
|
3583
3572
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
3584
3573
|
}
|
|
@@ -3638,8 +3627,8 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LONG_DIGIT(PyObject *operand1, lo
|
|
|
3638
3627
|
|
|
3639
3628
|
PyLongObject *operand1_long_object = (PyLongObject *)operand1;
|
|
3640
3629
|
|
|
3641
|
-
if (
|
|
3642
|
-
long r = MEDIUM_VALUE(operand1_long_object) + (sdigit)operand2;
|
|
3630
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && (operand2 == 0 ? 0 : 1) <= 1) {
|
|
3631
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + (sdigit)operand2);
|
|
3643
3632
|
|
|
3644
3633
|
clong_result = r;
|
|
3645
3634
|
goto exit_result_ok_clong;
|
|
@@ -3648,9 +3637,9 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LONG_DIGIT(PyObject *operand1, lo
|
|
|
3648
3637
|
{
|
|
3649
3638
|
PyLongObject *z;
|
|
3650
3639
|
|
|
3651
|
-
digit const *a_digits = operand1_long_object
|
|
3652
|
-
Py_ssize_t a_digit_count =
|
|
3653
|
-
bool a_negative =
|
|
3640
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
3641
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
3642
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
3654
3643
|
digit const *b_digits = (digit *)&operand2;
|
|
3655
3644
|
Py_ssize_t b_digit_count = (operand2 == 0 ? 0 : 1);
|
|
3656
3645
|
bool b_negative = operand2 < 0;
|
|
@@ -3658,7 +3647,7 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LONG_DIGIT(PyObject *operand1, lo
|
|
|
3658
3647
|
if (a_negative) {
|
|
3659
3648
|
if (b_negative) {
|
|
3660
3649
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
3661
|
-
|
|
3650
|
+
Nuitka_LongFlipSign(z);
|
|
3662
3651
|
} else {
|
|
3663
3652
|
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
3664
3653
|
}
|
|
@@ -3697,6 +3686,219 @@ nuitka_bool BINARY_OPERATION_ADD_NBOOL_LONG_DIGIT(PyObject *operand1, long opera
|
|
|
3697
3686
|
return _BINARY_OPERATION_ADD_NBOOL_LONG_DIGIT(operand1, operand2);
|
|
3698
3687
|
}
|
|
3699
3688
|
|
|
3689
|
+
/* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "CLONG" to C platform long value. */
|
|
3690
|
+
static PyObject *_BINARY_OPERATION_ADD_OBJECT_LONG_CLONG(PyObject *operand1, long operand2) {
|
|
3691
|
+
CHECK_OBJECT(operand1);
|
|
3692
|
+
assert(PyLong_CheckExact(operand1));
|
|
3693
|
+
|
|
3694
|
+
PyObject *result;
|
|
3695
|
+
|
|
3696
|
+
// Not every code path will make use of all possible results.
|
|
3697
|
+
#ifdef _MSC_VER
|
|
3698
|
+
#pragma warning(push)
|
|
3699
|
+
#pragma warning(disable : 4101)
|
|
3700
|
+
#endif
|
|
3701
|
+
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
3702
|
+
NUITKA_MAY_BE_UNUSED long clong_result;
|
|
3703
|
+
#ifdef _MSC_VER
|
|
3704
|
+
#pragma warning(pop)
|
|
3705
|
+
#endif
|
|
3706
|
+
|
|
3707
|
+
PyLongObject *operand1_long_object = (PyLongObject *)operand1;
|
|
3708
|
+
|
|
3709
|
+
bool operand2_is_negative;
|
|
3710
|
+
unsigned long operand2_abs_ival;
|
|
3711
|
+
|
|
3712
|
+
if (operand2 < 0) {
|
|
3713
|
+
operand2_abs_ival = (unsigned long)(-1 - operand2) + 1;
|
|
3714
|
+
operand2_is_negative = true;
|
|
3715
|
+
} else {
|
|
3716
|
+
operand2_abs_ival = (unsigned long)operand2;
|
|
3717
|
+
operand2_is_negative = false;
|
|
3718
|
+
}
|
|
3719
|
+
|
|
3720
|
+
Py_ssize_t operand2_digit_count = 0;
|
|
3721
|
+
digit operand2_digits[5] = {0}; // Could be more minimal and depend on sizeof(digit)
|
|
3722
|
+
{
|
|
3723
|
+
unsigned long t = operand2_abs_ival;
|
|
3724
|
+
|
|
3725
|
+
while (t != 0) {
|
|
3726
|
+
operand2_digit_count += 1;
|
|
3727
|
+
assert(operand2_digit_count <= (Py_ssize_t)(sizeof(operand2_digit_count) / sizeof(digit)));
|
|
3728
|
+
|
|
3729
|
+
operand2_digits[operand2_digit_count] = (digit)(t & PyLong_MASK);
|
|
3730
|
+
t >>= PyLong_SHIFT;
|
|
3731
|
+
}
|
|
3732
|
+
}
|
|
3733
|
+
|
|
3734
|
+
NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
|
|
3735
|
+
operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
|
|
3736
|
+
|
|
3737
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && operand2_digit_count <= 1) {
|
|
3738
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + (sdigit)operand2);
|
|
3739
|
+
|
|
3740
|
+
clong_result = r;
|
|
3741
|
+
goto exit_result_ok_clong;
|
|
3742
|
+
}
|
|
3743
|
+
|
|
3744
|
+
{
|
|
3745
|
+
PyLongObject *z;
|
|
3746
|
+
|
|
3747
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
3748
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
3749
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
3750
|
+
digit const *b_digits = operand2_digits;
|
|
3751
|
+
Py_ssize_t b_digit_count = operand2_digit_count;
|
|
3752
|
+
bool b_negative = operand2_is_negative;
|
|
3753
|
+
|
|
3754
|
+
if (a_negative) {
|
|
3755
|
+
if (b_negative) {
|
|
3756
|
+
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
3757
|
+
Nuitka_LongFlipSign(z);
|
|
3758
|
+
} else {
|
|
3759
|
+
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
3760
|
+
}
|
|
3761
|
+
} else {
|
|
3762
|
+
if (b_negative) {
|
|
3763
|
+
z = _Nuitka_LongSubDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
3764
|
+
} else {
|
|
3765
|
+
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
3766
|
+
}
|
|
3767
|
+
}
|
|
3768
|
+
|
|
3769
|
+
obj_result = (PyObject *)z;
|
|
3770
|
+
goto exit_result_object;
|
|
3771
|
+
}
|
|
3772
|
+
|
|
3773
|
+
exit_result_object:
|
|
3774
|
+
if (unlikely(obj_result == NULL)) {
|
|
3775
|
+
goto exit_result_exception;
|
|
3776
|
+
}
|
|
3777
|
+
result = obj_result;
|
|
3778
|
+
goto exit_result_ok;
|
|
3779
|
+
|
|
3780
|
+
exit_result_ok_clong:
|
|
3781
|
+
result = Nuitka_LongFromCLong(clong_result);
|
|
3782
|
+
goto exit_result_ok;
|
|
3783
|
+
|
|
3784
|
+
exit_result_ok:
|
|
3785
|
+
return result;
|
|
3786
|
+
|
|
3787
|
+
exit_result_exception:
|
|
3788
|
+
return NULL;
|
|
3789
|
+
}
|
|
3790
|
+
|
|
3791
|
+
PyObject *BINARY_OPERATION_ADD_OBJECT_LONG_CLONG(PyObject *operand1, long operand2) {
|
|
3792
|
+
return _BINARY_OPERATION_ADD_OBJECT_LONG_CLONG(operand1, operand2);
|
|
3793
|
+
}
|
|
3794
|
+
|
|
3795
|
+
/* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "CLONG" to C platform long value. */
|
|
3796
|
+
static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
|
|
3797
|
+
CHECK_OBJECT(operand1);
|
|
3798
|
+
assert(PyLong_CheckExact(operand1));
|
|
3799
|
+
|
|
3800
|
+
nuitka_bool result;
|
|
3801
|
+
|
|
3802
|
+
// Not every code path will make use of all possible results.
|
|
3803
|
+
#ifdef _MSC_VER
|
|
3804
|
+
#pragma warning(push)
|
|
3805
|
+
#pragma warning(disable : 4101)
|
|
3806
|
+
#endif
|
|
3807
|
+
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
3808
|
+
NUITKA_MAY_BE_UNUSED long clong_result;
|
|
3809
|
+
#ifdef _MSC_VER
|
|
3810
|
+
#pragma warning(pop)
|
|
3811
|
+
#endif
|
|
3812
|
+
|
|
3813
|
+
PyLongObject *operand1_long_object = (PyLongObject *)operand1;
|
|
3814
|
+
|
|
3815
|
+
bool operand2_is_negative;
|
|
3816
|
+
unsigned long operand2_abs_ival;
|
|
3817
|
+
|
|
3818
|
+
if (operand2 < 0) {
|
|
3819
|
+
operand2_abs_ival = (unsigned long)(-1 - operand2) + 1;
|
|
3820
|
+
operand2_is_negative = true;
|
|
3821
|
+
} else {
|
|
3822
|
+
operand2_abs_ival = (unsigned long)operand2;
|
|
3823
|
+
operand2_is_negative = false;
|
|
3824
|
+
}
|
|
3825
|
+
|
|
3826
|
+
Py_ssize_t operand2_digit_count = 0;
|
|
3827
|
+
digit operand2_digits[5] = {0}; // Could be more minimal and depend on sizeof(digit)
|
|
3828
|
+
{
|
|
3829
|
+
unsigned long t = operand2_abs_ival;
|
|
3830
|
+
|
|
3831
|
+
while (t != 0) {
|
|
3832
|
+
operand2_digit_count += 1;
|
|
3833
|
+
assert(operand2_digit_count <= (Py_ssize_t)(sizeof(operand2_digit_count) / sizeof(digit)));
|
|
3834
|
+
|
|
3835
|
+
operand2_digits[operand2_digit_count] = (digit)(t & PyLong_MASK);
|
|
3836
|
+
t >>= PyLong_SHIFT;
|
|
3837
|
+
}
|
|
3838
|
+
}
|
|
3839
|
+
|
|
3840
|
+
NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
|
|
3841
|
+
operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
|
|
3842
|
+
|
|
3843
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && operand2_digit_count <= 1) {
|
|
3844
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) + (sdigit)operand2);
|
|
3845
|
+
|
|
3846
|
+
clong_result = r;
|
|
3847
|
+
goto exit_result_ok_clong;
|
|
3848
|
+
}
|
|
3849
|
+
|
|
3850
|
+
{
|
|
3851
|
+
PyLongObject *z;
|
|
3852
|
+
|
|
3853
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
3854
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
3855
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
3856
|
+
digit const *b_digits = operand2_digits;
|
|
3857
|
+
Py_ssize_t b_digit_count = operand2_digit_count;
|
|
3858
|
+
bool b_negative = operand2_is_negative;
|
|
3859
|
+
|
|
3860
|
+
if (a_negative) {
|
|
3861
|
+
if (b_negative) {
|
|
3862
|
+
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
3863
|
+
Nuitka_LongFlipSign(z);
|
|
3864
|
+
} else {
|
|
3865
|
+
z = _Nuitka_LongSubDigits(b_digits, b_digit_count, a_digits, a_digit_count);
|
|
3866
|
+
}
|
|
3867
|
+
} else {
|
|
3868
|
+
if (b_negative) {
|
|
3869
|
+
z = _Nuitka_LongSubDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
3870
|
+
} else {
|
|
3871
|
+
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
3872
|
+
}
|
|
3873
|
+
}
|
|
3874
|
+
|
|
3875
|
+
obj_result = (PyObject *)z;
|
|
3876
|
+
goto exit_result_object;
|
|
3877
|
+
}
|
|
3878
|
+
|
|
3879
|
+
exit_result_object:
|
|
3880
|
+
if (unlikely(obj_result == NULL)) {
|
|
3881
|
+
goto exit_result_exception;
|
|
3882
|
+
}
|
|
3883
|
+
result = CHECK_IF_TRUE(obj_result) ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE;
|
|
3884
|
+
Py_DECREF(obj_result);
|
|
3885
|
+
goto exit_result_ok;
|
|
3886
|
+
|
|
3887
|
+
exit_result_ok_clong:
|
|
3888
|
+
result = clong_result != 0 ? NUITKA_BOOL_TRUE : NUITKA_BOOL_FALSE;
|
|
3889
|
+
goto exit_result_ok;
|
|
3890
|
+
|
|
3891
|
+
exit_result_ok:
|
|
3892
|
+
return result;
|
|
3893
|
+
|
|
3894
|
+
exit_result_exception:
|
|
3895
|
+
return NUITKA_BOOL_EXCEPTION;
|
|
3896
|
+
}
|
|
3897
|
+
|
|
3898
|
+
nuitka_bool BINARY_OPERATION_ADD_NBOOL_LONG_CLONG(PyObject *operand1, long operand2) {
|
|
3899
|
+
return _BINARY_OPERATION_ADD_NBOOL_LONG_CLONG(operand1, operand2);
|
|
3900
|
+
}
|
|
3901
|
+
|
|
3700
3902
|
/* Code referring to "FLOAT" corresponds to Python 'float' and "CFLOAT" to C platform float value. */
|
|
3701
3903
|
static PyObject *_BINARY_OPERATION_ADD_OBJECT_FLOAT_CFLOAT(PyObject *operand1, double operand2) {
|
|
3702
3904
|
CHECK_OBJECT(operand1);
|
|
@@ -3845,7 +4047,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_STR(Py
|
|
|
3845
4047
|
goto exit_binary_result_object;
|
|
3846
4048
|
}
|
|
3847
4049
|
|
|
3848
|
-
|
|
4050
|
+
Py_DECREF_IMMORTAL(x);
|
|
3849
4051
|
}
|
|
3850
4052
|
|
|
3851
4053
|
#if PYTHON_VERSION < 0x300
|
|
@@ -3983,7 +4185,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_STR_OBJECT(Py
|
|
|
3983
4185
|
goto exit_binary_result_object;
|
|
3984
4186
|
}
|
|
3985
4187
|
|
|
3986
|
-
|
|
4188
|
+
Py_DECREF_IMMORTAL(x);
|
|
3987
4189
|
}
|
|
3988
4190
|
|
|
3989
4191
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4150,7 +4352,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_UNICOD
|
|
|
4150
4352
|
goto exit_binary_result_object;
|
|
4151
4353
|
}
|
|
4152
4354
|
|
|
4153
|
-
|
|
4355
|
+
Py_DECREF_IMMORTAL(x);
|
|
4154
4356
|
}
|
|
4155
4357
|
|
|
4156
4358
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4293,7 +4495,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_UNICODE_OBJEC
|
|
|
4293
4495
|
goto exit_binary_result_object;
|
|
4294
4496
|
}
|
|
4295
4497
|
|
|
4296
|
-
|
|
4498
|
+
Py_DECREF_IMMORTAL(x);
|
|
4297
4499
|
}
|
|
4298
4500
|
|
|
4299
4501
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4461,7 +4663,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_BYTES(
|
|
|
4461
4663
|
goto exit_binary_result_object;
|
|
4462
4664
|
}
|
|
4463
4665
|
|
|
4464
|
-
|
|
4666
|
+
Py_DECREF_IMMORTAL(x);
|
|
4465
4667
|
}
|
|
4466
4668
|
|
|
4467
4669
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4600,7 +4802,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_BYTES_OBJECT(
|
|
|
4600
4802
|
goto exit_binary_result_object;
|
|
4601
4803
|
}
|
|
4602
4804
|
|
|
4603
|
-
|
|
4805
|
+
Py_DECREF_IMMORTAL(x);
|
|
4604
4806
|
}
|
|
4605
4807
|
|
|
4606
4808
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4714,7 +4916,10 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_TUPLE_TUPLE(PyObject *operand1, Py
|
|
|
4714
4916
|
// Not every code path will make use of all possible results.
|
|
4715
4917
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
4716
4918
|
|
|
4717
|
-
|
|
4919
|
+
// TODO: Have this more globally passed in
|
|
4920
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
4921
|
+
|
|
4922
|
+
PyObject *x = TUPLE_CONCAT(tstate, operand1, operand2);
|
|
4718
4923
|
|
|
4719
4924
|
assert(x != Py_NotImplemented);
|
|
4720
4925
|
obj_result = x;
|
|
@@ -4764,7 +4969,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_TUPLE(
|
|
|
4764
4969
|
goto exit_binary_result_object;
|
|
4765
4970
|
}
|
|
4766
4971
|
|
|
4767
|
-
|
|
4972
|
+
Py_DECREF_IMMORTAL(x);
|
|
4768
4973
|
}
|
|
4769
4974
|
|
|
4770
4975
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4843,7 +5048,10 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_TUPLE(PyObject *operand1, P
|
|
|
4843
5048
|
// Not every code path will make use of all possible results.
|
|
4844
5049
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
4845
5050
|
|
|
4846
|
-
|
|
5051
|
+
// TODO: Have this more globally passed in
|
|
5052
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
5053
|
+
|
|
5054
|
+
PyObject *x = TUPLE_CONCAT(tstate, operand1, operand2);
|
|
4847
5055
|
|
|
4848
5056
|
assert(x != Py_NotImplemented);
|
|
4849
5057
|
obj_result = x;
|
|
@@ -4901,7 +5109,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_TUPLE_OBJECT(
|
|
|
4901
5109
|
goto exit_binary_result_object;
|
|
4902
5110
|
}
|
|
4903
5111
|
|
|
4904
|
-
|
|
5112
|
+
Py_DECREF_IMMORTAL(x);
|
|
4905
5113
|
}
|
|
4906
5114
|
|
|
4907
5115
|
#if PYTHON_VERSION < 0x300
|
|
@@ -4975,7 +5183,10 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_TUPLE_OBJECT(PyObject *operand1, P
|
|
|
4975
5183
|
// Not every code path will make use of all possible results.
|
|
4976
5184
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
4977
5185
|
|
|
4978
|
-
|
|
5186
|
+
// TODO: Have this more globally passed in
|
|
5187
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
5188
|
+
|
|
5189
|
+
PyObject *x = TUPLE_CONCAT(tstate, operand1, operand2);
|
|
4979
5190
|
|
|
4980
5191
|
assert(x != Py_NotImplemented);
|
|
4981
5192
|
obj_result = x;
|
|
@@ -5014,7 +5225,10 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_LIST_LIST(PyObject *operand1, PyOb
|
|
|
5014
5225
|
// Not every code path will make use of all possible results.
|
|
5015
5226
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
5016
5227
|
|
|
5017
|
-
|
|
5228
|
+
// TODO: Have this more globally passed in
|
|
5229
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
5230
|
+
|
|
5231
|
+
PyObject *x = LIST_CONCAT(tstate, operand1, operand2);
|
|
5018
5232
|
assert(x != Py_NotImplemented);
|
|
5019
5233
|
|
|
5020
5234
|
obj_result = x;
|
|
@@ -5063,7 +5277,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_OBJECT_LIST(P
|
|
|
5063
5277
|
goto exit_binary_result_object;
|
|
5064
5278
|
}
|
|
5065
5279
|
|
|
5066
|
-
|
|
5280
|
+
Py_DECREF_IMMORTAL(x);
|
|
5067
5281
|
}
|
|
5068
5282
|
|
|
5069
5283
|
#if PYTHON_VERSION < 0x300
|
|
@@ -5142,7 +5356,10 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_LIST(PyObject *operand1, Py
|
|
|
5142
5356
|
// Not every code path will make use of all possible results.
|
|
5143
5357
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
5144
5358
|
|
|
5145
|
-
|
|
5359
|
+
// TODO: Have this more globally passed in
|
|
5360
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
5361
|
+
|
|
5362
|
+
PyObject *x = LIST_CONCAT(tstate, operand1, operand2);
|
|
5146
5363
|
assert(x != Py_NotImplemented);
|
|
5147
5364
|
|
|
5148
5365
|
obj_result = x;
|
|
@@ -5199,7 +5416,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_ADD_OBJECT_LIST_OBJECT(P
|
|
|
5199
5416
|
goto exit_binary_result_object;
|
|
5200
5417
|
}
|
|
5201
5418
|
|
|
5202
|
-
|
|
5419
|
+
Py_DECREF_IMMORTAL(x);
|
|
5203
5420
|
}
|
|
5204
5421
|
|
|
5205
5422
|
#if PYTHON_VERSION < 0x300
|
|
@@ -5273,7 +5490,10 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_LIST_OBJECT(PyObject *operand1, Py
|
|
|
5273
5490
|
// Not every code path will make use of all possible results.
|
|
5274
5491
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
5275
5492
|
|
|
5276
|
-
|
|
5493
|
+
// TODO: Have this more globally passed in
|
|
5494
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
5495
|
+
|
|
5496
|
+
PyObject *x = LIST_CONCAT(tstate, operand1, operand2);
|
|
5277
5497
|
assert(x != Py_NotImplemented);
|
|
5278
5498
|
|
|
5279
5499
|
obj_result = x;
|
|
@@ -5312,7 +5532,10 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LIST_LIST(PyObject *operand1, PyO
|
|
|
5312
5532
|
// Not every code path will make use of all possible results.
|
|
5313
5533
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
5314
5534
|
|
|
5315
|
-
|
|
5535
|
+
// TODO: Have this more globally passed in
|
|
5536
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
5537
|
+
|
|
5538
|
+
PyObject *x = LIST_CONCAT(tstate, operand1, operand2);
|
|
5316
5539
|
assert(x != Py_NotImplemented);
|
|
5317
5540
|
|
|
5318
5541
|
obj_result = x;
|
|
@@ -5363,7 +5586,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_OBJECT_LIST(
|
|
|
5363
5586
|
goto exit_binary_result_object;
|
|
5364
5587
|
}
|
|
5365
5588
|
|
|
5366
|
-
|
|
5589
|
+
Py_DECREF_IMMORTAL(x);
|
|
5367
5590
|
}
|
|
5368
5591
|
|
|
5369
5592
|
#if PYTHON_VERSION < 0x300
|
|
@@ -5450,7 +5673,10 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_OBJECT_LIST(PyObject *operand1, P
|
|
|
5450
5673
|
// Not every code path will make use of all possible results.
|
|
5451
5674
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
5452
5675
|
|
|
5453
|
-
|
|
5676
|
+
// TODO: Have this more globally passed in
|
|
5677
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
5678
|
+
|
|
5679
|
+
PyObject *x = LIST_CONCAT(tstate, operand1, operand2);
|
|
5454
5680
|
assert(x != Py_NotImplemented);
|
|
5455
5681
|
|
|
5456
5682
|
obj_result = x;
|
|
@@ -5509,7 +5735,7 @@ static HEDLEY_NEVER_INLINE nuitka_bool __BINARY_OPERATION_ADD_NBOOL_LIST_OBJECT(
|
|
|
5509
5735
|
goto exit_binary_result_object;
|
|
5510
5736
|
}
|
|
5511
5737
|
|
|
5512
|
-
|
|
5738
|
+
Py_DECREF_IMMORTAL(x);
|
|
5513
5739
|
}
|
|
5514
5740
|
|
|
5515
5741
|
#if PYTHON_VERSION < 0x300
|
|
@@ -5591,7 +5817,10 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_LIST_OBJECT(PyObject *operand1, P
|
|
|
5591
5817
|
// Not every code path will make use of all possible results.
|
|
5592
5818
|
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
5593
5819
|
|
|
5594
|
-
|
|
5820
|
+
// TODO: Have this more globally passed in
|
|
5821
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
5822
|
+
|
|
5823
|
+
PyObject *x = LIST_CONCAT(tstate, operand1, operand2);
|
|
5595
5824
|
assert(x != Py_NotImplemented);
|
|
5596
5825
|
|
|
5597
5826
|
obj_result = x;
|
|
@@ -5819,6 +6048,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_OBJECT(PyObject *operand1,
|
|
|
5819
6048
|
clong_result = x;
|
|
5820
6049
|
goto exit_result_ok_clong;
|
|
5821
6050
|
}
|
|
6051
|
+
|
|
5822
6052
|
{
|
|
5823
6053
|
PyObject *operand1_object = operand1;
|
|
5824
6054
|
PyObject *operand2_object = operand2;
|
|
@@ -5831,7 +6061,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_OBJECT(PyObject *operand1,
|
|
|
5831
6061
|
}
|
|
5832
6062
|
|
|
5833
6063
|
exit_result_ok_clong:
|
|
5834
|
-
result =
|
|
6064
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
5835
6065
|
goto exit_result_ok;
|
|
5836
6066
|
|
|
5837
6067
|
exit_result_object:
|
|
@@ -5886,7 +6116,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_OBJECT(PyObject *operand1,
|
|
|
5886
6116
|
goto exit_binary_result_object;
|
|
5887
6117
|
}
|
|
5888
6118
|
|
|
5889
|
-
|
|
6119
|
+
Py_DECREF_IMMORTAL(x);
|
|
5890
6120
|
slot2 = NULL;
|
|
5891
6121
|
}
|
|
5892
6122
|
}
|
|
@@ -5898,7 +6128,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_OBJECT(PyObject *operand1,
|
|
|
5898
6128
|
goto exit_binary_result_object;
|
|
5899
6129
|
}
|
|
5900
6130
|
|
|
5901
|
-
|
|
6131
|
+
Py_DECREF_IMMORTAL(x);
|
|
5902
6132
|
}
|
|
5903
6133
|
|
|
5904
6134
|
if (slot2 != NULL) {
|
|
@@ -5909,7 +6139,7 @@ static PyObject *_BINARY_OPERATION_ADD_OBJECT_OBJECT_OBJECT(PyObject *operand1,
|
|
|
5909
6139
|
goto exit_binary_result_object;
|
|
5910
6140
|
}
|
|
5911
6141
|
|
|
5912
|
-
|
|
6142
|
+
Py_DECREF_IMMORTAL(x);
|
|
5913
6143
|
}
|
|
5914
6144
|
|
|
5915
6145
|
#if PYTHON_VERSION < 0x300
|
|
@@ -6096,7 +6326,7 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_OBJECT_OBJECT(PyObject *operand1,
|
|
|
6096
6326
|
goto exit_binary_result_object;
|
|
6097
6327
|
}
|
|
6098
6328
|
|
|
6099
|
-
|
|
6329
|
+
Py_DECREF_IMMORTAL(x);
|
|
6100
6330
|
slot2 = NULL;
|
|
6101
6331
|
}
|
|
6102
6332
|
}
|
|
@@ -6108,7 +6338,7 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_OBJECT_OBJECT(PyObject *operand1,
|
|
|
6108
6338
|
goto exit_binary_result_object;
|
|
6109
6339
|
}
|
|
6110
6340
|
|
|
6111
|
-
|
|
6341
|
+
Py_DECREF_IMMORTAL(x);
|
|
6112
6342
|
}
|
|
6113
6343
|
|
|
6114
6344
|
if (slot2 != NULL) {
|
|
@@ -6119,7 +6349,7 @@ static nuitka_bool _BINARY_OPERATION_ADD_NBOOL_OBJECT_OBJECT(PyObject *operand1,
|
|
|
6119
6349
|
goto exit_binary_result_object;
|
|
6120
6350
|
}
|
|
6121
6351
|
|
|
6122
|
-
|
|
6352
|
+
Py_DECREF_IMMORTAL(x);
|
|
6123
6353
|
}
|
|
6124
6354
|
|
|
6125
6355
|
#if PYTHON_VERSION < 0x300
|
|
@@ -6230,3 +6460,18 @@ exit_binary_exception:
|
|
|
6230
6460
|
nuitka_bool BINARY_OPERATION_ADD_NBOOL_OBJECT_OBJECT(PyObject *operand1, PyObject *operand2) {
|
|
6231
6461
|
return _BINARY_OPERATION_ADD_NBOOL_OBJECT_OBJECT(operand1, operand2);
|
|
6232
6462
|
}
|
|
6463
|
+
|
|
6464
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
6465
|
+
// integrates with CPython, but also works on its own.
|
|
6466
|
+
//
|
|
6467
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
6468
|
+
// you may not use this file except in compliance with the License.
|
|
6469
|
+
// You may obtain a copy of the License at
|
|
6470
|
+
//
|
|
6471
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
6472
|
+
//
|
|
6473
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
6474
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
6475
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
6476
|
+
// See the License for the specific language governing permissions and
|
|
6477
|
+
// limitations under the License.
|