Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__cp311-cp311-win_amd64.whl

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

Potentially problematic release.


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

Files changed (704) hide show
  1. Nuitka_winsvc-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka-run.cmd +9 -9
  2. Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
  3. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
  4. Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
  5. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
  6. nuitka/Builtins.py +18 -17
  7. nuitka/BytecodeCaching.py +24 -20
  8. nuitka/Bytecodes.py +23 -19
  9. nuitka/CacheCleanup.py +28 -23
  10. nuitka/Constants.py +19 -17
  11. nuitka/Errors.py +23 -17
  12. nuitka/HardImportRegistry.py +400 -0
  13. nuitka/MainControl.py +200 -112
  14. nuitka/ModuleRegistry.py +83 -20
  15. nuitka/OptionParsing.py +368 -175
  16. nuitka/Options.py +632 -213
  17. nuitka/OutputDirectories.py +40 -21
  18. nuitka/PostProcessing.py +73 -50
  19. nuitka/Progress.py +58 -24
  20. nuitka/PythonFlavors.py +141 -32
  21. nuitka/PythonOperators.py +18 -17
  22. nuitka/PythonVersions.py +106 -19
  23. nuitka/Serialization.py +68 -55
  24. nuitka/SourceCodeReferences.py +19 -17
  25. nuitka/Tracing.py +108 -70
  26. nuitka/TreeXML.py +31 -26
  27. nuitka/Variables.py +39 -41
  28. nuitka/Version.py +21 -7
  29. nuitka/__init__.py +5 -4
  30. nuitka/__main__.py +95 -29
  31. nuitka/__past__.py +44 -34
  32. nuitka/build/Backend.scons +202 -140
  33. nuitka/build/CCompilerVersion.scons +39 -31
  34. nuitka/build/DataComposerInterface.py +20 -17
  35. nuitka/build/Onefile.scons +50 -54
  36. nuitka/build/SconsCaching.py +93 -90
  37. nuitka/build/SconsCompilerSettings.py +157 -69
  38. nuitka/build/SconsHacks.py +25 -19
  39. nuitka/build/SconsInterface.py +154 -54
  40. nuitka/build/SconsProgress.py +19 -18
  41. nuitka/build/SconsSpawn.py +62 -33
  42. nuitka/build/SconsUtils.py +147 -55
  43. nuitka/build/__init__.py +5 -4
  44. nuitka/build/include/nuitka/allocator.h +105 -22
  45. nuitka/build/include/nuitka/builtins.h +17 -17
  46. nuitka/build/include/nuitka/calling.h +18 -18
  47. nuitka/build/include/nuitka/checkers.h +17 -18
  48. nuitka/build/include/nuitka/checksum_tools.h +14 -19
  49. nuitka/build/include/nuitka/compiled_asyncgen.h +18 -18
  50. nuitka/build/include/nuitka/compiled_cell.h +33 -18
  51. nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
  52. nuitka/build/include/nuitka/compiled_frame.h +91 -53
  53. nuitka/build/include/nuitka/compiled_function.h +42 -20
  54. nuitka/build/include/nuitka/compiled_generator.h +24 -18
  55. nuitka/build/include/nuitka/compiled_method.h +17 -18
  56. nuitka/build/include/nuitka/constants.h +29 -18
  57. nuitka/build/include/nuitka/constants_blob.h +17 -17
  58. nuitka/build/include/nuitka/environment_variables.h +30 -0
  59. nuitka/build/include/nuitka/environment_variables_system.h +45 -0
  60. nuitka/build/include/nuitka/exception_groups.h +23 -26
  61. nuitka/build/include/nuitka/exceptions.h +593 -190
  62. nuitka/build/include/nuitka/filesystem_paths.h +26 -20
  63. nuitka/build/include/nuitka/freelists.h +38 -18
  64. nuitka/build/include/nuitka/helper/attributes.h +24 -18
  65. nuitka/build/include/nuitka/helper/boolean.h +17 -17
  66. nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
  67. nuitka/build/include/nuitka/helper/bytes.h +14 -15
  68. nuitka/build/include/nuitka/helper/calling_generated.h +17 -17
  69. nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
  70. nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
  71. nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
  72. nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
  73. nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
  74. nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
  75. nuitka/build/include/nuitka/helper/complex.h +17 -17
  76. nuitka/build/include/nuitka/helper/dictionaries.h +24 -22
  77. nuitka/build/include/nuitka/helper/floats.h +17 -18
  78. nuitka/build/include/nuitka/helper/import_hard.h +25 -17
  79. nuitka/build/include/nuitka/helper/indexes.h +17 -18
  80. nuitka/build/include/nuitka/helper/ints.h +32 -20
  81. nuitka/build/include/nuitka/helper/iterators.h +17 -17
  82. nuitka/build/include/nuitka/helper/lists.h +26 -24
  83. nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
  84. nuitka/build/include/nuitka/helper/mappings.h +17 -18
  85. nuitka/build/include/nuitka/helper/operations.h +17 -17
  86. nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -17
  87. nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
  88. nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
  89. nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
  90. nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
  91. nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
  92. nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
  93. nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
  94. nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
  95. nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
  96. nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
  97. nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
  98. nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
  99. nuitka/build/include/nuitka/helper/operations_binary_sub.h +17 -17
  100. nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
  101. nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
  102. nuitka/build/include/nuitka/helper/operations_inplace_add.h +17 -17
  103. nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
  104. nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
  105. nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
  106. nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
  107. nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
  108. nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
  109. nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
  110. nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
  111. nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
  112. nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
  113. nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
  114. nuitka/build/include/nuitka/helper/operations_inplace_sub.h +17 -17
  115. nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
  116. nuitka/build/include/nuitka/helper/raising.h +29 -17
  117. nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
  118. nuitka/build/include/nuitka/helper/richcomparisons.h +14 -14
  119. nuitka/build/include/nuitka/helper/sequences.h +19 -13
  120. nuitka/build/include/nuitka/helper/sets.h +11 -12
  121. nuitka/build/include/nuitka/helper/slices.h +31 -25
  122. nuitka/build/include/nuitka/helper/strings.h +16 -17
  123. nuitka/build/include/nuitka/helper/subscripts.h +18 -201
  124. nuitka/build/include/nuitka/helper/tuples.h +64 -52
  125. nuitka/build/include/nuitka/helpers.h +38 -20
  126. nuitka/build/include/nuitka/importing.h +28 -21
  127. nuitka/build/include/nuitka/jit_sources.h +25 -0
  128. nuitka/build/include/nuitka/prelude.h +128 -46
  129. nuitka/build/include/nuitka/printing.h +22 -17
  130. nuitka/build/include/nuitka/python_pgo.h +19 -18
  131. nuitka/build/include/nuitka/safe_string_ops.h +20 -18
  132. nuitka/build/include/nuitka/threading.h +32 -33
  133. nuitka/build/include/nuitka/tracing.h +28 -18
  134. nuitka/build/include/nuitka/type_aliases.h +27 -0
  135. nuitka/build/include/nuitka/unfreezing.h +29 -23
  136. nuitka/build/inline_copy/bin/scons.py +14 -0
  137. nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
  138. nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
  139. nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
  140. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
  141. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
  142. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
  143. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
  144. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
  145. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
  146. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
  147. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
  148. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
  149. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
  150. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
  151. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
  152. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
  153. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
  154. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
  155. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
  156. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
  157. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
  158. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
  159. nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
  160. nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
  161. nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
  162. nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
  163. nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
  164. nuitka/build/inline_copy/zlib/LICENSE +22 -0
  165. nuitka/build/inline_copy/zlib/crc32.c +1049 -0
  166. nuitka/build/inline_copy/zlib/crc32.h +9446 -0
  167. nuitka/build/inline_copy/zlib/zconf.h +551 -0
  168. nuitka/build/inline_copy/zlib/zlib.h +1938 -0
  169. nuitka/build/inline_copy/zlib/zutil.h +275 -0
  170. nuitka/build/static_src/CompiledAsyncgenType.c +176 -182
  171. nuitka/build/static_src/CompiledCellType.c +63 -40
  172. nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
  173. nuitka/build/static_src/CompiledCoroutineType.c +196 -203
  174. nuitka/build/static_src/CompiledFrameType.c +287 -133
  175. nuitka/build/static_src/CompiledFunctionType.c +389 -95
  176. nuitka/build/static_src/CompiledGeneratorType.c +376 -252
  177. nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
  178. nuitka/build/static_src/CompiledMethodType.c +83 -71
  179. nuitka/build/static_src/HelpersAllocator.c +88 -19
  180. nuitka/build/static_src/HelpersAttributes.c +33 -54
  181. nuitka/build/static_src/HelpersBuiltin.c +43 -33
  182. nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
  183. nuitka/build/static_src/HelpersBytes.c +19 -20
  184. nuitka/build/static_src/HelpersCalling.c +33 -30
  185. nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
  186. nuitka/build/static_src/HelpersChecksumTools.c +35 -21
  187. nuitka/build/static_src/HelpersClasses.c +17 -17
  188. nuitka/build/static_src/HelpersComparisonEq.c +518 -492
  189. nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
  190. nuitka/build/static_src/HelpersComparisonGe.c +513 -497
  191. nuitka/build/static_src/HelpersComparisonGt.c +512 -496
  192. nuitka/build/static_src/HelpersComparisonLe.c +513 -497
  193. nuitka/build/static_src/HelpersComparisonLt.c +512 -496
  194. nuitka/build/static_src/HelpersComparisonNe.c +520 -492
  195. nuitka/build/static_src/HelpersConsole.c +96 -0
  196. nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
  197. nuitka/build/static_src/HelpersDeepcopy.c +33 -33
  198. nuitka/build/static_src/HelpersDictionaries.c +51 -29
  199. nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
  200. nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
  201. nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
  202. nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
  203. nuitka/build/static_src/HelpersExceptions.c +161 -50
  204. nuitka/build/static_src/HelpersFiles.c +37 -17
  205. nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
  206. nuitka/build/static_src/HelpersFloats.c +37 -31
  207. nuitka/build/static_src/HelpersHeapStorage.c +21 -17
  208. nuitka/build/static_src/HelpersImport.c +48 -20
  209. nuitka/build/static_src/HelpersImportHard.c +53 -17
  210. nuitka/build/static_src/HelpersJitSources.c +46 -0
  211. nuitka/build/static_src/HelpersLists.c +140 -50
  212. nuitka/build/static_src/HelpersListsGenerated.c +41 -41
  213. nuitka/build/static_src/HelpersMappings.c +17 -17
  214. nuitka/build/static_src/HelpersMatching.c +137 -51
  215. nuitka/build/static_src/HelpersOperationBinaryAdd.c +173 -146
  216. nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
  217. nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
  218. nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
  219. nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
  220. nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
  221. nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
  222. nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
  223. nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
  224. nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
  225. nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
  226. nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
  227. nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
  228. nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
  229. nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
  230. nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
  231. nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
  232. nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
  233. nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
  234. nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
  235. nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
  236. nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
  237. nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
  238. nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
  239. nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
  240. nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
  241. nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
  242. nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
  243. nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
  244. nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
  245. nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
  246. nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
  247. nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
  248. nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
  249. nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
  250. nuitka/build/static_src/HelpersProfiling.c +24 -23
  251. nuitka/build/static_src/HelpersPythonPgo.c +22 -22
  252. nuitka/build/static_src/HelpersRaising.c +88 -20
  253. nuitka/build/static_src/HelpersSafeStrings.c +34 -22
  254. nuitka/build/static_src/HelpersSequences.c +18 -19
  255. nuitka/build/static_src/HelpersSlices.c +29 -23
  256. nuitka/build/static_src/HelpersStrings.c +234 -37
  257. nuitka/build/static_src/HelpersTuples.c +46 -34
  258. nuitka/build/static_src/HelpersTypes.c +68 -23
  259. nuitka/build/static_src/InspectPatcher.c +108 -27
  260. nuitka/build/static_src/MainProgram.c +359 -263
  261. nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
  262. nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
  263. nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
  264. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
  265. nuitka/build/static_src/OnefileBootstrap.c +276 -164
  266. nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
  267. nuitka/code_generation/AsyncgenCodes.py +19 -17
  268. nuitka/code_generation/AttributeCodes.py +31 -27
  269. nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
  270. nuitka/code_generation/BranchCodes.py +19 -17
  271. nuitka/code_generation/BuiltinCodes.py +20 -17
  272. nuitka/code_generation/CallCodes.py +19 -17
  273. nuitka/code_generation/ClassCodes.py +19 -17
  274. nuitka/code_generation/CodeGeneration.py +48 -27
  275. nuitka/code_generation/CodeHelperSelection.py +19 -17
  276. nuitka/code_generation/CodeHelpers.py +24 -20
  277. nuitka/code_generation/CodeObjectCodes.py +34 -24
  278. nuitka/code_generation/ComparisonCodes.py +38 -20
  279. nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
  280. nuitka/code_generation/ConditionalCodes.py +19 -17
  281. nuitka/code_generation/ConstantCodes.py +82 -28
  282. nuitka/code_generation/Contexts.py +152 -26
  283. nuitka/code_generation/CoroutineCodes.py +19 -17
  284. nuitka/code_generation/CtypesCodes.py +19 -17
  285. nuitka/code_generation/DictCodes.py +25 -23
  286. nuitka/code_generation/Emission.py +21 -18
  287. nuitka/code_generation/ErrorCodes.py +27 -33
  288. nuitka/code_generation/EvalCodes.py +24 -20
  289. nuitka/code_generation/ExceptionCodes.py +27 -18
  290. nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
  291. nuitka/code_generation/ExpressionCodes.py +19 -17
  292. nuitka/code_generation/FrameCodes.py +24 -20
  293. nuitka/code_generation/FunctionCodes.py +24 -21
  294. nuitka/code_generation/GeneratorCodes.py +23 -20
  295. nuitka/code_generation/GlobalConstants.py +43 -23
  296. nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
  297. nuitka/code_generation/IdCodes.py +19 -17
  298. nuitka/code_generation/ImportCodes.py +90 -50
  299. nuitka/code_generation/Indentation.py +23 -22
  300. nuitka/code_generation/IndexCodes.py +19 -17
  301. nuitka/code_generation/InjectCCodes.py +14 -12
  302. nuitka/code_generation/IntegerCodes.py +19 -17
  303. nuitka/code_generation/IteratorCodes.py +19 -17
  304. nuitka/code_generation/JitCodes.py +44 -0
  305. nuitka/code_generation/LabelCodes.py +19 -17
  306. nuitka/code_generation/LineNumberCodes.py +19 -17
  307. nuitka/code_generation/ListCodes.py +32 -36
  308. nuitka/code_generation/LoaderCodes.py +22 -17
  309. nuitka/code_generation/LocalsDictCodes.py +56 -32
  310. nuitka/code_generation/LoopCodes.py +19 -17
  311. nuitka/code_generation/MatchCodes.py +42 -22
  312. nuitka/code_generation/ModuleCodes.py +43 -25
  313. nuitka/code_generation/Namify.py +27 -23
  314. nuitka/code_generation/NetworkxCodes.py +51 -0
  315. nuitka/code_generation/OperationCodes.py +29 -31
  316. nuitka/code_generation/PackageResourceCodes.py +59 -23
  317. nuitka/code_generation/PrintCodes.py +19 -17
  318. nuitka/code_generation/PythonAPICodes.py +19 -17
  319. nuitka/code_generation/RaisingCodes.py +19 -17
  320. nuitka/code_generation/Reports.py +19 -17
  321. nuitka/code_generation/ReturnCodes.py +19 -17
  322. nuitka/code_generation/SetCodes.py +19 -17
  323. nuitka/code_generation/SliceCodes.py +22 -20
  324. nuitka/code_generation/StringCodes.py +19 -17
  325. nuitka/code_generation/SubscriptCodes.py +24 -30
  326. nuitka/code_generation/TensorflowCodes.py +54 -0
  327. nuitka/code_generation/TryCodes.py +19 -17
  328. nuitka/code_generation/TupleCodes.py +20 -18
  329. nuitka/code_generation/TypeAliasCodes.py +71 -0
  330. nuitka/code_generation/VariableCodes.py +26 -22
  331. nuitka/code_generation/VariableDeclarations.py +20 -17
  332. nuitka/code_generation/YieldCodes.py +22 -20
  333. nuitka/code_generation/__init__.py +5 -4
  334. nuitka/code_generation/c_types/CTypeBases.py +19 -17
  335. nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
  336. nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
  337. nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
  338. nuitka/code_generation/c_types/CTypeModuleDictVariables.py +19 -17
  339. nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
  340. nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
  341. nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
  342. nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
  343. nuitka/code_generation/c_types/CTypeVoids.py +20 -17
  344. nuitka/code_generation/c_types/__init__.py +5 -4
  345. nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
  346. nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
  347. nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
  348. nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
  349. nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
  350. nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
  351. nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
  352. nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
  353. nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
  354. nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
  355. nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -27
  356. nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
  357. nuitka/code_generation/templates/__init__.py +5 -4
  358. nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
  359. nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +18 -18
  360. nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
  361. nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
  362. nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
  363. nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
  364. nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
  365. nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +121 -48
  366. nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
  367. nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
  368. nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
  369. nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
  370. nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
  371. nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
  372. nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
  373. nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
  374. nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +44 -32
  375. nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
  376. nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
  377. nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
  378. nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
  379. nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
  380. nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
  381. nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
  382. nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
  383. nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
  384. nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +17 -17
  385. nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
  386. nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
  387. nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
  388. nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
  389. nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
  390. nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
  391. nuitka/containers/Namedtuples.py +19 -18
  392. nuitka/containers/OrderedSetsFallback.py +19 -17
  393. nuitka/containers/__init__.py +5 -4
  394. nuitka/distutils/Build.py +19 -18
  395. nuitka/distutils/DistutilCommands.py +34 -23
  396. nuitka/distutils/__init__.py +5 -4
  397. nuitka/finalizations/Finalization.py +20 -17
  398. nuitka/finalizations/FinalizeMarkups.py +21 -41
  399. nuitka/finalizations/__init__.py +5 -4
  400. nuitka/freezer/DependsExe.py +48 -28
  401. nuitka/freezer/DllDependenciesCommon.py +47 -20
  402. nuitka/freezer/DllDependenciesMacOS.py +147 -57
  403. nuitka/freezer/DllDependenciesPosix.py +29 -19
  404. nuitka/freezer/DllDependenciesWin32.py +29 -21
  405. nuitka/freezer/ImportDetection.py +20 -17
  406. nuitka/freezer/IncludedDataFiles.py +118 -47
  407. nuitka/freezer/IncludedEntryPoints.py +102 -38
  408. nuitka/freezer/Onefile.py +32 -22
  409. nuitka/freezer/Standalone.py +105 -50
  410. nuitka/freezer/__init__.py +5 -4
  411. nuitka/importing/IgnoreListing.py +19 -17
  412. nuitka/importing/ImportCache.py +24 -21
  413. nuitka/importing/ImportResolving.py +103 -95
  414. nuitka/importing/Importing.py +286 -92
  415. nuitka/importing/PreloadedPackages.py +21 -18
  416. nuitka/importing/Recursion.py +131 -47
  417. nuitka/importing/StandardLibrary.py +46 -28
  418. nuitka/importing/__init__.py +5 -4
  419. nuitka/nodes/AsyncgenNodes.py +19 -17
  420. nuitka/nodes/AttributeLookupNodes.py +19 -17
  421. nuitka/nodes/AttributeNodes.py +19 -17
  422. nuitka/nodes/AttributeNodesGenerated.py +49 -24
  423. nuitka/nodes/BuiltinAllNodes.py +19 -17
  424. nuitka/nodes/BuiltinAnyNodes.py +19 -17
  425. nuitka/nodes/BuiltinComplexNodes.py +20 -17
  426. nuitka/nodes/BuiltinDecodingNodes.py +19 -17
  427. nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
  428. nuitka/nodes/BuiltinDictNodes.py +19 -17
  429. nuitka/nodes/BuiltinFormatNodes.py +20 -17
  430. nuitka/nodes/BuiltinHashNodes.py +19 -17
  431. nuitka/nodes/BuiltinInputNodes.py +19 -17
  432. nuitka/nodes/BuiltinIntegerNodes.py +19 -17
  433. nuitka/nodes/BuiltinIteratorNodes.py +24 -20
  434. nuitka/nodes/BuiltinLenNodes.py +19 -17
  435. nuitka/nodes/BuiltinNextNodes.py +19 -17
  436. nuitka/nodes/BuiltinOpenNodes.py +52 -18
  437. nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
  438. nuitka/nodes/BuiltinRangeNodes.py +21 -19
  439. nuitka/nodes/BuiltinRefNodes.py +68 -19
  440. nuitka/nodes/BuiltinSumNodes.py +20 -18
  441. nuitka/nodes/BuiltinTypeNodes.py +19 -17
  442. nuitka/nodes/BuiltinVarsNodes.py +19 -18
  443. nuitka/nodes/BytesNodes.py +19 -17
  444. nuitka/nodes/CallNodes.py +19 -17
  445. nuitka/nodes/Checkers.py +19 -17
  446. nuitka/nodes/ChildrenHavingMixins.py +1250 -302
  447. nuitka/nodes/ClassNodes.py +49 -29
  448. nuitka/nodes/CodeObjectSpecs.py +29 -18
  449. nuitka/nodes/ComparisonNodes.py +19 -17
  450. nuitka/nodes/ConditionalNodes.py +21 -23
  451. nuitka/nodes/ConstantRefNodes.py +57 -17
  452. nuitka/nodes/ContainerMakingNodes.py +19 -17
  453. nuitka/nodes/ContainerOperationNodes.py +19 -17
  454. nuitka/nodes/CoroutineNodes.py +19 -17
  455. nuitka/nodes/CtypesNodes.py +19 -18
  456. nuitka/nodes/DictionaryNodes.py +19 -18
  457. nuitka/nodes/ExceptionNodes.py +29 -17
  458. nuitka/nodes/ExecEvalNodes.py +19 -17
  459. nuitka/nodes/ExpressionBases.py +34 -26
  460. nuitka/nodes/ExpressionBasesGenerated.py +54 -32
  461. nuitka/nodes/ExpressionShapeMixins.py +19 -17
  462. nuitka/nodes/FrameNodes.py +19 -17
  463. nuitka/nodes/FunctionAttributeNodes.py +19 -17
  464. nuitka/nodes/FunctionNodes.py +81 -35
  465. nuitka/nodes/FutureSpecs.py +35 -20
  466. nuitka/nodes/GeneratorNodes.py +21 -19
  467. nuitka/nodes/GlobalsLocalsNodes.py +22 -17
  468. nuitka/nodes/HardImportNodesGenerated.py +545 -129
  469. nuitka/nodes/ImportHardNodes.py +46 -38
  470. nuitka/nodes/ImportNodes.py +436 -446
  471. nuitka/nodes/IndicatorMixins.py +19 -17
  472. nuitka/nodes/InjectCNodes.py +19 -18
  473. nuitka/nodes/IterationHandles.py +55 -34
  474. nuitka/nodes/KeyValuePairNodes.py +19 -17
  475. nuitka/nodes/ListOperationNodes.py +33 -21
  476. nuitka/nodes/LocalsDictNodes.py +19 -17
  477. nuitka/nodes/LocalsScopes.py +41 -41
  478. nuitka/nodes/LoopNodes.py +28 -17
  479. nuitka/nodes/MatchNodes.py +37 -24
  480. nuitka/nodes/ModuleAttributeNodes.py +18 -35
  481. nuitka/nodes/ModuleNodes.py +90 -31
  482. nuitka/nodes/NetworkxNodes.py +45 -0
  483. nuitka/nodes/NodeBases.py +45 -43
  484. nuitka/nodes/NodeMakingHelpers.py +21 -19
  485. nuitka/nodes/NodeMetaClasses.py +45 -28
  486. nuitka/nodes/OperatorNodes.py +28 -26
  487. nuitka/nodes/OperatorNodesUnary.py +20 -17
  488. nuitka/nodes/OsSysNodes.py +66 -18
  489. nuitka/nodes/OutlineNodes.py +22 -20
  490. nuitka/nodes/PackageMetadataNodes.py +37 -27
  491. nuitka/nodes/PackageResourceNodes.py +29 -23
  492. nuitka/nodes/PrintNodes.py +19 -17
  493. nuitka/nodes/ReturnNodes.py +20 -18
  494. nuitka/nodes/SideEffectNodes.py +19 -17
  495. nuitka/nodes/SliceNodes.py +20 -18
  496. nuitka/nodes/StatementBasesGenerated.py +125 -77
  497. nuitka/nodes/StatementNodes.py +19 -17
  498. nuitka/nodes/StrNodes.py +19 -17
  499. nuitka/nodes/StringConcatenationNodes.py +20 -17
  500. nuitka/nodes/SubscriptNodes.py +26 -24
  501. nuitka/nodes/TensorflowNodes.py +38 -0
  502. nuitka/nodes/TryNodes.py +19 -17
  503. nuitka/nodes/TypeMatchNodes.py +19 -17
  504. nuitka/nodes/TypeNodes.py +40 -17
  505. nuitka/nodes/VariableAssignNodes.py +122 -64
  506. nuitka/nodes/VariableDelNodes.py +19 -17
  507. nuitka/nodes/VariableNameNodes.py +19 -17
  508. nuitka/nodes/VariableRefNodes.py +63 -26
  509. nuitka/nodes/VariableReleaseNodes.py +19 -17
  510. nuitka/nodes/YieldNodes.py +21 -19
  511. nuitka/nodes/__init__.py +5 -4
  512. nuitka/nodes/shapes/BuiltinTypeShapes.py +145 -39
  513. nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
  514. nuitka/nodes/shapes/ShapeMixins.py +40 -17
  515. nuitka/nodes/shapes/StandardShapes.py +27 -20
  516. nuitka/nodes/shapes/__init__.py +5 -4
  517. nuitka/optimizations/BytecodeDemotion.py +19 -17
  518. nuitka/optimizations/FunctionInlining.py +22 -23
  519. nuitka/optimizations/Graphs.py +19 -17
  520. nuitka/optimizations/Optimization.py +39 -35
  521. nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
  522. nuitka/optimizations/Tags.py +19 -18
  523. nuitka/optimizations/TraceCollections.py +67 -24
  524. nuitka/optimizations/ValueTraces.py +92 -25
  525. nuitka/optimizations/__init__.py +5 -4
  526. nuitka/pgo/PGO.py +33 -23
  527. nuitka/pgo/__init__.py +5 -4
  528. nuitka/plugins/PluginBase.py +610 -109
  529. nuitka/plugins/Plugins.py +241 -58
  530. nuitka/plugins/YamlPluginBase.py +121 -0
  531. nuitka/plugins/__init__.py +5 -4
  532. nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
  533. nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
  534. nuitka/plugins/standard/DataFilesPlugin.py +65 -29
  535. nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
  536. nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
  537. nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
  538. nuitka/plugins/standard/DillPlugin.py +42 -134
  539. nuitka/plugins/standard/DllFilesPlugin.py +125 -42
  540. nuitka/plugins/standard/EnumPlugin.py +19 -17
  541. nuitka/plugins/standard/EventletPlugin.py +19 -17
  542. nuitka/plugins/standard/GeventPlugin.py +19 -17
  543. nuitka/plugins/standard/GiPlugin.py +44 -28
  544. nuitka/plugins/standard/GlfwPlugin.py +20 -17
  545. nuitka/plugins/standard/ImplicitImports.py +407 -46
  546. nuitka/plugins/standard/KivyPlugin.py +30 -17
  547. nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
  548. nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
  549. nuitka/plugins/standard/NumpyPlugin.py +19 -17
  550. nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
  551. nuitka/plugins/standard/PbrPlugin.py +21 -19
  552. nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
  553. nuitka/plugins/standard/PmwPlugin.py +30 -27
  554. nuitka/plugins/standard/PySidePyQtPlugin.py +74 -80
  555. nuitka/plugins/standard/PywebViewPlugin.py +19 -17
  556. nuitka/plugins/standard/SpacyPlugin.py +136 -0
  557. nuitka/plugins/standard/TensorflowPlugin.py +20 -17
  558. nuitka/plugins/standard/TkinterPlugin.py +103 -53
  559. nuitka/plugins/standard/TorchPlugin.py +20 -17
  560. nuitka/plugins/standard/TransformersPlugin.py +94 -30
  561. nuitka/plugins/standard/TrioPlugin.py +18 -15
  562. nuitka/plugins/standard/UpxPlugin.py +21 -19
  563. nuitka/plugins/standard/__init__.py +5 -4
  564. nuitka/plugins/standard/standard.nuitka-package.config.yml +3449 -1299
  565. nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
  566. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
  567. nuitka/reports/CompilationReportReader.py +67 -0
  568. nuitka/reports/LicenseReport.rst.j2 +21 -21
  569. nuitka/reports/Reports.py +352 -76
  570. nuitka/reports/__init__.py +5 -4
  571. nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
  572. nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
  573. nuitka/specs/BuiltinListOperationSpecs.py +18 -17
  574. nuitka/specs/BuiltinParameterSpecs.py +30 -20
  575. nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
  576. nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
  577. nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
  578. nuitka/specs/HardImportSpecs.py +67 -22
  579. nuitka/specs/ParameterSpecs.py +56 -41
  580. nuitka/specs/__init__.py +5 -4
  581. nuitka/tools/Basics.py +20 -18
  582. nuitka/tools/__init__.py +5 -4
  583. nuitka/tools/commercial/__init__.py +7 -6
  584. nuitka/tools/data_composer/DataComposer.py +78 -62
  585. nuitka/tools/data_composer/__init__.py +5 -4
  586. nuitka/tools/data_composer/__main__.py +18 -17
  587. nuitka/tools/environments/CreateEnvironment.py +20 -17
  588. nuitka/tools/environments/Virtualenv.py +60 -32
  589. nuitka/tools/environments/__init__.py +5 -4
  590. nuitka/tools/general/__init__.py +5 -4
  591. nuitka/tools/general/dll_report/__init__.py +5 -4
  592. nuitka/tools/general/dll_report/__main__.py +19 -21
  593. nuitka/tools/general/find_module/FindModuleCode.py +35 -22
  594. nuitka/tools/general/find_module/__init__.py +5 -4
  595. nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
  596. nuitka/tools/onefile_compressor/__init__.py +5 -4
  597. nuitka/tools/onefile_compressor/__main__.py +18 -17
  598. nuitka/tools/podman/Podman.py +19 -17
  599. nuitka/tools/podman/__init__.py +5 -4
  600. nuitka/tools/podman/__main__.py +35 -19
  601. nuitka/tools/profiler/__init__.py +5 -4
  602. nuitka/tools/profiler/__main__.py +18 -17
  603. nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
  604. nuitka/tools/scanning/DisplayPackageData.py +31 -19
  605. nuitka/tools/scanning/__init__.py +5 -4
  606. nuitka/tools/specialize/CTypeDescriptions.py +93 -71
  607. nuitka/tools/specialize/Common.py +18 -17
  608. nuitka/tools/specialize/SpecializeC.py +31 -27
  609. nuitka/tools/specialize/SpecializePython.py +108 -45
  610. nuitka/tools/specialize/__init__.py +5 -4
  611. nuitka/tools/testing/Common.py +106 -52
  612. nuitka/tools/testing/Constructs.py +19 -17
  613. nuitka/tools/testing/OutputComparison.py +54 -18
  614. nuitka/tools/testing/Pythons.py +19 -18
  615. nuitka/tools/testing/RuntimeTracing.py +20 -19
  616. nuitka/tools/testing/SearchModes.py +26 -20
  617. nuitka/tools/testing/Valgrind.py +19 -17
  618. nuitka/tools/testing/__init__.py +5 -4
  619. nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
  620. nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
  621. nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
  622. nuitka/tools/testing/compare_with_cpython/__main__.py +36 -29
  623. nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
  624. nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
  625. nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
  626. nuitka/tools/testing/measure_construct_performance/__main__.py +22 -25
  627. nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
  628. nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
  629. nuitka/tools/watch/AutoStage.py +144 -0
  630. nuitka/tools/watch/GitHub.py +113 -0
  631. nuitka/tools/watch/__init__.py +5 -4
  632. nuitka/tools/watch/__main__.py +322 -91
  633. nuitka/tree/Building.py +176 -147
  634. nuitka/tree/ComplexCallHelperFunctions.py +80 -58
  635. nuitka/tree/Extractions.py +19 -17
  636. nuitka/tree/InternalModule.py +29 -20
  637. nuitka/tree/Operations.py +19 -17
  638. nuitka/tree/ReformulationAssertStatements.py +20 -17
  639. nuitka/tree/ReformulationAssignmentStatements.py +92 -91
  640. nuitka/tree/ReformulationBooleanExpressions.py +19 -17
  641. nuitka/tree/ReformulationCallExpressions.py +20 -18
  642. nuitka/tree/ReformulationClasses.py +45 -39
  643. nuitka/tree/ReformulationClasses3.py +146 -98
  644. nuitka/tree/ReformulationComparisonExpressions.py +29 -35
  645. nuitka/tree/ReformulationContractionExpressions.py +58 -55
  646. nuitka/tree/ReformulationDictionaryCreation.py +40 -35
  647. nuitka/tree/ReformulationExecStatements.py +42 -39
  648. nuitka/tree/ReformulationForLoopStatements.py +30 -34
  649. nuitka/tree/ReformulationFunctionStatements.py +58 -54
  650. nuitka/tree/ReformulationImportStatements.py +34 -29
  651. nuitka/tree/ReformulationLambdaExpressions.py +23 -24
  652. nuitka/tree/ReformulationMatchStatements.py +244 -92
  653. nuitka/tree/ReformulationMultidist.py +22 -18
  654. nuitka/tree/ReformulationNamespacePackages.py +55 -46
  655. nuitka/tree/ReformulationPrintStatements.py +23 -24
  656. nuitka/tree/ReformulationSequenceCreation.py +50 -49
  657. nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
  658. nuitka/tree/ReformulationTryExceptStatements.py +19 -17
  659. nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
  660. nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
  661. nuitka/tree/ReformulationWithStatements.py +39 -41
  662. nuitka/tree/ReformulationYieldExpressions.py +21 -19
  663. nuitka/tree/SourceHandling.py +76 -31
  664. nuitka/tree/SyntaxErrors.py +19 -17
  665. nuitka/tree/TreeHelpers.py +33 -20
  666. nuitka/tree/VariableClosure.py +35 -39
  667. nuitka/tree/__init__.py +5 -4
  668. nuitka/utils/AppDirs.py +41 -20
  669. nuitka/utils/CStrings.py +66 -21
  670. nuitka/utils/CommandLineOptions.py +84 -19
  671. nuitka/utils/Distributions.py +445 -54
  672. nuitka/utils/Download.py +89 -57
  673. nuitka/utils/Execution.py +73 -34
  674. nuitka/utils/FileOperations.py +318 -74
  675. nuitka/utils/Hashing.py +55 -33
  676. nuitka/utils/Images.py +26 -19
  677. nuitka/utils/Importing.py +118 -24
  678. nuitka/utils/InstalledPythons.py +80 -75
  679. nuitka/utils/InstanceCounters.py +20 -17
  680. nuitka/utils/Jinja2.py +30 -22
  681. nuitka/utils/Json.py +19 -17
  682. nuitka/utils/MacOSApp.py +26 -18
  683. nuitka/utils/MemoryUsage.py +20 -18
  684. nuitka/utils/ModuleNames.py +42 -26
  685. nuitka/utils/ReExecute.py +50 -28
  686. nuitka/utils/Rest.py +20 -17
  687. nuitka/utils/SharedLibraries.py +161 -75
  688. nuitka/utils/Shebang.py +20 -17
  689. nuitka/utils/Signing.py +63 -18
  690. nuitka/utils/SlotMetaClasses.py +57 -0
  691. nuitka/utils/StaticLibraries.py +83 -56
  692. nuitka/utils/ThreadedExecutor.py +18 -17
  693. nuitka/utils/Timing.py +22 -20
  694. nuitka/utils/Utils.py +115 -25
  695. nuitka/utils/WindowsFileUsage.py +22 -20
  696. nuitka/utils/WindowsResources.py +25 -18
  697. nuitka/utils/Yaml.py +62 -24
  698. nuitka/utils/__init__.py +5 -4
  699. Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
  700. nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
  701. nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
  702. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/LICENSE.txt +0 -0
  703. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
  704. {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/top_level.txt +0 -0
@@ -1,21 +1,6 @@
1
- {# Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com #}
2
- {# #}
3
- {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
4
- {# integrates with CPython, but also works on its own. #}
5
- {# #}
6
- {# Licensed under the Apache License, Version 2.0 (the "License"); #}
7
- {# you may not use this file except in compliance with the License. #}
8
- {# You may obtain a copy of the License at #}
9
- {# #}
10
- {# http://www.apache.org/licenses/LICENSE-2.0 #}
11
- {# #}
12
- {# Unless required by applicable law or agreed to in writing, software #}
13
- {# distributed under the License is distributed on an "AS IS" BASIS, #}
14
- {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
15
- {# See the License for the specific language governing permissions and #}
16
- {# limitations under the License. #}
17
- {# #}
18
- static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()}}_{{left.getHelperCodeName()}}_{{right.getHelperCodeName()}}({{left.getVariableDecl("operand1")}}, {{right.getVariableDecl("operand2")}}) {
1
+ {# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
2
+
3
+ static {{ target.getTypeDecl() }} COMPARE_{{op_code}}_{{target.getHelperCodeName()}}_{{left.getHelperCodeName()}}_{{right.getHelperCodeName()}}({{left.getVariableDecl("operand1")}}, {{right.getVariableDecl("operand2")}}) {
19
4
  {{left.getCheckValueCode("operand1")}}
20
5
  {{right.getCheckValueCode("operand2")}}
21
6
 
@@ -35,8 +20,8 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
35
20
  {% endif %}
36
21
 
37
22
  // Convert to target type.
38
- {{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r")}};
39
- {{target.getTakeReferenceStatement("result")}}
23
+ {{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r")}};
24
+ {{ target.getTakeReferenceStatement("result", immortal=True) }}
40
25
  return result;
41
26
  }
42
27
  {% endif %}
@@ -76,8 +61,8 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
76
61
  bool r = len_a {{operand}} len_b;
77
62
 
78
63
  // Convert to target type.
79
- {{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r")}};
80
- {{target.getTakeReferenceStatement("result")}}
64
+ {{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r")}};
65
+ {{ target.getTakeReferenceStatement("result", immortal=True) }}
81
66
  return result;
82
67
  }
83
68
 
@@ -90,10 +75,25 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
90
75
  {% endif %}
91
76
 
92
77
  // Convert to target type.
93
- {{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r")}};
94
- {{target.getTakeReferenceStatement("result")}}
78
+ {{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r")}};
79
+ {{ target.getTakeReferenceStatement("result", immortal=True) }}
95
80
  return result;
96
81
 
97
82
  {% endif %}
98
83
 
99
84
  }
85
+
86
+ {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
87
+ {# integrates with CPython, but also works on its own. #}
88
+ {# #}
89
+ {# Licensed under the Apache License, Version 2.0 (the "License"); #}
90
+ {# you may not use this file except in compliance with the License. #}
91
+ {# You may obtain a copy of the License at #}
92
+ {# #}
93
+ {# http://www.apache.org/licenses/LICENSE-2.0 #}
94
+ {# #}
95
+ {# Unless required by applicable law or agreed to in writing, software #}
96
+ {# distributed under the License is distributed on an "AS IS" BASIS, #}
97
+ {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
98
+ {# See the License for the specific language governing permissions and #}
99
+ {# limitations under the License. #}
@@ -1,21 +1,6 @@
1
- {# Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com #}
2
- {# #}
3
- {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
4
- {# integrates with CPython, but also works on its own. #}
5
- {# #}
6
- {# Licensed under the Apache License, Version 2.0 (the "License"); #}
7
- {# you may not use this file except in compliance with the License. #}
8
- {# You may obtain a copy of the License at #}
9
- {# #}
10
- {# http://www.apache.org/licenses/LICENSE-2.0 #}
11
- {# #}
12
- {# Unless required by applicable law or agreed to in writing, software #}
13
- {# distributed under the License is distributed on an "AS IS" BASIS, #}
14
- {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
15
- {# See the License for the specific language governing permissions and #}
16
- {# limitations under the License. #}
17
- {# #}
18
- static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()}}_{{left.getHelperCodeName()}}_{{right.getHelperCodeName()}}({{left.getVariableDecl("operand1")}}, {{right.getVariableDecl("operand2")}}) {
1
+ {# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
2
+
3
+ static {{ target.getTypeDecl() }} COMPARE_{{op_code}}_{{target.getHelperCodeName()}}_{{left.getHelperCodeName()}}_{{right.getHelperCodeName()}}({{left.getVariableDecl("operand1")}}, {{right.getVariableDecl("operand2")}}) {
19
4
  {{left.getCheckValueCode("operand1")}}
20
5
  {{right.getCheckValueCode("operand2")}}
21
6
 
@@ -31,8 +16,8 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
31
16
  {% endif %}
32
17
 
33
18
  // Convert to target type.
34
- {{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r")}};
35
- {{target.getTakeReferenceStatement("result")}}
19
+ {{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r")}};
20
+ {{ target.getTakeReferenceStatement("result", immortal=True) }}
36
21
  return result;
37
22
  }
38
23
 
@@ -45,20 +30,24 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
45
30
  r = false;
46
31
  } else {
47
32
  int kind1 = PyUnicode_KIND(a);
33
+ #if PYTHON_VERSION < 0x3c0
48
34
  if (unlikely(kind1 == 0)) {
49
- int res = _PyUnicode_Ready((PyObject *)a);
35
+ NUITKA_MAY_BE_UNUSED int res = _PyUnicode_Ready((PyObject *)a);
50
36
  assert(res != -1);
51
37
  kind1 = PyUnicode_KIND(a);
52
38
  assert(kind1 != 0);
53
39
  }
40
+ #endif
54
41
 
55
42
  int kind2 = PyUnicode_KIND(b);
43
+ #if PYTHON_VERSION < 0x3c0
56
44
  if (unlikely(kind2 == 0)) {
57
- int res = _PyUnicode_Ready((PyObject *)b);
45
+ NUITKA_MAY_BE_UNUSED int res = _PyUnicode_Ready((PyObject *)b);
58
46
  assert(res != -1);
59
47
  kind2 = PyUnicode_KIND(b);
60
48
  assert(kind2 != 0);
61
49
  }
50
+ #endif
62
51
 
63
52
  if (kind1 != kind2) {
64
53
  r = false;
@@ -71,8 +60,8 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
71
60
  }
72
61
  }
73
62
 
74
- {{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r == " + ("true" if operand == "==" else "false"))}};
75
- {{target.getTakeReferenceStatement("result")}}
63
+ {{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r == " + ("true" if operand == "==" else "false"))}};
64
+ {{ target.getTakeReferenceStatement("result", immortal=True) }}
76
65
  return result;
77
66
  #else
78
67
  bool r;
@@ -88,8 +77,8 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
88
77
  r = (cmp == 0);
89
78
  }
90
79
 
91
- {{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r == " + ("true" if operand == "==" else "false"))}};
92
- {{target.getTakeReferenceStatement("result")}}
80
+ {{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r == " + ("true" if operand == "==" else "false"))}};
81
+ {{ target.getTakeReferenceStatement("result", immortal=True) }}
93
82
  return result;
94
83
  #endif
95
84
  {% else %}
@@ -102,10 +91,25 @@ static {{target.getTypeDecl()}} COMPARE_{{op_code}}_{{target.getHelperCodeName()
102
91
  return r;
103
92
  {% else %}
104
93
  // Convert to target type if necessary
105
- {{target.getTypeDecl()}} result = {{target.getToValueFromBoolExpression("r == Py_True")}};
106
- Py_DECREF(r);
107
- {{target.getTakeReferenceStatement("result")}}
94
+ {{ target.getTypeDecl() }} result = {{target.getToValueFromBoolExpression("r == Py_True")}};
95
+ Py_DECREF_IMMORTAL(r);
96
+ {{ target.getTakeReferenceStatement("result", immortal=True) }}
108
97
  return result;
109
98
  {% endif %}
110
99
  {% endif %}
111
100
  }
101
+
102
+ {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
103
+ {# integrates with CPython, but also works on its own. #}
104
+ {# #}
105
+ {# Licensed under the Apache License, Version 2.0 (the "License"); #}
106
+ {# you may not use this file except in compliance with the License. #}
107
+ {# You may obtain a copy of the License at #}
108
+ {# #}
109
+ {# http://www.apache.org/licenses/LICENSE-2.0 #}
110
+ {# #}
111
+ {# Unless required by applicable law or agreed to in writing, software #}
112
+ {# distributed under the License is distributed on an "AS IS" BASIS, #}
113
+ {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
114
+ {# See the License for the specific language governing permissions and #}
115
+ {# limitations under the License. #}
@@ -1,20 +1,5 @@
1
- {# Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com #}
2
- {# #}
3
- {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
4
- {# integrates with CPython, but also works on its own. #}
5
- {# #}
6
- {# Licensed under the Apache License, Version 2.0 (the "License"); #}
7
- {# you may not use this file except in compliance with the License. #}
8
- {# You may obtain a copy of the License at #}
9
- {# #}
10
- {# http://www.apache.org/licenses/LICENSE-2.0 #}
11
- {# #}
12
- {# Unless required by applicable law or agreed to in writing, software #}
13
- {# distributed under the License is distributed on an "AS IS" BASIS, #}
14
- {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
15
- {# See the License for the specific language governing permissions and #}
16
- {# limitations under the License. #}
17
- {# #}
1
+ {# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
2
+
18
3
  {% from 'HelperSlotsCommon.c.j2' import goto_exit %}
19
4
  {% from 'HelperSlotsBinary.c.j2' import binary_operation, call_binary_slot with context %}
20
5
  {% macro inplace_fallback_operation(props, left, right, type1, type2) %}
@@ -38,14 +23,14 @@
38
23
  {{ goto_exit(props, "exit_inplace_result_object", "x") }}
39
24
  }
40
25
 
41
- Py_DECREF(x);
26
+ Py_DECREF_IMMORTAL(x);
42
27
  }
43
28
  {% else %}
44
29
  // No inplace number slot {{ nb_inplace_slot }} available for this type.
45
30
  {% endif %}
46
31
 
47
32
  {
48
- {{ binary_operation(props, operator, nb_slot, left, right, "type1", "type2", "*operand1", "operand2", "exit_inplace_result_object", "exit_inplace_result_cbool_ok", "exit_inplace_result_nbool", "exit_inplace_exception") }}
33
+ {{ binary_operation(props, operator, True, nb_slot, left, right, "type1", "type2", "*operand1", "operand2", "exit_inplace_result_object", "exit_inplace_result_cbool_ok", "exit_inplace_result_nbool", "exit_inplace_exception") }}
49
34
  }
50
35
 
51
36
  {% if "exit_inplace_result_object" in props["exits"] %}
@@ -116,7 +101,7 @@ static inline bool _INPLACE_OPERATION_{{op_code}}_{{left.getHelperCodeName()}}_{
116
101
 
117
102
  {% if operator == "+" and (left.mayBothHaveType(right, "str") or left.mayBothHaveType(right, "unicode") or left.hasOneOrBothType(right, "bytes")) %}
118
103
  if (Py_REFCNT(*operand1) == 1) {
119
- // We more or less own the operand, so we might re-use its storage and
104
+ // We more or less own the operand, so we might reuse its storage and
120
105
  // execute stuff in-place.
121
106
  {% if operator == "+" and left.mayBothHaveType(right, "str") %}
122
107
  #if PYTHON_VERSION < 0x300
@@ -279,3 +264,18 @@ static inline bool _INPLACE_OPERATION_{{op_code}}_{{left.getHelperCodeName()}}_{
279
264
  bool INPLACE_OPERATION_{{op_code}}_{{left.getHelperCodeName()}}_{{right.getHelperCodeName()}}({{left.getVariableDecl("*operand1")}}, {{right.getVariableDecl("operand2")}}) {
280
265
  return _INPLACE_OPERATION_{{op_code}}_{{left.getHelperCodeName()}}_{{right.getHelperCodeName()}}(operand1, operand2);
281
266
  }
267
+
268
+ {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
269
+ {# integrates with CPython, but also works on its own. #}
270
+ {# #}
271
+ {# Licensed under the Apache License, Version 2.0 (the "License"); #}
272
+ {# you may not use this file except in compliance with the License. #}
273
+ {# You may obtain a copy of the License at #}
274
+ {# #}
275
+ {# http://www.apache.org/licenses/LICENSE-2.0 #}
276
+ {# #}
277
+ {# Unless required by applicable law or agreed to in writing, software #}
278
+ {# distributed under the License is distributed on an "AS IS" BASIS, #}
279
+ {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
280
+ {# See the License for the specific language governing permissions and #}
281
+ {# limitations under the License. #}
@@ -1,20 +1,5 @@
1
- {# Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com #}
2
- {# #}
3
- {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
4
- {# integrates with CPython, but also works on its own. #}
5
- {# #}
6
- {# Licensed under the Apache License, Version 2.0 (the "License"); #}
7
- {# you may not use this file except in compliance with the License. #}
8
- {# You may obtain a copy of the License at #}
9
- {# #}
10
- {# http://www.apache.org/licenses/LICENSE-2.0 #}
11
- {# #}
12
- {# Unless required by applicable law or agreed to in writing, software #}
13
- {# distributed under the License is distributed on an "AS IS" BASIS, #}
14
- {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
15
- {# See the License for the specific language governing permissions and #}
16
- {# limitations under the License. #}
17
- {# #}
1
+ {# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
2
+
18
3
  {% from 'HelperSlotsCommon.c.j2' import goto_exit %}
19
4
  {% from 'HelperSlotsInt.c.j2' import int_slot with context %}
20
5
  {% from 'HelperSlotsLong.c.j2' import long_slot with context %}
@@ -25,7 +10,7 @@
25
10
  {% from 'HelperSlotsTuple.c.j2' import tuple_slot %}
26
11
  {% from 'HelperSlotsList.c.j2' import list_slot %}
27
12
  {% from 'HelperSlotsSet.c.j2' import set_slot %}
28
- {% macro operation_unsupported_error_exit(props, operator, left, right, type1, type2, exit_result_exception) %}
13
+ {% macro operation_unsupported_error_exit(props, operator, inplace, left, right, type1, type2, exit_result_exception) %}
29
14
  {% set args = [] %}
30
15
  {% if left == object_desc %}
31
16
  {% do args.append("%s->tp_name" % type1) %}
@@ -39,15 +24,15 @@
39
24
  {% set right_name_3 = "'%s'" % ("%s" if right == object_desc else right.getTypeName3()) %}
40
25
  {% if (left_name_2 == left_name_3 and right_name_2 == right_name_3) or left.python_requirement or right.python_requirement %}
41
26
  {% if left.python_requirement == "PYTHON_VERSION < 0x300" or right.python_requirement == "PYTHON_VERSION < 0x300" %}
42
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator) }}: {{ left_name_2 }} and {{ right_name_2 }}"{{ "," + ",".join(args) if args else "" }});
27
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator, inplace) }}: {{ left_name_2 }} and {{ right_name_2 }}"{{ "," + ",".join(args) if args else "" }});
43
28
  {% else %}
44
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator) }}: {{ left_name_3 }} and {{ right_name_3 }}"{{ "," + ",".join(args) if args else "" }});
29
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator, inplace) }}: {{ left_name_3 }} and {{ right_name_3 }}"{{ "," + ",".join(args) if args else "" }});
45
30
  {% endif %}
46
31
  {% else %}
47
32
  #if PYTHON_VERSION < 0x300
48
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator) }}: {{ left_name_2 }} and {{ right_name_2 }}"{{ "," + ",".join(args) if args else "" }});
33
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator, inplace) }}: {{ left_name_2 }} and {{ right_name_2 }}"{{ "," + ",".join(args) if args else "" }});
49
34
  #else
50
- PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator) }}: {{ left_name_3 }} and {{ right_name_3 }}"{{ "," + ",".join(args) if args else "" }});
35
+ PyErr_Format(PyExc_TypeError, "unsupported operand type(s) for {{ left.getOperationErrorMessageName(operator, inplace) }}: {{ left_name_3 }} and {{ right_name_3 }}"{{ "," + ",".join(args) if args else "" }});
51
36
  #endif
52
37
  {% endif %}
53
38
  {{ goto_exit(props, exit_result_exception) }}
@@ -144,7 +129,7 @@
144
129
  }
145
130
  }
146
131
  {% endmacro %}
147
- {% macro binary_operation(props, operator, nb_slot, left, right, type1, type2, operand1, operand2, exit_result_object, exit_result_cbool_ok, exit_result_nbool, exit_result_exception) %}
132
+ {% macro binary_operation(props, operator, inplace, nb_slot, left, right, type1, type2, operand1, operand2, exit_result_object, exit_result_cbool_ok, exit_result_nbool, exit_result_exception) %}
148
133
  {% set slot1_relevant = left == object_desc or left.hasSlot(nb_slot) %}
149
134
  {% set slot2_relevant = right == object_desc or (left != right and right.hasSlot(nb_slot)) %}
150
135
  {% set error_needed = 1 %}
@@ -186,7 +171,7 @@
186
171
  {{ goto_exit(props, exit_result_object, "x") }}
187
172
  }
188
173
 
189
- Py_DECREF(x);
174
+ Py_DECREF_IMMORTAL(x);
190
175
  slot2 = NULL;
191
176
  }
192
177
  }
@@ -198,7 +183,7 @@
198
183
  {{ goto_exit(props, exit_result_object, "x") }}
199
184
  }
200
185
 
201
- Py_DECREF(x);
186
+ Py_DECREF_IMMORTAL(x);
202
187
  }
203
188
  {% endif %}
204
189
 
@@ -210,7 +195,7 @@
210
195
  {{ goto_exit(props, exit_result_object, "x") }}
211
196
  }
212
197
 
213
- Py_DECREF(x);
198
+ Py_DECREF_IMMORTAL(x);
214
199
  }
215
200
  {% endif %}
216
201
 
@@ -390,7 +375,7 @@
390
375
  {% endif %}
391
376
 
392
377
  {% if error_needed == 1 %}
393
- {{ operation_unsupported_error_exit(props, operator, left, right, type1, type2, exit_result_exception) }}
378
+ {{ operation_unsupported_error_exit(props, operator, inplace, left, right, type1, type2, exit_result_exception) }}
394
379
  {% else %}
395
380
  NUITKA_CANNOT_GET_HERE("missing error exit annotation");
396
381
  {% endif %}
@@ -418,3 +403,18 @@
418
403
  {{ 0/0 }}
419
404
  {% endif %}
420
405
  {% endmacro %}
406
+
407
+ {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
408
+ {# integrates with CPython, but also works on its own. #}
409
+ {# #}
410
+ {# Licensed under the Apache License, Version 2.0 (the "License"); #}
411
+ {# you may not use this file except in compliance with the License. #}
412
+ {# You may obtain a copy of the License at #}
413
+ {# #}
414
+ {# http://www.apache.org/licenses/LICENSE-2.0 #}
415
+ {# #}
416
+ {# Unless required by applicable law or agreed to in writing, software #}
417
+ {# distributed under the License is distributed on an "AS IS" BASIS, #}
418
+ {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
419
+ {# See the License for the specific language governing permissions and #}
420
+ {# limitations under the License. #}
@@ -1,20 +1,5 @@
1
- {# Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com #}
2
- {# #}
3
- {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
4
- {# integrates with CPython, but also works on its own. #}
5
- {# #}
6
- {# Licensed under the Apache License, Version 2.0 (the "License"); #}
7
- {# you may not use this file except in compliance with the License. #}
8
- {# You may obtain a copy of the License at #}
9
- {# #}
10
- {# http://www.apache.org/licenses/LICENSE-2.0 #}
11
- {# #}
12
- {# Unless required by applicable law or agreed to in writing, software #}
13
- {# distributed under the License is distributed on an "AS IS" BASIS, #}
14
- {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
15
- {# See the License for the specific language governing permissions and #}
16
- {# limitations under the License. #}
17
- {# #}
1
+ {# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
2
+
18
3
  {% from 'HelperSlotsCommon.c.j2' import goto_exit %}
19
4
 
20
5
  {% macro bytes_slot(props, operator, nb_slot, target, left, right, result, operand1, operand2, exit_result_ok, exit_result_exception) %}
@@ -49,3 +34,18 @@ exit_result_object:
49
34
  {{ goto_exit(props, exit_result_ok) }}
50
35
 
51
36
  {% endmacro %}
37
+
38
+ {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
39
+ {# integrates with CPython, but also works on its own. #}
40
+ {# #}
41
+ {# Licensed under the Apache License, Version 2.0 (the "License"); #}
42
+ {# you may not use this file except in compliance with the License. #}
43
+ {# You may obtain a copy of the License at #}
44
+ {# #}
45
+ {# http://www.apache.org/licenses/LICENSE-2.0 #}
46
+ {# #}
47
+ {# Unless required by applicable law or agreed to in writing, software #}
48
+ {# distributed under the License is distributed on an "AS IS" BASIS, #}
49
+ {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
50
+ {# See the License for the specific language governing permissions and #}
51
+ {# limitations under the License. #}
@@ -1,20 +1,5 @@
1
- {# Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com #}
2
- {# #}
3
- {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
4
- {# integrates with CPython, but also works on its own. #}
5
- {# #}
6
- {# Licensed under the Apache License, Version 2.0 (the "License"); #}
7
- {# you may not use this file except in compliance with the License. #}
8
- {# You may obtain a copy of the License at #}
9
- {# #}
10
- {# http://www.apache.org/licenses/LICENSE-2.0 #}
11
- {# #}
12
- {# Unless required by applicable law or agreed to in writing, software #}
13
- {# distributed under the License is distributed on an "AS IS" BASIS, #}
14
- {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
15
- {# See the License for the specific language governing permissions and #}
16
- {# limitations under the License. #}
17
- {# #}
1
+ {# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
2
+
18
3
  {# This contains macros that are used for all slot helper macros #}
19
4
  {% macro goto_exit(props, target, result, qual="all") %}
20
5
  {% if target.endswith(("_exception", "_left", "_right")) or "_const_" in target or target == "exit_result_ok" %}
@@ -69,3 +54,18 @@
69
54
  {% endif %}
70
55
  {{ goto_exit(props, exit_result_ok) }}
71
56
  {% endmacro %}
57
+
58
+ {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
59
+ {# integrates with CPython, but also works on its own. #}
60
+ {# #}
61
+ {# Licensed under the Apache License, Version 2.0 (the "License"); #}
62
+ {# you may not use this file except in compliance with the License. #}
63
+ {# You may obtain a copy of the License at #}
64
+ {# #}
65
+ {# http://www.apache.org/licenses/LICENSE-2.0 #}
66
+ {# #}
67
+ {# Unless required by applicable law or agreed to in writing, software #}
68
+ {# distributed under the License is distributed on an "AS IS" BASIS, #}
69
+ {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
70
+ {# See the License for the specific language governing permissions and #}
71
+ {# limitations under the License. #}
@@ -1,20 +1,5 @@
1
- {# Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com #}
2
- {# #}
3
- {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
4
- {# integrates with CPython, but also works on its own. #}
5
- {# #}
6
- {# Licensed under the Apache License, Version 2.0 (the "License"); #}
7
- {# you may not use this file except in compliance with the License. #}
8
- {# You may obtain a copy of the License at #}
9
- {# #}
10
- {# http://www.apache.org/licenses/LICENSE-2.0 #}
11
- {# #}
12
- {# Unless required by applicable law or agreed to in writing, software #}
13
- {# distributed under the License is distributed on an "AS IS" BASIS, #}
14
- {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
15
- {# See the License for the specific language governing permissions and #}
16
- {# limitations under the License. #}
17
- {# #}
1
+ {# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
2
+
18
3
  {% from 'HelperSlotsCommon.c.j2' import goto_exit, constant_int_exit_target, constant_float_exit_target %}
19
4
 
20
5
  {% macro float_core(props, operator, nb_slot, target, left, right, result, operand1, operand2, exit_result_object, exit_result_exception, exit_result_ok_cfloat, exit_result_ok_left, exit_result_ok_right, exit_result_ok_const_float_1_0, exit_result_ok_const_float_0_0, exit_result_ok_const_float_minus_1_0) %}
@@ -325,3 +310,18 @@ exit_result_ok_right:
325
310
  {% endif %}
326
311
 
327
312
  {% endmacro %}
313
+
314
+ {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
315
+ {# integrates with CPython, but also works on its own. #}
316
+ {# #}
317
+ {# Licensed under the Apache License, Version 2.0 (the "License"); #}
318
+ {# you may not use this file except in compliance with the License. #}
319
+ {# You may obtain a copy of the License at #}
320
+ {# #}
321
+ {# http://www.apache.org/licenses/LICENSE-2.0 #}
322
+ {# #}
323
+ {# Unless required by applicable law or agreed to in writing, software #}
324
+ {# distributed under the License is distributed on an "AS IS" BASIS, #}
325
+ {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
326
+ {# See the License for the specific language governing permissions and #}
327
+ {# limitations under the License. #}
@@ -1,20 +1,5 @@
1
- {# Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com #}
2
- {# #}
3
- {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
4
- {# integrates with CPython, but also works on its own. #}
5
- {# #}
6
- {# Licensed under the Apache License, Version 2.0 (the "License"); #}
7
- {# you may not use this file except in compliance with the License. #}
8
- {# You may obtain a copy of the License at #}
9
- {# #}
10
- {# http://www.apache.org/licenses/LICENSE-2.0 #}
11
- {# #}
12
- {# Unless required by applicable law or agreed to in writing, software #}
13
- {# distributed under the License is distributed on an "AS IS" BASIS, #}
14
- {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
15
- {# See the License for the specific language governing permissions and #}
16
- {# limitations under the License. #}
17
- {# #}
1
+ {# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
2
+
18
3
  {% from 'HelperSlotsCommon.c.j2' import goto_exit, constant_int_exit_target, constant_float_exit_target %}
19
4
 
20
5
  {% macro int_core(props, operator, nb_slot, bool_mode, left, right, result, operand1, operand2, exit_result_ok, exit_result_exception, exit_result_ok_cbool, exit_result_ok_clong, exit_result_ok_cfloat, exit_result_object, exit_result_ok_left, exit_result_ok_const_int_0, exit_result_ok_const_int_neg_1, exit_result_ok_const_float_0_0, exit_result_ok_const_float_minus_0_0) %}
@@ -409,3 +394,18 @@ exit_result_object:
409
394
  {% endif %}
410
395
 
411
396
  {% endmacro %}
397
+
398
+ {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
399
+ {# integrates with CPython, but also works on its own. #}
400
+ {# #}
401
+ {# Licensed under the Apache License, Version 2.0 (the "License"); #}
402
+ {# you may not use this file except in compliance with the License. #}
403
+ {# You may obtain a copy of the License at #}
404
+ {# #}
405
+ {# http://www.apache.org/licenses/LICENSE-2.0 #}
406
+ {# #}
407
+ {# Unless required by applicable law or agreed to in writing, software #}
408
+ {# distributed under the License is distributed on an "AS IS" BASIS, #}
409
+ {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
410
+ {# See the License for the specific language governing permissions and #}
411
+ {# limitations under the License. #}
@@ -1,20 +1,5 @@
1
- {# Copyright 2023, Kay Hayen, mailto:kay.hayen@gmail.com #}
2
- {# #}
3
- {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
4
- {# integrates with CPython, but also works on its own. #}
5
- {# #}
6
- {# Licensed under the Apache License, Version 2.0 (the "License"); #}
7
- {# you may not use this file except in compliance with the License. #}
8
- {# You may obtain a copy of the License at #}
9
- {# #}
10
- {# http://www.apache.org/licenses/LICENSE-2.0 #}
11
- {# #}
12
- {# Unless required by applicable law or agreed to in writing, software #}
13
- {# distributed under the License is distributed on an "AS IS" BASIS, #}
14
- {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
15
- {# See the License for the specific language governing permissions and #}
16
- {# limitations under the License. #}
17
- {# #}
1
+ {# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file #}
2
+
18
3
  {% from 'HelperSlotsCommon.c.j2' import goto_exit %}
19
4
 
20
5
  {% macro list_slot(props, operator, nb_slot, target, left, right, result, operand1, operand2, exit_result_ok, exit_result_exception) %}
@@ -24,7 +9,10 @@
24
9
  {# TODO: Could and should in-line and specialize this per slot too. #}
25
10
  {% if nb_slot == "nb_add" %}
26
11
  {% if left.type_name == "list" == right.type_name %}
27
- PyObject *x = LIST_CONCAT({{ operand1 }}, {{ operand2 }});
12
+ // TODO: Have this more globally passed in
13
+ PyThreadState *tstate = PyThreadState_GET();
14
+
15
+ PyObject *x = LIST_CONCAT(tstate, {{ operand1 }}, {{ operand2 }});
28
16
  {% else %}
29
17
  PyObject *x = {{ left.getSlotCallExpression("sq_concat", "PyList_Type.tp_as_sequence->sq_concat", operand1, operand2) }};
30
18
  {% endif %}
@@ -54,3 +42,18 @@ exit_result_object:
54
42
  {{ goto_exit(props, exit_result_ok) }}
55
43
 
56
44
  {% endmacro %}
45
+
46
+ {# Part of "Nuitka", an optimizing Python compiler that is compatible and #}
47
+ {# integrates with CPython, but also works on its own. #}
48
+ {# #}
49
+ {# Licensed under the Apache License, Version 2.0 (the "License"); #}
50
+ {# you may not use this file except in compliance with the License. #}
51
+ {# You may obtain a copy of the License at #}
52
+ {# #}
53
+ {# http://www.apache.org/licenses/LICENSE-2.0 #}
54
+ {# #}
55
+ {# Unless required by applicable law or agreed to in writing, software #}
56
+ {# distributed under the License is distributed on an "AS IS" BASIS, #}
57
+ {# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #}
58
+ {# See the License for the specific language governing permissions and #}
59
+ {# limitations under the License. #}