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.

Files changed (995) hide show
  1. nuitka/Builtins.py +259 -0
  2. nuitka/BytecodeCaching.py +184 -0
  3. nuitka/Bytecodes.py +109 -0
  4. nuitka/CacheCleanup.py +54 -0
  5. nuitka/Constants.py +425 -0
  6. nuitka/Errors.py +93 -0
  7. nuitka/HardImportRegistry.py +408 -0
  8. nuitka/MainControl.py +1201 -0
  9. nuitka/ModuleRegistry.py +364 -0
  10. nuitka/OptionParsing.py +2473 -0
  11. nuitka/Options.py +2948 -0
  12. nuitka/OutputDirectories.py +201 -0
  13. nuitka/PostProcessing.py +551 -0
  14. nuitka/Progress.py +252 -0
  15. nuitka/PythonFlavors.py +426 -0
  16. nuitka/PythonOperators.py +146 -0
  17. nuitka/PythonVersions.py +513 -0
  18. nuitka/Serialization.py +291 -0
  19. nuitka/SourceCodeReferences.py +176 -0
  20. nuitka/Tracing.py +579 -0
  21. nuitka/TreeXML.py +141 -0
  22. nuitka/Variables.py +515 -0
  23. nuitka/Version.py +88 -0
  24. nuitka/__init__.py +19 -0
  25. nuitka/__main__.py +224 -0
  26. nuitka/__past__.py +217 -0
  27. nuitka/build/Backend.scons +1111 -0
  28. nuitka/build/CCompilerVersion.scons +281 -0
  29. nuitka/build/DataComposerInterface.py +116 -0
  30. nuitka/build/Offsets.scons +626 -0
  31. nuitka/build/Onefile.scons +564 -0
  32. nuitka/build/SconsCaching.py +451 -0
  33. nuitka/build/SconsCompilerSettings.py +1133 -0
  34. nuitka/build/SconsHacks.py +215 -0
  35. nuitka/build/SconsInterface.py +664 -0
  36. nuitka/build/SconsProgress.py +100 -0
  37. nuitka/build/SconsSpawn.py +436 -0
  38. nuitka/build/SconsUtils.py +939 -0
  39. nuitka/build/__init__.py +19 -0
  40. nuitka/build/include/nuitka/allocator.h +450 -0
  41. nuitka/build/include/nuitka/builtins.h +97 -0
  42. nuitka/build/include/nuitka/calling.h +123 -0
  43. nuitka/build/include/nuitka/checkers.h +39 -0
  44. nuitka/build/include/nuitka/checksum_tools.h +28 -0
  45. nuitka/build/include/nuitka/compiled_asyncgen.h +281 -0
  46. nuitka/build/include/nuitka/compiled_cell.h +64 -0
  47. nuitka/build/include/nuitka/compiled_coroutine.h +271 -0
  48. nuitka/build/include/nuitka/compiled_frame.h +502 -0
  49. nuitka/build/include/nuitka/compiled_function.h +170 -0
  50. nuitka/build/include/nuitka/compiled_generator.h +287 -0
  51. nuitka/build/include/nuitka/compiled_method.h +54 -0
  52. nuitka/build/include/nuitka/constants.h +251 -0
  53. nuitka/build/include/nuitka/constants_blob.h +34 -0
  54. nuitka/build/include/nuitka/debug_settings.h +60 -0
  55. nuitka/build/include/nuitka/environment_variables.h +30 -0
  56. nuitka/build/include/nuitka/environment_variables_system.h +51 -0
  57. nuitka/build/include/nuitka/exception_groups.h +167 -0
  58. nuitka/build/include/nuitka/exceptions.h +1458 -0
  59. nuitka/build/include/nuitka/filesystem_paths.h +117 -0
  60. nuitka/build/include/nuitka/freelists.h +92 -0
  61. nuitka/build/include/nuitka/hedley.h +1774 -0
  62. nuitka/build/include/nuitka/helper/attributes.h +90 -0
  63. nuitka/build/include/nuitka/helper/boolean.h +86 -0
  64. nuitka/build/include/nuitka/helper/bytearrays.h +34 -0
  65. nuitka/build/include/nuitka/helper/bytes.h +28 -0
  66. nuitka/build/include/nuitka/helper/calling_generated.h +132 -0
  67. nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
  68. nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
  69. nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
  70. nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
  71. nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
  72. nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
  73. nuitka/build/include/nuitka/helper/comparisons_eq.h +247 -0
  74. nuitka/build/include/nuitka/helper/comparisons_ge.h +197 -0
  75. nuitka/build/include/nuitka/helper/comparisons_gt.h +197 -0
  76. nuitka/build/include/nuitka/helper/comparisons_le.h +247 -0
  77. nuitka/build/include/nuitka/helper/comparisons_lt.h +247 -0
  78. nuitka/build/include/nuitka/helper/comparisons_ne.h +197 -0
  79. nuitka/build/include/nuitka/helper/complex.h +46 -0
  80. nuitka/build/include/nuitka/helper/dictionaries.h +481 -0
  81. nuitka/build/include/nuitka/helper/floats.h +32 -0
  82. nuitka/build/include/nuitka/helper/import_hard.h +121 -0
  83. nuitka/build/include/nuitka/helper/indexes.h +47 -0
  84. nuitka/build/include/nuitka/helper/ints.h +165 -0
  85. nuitka/build/include/nuitka/helper/iterators.h +376 -0
  86. nuitka/build/include/nuitka/helper/lists.h +94 -0
  87. nuitka/build/include/nuitka/helper/lists_generated.h +36 -0
  88. nuitka/build/include/nuitka/helper/mappings.h +39 -0
  89. nuitka/build/include/nuitka/helper/operations.h +114 -0
  90. nuitka/build/include/nuitka/helper/operations_binary_add.h +240 -0
  91. nuitka/build/include/nuitka/helper/operations_binary_bitand.h +108 -0
  92. nuitka/build/include/nuitka/helper/operations_binary_bitor.h +108 -0
  93. nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +108 -0
  94. nuitka/build/include/nuitka/helper/operations_binary_divmod.h +103 -0
  95. nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
  96. nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +103 -0
  97. nuitka/build/include/nuitka/helper/operations_binary_lshift.h +99 -0
  98. nuitka/build/include/nuitka/helper/operations_binary_matmult.h +60 -0
  99. nuitka/build/include/nuitka/helper/operations_binary_mod.h +304 -0
  100. nuitka/build/include/nuitka/helper/operations_binary_mult.h +247 -0
  101. nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +125 -0
  102. nuitka/build/include/nuitka/helper/operations_binary_pow.h +90 -0
  103. nuitka/build/include/nuitka/helper/operations_binary_rshift.h +99 -0
  104. nuitka/build/include/nuitka/helper/operations_binary_sub.h +117 -0
  105. nuitka/build/include/nuitka/helper/operations_binary_truediv.h +103 -0
  106. nuitka/build/include/nuitka/helper/operations_builtin_types.h +247 -0
  107. nuitka/build/include/nuitka/helper/operations_inplace_add.h +173 -0
  108. nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +76 -0
  109. nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +76 -0
  110. nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +76 -0
  111. nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +95 -0
  112. nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +62 -0
  113. nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +60 -0
  114. nuitka/build/include/nuitka/helper/operations_inplace_mod.h +218 -0
  115. nuitka/build/include/nuitka/helper/operations_inplace_mult.h +184 -0
  116. nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +115 -0
  117. nuitka/build/include/nuitka/helper/operations_inplace_pow.h +87 -0
  118. nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +62 -0
  119. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +102 -0
  120. nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +95 -0
  121. nuitka/build/include/nuitka/helper/raising.h +114 -0
  122. nuitka/build/include/nuitka/helper/rangeobjects.h +66 -0
  123. nuitka/build/include/nuitka/helper/richcomparisons.h +35 -0
  124. nuitka/build/include/nuitka/helper/sequences.h +33 -0
  125. nuitka/build/include/nuitka/helper/sets.h +25 -0
  126. nuitka/build/include/nuitka/helper/slices.h +314 -0
  127. nuitka/build/include/nuitka/helper/strings.h +30 -0
  128. nuitka/build/include/nuitka/helper/subscripts.h +390 -0
  129. nuitka/build/include/nuitka/helper/tuples.h +187 -0
  130. nuitka/build/include/nuitka/helpers.h +417 -0
  131. nuitka/build/include/nuitka/importing.h +149 -0
  132. nuitka/build/include/nuitka/incbin.h +402 -0
  133. nuitka/build/include/nuitka/jit_sources.h +25 -0
  134. nuitka/build/include/nuitka/prelude.h +626 -0
  135. nuitka/build/include/nuitka/printing.h +84 -0
  136. nuitka/build/include/nuitka/python_pgo.h +57 -0
  137. nuitka/build/include/nuitka/safe_string_ops.h +57 -0
  138. nuitka/build/include/nuitka/threading.h +142 -0
  139. nuitka/build/include/nuitka/tracing.h +82 -0
  140. nuitka/build/include/nuitka/type_aliases.h +30 -0
  141. nuitka/build/include/nuitka/unfreezing.h +91 -0
  142. nuitka/build/inline_copy/appdirs/LICENSE.txt +23 -0
  143. nuitka/build/inline_copy/appdirs/appdirs.py +611 -0
  144. nuitka/build/inline_copy/atomicwrites/LICENSE +19 -0
  145. nuitka/build/inline_copy/atomicwrites/atomicwrites.py +226 -0
  146. nuitka/build/inline_copy/bin/scons.py +58 -0
  147. nuitka/build/inline_copy/clcache/clcache/LICENSE +30 -0
  148. nuitka/build/inline_copy/clcache/clcache/__init__.py +4 -0
  149. nuitka/build/inline_copy/clcache/clcache/caching.py +2008 -0
  150. nuitka/build/inline_copy/colorama/LICENSE.txt +27 -0
  151. nuitka/build/inline_copy/colorama/colorama/__init__.py +6 -0
  152. nuitka/build/inline_copy/colorama/colorama/ansi.py +102 -0
  153. nuitka/build/inline_copy/colorama/colorama/ansitowin32.py +258 -0
  154. nuitka/build/inline_copy/colorama/colorama/initialise.py +80 -0
  155. nuitka/build/inline_copy/colorama/colorama/win32.py +152 -0
  156. nuitka/build/inline_copy/colorama/colorama/winterm.py +169 -0
  157. nuitka/build/inline_copy/glob2/LICENSE +27 -0
  158. nuitka/build/inline_copy/glob2/glob2/__init__.py +5 -0
  159. nuitka/build/inline_copy/glob2/glob2/compat.py +167 -0
  160. nuitka/build/inline_copy/glob2/glob2/fnmatch.py +141 -0
  161. nuitka/build/inline_copy/glob2/glob2/impl.py +216 -0
  162. nuitka/build/inline_copy/jinja2/LICENSE.rst +28 -0
  163. nuitka/build/inline_copy/jinja2/README.rst +2 -0
  164. nuitka/build/inline_copy/jinja2/jinja2/__init__.py +72 -0
  165. nuitka/build/inline_copy/jinja2/jinja2/_compat.py +105 -0
  166. nuitka/build/inline_copy/jinja2/jinja2/_identifier.py +2 -0
  167. nuitka/build/inline_copy/jinja2/jinja2/bccache.py +361 -0
  168. nuitka/build/inline_copy/jinja2/jinja2/compiler.py +1721 -0
  169. nuitka/build/inline_copy/jinja2/jinja2/constants.py +32 -0
  170. nuitka/build/inline_copy/jinja2/jinja2/debug.py +378 -0
  171. nuitka/build/inline_copy/jinja2/jinja2/defaults.py +56 -0
  172. nuitka/build/inline_copy/jinja2/jinja2/environment.py +1276 -0
  173. nuitka/build/inline_copy/jinja2/jinja2/exceptions.py +146 -0
  174. nuitka/build/inline_copy/jinja2/jinja2/ext.py +627 -0
  175. nuitka/build/inline_copy/jinja2/jinja2/filters.py +1190 -0
  176. nuitka/build/inline_copy/jinja2/jinja2/idtracking.py +286 -0
  177. nuitka/build/inline_copy/jinja2/jinja2/lexer.py +739 -0
  178. nuitka/build/inline_copy/jinja2/jinja2/loaders.py +483 -0
  179. nuitka/build/inline_copy/jinja2/jinja2/meta.py +106 -0
  180. nuitka/build/inline_copy/jinja2/jinja2/nativetypes.py +220 -0
  181. nuitka/build/inline_copy/jinja2/jinja2/nodes.py +999 -0
  182. nuitka/build/inline_copy/jinja2/jinja2/optimizer.py +49 -0
  183. nuitka/build/inline_copy/jinja2/jinja2/parser.py +903 -0
  184. nuitka/build/inline_copy/jinja2/jinja2/runtime.py +808 -0
  185. nuitka/build/inline_copy/jinja2/jinja2/sandbox.py +488 -0
  186. nuitka/build/inline_copy/jinja2/jinja2/tests.py +174 -0
  187. nuitka/build/inline_copy/jinja2/jinja2/utils.py +642 -0
  188. nuitka/build/inline_copy/jinja2/jinja2/visitor.py +87 -0
  189. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Action.py +1475 -0
  190. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Builder.py +905 -0
  191. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/CacheDir.py +314 -0
  192. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Conftest.py +805 -0
  193. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Debug.py +251 -0
  194. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Defaults.py +646 -0
  195. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Environment.py +2561 -0
  196. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/EnvironmentValues.py +119 -0
  197. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Errors.py +222 -0
  198. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Executor.py +660 -0
  199. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Job.py +439 -0
  200. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Memoize.py +242 -0
  201. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Alias.py +176 -0
  202. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/FS.py +3861 -0
  203. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/Python.py +195 -0
  204. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Node/__init__.py +1784 -0
  205. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/PathList.py +224 -0
  206. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/__init__.py +341 -0
  207. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/aix.py +81 -0
  208. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/cygwin.py +61 -0
  209. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/darwin.py +70 -0
  210. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/hpux.py +45 -0
  211. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/irix.py +41 -0
  212. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/mingw.py +33 -0
  213. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/os2.py +55 -0
  214. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/posix.py +124 -0
  215. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/sunos.py +47 -0
  216. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/virtualenv.py +115 -0
  217. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Platform/win32.py +429 -0
  218. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConf.py +1119 -0
  219. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/SConsign.py +453 -0
  220. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/C.py +226 -0
  221. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Dir.py +131 -0
  222. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/Prog.py +114 -0
  223. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/RC.py +57 -0
  224. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Scanner/__init__.py +436 -0
  225. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Interactive.py +372 -0
  226. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/Main.py +1469 -0
  227. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConsOptions.py +1071 -0
  228. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/SConscript.py +686 -0
  229. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Script/__init__.py +425 -0
  230. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Subst.py +979 -0
  231. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Taskmaster.py +1062 -0
  232. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/386asm.py +61 -0
  233. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/GettextCommon.py +429 -0
  234. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/__init__.py +52 -0
  235. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/arch.py +66 -0
  236. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/common.py +371 -0
  237. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/netframework.py +83 -0
  238. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/sdk.py +411 -0
  239. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vc.py +994 -0
  240. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/MSCommon/vs.py +608 -0
  241. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/PharLapCommon.py +116 -0
  242. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/__init__.py +882 -0
  243. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixc++.py +43 -0
  244. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcc.py +74 -0
  245. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixcxx.py +77 -0
  246. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/aixlink.py +78 -0
  247. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/applelink.py +209 -0
  248. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ar.py +63 -0
  249. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/as.py +49 -0
  250. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/asm.py +78 -0
  251. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/bcc32.py +81 -0
  252. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/c++.py +44 -0
  253. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cc.py +105 -0
  254. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clang.py +91 -0
  255. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangCommon/__init__.py +18 -0
  256. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/clangxx.py +99 -0
  257. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cxx.py +95 -0
  258. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/cyglink.py +212 -0
  259. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/default.py +50 -0
  260. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/filesystem.py +98 -0
  261. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/g++.py +45 -0
  262. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gas.py +56 -0
  263. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gcc.py +110 -0
  264. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gettext_tool.py +69 -0
  265. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gnulink.py +70 -0
  266. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/gxx.py +78 -0
  267. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpc++.py +45 -0
  268. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcc.py +53 -0
  269. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hpcxx.py +88 -0
  270. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/hplink.py +72 -0
  271. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icc.py +59 -0
  272. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/icl.py +52 -0
  273. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink.py +55 -0
  274. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/ilink32.py +60 -0
  275. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/install.py +510 -0
  276. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/intelc.py +617 -0
  277. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/link.py +72 -0
  278. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/LoadableModule.py +131 -0
  279. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/SharedLibrary.py +218 -0
  280. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkCommon/__init__.py +171 -0
  281. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/linkloc.py +112 -0
  282. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/m4.py +63 -0
  283. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/masm.py +77 -0
  284. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mingw.py +232 -0
  285. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgfmt.py +132 -0
  286. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msginit.py +137 -0
  287. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msgmerge.py +125 -0
  288. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslib.py +73 -0
  289. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mslink.py +339 -0
  290. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mssdk.py +50 -0
  291. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvc.py +325 -0
  292. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/msvs.py +2116 -0
  293. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwcc.py +207 -0
  294. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/mwld.py +108 -0
  295. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/nasm.py +72 -0
  296. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rmic.py +139 -0
  297. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/rpcgen.py +70 -0
  298. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgiar.py +68 -0
  299. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgic++.py +43 -0
  300. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicc.py +53 -0
  301. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgicxx.py +61 -0
  302. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sgilink.py +59 -0
  303. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunar.py +64 -0
  304. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunc++.py +45 -0
  305. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncc.py +58 -0
  306. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/suncxx.py +153 -0
  307. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/sunlink.py +79 -0
  308. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tar.py +73 -0
  309. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/textfile.py +198 -0
  310. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/tlib.py +53 -0
  311. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/wix.py +104 -0
  312. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/xgettext.py +337 -0
  313. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Tool/zip.py +120 -0
  314. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Util.py +2134 -0
  315. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/ConfigureCache.py +171 -0
  316. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/__init__.py +0 -0
  317. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Utilities/sconsign.py +494 -0
  318. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/BoolVariable.py +96 -0
  319. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/EnumVariable.py +110 -0
  320. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +152 -0
  321. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PackageVariable.py +107 -0
  322. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/PathVariable.py +158 -0
  323. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/__init__.py +334 -0
  324. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Warnings.py +238 -0
  325. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/__init__.py +9 -0
  326. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/__init__.py +104 -0
  327. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/_scons_dbm.py +42 -0
  328. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/compat/win32.py +101 -0
  329. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/cpp.py +640 -0
  330. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/dblite.py +295 -0
  331. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/exitfuncs.py +59 -0
  332. nuitka/build/inline_copy/markupsafe/LICENSE.rst +28 -0
  333. nuitka/build/inline_copy/markupsafe/markupsafe/__init__.py +327 -0
  334. nuitka/build/inline_copy/markupsafe/markupsafe/_compat.py +33 -0
  335. nuitka/build/inline_copy/markupsafe/markupsafe/_constants.py +264 -0
  336. nuitka/build/inline_copy/markupsafe/markupsafe/_native.py +69 -0
  337. nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
  338. nuitka/build/inline_copy/pefile/ordlookup/__init__.py +41 -0
  339. nuitka/build/inline_copy/pefile/ordlookup/oleaut32.py +400 -0
  340. nuitka/build/inline_copy/pefile/ordlookup/ws2_32.py +120 -0
  341. nuitka/build/inline_copy/pefile/pefile.py +8034 -0
  342. nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +3272 -0
  343. nuitka/build/inline_copy/pkg_resources/pkg_resources/py31compat.py +21 -0
  344. nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
  345. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
  346. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
  347. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
  348. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
  349. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
  350. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
  351. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
  352. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
  353. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
  354. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
  355. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
  356. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
  357. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
  358. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
  359. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
  360. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
  361. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
  362. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
  363. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
  364. nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
  365. nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
  366. nuitka/build/inline_copy/stubgen/six.py +998 -0
  367. nuitka/build/inline_copy/stubgen/stubgen.py +484 -0
  368. nuitka/build/inline_copy/tqdm/tqdm/__init__.py +40 -0
  369. nuitka/build/inline_copy/tqdm/tqdm/_main.py +9 -0
  370. nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +97 -0
  371. nuitka/build/inline_copy/tqdm/tqdm/_tqdm.py +9 -0
  372. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_notebook.py +9 -0
  373. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_pandas.py +24 -0
  374. nuitka/build/inline_copy/tqdm/tqdm/_utils.py +12 -0
  375. nuitka/build/inline_copy/tqdm/tqdm/auto.py +44 -0
  376. nuitka/build/inline_copy/tqdm/tqdm/autonotebook.py +28 -0
  377. nuitka/build/inline_copy/tqdm/tqdm/dask.py +46 -0
  378. nuitka/build/inline_copy/tqdm/tqdm/notebook.py +316 -0
  379. nuitka/build/inline_copy/tqdm/tqdm/std.py +1524 -0
  380. nuitka/build/inline_copy/tqdm/tqdm/tk.py +207 -0
  381. nuitka/build/inline_copy/tqdm/tqdm/utils.py +351 -0
  382. nuitka/build/inline_copy/tqdm/tqdm/version.py +2 -0
  383. nuitka/build/inline_copy/yaml/LICENSE +20 -0
  384. nuitka/build/inline_copy/yaml/yaml/__init__.py +427 -0
  385. nuitka/build/inline_copy/yaml/yaml/composer.py +139 -0
  386. nuitka/build/inline_copy/yaml/yaml/constructor.py +748 -0
  387. nuitka/build/inline_copy/yaml/yaml/cyaml.py +101 -0
  388. nuitka/build/inline_copy/yaml/yaml/dumper.py +62 -0
  389. nuitka/build/inline_copy/yaml/yaml/emitter.py +1137 -0
  390. nuitka/build/inline_copy/yaml/yaml/error.py +75 -0
  391. nuitka/build/inline_copy/yaml/yaml/events.py +86 -0
  392. nuitka/build/inline_copy/yaml/yaml/loader.py +63 -0
  393. nuitka/build/inline_copy/yaml/yaml/nodes.py +49 -0
  394. nuitka/build/inline_copy/yaml/yaml/parser.py +589 -0
  395. nuitka/build/inline_copy/yaml/yaml/reader.py +185 -0
  396. nuitka/build/inline_copy/yaml/yaml/representer.py +389 -0
  397. nuitka/build/inline_copy/yaml/yaml/resolver.py +227 -0
  398. nuitka/build/inline_copy/yaml/yaml/scanner.py +1435 -0
  399. nuitka/build/inline_copy/yaml/yaml/serializer.py +111 -0
  400. nuitka/build/inline_copy/yaml/yaml/tokens.py +104 -0
  401. nuitka/build/inline_copy/zlib/LICENSE +22 -0
  402. nuitka/build/inline_copy/zlib/crc32.c +1049 -0
  403. nuitka/build/inline_copy/zlib/crc32.h +9446 -0
  404. nuitka/build/inline_copy/zlib/zconf.h +551 -0
  405. nuitka/build/inline_copy/zlib/zlib.h +1938 -0
  406. nuitka/build/inline_copy/zlib/zutil.h +275 -0
  407. nuitka/build/inline_copy/zstd/LICENSE.txt +30 -0
  408. nuitka/build/inline_copy/zstd/common/bitstream.h +463 -0
  409. nuitka/build/inline_copy/zstd/common/compiler.h +288 -0
  410. nuitka/build/inline_copy/zstd/common/cpu.h +213 -0
  411. nuitka/build/inline_copy/zstd/common/debug.h +107 -0
  412. nuitka/build/inline_copy/zstd/common/entropy_common.c +360 -0
  413. nuitka/build/inline_copy/zstd/common/error_private.c +56 -0
  414. nuitka/build/inline_copy/zstd/common/error_private.h +80 -0
  415. nuitka/build/inline_copy/zstd/common/fse.h +715 -0
  416. nuitka/build/inline_copy/zstd/common/fse_decompress.c +393 -0
  417. nuitka/build/inline_copy/zstd/common/huf.h +361 -0
  418. nuitka/build/inline_copy/zstd/common/mem.h +426 -0
  419. nuitka/build/inline_copy/zstd/common/xxhash.c +826 -0
  420. nuitka/build/inline_copy/zstd/common/xxhash.h +285 -0
  421. nuitka/build/inline_copy/zstd/common/zstd_common.c +83 -0
  422. nuitka/build/inline_copy/zstd/common/zstd_deps.h +111 -0
  423. nuitka/build/inline_copy/zstd/common/zstd_errors.h +95 -0
  424. nuitka/build/inline_copy/zstd/common/zstd_internal.h +478 -0
  425. nuitka/build/inline_copy/zstd/decompress/huf_decompress.c +1350 -0
  426. nuitka/build/inline_copy/zstd/decompress/zstd_ddict.c +244 -0
  427. nuitka/build/inline_copy/zstd/decompress/zstd_ddict.h +44 -0
  428. nuitka/build/inline_copy/zstd/decompress/zstd_decompress.c +1930 -0
  429. nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.c +1540 -0
  430. nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.h +62 -0
  431. nuitka/build/inline_copy/zstd/decompress/zstd_decompress_internal.h +190 -0
  432. nuitka/build/inline_copy/zstd/zstd.h +2391 -0
  433. nuitka/build/static_src/CompiledAsyncgenType.c +2211 -0
  434. nuitka/build/static_src/CompiledCellType.c +300 -0
  435. nuitka/build/static_src/CompiledCodeHelpers.c +2160 -0
  436. nuitka/build/static_src/CompiledCoroutineType.c +1946 -0
  437. nuitka/build/static_src/CompiledFrameType.c +1337 -0
  438. nuitka/build/static_src/CompiledFunctionType.c +3320 -0
  439. nuitka/build/static_src/CompiledGeneratorType.c +1997 -0
  440. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +2117 -0
  441. nuitka/build/static_src/CompiledMethodType.c +614 -0
  442. nuitka/build/static_src/GenerateHeadersMain.c +30 -0
  443. nuitka/build/static_src/HelpersAllocator.c +939 -0
  444. nuitka/build/static_src/HelpersAttributes.c +1241 -0
  445. nuitka/build/static_src/HelpersBuiltin.c +901 -0
  446. nuitka/build/static_src/HelpersBuiltinTypeMethods.c +3594 -0
  447. nuitka/build/static_src/HelpersBytes.c +107 -0
  448. nuitka/build/static_src/HelpersCalling.c +397 -0
  449. nuitka/build/static_src/HelpersCallingGenerated.c +14361 -0
  450. nuitka/build/static_src/HelpersChecksumTools.c +59 -0
  451. nuitka/build/static_src/HelpersClasses.c +91 -0
  452. nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
  453. nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
  454. nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
  455. nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
  456. nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
  457. nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
  458. nuitka/build/static_src/HelpersComparisonEq.c +12070 -0
  459. nuitka/build/static_src/HelpersComparisonEqUtils.c +169 -0
  460. nuitka/build/static_src/HelpersComparisonGe.c +11871 -0
  461. nuitka/build/static_src/HelpersComparisonGt.c +11855 -0
  462. nuitka/build/static_src/HelpersComparisonLe.c +11957 -0
  463. nuitka/build/static_src/HelpersComparisonLt.c +11941 -0
  464. nuitka/build/static_src/HelpersComparisonNe.c +11979 -0
  465. nuitka/build/static_src/HelpersConsole.c +124 -0
  466. nuitka/build/static_src/HelpersConstantsBlob.c +1487 -0
  467. nuitka/build/static_src/HelpersDeepcopy.c +636 -0
  468. nuitka/build/static_src/HelpersDictionaries.c +1739 -0
  469. nuitka/build/static_src/HelpersDictionariesGenerated.c +738 -0
  470. nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
  471. nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
  472. nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +97 -0
  473. nuitka/build/static_src/HelpersExceptions.c +298 -0
  474. nuitka/build/static_src/HelpersFiles.c +353 -0
  475. nuitka/build/static_src/HelpersFilesystemPaths.c +1322 -0
  476. nuitka/build/static_src/HelpersFloats.c +92 -0
  477. nuitka/build/static_src/HelpersHeapStorage.c +68 -0
  478. nuitka/build/static_src/HelpersImport.c +506 -0
  479. nuitka/build/static_src/HelpersImportHard.c +526 -0
  480. nuitka/build/static_src/HelpersJitSources.c +48 -0
  481. nuitka/build/static_src/HelpersLists.c +899 -0
  482. nuitka/build/static_src/HelpersListsGenerated.c +564 -0
  483. nuitka/build/static_src/HelpersMappings.c +46 -0
  484. nuitka/build/static_src/HelpersMatching.c +192 -0
  485. nuitka/build/static_src/HelpersOperationBinaryAdd.c +6477 -0
  486. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +703 -0
  487. nuitka/build/static_src/HelpersOperationBinaryBitand.c +2738 -0
  488. nuitka/build/static_src/HelpersOperationBinaryBitor.c +2738 -0
  489. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +2738 -0
  490. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +2406 -0
  491. nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +33 -0
  492. nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
  493. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +2422 -0
  494. nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +220 -0
  495. nuitka/build/static_src/HelpersOperationBinaryLshift.c +2846 -0
  496. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +453 -0
  497. nuitka/build/static_src/HelpersOperationBinaryMod.c +6549 -0
  498. nuitka/build/static_src/HelpersOperationBinaryMult.c +6438 -0
  499. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +125 -0
  500. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +2355 -0
  501. nuitka/build/static_src/HelpersOperationBinaryPow.c +2743 -0
  502. nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +26 -0
  503. nuitka/build/static_src/HelpersOperationBinaryRshift.c +2706 -0
  504. nuitka/build/static_src/HelpersOperationBinarySub.c +2649 -0
  505. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +2415 -0
  506. nuitka/build/static_src/HelpersOperationInplaceAdd.c +5211 -0
  507. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +144 -0
  508. nuitka/build/static_src/HelpersOperationInplaceBitand.c +1826 -0
  509. nuitka/build/static_src/HelpersOperationInplaceBitor.c +1826 -0
  510. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1826 -0
  511. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +2605 -0
  512. nuitka/build/static_src/HelpersOperationInplaceLshift.c +1594 -0
  513. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +603 -0
  514. nuitka/build/static_src/HelpersOperationInplaceMod.c +4762 -0
  515. nuitka/build/static_src/HelpersOperationInplaceMult.c +4689 -0
  516. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +2553 -0
  517. nuitka/build/static_src/HelpersOperationInplacePow.c +2807 -0
  518. nuitka/build/static_src/HelpersOperationInplaceRshift.c +1534 -0
  519. nuitka/build/static_src/HelpersOperationInplaceSub.c +2894 -0
  520. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +2612 -0
  521. nuitka/build/static_src/HelpersProfiling.c +104 -0
  522. nuitka/build/static_src/HelpersPythonPgo.c +113 -0
  523. nuitka/build/static_src/HelpersRaising.c +447 -0
  524. nuitka/build/static_src/HelpersSafeStrings.c +185 -0
  525. nuitka/build/static_src/HelpersSequences.c +134 -0
  526. nuitka/build/static_src/HelpersSlices.c +73 -0
  527. nuitka/build/static_src/HelpersStrings.c +998 -0
  528. nuitka/build/static_src/HelpersTuples.c +148 -0
  529. nuitka/build/static_src/HelpersTypes.c +329 -0
  530. nuitka/build/static_src/InspectPatcher.c +439 -0
  531. nuitka/build/static_src/MainProgram.c +2060 -0
  532. nuitka/build/static_src/MetaPathBasedLoader.c +2290 -0
  533. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +125 -0
  534. nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +158 -0
  535. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +785 -0
  536. nuitka/build/static_src/OnefileBootstrap.c +1580 -0
  537. nuitka/build/static_src/OnefileSplashScreen.cpp +275 -0
  538. nuitka/code_generation/AsyncgenCodes.py +186 -0
  539. nuitka/code_generation/AttributeCodes.py +357 -0
  540. nuitka/code_generation/BinaryOperationHelperDefinitions.py +720 -0
  541. nuitka/code_generation/BranchCodes.py +67 -0
  542. nuitka/code_generation/BuiltinCodes.py +529 -0
  543. nuitka/code_generation/CallCodes.py +1186 -0
  544. nuitka/code_generation/ClassCodes.py +156 -0
  545. nuitka/code_generation/CodeGeneration.py +1078 -0
  546. nuitka/code_generation/CodeHelperSelection.py +81 -0
  547. nuitka/code_generation/CodeHelpers.py +455 -0
  548. nuitka/code_generation/CodeObjectCodes.py +165 -0
  549. nuitka/code_generation/ComparisonCodes.py +569 -0
  550. nuitka/code_generation/ComparisonHelperDefinitions.py +146 -0
  551. nuitka/code_generation/ConditionalCodes.py +236 -0
  552. nuitka/code_generation/ConstantCodes.py +243 -0
  553. nuitka/code_generation/Contexts.py +1248 -0
  554. nuitka/code_generation/CoroutineCodes.py +253 -0
  555. nuitka/code_generation/CtypesCodes.py +46 -0
  556. nuitka/code_generation/DictCodes.py +918 -0
  557. nuitka/code_generation/Emission.py +75 -0
  558. nuitka/code_generation/ErrorCodes.py +281 -0
  559. nuitka/code_generation/EvalCodes.py +444 -0
  560. nuitka/code_generation/ExceptionCodes.py +337 -0
  561. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +227 -0
  562. nuitka/code_generation/ExpressionCodes.py +61 -0
  563. nuitka/code_generation/FrameCodes.py +518 -0
  564. nuitka/code_generation/FunctionCodes.py +858 -0
  565. nuitka/code_generation/GeneratorCodes.py +218 -0
  566. nuitka/code_generation/GlobalConstants.py +249 -0
  567. nuitka/code_generation/GlobalsLocalsCodes.py +211 -0
  568. nuitka/code_generation/IdCodes.py +53 -0
  569. nuitka/code_generation/ImportCodes.py +468 -0
  570. nuitka/code_generation/Indentation.py +45 -0
  571. nuitka/code_generation/IndexCodes.py +50 -0
  572. nuitka/code_generation/InjectCCodes.py +28 -0
  573. nuitka/code_generation/IntegerCodes.py +110 -0
  574. nuitka/code_generation/IteratorCodes.py +378 -0
  575. nuitka/code_generation/JitCodes.py +44 -0
  576. nuitka/code_generation/LabelCodes.py +68 -0
  577. nuitka/code_generation/LineNumberCodes.py +91 -0
  578. nuitka/code_generation/ListCodes.py +502 -0
  579. nuitka/code_generation/LoaderCodes.py +193 -0
  580. nuitka/code_generation/LocalsDictCodes.py +359 -0
  581. nuitka/code_generation/LoopCodes.py +88 -0
  582. nuitka/code_generation/MatchCodes.py +67 -0
  583. nuitka/code_generation/ModuleCodes.py +247 -0
  584. nuitka/code_generation/Namify.py +260 -0
  585. nuitka/code_generation/NetworkxCodes.py +51 -0
  586. nuitka/code_generation/OperationCodes.py +398 -0
  587. nuitka/code_generation/PackageResourceCodes.py +986 -0
  588. nuitka/code_generation/PrintCodes.py +93 -0
  589. nuitka/code_generation/PythonAPICodes.py +215 -0
  590. nuitka/code_generation/RaisingCodes.py +481 -0
  591. nuitka/code_generation/Reports.py +115 -0
  592. nuitka/code_generation/ReturnCodes.py +143 -0
  593. nuitka/code_generation/SetCodes.py +196 -0
  594. nuitka/code_generation/SliceCodes.py +465 -0
  595. nuitka/code_generation/StringCodes.py +303 -0
  596. nuitka/code_generation/SubscriptCodes.py +263 -0
  597. nuitka/code_generation/TensorflowCodes.py +54 -0
  598. nuitka/code_generation/TryCodes.py +326 -0
  599. nuitka/code_generation/TupleCodes.py +115 -0
  600. nuitka/code_generation/TypeAliasCodes.py +120 -0
  601. nuitka/code_generation/VariableCodes.py +519 -0
  602. nuitka/code_generation/VariableDeclarations.py +279 -0
  603. nuitka/code_generation/YieldCodes.py +253 -0
  604. nuitka/code_generation/__init__.py +19 -0
  605. nuitka/code_generation/c_types/CTypeBases.py +177 -0
  606. nuitka/code_generation/c_types/CTypeBooleans.py +104 -0
  607. nuitka/code_generation/c_types/CTypeCFloats.py +57 -0
  608. nuitka/code_generation/c_types/CTypeCLongs.py +45 -0
  609. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +109 -0
  610. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +150 -0
  611. nuitka/code_generation/c_types/CTypeNuitkaInts.py +200 -0
  612. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +107 -0
  613. nuitka/code_generation/c_types/CTypePyObjectPointers.py +572 -0
  614. nuitka/code_generation/c_types/CTypeVoids.py +92 -0
  615. nuitka/code_generation/c_types/__init__.py +19 -0
  616. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +106 -0
  617. nuitka/code_generation/templates/CodeTemplatesConstants.py +296 -0
  618. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +109 -0
  619. nuitka/code_generation/templates/CodeTemplatesExceptions.py +84 -0
  620. nuitka/code_generation/templates/CodeTemplatesFrames.py +235 -0
  621. nuitka/code_generation/templates/CodeTemplatesFunction.py +117 -0
  622. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +130 -0
  623. nuitka/code_generation/templates/CodeTemplatesIterators.py +40 -0
  624. nuitka/code_generation/templates/CodeTemplatesLoader.py +180 -0
  625. nuitka/code_generation/templates/CodeTemplatesModules.py +710 -0
  626. nuitka/code_generation/templates/CodeTemplatesVariables.py +388 -0
  627. nuitka/code_generation/templates/TemplateDebugWrapper.py +80 -0
  628. nuitka/code_generation/templates/__init__.py +19 -0
  629. nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +321 -0
  630. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +143 -0
  631. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +677 -0
  632. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +165 -0
  633. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +38 -0
  634. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +41 -0
  635. nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +53 -0
  636. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +364 -0
  637. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +37 -0
  638. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +53 -0
  639. nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +20 -0
  640. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +148 -0
  641. nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
  642. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +352 -0
  643. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +115 -0
  644. nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
  645. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +31 -0
  646. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +32 -0
  647. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +112 -0
  648. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +157 -0
  649. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +115 -0
  650. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +99 -0
  651. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +115 -0
  652. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +281 -0
  653. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +420 -0
  654. nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +51 -0
  655. nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +71 -0
  656. nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +327 -0
  657. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +411 -0
  658. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +59 -0
  659. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +229 -0
  660. nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +47 -0
  661. nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +55 -0
  662. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +58 -0
  663. nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +62 -0
  664. nuitka/containers/Namedtuples.py +51 -0
  665. nuitka/containers/OrderedDicts.py +191 -0
  666. nuitka/containers/OrderedSets.py +123 -0
  667. nuitka/containers/OrderedSetsFallback.py +139 -0
  668. nuitka/containers/__init__.py +19 -0
  669. nuitka/distutils/Build.py +76 -0
  670. nuitka/distutils/DistutilCommands.py +438 -0
  671. nuitka/distutils/__init__.py +19 -0
  672. nuitka/finalizations/Finalization.py +35 -0
  673. nuitka/finalizations/FinalizeMarkups.py +136 -0
  674. nuitka/finalizations/__init__.py +19 -0
  675. nuitka/freezer/DependsExe.py +257 -0
  676. nuitka/freezer/DllDependenciesCommon.py +97 -0
  677. nuitka/freezer/DllDependenciesMacOS.py +444 -0
  678. nuitka/freezer/DllDependenciesPosix.py +242 -0
  679. nuitka/freezer/DllDependenciesWin32.py +315 -0
  680. nuitka/freezer/ImportDetection.py +359 -0
  681. nuitka/freezer/IncludedDataFiles.py +689 -0
  682. nuitka/freezer/IncludedEntryPoints.py +376 -0
  683. nuitka/freezer/Onefile.py +296 -0
  684. nuitka/freezer/Standalone.py +520 -0
  685. nuitka/freezer/__init__.py +19 -0
  686. nuitka/importing/IgnoreListing.py +449 -0
  687. nuitka/importing/ImportCache.py +95 -0
  688. nuitka/importing/ImportResolving.py +186 -0
  689. nuitka/importing/Importing.py +1200 -0
  690. nuitka/importing/PreloadedPackages.py +164 -0
  691. nuitka/importing/Recursion.py +611 -0
  692. nuitka/importing/StandardLibrary.py +429 -0
  693. nuitka/importing/__init__.py +19 -0
  694. nuitka/nodes/AsyncgenNodes.py +107 -0
  695. nuitka/nodes/AttributeLookupNodes.py +124 -0
  696. nuitka/nodes/AttributeNodes.py +386 -0
  697. nuitka/nodes/AttributeNodesGenerated.py +10734 -0
  698. nuitka/nodes/BuiltinAllNodes.py +115 -0
  699. nuitka/nodes/BuiltinAnyNodes.py +124 -0
  700. nuitka/nodes/BuiltinComplexNodes.py +83 -0
  701. nuitka/nodes/BuiltinDecodingNodes.py +52 -0
  702. nuitka/nodes/BuiltinDecoratorNodes.py +85 -0
  703. nuitka/nodes/BuiltinDictNodes.py +140 -0
  704. nuitka/nodes/BuiltinFormatNodes.py +159 -0
  705. nuitka/nodes/BuiltinHashNodes.py +63 -0
  706. nuitka/nodes/BuiltinInputNodes.py +39 -0
  707. nuitka/nodes/BuiltinIntegerNodes.py +170 -0
  708. nuitka/nodes/BuiltinIteratorNodes.py +391 -0
  709. nuitka/nodes/BuiltinLenNodes.py +61 -0
  710. nuitka/nodes/BuiltinNextNodes.py +111 -0
  711. nuitka/nodes/BuiltinOpenNodes.py +148 -0
  712. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +7367 -0
  713. nuitka/nodes/BuiltinRangeNodes.py +690 -0
  714. nuitka/nodes/BuiltinRefNodes.py +314 -0
  715. nuitka/nodes/BuiltinSumNodes.py +104 -0
  716. nuitka/nodes/BuiltinTypeNodes.py +454 -0
  717. nuitka/nodes/BuiltinVarsNodes.py +44 -0
  718. nuitka/nodes/BytesNodes.py +829 -0
  719. nuitka/nodes/CallNodes.py +217 -0
  720. nuitka/nodes/Checkers.py +55 -0
  721. nuitka/nodes/ChildrenHavingMixins.py +21576 -0
  722. nuitka/nodes/ClassNodes.py +286 -0
  723. nuitka/nodes/CodeObjectSpecs.py +230 -0
  724. nuitka/nodes/ComparisonNodes.py +687 -0
  725. nuitka/nodes/ConditionalNodes.py +884 -0
  726. nuitka/nodes/ConstantRefNodes.py +1717 -0
  727. nuitka/nodes/ContainerMakingNodes.py +408 -0
  728. nuitka/nodes/ContainerOperationNodes.py +87 -0
  729. nuitka/nodes/CoroutineNodes.py +144 -0
  730. nuitka/nodes/CtypesNodes.py +51 -0
  731. nuitka/nodes/DictionaryNodes.py +1513 -0
  732. nuitka/nodes/ExceptionNodes.py +393 -0
  733. nuitka/nodes/ExecEvalNodes.py +229 -0
  734. nuitka/nodes/ExpressionBases.py +1301 -0
  735. nuitka/nodes/ExpressionBasesGenerated.py +2103 -0
  736. nuitka/nodes/ExpressionShapeMixins.py +886 -0
  737. nuitka/nodes/FrameNodes.py +413 -0
  738. nuitka/nodes/FunctionAttributeNodes.py +102 -0
  739. nuitka/nodes/FunctionNodes.py +1303 -0
  740. nuitka/nodes/FutureSpecs.py +224 -0
  741. nuitka/nodes/GeneratorNodes.py +201 -0
  742. nuitka/nodes/GlobalsLocalsNodes.py +209 -0
  743. nuitka/nodes/HardImportNodesGenerated.py +3599 -0
  744. nuitka/nodes/ImportHardNodes.py +185 -0
  745. nuitka/nodes/ImportNodes.py +1366 -0
  746. nuitka/nodes/IndicatorMixins.py +79 -0
  747. nuitka/nodes/InjectCNodes.py +51 -0
  748. nuitka/nodes/IterationHandles.py +407 -0
  749. nuitka/nodes/KeyValuePairNodes.py +378 -0
  750. nuitka/nodes/ListOperationNodes.py +525 -0
  751. nuitka/nodes/LocalsDictNodes.py +717 -0
  752. nuitka/nodes/LocalsScopes.py +505 -0
  753. nuitka/nodes/LoopNodes.py +445 -0
  754. nuitka/nodes/MatchNodes.py +60 -0
  755. nuitka/nodes/ModuleAttributeNodes.py +180 -0
  756. nuitka/nodes/ModuleNodes.py +1137 -0
  757. nuitka/nodes/NetworkxNodes.py +45 -0
  758. nuitka/nodes/NodeBases.py +890 -0
  759. nuitka/nodes/NodeMakingHelpers.py +481 -0
  760. nuitka/nodes/NodeMetaClasses.py +172 -0
  761. nuitka/nodes/OperatorNodes.py +944 -0
  762. nuitka/nodes/OperatorNodesUnary.py +403 -0
  763. nuitka/nodes/OsSysNodes.py +215 -0
  764. nuitka/nodes/OutlineNodes.py +372 -0
  765. nuitka/nodes/PackageMetadataNodes.py +982 -0
  766. nuitka/nodes/PackageResourceNodes.py +424 -0
  767. nuitka/nodes/PrintNodes.py +105 -0
  768. nuitka/nodes/ReturnNodes.py +255 -0
  769. nuitka/nodes/SideEffectNodes.py +139 -0
  770. nuitka/nodes/SliceNodes.py +386 -0
  771. nuitka/nodes/StatementBasesGenerated.py +3419 -0
  772. nuitka/nodes/StatementNodes.py +316 -0
  773. nuitka/nodes/StrNodes.py +919 -0
  774. nuitka/nodes/StringConcatenationNodes.py +103 -0
  775. nuitka/nodes/SubscriptNodes.py +245 -0
  776. nuitka/nodes/TensorflowNodes.py +38 -0
  777. nuitka/nodes/TryNodes.py +519 -0
  778. nuitka/nodes/TypeMatchNodes.py +65 -0
  779. nuitka/nodes/TypeNodes.py +390 -0
  780. nuitka/nodes/VariableAssignNodes.py +1177 -0
  781. nuitka/nodes/VariableDelNodes.py +320 -0
  782. nuitka/nodes/VariableNameNodes.py +153 -0
  783. nuitka/nodes/VariableRefNodes.py +895 -0
  784. nuitka/nodes/VariableReleaseNodes.py +153 -0
  785. nuitka/nodes/YieldNodes.py +121 -0
  786. nuitka/nodes/__init__.py +19 -0
  787. nuitka/nodes/shapes/BuiltinTypeShapes.py +4290 -0
  788. nuitka/nodes/shapes/ControlFlowDescriptions.py +199 -0
  789. nuitka/nodes/shapes/IteratorShapes.py +71 -0
  790. nuitka/nodes/shapes/ShapeMixins.py +255 -0
  791. nuitka/nodes/shapes/StandardShapes.py +1384 -0
  792. nuitka/nodes/shapes/__init__.py +19 -0
  793. nuitka/optimizations/BytecodeDemotion.py +105 -0
  794. nuitka/optimizations/FunctionInlining.py +110 -0
  795. nuitka/optimizations/Graphs.py +70 -0
  796. nuitka/optimizations/Optimization.py +363 -0
  797. nuitka/optimizations/OptimizeBuiltinCalls.py +1582 -0
  798. nuitka/optimizations/Tags.py +76 -0
  799. nuitka/optimizations/TraceCollections.py +1257 -0
  800. nuitka/optimizations/ValueTraces.py +980 -0
  801. nuitka/optimizations/__init__.py +19 -0
  802. nuitka/pgo/PGO.py +160 -0
  803. nuitka/pgo/__init__.py +19 -0
  804. nuitka/plugins/PluginBase.py +1924 -0
  805. nuitka/plugins/Plugins.py +2007 -0
  806. nuitka/plugins/YamlPluginBase.py +121 -0
  807. nuitka/plugins/__init__.py +19 -0
  808. nuitka/plugins/standard/AntiBloatPlugin.py +1024 -0
  809. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +95 -0
  810. nuitka/plugins/standard/DataFilesPlugin.py +311 -0
  811. nuitka/plugins/standard/DelvewheelPlugin.py +150 -0
  812. nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
  813. nuitka/plugins/standard/DillPlugin/cloudpickle-postLoad.py +67 -0
  814. nuitka/plugins/standard/DillPlugin/dill-postLoad.py +223 -0
  815. nuitka/plugins/standard/DillPlugin.py +137 -0
  816. nuitka/plugins/standard/DllFilesPlugin.py +527 -0
  817. nuitka/plugins/standard/EnumPlugin.py +64 -0
  818. nuitka/plugins/standard/EventletPlugin.py +57 -0
  819. nuitka/plugins/standard/GeventPlugin.py +64 -0
  820. nuitka/plugins/standard/GiPlugin.py +118 -0
  821. nuitka/plugins/standard/GlfwPlugin.py +138 -0
  822. nuitka/plugins/standard/ImplicitImports.py +845 -0
  823. nuitka/plugins/standard/KivyPlugin.py +141 -0
  824. nuitka/plugins/standard/MatplotlibPlugin.py +256 -0
  825. nuitka/plugins/standard/MultiprocessingPlugin.py +199 -0
  826. nuitka/plugins/standard/NumpyPlugin.py +35 -0
  827. nuitka/plugins/standard/OptionsNannyPlugin.py +158 -0
  828. nuitka/plugins/standard/PbrPlugin.py +62 -0
  829. nuitka/plugins/standard/PkgResourcesPlugin.py +162 -0
  830. nuitka/plugins/standard/PlaywrightPlugin.py +179 -0
  831. nuitka/plugins/standard/PmwPlugin.py +248 -0
  832. nuitka/plugins/standard/PySidePyQtPlugin.py +1666 -0
  833. nuitka/plugins/standard/PywebViewPlugin.py +81 -0
  834. nuitka/plugins/standard/SpacyPlugin.py +137 -0
  835. nuitka/plugins/standard/TensorflowPlugin.py +35 -0
  836. nuitka/plugins/standard/TkinterPlugin.py +416 -0
  837. nuitka/plugins/standard/TorchPlugin.py +35 -0
  838. nuitka/plugins/standard/TransformersPlugin.py +121 -0
  839. nuitka/plugins/standard/TrioPlugin.py +33 -0
  840. nuitka/plugins/standard/UpxPlugin.py +174 -0
  841. nuitka/plugins/standard/__init__.py +19 -0
  842. nuitka/plugins/standard/standard.nuitka-package.config.yml +9313 -0
  843. nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +78 -0
  844. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +468 -0
  845. nuitka/reports/CompilationReportReader.py +83 -0
  846. nuitka/reports/LicenseReport.rst.j2 +41 -0
  847. nuitka/reports/Reports.py +961 -0
  848. nuitka/reports/__init__.py +19 -0
  849. nuitka/specs/BuiltinBytesOperationSpecs.py +180 -0
  850. nuitka/specs/BuiltinDictOperationSpecs.py +82 -0
  851. nuitka/specs/BuiltinListOperationSpecs.py +80 -0
  852. nuitka/specs/BuiltinParameterSpecs.py +831 -0
  853. nuitka/specs/BuiltinStrOperationSpecs.py +181 -0
  854. nuitka/specs/BuiltinTypeOperationSpecs.py +34 -0
  855. nuitka/specs/BuiltinUnicodeOperationSpecs.py +123 -0
  856. nuitka/specs/HardImportSpecs.py +236 -0
  857. nuitka/specs/ParameterSpecs.py +630 -0
  858. nuitka/specs/__init__.py +19 -0
  859. nuitka/tools/Basics.py +55 -0
  860. nuitka/tools/__init__.py +19 -0
  861. nuitka/tools/commercial/__init__.py +21 -0
  862. nuitka/tools/data_composer/DataComposer.py +593 -0
  863. nuitka/tools/data_composer/__init__.py +19 -0
  864. nuitka/tools/data_composer/__main__.py +41 -0
  865. nuitka/tools/environments/CreateEnvironment.py +69 -0
  866. nuitka/tools/environments/Virtualenv.py +158 -0
  867. nuitka/tools/environments/__init__.py +19 -0
  868. nuitka/tools/general/__init__.py +19 -0
  869. nuitka/tools/general/dll_report/__init__.py +19 -0
  870. nuitka/tools/general/dll_report/__main__.py +83 -0
  871. nuitka/tools/general/find_module/FindModuleCode.py +127 -0
  872. nuitka/tools/general/find_module/__init__.py +19 -0
  873. nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
  874. nuitka/tools/general/generate_header/__init__.py +19 -0
  875. nuitka/tools/onefile_compressor/OnefileCompressor.py +390 -0
  876. nuitka/tools/onefile_compressor/__init__.py +19 -0
  877. nuitka/tools/onefile_compressor/__main__.py +41 -0
  878. nuitka/tools/podman/Podman.py +55 -0
  879. nuitka/tools/podman/__init__.py +19 -0
  880. nuitka/tools/podman/__main__.py +425 -0
  881. nuitka/tools/profiler/__init__.py +19 -0
  882. nuitka/tools/profiler/__main__.py +93 -0
  883. nuitka/tools/scanning/DisplayDistributions.py +39 -0
  884. nuitka/tools/scanning/DisplayPackageDLLs.py +151 -0
  885. nuitka/tools/scanning/DisplayPackageData.py +73 -0
  886. nuitka/tools/scanning/__init__.py +19 -0
  887. nuitka/tools/specialize/CTypeDescriptions.py +1928 -0
  888. nuitka/tools/specialize/Common.py +380 -0
  889. nuitka/tools/specialize/SpecializeC.py +1483 -0
  890. nuitka/tools/specialize/SpecializePython.py +1151 -0
  891. nuitka/tools/specialize/__init__.py +19 -0
  892. nuitka/tools/testing/Common.py +2007 -0
  893. nuitka/tools/testing/Constructs.py +53 -0
  894. nuitka/tools/testing/DocTests.py +156 -0
  895. nuitka/tools/testing/OutputComparison.py +313 -0
  896. nuitka/tools/testing/Pythons.py +34 -0
  897. nuitka/tools/testing/RuntimeTracing.py +260 -0
  898. nuitka/tools/testing/SearchModes.py +208 -0
  899. nuitka/tools/testing/Valgrind.py +103 -0
  900. nuitka/tools/testing/__init__.py +19 -0
  901. nuitka/tools/testing/check_reference_counts/__init__.py +19 -0
  902. nuitka/tools/testing/check_reference_counts/__main__.py +107 -0
  903. nuitka/tools/testing/compare_with_cpython/__init__.py +19 -0
  904. nuitka/tools/testing/compare_with_cpython/__main__.py +942 -0
  905. nuitka/tools/testing/find_sxs_modules/__init__.py +19 -0
  906. nuitka/tools/testing/find_sxs_modules/__main__.py +73 -0
  907. nuitka/tools/testing/measure_construct_performance/__init__.py +19 -0
  908. nuitka/tools/testing/measure_construct_performance/__main__.py +288 -0
  909. nuitka/tools/testing/run_nuitka_tests/__init__.py +19 -0
  910. nuitka/tools/testing/run_nuitka_tests/__main__.py +1091 -0
  911. nuitka/tools/watch/AutoStage.py +145 -0
  912. nuitka/tools/watch/Common.py +55 -0
  913. nuitka/tools/watch/Conda.py +125 -0
  914. nuitka/tools/watch/GitHub.py +113 -0
  915. nuitka/tools/watch/Pacman.py +73 -0
  916. nuitka/tools/watch/Pipenv.py +145 -0
  917. nuitka/tools/watch/__init__.py +19 -0
  918. nuitka/tools/watch/__main__.py +615 -0
  919. nuitka/tree/Building.py +1459 -0
  920. nuitka/tree/ComplexCallHelperFunctions.py +2150 -0
  921. nuitka/tree/Extractions.py +48 -0
  922. nuitka/tree/FutureSpecState.py +71 -0
  923. nuitka/tree/InternalModule.py +96 -0
  924. nuitka/tree/Operations.py +45 -0
  925. nuitka/tree/ReformulationAssertStatements.py +97 -0
  926. nuitka/tree/ReformulationAssignmentStatements.py +1260 -0
  927. nuitka/tree/ReformulationBooleanExpressions.py +97 -0
  928. nuitka/tree/ReformulationCallExpressions.py +314 -0
  929. nuitka/tree/ReformulationClasses.py +407 -0
  930. nuitka/tree/ReformulationClasses3.py +1149 -0
  931. nuitka/tree/ReformulationComparisonExpressions.py +174 -0
  932. nuitka/tree/ReformulationContractionExpressions.py +676 -0
  933. nuitka/tree/ReformulationDictionaryCreation.py +304 -0
  934. nuitka/tree/ReformulationExecStatements.py +386 -0
  935. nuitka/tree/ReformulationForLoopStatements.py +215 -0
  936. nuitka/tree/ReformulationFunctionStatements.py +931 -0
  937. nuitka/tree/ReformulationImportStatements.py +333 -0
  938. nuitka/tree/ReformulationLambdaExpressions.py +185 -0
  939. nuitka/tree/ReformulationMatchStatements.py +797 -0
  940. nuitka/tree/ReformulationMultidist.py +80 -0
  941. nuitka/tree/ReformulationNamespacePackages.py +239 -0
  942. nuitka/tree/ReformulationPrintStatements.py +127 -0
  943. nuitka/tree/ReformulationSequenceCreation.py +438 -0
  944. nuitka/tree/ReformulationSubscriptExpressions.py +123 -0
  945. nuitka/tree/ReformulationTryExceptStatements.py +418 -0
  946. nuitka/tree/ReformulationTryFinallyStatements.py +239 -0
  947. nuitka/tree/ReformulationWhileLoopStatements.py +160 -0
  948. nuitka/tree/ReformulationWithStatements.py +382 -0
  949. nuitka/tree/ReformulationYieldExpressions.py +133 -0
  950. nuitka/tree/SourceHandling.py +476 -0
  951. nuitka/tree/SyntaxErrors.py +143 -0
  952. nuitka/tree/TreeHelpers.py +720 -0
  953. nuitka/tree/VariableClosure.py +483 -0
  954. nuitka/tree/__init__.py +19 -0
  955. nuitka/utils/AppDirs.py +104 -0
  956. nuitka/utils/CStrings.py +208 -0
  957. nuitka/utils/CommandLineOptions.py +207 -0
  958. nuitka/utils/Distributions.py +728 -0
  959. nuitka/utils/Download.py +217 -0
  960. nuitka/utils/Execution.py +517 -0
  961. nuitka/utils/FileOperations.py +1587 -0
  962. nuitka/utils/Hashing.py +137 -0
  963. nuitka/utils/Images.py +79 -0
  964. nuitka/utils/Importing.py +335 -0
  965. nuitka/utils/InlineCopies.py +52 -0
  966. nuitka/utils/InstalledPythons.py +254 -0
  967. nuitka/utils/InstanceCounters.py +86 -0
  968. nuitka/utils/Jinja2.py +158 -0
  969. nuitka/utils/Json.py +40 -0
  970. nuitka/utils/MacOSApp.py +134 -0
  971. nuitka/utils/MemoryUsage.py +165 -0
  972. nuitka/utils/ModuleNames.py +317 -0
  973. nuitka/utils/PackageResources.py +44 -0
  974. nuitka/utils/ReExecute.py +152 -0
  975. nuitka/utils/Rest.py +60 -0
  976. nuitka/utils/SharedLibraries.py +1014 -0
  977. nuitka/utils/Shebang.py +113 -0
  978. nuitka/utils/Signing.py +144 -0
  979. nuitka/utils/SlotMetaClasses.py +57 -0
  980. nuitka/utils/StaticLibraries.py +260 -0
  981. nuitka/utils/ThreadedExecutor.py +87 -0
  982. nuitka/utils/Timing.py +102 -0
  983. nuitka/utils/Utils.py +483 -0
  984. nuitka/utils/WindowsFileUsage.py +337 -0
  985. nuitka/utils/WindowsResources.py +652 -0
  986. nuitka/utils/Yaml.py +247 -0
  987. nuitka/utils/__init__.py +19 -0
  988. nuitka_winsvc-2.7.7.data/scripts/nuitka-run.cmd +24 -0
  989. nuitka_winsvc-2.7.7.data/scripts/nuitka.cmd +30 -0
  990. nuitka_winsvc-2.7.7.dist-info/METADATA +115 -0
  991. nuitka_winsvc-2.7.7.dist-info/RECORD +995 -0
  992. nuitka_winsvc-2.7.7.dist-info/WHEEL +5 -0
  993. nuitka_winsvc-2.7.7.dist-info/entry_points.txt +7 -0
  994. nuitka_winsvc-2.7.7.dist-info/licenses/LICENSE.txt +202 -0
  995. nuitka_winsvc-2.7.7.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1111 @@
1
+ # -*- python -*-
2
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
3
+
4
+
5
+ """
6
+ The Nuitka scons file. If you have Scons or platform knowledge, please be
7
+ especially invited and contribute improvements.
8
+
9
+ This file is used to build an executable or shared library. Nuitka needs no
10
+ build process for itself, although it can be compiled using the same method.
11
+ """
12
+
13
+ # Make nuitka package importable from calling installation
14
+
15
+ import sys
16
+ import os
17
+ import types
18
+
19
+ sys.modules["nuitka"] = types.ModuleType("nuitka")
20
+ sys.modules["nuitka"].__path__ = [os.environ["NUITKA_PACKAGE_DIR"]]
21
+
22
+ # We are in the build.build package really.
23
+ import nuitka.build # pylint: disable=unused-import
24
+
25
+ __package__ = "nuitka.build" # pylint: disable=redefined-builtin
26
+
27
+ # isort:start
28
+
29
+ from SCons.Script import ( # pylint: disable=I0021,import-error
30
+ ARGUMENTS,
31
+ Environment,
32
+ GetOption,
33
+ )
34
+
35
+ from nuitka.Tracing import (
36
+ my_print,
37
+ scons_details_logger,
38
+ scons_logger,
39
+ setQuiet,
40
+ )
41
+ from nuitka.utils.FileOperations import (
42
+ changeFilenameExtension,
43
+ getExternalUsePath,
44
+ getFilenameExtension,
45
+ )
46
+ from nuitka.utils.Json import loadJsonFromFilename
47
+ from nuitka.utils.Utils import (
48
+ isAIX,
49
+ isDebianBasedLinux,
50
+ isFedoraBasedLinux,
51
+ isFreeBSD,
52
+ isMacOS,
53
+ )
54
+
55
+ from .DataComposerInterface import getConstantBlobFilename
56
+ from .SconsCaching import enableCcache, enableClcache
57
+ from .SconsCompilerSettings import (
58
+ addConstantBlobFile,
59
+ checkWindowsCompilerFound,
60
+ decideConstantsBlobResourceMode,
61
+ enableWindowsStackSize,
62
+ importEnvironmentVariableSettings,
63
+ reportCCompiler,
64
+ setupCCompiler,
65
+ switchFromGccToGpp,
66
+ )
67
+ from .SconsHacks import getEnhancedToolDetect, makeGccUseLinkerFile
68
+ from .SconsProgress import enableSconsProgressBar, setSconsProgressBarTotal
69
+ from .SconsSpawn import enableSpawnMonitoring
70
+ from .SconsUtils import (
71
+ addClangClPathFromMSVC,
72
+ changeKeyboardInterruptToErrorExit,
73
+ createDefinitionsFile,
74
+ createEnvironment,
75
+ getArgumentBool,
76
+ getArgumentDefaulted,
77
+ getArgumentInt,
78
+ getArgumentList,
79
+ getArgumentRequired,
80
+ getExecutablePath,
81
+ getMsvcVersionString,
82
+ initScons,
83
+ isClangName,
84
+ isGccName,
85
+ makeResultPathFileSystemEncodable,
86
+ prepareEnvironment,
87
+ provideStaticSourceFile,
88
+ raiseNoCompilerFoundErrorExit,
89
+ scanSourceDir,
90
+ setArguments,
91
+ setupScons,
92
+ writeSconsReport,
93
+ )
94
+
95
+ # spell-checker: ignore ccversion,cflags,ccflags,werror,cppdefines,cpppath,
96
+ # spell-checker: ignore linkflags,libpath,libflags
97
+
98
+ # Set the arguments.
99
+ setArguments(ARGUMENTS)
100
+
101
+ # Set up the basic stuff.
102
+ initScons()
103
+
104
+ # The directory containing the C files generated by Nuitka to be built using
105
+ # scons. They are referred to as sources from here on.
106
+ source_dir = getArgumentRequired("source_dir")
107
+
108
+ # The directory containing Nuitka provided C files to be built and where it
109
+ # should be used.
110
+ nuitka_src = getArgumentRequired("nuitka_src")
111
+ static_src = os.path.join(source_dir, "static")
112
+
113
+ # The name of executable that we are supposed to produce.
114
+ result_exe = getArgumentRequired("result_exe")
115
+
116
+ # Name of the main program (in executable mode, typically __main__ but can be in a package too.)
117
+ main_module_name = getArgumentDefaulted("main_module_name", "__main__")
118
+
119
+ # Full names shall be used, no remapping for cacheable filenames.
120
+ full_names = getArgumentBool("full_names", False)
121
+
122
+ # Debug mode: Less optimizations, debug information in the resulting binary.
123
+ debug_mode = getArgumentBool("debug_mode", False)
124
+
125
+ # Debugger mode: Debug information in the resulting binary and intention to run
126
+ # in debugger.
127
+ debugger_mode = getArgumentBool("debugger_mode", False)
128
+
129
+ # Profiling mode: Outputs vmprof based information from program run.
130
+ profile_mode = getArgumentBool("profile_mode", False)
131
+
132
+ # Python version to target.
133
+ python_version_str = getArgumentRequired("python_version")
134
+ python_version = tuple(int(d) for d in python_version_str.split("."))
135
+
136
+ gil_mode = getArgumentBool("gil_mode")
137
+
138
+ # The ABI flags to target.
139
+ abiflags = getArgumentDefaulted("abiflags", "")
140
+
141
+ if not gil_mode and "t" not in abiflags:
142
+ abiflags = "t" + abiflags
143
+
144
+ python_abi_version = python_version_str + abiflags
145
+
146
+ # Python debug mode: reference count checking, assertions in CPython core.
147
+ python_debug = getArgumentBool("python_debug", False)
148
+
149
+ # Full compatibility, even where it's stupid, i.e. do not provide information,
150
+ # even if available, in order to assert maximum compatibility. Intended to
151
+ # control level of compatibility to absurd.
152
+ full_compat_mode = getArgumentBool("full_compat", False)
153
+
154
+ # Experimental indications. Do things that are not yet safe to do.
155
+ experimental = getArgumentList("experimental", "")
156
+
157
+ # Deployment mode
158
+ deployment_mode = getArgumentBool("deployment", False)
159
+
160
+ # Experimental indications. Do things that are not yet safe to do.
161
+ no_deployment = getArgumentList("no_deployment", "")
162
+
163
+ # Debug mode indications. Do check things with fine granularity.
164
+ debug_modes = getArgumentList("debug_modes", "")
165
+
166
+ # Tracing mode. Output program progress.
167
+ trace_mode = getArgumentBool("trace_mode", False)
168
+
169
+ # LTO mode: Use link time optimizations of C compiler if available and known
170
+ # good with the compiler in question.
171
+ lto_mode = getArgumentDefaulted("lto_mode", "auto")
172
+
173
+ # PGO mode: Use profile guided optimization of C compiler if available.
174
+ pgo_mode = getArgumentDefaulted("pgo_mode", "no")
175
+
176
+ # Console mode specified
177
+ console_mode = getArgumentDefaulted("console_mode", "attach")
178
+
179
+ # Windows might be running a Python whose DLL we have to use.
180
+ uninstalled_python = getArgumentBool("uninstalled_python", False)
181
+
182
+ # Unstripped mode: Do not remove debug symbols.
183
+ unstripped_mode = getArgumentBool("unstripped_mode", False)
184
+
185
+ # Target arch, uses for compiler choice and quick linking of constants binary
186
+ # data.
187
+ target_arch = getArgumentRequired("target_arch")
188
+
189
+ # MinGW compiler mode, optional and interesting to Windows only.
190
+ mingw_mode = getArgumentBool("mingw_mode", False)
191
+
192
+ # Clang compiler mode, forced on macOS and FreeBSD (excluding PowerPC), optional on Linux.
193
+ clang_mode = getArgumentBool("clang_mode", False)
194
+
195
+ # Clang on Windows with no requirement to use MinGW64 or using MSYS2 MinGW flavor,
196
+ # is changed to ClangCL from Visual Studio.
197
+ clangcl_mode = False
198
+ if os.name == "nt" and not mingw_mode and clang_mode:
199
+ clang_mode = False
200
+ clangcl_mode = True
201
+
202
+ # Frozen modules count, determines the need for the bytecode frozen
203
+ # modules loader.
204
+ frozen_modules = getArgumentInt("frozen_modules", 0)
205
+
206
+ forced_stdout_path = getArgumentDefaulted("forced_stdout_path", None)
207
+ forced_stderr_path = getArgumentDefaulted("forced_stderr_path", None)
208
+
209
+ # Show scons mode, output information about Scons operation
210
+ show_scons_mode = getArgumentBool("show_scons", False)
211
+ scons_details_logger.is_quiet = not show_scons_mode
212
+
213
+ if int(os.getenv("NUITKA_QUIET", "0")):
214
+ setQuiet()
215
+
216
+ # Home of Python to be compiled against, used to find include files and
217
+ # libraries to link against.
218
+ python_prefix = getArgumentRequired("python_prefix")
219
+
220
+ python_prefix_external = getExternalUsePath(python_prefix)
221
+
222
+ # Forced MSVC version (windows-only)
223
+ msvc_version = getArgumentDefaulted("msvc_version", None)
224
+
225
+ # Disable ccache/clcache usage if that is requested
226
+ disable_ccache = getArgumentBool("disable_ccache", False)
227
+
228
+ no_python_warnings = getArgumentBool("no_python_warnings", False)
229
+
230
+ # sys.flags values to pass along
231
+ # python_sysflag_py3k_warning
232
+ python_sysflag_py3k_warning = getArgumentBool("python_sysflag_py3k_warning", False)
233
+ # python_sysflag_division_warning
234
+ python_sysflag_division_warning = getArgumentBool(
235
+ "python_sysflag_division_warning", False
236
+ )
237
+ # python_sysflag_division_warning
238
+ python_sysflag_bytes_warning = getArgumentBool("python_sysflag_bytes_warning", False)
239
+ # python_sysflag_no_site
240
+ python_sysflag_no_site = getArgumentBool("python_sysflag_no_site", False)
241
+ # python_sysflag_verbose
242
+ python_sysflag_verbose = getArgumentBool("python_sysflag_verbose", False)
243
+ # python_sysflag_unicode
244
+ python_sysflag_unicode = getArgumentBool("python_sysflag_unicode", False)
245
+ # python_sysflag_utf8
246
+ python_sysflag_utf8 = getArgumentBool("python_sysflag_utf8", False)
247
+ # python_sysflag_optimize
248
+ python_sysflag_optimize = getArgumentInt("python_sysflag_optimize", 0)
249
+ # python_flag_no_asserts
250
+ python_flag_no_asserts = getArgumentBool("python_flag_no_asserts", False)
251
+ # python_flag_no_docstrings
252
+ python_flag_no_docstrings = getArgumentBool("python_flag_no_docstrings", False)
253
+ # python_flag_no_annotations
254
+ python_flag_no_annotations = getArgumentBool("python_flag_no_annotations", False)
255
+ # python_sysflag_no_randomization
256
+ python_sysflag_no_randomization = getArgumentBool(
257
+ "python_sysflag_no_randomization", False
258
+ )
259
+
260
+ # python_sysflag_unbuffered (--python-flag=-U)
261
+ python_sysflag_unbuffered = getArgumentBool("python_sysflag_unbuffered", False)
262
+
263
+ # python_sysflag_dontwritebytecode (--python-flag=-B)
264
+ python_sysflag_dontwritebytecode = getArgumentBool(
265
+ "python_sysflag_dontwritebytecode", False
266
+ )
267
+
268
+ # python_sysflag_safe_path (--python-flag=-P)
269
+ python_sysflag_safe_path = getArgumentBool("python_sysflag_safe_path", False)
270
+
271
+ # python_sysflag_isolated
272
+ python_sysflag_isolated = getArgumentBool("python_sysflag_isolated", False)
273
+
274
+ # file reference mode
275
+ file_reference_mode = getArgumentRequired("file_reference_mode")
276
+
277
+ # Preprocessor defines from plugins
278
+ cpp_defines = getArgumentList("cpp_defines", "")
279
+ cpp_include_dirs = getArgumentList("cpp_include_dirs", "")
280
+ link_dirs = getArgumentList("link_dirs", "")
281
+ link_libraries = getArgumentList("link_libraries", "")
282
+
283
+ # From statically compiled modules of the Python
284
+ link_module_libs = getArgumentList("link_module_libs", "")
285
+
286
+ # Allow automatic downloads for ccache, etc.
287
+ assume_yes_for_downloads = getArgumentBool("assume_yes_for_downloads", False)
288
+
289
+ # Low memory mode, compile using less memory if possible.
290
+ low_memory = getArgumentBool("low_memory", False)
291
+
292
+ # Minimum version required on macOS.
293
+ macos_min_version = getArgumentDefaulted("macos_min_version", "")
294
+
295
+ # Target arch for macOS.
296
+ macos_target_arch = getArgumentDefaulted("macos_target_arch", "")
297
+
298
+ # gcc compiler cf_protection option
299
+ cf_protection = getArgumentDefaulted("cf_protection", "auto")
300
+
301
+ if getArgumentBool("progress_bar", True) and not show_scons_mode:
302
+ enableSconsProgressBar()
303
+
304
+ # Amount of jobs to use.
305
+ job_count = GetOption("num_jobs")
306
+
307
+ # Prepare environment for compiler detection.
308
+ mingw_mode = prepareEnvironment(mingw_mode=mingw_mode)
309
+
310
+ # Patch the compiler detection.
311
+ Environment.Detect = getEnhancedToolDetect()
312
+
313
+ # Create Scons environment, the main control tool. Don't include "mingw" on
314
+ # Windows immediately, we will default to MSVC if available.
315
+ env = createEnvironment(
316
+ mingw_mode=mingw_mode,
317
+ msvc_version=msvc_version,
318
+ target_arch=target_arch,
319
+ experimental=experimental,
320
+ no_deployment=no_deployment,
321
+ debug_modes=debug_modes,
322
+ )
323
+
324
+ scons_details_logger.info("Initial CC: %r" % env.get("CC"))
325
+ scons_details_logger.info(
326
+ "Initial CCVERSION: %r" % (env.get("CCVERSION"),),
327
+ )
328
+
329
+ if "CC" in os.environ:
330
+ # If the environment variable CC is set, use that.
331
+ env["CC"] = os.environ["CC"]
332
+ env["CCVERSION"] = None
333
+
334
+ scons_details_logger.info("Overridden with environment CC: %r" % env["CC"])
335
+ elif clangcl_mode:
336
+ # If possible, add Clang directory from MSVC if available.
337
+ addClangClPathFromMSVC(env=env)
338
+ elif clang_mode and not mingw_mode:
339
+ # If requested by the user, use the clang compiler, overriding what was
340
+ # said in environment.
341
+
342
+ env["CC"] = "clang"
343
+ env["CCVERSION"] = None
344
+
345
+ # On Windows, in case MSVC was not found and not previously forced, use the
346
+ # winlibs MinGW64 as a download, and use it as a fallback.
347
+ env = checkWindowsCompilerFound(
348
+ env=env,
349
+ target_arch=target_arch,
350
+ clang_mode=clang_mode,
351
+ msvc_version=msvc_version,
352
+ assume_yes_for_downloads=assume_yes_for_downloads,
353
+ download_ok=True,
354
+ )
355
+
356
+ env.the_compiler = env["CC"]
357
+ env.the_cc_name = os.path.normcase(os.path.basename(env.the_compiler))
358
+ env.debug_mode = debug_mode
359
+ env.debugger_mode = debugger_mode
360
+ env.unstripped_mode = unstripped_mode
361
+ env.console_mode = console_mode
362
+ env.source_dir = source_dir
363
+ env.nuitka_src = nuitka_src
364
+ env.low_memory = low_memory
365
+ env.macos_min_version = macos_min_version
366
+ env.macos_target_arch = macos_target_arch
367
+
368
+ # Requested or user provided, detect if it's clang even from environment
369
+ if isClangName(env.the_cc_name):
370
+ clang_mode = True
371
+ env["CCVERSION"] = None
372
+
373
+ # We consider clang to be a form of gcc for the most things, they strive to
374
+ # be compatible.
375
+ env.gcc_mode = isGccName(env.the_cc_name) or clang_mode
376
+ env.clang_mode = clang_mode
377
+
378
+ # Only use MSVC if not already clear, we are using MinGW.
379
+ env.msvc_mode = os.name == "nt" and not env.gcc_mode
380
+ env.mingw_mode = os.name == "nt" and env.gcc_mode
381
+ env.clangcl_mode = clangcl_mode
382
+
383
+ # For Python3.13, we need to enforce it for now to use MSVC
384
+ if os.name == "nt" and not env.msvc_mode and python_version >= (3, 13):
385
+ scons_logger.sysexit(
386
+ """\
387
+ Sorry, non-MSVC is not currently supported with Python 3.13,
388
+ due to differences in layout internal structures of Python.
389
+
390
+ Newer Nuitka will work to solve this. Use Python 3.12 or
391
+ option "--msvc=latest" as a workaround for now and wait
392
+ for updates of Nuitka to add MinGW64 support back."""
393
+ )
394
+
395
+ # gcc compiler cf_protection option
396
+ env.cf_protection = cf_protection
397
+
398
+ # Consider switching from gcc to its g++ compiler as a workaround that makes us work without C11.
399
+ switchFromGccToGpp(
400
+ env=env,
401
+ )
402
+
403
+ if env.the_compiler is None or getExecutablePath(env.the_compiler, env=env) is None:
404
+ raiseNoCompilerFoundErrorExit()
405
+
406
+ no_import_lib = False
407
+
408
+ if show_scons_mode:
409
+ my_print("Scons: Compiler used", end=" ")
410
+ my_print(getExecutablePath(env.the_compiler, env=env), end=" ")
411
+
412
+ if os.name == "nt" and env.msvc_mode:
413
+ my_print("(MSVC %s)" % getMsvcVersionString(env))
414
+
415
+ my_print()
416
+
417
+ # Set build directory and scons general settings.
418
+ setupScons(env, source_dir)
419
+
420
+ # Report the C compiler used.
421
+ reportCCompiler(env, "Backend", scons_logger.info)
422
+
423
+ # Set up C compiler settings.
424
+ setupCCompiler(
425
+ env=env,
426
+ lto_mode=lto_mode,
427
+ pgo_mode=pgo_mode,
428
+ job_count=job_count,
429
+ onefile_compile=False,
430
+ )
431
+
432
+
433
+ # Avoid them as appearing to be different files. TODO: Find out which
434
+ # clang version has this, clang-8 does not.
435
+ if env.msvc_mode:
436
+ # With Clang on Windows, there is also an linker to use. spell-checker: ignore bigobj
437
+ env.Append(
438
+ CCFLAGS=[
439
+ "/EHsc", # No C++ exception handling code.
440
+ "/J", # default char type is unsigned.
441
+ "/Gd", # Use C calling convention by default.
442
+ "/bigobj", # Product object files with larger internal limits.
443
+ ]
444
+ )
445
+
446
+ # No incremental linking.
447
+ env.Append(LINKFLAGS=["/INCREMENTAL:NO"])
448
+
449
+ if env.module_mode or env.dll_mode:
450
+ # Make sure we handle import library on our own and put it into the
451
+ # build directory, spell-checker: ignore IMPLIB
452
+
453
+ no_import_lib = True
454
+ env.Append(
455
+ LINKFLAGS=[
456
+ "/IMPLIB:%s" % os.path.join(source_dir, "import.lib"),
457
+ ]
458
+ )
459
+
460
+ if env.exe_mode:
461
+ enableWindowsStackSize(env=env, target_arch=target_arch)
462
+
463
+ if env.debug_mode:
464
+ if env.gcc_mode:
465
+ # Allow gcc/clang to point out all kinds of inconsistency to us by
466
+ # raising an error.
467
+
468
+ env.Append(
469
+ CCFLAGS=[
470
+ # Unfortunately Py_INCREF(Py_False) triggers aliasing warnings,
471
+ # which are unfounded, so disable them.
472
+ "-Wno-error=strict-aliasing",
473
+ "-Wno-strict-aliasing",
474
+ # At least for self-compiled Python3.2, and MinGW this happens
475
+ # and has little use anyway.
476
+ "-Wno-error=format",
477
+ "-Wno-format",
478
+ ]
479
+ )
480
+
481
+ elif env.msvc_mode:
482
+ # Disable warnings that system headers already show.
483
+ env.Append(
484
+ CCFLAGS=[
485
+ "/W4",
486
+ "/wd4505",
487
+ "/wd4127",
488
+ "/wd4100",
489
+ "/wd4702",
490
+ "/wd4189",
491
+ "/wd4211",
492
+ "/wd4115",
493
+ ]
494
+ )
495
+
496
+ # Disable warnings, that CPython headers already show.
497
+ if python_version >= (3,):
498
+ env.Append(CCFLAGS=["/wd4512", "/wd4510", "/wd4610"])
499
+
500
+ if python_version >= (3, 13):
501
+ env.Append(CCFLAGS=["/wd4324"])
502
+
503
+ # We use null arrays in our structure Python declarations, which C11 does
504
+ # not really allow, but should work.
505
+ env.Append(CCFLAGS=["/wd4200"])
506
+
507
+ # Do not show deprecation warnings, we will use methods for as long
508
+ # as they work.
509
+ env.Append(CCFLAGS=["/wd4996"])
510
+
511
+ if full_compat_mode:
512
+ env.Append(CPPDEFINES=["_NUITKA_FULL_COMPAT"])
513
+
514
+ if profile_mode:
515
+ env.Append(CPPDEFINES=["_NUITKA_PROFILE"])
516
+
517
+ if trace_mode:
518
+ env.Append(CPPDEFINES=["_NUITKA_TRACE"])
519
+
520
+ if deployment_mode:
521
+ env.Append(CPPDEFINES=["_NUITKA_DEPLOYMENT_MODE"])
522
+
523
+ # We need "dl" in accelerated mode.
524
+ if "linux" in sys.platform:
525
+ env.Append(LIBS=["dl"])
526
+
527
+ if not env.msvc_mode:
528
+ env.Append(LIBS=["m"])
529
+
530
+ if python_debug:
531
+ env.Append(CPPDEFINES=["Py_DEBUG"])
532
+
533
+ if env.static_libpython:
534
+ env.Append(CPPDEFINES=["Py_NO_ENABLE_SHARED"])
535
+
536
+
537
+ def _detectPythonHeaderPath():
538
+ if os.name == "nt":
539
+ # On Windows, the CPython installation layout is relatively fixed, but on MSYS2
540
+ # compiled for mingw64, it's more standard.
541
+
542
+ candidates = [
543
+ os.path.join(python_prefix_external, "include"),
544
+ # On MSYS2 with MinGW64 Python, it is also the other form.
545
+ os.path.join(
546
+ python_prefix_external, "include", "python" + python_abi_version
547
+ ),
548
+ ]
549
+ else:
550
+ # The python header path is a combination of python version and debug
551
+ # indication, we make sure the headers are found by adding it to the C
552
+ # include path.
553
+
554
+ candidates = [
555
+ os.path.join(
556
+ python_prefix_external, "include", "python" + python_abi_version
557
+ ),
558
+ # CPython source code checkout
559
+ os.path.join(python_prefix_external, "Include"),
560
+ # Haiku specific paths:
561
+ os.path.join(
562
+ python_prefix_external, "develop/headers", "python" + python_abi_version
563
+ ),
564
+ ]
565
+
566
+ # Not all Python versions, have the ABI version to use for the debug version.
567
+ if python_debug and "d" in python_abi_version:
568
+ candidates.append(
569
+ os.path.join(
570
+ python_prefix_external,
571
+ "include",
572
+ "python" + python_abi_version.replace("d", ""),
573
+ )
574
+ )
575
+
576
+ for candidate in candidates:
577
+ if os.path.exists(os.path.join(candidate, "Python.h")):
578
+ yield candidate
579
+ break
580
+ else:
581
+ if os.name == "nt":
582
+ scons_logger.sysexit(
583
+ """\
584
+ Error, you seem to be using the unsupported embeddable CPython distribution \
585
+ use a full Python instead."""
586
+ )
587
+ else:
588
+ scons_logger.sysexit(
589
+ """\
590
+ Error, no 'Python.h' %s headers can be found at '%s', dependency \
591
+ not satisfied!"""
592
+ % ("debug" if python_debug else "development", candidates)
593
+ )
594
+
595
+ if python_version >= (3, 13):
596
+ # spell-checker: ignore mimalloc
597
+ yield os.path.join(candidate, "internal", "mimalloc")
598
+
599
+ if env.self_compiled_python_uninstalled:
600
+ yield python_prefix_external
601
+
602
+
603
+ env.Append(CPPPATH=list(_detectPythonHeaderPath()))
604
+
605
+ # To support self-built Python on Windows, need to also add the "PC" directory,
606
+ # that a normal install won't have.
607
+ if os.name == "nt":
608
+ python_header_path = os.path.join(python_prefix_external, "PC")
609
+
610
+ if os.path.exists(python_header_path):
611
+ env.Append(CPPPATH=[python_header_path])
612
+
613
+ if env.nuitka_python:
614
+ env.Append(CPPDEFINES=["_NUITKA_PYTHON"])
615
+
616
+ if env.static_libpython:
617
+ env.Append(CPPDEFINES=["_NUITKA_STATIC_LIBPYTHON"])
618
+
619
+ if not gil_mode:
620
+ env.Append(CPPDEFINES="Py_GIL_DISABLED")
621
+
622
+ # TODO: This ought to be decided outside of scons and per flavor maybe.
623
+ if env.static_libpython and (
624
+ (not os.name == "nt" and not isMacOS()) or env.nuitka_python
625
+ ):
626
+ env.Append(CPPDEFINES=["_NUITKA_USE_UNEXPOSED_API"])
627
+
628
+ if python_version >= (3, 12):
629
+ if env.static_libpython:
630
+ env.Append(
631
+ CPPPATH=[
632
+ os.path.join(env.nuitka_src, "inline_copy", "python_hacl", "hacl_312"),
633
+ os.path.join(
634
+ env.nuitka_src, "inline_copy", "python_hacl", "hacl_312", "include"
635
+ ),
636
+ ]
637
+ )
638
+
639
+ env.Append(CPPDEFINES=["_NUITKA_INLINE_COPY_HACL"])
640
+
641
+ # Remove it from static link libraries as well, if present, so far they are
642
+ # bugs and do not exist.
643
+ link_module_libs = [
644
+ link_module_lib
645
+ for link_module_lib in link_module_libs
646
+ if "libHacl_Hash_SHA2" not in link_module_lib
647
+ ]
648
+
649
+ if os.name == "nt":
650
+ if env.nuitka_python:
651
+ link_data = loadJsonFromFilename(
652
+ os.path.join(python_prefix_external, "link.json")
653
+ )
654
+ env.Append(LIBS=link_data["libraries"])
655
+ env.Append(LIBPATH=link_data["library_dirs"])
656
+ for define, value in link_data["macros"]:
657
+ if value:
658
+ env.Append(CPPDEFINES=[define + "=" + value])
659
+ else:
660
+ env.Append(CPPDEFINES=[define])
661
+
662
+ if "link_flags" in link_data:
663
+ env.Append(LINKFLAGS=link_data["link_flags"])
664
+ if "compile_flags" in link_data:
665
+ env.Append(CFLAGS=link_data["compile_flags"])
666
+ elif env.gcc_mode and env.static_libpython:
667
+ env.Append(LIBS=[env.File(env.static_libpython)])
668
+ else:
669
+ # Some non CPython flavors on Windows have this.
670
+ def addWinLib():
671
+ # Make sure to locate the Python link library from multiple potential
672
+ # locations (installed vs. self-built).
673
+ if python_debug:
674
+ win_lib_name = "python" + python_abi_version.replace(".", "") + "_d"
675
+ else:
676
+ win_lib_name = "python" + python_abi_version.replace(".", "")
677
+
678
+ if python_version >= (3,):
679
+ pc_build_dir = (
680
+ "PCBuild/amd64" if target_arch == "x86_64" else "PCBuild/win32"
681
+ )
682
+ else:
683
+ pc_build_dir = "PCBuild"
684
+
685
+ for candidate in ("libs", pc_build_dir):
686
+ win_lib_path = os.path.join(python_prefix_external, candidate)
687
+
688
+ if os.path.exists(os.path.join(win_lib_path, win_lib_name + ".lib")):
689
+ break
690
+ else:
691
+ scons_logger.sysexit("Error, cannot find '%s.lib' file." % win_lib_name)
692
+
693
+ env.Append(LIBPATH=[win_lib_path])
694
+ env.Append(LIBS=[win_lib_name])
695
+
696
+ if not env.msys2_mingw_python:
697
+ addWinLib()
698
+ elif env.exe_mode or env.dll_mode:
699
+ # Add the python library path to the library path
700
+ if env.self_compiled_python_uninstalled:
701
+ python_lib_path = python_prefix_external
702
+ else:
703
+ python_lib_path = os.path.join(python_prefix_external, "lib")
704
+
705
+ env.Append(LIBPATH=[python_lib_path])
706
+
707
+ # Any module libs that are for self-compiled Python to be static.
708
+ env.Append(_LIBFLAGS=["-l" + lib_desc for lib_desc in link_module_libs])
709
+
710
+ if env.nuitka_python:
711
+ link_data = loadJsonFromFilename(
712
+ os.path.join(python_prefix_external, "link.json")
713
+ )
714
+ for lib in link_data["libraries"]:
715
+ # Need to prevent Scons from stripping .a from the passed in libs.
716
+ if lib.startswith(":") and lib.endswith(".a"):
717
+ env.Append(_LIBFLAGS=["-l" + lib])
718
+ elif os.path.isfile(lib):
719
+ env.Append(_LIBFLAGS=[lib])
720
+ else:
721
+ env.Append(LIBS=[lib])
722
+ env.Append(LIBPATH=link_data["library_dirs"])
723
+ for define, value in link_data["macros"]:
724
+ if value:
725
+ env.Append(CPPDEFINES=[define + "=" + value])
726
+ else:
727
+ env.Append(CPPDEFINES=[define])
728
+
729
+ if "link_flags" in link_data:
730
+ env.Append(LINKFLAGS=link_data["link_flags"])
731
+ if "compile_flags" in link_data:
732
+ env.Append(CFLAGS=link_data["compile_flags"])
733
+ elif env.static_libpython:
734
+ env.Append(LIBS=[env.File(env.static_libpython)])
735
+
736
+ # The linker won't succeed in searching for those for system Python of Debian
737
+ # compiled Pythons. Help that. spell-checker: ignore rdynamic,Xlinker,pthread
738
+ if python_prefix_external == "/usr" and isDebianBasedLinux():
739
+ env.Append(LIBS=["z", "m", "util", "pthread"])
740
+
741
+ if python_version >= (3,):
742
+ env.Append(LIBS=["expat"])
743
+
744
+ env.Append(LINKFLAGS=["-Xlinker", "-export-dynamic", "-rdynamic"])
745
+
746
+ if env.arch_python:
747
+ env.Append(LINKFLAGS=["-rdynamic"])
748
+ else:
749
+ # Fedora, Debian and Ubuntu distinguish the system libraries like this.
750
+ if (
751
+ python_debug
752
+ and python_prefix_external == "/usr"
753
+ and python_version < (3,)
754
+ and (isDebianBasedLinux() or isFedoraBasedLinux())
755
+ ):
756
+ env.Append(LIBS=["python" + python_abi_version + "_d"])
757
+ else:
758
+ env.Append(LIBS=["python" + python_abi_version])
759
+
760
+ if python_prefix_external != "/usr" and "linux" in sys.platform:
761
+ env.Append(LIBS=["dl", "pthread", "util", "rt", "m"])
762
+
763
+ if env.gcc_mode:
764
+ if clang_mode:
765
+ env.Append(LINKFLAGS=["-Wl,--export-dynamic"])
766
+ else:
767
+ env.Append(LINKFLAGS=["-export-dynamic"])
768
+
769
+ # For NetBSD the rpath is required, on FreeBSD it's warned as unused, macOS
770
+ # and AIX don't have it, but some Python flavors like Standalone Python
771
+ # won't find it unless provided like this, so lets try to add this by
772
+ # default and remove OSes that give errors one by one.
773
+ if not isFreeBSD() and not isMacOS() and not isAIX():
774
+ env.Append(LINKFLAGS=["-Wl,-rpath=" + python_lib_path])
775
+
776
+ if isMacOS():
777
+ if env.module_mode or env.dll_mode:
778
+ # Dynamic lookup needed for extension modules.
779
+ env.Append(LINKFLAGS=["-undefined", "dynamic_lookup"])
780
+ else:
781
+ # For macOS we need to make sure install_name_tool can do its work
782
+ # spell-checker: ignore headerpad
783
+ env.Append(LINKFLAGS=["-headerpad_max_install_names"])
784
+
785
+ if env.android_termux_python:
786
+ # For Android Termux Python we need modules to link against the
787
+ # shared library of Python, different from all other ones.
788
+
789
+ if env.module_mode:
790
+ env.Append(_LIBFLAGS=["-lpython%s" % python_version_str])
791
+
792
+ # The static include files reside in Nuitka installation, which may be where
793
+ # the "nuitka.build" package lives.
794
+ nuitka_include = os.path.join(env.nuitka_src, "include")
795
+
796
+ if not os.path.exists(os.path.join(nuitka_include, "nuitka", "prelude.h")):
797
+ scons_logger.sysexit(
798
+ "Error, cannot locate Nuitka includes at '%s', this is a broken Nuitka installation."
799
+ % nuitka_include
800
+ )
801
+
802
+ # We have include files in the build directory and the static include directory
803
+ # that is located inside Nuitka installation.
804
+ env.Append(
805
+ CPPPATH=[
806
+ source_dir,
807
+ nuitka_include,
808
+ os.path.join(env.nuitka_src, "static_src"),
809
+ os.path.join(env.nuitka_src, "inline_copy", "libbacktrace"),
810
+ ]
811
+ )
812
+
813
+ # Set load libpython from binary directory default
814
+ if (
815
+ env.gcc_mode
816
+ and not isMacOS()
817
+ and not isAIX()
818
+ and not os.name == "nt"
819
+ and (env.exe_mode or env.dll_mode)
820
+ ):
821
+ # TODO: It would appear that this should be merged with above code that does
822
+ # env.Append(LINKFLAGS=["-Wl,-rpath=" + python_lib_path]) relatively
823
+ # unconditionally already.
824
+ if env.standalone_mode:
825
+ rpath = "$$ORIGIN"
826
+ else:
827
+ rpath = python_lib_path
828
+
829
+ env.Append(LINKFLAGS=["-Wl,-R,'%s'" % rpath])
830
+
831
+ # The rpath is no longer used unless we do this on modern Linux. The
832
+ # option name is not very revealing, but basically without this, the
833
+ # rpath in the binary will be ignored by the loader.
834
+ # spell-checker: ignore dtags
835
+ if "linux" in sys.platform:
836
+ env.Append(LINKFLAGS=["-Wl,--disable-new-dtags"])
837
+
838
+
839
+ addConstantBlobFile(
840
+ env=env,
841
+ resource_desc=decideConstantsBlobResourceMode(env=env),
842
+ blob_filename=getConstantBlobFilename(env.source_dir),
843
+ target_arch=target_arch,
844
+ )
845
+
846
+ env.Append(CPPDEFINES=["_NUITKA_FROZEN=%d" % frozen_modules])
847
+
848
+ # Tell compiler to create a shared library or program.
849
+ if env.exe_mode:
850
+ if env.msvc_mode:
851
+ # For complete outputs, we have to match the C runtime of the Python DLL, if any,
852
+ # for Nuitka-Python there is of course none.
853
+ if not env.nuitka_python and (
854
+ forced_stdout_path not in ("{NONE}", "{NULL}", None)
855
+ or forced_stderr_path not in ("{NONE}", "{NULL}", None)
856
+ ):
857
+ env.Append(CCFLAGS=["/MD"]) # Multithreaded, dynamic version of C run time.
858
+ else:
859
+ env.Append(CCFLAGS=["/MT"]) # Multithreaded, static version of C run time.
860
+ else:
861
+ if isGccName(env.the_cc_name):
862
+ env.Append(CCFLAGS=["-shared"])
863
+ elif env.clang_mode:
864
+ pass
865
+ elif env.msvc_mode:
866
+ env.Append(CCFLAGS=["/LD"]) # Create a DLL.
867
+ else:
868
+ assert False, env.the_cc_name
869
+
870
+
871
+ def discoverSourceFiles():
872
+ result = []
873
+
874
+ # Scan for Nuitka created source files, and add them too.
875
+ result.extend(scanSourceDir(env=env, dirname=source_dir, plugins=False))
876
+ result.extend(
877
+ scanSourceDir(
878
+ env=env,
879
+ dirname=os.path.join(source_dir, "plugins"),
880
+ plugins=True,
881
+ )
882
+ )
883
+
884
+ static_src_filenames = []
885
+
886
+ # Main program, unless of course it's a Python module/package we build.
887
+ if env.exe_mode:
888
+ static_src_filenames.append("MainProgram.c")
889
+
890
+ # TODO: Should have its dedicated file rather, since DLLs must not do
891
+ # a lot of things.
892
+ if env.dll_mode:
893
+ static_src_filenames.append("MainProgram.c")
894
+
895
+ # Compiled types.
896
+ static_src_filenames.append("CompiledFunctionType.c")
897
+
898
+ result += [
899
+ provideStaticSourceFile(
900
+ env=env,
901
+ sub_path=filename,
902
+ c11_mode=env.c11_mode,
903
+ )
904
+ for filename in static_src_filenames
905
+ ]
906
+
907
+ return result
908
+
909
+
910
+ source_files = discoverSourceFiles()
911
+
912
+ # Remove the target file to avoid cases where it falsely doesn't get rebuild and
913
+ # then lingers from previous builds, and also workaround for MinGW64 not
914
+ # supporting unicode result paths for "-o" basename.
915
+ result_exe = makeResultPathFileSystemEncodable(env=env, result_exe=result_exe)
916
+
917
+
918
+ if env.module_mode:
919
+ # For Python modules, the standard shared library extension is not what gets
920
+ # used. spell-checker: ignore SHLIBSUFFIX
921
+ module_suffix = getFilenameExtension(result_exe)
922
+ result_base_path = changeFilenameExtension(result_exe, "")
923
+
924
+ extra_suffix = getFilenameExtension(result_base_path)
925
+ if extra_suffix != "":
926
+ module_suffix = extra_suffix + module_suffix
927
+ result_base_path = changeFilenameExtension(result_base_path, "")
928
+
929
+ assert getFilenameExtension(result_base_path) == "", result_base_path
930
+
931
+ env["SHLIBSUFFIX"] = module_suffix
932
+
933
+ target = env.SharedLibrary(
934
+ result_base_path, source_files, no_import_lib=no_import_lib
935
+ )
936
+ elif env.dll_mode:
937
+ module_suffix = getFilenameExtension(result_exe)
938
+ result_base_path = changeFilenameExtension(result_exe, "")
939
+ env["SHLIBSUFFIX"] = module_suffix
940
+
941
+ target = env.SharedLibrary(
942
+ result_base_path, source_files, no_import_lib=no_import_lib
943
+ )
944
+ else:
945
+ target = env.Program(result_exe, source_files)
946
+
947
+ # Use compiler/linker flags provided via environment variables
948
+ importEnvironmentVariableSettings(env)
949
+
950
+
951
+ if job_count:
952
+ scons_details_logger.info("Told to run compilation on %d CPUs." % job_count)
953
+
954
+
955
+ def createBuildDefinitionsFile():
956
+ build_definitions = {}
957
+
958
+ if uninstalled_python and not env.static_libpython:
959
+ # Use the non-external one, so it's not a short path.
960
+ build_definitions["PYTHON_HOME_PATH"] = python_prefix
961
+
962
+ build_definitions["NO_PYTHON_WARNINGS"] = 1 if no_python_warnings else 0
963
+
964
+ if python_version < (3,):
965
+ build_definitions["SYSFLAG_PY3K_WARNING"] = (
966
+ 1 if python_sysflag_py3k_warning else 0
967
+ )
968
+
969
+ build_definitions["SYSFLAG_DIVISION_WARNING"] = (
970
+ 1 if python_sysflag_division_warning else 0
971
+ )
972
+
973
+ build_definitions["SYSFLAG_UNICODE"] = 1 if python_sysflag_unicode else 0
974
+
975
+ build_definitions["SYSFLAG_BYTES_WARNING"] = (
976
+ 1 if python_sysflag_bytes_warning else 0
977
+ )
978
+
979
+ build_definitions["SYSFLAG_NO_SITE"] = 1 if python_sysflag_no_site else 0
980
+
981
+ build_definitions["SYSFLAG_VERBOSE"] = 1 if python_sysflag_verbose else 0
982
+
983
+ build_definitions["SYSFLAG_UTF8"] = 1 if python_sysflag_utf8 else 0
984
+
985
+ build_definitions["SYSFLAG_OPTIMIZE"] = python_sysflag_optimize
986
+
987
+ build_definitions["SYSFLAG_DONTWRITEBYTECODE"] = (
988
+ 1 if python_sysflag_dontwritebytecode else 0
989
+ )
990
+
991
+ build_definitions["_NUITKA_NO_ASSERTS"] = 1 if python_flag_no_asserts else 0
992
+
993
+ build_definitions["_NUITKA_NO_DOCSTRINGS"] = 1 if python_flag_no_docstrings else 0
994
+
995
+ build_definitions["_NUITKA_NO_ANNOTATIONS"] = 1 if python_flag_no_annotations else 0
996
+
997
+ build_definitions["SYSFLAG_NO_RANDOMIZATION"] = (
998
+ 1 if python_sysflag_no_randomization else 0
999
+ )
1000
+
1001
+ build_definitions["SYSFLAG_UNBUFFERED"] = 1 if python_sysflag_unbuffered else 0
1002
+
1003
+ build_definitions["SYSFLAG_DONTWRITEBYTECODE"] = (
1004
+ 1 if python_sysflag_dontwritebytecode else 0
1005
+ )
1006
+
1007
+ build_definitions["SYSFLAG_SAFE_PATH"] = 1 if python_sysflag_safe_path else 0
1008
+
1009
+ build_definitions["SYSFLAG_ISOLATED"] = 1 if python_sysflag_isolated else 0
1010
+
1011
+ if forced_stdout_path:
1012
+ if forced_stdout_path == "{NONE}":
1013
+ build_definitions["NUITKA_FORCED_STDOUT_NONE_BOOL"] = 1
1014
+ elif forced_stdout_path == "{NULL}":
1015
+ build_definitions["NUITKA_FORCED_STDOUT_NULL_BOOL"] = 1
1016
+ else:
1017
+ build_definitions["NUITKA_FORCED_STDOUT_PATH"] = forced_stdout_path
1018
+
1019
+ if forced_stderr_path:
1020
+ if forced_stderr_path == "{NONE}":
1021
+ build_definitions["NUITKA_FORCED_STDERR_NONE_BOOL"] = 1
1022
+ elif forced_stderr_path == "{NULL}":
1023
+ build_definitions["NUITKA_FORCED_STDERR_NULL_BOOL"] = 1
1024
+ else:
1025
+ build_definitions["NUITKA_FORCED_STDERR_PATH"] = forced_stderr_path
1026
+
1027
+ build_definitions["NUITKA_MAIN_MODULE_NAME"] = main_module_name
1028
+ build_definitions["NUITKA_MAIN_IS_PACKAGE_BOOL"] = main_module_name != "__main__"
1029
+
1030
+ createDefinitionsFile(source_dir, "build_definitions.h", build_definitions)
1031
+
1032
+
1033
+ if forced_stderr_path and not forced_stdout_path:
1034
+ env.Append(CPPDEFINES=["NUITKA_STDERR_NOT_VISIBLE"])
1035
+
1036
+ if file_reference_mode == "original":
1037
+ env.Append(CPPDEFINES=["_NUITKA_FILE_REFERENCE_ORIGINAL_MODE"])
1038
+
1039
+
1040
+ createBuildDefinitionsFile()
1041
+
1042
+ # The meta path based loader might want to respect that, so it does verbose traces in module
1043
+ # mode, mostly for debugging purposes only.
1044
+ if env.module_mode and python_sysflag_verbose:
1045
+ env.Append(CPPDEFINES=["_NUITKA_SYSFLAG_VERBOSE=1"])
1046
+
1047
+ # Hack to make Scons use tempfile for gcc linking, to avoid line length limits,
1048
+ # which can make linking fail with many modules otherwise. Most needed on Windows,
1049
+ # but useful on other platforms too.
1050
+ if env.gcc_mode:
1051
+ makeGccUseLinkerFile(
1052
+ env=env,
1053
+ source_files=source_files,
1054
+ )
1055
+
1056
+ # Plugin contributed C defines should be used too.
1057
+ env.Append(CPPDEFINES=cpp_defines)
1058
+ # Plugin contributed C include directories should be used too.
1059
+ env.Append(CPPPATH=cpp_include_dirs)
1060
+ # Plugin contributed link dirs should be used too.
1061
+ env.Append(LIBPATH=link_dirs)
1062
+ # Plugin contributed link libraries should be used too.
1063
+ env.Append(LIBS=link_libraries)
1064
+
1065
+ # Work around windows bugs and use watchdogs to track progress of compilation.
1066
+ enableSpawnMonitoring(
1067
+ env=env,
1068
+ source_files=source_files,
1069
+ )
1070
+
1071
+ # Before we go, also lets turn KeyboardInterrupt into a mere error exit as the
1072
+ # scons traceback is not going to be very interesting to us.
1073
+ changeKeyboardInterruptToErrorExit()
1074
+
1075
+ # Check if ccache is installed, and complain if it is not.
1076
+ if env.gcc_mode:
1077
+ enableCcache(
1078
+ env=env,
1079
+ source_dir=source_dir,
1080
+ python_prefix=python_prefix_external,
1081
+ assume_yes_for_downloads=assume_yes_for_downloads,
1082
+ disable_ccache=disable_ccache,
1083
+ )
1084
+
1085
+ if env.msvc_mode and not disable_ccache:
1086
+ enableClcache(
1087
+ env=env,
1088
+ source_dir=source_dir,
1089
+ )
1090
+
1091
+ writeSconsReport(env=env, target=target)
1092
+
1093
+ setSconsProgressBarTotal(name=env.progressbar_name, total=len(source_files))
1094
+
1095
+ scons_details_logger.info("Launching Scons target: %s" % target)
1096
+ env.Default(target)
1097
+
1098
+ # Part of "Nuitka", an optimizing Python compiler that is compatible and
1099
+ # integrates with CPython, but also works on its own.
1100
+ #
1101
+ # Licensed under the Apache License, Version 2.0 (the "License");
1102
+ # you may not use this file except in compliance with the License.
1103
+ # You may obtain a copy of the License at
1104
+ #
1105
+ # http://www.apache.org/licenses/LICENSE-2.0
1106
+ #
1107
+ # Unless required by applicable law or agreed to in writing, software
1108
+ # distributed under the License is distributed on an "AS IS" BASIS,
1109
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1110
+ # See the License for the specific language governing permissions and
1111
+ # limitations under the License.