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
@@ -0,0 +1,734 @@
1
+ /* MIT License
2
+ *
3
+ * Copyright (c) 2016-2022 INRIA, CMU and Microsoft Corporation
4
+ * Copyright (c) 2022-2023 HACL* Contributors
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */
24
+
25
+
26
+ #include "internal/Hacl_Hash_SHA3.h"
27
+
28
+ static uint32_t block_len(Spec_Hash_Definitions_hash_alg a)
29
+ {
30
+ switch (a)
31
+ {
32
+ case Spec_Hash_Definitions_SHA3_224:
33
+ {
34
+ return 144U;
35
+ }
36
+ case Spec_Hash_Definitions_SHA3_256:
37
+ {
38
+ return 136U;
39
+ }
40
+ case Spec_Hash_Definitions_SHA3_384:
41
+ {
42
+ return 104U;
43
+ }
44
+ case Spec_Hash_Definitions_SHA3_512:
45
+ {
46
+ return 72U;
47
+ }
48
+ case Spec_Hash_Definitions_Shake128:
49
+ {
50
+ return 168U;
51
+ }
52
+ case Spec_Hash_Definitions_Shake256:
53
+ {
54
+ return 136U;
55
+ }
56
+ default:
57
+ {
58
+ KRML_HOST_EPRINTF("KaRaMeL incomplete match at %s:%d\n", __FILE__, __LINE__);
59
+ KRML_HOST_EXIT(253U);
60
+ }
61
+ }
62
+ }
63
+
64
+ static uint32_t hash_len(Spec_Hash_Definitions_hash_alg a)
65
+ {
66
+ switch (a)
67
+ {
68
+ case Spec_Hash_Definitions_SHA3_224:
69
+ {
70
+ return 28U;
71
+ }
72
+ case Spec_Hash_Definitions_SHA3_256:
73
+ {
74
+ return 32U;
75
+ }
76
+ case Spec_Hash_Definitions_SHA3_384:
77
+ {
78
+ return 48U;
79
+ }
80
+ case Spec_Hash_Definitions_SHA3_512:
81
+ {
82
+ return 64U;
83
+ }
84
+ default:
85
+ {
86
+ KRML_HOST_EPRINTF("KaRaMeL incomplete match at %s:%d\n", __FILE__, __LINE__);
87
+ KRML_HOST_EXIT(253U);
88
+ }
89
+ }
90
+ }
91
+
92
+ void
93
+ Hacl_Hash_SHA3_update_multi_sha3(
94
+ Spec_Hash_Definitions_hash_alg a,
95
+ uint64_t *s,
96
+ uint8_t *blocks,
97
+ uint32_t n_blocks
98
+ )
99
+ {
100
+ for (uint32_t i = 0U; i < n_blocks; i++)
101
+ {
102
+ uint8_t *block = blocks + i * block_len(a);
103
+ Hacl_Hash_SHA3_absorb_inner(block_len(a), block, s);
104
+ }
105
+ }
106
+
107
+ void
108
+ Hacl_Hash_SHA3_update_last_sha3(
109
+ Spec_Hash_Definitions_hash_alg a,
110
+ uint64_t *s,
111
+ uint8_t *input,
112
+ uint32_t input_len
113
+ )
114
+ {
115
+ uint8_t suffix;
116
+ if (a == Spec_Hash_Definitions_Shake128 || a == Spec_Hash_Definitions_Shake256)
117
+ {
118
+ suffix = 0x1fU;
119
+ }
120
+ else
121
+ {
122
+ suffix = 0x06U;
123
+ }
124
+ uint32_t len = block_len(a);
125
+ if (input_len == len)
126
+ {
127
+ Hacl_Hash_SHA3_absorb_inner(len, input, s);
128
+ uint8_t lastBlock_[200U] = { 0U };
129
+ uint8_t *lastBlock = lastBlock_;
130
+ memcpy(lastBlock, input + input_len, 0U * sizeof (uint8_t));
131
+ lastBlock[0U] = suffix;
132
+ Hacl_Hash_SHA3_loadState(len, lastBlock, s);
133
+ if (!(((uint32_t)suffix & 0x80U) == 0U) && 0U == len - 1U)
134
+ {
135
+ Hacl_Hash_SHA3_state_permute(s);
136
+ }
137
+ uint8_t nextBlock_[200U] = { 0U };
138
+ uint8_t *nextBlock = nextBlock_;
139
+ nextBlock[len - 1U] = 0x80U;
140
+ Hacl_Hash_SHA3_loadState(len, nextBlock, s);
141
+ Hacl_Hash_SHA3_state_permute(s);
142
+ return;
143
+ }
144
+ uint8_t lastBlock_[200U] = { 0U };
145
+ uint8_t *lastBlock = lastBlock_;
146
+ memcpy(lastBlock, input, input_len * sizeof (uint8_t));
147
+ lastBlock[input_len] = suffix;
148
+ Hacl_Hash_SHA3_loadState(len, lastBlock, s);
149
+ if (!(((uint32_t)suffix & 0x80U) == 0U) && input_len == len - 1U)
150
+ {
151
+ Hacl_Hash_SHA3_state_permute(s);
152
+ }
153
+ uint8_t nextBlock_[200U] = { 0U };
154
+ uint8_t *nextBlock = nextBlock_;
155
+ nextBlock[len - 1U] = 0x80U;
156
+ Hacl_Hash_SHA3_loadState(len, nextBlock, s);
157
+ Hacl_Hash_SHA3_state_permute(s);
158
+ }
159
+
160
+ typedef struct hash_buf2_s
161
+ {
162
+ Hacl_Hash_SHA3_hash_buf fst;
163
+ Hacl_Hash_SHA3_hash_buf snd;
164
+ }
165
+ hash_buf2;
166
+
167
+ Spec_Hash_Definitions_hash_alg Hacl_Hash_SHA3_get_alg(Hacl_Hash_SHA3_state_t *s)
168
+ {
169
+ Hacl_Hash_SHA3_hash_buf block_state = (*s).block_state;
170
+ return block_state.fst;
171
+ }
172
+
173
+ Hacl_Hash_SHA3_state_t *Hacl_Hash_SHA3_malloc(Spec_Hash_Definitions_hash_alg a)
174
+ {
175
+ KRML_CHECK_SIZE(sizeof (uint8_t), block_len(a));
176
+ uint8_t *buf0 = (uint8_t *)KRML_HOST_CALLOC(block_len(a), sizeof (uint8_t));
177
+ uint64_t *buf = (uint64_t *)KRML_HOST_CALLOC(25U, sizeof (uint64_t));
178
+ Hacl_Hash_SHA3_hash_buf block_state = { .fst = a, .snd = buf };
179
+ Hacl_Hash_SHA3_state_t
180
+ s = { .block_state = block_state, .buf = buf0, .total_len = (uint64_t)0U };
181
+ Hacl_Hash_SHA3_state_t
182
+ *p = (Hacl_Hash_SHA3_state_t *)KRML_HOST_MALLOC(sizeof (Hacl_Hash_SHA3_state_t));
183
+ p[0U] = s;
184
+ uint64_t *s1 = block_state.snd;
185
+ memset(s1, 0U, 25U * sizeof (uint64_t));
186
+ return p;
187
+ }
188
+
189
+ void Hacl_Hash_SHA3_free(Hacl_Hash_SHA3_state_t *state)
190
+ {
191
+ Hacl_Hash_SHA3_state_t scrut = *state;
192
+ uint8_t *buf = scrut.buf;
193
+ Hacl_Hash_SHA3_hash_buf block_state = scrut.block_state;
194
+ uint64_t *s = block_state.snd;
195
+ KRML_HOST_FREE(s);
196
+ KRML_HOST_FREE(buf);
197
+ KRML_HOST_FREE(state);
198
+ }
199
+
200
+ Hacl_Hash_SHA3_state_t *Hacl_Hash_SHA3_copy(Hacl_Hash_SHA3_state_t *state)
201
+ {
202
+ Hacl_Hash_SHA3_state_t scrut0 = *state;
203
+ Hacl_Hash_SHA3_hash_buf block_state0 = scrut0.block_state;
204
+ uint8_t *buf0 = scrut0.buf;
205
+ uint64_t total_len0 = scrut0.total_len;
206
+ Spec_Hash_Definitions_hash_alg i = block_state0.fst;
207
+ KRML_CHECK_SIZE(sizeof (uint8_t), block_len(i));
208
+ uint8_t *buf1 = (uint8_t *)KRML_HOST_CALLOC(block_len(i), sizeof (uint8_t));
209
+ memcpy(buf1, buf0, block_len(i) * sizeof (uint8_t));
210
+ uint64_t *buf = (uint64_t *)KRML_HOST_CALLOC(25U, sizeof (uint64_t));
211
+ Hacl_Hash_SHA3_hash_buf block_state = { .fst = i, .snd = buf };
212
+ hash_buf2 scrut = { .fst = block_state0, .snd = block_state };
213
+ uint64_t *s_dst = scrut.snd.snd;
214
+ uint64_t *s_src = scrut.fst.snd;
215
+ memcpy(s_dst, s_src, 25U * sizeof (uint64_t));
216
+ Hacl_Hash_SHA3_state_t
217
+ s = { .block_state = block_state, .buf = buf1, .total_len = total_len0 };
218
+ Hacl_Hash_SHA3_state_t
219
+ *p = (Hacl_Hash_SHA3_state_t *)KRML_HOST_MALLOC(sizeof (Hacl_Hash_SHA3_state_t));
220
+ p[0U] = s;
221
+ return p;
222
+ }
223
+
224
+ void Hacl_Hash_SHA3_reset(Hacl_Hash_SHA3_state_t *state)
225
+ {
226
+ Hacl_Hash_SHA3_state_t scrut = *state;
227
+ uint8_t *buf = scrut.buf;
228
+ Hacl_Hash_SHA3_hash_buf block_state = scrut.block_state;
229
+ Spec_Hash_Definitions_hash_alg i = block_state.fst;
230
+ KRML_MAYBE_UNUSED_VAR(i);
231
+ uint64_t *s = block_state.snd;
232
+ memset(s, 0U, 25U * sizeof (uint64_t));
233
+ Hacl_Hash_SHA3_state_t
234
+ tmp = { .block_state = block_state, .buf = buf, .total_len = (uint64_t)0U };
235
+ state[0U] = tmp;
236
+ }
237
+
238
+ Hacl_Streaming_Types_error_code
239
+ Hacl_Hash_SHA3_update(Hacl_Hash_SHA3_state_t *state, uint8_t *chunk, uint32_t chunk_len)
240
+ {
241
+ Hacl_Hash_SHA3_state_t s = *state;
242
+ Hacl_Hash_SHA3_hash_buf block_state = s.block_state;
243
+ uint64_t total_len = s.total_len;
244
+ Spec_Hash_Definitions_hash_alg i = block_state.fst;
245
+ if ((uint64_t)chunk_len > 0xFFFFFFFFFFFFFFFFULL - total_len)
246
+ {
247
+ return Hacl_Streaming_Types_MaximumLengthExceeded;
248
+ }
249
+ uint32_t sz;
250
+ if (total_len % (uint64_t)block_len(i) == 0ULL && total_len > 0ULL)
251
+ {
252
+ sz = block_len(i);
253
+ }
254
+ else
255
+ {
256
+ sz = (uint32_t)(total_len % (uint64_t)block_len(i));
257
+ }
258
+ if (chunk_len <= block_len(i) - sz)
259
+ {
260
+ Hacl_Hash_SHA3_state_t s1 = *state;
261
+ Hacl_Hash_SHA3_hash_buf block_state1 = s1.block_state;
262
+ uint8_t *buf = s1.buf;
263
+ uint64_t total_len1 = s1.total_len;
264
+ uint32_t sz1;
265
+ if (total_len1 % (uint64_t)block_len(i) == 0ULL && total_len1 > 0ULL)
266
+ {
267
+ sz1 = block_len(i);
268
+ }
269
+ else
270
+ {
271
+ sz1 = (uint32_t)(total_len1 % (uint64_t)block_len(i));
272
+ }
273
+ uint8_t *buf2 = buf + sz1;
274
+ memcpy(buf2, chunk, chunk_len * sizeof (uint8_t));
275
+ uint64_t total_len2 = total_len1 + (uint64_t)chunk_len;
276
+ *state
277
+ =
278
+ ((Hacl_Hash_SHA3_state_t){ .block_state = block_state1, .buf = buf, .total_len = total_len2 });
279
+ }
280
+ else if (sz == 0U)
281
+ {
282
+ Hacl_Hash_SHA3_state_t s1 = *state;
283
+ Hacl_Hash_SHA3_hash_buf block_state1 = s1.block_state;
284
+ uint8_t *buf = s1.buf;
285
+ uint64_t total_len1 = s1.total_len;
286
+ uint32_t sz1;
287
+ if (total_len1 % (uint64_t)block_len(i) == 0ULL && total_len1 > 0ULL)
288
+ {
289
+ sz1 = block_len(i);
290
+ }
291
+ else
292
+ {
293
+ sz1 = (uint32_t)(total_len1 % (uint64_t)block_len(i));
294
+ }
295
+ if (!(sz1 == 0U))
296
+ {
297
+ Spec_Hash_Definitions_hash_alg a1 = block_state1.fst;
298
+ uint64_t *s2 = block_state1.snd;
299
+ Hacl_Hash_SHA3_update_multi_sha3(a1, s2, buf, block_len(i) / block_len(a1));
300
+ }
301
+ uint32_t ite;
302
+ if ((uint64_t)chunk_len % (uint64_t)block_len(i) == 0ULL && (uint64_t)chunk_len > 0ULL)
303
+ {
304
+ ite = block_len(i);
305
+ }
306
+ else
307
+ {
308
+ ite = (uint32_t)((uint64_t)chunk_len % (uint64_t)block_len(i));
309
+ }
310
+ uint32_t n_blocks = (chunk_len - ite) / block_len(i);
311
+ uint32_t data1_len = n_blocks * block_len(i);
312
+ uint32_t data2_len = chunk_len - data1_len;
313
+ uint8_t *data1 = chunk;
314
+ uint8_t *data2 = chunk + data1_len;
315
+ Spec_Hash_Definitions_hash_alg a1 = block_state1.fst;
316
+ uint64_t *s2 = block_state1.snd;
317
+ Hacl_Hash_SHA3_update_multi_sha3(a1, s2, data1, data1_len / block_len(a1));
318
+ uint8_t *dst = buf;
319
+ memcpy(dst, data2, data2_len * sizeof (uint8_t));
320
+ *state
321
+ =
322
+ (
323
+ (Hacl_Hash_SHA3_state_t){
324
+ .block_state = block_state1,
325
+ .buf = buf,
326
+ .total_len = total_len1 + (uint64_t)chunk_len
327
+ }
328
+ );
329
+ }
330
+ else
331
+ {
332
+ uint32_t diff = block_len(i) - sz;
333
+ uint8_t *chunk1 = chunk;
334
+ uint8_t *chunk2 = chunk + diff;
335
+ Hacl_Hash_SHA3_state_t s1 = *state;
336
+ Hacl_Hash_SHA3_hash_buf block_state10 = s1.block_state;
337
+ uint8_t *buf0 = s1.buf;
338
+ uint64_t total_len10 = s1.total_len;
339
+ uint32_t sz10;
340
+ if (total_len10 % (uint64_t)block_len(i) == 0ULL && total_len10 > 0ULL)
341
+ {
342
+ sz10 = block_len(i);
343
+ }
344
+ else
345
+ {
346
+ sz10 = (uint32_t)(total_len10 % (uint64_t)block_len(i));
347
+ }
348
+ uint8_t *buf2 = buf0 + sz10;
349
+ memcpy(buf2, chunk1, diff * sizeof (uint8_t));
350
+ uint64_t total_len2 = total_len10 + (uint64_t)diff;
351
+ *state
352
+ =
353
+ (
354
+ (Hacl_Hash_SHA3_state_t){
355
+ .block_state = block_state10,
356
+ .buf = buf0,
357
+ .total_len = total_len2
358
+ }
359
+ );
360
+ Hacl_Hash_SHA3_state_t s10 = *state;
361
+ Hacl_Hash_SHA3_hash_buf block_state1 = s10.block_state;
362
+ uint8_t *buf = s10.buf;
363
+ uint64_t total_len1 = s10.total_len;
364
+ uint32_t sz1;
365
+ if (total_len1 % (uint64_t)block_len(i) == 0ULL && total_len1 > 0ULL)
366
+ {
367
+ sz1 = block_len(i);
368
+ }
369
+ else
370
+ {
371
+ sz1 = (uint32_t)(total_len1 % (uint64_t)block_len(i));
372
+ }
373
+ if (!(sz1 == 0U))
374
+ {
375
+ Spec_Hash_Definitions_hash_alg a1 = block_state1.fst;
376
+ uint64_t *s2 = block_state1.snd;
377
+ Hacl_Hash_SHA3_update_multi_sha3(a1, s2, buf, block_len(i) / block_len(a1));
378
+ }
379
+ uint32_t ite;
380
+ if
381
+ (
382
+ (uint64_t)(chunk_len - diff)
383
+ % (uint64_t)block_len(i)
384
+ == 0ULL
385
+ && (uint64_t)(chunk_len - diff) > 0ULL
386
+ )
387
+ {
388
+ ite = block_len(i);
389
+ }
390
+ else
391
+ {
392
+ ite = (uint32_t)((uint64_t)(chunk_len - diff) % (uint64_t)block_len(i));
393
+ }
394
+ uint32_t n_blocks = (chunk_len - diff - ite) / block_len(i);
395
+ uint32_t data1_len = n_blocks * block_len(i);
396
+ uint32_t data2_len = chunk_len - diff - data1_len;
397
+ uint8_t *data1 = chunk2;
398
+ uint8_t *data2 = chunk2 + data1_len;
399
+ Spec_Hash_Definitions_hash_alg a1 = block_state1.fst;
400
+ uint64_t *s2 = block_state1.snd;
401
+ Hacl_Hash_SHA3_update_multi_sha3(a1, s2, data1, data1_len / block_len(a1));
402
+ uint8_t *dst = buf;
403
+ memcpy(dst, data2, data2_len * sizeof (uint8_t));
404
+ *state
405
+ =
406
+ (
407
+ (Hacl_Hash_SHA3_state_t){
408
+ .block_state = block_state1,
409
+ .buf = buf,
410
+ .total_len = total_len1 + (uint64_t)(chunk_len - diff)
411
+ }
412
+ );
413
+ }
414
+ return Hacl_Streaming_Types_Success;
415
+ }
416
+
417
+ static void
418
+ digest_(
419
+ Spec_Hash_Definitions_hash_alg a,
420
+ Hacl_Hash_SHA3_state_t *state,
421
+ uint8_t *output,
422
+ uint32_t l
423
+ )
424
+ {
425
+ Hacl_Hash_SHA3_state_t scrut0 = *state;
426
+ Hacl_Hash_SHA3_hash_buf block_state = scrut0.block_state;
427
+ uint8_t *buf_ = scrut0.buf;
428
+ uint64_t total_len = scrut0.total_len;
429
+ uint32_t r;
430
+ if (total_len % (uint64_t)block_len(a) == 0ULL && total_len > 0ULL)
431
+ {
432
+ r = block_len(a);
433
+ }
434
+ else
435
+ {
436
+ r = (uint32_t)(total_len % (uint64_t)block_len(a));
437
+ }
438
+ uint8_t *buf_1 = buf_;
439
+ uint64_t buf[25U] = { 0U };
440
+ Hacl_Hash_SHA3_hash_buf tmp_block_state = { .fst = a, .snd = buf };
441
+ hash_buf2 scrut = { .fst = block_state, .snd = tmp_block_state };
442
+ uint64_t *s_dst = scrut.snd.snd;
443
+ uint64_t *s_src = scrut.fst.snd;
444
+ memcpy(s_dst, s_src, 25U * sizeof (uint64_t));
445
+ uint32_t ite;
446
+ if (r % block_len(a) == 0U && r > 0U)
447
+ {
448
+ ite = block_len(a);
449
+ }
450
+ else
451
+ {
452
+ ite = r % block_len(a);
453
+ }
454
+ uint8_t *buf_last = buf_1 + r - ite;
455
+ uint8_t *buf_multi = buf_1;
456
+ Spec_Hash_Definitions_hash_alg a1 = tmp_block_state.fst;
457
+ uint64_t *s0 = tmp_block_state.snd;
458
+ Hacl_Hash_SHA3_update_multi_sha3(a1, s0, buf_multi, 0U / block_len(a1));
459
+ Spec_Hash_Definitions_hash_alg a10 = tmp_block_state.fst;
460
+ uint64_t *s1 = tmp_block_state.snd;
461
+ Hacl_Hash_SHA3_update_last_sha3(a10, s1, buf_last, r);
462
+ Spec_Hash_Definitions_hash_alg a11 = tmp_block_state.fst;
463
+ uint64_t *s = tmp_block_state.snd;
464
+ if (a11 == Spec_Hash_Definitions_Shake128 || a11 == Spec_Hash_Definitions_Shake256)
465
+ {
466
+ Hacl_Hash_SHA3_squeeze0(s, block_len(a11), l, output);
467
+ return;
468
+ }
469
+ Hacl_Hash_SHA3_squeeze0(s, block_len(a11), hash_len(a11), output);
470
+ }
471
+
472
+ Hacl_Streaming_Types_error_code
473
+ Hacl_Hash_SHA3_digest(Hacl_Hash_SHA3_state_t *state, uint8_t *output)
474
+ {
475
+ Spec_Hash_Definitions_hash_alg a1 = Hacl_Hash_SHA3_get_alg(state);
476
+ if (a1 == Spec_Hash_Definitions_Shake128 || a1 == Spec_Hash_Definitions_Shake256)
477
+ {
478
+ return Hacl_Streaming_Types_InvalidAlgorithm;
479
+ }
480
+ digest_(a1, state, output, hash_len(a1));
481
+ return Hacl_Streaming_Types_Success;
482
+ }
483
+
484
+ Hacl_Streaming_Types_error_code
485
+ Hacl_Hash_SHA3_squeeze(Hacl_Hash_SHA3_state_t *s, uint8_t *dst, uint32_t l)
486
+ {
487
+ Spec_Hash_Definitions_hash_alg a1 = Hacl_Hash_SHA3_get_alg(s);
488
+ if (!(a1 == Spec_Hash_Definitions_Shake128 || a1 == Spec_Hash_Definitions_Shake256))
489
+ {
490
+ return Hacl_Streaming_Types_InvalidAlgorithm;
491
+ }
492
+ if (l == 0U)
493
+ {
494
+ return Hacl_Streaming_Types_InvalidLength;
495
+ }
496
+ digest_(a1, s, dst, l);
497
+ return Hacl_Streaming_Types_Success;
498
+ }
499
+
500
+ uint32_t Hacl_Hash_SHA3_block_len(Hacl_Hash_SHA3_state_t *s)
501
+ {
502
+ Spec_Hash_Definitions_hash_alg a1 = Hacl_Hash_SHA3_get_alg(s);
503
+ return block_len(a1);
504
+ }
505
+
506
+ uint32_t Hacl_Hash_SHA3_hash_len(Hacl_Hash_SHA3_state_t *s)
507
+ {
508
+ Spec_Hash_Definitions_hash_alg a1 = Hacl_Hash_SHA3_get_alg(s);
509
+ return hash_len(a1);
510
+ }
511
+
512
+ bool Hacl_Hash_SHA3_is_shake(Hacl_Hash_SHA3_state_t *s)
513
+ {
514
+ Spec_Hash_Definitions_hash_alg uu____0 = Hacl_Hash_SHA3_get_alg(s);
515
+ return uu____0 == Spec_Hash_Definitions_Shake128 || uu____0 == Spec_Hash_Definitions_Shake256;
516
+ }
517
+
518
+ void
519
+ Hacl_Hash_SHA3_shake128_hacl(
520
+ uint32_t inputByteLen,
521
+ uint8_t *input,
522
+ uint32_t outputByteLen,
523
+ uint8_t *output
524
+ )
525
+ {
526
+ Hacl_Hash_SHA3_keccak(1344U, 256U, inputByteLen, input, 0x1FU, outputByteLen, output);
527
+ }
528
+
529
+ void
530
+ Hacl_Hash_SHA3_shake256_hacl(
531
+ uint32_t inputByteLen,
532
+ uint8_t *input,
533
+ uint32_t outputByteLen,
534
+ uint8_t *output
535
+ )
536
+ {
537
+ Hacl_Hash_SHA3_keccak(1088U, 512U, inputByteLen, input, 0x1FU, outputByteLen, output);
538
+ }
539
+
540
+ void Hacl_Hash_SHA3_sha3_224(uint8_t *output, uint8_t *input, uint32_t input_len)
541
+ {
542
+ Hacl_Hash_SHA3_keccak(1152U, 448U, input_len, input, 0x06U, 28U, output);
543
+ }
544
+
545
+ void Hacl_Hash_SHA3_sha3_256(uint8_t *output, uint8_t *input, uint32_t input_len)
546
+ {
547
+ Hacl_Hash_SHA3_keccak(1088U, 512U, input_len, input, 0x06U, 32U, output);
548
+ }
549
+
550
+ void Hacl_Hash_SHA3_sha3_384(uint8_t *output, uint8_t *input, uint32_t input_len)
551
+ {
552
+ Hacl_Hash_SHA3_keccak(832U, 768U, input_len, input, 0x06U, 48U, output);
553
+ }
554
+
555
+ void Hacl_Hash_SHA3_sha3_512(uint8_t *output, uint8_t *input, uint32_t input_len)
556
+ {
557
+ Hacl_Hash_SHA3_keccak(576U, 1024U, input_len, input, 0x06U, 64U, output);
558
+ }
559
+
560
+ static const
561
+ uint32_t
562
+ keccak_rotc[24U] =
563
+ {
564
+ 1U, 3U, 6U, 10U, 15U, 21U, 28U, 36U, 45U, 55U, 2U, 14U, 27U, 41U, 56U, 8U, 25U, 43U, 62U, 18U,
565
+ 39U, 61U, 20U, 44U
566
+ };
567
+
568
+ static const
569
+ uint32_t
570
+ keccak_piln[24U] =
571
+ {
572
+ 10U, 7U, 11U, 17U, 18U, 3U, 5U, 16U, 8U, 21U, 24U, 4U, 15U, 23U, 19U, 13U, 12U, 2U, 20U, 14U,
573
+ 22U, 9U, 6U, 1U
574
+ };
575
+
576
+ static const
577
+ uint64_t
578
+ keccak_rndc[24U] =
579
+ {
580
+ 0x0000000000000001ULL, 0x0000000000008082ULL, 0x800000000000808aULL, 0x8000000080008000ULL,
581
+ 0x000000000000808bULL, 0x0000000080000001ULL, 0x8000000080008081ULL, 0x8000000000008009ULL,
582
+ 0x000000000000008aULL, 0x0000000000000088ULL, 0x0000000080008009ULL, 0x000000008000000aULL,
583
+ 0x000000008000808bULL, 0x800000000000008bULL, 0x8000000000008089ULL, 0x8000000000008003ULL,
584
+ 0x8000000000008002ULL, 0x8000000000000080ULL, 0x000000000000800aULL, 0x800000008000000aULL,
585
+ 0x8000000080008081ULL, 0x8000000000008080ULL, 0x0000000080000001ULL, 0x8000000080008008ULL
586
+ };
587
+
588
+ void Hacl_Hash_SHA3_state_permute(uint64_t *s)
589
+ {
590
+ for (uint32_t i0 = 0U; i0 < 24U; i0++)
591
+ {
592
+ uint64_t _C[5U] = { 0U };
593
+ KRML_MAYBE_FOR5(i,
594
+ 0U,
595
+ 5U,
596
+ 1U,
597
+ _C[i] = s[i + 0U] ^ (s[i + 5U] ^ (s[i + 10U] ^ (s[i + 15U] ^ s[i + 20U]))););
598
+ KRML_MAYBE_FOR5(i1,
599
+ 0U,
600
+ 5U,
601
+ 1U,
602
+ uint64_t uu____0 = _C[(i1 + 1U) % 5U];
603
+ uint64_t _D = _C[(i1 + 4U) % 5U] ^ (uu____0 << 1U | uu____0 >> 63U);
604
+ KRML_MAYBE_FOR5(i, 0U, 5U, 1U, s[i1 + 5U * i] = s[i1 + 5U * i] ^ _D;););
605
+ uint64_t x = s[1U];
606
+ uint64_t current = x;
607
+ for (uint32_t i = 0U; i < 24U; i++)
608
+ {
609
+ uint32_t _Y = keccak_piln[i];
610
+ uint32_t r = keccak_rotc[i];
611
+ uint64_t temp = s[_Y];
612
+ uint64_t uu____1 = current;
613
+ s[_Y] = uu____1 << r | uu____1 >> (64U - r);
614
+ current = temp;
615
+ }
616
+ KRML_MAYBE_FOR5(i,
617
+ 0U,
618
+ 5U,
619
+ 1U,
620
+ uint64_t v0 = s[0U + 5U * i] ^ (~s[1U + 5U * i] & s[2U + 5U * i]);
621
+ uint64_t v1 = s[1U + 5U * i] ^ (~s[2U + 5U * i] & s[3U + 5U * i]);
622
+ uint64_t v2 = s[2U + 5U * i] ^ (~s[3U + 5U * i] & s[4U + 5U * i]);
623
+ uint64_t v3 = s[3U + 5U * i] ^ (~s[4U + 5U * i] & s[0U + 5U * i]);
624
+ uint64_t v4 = s[4U + 5U * i] ^ (~s[0U + 5U * i] & s[1U + 5U * i]);
625
+ s[0U + 5U * i] = v0;
626
+ s[1U + 5U * i] = v1;
627
+ s[2U + 5U * i] = v2;
628
+ s[3U + 5U * i] = v3;
629
+ s[4U + 5U * i] = v4;);
630
+ uint64_t c = keccak_rndc[i0];
631
+ s[0U] = s[0U] ^ c;
632
+ }
633
+ }
634
+
635
+ void Hacl_Hash_SHA3_loadState(uint32_t rateInBytes, uint8_t *input, uint64_t *s)
636
+ {
637
+ uint8_t block[200U] = { 0U };
638
+ memcpy(block, input, rateInBytes * sizeof (uint8_t));
639
+ for (uint32_t i = 0U; i < 25U; i++)
640
+ {
641
+ uint64_t u = load64_le(block + i * 8U);
642
+ uint64_t x = u;
643
+ s[i] = s[i] ^ x;
644
+ }
645
+ }
646
+
647
+ static void storeState(uint32_t rateInBytes, uint64_t *s, uint8_t *res)
648
+ {
649
+ uint8_t block[200U] = { 0U };
650
+ for (uint32_t i = 0U; i < 25U; i++)
651
+ {
652
+ uint64_t sj = s[i];
653
+ store64_le(block + i * 8U, sj);
654
+ }
655
+ memcpy(res, block, rateInBytes * sizeof (uint8_t));
656
+ }
657
+
658
+ void Hacl_Hash_SHA3_absorb_inner(uint32_t rateInBytes, uint8_t *block, uint64_t *s)
659
+ {
660
+ Hacl_Hash_SHA3_loadState(rateInBytes, block, s);
661
+ Hacl_Hash_SHA3_state_permute(s);
662
+ }
663
+
664
+ static void
665
+ absorb(
666
+ uint64_t *s,
667
+ uint32_t rateInBytes,
668
+ uint32_t inputByteLen,
669
+ uint8_t *input,
670
+ uint8_t delimitedSuffix
671
+ )
672
+ {
673
+ uint32_t n_blocks = inputByteLen / rateInBytes;
674
+ uint32_t rem = inputByteLen % rateInBytes;
675
+ for (uint32_t i = 0U; i < n_blocks; i++)
676
+ {
677
+ uint8_t *block = input + i * rateInBytes;
678
+ Hacl_Hash_SHA3_absorb_inner(rateInBytes, block, s);
679
+ }
680
+ uint8_t *last = input + n_blocks * rateInBytes;
681
+ uint8_t lastBlock_[200U] = { 0U };
682
+ uint8_t *lastBlock = lastBlock_;
683
+ memcpy(lastBlock, last, rem * sizeof (uint8_t));
684
+ lastBlock[rem] = delimitedSuffix;
685
+ Hacl_Hash_SHA3_loadState(rateInBytes, lastBlock, s);
686
+ if (!(((uint32_t)delimitedSuffix & 0x80U) == 0U) && rem == rateInBytes - 1U)
687
+ {
688
+ Hacl_Hash_SHA3_state_permute(s);
689
+ }
690
+ uint8_t nextBlock_[200U] = { 0U };
691
+ uint8_t *nextBlock = nextBlock_;
692
+ nextBlock[rateInBytes - 1U] = 0x80U;
693
+ Hacl_Hash_SHA3_loadState(rateInBytes, nextBlock, s);
694
+ Hacl_Hash_SHA3_state_permute(s);
695
+ }
696
+
697
+ void
698
+ Hacl_Hash_SHA3_squeeze0(
699
+ uint64_t *s,
700
+ uint32_t rateInBytes,
701
+ uint32_t outputByteLen,
702
+ uint8_t *output
703
+ )
704
+ {
705
+ uint32_t outBlocks = outputByteLen / rateInBytes;
706
+ uint32_t remOut = outputByteLen % rateInBytes;
707
+ uint8_t *last = output + outputByteLen - remOut;
708
+ uint8_t *blocks = output;
709
+ for (uint32_t i = 0U; i < outBlocks; i++)
710
+ {
711
+ storeState(rateInBytes, s, blocks + i * rateInBytes);
712
+ Hacl_Hash_SHA3_state_permute(s);
713
+ }
714
+ storeState(remOut, s, last);
715
+ }
716
+
717
+ void
718
+ Hacl_Hash_SHA3_keccak(
719
+ uint32_t rate,
720
+ uint32_t capacity,
721
+ uint32_t inputByteLen,
722
+ uint8_t *input,
723
+ uint8_t delimitedSuffix,
724
+ uint32_t outputByteLen,
725
+ uint8_t *output
726
+ )
727
+ {
728
+ KRML_MAYBE_UNUSED_VAR(capacity);
729
+ uint32_t rateInBytes = rate / 8U;
730
+ uint64_t s[25U] = { 0U };
731
+ absorb(s, rateInBytes, inputByteLen, input, delimitedSuffix);
732
+ Hacl_Hash_SHA3_squeeze0(s, rateInBytes, outputByteLen, output);
733
+ }
734
+