@zigc/lib 0.17.0-dev.27 → 0.17.0-dev.296

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.
Files changed (1103) hide show
  1. package/c/fcntl.zig +6 -1
  2. package/c/inttypes.zig +0 -10
  3. package/c/math.zig +52 -112
  4. package/c/pthread.zig +57 -0
  5. package/c/search.zig +1 -27
  6. package/c/stdlib/drand48.zig +0 -57
  7. package/c/stdlib.zig +31 -121
  8. package/c/string.zig +20 -7
  9. package/c/strings.zig +0 -38
  10. package/c/unistd.zig +27 -26
  11. package/c/wchar.zig +10 -0
  12. package/c.zig +2 -2
  13. package/compiler/aro/aro/CodeGen.zig +7 -8
  14. package/compiler/aro/aro/Compilation.zig +17 -17
  15. package/compiler/aro/aro/Driver.zig +14 -13
  16. package/compiler/aro/aro/Parser.zig +20 -15
  17. package/compiler/aro/aro/Pragma.zig +3 -2
  18. package/compiler/aro/aro/Preprocessor.zig +9 -6
  19. package/compiler/aro/aro/pragmas/message.zig +3 -2
  20. package/compiler/aro/aro/text_literal.zig +3 -2
  21. package/compiler/aro/assembly_backend/x86_64.zig +4 -4
  22. package/compiler/build_runner.zig +2 -4
  23. package/compiler/reduce/Walk.zig +8 -13
  24. package/compiler/resinator/compile.zig +1 -1
  25. package/compiler/resinator/cvtres.zig +4 -4
  26. package/compiler/resinator/errors.zig +7 -7
  27. package/compiler/resinator/ico.zig +4 -4
  28. package/compiler/resinator/parse.zig +2 -2
  29. package/compiler/resinator/res.zig +1 -1
  30. package/compiler/std-docs.zig +1 -1
  31. package/compiler/test_runner.zig +1 -1
  32. package/compiler/translate-c/MacroTranslator.zig +1 -1
  33. package/compiler/translate-c/Translator.zig +6 -2
  34. package/compiler/translate-c/ast.zig +16 -23
  35. package/compiler/translate-c/main.zig +1 -1
  36. package/compiler_rt/addf3.zig +1 -1
  37. package/compiler_rt/arm.zig +3 -3
  38. package/compiler_rt/atomics.zig +1 -1
  39. package/compiler_rt/comparef.zig +3 -3
  40. package/compiler_rt/cos.zig +1 -3
  41. package/compiler_rt/count0bits.zig +1 -1
  42. package/compiler_rt/divdf3.zig +2 -2
  43. package/compiler_rt/divsf3.zig +1 -1
  44. package/compiler_rt/divtf3.zig +1 -1
  45. package/compiler_rt/divxf3.zig +1 -1
  46. package/compiler_rt/exp.zig +0 -2
  47. package/compiler_rt/exp2.zig +0 -2
  48. package/compiler_rt/extendf.zig +5 -5
  49. package/compiler_rt/fabs.zig +1 -3
  50. package/compiler_rt/float_from_int.zig +3 -4
  51. package/compiler_rt/fma.zig +0 -2
  52. package/compiler_rt/fmax.zig +1 -3
  53. package/compiler_rt/fmin.zig +1 -3
  54. package/compiler_rt/fmod.zig +2 -4
  55. package/compiler_rt/limb64.zig +3 -2
  56. package/compiler_rt/log.zig +0 -2
  57. package/compiler_rt/log10.zig +0 -2
  58. package/compiler_rt/log2.zig +0 -2
  59. package/compiler_rt/mulf3.zig +2 -2
  60. package/compiler_rt/rem_pio2l.zig +1 -1
  61. package/compiler_rt/round.zig +0 -2
  62. package/compiler_rt/sin.zig +1 -3
  63. package/compiler_rt/sincos.zig +1 -3
  64. package/compiler_rt/sqrt.zig +0 -2
  65. package/compiler_rt/ssp.zig +2 -2
  66. package/compiler_rt/tan.zig +1 -3
  67. package/compiler_rt/trunc.zig +0 -2
  68. package/compiler_rt/truncf.zig +3 -3
  69. package/compiler_rt/trunctfhf2.zig +3 -0
  70. package/compiler_rt.zig +5 -26
  71. package/docs/wasm/Walk.zig +1 -3
  72. package/docs/wasm/html_render.zig +1 -2
  73. package/docs/wasm/markdown/Parser.zig +16 -20
  74. package/fuzzer.zig +2 -0
  75. package/include/__clang_spirv_builtins.h +12 -12
  76. package/include/__float_float.h +176 -0
  77. package/include/__float_header_macro.h +12 -0
  78. package/include/__float_infinity_nan.h +20 -0
  79. package/include/amo.h +131 -0
  80. package/include/amxavx512intrin.h +215 -1
  81. package/include/amxintrin.h +0 -2
  82. package/include/arm_acle.h +37 -27
  83. package/include/arm_neon.h +218 -82
  84. package/include/arm_sme.h +8 -8
  85. package/include/arm_sve.h +4162 -3782
  86. package/include/avx10_2_512bf16intrin.h +19 -12
  87. package/include/avx10_2_512convertintrin.h +1 -1
  88. package/include/avx10_2_512niintrin.h +31 -31
  89. package/include/avx10_2_512satcvtdsintrin.h +1 -1
  90. package/include/avx10_2bf16intrin.h +54 -45
  91. package/include/avx10_2convertintrin.h +2 -2
  92. package/include/avx10_2copyintrin.h +1 -1
  93. package/include/avx10_2niintrin.h +14 -14
  94. package/include/avx10_2satcvtdsintrin.h +2 -2
  95. package/include/avx2intrin.h +275 -377
  96. package/include/avx512bf16intrin.h +25 -16
  97. package/include/avx512bitalgintrin.h +19 -30
  98. package/include/avx512bwintrin.h +386 -505
  99. package/include/avx512cdintrin.h +42 -55
  100. package/include/avx512dqintrin.h +132 -161
  101. package/include/avx512fintrin.h +1015 -1424
  102. package/include/avx512fp16intrin.h +112 -110
  103. package/include/avx512ifmaintrin.h +32 -34
  104. package/include/avx512ifmavlintrin.h +73 -46
  105. package/include/avx512vbmi2intrin.h +43 -32
  106. package/include/avx512vbmiintrin.h +19 -27
  107. package/include/avx512vbmivlintrin.h +35 -49
  108. package/include/avx512vlbf16intrin.h +32 -22
  109. package/include/avx512vlbitalgintrin.h +37 -53
  110. package/include/avx512vlbwintrin.h +470 -573
  111. package/include/avx512vlcdintrin.h +74 -102
  112. package/include/avx512vldqintrin.h +110 -127
  113. package/include/avx512vlfp16intrin.h +130 -111
  114. package/include/avx512vlintrin.h +945 -1299
  115. package/include/avx512vlvbmi2intrin.h +78 -63
  116. package/include/avx512vlvnniintrin.h +21 -18
  117. package/include/avx512vlvp2intersectintrin.h +2 -2
  118. package/include/avx512vnniintrin.h +10 -10
  119. package/include/avx512vp2intersectintrin.h +1 -2
  120. package/include/avx512vpopcntdqintrin.h +8 -10
  121. package/include/avx512vpopcntdqvlintrin.h +17 -15
  122. package/include/avxifmaintrin.h +16 -0
  123. package/include/avxintrin.h +165 -241
  124. package/include/avxvnniint16intrin.h +118 -99
  125. package/include/avxvnniint8intrin.h +56 -32
  126. package/include/avxvnniintrin.h +16 -8
  127. package/include/cpuid.h +101 -4
  128. package/include/emmintrin.h +168 -168
  129. package/include/f16cintrin.h +23 -9
  130. package/include/float.h +16 -155
  131. package/include/fma4intrin.h +98 -96
  132. package/include/fmaintrin.h +96 -66
  133. package/include/gfniintrin.h +21 -16
  134. package/include/hexagon_types.h +23 -20
  135. package/include/hvx_hexagon_protos.h +649 -860
  136. package/include/immintrin.h +0 -12
  137. package/include/intrin.h +4 -0
  138. package/include/lasxintrin.h +113 -0
  139. package/include/llvm_libc_wrappers/assert.h +3 -5
  140. package/include/llvm_libc_wrappers/ctype.h +3 -115
  141. package/include/llvm_libc_wrappers/inttypes.h +3 -5
  142. package/include/llvm_libc_wrappers/stdio.h +10 -38
  143. package/include/llvm_libc_wrappers/stdlib.h +3 -24
  144. package/include/llvm_libc_wrappers/string.h +2 -70
  145. package/include/llvm_libc_wrappers/time.h +4 -10
  146. package/include/mmintrin.h +188 -257
  147. package/include/module.modulemap +23 -4
  148. package/include/movrs_avx10_2_512intrin.h +2 -2
  149. package/include/movrs_avx10_2intrin.h +4 -4
  150. package/include/pmmintrin.h +12 -24
  151. package/include/ptrauth.h +16 -2
  152. package/include/riscv_mips.h +34 -0
  153. package/include/riscv_nds.h +89 -0
  154. package/include/sifive_vector.h +58 -2
  155. package/include/sm4evexintrin.h +2 -2
  156. package/include/smmintrin.h +77 -59
  157. package/include/spirvintrin.h +194 -0
  158. package/include/stddefer.h +19 -0
  159. package/include/tmmintrin.h +116 -147
  160. package/include/vaesintrin.h +1 -2
  161. package/include/xmmintrin.h +44 -70
  162. package/include/xopintrin.h +20 -10
  163. package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
  164. package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
  165. package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
  166. package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
  167. package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
  168. package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
  169. package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
  170. package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
  171. package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
  172. package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
  173. package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
  174. package/libc/include/any-linux-any/linux/android/binder.h +1 -1
  175. package/libc/include/any-linux-any/linux/bpf.h +28 -0
  176. package/libc/include/any-linux-any/linux/btrfs.h +1 -0
  177. package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
  178. package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
  179. package/libc/include/any-linux-any/linux/dpll.h +1 -0
  180. package/libc/include/any-linux-any/linux/elf.h +2 -0
  181. package/libc/include/any-linux-any/linux/ethtool.h +21 -5
  182. package/libc/include/any-linux-any/linux/fs.h +1 -0
  183. package/libc/include/any-linux-any/linux/hyperv.h +1 -1
  184. package/libc/include/any-linux-any/linux/idxd.h +134 -134
  185. package/libc/include/any-linux-any/linux/if_alg.h +1 -1
  186. package/libc/include/any-linux-any/linux/if_link.h +1 -0
  187. package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
  188. package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
  189. package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
  190. package/libc/include/any-linux-any/linux/io_uring.h +33 -2
  191. package/libc/include/any-linux-any/linux/iommufd.h +39 -0
  192. package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
  193. package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
  194. package/libc/include/any-linux-any/linux/kvm.h +30 -6
  195. package/libc/include/any-linux-any/linux/landlock.h +22 -8
  196. package/libc/include/any-linux-any/linux/magic.h +1 -0
  197. package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
  198. package/libc/include/any-linux-any/linux/mount.h +11 -2
  199. package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
  200. package/libc/include/any-linux-any/linux/mshv.h +2 -0
  201. package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
  202. package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
  203. package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
  204. package/libc/include/any-linux-any/linux/nfs.h +1 -1
  205. package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
  206. package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
  207. package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
  208. package/libc/include/any-linux-any/linux/nl80211.h +104 -3
  209. package/libc/include/any-linux-any/linux/pci.h +7 -0
  210. package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
  211. package/libc/include/any-linux-any/linux/pcitest.h +1 -0
  212. package/libc/include/any-linux-any/linux/perf_event.h +24 -3
  213. package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
  214. package/libc/include/any-linux-any/linux/prctl.h +30 -0
  215. package/libc/include/any-linux-any/linux/rseq.h +62 -5
  216. package/libc/include/any-linux-any/linux/shm.h +0 -1
  217. package/libc/include/any-linux-any/linux/stddef.h +4 -0
  218. package/libc/include/any-linux-any/linux/sysctl.h +1 -2
  219. package/libc/include/any-linux-any/linux/taskstats.h +12 -1
  220. package/libc/include/any-linux-any/linux/tcp.h +23 -3
  221. package/libc/include/any-linux-any/linux/typelimits.h +8 -0
  222. package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
  223. package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
  224. package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
  225. package/libc/include/any-linux-any/linux/vduse.h +80 -5
  226. package/libc/include/any-linux-any/linux/version.h +3 -3
  227. package/libc/include/any-linux-any/linux/vfio.h +4 -0
  228. package/libc/include/any-linux-any/linux/videodev2.h +3 -0
  229. package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
  230. package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
  231. package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
  232. package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
  233. package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
  234. package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
  235. package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
  236. package/libc/include/arc-linux-any/asm/swab.h +0 -63
  237. package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
  238. package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
  239. package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
  240. package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
  241. package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
  242. package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
  243. package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
  244. package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
  245. package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
  246. package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
  247. package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
  248. package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
  249. package/libc/include/mips-linux-any/asm/errno.h +2 -0
  250. package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
  251. package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
  252. package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
  253. package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
  254. package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
  255. package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
  256. package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
  257. package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
  258. package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
  259. package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
  260. package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
  261. package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
  262. package/libc/include/sparc-linux-any/asm/errno.h +2 -0
  263. package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
  264. package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
  265. package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
  266. package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
  267. package/libc/include/x86-linux-any/asm/kvm.h +13 -8
  268. package/libc/include/x86-linux-any/asm/svm.h +16 -16
  269. package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
  270. package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
  271. package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
  272. package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
  273. package/libc/musl/arch/mipsn32/syscall_arch.h +35 -32
  274. package/libcxx/include/__algorithm/all_of.h +11 -5
  275. package/libcxx/include/__algorithm/comp.h +4 -0
  276. package/libcxx/include/__algorithm/copy.h +28 -147
  277. package/libcxx/include/__algorithm/copy_backward.h +9 -24
  278. package/libcxx/include/__algorithm/copy_n.h +50 -16
  279. package/libcxx/include/__algorithm/count.h +2 -2
  280. package/libcxx/include/__algorithm/equal.h +43 -55
  281. package/libcxx/include/__algorithm/fill.h +26 -8
  282. package/libcxx/include/__algorithm/fill_n.h +32 -46
  283. package/libcxx/include/__algorithm/find.h +96 -39
  284. package/libcxx/include/__algorithm/find_end.h +105 -0
  285. package/libcxx/include/__algorithm/for_each.h +18 -24
  286. package/libcxx/include/__algorithm/for_each_n.h +20 -47
  287. package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
  288. package/libcxx/include/__algorithm/for_each_segment.h +26 -0
  289. package/libcxx/include/__algorithm/generate.h +4 -2
  290. package/libcxx/include/__algorithm/generate_n.h +19 -6
  291. package/libcxx/include/__algorithm/is_permutation.h +4 -4
  292. package/libcxx/include/__algorithm/iterator_operations.h +3 -0
  293. package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
  294. package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
  295. package/libcxx/include/__algorithm/make_heap.h +16 -4
  296. package/libcxx/include/__algorithm/mismatch.h +2 -2
  297. package/libcxx/include/__algorithm/move.h +8 -19
  298. package/libcxx/include/__algorithm/move_backward.h +9 -24
  299. package/libcxx/include/__algorithm/none_of.h +4 -4
  300. package/libcxx/include/__algorithm/partial_sort.h +1 -1
  301. package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
  302. package/libcxx/include/__algorithm/pstl.h +9 -9
  303. package/libcxx/include/__algorithm/radix_sort.h +27 -25
  304. package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
  305. package/libcxx/include/__algorithm/ranges_equal.h +17 -26
  306. package/libcxx/include/__algorithm/ranges_fill.h +7 -6
  307. package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
  308. package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
  309. package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
  310. package/libcxx/include/__algorithm/rotate.h +27 -44
  311. package/libcxx/include/__algorithm/search_n.h +49 -37
  312. package/libcxx/include/__algorithm/sift_down.h +19 -18
  313. package/libcxx/include/__algorithm/simd_utils.h +33 -4
  314. package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
  315. package/libcxx/include/__algorithm/stable_sort.h +1 -1
  316. package/libcxx/include/__assertion_handler +31 -4
  317. package/libcxx/include/__atomic/atomic.h +36 -60
  318. package/libcxx/include/__atomic/atomic_flag.h +19 -37
  319. package/libcxx/include/__atomic/atomic_ref.h +29 -12
  320. package/libcxx/include/__atomic/atomic_sync.h +127 -55
  321. package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
  322. package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
  323. package/libcxx/include/__atomic/contention_t.h +27 -3
  324. package/libcxx/include/__atomic/floating_point_helper.h +55 -0
  325. package/libcxx/include/__bit/countl.h +1 -2
  326. package/libcxx/include/__bit/countr.h +1 -2
  327. package/libcxx/include/__bit/has_single_bit.h +1 -1
  328. package/libcxx/include/__bit/popcount.h +0 -1
  329. package/libcxx/include/__bit/rotate.h +15 -26
  330. package/libcxx/include/__bit_reference +207 -18
  331. package/libcxx/include/__charconv/from_chars_integral.h +1 -1
  332. package/libcxx/include/__charconv/from_chars_result.h +1 -1
  333. package/libcxx/include/__charconv/to_chars_integral.h +1 -0
  334. package/libcxx/include/__charconv/to_chars_result.h +1 -1
  335. package/libcxx/include/__charconv/traits.h +3 -24
  336. package/libcxx/include/__chrono/day.h +11 -0
  337. package/libcxx/include/__chrono/duration.h +58 -33
  338. package/libcxx/include/__chrono/file_clock.h +4 -2
  339. package/libcxx/include/__chrono/is_clock.h +72 -0
  340. package/libcxx/include/__chrono/leap_second.h +13 -0
  341. package/libcxx/include/__chrono/month.h +13 -0
  342. package/libcxx/include/__chrono/month_weekday.h +22 -0
  343. package/libcxx/include/__chrono/monthday.h +20 -0
  344. package/libcxx/include/__chrono/steady_clock.h +1 -1
  345. package/libcxx/include/__chrono/system_clock.h +3 -3
  346. package/libcxx/include/__chrono/time_point.h +37 -13
  347. package/libcxx/include/__chrono/weekday.h +25 -0
  348. package/libcxx/include/__chrono/year.h +11 -0
  349. package/libcxx/include/__chrono/year_month.h +13 -0
  350. package/libcxx/include/__chrono/year_month_day.h +23 -0
  351. package/libcxx/include/__chrono/year_month_weekday.h +26 -0
  352. package/libcxx/include/__chrono/zoned_time.h +16 -0
  353. package/libcxx/include/__compare/is_eq.h +6 -6
  354. package/libcxx/include/__compare/strong_order.h +12 -30
  355. package/libcxx/include/__compare/three_way_comparable.h +2 -2
  356. package/libcxx/include/__concepts/comparison_common_type.h +40 -0
  357. package/libcxx/include/__concepts/equality_comparable.h +2 -1
  358. package/libcxx/include/__condition_variable/condition_variable.h +1 -1
  359. package/libcxx/include/__config +63 -280
  360. package/libcxx/include/__configuration/abi.h +14 -24
  361. package/libcxx/include/__configuration/availability.h +65 -118
  362. package/libcxx/include/__configuration/compiler.h +6 -6
  363. package/libcxx/include/__configuration/experimental.h +38 -0
  364. package/libcxx/include/__configuration/hardening.h +215 -0
  365. package/libcxx/include/__configuration/language.h +3 -0
  366. package/libcxx/include/__configuration/platform.h +9 -16
  367. package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
  368. package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
  369. package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
  370. package/libcxx/include/__exception/exception.h +6 -4
  371. package/libcxx/include/__exception/exception_ptr.h +27 -5
  372. package/libcxx/include/__exception/nested_exception.h +2 -2
  373. package/libcxx/include/__exception/operations.h +5 -5
  374. package/libcxx/include/__expected/bad_expected_access.h +8 -6
  375. package/libcxx/include/__expected/expected.h +62 -64
  376. package/libcxx/include/__expected/unexpected.h +4 -4
  377. package/libcxx/include/__filesystem/copy_options.h +4 -4
  378. package/libcxx/include/__filesystem/directory_entry.h +37 -33
  379. package/libcxx/include/__filesystem/directory_iterator.h +9 -11
  380. package/libcxx/include/__filesystem/directory_options.h +7 -4
  381. package/libcxx/include/__filesystem/file_status.h +3 -3
  382. package/libcxx/include/__filesystem/filesystem_error.h +9 -10
  383. package/libcxx/include/__filesystem/operations.h +97 -66
  384. package/libcxx/include/__filesystem/path.h +68 -64
  385. package/libcxx/include/__filesystem/path_iterator.h +1 -3
  386. package/libcxx/include/__filesystem/perm_options.h +4 -4
  387. package/libcxx/include/__filesystem/perms.h +4 -4
  388. package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
  389. package/libcxx/include/__filesystem/space_info.h +1 -1
  390. package/libcxx/include/__filesystem/u8path.h +12 -14
  391. package/libcxx/include/__flat_map/flat_map.h +88 -71
  392. package/libcxx/include/__flat_map/flat_multimap.h +251 -172
  393. package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
  394. package/libcxx/include/__flat_map/utils.h +1 -0
  395. package/libcxx/include/__flat_set/flat_multiset.h +211 -143
  396. package/libcxx/include/__flat_set/flat_set.h +86 -68
  397. package/libcxx/include/__format/concepts.h +0 -14
  398. package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
  399. package/libcxx/include/__format/fmt_pair_like.h +42 -0
  400. package/libcxx/include/__format/format_arg.h +7 -10
  401. package/libcxx/include/__format/format_args.h +1 -1
  402. package/libcxx/include/__format/format_context.h +5 -5
  403. package/libcxx/include/__format/format_parse_context.h +2 -2
  404. package/libcxx/include/__format/formatter_output.h +30 -34
  405. package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
  406. package/libcxx/include/__format/range_default_formatter.h +2 -41
  407. package/libcxx/include/__format/range_format.h +71 -0
  408. package/libcxx/include/__format/range_formatter.h +1 -0
  409. package/libcxx/include/__format/width_estimation_table.h +4 -2
  410. package/libcxx/include/__functional/bind.h +10 -15
  411. package/libcxx/include/__functional/bind_back.h +1 -1
  412. package/libcxx/include/__functional/bind_front.h +1 -1
  413. package/libcxx/include/__functional/function.h +57 -75
  414. package/libcxx/include/__functional/hash.h +1 -10
  415. package/libcxx/include/__functional/identity.h +1 -1
  416. package/libcxx/include/__functional/is_transparent.h +8 -0
  417. package/libcxx/include/__functional/mem_fn.h +2 -1
  418. package/libcxx/include/__functional/operations.h +18 -0
  419. package/libcxx/include/__functional/ranges_operations.h +7 -0
  420. package/libcxx/include/__functional/reference_wrapper.h +7 -5
  421. package/libcxx/include/__functional/weak_result_type.h +14 -28
  422. package/libcxx/include/__fwd/ios.h +1 -1
  423. package/libcxx/include/__fwd/tuple.h +14 -0
  424. package/libcxx/include/__hash_table +371 -357
  425. package/libcxx/include/__ios/fpos.h +4 -4
  426. package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
  427. package/libcxx/include/__iterator/bounded_iter.h +7 -8
  428. package/libcxx/include/__iterator/concepts.h +6 -9
  429. package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
  430. package/libcxx/include/__iterator/distance.h +40 -18
  431. package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
  432. package/libcxx/include/__iterator/insert_iterator.h +1 -7
  433. package/libcxx/include/__iterator/istream_iterator.h +6 -7
  434. package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
  435. package/libcxx/include/__iterator/iter_move.h +1 -1
  436. package/libcxx/include/__iterator/iterator.h +13 -0
  437. package/libcxx/include/__iterator/iterator_traits.h +13 -14
  438. package/libcxx/include/__iterator/ostream_iterator.h +1 -7
  439. package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
  440. package/libcxx/include/__iterator/reverse_iterator.h +8 -13
  441. package/libcxx/include/__iterator/segmented_iterator.h +3 -8
  442. package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
  443. package/libcxx/include/__iterator/wrap_iter.h +8 -6
  444. package/libcxx/include/__locale +3 -10
  445. package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
  446. package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
  447. package/libcxx/include/__locale_dir/messages.h +1 -1
  448. package/libcxx/include/__locale_dir/money.h +2 -2
  449. package/libcxx/include/__locale_dir/num.h +190 -243
  450. package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
  451. package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
  452. package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
  453. package/libcxx/include/__locale_dir/support/linux.h +0 -37
  454. package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
  455. package/libcxx/include/__locale_dir/support/newlib.h +243 -0
  456. package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
  457. package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
  458. package/libcxx/include/__locale_dir/support/windows.h +0 -29
  459. package/libcxx/include/__locale_dir/time.h +3 -7
  460. package/libcxx/include/__math/hypot.h +1 -1
  461. package/libcxx/include/__math/logarithms.h +1 -1
  462. package/libcxx/include/__math/traits.h +80 -11
  463. package/libcxx/include/__mdspan/extents.h +7 -4
  464. package/libcxx/include/__mdspan/layout_stride.h +4 -5
  465. package/libcxx/include/__mdspan/mdspan.h +29 -23
  466. package/libcxx/include/__memory/addressof.h +7 -5
  467. package/libcxx/include/__memory/align.h +18 -1
  468. package/libcxx/include/__memory/allocate_at_least.h +15 -10
  469. package/libcxx/include/__memory/allocator.h +14 -26
  470. package/libcxx/include/__memory/allocator_traits.h +6 -4
  471. package/libcxx/include/__memory/compressed_pair.h +15 -9
  472. package/libcxx/include/__memory/construct_at.h +12 -23
  473. package/libcxx/include/__memory/inout_ptr.h +1 -1
  474. package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
  475. package/libcxx/include/__memory/out_ptr.h +1 -1
  476. package/libcxx/include/__memory/pointer_traits.h +1 -1
  477. package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
  478. package/libcxx/include/__memory/shared_count.h +9 -30
  479. package/libcxx/include/__memory/shared_ptr.h +100 -145
  480. package/libcxx/include/__memory/temp_value.h +1 -2
  481. package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
  482. package/libcxx/include/__memory/unique_ptr.h +14 -16
  483. package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
  484. package/libcxx/include/__memory_resource/memory_resource.h +4 -2
  485. package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
  486. package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
  487. package/libcxx/include/__memory_resource/pool_options.h +1 -1
  488. package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
  489. package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
  490. package/libcxx/include/__mutex/mutex.h +2 -2
  491. package/libcxx/include/__mutex/once_flag.h +14 -11
  492. package/libcxx/include/__mutex/tag_types.h +3 -3
  493. package/libcxx/include/__mutex/unique_lock.h +8 -7
  494. package/libcxx/include/__new/align_val_t.h +6 -0
  495. package/libcxx/include/__new/allocate.h +1 -2
  496. package/libcxx/include/__new/exceptions.h +8 -2
  497. package/libcxx/include/__new/global_new_delete.h +4 -11
  498. package/libcxx/include/__new/interference_size.h +0 -4
  499. package/libcxx/include/__new/launder.h +3 -5
  500. package/libcxx/include/__new/nothrow_t.h +1 -1
  501. package/libcxx/include/__numeric/gcd_lcm.h +24 -34
  502. package/libcxx/include/__numeric/midpoint.h +9 -14
  503. package/libcxx/include/__numeric/pstl.h +2 -2
  504. package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
  505. package/libcxx/include/__ostream/basic_ostream.h +8 -8
  506. package/libcxx/include/__pstl/backends/default.h +14 -14
  507. package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
  508. package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
  509. package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
  510. package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
  511. package/libcxx/include/__random/binomial_distribution.h +10 -4
  512. package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
  513. package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
  514. package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
  515. package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
  516. package/libcxx/include/__ranges/adjacent_view.h +419 -0
  517. package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
  518. package/libcxx/include/__ranges/chunk_by_view.h +6 -6
  519. package/libcxx/include/__ranges/common_view.h +7 -7
  520. package/libcxx/include/__ranges/drop_view.h +8 -8
  521. package/libcxx/include/__ranges/drop_while_view.h +5 -5
  522. package/libcxx/include/__ranges/elements_of.h +49 -0
  523. package/libcxx/include/__ranges/empty_view.h +5 -5
  524. package/libcxx/include/__ranges/filter_view.h +10 -10
  525. package/libcxx/include/__ranges/iota_view.h +41 -22
  526. package/libcxx/include/__ranges/owning_view.h +15 -15
  527. package/libcxx/include/__ranges/ref_view.h +6 -6
  528. package/libcxx/include/__ranges/repeat_view.h +17 -10
  529. package/libcxx/include/__ranges/single_view.h +8 -8
  530. package/libcxx/include/__ranges/take_view.h +9 -9
  531. package/libcxx/include/__ranges/transform_view.h +1 -2
  532. package/libcxx/include/__ranges/view_interface.h +10 -10
  533. package/libcxx/include/__ranges/zip_transform_view.h +357 -0
  534. package/libcxx/include/__ranges/zip_view.h +20 -20
  535. package/libcxx/include/__split_buffer +612 -240
  536. package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
  537. package/libcxx/include/__stop_token/stop_callback.h +2 -2
  538. package/libcxx/include/__stop_token/stop_source.h +1 -1
  539. package/libcxx/include/__stop_token/stop_state.h +4 -4
  540. package/libcxx/include/__stop_token/stop_token.h +1 -1
  541. package/libcxx/include/__string/char_traits.h +51 -31
  542. package/libcxx/include/__string/constexpr_c_functions.h +5 -5
  543. package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
  544. package/libcxx/include/__system_error/error_category.h +8 -8
  545. package/libcxx/include/__system_error/error_code.h +5 -5
  546. package/libcxx/include/__system_error/error_condition.h +4 -4
  547. package/libcxx/include/__system_error/system_error.h +1 -1
  548. package/libcxx/include/__thread/id.h +1 -1
  549. package/libcxx/include/__thread/jthread.h +1 -1
  550. package/libcxx/include/__thread/poll_with_backoff.h +27 -8
  551. package/libcxx/include/__thread/support/c11.h +8 -8
  552. package/libcxx/include/__thread/support/pthread.h +8 -8
  553. package/libcxx/include/__thread/support/windows.h +8 -8
  554. package/libcxx/include/__thread/thread.h +13 -8
  555. package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
  556. package/libcxx/include/__tree +849 -701
  557. package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
  558. package/libcxx/include/__tuple/tuple_element.h +0 -12
  559. package/libcxx/include/__tuple/tuple_size.h +0 -4
  560. package/libcxx/include/__tuple/tuple_transform.h +45 -0
  561. package/libcxx/include/__type_traits/aligned_storage.h +13 -40
  562. package/libcxx/include/__type_traits/desugars_to.h +4 -0
  563. package/libcxx/include/__type_traits/invoke.h +8 -0
  564. package/libcxx/include/__type_traits/is_allocator.h +6 -7
  565. package/libcxx/include/__type_traits/is_array.h +26 -0
  566. package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
  567. package/libcxx/include/__type_traits/is_final.h +1 -1
  568. package/libcxx/include/__type_traits/is_floating_point.h +7 -6
  569. package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
  570. package/libcxx/include/__type_traits/is_specialization.h +2 -6
  571. package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
  572. package/libcxx/include/__type_traits/make_transparent.h +52 -0
  573. package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
  574. package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
  575. package/libcxx/include/__utility/cmp.h +19 -7
  576. package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
  577. package/libcxx/include/__utility/in_place.h +1 -1
  578. package/libcxx/include/__utility/integer_sequence.h +56 -41
  579. package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
  580. package/libcxx/include/__utility/pair.h +22 -25
  581. package/libcxx/include/__utility/scope_guard.h +2 -0
  582. package/libcxx/include/__utility/try_key_extraction.h +114 -0
  583. package/libcxx/include/__vector/vector.h +187 -160
  584. package/libcxx/include/__vector/vector_bool.h +76 -83
  585. package/libcxx/include/any +118 -155
  586. package/libcxx/include/array +88 -56
  587. package/libcxx/include/atomic +2 -0
  588. package/libcxx/include/barrier +20 -24
  589. package/libcxx/include/bitset +49 -30
  590. package/libcxx/include/ccomplex +3 -11
  591. package/libcxx/include/chrono +47 -0
  592. package/libcxx/include/ciso646 +3 -6
  593. package/libcxx/include/complex +77 -65
  594. package/libcxx/include/complex.h +10 -10
  595. package/libcxx/include/condition_variable +3 -3
  596. package/libcxx/include/cstdalign +3 -10
  597. package/libcxx/include/cstdbool +3 -10
  598. package/libcxx/include/ctgmath +2 -11
  599. package/libcxx/include/ctype.h +24 -24
  600. package/libcxx/include/cwchar +2 -2
  601. package/libcxx/include/deque +109 -225
  602. package/libcxx/include/errno.h +269 -269
  603. package/libcxx/include/exception +4 -1
  604. package/libcxx/include/ext/hash_map +7 -48
  605. package/libcxx/include/ext/hash_set +2 -8
  606. package/libcxx/include/fenv.h +43 -43
  607. package/libcxx/include/flat_map +663 -11
  608. package/libcxx/include/flat_set +543 -8
  609. package/libcxx/include/float.h +16 -16
  610. package/libcxx/include/forward_list +33 -53
  611. package/libcxx/include/fstream +57 -42
  612. package/libcxx/include/future +41 -51
  613. package/libcxx/include/initializer_list +9 -3
  614. package/libcxx/include/inttypes.h +16 -16
  615. package/libcxx/include/ios +28 -28
  616. package/libcxx/include/istream +19 -13
  617. package/libcxx/include/iterator +10 -0
  618. package/libcxx/include/latch +7 -5
  619. package/libcxx/include/limits +4 -4
  620. package/libcxx/include/list +61 -79
  621. package/libcxx/include/map +386 -274
  622. package/libcxx/include/math.h +19 -0
  623. package/libcxx/include/mdspan +1 -5
  624. package/libcxx/include/mutex +29 -19
  625. package/libcxx/include/optional +644 -149
  626. package/libcxx/include/print +9 -5
  627. package/libcxx/include/queue +39 -37
  628. package/libcxx/include/ranges +48 -0
  629. package/libcxx/include/regex +33 -31
  630. package/libcxx/include/scoped_allocator +16 -11
  631. package/libcxx/include/semaphore +15 -18
  632. package/libcxx/include/set +220 -192
  633. package/libcxx/include/shared_mutex +3 -8
  634. package/libcxx/include/span +53 -37
  635. package/libcxx/include/sstream +34 -28
  636. package/libcxx/include/stack +13 -15
  637. package/libcxx/include/stddef.h +10 -10
  638. package/libcxx/include/stdexcept +2 -2
  639. package/libcxx/include/stdio.h +20 -21
  640. package/libcxx/include/streambuf +59 -19
  641. package/libcxx/include/string +574 -573
  642. package/libcxx/include/string_view +113 -89
  643. package/libcxx/include/strstream +10 -10
  644. package/libcxx/include/syncstream +4 -4
  645. package/libcxx/include/tgmath.h +12 -12
  646. package/libcxx/include/tuple +242 -212
  647. package/libcxx/include/type_traits +8 -2
  648. package/libcxx/include/typeindex +5 -3
  649. package/libcxx/include/typeinfo +92 -89
  650. package/libcxx/include/unordered_map +179 -304
  651. package/libcxx/include/unordered_set +168 -195
  652. package/libcxx/include/utility +12 -0
  653. package/libcxx/include/valarray +106 -161
  654. package/libcxx/include/variant +25 -33
  655. package/libcxx/include/version +41 -24
  656. package/libcxx/include/wctype.h +29 -29
  657. package/libcxx/libc/hdr/errno_macros.h +3 -1
  658. package/libcxx/libc/hdr/stdint_proxy.h +18 -0
  659. package/libcxx/libc/hdr/types/wchar_t.h +23 -0
  660. package/libcxx/libc/hdr/wchar_overlay.h +69 -0
  661. package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
  662. package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
  663. package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
  664. package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
  665. package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
  666. package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
  667. package/libcxx/libc/shared/libc_common.h +5 -0
  668. package/libcxx/libc/src/__support/CPP/bit.h +50 -12
  669. package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
  670. package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
  671. package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
  672. package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
  673. package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
  674. package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
  675. package/libcxx/libc/src/__support/big_int.h +14 -14
  676. package/libcxx/libc/src/__support/common.h +3 -2
  677. package/libcxx/libc/src/__support/ctype_utils.h +19 -12
  678. package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
  679. package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
  680. package/libcxx/libc/src/__support/libc_assert.h +2 -0
  681. package/libcxx/libc/src/__support/macros/attributes.h +44 -1
  682. package/libcxx/libc/src/__support/macros/config.h +23 -0
  683. package/libcxx/libc/src/__support/macros/null_check.h +1 -2
  684. package/libcxx/libc/src/__support/macros/optimization.h +3 -0
  685. package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
  686. package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
  687. package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
  688. package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
  689. package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
  690. package/libcxx/libc/src/__support/math_extras.h +20 -4
  691. package/libcxx/libc/src/__support/str_to_float.h +98 -125
  692. package/libcxx/libc/src/__support/str_to_integer.h +39 -27
  693. package/libcxx/libc/src/__support/wctype_utils.h +588 -0
  694. package/libcxx/src/any.cpp +4 -0
  695. package/libcxx/src/atomic.cpp +365 -80
  696. package/libcxx/src/barrier.cpp +4 -3
  697. package/libcxx/src/charconv.cpp +6 -3
  698. package/libcxx/src/condition_variable_destructor.cpp +1 -1
  699. package/libcxx/src/error_category.cpp +3 -1
  700. package/libcxx/src/exception.cpp +2 -10
  701. package/libcxx/src/experimental/time_zone.cpp +1 -1
  702. package/libcxx/src/experimental/tzdb.cpp +4 -1
  703. package/libcxx/src/filesystem/error.h +4 -22
  704. package/libcxx/src/filesystem/format_string.h +9 -18
  705. package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
  706. package/libcxx/src/filesystem/operations.cpp +2 -9
  707. package/libcxx/src/filesystem/path.cpp +3 -1
  708. package/libcxx/src/include/aligned_alloc.h +65 -0
  709. package/libcxx/src/include/config_elast.h +1 -1
  710. package/libcxx/src/include/from_chars_floating_point.h +11 -7
  711. package/libcxx/src/include/overridable_function.h +8 -10
  712. package/libcxx/src/iostream.cpp +56 -37
  713. package/libcxx/src/locale.cpp +213 -196
  714. package/libcxx/src/memory.cpp +12 -14
  715. package/libcxx/src/mutex_destructor.cpp +1 -1
  716. package/libcxx/src/new.cpp +5 -5
  717. package/libcxx/src/optional.cpp +4 -0
  718. package/libcxx/src/print.cpp +9 -1
  719. package/libcxx/src/random.cpp +0 -26
  720. package/libcxx/src/string.cpp +10 -25
  721. package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
  722. package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
  723. package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
  724. package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
  725. package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
  726. package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
  727. package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
  728. package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
  729. package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
  730. package/libcxx/src/support/win32/locale_win32.cpp +1 -1
  731. package/libcxx/src/system_error.cpp +2 -0
  732. package/libcxx/src/thread.cpp +1 -3
  733. package/libcxx/src/valarray.cpp +1 -2
  734. package/libcxx/src/vector.cpp +2 -2
  735. package/libcxxabi/include/__cxxabi_config.h +42 -23
  736. package/libcxxabi/src/cxa_exception.cpp +4 -2
  737. package/libcxxabi/src/cxa_exception.h +16 -14
  738. package/libcxxabi/src/cxa_personality.cpp +126 -9
  739. package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
  740. package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
  741. package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
  742. package/libcxxabi/src/demangle/Utility.h +21 -7
  743. package/libcxxabi/src/fallback_malloc.cpp +1 -1
  744. package/libcxxabi/src/private_typeinfo.cpp +6 -0
  745. package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
  746. package/libtsan/LICENSE.TXT +311 -0
  747. package/libtsan/builtins/assembly.h +41 -8
  748. package/libtsan/interception/interception_win.cpp +4 -0
  749. package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
  750. package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
  751. package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
  752. package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
  753. package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
  754. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
  755. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
  756. package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
  757. package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
  758. package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
  759. package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
  760. package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
  761. package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
  762. package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
  763. package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
  764. package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
  765. package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
  766. package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
  767. package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
  768. package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
  769. package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
  770. package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
  771. package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
  772. package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
  773. package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
  774. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
  775. package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
  776. package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
  777. package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
  778. package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
  779. package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
  780. package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
  781. package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
  782. package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
  783. package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
  784. package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
  785. package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
  786. package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
  787. package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
  788. package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
  789. package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
  790. package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
  791. package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
  792. package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
  793. package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
  794. package/libtsan/tsan_debugging.cpp +2 -2
  795. package/libtsan/tsan_flags.cpp +37 -0
  796. package/libtsan/tsan_flags.h +8 -0
  797. package/libtsan/tsan_flags.inc +12 -0
  798. package/libtsan/tsan_interceptors.h +9 -1
  799. package/libtsan/tsan_interceptors_mac.cpp +19 -0
  800. package/libtsan/tsan_interceptors_posix.cpp +78 -32
  801. package/libtsan/tsan_interface.h +3 -3
  802. package/libtsan/tsan_interface_ann.cpp +23 -9
  803. package/libtsan/tsan_mman.cpp +18 -4
  804. package/libtsan/tsan_platform.h +44 -7
  805. package/libtsan/tsan_platform_linux.cpp +42 -14
  806. package/libtsan/tsan_platform_mac.cpp +16 -3
  807. package/libtsan/tsan_report.h +14 -1
  808. package/libtsan/tsan_rtl.cpp +14 -0
  809. package/libtsan/tsan_rtl.h +7 -2
  810. package/libtsan/tsan_rtl_aarch64.S +3 -5
  811. package/libtsan/tsan_rtl_access.cpp +8 -3
  812. package/libtsan/tsan_rtl_amd64.S +2 -0
  813. package/libtsan/tsan_rtl_mutex.cpp +94 -49
  814. package/libtsan/tsan_rtl_report.cpp +132 -65
  815. package/libtsan/tsan_rtl_thread.cpp +31 -9
  816. package/libtsan/tsan_symbolize.cpp +1 -1
  817. package/libtsan/tsan_symbolize.h +1 -1
  818. package/libtsan/tsan_trace.h +1 -1
  819. package/libunwind/include/__libunwind_config.h +11 -2
  820. package/libunwind/include/libunwind.h +117 -11
  821. package/libunwind/include/unwind_arm_ehabi.h +4 -1
  822. package/libunwind/src/AddressSpace.hpp +42 -20
  823. package/libunwind/src/CompactUnwinder.hpp +16 -5
  824. package/libunwind/src/DwarfInstructions.hpp +24 -13
  825. package/libunwind/src/DwarfParser.hpp +62 -23
  826. package/libunwind/src/EHHeaderParser.hpp +7 -4
  827. package/libunwind/src/Registers.hpp +226 -22
  828. package/libunwind/src/Unwind-seh.cpp +6 -7
  829. package/libunwind/src/Unwind-wasm.c +7 -7
  830. package/libunwind/src/UnwindCursor.hpp +167 -49
  831. package/libunwind/src/UnwindLevel1.c +46 -17
  832. package/libunwind/src/UnwindRegistersRestore.S +46 -5
  833. package/libunwind/src/UnwindRegistersSave.S +86 -2
  834. package/libunwind/src/assembly.h +5 -1
  835. package/libunwind/src/config.h +9 -0
  836. package/libunwind/src/gcc_personality_v0.c +79 -6
  837. package/libunwind/src/libunwind.cpp +104 -4
  838. package/libunwind/src/libunwind_ext.h +7 -1
  839. package/libunwind/src/shadow_stack_unwind.h +2 -2
  840. package/lldb/pretty_printers.py +948 -0
  841. package/package.json +1 -1
  842. package/std/Build/Cache/Path.zig +1 -1
  843. package/std/Build/Cache.zig +6 -6
  844. package/std/Build/Step/Compile.zig +18 -20
  845. package/std/Build/Step/ConfigHeader.zig +1 -1
  846. package/std/Build/Step/Run.zig +15 -8
  847. package/std/Build/Step.zig +3 -7
  848. package/std/Build/Watch/FsEvents.zig +1 -1
  849. package/std/Build/WebServer.zig +2 -2
  850. package/std/Build/abi.zig +1 -1
  851. package/std/Build.zig +0 -3
  852. package/std/Io/Dir.zig +9 -4
  853. package/std/Io/Dispatch.zig +8 -18
  854. package/std/Io/File/Writer.zig +8 -6
  855. package/std/Io/File.zig +0 -9
  856. package/std/Io/Kqueue.zig +3 -3
  857. package/std/Io/Reader.zig +8 -14
  858. package/std/Io/Semaphore.zig +112 -17
  859. package/std/Io/Terminal.zig +1 -1
  860. package/std/Io/Threaded.zig +183 -46
  861. package/std/Io/Uring.zig +18 -20
  862. package/std/Io/Writer.zig +10 -7
  863. package/std/Io/net/HostName.zig +11 -6
  864. package/std/Io/net.zig +11 -11
  865. package/std/Io.zig +104 -38
  866. package/std/Random/ChaCha.zig +2 -2
  867. package/std/Random/benchmark.zig +2 -2
  868. package/std/Random.zig +6 -6
  869. package/std/SemanticVersion.zig +1 -1
  870. package/std/Target/Query.zig +2 -2
  871. package/std/Target/aarch64.zig +620 -77
  872. package/std/Target/amdgcn.zig +421 -21
  873. package/std/Target/arm.zig +40 -6
  874. package/std/Target/bpf.zig +6 -0
  875. package/std/Target/hexagon.zig +41 -6
  876. package/std/Target/loongarch.zig +18 -0
  877. package/std/Target/mips.zig +6 -0
  878. package/std/Target/nvptx.zig +58 -35
  879. package/std/Target/powerpc.zig +27 -19
  880. package/std/Target/riscv.zig +415 -177
  881. package/std/Target/sparc.zig +17 -0
  882. package/std/Target/wasm.zig +7 -0
  883. package/std/Target/x86.zig +200 -31
  884. package/std/Target/xtensa.zig +65 -0
  885. package/std/Target.zig +67 -14
  886. package/std/Thread.zig +5 -2
  887. package/std/array_hash_map.zig +103 -57
  888. package/std/array_list.zig +10 -31
  889. package/std/base64.zig +5 -5
  890. package/std/bit_set.zig +86 -69
  891. package/std/c/haiku.zig +3 -0
  892. package/std/c/serenity.zig +1 -6
  893. package/std/c.zig +123 -32
  894. package/std/compress/flate/Decompress.zig +3 -4
  895. package/std/compress/zstd/Decompress.zig +7 -9
  896. package/std/crypto/25519/curve25519.zig +2 -2
  897. package/std/crypto/25519/edwards25519.zig +3 -3
  898. package/std/crypto/25519/ristretto255.zig +2 -2
  899. package/std/crypto/25519/scalar.zig +6 -6
  900. package/std/crypto/25519/x25519.zig +1 -1
  901. package/std/crypto/Certificate.zig +14 -2
  902. package/std/crypto/Sha1.zig +1 -1
  903. package/std/crypto/aegis.zig +45 -39
  904. package/std/crypto/aes_ccm.zig +22 -22
  905. package/std/crypto/aes_gcm.zig +10 -12
  906. package/std/crypto/aes_ocb.zig +9 -9
  907. package/std/crypto/argon2.zig +15 -15
  908. package/std/crypto/ascon.zig +75 -33
  909. package/std/crypto/bcrypt.zig +20 -10
  910. package/std/crypto/benchmark.zig +7 -7
  911. package/std/crypto/blake2.zig +100 -64
  912. package/std/crypto/cbc_mac.zig +1 -1
  913. package/std/crypto/chacha20.zig +10 -10
  914. package/std/crypto/cmac.zig +3 -3
  915. package/std/crypto/codecs/asn1/Oid.zig +12 -1
  916. package/std/crypto/codecs/asn1/der/Encoder.zig +1 -1
  917. package/std/crypto/codecs/asn1.zig +1 -1
  918. package/std/crypto/codecs/base64_hex_ct.zig +3 -5
  919. package/std/crypto/ecdsa.zig +9 -9
  920. package/std/crypto/ff.zig +4 -5
  921. package/std/crypto/ghash_polyval.zig +4 -4
  922. package/std/crypto/hkdf.zig +1 -1
  923. package/std/crypto/isap.zig +3 -3
  924. package/std/crypto/kangarootwelve.zig +1 -1
  925. package/std/crypto/keccak_p.zig +8 -8
  926. package/std/crypto/md5.zig +1 -1
  927. package/std/crypto/ml_dsa.zig +39 -39
  928. package/std/crypto/ml_kem.zig +12 -34
  929. package/std/crypto/modes.zig +2 -2
  930. package/std/crypto/pbkdf2.zig +1 -1
  931. package/std/crypto/pcurves/common.zig +4 -5
  932. package/std/crypto/pcurves/p256/scalar.zig +3 -3
  933. package/std/crypto/pcurves/p384/scalar.zig +2 -2
  934. package/std/crypto/pcurves/secp256k1/scalar.zig +3 -3
  935. package/std/crypto/pcurves/tests/p256.zig +5 -5
  936. package/std/crypto/pcurves/tests/p384.zig +5 -5
  937. package/std/crypto/pcurves/tests/secp256k1.zig +3 -3
  938. package/std/crypto/salsa20.zig +8 -8
  939. package/std/crypto/sha2.zig +2 -2
  940. package/std/crypto/sha3.zig +2 -2
  941. package/std/crypto/siphash.zig +1 -1
  942. package/std/crypto/timing_safe.zig +10 -9
  943. package/std/crypto/tls/Client.zig +89 -13
  944. package/std/crypto/tls.zig +1 -1
  945. package/std/crypto.zig +4 -3
  946. package/std/debug/Dwarf.zig +15 -12
  947. package/std/debug/Pdb.zig +25 -17
  948. package/std/debug.zig +14 -8
  949. package/std/deque.zig +1 -1
  950. package/std/elf.zig +1 -1
  951. package/std/enums.zig +8 -8
  952. package/std/fmt/parse_float/decimal.zig +1 -1
  953. package/std/fmt/parse_float.zig +1 -1
  954. package/std/fmt.zig +14 -10
  955. package/std/fs/path.zig +7 -5
  956. package/std/hash/Adler32.zig +3 -3
  957. package/std/hash/benchmark.zig +2 -2
  958. package/std/hash/wyhash.zig +2 -2
  959. package/std/hash/xxhash.zig +0 -6
  960. package/std/hash_map.zig +20 -1
  961. package/std/heap/BufferFirstAllocator.zig +165 -0
  962. package/std/heap/debug_allocator.zig +2 -2
  963. package/std/heap/memory_pool.zig +34 -197
  964. package/std/heap.zig +2 -133
  965. package/std/http/Client.zig +21 -24
  966. package/std/http.zig +4 -5
  967. package/std/json/Scanner.zig +2 -2
  968. package/std/json/static.zig +2 -2
  969. package/std/{builtin.zig → lang.zig} +5 -1
  970. package/std/leb128.zig +2 -2
  971. package/std/math/big/int.zig +5 -5
  972. package/std/math/big.zig +4 -4
  973. package/std/math/copysign.zig +1 -1
  974. package/std/math/float.zig +62 -0
  975. package/std/math/frexp.zig +4 -4
  976. package/std/math/ilogb.zig +1 -1
  977. package/std/math/isfinite.zig +1 -1
  978. package/std/math/isinf.zig +1 -1
  979. package/std/math/isnan.zig +1 -2
  980. package/std/math/isnormal.zig +2 -2
  981. package/std/math/iszero.zig +2 -2
  982. package/std/math/ldexp.zig +2 -2
  983. package/std/math/log10.zig +0 -2
  984. package/std/math/modf.zig +1 -2
  985. package/std/math/nextafter.zig +3 -4
  986. package/std/math/pow.zig +1 -1
  987. package/std/math/powi.zig +2 -3
  988. package/std/math/signbit.zig +0 -1
  989. package/std/math.zig +21 -26
  990. package/std/mem/Allocator.zig +0 -6
  991. package/std/mem.zig +31 -31
  992. package/std/meta/trailer_flags.zig +1 -1
  993. package/std/meta.zig +4 -36
  994. package/std/multi_array_list.zig +24 -0
  995. package/std/os/emscripten.zig +7 -6
  996. package/std/os/linux/IoUring.zig +2 -0
  997. package/std/os/linux/aarch64.zig +41 -12
  998. package/std/os/linux/arc.zig +41 -12
  999. package/std/os/linux/arm.zig +41 -12
  1000. package/std/os/linux/bpf.zig +6 -0
  1001. package/std/os/linux/hexagon.zig +33 -11
  1002. package/std/os/linux/ioctl.zig +2 -2
  1003. package/std/os/linux/loongarch32.zig +41 -13
  1004. package/std/os/linux/loongarch64.zig +41 -12
  1005. package/std/os/linux/m68k.zig +41 -13
  1006. package/std/os/linux/mips.zig +67 -36
  1007. package/std/os/linux/mips64.zig +60 -29
  1008. package/std/os/linux/mipsn32.zig +60 -29
  1009. package/std/os/linux/or1k.zig +41 -12
  1010. package/std/os/linux/powerpc.zig +41 -12
  1011. package/std/os/linux/powerpc64.zig +41 -12
  1012. package/std/os/linux/riscv32.zig +41 -12
  1013. package/std/os/linux/riscv64.zig +41 -12
  1014. package/std/os/linux/s390x.zig +44 -7
  1015. package/std/os/linux/sparc64.zig +83 -52
  1016. package/std/os/linux/syscalls.zig +26 -1
  1017. package/std/os/linux/thumb.zig +52 -36
  1018. package/std/os/linux/x32.zig +41 -12
  1019. package/std/os/linux/x86.zig +44 -15
  1020. package/std/os/linux/x86_64.zig +41 -12
  1021. package/std/os/linux.zig +416 -450
  1022. package/std/os/plan9.zig +1 -1
  1023. package/std/os/uefi/hii.zig +1 -1
  1024. package/std/os/uefi/tables/boot_services.zig +9 -8
  1025. package/std/os/uefi/tables/runtime_services.zig +1 -1
  1026. package/std/os/windows.zig +130 -1
  1027. package/std/os.zig +41 -0
  1028. package/std/posix.zig +1 -1
  1029. package/std/process/Environ.zig +1 -1
  1030. package/std/process.zig +5 -4
  1031. package/std/simd.zig +4 -21
  1032. package/std/sort.zig +3 -3
  1033. package/std/start.zig +17 -4
  1034. package/std/std.zig +8 -1
  1035. package/std/tar/Writer.zig +39 -33
  1036. package/std/tar.zig +8 -4
  1037. package/std/testing.zig +2 -2
  1038. package/std/unicode.zig +13 -8
  1039. package/std/zig/Ast/Render.zig +6 -30
  1040. package/std/zig/Ast.zig +12 -37
  1041. package/std/zig/AstGen.zig +175 -332
  1042. package/std/zig/AstRlAnnotate.zig +1 -22
  1043. package/std/zig/AstSmith.zig +5 -11
  1044. package/std/zig/BuiltinFn.zig +0 -32
  1045. package/std/zig/ErrorBundle.zig +6 -2
  1046. package/std/zig/LibCDirs.zig +15 -6
  1047. package/std/zig/LibCInstallation.zig +34 -12
  1048. package/std/zig/Parse.zig +11 -76
  1049. package/std/zig/TokenSmith.zig +0 -6
  1050. package/std/zig/WindowsSdk.zig +18 -18
  1051. package/std/zig/Zir.zig +65 -132
  1052. package/std/zig/ZonGen.zig +19 -27
  1053. package/std/zig/llvm/Builder.zig +39 -33
  1054. package/std/zig/llvm/bitcode_writer.zig +3 -3
  1055. package/std/zig/llvm/ir.zig +8 -8
  1056. package/std/zig/system/arm.zig +56 -2
  1057. package/std/zig/system/windows.zig +34 -1
  1058. package/std/zig/system/x86.zig +60 -16
  1059. package/std/zig/system.zig +0 -10
  1060. package/std/zig/target.zig +1 -4
  1061. package/std/zig/tokenizer.zig +4 -43
  1062. package/std/zig.zig +3 -14
  1063. package/std/zip.zig +5 -5
  1064. package/std/zon/parse.zig +1 -1
  1065. package/zig.h +340 -1
  1066. package/compiler_rt/long_double.zig +0 -37
  1067. package/include/amxbf16transposeintrin.h +0 -94
  1068. package/include/amxcomplextransposeintrin.h +0 -303
  1069. package/include/amxfp16transposeintrin.h +0 -94
  1070. package/include/amxmovrstransposeintrin.h +0 -200
  1071. package/include/amxtf32transposeintrin.h +0 -105
  1072. package/include/amxtransposeintrin.h +0 -248
  1073. package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
  1074. package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
  1075. package/libc/mingw/math/lrintl.c +0 -18
  1076. package/libc/mingw/math/rintl.c +0 -16
  1077. package/libc/mingw/winpthreads/spinlock.c +0 -82
  1078. package/libc/musl/src/linux/tee.c +0 -8
  1079. package/libc/musl/src/math/i386/lrintl.c +0 -8
  1080. package/libc/musl/src/math/i386/rintl.c +0 -7
  1081. package/libc/musl/src/math/lrintl.c +0 -36
  1082. package/libc/musl/src/math/rintl.c +0 -29
  1083. package/libc/musl/src/math/s390x/rintl.c +0 -15
  1084. package/libc/musl/src/math/x32/lrintl.s +0 -7
  1085. package/libc/musl/src/math/x32/rintl.s +0 -6
  1086. package/libc/musl/src/math/x86_64/lrintl.c +0 -8
  1087. package/libc/musl/src/math/x86_64/rintl.c +0 -7
  1088. package/libc/musl/src/string/strdup.c +0 -10
  1089. package/libc/musl/src/string/strndup.c +0 -12
  1090. package/libc/musl/src/string/wcsdup.c +0 -10
  1091. package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
  1092. package/libc/musl/src/thread/pthread_spin_init.c +0 -6
  1093. package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
  1094. package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
  1095. package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
  1096. package/libc/musl/src/unistd/dup2.c +0 -20
  1097. package/libc/musl/src/unistd/dup3.c +0 -26
  1098. package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
  1099. package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
  1100. package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
  1101. package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
  1102. package/std/Build/Step/CheckObject.zig +0 -2764
  1103. /package/std/{builtin → lang}/assembly.zig +0 -0
@@ -206,7 +206,7 @@ test "RFC 6070 16,777,216 iterations" {
206
206
  const c = 16777216;
207
207
  const dk_len = 20;
208
208
 
209
- var dk = [_]u8{0} ** dk_len;
209
+ var dk: [dk_len]u8 = @splat(0);
210
210
 
211
211
  try pbkdf2(&dk, p, s, c, HmacSha1);
212
212
 
@@ -2,7 +2,6 @@ const std = @import("std");
2
2
  const crypto = std.crypto;
3
3
  const debug = std.debug;
4
4
  const mem = std.mem;
5
- const meta = std.meta;
6
5
 
7
6
  const NonCanonicalError = crypto.errors.NonCanonicalError;
8
7
  const NotSquareError = crypto.errors.NotSquareError;
@@ -54,7 +53,7 @@ pub fn Field(comptime params: FieldParams) type {
54
53
  var s = if (endian == .little) s_ else orderSwap(s_);
55
54
  const field_order_s = comptime fos: {
56
55
  var fos: [encoded_length]u8 = undefined;
57
- mem.writeInt(std.meta.Int(.unsigned, encoded_length * 8), &fos, field_order, .little);
56
+ mem.writeInt(@Int(.unsigned, encoded_length * 8), &fos, field_order, .little);
58
57
  break :fos fos;
59
58
  };
60
59
  if (crypto.timing_safe.compare(u8, &s, &field_order_s, .little) != .lt) {
@@ -90,7 +89,7 @@ pub fn Field(comptime params: FieldParams) type {
90
89
  }
91
90
 
92
91
  /// Element as an integer.
93
- pub const IntRepr = meta.Int(.unsigned, params.field_bits);
92
+ pub const IntRepr = @Int(.unsigned, params.field_bits);
94
93
 
95
94
  /// Create a field element from an integer.
96
95
  pub fn fromInt(comptime x: IntRepr) NonCanonicalError!Fe {
@@ -270,7 +269,7 @@ pub fn Field(comptime params: FieldParams) type {
270
269
  const ls = x126.sqn(126).mul(x126).sqn(3).mul(t111).sqn(33).mul(x32).sqn(95).mul(x31);
271
270
  return ls.equivalent(Fe.one);
272
271
  } else {
273
- const ls = x2.pow(std.meta.Int(.unsigned, field_bits), (field_order - 1) / 2); // Legendre symbol
272
+ const ls = x2.pow(@Int(.unsigned, field_bits), (field_order - 1) / 2); // Legendre symbol
274
273
  return ls.equivalent(Fe.one);
275
274
  }
276
275
  }
@@ -307,7 +306,7 @@ pub fn Field(comptime params: FieldParams) type {
307
306
  const x108 = x54.sqn(54).mul(x54);
308
307
  return x108.sqn(108).mul(x108).sqn(7).mul(t1111111).sqn(23).mul(x22).sqn(6).mul(t11).sqn(2);
309
308
  } else {
310
- return x2.pow(std.meta.Int(.unsigned, field_bits), (field_order + 1) / 4);
309
+ return x2.pow(@Int(.unsigned, field_bits), (field_order + 1) / 4);
311
310
  }
312
311
  }
313
312
 
@@ -196,19 +196,19 @@ const ScalarDouble = struct {
196
196
  }
197
197
  var t = ScalarDouble{ .x1 = undefined, .x2 = Fe.zero, .x3 = Fe.zero };
198
198
  {
199
- var b = [_]u8{0} ** encoded_length;
199
+ var b: [encoded_length]u8 = @splat(0);
200
200
  const len = @min(s.len, 24);
201
201
  b[0..len].* = s[0..len].*;
202
202
  t.x1 = Fe.fromBytes(b, .little) catch unreachable;
203
203
  }
204
204
  if (s_.len >= 24) {
205
- var b = [_]u8{0} ** encoded_length;
205
+ var b: [encoded_length]u8 = @splat(0);
206
206
  const len = @min(s.len - 24, 24);
207
207
  b[0..len].* = s[24..][0..len].*;
208
208
  t.x2 = Fe.fromBytes(b, .little) catch unreachable;
209
209
  }
210
210
  if (s_.len >= 48) {
211
- var b = [_]u8{0} ** encoded_length;
211
+ var b: [encoded_length]u8 = @splat(0);
212
212
  const len = s.len - 48;
213
213
  b[0..len].* = s[48..][0..len].*;
214
214
  t.x3 = Fe.fromBytes(b, .little) catch unreachable;
@@ -184,13 +184,13 @@ const ScalarDouble = struct {
184
184
  }
185
185
  var t = ScalarDouble{ .x1 = undefined, .x2 = Fe.zero };
186
186
  {
187
- var b = [_]u8{0} ** encoded_length;
187
+ var b: [encoded_length]u8 = @splat(0);
188
188
  const len = @min(s.len, 32);
189
189
  b[0..len].* = s[0..len].*;
190
190
  t.x1 = Fe.fromBytes(b, .little) catch unreachable;
191
191
  }
192
192
  if (s_.len >= 32) {
193
- var b = [_]u8{0} ** encoded_length;
193
+ var b: [encoded_length]u8 = @splat(0);
194
194
  const len = @min(s.len - 32, 32);
195
195
  b[0..len].* = s[32..][0..len].*;
196
196
  t.x2 = Fe.fromBytes(b, .little) catch unreachable;
@@ -196,19 +196,19 @@ const ScalarDouble = struct {
196
196
  }
197
197
  var t = ScalarDouble{ .x1 = undefined, .x2 = Fe.zero, .x3 = Fe.zero };
198
198
  {
199
- var b = [_]u8{0} ** encoded_length;
199
+ var b: [encoded_length]u8 = @splat(0);
200
200
  const len = @min(s.len, 24);
201
201
  b[0..len].* = s[0..len].*;
202
202
  t.x1 = Fe.fromBytes(b, .little) catch unreachable;
203
203
  }
204
204
  if (s_.len >= 24) {
205
- var b = [_]u8{0} ** encoded_length;
205
+ var b: [encoded_length]u8 = @splat(0);
206
206
  const len = @min(s.len - 24, 24);
207
207
  b[0..len].* = s[24..][0..len].*;
208
208
  t.x2 = Fe.fromBytes(b, .little) catch unreachable;
209
209
  }
210
210
  if (s_.len >= 48) {
211
- var b = [_]u8{0} ** encoded_length;
211
+ var b: [encoded_length]u8 = @splat(0);
212
212
  const len = s.len - 48;
213
213
  b[0..len].* = s[48..][0..len].*;
214
214
  t.x3 = Fe.fromBytes(b, .little) catch unreachable;
@@ -97,7 +97,7 @@ test "p256 public key is the neutral element (public verification)" {
97
97
  }
98
98
 
99
99
  test "p256 field element non-canonical encoding" {
100
- const s = [_]u8{0xff} ** 32;
100
+ const s: [32]u8 = @splat(0xff);
101
101
  try testing.expectError(error.NonCanonical, P256.Fe.fromBytes(s, .little));
102
102
  }
103
103
 
@@ -110,8 +110,8 @@ test "p256 neutral element decoding" {
110
110
  test "p256 double base multiplication" {
111
111
  const p1 = P256.basePoint;
112
112
  const p2 = P256.basePoint.dbl();
113
- const s1 = [_]u8{0x01} ** 32;
114
- const s2 = [_]u8{0x02} ** 32;
113
+ const s1: [32]u8 = @splat(0x01);
114
+ const s2: [32]u8 = @splat(0x02);
115
115
  const pr1 = try P256.mulDoubleBasePublic(p1, s1, p2, s2, .little);
116
116
  const pr2 = (try p1.mul(s1, .little)).add(try p2.mul(s2, .little));
117
117
  try testing.expect(pr1.equivalent(pr2));
@@ -120,8 +120,8 @@ test "p256 double base multiplication" {
120
120
  test "p256 double base multiplication with large scalars" {
121
121
  const p1 = P256.basePoint;
122
122
  const p2 = P256.basePoint.dbl();
123
- const s1 = [_]u8{0xee} ** 32;
124
- const s2 = [_]u8{0xdd} ** 32;
123
+ const s1: [32]u8 = @splat(0xee);
124
+ const s2: [32]u8 = @splat(0xdd);
125
125
  const pr1 = try P256.mulDoubleBasePublic(p1, s1, p2, s2, .little);
126
126
  const pr2 = (try p1.mul(s1, .little)).add(try p2.mul(s2, .little));
127
127
  try testing.expect(pr1.equivalent(pr2));
@@ -100,7 +100,7 @@ test "p384 public key is the neutral element (public verification)" {
100
100
  }
101
101
 
102
102
  test "p384 field element non-canonical encoding" {
103
- const s = [_]u8{0xff} ** 48;
103
+ const s: [48]u8 = @splat(0xff);
104
104
  try testing.expectError(error.NonCanonical, P384.Fe.fromBytes(s, .little));
105
105
  }
106
106
 
@@ -113,8 +113,8 @@ test "p384 neutral element decoding" {
113
113
  test "p384 double base multiplication" {
114
114
  const p1 = P384.basePoint;
115
115
  const p2 = P384.basePoint.dbl();
116
- const s1 = [_]u8{0x01} ** 48;
117
- const s2 = [_]u8{0x02} ** 48;
116
+ const s1: [48]u8 = @splat(0x01);
117
+ const s2: [48]u8 = @splat(0x02);
118
118
  const pr1 = try P384.mulDoubleBasePublic(p1, s1, p2, s2, .little);
119
119
  const pr2 = (try p1.mul(s1, .little)).add(try p2.mul(s2, .little));
120
120
  try testing.expect(pr1.equivalent(pr2));
@@ -123,8 +123,8 @@ test "p384 double base multiplication" {
123
123
  test "p384 double base multiplication with large scalars" {
124
124
  const p1 = P384.basePoint;
125
125
  const p2 = P384.basePoint.dbl();
126
- const s1 = [_]u8{0xee} ** 48;
127
- const s2 = [_]u8{0xdd} ** 48;
126
+ const s1: [48]u8 = @splat(0xee);
127
+ const s2: [48]u8 = @splat(0xdd);
128
128
  const pr1 = try P384.mulDoubleBasePublic(p1, s1, p2, s2, .little);
129
129
  const pr2 = (try p1.mul(s1, .little)).add(try p2.mul(s2, .little));
130
130
  try testing.expect(pr1.equivalent(pr2));
@@ -109,7 +109,7 @@ test "secp256k1 public key is the neutral element (public verification)" {
109
109
  }
110
110
 
111
111
  test "secp256k1 field element non-canonical encoding" {
112
- const s = [_]u8{0xff} ** 32;
112
+ const s: [32]u8 = @splat(0xff);
113
113
  try testing.expectError(error.NonCanonical, Secp256k1.Fe.fromBytes(s, .little));
114
114
  }
115
115
 
@@ -122,8 +122,8 @@ test "secp256k1 neutral element decoding" {
122
122
  test "secp256k1 double base multiplication" {
123
123
  const p1 = Secp256k1.basePoint;
124
124
  const p2 = Secp256k1.basePoint.dbl();
125
- const s1 = [_]u8{0x01} ** 32;
126
- const s2 = [_]u8{0x02} ** 32;
125
+ const s1: [32]u8 = @splat(0x01);
126
+ const s2: [32]u8 = @splat(0x02);
127
127
  const pr1 = try Secp256k1.mulDoubleBasePublic(p1, s1, p2, s2, .little);
128
128
  const pr2 = (try p1.mul(s1, .little)).add(try p2.mul(s2, .little));
129
129
  try testing.expect(pr1.equivalent(pr2));
@@ -384,7 +384,7 @@ pub const XSalsa20Poly1305 = struct {
384
384
  pub fn encrypt(c: []u8, tag: *[tag_length]u8, m: []const u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) void {
385
385
  debug.assert(c.len == m.len);
386
386
  const extended = extend(rounds, k, npub);
387
- var block0 = [_]u8{0} ** 64;
387
+ var block0: [64]u8 = @splat(0);
388
388
  const mlen0 = @min(32, m.len);
389
389
  @memcpy(block0[32..][0..mlen0], m[0..mlen0]);
390
390
  Salsa20.xor(block0[0..], block0[0..], 0, extended.key, extended.nonce);
@@ -408,7 +408,7 @@ pub const XSalsa20Poly1305 = struct {
408
408
  pub fn decrypt(m: []u8, c: []const u8, tag: [tag_length]u8, ad: []const u8, npub: [nonce_length]u8, k: [key_length]u8) AuthenticationError!void {
409
409
  debug.assert(c.len == m.len);
410
410
  const extended = extend(rounds, k, npub);
411
- var block0 = [_]u8{0} ** 64;
411
+ var block0: [64]u8 = @splat(0);
412
412
  const mlen0 = @min(32, c.len);
413
413
  @memcpy(block0[32..][0..mlen0], c[0..mlen0]);
414
414
  Salsa20.xor(block0[0..], block0[0..], 0, extended.key, extended.nonce);
@@ -489,7 +489,7 @@ pub const Box = struct {
489
489
  /// Compute a secret suitable for `secretbox` given a recipient's public key and a sender's secret key.
490
490
  pub fn createSharedSecret(public_key: [public_length]u8, secret_key: [secret_length]u8) (IdentityElementError || WeakPublicKeyError)![shared_length]u8 {
491
491
  const p = try X25519.scalarmult(secret_key, public_key);
492
- const zero = [_]u8{0} ** 16;
492
+ const zero: [16]u8 = @splat(0);
493
493
  return SalsaImpl(20).hsalsa(zero, p);
494
494
  }
495
495
 
@@ -559,15 +559,15 @@ const htest = @import("test.zig");
559
559
  test "(x)salsa20" {
560
560
  if (builtin.cpu.has(.riscv, .v) and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/24299
561
561
 
562
- const key = [_]u8{0x69} ** 32;
563
- const nonce = [_]u8{0x42} ** 8;
564
- const msg = [_]u8{0} ** 20;
562
+ const key: [32]u8 = @splat(0x69);
563
+ const nonce: [8]u8 = @splat(0x42);
564
+ const msg: [20]u8 = @splat(0);
565
565
  var c: [msg.len]u8 = undefined;
566
566
 
567
567
  Salsa20.xor(&c, msg[0..], 0, key, nonce);
568
568
  try htest.assertEqual("30ff9933aa6534ff5207142593cd1fca4b23bdd8", c[0..]);
569
569
 
570
- const extended_nonce = [_]u8{0x42} ** 24;
570
+ const extended_nonce: [24]u8 = @splat(0x42);
571
571
  XSalsa20.xor(&c, msg[0..], 0, key, extended_nonce);
572
572
  try htest.assertEqual("b4ab7d82e750ec07644fa3281bce6cd91d4243f9", c[0..]);
573
573
  }
@@ -637,7 +637,7 @@ test "xsalsa20poly1305 sealedbox" {
637
637
  test "secretbox twoblocks" {
638
638
  const key = [_]u8{ 0xc9, 0xc9, 0x4d, 0xcf, 0x68, 0xbe, 0x00, 0xe4, 0x7f, 0xe6, 0x13, 0x26, 0xfc, 0xc4, 0x2f, 0xd0, 0xdb, 0x93, 0x91, 0x1c, 0x09, 0x94, 0x89, 0xe1, 0x1b, 0x88, 0x63, 0x18, 0x86, 0x64, 0x8b, 0x7b };
639
639
  const nonce = [_]u8{ 0xa4, 0x33, 0xe9, 0x0a, 0x07, 0x68, 0x6e, 0x9a, 0x2b, 0x6d, 0xd4, 0x59, 0x04, 0x72, 0x3e, 0xd3, 0x8a, 0x67, 0x55, 0xc7, 0x9e, 0x3e, 0x77, 0xdc };
640
- const msg = [_]u8{'a'} ** 97;
640
+ const msg: [97]u8 = @splat('a');
641
641
  var ciphertext: [msg.len + SecretBox.tag_length]u8 = undefined;
642
642
  SecretBox.seal(&ciphertext, &msg, nonce, key);
643
643
  try htest.assertEqual("b05760e217288ba079caa2fd57fd3701784974ffcfda20fe523b89211ad8af065a6eb37cdb29d51aca5bd75dafdd21d18b044c54bb7c526cf576c94ee8900f911ceab0147e82b667a28c52d58ceb29554ff45471224d37b03256b01c119b89ff6d36855de8138d103386dbc9d971f52261", &ciphertext);
@@ -461,7 +461,7 @@ test "sha256 streaming" {
461
461
  }
462
462
 
463
463
  test "sha256 aligned final" {
464
- var block = [_]u8{0} ** Sha256.block_length;
464
+ var block: [Sha256.block_length]u8 = @splat(0);
465
465
  var out: [Sha256.digest_length]u8 = undefined;
466
466
 
467
467
  var h = Sha256.init(.{});
@@ -833,7 +833,7 @@ test "sha512 streaming" {
833
833
  }
834
834
 
835
835
  test "sha512 aligned final" {
836
- var block = [_]u8{0} ** Sha512.block_length;
836
+ var block: [Sha512.block_length]u8 = @splat(0);
837
837
  var out: [Sha512.digest_length]u8 = undefined;
838
838
 
839
839
  var h = Sha512.init(.{});
@@ -543,7 +543,7 @@ test "sha3-256 streaming" {
543
543
  }
544
544
 
545
545
  test "sha3-256 aligned final" {
546
- var block = [_]u8{0} ** Sha3_256.block_length;
546
+ var block: [Sha3_256.block_length]u8 = @splat(0);
547
547
  var out: [Sha3_256.digest_length]u8 = undefined;
548
548
 
549
549
  var h = Sha3_256.init(.{});
@@ -616,7 +616,7 @@ test "sha3-512 streaming" {
616
616
  }
617
617
 
618
618
  test "sha3-512 aligned final" {
619
- var block = [_]u8{0} ** Sha3_512.block_length;
619
+ var block: [Sha3_512.block_length]u8 = @splat(0);
620
620
  var out: [Sha3_512.digest_length]u8 = undefined;
621
621
 
622
622
  var h = Sha3_512.init(.{});
@@ -91,7 +91,7 @@ fn SipHashStateless(comptime T: type, comptime c_rounds: usize, comptime d_round
91
91
 
92
92
  self.msg_len +%= @as(u8, @truncate(b.len));
93
93
 
94
- var buf = [_]u8{0} ** 8;
94
+ var buf: [8]u8 = @splat(0);
95
95
  @memcpy(buf[0..b.len], b);
96
96
  buf[7] = self.msg_len;
97
97
  self.round(buf);
@@ -21,8 +21,8 @@ pub fn eql(comptime T: type, a: T, b: T) bool {
21
21
  acc |= x ^ b[i];
22
22
  }
23
23
  const s = @typeInfo(C).int.bits;
24
- const Cu = std.meta.Int(.unsigned, s);
25
- const Cext = std.meta.Int(.unsigned, s + 1);
24
+ const Cu = @Int(.unsigned, s);
25
+ const Cext = @Int(.unsigned, s + 1);
26
26
  return @as(bool, @bitCast(@as(u1, @truncate((@as(Cext, @as(Cu, @bitCast(acc))) -% 1) >> s))));
27
27
  },
28
28
  .vector => |info| {
@@ -32,8 +32,8 @@ pub fn eql(comptime T: type, a: T, b: T) bool {
32
32
  }
33
33
  const acc = @reduce(.Or, a ^ b);
34
34
  const s = @typeInfo(C).int.bits;
35
- const Cu = std.meta.Int(.unsigned, s);
36
- const Cext = std.meta.Int(.unsigned, s + 1);
35
+ const Cu = @Int(.unsigned, s);
36
+ const Cext = @Int(.unsigned, s + 1);
37
37
  return @as(bool, @bitCast(@as(u1, @truncate((@as(Cext, @as(Cu, @bitCast(acc))) -% 1) >> s))));
38
38
  },
39
39
  else => {
@@ -50,7 +50,7 @@ pub fn compare(comptime T: type, a: []const T, b: []const T, endian: Endian) Ord
50
50
  .int => |cinfo| if (cinfo.signedness != .unsigned) @compileError("Elements to be compared must be unsigned") else cinfo.bits,
51
51
  else => @compileError("Elements to be compared must be integers"),
52
52
  };
53
- const Cext = std.meta.Int(.unsigned, bits + 1);
53
+ const Cext = @Int(.unsigned, bits + 1);
54
54
  var gt: T = 0;
55
55
  var eq: T = 1;
56
56
  if (endian == .little) {
@@ -207,8 +207,8 @@ test "eql (vectors)" {
207
207
 
208
208
  test compare {
209
209
  const expectEqual = std.testing.expectEqual;
210
- var a = [_]u8{10} ** 32;
211
- var b = [_]u8{10} ** 32;
210
+ var a: [32]u8 = @splat(10);
211
+ var b: [32]u8 = @splat(10);
212
212
  try expectEqual(compare(u8, &a, &b, .big), .eq);
213
213
  try expectEqual(compare(u8, &a, &b, .little), .eq);
214
214
  a[31] = 1;
@@ -228,7 +228,7 @@ test "add and sub" {
228
228
  var a: [len]u8 = undefined;
229
229
  var b: [len]u8 = undefined;
230
230
  var c: [len]u8 = undefined;
231
- const zero = [_]u8{0} ** len;
231
+ const zero: [len]u8 = @splat(0);
232
232
  var iterations: usize = 100;
233
233
  while (iterations != 0) : (iterations -= 1) {
234
234
  io.random(&a);
@@ -262,7 +262,8 @@ test classify {
262
262
  declassify(&out);
263
263
 
264
264
  // Comparing public data in non-constant time is acceptable.
265
- try expect(!std.mem.eql(u8, &out, &[_]u8{0} ** out.len));
265
+ const zeroes: [out.len]u8 = @splat(0);
266
+ try expect(!std.mem.eql(u8, &out, &zeroes));
266
267
 
267
268
  // Comparing secret data must be done in constant time. The result
268
269
  // is going to be considered as secret as well.
@@ -353,7 +353,7 @@ pub fn init(input: *Reader, output: *Writer, options: Options) InitError!Client
353
353
  if (record_len > tls.max_ciphertext_len) return error.TlsRecordOverflow;
354
354
  const record_buffer = input.take(record_len) catch |err| switch (err) {
355
355
  error.EndOfStream => return error.TlsConnectionTruncated,
356
- error.ReadFailed => return error.ReadFailed,
356
+ error.ReadFailed => |e| return e,
357
357
  };
358
358
  var record_decoder: tls.Decoder = .fromTheirSlice(record_buffer);
359
359
  var ctd, const ct = content: switch (cipher_state) {
@@ -375,14 +375,16 @@ pub fn init(input: *Reader, output: *Writer, options: Options) InitError!Client
375
375
  const auth_tag = record_decoder.array(P.AEAD.tag_length).*;
376
376
  const nonce = nonce: {
377
377
  const V = @Vector(P.AEAD.nonce_length, u8);
378
- const pad = [1]u8{0} ** (P.AEAD.nonce_length - 8);
378
+ const pad: [P.AEAD.nonce_length - 8]u8 = @splat(0);
379
379
  const operand: V = pad ++ @as([8]u8, @bitCast(big(read_seq)));
380
380
  break :nonce @as(V, pv.server_handshake_iv) ^ operand;
381
381
  };
382
382
  P.AEAD.decrypt(cleartext, ciphertext, auth_tag, record_header, nonce, pv.server_handshake_key) catch
383
383
  return error.TlsBadRecordMac;
384
384
  // TODO use scalar, non-slice version
385
- cleartext_fragment_end += mem.trimEnd(u8, cleartext, "\x00").len;
385
+ const trimmed_len = mem.trimEnd(u8, cleartext, "\x00").len;
386
+ if (trimmed_len == 0) return error.TlsDecodeError;
387
+ cleartext_fragment_end += trimmed_len;
386
388
  },
387
389
  }
388
390
  read_seq += 1;
@@ -413,7 +415,7 @@ pub fn init(input: *Reader, output: *Writer, options: Options) InitError!Client
413
415
  comptime std.math.shl(u64, std.math.maxInt(u64), 8 * P.record_iv_length);
414
416
  const nonce: [P.AEAD.nonce_length]u8 = nonce: {
415
417
  const V = @Vector(P.AEAD.nonce_length, u8);
416
- const pad = [1]u8{0} ** (P.AEAD.nonce_length - 8);
418
+ const pad: [P.AEAD.nonce_length - 8]u8 = @splat(0);
417
419
  const operand: V = pad ++ @as([8]u8, @bitCast(big(masked_read_seq)));
418
420
  break :nonce @as(V, pv.app_cipher.server_write_IV ++ record_iv) ^ operand;
419
421
  };
@@ -537,7 +539,7 @@ pub fn init(input: *Reader, output: *Writer, options: Options) InitError!Client
537
539
  const p = &@field(handshake_cipher, @tagName(tag.with()));
538
540
  const P = @TypeOf(p.*).A;
539
541
  const hello_hash = p.transcript_hash.peek();
540
- const zeroes = [1]u8{0} ** P.Hash.digest_length;
542
+ const zeroes: [P.Hash.digest_length]u8 = @splat(0);
541
543
  const early_secret = P.Hkdf.extract(&[1]u8{0}, &zeroes);
542
544
  const empty_hash = tls.emptyHash(P.Hash);
543
545
  p.version = .{ .tls_1_3 = undefined };
@@ -789,7 +791,7 @@ pub fn init(input: *Reader, output: *Writer, options: Options) InitError!Client
789
791
  const pv = &p.version.tls_1_2;
790
792
  const nonce: [P.AEAD.nonce_length]u8 = nonce: {
791
793
  const V = @Vector(P.AEAD.nonce_length, u8);
792
- const pad = [1]u8{0} ** (P.AEAD.nonce_length - 8);
794
+ const pad: [P.AEAD.nonce_length - 8]u8 = @splat(0);
793
795
  const operand: V = pad ++ @as([8]u8, @bitCast(big(write_seq)));
794
796
  break :nonce @as(V, pv.app_cipher.client_write_IV ++ pv.app_cipher.client_salt) ^ operand;
795
797
  };
@@ -830,8 +832,9 @@ pub fn init(input: *Reader, output: *Writer, options: Options) InitError!Client
830
832
  }
831
833
  switch (handshake_cipher) {
832
834
  inline else => |*p| {
835
+ const pad: [64]u8 = @splat(' ');
833
836
  try main_cert_pub_key.verifySignature(&hsd, &.{
834
- " " ** 64 ++ "TLS 1.3, server CertificateVerify\x00",
837
+ pad ++ "TLS 1.3, server CertificateVerify\x00",
835
838
  &p.transcript_hash.peek(),
836
839
  });
837
840
  p.transcript_hash.update(wrapped_handshake);
@@ -1064,7 +1067,7 @@ fn prepareCiphertextRecord(
1064
1067
  ciphertext_end += auth_tag.len;
1065
1068
  const nonce = nonce: {
1066
1069
  const V = @Vector(P.AEAD.nonce_length, u8);
1067
- const pad = [1]u8{0} ** (P.AEAD.nonce_length - 8);
1070
+ const pad: [P.AEAD.nonce_length - 8]u8 = @splat(0);
1068
1071
  const operand: V = pad ++ mem.toBytes(big(c.write_seq));
1069
1072
  break :nonce @as(V, pv.client_iv) ^ operand;
1070
1073
  };
@@ -1101,7 +1104,7 @@ fn prepareCiphertextRecord(
1101
1104
  ciphertext_end += P.record_iv_length;
1102
1105
  const nonce: [P.AEAD.nonce_length]u8 = nonce: {
1103
1106
  const V = @Vector(P.AEAD.nonce_length, u8);
1104
- const pad = [1]u8{0} ** (P.AEAD.nonce_length - 8);
1107
+ const pad: [P.AEAD.nonce_length - 8]u8 = @splat(0);
1105
1108
  const operand: V = pad ++ @as([8]u8, @bitCast(big(c.write_seq)));
1106
1109
  break :nonce @as(V, pv.client_write_IV ++ pv.client_salt) ^ operand;
1107
1110
  };
@@ -1155,7 +1158,7 @@ fn readIndirect(c: *Client) Reader.Error!usize {
1155
1158
  return failRead(c, error.TlsConnectionTruncated);
1156
1159
  }
1157
1160
  },
1158
- error.ReadFailed => return error.ReadFailed,
1161
+ error.ReadFailed => |e| return e,
1159
1162
  };
1160
1163
  const ct: tls.ContentType = @enumFromInt(record_header[0]);
1161
1164
  const legacy_version = mem.readInt(u16, record_header[1..][0..2], .big);
@@ -1166,7 +1169,7 @@ fn readIndirect(c: *Client) Reader.Error!usize {
1166
1169
  if (record_end > input.buffered().len) {
1167
1170
  input.fillMore() catch |err| switch (err) {
1168
1171
  error.EndOfStream => return failRead(c, error.TlsConnectionTruncated),
1169
- error.ReadFailed => return error.ReadFailed,
1172
+ error.ReadFailed => |e| return e,
1170
1173
  };
1171
1174
  if (record_end > input.buffered().len) return 0;
1172
1175
  }
@@ -1176,13 +1179,14 @@ fn readIndirect(c: *Client) Reader.Error!usize {
1176
1179
  .tls_1_3 => {
1177
1180
  const pv = &p.tls_1_3;
1178
1181
  const P = @TypeOf(p.*);
1182
+ if (record_len < P.AEAD.tag_length) return failRead(c, error.TlsRecordOverflow);
1179
1183
  const ad = input.take(tls.record_header_len) catch unreachable; // already peeked
1180
1184
  const ciphertext_len = record_len - P.AEAD.tag_length;
1181
1185
  const ciphertext = input.take(ciphertext_len) catch unreachable; // already peeked
1182
1186
  const auth_tag = (input.takeArray(P.AEAD.tag_length) catch unreachable).*; // already peeked
1183
1187
  const nonce = nonce: {
1184
1188
  const V = @Vector(P.AEAD.nonce_length, u8);
1185
- const pad = [1]u8{0} ** (P.AEAD.nonce_length - 8);
1189
+ const pad: [P.AEAD.nonce_length - 8]u8 = @splat(0);
1186
1190
  const operand: V = pad ++ mem.toBytes(big(c.read_seq));
1187
1191
  break :nonce @as(V, pv.server_iv) ^ operand;
1188
1192
  };
@@ -1192,6 +1196,7 @@ fn readIndirect(c: *Client) Reader.Error!usize {
1192
1196
  return failRead(c, error.TlsBadRecordMac);
1193
1197
  // TODO use scalar, non-slice version
1194
1198
  const msg = mem.trimEnd(u8, cleartext, "\x00");
1199
+ if (msg.len == 0) return failRead(c, error.TlsDecodeError);
1195
1200
  break :cleartext .{ msg.len - 1, @enumFromInt(msg[msg.len - 1]) };
1196
1201
  },
1197
1202
  .tls_1_2 => {
@@ -1207,7 +1212,7 @@ fn readIndirect(c: *Client) Reader.Error!usize {
1207
1212
  comptime std.math.shl(u64, std.math.maxInt(u64), 8 * P.record_iv_length);
1208
1213
  const nonce: [P.AEAD.nonce_length]u8 = nonce: {
1209
1214
  const V = @Vector(P.AEAD.nonce_length, u8);
1210
- const pad = [1]u8{0} ** (P.AEAD.nonce_length - 8);
1215
+ const pad: [P.AEAD.nonce_length - 8]u8 = @splat(0);
1211
1216
  const operand: V = pad ++ @as([8]u8, @bitCast(big(masked_read_seq)));
1212
1217
  break :nonce @as(V, pv.server_write_IV ++ record_iv) ^ operand;
1213
1218
  };
@@ -1668,3 +1673,74 @@ else
1668
1673
  .AES_256_GCM_SHA384,
1669
1674
  .ECDHE_RSA_WITH_AES_256_GCM_SHA384,
1670
1675
  });
1676
+
1677
+ fn testReadError(input_buf: []const u8, cipher: tls.ApplicationCipher) ReadError {
1678
+ var input_reader: Reader = .fixed(input_buf);
1679
+ var read_buf: [tls.max_ciphertext_record_len]u8 = undefined;
1680
+ var c: Client = .{
1681
+ .input = &input_reader,
1682
+ .reader = .{
1683
+ .buffer = &read_buf,
1684
+ .vtable = &.{ .stream = stream, .readVec = readVec },
1685
+ .seek = 0,
1686
+ .end = 0,
1687
+ },
1688
+ .output = undefined,
1689
+ .writer = undefined,
1690
+ .tls_version = .tls_1_3,
1691
+ .read_seq = 0,
1692
+ .write_seq = 0,
1693
+ .received_close_notify = false,
1694
+ .allow_truncation_attacks = false,
1695
+ .application_cipher = cipher,
1696
+ .ssl_key_log = null,
1697
+ };
1698
+ var w: Writer = .failing;
1699
+ std.testing.expectError(error.ReadFailed, c.reader.stream(&w, .unlimited)) catch
1700
+ @panic("expected ReadFailed");
1701
+ return c.read_err.?;
1702
+ }
1703
+
1704
+ test "empty inner plaintext" {
1705
+ const AEAD = crypto.aead.chacha_poly.ChaCha20Poly1305;
1706
+ const key: [AEAD.key_length]u8 = @splat(0);
1707
+ const iv: [AEAD.nonce_length]u8 = @splat(0);
1708
+
1709
+ const plaintext = [1]u8{0x00};
1710
+ var ciphertext: [plaintext.len]u8 = undefined;
1711
+ var tag: [AEAD.tag_length]u8 = undefined;
1712
+ const content_len: u16 = plaintext.len + AEAD.tag_length;
1713
+ const record_header = [_]u8{ 0x17, 0x03, 0x03 } ++ mem.toBytes(big(content_len));
1714
+ AEAD.encrypt(&ciphertext, &tag, &plaintext, &record_header, iv, key);
1715
+
1716
+ try std.testing.expectEqual(error.TlsDecodeError, testReadError(
1717
+ &record_header ++ ciphertext ++ tag,
1718
+ .{ .CHACHA20_POLY1305_SHA256 = .{ .tls_1_3 = .{
1719
+ .server_key = key,
1720
+ .server_iv = iv,
1721
+ .client_secret = undefined,
1722
+ .server_secret = undefined,
1723
+ .client_key = undefined,
1724
+ .client_iv = undefined,
1725
+ } } },
1726
+ ));
1727
+ }
1728
+
1729
+ test "record shorter than tag" {
1730
+ const AEAD = crypto.aead.chacha_poly.ChaCha20Poly1305;
1731
+ const record_len: u16 = AEAD.tag_length - 1;
1732
+ const header = [_]u8{ 0x17, 0x03, 0x03 } ++ mem.toBytes(big(record_len));
1733
+ const wire = header ++ @as([record_len]u8, @splat(0));
1734
+
1735
+ try std.testing.expectEqual(error.TlsRecordOverflow, testReadError(
1736
+ &wire,
1737
+ .{ .CHACHA20_POLY1305_SHA256 = .{ .tls_1_3 = .{
1738
+ .server_key = undefined,
1739
+ .server_iv = undefined,
1740
+ .client_secret = undefined,
1741
+ .server_secret = undefined,
1742
+ .client_key = undefined,
1743
+ .client_iv = undefined,
1744
+ } } },
1745
+ ));
1746
+ }
@@ -666,7 +666,7 @@ pub const Decoder = struct {
666
666
  if (request_amt > dest.len) return error.TlsRecordOverflow;
667
667
  stream.readSlice(dest[0..request_amt]) catch |err| switch (err) {
668
668
  error.EndOfStream => return error.TlsConnectionTruncated,
669
- error.ReadFailed => return error.ReadFailed,
669
+ error.ReadFailed => |e| return e,
670
670
  };
671
671
  d.cap += request_amt;
672
672
  }
package/std/crypto.zig CHANGED
@@ -367,6 +367,7 @@ test {
367
367
  _ = ff;
368
368
  _ = errors;
369
369
  _ = tls;
370
+ _ = tls.Client;
370
371
  _ = Certificate;
371
372
  _ = codecs;
372
373
  }
@@ -393,7 +394,7 @@ test "issue #4532: no index out of bounds" {
393
394
  };
394
395
 
395
396
  inline for (types) |Hasher| {
396
- var block = [_]u8{'#'} ** Hasher.block_length;
397
+ var block: [Hasher.block_length]u8 = @splat('#');
397
398
  var out1: [Hasher.digest_length]u8 = undefined;
398
399
  var out2: [Hasher.digest_length]u8 = undefined;
399
400
  const h0 = Hasher.init(.{});
@@ -416,8 +417,8 @@ pub fn secureZero(comptime T: type, s: []volatile T) void {
416
417
  }
417
418
 
418
419
  test secureZero {
419
- var a = [_]u8{0xfe} ** 8;
420
- var b = [_]u8{0xfe} ** 8;
420
+ var a: [8]u8 = @splat(0xFE);
421
+ var b: [8]u8 = @splat(0xFE);
421
422
 
422
423
  @memset(&a, 0);
423
424
  secureZero(u8, &b);