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
|
/* The main program for onefile bootstrap.
|
|
19
4
|
*
|
|
20
5
|
* It needs to unpack the attached files and and then loads and executes
|
|
@@ -59,9 +44,7 @@
|
|
|
59
44
|
#include "stdbool.h"
|
|
60
45
|
#endif
|
|
61
46
|
|
|
62
|
-
#if defined(_WIN32)
|
|
63
|
-
#include <imagehlp.h>
|
|
64
|
-
#else
|
|
47
|
+
#if !defined(_WIN32)
|
|
65
48
|
#include <dirent.h>
|
|
66
49
|
#include <signal.h>
|
|
67
50
|
#include <sys/stat.h>
|
|
@@ -78,16 +61,13 @@
|
|
|
78
61
|
#define _NUITKA_EXPERIMENTAL_DEBUG_ONEFILE_HANDLING
|
|
79
62
|
#define _NUITKA_ONEFILE_TEMP_BOOL 0
|
|
80
63
|
#define _NUITKA_ONEFILE_CHILD_GRACE_TIME_INT 5000
|
|
81
|
-
#define _NUITKA_ONEFILE_TEMP_SPEC "
|
|
64
|
+
#define _NUITKA_ONEFILE_TEMP_SPEC "{TEMP}/onefile_{PID}_{TIME}"
|
|
82
65
|
|
|
83
|
-
#define _NUITKA_EXPERIMENTAL_DEBUG_AUTO_UPDATE
|
|
84
66
|
#define _NUITKA_AUTO_UPDATE_BOOL 1
|
|
67
|
+
#define _NUITKA_AUTO_UPDATE_DEBUG_BOOL 1
|
|
85
68
|
#define _NUITKA_AUTO_UPDATE_URL_SPEC "https://..."
|
|
86
69
|
|
|
87
|
-
#
|
|
88
|
-
#define _NUITKA_PAYLOAD_FROM_MACOS_SECTION
|
|
89
|
-
#endif
|
|
90
|
-
|
|
70
|
+
#define _NUITKA_ATTACH_CONSOLE_WINDOW 1
|
|
91
71
|
#endif
|
|
92
72
|
|
|
93
73
|
#if _NUITKA_ONEFILE_COMPRESSION_BOOL == 1
|
|
@@ -111,15 +91,25 @@
|
|
|
111
91
|
#include "decompress/zstd_decompress_block.c"
|
|
112
92
|
#endif
|
|
113
93
|
|
|
114
|
-
// Some handy macro definitions, e.g. unlikely
|
|
94
|
+
// Some handy macro definitions, e.g. unlikely and NUITKA_MAY_BE_UNUSED
|
|
115
95
|
#include "nuitka/hedley.h"
|
|
116
96
|
#define likely(x) HEDLEY_LIKELY(x)
|
|
117
97
|
#define unlikely(x) HEDLEY_UNLIKELY(x)
|
|
98
|
+
#ifdef __GNUC__
|
|
99
|
+
#define NUITKA_MAY_BE_UNUSED __attribute__((__unused__))
|
|
100
|
+
#else
|
|
101
|
+
#define NUITKA_MAY_BE_UNUSED
|
|
102
|
+
#endif
|
|
118
103
|
|
|
119
104
|
#include "HelpersChecksumTools.c"
|
|
105
|
+
#include "HelpersEnvironmentVariablesSystem.c"
|
|
120
106
|
#include "HelpersFilesystemPaths.c"
|
|
121
107
|
#include "HelpersSafeStrings.c"
|
|
122
108
|
|
|
109
|
+
#if defined(_WIN32) && defined(_NUITKA_ATTACH_CONSOLE_WINDOW)
|
|
110
|
+
#include "HelpersConsole.c"
|
|
111
|
+
#endif
|
|
112
|
+
|
|
123
113
|
// For tracing outputs if enabled at compile time.
|
|
124
114
|
#include "nuitka/tracing.h"
|
|
125
115
|
|
|
@@ -134,39 +124,24 @@ static void fatalIOError(char const *message, error_code_t error_code) {
|
|
|
134
124
|
}
|
|
135
125
|
|
|
136
126
|
// Failure to expand the template for where to extract to.
|
|
137
|
-
static void fatalErrorTempFiles(void) {
|
|
127
|
+
static void fatalErrorTempFiles(void) {
|
|
128
|
+
fatalIOError("Error, couldn't unpack file to target path.", getLastErrorCode());
|
|
129
|
+
}
|
|
138
130
|
|
|
139
131
|
#if _NUITKA_ONEFILE_COMPRESSION_BOOL == 1
|
|
140
132
|
static void fatalErrorAttachedData(void) { fatalError("Error, couldn't decode attached data."); }
|
|
141
133
|
#endif
|
|
142
134
|
|
|
143
|
-
static void fatalErrorHeaderAttachedData(void) { fatalError("Error,
|
|
144
|
-
|
|
145
|
-
// Left over data in attached payload should not happen.
|
|
146
|
-
static void fatalErrorReadAttachedData(void) { fatalError("Error, couldn't read attached data."); }
|
|
135
|
+
static void fatalErrorHeaderAttachedData(void) { fatalError("Error, couldn't find attached data header."); }
|
|
147
136
|
|
|
148
137
|
// Out of memory error.
|
|
138
|
+
#if !defined(_WIN32) || _NUITKA_ONEFILE_COMPRESSION_BOOL == 1
|
|
149
139
|
static void fatalErrorMemory(void) { fatalError("Error, couldn't allocate memory."); }
|
|
140
|
+
#endif
|
|
150
141
|
|
|
151
142
|
// Could not launch child process.
|
|
152
143
|
static void fatalErrorChild(char const *message, error_code_t error_code) { fatalIOError(message, error_code); }
|
|
153
144
|
|
|
154
|
-
#if defined(_WIN32)
|
|
155
|
-
static void appendWCharSafeW(wchar_t *target, wchar_t c, size_t buffer_size) {
|
|
156
|
-
while (*target != 0) {
|
|
157
|
-
target++;
|
|
158
|
-
buffer_size -= 1;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
if (buffer_size < 1) {
|
|
162
|
-
abort();
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
*target++ = c;
|
|
166
|
-
*target = 0;
|
|
167
|
-
}
|
|
168
|
-
#endif
|
|
169
|
-
|
|
170
145
|
static void fatalErrorTempFileCreate(filename_char_t const *filename) {
|
|
171
146
|
fprintf(stderr, "Error, failed to open '" FILENAME_FORMAT_STR "' for writing.\n", filename);
|
|
172
147
|
exit(2);
|
|
@@ -187,45 +162,23 @@ static FILE_HANDLE createFileForWritingChecked(filename_char_t const *filename)
|
|
|
187
162
|
return result;
|
|
188
163
|
}
|
|
189
164
|
|
|
190
|
-
static int getMyPid(void) {
|
|
191
|
-
#if defined(_WIN32)
|
|
192
|
-
return GetCurrentProcessId();
|
|
193
|
-
#else
|
|
194
|
-
return getpid();
|
|
195
|
-
#endif
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
static void setEnvironVar(char const *var_name, char const *value) {
|
|
199
|
-
#if defined(_WIN32)
|
|
200
|
-
SetEnvironmentVariable("NUITKA_ONEFILE_PARENT", value);
|
|
201
|
-
#else
|
|
202
|
-
setenv(var_name, value, 1);
|
|
203
|
-
#endif
|
|
204
|
-
}
|
|
205
|
-
|
|
206
165
|
static unsigned char const *payload_data = NULL;
|
|
207
166
|
static unsigned char const *payload_current = NULL;
|
|
208
|
-
static
|
|
167
|
+
static unsigned long long payload_size = 0;
|
|
209
168
|
|
|
210
|
-
#ifdef
|
|
169
|
+
#ifdef __APPLE__
|
|
211
170
|
|
|
212
171
|
#include <mach-o/getsect.h>
|
|
213
172
|
#include <mach-o/ldsyms.h>
|
|
214
173
|
|
|
215
|
-
static
|
|
174
|
+
static void initPayloadData(void) {
|
|
216
175
|
const struct mach_header *header = &_mh_execute_header;
|
|
217
176
|
|
|
218
177
|
unsigned long section_size;
|
|
219
178
|
|
|
220
|
-
|
|
221
|
-
stream_end_pos = (size_t)section_size;
|
|
222
|
-
|
|
223
|
-
return result;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
static void initPayloadData(void) {
|
|
227
|
-
payload_data = findMacOSBinarySection();
|
|
179
|
+
payload_data = getsectiondata(header, "payload", "payload", §ion_size);
|
|
228
180
|
payload_current = payload_data;
|
|
181
|
+
payload_size = section_size;
|
|
229
182
|
}
|
|
230
183
|
|
|
231
184
|
static void closePayloadData(void) {}
|
|
@@ -233,9 +186,12 @@ static void closePayloadData(void) {}
|
|
|
233
186
|
#elif defined(_WIN32)
|
|
234
187
|
|
|
235
188
|
static void initPayloadData(void) {
|
|
236
|
-
|
|
237
|
-
|
|
189
|
+
HRSRC windows_resource = FindResource(NULL, MAKEINTRESOURCE(27), RT_RCDATA);
|
|
190
|
+
|
|
191
|
+
payload_data = (const unsigned char *)LockResource(LoadResource(NULL, windows_resource));
|
|
238
192
|
payload_current = payload_data;
|
|
193
|
+
|
|
194
|
+
payload_size = SizeofResource(NULL, windows_resource);
|
|
239
195
|
}
|
|
240
196
|
|
|
241
197
|
// Note: it appears unlocking the resource is not actually foreseen.
|
|
@@ -296,10 +252,6 @@ static void releaseZSTD(void) {
|
|
|
296
252
|
|
|
297
253
|
#endif
|
|
298
254
|
|
|
299
|
-
#if _NUITKA_ONEFILE_COMPRESSION_BOOL == 1
|
|
300
|
-
static size_t getPosition(void) { return payload_current - payload_data; }
|
|
301
|
-
#endif
|
|
302
|
-
|
|
303
255
|
static void readChunk(void *buffer, size_t size) {
|
|
304
256
|
// printf("Reading %d\n", size);
|
|
305
257
|
|
|
@@ -307,21 +259,8 @@ static void readChunk(void *buffer, size_t size) {
|
|
|
307
259
|
payload_current += size;
|
|
308
260
|
}
|
|
309
261
|
|
|
310
|
-
#if _NUITKA_ONEFILE_COMPRESSION_BOOL == 1
|
|
311
|
-
static void const *readChunkPointer(size_t size) {
|
|
312
|
-
// printf("Reading %d\n", size);
|
|
313
|
-
|
|
314
|
-
void const *result = payload_current;
|
|
315
|
-
payload_current += size;
|
|
316
|
-
|
|
317
|
-
return result;
|
|
318
|
-
}
|
|
319
|
-
#endif
|
|
320
|
-
|
|
321
262
|
static void readPayloadChunk(void *buffer, size_t size) {
|
|
322
|
-
#if _NUITKA_ONEFILE_COMPRESSION_BOOL == 1
|
|
323
|
-
|
|
324
|
-
// bool no_payload = false;
|
|
263
|
+
#if _NUITKA_ONEFILE_COMPRESSION_BOOL == 1 && _NUITKA_ONEFILE_ARCHIVE_BOOL == 0
|
|
325
264
|
bool end_of_buffer = false;
|
|
326
265
|
|
|
327
266
|
// Loop until finished with asked chunk.
|
|
@@ -372,28 +311,7 @@ static void readPayloadChunk(void *buffer, size_t size) {
|
|
|
372
311
|
if (input.size != input.pos) {
|
|
373
312
|
fatalErrorAttachedData();
|
|
374
313
|
}
|
|
375
|
-
|
|
376
|
-
// No input available, make it available from stream respecting end.
|
|
377
|
-
size_t to_read = ZSTD_DStreamInSize();
|
|
378
|
-
size_t payload_available = stream_end_pos - getPosition();
|
|
379
|
-
|
|
380
|
-
static size_t payload_so_far = 0;
|
|
381
|
-
|
|
382
|
-
if (payload_available == 0) {
|
|
383
|
-
continue;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
if (to_read > payload_available) {
|
|
387
|
-
to_read = payload_available;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
input.src = readChunkPointer(to_read);
|
|
391
|
-
input.pos = 0;
|
|
392
|
-
input.size = to_read;
|
|
393
|
-
|
|
394
|
-
payload_so_far += to_read;
|
|
395
314
|
}
|
|
396
|
-
|
|
397
315
|
#else
|
|
398
316
|
readChunk(buffer, size);
|
|
399
317
|
#endif
|
|
@@ -424,6 +342,15 @@ static unsigned long long readPayloadSizeValue(void) {
|
|
|
424
342
|
return result;
|
|
425
343
|
}
|
|
426
344
|
|
|
345
|
+
#if _NUITKA_ONEFILE_ARCHIVE_BOOL == 1 && _NUITKA_ONEFILE_COMPRESSION_BOOL == 1
|
|
346
|
+
static unsigned long long readArchiveFileSizeValue(void) {
|
|
347
|
+
unsigned long long result;
|
|
348
|
+
readPayloadChunk(&result, sizeof(unsigned int));
|
|
349
|
+
|
|
350
|
+
return result;
|
|
351
|
+
}
|
|
352
|
+
#endif
|
|
353
|
+
|
|
427
354
|
static filename_char_t readPayloadFilenameCharacter(void) {
|
|
428
355
|
filename_char_t result;
|
|
429
356
|
|
|
@@ -450,6 +377,74 @@ static filename_char_t *readPayloadFilename(void) {
|
|
|
450
377
|
return buffer;
|
|
451
378
|
}
|
|
452
379
|
|
|
380
|
+
static void writeContainedFile(FILE_HANDLE target_file, unsigned long long file_size) {
|
|
381
|
+
#if _NUITKA_ONEFILE_ARCHIVE_BOOL == 1
|
|
382
|
+
|
|
383
|
+
#if _NUITKA_ONEFILE_COMPRESSION_BOOL == 0
|
|
384
|
+
if (target_file != FILE_HANDLE_NULL) {
|
|
385
|
+
if (writeFileChunk(target_file, payload_current, file_size) == false) {
|
|
386
|
+
fatalErrorTempFiles();
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
payload_current += file_size;
|
|
391
|
+
#else
|
|
392
|
+
if (target_file != FILE_HANDLE_NULL) {
|
|
393
|
+
|
|
394
|
+
// Nothing available, make sure to make it available from existing input.
|
|
395
|
+
while (input.pos < input.size) {
|
|
396
|
+
// printf("available input %ld %ld\n", input.pos, input.size);
|
|
397
|
+
|
|
398
|
+
output.pos = 0;
|
|
399
|
+
output.size = ZSTD_DStreamOutSize();
|
|
400
|
+
|
|
401
|
+
size_t const ret = ZSTD_decompressStream(dest_ctx, &output, &input);
|
|
402
|
+
if (ZSTD_isError(ret)) {
|
|
403
|
+
fatalErrorAttachedData();
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
// printf("available output %ld %ld\n", output.pos, output.size);
|
|
407
|
+
|
|
408
|
+
if (writeFileChunk(target_file, (char const *)output.dst, output.pos) == false) {
|
|
409
|
+
fatalErrorTempFiles();
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
// printf("made output %ld %lld\n", output.pos, file_size);
|
|
413
|
+
file_size -= output.pos;
|
|
414
|
+
assert(file_size >= 0);
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
assert(file_size == 0);
|
|
418
|
+
}
|
|
419
|
+
#endif
|
|
420
|
+
#else
|
|
421
|
+
while (file_size > 0) {
|
|
422
|
+
static char chunk[32768];
|
|
423
|
+
|
|
424
|
+
long chunk_size;
|
|
425
|
+
|
|
426
|
+
// Doing min manually, as otherwise the compiler is confused from types.
|
|
427
|
+
if (file_size <= sizeof(chunk)) {
|
|
428
|
+
chunk_size = (long)file_size;
|
|
429
|
+
} else {
|
|
430
|
+
chunk_size = sizeof(chunk);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
readPayloadChunk(chunk, chunk_size);
|
|
434
|
+
|
|
435
|
+
if (target_file != FILE_HANDLE_NULL) {
|
|
436
|
+
if (writeFileChunk(target_file, chunk, chunk_size) == false) {
|
|
437
|
+
fatalErrorTempFiles();
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
file_size -= chunk_size;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
assert(file_size == 0);
|
|
445
|
+
#endif
|
|
446
|
+
}
|
|
447
|
+
|
|
453
448
|
// Zero means, not yet created, created unsuccessfully, terminated already.
|
|
454
449
|
#if defined(_WIN32)
|
|
455
450
|
HANDLE handle_process = 0;
|
|
@@ -473,7 +468,7 @@ static bool createDirectory(filename_char_t const *path) {
|
|
|
473
468
|
#if defined(_WIN32)
|
|
474
469
|
if (created_dir_count == 0) {
|
|
475
470
|
filename_char_t home_path[4096];
|
|
476
|
-
wchar_t *pattern = L"
|
|
471
|
+
wchar_t *pattern = L"{HOME}";
|
|
477
472
|
|
|
478
473
|
bool_res = expandTemplatePathFilename(home_path, pattern, sizeof(payload_path) / sizeof(filename_char_t));
|
|
479
474
|
|
|
@@ -818,6 +813,96 @@ extern bool checkSplashScreen(void);
|
|
|
818
813
|
#endif
|
|
819
814
|
#endif
|
|
820
815
|
|
|
816
|
+
#ifdef _WIN32
|
|
817
|
+
|
|
818
|
+
static bool containsWStringAny(wchar_t const *source, wchar_t const *characters) {
|
|
819
|
+
while (*characters) {
|
|
820
|
+
if (wcschr(source, *characters) != NULL) {
|
|
821
|
+
return true;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
characters++;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
return false;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
static wchar_t *getCommandLineForChildProcess(void) {
|
|
831
|
+
|
|
832
|
+
wchar_t *orig_command_line = GetCommandLineW();
|
|
833
|
+
#if defined(_NUITKA_EXPERIMENTAL_DEBUG_ONEFILE_HANDLING)
|
|
834
|
+
wprintf(L"Command line was '%ls'\n", orig_command_line);
|
|
835
|
+
#endif
|
|
836
|
+
|
|
837
|
+
int argc;
|
|
838
|
+
LPWSTR *argv = CommandLineToArgvW(orig_command_line, &argc);
|
|
839
|
+
assert(argv != NULL);
|
|
840
|
+
assert(argc > 0);
|
|
841
|
+
|
|
842
|
+
static wchar_t result[32768];
|
|
843
|
+
result[0] = 0;
|
|
844
|
+
|
|
845
|
+
argv[0] = getBinaryPath();
|
|
846
|
+
|
|
847
|
+
for (int i = 0; i < argc; i++) {
|
|
848
|
+
if (i >= 1) {
|
|
849
|
+
appendWCharSafeW(result, L' ', sizeof(result) / sizeof(wchar_t));
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
bool needs_quote = containsWStringAny(argv[i], L" \t\n\v\"");
|
|
853
|
+
|
|
854
|
+
#if defined(_NUITKA_EXPERIMENTAL_DEBUG_ONEFILE_HANDLING)
|
|
855
|
+
wprintf(L"Command line arg %d was '%ls' needs quoting %ls\n", i, argv[i], needs_quote ? L"yes" : L"no");
|
|
856
|
+
#endif
|
|
857
|
+
|
|
858
|
+
if (needs_quote) {
|
|
859
|
+
appendWCharSafeW(result, L'"', sizeof(result) / sizeof(wchar_t));
|
|
860
|
+
|
|
861
|
+
wchar_t const *current = argv[i];
|
|
862
|
+
|
|
863
|
+
for (;;) {
|
|
864
|
+
int backslash_count = 0;
|
|
865
|
+
|
|
866
|
+
while (*current == L'\\') {
|
|
867
|
+
current++;
|
|
868
|
+
backslash_count += 1;
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
if (*current == 0) {
|
|
872
|
+
for (int j = 0; j < backslash_count * 2; j++) {
|
|
873
|
+
appendWCharSafeW(result, L'\\', sizeof(result) / sizeof(wchar_t));
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
break;
|
|
877
|
+
} else if (*current == L'"') {
|
|
878
|
+
for (int j = 0; j < backslash_count * 2 + 1; j++) {
|
|
879
|
+
appendWCharSafeW(result, L'\\', sizeof(result) / sizeof(wchar_t));
|
|
880
|
+
}
|
|
881
|
+
} else {
|
|
882
|
+
for (int j = 0; j < backslash_count; j++) {
|
|
883
|
+
appendWCharSafeW(result, L'\\', sizeof(result) / sizeof(wchar_t));
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
appendWCharSafeW(result, *current, sizeof(result) / sizeof(wchar_t));
|
|
888
|
+
|
|
889
|
+
current++;
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
appendWCharSafeW(result, L'"', sizeof(result) / sizeof(wchar_t));
|
|
893
|
+
|
|
894
|
+
} else {
|
|
895
|
+
appendWStringSafeW(result, argv[i], sizeof(result) / sizeof(wchar_t));
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
#if defined(_NUITKA_EXPERIMENTAL_DEBUG_ONEFILE_HANDLING)
|
|
900
|
+
wprintf(L"Command line composed to '%ls'\n", result);
|
|
901
|
+
#endif
|
|
902
|
+
return result;
|
|
903
|
+
}
|
|
904
|
+
#endif
|
|
905
|
+
|
|
821
906
|
#ifdef _NUITKA_WINMAIN_ENTRY_POINT
|
|
822
907
|
int __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpCmdLine, int nCmdShow) {
|
|
823
908
|
int argc = __argc;
|
|
@@ -987,6 +1072,12 @@ int wmain(int argc, wchar_t **argv) {
|
|
|
987
1072
|
int main(int argc, char **argv) {
|
|
988
1073
|
#endif
|
|
989
1074
|
#endif
|
|
1075
|
+
// Attach to the parent console respecting redirection only, otherwise we cannot
|
|
1076
|
+
// even output traces.
|
|
1077
|
+
#if defined(_WIN32) && defined(_NUITKA_ATTACH_CONSOLE_WINDOW)
|
|
1078
|
+
inheritAttachedConsole();
|
|
1079
|
+
#endif
|
|
1080
|
+
|
|
990
1081
|
NUITKA_PRINT_TIMING("ONEFILE: Entered main().");
|
|
991
1082
|
|
|
992
1083
|
filename_char_t const *pattern = FILENAME_EMPTY_STR _NUITKA_ONEFILE_TEMP_SPEC;
|
|
@@ -1011,7 +1102,7 @@ int main(int argc, char **argv) {
|
|
|
1011
1102
|
signal(SIGTERM, ourConsoleCtrlHandler);
|
|
1012
1103
|
#endif
|
|
1013
1104
|
|
|
1014
|
-
#
|
|
1105
|
+
#if _NUITKA_AUTO_UPDATE_BOOL
|
|
1015
1106
|
checkAutoUpdates();
|
|
1016
1107
|
#endif
|
|
1017
1108
|
|
|
@@ -1019,20 +1110,18 @@ int main(int argc, char **argv) {
|
|
|
1019
1110
|
|
|
1020
1111
|
initPayloadData();
|
|
1021
1112
|
|
|
1022
|
-
#if !defined(
|
|
1113
|
+
#if !defined(__APPLE__) && !defined(_WIN32)
|
|
1023
1114
|
const off_t size_end_offset = exe_file_mapped.file_size;
|
|
1024
1115
|
|
|
1025
1116
|
NUITKA_PRINT_TIMING("ONEFILE: Determining payload start position.");
|
|
1026
1117
|
|
|
1027
|
-
unsigned long long
|
|
1118
|
+
assert(sizeof(payload_size) == sizeof(unsigned long long));
|
|
1028
1119
|
memcpy(&payload_size, payload_data + size_end_offset - sizeof(payload_size), sizeof(payload_size));
|
|
1029
1120
|
|
|
1030
1121
|
unsigned long long start_pos = size_end_offset - sizeof(payload_size) - payload_size;
|
|
1031
1122
|
|
|
1032
1123
|
payload_current += start_pos;
|
|
1033
1124
|
payload_data += start_pos;
|
|
1034
|
-
|
|
1035
|
-
stream_end_pos = size_end_offset - sizeof(payload_size) - start_pos;
|
|
1036
1125
|
#endif
|
|
1037
1126
|
|
|
1038
1127
|
NUITKA_PRINT_TIMING("ONEFILE: Checking header for compression.");
|
|
@@ -1044,12 +1133,20 @@ int main(int argc, char **argv) {
|
|
|
1044
1133
|
fatalErrorHeaderAttachedData();
|
|
1045
1134
|
}
|
|
1046
1135
|
|
|
1136
|
+
NUITKA_PRINT_TIMING("ONEFILE: Header is OK.");
|
|
1137
|
+
|
|
1047
1138
|
// The 'X' stands for no compression, 'Y' is compressed, handle that.
|
|
1048
1139
|
#if _NUITKA_ONEFILE_COMPRESSION_BOOL == 1
|
|
1049
1140
|
if (header[2] != 'Y') {
|
|
1050
1141
|
fatalErrorHeaderAttachedData();
|
|
1051
1142
|
}
|
|
1052
1143
|
initZSTD();
|
|
1144
|
+
|
|
1145
|
+
input.src = payload_current;
|
|
1146
|
+
input.pos = 0;
|
|
1147
|
+
input.size = payload_size;
|
|
1148
|
+
|
|
1149
|
+
assert(payload_size > 0);
|
|
1053
1150
|
#else
|
|
1054
1151
|
if (header[2] != 'X') {
|
|
1055
1152
|
fatalErrorHeaderAttachedData();
|
|
@@ -1059,8 +1156,6 @@ int main(int argc, char **argv) {
|
|
|
1059
1156
|
static filename_char_t first_filename[1024] = {0};
|
|
1060
1157
|
|
|
1061
1158
|
#if _NUITKA_ONEFILE_SPLASH_SCREEN
|
|
1062
|
-
NUITKA_PRINT_TIMING("ONEFILE: Splash screen.");
|
|
1063
|
-
|
|
1064
1159
|
initSplashScreen();
|
|
1065
1160
|
#endif
|
|
1066
1161
|
|
|
@@ -1134,6 +1229,20 @@ int main(int argc, char **argv) {
|
|
|
1134
1229
|
}
|
|
1135
1230
|
#endif
|
|
1136
1231
|
|
|
1232
|
+
#if _NUITKA_ONEFILE_ARCHIVE_BOOL == 1
|
|
1233
|
+
#if _NUITKA_ONEFILE_COMPRESSION_BOOL == 1
|
|
1234
|
+
uint32_t contained_archive_file_size = readArchiveFileSizeValue();
|
|
1235
|
+
|
|
1236
|
+
input.src = payload_current;
|
|
1237
|
+
input.pos = 0;
|
|
1238
|
+
input.size = contained_archive_file_size;
|
|
1239
|
+
|
|
1240
|
+
output.pos = 0;
|
|
1241
|
+
output.size = 0;
|
|
1242
|
+
|
|
1243
|
+
payload_current += contained_archive_file_size;
|
|
1244
|
+
#endif
|
|
1245
|
+
#endif
|
|
1137
1246
|
FILE_HANDLE target_file = FILE_HANDLE_NULL;
|
|
1138
1247
|
|
|
1139
1248
|
if (needs_write) {
|
|
@@ -1141,34 +1250,7 @@ int main(int argc, char **argv) {
|
|
|
1141
1250
|
target_file = createFileForWritingChecked(target_path);
|
|
1142
1251
|
}
|
|
1143
1252
|
|
|
1144
|
-
|
|
1145
|
-
static char chunk[32768];
|
|
1146
|
-
|
|
1147
|
-
long chunk_size;
|
|
1148
|
-
|
|
1149
|
-
// Doing min manually, as otherwise the compiler is confused from types.
|
|
1150
|
-
if (file_size <= sizeof(chunk)) {
|
|
1151
|
-
chunk_size = (long)file_size;
|
|
1152
|
-
} else {
|
|
1153
|
-
chunk_size = sizeof(chunk);
|
|
1154
|
-
}
|
|
1155
|
-
|
|
1156
|
-
// TODO: Does zstd support skipping data as well, such that we
|
|
1157
|
-
// do not have to fully decode.
|
|
1158
|
-
readPayloadChunk(chunk, chunk_size);
|
|
1159
|
-
|
|
1160
|
-
if (target_file != FILE_HANDLE_NULL) {
|
|
1161
|
-
if (writeFileChunk(target_file, chunk, chunk_size) == false) {
|
|
1162
|
-
fatalErrorTempFiles();
|
|
1163
|
-
}
|
|
1164
|
-
}
|
|
1165
|
-
|
|
1166
|
-
file_size -= chunk_size;
|
|
1167
|
-
}
|
|
1168
|
-
|
|
1169
|
-
if (file_size != 0) {
|
|
1170
|
-
fatalErrorReadAttachedData();
|
|
1171
|
-
}
|
|
1253
|
+
writeContainedFile(target_file, file_size);
|
|
1172
1254
|
|
|
1173
1255
|
#if !defined(_WIN32) && !defined(__MSYS__)
|
|
1174
1256
|
if ((file_flags & 1) && (target_file != FILE_HANDLE_NULL)) {
|
|
@@ -1212,7 +1294,7 @@ int main(int argc, char **argv) {
|
|
|
1212
1294
|
|
|
1213
1295
|
closePayloadData();
|
|
1214
1296
|
|
|
1215
|
-
#
|
|
1297
|
+
#if _NUITKA_AUTO_UPDATE_BOOL
|
|
1216
1298
|
exe_file_updatable = true;
|
|
1217
1299
|
#endif
|
|
1218
1300
|
|
|
@@ -1222,11 +1304,18 @@ int main(int argc, char **argv) {
|
|
|
1222
1304
|
|
|
1223
1305
|
// Pass our pid by value to the child. If we exit for some reason, re-parenting
|
|
1224
1306
|
// might change it by the time the child looks at its parent.
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1307
|
+
#if defined(_WIN32)
|
|
1308
|
+
setEnvironmentVariableFromLong("NUITKA_ONEFILE_PARENT", GetCurrentProcessId());
|
|
1309
|
+
#else
|
|
1310
|
+
setEnvironmentVariableFromLong("NUITKA_ONEFILE_PARENT", (long)getpid());
|
|
1311
|
+
#endif
|
|
1312
|
+
|
|
1313
|
+
#if defined(_WIN32)
|
|
1314
|
+
filename_char_t const *binary_filename = getBinaryFilenameWideChars(false);
|
|
1315
|
+
#else
|
|
1316
|
+
filename_char_t const *binary_filename = getBinaryFilenameHostEncoded(false);
|
|
1317
|
+
#endif
|
|
1318
|
+
setEnvironmentVariable("NUITKA_ONEFILE_BINARY", binary_filename);
|
|
1230
1319
|
|
|
1231
1320
|
NUITKA_PRINT_TIMING("ONEFILE: Preparing forking of slave process.");
|
|
1232
1321
|
|
|
@@ -1234,16 +1323,20 @@ int main(int argc, char **argv) {
|
|
|
1234
1323
|
|
|
1235
1324
|
STARTUPINFOW si;
|
|
1236
1325
|
memset(&si, 0, sizeof(si));
|
|
1326
|
+
si.dwFlags = STARTF_USESTDHANDLES;
|
|
1327
|
+
si.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
|
|
1328
|
+
si.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
|
|
1329
|
+
si.hStdError = GetStdHandle(STD_ERROR_HANDLE);
|
|
1237
1330
|
si.cb = sizeof(si);
|
|
1238
1331
|
|
|
1239
1332
|
PROCESS_INFORMATION pi;
|
|
1240
1333
|
|
|
1241
|
-
bool_res = CreateProcessW(first_filename,
|
|
1242
|
-
|
|
1243
|
-
NULL,
|
|
1244
|
-
NULL,
|
|
1245
|
-
|
|
1246
|
-
NORMAL_PRIORITY_CLASS,
|
|
1334
|
+
bool_res = CreateProcessW(first_filename, // application name
|
|
1335
|
+
getCommandLineForChildProcess(), // command line
|
|
1336
|
+
NULL, // process attributes
|
|
1337
|
+
NULL, // thread attributes
|
|
1338
|
+
TRUE, // inherit handles
|
|
1339
|
+
NORMAL_PRIORITY_CLASS, // creation flags
|
|
1247
1340
|
NULL, NULL, &si, &pi);
|
|
1248
1341
|
|
|
1249
1342
|
NUITKA_PRINT_TIMING("ONEFILE: Started slave process.");
|
|
@@ -1302,6 +1395,10 @@ int main(int argc, char **argv) {
|
|
|
1302
1395
|
exit_code = 2;
|
|
1303
1396
|
} else if (pid == 0) {
|
|
1304
1397
|
// Child process
|
|
1398
|
+
|
|
1399
|
+
// Make sure, we use the absolute program path for argv[0]
|
|
1400
|
+
argv[0] = getBinaryPath();
|
|
1401
|
+
|
|
1305
1402
|
execv(first_filename, argv);
|
|
1306
1403
|
|
|
1307
1404
|
fatalErrorChild("Error, couldn't launch child (exec)", errno);
|
|
@@ -1328,3 +1425,18 @@ int main(int argc, char **argv) {
|
|
|
1328
1425
|
|
|
1329
1426
|
return exit_code;
|
|
1330
1427
|
}
|
|
1428
|
+
|
|
1429
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1430
|
+
// integrates with CPython, but also works on its own.
|
|
1431
|
+
//
|
|
1432
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
1433
|
+
// you may not use this file except in compliance with the License.
|
|
1434
|
+
// You may obtain a copy of the License at
|
|
1435
|
+
//
|
|
1436
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
1437
|
+
//
|
|
1438
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
1439
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
1440
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1441
|
+
// See the License for the specific language governing permissions and
|
|
1442
|
+
// limitations under the License.
|