Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
- Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +18 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +400 -0
- nuitka/MainControl.py +200 -112
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +368 -175
- nuitka/Options.py +632 -213
- nuitka/OutputDirectories.py +40 -21
- nuitka/PostProcessing.py +73 -50
- nuitka/Progress.py +58 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +106 -19
- nuitka/Serialization.py +68 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +108 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +21 -7
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +202 -140
- nuitka/build/CCompilerVersion.scons +39 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +50 -54
- nuitka/build/SconsCaching.py +93 -90
- nuitka/build/SconsCompilerSettings.py +157 -69
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +154 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +147 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +105 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +18 -18
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +18 -18
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +91 -53
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +29 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +593 -190
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -18
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +24 -22
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +32 -20
- nuitka/build/include/nuitka/helper/iterators.h +17 -17
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +29 -17
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +14 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +38 -20
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +128 -46
- nuitka/build/include/nuitka/printing.h +22 -17
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +32 -33
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +27 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +176 -182
- nuitka/build/static_src/CompiledCellType.c +63 -40
- nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
- nuitka/build/static_src/CompiledCoroutineType.c +196 -203
- nuitka/build/static_src/CompiledFrameType.c +287 -133
- nuitka/build/static_src/CompiledFunctionType.c +389 -95
- nuitka/build/static_src/CompiledGeneratorType.c +376 -252
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
- nuitka/build/static_src/CompiledMethodType.c +83 -71
- nuitka/build/static_src/HelpersAllocator.c +88 -19
- nuitka/build/static_src/HelpersAttributes.c +33 -54
- nuitka/build/static_src/HelpersBuiltin.c +43 -33
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +33 -30
- nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonEq.c +518 -492
- nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
- nuitka/build/static_src/HelpersComparisonGe.c +513 -497
- nuitka/build/static_src/HelpersComparisonGt.c +512 -496
- nuitka/build/static_src/HelpersComparisonLe.c +513 -497
- nuitka/build/static_src/HelpersComparisonLt.c +512 -496
- nuitka/build/static_src/HelpersComparisonNe.c +520 -492
- nuitka/build/static_src/HelpersConsole.c +96 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +51 -29
- nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +161 -50
- nuitka/build/static_src/HelpersFiles.c +37 -17
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +48 -20
- nuitka/build/static_src/HelpersImportHard.c +53 -17
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +140 -50
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +173 -146
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
- nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
- nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
- nuitka/build/static_src/HelpersProfiling.c +24 -23
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +88 -20
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +234 -37
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +68 -23
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +359 -263
- nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
- nuitka/build/static_src/OnefileBootstrap.c +276 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +19 -17
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +20 -17
- nuitka/code_generation/CallCodes.py +19 -17
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +48 -27
- nuitka/code_generation/CodeHelperSelection.py +19 -17
- nuitka/code_generation/CodeHelpers.py +24 -20
- nuitka/code_generation/CodeObjectCodes.py +34 -24
- nuitka/code_generation/ComparisonCodes.py +38 -20
- nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +152 -26
- nuitka/code_generation/CoroutineCodes.py +19 -17
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +25 -23
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +27 -33
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +27 -18
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +24 -20
- nuitka/code_generation/FunctionCodes.py +24 -21
- nuitka/code_generation/GeneratorCodes.py +23 -20
- nuitka/code_generation/GlobalConstants.py +43 -23
- nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +19 -17
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +19 -17
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +43 -25
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +29 -31
- nuitka/code_generation/PackageResourceCodes.py +59 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +19 -17
- nuitka/code_generation/Reports.py +19 -17
- nuitka/code_generation/ReturnCodes.py +19 -17
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +19 -17
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +71 -0
- nuitka/code_generation/VariableCodes.py +26 -22
- nuitka/code_generation/VariableDeclarations.py +20 -17
- nuitka/code_generation/YieldCodes.py +22 -20
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +19 -17
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
- nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
- nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
- nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +18 -18
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +121 -48
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +44 -32
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +19 -18
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +19 -18
- nuitka/distutils/DistutilCommands.py +34 -23
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +20 -17
- nuitka/finalizations/FinalizeMarkups.py +21 -41
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +48 -28
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +147 -57
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +29 -21
- nuitka/freezer/ImportDetection.py +20 -17
- nuitka/freezer/IncludedDataFiles.py +118 -47
- nuitka/freezer/IncludedEntryPoints.py +102 -38
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +105 -50
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +286 -92
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +131 -47
- nuitka/importing/StandardLibrary.py +46 -28
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +19 -17
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +24 -20
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +68 -19
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1250 -302
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +21 -23
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +19 -17
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +29 -17
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +54 -32
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +19 -17
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +81 -35
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +21 -19
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +545 -129
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +436 -446
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +45 -43
- nuitka/nodes/NodeMakingHelpers.py +21 -19
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +20 -17
- nuitka/nodes/OsSysNodes.py +66 -18
- nuitka/nodes/OutlineNodes.py +22 -20
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -77
- nuitka/nodes/StatementNodes.py +19 -17
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +26 -24
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +40 -17
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +145 -39
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +40 -17
- nuitka/nodes/shapes/StandardShapes.py +27 -20
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +19 -17
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +610 -109
- nuitka/plugins/Plugins.py +241 -58
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +407 -46
- nuitka/plugins/standard/KivyPlugin.py +30 -17
- nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +74 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +103 -53
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +94 -30
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3449 -1299
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
- nuitka/reports/CompilationReportReader.py +67 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +352 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +30 -20
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +67 -22
- nuitka/specs/ParameterSpecs.py +56 -41
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +19 -21
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +93 -71
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +31 -27
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +106 -52
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +36 -29
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +22 -25
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
- nuitka/tools/watch/AutoStage.py +144 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +176 -147
- nuitka/tree/ComplexCallHelperFunctions.py +80 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +20 -17
- nuitka/tree/ReformulationAssignmentStatements.py +92 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +146 -98
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +40 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +58 -54
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +244 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +21 -19
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +84 -19
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +73 -34
- nuitka/utils/FileOperations.py +318 -74
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +118 -24
- nuitka/utils/InstalledPythons.py +80 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +19 -17
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +115 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/top_level.txt +0 -0
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
4
|
-
// integrates with CPython, but also works on its own.
|
|
5
|
-
//
|
|
6
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
// you may not use this file except in compliance with the License.
|
|
8
|
-
// You may obtain a copy of the License at
|
|
9
|
-
//
|
|
10
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
//
|
|
12
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
// See the License for the specific language governing permissions and
|
|
16
|
-
// limitations under the License.
|
|
17
|
-
//
|
|
1
|
+
// Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
18
3
|
/* This helpers are used to interact safely with buffers to not overflow.
|
|
19
4
|
|
|
20
5
|
Currently this is used for char and wchar_t string buffers and shared
|
|
@@ -29,6 +14,7 @@
|
|
|
29
14
|
#include <windows.h>
|
|
30
15
|
#endif
|
|
31
16
|
#include <stdbool.h>
|
|
17
|
+
#include <stdio.h>
|
|
32
18
|
#endif
|
|
33
19
|
|
|
34
20
|
#include "nuitka/safe_string_ops.h"
|
|
@@ -95,7 +81,7 @@ void appendWStringSafeW(wchar_t *target, wchar_t const *source, size_t buffer_si
|
|
|
95
81
|
*target = 0;
|
|
96
82
|
}
|
|
97
83
|
|
|
98
|
-
void
|
|
84
|
+
void appendWCharSafeW(wchar_t *target, wchar_t c, size_t buffer_size) {
|
|
99
85
|
while (*target != 0) {
|
|
100
86
|
target++;
|
|
101
87
|
buffer_size -= 1;
|
|
@@ -105,10 +91,20 @@ void appendCharSafeW(wchar_t *target, char c, size_t buffer_size) {
|
|
|
105
91
|
abort();
|
|
106
92
|
}
|
|
107
93
|
|
|
108
|
-
target
|
|
94
|
+
*target++ = c;
|
|
95
|
+
*target = 0;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
void appendCharSafeW(wchar_t *target, char c, size_t buffer_size) {
|
|
109
99
|
char buffer_c[2] = {c, 0};
|
|
110
|
-
|
|
111
|
-
|
|
100
|
+
wchar_t wide_buffer_c[2];
|
|
101
|
+
|
|
102
|
+
size_t res = mbstowcs(wide_buffer_c, buffer_c, 2);
|
|
103
|
+
if (res != 1) {
|
|
104
|
+
abort();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
appendWCharSafeW(target, wide_buffer_c[0], buffer_size);
|
|
112
108
|
}
|
|
113
109
|
|
|
114
110
|
void appendStringSafeW(wchar_t *target, char const *source, size_t buffer_size) {
|
|
@@ -119,6 +115,7 @@ void appendStringSafeW(wchar_t *target, char const *source, size_t buffer_size)
|
|
|
119
115
|
|
|
120
116
|
while (*source != 0) {
|
|
121
117
|
appendCharSafeW(target, *source, buffer_size);
|
|
118
|
+
target++;
|
|
122
119
|
source++;
|
|
123
120
|
buffer_size -= 1;
|
|
124
121
|
}
|
|
@@ -131,8 +128,23 @@ void printOSErrorMessage(char const *message, error_code_t error_code) {
|
|
|
131
128
|
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL,
|
|
132
129
|
error_code, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), (LPTSTR)&err_buffer, 0, NULL);
|
|
133
130
|
|
|
134
|
-
fprintf(stderr, "%s ([Error
|
|
131
|
+
fprintf(stderr, "%s ([Error " ERROR_CODE_FORMAT_STR "] %s)\n", message, error_code, err_buffer);
|
|
135
132
|
#else
|
|
136
133
|
fprintf(stderr, "%s: %s\n", message, strerror(error_code));
|
|
137
134
|
#endif
|
|
138
135
|
}
|
|
136
|
+
|
|
137
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
138
|
+
// integrates with CPython, but also works on its own.
|
|
139
|
+
//
|
|
140
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
141
|
+
// you may not use this file except in compliance with the License.
|
|
142
|
+
// You may obtain a copy of the License at
|
|
143
|
+
//
|
|
144
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
145
|
+
//
|
|
146
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
147
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
148
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
149
|
+
// See the License for the specific language governing permissions and
|
|
150
|
+
// 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 helpers is used to work with sequence interfaces.
|
|
19
4
|
|
|
20
5
|
*/
|
|
@@ -66,7 +51,7 @@ Py_ssize_t Nuitka_PyObject_Size(PyObject *sequence) {
|
|
|
66
51
|
return tp_as_sequence->sq_length(sequence);
|
|
67
52
|
}
|
|
68
53
|
|
|
69
|
-
return
|
|
54
|
+
return Nuitka_PyMapping_Size(sequence);
|
|
70
55
|
}
|
|
71
56
|
|
|
72
57
|
PyObject *Nuitka_Number_Index(PyObject *item) {
|
|
@@ -132,4 +117,18 @@ PyObject *Nuitka_Number_IndexAsLong(PyObject *item) {
|
|
|
132
117
|
return NULL;
|
|
133
118
|
}
|
|
134
119
|
}
|
|
135
|
-
#endif
|
|
120
|
+
#endif
|
|
121
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
122
|
+
// integrates with CPython, but also works on its own.
|
|
123
|
+
//
|
|
124
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
125
|
+
// you may not use this file except in compliance with the License.
|
|
126
|
+
// You may obtain a copy of the License at
|
|
127
|
+
//
|
|
128
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
129
|
+
//
|
|
130
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
131
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
132
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
133
|
+
// See the License for the specific language governing permissions and
|
|
134
|
+
// 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
|
/* Small helpers to work with slices their contents */
|
|
19
4
|
|
|
20
5
|
// This file is included from another C file, help IDEs to still parse it on
|
|
@@ -24,14 +9,21 @@
|
|
|
24
9
|
#endif
|
|
25
10
|
|
|
26
11
|
#if PYTHON_VERSION >= 0x3a0
|
|
27
|
-
PyObject *Nuitka_Slice_New(PyObject *start, PyObject *stop, PyObject *step) {
|
|
28
|
-
PyInterpreterState *interp = _PyInterpreterState_GET();
|
|
29
12
|
|
|
13
|
+
PyObject *Nuitka_Slice_New(PyThreadState *tstate, PyObject *start, PyObject *stop, PyObject *step) {
|
|
30
14
|
PySliceObject *result_slice;
|
|
31
15
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
16
|
+
#if PYTHON_VERSION >= 0x3d0
|
|
17
|
+
struct _Py_object_freelists *freelists = _Nuitka_object_freelists_GET(tstate);
|
|
18
|
+
PySliceObject **slice_cache_ptr = &freelists->slices.slice_cache;
|
|
19
|
+
#else
|
|
20
|
+
PyInterpreterState *interp = tstate->interp;
|
|
21
|
+
PySliceObject **slice_cache_ptr = &interp->slice_cache;
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
if (*slice_cache_ptr != NULL) {
|
|
25
|
+
result_slice = *slice_cache_ptr;
|
|
26
|
+
*slice_cache_ptr = NULL;
|
|
35
27
|
|
|
36
28
|
Nuitka_Py_NewReference((PyObject *)result_slice);
|
|
37
29
|
} else {
|
|
@@ -64,4 +56,18 @@ PyObject *Nuitka_Slice_New(PyObject *start, PyObject *stop, PyObject *step) {
|
|
|
64
56
|
return (PyObject *)result_slice;
|
|
65
57
|
}
|
|
66
58
|
|
|
67
|
-
#endif
|
|
59
|
+
#endif
|
|
60
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
61
|
+
// integrates with CPython, but also works on its own.
|
|
62
|
+
//
|
|
63
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
64
|
+
// you may not use this file except in compliance with the License.
|
|
65
|
+
// You may obtain a copy of the License at
|
|
66
|
+
//
|
|
67
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
68
|
+
//
|
|
69
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
70
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
71
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
72
|
+
// See the License for the specific language governing permissions and
|
|
73
|
+
// 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 helpers is used to quickly create a string object from C char.
|
|
19
4
|
|
|
20
5
|
Currently this is used for string subscript code, but may also be used
|
|
@@ -146,15 +131,19 @@ PyObject *BUILTIN_ORD(PyObject *value) {
|
|
|
146
131
|
(assert(_PyUnicode_CHECK(op)), assert(PyUnicode_IS_READY(op)), \
|
|
147
132
|
PyUnicode_IS_COMPACT_ASCII(op) ? ((PyASCIIObject *)(op))->length : _PyUnicode_UTF8_LENGTH(op))
|
|
148
133
|
#define _PyUnicode_WSTR(op) (((PyASCIIObject *)(op))->wstr)
|
|
134
|
+
#if PYTHON_VERSION < 0x3c0
|
|
149
135
|
#define _PyUnicode_WSTR_LENGTH(op) (((PyCompactUnicodeObject *)(op))->wstr_length)
|
|
136
|
+
#endif
|
|
150
137
|
#define _PyUnicode_LENGTH(op) (((PyASCIIObject *)(op))->length)
|
|
151
138
|
#define _PyUnicode_STATE(op) (((PyASCIIObject *)(op))->state)
|
|
152
139
|
#define _PyUnicode_HASH(op) (((PyASCIIObject *)(op))->hash)
|
|
153
140
|
#define _PyUnicode_KIND(op) (((PyASCIIObject *)(op))->state.kind)
|
|
154
141
|
#define _PyUnicode_DATA_ANY(op) (((PyUnicodeObject *)(op))->data.any)
|
|
155
142
|
|
|
143
|
+
#if PYTHON_VERSION < 0x3c0
|
|
156
144
|
#undef PyUnicode_READY
|
|
157
145
|
#define PyUnicode_READY(op) ((PyUnicode_IS_READY(op) ? 0 : _PyUnicode_Ready(op)))
|
|
146
|
+
#endif
|
|
158
147
|
|
|
159
148
|
#define _PyUnicode_SHARE_UTF8(op) (assert(!PyUnicode_IS_COMPACT_ASCII(op)), (_PyUnicode_UTF8(op) == PyUnicode_DATA(op)))
|
|
160
149
|
#define _PyUnicode_SHARE_WSTR(op) ((_PyUnicode_WSTR(unicode) == PyUnicode_DATA(op)))
|
|
@@ -181,7 +170,7 @@ PyObject *BUILTIN_ORD(PyObject *value) {
|
|
|
181
170
|
_to += 4; \
|
|
182
171
|
} \
|
|
183
172
|
while (_iter < (_end)) \
|
|
184
|
-
*_to++ = (to_type)*_iter
|
|
173
|
+
*_to++ = (to_type)(*_iter++); \
|
|
185
174
|
} while (0)
|
|
186
175
|
|
|
187
176
|
extern int ucs1lib_find_max_char(const Py_UCS1 *begin, const Py_UCS1 *end);
|
|
@@ -239,12 +228,13 @@ static int _NuitkaUnicode_modifiable(PyObject *unicode) {
|
|
|
239
228
|
return 0;
|
|
240
229
|
if (_PyUnicode_HASH(unicode) != -1)
|
|
241
230
|
return 0;
|
|
242
|
-
// TODO: That ought to be impossible with
|
|
231
|
+
// TODO: That ought to be impossible with refcnt 1.
|
|
243
232
|
if (PyUnicode_CHECK_INTERNED(unicode))
|
|
244
233
|
return 0;
|
|
245
234
|
return 1;
|
|
246
235
|
}
|
|
247
236
|
|
|
237
|
+
#if PYTHON_VERSION < 0x3c0
|
|
248
238
|
static PyObject *_NuitkaUnicode_New(Py_ssize_t length) {
|
|
249
239
|
assert(length != 0);
|
|
250
240
|
|
|
@@ -271,7 +261,7 @@ static PyObject *_NuitkaUnicode_New(Py_ssize_t length) {
|
|
|
271
261
|
_PyUnicode_UTF8(unicode) = NULL;
|
|
272
262
|
_PyUnicode_UTF8_LENGTH(unicode) = 0;
|
|
273
263
|
|
|
274
|
-
_PyUnicode_WSTR(unicode) = (Py_UNICODE *)
|
|
264
|
+
_PyUnicode_WSTR(unicode) = (Py_UNICODE *)NuitkaObject_Malloc(new_size);
|
|
275
265
|
if (!_PyUnicode_WSTR(unicode)) {
|
|
276
266
|
Py_DECREF(unicode);
|
|
277
267
|
PyErr_NoMemory();
|
|
@@ -307,6 +297,24 @@ static PyObject *_NuitkaUnicode_resize_copy(PyObject *unicode, Py_ssize_t length
|
|
|
307
297
|
}
|
|
308
298
|
}
|
|
309
299
|
|
|
300
|
+
#else
|
|
301
|
+
|
|
302
|
+
static PyObject *_NuitkaUnicode_resize_copy(PyObject *unicode, Py_ssize_t length) {
|
|
303
|
+
// TODO: We should inline this one as well, it's doable and would save a bunch
|
|
304
|
+
// for the copying case as well.
|
|
305
|
+
PyObject *copy = PyUnicode_New(length, PyUnicode_MAX_CHAR_VALUE(unicode));
|
|
306
|
+
|
|
307
|
+
if (unlikely(copy == NULL)) {
|
|
308
|
+
return NULL;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
Py_ssize_t copy_length = Py_MIN(length, PyUnicode_GET_LENGTH(unicode));
|
|
312
|
+
_NuitkaUnicode_FastCopyCharacters(copy, 0, unicode, 0, copy_length);
|
|
313
|
+
return copy;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
#endif
|
|
317
|
+
|
|
310
318
|
// We use older form code, make some backward compatible defines available.
|
|
311
319
|
#if PYTHON_VERSION >= 0x390
|
|
312
320
|
|
|
@@ -324,6 +332,7 @@ static PyObject *_NuitkaUnicode_resize_copy(PyObject *unicode, Py_ssize_t length
|
|
|
324
332
|
|
|
325
333
|
#endif
|
|
326
334
|
|
|
335
|
+
#if PYTHON_VERSION < 0x3c0
|
|
327
336
|
static PyObject *_NuitkaUnicode_resize_compact(PyObject *unicode, Py_ssize_t length) {
|
|
328
337
|
assert(PyUnicode_IS_COMPACT(unicode));
|
|
329
338
|
|
|
@@ -338,7 +347,7 @@ static PyObject *_NuitkaUnicode_resize_compact(PyObject *unicode, Py_ssize_t len
|
|
|
338
347
|
|
|
339
348
|
int share_wstr = _PyUnicode_SHARE_WSTR(unicode);
|
|
340
349
|
|
|
341
|
-
if (length > ((PY_SSIZE_T_MAX - struct_size) / char_size - 1)) {
|
|
350
|
+
if (unlikely(length > ((PY_SSIZE_T_MAX - struct_size) / char_size - 1))) {
|
|
342
351
|
PyErr_NoMemory();
|
|
343
352
|
return NULL;
|
|
344
353
|
}
|
|
@@ -349,6 +358,7 @@ static PyObject *_NuitkaUnicode_resize_compact(PyObject *unicode, Py_ssize_t len
|
|
|
349
358
|
_PyUnicode_UTF8(unicode) = NULL;
|
|
350
359
|
_PyUnicode_UTF8_LENGTH(unicode) = 0;
|
|
351
360
|
}
|
|
361
|
+
|
|
352
362
|
_Py_DEC_REFTOTAL;
|
|
353
363
|
_Py_ForgetReference(unicode);
|
|
354
364
|
|
|
@@ -359,10 +369,12 @@ static PyObject *_NuitkaUnicode_resize_compact(PyObject *unicode, Py_ssize_t len
|
|
|
359
369
|
PyErr_NoMemory();
|
|
360
370
|
return NULL;
|
|
361
371
|
}
|
|
372
|
+
|
|
362
373
|
unicode = new_unicode;
|
|
363
374
|
Nuitka_Py_NewReference(unicode);
|
|
364
375
|
|
|
365
376
|
_PyUnicode_LENGTH(unicode) = length;
|
|
377
|
+
|
|
366
378
|
if (share_wstr) {
|
|
367
379
|
_PyUnicode_WSTR(unicode) = (wchar_t *)PyUnicode_DATA(unicode);
|
|
368
380
|
if (!PyUnicode_IS_ASCII(unicode)) {
|
|
@@ -391,10 +403,11 @@ static int _NuitkaUnicode_resize_inplace(PyObject *unicode, Py_ssize_t length) {
|
|
|
391
403
|
int share_wstr = _PyUnicode_SHARE_WSTR(unicode);
|
|
392
404
|
int share_utf8 = _PyUnicode_SHARE_UTF8(unicode);
|
|
393
405
|
|
|
394
|
-
if (length > (PY_SSIZE_T_MAX / char_size - 1)) {
|
|
406
|
+
if (unlikely(length > (PY_SSIZE_T_MAX / char_size - 1))) {
|
|
395
407
|
PyErr_NoMemory();
|
|
396
408
|
return -1;
|
|
397
409
|
}
|
|
410
|
+
|
|
398
411
|
Py_ssize_t new_size = (length + 1) * char_size;
|
|
399
412
|
|
|
400
413
|
if (!share_utf8 && _PyUnicode_HAS_UTF8_MEMORY(unicode)) {
|
|
@@ -408,6 +421,7 @@ static int _NuitkaUnicode_resize_inplace(PyObject *unicode, Py_ssize_t length) {
|
|
|
408
421
|
PyErr_NoMemory();
|
|
409
422
|
return -1;
|
|
410
423
|
}
|
|
424
|
+
|
|
411
425
|
_PyUnicode_DATA_ANY(unicode) = data;
|
|
412
426
|
if (share_wstr) {
|
|
413
427
|
_PyUnicode_WSTR(unicode) = (wchar_t *)data;
|
|
@@ -446,15 +460,17 @@ static int _NuitkaUnicode_resize_inplace(PyObject *unicode, Py_ssize_t length) {
|
|
|
446
460
|
}
|
|
447
461
|
|
|
448
462
|
static int _NuitkaUnicode_resize(PyObject **p_unicode, Py_ssize_t length) {
|
|
463
|
+
assert(p_unicode != NULL);
|
|
464
|
+
assert(*p_unicode != NULL);
|
|
465
|
+
assert(0 <= length);
|
|
466
|
+
|
|
449
467
|
PyObject *unicode = *p_unicode;
|
|
468
|
+
assert(PyUnicode_Check(unicode));
|
|
450
469
|
Py_ssize_t old_length;
|
|
451
470
|
|
|
452
|
-
#if PYTHON_VERSION < 0x3c0
|
|
453
471
|
if (_PyUnicode_KIND(unicode) == PyUnicode_WCHAR_KIND) {
|
|
454
472
|
old_length = PyUnicode_WSTR_LENGTH(unicode);
|
|
455
|
-
} else
|
|
456
|
-
#endif
|
|
457
|
-
{
|
|
473
|
+
} else {
|
|
458
474
|
old_length = PyUnicode_GET_LENGTH(unicode);
|
|
459
475
|
}
|
|
460
476
|
|
|
@@ -470,23 +486,189 @@ static int _NuitkaUnicode_resize(PyObject **p_unicode, Py_ssize_t length) {
|
|
|
470
486
|
|
|
471
487
|
if (!_NuitkaUnicode_modifiable(unicode)) {
|
|
472
488
|
PyObject *copy = _NuitkaUnicode_resize_copy(unicode, length);
|
|
473
|
-
if (copy == NULL)
|
|
489
|
+
if (unlikely(copy == NULL)) {
|
|
474
490
|
return -1;
|
|
491
|
+
}
|
|
475
492
|
Py_DECREF(*p_unicode);
|
|
476
493
|
*p_unicode = copy;
|
|
494
|
+
|
|
477
495
|
return 0;
|
|
478
496
|
}
|
|
479
497
|
|
|
480
498
|
if (PyUnicode_IS_COMPACT(unicode)) {
|
|
481
499
|
PyObject *new_unicode = _NuitkaUnicode_resize_compact(unicode, length);
|
|
482
|
-
|
|
500
|
+
|
|
501
|
+
if (unlikely(new_unicode == NULL)) {
|
|
483
502
|
return -1;
|
|
503
|
+
}
|
|
504
|
+
|
|
484
505
|
*p_unicode = new_unicode;
|
|
485
506
|
return 0;
|
|
486
507
|
}
|
|
487
508
|
|
|
488
509
|
return _NuitkaUnicode_resize_inplace(unicode, length);
|
|
489
510
|
}
|
|
511
|
+
#else
|
|
512
|
+
|
|
513
|
+
#ifndef __NUITKA_NO_ASSERT__
|
|
514
|
+
static void _Nuitka_unicode_fill_invalid(PyObject *unicode, Py_ssize_t old_length) {
|
|
515
|
+
int kind = PyUnicode_KIND(unicode);
|
|
516
|
+
Py_UCS1 *data = PyUnicode_1BYTE_DATA(unicode);
|
|
517
|
+
Py_ssize_t length = _PyUnicode_LENGTH(unicode);
|
|
518
|
+
if (length <= old_length)
|
|
519
|
+
return;
|
|
520
|
+
memset(data + old_length * kind, 0xff, (length - old_length) * kind);
|
|
521
|
+
}
|
|
522
|
+
#endif
|
|
523
|
+
|
|
524
|
+
static PyObject *_NuitkaUnicode_resize_compact(PyObject *unicode, Py_ssize_t length) {
|
|
525
|
+
assert(PyUnicode_IS_COMPACT(unicode));
|
|
526
|
+
|
|
527
|
+
Py_ssize_t char_size = PyUnicode_KIND(unicode);
|
|
528
|
+
Py_ssize_t struct_size;
|
|
529
|
+
|
|
530
|
+
if (PyUnicode_IS_ASCII(unicode)) {
|
|
531
|
+
struct_size = sizeof(PyASCIIObject);
|
|
532
|
+
} else {
|
|
533
|
+
struct_size = sizeof(PyCompactUnicodeObject);
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
#ifndef __NUITKA_NO_ASSERT__
|
|
537
|
+
Py_ssize_t old_length = _PyUnicode_LENGTH(unicode);
|
|
538
|
+
#endif
|
|
539
|
+
|
|
540
|
+
// assert(_Nuitka_unicode_modifiable(unicode));
|
|
541
|
+
|
|
542
|
+
if (unlikely(length > ((PY_SSIZE_T_MAX - struct_size) / char_size - 1))) {
|
|
543
|
+
PyErr_NoMemory();
|
|
544
|
+
return NULL;
|
|
545
|
+
}
|
|
546
|
+
Py_ssize_t new_size = (struct_size + (length + 1) * char_size);
|
|
547
|
+
|
|
548
|
+
if (_PyUnicode_HAS_UTF8_MEMORY(unicode)) {
|
|
549
|
+
PyObject_DEL(_PyUnicode_UTF8(unicode));
|
|
550
|
+
_PyUnicode_UTF8(unicode) = NULL;
|
|
551
|
+
_PyUnicode_UTF8_LENGTH(unicode) = 0;
|
|
552
|
+
}
|
|
553
|
+
_Py_ForgetReference(unicode);
|
|
554
|
+
|
|
555
|
+
PyObject *new_unicode = (PyObject *)PyObject_Realloc(unicode, new_size);
|
|
556
|
+
if (unlikely(new_unicode == NULL)) {
|
|
557
|
+
Nuitka_Py_NewReferenceNoTotal(unicode);
|
|
558
|
+
|
|
559
|
+
PyErr_NoMemory();
|
|
560
|
+
return NULL;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
unicode = new_unicode;
|
|
564
|
+
Nuitka_Py_NewReferenceNoTotal(unicode);
|
|
565
|
+
|
|
566
|
+
_PyUnicode_LENGTH(unicode) = length;
|
|
567
|
+
|
|
568
|
+
#ifndef __NUITKA_NO_ASSERT__
|
|
569
|
+
_Nuitka_unicode_fill_invalid(unicode, old_length);
|
|
570
|
+
#endif
|
|
571
|
+
|
|
572
|
+
PyUnicode_WRITE(PyUnicode_KIND(unicode), PyUnicode_DATA(unicode), length, 0);
|
|
573
|
+
assert(_PyUnicode_CheckConsistency(unicode, 0));
|
|
574
|
+
|
|
575
|
+
return unicode;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
static int _NuitkaUnicode_resize_inplace(PyObject *unicode, Py_ssize_t length) {
|
|
579
|
+
assert(!PyUnicode_IS_COMPACT(unicode));
|
|
580
|
+
assert(Py_REFCNT(unicode) == 1);
|
|
581
|
+
|
|
582
|
+
#ifndef __NUITKA_NO_ASSERT__
|
|
583
|
+
Py_ssize_t old_length = _PyUnicode_LENGTH(unicode);
|
|
584
|
+
#endif
|
|
585
|
+
|
|
586
|
+
void *data = _PyUnicode_DATA_ANY(unicode);
|
|
587
|
+
Py_ssize_t char_size = PyUnicode_KIND(unicode);
|
|
588
|
+
int share_utf8 = _PyUnicode_SHARE_UTF8(unicode);
|
|
589
|
+
|
|
590
|
+
if (unlikely(length > (PY_SSIZE_T_MAX / char_size - 1))) {
|
|
591
|
+
PyErr_NoMemory();
|
|
592
|
+
return -1;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
Py_ssize_t new_size = (length + 1) * char_size;
|
|
596
|
+
|
|
597
|
+
if (!share_utf8 && _PyUnicode_HAS_UTF8_MEMORY(unicode)) {
|
|
598
|
+
PyObject_DEL(_PyUnicode_UTF8(unicode));
|
|
599
|
+
_PyUnicode_UTF8(unicode) = NULL;
|
|
600
|
+
_PyUnicode_UTF8_LENGTH(unicode) = 0;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
data = (PyObject *)PyObject_REALLOC(data, new_size);
|
|
604
|
+
if (data == NULL) {
|
|
605
|
+
PyErr_NoMemory();
|
|
606
|
+
return -1;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
_PyUnicode_DATA_ANY(unicode) = data;
|
|
610
|
+
if (share_utf8) {
|
|
611
|
+
_PyUnicode_UTF8(unicode) = data;
|
|
612
|
+
_PyUnicode_UTF8_LENGTH(unicode) = length;
|
|
613
|
+
}
|
|
614
|
+
_PyUnicode_LENGTH(unicode) = length;
|
|
615
|
+
PyUnicode_WRITE(PyUnicode_KIND(unicode), data, length, 0);
|
|
616
|
+
#ifndef __NUITKA_NO_ASSERT__
|
|
617
|
+
_Nuitka_unicode_fill_invalid(unicode, old_length);
|
|
618
|
+
#endif
|
|
619
|
+
|
|
620
|
+
/* check for integer overflow */
|
|
621
|
+
if (length > PY_SSIZE_T_MAX / (Py_ssize_t)sizeof(wchar_t) - 1) {
|
|
622
|
+
PyErr_NoMemory();
|
|
623
|
+
return -1;
|
|
624
|
+
}
|
|
625
|
+
assert(_PyUnicode_CheckConsistency(unicode, 0));
|
|
626
|
+
return 0;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
static int _NuitkaUnicode_resize(PyObject **p_unicode, Py_ssize_t length) {
|
|
630
|
+
assert(p_unicode != NULL);
|
|
631
|
+
assert(*p_unicode != NULL);
|
|
632
|
+
assert(0 <= length);
|
|
633
|
+
|
|
634
|
+
PyObject *unicode = *p_unicode;
|
|
635
|
+
assert(PyUnicode_Check(unicode));
|
|
636
|
+
Py_ssize_t old_length;
|
|
637
|
+
|
|
638
|
+
old_length = PyUnicode_GET_LENGTH(unicode);
|
|
639
|
+
if (old_length == length) {
|
|
640
|
+
return 0;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
if (length == 0) {
|
|
644
|
+
Py_SETREF(*p_unicode, const_str_empty);
|
|
645
|
+
return 0;
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
if (!_NuitkaUnicode_modifiable(unicode)) {
|
|
649
|
+
PyObject *copy = _NuitkaUnicode_resize_copy(unicode, length);
|
|
650
|
+
if (unlikely(copy == NULL)) {
|
|
651
|
+
return -1;
|
|
652
|
+
}
|
|
653
|
+
Py_SETREF(*p_unicode, copy);
|
|
654
|
+
|
|
655
|
+
return 0;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
if (PyUnicode_IS_COMPACT(unicode)) {
|
|
659
|
+
PyObject *new_unicode = _NuitkaUnicode_resize_compact(unicode, length);
|
|
660
|
+
|
|
661
|
+
if (unlikely(new_unicode == NULL)) {
|
|
662
|
+
return -1;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
*p_unicode = new_unicode;
|
|
666
|
+
return 0;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
return _NuitkaUnicode_resize_inplace(unicode, length);
|
|
670
|
+
}
|
|
671
|
+
#endif
|
|
490
672
|
|
|
491
673
|
PyObject *UNICODE_CONCAT(PyThreadState *tstate, PyObject *left, PyObject *right) {
|
|
492
674
|
if (left == const_str_empty) {
|
|
@@ -510,11 +692,11 @@ PyObject *UNICODE_CONCAT(PyThreadState *tstate, PyObject *left, PyObject *right)
|
|
|
510
692
|
}
|
|
511
693
|
Py_ssize_t new_len = left_len + right_len;
|
|
512
694
|
|
|
513
|
-
Py_UCS4
|
|
514
|
-
Py_UCS4
|
|
515
|
-
|
|
695
|
+
Py_UCS4 max_char = PyUnicode_MAX_CHAR_VALUE(left);
|
|
696
|
+
Py_UCS4 max_char2 = PyUnicode_MAX_CHAR_VALUE(right);
|
|
697
|
+
max_char = Py_MAX(max_char, max_char2);
|
|
516
698
|
|
|
517
|
-
PyObject *result = PyUnicode_New(new_len,
|
|
699
|
+
PyObject *result = PyUnicode_New(new_len, max_char);
|
|
518
700
|
if (unlikely(result == NULL)) {
|
|
519
701
|
return NULL;
|
|
520
702
|
}
|
|
@@ -561,12 +743,12 @@ bool UNICODE_APPEND(PyThreadState *tstate, PyObject **p_left, PyObject *right) {
|
|
|
561
743
|
|
|
562
744
|
_NuitkaUnicode_FastCopyCharacters(*p_left, left_len, right, 0, right_len);
|
|
563
745
|
} else {
|
|
564
|
-
Py_UCS4
|
|
565
|
-
Py_UCS4
|
|
746
|
+
Py_UCS4 max_char = PyUnicode_MAX_CHAR_VALUE(left);
|
|
747
|
+
Py_UCS4 max_char2 = PyUnicode_MAX_CHAR_VALUE(right);
|
|
566
748
|
|
|
567
|
-
|
|
749
|
+
max_char = Py_MAX(max_char, max_char2);
|
|
568
750
|
|
|
569
|
-
PyObject *res = PyUnicode_New(new_len,
|
|
751
|
+
PyObject *res = PyUnicode_New(new_len, max_char);
|
|
570
752
|
if (unlikely(res == NULL)) {
|
|
571
753
|
return false;
|
|
572
754
|
}
|
|
@@ -617,7 +799,7 @@ PyObject *STR_JOIN(PyThreadState *tstate, PyObject *str, PyObject *iterable) {
|
|
|
617
799
|
|
|
618
800
|
#endif
|
|
619
801
|
|
|
620
|
-
PyObject *NuitkaUnicode_FromWideChar(const
|
|
802
|
+
PyObject *NuitkaUnicode_FromWideChar(wchar_t const *str, Py_ssize_t size) {
|
|
621
803
|
#if PYTHON_VERSION < 0x300
|
|
622
804
|
if (size == -1) {
|
|
623
805
|
size = wcslen(str);
|
|
@@ -799,3 +981,18 @@ PyObject *BUILTIN_STR(PyObject *value) {
|
|
|
799
981
|
}
|
|
800
982
|
|
|
801
983
|
#endif
|
|
984
|
+
|
|
985
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
986
|
+
// integrates with CPython, but also works on its own.
|
|
987
|
+
//
|
|
988
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
989
|
+
// you may not use this file except in compliance with the License.
|
|
990
|
+
// You may obtain a copy of the License at
|
|
991
|
+
//
|
|
992
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
993
|
+
//
|
|
994
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
995
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
996
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
997
|
+
// See the License for the specific language governing permissions and
|
|
998
|
+
// limitations under the License.
|