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
  #ifdef __IDE_ONLY__
4
4
  #include "nuitka/freelists.h"
@@ -268,11 +268,20 @@ static int _Nuitka_Frame_set_trace(PyObject *self, PyObject *value, void *data)
268
268
  assert(Nuitka_Frame_CheckExact(self));
269
269
  CHECK_OBJECT(self);
270
270
  assert(_PyObject_GC_IS_TRACKED(self));
271
+ #if !defined(_NUITKA_DEPLOYMENT_MODE) && !defined(_NUITKA_NO_DEPLOYMENT_FRAME_USELESS_SET_TRACE)
272
+ if (value == Py_None) {
273
+ return 0;
274
+ } else {
275
+ PyThreadState *tstate = PyThreadState_GET();
271
276
 
272
- PyThreadState *tstate = PyThreadState_GET();
273
-
274
- SET_CURRENT_EXCEPTION_TYPE0_STR(tstate, PyExc_RuntimeError, "f_trace is not writable in Nuitka");
275
- return -1;
277
+ SET_CURRENT_EXCEPTION_TYPE0_STR(
278
+ tstate, PyExc_RuntimeError,
279
+ "f_trace is not writable in Nuitka, ignore with '--no-deployment-flag=frame-useless-set-trace'");
280
+ return -1;
281
+ }
282
+ #else
283
+ return 0;
284
+ #endif
276
285
  }
277
286
 
278
287
  #if PYTHON_VERSION >= 0x370
@@ -404,6 +413,7 @@ static void Nuitka_Frame_tp_clear(struct Nuitka_FrameObject *frame) {
404
413
  }
405
414
  }
406
415
 
416
+ // Freelist setup
407
417
  #define MAX_FRAME_FREE_LIST_COUNT 100
408
418
  static struct Nuitka_FrameObject *free_list_frames = NULL;
409
419
  static int free_list_frames_count = 0;
@@ -543,6 +553,14 @@ static int Nuitka_Frame_tp_traverse(struct Nuitka_FrameObject *frame, visitproc
543
553
 
544
554
  #if PYTHON_VERSION >= 0x300
545
555
 
556
+ static PyObject *Nuitka_GetFrameGenerator(struct Nuitka_FrameObject *nuitka_frame) {
557
+ #if PYTHON_VERSION < 0x3b0
558
+ return nuitka_frame->m_frame.f_gen;
559
+ #else
560
+ return nuitka_frame->m_generator;
561
+ #endif
562
+ }
563
+
546
564
  static PyObject *Nuitka_Frame_clear(struct Nuitka_FrameObject *frame, PyObject *unused) {
547
565
  assert(Nuitka_Frame_CheckExact((PyObject *)frame));
548
566
  CHECK_OBJECT((PyObject *)frame);
@@ -875,8 +893,17 @@ PyCodeObject *makeCodeObject(PyObject *filename, int line, int flags, PyObject *
875
893
  int pos_only_count
876
894
  #endif
877
895
  ) {
896
+
897
+ if (filename == Py_None) {
898
+ filename = const_str_empty;
899
+ }
900
+
901
+ // TODO: We don't do that anymore once new-code-objects
902
+ // is the default, then we don't need to pass it, since
903
+ // we create them incomplete anyway.
878
904
  CHECK_OBJECT(filename);
879
905
  assert(Nuitka_StringOrUnicode_CheckExact(filename));
906
+
880
907
  CHECK_OBJECT(function_name);
881
908
  assert(Nuitka_String_CheckExact(function_name));
882
909
 
@@ -1034,9 +1061,40 @@ PyCodeObject *makeCodeObject(PyObject *filename, int line, int flags, PyObject *
1034
1061
  Py_DECREF(filename_str);
1035
1062
  #endif
1036
1063
 
1064
+ if (result == NULL) {
1065
+ PyErr_PrintEx(0);
1066
+ NUITKA_CANNOT_GET_HERE("Failed to create code object");
1067
+ }
1068
+
1037
1069
  return result;
1038
1070
  }
1039
1071
 
1072
+ PyCodeObject *USE_CODE_OBJECT(PyThreadState *tstate, PyObject *code_object, PyObject *module_filename_obj) {
1073
+ assert(PyCode_Check(code_object));
1074
+ CHECK_OBJECT(module_filename_obj);
1075
+
1076
+ PyCodeObject *co = (PyCodeObject *)code_object;
1077
+ PyObject *old = co->co_filename;
1078
+
1079
+ if (old == const_str_empty) {
1080
+ // Set the filename, ignore the loss of a reference to empty string,
1081
+ // that's our singleton and immortal at least practically.
1082
+ co->co_filename = Py_NewRef(module_filename_obj);
1083
+
1084
+ #if PYTHON_VERSION >= 0x3b0
1085
+ // Also, make sure the qualname is completed from the partial
1086
+ // name.
1087
+ if (co->co_qualname != co->co_name) {
1088
+ PyObject *w = UNICODE_CONCAT(tstate, co->co_qualname, const_str_dot);
1089
+ co->co_qualname = UNICODE_CONCAT(tstate, w, co->co_name);
1090
+ Py_DECREF(w);
1091
+ }
1092
+ #endif
1093
+ }
1094
+
1095
+ return co;
1096
+ }
1097
+
1040
1098
  void Nuitka_Frame_AttachLocals(struct Nuitka_FrameObject *frame_object, char const *type_description, ...) {
1041
1099
  assert(Nuitka_Frame_CheckExact((PyObject *)frame_object));
1042
1100
  CHECK_OBJECT((PyObject *)frame_object);
@@ -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
  // Compiled function type.
4
4
 
@@ -731,6 +731,7 @@ static PyObject *Nuitka_Function_clone(struct Nuitka_FunctionObject *function, P
731
731
  return (PyObject *)result;
732
732
  }
733
733
 
734
+ // Freelist setup
734
735
  #define MAX_FUNCTION_FREE_LIST_COUNT 100
735
736
  static struct Nuitka_FunctionObject *free_list_functions = NULL;
736
737
  static int free_list_functions_count = 0;
@@ -2170,9 +2171,8 @@ static bool _handleArgumentsPlainOnly(PyThreadState *tstate, struct Nuitka_Funct
2170
2171
  Py_ssize_t arg_count = function->m_args_positional_count;
2171
2172
 
2172
2173
  // Check if too many arguments were given in case of non list star arg.
2173
- // For Python3.3 it's done only later, when more knowledge has
2174
- // been gained. TODO: Could be done this way for improved mode
2175
- // on all versions.
2174
+ // For Python3 it's done only later, when more knowledge has
2175
+ // been gained.
2176
2176
  #if PYTHON_VERSION < 0x300
2177
2177
  if (function->m_args_star_list_index == -1) {
2178
2178
  if (unlikely(args_size > arg_count)) {
@@ -2277,9 +2277,8 @@ static bool handleMethodArgumentsPlainOnly(PyThreadState *tstate, struct Nuitka_
2277
2277
  }
2278
2278
 
2279
2279
  // Check if too many arguments were given in case of non list star arg.
2280
- // For Python3.3 it's done only later, when more knowledge has
2281
- // been gained. TODO: Could be done this way for improved mode
2282
- // on all versions.
2280
+ // For Python3 it's done only later, when more knowledge has
2281
+ // been gained.
2283
2282
  #if PYTHON_VERSION < 0x300
2284
2283
  if (function->m_args_star_list_index == -1) {
2285
2284
  if (unlikely(args_size + 1 > arg_count)) {
@@ -2373,9 +2372,8 @@ static bool _handleArgumentsPlain(PyThreadState *tstate, struct Nuitka_FunctionO
2373
2372
  Py_ssize_t arg_count = function->m_args_positional_count;
2374
2373
 
2375
2374
  // Check if too many arguments were given in case of non list star arg.
2376
- // For Python3.3 it's done only later, when more knowledge has
2377
- // been gained. TODO: Could be done this way for improved mode
2378
- // on all versions.
2375
+ // For Python3 it's done only later, when more knowledge has
2376
+ // been gained.
2379
2377
  #if PYTHON_VERSION < 0x300
2380
2378
  if (function->m_args_star_list_index == -1) {
2381
2379
  if (unlikely(args_size > arg_count)) {
@@ -2520,7 +2518,7 @@ static bool parseArgumentsPos(PyThreadState *tstate, struct Nuitka_FunctionObjec
2520
2518
  }
2521
2519
 
2522
2520
  #if PYTHON_VERSION >= 0x300
2523
- // For Python3.3 the keyword only errors are all reported at once.
2521
+ // For Python3 the keyword only errors are all reported at once.
2524
2522
  bool kw_only_error = false;
2525
2523
 
2526
2524
  for (Py_ssize_t i = function->m_args_positional_count; i < function->m_args_keywords_count; i++) {
@@ -2665,7 +2663,7 @@ static bool parseArgumentsFullKwSplit(PyThreadState *tstate, struct Nuitka_Funct
2665
2663
  }
2666
2664
 
2667
2665
  #if PYTHON_VERSION >= 0x300
2668
- // For Python3.3 the keyword only errors are all reported at once.
2666
+ // For Python3 the keyword only errors are all reported at once.
2669
2667
  bool kw_only_error = false;
2670
2668
 
2671
2669
  for (Py_ssize_t i = function->m_args_positional_count; i < function->m_args_keywords_count; i++) {
@@ -2756,7 +2754,7 @@ static bool parseArgumentsFull(PyThreadState *tstate, struct Nuitka_FunctionObje
2756
2754
  }
2757
2755
 
2758
2756
  #if PYTHON_VERSION >= 0x300
2759
- // For Python3.3 the keyword only errors are all reported at once.
2757
+ // For Python3 the keyword only errors are all reported at once.
2760
2758
  bool kw_only_error = false;
2761
2759
 
2762
2760
  for (Py_ssize_t i = function->m_args_positional_count; i < function->m_args_keywords_count; i++) {
@@ -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
  /** Compiled Generators.
4
4
  *
@@ -532,7 +532,7 @@ static PyObject *_Nuitka_Generator_send(PyThreadState *tstate, struct Nuitka_Gen
532
532
  }
533
533
  #endif
534
534
 
535
- // Put the asyncgen back on the frame stack.
535
+ // Put the generator back on the frame stack.
536
536
  Nuitka_ThreadStateFrameType *return_frame = _Nuitka_GetThreadStateFrame(tstate);
537
537
 
538
538
  if (generator->m_status == status_Unused) {
@@ -550,6 +550,7 @@ static PyObject *_Nuitka_Generator_send(PyThreadState *tstate, struct Nuitka_Gen
550
550
 
551
551
  // Check for thrown exception, publish it to the generator code.
552
552
  if (unlikely(HAS_EXCEPTION_STATE(exception_state))) {
553
+ // TODO: Original value is meant here probably.
553
554
  assert(value == NULL);
554
555
 
555
556
  // Transfer exception ownership to published.
@@ -724,6 +725,11 @@ static PyObject *_Nuitka_Generator_send(PyThreadState *tstate, struct Nuitka_Gen
724
725
  return yielded;
725
726
  }
726
727
  } else {
728
+ Py_XDECREF(value);
729
+
730
+ // Release exception if any, we are finished with it and will raise another.
731
+ RELEASE_ERROR_OCCURRED_STATE_X(exception_state);
732
+
727
733
  return NULL;
728
734
  }
729
735
  }
@@ -762,6 +768,12 @@ static PyObject *Nuitka_Generator_send(struct Nuitka_GeneratorObject *generator,
762
768
  }
763
769
 
764
770
  static PyObject *Nuitka_Generator_tp_iternext(struct Nuitka_GeneratorObject *generator) {
771
+ #if _DEBUG_GENERATOR
772
+ PRINT_GENERATOR_STATUS("Enter", generator);
773
+ PRINT_CURRENT_EXCEPTION();
774
+ PRINT_NEW_LINE();
775
+ #endif
776
+
765
777
  PyThreadState *tstate = PyThreadState_GET();
766
778
 
767
779
  Py_INCREF_IMMORTAL(Py_None);
@@ -1366,6 +1378,17 @@ static void Nuitka_Generator_tp_finalizer(struct Nuitka_GeneratorObject *generat
1366
1378
  }
1367
1379
  #endif
1368
1380
 
1381
+ // Need to integrate with garbage collector to undo finalization.
1382
+ #if PYTHON_VERSION >= 0x300
1383
+ #if PYTHON_VERSION < 0x380
1384
+ #define _PyGC_SET_UNFINALIZED(o) _PyGC_SET_FINALIZED(o, 0)
1385
+ #else
1386
+ #define _PyGCHead_SET_UNFINALIZED(g) ((g)->_gc_prev &= (~_PyGC_PREV_MASK_FINALIZED))
1387
+ #define _PyGC_SET_UNFINALIZED(o) _PyGCHead_SET_UNFINALIZED(_Py_AS_GC(o))
1388
+ #endif
1389
+ #endif
1390
+
1391
+ // Freelist setup
1369
1392
  #define MAX_GENERATOR_FREE_LIST_COUNT 100
1370
1393
  static struct Nuitka_GeneratorObject *free_list_generators = NULL;
1371
1394
  static int free_list_generators_count = 0;
@@ -1376,6 +1399,26 @@ static void Nuitka_Generator_tp_dealloc(struct Nuitka_GeneratorObject *generator
1376
1399
  count_released_Nuitka_Generator_Type += 1;
1377
1400
  #endif
1378
1401
 
1402
+ if (generator->m_weakrefs != NULL) {
1403
+ Nuitka_GC_UnTrack(generator);
1404
+
1405
+ // TODO: Avoid API call and make this our own function to reuse the
1406
+ // pattern of temporarily untracking the value or maybe even to avoid
1407
+ // the need to do it. It may also be a lot of work to do that though
1408
+ // and maybe having weakrefs is uncommon.
1409
+ PyObject_ClearWeakRefs((PyObject *)generator);
1410
+ assert(!HAS_ERROR_OCCURRED(PyThreadState_GET()));
1411
+
1412
+ Nuitka_GC_Track(generator);
1413
+ }
1414
+
1415
+ #if PYTHON_VERSION >= 0x300
1416
+ // TODO: Avoid this API call, it's bound to be slow on some platforms and
1417
+ // does more checks than necessary for us.
1418
+ if (PyObject_CallFinalizerFromDealloc((PyObject *)generator)) {
1419
+ return;
1420
+ }
1421
+ #else
1379
1422
  // Revive temporarily.
1380
1423
  assert(Py_REFCNT(generator) == 0);
1381
1424
  Py_SET_REFCNT(generator, 1);
@@ -1402,21 +1445,25 @@ static void Nuitka_Generator_tp_dealloc(struct Nuitka_GeneratorObject *generator
1402
1445
  if (Py_REFCNT(generator) >= 1) {
1403
1446
  return;
1404
1447
  }
1448
+ #endif
1449
+
1450
+ // Now it is safe to release references and memory for it.
1451
+ Nuitka_GC_UnTrack(generator);
1452
+
1453
+ #if PYTHON_VERSION >= 0x300
1454
+ PyThreadState *tstate = PyThreadState_GET();
1455
+ // Save the current exception, if any, we must preserve it.
1456
+ struct Nuitka_ExceptionPreservationItem saved_exception_state;
1457
+ FETCH_ERROR_OCCURRED_STATE(tstate, &saved_exception_state);
1458
+ #endif
1459
+
1460
+ Nuitka_Generator_release_closure(generator);
1405
1461
 
1406
1462
  if (generator->m_frame != NULL) {
1407
1463
  #if PYTHON_VERSION >= 0x300
1408
1464
  Nuitka_SetFrameGenerator(generator->m_frame, NULL);
1409
1465
  #endif
1410
1466
  Py_DECREF(generator->m_frame);
1411
- generator->m_frame = NULL;
1412
- }
1413
-
1414
- // Now it is safe to release references and memory for it.
1415
- Nuitka_GC_UnTrack(generator);
1416
-
1417
- if (generator->m_weakrefs != NULL) {
1418
- PyObject_ClearWeakRefs((PyObject *)generator);
1419
- assert(!HAS_ERROR_OCCURRED(tstate));
1420
1467
  }
1421
1468
 
1422
1469
  Py_DECREF(generator->m_name);
@@ -1425,6 +1472,12 @@ static void Nuitka_Generator_tp_dealloc(struct Nuitka_GeneratorObject *generator
1425
1472
  Py_DECREF(generator->m_qualname);
1426
1473
  #endif
1427
1474
 
1475
+ #if PYTHON_VERSION >= 0x300
1476
+ // TODO: Maybe push this into the freelist code and do
1477
+ // it on allocation.
1478
+ _PyGC_SET_UNFINALIZED((PyObject *)generator);
1479
+ #endif
1480
+
1428
1481
  /* Put the object into free list or release to GC */
1429
1482
  releaseToFreeList(free_list_generators, generator, MAX_GENERATOR_FREE_LIST_COUNT);
1430
1483
 
@@ -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
  /** Uncompiled generator integration
4
4
  *
@@ -148,12 +148,15 @@ static void SET_CURRENT_EXCEPTION_GENERATOR_EXIT(PyThreadState *tstate) {
148
148
 
149
149
  #if PYTHON_VERSION >= 0x300
150
150
  static bool Nuitka_PyGen_FetchStopIterationValue(PyThreadState *tstate, PyObject **pvalue) {
151
- assert(HAS_ERROR_OCCURRED(tstate));
152
-
153
151
  #if PYTHON_VERSION < 0x3c0
154
- PyObject *value = NULL;
152
+ if (!HAS_ERROR_OCCURRED(tstate)) {
153
+ *pvalue = Py_None;
154
+ Py_INCREF_IMMORTAL(Py_None);
155
+
156
+ return true;
157
+ } else if (EXCEPTION_MATCH_BOOL_SINGLE(tstate, tstate->curexc_type, PyExc_StopIteration)) {
158
+ PyObject *value = NULL;
155
159
 
156
- if (EXCEPTION_MATCH_BOOL_SINGLE(tstate, tstate->curexc_type, PyExc_StopIteration)) {
157
160
  PyObject *exception_type, *exception_value;
158
161
  PyTracebackObject *exception_tb;
159
162
 
@@ -185,38 +188,44 @@ static bool Nuitka_PyGen_FetchStopIterationValue(PyThreadState *tstate, PyObject
185
188
 
186
189
  Py_XDECREF(exception_type);
187
190
  Py_XDECREF(exception_tb);
188
- } else if (HAS_ERROR_OCCURRED(tstate)) {
189
- return false;
190
- }
191
191
 
192
- if (value == NULL) {
193
- value = Py_None;
194
- Py_INCREF(value);
195
- }
192
+ if (value == NULL) {
193
+ value = Py_None;
194
+ Py_INCREF(value);
195
+ }
196
196
 
197
- *pvalue = value;
197
+ *pvalue = value;
198
198
 
199
- return true;
199
+ return true;
200
+ } else {
201
+ return false;
202
+ }
200
203
  #else
201
- PyObject *value = NULL;
204
+ if (!HAS_ERROR_OCCURRED(tstate)) {
205
+ *pvalue = Py_None;
206
+ Py_INCREF_IMMORTAL(Py_None);
207
+
208
+ return true;
209
+ } else if (EXCEPTION_MATCH_BOOL_SINGLE(tstate, tstate->current_exception, PyExc_StopIteration)) {
210
+ PyObject *value = NULL;
202
211
 
203
- if (EXCEPTION_MATCH_BOOL_SINGLE(tstate, tstate->current_exception, PyExc_StopIteration)) {
204
212
  PyObject *exc = tstate->current_exception;
205
213
  tstate->current_exception = NULL;
206
214
 
207
215
  value = Py_NewRef(((PyStopIterationObject *)exc)->value);
208
216
  Py_DECREF(exc);
209
- } else if (HAS_ERROR_OCCURRED(tstate)) {
210
- return false;
211
- }
212
217
 
213
- if (value == NULL) {
214
- value = Py_None;
215
- }
218
+ if (value == NULL) {
219
+ value = Py_None;
220
+ }
221
+
222
+ *pvalue = value;
216
223
 
217
- *pvalue = value;
224
+ return true;
218
225
 
219
- return true;
226
+ } else {
227
+ return false;
228
+ }
220
229
  #endif
221
230
  }
222
231
  #endif
@@ -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
  /** Compiled methods.
4
4
  *
@@ -404,6 +404,7 @@ static long Nuitka_Method_tp_hash(struct Nuitka_MethodObject *method) {
404
404
  return method->m_function->m_counter;
405
405
  }
406
406
 
407
+ // Freelist setup
407
408
  #define MAX_METHOD_FREE_LIST_COUNT 100
408
409
  static struct Nuitka_MethodObject *free_list_methods = NULL;
409
410
  static int free_list_methods_count = 0;
@@ -0,0 +1,30 @@
1
+ // Copyright 2025, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
2
+
3
+ #include <Python.h>
4
+
5
+ void main(void) {
6
+ #if defined(_MSC_VER) && __STDC_VERSION__ >= 201101L
7
+ fprintf(stderr, "Generating offsets header input file.");
8
+ #else
9
+ fprintf(stderr, "Run this program compiled with MSVC in C11 mode only.");
10
+ exit(1);
11
+ #endif
12
+
13
+ // Allow end of output to be recognized.
14
+ puts("OK.");
15
+ exit(0);
16
+ }
17
+ // Part of "Nuitka", an optimizing Python compiler that is compatible and
18
+ // integrates with CPython, but also works on its own.
19
+ //
20
+ // Licensed under the Apache License, Version 2.0 (the "License");
21
+ // you may not use this file except in compliance with the License.
22
+ // You may obtain a copy of the License at
23
+ //
24
+ // http://www.apache.org/licenses/LICENSE-2.0
25
+ //
26
+ // Unless required by applicable law or agreed to in writing, software
27
+ // distributed under the License is distributed on an "AS IS" BASIS,
28
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
+ // See the License for the specific language governing permissions and
30
+ // limitations under the License.
@@ -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
  // For interacting with the Python GC unexposed details
4
4
 
@@ -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
  // This file is included from another C file, help IDEs to still parse it on
4
4
  // its own.
@@ -958,8 +958,11 @@ static bool SET_ATTRIBUTE_GENERIC(PyThreadState *tstate, PyTypeObject *type, PyO
958
958
 
959
959
  #if PYTHON_VERSION >= 0x300
960
960
  if ((type->tp_flags & Py_TPFLAGS_HEAPTYPE) && (CACHED_KEYS(type) != NULL)) {
961
+ #if PYTHON_VERSION >= 0x3d0
962
+ int res = _PyObjectDict_SetItem(type, target, dict_pointer, attr_name, value);
963
+ #else
961
964
  int res = _PyObjectDict_SetItem(type, dict_pointer, attr_name, value);
962
-
965
+ #endif
963
966
  // TODO: Not possible for set, is it?
964
967
  if (res < 0 && PyErr_ExceptionMatches(PyExc_KeyError)) {
965
968
  SET_CURRENT_EXCEPTION_TYPE0_VALUE0(tstate, PyExc_AttributeError, attr_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
  /** For calling built-ins, calls it and uses keyword dictionary if necessary.
4
4
  *
@@ -48,7 +48,7 @@ PyObject *CALL_BUILTIN_KW_ARGS(PyThreadState *tstate, PyObject *callable, PyObje
48
48
  i++;
49
49
  }
50
50
 
51
- PyObject *args_tuple = MAKE_TUPLE(tstate, args, usable_args);
51
+ PyObject *args_tuple = MAKE_TUPLE_VAR(tstate, args, usable_args);
52
52
 
53
53
  PyObject *result = CALL_FUNCTION(tstate, callable, args_tuple, kw_dict);
54
54
  Py_XDECREF(kw_dict);
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperBuiltinMethodOperation.c.j2 instead! */
4
4
 
@@ -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
  /* This helpers is used to quickly create a bytes objects.
4
4
 
@@ -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
  // This file is included from another C file, help IDEs to still parse it on
4
4
  // its own.
@@ -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
  /* WARNING, this code is GENERATED. Modify the template CodeTemplateCallsPositional.c.j2 instead! */
4
4
 
@@ -11537,32 +11537,22 @@ PyObject *CALL_METHODDESCR_WITH_SINGLE_ARG(PyThreadState *tstate, PyObject *call
11537
11537
  PyObject *result;
11538
11538
 
11539
11539
  #if PYTHON_VERSION < 0x360
11540
- PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 0);
11541
-
11542
11540
  if (flags & METH_KEYWORDS) {
11543
- result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
11541
+ result = (*(PyCFunctionWithKeywords)method)(self, const_tuple_empty, NULL);
11544
11542
  } else {
11545
- result = (*method)(self, pos_args);
11543
+ result = (*method)(self, const_tuple_empty);
11546
11544
  }
11547
-
11548
- Py_DECREF(pos_args);
11549
11545
  #else
11550
11546
  if (flags == (METH_VARARGS | METH_KEYWORDS)) {
11551
- PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 0);
11552
- result = (*(PyCFunctionWithKeywords)method)(self, pos_args, NULL);
11553
- Py_DECREF(pos_args);
11547
+ result = (*(PyCFunctionWithKeywords)method)(self, const_tuple_empty, NULL);
11554
11548
  } else if (flags == METH_FASTCALL) {
11555
11549
  #if PYTHON_VERSION < 0x370
11556
11550
  result = (*(_PyCFunctionFast)method)(self, (PyObject **)args + 1, 0, NULL);
11557
11551
  #else
11558
- PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 0);
11559
- result = (*(_PyCFunctionFast)method)(self, &pos_args, 1);
11560
- Py_DECREF(pos_args);
11552
+ result = (*(_PyCFunctionFast)method)(self, &const_tuple_empty, 1);
11561
11553
  #endif
11562
11554
  } else {
11563
- PyObject *pos_args = MAKE_TUPLE(tstate, args + 1, 0);
11564
- result = (*method)(self, pos_args);
11565
- Py_DECREF(pos_args);
11555
+ result = (*method)(self, const_tuple_empty);
11566
11556
  }
11567
11557
  #endif
11568
11558
  #ifndef __NUITKA_NO_ASSERT__
@@ -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
  // This file is included from another C file, help IDEs to still parse it on
4
4
  // its own.
@@ -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
  /** For creating classes.
4
4
  *
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperOperationComparisonDual.c.j2 instead! */
4
4
 
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperOperationComparisonDual.c.j2 instead! */
4
4
 
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperOperationComparisonDual.c.j2 instead! */
4
4
 
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperOperationComparisonDual.c.j2 instead! */
4
4
 
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperOperationComparisonDual.c.j2 instead! */
4
4
 
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperOperationComparisonDual.c.j2 instead! */
4
4
 
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperOperationComparison.c.j2 instead! */
4
4
 
@@ -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
  /** For making rich comparisons work.
4
4
  *
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperOperationComparison.c.j2 instead! */
4
4
 
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperOperationComparison.c.j2 instead! */
4
4
 
@@ -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
  /* WARNING, this code is GENERATED. Modify the template HelperOperationComparison.c.j2 instead! */
4
4