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. */
|
|
@@ -61,6 +46,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_INT_INT(PyObject *operand1, PyObje
|
|
|
61
46
|
clong_result = x;
|
|
62
47
|
goto exit_result_ok_clong;
|
|
63
48
|
}
|
|
49
|
+
|
|
64
50
|
{
|
|
65
51
|
PyObject *operand1_object = operand1;
|
|
66
52
|
PyObject *operand2_object = operand2;
|
|
@@ -73,7 +59,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_INT_INT(PyObject *operand1, PyObje
|
|
|
73
59
|
}
|
|
74
60
|
|
|
75
61
|
exit_result_ok_clong:
|
|
76
|
-
result =
|
|
62
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
77
63
|
goto exit_result_ok;
|
|
78
64
|
|
|
79
65
|
exit_result_object:
|
|
@@ -132,7 +118,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_OBJECT_INT(Py
|
|
|
132
118
|
goto exit_binary_result_object;
|
|
133
119
|
}
|
|
134
120
|
|
|
135
|
-
|
|
121
|
+
Py_DECREF_IMMORTAL(x);
|
|
136
122
|
}
|
|
137
123
|
|
|
138
124
|
if (slot2 != NULL) {
|
|
@@ -143,7 +129,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_OBJECT_INT(Py
|
|
|
143
129
|
goto exit_binary_result_object;
|
|
144
130
|
}
|
|
145
131
|
|
|
146
|
-
|
|
132
|
+
Py_DECREF_IMMORTAL(x);
|
|
147
133
|
}
|
|
148
134
|
|
|
149
135
|
#if PYTHON_VERSION < 0x300
|
|
@@ -268,6 +254,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_OBJECT_INT(PyObject *operand1, PyO
|
|
|
268
254
|
clong_result = x;
|
|
269
255
|
goto exit_result_ok_clong;
|
|
270
256
|
}
|
|
257
|
+
|
|
271
258
|
{
|
|
272
259
|
PyObject *operand1_object = operand1;
|
|
273
260
|
PyObject *operand2_object = operand2;
|
|
@@ -280,7 +267,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_OBJECT_INT(PyObject *operand1, PyO
|
|
|
280
267
|
}
|
|
281
268
|
|
|
282
269
|
exit_result_ok_clong:
|
|
283
|
-
result =
|
|
270
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
284
271
|
goto exit_result_ok;
|
|
285
272
|
|
|
286
273
|
exit_result_object:
|
|
@@ -343,7 +330,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_INT_OBJECT(Py
|
|
|
343
330
|
goto exit_binary_result_object;
|
|
344
331
|
}
|
|
345
332
|
|
|
346
|
-
|
|
333
|
+
Py_DECREF_IMMORTAL(x);
|
|
347
334
|
slot2 = NULL;
|
|
348
335
|
}
|
|
349
336
|
}
|
|
@@ -355,7 +342,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_INT_OBJECT(Py
|
|
|
355
342
|
goto exit_binary_result_object;
|
|
356
343
|
}
|
|
357
344
|
|
|
358
|
-
|
|
345
|
+
Py_DECREF_IMMORTAL(x);
|
|
359
346
|
}
|
|
360
347
|
|
|
361
348
|
if (slot2 != NULL) {
|
|
@@ -366,7 +353,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_INT_OBJECT(Py
|
|
|
366
353
|
goto exit_binary_result_object;
|
|
367
354
|
}
|
|
368
355
|
|
|
369
|
-
|
|
356
|
+
Py_DECREF_IMMORTAL(x);
|
|
370
357
|
}
|
|
371
358
|
|
|
372
359
|
#if PYTHON_VERSION < 0x300
|
|
@@ -491,6 +478,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_INT_OBJECT(PyObject *operand1, PyO
|
|
|
491
478
|
clong_result = x;
|
|
492
479
|
goto exit_result_ok_clong;
|
|
493
480
|
}
|
|
481
|
+
|
|
494
482
|
{
|
|
495
483
|
PyObject *operand1_object = operand1;
|
|
496
484
|
PyObject *operand2_object = operand2;
|
|
@@ -503,7 +491,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_INT_OBJECT(PyObject *operand1, PyO
|
|
|
503
491
|
}
|
|
504
492
|
|
|
505
493
|
exit_result_ok_clong:
|
|
506
|
-
result =
|
|
494
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
507
495
|
goto exit_result_ok;
|
|
508
496
|
|
|
509
497
|
exit_result_object:
|
|
@@ -552,8 +540,8 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_LONG(PyObject *operand1, PyOb
|
|
|
552
540
|
|
|
553
541
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
554
542
|
|
|
555
|
-
if (
|
|
556
|
-
long r = MEDIUM_VALUE(operand1_long_object) - MEDIUM_VALUE(operand2_long_object);
|
|
543
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
544
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) - MEDIUM_VALUE(operand2_long_object));
|
|
557
545
|
|
|
558
546
|
clong_result = r;
|
|
559
547
|
goto exit_result_ok_clong;
|
|
@@ -562,12 +550,12 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_LONG(PyObject *operand1, PyOb
|
|
|
562
550
|
{
|
|
563
551
|
PyLongObject *z;
|
|
564
552
|
|
|
565
|
-
digit const *a_digits = operand1_long_object
|
|
566
|
-
Py_ssize_t a_digit_count =
|
|
567
|
-
bool a_negative =
|
|
568
|
-
digit const *b_digits = operand2_long_object
|
|
569
|
-
Py_ssize_t b_digit_count =
|
|
570
|
-
bool b_negative =
|
|
553
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
554
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
555
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
556
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
557
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
558
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
571
559
|
|
|
572
560
|
if (a_negative) {
|
|
573
561
|
if (b_negative) {
|
|
@@ -576,7 +564,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_LONG(PyObject *operand1, PyOb
|
|
|
576
564
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
577
565
|
}
|
|
578
566
|
|
|
579
|
-
|
|
567
|
+
Nuitka_LongFlipSign(z);
|
|
580
568
|
} else {
|
|
581
569
|
if (b_negative) {
|
|
582
570
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
@@ -647,7 +635,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_OBJECT_LONG(P
|
|
|
647
635
|
goto exit_binary_result_object;
|
|
648
636
|
}
|
|
649
637
|
|
|
650
|
-
|
|
638
|
+
Py_DECREF_IMMORTAL(x);
|
|
651
639
|
}
|
|
652
640
|
|
|
653
641
|
if (slot2 != NULL) {
|
|
@@ -658,7 +646,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_OBJECT_LONG(P
|
|
|
658
646
|
goto exit_binary_result_object;
|
|
659
647
|
}
|
|
660
648
|
|
|
661
|
-
|
|
649
|
+
Py_DECREF_IMMORTAL(x);
|
|
662
650
|
}
|
|
663
651
|
|
|
664
652
|
#if PYTHON_VERSION < 0x300
|
|
@@ -775,8 +763,8 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_OBJECT_LONG(PyObject *operand1, Py
|
|
|
775
763
|
|
|
776
764
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
777
765
|
|
|
778
|
-
if (
|
|
779
|
-
long r = MEDIUM_VALUE(operand1_long_object) - MEDIUM_VALUE(operand2_long_object);
|
|
766
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
767
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) - MEDIUM_VALUE(operand2_long_object));
|
|
780
768
|
|
|
781
769
|
clong_result = r;
|
|
782
770
|
goto exit_result_ok_clong;
|
|
@@ -785,12 +773,12 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_OBJECT_LONG(PyObject *operand1, Py
|
|
|
785
773
|
{
|
|
786
774
|
PyLongObject *z;
|
|
787
775
|
|
|
788
|
-
digit const *a_digits = operand1_long_object
|
|
789
|
-
Py_ssize_t a_digit_count =
|
|
790
|
-
bool a_negative =
|
|
791
|
-
digit const *b_digits = operand2_long_object
|
|
792
|
-
Py_ssize_t b_digit_count =
|
|
793
|
-
bool b_negative =
|
|
776
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
777
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
778
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
779
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
780
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
781
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
794
782
|
|
|
795
783
|
if (a_negative) {
|
|
796
784
|
if (b_negative) {
|
|
@@ -799,7 +787,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_OBJECT_LONG(PyObject *operand1, Py
|
|
|
799
787
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
800
788
|
}
|
|
801
789
|
|
|
802
|
-
|
|
790
|
+
Nuitka_LongFlipSign(z);
|
|
803
791
|
} else {
|
|
804
792
|
if (b_negative) {
|
|
805
793
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
@@ -874,7 +862,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_LONG_OBJECT(P
|
|
|
874
862
|
goto exit_binary_result_object;
|
|
875
863
|
}
|
|
876
864
|
|
|
877
|
-
|
|
865
|
+
Py_DECREF_IMMORTAL(x);
|
|
878
866
|
slot2 = NULL;
|
|
879
867
|
}
|
|
880
868
|
}
|
|
@@ -886,7 +874,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_LONG_OBJECT(P
|
|
|
886
874
|
goto exit_binary_result_object;
|
|
887
875
|
}
|
|
888
876
|
|
|
889
|
-
|
|
877
|
+
Py_DECREF_IMMORTAL(x);
|
|
890
878
|
}
|
|
891
879
|
|
|
892
880
|
if (slot2 != NULL) {
|
|
@@ -897,7 +885,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_LONG_OBJECT(P
|
|
|
897
885
|
goto exit_binary_result_object;
|
|
898
886
|
}
|
|
899
887
|
|
|
900
|
-
|
|
888
|
+
Py_DECREF_IMMORTAL(x);
|
|
901
889
|
}
|
|
902
890
|
|
|
903
891
|
#if PYTHON_VERSION < 0x300
|
|
@@ -1014,8 +1002,8 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_OBJECT(PyObject *operand1, Py
|
|
|
1014
1002
|
|
|
1015
1003
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
1016
1004
|
|
|
1017
|
-
if (
|
|
1018
|
-
long r = MEDIUM_VALUE(operand1_long_object) - MEDIUM_VALUE(operand2_long_object);
|
|
1005
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
1006
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) - MEDIUM_VALUE(operand2_long_object));
|
|
1019
1007
|
|
|
1020
1008
|
clong_result = r;
|
|
1021
1009
|
goto exit_result_ok_clong;
|
|
@@ -1024,12 +1012,12 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_OBJECT(PyObject *operand1, Py
|
|
|
1024
1012
|
{
|
|
1025
1013
|
PyLongObject *z;
|
|
1026
1014
|
|
|
1027
|
-
digit const *a_digits = operand1_long_object
|
|
1028
|
-
Py_ssize_t a_digit_count =
|
|
1029
|
-
bool a_negative =
|
|
1030
|
-
digit const *b_digits = operand2_long_object
|
|
1031
|
-
Py_ssize_t b_digit_count =
|
|
1032
|
-
bool b_negative =
|
|
1015
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
1016
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
1017
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
1018
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
1019
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
1020
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
1033
1021
|
|
|
1034
1022
|
if (a_negative) {
|
|
1035
1023
|
if (b_negative) {
|
|
@@ -1038,7 +1026,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_OBJECT(PyObject *operand1, Py
|
|
|
1038
1026
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
1039
1027
|
}
|
|
1040
1028
|
|
|
1041
|
-
|
|
1029
|
+
Nuitka_LongFlipSign(z);
|
|
1042
1030
|
} else {
|
|
1043
1031
|
if (b_negative) {
|
|
1044
1032
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
@@ -1159,7 +1147,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_OBJECT_FLOAT(
|
|
|
1159
1147
|
goto exit_binary_result_object;
|
|
1160
1148
|
}
|
|
1161
1149
|
|
|
1162
|
-
|
|
1150
|
+
Py_DECREF_IMMORTAL(x);
|
|
1163
1151
|
}
|
|
1164
1152
|
|
|
1165
1153
|
if (slot2 != NULL) {
|
|
@@ -1170,7 +1158,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_OBJECT_FLOAT(
|
|
|
1170
1158
|
goto exit_binary_result_object;
|
|
1171
1159
|
}
|
|
1172
1160
|
|
|
1173
|
-
|
|
1161
|
+
Py_DECREF_IMMORTAL(x);
|
|
1174
1162
|
}
|
|
1175
1163
|
|
|
1176
1164
|
#if PYTHON_VERSION < 0x300
|
|
@@ -1346,7 +1334,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_FLOAT_OBJECT(
|
|
|
1346
1334
|
goto exit_binary_result_object;
|
|
1347
1335
|
}
|
|
1348
1336
|
|
|
1349
|
-
|
|
1337
|
+
Py_DECREF_IMMORTAL(x);
|
|
1350
1338
|
slot2 = NULL;
|
|
1351
1339
|
}
|
|
1352
1340
|
}
|
|
@@ -1358,7 +1346,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_FLOAT_OBJECT(
|
|
|
1358
1346
|
goto exit_binary_result_object;
|
|
1359
1347
|
}
|
|
1360
1348
|
|
|
1361
|
-
|
|
1349
|
+
Py_DECREF_IMMORTAL(x);
|
|
1362
1350
|
}
|
|
1363
1351
|
|
|
1364
1352
|
if (slot2 != NULL) {
|
|
@@ -1369,7 +1357,7 @@ static HEDLEY_NEVER_INLINE PyObject *__BINARY_OPERATION_SUB_OBJECT_FLOAT_OBJECT(
|
|
|
1369
1357
|
goto exit_binary_result_object;
|
|
1370
1358
|
}
|
|
1371
1359
|
|
|
1372
|
-
|
|
1360
|
+
Py_DECREF_IMMORTAL(x);
|
|
1373
1361
|
}
|
|
1374
1362
|
|
|
1375
1363
|
#if PYTHON_VERSION < 0x300
|
|
@@ -1535,7 +1523,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_FLOAT_LONG(PyObject *operand1, PyO
|
|
|
1535
1523
|
goto exit_binary_result_object;
|
|
1536
1524
|
}
|
|
1537
1525
|
|
|
1538
|
-
|
|
1526
|
+
Py_DECREF_IMMORTAL(x);
|
|
1539
1527
|
}
|
|
1540
1528
|
|
|
1541
1529
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -1592,7 +1580,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_FLOAT(PyObject *operand1, PyO
|
|
|
1592
1580
|
goto exit_binary_result_object;
|
|
1593
1581
|
}
|
|
1594
1582
|
|
|
1595
|
-
|
|
1583
|
+
Py_DECREF_IMMORTAL(x);
|
|
1596
1584
|
}
|
|
1597
1585
|
|
|
1598
1586
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -1644,7 +1632,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_FLOAT_INT(PyObject *operand1, PyOb
|
|
|
1644
1632
|
goto exit_binary_result_object;
|
|
1645
1633
|
}
|
|
1646
1634
|
|
|
1647
|
-
|
|
1635
|
+
Py_DECREF_IMMORTAL(x);
|
|
1648
1636
|
}
|
|
1649
1637
|
|
|
1650
1638
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -1699,7 +1687,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_INT_FLOAT(PyObject *operand1, PyOb
|
|
|
1699
1687
|
goto exit_binary_result_object;
|
|
1700
1688
|
}
|
|
1701
1689
|
|
|
1702
|
-
|
|
1690
|
+
Py_DECREF_IMMORTAL(x);
|
|
1703
1691
|
}
|
|
1704
1692
|
|
|
1705
1693
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -1748,7 +1736,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_INT(PyObject *operand1, PyObj
|
|
|
1748
1736
|
goto exit_binary_result_object;
|
|
1749
1737
|
}
|
|
1750
1738
|
|
|
1751
|
-
|
|
1739
|
+
Py_DECREF_IMMORTAL(x);
|
|
1752
1740
|
}
|
|
1753
1741
|
|
|
1754
1742
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -1803,7 +1791,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_INT_LONG(PyObject *operand1, PyObj
|
|
|
1803
1791
|
goto exit_binary_result_object;
|
|
1804
1792
|
}
|
|
1805
1793
|
|
|
1806
|
-
|
|
1794
|
+
Py_DECREF_IMMORTAL(x);
|
|
1807
1795
|
}
|
|
1808
1796
|
|
|
1809
1797
|
// Statically recognized that coercion is not possible with these types
|
|
@@ -1856,9 +1844,10 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_INT_CLONG(PyObject *operand1, long
|
|
|
1856
1844
|
clong_result = x;
|
|
1857
1845
|
goto exit_result_ok_clong;
|
|
1858
1846
|
}
|
|
1847
|
+
|
|
1859
1848
|
{
|
|
1860
1849
|
PyObject *operand1_object = operand1;
|
|
1861
|
-
PyObject *operand2_object =
|
|
1850
|
+
PyObject *operand2_object = Nuitka_PyLong_FromLong(operand2);
|
|
1862
1851
|
|
|
1863
1852
|
PyObject *r = PyLong_Type.tp_as_number->nb_subtract(operand1_object, operand2_object);
|
|
1864
1853
|
assert(r != Py_NotImplemented);
|
|
@@ -1870,7 +1859,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_INT_CLONG(PyObject *operand1, long
|
|
|
1870
1859
|
}
|
|
1871
1860
|
|
|
1872
1861
|
exit_result_ok_clong:
|
|
1873
|
-
result =
|
|
1862
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
1874
1863
|
goto exit_result_ok;
|
|
1875
1864
|
|
|
1876
1865
|
exit_result_object:
|
|
@@ -1926,8 +1915,9 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_CLONG_INT(long operand1, PyObject
|
|
|
1926
1915
|
clong_result = x;
|
|
1927
1916
|
goto exit_result_ok_clong;
|
|
1928
1917
|
}
|
|
1918
|
+
|
|
1929
1919
|
{
|
|
1930
|
-
PyObject *operand1_object =
|
|
1920
|
+
PyObject *operand1_object = Nuitka_PyLong_FromLong(operand1);
|
|
1931
1921
|
PyObject *operand2_object = operand2;
|
|
1932
1922
|
|
|
1933
1923
|
PyObject *r = PyLong_Type.tp_as_number->nb_subtract(operand1_object, operand2_object);
|
|
@@ -1940,7 +1930,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_CLONG_INT(long operand1, PyObject
|
|
|
1940
1930
|
}
|
|
1941
1931
|
|
|
1942
1932
|
exit_result_ok_clong:
|
|
1943
|
-
result =
|
|
1933
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
1944
1934
|
goto exit_result_ok;
|
|
1945
1935
|
|
|
1946
1936
|
exit_result_object:
|
|
@@ -1984,8 +1974,8 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_DIGIT(PyObject *operand1, lon
|
|
|
1984
1974
|
|
|
1985
1975
|
PyLongObject *operand1_long_object = (PyLongObject *)operand1;
|
|
1986
1976
|
|
|
1987
|
-
if (
|
|
1988
|
-
long r = MEDIUM_VALUE(operand1_long_object) - (sdigit)operand2;
|
|
1977
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && (operand2 == 0 ? 0 : 1) <= 1) {
|
|
1978
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) - (sdigit)operand2);
|
|
1989
1979
|
|
|
1990
1980
|
clong_result = r;
|
|
1991
1981
|
goto exit_result_ok_clong;
|
|
@@ -1994,9 +1984,9 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_DIGIT(PyObject *operand1, lon
|
|
|
1994
1984
|
{
|
|
1995
1985
|
PyLongObject *z;
|
|
1996
1986
|
|
|
1997
|
-
digit const *a_digits = operand1_long_object
|
|
1998
|
-
Py_ssize_t a_digit_count =
|
|
1999
|
-
bool a_negative =
|
|
1987
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
1988
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
1989
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
2000
1990
|
digit const *b_digits = (digit *)&operand2;
|
|
2001
1991
|
Py_ssize_t b_digit_count = (operand2 == 0 ? 0 : 1);
|
|
2002
1992
|
bool b_negative = operand2 < 0;
|
|
@@ -2008,7 +1998,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_DIGIT(PyObject *operand1, lon
|
|
|
2008
1998
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2009
1999
|
}
|
|
2010
2000
|
|
|
2011
|
-
|
|
2001
|
+
Nuitka_LongFlipSign(z);
|
|
2012
2002
|
} else {
|
|
2013
2003
|
if (b_negative) {
|
|
2014
2004
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
@@ -2065,8 +2055,8 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_DIGIT_LONG(long operand1, PyObject
|
|
|
2065
2055
|
|
|
2066
2056
|
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
2067
2057
|
|
|
2068
|
-
if ((operand1 == 0 ? 0 : 1) <= 1 &&
|
|
2069
|
-
long r = (sdigit)operand1 - MEDIUM_VALUE(operand2_long_object);
|
|
2058
|
+
if ((operand1 == 0 ? 0 : 1) <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
2059
|
+
long r = (long)((sdigit)operand1 - MEDIUM_VALUE(operand2_long_object));
|
|
2070
2060
|
|
|
2071
2061
|
clong_result = r;
|
|
2072
2062
|
goto exit_result_ok_clong;
|
|
@@ -2078,9 +2068,9 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_DIGIT_LONG(long operand1, PyObject
|
|
|
2078
2068
|
digit const *a_digits = (digit *)&operand1;
|
|
2079
2069
|
Py_ssize_t a_digit_count = (operand1 == 0 ? 0 : 1);
|
|
2080
2070
|
bool a_negative = operand1 < 0;
|
|
2081
|
-
digit const *b_digits = operand2_long_object
|
|
2082
|
-
Py_ssize_t b_digit_count =
|
|
2083
|
-
bool b_negative =
|
|
2071
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
2072
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
2073
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
2084
2074
|
|
|
2085
2075
|
if (a_negative) {
|
|
2086
2076
|
if (b_negative) {
|
|
@@ -2089,7 +2079,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_DIGIT_LONG(long operand1, PyObject
|
|
|
2089
2079
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2090
2080
|
}
|
|
2091
2081
|
|
|
2092
|
-
|
|
2082
|
+
Nuitka_LongFlipSign(z);
|
|
2093
2083
|
} else {
|
|
2094
2084
|
if (b_negative) {
|
|
2095
2085
|
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
@@ -2124,6 +2114,221 @@ PyObject *BINARY_OPERATION_SUB_OBJECT_DIGIT_LONG(long operand1, PyObject *operan
|
|
|
2124
2114
|
return _BINARY_OPERATION_SUB_OBJECT_DIGIT_LONG(operand1, operand2);
|
|
2125
2115
|
}
|
|
2126
2116
|
|
|
2117
|
+
/* Code referring to "LONG" corresponds to Python2 'long', Python3 'int' and "CLONG" to C platform long value. */
|
|
2118
|
+
static PyObject *_BINARY_OPERATION_SUB_OBJECT_LONG_CLONG(PyObject *operand1, long operand2) {
|
|
2119
|
+
CHECK_OBJECT(operand1);
|
|
2120
|
+
assert(PyLong_CheckExact(operand1));
|
|
2121
|
+
|
|
2122
|
+
PyObject *result;
|
|
2123
|
+
|
|
2124
|
+
// Not every code path will make use of all possible results.
|
|
2125
|
+
#ifdef _MSC_VER
|
|
2126
|
+
#pragma warning(push)
|
|
2127
|
+
#pragma warning(disable : 4101)
|
|
2128
|
+
#endif
|
|
2129
|
+
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
2130
|
+
NUITKA_MAY_BE_UNUSED long clong_result;
|
|
2131
|
+
#ifdef _MSC_VER
|
|
2132
|
+
#pragma warning(pop)
|
|
2133
|
+
#endif
|
|
2134
|
+
|
|
2135
|
+
PyLongObject *operand1_long_object = (PyLongObject *)operand1;
|
|
2136
|
+
|
|
2137
|
+
bool operand2_is_negative;
|
|
2138
|
+
unsigned long operand2_abs_ival;
|
|
2139
|
+
|
|
2140
|
+
if (operand2 < 0) {
|
|
2141
|
+
operand2_abs_ival = (unsigned long)(-1 - operand2) + 1;
|
|
2142
|
+
operand2_is_negative = true;
|
|
2143
|
+
} else {
|
|
2144
|
+
operand2_abs_ival = (unsigned long)operand2;
|
|
2145
|
+
operand2_is_negative = false;
|
|
2146
|
+
}
|
|
2147
|
+
|
|
2148
|
+
Py_ssize_t operand2_digit_count = 0;
|
|
2149
|
+
digit operand2_digits[5] = {0}; // Could be more minimal and depend on sizeof(digit)
|
|
2150
|
+
{
|
|
2151
|
+
unsigned long t = operand2_abs_ival;
|
|
2152
|
+
|
|
2153
|
+
while (t != 0) {
|
|
2154
|
+
operand2_digit_count += 1;
|
|
2155
|
+
assert(operand2_digit_count <= (Py_ssize_t)(sizeof(operand2_digit_count) / sizeof(digit)));
|
|
2156
|
+
|
|
2157
|
+
operand2_digits[operand2_digit_count] = (digit)(t & PyLong_MASK);
|
|
2158
|
+
t >>= PyLong_SHIFT;
|
|
2159
|
+
}
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2162
|
+
NUITKA_MAY_BE_UNUSED Py_ssize_t operand2_size =
|
|
2163
|
+
operand2_is_negative == false ? operand2_digit_count : -operand2_digit_count;
|
|
2164
|
+
|
|
2165
|
+
if (Nuitka_LongGetDigitSize(operand1_long_object) <= 1 && operand2_digit_count <= 1) {
|
|
2166
|
+
long r = (long)(MEDIUM_VALUE(operand1_long_object) - (sdigit)operand2);
|
|
2167
|
+
|
|
2168
|
+
clong_result = r;
|
|
2169
|
+
goto exit_result_ok_clong;
|
|
2170
|
+
}
|
|
2171
|
+
|
|
2172
|
+
{
|
|
2173
|
+
PyLongObject *z;
|
|
2174
|
+
|
|
2175
|
+
digit const *a_digits = Nuitka_LongGetDigitPointer(operand1_long_object);
|
|
2176
|
+
Py_ssize_t a_digit_count = Nuitka_LongGetDigitSize(operand1_long_object);
|
|
2177
|
+
bool a_negative = Nuitka_LongIsNegative(operand1_long_object);
|
|
2178
|
+
digit const *b_digits = operand2_digits;
|
|
2179
|
+
Py_ssize_t b_digit_count = operand2_digit_count;
|
|
2180
|
+
bool b_negative = operand2_is_negative;
|
|
2181
|
+
|
|
2182
|
+
if (a_negative) {
|
|
2183
|
+
if (b_negative) {
|
|
2184
|
+
z = _Nuitka_LongSubDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2185
|
+
} else {
|
|
2186
|
+
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2187
|
+
}
|
|
2188
|
+
|
|
2189
|
+
Nuitka_LongFlipSign(z);
|
|
2190
|
+
} else {
|
|
2191
|
+
if (b_negative) {
|
|
2192
|
+
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2193
|
+
} else {
|
|
2194
|
+
z = _Nuitka_LongSubDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2195
|
+
}
|
|
2196
|
+
}
|
|
2197
|
+
|
|
2198
|
+
obj_result = (PyObject *)z;
|
|
2199
|
+
goto exit_result_object;
|
|
2200
|
+
}
|
|
2201
|
+
|
|
2202
|
+
exit_result_object:
|
|
2203
|
+
if (unlikely(obj_result == NULL)) {
|
|
2204
|
+
goto exit_result_exception;
|
|
2205
|
+
}
|
|
2206
|
+
result = obj_result;
|
|
2207
|
+
goto exit_result_ok;
|
|
2208
|
+
|
|
2209
|
+
exit_result_ok_clong:
|
|
2210
|
+
result = Nuitka_LongFromCLong(clong_result);
|
|
2211
|
+
goto exit_result_ok;
|
|
2212
|
+
|
|
2213
|
+
exit_result_ok:
|
|
2214
|
+
return result;
|
|
2215
|
+
|
|
2216
|
+
exit_result_exception:
|
|
2217
|
+
return NULL;
|
|
2218
|
+
}
|
|
2219
|
+
|
|
2220
|
+
PyObject *BINARY_OPERATION_SUB_OBJECT_LONG_CLONG(PyObject *operand1, long operand2) {
|
|
2221
|
+
return _BINARY_OPERATION_SUB_OBJECT_LONG_CLONG(operand1, operand2);
|
|
2222
|
+
}
|
|
2223
|
+
|
|
2224
|
+
/* Code referring to "CLONG" corresponds to C platform long value and "LONG" to Python2 'long', Python3 'int'. */
|
|
2225
|
+
static PyObject *_BINARY_OPERATION_SUB_OBJECT_CLONG_LONG(long operand1, PyObject *operand2) {
|
|
2226
|
+
|
|
2227
|
+
CHECK_OBJECT(operand2);
|
|
2228
|
+
assert(PyLong_CheckExact(operand2));
|
|
2229
|
+
|
|
2230
|
+
PyObject *result;
|
|
2231
|
+
|
|
2232
|
+
// Not every code path will make use of all possible results.
|
|
2233
|
+
#ifdef _MSC_VER
|
|
2234
|
+
#pragma warning(push)
|
|
2235
|
+
#pragma warning(disable : 4101)
|
|
2236
|
+
#endif
|
|
2237
|
+
NUITKA_MAY_BE_UNUSED PyObject *obj_result;
|
|
2238
|
+
NUITKA_MAY_BE_UNUSED long clong_result;
|
|
2239
|
+
#ifdef _MSC_VER
|
|
2240
|
+
#pragma warning(pop)
|
|
2241
|
+
#endif
|
|
2242
|
+
|
|
2243
|
+
bool operand1_is_negative;
|
|
2244
|
+
unsigned long operand1_abs_ival;
|
|
2245
|
+
|
|
2246
|
+
if (operand1 < 0) {
|
|
2247
|
+
operand1_abs_ival = (unsigned long)(-1 - operand1) + 1;
|
|
2248
|
+
operand1_is_negative = true;
|
|
2249
|
+
} else {
|
|
2250
|
+
operand1_abs_ival = (unsigned long)operand1;
|
|
2251
|
+
operand1_is_negative = false;
|
|
2252
|
+
}
|
|
2253
|
+
|
|
2254
|
+
Py_ssize_t operand1_digit_count = 0;
|
|
2255
|
+
digit operand1_digits[5] = {0}; // Could be more minimal and depend on sizeof(digit)
|
|
2256
|
+
{
|
|
2257
|
+
unsigned long t = operand1_abs_ival;
|
|
2258
|
+
|
|
2259
|
+
while (t != 0) {
|
|
2260
|
+
operand1_digit_count += 1;
|
|
2261
|
+
assert(operand1_digit_count <= (Py_ssize_t)(sizeof(operand1_digit_count) / sizeof(digit)));
|
|
2262
|
+
|
|
2263
|
+
operand1_digits[operand1_digit_count] = (digit)(t & PyLong_MASK);
|
|
2264
|
+
t >>= PyLong_SHIFT;
|
|
2265
|
+
}
|
|
2266
|
+
}
|
|
2267
|
+
|
|
2268
|
+
NUITKA_MAY_BE_UNUSED Py_ssize_t operand1_size =
|
|
2269
|
+
operand1_is_negative == false ? operand1_digit_count : -operand1_digit_count;
|
|
2270
|
+
|
|
2271
|
+
PyLongObject *operand2_long_object = (PyLongObject *)operand2;
|
|
2272
|
+
|
|
2273
|
+
if (operand1_digit_count <= 1 && Nuitka_LongGetDigitSize(operand2_long_object) <= 1) {
|
|
2274
|
+
long r = (long)((sdigit)operand1 - MEDIUM_VALUE(operand2_long_object));
|
|
2275
|
+
|
|
2276
|
+
clong_result = r;
|
|
2277
|
+
goto exit_result_ok_clong;
|
|
2278
|
+
}
|
|
2279
|
+
|
|
2280
|
+
{
|
|
2281
|
+
PyLongObject *z;
|
|
2282
|
+
|
|
2283
|
+
digit const *a_digits = operand1_digits;
|
|
2284
|
+
Py_ssize_t a_digit_count = operand1_digit_count;
|
|
2285
|
+
bool a_negative = operand1_is_negative;
|
|
2286
|
+
digit const *b_digits = Nuitka_LongGetDigitPointer(operand2_long_object);
|
|
2287
|
+
Py_ssize_t b_digit_count = Nuitka_LongGetDigitSize(operand2_long_object);
|
|
2288
|
+
bool b_negative = Nuitka_LongIsNegative(operand2_long_object);
|
|
2289
|
+
|
|
2290
|
+
if (a_negative) {
|
|
2291
|
+
if (b_negative) {
|
|
2292
|
+
z = _Nuitka_LongSubDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2293
|
+
} else {
|
|
2294
|
+
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2295
|
+
}
|
|
2296
|
+
|
|
2297
|
+
Nuitka_LongFlipSign(z);
|
|
2298
|
+
} else {
|
|
2299
|
+
if (b_negative) {
|
|
2300
|
+
z = _Nuitka_LongAddDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2301
|
+
} else {
|
|
2302
|
+
z = _Nuitka_LongSubDigits(a_digits, a_digit_count, b_digits, b_digit_count);
|
|
2303
|
+
}
|
|
2304
|
+
}
|
|
2305
|
+
|
|
2306
|
+
obj_result = (PyObject *)z;
|
|
2307
|
+
goto exit_result_object;
|
|
2308
|
+
}
|
|
2309
|
+
|
|
2310
|
+
exit_result_object:
|
|
2311
|
+
if (unlikely(obj_result == NULL)) {
|
|
2312
|
+
goto exit_result_exception;
|
|
2313
|
+
}
|
|
2314
|
+
result = obj_result;
|
|
2315
|
+
goto exit_result_ok;
|
|
2316
|
+
|
|
2317
|
+
exit_result_ok_clong:
|
|
2318
|
+
result = Nuitka_LongFromCLong(clong_result);
|
|
2319
|
+
goto exit_result_ok;
|
|
2320
|
+
|
|
2321
|
+
exit_result_ok:
|
|
2322
|
+
return result;
|
|
2323
|
+
|
|
2324
|
+
exit_result_exception:
|
|
2325
|
+
return NULL;
|
|
2326
|
+
}
|
|
2327
|
+
|
|
2328
|
+
PyObject *BINARY_OPERATION_SUB_OBJECT_CLONG_LONG(long operand1, PyObject *operand2) {
|
|
2329
|
+
return _BINARY_OPERATION_SUB_OBJECT_CLONG_LONG(operand1, operand2);
|
|
2330
|
+
}
|
|
2331
|
+
|
|
2127
2332
|
/* Code referring to "FLOAT" corresponds to Python 'float' and "CFLOAT" to C platform float value. */
|
|
2128
2333
|
static PyObject *_BINARY_OPERATION_SUB_OBJECT_FLOAT_CFLOAT(PyObject *operand1, double operand2) {
|
|
2129
2334
|
CHECK_OBJECT(operand1);
|
|
@@ -2245,6 +2450,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_OBJECT_OBJECT(PyObject *operand1,
|
|
|
2245
2450
|
clong_result = x;
|
|
2246
2451
|
goto exit_result_ok_clong;
|
|
2247
2452
|
}
|
|
2453
|
+
|
|
2248
2454
|
{
|
|
2249
2455
|
PyObject *operand1_object = operand1;
|
|
2250
2456
|
PyObject *operand2_object = operand2;
|
|
@@ -2257,7 +2463,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_OBJECT_OBJECT(PyObject *operand1,
|
|
|
2257
2463
|
}
|
|
2258
2464
|
|
|
2259
2465
|
exit_result_ok_clong:
|
|
2260
|
-
result =
|
|
2466
|
+
result = Nuitka_PyInt_FromLong(clong_result);
|
|
2261
2467
|
goto exit_result_ok;
|
|
2262
2468
|
|
|
2263
2469
|
exit_result_object:
|
|
@@ -2312,7 +2518,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_OBJECT_OBJECT(PyObject *operand1,
|
|
|
2312
2518
|
goto exit_binary_result_object;
|
|
2313
2519
|
}
|
|
2314
2520
|
|
|
2315
|
-
|
|
2521
|
+
Py_DECREF_IMMORTAL(x);
|
|
2316
2522
|
slot2 = NULL;
|
|
2317
2523
|
}
|
|
2318
2524
|
}
|
|
@@ -2324,7 +2530,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_OBJECT_OBJECT(PyObject *operand1,
|
|
|
2324
2530
|
goto exit_binary_result_object;
|
|
2325
2531
|
}
|
|
2326
2532
|
|
|
2327
|
-
|
|
2533
|
+
Py_DECREF_IMMORTAL(x);
|
|
2328
2534
|
}
|
|
2329
2535
|
|
|
2330
2536
|
if (slot2 != NULL) {
|
|
@@ -2335,7 +2541,7 @@ static PyObject *_BINARY_OPERATION_SUB_OBJECT_OBJECT_OBJECT(PyObject *operand1,
|
|
|
2335
2541
|
goto exit_binary_result_object;
|
|
2336
2542
|
}
|
|
2337
2543
|
|
|
2338
|
-
|
|
2544
|
+
Py_DECREF_IMMORTAL(x);
|
|
2339
2545
|
}
|
|
2340
2546
|
|
|
2341
2547
|
#if PYTHON_VERSION < 0x300
|
|
@@ -2426,3 +2632,18 @@ exit_binary_exception:
|
|
|
2426
2632
|
PyObject *BINARY_OPERATION_SUB_OBJECT_OBJECT_OBJECT(PyObject *operand1, PyObject *operand2) {
|
|
2427
2633
|
return _BINARY_OPERATION_SUB_OBJECT_OBJECT_OBJECT(operand1, operand2);
|
|
2428
2634
|
}
|
|
2635
|
+
|
|
2636
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
2637
|
+
// integrates with CPython, but also works on its own.
|
|
2638
|
+
//
|
|
2639
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
2640
|
+
// you may not use this file except in compliance with the License.
|
|
2641
|
+
// You may obtain a copy of the License at
|
|
2642
|
+
//
|
|
2643
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
2644
|
+
//
|
|
2645
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
2646
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
2647
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2648
|
+
// See the License for the specific language governing permissions and
|
|
2649
|
+
// limitations under the License.
|