Nuitka-winsvc 2.5.1__cp311-cp311-win_amd64.whl → 2.6__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of Nuitka-winsvc might be problematic. Click here for more details.

Files changed (697) hide show
  1. {Nuitka_winsvc-2.5.1.data → Nuitka_winsvc-2.6.data}/scripts/nuitka-run.cmd +1 -1
  2. {Nuitka_winsvc-2.5.1.data → Nuitka_winsvc-2.6.data}/scripts/nuitka.cmd +1 -1
  3. {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/METADATA +80 -122
  4. Nuitka_winsvc-2.6.dist-info/RECORD +988 -0
  5. {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/WHEEL +1 -1
  6. nuitka/Builtins.py +1 -1
  7. nuitka/BytecodeCaching.py +1 -1
  8. nuitka/Bytecodes.py +1 -1
  9. nuitka/CacheCleanup.py +1 -1
  10. nuitka/Constants.py +1 -1
  11. nuitka/Errors.py +1 -1
  12. nuitka/HardImportRegistry.py +1 -1
  13. nuitka/MainControl.py +93 -94
  14. nuitka/ModuleRegistry.py +1 -1
  15. nuitka/OptionParsing.py +90 -20
  16. nuitka/Options.py +160 -53
  17. nuitka/OutputDirectories.py +5 -3
  18. nuitka/PostProcessing.py +76 -27
  19. nuitka/Progress.py +1 -1
  20. nuitka/PythonFlavors.py +9 -3
  21. nuitka/PythonOperators.py +1 -1
  22. nuitka/PythonVersions.py +8 -4
  23. nuitka/Serialization.py +1 -1
  24. nuitka/SourceCodeReferences.py +1 -1
  25. nuitka/Tracing.py +2 -1
  26. nuitka/TreeXML.py +1 -1
  27. nuitka/Variables.py +1 -1
  28. nuitka/Version.py +2 -2
  29. nuitka/__init__.py +1 -1
  30. nuitka/__main__.py +4 -1
  31. nuitka/__past__.py +1 -1
  32. nuitka/build/Backend.scons +44 -66
  33. nuitka/build/CCompilerVersion.scons +2 -1
  34. nuitka/build/DataComposerInterface.py +2 -1
  35. nuitka/build/Offsets.scons +644 -0
  36. nuitka/build/Onefile.scons +5 -13
  37. nuitka/build/SconsCaching.py +9 -7
  38. nuitka/build/SconsCompilerSettings.py +54 -31
  39. nuitka/build/SconsHacks.py +3 -3
  40. nuitka/build/SconsInterface.py +86 -56
  41. nuitka/build/SconsProgress.py +12 -5
  42. nuitka/build/SconsSpawn.py +3 -3
  43. nuitka/build/SconsUtils.py +20 -1
  44. nuitka/build/__init__.py +1 -1
  45. nuitka/build/include/nuitka/allocator.h +3 -1
  46. nuitka/build/include/nuitka/builtins.h +1 -1
  47. nuitka/build/include/nuitka/calling.h +1 -1
  48. nuitka/build/include/nuitka/checkers.h +1 -1
  49. nuitka/build/include/nuitka/checksum_tools.h +1 -1
  50. nuitka/build/include/nuitka/compiled_asyncgen.h +4 -2
  51. nuitka/build/include/nuitka/compiled_cell.h +1 -1
  52. nuitka/build/include/nuitka/compiled_coroutine.h +3 -2
  53. nuitka/build/include/nuitka/compiled_frame.h +5 -12
  54. nuitka/build/include/nuitka/compiled_function.h +2 -3
  55. nuitka/build/include/nuitka/compiled_generator.h +3 -2
  56. nuitka/build/include/nuitka/compiled_method.h +1 -1
  57. nuitka/build/include/nuitka/constants.h +7 -1
  58. nuitka/build/include/nuitka/constants_blob.h +1 -1
  59. nuitka/build/include/nuitka/debug_settings.h +1 -1
  60. nuitka/build/include/nuitka/environment_variables.h +1 -1
  61. nuitka/build/include/nuitka/environment_variables_system.h +1 -1
  62. nuitka/build/include/nuitka/exception_groups.h +1 -1
  63. nuitka/build/include/nuitka/exceptions.h +1 -1
  64. nuitka/build/include/nuitka/filesystem_paths.h +4 -1
  65. nuitka/build/include/nuitka/freelists.h +2 -2
  66. nuitka/build/include/nuitka/helper/attributes.h +1 -1
  67. nuitka/build/include/nuitka/helper/boolean.h +1 -1
  68. nuitka/build/include/nuitka/helper/bytearrays.h +1 -1
  69. nuitka/build/include/nuitka/helper/bytes.h +1 -1
  70. nuitka/build/include/nuitka/helper/calling_generated.h +1 -1
  71. nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +1 -1
  72. nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +1 -1
  73. nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +1 -1
  74. nuitka/build/include/nuitka/helper/comparisons_dual_le.h +1 -1
  75. nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +1 -1
  76. nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +1 -1
  77. nuitka/build/include/nuitka/helper/comparisons_eq.h +1 -1
  78. nuitka/build/include/nuitka/helper/comparisons_ge.h +1 -1
  79. nuitka/build/include/nuitka/helper/comparisons_gt.h +1 -1
  80. nuitka/build/include/nuitka/helper/comparisons_le.h +1 -1
  81. nuitka/build/include/nuitka/helper/comparisons_lt.h +1 -1
  82. nuitka/build/include/nuitka/helper/comparisons_ne.h +1 -1
  83. nuitka/build/include/nuitka/helper/complex.h +1 -1
  84. nuitka/build/include/nuitka/helper/dictionaries.h +11 -3
  85. nuitka/build/include/nuitka/helper/floats.h +1 -1
  86. nuitka/build/include/nuitka/helper/import_hard.h +1 -1
  87. nuitka/build/include/nuitka/helper/indexes.h +1 -1
  88. nuitka/build/include/nuitka/helper/ints.h +1 -1
  89. nuitka/build/include/nuitka/helper/iterators.h +1 -1
  90. nuitka/build/include/nuitka/helper/lists.h +1 -1
  91. nuitka/build/include/nuitka/helper/lists_generated.h +1 -1
  92. nuitka/build/include/nuitka/helper/mappings.h +1 -1
  93. nuitka/build/include/nuitka/helper/operations.h +1 -1
  94. nuitka/build/include/nuitka/helper/operations_binary_add.h +1 -1
  95. nuitka/build/include/nuitka/helper/operations_binary_bitand.h +1 -1
  96. nuitka/build/include/nuitka/helper/operations_binary_bitor.h +1 -1
  97. nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +1 -1
  98. nuitka/build/include/nuitka/helper/operations_binary_divmod.h +1 -1
  99. nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +1 -1
  100. nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +1 -1
  101. nuitka/build/include/nuitka/helper/operations_binary_lshift.h +1 -1
  102. nuitka/build/include/nuitka/helper/operations_binary_matmult.h +1 -1
  103. nuitka/build/include/nuitka/helper/operations_binary_mod.h +1 -1
  104. nuitka/build/include/nuitka/helper/operations_binary_mult.h +1 -1
  105. nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +1 -1
  106. nuitka/build/include/nuitka/helper/operations_binary_pow.h +1 -1
  107. nuitka/build/include/nuitka/helper/operations_binary_rshift.h +1 -1
  108. nuitka/build/include/nuitka/helper/operations_binary_sub.h +1 -1
  109. nuitka/build/include/nuitka/helper/operations_binary_truediv.h +1 -1
  110. nuitka/build/include/nuitka/helper/operations_builtin_types.h +1 -1
  111. nuitka/build/include/nuitka/helper/operations_inplace_add.h +1 -1
  112. nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +1 -1
  113. nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +1 -1
  114. nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +1 -1
  115. nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +1 -1
  116. nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +1 -1
  117. nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +1 -1
  118. nuitka/build/include/nuitka/helper/operations_inplace_mod.h +1 -1
  119. nuitka/build/include/nuitka/helper/operations_inplace_mult.h +1 -1
  120. nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +1 -1
  121. nuitka/build/include/nuitka/helper/operations_inplace_pow.h +1 -1
  122. nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +1 -1
  123. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +1 -1
  124. nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +1 -1
  125. nuitka/build/include/nuitka/helper/raising.h +1 -1
  126. nuitka/build/include/nuitka/helper/rangeobjects.h +1 -1
  127. nuitka/build/include/nuitka/helper/richcomparisons.h +1 -1
  128. nuitka/build/include/nuitka/helper/sequences.h +1 -1
  129. nuitka/build/include/nuitka/helper/sets.h +1 -1
  130. nuitka/build/include/nuitka/helper/slices.h +1 -1
  131. nuitka/build/include/nuitka/helper/strings.h +1 -1
  132. nuitka/build/include/nuitka/helper/subscripts.h +1 -1
  133. nuitka/build/include/nuitka/helper/tuples.h +13 -1
  134. nuitka/build/include/nuitka/helpers.h +1 -43
  135. nuitka/build/include/nuitka/importing.h +1 -1
  136. nuitka/build/include/nuitka/jit_sources.h +1 -1
  137. nuitka/build/include/nuitka/prelude.h +11 -10
  138. nuitka/build/include/nuitka/printing.h +1 -1
  139. nuitka/build/include/nuitka/python_pgo.h +1 -1
  140. nuitka/build/include/nuitka/safe_string_ops.h +1 -1
  141. nuitka/build/include/nuitka/threading.h +1 -1
  142. nuitka/build/include/nuitka/tracing.h +1 -1
  143. nuitka/build/include/nuitka/type_aliases.h +1 -1
  144. nuitka/build/include/nuitka/unfreezing.h +1 -1
  145. nuitka/build/inline_copy/pefile/LICENSE.txt +21 -0
  146. nuitka/build/inline_copy/pefile/pefile.py +8034 -0
  147. nuitka/build/static_src/CompiledAsyncgenType.c +85 -71
  148. nuitka/build/static_src/CompiledCellType.c +2 -1
  149. nuitka/build/static_src/CompiledCodeHelpers.c +8 -26
  150. nuitka/build/static_src/CompiledCoroutineType.c +33 -35
  151. nuitka/build/static_src/CompiledFrameType.c +63 -5
  152. nuitka/build/static_src/CompiledFunctionType.c +11 -13
  153. nuitka/build/static_src/CompiledGeneratorType.c +64 -11
  154. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +33 -24
  155. nuitka/build/static_src/CompiledMethodType.c +2 -1
  156. nuitka/build/static_src/GenerateHeadersMain.c +30 -0
  157. nuitka/build/static_src/HelpersAllocator.c +1 -1
  158. nuitka/build/static_src/HelpersAttributes.c +5 -2
  159. nuitka/build/static_src/HelpersBuiltin.c +2 -2
  160. nuitka/build/static_src/HelpersBuiltinTypeMethods.c +1 -1
  161. nuitka/build/static_src/HelpersBytes.c +1 -1
  162. nuitka/build/static_src/HelpersCalling.c +1 -1
  163. nuitka/build/static_src/HelpersCallingGenerated.c +6 -16
  164. nuitka/build/static_src/HelpersChecksumTools.c +1 -1
  165. nuitka/build/static_src/HelpersClasses.c +1 -1
  166. nuitka/build/static_src/HelpersComparisonDualEq.c +1 -1
  167. nuitka/build/static_src/HelpersComparisonDualGe.c +1 -1
  168. nuitka/build/static_src/HelpersComparisonDualGt.c +1 -1
  169. nuitka/build/static_src/HelpersComparisonDualLe.c +1 -1
  170. nuitka/build/static_src/HelpersComparisonDualLt.c +1 -1
  171. nuitka/build/static_src/HelpersComparisonDualNe.c +1 -1
  172. nuitka/build/static_src/HelpersComparisonEq.c +1 -1
  173. nuitka/build/static_src/HelpersComparisonEqUtils.c +1 -1
  174. nuitka/build/static_src/HelpersComparisonGe.c +1 -1
  175. nuitka/build/static_src/HelpersComparisonGt.c +1 -1
  176. nuitka/build/static_src/HelpersComparisonLe.c +1 -1
  177. nuitka/build/static_src/HelpersComparisonLt.c +1 -1
  178. nuitka/build/static_src/HelpersComparisonNe.c +1 -1
  179. nuitka/build/static_src/HelpersConsole.c +1 -1
  180. nuitka/build/static_src/HelpersConstantsBlob.c +199 -50
  181. nuitka/build/static_src/HelpersDeepcopy.c +4 -1
  182. nuitka/build/static_src/HelpersDictionaries.c +15 -3
  183. nuitka/build/static_src/HelpersDictionariesGenerated.c +13 -2
  184. nuitka/build/static_src/HelpersDumpBacktraces.c +1 -1
  185. nuitka/build/static_src/HelpersEnvironmentVariables.c +1 -1
  186. nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +1 -1
  187. nuitka/build/static_src/HelpersExceptions.c +1 -1
  188. nuitka/build/static_src/HelpersFiles.c +18 -10
  189. nuitka/build/static_src/HelpersFilesystemPaths.c +36 -16
  190. nuitka/build/static_src/HelpersFloats.c +1 -1
  191. nuitka/build/static_src/HelpersHeapStorage.c +1 -1
  192. nuitka/build/static_src/HelpersImport.c +1 -1
  193. nuitka/build/static_src/HelpersImportHard.c +1 -1
  194. nuitka/build/static_src/HelpersJitSources.c +1 -1
  195. nuitka/build/static_src/HelpersLists.c +2 -1
  196. nuitka/build/static_src/HelpersListsGenerated.c +1 -1
  197. nuitka/build/static_src/HelpersMappings.c +1 -1
  198. nuitka/build/static_src/HelpersMatching.c +1 -1
  199. nuitka/build/static_src/HelpersOperationBinaryAdd.c +1 -1
  200. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +1 -1
  201. nuitka/build/static_src/HelpersOperationBinaryBitand.c +1 -1
  202. nuitka/build/static_src/HelpersOperationBinaryBitor.c +1 -1
  203. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +1 -1
  204. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +1 -1
  205. nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +1 -1
  206. nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +1 -1
  207. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +1 -1
  208. nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +1 -1
  209. nuitka/build/static_src/HelpersOperationBinaryLshift.c +1 -1
  210. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +1 -1
  211. nuitka/build/static_src/HelpersOperationBinaryMod.c +1 -1
  212. nuitka/build/static_src/HelpersOperationBinaryMult.c +1 -1
  213. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +1 -1
  214. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +1 -1
  215. nuitka/build/static_src/HelpersOperationBinaryPow.c +1 -1
  216. nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +1 -1
  217. nuitka/build/static_src/HelpersOperationBinaryRshift.c +1 -1
  218. nuitka/build/static_src/HelpersOperationBinarySub.c +1 -1
  219. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +1 -1
  220. nuitka/build/static_src/HelpersOperationInplaceAdd.c +1 -1
  221. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +1 -1
  222. nuitka/build/static_src/HelpersOperationInplaceBitand.c +1 -1
  223. nuitka/build/static_src/HelpersOperationInplaceBitor.c +1 -1
  224. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +1 -1
  225. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +1 -1
  226. nuitka/build/static_src/HelpersOperationInplaceLshift.c +1 -1
  227. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +1 -1
  228. nuitka/build/static_src/HelpersOperationInplaceMod.c +1 -1
  229. nuitka/build/static_src/HelpersOperationInplaceMult.c +1 -1
  230. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +1 -1
  231. nuitka/build/static_src/HelpersOperationInplacePow.c +1 -1
  232. nuitka/build/static_src/HelpersOperationInplaceRshift.c +1 -1
  233. nuitka/build/static_src/HelpersOperationInplaceSub.c +1 -1
  234. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +1 -1
  235. nuitka/build/static_src/HelpersProfiling.c +1 -1
  236. nuitka/build/static_src/HelpersPythonPgo.c +5 -2
  237. nuitka/build/static_src/HelpersRaising.c +1 -1
  238. nuitka/build/static_src/HelpersSafeStrings.c +1 -1
  239. nuitka/build/static_src/HelpersSequences.c +1 -1
  240. nuitka/build/static_src/HelpersSlices.c +1 -1
  241. nuitka/build/static_src/HelpersStrings.c +1 -1
  242. nuitka/build/static_src/HelpersTuples.c +2 -2
  243. nuitka/build/static_src/HelpersTypes.c +1 -1
  244. nuitka/build/static_src/InspectPatcher.c +2 -1
  245. nuitka/build/static_src/MainProgram.c +30 -9
  246. nuitka/build/static_src/MetaPathBasedLoader.c +2 -1
  247. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +1 -1
  248. nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +1 -1
  249. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +17 -4
  250. nuitka/build/static_src/OnefileBootstrap.c +3 -3
  251. nuitka/build/static_src/OnefileSplashScreen.cpp +1 -1
  252. nuitka/code_generation/AsyncgenCodes.py +5 -6
  253. nuitka/code_generation/AttributeCodes.py +1 -1
  254. nuitka/code_generation/BinaryOperationHelperDefinitions.py +1 -1
  255. nuitka/code_generation/BranchCodes.py +1 -1
  256. nuitka/code_generation/BuiltinCodes.py +15 -5
  257. nuitka/code_generation/CallCodes.py +1 -1
  258. nuitka/code_generation/ClassCodes.py +1 -1
  259. nuitka/code_generation/CodeGeneration.py +23 -17
  260. nuitka/code_generation/CodeHelperSelection.py +1 -1
  261. nuitka/code_generation/CodeHelpers.py +1 -1
  262. nuitka/code_generation/CodeObjectCodes.py +19 -2
  263. nuitka/code_generation/ComparisonCodes.py +1 -1
  264. nuitka/code_generation/ComparisonHelperDefinitions.py +1 -1
  265. nuitka/code_generation/ConditionalCodes.py +1 -1
  266. nuitka/code_generation/ConstantCodes.py +1 -1
  267. nuitka/code_generation/Contexts.py +52 -39
  268. nuitka/code_generation/CoroutineCodes.py +4 -5
  269. nuitka/code_generation/CtypesCodes.py +1 -1
  270. nuitka/code_generation/DictCodes.py +1 -1
  271. nuitka/code_generation/Emission.py +1 -1
  272. nuitka/code_generation/ErrorCodes.py +1 -1
  273. nuitka/code_generation/EvalCodes.py +1 -1
  274. nuitka/code_generation/ExceptionCodes.py +1 -1
  275. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +1 -1
  276. nuitka/code_generation/ExpressionCodes.py +1 -1
  277. nuitka/code_generation/FrameCodes.py +26 -17
  278. nuitka/code_generation/FunctionCodes.py +9 -15
  279. nuitka/code_generation/GeneratorCodes.py +9 -10
  280. nuitka/code_generation/GlobalConstants.py +6 -4
  281. nuitka/code_generation/GlobalsLocalsCodes.py +1 -1
  282. nuitka/code_generation/IdCodes.py +1 -1
  283. nuitka/code_generation/ImportCodes.py +1 -1
  284. nuitka/code_generation/Indentation.py +1 -1
  285. nuitka/code_generation/IndexCodes.py +1 -1
  286. nuitka/code_generation/InjectCCodes.py +1 -1
  287. nuitka/code_generation/IntegerCodes.py +1 -1
  288. nuitka/code_generation/IteratorCodes.py +1 -1
  289. nuitka/code_generation/JitCodes.py +1 -1
  290. nuitka/code_generation/LabelCodes.py +1 -1
  291. nuitka/code_generation/LineNumberCodes.py +1 -1
  292. nuitka/code_generation/ListCodes.py +1 -1
  293. nuitka/code_generation/LoaderCodes.py +1 -1
  294. nuitka/code_generation/LocalsDictCodes.py +1 -1
  295. nuitka/code_generation/LoopCodes.py +1 -1
  296. nuitka/code_generation/MatchCodes.py +1 -1
  297. nuitka/code_generation/ModuleCodes.py +31 -4
  298. nuitka/code_generation/Namify.py +4 -1
  299. nuitka/code_generation/NetworkxCodes.py +1 -1
  300. nuitka/code_generation/OperationCodes.py +1 -1
  301. nuitka/code_generation/PackageResourceCodes.py +4 -10
  302. nuitka/code_generation/PrintCodes.py +1 -1
  303. nuitka/code_generation/PythonAPICodes.py +1 -1
  304. nuitka/code_generation/RaisingCodes.py +1 -1
  305. nuitka/code_generation/Reports.py +1 -1
  306. nuitka/code_generation/ReturnCodes.py +1 -1
  307. nuitka/code_generation/SetCodes.py +1 -1
  308. nuitka/code_generation/SliceCodes.py +1 -1
  309. nuitka/code_generation/StringCodes.py +1 -1
  310. nuitka/code_generation/SubscriptCodes.py +1 -1
  311. nuitka/code_generation/TensorflowCodes.py +1 -1
  312. nuitka/code_generation/TryCodes.py +1 -1
  313. nuitka/code_generation/TupleCodes.py +1 -1
  314. nuitka/code_generation/TypeAliasCodes.py +1 -1
  315. nuitka/code_generation/VariableCodes.py +1 -1
  316. nuitka/code_generation/VariableDeclarations.py +1 -1
  317. nuitka/code_generation/YieldCodes.py +1 -1
  318. nuitka/code_generation/__init__.py +1 -1
  319. nuitka/code_generation/c_types/CTypeBases.py +1 -1
  320. nuitka/code_generation/c_types/CTypeBooleans.py +1 -1
  321. nuitka/code_generation/c_types/CTypeCFloats.py +1 -1
  322. nuitka/code_generation/c_types/CTypeCLongs.py +1 -1
  323. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +1 -1
  324. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +1 -1
  325. nuitka/code_generation/c_types/CTypeNuitkaInts.py +1 -1
  326. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +1 -1
  327. nuitka/code_generation/c_types/CTypePyObjectPointers.py +1 -1
  328. nuitka/code_generation/c_types/CTypeVoids.py +1 -1
  329. nuitka/code_generation/c_types/__init__.py +1 -1
  330. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +1 -1
  331. nuitka/code_generation/templates/CodeTemplatesConstants.py +2 -2
  332. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +1 -1
  333. nuitka/code_generation/templates/CodeTemplatesExceptions.py +1 -1
  334. nuitka/code_generation/templates/CodeTemplatesFrames.py +21 -25
  335. nuitka/code_generation/templates/CodeTemplatesFunction.py +1 -1
  336. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +3 -3
  337. nuitka/code_generation/templates/CodeTemplatesIterators.py +1 -1
  338. nuitka/code_generation/templates/CodeTemplatesLoader.py +26 -3
  339. nuitka/code_generation/templates/CodeTemplatesModules.py +21 -8
  340. nuitka/code_generation/templates/CodeTemplatesVariables.py +24 -21
  341. nuitka/code_generation/templates/TemplateDebugWrapper.py +1 -1
  342. nuitka/code_generation/templates/__init__.py +1 -1
  343. nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +1 -1
  344. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +1 -1
  345. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +1 -1
  346. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +21 -1
  347. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +1 -1
  348. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +1 -1
  349. nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +1 -1
  350. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +5 -2
  351. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -1
  352. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +1 -1
  353. nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +1 -1
  354. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +1 -1
  355. nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +1 -1
  356. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +1 -1
  357. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +1 -1
  358. nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +1 -1
  359. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +1 -1
  360. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +1 -1
  361. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +1 -1
  362. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +1 -1
  363. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +1 -1
  364. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +1 -1
  365. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +1 -1
  366. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +1 -1
  367. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +1 -1
  368. nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +1 -1
  369. nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +1 -1
  370. nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +1 -1
  371. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +1 -1
  372. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +1 -1
  373. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +1 -1
  374. nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +1 -1
  375. nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +1 -1
  376. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +1 -1
  377. nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +1 -1
  378. nuitka/containers/Namedtuples.py +1 -1
  379. nuitka/containers/OrderedSetsFallback.py +1 -1
  380. nuitka/containers/__init__.py +1 -1
  381. nuitka/distutils/Build.py +1 -1
  382. nuitka/distutils/DistutilCommands.py +2 -2
  383. nuitka/distutils/__init__.py +1 -1
  384. nuitka/finalizations/Finalization.py +1 -1
  385. nuitka/finalizations/FinalizeMarkups.py +1 -1
  386. nuitka/finalizations/__init__.py +1 -1
  387. nuitka/freezer/DependsExe.py +2 -1
  388. nuitka/freezer/DllDependenciesCommon.py +1 -1
  389. nuitka/freezer/DllDependenciesMacOS.py +1 -1
  390. nuitka/freezer/DllDependenciesPosix.py +1 -1
  391. nuitka/freezer/DllDependenciesWin32.py +111 -25
  392. nuitka/freezer/ImportDetection.py +5 -2
  393. nuitka/freezer/IncludedDataFiles.py +11 -2
  394. nuitka/freezer/IncludedEntryPoints.py +1 -1
  395. nuitka/freezer/Onefile.py +14 -15
  396. nuitka/freezer/Standalone.py +6 -3
  397. nuitka/freezer/__init__.py +1 -1
  398. nuitka/importing/IgnoreListing.py +1 -1
  399. nuitka/importing/ImportCache.py +1 -1
  400. nuitka/importing/ImportResolving.py +1 -1
  401. nuitka/importing/Importing.py +4 -3
  402. nuitka/importing/PreloadedPackages.py +1 -1
  403. nuitka/importing/Recursion.py +37 -12
  404. nuitka/importing/StandardLibrary.py +1 -1
  405. nuitka/importing/__init__.py +1 -1
  406. nuitka/nodes/AsyncgenNodes.py +1 -1
  407. nuitka/nodes/AttributeLookupNodes.py +1 -1
  408. nuitka/nodes/AttributeNodes.py +1 -1
  409. nuitka/nodes/AttributeNodesGenerated.py +1 -1
  410. nuitka/nodes/BuiltinAllNodes.py +1 -1
  411. nuitka/nodes/BuiltinAnyNodes.py +1 -1
  412. nuitka/nodes/BuiltinComplexNodes.py +1 -1
  413. nuitka/nodes/BuiltinDecodingNodes.py +1 -1
  414. nuitka/nodes/BuiltinDecoratorNodes.py +1 -1
  415. nuitka/nodes/BuiltinDictNodes.py +1 -1
  416. nuitka/nodes/BuiltinFormatNodes.py +1 -1
  417. nuitka/nodes/BuiltinHashNodes.py +1 -1
  418. nuitka/nodes/BuiltinInputNodes.py +1 -1
  419. nuitka/nodes/BuiltinIntegerNodes.py +1 -1
  420. nuitka/nodes/BuiltinIteratorNodes.py +2 -2
  421. nuitka/nodes/BuiltinLenNodes.py +1 -1
  422. nuitka/nodes/BuiltinNextNodes.py +1 -1
  423. nuitka/nodes/BuiltinOpenNodes.py +1 -1
  424. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +1 -1
  425. nuitka/nodes/BuiltinRangeNodes.py +1 -1
  426. nuitka/nodes/BuiltinRefNodes.py +1 -1
  427. nuitka/nodes/BuiltinSumNodes.py +1 -1
  428. nuitka/nodes/BuiltinTypeNodes.py +1 -1
  429. nuitka/nodes/BuiltinVarsNodes.py +1 -1
  430. nuitka/nodes/BytesNodes.py +1 -1
  431. nuitka/nodes/CallNodes.py +1 -1
  432. nuitka/nodes/Checkers.py +1 -1
  433. nuitka/nodes/ChildrenHavingMixins.py +227 -3
  434. nuitka/nodes/ClassNodes.py +1 -1
  435. nuitka/nodes/CodeObjectSpecs.py +4 -4
  436. nuitka/nodes/ComparisonNodes.py +1 -1
  437. nuitka/nodes/ConditionalNodes.py +1 -1
  438. nuitka/nodes/ConstantRefNodes.py +1 -1
  439. nuitka/nodes/ContainerMakingNodes.py +1 -1
  440. nuitka/nodes/ContainerOperationNodes.py +1 -1
  441. nuitka/nodes/CoroutineNodes.py +1 -1
  442. nuitka/nodes/CtypesNodes.py +1 -1
  443. nuitka/nodes/DictionaryNodes.py +2 -2
  444. nuitka/nodes/ExceptionNodes.py +1 -1
  445. nuitka/nodes/ExecEvalNodes.py +1 -1
  446. nuitka/nodes/ExpressionBases.py +1 -1
  447. nuitka/nodes/ExpressionBasesGenerated.py +1 -1
  448. nuitka/nodes/ExpressionShapeMixins.py +1 -1
  449. nuitka/nodes/FrameNodes.py +19 -7
  450. nuitka/nodes/FunctionAttributeNodes.py +1 -1
  451. nuitka/nodes/FunctionNodes.py +1 -1
  452. nuitka/nodes/FutureSpecs.py +34 -2
  453. nuitka/nodes/GeneratorNodes.py +1 -1
  454. nuitka/nodes/GlobalsLocalsNodes.py +1 -1
  455. nuitka/nodes/HardImportNodesGenerated.py +140 -56
  456. nuitka/nodes/ImportHardNodes.py +1 -1
  457. nuitka/nodes/ImportNodes.py +1 -1
  458. nuitka/nodes/IndicatorMixins.py +1 -1
  459. nuitka/nodes/InjectCNodes.py +1 -1
  460. nuitka/nodes/IterationHandles.py +1 -1
  461. nuitka/nodes/KeyValuePairNodes.py +1 -1
  462. nuitka/nodes/ListOperationNodes.py +1 -1
  463. nuitka/nodes/LocalsDictNodes.py +1 -1
  464. nuitka/nodes/LocalsScopes.py +1 -1
  465. nuitka/nodes/LoopNodes.py +1 -1
  466. nuitka/nodes/MatchNodes.py +1 -1
  467. nuitka/nodes/ModuleAttributeNodes.py +1 -1
  468. nuitka/nodes/ModuleNodes.py +2 -2
  469. nuitka/nodes/NetworkxNodes.py +1 -1
  470. nuitka/nodes/NodeBases.py +1 -1
  471. nuitka/nodes/NodeMakingHelpers.py +1 -1
  472. nuitka/nodes/NodeMetaClasses.py +1 -1
  473. nuitka/nodes/OperatorNodes.py +1 -1
  474. nuitka/nodes/OperatorNodesUnary.py +1 -1
  475. nuitka/nodes/OsSysNodes.py +1 -1
  476. nuitka/nodes/OutlineNodes.py +1 -1
  477. nuitka/nodes/PackageMetadataNodes.py +1 -1
  478. nuitka/nodes/PackageResourceNodes.py +42 -7
  479. nuitka/nodes/PrintNodes.py +1 -1
  480. nuitka/nodes/ReturnNodes.py +1 -1
  481. nuitka/nodes/SideEffectNodes.py +1 -1
  482. nuitka/nodes/SliceNodes.py +1 -1
  483. nuitka/nodes/StatementBasesGenerated.py +1 -1
  484. nuitka/nodes/StatementNodes.py +1 -1
  485. nuitka/nodes/StrNodes.py +1 -1
  486. nuitka/nodes/StringConcatenationNodes.py +1 -1
  487. nuitka/nodes/SubscriptNodes.py +1 -1
  488. nuitka/nodes/TensorflowNodes.py +1 -1
  489. nuitka/nodes/TryNodes.py +1 -1
  490. nuitka/nodes/TypeMatchNodes.py +1 -1
  491. nuitka/nodes/TypeNodes.py +1 -1
  492. nuitka/nodes/VariableAssignNodes.py +3 -2
  493. nuitka/nodes/VariableDelNodes.py +1 -1
  494. nuitka/nodes/VariableNameNodes.py +1 -1
  495. nuitka/nodes/VariableRefNodes.py +1 -1
  496. nuitka/nodes/VariableReleaseNodes.py +1 -1
  497. nuitka/nodes/YieldNodes.py +1 -1
  498. nuitka/nodes/__init__.py +1 -1
  499. nuitka/nodes/shapes/BuiltinTypeShapes.py +1 -1
  500. nuitka/nodes/shapes/ControlFlowDescriptions.py +1 -1
  501. nuitka/nodes/shapes/IteratorShapes.py +71 -0
  502. nuitka/nodes/shapes/ShapeMixins.py +4 -3
  503. nuitka/nodes/shapes/StandardShapes.py +2 -51
  504. nuitka/nodes/shapes/__init__.py +1 -1
  505. nuitka/optimizations/BytecodeDemotion.py +1 -1
  506. nuitka/optimizations/FunctionInlining.py +1 -1
  507. nuitka/optimizations/Graphs.py +1 -1
  508. nuitka/optimizations/Optimization.py +1 -1
  509. nuitka/optimizations/OptimizeBuiltinCalls.py +1 -1
  510. nuitka/optimizations/Tags.py +1 -1
  511. nuitka/optimizations/TraceCollections.py +1 -1
  512. nuitka/optimizations/ValueTraces.py +1 -1
  513. nuitka/optimizations/__init__.py +1 -1
  514. nuitka/pgo/PGO.py +1 -1
  515. nuitka/pgo/__init__.py +1 -1
  516. nuitka/plugins/PluginBase.py +24 -3
  517. nuitka/plugins/Plugins.py +67 -14
  518. nuitka/plugins/YamlPluginBase.py +1 -1
  519. nuitka/plugins/__init__.py +1 -1
  520. nuitka/plugins/standard/AntiBloatPlugin.py +2 -1
  521. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +2 -1
  522. nuitka/plugins/standard/DataFilesPlugin.py +2 -2
  523. nuitka/plugins/standard/DelvewheelPlugin.py +2 -1
  524. nuitka/plugins/standard/DillPlugin/DillPlugin.c +1 -1
  525. nuitka/plugins/standard/DillPlugin/dill-postLoad.py +1 -1
  526. nuitka/plugins/standard/DillPlugin.py +2 -2
  527. nuitka/plugins/standard/DllFilesPlugin.py +80 -14
  528. nuitka/plugins/standard/EnumPlugin.py +2 -2
  529. nuitka/plugins/standard/EventletPlugin.py +2 -1
  530. nuitka/plugins/standard/GeventPlugin.py +2 -1
  531. nuitka/plugins/standard/GiPlugin.py +2 -1
  532. nuitka/plugins/standard/GlfwPlugin.py +2 -1
  533. nuitka/plugins/standard/ImplicitImports.py +8 -6
  534. nuitka/plugins/standard/KivyPlugin.py +2 -1
  535. nuitka/plugins/standard/MatplotlibPlugin.py +3 -2
  536. nuitka/plugins/standard/MultiprocessingPlugin.py +2 -1
  537. nuitka/plugins/standard/NumpyPlugin.py +2 -1
  538. nuitka/plugins/standard/OptionsNannyPlugin.py +7 -6
  539. nuitka/plugins/standard/PbrPlugin.py +2 -2
  540. nuitka/plugins/standard/PkgResourcesPlugin.py +2 -1
  541. nuitka/plugins/standard/PlaywrightPlugin.py +10 -15
  542. nuitka/plugins/standard/PmwPlugin.py +2 -1
  543. nuitka/plugins/standard/PySidePyQtPlugin.py +12 -15
  544. nuitka/plugins/standard/PywebViewPlugin.py +2 -1
  545. nuitka/plugins/standard/SpacyPlugin.py +2 -1
  546. nuitka/plugins/standard/TensorflowPlugin.py +2 -1
  547. nuitka/plugins/standard/TkinterPlugin.py +38 -5
  548. nuitka/plugins/standard/TorchPlugin.py +2 -1
  549. nuitka/plugins/standard/TransformersPlugin.py +2 -2
  550. nuitka/plugins/standard/TrioPlugin.py +2 -1
  551. nuitka/plugins/standard/UpxPlugin.py +2 -1
  552. nuitka/plugins/standard/__init__.py +1 -1
  553. nuitka/plugins/standard/standard.nuitka-package.config.yml +173 -49
  554. nuitka/reports/CompilationReportReader.py +5 -1
  555. nuitka/reports/LicenseReport.rst.j2 +1 -1
  556. nuitka/reports/Reports.py +5 -1
  557. nuitka/reports/__init__.py +1 -1
  558. nuitka/specs/BuiltinBytesOperationSpecs.py +1 -1
  559. nuitka/specs/BuiltinDictOperationSpecs.py +1 -1
  560. nuitka/specs/BuiltinListOperationSpecs.py +1 -1
  561. nuitka/specs/BuiltinParameterSpecs.py +1 -1
  562. nuitka/specs/BuiltinStrOperationSpecs.py +1 -1
  563. nuitka/specs/BuiltinTypeOperationSpecs.py +1 -1
  564. nuitka/specs/BuiltinUnicodeOperationSpecs.py +1 -1
  565. nuitka/specs/HardImportSpecs.py +10 -2
  566. nuitka/specs/ParameterSpecs.py +17 -2
  567. nuitka/specs/__init__.py +1 -1
  568. nuitka/tools/Basics.py +1 -1
  569. nuitka/tools/__init__.py +1 -1
  570. nuitka/tools/commercial/__init__.py +1 -1
  571. nuitka/tools/data_composer/DataComposer.py +125 -1
  572. nuitka/tools/data_composer/__init__.py +1 -1
  573. nuitka/tools/data_composer/__main__.py +1 -1
  574. nuitka/tools/environments/CreateEnvironment.py +1 -1
  575. nuitka/tools/environments/Virtualenv.py +14 -6
  576. nuitka/tools/environments/__init__.py +1 -1
  577. nuitka/tools/general/__init__.py +1 -1
  578. nuitka/tools/general/dll_report/__init__.py +1 -1
  579. nuitka/tools/general/dll_report/__main__.py +1 -1
  580. nuitka/tools/general/find_module/FindModuleCode.py +2 -2
  581. nuitka/tools/general/find_module/__init__.py +1 -1
  582. nuitka/tools/general/generate_header/GenerateHeader.py +73 -0
  583. nuitka/tools/general/generate_header/__init__.py +19 -0
  584. nuitka/tools/onefile_compressor/OnefileCompressor.py +1 -1
  585. nuitka/tools/onefile_compressor/__init__.py +1 -1
  586. nuitka/tools/onefile_compressor/__main__.py +1 -1
  587. nuitka/tools/podman/Podman.py +1 -1
  588. nuitka/tools/podman/__init__.py +1 -1
  589. nuitka/tools/podman/__main__.py +8 -4
  590. nuitka/tools/profiler/__init__.py +1 -1
  591. nuitka/tools/profiler/__main__.py +1 -1
  592. nuitka/tools/scanning/DisplayPackageDLLs.py +43 -20
  593. nuitka/tools/scanning/DisplayPackageData.py +1 -1
  594. nuitka/tools/scanning/__init__.py +1 -1
  595. nuitka/tools/specialize/CTypeDescriptions.py +1 -1
  596. nuitka/tools/specialize/Common.py +1 -1
  597. nuitka/tools/specialize/SpecializeC.py +1 -1
  598. nuitka/tools/specialize/SpecializePython.py +7 -3
  599. nuitka/tools/specialize/__init__.py +1 -1
  600. nuitka/tools/testing/Common.py +140 -19
  601. nuitka/tools/testing/Constructs.py +1 -1
  602. nuitka/tools/testing/OutputComparison.py +5 -4
  603. nuitka/tools/testing/Pythons.py +1 -1
  604. nuitka/tools/testing/RuntimeTracing.py +1 -1
  605. nuitka/tools/testing/SearchModes.py +1 -1
  606. nuitka/tools/testing/Valgrind.py +1 -1
  607. nuitka/tools/testing/__init__.py +1 -1
  608. nuitka/tools/testing/check_reference_counts/__init__.py +1 -1
  609. nuitka/tools/testing/check_reference_counts/__main__.py +6 -2
  610. nuitka/tools/testing/compare_with_cpython/__init__.py +1 -1
  611. nuitka/tools/testing/compare_with_cpython/__main__.py +51 -14
  612. nuitka/tools/testing/find_sxs_modules/__init__.py +1 -1
  613. nuitka/tools/testing/find_sxs_modules/__main__.py +1 -1
  614. nuitka/tools/testing/measure_construct_performance/__init__.py +1 -1
  615. nuitka/tools/testing/measure_construct_performance/__main__.py +1 -1
  616. nuitka/tools/testing/run_nuitka_tests/__init__.py +1 -1
  617. nuitka/tools/testing/run_nuitka_tests/__main__.py +1 -1
  618. nuitka/tools/watch/AutoStage.py +1 -1
  619. nuitka/tools/watch/Common.py +55 -0
  620. nuitka/tools/watch/Conda.py +125 -0
  621. nuitka/tools/watch/GitHub.py +1 -1
  622. nuitka/tools/watch/Pacman.py +73 -0
  623. nuitka/tools/watch/Pipenv.py +143 -0
  624. nuitka/tools/watch/__init__.py +1 -1
  625. nuitka/tools/watch/__main__.py +117 -264
  626. nuitka/tree/Building.py +1 -1
  627. nuitka/tree/ComplexCallHelperFunctions.py +1 -1
  628. nuitka/tree/Extractions.py +1 -1
  629. nuitka/tree/InternalModule.py +1 -1
  630. nuitka/tree/Operations.py +1 -1
  631. nuitka/tree/ReformulationAssertStatements.py +1 -1
  632. nuitka/tree/ReformulationAssignmentStatements.py +1 -1
  633. nuitka/tree/ReformulationBooleanExpressions.py +1 -1
  634. nuitka/tree/ReformulationCallExpressions.py +1 -1
  635. nuitka/tree/ReformulationClasses.py +1 -1
  636. nuitka/tree/ReformulationClasses3.py +1 -1
  637. nuitka/tree/ReformulationComparisonExpressions.py +1 -1
  638. nuitka/tree/ReformulationContractionExpressions.py +3 -1
  639. nuitka/tree/ReformulationDictionaryCreation.py +1 -1
  640. nuitka/tree/ReformulationExecStatements.py +1 -1
  641. nuitka/tree/ReformulationForLoopStatements.py +1 -1
  642. nuitka/tree/ReformulationFunctionStatements.py +1 -1
  643. nuitka/tree/ReformulationImportStatements.py +1 -1
  644. nuitka/tree/ReformulationLambdaExpressions.py +2 -1
  645. nuitka/tree/ReformulationMatchStatements.py +1 -1
  646. nuitka/tree/ReformulationMultidist.py +1 -1
  647. nuitka/tree/ReformulationNamespacePackages.py +1 -1
  648. nuitka/tree/ReformulationPrintStatements.py +1 -1
  649. nuitka/tree/ReformulationSequenceCreation.py +1 -1
  650. nuitka/tree/ReformulationSubscriptExpressions.py +1 -1
  651. nuitka/tree/ReformulationTryExceptStatements.py +1 -1
  652. nuitka/tree/ReformulationTryFinallyStatements.py +1 -1
  653. nuitka/tree/ReformulationWhileLoopStatements.py +1 -1
  654. nuitka/tree/ReformulationWithStatements.py +1 -1
  655. nuitka/tree/ReformulationYieldExpressions.py +1 -1
  656. nuitka/tree/SourceHandling.py +1 -1
  657. nuitka/tree/SyntaxErrors.py +1 -1
  658. nuitka/tree/TreeHelpers.py +24 -10
  659. nuitka/tree/VariableClosure.py +1 -1
  660. nuitka/tree/__init__.py +1 -1
  661. nuitka/utils/AppDirs.py +5 -2
  662. nuitka/utils/CStrings.py +1 -1
  663. nuitka/utils/CommandLineOptions.py +2 -2
  664. nuitka/utils/Distributions.py +177 -15
  665. nuitka/utils/Download.py +14 -6
  666. nuitka/utils/Execution.py +43 -14
  667. nuitka/utils/FileOperations.py +29 -5
  668. nuitka/utils/Hashing.py +6 -2
  669. nuitka/utils/Images.py +8 -2
  670. nuitka/utils/Importing.py +1 -1
  671. nuitka/utils/InlineCopies.py +1 -1
  672. nuitka/utils/InstalledPythons.py +1 -1
  673. nuitka/utils/InstanceCounters.py +1 -1
  674. nuitka/utils/Jinja2.py +1 -1
  675. nuitka/utils/Json.py +2 -2
  676. nuitka/utils/MacOSApp.py +4 -3
  677. nuitka/utils/MemoryUsage.py +1 -1
  678. nuitka/utils/ModuleNames.py +1 -1
  679. nuitka/utils/PackageResources.py +1 -1
  680. nuitka/utils/ReExecute.py +1 -1
  681. nuitka/utils/Rest.py +1 -1
  682. nuitka/utils/SharedLibraries.py +76 -7
  683. nuitka/utils/Shebang.py +1 -1
  684. nuitka/utils/Signing.py +11 -5
  685. nuitka/utils/SlotMetaClasses.py +1 -1
  686. nuitka/utils/StaticLibraries.py +25 -1
  687. nuitka/utils/ThreadedExecutor.py +1 -1
  688. nuitka/utils/Timing.py +1 -1
  689. nuitka/utils/Utils.py +1 -1
  690. nuitka/utils/WindowsFileUsage.py +1 -1
  691. nuitka/utils/WindowsResources.py +3 -1
  692. nuitka/utils/Yaml.py +1 -1
  693. nuitka/utils/__init__.py +1 -1
  694. Nuitka_winsvc-2.5.1.dist-info/RECORD +0 -977
  695. {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/LICENSE.txt +0 -0
  696. {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/entry_points.txt +0 -0
  697. {Nuitka_winsvc-2.5.1.dist-info → Nuitka_winsvc-2.6.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Caching of C compiler output.
@@ -98,6 +98,7 @@ def _injectCcache(env, cc_path, python_prefix, assume_yes_for_downloads):
98
98
  message="Nuitka will make use of ccache to speed up repeated compilation.",
99
99
  reject=None,
100
100
  assume_yes_for_downloads=assume_yes_for_downloads,
101
+ download_ok=True,
101
102
  )
102
103
 
103
104
  else:
@@ -282,11 +283,12 @@ def _getCcacheStatistics(ccache_logfile):
282
283
  # can be matched against it.
283
284
  commands = {}
284
285
 
285
- # Due to upstream issues, lines in the log might have different encodings.
286
- # All command and result lines use the platform's default encoding,
287
- # so we follow this to ensure these lines are correct.
288
- # Unrecognized characters are replaced by byte values, e.g. "\xde\xad"
289
- for line in getFileContentByLine(ccache_logfile, errors="backslashreplace"):
286
+ # Due to upstream ccache issues, lines in the log might have different
287
+ # encodings, but latin1 will always work and was chosen to write this
288
+ # file therefore.
289
+ for line in getFileContentByLine(
290
+ ccache_logfile, encoding="latin1", errors="backslashreplace"
291
+ ):
290
292
  match = re_command.match(line)
291
293
 
292
294
  if match:
@@ -321,7 +323,7 @@ def _getCcacheStatistics(ccache_logfile):
321
323
  all_text = []
322
324
 
323
325
  for line2 in getFileContentByLine(
324
- ccache_logfile, errors="backslashreplace"
326
+ ccache_logfile, encoding="latin1", errors="backslashreplace"
325
327
  ):
326
328
  match = re_anything.match(line2)
327
329
 
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ This contains the tuning of the compilers towards defined goals.
@@ -211,6 +211,22 @@ version for lto mode (>= 4.6). Disabled."""
211
211
  lto_mode = False
212
212
  reason = "gcc 4.6 is doesn't have good enough LTO support"
213
213
 
214
+ if (
215
+ lto_mode
216
+ and env.gcc_mode
217
+ and not env.clang_mode
218
+ and not isWin32Windows()
219
+ and not isMacOS()
220
+ and getExecutablePath("make", env=env) is None
221
+ ):
222
+ scons_logger.warning(
223
+ """\
224
+ The gcc compiler for LTO mode requires 'make' to be installed \
225
+ for parallel linking to be used, compilation might be a lot \
226
+ slower without it.
227
+ """
228
+ )
229
+
214
230
  if env.gcc_mode and lto_mode:
215
231
  if env.clang_mode:
216
232
  env.Append(CCFLAGS=["-flto"])
@@ -246,16 +262,17 @@ version for lto mode (>= 4.6). Disabled."""
246
262
 
247
263
  env.lto_mode = lto_mode
248
264
  env.orig_lto_mode = orig_lto_mode
265
+ env.pgo_mode = pgo_mode
249
266
 
250
267
  # PGO configuration
251
- _enablePgoSettings(env, pgo_mode)
268
+ _enablePgoSettings(env)
252
269
 
253
270
 
254
271
  _python311_min_msvc_version = (14, 3)
255
272
 
256
273
 
257
274
  def checkWindowsCompilerFound(
258
- env, target_arch, clang_mode, msvc_version, assume_yes_for_downloads
275
+ env, target_arch, clang_mode, msvc_version, assume_yes_for_downloads, download_ok
259
276
  ):
260
277
  """Remove compiler of wrong arch or too old gcc and replace with downloaded winlibs gcc."""
261
278
  # Many cases to deal with, pylint: disable=too-many-branches,too-many-statements
@@ -397,6 +414,7 @@ For Python version %s MSVC %s or later is required, not %s which is too old."""
397
414
  compiler_path = getCachedDownloadedMinGW64(
398
415
  target_arch=target_arch,
399
416
  assume_yes_for_downloads=assume_yes_for_downloads,
417
+ download_ok=download_ok,
400
418
  )
401
419
 
402
420
  if compiler_path is not None:
@@ -435,6 +453,12 @@ def decideConstantsBlobResourceMode(env, module_mode):
435
453
  elif isMacOS():
436
454
  resource_mode = "mac_section"
437
455
  reason = "default for macOS"
456
+ elif env.gcc_mode and env.clang_mode and env.clang_version >= (19,):
457
+ resource_mode = "c23_embed"
458
+ reason = "default for newer clang"
459
+ elif env.gcc_mode and not env.clang_mode and env.gcc_version >= (15,):
460
+ resource_mode = "c23_embed"
461
+ reason = "default for newer gcc"
438
462
  elif env.lto_mode and env.gcc_mode and not env.clang_mode:
439
463
  if module_mode:
440
464
  resource_mode = "code"
@@ -526,7 +550,7 @@ unsigned char const *getConstantsBlobData(void) {
526
550
  ),
527
551
  ]
528
552
  )
529
- elif resource_mode == "code":
553
+ elif resource_mode in ("code", "c23_embed"):
530
554
  # Indicate "code" resource mode.
531
555
  env.Append(CPPDEFINES=["_NUITKA_CONSTANTS_FROM_CODE"])
532
556
 
@@ -549,19 +573,22 @@ unsigned char constant_bin_data[] =\n{\n
549
573
  """
550
574
  )
551
575
 
552
- with open(blob_filename, "rb") as f:
553
- content = f.read()
554
- for count, stream_byte in enumerate(content):
555
- if count % 16 == 0:
556
- if count > 0:
557
- output.write("\n")
576
+ if resource_mode == "code":
577
+ with open(blob_filename, "rb") as f:
578
+ content = f.read()
579
+ for count, stream_byte in enumerate(content):
580
+ if count % 16 == 0:
581
+ if count > 0:
582
+ output.write("\n")
558
583
 
559
- output.write(" ")
584
+ output.write(" ")
560
585
 
561
- if str is bytes:
562
- stream_byte = ord(stream_byte)
586
+ if str is bytes:
587
+ stream_byte = ord(stream_byte)
563
588
 
564
- output.write(" 0x%02x," % stream_byte)
589
+ output.write(" 0x%02x," % stream_byte)
590
+ else:
591
+ output.write('#embed "%s"\n' % blob_filename)
565
592
 
566
593
  output.write("\n};\n")
567
594
 
@@ -810,10 +837,8 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count, onefile_compile):
810
837
  if env.mingw_mode and env.target_arch == "x86_64" and env.python_version < (3, 12):
811
838
  env.Append(CPPDEFINES=["MS_WIN64"])
812
839
 
813
- # For shell API usage to lookup app folders we need this. Note that on Windows ARM
814
- # we didn't manage to have a "shell32.lib" that is not considered corrupt, so we
815
- # have to do this.
816
- if env.msvc_mode and env.target_arch != "arm64":
840
+ # For shell API usage to lookup app folders we need this.
841
+ if env.msvc_mode:
817
842
  env.Append(LIBS=["Shell32", "Advapi32"])
818
843
 
819
844
  # Since Fedora 36, the system Python will not link otherwise.
@@ -839,13 +864,13 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count, onefile_compile):
839
864
  env.Append(LIBS="z")
840
865
 
841
866
 
842
- def _enablePgoSettings(env, pgo_mode):
843
- if pgo_mode == "no":
867
+ def _enablePgoSettings(env):
868
+ if env.pgo_mode == "no":
844
869
  env.progressbar_name = "Backend"
845
- elif pgo_mode == "python":
870
+ elif env.pgo_mode == "python":
846
871
  env.progressbar_name = "Python Profile"
847
872
  env.Append(CPPDEFINES=["_NUITKA_PGO_PYTHON"])
848
- elif pgo_mode == "generate":
873
+ elif env.pgo_mode == "generate":
849
874
  env.progressbar_name = "Profile"
850
875
  env.Append(CPPDEFINES=["_NUITKA_PGO_GENERATE"])
851
876
 
@@ -862,7 +887,7 @@ def _enablePgoSettings(env, pgo_mode):
862
887
  scons_logger.sysexit(
863
888
  "Error, PGO not supported for '%s' compiler." % env.the_cc_name
864
889
  )
865
- elif pgo_mode == "use":
890
+ elif env.pgo_mode == "use":
866
891
  env.progressbar_name = "Backend"
867
892
 
868
893
  env.Append(CPPDEFINES=["_NUITKA_PGO_USE"])
@@ -884,8 +909,6 @@ def _enablePgoSettings(env, pgo_mode):
884
909
  else:
885
910
  assert False, env.pgo_mode
886
911
 
887
- env.pgo_mode = pgo_mode
888
-
889
912
 
890
913
  def _enableDebugSystemSettings(env, job_count):
891
914
  if env.unstripped_mode:
@@ -1002,15 +1025,15 @@ def reportCCompiler(env, context, output_func):
1002
1025
  ".".join(str(d) for d in env.gcc_version),
1003
1026
  )
1004
1027
  elif isClangName(env.the_cc_name):
1005
- clang_version = myDetectVersion(env, env.the_cc_name)
1006
- if clang_version is None:
1007
- clang_version = "not found"
1008
- else:
1009
- clang_version = ".".join(str(d) for d in clang_version)
1028
+ env.clang_version = myDetectVersion(env, env.the_cc_name)
1010
1029
 
1011
1030
  cc_output = "%s %s" % (
1012
1031
  env.the_cc_name,
1013
- clang_version,
1032
+ (
1033
+ ".".join(str(d) for d in env.clang_version)
1034
+ if env.clang_version is not None
1035
+ else "not found"
1036
+ ),
1014
1037
  )
1015
1038
  else:
1016
1039
  cc_output = env.the_cc_name
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Hacks for scons that we apply.
@@ -170,7 +170,7 @@ def getEnhancedToolDetect():
170
170
  return myDetect
171
171
 
172
172
 
173
- def makeGccUseLinkerFile(source_files, module_mode, env):
173
+ def makeGccUseLinkerFile(env, source_files):
174
174
  tmp_linker_filename = os.path.join(env.source_dir, "@link_input.txt")
175
175
 
176
176
  # Note: For Windows, it's done in mingw.py because of its use of
@@ -188,7 +188,7 @@ def makeGccUseLinkerFile(source_files, module_mode, env):
188
188
  with openTextFile(tmp_linker_filename, "w") as tmpfile:
189
189
  for filename in source_files:
190
190
  filename = ".".join(filename.split(".")[:-1]) + (
191
- ".os" if module_mode and os.name != "nt" else ".o"
191
+ ".os" if env.module_mode and os.name != "nt" else ".o"
192
192
  )
193
193
 
194
194
  if os.name == "nt":
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Scons interface.
@@ -18,9 +18,16 @@ from nuitka import Options, Tracing
18
18
  from nuitka.__past__ import unicode
19
19
  from nuitka.containers.OrderedDicts import OrderedDict
20
20
  from nuitka.Options import (
21
+ getDebugModeIndications,
22
+ getExperimentalIndications,
23
+ getJobLimit,
21
24
  getOnefileChildGraceTime,
25
+ getPythonPathForScons,
26
+ isDeploymentMode,
22
27
  isExperimental,
23
28
  isOnefileMode,
29
+ isShowScons,
30
+ shallCompileWithoutBuildDirectory,
24
31
  )
25
32
  from nuitka.plugins.Plugins import Plugins
26
33
  from nuitka.PythonFlavors import (
@@ -31,6 +38,7 @@ from nuitka.PythonFlavors import (
31
38
  )
32
39
  from nuitka.PythonVersions import (
33
40
  getSystemPrefixPath,
41
+ isPythonWithGil,
34
42
  python_version,
35
43
  python_version_str,
36
44
  )
@@ -111,7 +119,7 @@ def _getPythonForSconsExePath():
111
119
 
112
120
  Scons needs it as it doesn't support all Python versions.
113
121
  """
114
- python_exe = Options.getPythonPathForScons()
122
+ python_exe = getPythonPathForScons()
115
123
 
116
124
  if python_exe is not None:
117
125
  return python_exe
@@ -234,7 +242,7 @@ def _buildSconsCommand(options, scons_filename):
234
242
 
235
243
  scons_command = _getSconsBinaryCall()
236
244
 
237
- if not Options.isShowScons():
245
+ if not isShowScons():
238
246
  scons_command.append("--quiet")
239
247
 
240
248
  scons_command += [
@@ -243,14 +251,14 @@ def _buildSconsCommand(options, scons_filename):
243
251
  getExternalUsePath(os.path.join(getSconsDataPath(), scons_filename)),
244
252
  # Parallel compilation.
245
253
  "--jobs",
246
- str(Options.getJobLimit()),
254
+ str(getJobLimit()),
247
255
  # Do not warn about deprecation from Scons
248
256
  "--warn=no-deprecated",
249
257
  # Don't load "site_scons" at all.
250
258
  "--no-site-dir",
251
259
  ]
252
260
 
253
- if Options.isShowScons():
261
+ if isShowScons():
254
262
  scons_command.append("--debug=stacktrace")
255
263
 
256
264
  # Python2, encoding unicode values
@@ -280,6 +288,14 @@ def _createSconsDebugScript(source_dir, scons_command):
280
288
  # we wrote debug shell script only if build process called, not "--version" call.
281
289
  scons_debug_python_name = "scons-debug.py"
282
290
 
291
+ # Reduce environment variables from unusable stuff that is also very runtime
292
+ # dependent, spell-checker: ignore COLORTERM
293
+ env = OrderedDict(
294
+ (key, value)
295
+ for (key, value) in os.environ.items()
296
+ if not key.startswith(("VSCODE", "GIT", "WSL", "COLORTERM", "TERM"))
297
+ )
298
+
283
299
  putTextFileContents(
284
300
  filename=os.path.join(source_dir, scons_debug_python_name),
285
301
  contents="""\
@@ -291,10 +307,13 @@ import subprocess
291
307
 
292
308
  exit_code = subprocess.call(
293
309
  %(scons_command)r,
294
- env=%(env)r,
310
+ env={%(env)s}
295
311
  shell=False
296
312
  )"""
297
- % {"scons_command": scons_command, "env": dict(os.environ)},
313
+ % {
314
+ "scons_command": scons_command,
315
+ "env": ",".join("%r: %r" % (key, value) for key, value in env.items()),
316
+ },
298
317
  encoding="utf8",
299
318
  )
300
319
 
@@ -331,24 +350,26 @@ cd "${0%/*}"
331
350
  )
332
351
 
333
352
 
334
- def runScons(options, env_values, scons_filename):
353
+ def runScons(scons_options, env_values, scons_filename):
335
354
  with _setupSconsEnvironment():
336
355
  env_values["_NUITKA_BUILD_DEFINITIONS_CATALOG"] = ",".join(env_values.keys())
337
356
 
338
- if "source_dir" in options and Options.shallCompileWithoutBuildDirectory():
357
+ if "source_dir" in scons_options and shallCompileWithoutBuildDirectory():
339
358
  # Make sure we become non-local, by changing all paths to be
340
359
  # absolute, but ones that can be resolved by any program
341
360
  # externally, as the Python of Scons may not be good at unicode.
342
361
 
343
- options = copy.deepcopy(options)
344
- source_dir = options["source_dir"]
345
- options["source_dir"] = "."
346
- options["nuitka_src"] = getExternalUsePath(options["nuitka_src"])
362
+ scons_options = copy.deepcopy(scons_options)
363
+ source_dir = scons_options["source_dir"]
364
+ scons_options["source_dir"] = "."
365
+ scons_options["nuitka_src"] = getExternalUsePath(
366
+ scons_options["nuitka_src"]
367
+ )
347
368
 
348
- orig_result_exe = options.get("result_exe")
349
- if "result_exe" in options:
350
- options["result_exe"] = getExternalUsePath(
351
- options["result_exe"], only_dirname=True
369
+ orig_result_exe = scons_options.get("result_exe")
370
+ if "result_exe" in scons_options:
371
+ scons_options["result_exe"] = getExternalUsePath(
372
+ scons_options["result_exe"], only_dirname=True
352
373
  )
353
374
 
354
375
  else:
@@ -361,10 +382,10 @@ def runScons(options, env_values, scons_filename):
361
382
  env_values["NUITKA_QUIET"] = "1" if Tracing.is_quiet else "0"
362
383
 
363
384
  scons_command = _buildSconsCommand(
364
- options=options, scons_filename=scons_filename
385
+ options=scons_options, scons_filename=scons_filename
365
386
  )
366
387
 
367
- if Options.isShowScons():
388
+ if isShowScons():
368
389
  Tracing.scons_logger.info("Scons command: %s" % " ".join(scons_command))
369
390
 
370
391
  Tracing.flushStandardOutputs()
@@ -386,10 +407,10 @@ def runScons(options, env_values, scons_filename):
386
407
  # current source_dir.
387
408
  flushSconsReports()
388
409
 
389
- if "source_dir" in options and result == 0:
390
- if "result_exe" in options:
410
+ if "source_dir" in scons_options and result == 0:
411
+ if "result_exe" in scons_options:
391
412
  scons_created_exe = getSconsReportValue(
392
- source_dir or options["source_dir"], "TARGET"
413
+ source_dir or scons_options["source_dir"], "TARGET"
393
414
  )
394
415
 
395
416
  if not os.path.exists(scons_created_exe):
@@ -398,10 +419,10 @@ def runScons(options, env_values, scons_filename):
398
419
  % scons_created_exe
399
420
  )
400
421
 
401
- if not areSamePaths(options["result_exe"], scons_created_exe):
422
+ if not areSamePaths(scons_options["result_exe"], scons_created_exe):
402
423
  renameFile(scons_created_exe, orig_result_exe)
403
424
 
404
- checkCachingSuccess(source_dir or options["source_dir"])
425
+ checkCachingSuccess(source_dir or scons_options["source_dir"])
405
426
 
406
427
  return result == 0
407
428
 
@@ -458,85 +479,90 @@ def cleanSconsDirectory(source_dir):
458
479
  check(path)
459
480
 
460
481
 
461
- def setCommonSconsOptions(options):
482
+ def getCommonSconsOptions():
462
483
  # Scons gets transported many details, that we express as variables, and
463
- # have checks for them, leading to many branches and statements,
484
+ # have checks for them, leading to many branches and statements.
464
485
  # pylint: disable=too-many-branches,too-many-statements
465
- options["nuitka_src"] = getSconsDataPath()
466
486
 
467
- options["python_version"] = python_version_str
487
+ scons_options = OrderedDict()
468
488
 
469
- options["python_prefix"] = getDirectoryRealPath(getSystemPrefixPath())
489
+ scons_options["nuitka_src"] = getSconsDataPath()
470
490
 
471
- options["experimental"] = ",".join(Options.getExperimentalIndications())
491
+ scons_options["python_version"] = python_version_str
472
492
 
473
- options["debug_modes"] = ",".join(Options.getDebugModeIndications())
493
+ scons_options["python_prefix"] = getDirectoryRealPath(getSystemPrefixPath())
474
494
 
475
- options["no_deployment"] = ",".join(Options.getNoDeploymentIndications())
495
+ scons_options["experimental"] = ",".join(getExperimentalIndications())
496
+
497
+ scons_options["debug_modes"] = ",".join(getDebugModeIndications())
498
+
499
+ scons_options["deployment"] = asBoolStr(isDeploymentMode())
500
+
501
+ scons_options["no_deployment"] = ",".join(Options.getNoDeploymentIndications())
476
502
 
477
503
  if Options.shallRunInDebugger():
478
- options["full_names"] = asBoolStr(True)
504
+ scons_options["full_names"] = asBoolStr(True)
479
505
 
480
506
  if Options.assumeYesForDownloads():
481
- options["assume_yes_for_downloads"] = asBoolStr(True)
507
+ scons_options["assume_yes_for_downloads"] = asBoolStr(True)
482
508
 
483
509
  if not Options.shallUseProgressBar():
484
- options["progress_bar"] = asBoolStr(False)
510
+ scons_options["progress_bar"] = asBoolStr(False)
485
511
 
486
512
  if Options.isClang():
487
- options["clang_mode"] = asBoolStr(True)
513
+ scons_options["clang_mode"] = asBoolStr(True)
488
514
 
489
515
  if Options.isShowScons():
490
- options["show_scons"] = asBoolStr(True)
516
+ scons_options["show_scons"] = asBoolStr(True)
491
517
 
492
518
  if Options.isMingw64():
493
- options["mingw_mode"] = asBoolStr(True)
519
+ scons_options["mingw_mode"] = asBoolStr(True)
494
520
 
495
521
  if Options.getMsvcVersion():
496
- options["msvc_version"] = Options.getMsvcVersion()
522
+ scons_options["msvc_version"] = Options.getMsvcVersion()
497
523
 
498
524
  if Options.shallDisableCCacheUsage():
499
- options["disable_ccache"] = asBoolStr(True)
525
+ scons_options["disable_ccache"] = asBoolStr(True)
500
526
 
501
527
  if isWin32Windows() and Options.getWindowsConsoleMode() != "attach":
502
- options["console_mode"] = Options.getWindowsConsoleMode()
528
+ scons_options["console_mode"] = Options.getWindowsConsoleMode()
503
529
 
504
530
  if Options.getLtoMode() != "auto":
505
- options["lto_mode"] = Options.getLtoMode()
531
+ scons_options["lto_mode"] = Options.getLtoMode()
506
532
 
507
533
  if isWin32OrPosixWindows() or isMacOS():
508
- options["noelf_mode"] = asBoolStr(True)
534
+ scons_options["noelf_mode"] = asBoolStr(True)
509
535
 
510
536
  if Options.isUnstripped():
511
- options["unstripped_mode"] = asBoolStr(True)
537
+ scons_options["unstripped_mode"] = asBoolStr(True)
512
538
 
513
539
  if isAnacondaPython():
514
- options["anaconda_python"] = asBoolStr(True)
540
+ scons_options["anaconda_python"] = asBoolStr(True)
515
541
 
516
542
  if isMSYS2MingwPython():
517
- options["msys2_mingw_python"] = asBoolStr(True)
543
+ scons_options["msys2_mingw_python"] = asBoolStr(True)
518
544
 
519
545
  if isSelfCompiledPythonUninstalled():
520
- options["self_compiled_python_uninstalled"] = asBoolStr(True)
546
+ scons_options["self_compiled_python_uninstalled"] = asBoolStr(True)
521
547
 
522
548
  cpp_defines = Plugins.getPreprocessorSymbols()
523
549
  if cpp_defines:
524
- options["cpp_defines"] = ",".join(
550
+ scons_options["cpp_defines"] = ",".join(
525
551
  "%s%s%s" % (key, "=" if value else "", value or "")
526
552
  for key, value in cpp_defines.items()
527
553
  )
528
554
 
529
555
  cpp_include_dirs = Plugins.getExtraIncludeDirectories()
530
556
  if cpp_include_dirs:
531
- options["cpp_include_dirs"] = ",".join(cpp_include_dirs)
557
+ scons_options["cpp_include_dirs"] = ",".join(cpp_include_dirs)
532
558
 
533
559
  link_dirs = Plugins.getExtraLinkDirectories()
534
560
  if link_dirs:
535
- options["link_dirs"] = ",".join(link_dirs)
561
+ scons_options["link_dirs"] = ",".join(link_dirs)
536
562
 
537
563
  link_libraries = Plugins.getExtraLinkLibraries()
538
564
  if link_libraries:
539
- options["link_libraries"] = ",".join(link_libraries)
565
+ scons_options["link_libraries"] = ",".join(link_libraries)
540
566
 
541
567
  if isMacOS():
542
568
  macos_min_version = detectBinaryMinMacOS(sys.executable)
@@ -546,14 +572,14 @@ def setCommonSconsOptions(options):
546
572
  "Could not detect minimum macOS version for '%s'." % sys.executable
547
573
  )
548
574
 
549
- options["macos_min_version"] = macos_min_version
575
+ scons_options["macos_min_version"] = macos_min_version
550
576
 
551
- options["macos_target_arch"] = Options.getMacOSTargetArch()
577
+ scons_options["macos_target_arch"] = Options.getMacOSTargetArch()
552
578
 
553
- options["target_arch"] = getArchitecture()
579
+ scons_options["target_arch"] = getArchitecture()
554
580
 
555
581
  if Options.getFcfProtectionMode() != "auto":
556
- options["cf_protection"] = Options.getFcfProtectionMode()
582
+ scons_options["cf_protection"] = Options.getFcfProtectionMode()
557
583
 
558
584
  env_values = OrderedDict()
559
585
 
@@ -598,7 +624,11 @@ def setCommonSconsOptions(options):
598
624
  getOnefileChildGraceTime()
599
625
  )
600
626
 
601
- return env_values
627
+ return scons_options, env_values
628
+
629
+
630
+ def setPythonTargetOptions(scons_options):
631
+ scons_options["gil_mode"] = asBoolStr(isPythonWithGil())
602
632
 
603
633
 
604
634
  # Part of "Nuitka", an optimizing Python compiler that is compatible and
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Progress bar for Scons compilation part.
@@ -48,10 +48,17 @@ def updateSconsProgressBar():
48
48
  if _current == _total:
49
49
  closeSconsProgressBar()
50
50
 
51
- scons_logger.info(
52
- "%s linking program with %d files (no progress information available for this stage)."
53
- % (_stage, _total)
54
- )
51
+ message = "%s C linking" % _stage
52
+
53
+ if _total > 1:
54
+ message += (
55
+ " with %d files (no progress information available for this stage)"
56
+ % _total
57
+ )
58
+
59
+ message += "."
60
+
61
+ scons_logger.info(message)
55
62
 
56
63
 
57
64
  def closeSconsProgressBar():
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Spawning processes.
@@ -415,10 +415,10 @@ it or using '--clang' option."""
415
415
  return spawnCommand
416
416
 
417
417
 
418
- def enableSpawnMonitoring(env, module_mode, source_files):
418
+ def enableSpawnMonitoring(env, source_files):
419
419
  if os.name == "nt":
420
420
  env["SPAWN"] = _getWindowsSpawnFunction(
421
- env=env, module_mode=module_mode, source_files=source_files
421
+ env=env, module_mode=env.module_mode, source_files=source_files
422
422
  )
423
423
  else:
424
424
  env["SPAWN"] = _getWrappedSpawnFunction(env=env)
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Helper functions for the scons file.
@@ -20,8 +20,10 @@ from nuitka.Tracing import scons_details_logger, scons_logger
20
20
  from nuitka.utils.Execution import executeProcess
21
21
  from nuitka.utils.FileOperations import (
22
22
  changeFilenameExtension,
23
+ deleteFile,
23
24
  getFileContentByLine,
24
25
  getFilenameExtension,
26
+ getNormalizedPath,
25
27
  getWindowsShortPathName,
26
28
  hasFilenameExtension,
27
29
  isFilesystemEncodable,
@@ -854,6 +856,23 @@ def addBinaryBlobSection(env, blob_filename, section_name):
854
856
  assert False
855
857
 
856
858
 
859
+ def makeResultPathFileSystemEncodable(env, result_exe):
860
+ deleteFile(result_exe, must_exist=False)
861
+
862
+ if os.name == "nt" and not isFilesystemEncodable(result_exe):
863
+ result_exe = os.path.join(
864
+ os.path.dirname(result_exe),
865
+ "_nuitka_temp.pyd" if env.module_mode else "_nuitka_temp.exe",
866
+ )
867
+
868
+ if not isFilesystemEncodable(result_exe):
869
+ result_exe = getNormalizedPath(os.path.relpath(result_exe))
870
+
871
+ deleteFile(result_exe, must_exist=False)
872
+
873
+ return result_exe
874
+
875
+
857
876
  # Part of "Nuitka", an optimizing Python compiler that is compatible and
858
877
  # integrates with CPython, but also works on its own.
859
878
  #
nuitka/build/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
1
+ # Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
2
 
3
3
 
4
4
  """ Dummy file to make this directory a package. """