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,21 +1,6 @@
|
|
|
1
|
-
{# Copyright
|
|
2
|
-
|
|
3
|
-
{
|
|
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
|
-
{# #}
|
|
18
|
-
static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()}}_{{left.getHelperCodeName()}}_{{right.getHelperCodeName()}}({{left.getVariableDecl("operand1")}}, {{right.getVariableDecl("operand2")}}) {
|
|
1
|
+
{# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
|
|
2
|
+
|
|
3
|
+
static {{ target.getTypeDecl() }} COMPARE_{{op_code}}_{{target.getHelperCodeName()}}_{{left.getHelperCodeName()}}_{{right.getHelperCodeName()}}({{left.getVariableDecl("operand1")}}, {{right.getVariableDecl("operand2")}}) {
|
|
19
4
|
{{left.getCheckValueCode("operand1")}}
|
|
20
5
|
{{right.getCheckValueCode("operand2")}}
|
|
21
6
|
|
|
@@ -24,19 +9,19 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
|
|
|
24
9
|
|
|
25
10
|
// Same object has fast path for all operations.
|
|
26
11
|
if (operand1 == operand2) {
|
|
27
|
-
{% if
|
|
12
|
+
{% if operator in ("==", ">=", "<=") %}
|
|
28
13
|
bool r = true;
|
|
29
14
|
{% else %}
|
|
30
15
|
bool r = false;
|
|
31
16
|
{% endif %}
|
|
32
17
|
|
|
33
18
|
// Convert to target type.
|
|
34
|
-
{{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r")}};
|
|
35
|
-
{{target.getTakeReferenceStatement("result")}}
|
|
19
|
+
{{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r")}};
|
|
20
|
+
{{ target.getTakeReferenceStatement("result", immortal=True) }}
|
|
36
21
|
return result;
|
|
37
22
|
}
|
|
38
23
|
|
|
39
|
-
{% if
|
|
24
|
+
{% if operator in ("==", "!=") %}
|
|
40
25
|
#if PYTHON_VERSION >= 0x300
|
|
41
26
|
bool r;
|
|
42
27
|
|
|
@@ -45,20 +30,24 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
|
|
|
45
30
|
r = false;
|
|
46
31
|
} else {
|
|
47
32
|
int kind1 = PyUnicode_KIND(a);
|
|
33
|
+
#if PYTHON_VERSION < 0x3c0
|
|
48
34
|
if (unlikely(kind1 == 0)) {
|
|
49
|
-
int res = _PyUnicode_Ready((PyObject *)a);
|
|
35
|
+
NUITKA_MAY_BE_UNUSED int res = _PyUnicode_Ready((PyObject *)a);
|
|
50
36
|
assert(res != -1);
|
|
51
37
|
kind1 = PyUnicode_KIND(a);
|
|
52
38
|
assert(kind1 != 0);
|
|
53
39
|
}
|
|
40
|
+
#endif
|
|
54
41
|
|
|
55
42
|
int kind2 = PyUnicode_KIND(b);
|
|
43
|
+
#if PYTHON_VERSION < 0x3c0
|
|
56
44
|
if (unlikely(kind2 == 0)) {
|
|
57
|
-
int res = _PyUnicode_Ready((PyObject *)b);
|
|
45
|
+
NUITKA_MAY_BE_UNUSED int res = _PyUnicode_Ready((PyObject *)b);
|
|
58
46
|
assert(res != -1);
|
|
59
47
|
kind2 = PyUnicode_KIND(b);
|
|
60
48
|
assert(kind2 != 0);
|
|
61
49
|
}
|
|
50
|
+
#endif
|
|
62
51
|
|
|
63
52
|
if (kind1 != kind2) {
|
|
64
53
|
r = false;
|
|
@@ -71,8 +60,8 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
|
|
|
71
60
|
}
|
|
72
61
|
}
|
|
73
62
|
|
|
74
|
-
{{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r == " + ("true" if
|
|
75
|
-
{{target.getTakeReferenceStatement("result")}}
|
|
63
|
+
{{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r == " + ("true" if operator == "==" else "false"))}};
|
|
64
|
+
{{ target.getTakeReferenceStatement("result", immortal=True) }}
|
|
76
65
|
return result;
|
|
77
66
|
#else
|
|
78
67
|
bool r;
|
|
@@ -88,8 +77,8 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
|
|
|
88
77
|
r = (cmp == 0);
|
|
89
78
|
}
|
|
90
79
|
|
|
91
|
-
{{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r == " + ("true" if
|
|
92
|
-
{{target.getTakeReferenceStatement("result")}}
|
|
80
|
+
{{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r == " + ("true" if operator == "==" else "false"))}};
|
|
81
|
+
{{ target.getTakeReferenceStatement("result", immortal=True) }}
|
|
93
82
|
return result;
|
|
94
83
|
#endif
|
|
95
84
|
{% else %}
|
|
@@ -102,10 +91,25 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
|
|
|
102
91
|
return r;
|
|
103
92
|
{% else %}
|
|
104
93
|
// Convert to target type if necessary
|
|
105
|
-
{{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r == Py_True")}};
|
|
106
|
-
|
|
107
|
-
{{target.getTakeReferenceStatement("result")}}
|
|
94
|
+
{{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r == Py_True")}};
|
|
95
|
+
Py_DECREF_IMMORTAL(r);
|
|
96
|
+
{{ target.getTakeReferenceStatement("result", immortal=True) }}
|
|
108
97
|
return result;
|
|
109
98
|
{% endif %}
|
|
110
99
|
{% endif %}
|
|
111
100
|
}
|
|
101
|
+
|
|
102
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
103
|
+
{# integrates with CPython, but also works on its own. #}
|
|
104
|
+
{# #}
|
|
105
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
106
|
+
{# you may not use this file except in compliance with the License. #}
|
|
107
|
+
{# You may obtain a copy of the License at #}
|
|
108
|
+
{# #}
|
|
109
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
110
|
+
{# #}
|
|
111
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
112
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
113
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
114
|
+
{# See the License for the specific language governing permissions and #}
|
|
115
|
+
{# limitations under the License. #}
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
{# Copyright
|
|
2
|
-
|
|
3
|
-
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
4
|
-
{# integrates with CPython, but also works on its own. #}
|
|
5
|
-
{# #}
|
|
6
|
-
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
7
|
-
{# you may not use this file except in compliance with the License. #}
|
|
8
|
-
{# You may obtain a copy of the License at #}
|
|
9
|
-
{# #}
|
|
10
|
-
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
11
|
-
{# #}
|
|
12
|
-
{# Unless required by applicable law or agreed to in writing, software #}
|
|
13
|
-
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
14
|
-
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
15
|
-
{# See the License for the specific language governing permissions and #}
|
|
16
|
-
{# limitations under the License. #}
|
|
17
|
-
{# #}
|
|
1
|
+
{# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
|
|
2
|
+
|
|
18
3
|
{% from 'HelperSlotsCommon.c.j2' import goto_exit %}
|
|
19
4
|
{% from 'HelperSlotsBinary.c.j2' import binary_operation, call_binary_slot with context %}
|
|
20
5
|
{% macro inplace_fallback_operation(props, left, right, type1, type2) %}
|
|
@@ -38,14 +23,14 @@
|
|
|
38
23
|
{{ goto_exit(props, "exit_inplace_result_object", "x") }}
|
|
39
24
|
}
|
|
40
25
|
|
|
41
|
-
|
|
26
|
+
Py_DECREF_IMMORTAL(x);
|
|
42
27
|
}
|
|
43
28
|
{% else %}
|
|
44
29
|
// No inplace number slot {{ nb_inplace_slot }} available for this type.
|
|
45
30
|
{% endif %}
|
|
46
31
|
|
|
47
32
|
{
|
|
48
|
-
{{ binary_operation(props, operator, nb_slot, left, right, "type1", "type2", "*operand1", "operand2", "exit_inplace_result_object", "exit_inplace_result_cbool_ok", "exit_inplace_result_nbool", "exit_inplace_exception") }}
|
|
33
|
+
{{ binary_operation(props, operator, True, nb_slot, left, right, "type1", "type2", "*operand1", "operand2", "exit_inplace_result_object", "exit_inplace_result_cbool_ok", "exit_inplace_result_nbool", "exit_inplace_exception") }}
|
|
49
34
|
}
|
|
50
35
|
|
|
51
36
|
{% if "exit_inplace_result_object" in props["exits"] %}
|
|
@@ -116,7 +101,7 @@ static inline bool _INPLACE_OPERATION_{{op_code}}_{{left.getHelperCodeName()}}_{
|
|
|
116
101
|
|
|
117
102
|
{% if operator == "+" and (left.mayBothHaveType(right, "str") or left.mayBothHaveType(right, "unicode") or left.hasOneOrBothType(right, "bytes")) %}
|
|
118
103
|
if (Py_REFCNT(*operand1) == 1) {
|
|
119
|
-
// We more or less own the operand, so we might
|
|
104
|
+
// We more or less own the operand, so we might reuse its storage and
|
|
120
105
|
// execute stuff in-place.
|
|
121
106
|
{% if operator == "+" and left.mayBothHaveType(right, "str") %}
|
|
122
107
|
#if PYTHON_VERSION < 0x300
|
|
@@ -279,3 +264,18 @@ static inline bool _INPLACE_OPERATION_{{op_code}}_{{left.getHelperCodeName()}}_{
|
|
|
279
264
|
bool INPLACE_OPERATION_{{op_code}}_{{left.getHelperCodeName()}}_{{right.getHelperCodeName()}}({{left.getVariableDecl("*operand1")}}, {{right.getVariableDecl("operand2")}}) {
|
|
280
265
|
return _INPLACE_OPERATION_{{op_code}}_{{left.getHelperCodeName()}}_{{right.getHelperCodeName()}}(operand1, operand2);
|
|
281
266
|
}
|
|
267
|
+
|
|
268
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
269
|
+
{# integrates with CPython, but also works on its own. #}
|
|
270
|
+
{# #}
|
|
271
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
272
|
+
{# you may not use this file except in compliance with the License. #}
|
|
273
|
+
{# You may obtain a copy of the License at #}
|
|
274
|
+
{# #}
|
|
275
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
276
|
+
{# #}
|
|
277
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
278
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
279
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
280
|
+
{# See the License for the specific language governing permissions and #}
|
|
281
|
+
{# limitations under the License. #}
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
{# Copyright
|
|
2
|
-
|
|
3
|
-
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
4
|
-
{# integrates with CPython, but also works on its own. #}
|
|
5
|
-
{# #}
|
|
6
|
-
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
7
|
-
{# you may not use this file except in compliance with the License. #}
|
|
8
|
-
{# You may obtain a copy of the License at #}
|
|
9
|
-
{# #}
|
|
10
|
-
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
11
|
-
{# #}
|
|
12
|
-
{# Unless required by applicable law or agreed to in writing, software #}
|
|
13
|
-
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
14
|
-
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
15
|
-
{# See the License for the specific language governing permissions and #}
|
|
16
|
-
{# limitations under the License. #}
|
|
17
|
-
{# #}
|
|
1
|
+
{# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
|
|
2
|
+
|
|
18
3
|
{% from 'HelperSlotsCommon.c.j2' import goto_exit %}
|
|
19
4
|
{% from 'HelperSlotsInt.c.j2' import int_slot with context %}
|
|
20
5
|
{% from 'HelperSlotsLong.c.j2' import long_slot with context %}
|
|
@@ -25,7 +10,7 @@
|
|
|
25
10
|
{% from 'HelperSlotsTuple.c.j2' import tuple_slot %}
|
|
26
11
|
{% from 'HelperSlotsList.c.j2' import list_slot %}
|
|
27
12
|
{% from 'HelperSlotsSet.c.j2' import set_slot %}
|
|
28
|
-
{% macro operation_unsupported_error_exit(props, operator, left, right, type1, type2, exit_result_exception) %}
|
|
13
|
+
{% macro operation_unsupported_error_exit(props, operator, inplace, left, right, type1, type2, exit_result_exception) %}
|
|
29
14
|
{% set args = [] %}
|
|
30
15
|
{% if left == object_desc %}
|
|
31
16
|
{% do args.append("%s->tp_name" % type1) %}
|
|
@@ -39,15 +24,15 @@
|
|
|
39
24
|
{% set right_name_3 = "'%s'" % ("%s" if right == object_desc else right.getTypeName3()) %}
|
|
40
25
|
{% if (left_name_2 == left_name_3 and right_name_2 == right_name_3) or left.python_requirement or right.python_requirement %}
|
|
41
26
|
{% if left.python_requirement == "PYTHON_VERSION < 0x300" or right.python_requirement == "PYTHON_VERSION < 0x300" %}
|
|
42
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator) }}: {{ left_name_2 }} and {{ right_name_2 }}"{{ "," + ",".join(args) if args else "" }});
|
|
27
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator, inplace) }}: {{ left_name_2 }} and {{ right_name_2 }}"{{ "," + ",".join(args) if args else "" }});
|
|
43
28
|
{% else %}
|
|
44
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator) }}: {{ left_name_3 }} and {{ right_name_3 }}"{{ "," + ",".join(args) if args else "" }});
|
|
29
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator, inplace) }}: {{ left_name_3 }} and {{ right_name_3 }}"{{ "," + ",".join(args) if args else "" }});
|
|
45
30
|
{% endif %}
|
|
46
31
|
{% else %}
|
|
47
32
|
#if PYTHON_VERSION < 0x300
|
|
48
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator) }}: {{ left_name_2 }} and {{ right_name_2 }}"{{ "," + ",".join(args) if args else "" }});
|
|
33
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator, inplace) }}: {{ left_name_2 }} and {{ right_name_2 }}"{{ "," + ",".join(args) if args else "" }});
|
|
49
34
|
#else
|
|
50
|
-
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator) }}: {{ left_name_3 }} and {{ right_name_3 }}"{{ "," + ",".join(args) if args else "" }});
|
|
35
|
+
PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator, inplace) }}: {{ left_name_3 }} and {{ right_name_3 }}"{{ "," + ",".join(args) if args else "" }});
|
|
51
36
|
#endif
|
|
52
37
|
{% endif %}
|
|
53
38
|
{{ goto_exit(props, exit_result_exception) }}
|
|
@@ -144,7 +129,7 @@
|
|
|
144
129
|
}
|
|
145
130
|
}
|
|
146
131
|
{% endmacro %}
|
|
147
|
-
{% macro binary_operation(props, operator, nb_slot, left, right, type1, type2, operand1, operand2, exit_result_object, exit_result_cbool_ok, exit_result_nbool, exit_result_exception) %}
|
|
132
|
+
{% macro binary_operation(props, operator, inplace, nb_slot, left, right, type1, type2, operand1, operand2, exit_result_object, exit_result_cbool_ok, exit_result_nbool, exit_result_exception) %}
|
|
148
133
|
{% set slot1_relevant = left == object_desc or left.hasSlot(nb_slot) %}
|
|
149
134
|
{% set slot2_relevant = right == object_desc or (left != right and right.hasSlot(nb_slot)) %}
|
|
150
135
|
{% set error_needed = 1 %}
|
|
@@ -186,7 +171,7 @@
|
|
|
186
171
|
{{ goto_exit(props, exit_result_object, "x") }}
|
|
187
172
|
}
|
|
188
173
|
|
|
189
|
-
|
|
174
|
+
Py_DECREF_IMMORTAL(x);
|
|
190
175
|
slot2 = NULL;
|
|
191
176
|
}
|
|
192
177
|
}
|
|
@@ -198,7 +183,7 @@
|
|
|
198
183
|
{{ goto_exit(props, exit_result_object, "x") }}
|
|
199
184
|
}
|
|
200
185
|
|
|
201
|
-
|
|
186
|
+
Py_DECREF_IMMORTAL(x);
|
|
202
187
|
}
|
|
203
188
|
{% endif %}
|
|
204
189
|
|
|
@@ -210,7 +195,7 @@
|
|
|
210
195
|
{{ goto_exit(props, exit_result_object, "x") }}
|
|
211
196
|
}
|
|
212
197
|
|
|
213
|
-
|
|
198
|
+
Py_DECREF_IMMORTAL(x);
|
|
214
199
|
}
|
|
215
200
|
{% endif %}
|
|
216
201
|
|
|
@@ -390,13 +375,13 @@
|
|
|
390
375
|
{% endif %}
|
|
391
376
|
|
|
392
377
|
{% if error_needed == 1 %}
|
|
393
|
-
{{ operation_unsupported_error_exit(props, operator, left, right, type1, type2, exit_result_exception) }}
|
|
378
|
+
{{ operation_unsupported_error_exit(props, operator, inplace, left, right, type1, type2, exit_result_exception) }}
|
|
394
379
|
{% else %}
|
|
395
380
|
NUITKA_CANNOT_GET_HERE("missing error exit annotation");
|
|
396
381
|
{% endif %}
|
|
397
382
|
{% endmacro %}
|
|
398
383
|
{% macro call_binary_slot(props, operator, nb_slot, nb_inplace_slot, left, right, result, operand1, operand2, exit_result_ok, exit_result_exception) %}
|
|
399
|
-
{% if left.isSimilarOrSameTypesAsOneOf(int_desc) or right.isSimilarOrSameTypesAsOneOf(int_desc) %}
|
|
384
|
+
{% if (left.isSimilarOrSameTypesAsOneOf(int_desc) or right.isSimilarOrSameTypesAsOneOf(int_desc)) and left != long_desc and right != long_desc %}
|
|
400
385
|
{{ int_slot(props, operator, nb_slot, target, left, right, result, operand1, operand2, exit_result_ok, exit_result_exception) }}
|
|
401
386
|
{% elif left.isSimilarOrSameTypesAsOneOf(long_desc) or right.isSimilarOrSameTypesAsOneOf(long_desc) %}
|
|
402
387
|
{{ long_slot(props, operator, nb_slot, target, left, right, result, operand1, operand2, exit_result_ok, exit_result_exception) }}
|
|
@@ -418,3 +403,18 @@
|
|
|
418
403
|
{{ 0/0 }}
|
|
419
404
|
{% endif %}
|
|
420
405
|
{% endmacro %}
|
|
406
|
+
|
|
407
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
408
|
+
{# integrates with CPython, but also works on its own. #}
|
|
409
|
+
{# #}
|
|
410
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
411
|
+
{# you may not use this file except in compliance with the License. #}
|
|
412
|
+
{# You may obtain a copy of the License at #}
|
|
413
|
+
{# #}
|
|
414
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
415
|
+
{# #}
|
|
416
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
417
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
418
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
419
|
+
{# See the License for the specific language governing permissions and #}
|
|
420
|
+
{# limitations under the License. #}
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
{# Copyright
|
|
2
|
-
|
|
3
|
-
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
4
|
-
{# integrates with CPython, but also works on its own. #}
|
|
5
|
-
{# #}
|
|
6
|
-
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
7
|
-
{# you may not use this file except in compliance with the License. #}
|
|
8
|
-
{# You may obtain a copy of the License at #}
|
|
9
|
-
{# #}
|
|
10
|
-
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
11
|
-
{# #}
|
|
12
|
-
{# Unless required by applicable law or agreed to in writing, software #}
|
|
13
|
-
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
14
|
-
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
15
|
-
{# See the License for the specific language governing permissions and #}
|
|
16
|
-
{# limitations under the License. #}
|
|
17
|
-
{# #}
|
|
1
|
+
{# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
|
|
2
|
+
|
|
18
3
|
{% from 'HelperSlotsCommon.c.j2' import goto_exit %}
|
|
19
4
|
|
|
20
5
|
{% macro bytes_slot(props, operator, nb_slot, target, left, right, result, operand1, operand2, exit_result_ok, exit_result_exception) %}
|
|
@@ -49,3 +34,18 @@ exit_result_object:
|
|
|
49
34
|
{{ goto_exit(props, exit_result_ok) }}
|
|
50
35
|
|
|
51
36
|
{% endmacro %}
|
|
37
|
+
|
|
38
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
39
|
+
{# integrates with CPython, but also works on its own. #}
|
|
40
|
+
{# #}
|
|
41
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
42
|
+
{# you may not use this file except in compliance with the License. #}
|
|
43
|
+
{# You may obtain a copy of the License at #}
|
|
44
|
+
{# #}
|
|
45
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
46
|
+
{# #}
|
|
47
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
48
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
49
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
50
|
+
{# See the License for the specific language governing permissions and #}
|
|
51
|
+
{# limitations under the License. #}
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
{# Copyright
|
|
2
|
-
|
|
3
|
-
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
4
|
-
{# integrates with CPython, but also works on its own. #}
|
|
5
|
-
{# #}
|
|
6
|
-
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
7
|
-
{# you may not use this file except in compliance with the License. #}
|
|
8
|
-
{# You may obtain a copy of the License at #}
|
|
9
|
-
{# #}
|
|
10
|
-
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
11
|
-
{# #}
|
|
12
|
-
{# Unless required by applicable law or agreed to in writing, software #}
|
|
13
|
-
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
14
|
-
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
15
|
-
{# See the License for the specific language governing permissions and #}
|
|
16
|
-
{# limitations under the License. #}
|
|
17
|
-
{# #}
|
|
1
|
+
{# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
|
|
2
|
+
|
|
18
3
|
{# This contains macros that are used for all slot helper macros #}
|
|
19
4
|
{% macro goto_exit(props, target, result, qual="all") %}
|
|
20
5
|
{% if target.endswith(("_exception", "_left", "_right")) or "_const_" in target or target == "exit_result_ok" %}
|
|
@@ -69,3 +54,18 @@
|
|
|
69
54
|
{% endif %}
|
|
70
55
|
{{ goto_exit(props, exit_result_ok) }}
|
|
71
56
|
{% endmacro %}
|
|
57
|
+
|
|
58
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
59
|
+
{# integrates with CPython, but also works on its own. #}
|
|
60
|
+
{# #}
|
|
61
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
62
|
+
{# you may not use this file except in compliance with the License. #}
|
|
63
|
+
{# You may obtain a copy of the License at #}
|
|
64
|
+
{# #}
|
|
65
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
66
|
+
{# #}
|
|
67
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
68
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
69
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
70
|
+
{# See the License for the specific language governing permissions and #}
|
|
71
|
+
{# limitations under the License. #}
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
{# Copyright
|
|
2
|
-
|
|
3
|
-
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
4
|
-
{# integrates with CPython, but also works on its own. #}
|
|
5
|
-
{# #}
|
|
6
|
-
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
7
|
-
{# you may not use this file except in compliance with the License. #}
|
|
8
|
-
{# You may obtain a copy of the License at #}
|
|
9
|
-
{# #}
|
|
10
|
-
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
11
|
-
{# #}
|
|
12
|
-
{# Unless required by applicable law or agreed to in writing, software #}
|
|
13
|
-
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
14
|
-
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
15
|
-
{# See the License for the specific language governing permissions and #}
|
|
16
|
-
{# limitations under the License. #}
|
|
17
|
-
{# #}
|
|
1
|
+
{# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
|
|
2
|
+
|
|
18
3
|
{% from 'HelperSlotsCommon.c.j2' import goto_exit, constant_int_exit_target, constant_float_exit_target %}
|
|
19
4
|
|
|
20
5
|
{% macro float_core(props, operator, nb_slot, target, left, right, result, operand1, operand2, exit_result_object, exit_result_exception, exit_result_ok_cfloat, exit_result_ok_left, exit_result_ok_right, exit_result_ok_const_float_1_0, exit_result_ok_const_float_0_0, exit_result_ok_const_float_minus_1_0) %}
|
|
@@ -325,3 +310,18 @@ exit_result_ok_right:
|
|
|
325
310
|
{% endif %}
|
|
326
311
|
|
|
327
312
|
{% endmacro %}
|
|
313
|
+
|
|
314
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
315
|
+
{# integrates with CPython, but also works on its own. #}
|
|
316
|
+
{# #}
|
|
317
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
318
|
+
{# you may not use this file except in compliance with the License. #}
|
|
319
|
+
{# You may obtain a copy of the License at #}
|
|
320
|
+
{# #}
|
|
321
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
322
|
+
{# #}
|
|
323
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
324
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
325
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
326
|
+
{# See the License for the specific language governing permissions and #}
|
|
327
|
+
{# limitations under the License. #}
|
|
@@ -1,24 +1,9 @@
|
|
|
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
|
{% from 'HelperSlotsCommon.c.j2' import goto_exit, constant_int_exit_target, constant_float_exit_target %}
|
|
19
4
|
|
|
20
5
|
{% macro int_core(props, operator, nb_slot, bool_mode, left, right, result, operand1, operand2, exit_result_ok, exit_result_exception, exit_result_ok_cbool, exit_result_ok_clong, exit_result_ok_cfloat, exit_result_object, exit_result_ok_left, exit_result_ok_const_int_0, exit_result_ok_const_int_neg_1, exit_result_ok_const_float_0_0, exit_result_ok_const_float_minus_0_0) %}
|
|
21
|
-
{%
|
|
6
|
+
{% do props.update(fall_through_needed = 1) %}
|
|
22
7
|
|
|
23
8
|
{{ left.getCheckValueCode(operand1) }}
|
|
24
9
|
{{ right.getCheckValueCode(operand2) }}
|
|
@@ -34,7 +19,7 @@
|
|
|
34
19
|
bool t = !no_overflow || x != 0;
|
|
35
20
|
|
|
36
21
|
{{ goto_exit(props, exit_result_ok_cbool, "t") }}
|
|
37
|
-
{%
|
|
22
|
+
{% do props.update(fall_through_needed = 0) %}
|
|
38
23
|
{% else %}
|
|
39
24
|
if (likely(no_overflow)) {
|
|
40
25
|
{{ goto_exit(props, exit_result_ok_clong, "x") }}
|
|
@@ -91,7 +76,7 @@
|
|
|
91
76
|
|
|
92
77
|
{% if bool_mode %}
|
|
93
78
|
{{ goto_exit(props, exit_result_ok_cbool, "a == 0") }}
|
|
94
|
-
{%
|
|
79
|
+
{% do props.update(fall_through_needed = 0) %}
|
|
95
80
|
{% else %}
|
|
96
81
|
if (a == 0) {
|
|
97
82
|
if (b < 0) {
|
|
@@ -135,7 +120,7 @@
|
|
|
135
120
|
const long r = a {{operator}} b;
|
|
136
121
|
|
|
137
122
|
{{ goto_exit(props, exit_result_ok_clong, "r") }}
|
|
138
|
-
{%
|
|
123
|
+
{% do props.update(fall_through_needed = 0) %}
|
|
139
124
|
{% elif operator == "<<" %}
|
|
140
125
|
if (unlikely(b < 0)) {
|
|
141
126
|
PyThreadState *tstate = PyThreadState_GET();
|
|
@@ -147,8 +132,8 @@
|
|
|
147
132
|
if (a == 0 || b == 0) {
|
|
148
133
|
{{ goto_exit(props, exit_result_ok_left) }}
|
|
149
134
|
} else if (b >= LONG_BIT) {
|
|
150
|
-
PyObject *operand1_long =
|
|
151
|
-
PyObject *operand2_long =
|
|
135
|
+
PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
|
|
136
|
+
PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
|
|
152
137
|
|
|
153
138
|
// TODO: Change this to using CLONG once we specialize that too.
|
|
154
139
|
PyObject *r = _BINARY_OPERATION_LSHIFT_OBJECT_LONG_LONG(operand1_long, operand2_long);
|
|
@@ -161,8 +146,8 @@
|
|
|
161
146
|
long c = a << b;
|
|
162
147
|
|
|
163
148
|
if (a != Py_ARITHMETIC_RIGHT_SHIFT(long, c, b)) {
|
|
164
|
-
PyObject *operand1_long =
|
|
165
|
-
PyObject *operand2_long =
|
|
149
|
+
PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
|
|
150
|
+
PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
|
|
166
151
|
|
|
167
152
|
// TODO: Change this to using CLONG once we specialize that too.
|
|
168
153
|
PyObject *r = _BINARY_OPERATION_LSHIFT_OBJECT_LONG_LONG(operand1_long, operand2_long);
|
|
@@ -175,7 +160,7 @@
|
|
|
175
160
|
{{ goto_exit(props, exit_result_ok_clong, "c") }}
|
|
176
161
|
}
|
|
177
162
|
}
|
|
178
|
-
{%
|
|
163
|
+
{% do props.update(fall_through_needed = 0) %}
|
|
179
164
|
{% elif operator == ">>" %}
|
|
180
165
|
if (unlikely(b < 0)) {
|
|
181
166
|
PyThreadState *tstate = PyThreadState_GET();
|
|
@@ -198,7 +183,7 @@
|
|
|
198
183
|
|
|
199
184
|
{{ goto_exit(props, exit_result_ok_clong, "r") }}
|
|
200
185
|
}
|
|
201
|
-
{%
|
|
186
|
+
{% do props.update(fall_through_needed = 0) %}
|
|
202
187
|
{% elif operator == "**" %}
|
|
203
188
|
if (b < 0) {
|
|
204
189
|
// TODO: Use CFLOAT once available.
|
|
@@ -224,8 +209,8 @@
|
|
|
224
209
|
break;
|
|
225
210
|
}
|
|
226
211
|
if (ix / temp != prev) {
|
|
227
|
-
PyObject *operand1_long =
|
|
228
|
-
PyObject *operand2_long =
|
|
212
|
+
PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
|
|
213
|
+
PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
|
|
229
214
|
|
|
230
215
|
PyObject *r = _BINARY_OPERATION_POW_OBJECT_LONG_LONG(operand1_long, operand2_long);
|
|
231
216
|
|
|
@@ -243,8 +228,8 @@
|
|
|
243
228
|
temp = (unsigned long)temp * temp;
|
|
244
229
|
|
|
245
230
|
if (prev != 0 && temp / prev != prev) {
|
|
246
|
-
PyObject *operand1_long =
|
|
247
|
-
PyObject *operand2_long =
|
|
231
|
+
PyObject *operand1_long = Nuitka_PyLong_FromLong(a);
|
|
232
|
+
PyObject *operand2_long = Nuitka_PyLong_FromLong(b);
|
|
248
233
|
|
|
249
234
|
PyObject *r = _BINARY_OPERATION_POW_OBJECT_LONG_LONG(operand1_long, operand2_long);
|
|
250
235
|
|
|
@@ -257,7 +242,7 @@
|
|
|
257
242
|
|
|
258
243
|
{{ goto_exit(props, exit_result_ok_clong, "ix") }}
|
|
259
244
|
}
|
|
260
|
-
{%
|
|
245
|
+
{% do props.update(fall_through_needed = 0) %}
|
|
261
246
|
{% elif operator == "divmod" %}
|
|
262
247
|
if (unlikely(b == 0)) {
|
|
263
248
|
PyThreadState *tstate = PyThreadState_GET();
|
|
@@ -281,20 +266,6 @@
|
|
|
281
266
|
{% else %}
|
|
282
267
|
#error Operator {{operator}} not implemented
|
|
283
268
|
{% endif %}
|
|
284
|
-
{% if fall_through_needed %}
|
|
285
|
-
{
|
|
286
|
-
PyObject *operand1_object = {{ left.getAsObjectValueExpression(operand1) }};
|
|
287
|
-
PyObject *operand2_object = {{ right.getAsObjectValueExpression(operand2) }};
|
|
288
|
-
|
|
289
|
-
PyObject *r = {{ left.getSlotCallExpression(nb_slot, "PyLong_Type.tp_as_number->"+nb_slot, "operand1_object", "operand2_object") }};
|
|
290
|
-
assert(r != Py_NotImplemented);
|
|
291
|
-
|
|
292
|
-
{{ left.releaseAsObjectValueStatement("operand1_object") }}
|
|
293
|
-
{{ right.releaseAsObjectValueStatement("operand2_object") }}
|
|
294
|
-
|
|
295
|
-
{{ goto_exit(props, exit_result_object, "r") }}
|
|
296
|
-
}
|
|
297
|
-
{% endif %}
|
|
298
269
|
{% endmacro %}
|
|
299
270
|
|
|
300
271
|
{% macro int_slot(props, operator, nb_slot, target, left, right, result, operand1, operand2, exit_result_ok, exit_result_exception) %}
|
|
@@ -314,6 +285,20 @@
|
|
|
314
285
|
#endif
|
|
315
286
|
|
|
316
287
|
{{ int_core(props, operator, nb_slot, bool_mode, left, right, result, operand1, operand2, exit_result_ok, exit_result_exception, "exit_result_ok_cbool", "exit_result_ok_clong", "exit_result_ok_cfloat", "exit_result_object", "exit_result_ok_left", "exit_result_ok_const_int_0", "exit_result_ok_const_int_neg_1", "exit_result_ok_const_float_0_0", "exit_result_ok_const_float_minus_0_0") }}
|
|
288
|
+
{% if props["fall_through_needed"] %}
|
|
289
|
+
{
|
|
290
|
+
PyObject *operand1_object = {{ left.getAsObjectValueExpression(operand1) }};
|
|
291
|
+
PyObject *operand2_object = {{ right.getAsObjectValueExpression(operand2) }};
|
|
292
|
+
|
|
293
|
+
PyObject *r = {{ left.getSlotCallExpression(nb_slot, "PyLong_Type.tp_as_number->"+nb_slot, "operand1_object", "operand2_object") }};
|
|
294
|
+
assert(r != Py_NotImplemented);
|
|
295
|
+
|
|
296
|
+
{{ left.releaseAsObjectValueStatement("operand1_object") }}
|
|
297
|
+
{{ right.releaseAsObjectValueStatement("operand2_object") }}
|
|
298
|
+
|
|
299
|
+
{{ goto_exit(props, "exit_result_object", "r") }}
|
|
300
|
+
}
|
|
301
|
+
{% endif %}
|
|
317
302
|
|
|
318
303
|
{# // {{ props }} #}
|
|
319
304
|
|
|
@@ -329,7 +314,7 @@ exit_result_ok_cbool:
|
|
|
329
314
|
|
|
330
315
|
// That's our return value then. As we use a dedicated variable, it's
|
|
331
316
|
// OK that way.
|
|
332
|
-
{{ operand1 }} =
|
|
317
|
+
{{ operand1 }} = Nuitka_PyInt_FromLong(cbool_result);
|
|
333
318
|
{% endif %}
|
|
334
319
|
{{ goto_exit(props, exit_result_ok) }}
|
|
335
320
|
{% endif %}
|
|
@@ -346,7 +331,7 @@ exit_result_ok_clong:
|
|
|
346
331
|
|
|
347
332
|
// That's our return value then. As we use a dedicated variable, it's
|
|
348
333
|
// OK that way.
|
|
349
|
-
{{ operand1 }} =
|
|
334
|
+
{{ operand1 }} = Nuitka_PyInt_FromLong(clong_result);
|
|
350
335
|
{% endif %}
|
|
351
336
|
{{ goto_exit(props, exit_result_ok) }}
|
|
352
337
|
{% endif %}
|
|
@@ -409,3 +394,18 @@ exit_result_object:
|
|
|
409
394
|
{% endif %}
|
|
410
395
|
|
|
411
396
|
{% endmacro %}
|
|
397
|
+
|
|
398
|
+
{# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
|
|
399
|
+
{# integrates with CPython, but also works on its own. #}
|
|
400
|
+
{# #}
|
|
401
|
+
{# Licensed under the Apache License, Version 2.0 (the "License"); #}
|
|
402
|
+
{# you may not use this file except in compliance with the License. #}
|
|
403
|
+
{# You may obtain a copy of the License at #}
|
|
404
|
+
{# #}
|
|
405
|
+
{# http://www.apache.org/licenses/LICENSE-2.0 #}
|
|
406
|
+
{# #}
|
|
407
|
+
{# Unless required by applicable law or agreed to in writing, software #}
|
|
408
|
+
{# distributed under the License is distributed on an "AS IS" BASIS, #}
|
|
409
|
+
{# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
|
|
410
|
+
{# See the License for the specific language governing permissions and #}
|
|
411
|
+
{# limitations under the License. #}
|