Nuitka-winsvc 2.7.7__cp313-cp313-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/Builtins.py +259 -0
- nuitka/BytecodeCaching.py +184 -0
- nuitka/Bytecodes.py +109 -0
- nuitka/CacheCleanup.py +54 -0
- nuitka/Constants.py +425 -0
- nuitka/Errors.py +93 -0
- nuitka/HardImportRegistry.py +408 -0
- nuitka/MainControl.py +1201 -0
- nuitka/ModuleRegistry.py +364 -0
- nuitka/OptionParsing.py +2473 -0
- nuitka/Options.py +2948 -0
- nuitka/OutputDirectories.py +201 -0
- nuitka/PostProcessing.py +551 -0
- nuitka/Progress.py +252 -0
- nuitka/PythonFlavors.py +426 -0
- nuitka/PythonOperators.py +146 -0
- nuitka/PythonVersions.py +513 -0
- nuitka/Serialization.py +291 -0
- nuitka/SourceCodeReferences.py +176 -0
- nuitka/Tracing.py +579 -0
- nuitka/TreeXML.py +141 -0
- nuitka/Variables.py +515 -0
- nuitka/Version.py +88 -0
- nuitka/__init__.py +19 -0
- nuitka/__main__.py +224 -0
- nuitka/__past__.py +217 -0
- nuitka/build/Backend.scons +1111 -0
- nuitka/build/CCompilerVersion.scons +281 -0
- nuitka/build/DataComposerInterface.py +116 -0
- nuitka/build/Offsets.scons +626 -0
- nuitka/build/Onefile.scons +564 -0
- nuitka/build/SconsCaching.py +451 -0
- nuitka/build/SconsCompilerSettings.py +1133 -0
- nuitka/build/SconsHacks.py +215 -0
- nuitka/build/SconsInterface.py +664 -0
- nuitka/build/SconsProgress.py +100 -0
- nuitka/build/SconsSpawn.py +436 -0
- nuitka/build/SconsUtils.py +939 -0
- nuitka/build/__init__.py +19 -0
- nuitka/build/include/nuitka/allocator.h +450 -0
- nuitka/build/include/nuitka/builtins.h +97 -0
- nuitka/build/include/nuitka/calling.h +123 -0
- nuitka/build/include/nuitka/checkers.h +39 -0
- nuitka/build/include/nuitka/checksum_tools.h +28 -0
- nuitka/build/include/nuitka/compiled_asyncgen.h +281 -0
- nuitka/build/include/nuitka/compiled_cell.h +64 -0
- nuitka/build/include/nuitka/compiled_coroutine.h +271 -0
- nuitka/build/include/nuitka/compiled_frame.h +502 -0
- nuitka/build/include/nuitka/compiled_function.h +170 -0
- nuitka/build/include/nuitka/compiled_generator.h +287 -0
- nuitka/build/include/nuitka/compiled_method.h +54 -0
- nuitka/build/include/nuitka/constants.h +251 -0
- nuitka/build/include/nuitka/constants_blob.h +34 -0
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +51 -0
- nuitka/build/include/nuitka/exception_groups.h +167 -0
- nuitka/build/include/nuitka/exceptions.h +1458 -0
- nuitka/build/include/nuitka/filesystem_paths.h +117 -0
- nuitka/build/include/nuitka/freelists.h +92 -0
- nuitka/build/include/nuitka/hedley.h +1774 -0
- nuitka/build/include/nuitka/helper/attributes.h +90 -0
- nuitka/build/include/nuitka/helper/boolean.h +86 -0
- nuitka/build/include/nuitka/helper/bytearrays.h +34 -0
- nuitka/build/include/nuitka/helper/bytes.h +28 -0
- nuitka/build/include/nuitka/helper/calling_generated.h +132 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_eq.h +247 -0
- nuitka/build/include/nuitka/helper/comparisons_ge.h +197 -0
- nuitka/build/include/nuitka/helper/comparisons_gt.h +197 -0
- nuitka/build/include/nuitka/helper/comparisons_le.h +247 -0
- nuitka/build/include/nuitka/helper/comparisons_lt.h +247 -0
- nuitka/build/include/nuitka/helper/comparisons_ne.h +197 -0
- nuitka/build/include/nuitka/helper/complex.h +46 -0
- nuitka/build/include/nuitka/helper/dictionaries.h +481 -0
- nuitka/build/include/nuitka/helper/floats.h +32 -0
- nuitka/build/include/nuitka/helper/import_hard.h +121 -0
- nuitka/build/include/nuitka/helper/indexes.h +47 -0
- nuitka/build/include/nuitka/helper/ints.h +165 -0
- nuitka/build/include/nuitka/helper/iterators.h +376 -0
- nuitka/build/include/nuitka/helper/lists.h +94 -0
- nuitka/build/include/nuitka/helper/lists_generated.h +36 -0
- nuitka/build/include/nuitka/helper/mappings.h +39 -0
- nuitka/build/include/nuitka/helper/operations.h +114 -0
- nuitka/build/include/nuitka/helper/operations_binary_add.h +240 -0
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +108 -0
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +108 -0
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +108 -0
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +103 -0
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +103 -0
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +99 -0
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +60 -0
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +304 -0
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +247 -0
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +125 -0
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +90 -0
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +99 -0
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +117 -0
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +103 -0
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +247 -0
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +173 -0
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +76 -0
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +76 -0
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +76 -0
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +95 -0
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +62 -0
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +60 -0
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +218 -0
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +184 -0
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +115 -0
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +87 -0
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +62 -0
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +102 -0
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +95 -0
- nuitka/build/include/nuitka/helper/raising.h +114 -0
- nuitka/build/include/nuitka/helper/rangeobjects.h +66 -0
- nuitka/build/include/nuitka/helper/richcomparisons.h +35 -0
- nuitka/build/include/nuitka/helper/sequences.h +33 -0
- nuitka/build/include/nuitka/helper/sets.h +25 -0
- nuitka/build/include/nuitka/helper/slices.h +314 -0
- nuitka/build/include/nuitka/helper/strings.h +30 -0
- nuitka/build/include/nuitka/helper/subscripts.h +390 -0
- nuitka/build/include/nuitka/helper/tuples.h +187 -0
- nuitka/build/include/nuitka/helpers.h +417 -0
- nuitka/build/include/nuitka/importing.h +149 -0
- nuitka/build/include/nuitka/incbin.h +402 -0
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +626 -0
- nuitka/build/include/nuitka/printing.h +84 -0
- nuitka/build/include/nuitka/python_pgo.h +57 -0
- nuitka/build/include/nuitka/safe_string_ops.h +57 -0
- nuitka/build/include/nuitka/threading.h +142 -0
- nuitka/build/include/nuitka/tracing.h +82 -0
- nuitka/build/include/nuitka/type_aliases.h +30 -0
- nuitka/build/include/nuitka/unfreezing.h +91 -0
- nuitka/build/inline_copy/appdirs/LICENSE.txt +23 -0
- nuitka/build/inline_copy/appdirs/appdirs.py +611 -0
- nuitka/build/inline_copy/atomicwrites/LICENSE +19 -0
- nuitka/build/inline_copy/atomicwrites/atomicwrites.py +226 -0
- nuitka/build/inline_copy/bin/scons.py +58 -0
- nuitka/build/inline_copy/clcache/clcache/LICENSE +30 -0
- nuitka/build/inline_copy/clcache/clcache/__init__.py +4 -0
- nuitka/build/inline_copy/clcache/clcache/caching.py +2008 -0
- nuitka/build/inline_copy/colorama/LICENSE.txt +27 -0
- nuitka/build/inline_copy/colorama/colorama/__init__.py +6 -0
- nuitka/build/inline_copy/colorama/colorama/ansi.py +102 -0
- nuitka/build/inline_copy/colorama/colorama/ansitowin32.py +258 -0
- nuitka/build/inline_copy/colorama/colorama/initialise.py +80 -0
- nuitka/build/inline_copy/colorama/colorama/win32.py +152 -0
- nuitka/build/inline_copy/colorama/colorama/winterm.py +169 -0
- nuitka/build/inline_copy/glob2/LICENSE +27 -0
- nuitka/build/inline_copy/glob2/glob2/__init__.py +5 -0
- nuitka/build/inline_copy/glob2/glob2/compat.py +167 -0
- nuitka/build/inline_copy/glob2/glob2/fnmatch.py +141 -0
- nuitka/build/inline_copy/glob2/glob2/impl.py +216 -0
- nuitka/build/inline_copy/jinja2/LICENSE.rst +28 -0
- nuitka/build/inline_copy/jinja2/README.rst +2 -0
- nuitka/build/inline_copy/jinja2/jinja2/__init__.py +72 -0
- nuitka/build/inline_copy/jinja2/jinja2/_compat.py +105 -0
- nuitka/build/inline_copy/jinja2/jinja2/_identifier.py +2 -0
- nuitka/build/inline_copy/jinja2/jinja2/bccache.py +361 -0
- nuitka/build/inline_copy/jinja2/jinja2/compiler.py +1721 -0
- nuitka/build/inline_copy/jinja2/jinja2/constants.py +32 -0
- nuitka/build/inline_copy/jinja2/jinja2/debug.py +378 -0
- nuitka/build/inline_copy/jinja2/jinja2/defaults.py +56 -0
- nuitka/build/inline_copy/jinja2/jinja2/environment.py +1276 -0
- nuitka/build/inline_copy/jinja2/jinja2/exceptions.py +146 -0
- nuitka/build/inline_copy/jinja2/jinja2/ext.py +627 -0
- nuitka/build/inline_copy/jinja2/jinja2/filters.py +1190 -0
- nuitka/build/inline_copy/jinja2/jinja2/idtracking.py +286 -0
- nuitka/build/inline_copy/jinja2/jinja2/lexer.py +739 -0
- nuitka/build/inline_copy/jinja2/jinja2/loaders.py +483 -0
- nuitka/build/inline_copy/jinja2/jinja2/meta.py +106 -0
- nuitka/build/inline_copy/jinja2/jinja2/nativetypes.py +220 -0
- nuitka/build/inline_copy/jinja2/jinja2/nodes.py +999 -0
- nuitka/build/inline_copy/jinja2/jinja2/optimizer.py +49 -0
- nuitka/build/inline_copy/jinja2/jinja2/parser.py +903 -0
- nuitka/build/inline_copy/jinja2/jinja2/runtime.py +808 -0
- nuitka/build/inline_copy/jinja2/jinja2/sandbox.py +488 -0
- nuitka/build/inline_copy/jinja2/jinja2/tests.py +174 -0
- nuitka/build/inline_copy/jinja2/jinja2/utils.py +642 -0
- nuitka/build/inline_copy/jinja2/jinja2/visitor.py +87 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Action.py +1475 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Builder.py +905 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/CacheDir.py +314 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Conftest.py +805 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Debug.py +251 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Defaults.py +646 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Environment.py +2561 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/EnvironmentValues.py +119 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Errors.py +222 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Executor.py +660 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Job.py +439 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Memoize.py +242 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Alias.py +176 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/FS.py +3861 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Python.py +195 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/__init__.py +1784 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/PathList.py +224 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/__init__.py +341 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/aix.py +81 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/cygwin.py +61 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/darwin.py +70 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/hpux.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/irix.py +41 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/mingw.py +33 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/os2.py +55 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/posix.py +124 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/sunos.py +47 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/virtualenv.py +115 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/win32.py +429 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConf.py +1119 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConsign.py +453 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/C.py +226 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Dir.py +131 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Prog.py +114 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/RC.py +57 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/__init__.py +436 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Interactive.py +372 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Main.py +1469 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConsOptions.py +1071 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConscript.py +686 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/__init__.py +425 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Subst.py +979 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Taskmaster.py +1062 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/386asm.py +61 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/GettextCommon.py +429 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/__init__.py +52 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/arch.py +66 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/common.py +371 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/netframework.py +83 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/sdk.py +411 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vc.py +994 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vs.py +608 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/PharLapCommon.py +116 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/__init__.py +882 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixc++.py +43 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcc.py +74 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcxx.py +77 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixlink.py +78 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/applelink.py +209 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ar.py +63 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/as.py +49 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/asm.py +78 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/bcc32.py +81 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/c++.py +44 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cc.py +105 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clang.py +91 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangCommon/__init__.py +18 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangxx.py +99 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cxx.py +95 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cyglink.py +212 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/default.py +50 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/filesystem.py +98 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/g++.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gas.py +56 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gcc.py +110 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gettext_tool.py +69 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gnulink.py +70 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gxx.py +78 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpc++.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcc.py +53 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcxx.py +88 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hplink.py +72 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icc.py +59 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icl.py +52 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink.py +55 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink32.py +60 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/install.py +510 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/intelc.py +617 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/link.py +72 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/LoadableModule.py +131 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/SharedLibrary.py +218 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/__init__.py +171 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkloc.py +112 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/m4.py +63 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/masm.py +77 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mingw.py +232 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgfmt.py +132 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msginit.py +137 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgmerge.py +125 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslib.py +73 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslink.py +339 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mssdk.py +50 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvc.py +325 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvs.py +2116 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwcc.py +207 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwld.py +108 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/nasm.py +72 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rmic.py +139 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rpcgen.py +70 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgiar.py +68 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgic++.py +43 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicc.py +53 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicxx.py +61 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgilink.py +59 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunar.py +64 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunc++.py +45 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncc.py +58 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncxx.py +153 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunlink.py +79 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tar.py +73 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/textfile.py +198 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tlib.py +53 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/wix.py +104 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/xgettext.py +337 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/zip.py +120 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Util.py +2134 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/ConfigureCache.py +171 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/__init__.py +0 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/sconsign.py +494 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/BoolVariable.py +96 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/EnumVariable.py +110 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +152 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PackageVariable.py +107 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PathVariable.py +158 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/__init__.py +334 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Warnings.py +238 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/__init__.py +9 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/__init__.py +104 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/_scons_dbm.py +42 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/win32.py +101 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/cpp.py +640 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/dblite.py +295 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/exitfuncs.py +59 -0
- nuitka/build/inline_copy/markupsafe/LICENSE.rst +28 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/__init__.py +327 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/_compat.py +33 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/_constants.py +264 -0
- nuitka/build/inline_copy/markupsafe/markupsafe/_native.py +69 -0
- nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
- nuitka/build/inline_copy/pefile/ordlookup/__init__.py +41 -0
- nuitka/build/inline_copy/pefile/ordlookup/oleaut32.py +400 -0
- nuitka/build/inline_copy/pefile/ordlookup/ws2_32.py +120 -0
- nuitka/build/inline_copy/pefile/pefile.py +8034 -0
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +3272 -0
- nuitka/build/inline_copy/pkg_resources/pkg_resources/py31compat.py +21 -0
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +484 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +40 -0
- nuitka/build/inline_copy/tqdm/tqdm/_main.py +9 -0
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +97 -0
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm.py +9 -0
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_notebook.py +9 -0
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_pandas.py +24 -0
- nuitka/build/inline_copy/tqdm/tqdm/_utils.py +12 -0
- nuitka/build/inline_copy/tqdm/tqdm/auto.py +44 -0
- nuitka/build/inline_copy/tqdm/tqdm/autonotebook.py +28 -0
- nuitka/build/inline_copy/tqdm/tqdm/dask.py +46 -0
- nuitka/build/inline_copy/tqdm/tqdm/notebook.py +316 -0
- nuitka/build/inline_copy/tqdm/tqdm/std.py +1524 -0
- nuitka/build/inline_copy/tqdm/tqdm/tk.py +207 -0
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +351 -0
- nuitka/build/inline_copy/tqdm/tqdm/version.py +2 -0
- nuitka/build/inline_copy/yaml/LICENSE +20 -0
- nuitka/build/inline_copy/yaml/yaml/__init__.py +427 -0
- nuitka/build/inline_copy/yaml/yaml/composer.py +139 -0
- nuitka/build/inline_copy/yaml/yaml/constructor.py +748 -0
- nuitka/build/inline_copy/yaml/yaml/cyaml.py +101 -0
- nuitka/build/inline_copy/yaml/yaml/dumper.py +62 -0
- nuitka/build/inline_copy/yaml/yaml/emitter.py +1137 -0
- nuitka/build/inline_copy/yaml/yaml/error.py +75 -0
- nuitka/build/inline_copy/yaml/yaml/events.py +86 -0
- nuitka/build/inline_copy/yaml/yaml/loader.py +63 -0
- nuitka/build/inline_copy/yaml/yaml/nodes.py +49 -0
- nuitka/build/inline_copy/yaml/yaml/parser.py +589 -0
- nuitka/build/inline_copy/yaml/yaml/reader.py +185 -0
- nuitka/build/inline_copy/yaml/yaml/representer.py +389 -0
- nuitka/build/inline_copy/yaml/yaml/resolver.py +227 -0
- nuitka/build/inline_copy/yaml/yaml/scanner.py +1435 -0
- nuitka/build/inline_copy/yaml/yaml/serializer.py +111 -0
- nuitka/build/inline_copy/yaml/yaml/tokens.py +104 -0
- 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/inline_copy/zstd/LICENSE.txt +30 -0
- nuitka/build/inline_copy/zstd/common/bitstream.h +463 -0
- nuitka/build/inline_copy/zstd/common/compiler.h +288 -0
- nuitka/build/inline_copy/zstd/common/cpu.h +213 -0
- nuitka/build/inline_copy/zstd/common/debug.h +107 -0
- nuitka/build/inline_copy/zstd/common/entropy_common.c +360 -0
- nuitka/build/inline_copy/zstd/common/error_private.c +56 -0
- nuitka/build/inline_copy/zstd/common/error_private.h +80 -0
- nuitka/build/inline_copy/zstd/common/fse.h +715 -0
- nuitka/build/inline_copy/zstd/common/fse_decompress.c +393 -0
- nuitka/build/inline_copy/zstd/common/huf.h +361 -0
- nuitka/build/inline_copy/zstd/common/mem.h +426 -0
- nuitka/build/inline_copy/zstd/common/xxhash.c +826 -0
- nuitka/build/inline_copy/zstd/common/xxhash.h +285 -0
- nuitka/build/inline_copy/zstd/common/zstd_common.c +83 -0
- nuitka/build/inline_copy/zstd/common/zstd_deps.h +111 -0
- nuitka/build/inline_copy/zstd/common/zstd_errors.h +95 -0
- nuitka/build/inline_copy/zstd/common/zstd_internal.h +478 -0
- nuitka/build/inline_copy/zstd/decompress/huf_decompress.c +1350 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_ddict.c +244 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_ddict.h +44 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress.c +1930 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.c +1540 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.h +62 -0
- nuitka/build/inline_copy/zstd/decompress/zstd_decompress_internal.h +190 -0
- nuitka/build/inline_copy/zstd/zstd.h +2391 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +2211 -0
- nuitka/build/static_src/CompiledCellType.c +300 -0
- nuitka/build/static_src/CompiledCodeHelpers.c +2160 -0
- nuitka/build/static_src/CompiledCoroutineType.c +1946 -0
- nuitka/build/static_src/CompiledFrameType.c +1337 -0
- nuitka/build/static_src/CompiledFunctionType.c +3320 -0
- nuitka/build/static_src/CompiledGeneratorType.c +1997 -0
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +2117 -0
- nuitka/build/static_src/CompiledMethodType.c +614 -0
- nuitka/build/static_src/GenerateHeadersMain.c +30 -0
- nuitka/build/static_src/HelpersAllocator.c +939 -0
- nuitka/build/static_src/HelpersAttributes.c +1241 -0
- nuitka/build/static_src/HelpersBuiltin.c +901 -0
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +3594 -0
- nuitka/build/static_src/HelpersBytes.c +107 -0
- nuitka/build/static_src/HelpersCalling.c +397 -0
- nuitka/build/static_src/HelpersCallingGenerated.c +14361 -0
- nuitka/build/static_src/HelpersChecksumTools.c +59 -0
- nuitka/build/static_src/HelpersClasses.c +91 -0
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +12070 -0
- nuitka/build/static_src/HelpersComparisonEqUtils.c +169 -0
- nuitka/build/static_src/HelpersComparisonGe.c +11871 -0
- nuitka/build/static_src/HelpersComparisonGt.c +11855 -0
- nuitka/build/static_src/HelpersComparisonLe.c +11957 -0
- nuitka/build/static_src/HelpersComparisonLt.c +11941 -0
- nuitka/build/static_src/HelpersComparisonNe.c +11979 -0
- nuitka/build/static_src/HelpersConsole.c +124 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +1487 -0
- nuitka/build/static_src/HelpersDeepcopy.c +636 -0
- nuitka/build/static_src/HelpersDictionaries.c +1739 -0
- nuitka/build/static_src/HelpersDictionariesGenerated.c +738 -0
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +97 -0
- nuitka/build/static_src/HelpersExceptions.c +298 -0
- nuitka/build/static_src/HelpersFiles.c +353 -0
- nuitka/build/static_src/HelpersFilesystemPaths.c +1322 -0
- nuitka/build/static_src/HelpersFloats.c +92 -0
- nuitka/build/static_src/HelpersHeapStorage.c +68 -0
- nuitka/build/static_src/HelpersImport.c +506 -0
- nuitka/build/static_src/HelpersImportHard.c +526 -0
- nuitka/build/static_src/HelpersJitSources.c +48 -0
- nuitka/build/static_src/HelpersLists.c +899 -0
- nuitka/build/static_src/HelpersListsGenerated.c +564 -0
- nuitka/build/static_src/HelpersMappings.c +46 -0
- nuitka/build/static_src/HelpersMatching.c +192 -0
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +6477 -0
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +703 -0
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +2738 -0
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +2738 -0
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +2738 -0
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +2406 -0
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +33 -0
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +2422 -0
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +220 -0
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +2846 -0
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +453 -0
- nuitka/build/static_src/HelpersOperationBinaryMod.c +6549 -0
- nuitka/build/static_src/HelpersOperationBinaryMult.c +6438 -0
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +125 -0
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +2355 -0
- nuitka/build/static_src/HelpersOperationBinaryPow.c +2743 -0
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +26 -0
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +2706 -0
- nuitka/build/static_src/HelpersOperationBinarySub.c +2649 -0
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +2415 -0
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +5211 -0
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +144 -0
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +1826 -0
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +1826 -0
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1826 -0
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +2605 -0
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +1594 -0
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +603 -0
- nuitka/build/static_src/HelpersOperationInplaceMod.c +4762 -0
- nuitka/build/static_src/HelpersOperationInplaceMult.c +4689 -0
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +2553 -0
- nuitka/build/static_src/HelpersOperationInplacePow.c +2807 -0
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +1534 -0
- nuitka/build/static_src/HelpersOperationInplaceSub.c +2894 -0
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +2612 -0
- nuitka/build/static_src/HelpersProfiling.c +104 -0
- nuitka/build/static_src/HelpersPythonPgo.c +113 -0
- nuitka/build/static_src/HelpersRaising.c +447 -0
- nuitka/build/static_src/HelpersSafeStrings.c +185 -0
- nuitka/build/static_src/HelpersSequences.c +134 -0
- nuitka/build/static_src/HelpersSlices.c +73 -0
- nuitka/build/static_src/HelpersStrings.c +998 -0
- nuitka/build/static_src/HelpersTuples.c +148 -0
- nuitka/build/static_src/HelpersTypes.c +329 -0
- nuitka/build/static_src/InspectPatcher.c +439 -0
- nuitka/build/static_src/MainProgram.c +2060 -0
- nuitka/build/static_src/MetaPathBasedLoader.c +2290 -0
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +125 -0
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +158 -0
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +785 -0
- nuitka/build/static_src/OnefileBootstrap.c +1580 -0
- nuitka/build/static_src/OnefileSplashScreen.cpp +275 -0
- nuitka/code_generation/AsyncgenCodes.py +186 -0
- nuitka/code_generation/AttributeCodes.py +357 -0
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +720 -0
- nuitka/code_generation/BranchCodes.py +67 -0
- nuitka/code_generation/BuiltinCodes.py +529 -0
- nuitka/code_generation/CallCodes.py +1186 -0
- nuitka/code_generation/ClassCodes.py +156 -0
- nuitka/code_generation/CodeGeneration.py +1078 -0
- nuitka/code_generation/CodeHelperSelection.py +81 -0
- nuitka/code_generation/CodeHelpers.py +455 -0
- nuitka/code_generation/CodeObjectCodes.py +165 -0
- nuitka/code_generation/ComparisonCodes.py +569 -0
- nuitka/code_generation/ComparisonHelperDefinitions.py +146 -0
- nuitka/code_generation/ConditionalCodes.py +236 -0
- nuitka/code_generation/ConstantCodes.py +243 -0
- nuitka/code_generation/Contexts.py +1248 -0
- nuitka/code_generation/CoroutineCodes.py +253 -0
- nuitka/code_generation/CtypesCodes.py +46 -0
- nuitka/code_generation/DictCodes.py +918 -0
- nuitka/code_generation/Emission.py +75 -0
- nuitka/code_generation/ErrorCodes.py +281 -0
- nuitka/code_generation/EvalCodes.py +444 -0
- nuitka/code_generation/ExceptionCodes.py +337 -0
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +227 -0
- nuitka/code_generation/ExpressionCodes.py +61 -0
- nuitka/code_generation/FrameCodes.py +518 -0
- nuitka/code_generation/FunctionCodes.py +858 -0
- nuitka/code_generation/GeneratorCodes.py +218 -0
- nuitka/code_generation/GlobalConstants.py +249 -0
- nuitka/code_generation/GlobalsLocalsCodes.py +211 -0
- nuitka/code_generation/IdCodes.py +53 -0
- nuitka/code_generation/ImportCodes.py +468 -0
- nuitka/code_generation/Indentation.py +45 -0
- nuitka/code_generation/IndexCodes.py +50 -0
- nuitka/code_generation/InjectCCodes.py +28 -0
- nuitka/code_generation/IntegerCodes.py +110 -0
- nuitka/code_generation/IteratorCodes.py +378 -0
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +68 -0
- nuitka/code_generation/LineNumberCodes.py +91 -0
- nuitka/code_generation/ListCodes.py +502 -0
- nuitka/code_generation/LoaderCodes.py +193 -0
- nuitka/code_generation/LocalsDictCodes.py +359 -0
- nuitka/code_generation/LoopCodes.py +88 -0
- nuitka/code_generation/MatchCodes.py +67 -0
- nuitka/code_generation/ModuleCodes.py +247 -0
- nuitka/code_generation/Namify.py +260 -0
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +398 -0
- nuitka/code_generation/PackageResourceCodes.py +986 -0
- nuitka/code_generation/PrintCodes.py +93 -0
- nuitka/code_generation/PythonAPICodes.py +215 -0
- nuitka/code_generation/RaisingCodes.py +481 -0
- nuitka/code_generation/Reports.py +115 -0
- nuitka/code_generation/ReturnCodes.py +143 -0
- nuitka/code_generation/SetCodes.py +196 -0
- nuitka/code_generation/SliceCodes.py +465 -0
- nuitka/code_generation/StringCodes.py +303 -0
- nuitka/code_generation/SubscriptCodes.py +263 -0
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +326 -0
- nuitka/code_generation/TupleCodes.py +115 -0
- nuitka/code_generation/TypeAliasCodes.py +120 -0
- nuitka/code_generation/VariableCodes.py +519 -0
- nuitka/code_generation/VariableDeclarations.py +279 -0
- nuitka/code_generation/YieldCodes.py +253 -0
- nuitka/code_generation/__init__.py +19 -0
- nuitka/code_generation/c_types/CTypeBases.py +177 -0
- nuitka/code_generation/c_types/CTypeBooleans.py +104 -0
- nuitka/code_generation/c_types/CTypeCFloats.py +57 -0
- nuitka/code_generation/c_types/CTypeCLongs.py +45 -0
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +109 -0
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +150 -0
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +200 -0
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +107 -0
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +572 -0
- nuitka/code_generation/c_types/CTypeVoids.py +92 -0
- nuitka/code_generation/c_types/__init__.py +19 -0
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +106 -0
- nuitka/code_generation/templates/CodeTemplatesConstants.py +296 -0
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +109 -0
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +84 -0
- nuitka/code_generation/templates/CodeTemplatesFrames.py +235 -0
- nuitka/code_generation/templates/CodeTemplatesFunction.py +117 -0
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +130 -0
- nuitka/code_generation/templates/CodeTemplatesIterators.py +40 -0
- nuitka/code_generation/templates/CodeTemplatesLoader.py +180 -0
- nuitka/code_generation/templates/CodeTemplatesModules.py +710 -0
- nuitka/code_generation/templates/CodeTemplatesVariables.py +388 -0
- nuitka/code_generation/templates/TemplateDebugWrapper.py +80 -0
- nuitka/code_generation/templates/__init__.py +19 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +321 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +143 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +677 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +165 -0
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +38 -0
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +41 -0
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +53 -0
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +364 -0
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +37 -0
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +53 -0
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +20 -0
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +148 -0
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +352 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +31 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +32 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +112 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +157 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +99 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +281 -0
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +420 -0
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +51 -0
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +71 -0
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +327 -0
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +411 -0
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +59 -0
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +229 -0
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +47 -0
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +55 -0
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +58 -0
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +62 -0
- nuitka/containers/Namedtuples.py +51 -0
- nuitka/containers/OrderedDicts.py +191 -0
- nuitka/containers/OrderedSets.py +123 -0
- nuitka/containers/OrderedSetsFallback.py +139 -0
- nuitka/containers/__init__.py +19 -0
- nuitka/distutils/Build.py +76 -0
- nuitka/distutils/DistutilCommands.py +438 -0
- nuitka/distutils/__init__.py +19 -0
- nuitka/finalizations/Finalization.py +35 -0
- nuitka/finalizations/FinalizeMarkups.py +136 -0
- nuitka/finalizations/__init__.py +19 -0
- nuitka/freezer/DependsExe.py +257 -0
- nuitka/freezer/DllDependenciesCommon.py +97 -0
- nuitka/freezer/DllDependenciesMacOS.py +444 -0
- nuitka/freezer/DllDependenciesPosix.py +242 -0
- nuitka/freezer/DllDependenciesWin32.py +315 -0
- nuitka/freezer/ImportDetection.py +359 -0
- nuitka/freezer/IncludedDataFiles.py +689 -0
- nuitka/freezer/IncludedEntryPoints.py +376 -0
- nuitka/freezer/Onefile.py +296 -0
- nuitka/freezer/Standalone.py +520 -0
- nuitka/freezer/__init__.py +19 -0
- nuitka/importing/IgnoreListing.py +449 -0
- nuitka/importing/ImportCache.py +95 -0
- nuitka/importing/ImportResolving.py +186 -0
- nuitka/importing/Importing.py +1200 -0
- nuitka/importing/PreloadedPackages.py +164 -0
- nuitka/importing/Recursion.py +611 -0
- nuitka/importing/StandardLibrary.py +429 -0
- nuitka/importing/__init__.py +19 -0
- nuitka/nodes/AsyncgenNodes.py +107 -0
- nuitka/nodes/AttributeLookupNodes.py +124 -0
- nuitka/nodes/AttributeNodes.py +386 -0
- nuitka/nodes/AttributeNodesGenerated.py +10734 -0
- nuitka/nodes/BuiltinAllNodes.py +115 -0
- nuitka/nodes/BuiltinAnyNodes.py +124 -0
- nuitka/nodes/BuiltinComplexNodes.py +83 -0
- nuitka/nodes/BuiltinDecodingNodes.py +52 -0
- nuitka/nodes/BuiltinDecoratorNodes.py +85 -0
- nuitka/nodes/BuiltinDictNodes.py +140 -0
- nuitka/nodes/BuiltinFormatNodes.py +159 -0
- nuitka/nodes/BuiltinHashNodes.py +63 -0
- nuitka/nodes/BuiltinInputNodes.py +39 -0
- nuitka/nodes/BuiltinIntegerNodes.py +170 -0
- nuitka/nodes/BuiltinIteratorNodes.py +391 -0
- nuitka/nodes/BuiltinLenNodes.py +61 -0
- nuitka/nodes/BuiltinNextNodes.py +111 -0
- nuitka/nodes/BuiltinOpenNodes.py +148 -0
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +7367 -0
- nuitka/nodes/BuiltinRangeNodes.py +690 -0
- nuitka/nodes/BuiltinRefNodes.py +314 -0
- nuitka/nodes/BuiltinSumNodes.py +104 -0
- nuitka/nodes/BuiltinTypeNodes.py +454 -0
- nuitka/nodes/BuiltinVarsNodes.py +44 -0
- nuitka/nodes/BytesNodes.py +829 -0
- nuitka/nodes/CallNodes.py +217 -0
- nuitka/nodes/Checkers.py +55 -0
- nuitka/nodes/ChildrenHavingMixins.py +21576 -0
- nuitka/nodes/ClassNodes.py +286 -0
- nuitka/nodes/CodeObjectSpecs.py +230 -0
- nuitka/nodes/ComparisonNodes.py +687 -0
- nuitka/nodes/ConditionalNodes.py +884 -0
- nuitka/nodes/ConstantRefNodes.py +1717 -0
- nuitka/nodes/ContainerMakingNodes.py +408 -0
- nuitka/nodes/ContainerOperationNodes.py +87 -0
- nuitka/nodes/CoroutineNodes.py +144 -0
- nuitka/nodes/CtypesNodes.py +51 -0
- nuitka/nodes/DictionaryNodes.py +1513 -0
- nuitka/nodes/ExceptionNodes.py +393 -0
- nuitka/nodes/ExecEvalNodes.py +229 -0
- nuitka/nodes/ExpressionBases.py +1301 -0
- nuitka/nodes/ExpressionBasesGenerated.py +2103 -0
- nuitka/nodes/ExpressionShapeMixins.py +886 -0
- nuitka/nodes/FrameNodes.py +413 -0
- nuitka/nodes/FunctionAttributeNodes.py +102 -0
- nuitka/nodes/FunctionNodes.py +1303 -0
- nuitka/nodes/FutureSpecs.py +224 -0
- nuitka/nodes/GeneratorNodes.py +201 -0
- nuitka/nodes/GlobalsLocalsNodes.py +209 -0
- nuitka/nodes/HardImportNodesGenerated.py +3599 -0
- nuitka/nodes/ImportHardNodes.py +185 -0
- nuitka/nodes/ImportNodes.py +1366 -0
- nuitka/nodes/IndicatorMixins.py +79 -0
- nuitka/nodes/InjectCNodes.py +51 -0
- nuitka/nodes/IterationHandles.py +407 -0
- nuitka/nodes/KeyValuePairNodes.py +378 -0
- nuitka/nodes/ListOperationNodes.py +525 -0
- nuitka/nodes/LocalsDictNodes.py +717 -0
- nuitka/nodes/LocalsScopes.py +505 -0
- nuitka/nodes/LoopNodes.py +445 -0
- nuitka/nodes/MatchNodes.py +60 -0
- nuitka/nodes/ModuleAttributeNodes.py +180 -0
- nuitka/nodes/ModuleNodes.py +1137 -0
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +890 -0
- nuitka/nodes/NodeMakingHelpers.py +481 -0
- nuitka/nodes/NodeMetaClasses.py +172 -0
- nuitka/nodes/OperatorNodes.py +944 -0
- nuitka/nodes/OperatorNodesUnary.py +403 -0
- nuitka/nodes/OsSysNodes.py +215 -0
- nuitka/nodes/OutlineNodes.py +372 -0
- nuitka/nodes/PackageMetadataNodes.py +982 -0
- nuitka/nodes/PackageResourceNodes.py +424 -0
- nuitka/nodes/PrintNodes.py +105 -0
- nuitka/nodes/ReturnNodes.py +255 -0
- nuitka/nodes/SideEffectNodes.py +139 -0
- nuitka/nodes/SliceNodes.py +386 -0
- nuitka/nodes/StatementBasesGenerated.py +3419 -0
- nuitka/nodes/StatementNodes.py +316 -0
- nuitka/nodes/StrNodes.py +919 -0
- nuitka/nodes/StringConcatenationNodes.py +103 -0
- nuitka/nodes/SubscriptNodes.py +245 -0
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +519 -0
- nuitka/nodes/TypeMatchNodes.py +65 -0
- nuitka/nodes/TypeNodes.py +390 -0
- nuitka/nodes/VariableAssignNodes.py +1177 -0
- nuitka/nodes/VariableDelNodes.py +320 -0
- nuitka/nodes/VariableNameNodes.py +153 -0
- nuitka/nodes/VariableRefNodes.py +895 -0
- nuitka/nodes/VariableReleaseNodes.py +153 -0
- nuitka/nodes/YieldNodes.py +121 -0
- nuitka/nodes/__init__.py +19 -0
- nuitka/nodes/shapes/BuiltinTypeShapes.py +4290 -0
- nuitka/nodes/shapes/ControlFlowDescriptions.py +199 -0
- nuitka/nodes/shapes/IteratorShapes.py +71 -0
- nuitka/nodes/shapes/ShapeMixins.py +255 -0
- nuitka/nodes/shapes/StandardShapes.py +1384 -0
- nuitka/nodes/shapes/__init__.py +19 -0
- nuitka/optimizations/BytecodeDemotion.py +105 -0
- nuitka/optimizations/FunctionInlining.py +110 -0
- nuitka/optimizations/Graphs.py +70 -0
- nuitka/optimizations/Optimization.py +363 -0
- nuitka/optimizations/OptimizeBuiltinCalls.py +1582 -0
- nuitka/optimizations/Tags.py +76 -0
- nuitka/optimizations/TraceCollections.py +1257 -0
- nuitka/optimizations/ValueTraces.py +980 -0
- nuitka/optimizations/__init__.py +19 -0
- nuitka/pgo/PGO.py +160 -0
- nuitka/pgo/__init__.py +19 -0
- nuitka/plugins/PluginBase.py +1924 -0
- nuitka/plugins/Plugins.py +2007 -0
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +19 -0
- nuitka/plugins/standard/AntiBloatPlugin.py +1024 -0
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +95 -0
- nuitka/plugins/standard/DataFilesPlugin.py +311 -0
- nuitka/plugins/standard/DelvewheelPlugin.py +150 -0
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/cloudpickle-postLoad.py +67 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +223 -0
- nuitka/plugins/standard/DillPlugin.py +137 -0
- nuitka/plugins/standard/DllFilesPlugin.py +527 -0
- nuitka/plugins/standard/EnumPlugin.py +64 -0
- nuitka/plugins/standard/EventletPlugin.py +57 -0
- nuitka/plugins/standard/GeventPlugin.py +64 -0
- nuitka/plugins/standard/GiPlugin.py +118 -0
- nuitka/plugins/standard/GlfwPlugin.py +138 -0
- nuitka/plugins/standard/ImplicitImports.py +845 -0
- nuitka/plugins/standard/KivyPlugin.py +141 -0
- nuitka/plugins/standard/MatplotlibPlugin.py +256 -0
- nuitka/plugins/standard/MultiprocessingPlugin.py +199 -0
- nuitka/plugins/standard/NumpyPlugin.py +35 -0
- nuitka/plugins/standard/OptionsNannyPlugin.py +158 -0
- nuitka/plugins/standard/PbrPlugin.py +62 -0
- nuitka/plugins/standard/PkgResourcesPlugin.py +162 -0
- nuitka/plugins/standard/PlaywrightPlugin.py +179 -0
- nuitka/plugins/standard/PmwPlugin.py +248 -0
- nuitka/plugins/standard/PySidePyQtPlugin.py +1666 -0
- nuitka/plugins/standard/PywebViewPlugin.py +81 -0
- nuitka/plugins/standard/SpacyPlugin.py +137 -0
- nuitka/plugins/standard/TensorflowPlugin.py +35 -0
- nuitka/plugins/standard/TkinterPlugin.py +416 -0
- nuitka/plugins/standard/TorchPlugin.py +35 -0
- nuitka/plugins/standard/TransformersPlugin.py +121 -0
- nuitka/plugins/standard/TrioPlugin.py +33 -0
- nuitka/plugins/standard/UpxPlugin.py +174 -0
- nuitka/plugins/standard/__init__.py +19 -0
- nuitka/plugins/standard/standard.nuitka-package.config.yml +9313 -0
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +78 -0
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +468 -0
- nuitka/reports/CompilationReportReader.py +83 -0
- nuitka/reports/LicenseReport.rst.j2 +41 -0
- nuitka/reports/Reports.py +961 -0
- nuitka/reports/__init__.py +19 -0
- nuitka/specs/BuiltinBytesOperationSpecs.py +180 -0
- nuitka/specs/BuiltinDictOperationSpecs.py +82 -0
- nuitka/specs/BuiltinListOperationSpecs.py +80 -0
- nuitka/specs/BuiltinParameterSpecs.py +831 -0
- nuitka/specs/BuiltinStrOperationSpecs.py +181 -0
- nuitka/specs/BuiltinTypeOperationSpecs.py +34 -0
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +123 -0
- nuitka/specs/HardImportSpecs.py +236 -0
- nuitka/specs/ParameterSpecs.py +630 -0
- nuitka/specs/__init__.py +19 -0
- nuitka/tools/Basics.py +55 -0
- nuitka/tools/__init__.py +19 -0
- nuitka/tools/commercial/__init__.py +21 -0
- nuitka/tools/data_composer/DataComposer.py +593 -0
- nuitka/tools/data_composer/__init__.py +19 -0
- nuitka/tools/data_composer/__main__.py +41 -0
- nuitka/tools/environments/CreateEnvironment.py +69 -0
- nuitka/tools/environments/Virtualenv.py +158 -0
- nuitka/tools/environments/__init__.py +19 -0
- nuitka/tools/general/__init__.py +19 -0
- nuitka/tools/general/dll_report/__init__.py +19 -0
- nuitka/tools/general/dll_report/__main__.py +83 -0
- nuitka/tools/general/find_module/FindModuleCode.py +127 -0
- nuitka/tools/general/find_module/__init__.py +19 -0
- nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
- nuitka/tools/general/generate_header/__init__.py +19 -0
- nuitka/tools/onefile_compressor/OnefileCompressor.py +390 -0
- nuitka/tools/onefile_compressor/__init__.py +19 -0
- nuitka/tools/onefile_compressor/__main__.py +41 -0
- nuitka/tools/podman/Podman.py +55 -0
- nuitka/tools/podman/__init__.py +19 -0
- nuitka/tools/podman/__main__.py +425 -0
- nuitka/tools/profiler/__init__.py +19 -0
- nuitka/tools/profiler/__main__.py +93 -0
- nuitka/tools/scanning/DisplayDistributions.py +39 -0
- nuitka/tools/scanning/DisplayPackageDLLs.py +151 -0
- nuitka/tools/scanning/DisplayPackageData.py +73 -0
- nuitka/tools/scanning/__init__.py +19 -0
- nuitka/tools/specialize/CTypeDescriptions.py +1928 -0
- nuitka/tools/specialize/Common.py +380 -0
- nuitka/tools/specialize/SpecializeC.py +1483 -0
- nuitka/tools/specialize/SpecializePython.py +1151 -0
- nuitka/tools/specialize/__init__.py +19 -0
- nuitka/tools/testing/Common.py +2007 -0
- nuitka/tools/testing/Constructs.py +53 -0
- nuitka/tools/testing/DocTests.py +156 -0
- nuitka/tools/testing/OutputComparison.py +313 -0
- nuitka/tools/testing/Pythons.py +34 -0
- nuitka/tools/testing/RuntimeTracing.py +260 -0
- nuitka/tools/testing/SearchModes.py +208 -0
- nuitka/tools/testing/Valgrind.py +103 -0
- nuitka/tools/testing/__init__.py +19 -0
- nuitka/tools/testing/check_reference_counts/__init__.py +19 -0
- nuitka/tools/testing/check_reference_counts/__main__.py +107 -0
- nuitka/tools/testing/compare_with_cpython/__init__.py +19 -0
- nuitka/tools/testing/compare_with_cpython/__main__.py +942 -0
- nuitka/tools/testing/find_sxs_modules/__init__.py +19 -0
- nuitka/tools/testing/find_sxs_modules/__main__.py +73 -0
- nuitka/tools/testing/measure_construct_performance/__init__.py +19 -0
- nuitka/tools/testing/measure_construct_performance/__main__.py +288 -0
- nuitka/tools/testing/run_nuitka_tests/__init__.py +19 -0
- nuitka/tools/testing/run_nuitka_tests/__main__.py +1091 -0
- nuitka/tools/watch/AutoStage.py +145 -0
- nuitka/tools/watch/Common.py +55 -0
- nuitka/tools/watch/Conda.py +125 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/Pacman.py +73 -0
- nuitka/tools/watch/Pipenv.py +145 -0
- nuitka/tools/watch/__init__.py +19 -0
- nuitka/tools/watch/__main__.py +615 -0
- nuitka/tree/Building.py +1459 -0
- nuitka/tree/ComplexCallHelperFunctions.py +2150 -0
- nuitka/tree/Extractions.py +48 -0
- nuitka/tree/FutureSpecState.py +71 -0
- nuitka/tree/InternalModule.py +96 -0
- nuitka/tree/Operations.py +45 -0
- nuitka/tree/ReformulationAssertStatements.py +97 -0
- nuitka/tree/ReformulationAssignmentStatements.py +1260 -0
- nuitka/tree/ReformulationBooleanExpressions.py +97 -0
- nuitka/tree/ReformulationCallExpressions.py +314 -0
- nuitka/tree/ReformulationClasses.py +407 -0
- nuitka/tree/ReformulationClasses3.py +1149 -0
- nuitka/tree/ReformulationComparisonExpressions.py +174 -0
- nuitka/tree/ReformulationContractionExpressions.py +676 -0
- nuitka/tree/ReformulationDictionaryCreation.py +304 -0
- nuitka/tree/ReformulationExecStatements.py +386 -0
- nuitka/tree/ReformulationForLoopStatements.py +215 -0
- nuitka/tree/ReformulationFunctionStatements.py +931 -0
- nuitka/tree/ReformulationImportStatements.py +333 -0
- nuitka/tree/ReformulationLambdaExpressions.py +185 -0
- nuitka/tree/ReformulationMatchStatements.py +797 -0
- nuitka/tree/ReformulationMultidist.py +80 -0
- nuitka/tree/ReformulationNamespacePackages.py +239 -0
- nuitka/tree/ReformulationPrintStatements.py +127 -0
- nuitka/tree/ReformulationSequenceCreation.py +438 -0
- nuitka/tree/ReformulationSubscriptExpressions.py +123 -0
- nuitka/tree/ReformulationTryExceptStatements.py +418 -0
- nuitka/tree/ReformulationTryFinallyStatements.py +239 -0
- nuitka/tree/ReformulationWhileLoopStatements.py +160 -0
- nuitka/tree/ReformulationWithStatements.py +382 -0
- nuitka/tree/ReformulationYieldExpressions.py +133 -0
- nuitka/tree/SourceHandling.py +476 -0
- nuitka/tree/SyntaxErrors.py +143 -0
- nuitka/tree/TreeHelpers.py +720 -0
- nuitka/tree/VariableClosure.py +483 -0
- nuitka/tree/__init__.py +19 -0
- nuitka/utils/AppDirs.py +104 -0
- nuitka/utils/CStrings.py +208 -0
- nuitka/utils/CommandLineOptions.py +207 -0
- nuitka/utils/Distributions.py +728 -0
- nuitka/utils/Download.py +217 -0
- nuitka/utils/Execution.py +517 -0
- nuitka/utils/FileOperations.py +1587 -0
- nuitka/utils/Hashing.py +137 -0
- nuitka/utils/Images.py +79 -0
- nuitka/utils/Importing.py +335 -0
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +254 -0
- nuitka/utils/InstanceCounters.py +86 -0
- nuitka/utils/Jinja2.py +158 -0
- nuitka/utils/Json.py +40 -0
- nuitka/utils/MacOSApp.py +134 -0
- nuitka/utils/MemoryUsage.py +165 -0
- nuitka/utils/ModuleNames.py +317 -0
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/ReExecute.py +152 -0
- nuitka/utils/Rest.py +60 -0
- nuitka/utils/SharedLibraries.py +1014 -0
- nuitka/utils/Shebang.py +113 -0
- nuitka/utils/Signing.py +144 -0
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +260 -0
- nuitka/utils/ThreadedExecutor.py +87 -0
- nuitka/utils/Timing.py +102 -0
- nuitka/utils/Utils.py +483 -0
- nuitka/utils/WindowsFileUsage.py +337 -0
- nuitka/utils/WindowsResources.py +652 -0
- nuitka/utils/Yaml.py +247 -0
- nuitka/utils/__init__.py +19 -0
- nuitka_winsvc-2.7.7.data/scripts/nuitka-run.cmd +24 -0
- nuitka_winsvc-2.7.7.data/scripts/nuitka.cmd +30 -0
- nuitka_winsvc-2.7.7.dist-info/METADATA +115 -0
- nuitka_winsvc-2.7.7.dist-info/RECORD +995 -0
- nuitka_winsvc-2.7.7.dist-info/WHEEL +5 -0
- nuitka_winsvc-2.7.7.dist-info/entry_points.txt +7 -0
- nuitka_winsvc-2.7.7.dist-info/licenses/LICENSE.txt +202 -0
- nuitka_winsvc-2.7.7.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,1133 @@
|
|
|
1
|
+
# Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" This contains the tuning of the compilers towards defined goals.
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import os
|
|
9
|
+
import re
|
|
10
|
+
|
|
11
|
+
from nuitka.Tracing import scons_details_logger, scons_logger
|
|
12
|
+
from nuitka.utils.Download import getCachedDownloadedMinGW64
|
|
13
|
+
from nuitka.utils.FileOperations import (
|
|
14
|
+
getReportPath,
|
|
15
|
+
openTextFile,
|
|
16
|
+
putTextFileContents,
|
|
17
|
+
)
|
|
18
|
+
from nuitka.utils.Utils import (
|
|
19
|
+
isAIX,
|
|
20
|
+
isFedoraBasedLinux,
|
|
21
|
+
isMacOS,
|
|
22
|
+
isPosixWindows,
|
|
23
|
+
isWin32Windows,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
from .SconsHacks import myDetectVersion
|
|
27
|
+
from .SconsUtils import (
|
|
28
|
+
addBinaryBlobSection,
|
|
29
|
+
addToPATH,
|
|
30
|
+
createEnvironment,
|
|
31
|
+
decideArchMismatch,
|
|
32
|
+
getExecutablePath,
|
|
33
|
+
getLinkerArch,
|
|
34
|
+
getMsvcVersion,
|
|
35
|
+
getMsvcVersionString,
|
|
36
|
+
isClangName,
|
|
37
|
+
isGccName,
|
|
38
|
+
isZigName,
|
|
39
|
+
raiseNoCompilerFoundErrorExit,
|
|
40
|
+
setEnvironmentVariable,
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
# spell-checker: ignore LIBPATH,CPPDEFINES,CPPPATH,CXXVERSION,CCFLAGS,LINKFLAGS,CXXFLAGS
|
|
44
|
+
# spell-checker: ignore -flto,-fpartial-inlining,-freorder-functions,-defsym,-fprofile
|
|
45
|
+
# spell-checker: ignore -fwrapv,-Wunused,fcompare,-ftrack,-fvisibility,-municode,
|
|
46
|
+
# spell-checker: ignore -feliminate,noexecstack,implib
|
|
47
|
+
# spell-checker: ignore LTCG,GENPROFILE,USEPROFILE,CGTHREADS
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def _detectWindowsSDK(env):
|
|
51
|
+
# Caching
|
|
52
|
+
if hasattr(env, "windows_sdk_version"):
|
|
53
|
+
return env.windows_sdk_version
|
|
54
|
+
|
|
55
|
+
# Check if there is a Windows SDK installed.
|
|
56
|
+
if "WindowsSDKVersion" not in env:
|
|
57
|
+
if "WindowsSDKVersion" in os.environ:
|
|
58
|
+
windows_sdk_version = os.environ["WindowsSDKVersion"].rstrip("\\")
|
|
59
|
+
else:
|
|
60
|
+
windows_sdk_version = None
|
|
61
|
+
else:
|
|
62
|
+
windows_sdk_version = env["WindowsSDKVersion"]
|
|
63
|
+
|
|
64
|
+
if windows_sdk_version:
|
|
65
|
+
scons_details_logger.info("Using Windows SDK '%s'." % windows_sdk_version)
|
|
66
|
+
|
|
67
|
+
env.windows_sdk_version = tuple(int(x) for x in windows_sdk_version.split("."))
|
|
68
|
+
else:
|
|
69
|
+
scons_logger.warning(
|
|
70
|
+
"""\
|
|
71
|
+
Windows SDK must be installed in Visual Studio for it to \
|
|
72
|
+
be usable with Nuitka. Use the Visual Studio installer for \
|
|
73
|
+
adding it."""
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
env.windows_sdk_version = None
|
|
77
|
+
|
|
78
|
+
return env.windows_sdk_version
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
_windows_sdk_c11_mode_min_version = (10, 0, 19041, 0)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def _enableC11Settings(env):
|
|
85
|
+
"""Decide if C11 mode can be used and enable the C compile flags for it.
|
|
86
|
+
|
|
87
|
+
Args:
|
|
88
|
+
env - scons environment with compiler information
|
|
89
|
+
|
|
90
|
+
Returns:
|
|
91
|
+
bool - c11_mode flag
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
# Lots of cases to deal with, pylint: disable=too-many-branches
|
|
95
|
+
|
|
96
|
+
if "force-c11-mode" in env.experimental_flags:
|
|
97
|
+
c11_mode = True
|
|
98
|
+
elif "force-cpp-mode" in env.experimental_flags:
|
|
99
|
+
c11_mode = False
|
|
100
|
+
elif env.clangcl_mode:
|
|
101
|
+
c11_mode = True
|
|
102
|
+
elif (
|
|
103
|
+
env.msvc_mode
|
|
104
|
+
and env.windows_sdk_version >= _windows_sdk_c11_mode_min_version
|
|
105
|
+
and getMsvcVersion(env) >= (14, 3)
|
|
106
|
+
):
|
|
107
|
+
c11_mode = True
|
|
108
|
+
elif env.clang_mode:
|
|
109
|
+
c11_mode = True
|
|
110
|
+
|
|
111
|
+
# For now, zig doesn't support C11 mode in the form needed by Nuitka
|
|
112
|
+
if isZigName(env.the_cc_name):
|
|
113
|
+
c11_mode = False
|
|
114
|
+
elif env.gcc_mode and env.gcc_version >= (5,):
|
|
115
|
+
c11_mode = True
|
|
116
|
+
else:
|
|
117
|
+
c11_mode = False
|
|
118
|
+
|
|
119
|
+
if c11_mode:
|
|
120
|
+
if env.gcc_mode:
|
|
121
|
+
env.Append(CFLAGS=["-std=c11"])
|
|
122
|
+
elif env.msvc_mode:
|
|
123
|
+
env.Append(CFLAGS=["/std:c11"])
|
|
124
|
+
|
|
125
|
+
if env.msvc_mode and c11_mode:
|
|
126
|
+
# Windows SDK shows this even in non-debug mode in C11 mode.
|
|
127
|
+
env.Append(CCFLAGS=["/wd5105", "/wd4391"])
|
|
128
|
+
|
|
129
|
+
if not c11_mode:
|
|
130
|
+
env.Append(CPPDEFINES=["_NUITKA_NON_C11_MODE"])
|
|
131
|
+
|
|
132
|
+
scons_details_logger.info("Using C11 mode: %s" % c11_mode)
|
|
133
|
+
|
|
134
|
+
env.c11_mode = c11_mode
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
def _enableLtoSettings(
|
|
138
|
+
env,
|
|
139
|
+
lto_mode,
|
|
140
|
+
pgo_mode,
|
|
141
|
+
job_count,
|
|
142
|
+
):
|
|
143
|
+
# This is driven by branches on purpose and pylint: disable=too-many-branches,too-many-statements
|
|
144
|
+
|
|
145
|
+
orig_lto_mode = lto_mode
|
|
146
|
+
|
|
147
|
+
if lto_mode == "no":
|
|
148
|
+
lto_mode = False
|
|
149
|
+
reason = "disabled"
|
|
150
|
+
elif lto_mode == "yes":
|
|
151
|
+
lto_mode = True
|
|
152
|
+
reason = "enabled"
|
|
153
|
+
elif pgo_mode in ("use", "generate"):
|
|
154
|
+
lto_mode = True
|
|
155
|
+
reason = "PGO implies LTO"
|
|
156
|
+
elif env.msvc_mode and getMsvcVersion(env) >= (14,):
|
|
157
|
+
lto_mode = True
|
|
158
|
+
reason = "known to be supported"
|
|
159
|
+
elif env.nuitka_python:
|
|
160
|
+
lto_mode = True
|
|
161
|
+
reason = "known to be supported (Nuitka-Python)"
|
|
162
|
+
elif env.fedora_python:
|
|
163
|
+
lto_mode = True
|
|
164
|
+
reason = "known to be supported (Fedora Python)"
|
|
165
|
+
elif env.arch_python:
|
|
166
|
+
lto_mode = True
|
|
167
|
+
reason = "known to be supported (Arch Python)"
|
|
168
|
+
elif (
|
|
169
|
+
env.debian_python
|
|
170
|
+
and env.gcc_mode
|
|
171
|
+
and not env.clang_mode
|
|
172
|
+
and env.gcc_version >= (6,)
|
|
173
|
+
):
|
|
174
|
+
lto_mode = True
|
|
175
|
+
reason = "known to be supported (Debian)"
|
|
176
|
+
elif env.gcc_mode and "gnu-cc" in env.the_cc_name and env.anaconda_python:
|
|
177
|
+
lto_mode = False
|
|
178
|
+
reason = "known to be not supported (CondaCC)"
|
|
179
|
+
elif isMacOS() and env.gcc_mode and env.clang_mode:
|
|
180
|
+
if env.debugger_mode:
|
|
181
|
+
lto_mode = False
|
|
182
|
+
reason = "must be disabled to see line numbers (macOS clang)"
|
|
183
|
+
else:
|
|
184
|
+
lto_mode = True
|
|
185
|
+
reason = "known to be supported (macOS clang)"
|
|
186
|
+
elif env.mingw_mode and env.clang_mode:
|
|
187
|
+
lto_mode = False
|
|
188
|
+
reason = "known to not be supported (new MinGW64 Clang)"
|
|
189
|
+
elif env.gcc_mode and env.mingw_mode and env.gcc_version >= (11, 2):
|
|
190
|
+
lto_mode = True
|
|
191
|
+
reason = "known to be supported (new MinGW64)"
|
|
192
|
+
else:
|
|
193
|
+
lto_mode = False
|
|
194
|
+
reason = "not known to be supported"
|
|
195
|
+
|
|
196
|
+
# Do not default to LTO for large compilations, unless asked for it.
|
|
197
|
+
compiled_module_count_threshold = 250
|
|
198
|
+
if (
|
|
199
|
+
orig_lto_mode == "auto"
|
|
200
|
+
and lto_mode
|
|
201
|
+
and env.compiled_module_count > compiled_module_count_threshold
|
|
202
|
+
and not env.nuitka_python
|
|
203
|
+
):
|
|
204
|
+
lto_mode = False
|
|
205
|
+
reason = (
|
|
206
|
+
"might to be too slow %s (>= %d threshold), force it with '--lto=yes'"
|
|
207
|
+
% (
|
|
208
|
+
env.compiled_module_count,
|
|
209
|
+
compiled_module_count_threshold,
|
|
210
|
+
)
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
if lto_mode and env.gcc_mode and not env.clang_mode and env.gcc_version < (4, 6):
|
|
214
|
+
scons_logger.warning(
|
|
215
|
+
"""\
|
|
216
|
+
The gcc compiler %s (version %s) doesn't have the sufficient \
|
|
217
|
+
version for lto mode (>= 4.6). Disabled."""
|
|
218
|
+
% (env["CXX"], env["CXXVERSION"])
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
lto_mode = False
|
|
222
|
+
reason = "gcc 4.6 is doesn't have good enough LTO support"
|
|
223
|
+
|
|
224
|
+
if (
|
|
225
|
+
lto_mode
|
|
226
|
+
and env.gcc_mode
|
|
227
|
+
and not env.clang_mode
|
|
228
|
+
and not isWin32Windows()
|
|
229
|
+
and not isMacOS()
|
|
230
|
+
and getExecutablePath("make", env=env) is None
|
|
231
|
+
):
|
|
232
|
+
scons_logger.warning(
|
|
233
|
+
"""\
|
|
234
|
+
The gcc compiler for LTO mode requires 'make' to be installed \
|
|
235
|
+
for parallel linking to be used, compilation might be a lot \
|
|
236
|
+
slower without it.
|
|
237
|
+
"""
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
if env.gcc_mode and lto_mode:
|
|
241
|
+
if env.clang_mode:
|
|
242
|
+
env.Append(CCFLAGS=["-flto"])
|
|
243
|
+
env.Append(LINKFLAGS=["-flto"])
|
|
244
|
+
else:
|
|
245
|
+
env.Append(CCFLAGS=["-flto=%d" % job_count])
|
|
246
|
+
env.Append(LINKFLAGS=["-flto=%d" % job_count])
|
|
247
|
+
|
|
248
|
+
env.Append(CCFLAGS=["-fuse-linker-plugin", "-fno-fat-lto-objects"])
|
|
249
|
+
env.Append(LINKFLAGS=["-fuse-linker-plugin"])
|
|
250
|
+
|
|
251
|
+
# Need to tell the linker these things are OK.
|
|
252
|
+
env.Append(LINKFLAGS=["-fpartial-inlining", "-freorder-functions"])
|
|
253
|
+
|
|
254
|
+
if env.mingw_mode and "MAKE" not in os.environ:
|
|
255
|
+
setEnvironmentVariable(env, "MAKE", "mingw32-make.exe")
|
|
256
|
+
|
|
257
|
+
# Tell compiler to use link time optimization for MSVC
|
|
258
|
+
if env.msvc_mode and lto_mode:
|
|
259
|
+
env.Append(CCFLAGS=["/GL"])
|
|
260
|
+
|
|
261
|
+
if not env.clangcl_mode:
|
|
262
|
+
env.Append(LINKFLAGS=["/LTCG"])
|
|
263
|
+
|
|
264
|
+
if getMsvcVersion(env) >= (14, 3):
|
|
265
|
+
env.Append(LINKFLAGS=["/CGTHREADS:%d" % job_count])
|
|
266
|
+
|
|
267
|
+
if orig_lto_mode == "auto":
|
|
268
|
+
scons_details_logger.info(
|
|
269
|
+
"LTO mode auto was resolved to mode: '%s' (%s)."
|
|
270
|
+
% ("yes" if lto_mode else "no", reason)
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
env.lto_mode = lto_mode
|
|
274
|
+
env.orig_lto_mode = orig_lto_mode
|
|
275
|
+
env.pgo_mode = pgo_mode
|
|
276
|
+
|
|
277
|
+
# PGO configuration
|
|
278
|
+
_enablePgoSettings(env)
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
_python311_min_msvc_version = (14, 3)
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
def checkWindowsCompilerFound(
|
|
285
|
+
env, target_arch, clang_mode, msvc_version, assume_yes_for_downloads, download_ok
|
|
286
|
+
):
|
|
287
|
+
"""Remove compiler of wrong arch or too old gcc and replace with downloaded winlibs gcc."""
|
|
288
|
+
# Many cases to deal with, pylint: disable=too-many-branches,too-many-statements
|
|
289
|
+
|
|
290
|
+
if os.name == "nt":
|
|
291
|
+
# On Windows, in case MSVC was not found and not previously forced, use the
|
|
292
|
+
# winlibs MinGW64 as a download, and use it as a fallback.
|
|
293
|
+
compiler_path = getExecutablePath(env["CC"], env=env)
|
|
294
|
+
|
|
295
|
+
scons_details_logger.info(
|
|
296
|
+
"Checking usability of binary '%s' from environment '%s'."
|
|
297
|
+
% (compiler_path, env["CC"])
|
|
298
|
+
)
|
|
299
|
+
|
|
300
|
+
# On MSYS2, cannot use the POSIX compiler, drop that even before we check arches, since that
|
|
301
|
+
# will of course still match.
|
|
302
|
+
if env.msys2_mingw_python and compiler_path.endswith("/usr/bin/gcc.exe"):
|
|
303
|
+
compiler_path = None
|
|
304
|
+
|
|
305
|
+
if compiler_path is not None:
|
|
306
|
+
the_cc_name = os.path.basename(compiler_path)
|
|
307
|
+
|
|
308
|
+
# The MSVC can only be used with an Windows SDK installed, and for 3.11 we need it
|
|
309
|
+
# to be a least a minimum version.
|
|
310
|
+
if (
|
|
311
|
+
not isGccName(the_cc_name)
|
|
312
|
+
and not isClangName(the_cc_name)
|
|
313
|
+
and (
|
|
314
|
+
_detectWindowsSDK(env) is None
|
|
315
|
+
or (
|
|
316
|
+
env.python_version is not None
|
|
317
|
+
and env.python_version >= (3, 11)
|
|
318
|
+
and _detectWindowsSDK(env) < _windows_sdk_c11_mode_min_version
|
|
319
|
+
)
|
|
320
|
+
)
|
|
321
|
+
):
|
|
322
|
+
# This will trigger using it to use our own gcc in branch below.
|
|
323
|
+
compiler_path = None
|
|
324
|
+
env["CC"] = None
|
|
325
|
+
|
|
326
|
+
if compiler_path is not None:
|
|
327
|
+
the_cc_name = os.path.basename(compiler_path)
|
|
328
|
+
|
|
329
|
+
if clang_mode and not isClangName(the_cc_name):
|
|
330
|
+
# This will trigger using it to use our own clang in branch below.
|
|
331
|
+
compiler_path = None
|
|
332
|
+
env["CC"] = None
|
|
333
|
+
|
|
334
|
+
# Drop wrong arch compiler, most often found by scans. There might be wrong gcc or cl on the PATH.
|
|
335
|
+
if compiler_path is not None:
|
|
336
|
+
the_cc_name = os.path.basename(compiler_path)
|
|
337
|
+
|
|
338
|
+
decision, linker_arch, compiler_arch = decideArchMismatch(
|
|
339
|
+
target_arch=target_arch,
|
|
340
|
+
the_cc_name=the_cc_name,
|
|
341
|
+
compiler_path=compiler_path,
|
|
342
|
+
)
|
|
343
|
+
|
|
344
|
+
if decision:
|
|
345
|
+
scons_logger.info(
|
|
346
|
+
"""\
|
|
347
|
+
Mismatch between Python binary ('%s' -> '%s') and \
|
|
348
|
+
C compiler ('%s' -> '%s') arches, that compiler is ignored!"""
|
|
349
|
+
% (
|
|
350
|
+
os.environ["NUITKA_PYTHON_EXE_PATH"],
|
|
351
|
+
linker_arch,
|
|
352
|
+
compiler_path,
|
|
353
|
+
compiler_arch,
|
|
354
|
+
)
|
|
355
|
+
)
|
|
356
|
+
|
|
357
|
+
# This will trigger using it to use our own gcc in branch below.
|
|
358
|
+
compiler_path = None
|
|
359
|
+
env["CC"] = None
|
|
360
|
+
|
|
361
|
+
if compiler_path is not None and msvc_version is not None:
|
|
362
|
+
if msvc_version == "latest":
|
|
363
|
+
scons_logger.info(
|
|
364
|
+
"MSVC version resolved to %s." % getMsvcVersionString(env)
|
|
365
|
+
)
|
|
366
|
+
# Requested a specific MSVC version, check if that worked.
|
|
367
|
+
elif msvc_version != getMsvcVersionString(env):
|
|
368
|
+
scons_logger.info(
|
|
369
|
+
"Failed to find requested MSVC version ('%s' != '%s')."
|
|
370
|
+
% (msvc_version, getMsvcVersionString(env))
|
|
371
|
+
)
|
|
372
|
+
|
|
373
|
+
# This will trigger error exit in branch below.
|
|
374
|
+
compiler_path = None
|
|
375
|
+
env["CC"] = None
|
|
376
|
+
|
|
377
|
+
# For Python3.11
|
|
378
|
+
if compiler_path is not None:
|
|
379
|
+
the_cc_name = os.path.basename(compiler_path)
|
|
380
|
+
|
|
381
|
+
# The MSVC can only be used with an Windows SDK installed, and for 3.11 we need it
|
|
382
|
+
# to be a least a minimum version.
|
|
383
|
+
if (
|
|
384
|
+
# This is actually OK to use like this, pylint: disable=bad-chained-comparison
|
|
385
|
+
not isGccName(the_cc_name)
|
|
386
|
+
and None is not env.python_version >= (3, 11)
|
|
387
|
+
and getMsvcVersion(env) < _python311_min_msvc_version
|
|
388
|
+
):
|
|
389
|
+
scons_logger.info(
|
|
390
|
+
"""\
|
|
391
|
+
For Python version %s MSVC %s or later is required, not %s which is too old."""
|
|
392
|
+
% (
|
|
393
|
+
".".join(str(d) for d in env.python_version),
|
|
394
|
+
".".join(str(d) for d in _python311_min_msvc_version),
|
|
395
|
+
getMsvcVersionString(env),
|
|
396
|
+
)
|
|
397
|
+
)
|
|
398
|
+
|
|
399
|
+
# This will trigger error exit in branch below.
|
|
400
|
+
compiler_path = None
|
|
401
|
+
env["CC"] = None
|
|
402
|
+
|
|
403
|
+
if compiler_path is not None:
|
|
404
|
+
the_cc_name = os.path.basename(compiler_path)
|
|
405
|
+
|
|
406
|
+
if isGccName(the_cc_name):
|
|
407
|
+
if "force-accept-windows-gcc" not in env.experimental_flags:
|
|
408
|
+
scons_logger.info(
|
|
409
|
+
"Non downloaded winlibs-gcc '%s' is being ignored, Nuitka is very dependent on the precise one."
|
|
410
|
+
% (compiler_path,)
|
|
411
|
+
)
|
|
412
|
+
|
|
413
|
+
# This also will trigger using it to use our own gcc in branch below.
|
|
414
|
+
compiler_path = None
|
|
415
|
+
env["CC"] = None
|
|
416
|
+
|
|
417
|
+
if compiler_path is None and msvc_version is None:
|
|
418
|
+
scons_details_logger.info(
|
|
419
|
+
"No usable C compiler, attempt fallback to winlibs gcc or clang."
|
|
420
|
+
)
|
|
421
|
+
|
|
422
|
+
# This will download "gcc.exe" (and "clang.exe") when all others have been
|
|
423
|
+
# rejected and MSVC is not enforced.
|
|
424
|
+
compiler_path = getCachedDownloadedMinGW64(
|
|
425
|
+
target_arch=target_arch,
|
|
426
|
+
assume_yes_for_downloads=assume_yes_for_downloads,
|
|
427
|
+
download_ok=download_ok,
|
|
428
|
+
)
|
|
429
|
+
|
|
430
|
+
if compiler_path is not None:
|
|
431
|
+
addToPATH(env, os.path.dirname(compiler_path), prefix=True)
|
|
432
|
+
|
|
433
|
+
env = createEnvironment(
|
|
434
|
+
mingw_mode=True,
|
|
435
|
+
msvc_version=None,
|
|
436
|
+
target_arch=target_arch,
|
|
437
|
+
experimental=env.experimental_flags,
|
|
438
|
+
no_deployment=env.no_deployment_flags,
|
|
439
|
+
debug_modes=env.debug_modes_flags,
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
if clang_mode:
|
|
443
|
+
env["CC"] = os.path.join(
|
|
444
|
+
os.path.dirname(compiler_path), "clang.exe"
|
|
445
|
+
)
|
|
446
|
+
|
|
447
|
+
if env["CC"] is None:
|
|
448
|
+
raiseNoCompilerFoundErrorExit()
|
|
449
|
+
|
|
450
|
+
return env
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
def decideConstantsBlobResourceMode(env):
|
|
454
|
+
if "NUITKA_RESOURCE_MODE" in os.environ:
|
|
455
|
+
resource_mode = os.environ["NUITKA_RESOURCE_MODE"]
|
|
456
|
+
reason = "user provided"
|
|
457
|
+
elif isWin32Windows():
|
|
458
|
+
resource_mode = "win_resource"
|
|
459
|
+
reason = "default for Windows"
|
|
460
|
+
elif isPosixWindows():
|
|
461
|
+
resource_mode = "linker"
|
|
462
|
+
reason = "default MSYS2 Posix"
|
|
463
|
+
elif isMacOS():
|
|
464
|
+
resource_mode = "mac_section"
|
|
465
|
+
reason = "default for macOS"
|
|
466
|
+
elif env.gcc_mode and env.clang_mode and env.clang_version >= (19,):
|
|
467
|
+
resource_mode = "c23_embed"
|
|
468
|
+
reason = "default for newer clang"
|
|
469
|
+
elif env.gcc_mode and not env.clang_mode and env.gcc_version >= (15,):
|
|
470
|
+
resource_mode = "c23_embed"
|
|
471
|
+
reason = "default for newer gcc"
|
|
472
|
+
elif isAIX():
|
|
473
|
+
resource_mode = "code"
|
|
474
|
+
reason = "AIX is not compatible with incbin"
|
|
475
|
+
elif env.lto_mode and env.gcc_mode and not env.clang_mode:
|
|
476
|
+
if env.module_mode:
|
|
477
|
+
resource_mode = "code"
|
|
478
|
+
else:
|
|
479
|
+
resource_mode = "linker"
|
|
480
|
+
|
|
481
|
+
reason = "default for lto gcc with '--lto' and bugs for incbin"
|
|
482
|
+
else:
|
|
483
|
+
# All is done already, this is for most platforms.
|
|
484
|
+
resource_mode = "incbin"
|
|
485
|
+
reason = "default"
|
|
486
|
+
|
|
487
|
+
return resource_mode, reason
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
def addConstantBlobFile(env, blob_filename, resource_desc, target_arch):
|
|
491
|
+
resource_mode, reason = resource_desc
|
|
492
|
+
|
|
493
|
+
assert blob_filename.endswith(".bin"), blob_filename
|
|
494
|
+
|
|
495
|
+
scons_details_logger.info(
|
|
496
|
+
"Using resource mode: '%s' (%s)." % (resource_mode, reason)
|
|
497
|
+
)
|
|
498
|
+
|
|
499
|
+
if resource_mode == "win_resource":
|
|
500
|
+
# On Windows constants can be accessed as a resource by Nuitka at run time afterwards.
|
|
501
|
+
env.Append(CPPDEFINES=["_NUITKA_CONSTANTS_FROM_RESOURCE"])
|
|
502
|
+
elif resource_mode == "mac_section":
|
|
503
|
+
env.Append(CPPDEFINES=["_NUITKA_CONSTANTS_FROM_MACOS_SECTION"])
|
|
504
|
+
|
|
505
|
+
addBinaryBlobSection(
|
|
506
|
+
env=env,
|
|
507
|
+
blob_filename=blob_filename,
|
|
508
|
+
section_name=os.path.basename(blob_filename)[:-4].lstrip("_"),
|
|
509
|
+
)
|
|
510
|
+
elif resource_mode == "incbin":
|
|
511
|
+
env.Append(CPPDEFINES=["_NUITKA_CONSTANTS_FROM_INCBIN"])
|
|
512
|
+
|
|
513
|
+
constants_generated_filename = os.path.join(
|
|
514
|
+
env.source_dir, "__constants_data.c"
|
|
515
|
+
)
|
|
516
|
+
|
|
517
|
+
putTextFileContents(
|
|
518
|
+
constants_generated_filename,
|
|
519
|
+
contents=r"""
|
|
520
|
+
#define INCBIN_PREFIX
|
|
521
|
+
#define INCBIN_STYLE INCBIN_STYLE_SNAKE
|
|
522
|
+
#define INCBIN_LOCAL
|
|
523
|
+
#ifdef _NUITKA_EXPERIMENTAL_WRITEABLE_CONSTANTS
|
|
524
|
+
#define INCBIN_OUTPUT_SECTION ".data"
|
|
525
|
+
#endif
|
|
526
|
+
|
|
527
|
+
#include "nuitka/incbin.h"
|
|
528
|
+
|
|
529
|
+
INCBIN(constant_bin, "%(blob_filename)s");
|
|
530
|
+
|
|
531
|
+
unsigned char const *getConstantsBlobData(void) {
|
|
532
|
+
return constant_bin_data;
|
|
533
|
+
}
|
|
534
|
+
"""
|
|
535
|
+
% {"blob_filename": blob_filename},
|
|
536
|
+
)
|
|
537
|
+
|
|
538
|
+
elif resource_mode == "linker":
|
|
539
|
+
# Indicate "linker" resource mode.
|
|
540
|
+
env.Append(CPPDEFINES=["_NUITKA_CONSTANTS_FROM_LINKER"])
|
|
541
|
+
|
|
542
|
+
# For MinGW the symbol name to be used is more low level.
|
|
543
|
+
constant_bin_link_name = "constant_bin_data"
|
|
544
|
+
if env.mingw_mode:
|
|
545
|
+
constant_bin_link_name = "_" + constant_bin_link_name
|
|
546
|
+
|
|
547
|
+
env.Append(
|
|
548
|
+
LINKFLAGS=[
|
|
549
|
+
"-Wl,-b",
|
|
550
|
+
"-Wl,binary",
|
|
551
|
+
"-Wl,%s" % blob_filename,
|
|
552
|
+
"-Wl,-b",
|
|
553
|
+
"-Wl,%s"
|
|
554
|
+
% getLinkerArch(
|
|
555
|
+
target_arch=target_arch,
|
|
556
|
+
mingw_mode=env.mingw_mode or isPosixWindows(),
|
|
557
|
+
),
|
|
558
|
+
"-Wl,-defsym",
|
|
559
|
+
"-Wl,%s=_binary_%s___constants_bin_start"
|
|
560
|
+
% (
|
|
561
|
+
constant_bin_link_name,
|
|
562
|
+
"".join(re.sub("[^a-zA-Z0-9_]", "_", c) for c in env.source_dir),
|
|
563
|
+
),
|
|
564
|
+
]
|
|
565
|
+
)
|
|
566
|
+
elif resource_mode in ("code", "c23_embed"):
|
|
567
|
+
# Indicate "code" resource mode.
|
|
568
|
+
env.Append(CPPDEFINES=["_NUITKA_CONSTANTS_FROM_CODE"])
|
|
569
|
+
|
|
570
|
+
constants_generated_filename = os.path.join(
|
|
571
|
+
env.source_dir, "__constants_data.c"
|
|
572
|
+
)
|
|
573
|
+
|
|
574
|
+
def writeConstantsDataSource():
|
|
575
|
+
with openTextFile(constants_generated_filename, "w") as output:
|
|
576
|
+
if not env.c11_mode:
|
|
577
|
+
output.write('extern "C" {')
|
|
578
|
+
|
|
579
|
+
output.write(
|
|
580
|
+
"""
|
|
581
|
+
// Constant data for the program.
|
|
582
|
+
#ifdef __cplusplus
|
|
583
|
+
extern "C"
|
|
584
|
+
#endif
|
|
585
|
+
#if !defined(_NUITKA_EXPERIMENTAL_WRITEABLE_CONSTANTS)
|
|
586
|
+
const
|
|
587
|
+
#endif
|
|
588
|
+
unsigned char constant_bin_data[] =\n{\n
|
|
589
|
+
"""
|
|
590
|
+
)
|
|
591
|
+
|
|
592
|
+
if resource_mode == "code":
|
|
593
|
+
with open(blob_filename, "rb") as f:
|
|
594
|
+
content = f.read()
|
|
595
|
+
for count, stream_byte in enumerate(content):
|
|
596
|
+
if count % 16 == 0:
|
|
597
|
+
if count > 0:
|
|
598
|
+
output.write("\n")
|
|
599
|
+
|
|
600
|
+
output.write(" ")
|
|
601
|
+
|
|
602
|
+
if str is bytes:
|
|
603
|
+
stream_byte = ord(stream_byte)
|
|
604
|
+
|
|
605
|
+
output.write(" 0x%02x," % stream_byte)
|
|
606
|
+
else:
|
|
607
|
+
output.write('#embed "%s"\n' % blob_filename)
|
|
608
|
+
|
|
609
|
+
output.write("\n};\n")
|
|
610
|
+
|
|
611
|
+
if not env.c11_mode:
|
|
612
|
+
output.write("}")
|
|
613
|
+
|
|
614
|
+
writeConstantsDataSource()
|
|
615
|
+
else:
|
|
616
|
+
scons_logger.sysexit(
|
|
617
|
+
"Error, illegal resource mode '%s' specified" % resource_mode
|
|
618
|
+
)
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
def enableWindowsStackSize(env, target_arch):
|
|
622
|
+
# Stack size 4MB or 8MB, we might need more than the default 1MB.
|
|
623
|
+
if target_arch == "x86_64":
|
|
624
|
+
stack_size = 1024 * 1204 * 8
|
|
625
|
+
else:
|
|
626
|
+
stack_size = 1024 * 1204 * 4
|
|
627
|
+
|
|
628
|
+
if env.msvc_mode:
|
|
629
|
+
env.Append(LINKFLAGS=["/STACK:%d" % stack_size])
|
|
630
|
+
|
|
631
|
+
if env.mingw_mode:
|
|
632
|
+
env.Append(LINKFLAGS=["-Wl,--stack,%d" % stack_size])
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
def setupCCompiler(env, lto_mode, pgo_mode, job_count, onefile_compile):
|
|
636
|
+
# This is driven by many branches on purpose and has a lot of things
|
|
637
|
+
# to deal with for LTO checks and flags, pylint: disable=too-many-branches,too-many-statements
|
|
638
|
+
|
|
639
|
+
# Enable LTO for compiler.
|
|
640
|
+
_enableLtoSettings(
|
|
641
|
+
env=env,
|
|
642
|
+
lto_mode=lto_mode,
|
|
643
|
+
pgo_mode=pgo_mode,
|
|
644
|
+
job_count=job_count,
|
|
645
|
+
)
|
|
646
|
+
|
|
647
|
+
_enableC11Settings(env)
|
|
648
|
+
|
|
649
|
+
if env.gcc_mode:
|
|
650
|
+
# Support for gcc and clang, restricting visibility as much as possible.
|
|
651
|
+
env.Append(CCFLAGS=["-fvisibility=hidden"])
|
|
652
|
+
|
|
653
|
+
if not env.c11_mode:
|
|
654
|
+
env.Append(CXXFLAGS=["-fvisibility-inlines-hidden"])
|
|
655
|
+
|
|
656
|
+
if isWin32Windows() and hasattr(env, "source_dir"):
|
|
657
|
+
# On Windows, exporting to DLL need to be controlled.
|
|
658
|
+
env.Append(LINKFLAGS=["-Wl,--exclude-all-symbols"])
|
|
659
|
+
|
|
660
|
+
# Make sure we handle import library on our own and put it into the
|
|
661
|
+
# build directory.
|
|
662
|
+
env.Append(
|
|
663
|
+
LINKFLAGS=[
|
|
664
|
+
"-Wl,--out-implib,%s" % os.path.join(env.source_dir, "import.lib")
|
|
665
|
+
]
|
|
666
|
+
)
|
|
667
|
+
|
|
668
|
+
# Make it clear how to handle integer overflows, namely by wrapping around
|
|
669
|
+
# to negative values.
|
|
670
|
+
env.Append(CCFLAGS=["-fwrapv"])
|
|
671
|
+
|
|
672
|
+
if not env.low_memory:
|
|
673
|
+
# Avoid IO for compilation as much as possible, this should make the
|
|
674
|
+
# compilation more memory hungry, but also faster.
|
|
675
|
+
env.Append(CCFLAGS="-pipe")
|
|
676
|
+
|
|
677
|
+
# gcc compiler cf_protection option
|
|
678
|
+
if env.cf_protection != "auto":
|
|
679
|
+
env.Append(CCFLAGS=["-fcf-protection=%s" % env.cf_protection])
|
|
680
|
+
|
|
681
|
+
# Support for clang.
|
|
682
|
+
if "clang" in env.the_cc_name:
|
|
683
|
+
env.Append(CCFLAGS=["-w"])
|
|
684
|
+
env.Append(CPPDEFINES=["_XOPEN_SOURCE"])
|
|
685
|
+
|
|
686
|
+
# Don't export anything by default, this should create smaller executables.
|
|
687
|
+
env.Append(CCFLAGS=["-fvisibility=hidden", "-fvisibility-inlines-hidden"])
|
|
688
|
+
|
|
689
|
+
if (
|
|
690
|
+
env.debug_mode
|
|
691
|
+
and "debug_c_warnings" in env.debug_modes_flags
|
|
692
|
+
and not env.debugger_mode
|
|
693
|
+
):
|
|
694
|
+
# Allow gcc/clang/MSVC to point out all kinds of inconsistency to us by
|
|
695
|
+
# raising an error.
|
|
696
|
+
if env.gcc_mode:
|
|
697
|
+
env.Append(
|
|
698
|
+
CCFLAGS=[
|
|
699
|
+
"-Wall",
|
|
700
|
+
"-Werror", # spell-checker: ignore Werror
|
|
701
|
+
]
|
|
702
|
+
)
|
|
703
|
+
|
|
704
|
+
if env.clang_mode or env.gcc_version >= (4, 6):
|
|
705
|
+
env.Append(CCFLAGS=["-Wunused-but-set-variable"])
|
|
706
|
+
|
|
707
|
+
if env.msvc_mode:
|
|
708
|
+
env.Append(CCFLAGS=["/WX"])
|
|
709
|
+
else:
|
|
710
|
+
if env.gcc_mode:
|
|
711
|
+
if env.clang_mode or env.gcc_version >= (4, 6):
|
|
712
|
+
env.Append(CCFLAGS=["-Wno-unused-but-set-variable"])
|
|
713
|
+
|
|
714
|
+
# Support for macOS standalone to run on older OS versions.
|
|
715
|
+
if isMacOS():
|
|
716
|
+
setEnvironmentVariable(env, "MACOSX_DEPLOYMENT_TARGET", env.macos_min_version)
|
|
717
|
+
|
|
718
|
+
target_flag = "--target=%s-apple-macos%s" % (
|
|
719
|
+
env.macos_target_arch,
|
|
720
|
+
env.macos_min_version,
|
|
721
|
+
)
|
|
722
|
+
|
|
723
|
+
env.Append(CCFLAGS=[target_flag])
|
|
724
|
+
env.Append(LINKFLAGS=[target_flag])
|
|
725
|
+
|
|
726
|
+
# The MinGW64 and ClangCL do not default for API level properly, so
|
|
727
|
+
# help it.
|
|
728
|
+
env.Append(CPPDEFINES=["_WIN32_WINNT=0x0601"])
|
|
729
|
+
|
|
730
|
+
# Unicode entry points for programs.
|
|
731
|
+
if env.mingw_mode:
|
|
732
|
+
env.Append(LINKFLAGS=["-municode"])
|
|
733
|
+
|
|
734
|
+
# Detect the gcc version
|
|
735
|
+
if env.gcc_version is None and env.gcc_mode and not env.clang_mode:
|
|
736
|
+
env.gcc_version = myDetectVersion(env, env.the_compiler)
|
|
737
|
+
|
|
738
|
+
# Older g++ complains about aliasing with Py_True and Py_False, but we don't
|
|
739
|
+
# care.
|
|
740
|
+
if env.gcc_mode and not env.clang_mode and env.gcc_version < (4, 5):
|
|
741
|
+
env.Append(CCFLAGS=["-fno-strict-aliasing"])
|
|
742
|
+
|
|
743
|
+
# For gcc 4.6 or higher, there this new interesting function.
|
|
744
|
+
if env.gcc_mode and not env.clang_mode and env.gcc_version >= (4, 6):
|
|
745
|
+
env.Append(CCFLAGS=["-fpartial-inlining"])
|
|
746
|
+
|
|
747
|
+
# Save some memory for gcc by not tracing macro code locations at all.
|
|
748
|
+
if (
|
|
749
|
+
not env.debug_mode
|
|
750
|
+
and env.gcc_mode
|
|
751
|
+
and not env.clang_mode
|
|
752
|
+
and env.gcc_version >= (5,)
|
|
753
|
+
):
|
|
754
|
+
env.Append(CCFLAGS=["-ftrack-macro-expansion=0"])
|
|
755
|
+
|
|
756
|
+
# We don't care about deprecations.
|
|
757
|
+
if env.gcc_mode and not env.clang_mode:
|
|
758
|
+
env.Append(CCFLAGS=["-Wno-deprecated-declarations"])
|
|
759
|
+
|
|
760
|
+
# The var-tracking does not scale, disable it. Should we really need it, we
|
|
761
|
+
# can enable it. TODO: Does this cause a performance loss?
|
|
762
|
+
if env.gcc_mode and not env.clang_mode:
|
|
763
|
+
env.Append(CCFLAGS=["-fno-var-tracking"])
|
|
764
|
+
|
|
765
|
+
# For large files, these can issue warnings about disabling
|
|
766
|
+
# itself, while we do not need it really.
|
|
767
|
+
if env.gcc_mode and not env.clang_mode and env.gcc_version >= (6,):
|
|
768
|
+
env.Append(CCFLAGS=["-Wno-misleading-indentation"])
|
|
769
|
+
|
|
770
|
+
# Disable output of notes, e.g. on struct alignment layout changes for
|
|
771
|
+
# some arches, we don't care.
|
|
772
|
+
if env.gcc_mode and not env.clang_mode:
|
|
773
|
+
env.Append(CCFLAGS=["-fcompare-debug-second"])
|
|
774
|
+
|
|
775
|
+
# Prevent using LTO when told not to use it, causes errors with some
|
|
776
|
+
# static link libraries.
|
|
777
|
+
if (
|
|
778
|
+
env.gcc_mode
|
|
779
|
+
and not env.clang_mode
|
|
780
|
+
and env.static_libpython
|
|
781
|
+
and not env.lto_mode
|
|
782
|
+
):
|
|
783
|
+
env.Append(CCFLAGS=["-fno-lto"])
|
|
784
|
+
env.Append(LINKFLAGS=["-fno-lto"])
|
|
785
|
+
|
|
786
|
+
# Set optimization level for gcc and clang in LTO mode
|
|
787
|
+
if env.gcc_mode and env.lto_mode:
|
|
788
|
+
if env.debug_mode:
|
|
789
|
+
env.Append(LINKFLAGS=["-Og"])
|
|
790
|
+
else:
|
|
791
|
+
# For LTO with static libpython combined, there are crashes with Python core
|
|
792
|
+
# being inlined, so we must refrain from that. On Windows there is no such
|
|
793
|
+
# thing, and Nuitka-Python is not affected.
|
|
794
|
+
env.Append(
|
|
795
|
+
LINKFLAGS=[
|
|
796
|
+
(
|
|
797
|
+
"-O3"
|
|
798
|
+
if env.nuitka_python
|
|
799
|
+
or os.name == "nt"
|
|
800
|
+
or not env.static_libpython
|
|
801
|
+
else "-O2"
|
|
802
|
+
)
|
|
803
|
+
]
|
|
804
|
+
)
|
|
805
|
+
|
|
806
|
+
# When debugging, optimize less than when optimizing, when not remove
|
|
807
|
+
# assertions.
|
|
808
|
+
if env.debug_mode:
|
|
809
|
+
if env.clang_mode or (env.gcc_mode and env.gcc_version >= (4, 8)):
|
|
810
|
+
env.Append(CCFLAGS=["-Og"])
|
|
811
|
+
elif env.gcc_mode:
|
|
812
|
+
env.Append(CCFLAGS=["-O1"])
|
|
813
|
+
elif env.msvc_mode:
|
|
814
|
+
env.Append(CCFLAGS=["-O2"])
|
|
815
|
+
else:
|
|
816
|
+
if env.gcc_mode:
|
|
817
|
+
env.Append(
|
|
818
|
+
CCFLAGS=[
|
|
819
|
+
(
|
|
820
|
+
"-O3"
|
|
821
|
+
if env.nuitka_python
|
|
822
|
+
or os.name == "nt"
|
|
823
|
+
or not env.static_libpython
|
|
824
|
+
else "-O2"
|
|
825
|
+
)
|
|
826
|
+
]
|
|
827
|
+
)
|
|
828
|
+
elif env.msvc_mode:
|
|
829
|
+
env.Append(
|
|
830
|
+
CCFLAGS=[
|
|
831
|
+
"/Ox", # Enable most speed optimization
|
|
832
|
+
"/GF", # Eliminate duplicate strings.
|
|
833
|
+
"/Gy", # Function level object storage, to allow removing unused ones
|
|
834
|
+
]
|
|
835
|
+
)
|
|
836
|
+
|
|
837
|
+
env.Append(CPPDEFINES=["__NUITKA_NO_ASSERT__"])
|
|
838
|
+
|
|
839
|
+
_enableDebugSystemSettings(env, job_count=job_count)
|
|
840
|
+
|
|
841
|
+
if env.gcc_mode and not env.noelf_mode:
|
|
842
|
+
env.Append(LINKFLAGS=["-z", "noexecstack"])
|
|
843
|
+
|
|
844
|
+
# For MinGW64 we need to tell the subsystem to target as well as to
|
|
845
|
+
# automatically import everything used.
|
|
846
|
+
if env.mingw_mode:
|
|
847
|
+
if not env.clang_mode:
|
|
848
|
+
env.Append(LINKFLAGS=["-Wl,--enable-auto-import"])
|
|
849
|
+
|
|
850
|
+
# Even if console is forced, for Win32 it means to specify Windows
|
|
851
|
+
# subsystem, we can still attach or create.
|
|
852
|
+
if env.console_mode in ("attach", "disable"):
|
|
853
|
+
if env.mingw_mode:
|
|
854
|
+
env.Append(LINKFLAGS=["-Wl,--subsystem,windows"])
|
|
855
|
+
env.Append(CPPDEFINES=["_NUITKA_WINMAIN_ENTRY_POINT"])
|
|
856
|
+
elif env.msvc_mode:
|
|
857
|
+
env.Append(LINKFLAGS=["/SUBSYSTEM:windows"])
|
|
858
|
+
env.Append(CPPDEFINES=["_NUITKA_WINMAIN_ENTRY_POINT"])
|
|
859
|
+
|
|
860
|
+
if env.console_mode == "attach" and os.name == "nt":
|
|
861
|
+
env.Append(CPPDEFINES=["_NUITKA_ATTACH_CONSOLE_WINDOW"])
|
|
862
|
+
|
|
863
|
+
if env.console_mode == "hide" and os.name == "nt":
|
|
864
|
+
env.Append(CPPDEFINES=["_NUITKA_HIDE_CONSOLE_WINDOW"])
|
|
865
|
+
env.Append(LIBS=["User32"])
|
|
866
|
+
|
|
867
|
+
# Avoid dependency on MinGW libraries, spell-checker: ignore libgcc
|
|
868
|
+
if env.mingw_mode and not env.clang_mode:
|
|
869
|
+
env.Append(LINKFLAGS=["-static-libgcc"])
|
|
870
|
+
|
|
871
|
+
# MinGW64 for 64 bits needs this due to CPython bugs.
|
|
872
|
+
if env.mingw_mode and env.target_arch == "x86_64" and env.python_version < (3, 12):
|
|
873
|
+
env.Append(CPPDEFINES=["MS_WIN64"])
|
|
874
|
+
|
|
875
|
+
if env.msvc_mode:
|
|
876
|
+
# For shell API usage to lookup app folders we need this.
|
|
877
|
+
env.Append(LIBS=["Shell32", "Advapi32"])
|
|
878
|
+
|
|
879
|
+
# Make sure to find MSVC "link" in the right spot and to not use the
|
|
880
|
+
# "link" of e.g. Git.
|
|
881
|
+
addToPATH(
|
|
882
|
+
env=env,
|
|
883
|
+
dirname=os.path.dirname(getExecutablePath(env.the_compiler, env=env)),
|
|
884
|
+
prefix=True,
|
|
885
|
+
)
|
|
886
|
+
|
|
887
|
+
# Since Fedora 36, the system Python will not link otherwise.
|
|
888
|
+
if isFedoraBasedLinux():
|
|
889
|
+
env.Append(CCFLAGS=["-fPIC"])
|
|
890
|
+
|
|
891
|
+
# We use zlib for crc32 functionality
|
|
892
|
+
zlib_inline_copy_dir = os.path.join(env.nuitka_src, "inline_copy", "zlib")
|
|
893
|
+
if os.path.exists(os.path.join(zlib_inline_copy_dir, "crc32.c")):
|
|
894
|
+
env.Append(
|
|
895
|
+
CPPPATH=[
|
|
896
|
+
zlib_inline_copy_dir,
|
|
897
|
+
],
|
|
898
|
+
)
|
|
899
|
+
else:
|
|
900
|
+
# TODO: Should only happen for official Debian packages, and there we
|
|
901
|
+
# can use the zlib static linking maybe, but for onefile it's not easy
|
|
902
|
+
# to get it, so just use slow checksum for now.
|
|
903
|
+
if onefile_compile:
|
|
904
|
+
env.Append(CPPDEFINES=["_NUITKA_USE_OWN_CRC32"])
|
|
905
|
+
else:
|
|
906
|
+
env.Append(CPPDEFINES=["_NUITKA_USE_SYSTEM_CRC32"])
|
|
907
|
+
env.Append(LIBS="z")
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
def _enablePgoSettings(env):
|
|
911
|
+
if env.pgo_mode == "no":
|
|
912
|
+
env.progressbar_name = "Backend"
|
|
913
|
+
elif env.pgo_mode == "python":
|
|
914
|
+
env.progressbar_name = "Python Profile"
|
|
915
|
+
env.Append(CPPDEFINES=["_NUITKA_PGO_PYTHON"])
|
|
916
|
+
elif env.pgo_mode == "generate":
|
|
917
|
+
env.progressbar_name = "Profile"
|
|
918
|
+
env.Append(CPPDEFINES=["_NUITKA_PGO_GENERATE"])
|
|
919
|
+
|
|
920
|
+
if env.gcc_mode:
|
|
921
|
+
env.Append(CCFLAGS=["-fprofile-generate"])
|
|
922
|
+
env.Append(LINKFLAGS=["-fprofile-generate"])
|
|
923
|
+
elif env.msvc_mode:
|
|
924
|
+
env.Append(CCFLAGS=["/GL"])
|
|
925
|
+
env.Append(LINKFLAGS=["/GENPROFILE:EXACT"])
|
|
926
|
+
if not env.clangcl_mode:
|
|
927
|
+
env.Append(LINKFLAGS=["/LTCG"])
|
|
928
|
+
|
|
929
|
+
else:
|
|
930
|
+
scons_logger.sysexit(
|
|
931
|
+
"Error, PGO not supported for '%s' compiler." % env.the_cc_name
|
|
932
|
+
)
|
|
933
|
+
elif env.pgo_mode == "use":
|
|
934
|
+
env.progressbar_name = "Backend"
|
|
935
|
+
|
|
936
|
+
env.Append(CPPDEFINES=["_NUITKA_PGO_USE"])
|
|
937
|
+
|
|
938
|
+
if env.gcc_mode:
|
|
939
|
+
env.Append(CCFLAGS=["-fprofile-use"])
|
|
940
|
+
env.Append(LINKFLAGS=["-fprofile-use"])
|
|
941
|
+
elif env.msvc_mode:
|
|
942
|
+
env.Append(CCFLAGS=["/GL"])
|
|
943
|
+
env.Append(
|
|
944
|
+
LINKFLAGS=[
|
|
945
|
+
"/USEPROFILE",
|
|
946
|
+
]
|
|
947
|
+
)
|
|
948
|
+
else:
|
|
949
|
+
scons_logger.sysexit(
|
|
950
|
+
"Error, PGO not supported for '%s' compiler." % env.the_cc_name
|
|
951
|
+
)
|
|
952
|
+
else:
|
|
953
|
+
assert False, env.pgo_mode
|
|
954
|
+
|
|
955
|
+
|
|
956
|
+
def _enableDebugSystemSettings(env, job_count):
|
|
957
|
+
if env.unstripped_mode:
|
|
958
|
+
# Use debug format, so we get good tracebacks from it.
|
|
959
|
+
if env.gcc_mode:
|
|
960
|
+
env.Append(LINKFLAGS=["-g"])
|
|
961
|
+
env.Append(CCFLAGS=["-g"])
|
|
962
|
+
|
|
963
|
+
if not env.clang_mode:
|
|
964
|
+
env.Append(CCFLAGS=["-feliminate-unused-debug-types"])
|
|
965
|
+
elif env.msvc_mode:
|
|
966
|
+
env.Append(CCFLAGS=["/Z7"])
|
|
967
|
+
|
|
968
|
+
# Higher MSVC versions need this for parallel compilation
|
|
969
|
+
if job_count > 1 and getMsvcVersion(env) >= (11,):
|
|
970
|
+
env.Append(CCFLAGS=["/FS"])
|
|
971
|
+
|
|
972
|
+
env.Append(LINKFLAGS=["/DEBUG"])
|
|
973
|
+
else:
|
|
974
|
+
if env.gcc_mode:
|
|
975
|
+
if isMacOS():
|
|
976
|
+
env.Append(LINKFLAGS=["-Wno-deprecated-declarations"])
|
|
977
|
+
elif not env.clang_mode:
|
|
978
|
+
env.Append(LINKFLAGS=["-s"])
|
|
979
|
+
|
|
980
|
+
|
|
981
|
+
def switchFromGccToGpp(env):
|
|
982
|
+
if not env.gcc_mode or env.clang_mode:
|
|
983
|
+
env.gcc_version = None
|
|
984
|
+
return
|
|
985
|
+
|
|
986
|
+
the_compiler = getExecutablePath(env.the_compiler, env)
|
|
987
|
+
|
|
988
|
+
if the_compiler is None:
|
|
989
|
+
return
|
|
990
|
+
|
|
991
|
+
env.gcc_version = myDetectVersion(env, the_compiler)
|
|
992
|
+
|
|
993
|
+
if env.gcc_version is None:
|
|
994
|
+
scons_logger.sysexit(
|
|
995
|
+
"""\
|
|
996
|
+
Error, failed to detect gcc version of backend compiler '%s'.
|
|
997
|
+
"""
|
|
998
|
+
% env.the_compiler
|
|
999
|
+
)
|
|
1000
|
+
|
|
1001
|
+
if "++" in env.the_cc_name:
|
|
1002
|
+
scons_logger.sysexit(
|
|
1003
|
+
"""\
|
|
1004
|
+
Error, compiler %s is apparently a C++ compiler, specify a C compiler instead.
|
|
1005
|
+
"""
|
|
1006
|
+
% env.the_cc_name
|
|
1007
|
+
)
|
|
1008
|
+
|
|
1009
|
+
# Enforce the minimum version, selecting a potentially existing g++-4.5
|
|
1010
|
+
# binary if it's not high enough. This is esp. useful under Debian which
|
|
1011
|
+
# allows all compiler to exist next to each other and where g++ might not be
|
|
1012
|
+
# good enough, but g++-4.5 would be.
|
|
1013
|
+
if env.gcc_version < (4, 4):
|
|
1014
|
+
scons_logger.sysexit(
|
|
1015
|
+
"""\
|
|
1016
|
+
The gcc compiler %s (version %s) doesn't have the sufficient \
|
|
1017
|
+
version (>= 4.4)."""
|
|
1018
|
+
% (env.the_compiler, env.gcc_version)
|
|
1019
|
+
)
|
|
1020
|
+
|
|
1021
|
+
# CondaCC or newer.
|
|
1022
|
+
if env.mingw_mode and env.gcc_version < (5, 3):
|
|
1023
|
+
scons_logger.sysexit(
|
|
1024
|
+
"""\
|
|
1025
|
+
The MinGW64 compiler %s (version %s) doesn't have the sufficient \
|
|
1026
|
+
version (>= 5.3)."""
|
|
1027
|
+
% (env.the_compiler, env.gcc_version)
|
|
1028
|
+
)
|
|
1029
|
+
|
|
1030
|
+
if env.gcc_version < (5,):
|
|
1031
|
+
if env.python_version < (3, 11):
|
|
1032
|
+
scons_logger.info(
|
|
1033
|
+
"The provided gcc is too old, switching to its g++ instead.",
|
|
1034
|
+
mnemonic="too-old-gcc",
|
|
1035
|
+
)
|
|
1036
|
+
|
|
1037
|
+
# Switch to g++ from gcc then if possible, when C11 mode is false.
|
|
1038
|
+
the_gpp_compiler = os.path.join(
|
|
1039
|
+
os.path.dirname(env.the_compiler),
|
|
1040
|
+
os.path.basename(env.the_compiler).replace("gcc", "g++"),
|
|
1041
|
+
)
|
|
1042
|
+
|
|
1043
|
+
if getExecutablePath(the_gpp_compiler, env=env):
|
|
1044
|
+
env.the_compiler = the_gpp_compiler
|
|
1045
|
+
env.the_cc_name = env.the_cc_name.replace("gcc", "g++")
|
|
1046
|
+
else:
|
|
1047
|
+
scons_logger.sysexit(
|
|
1048
|
+
"Error, your gcc is too old for C11 support, and no related g++ to workaround that is found."
|
|
1049
|
+
)
|
|
1050
|
+
else:
|
|
1051
|
+
scons_logger.sysexit(
|
|
1052
|
+
"Error, your gcc is too old for C11 support, install a newer one.",
|
|
1053
|
+
mnemonic="too-old-gcc",
|
|
1054
|
+
)
|
|
1055
|
+
|
|
1056
|
+
|
|
1057
|
+
def reportCCompiler(env, context, output_func):
|
|
1058
|
+
cc_output = env.the_cc_name
|
|
1059
|
+
|
|
1060
|
+
if env.the_cc_name == "cl":
|
|
1061
|
+
cc_output = "%s %s" % (env.the_cc_name, getMsvcVersionString(env))
|
|
1062
|
+
elif isGccName(env.the_cc_name):
|
|
1063
|
+
if env.gcc_version is None:
|
|
1064
|
+
env.gcc_version = myDetectVersion(env, env.the_compiler)
|
|
1065
|
+
|
|
1066
|
+
cc_output = "%s %s" % (
|
|
1067
|
+
env.the_cc_name,
|
|
1068
|
+
".".join(str(d) for d in env.gcc_version),
|
|
1069
|
+
)
|
|
1070
|
+
elif isClangName(env.the_cc_name):
|
|
1071
|
+
env.clang_version = myDetectVersion(env, env.the_cc_name)
|
|
1072
|
+
|
|
1073
|
+
cc_output = "%s %s" % (
|
|
1074
|
+
env.the_cc_name,
|
|
1075
|
+
(
|
|
1076
|
+
".".join(str(d) for d in env.clang_version)
|
|
1077
|
+
if env.clang_version is not None
|
|
1078
|
+
else "not found"
|
|
1079
|
+
),
|
|
1080
|
+
)
|
|
1081
|
+
else:
|
|
1082
|
+
cc_output = env.the_cc_name
|
|
1083
|
+
|
|
1084
|
+
output_func(
|
|
1085
|
+
"%s C compiler: %s (%s)."
|
|
1086
|
+
% (context, getReportPath(env.the_compiler), cc_output)
|
|
1087
|
+
)
|
|
1088
|
+
|
|
1089
|
+
|
|
1090
|
+
def importEnvironmentVariableSettings(env):
|
|
1091
|
+
"""Import typical environment variables that compilation should use."""
|
|
1092
|
+
# spell-checker: ignore cppflags,cflags,ccflags,cxxflags,ldflags
|
|
1093
|
+
|
|
1094
|
+
# Outside compiler settings are respected.
|
|
1095
|
+
if "CPPFLAGS" in os.environ:
|
|
1096
|
+
scons_logger.info(
|
|
1097
|
+
"Scons: Inherited CPPFLAGS='%s' variable." % os.environ["CPPFLAGS"]
|
|
1098
|
+
)
|
|
1099
|
+
env.Append(CPPFLAGS=os.environ["CPPFLAGS"].split())
|
|
1100
|
+
if "CFLAGS" in os.environ:
|
|
1101
|
+
scons_logger.info("Inherited CFLAGS='%s' variable." % os.environ["CFLAGS"])
|
|
1102
|
+
env.Append(CCFLAGS=os.environ["CFLAGS"].split())
|
|
1103
|
+
if "CCFLAGS" in os.environ:
|
|
1104
|
+
scons_logger.info("Inherited CCFLAGS='%s' variable." % os.environ["CCFLAGS"])
|
|
1105
|
+
env.Append(CCFLAGS=os.environ["CCFLAGS"].split())
|
|
1106
|
+
if "CXXFLAGS" in os.environ:
|
|
1107
|
+
scons_logger.info(
|
|
1108
|
+
"Scons: Inherited CXXFLAGS='%s' variable." % os.environ["CXXFLAGS"]
|
|
1109
|
+
)
|
|
1110
|
+
env.Append(CXXFLAGS=os.environ["CXXFLAGS"].split())
|
|
1111
|
+
|
|
1112
|
+
# Outside linker flags are respected.
|
|
1113
|
+
if "LDFLAGS" in os.environ:
|
|
1114
|
+
scons_logger.info(
|
|
1115
|
+
"Scons: Inherited LDFLAGS='%s' variable." % os.environ["LDFLAGS"]
|
|
1116
|
+
)
|
|
1117
|
+
env.Append(LINKFLAGS=os.environ["LDFLAGS"].split())
|
|
1118
|
+
|
|
1119
|
+
|
|
1120
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1121
|
+
# integrates with CPython, but also works on its own.
|
|
1122
|
+
#
|
|
1123
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
1124
|
+
# you may not use this file except in compliance with the License.
|
|
1125
|
+
# You may obtain a copy of the License at
|
|
1126
|
+
#
|
|
1127
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
1128
|
+
#
|
|
1129
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
1130
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
1131
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1132
|
+
# See the License for the specific language governing permissions and
|
|
1133
|
+
# limitations under the License.
|