@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
@@ -17,18 +17,359 @@
17
17
  #include <initializer_list> // see [initializer.list.syn]
18
18
 
19
19
  namespace std {
20
+ struct sorted_unique_t { explicit sorted_unique_t() = default; };
21
+ inline constexpr sorted_unique_t sorted_unique{};
22
+
20
23
  // [flat.map], class template flat_map
21
24
  template<class Key, class T, class Compare = less<Key>,
22
25
  class KeyContainer = vector<Key>, class MappedContainer = vector<T>>
23
- class flat_map;
26
+ class flat_map {
27
+ public:
28
+ // types
29
+ using key_type = Key;
30
+ using mapped_type = T;
31
+ using value_type = pair<key_type, mapped_type>;
32
+ using key_compare = Compare;
33
+ using reference = pair<const key_type&, mapped_type&>;
34
+ using const_reference = pair<const key_type&, const mapped_type&>;
35
+ using size_type = size_t;
36
+ using difference_type = ptrdiff_t;
37
+ using iterator = implementation-defined; // see [container.requirements]
38
+ using const_iterator = implementation-defined; // see [container.requirements]
39
+ using reverse_iterator = std::reverse_iterator<iterator>;
40
+ using const_reverse_iterator = std::reverse_iterator<const_iterator>;
41
+ using key_container_type = KeyContainer;
42
+ using mapped_container_type = MappedContainer;
24
43
 
25
- struct sorted_unique_t { explicit sorted_unique_t() = default; };
26
- inline constexpr sorted_unique_t sorted_unique{};
44
+ class value_compare {
45
+ private:
46
+ key_compare comp; // exposition only
47
+ constexpr value_compare(key_compare c) : comp(c) { } // exposition only
48
+
49
+ public:
50
+ constexpr bool operator()(const_reference x, const_reference y) const {
51
+ return comp(x.first, y.first);
52
+ }
53
+ };
54
+
55
+ struct containers {
56
+ key_container_type keys;
57
+ mapped_container_type values;
58
+ };
59
+
60
+ // [flat.map.cons], constructors
61
+ constexpr flat_map() : flat_map(key_compare()) { }
62
+
63
+ constexpr flat_map(const flat_map&);
64
+ constexpr flat_map(flat_map&&);
65
+ constexpr flat_map& operator=(const flat_map&);
66
+ constexpr flat_map& operator=(flat_map&&);
67
+
68
+ constexpr explicit flat_map(const key_compare& comp)
69
+ : c(), compare(comp) { }
70
+
71
+ constexpr flat_map(key_container_type key_cont, mapped_container_type mapped_cont,
72
+ const key_compare& comp = key_compare());
73
+
74
+ constexpr flat_map(sorted_unique_t, key_container_type key_cont,
75
+ mapped_container_type mapped_cont,
76
+ const key_compare& comp = key_compare());
77
+
78
+ template<class InputIterator>
79
+ constexpr flat_map(InputIterator first, InputIterator last,
80
+ const key_compare& comp = key_compare())
81
+ : c(), compare(comp) { insert(first, last); }
82
+
83
+ template<class InputIterator>
84
+ constexpr flat_map(sorted_unique_t, InputIterator first, InputIterator last,
85
+ const key_compare& comp = key_compare())
86
+ : c(), compare(comp) { insert(sorted_unique, first, last); }
87
+
88
+ template<container-compatible-range<value_type> R>
89
+ constexpr flat_map(from_range_t, R&& rg)
90
+ : flat_map(from_range, std::forward<R>(rg), key_compare()) { }
91
+ template<container-compatible-range<value_type> R>
92
+ constexpr flat_map(from_range_t, R&& rg, const key_compare& comp)
93
+ : flat_map(comp) { insert_range(std::forward<R>(rg)); }
94
+
95
+ constexpr flat_map(initializer_list<value_type> il, const key_compare& comp = key_compare())
96
+ : flat_map(il.begin(), il.end(), comp) { }
97
+
98
+ constexpr flat_map(sorted_unique_t, initializer_list<value_type> il,
99
+ const key_compare& comp = key_compare())
100
+ : flat_map(sorted_unique, il.begin(), il.end(), comp) { }
101
+
102
+ // [flat.map.cons.alloc], constructors with allocators
103
+
104
+ template<class Alloc>
105
+ constexpr explicit flat_map(const Alloc& a);
106
+ template<class Alloc>
107
+ constexpr flat_map(const key_compare& comp, const Alloc& a);
108
+ template<class Alloc>
109
+ constexpr flat_map(const key_container_type& key_cont,
110
+ const mapped_container_type& mapped_cont,
111
+ const Alloc& a);
112
+ template<class Alloc>
113
+ constexpr flat_map(const key_container_type& key_cont,
114
+ const mapped_container_type& mapped_cont,
115
+ const key_compare& comp, const Alloc& a);
116
+ template<class Alloc>
117
+ constexpr flat_map(sorted_unique_t, const key_container_type& key_cont,
118
+ const mapped_container_type& mapped_cont, const Alloc& a);
119
+ template<class Alloc>
120
+ constexpr flat_map(sorted_unique_t, const key_container_type& key_cont,
121
+ const mapped_container_type& mapped_cont, const key_compare& comp,
122
+ const Alloc& a);
123
+ template<class Alloc>
124
+ constexpr flat_map(const flat_map&, const Alloc& a);
125
+ template<class Alloc>
126
+ constexpr flat_map(flat_map&&, const Alloc& a);
127
+ template<class InputIterator, class Alloc>
128
+ constexpr flat_map(InputIterator first, InputIterator last, const Alloc& a);
129
+ template<class InputIterator, class Alloc>
130
+ constexpr flat_map(InputIterator first, InputIterator last,
131
+ const key_compare& comp, const Alloc& a);
132
+ template<class InputIterator, class Alloc>
133
+ constexpr flat_map(sorted_unique_t, InputIterator first, InputIterator last,
134
+ const Alloc& a);
135
+ template<class InputIterator, class Alloc>
136
+ constexpr flat_map(sorted_unique_t, InputIterator first, InputIterator last,
137
+ const key_compare& comp, const Alloc& a);
138
+ template<container-compatible-range<value_type> R, class Alloc>
139
+ constexpr flat_map(from_range_t, R&& rg, const Alloc& a);
140
+ template<container-compatible-range<value_type> R, class Alloc>
141
+ constexpr flat_map(from_range_t, R&& rg, const key_compare& comp, const Alloc& a);
142
+ template<class Alloc>
143
+ constexpr flat_map(initializer_list<value_type> il, const Alloc& a);
144
+ template<class Alloc>
145
+ constexpr flat_map(initializer_list<value_type> il, const key_compare& comp,
146
+ const Alloc& a);
147
+ template<class Alloc>
148
+ constexpr flat_map(sorted_unique_t, initializer_list<value_type> il, const Alloc& a);
149
+ template<class Alloc>
150
+ constexpr flat_map(sorted_unique_t, initializer_list<value_type> il,
151
+ const key_compare& comp, const Alloc& a);
152
+
153
+ constexpr flat_map& operator=(initializer_list<value_type>);
154
+
155
+ // iterators
156
+ constexpr iterator begin() noexcept;
157
+ constexpr const_iterator begin() const noexcept;
158
+ constexpr iterator end() noexcept;
159
+ constexpr const_iterator end() const noexcept;
160
+
161
+ constexpr reverse_iterator rbegin() noexcept;
162
+ constexpr const_reverse_iterator rbegin() const noexcept;
163
+ constexpr reverse_iterator rend() noexcept;
164
+ constexpr const_reverse_iterator rend() const noexcept;
165
+
166
+ constexpr const_iterator cbegin() const noexcept;
167
+ constexpr const_iterator cend() const noexcept;
168
+ constexpr const_reverse_iterator crbegin() const noexcept;
169
+ constexpr const_reverse_iterator crend() const noexcept;
170
+
171
+ // [flat.map.capacity], capacity
172
+ constexpr bool empty() const noexcept;
173
+ constexpr size_type size() const noexcept;
174
+ constexpr size_type max_size() const noexcept;
175
+
176
+ // [flat.map.access], element access
177
+ constexpr mapped_type& operator[](const key_type& x);
178
+ constexpr mapped_type& operator[](key_type&& x);
179
+ template<class K> constexpr mapped_type& operator[](K&& x);
180
+ constexpr mapped_type& at(const key_type& x);
181
+ constexpr const mapped_type& at(const key_type& x) const;
182
+ template<class K> constexpr mapped_type& at(const K& x);
183
+ template<class K> constexpr const mapped_type& at(const K& x) const;
184
+
185
+ // [flat.map.modifiers], modifiers
186
+ template<class... Args> constexpr pair<iterator, bool> emplace(Args&&... args);
187
+ template<class... Args>
188
+ constexpr iterator emplace_hint(const_iterator position, Args&&... args);
189
+
190
+ constexpr pair<iterator, bool> insert(const value_type& x)
191
+ { return emplace(x); }
192
+ constexpr pair<iterator, bool> insert(value_type&& x)
193
+ { return emplace(std::move(x)); }
194
+ constexpr iterator insert(const_iterator position, const value_type& x)
195
+ { return emplace_hint(position, x); }
196
+ constexpr iterator insert(const_iterator position, value_type&& x)
197
+ { return emplace_hint(position, std::move(x)); }
198
+
199
+ template<class P> constexpr pair<iterator, bool> insert(P&& x);
200
+ template<class P>
201
+ constexpr iterator insert(const_iterator position, P&&);
202
+ template<class InputIterator>
203
+ constexpr void insert(InputIterator first, InputIterator last);
204
+ template<class InputIterator>
205
+ constexpr void insert(sorted_unique_t, InputIterator first, InputIterator last);
206
+ template<container-compatible-range<value_type> R>
207
+ constexpr void insert_range(R&& rg);
208
+ template<container-compatible-range<value_type> R>
209
+ constexpr void insert_range(sorted_unique_t, R&& rg);
210
+
211
+ constexpr void insert(initializer_list<value_type> il)
212
+ { insert(il.begin(), il.end()); }
213
+ constexpr void insert(sorted_unique_t, initializer_list<value_type> il)
214
+ { insert(sorted_unique, il.begin(), il.end()); }
215
+
216
+ constexpr containers extract() &&;
217
+ constexpr void replace(key_container_type&& key_cont, mapped_container_type&& mapped_cont);
218
+
219
+ template<class... Args>
220
+ constexpr pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);
221
+ template<class... Args>
222
+ constexpr pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);
223
+ template<class K, class... Args>
224
+ constexpr pair<iterator, bool> try_emplace(K&& k, Args&&... args);
225
+ template<class... Args>
226
+ constexpr iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args);
227
+ template<class... Args>
228
+ constexpr iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);
229
+ template<class K, class... Args>
230
+ constexpr iterator try_emplace(const_iterator hint, K&& k, Args&&... args);
231
+ template<class M>
232
+ constexpr pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);
233
+ template<class M>
234
+ constexpr pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);
235
+ template<class K, class M>
236
+ constexpr pair<iterator, bool> insert_or_assign(K&& k, M&& obj);
237
+ template<class M>
238
+ constexpr iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);
239
+ template<class M>
240
+ constexpr iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);
241
+ template<class K, class M>
242
+ constexpr iterator insert_or_assign(const_iterator hint, K&& k, M&& obj);
243
+
244
+ constexpr iterator erase(iterator position);
245
+ constexpr iterator erase(const_iterator position);
246
+ constexpr size_type erase(const key_type& x);
247
+ template<class K> constexpr size_type erase(K&& x);
248
+ constexpr iterator erase(const_iterator first, const_iterator last);
249
+
250
+ constexpr void swap(flat_map& y) noexcept(see below);
251
+ constexpr void clear() noexcept;
252
+
253
+ // observers
254
+ constexpr key_compare key_comp() const;
255
+ constexpr value_compare value_comp() const;
256
+
257
+ constexpr const key_container_type& keys() const noexcept { return c.keys; }
258
+ constexpr const mapped_container_type& values() const noexcept { return c.values; }
259
+
260
+ // map operations
261
+ constexpr iterator find(const key_type& x);
262
+ constexpr const_iterator find(const key_type& x) const;
263
+ template<class K> constexpr iterator find(const K& x);
264
+ template<class K> constexpr const_iterator find(const K& x) const;
265
+
266
+ constexpr size_type count(const key_type& x) const;
267
+ template<class K> constexpr size_type count(const K& x) const;
268
+
269
+ constexpr bool contains(const key_type& x) const;
270
+ template<class K> constexpr bool contains(const K& x) const;
271
+
272
+ constexpr iterator lower_bound(const key_type& x);
273
+ constexpr const_iterator lower_bound(const key_type& x) const;
274
+ template<class K> constexpr iterator lower_bound(const K& x);
275
+ template<class K> constexpr const_iterator lower_bound(const K& x) const;
276
+
277
+ constexpr iterator upper_bound(const key_type& x);
278
+ constexpr const_iterator upper_bound(const key_type& x) const;
279
+ template<class K> constexpr iterator upper_bound(const K& x);
280
+ template<class K> constexpr const_iterator upper_bound(const K& x) const;
281
+
282
+ constexpr pair<iterator, iterator> equal_range(const key_type& x);
283
+ constexpr pair<const_iterator, const_iterator> equal_range(const key_type& x) const;
284
+ template<class K> constexpr pair<iterator, iterator> equal_range(const K& x);
285
+ template<class K>
286
+ constexpr pair<const_iterator, const_iterator> equal_range(const K& x) const;
287
+
288
+ friend constexpr bool operator==(const flat_map& x, const flat_map& y);
289
+
290
+ friend constexpr synth-three-way-result<value_type>
291
+ operator<=>(const flat_map& x, const flat_map& y);
292
+
293
+ friend constexpr void swap(flat_map& x, flat_map& y) noexcept(noexcept(x.swap(y)))
294
+ { x.swap(y); }
295
+
296
+ private:
297
+ containers c; // exposition only
298
+ key_compare compare; // exposition only
299
+
300
+ struct key-equiv { // exposition only
301
+ constexpr key-equiv(key_compare c) : comp(c) { }
302
+ constexpr bool operator()(const_reference x, const_reference y) const {
303
+ return !comp(x.first, y.first) && !comp(y.first, x.first);
304
+ }
305
+ key_compare comp;
306
+ };
307
+ };
308
+
309
+ template<class KeyContainer, class MappedContainer,
310
+ class Compare = less<typename KeyContainer::value_type>>
311
+ flat_map(KeyContainer, MappedContainer, Compare = Compare())
312
+ -> flat_map<typename KeyContainer::value_type, typename MappedContainer::value_type,
313
+ Compare, KeyContainer, MappedContainer>;
314
+
315
+ template<class KeyContainer, class MappedContainer, class Allocator>
316
+ flat_map(KeyContainer, MappedContainer, Allocator)
317
+ -> flat_map<typename KeyContainer::value_type, typename MappedContainer::value_type,
318
+ less<typename KeyContainer::value_type>, KeyContainer, MappedContainer>;
319
+ template<class KeyContainer, class MappedContainer, class Compare, class Allocator>
320
+ flat_map(KeyContainer, MappedContainer, Compare, Allocator)
321
+ -> flat_map<typename KeyContainer::value_type, typename MappedContainer::value_type,
322
+ Compare, KeyContainer, MappedContainer>;
323
+
324
+ template<class KeyContainer, class MappedContainer,
325
+ class Compare = less<typename KeyContainer::value_type>>
326
+ flat_map(sorted_unique_t, KeyContainer, MappedContainer, Compare = Compare())
327
+ -> flat_map<typename KeyContainer::value_type, typename MappedContainer::value_type,
328
+ Compare, KeyContainer, MappedContainer>;
329
+
330
+ template<class KeyContainer, class MappedContainer, class Allocator>
331
+ flat_map(sorted_unique_t, KeyContainer, MappedContainer, Allocator)
332
+ -> flat_map<typename KeyContainer::value_type, typename MappedContainer::value_type,
333
+ less<typename KeyContainer::value_type>, KeyContainer, MappedContainer>;
334
+ template<class KeyContainer, class MappedContainer, class Compare, class Allocator>
335
+ flat_map(sorted_unique_t, KeyContainer, MappedContainer, Compare, Allocator)
336
+ -> flat_map<typename KeyContainer::value_type, typename MappedContainer::value_type,
337
+ Compare, KeyContainer, MappedContainer>;
338
+
339
+ template<class InputIterator, class Compare = less<iter-key-type<InputIterator>>>
340
+ flat_map(InputIterator, InputIterator, Compare = Compare())
341
+ -> flat_map<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, Compare>;
342
+
343
+ template<class InputIterator, class Compare = less<iter-key-type<InputIterator>>>
344
+ flat_map(sorted_unique_t, InputIterator, InputIterator, Compare = Compare())
345
+ -> flat_map<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, Compare>;
346
+
347
+ template<ranges::input_range R, class Compare = less<range-key-type<R>>,
348
+ class Allocator = allocator<byte>>
349
+ flat_map(from_range_t, R&&, Compare = Compare(), Allocator = Allocator())
350
+ -> flat_map<range-key-type<R>, range-mapped-type<R>, Compare,
351
+ vector<range-key-type<R>, alloc-rebind<Allocator, range-key-type<R>>>,
352
+ vector<range-mapped-type<R>, alloc-rebind<Allocator, range-mapped-type<R>>>>;
353
+
354
+ template<ranges::input_range R, class Allocator>
355
+ flat_map(from_range_t, R&&, Allocator)
356
+ -> flat_map<range-key-type<R>, range-mapped-type<R>, less<range-key-type<R>>,
357
+ vector<range-key-type<R>, alloc-rebind<Allocator, range-key-type<R>>>,
358
+ vector<range-mapped-type<R>, alloc-rebind<Allocator, range-mapped-type<R>>>>;
359
+
360
+ template<class Key, class T, class Compare = less<Key>>
361
+ flat_map(initializer_list<pair<Key, T>>, Compare = Compare())
362
+ -> flat_map<Key, T, Compare>;
363
+
364
+ template<class Key, class T, class Compare = less<Key>>
365
+ flat_map(sorted_unique_t, initializer_list<pair<Key, T>>, Compare = Compare())
366
+ -> flat_map<Key, T, Compare>;
27
367
 
28
368
  template<class Key, class T, class Compare, class KeyContainer, class MappedContainer,
29
- class Allocator>
30
- struct uses_allocator<flat_map<Key, T, Compare, KeyContainer, MappedContainer>,
31
- Allocator>;
369
+ class Allocator>
370
+ struct uses_allocator<flat_map<Key, T, Compare, KeyContainer, MappedContainer>, Allocator>
371
+ : bool_constant<uses_allocator_v<KeyContainer, Allocator> &&
372
+ uses_allocator_v<MappedContainer, Allocator>> { };
32
373
 
33
374
  // [flat.map.erasure], erasure for flat_map
34
375
  template<class Key, class T, class Compare, class KeyContainer, class MappedContainer,
@@ -36,18 +377,329 @@ namespace std {
36
377
  typename flat_map<Key, T, Compare, KeyContainer, MappedContainer>::size_type
37
378
  erase_if(flat_map<Key, T, Compare, KeyContainer, MappedContainer>& c, Predicate pred);
38
379
 
380
+ struct sorted_equivalent_t { explicit sorted_equivalent_t() = default; };
381
+ inline constexpr sorted_equivalent_t sorted_equivalent{};
382
+
39
383
  // [flat.multimap], class template flat_multimap
40
384
  template<class Key, class T, class Compare = less<Key>,
41
385
  class KeyContainer = vector<Key>, class MappedContainer = vector<T>>
42
- class flat_multimap;
386
+ class flat_multimap {
387
+ public:
388
+ // types
389
+ using key_type = Key;
390
+ using mapped_type = T;
391
+ using value_type = pair<key_type, mapped_type>;
392
+ using key_compare = Compare;
393
+ using reference = pair<const key_type&, mapped_type&>;
394
+ using const_reference = pair<const key_type&, const mapped_type&>;
395
+ using size_type = size_t;
396
+ using difference_type = ptrdiff_t;
397
+ using iterator = implementation-defined; // see [container.requirements]
398
+ using const_iterator = implementation-defined; // see [container.requirements]
399
+ using reverse_iterator = std::reverse_iterator<iterator>;
400
+ using const_reverse_iterator = std::reverse_iterator<const_iterator>;
401
+ using key_container_type = KeyContainer;
402
+ using mapped_container_type = MappedContainer;
43
403
 
44
- struct sorted_equivalent_t { explicit sorted_equivalent_t() = default; };
45
- inline constexpr sorted_equivalent_t sorted_equivalent{};
404
+ class value_compare {
405
+ private:
406
+ key_compare comp; // exposition only
407
+ constexpr value_compare(key_compare c) : comp(c) { } // exposition only
408
+
409
+ public:
410
+ constexpr bool operator()(const_reference x, const_reference y) const {
411
+ return comp(x.first, y.first);
412
+ }
413
+ };
414
+
415
+ struct containers {
416
+ key_container_type keys;
417
+ mapped_container_type values;
418
+ };
419
+
420
+ // [flat.multimap.cons], constructors
421
+ constexpr flat_multimap() : flat_multimap(key_compare()) { }
422
+
423
+ constexpr flat_multimap(const flat_multimap&);
424
+ constexpr flat_multimap(flat_multimap&&);
425
+ constexpr flat_multimap& operator=(const flat_multimap&);
426
+ constexpr flat_multimap& operator=(flat_multimap&&);
427
+
428
+ constexpr explicit flat_multimap(const key_compare& comp)
429
+ : c(), compare(comp) { }
430
+
431
+ constexpr flat_multimap(key_container_type key_cont, mapped_container_type mapped_cont,
432
+ const key_compare& comp = key_compare());
433
+
434
+ constexpr flat_multimap(sorted_equivalent_t,
435
+ key_container_type key_cont, mapped_container_type mapped_cont,
436
+ const key_compare& comp = key_compare());
437
+
438
+ template<class InputIterator>
439
+ constexpr flat_multimap(InputIterator first, InputIterator last,
440
+ const key_compare& comp = key_compare())
441
+ : c(), compare(comp)
442
+ { insert(first, last); }
443
+
444
+ template<class InputIterator>
445
+ constexpr flat_multimap(sorted_equivalent_t, InputIterator first, InputIterator last,
446
+ const key_compare& comp = key_compare())
447
+ : c(), compare(comp) { insert(sorted_equivalent, first, last); }
448
+
449
+ template<container-compatible-range<value_type> R>
450
+ constexpr flat_multimap(from_range_t, R&& rg)
451
+ : flat_multimap(from_range, std::forward<R>(rg), key_compare()) { }
452
+ template<container-compatible-range<value_type> R>
453
+ constexpr flat_multimap(from_range_t, R&& rg, const key_compare& comp)
454
+ : flat_multimap(comp) { insert_range(std::forward<R>(rg)); }
455
+
456
+ constexpr flat_multimap(initializer_list<value_type> il,
457
+ const key_compare& comp = key_compare())
458
+ : flat_multimap(il.begin(), il.end(), comp) { }
459
+
460
+ constexpr flat_multimap(sorted_equivalent_t, initializer_list<value_type> il,
461
+ const key_compare& comp = key_compare())
462
+ : flat_multimap(sorted_equivalent, il.begin(), il.end(), comp) { }
463
+
464
+ // [flat.multimap.cons.alloc], constructors with allocators
465
+
466
+ template<class Alloc>
467
+ constexpr explicit flat_multimap(const Alloc& a);
468
+ template<class Alloc>
469
+ constexpr flat_multimap(const key_compare& comp, const Alloc& a);
470
+ template<class Alloc>
471
+ constexpr flat_multimap(const key_container_type& key_cont,
472
+ const mapped_container_type& mapped_cont, const Alloc& a);
473
+ template<class Alloc>
474
+ constexpr flat_multimap(const key_container_type& key_cont,
475
+ const mapped_container_type& mapped_cont,
476
+ const key_compare& comp, const Alloc& a);
477
+ template<class Alloc>
478
+ constexpr flat_multimap(sorted_equivalent_t, const key_container_type& key_cont,
479
+ const mapped_container_type& mapped_cont, const Alloc& a);
480
+ template<class Alloc>
481
+ constexpr flat_multimap(sorted_equivalent_t, const key_container_type& key_cont,
482
+ const mapped_container_type& mapped_cont,
483
+ const key_compare& comp, const Alloc& a);
484
+ template<class Alloc>
485
+ constexpr flat_multimap(const flat_multimap&, const Alloc& a);
486
+ template<class Alloc>
487
+ constexpr flat_multimap(flat_multimap&&, const Alloc& a);
488
+ template<class InputIterator, class Alloc>
489
+ constexpr flat_multimap(InputIterator first, InputIterator last, const Alloc& a);
490
+ template<class InputIterator, class Alloc>
491
+ constexpr flat_multimap(InputIterator first, InputIterator last,
492
+ const key_compare& comp, const Alloc& a);
493
+ template<class InputIterator, class Alloc>
494
+ constexpr flat_multimap(sorted_equivalent_t, InputIterator first, InputIterator last,
495
+ const Alloc& a);
496
+ template<class InputIterator, class Alloc>
497
+ constexpr flat_multimap(sorted_equivalent_t, InputIterator first, InputIterator last,
498
+ const key_compare& comp, const Alloc& a);
499
+ template<container-compatible-range<value_type> R, class Alloc>
500
+ constexpr flat_multimap(from_range_t, R&& rg, const Alloc& a);
501
+ template<container-compatible-range<value_type> R, class Alloc>
502
+ constexpr flat_multimap(from_range_t, R&& rg, const key_compare& comp, const Alloc& a);
503
+ template<class Alloc>
504
+ constexpr flat_multimap(initializer_list<value_type> il, const Alloc& a);
505
+ template<class Alloc>
506
+ constexpr flat_multimap(initializer_list<value_type> il, const key_compare& comp,
507
+ const Alloc& a);
508
+ template<class Alloc>
509
+ constexpr flat_multimap(sorted_equivalent_t, initializer_list<value_type> il,
510
+ const Alloc& a);
511
+ template<class Alloc>
512
+ constexpr flat_multimap(sorted_equivalent_t, initializer_list<value_type> il,
513
+ const key_compare& comp, const Alloc& a);
514
+
515
+ flat_multimap& operator=(initializer_list<value_type>);
516
+
517
+ // iterators
518
+ constexpr iterator begin() noexcept;
519
+ constexpr const_iterator begin() const noexcept;
520
+ constexpr iterator end() noexcept;
521
+ constexpr const_iterator end() const noexcept;
522
+
523
+ constexpr reverse_iterator rbegin() noexcept;
524
+ constexpr const_reverse_iterator rbegin() const noexcept;
525
+ constexpr reverse_iterator rend() noexcept;
526
+ constexpr const_reverse_iterator rend() const noexcept;
527
+
528
+ constexpr const_iterator cbegin() const noexcept;
529
+ constexpr const_iterator cend() const noexcept;
530
+ constexpr const_reverse_iterator crbegin() const noexcept;
531
+ constexpr const_reverse_iterator crend() const noexcept;
532
+
533
+ // capacity
534
+ constexpr bool empty() const noexcept;
535
+ constexpr size_type size() const noexcept;
536
+ constexpr size_type max_size() const noexcept;
537
+
538
+ // modifiers
539
+ template<class... Args> constexpr iterator emplace(Args&&... args);
540
+ template<class... Args>
541
+ constexpr iterator emplace_hint(const_iterator position, Args&&... args);
542
+
543
+ constexpr iterator insert(const value_type& x)
544
+ { return emplace(x); }
545
+ constexpr iterator insert(value_type&& x)
546
+ { return emplace(std::move(x)); }
547
+ constexpr iterator insert(const_iterator position, const value_type& x)
548
+ { return emplace_hint(position, x); }
549
+ constexpr iterator insert(const_iterator position, value_type&& x)
550
+ { return emplace_hint(position, std::move(x)); }
551
+
552
+ template<class P> constexpr iterator insert(P&& x);
553
+ template<class P>
554
+ constexpr iterator insert(const_iterator position, P&&);
555
+ template<class InputIterator>
556
+ constexpr void insert(InputIterator first, InputIterator last);
557
+ template<class InputIterator>
558
+ constexpr void insert(sorted_equivalent_t, InputIterator first, InputIterator last);
559
+ template<container-compatible-range<value_type> R>
560
+ constexpr void insert_range(R&& rg);
561
+ template<container-compatible-range<value_type> R>
562
+ constexpr void insert_range(sorted_equivalent_t, R&& rg);
563
+
564
+ constexpr void insert(initializer_list<value_type> il)
565
+ { insert(il.begin(), il.end()); }
566
+ constexpr void insert(sorted_equivalent_t, initializer_list<value_type> il)
567
+ { insert(sorted_equivalent, il.begin(), il.end()); }
568
+
569
+ constexpr containers extract() &&;
570
+ constexpr void replace(key_container_type&& key_cont, mapped_container_type&& mapped_cont);
571
+
572
+ constexpr iterator erase(iterator position);
573
+ constexpr iterator erase(const_iterator position);
574
+ constexpr size_type erase(const key_type& x);
575
+ template<class K> constexpr size_type erase(K&& x);
576
+ constexpr iterator erase(const_iterator first, const_iterator last);
577
+
578
+ constexpr void swap(flat_multimap&)
579
+ noexcept(is_nothrow_swappable_v<key_container_type> &&
580
+ is_nothrow_swappable_v<mapped_container_type> &&
581
+ is_nothrow_swappable_v<key_compare>);
582
+ constexpr void clear() noexcept;
583
+
584
+ // observers
585
+ constexpr key_compare key_comp() const;
586
+ constexpr value_compare value_comp() const;
587
+
588
+ constexpr const key_container_type& keys() const noexcept { return c.keys; }
589
+ constexpr const mapped_container_type& values() const noexcept { return c.values; }
590
+
591
+ // map operations
592
+ constexpr iterator find(const key_type& x);
593
+ constexpr const_iterator find(const key_type& x) const;
594
+ template<class K> constexpr iterator find(const K& x);
595
+ template<class K> constexpr const_iterator find(const K& x) const;
596
+
597
+ constexpr size_type count(const key_type& x) const;
598
+ template<class K> constexpr size_type count(const K& x) const;
599
+
600
+ constexpr bool contains(const key_type& x) const;
601
+ template<class K> constexpr bool contains(const K& x) const;
602
+
603
+ constexpr iterator lower_bound(const key_type& x);
604
+ constexpr const_iterator lower_bound(const key_type& x) const;
605
+ template<class K> constexpr iterator lower_bound(const K& x);
606
+ template<class K> constexpr const_iterator lower_bound(const K& x) const;
607
+
608
+ constexpr iterator upper_bound(const key_type& x);
609
+ constexpr const_iterator upper_bound(const key_type& x) const;
610
+ template<class K> constexpr iterator upper_bound(const K& x);
611
+ template<class K> constexpr const_iterator upper_bound(const K& x) const;
612
+
613
+ constexpr pair<iterator, iterator> equal_range(const key_type& x);
614
+ constexpr pair<const_iterator, const_iterator> equal_range(const key_type& x) const;
615
+ template<class K>
616
+ constexpr pair<iterator, iterator> equal_range(const K& x);
617
+ template<class K>
618
+ constexpr pair<const_iterator, const_iterator> equal_range(const K& x) const;
619
+
620
+ friend constexpr bool operator==(const flat_multimap& x, const flat_multimap& y);
621
+
622
+ friend constexpr synth-three-way-result<value_type>
623
+ operator<=>(const flat_multimap& x, const flat_multimap& y);
624
+
625
+ friend constexpr void swap(flat_multimap& x, flat_multimap& y)
626
+ noexcept(noexcept(x.swap(y)))
627
+ { x.swap(y); }
628
+
629
+ private:
630
+ containers c; // exposition only
631
+ key_compare compare; // exposition only
632
+ };
633
+
634
+ template<class KeyContainer, class MappedContainer,
635
+ class Compare = less<typename KeyContainer::value_type>>
636
+ flat_multimap(KeyContainer, MappedContainer, Compare = Compare())
637
+ -> flat_multimap<typename KeyContainer::value_type, typename MappedContainer::value_type,
638
+ Compare, KeyContainer, MappedContainer>;
639
+
640
+ template<class KeyContainer, class MappedContainer, class Allocator>
641
+ flat_multimap(KeyContainer, MappedContainer, Allocator)
642
+ -> flat_multimap<typename KeyContainer::value_type, typename MappedContainer::value_type,
643
+ less<typename KeyContainer::value_type>, KeyContainer, MappedContainer>;
644
+ template<class KeyContainer, class MappedContainer, class Compare, class Allocator>
645
+ flat_multimap(KeyContainer, MappedContainer, Compare, Allocator)
646
+ -> flat_multimap<typename KeyContainer::value_type, typename MappedContainer::value_type,
647
+ Compare, KeyContainer, MappedContainer>;
648
+
649
+ template<class KeyContainer, class MappedContainer,
650
+ class Compare = less<typename KeyContainer::value_type>>
651
+ flat_multimap(sorted_equivalent_t, KeyContainer, MappedContainer, Compare = Compare())
652
+ -> flat_multimap<typename KeyContainer::value_type, typename MappedContainer::value_type,
653
+ Compare, KeyContainer, MappedContainer>;
654
+
655
+ template<class KeyContainer, class MappedContainer, class Allocator>
656
+ flat_multimap(sorted_equivalent_t, KeyContainer, MappedContainer, Allocator)
657
+ -> flat_multimap<typename KeyContainer::value_type, typename MappedContainer::value_type,
658
+ less<typename KeyContainer::value_type>, KeyContainer, MappedContainer>;
659
+ template<class KeyContainer, class MappedContainer, class Compare, class Allocator>
660
+ flat_multimap(sorted_equivalent_t, KeyContainer, MappedContainer, Compare, Allocator)
661
+ -> flat_multimap<typename KeyContainer::value_type, typename MappedContainer::value_type,
662
+ Compare, KeyContainer, MappedContainer>;
663
+
664
+ template<class InputIterator, class Compare = less<iter-key-type<InputIterator>>>
665
+ flat_multimap(InputIterator, InputIterator, Compare = Compare())
666
+ -> flat_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, Compare>;
667
+
668
+ template<class InputIterator, class Compare = less<iter-key-type<InputIterator>>>
669
+ flat_multimap(sorted_equivalent_t, InputIterator, InputIterator, Compare = Compare())
670
+ -> flat_multimap<iter-key-type<InputIterator>, iter-mapped-type<InputIterator>, Compare>;
671
+
672
+ template<ranges::input_range R, class Compare = less<range-key-type<R>>,
673
+ class Allocator = allocator<byte>>
674
+ flat_multimap(from_range_t, R&&, Compare = Compare(), Allocator = Allocator())
675
+ -> flat_multimap<range-key-type<R>, range-mapped-type<R>, Compare,
676
+ vector<range-key-type<R>,
677
+ alloc-rebind<Allocator, range-key-type<R>>>,
678
+ vector<range-mapped-type<R>,
679
+ alloc-rebind<Allocator, range-mapped-type<R>>>>;
680
+
681
+ template<ranges::input_range R, class Allocator>
682
+ flat_multimap(from_range_t, R&&, Allocator)
683
+ -> flat_multimap<range-key-type<R>, range-mapped-type<R>, less<range-key-type<R>>,
684
+ vector<range-key-type<R>,
685
+ alloc-rebind<Allocator, range-key-type<R>>>,
686
+ vector<range-mapped-type<R>,
687
+ alloc-rebind<Allocator, range-mapped-type<R>>>>;
688
+
689
+ template<class Key, class T, class Compare = less<Key>>
690
+ flat_multimap(initializer_list<pair<Key, T>>, Compare = Compare())
691
+ -> flat_multimap<Key, T, Compare>;
692
+
693
+ template<class Key, class T, class Compare = less<Key>>
694
+ flat_multimap(sorted_equivalent_t, initializer_list<pair<Key, T>>, Compare = Compare())
695
+ -> flat_multimap<Key, T, Compare>;
46
696
 
47
697
  template<class Key, class T, class Compare, class KeyContainer, class MappedContainer,
48
- class Allocator>
698
+ class Allocator>
49
699
  struct uses_allocator<flat_multimap<Key, T, Compare, KeyContainer, MappedContainer>,
50
- Allocator>;
700
+ Allocator>
701
+ : bool_constant<uses_allocator_v<KeyContainer, Allocator> &&
702
+ uses_allocator_v<MappedContainer, Allocator>> { };
51
703
 
52
704
  // [flat.multimap.erasure], erasure for flat_multimap
53
705
  template<class Key, class T, class Compare, class KeyContainer, class MappedContainer,