@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
@@ -12,18 +12,17 @@
12
12
  #include <__algorithm/copy.h>
13
13
  #include <__algorithm/copy_n.h>
14
14
  #include <__algorithm/fill_n.h>
15
+ #include <__algorithm/iterator_operations.h>
15
16
  #include <__algorithm/max.h>
16
17
  #include <__algorithm/min.h>
17
18
  #include <__algorithm/move.h>
18
19
  #include <__algorithm/move_backward.h>
19
- #include <__algorithm/ranges_copy_n.h>
20
20
  #include <__algorithm/rotate.h>
21
21
  #include <__assert>
22
22
  #include <__config>
23
23
  #include <__debug_utils/sanitizers.h>
24
24
  #include <__format/enable_insertable.h>
25
25
  #include <__fwd/vector.h>
26
- #include <__iterator/advance.h>
27
26
  #include <__iterator/bounded_iter.h>
28
27
  #include <__iterator/concepts.h>
29
28
  #include <__iterator/distance.h>
@@ -43,6 +42,7 @@
43
42
  #include <__memory/temp_value.h>
44
43
  #include <__memory/uninitialized_algorithms.h>
45
44
  #include <__ranges/access.h>
45
+ #include <__ranges/as_rvalue_view.h>
46
46
  #include <__ranges/concepts.h>
47
47
  #include <__ranges/container_compatible_range.h>
48
48
  #include <__ranges/from_range.h>
@@ -55,7 +55,6 @@
55
55
  #include <__type_traits/is_nothrow_assignable.h>
56
56
  #include <__type_traits/is_nothrow_constructible.h>
57
57
  #include <__type_traits/is_pointer.h>
58
- #include <__type_traits/is_replaceable.h>
59
58
  #include <__type_traits/is_same.h>
60
59
  #include <__type_traits/is_trivially_relocatable.h>
61
60
  #include <__type_traits/type_identity.h>
@@ -86,6 +85,9 @@ _LIBCPP_BEGIN_NAMESPACE_STD
86
85
 
87
86
  template <class _Tp, class _Allocator /* = allocator<_Tp> */>
88
87
  class vector {
88
+ template <class _Up, class _Alloc>
89
+ using __split_buffer _LIBCPP_NODEBUG = std::__split_buffer<_Up, _Alloc, __split_buffer_pointer_layout>;
90
+
89
91
  public:
90
92
  //
91
93
  // Types
@@ -113,7 +115,7 @@ public:
113
115
  using reverse_iterator = std::reverse_iterator<iterator>;
114
116
  using const_reverse_iterator = std::reverse_iterator<const_iterator>;
115
117
 
116
- // A vector containers the following members which may be trivially relocatable:
118
+ // A vector contains the following members which may be trivially relocatable:
117
119
  // - pointer: may be trivially relocatable, so it's checked
118
120
  // - allocator_type: may be trivially relocatable, so it's checked
119
121
  // vector doesn't contain any self-references, so it's trivially relocatable if its members are.
@@ -121,10 +123,6 @@ public:
121
123
  __libcpp_is_trivially_relocatable<pointer>::value && __libcpp_is_trivially_relocatable<allocator_type>::value,
122
124
  vector,
123
125
  void>;
124
- using __replaceable _LIBCPP_NODEBUG =
125
- __conditional_t<__is_replaceable_v<pointer> && __container_allocator_is_replaceable<__alloc_traits>::value,
126
- vector,
127
- void>;
128
126
 
129
127
  static_assert(__check_valid_allocator<allocator_type>::value, "");
130
128
  static_assert(is_same<typename allocator_type::value_type, value_type>::value,
@@ -174,7 +172,7 @@ public:
174
172
  __guard.__complete();
175
173
  }
176
174
 
177
- template <__enable_if_t<__is_allocator<_Allocator>::value, int> = 0>
175
+ template <__enable_if_t<__is_allocator_v<_Allocator>, int> = 0>
178
176
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI
179
177
  vector(size_type __n, const value_type& __x, const allocator_type& __a)
180
178
  : __alloc_(__a) {
@@ -317,7 +315,7 @@ public:
317
315
  is_constructible<value_type, typename iterator_traits<_ForwardIterator>::reference>::value,
318
316
  int> = 0>
319
317
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void assign(_ForwardIterator __first, _ForwardIterator __last) {
320
- __assign_with_size(__first, __last, std::distance(__first, __last));
318
+ __assign_with_size<_ClassicAlgPolicy>(__first, __last, std::distance(__first, __last));
321
319
  }
322
320
 
323
321
  #if _LIBCPP_STD_VER >= 23
@@ -325,7 +323,7 @@ public:
325
323
  _LIBCPP_HIDE_FROM_ABI constexpr void assign_range(_Range&& __range) {
326
324
  if constexpr (ranges::forward_range<_Range> || ranges::sized_range<_Range>) {
327
325
  auto __n = static_cast<size_type>(ranges::distance(__range));
328
- __assign_with_size(ranges::begin(__range), ranges::end(__range), __n);
326
+ __assign_with_size<_RangeAlgPolicy>(ranges::begin(__range), ranges::end(__range), __n);
329
327
 
330
328
  } else {
331
329
  __assign_with_sentinel(ranges::begin(__range), ranges::end(__range));
@@ -341,59 +339,67 @@ public:
341
339
  }
342
340
  #endif
343
341
 
344
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const _NOEXCEPT {
342
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const _NOEXCEPT {
345
343
  return this->__alloc_;
346
344
  }
347
345
 
348
346
  //
349
347
  // Iterators
350
348
  //
351
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI iterator begin() _NOEXCEPT {
349
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI iterator begin() _NOEXCEPT {
352
350
  return __make_iter(__add_alignment_assumption(this->__begin_));
353
351
  }
354
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_iterator begin() const _NOEXCEPT {
352
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_iterator begin() const _NOEXCEPT {
355
353
  return __make_iter(__add_alignment_assumption(this->__begin_));
356
354
  }
357
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI iterator end() _NOEXCEPT {
355
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI iterator end() _NOEXCEPT {
358
356
  return __make_iter(__add_alignment_assumption(this->__end_));
359
357
  }
360
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_iterator end() const _NOEXCEPT {
358
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_iterator end() const _NOEXCEPT {
361
359
  return __make_iter(__add_alignment_assumption(this->__end_));
362
360
  }
363
361
 
364
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reverse_iterator rbegin() _NOEXCEPT {
362
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reverse_iterator rbegin() _NOEXCEPT {
365
363
  return reverse_iterator(end());
366
364
  }
367
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reverse_iterator rbegin() const _NOEXCEPT {
365
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reverse_iterator
366
+ rbegin() const _NOEXCEPT {
368
367
  return const_reverse_iterator(end());
369
368
  }
370
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reverse_iterator rend() _NOEXCEPT {
369
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reverse_iterator rend() _NOEXCEPT {
371
370
  return reverse_iterator(begin());
372
371
  }
373
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reverse_iterator rend() const _NOEXCEPT {
372
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reverse_iterator rend() const _NOEXCEPT {
374
373
  return const_reverse_iterator(begin());
375
374
  }
376
375
 
377
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const _NOEXCEPT { return begin(); }
378
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_iterator cend() const _NOEXCEPT { return end(); }
379
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reverse_iterator crbegin() const _NOEXCEPT {
376
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const _NOEXCEPT {
377
+ return begin();
378
+ }
379
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_iterator cend() const _NOEXCEPT {
380
+ return end();
381
+ }
382
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reverse_iterator
383
+ crbegin() const _NOEXCEPT {
380
384
  return rbegin();
381
385
  }
382
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reverse_iterator crend() const _NOEXCEPT { return rend(); }
386
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reverse_iterator crend() const _NOEXCEPT {
387
+ return rend();
388
+ }
383
389
 
384
390
  //
385
391
  // [vector.capacity], capacity
386
392
  //
387
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI size_type size() const _NOEXCEPT {
393
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI size_type size() const _NOEXCEPT {
388
394
  return static_cast<size_type>(this->__end_ - this->__begin_);
389
395
  }
390
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI size_type capacity() const _NOEXCEPT {
396
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI size_type capacity() const _NOEXCEPT {
391
397
  return static_cast<size_type>(this->__cap_ - this->__begin_);
392
398
  }
393
399
  [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI bool empty() const _NOEXCEPT {
394
400
  return this->__begin_ == this->__end_;
395
401
  }
396
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI size_type max_size() const _NOEXCEPT {
402
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI size_type max_size() const _NOEXCEPT {
397
403
  return std::min<size_type>(__alloc_traits::max_size(this->__alloc_), numeric_limits<difference_type>::max());
398
404
  }
399
405
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void reserve(size_type __n);
@@ -402,38 +408,39 @@ public:
402
408
  //
403
409
  // element access
404
410
  //
405
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reference operator[](size_type __n) _NOEXCEPT {
411
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reference operator[](size_type __n) _NOEXCEPT {
406
412
  _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(__n < size(), "vector[] index out of bounds");
407
413
  return this->__begin_[__n];
408
414
  }
409
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reference operator[](size_type __n) const _NOEXCEPT {
415
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reference
416
+ operator[](size_type __n) const _NOEXCEPT {
410
417
  _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(__n < size(), "vector[] index out of bounds");
411
418
  return this->__begin_[__n];
412
419
  }
413
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reference at(size_type __n) {
420
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reference at(size_type __n) {
414
421
  if (__n >= size())
415
422
  this->__throw_out_of_range();
416
423
  return this->__begin_[__n];
417
424
  }
418
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reference at(size_type __n) const {
425
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reference at(size_type __n) const {
419
426
  if (__n >= size())
420
427
  this->__throw_out_of_range();
421
428
  return this->__begin_[__n];
422
429
  }
423
430
 
424
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reference front() _NOEXCEPT {
431
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reference front() _NOEXCEPT {
425
432
  _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(!empty(), "front() called on an empty vector");
426
433
  return *this->__begin_;
427
434
  }
428
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reference front() const _NOEXCEPT {
435
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reference front() const _NOEXCEPT {
429
436
  _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(!empty(), "front() called on an empty vector");
430
437
  return *this->__begin_;
431
438
  }
432
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reference back() _NOEXCEPT {
439
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI reference back() _NOEXCEPT {
433
440
  _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(!empty(), "back() called on an empty vector");
434
441
  return *(this->__end_ - 1);
435
442
  }
436
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reference back() const _NOEXCEPT {
443
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const_reference back() const _NOEXCEPT {
437
444
  _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS(!empty(), "back() called on an empty vector");
438
445
  return *(this->__end_ - 1);
439
446
  }
@@ -441,11 +448,11 @@ public:
441
448
  //
442
449
  // [vector.data], data access
443
450
  //
444
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI value_type* data() _NOEXCEPT {
451
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI value_type* data() _NOEXCEPT {
445
452
  return std::__to_address(this->__begin_);
446
453
  }
447
454
 
448
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const value_type* data() const _NOEXCEPT {
455
+ [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI const value_type* data() const _NOEXCEPT {
449
456
  return std::__to_address(this->__begin_);
450
457
  }
451
458
 
@@ -478,7 +485,21 @@ public:
478
485
  #if _LIBCPP_STD_VER >= 23
479
486
  template <_ContainerCompatibleRange<_Tp> _Range>
480
487
  _LIBCPP_HIDE_FROM_ABI constexpr void append_range(_Range&& __range) {
481
- insert_range(end(), std::forward<_Range>(__range));
488
+ if constexpr (ranges::forward_range<_Range> || ranges::sized_range<_Range>) {
489
+ auto __len = ranges::distance(__range);
490
+ if (__len <= __cap_ - __end_) {
491
+ __construct_at_end(ranges::begin(__range), ranges::end(__range), __len);
492
+ } else {
493
+ __split_buffer<value_type, allocator_type> __buffer(__recommend(size() + __len), size(), __alloc_);
494
+ __buffer.__construct_at_end_with_size(ranges::begin(__range), __len);
495
+ __swap_out_circular_buffer(__buffer);
496
+ }
497
+ } else {
498
+ vector __buffer(__alloc_);
499
+ for (auto&& __val : __range)
500
+ __buffer.emplace_back(std::forward<decltype(__val)>(__val));
501
+ append_range(ranges::as_rvalue_view(__buffer));
502
+ }
482
503
  }
483
504
  #endif
484
505
 
@@ -512,7 +533,7 @@ public:
512
533
  int> = 0>
513
534
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI iterator
514
535
  insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last) {
515
- return __insert_with_size(__position, __first, __last, std::distance(__first, __last));
536
+ return __insert_with_size<_ClassicAlgPolicy>(__position, __first, __last, std::distance(__first, __last));
516
537
  }
517
538
 
518
539
  #if _LIBCPP_STD_VER >= 23
@@ -520,7 +541,7 @@ public:
520
541
  _LIBCPP_HIDE_FROM_ABI constexpr iterator insert_range(const_iterator __position, _Range&& __range) {
521
542
  if constexpr (ranges::forward_range<_Range> || ranges::sized_range<_Range>) {
522
543
  auto __n = static_cast<size_type>(ranges::distance(__range));
523
- return __insert_with_size(__position, ranges::begin(__range), ranges::end(__range), __n);
544
+ return __insert_with_size<_RangeAlgPolicy>(__position, ranges::begin(__range), ranges::end(__range), __n);
524
545
 
525
546
  } else {
526
547
  return __insert_with_sentinel(__position, ranges::begin(__range), ranges::end(__range));
@@ -613,12 +634,13 @@ private:
613
634
  // The `_Iterator` in `*_with_size` functions can be input-only only if called from `*_range` (since C++23).
614
635
  // Otherwise, `_Iterator` is a forward iterator.
615
636
 
616
- template <class _Iterator, class _Sentinel>
637
+ template <class _AlgPolicy, class _Iterator, class _Sentinel>
617
638
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void
618
639
  __assign_with_size(_Iterator __first, _Sentinel __last, difference_type __n);
619
640
 
620
- template <class _Iterator,
621
- __enable_if_t<!is_same<decltype(*std::declval<_Iterator&>())&&, value_type&&>::value, int> = 0>
641
+ template <class _AlgPolicy,
642
+ class _Iterator,
643
+ __enable_if_t<!is_same<__policy_value_type<_AlgPolicy, _Iterator>, value_type>::value, int> = 0>
622
644
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void
623
645
  __insert_assign_n_unchecked(_Iterator __first, difference_type __n, pointer __position) {
624
646
  for (pointer __end_position = __position + __n; __position != __end_position; ++__position, (void)++__first) {
@@ -627,25 +649,19 @@ private:
627
649
  }
628
650
  }
629
651
 
630
- template <class _Iterator,
631
- __enable_if_t<is_same<decltype(*std::declval<_Iterator&>())&&, value_type&&>::value, int> = 0>
652
+ template <class _AlgPolicy,
653
+ class _Iterator,
654
+ __enable_if_t<is_same<__policy_value_type<_AlgPolicy, _Iterator>, value_type>::value, int> = 0>
632
655
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void
633
656
  __insert_assign_n_unchecked(_Iterator __first, difference_type __n, pointer __position) {
634
- #if _LIBCPP_STD_VER >= 23
635
- if constexpr (!forward_iterator<_Iterator>) { // Handles input-only sized ranges for insert_range
636
- ranges::copy_n(std::move(__first), __n, __position);
637
- } else
638
- #endif
639
- {
640
- std::copy_n(__first, __n, __position);
641
- }
657
+ std::__copy_n<_AlgPolicy>(std::move(__first), __n, __position);
642
658
  }
643
659
 
644
660
  template <class _InputIterator, class _Sentinel>
645
661
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI iterator
646
662
  __insert_with_sentinel(const_iterator __position, _InputIterator __first, _Sentinel __last);
647
663
 
648
- template <class _Iterator, class _Sentinel>
664
+ template <class _AlgPolicy, class _Iterator, class _Sentinel>
649
665
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI iterator
650
666
  __insert_with_size(const_iterator __position, _Iterator __first, _Sentinel __last, difference_type __n);
651
667
 
@@ -653,9 +669,6 @@ private:
653
669
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void
654
670
  __construct_at_end(_InputIterator __first, _Sentinel __last, size_type __n);
655
671
 
656
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __append(size_type __n);
657
- _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __append(size_type __n, const_reference __x);
658
-
659
672
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI iterator __make_iter(pointer __p) _NOEXCEPT {
660
673
  #ifdef _LIBCPP_ABI_BOUNDED_ITERATORS_IN_VECTOR
661
674
  // Bound the iterator according to the capacity, rather than the size.
@@ -689,9 +702,9 @@ private:
689
702
  }
690
703
 
691
704
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void
692
- __swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v);
705
+ __swap_out_circular_buffer(__split_buffer<value_type, allocator_type>& __v);
693
706
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI pointer
694
- __swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v, pointer __p);
707
+ __swap_out_circular_buffer(__split_buffer<value_type, allocator_type>& __v, pointer __p);
695
708
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void
696
709
  __move_range(pointer __from_s, pointer __from_e, pointer __to);
697
710
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __move_assign(vector& __c, true_type)
@@ -811,26 +824,44 @@ private:
811
824
  __add_alignment_assumption(_Ptr __p) _NOEXCEPT {
812
825
  return __p;
813
826
  }
827
+
828
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void __swap_layouts(__split_buffer<_Tp, allocator_type>& __sb) {
829
+ auto __vector_begin = __begin_;
830
+ auto __vector_sentinel = __end_;
831
+ auto __vector_cap = __cap_;
832
+
833
+ auto __sb_begin = __sb.begin();
834
+ auto __sb_sentinel = __sb.__raw_sentinel();
835
+ auto __sb_cap = __sb.__raw_capacity();
836
+
837
+ // TODO: replace with __set_valid_range and __set_capacity when vector supports it.
838
+ __begin_ = __sb_begin;
839
+ __end_ = __sb_sentinel;
840
+ __cap_ = __sb_cap;
841
+
842
+ __sb.__set_valid_range(__vector_begin, __vector_sentinel);
843
+ __sb.__set_capacity(__vector_cap);
844
+ }
814
845
  };
815
846
 
816
847
  #if _LIBCPP_STD_VER >= 17
817
848
  template <class _InputIterator,
818
- class _Alloc = allocator<__iter_value_type<_InputIterator>>,
849
+ class _Alloc = allocator<__iterator_value_type<_InputIterator>>,
819
850
  class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
820
- class = enable_if_t<__is_allocator<_Alloc>::value> >
821
- vector(_InputIterator, _InputIterator) -> vector<__iter_value_type<_InputIterator>, _Alloc>;
851
+ class = enable_if_t<__is_allocator_v<_Alloc>>>
852
+ vector(_InputIterator, _InputIterator) -> vector<__iterator_value_type<_InputIterator>, _Alloc>;
822
853
 
823
854
  template <class _InputIterator,
824
855
  class _Alloc,
825
856
  class = enable_if_t<__has_input_iterator_category<_InputIterator>::value>,
826
- class = enable_if_t<__is_allocator<_Alloc>::value> >
827
- vector(_InputIterator, _InputIterator, _Alloc) -> vector<__iter_value_type<_InputIterator>, _Alloc>;
857
+ class = enable_if_t<__is_allocator_v<_Alloc>>>
858
+ vector(_InputIterator, _InputIterator, _Alloc) -> vector<__iterator_value_type<_InputIterator>, _Alloc>;
828
859
  #endif
829
860
 
830
861
  #if _LIBCPP_STD_VER >= 23
831
862
  template <ranges::input_range _Range,
832
863
  class _Alloc = allocator<ranges::range_value_t<_Range>>,
833
- class = enable_if_t<__is_allocator<_Alloc>::value> >
864
+ class = enable_if_t<__is_allocator_v<_Alloc>>>
834
865
  vector(from_range_t, _Range&&, _Alloc = _Alloc()) -> vector<ranges::range_value_t<_Range>, _Alloc>;
835
866
  #endif
836
867
 
@@ -839,17 +870,16 @@ vector(from_range_t, _Range&&, _Alloc = _Alloc()) -> vector<ranges::range_value_
839
870
  // function has a strong exception guarantee.
840
871
  template <class _Tp, class _Allocator>
841
872
  _LIBCPP_CONSTEXPR_SINCE_CXX20 void
842
- vector<_Tp, _Allocator>::__swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v) {
873
+ vector<_Tp, _Allocator>::__swap_out_circular_buffer(__split_buffer<value_type, allocator_type>& __v) {
843
874
  __annotate_delete();
844
- auto __new_begin = __v.__begin_ - (__end_ - __begin_);
875
+ auto __new_begin = __v.begin() - size();
845
876
  std::__uninitialized_allocator_relocate(
846
877
  this->__alloc_, std::__to_address(__begin_), std::__to_address(__end_), std::__to_address(__new_begin));
847
- __v.__begin_ = __new_begin;
878
+ __v.__set_valid_range(__new_begin, __v.end());
848
879
  __end_ = __begin_; // All the objects have been destroyed by relocating them.
849
- std::swap(this->__begin_, __v.__begin_);
850
- std::swap(this->__end_, __v.__end_);
851
- std::swap(this->__cap_, __v.__cap_);
852
- __v.__first_ = __v.__begin_;
880
+
881
+ __swap_layouts(__v);
882
+ __v.__set_data(__v.begin());
853
883
  __annotate_new(size());
854
884
  }
855
885
 
@@ -859,27 +889,25 @@ vector<_Tp, _Allocator>::__swap_out_circular_buffer(__split_buffer<value_type, a
859
889
  // function has a strong exception guarantee if __begin_ == __p || __end_ == __p.
860
890
  template <class _Tp, class _Allocator>
861
891
  _LIBCPP_CONSTEXPR_SINCE_CXX20 typename vector<_Tp, _Allocator>::pointer
862
- vector<_Tp, _Allocator>::__swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v, pointer __p) {
892
+ vector<_Tp, _Allocator>::__swap_out_circular_buffer(__split_buffer<value_type, allocator_type>& __v, pointer __p) {
863
893
  __annotate_delete();
864
- pointer __ret = __v.__begin_;
894
+ pointer __ret = __v.begin();
865
895
 
866
896
  // Relocate [__p, __end_) first to avoid having a hole in [__begin_, __end_)
867
897
  // in case something in [__begin_, __p) throws.
868
898
  std::__uninitialized_allocator_relocate(
869
- this->__alloc_, std::__to_address(__p), std::__to_address(__end_), std::__to_address(__v.__end_));
870
- __v.__end_ += (__end_ - __p);
899
+ this->__alloc_, std::__to_address(__p), std::__to_address(__end_), std::__to_address(__v.end()));
900
+ auto __relocated_so_far = __end_ - __p;
901
+ __v.__set_sentinel(__v.end() + __relocated_so_far);
871
902
  __end_ = __p; // The objects in [__p, __end_) have been destroyed by relocating them.
872
- auto __new_begin = __v.__begin_ - (__p - __begin_);
903
+ auto __new_begin = __v.begin() - (__p - __begin_);
873
904
 
874
905
  std::__uninitialized_allocator_relocate(
875
906
  this->__alloc_, std::__to_address(__begin_), std::__to_address(__p), std::__to_address(__new_begin));
876
- __v.__begin_ = __new_begin;
877
- __end_ = __begin_; // All the objects have been destroyed by relocating them.
878
-
879
- std::swap(this->__begin_, __v.__begin_);
880
- std::swap(this->__end_, __v.__end_);
881
- std::swap(this->__cap_, __v.__cap_);
882
- __v.__first_ = __v.__begin_;
907
+ __v.__set_valid_range(__new_begin, __v.end());
908
+ __end_ = __begin_; // All the objects have been destroyed by relocating them.
909
+ __swap_layouts(__v);
910
+ __v.__set_data(__v.begin());
883
911
  __annotate_new(size());
884
912
  return __ret;
885
913
  }
@@ -945,36 +973,6 @@ vector<_Tp, _Allocator>::__construct_at_end(_InputIterator __first, _Sentinel __
945
973
  __tx.__pos_ = std::__uninitialized_allocator_copy(this->__alloc_, std::move(__first), std::move(__last), __tx.__pos_);
946
974
  }
947
975
 
948
- // Default constructs __n objects starting at __end_
949
- // throws if construction throws
950
- // Postcondition: size() == size() + __n
951
- // Exception safety: strong.
952
- template <class _Tp, class _Allocator>
953
- _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector<_Tp, _Allocator>::__append(size_type __n) {
954
- if (static_cast<size_type>(this->__cap_ - this->__end_) >= __n)
955
- this->__construct_at_end(__n);
956
- else {
957
- __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), size(), this->__alloc_);
958
- __v.__construct_at_end(__n);
959
- __swap_out_circular_buffer(__v);
960
- }
961
- }
962
-
963
- // Default constructs __n objects starting at __end_
964
- // throws if construction throws
965
- // Postcondition: size() == size() + __n
966
- // Exception safety: strong.
967
- template <class _Tp, class _Allocator>
968
- _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector<_Tp, _Allocator>::__append(size_type __n, const_reference __x) {
969
- if (static_cast<size_type>(this->__cap_ - this->__end_) >= __n)
970
- this->__construct_at_end(__n, __x);
971
- else {
972
- __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), size(), this->__alloc_);
973
- __v.__construct_at_end(__n, __x);
974
- __swap_out_circular_buffer(__v);
975
- }
976
- }
977
-
978
976
  template <class _Tp, class _Allocator>
979
977
  _LIBCPP_CONSTEXPR_SINCE_CXX20 inline _LIBCPP_HIDE_FROM_ABI vector<_Tp, _Allocator>::vector(vector&& __x)
980
978
  #if _LIBCPP_STD_VER >= 17
@@ -1051,20 +1049,14 @@ vector<_Tp, _Allocator>::__assign_with_sentinel(_Iterator __first, _Sentinel __l
1051
1049
  }
1052
1050
 
1053
1051
  template <class _Tp, class _Allocator>
1054
- template <class _Iterator, class _Sentinel>
1052
+ template <class _AlgPolicy, class _Iterator, class _Sentinel>
1055
1053
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void
1056
1054
  vector<_Tp, _Allocator>::__assign_with_size(_Iterator __first, _Sentinel __last, difference_type __n) {
1057
1055
  size_type __new_size = static_cast<size_type>(__n);
1058
1056
  if (__new_size <= capacity()) {
1059
1057
  if (__new_size > size()) {
1060
- #if _LIBCPP_STD_VER >= 23
1061
- auto __mid = ranges::copy_n(std::move(__first), size(), this->__begin_).in;
1058
+ auto __mid = std::__copy_n<_AlgPolicy>(std::move(__first), size(), this->__begin_).first;
1062
1059
  __construct_at_end(std::move(__mid), std::move(__last), __new_size - size());
1063
- #else
1064
- _Iterator __mid = std::next(__first, size());
1065
- std::copy(__first, __mid, this->__begin_);
1066
- __construct_at_end(__mid, __last, __new_size - size());
1067
- #endif
1068
1060
  } else {
1069
1061
  pointer __m = std::__copy(std::move(__first), __last, this->__begin_).second;
1070
1062
  this->__destruct_at_end(__m);
@@ -1097,7 +1089,7 @@ _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector<_Tp, _Allocator>::reserve(size_type __
1097
1089
  if (__n > capacity()) {
1098
1090
  if (__n > max_size())
1099
1091
  this->__throw_length_error();
1100
- __split_buffer<value_type, allocator_type&> __v(__n, size(), this->__alloc_);
1092
+ __split_buffer<value_type, allocator_type> __v(__n, size(), this->__alloc_);
1101
1093
  __swap_out_circular_buffer(__v);
1102
1094
  }
1103
1095
  }
@@ -1108,7 +1100,7 @@ _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector<_Tp, _Allocator>::shrink_to_fit() _NOE
1108
1100
  #if _LIBCPP_HAS_EXCEPTIONS
1109
1101
  try {
1110
1102
  #endif // _LIBCPP_HAS_EXCEPTIONS
1111
- __split_buffer<value_type, allocator_type&> __v(size(), size(), this->__alloc_);
1103
+ __split_buffer<value_type, allocator_type> __v(size(), size(), this->__alloc_);
1112
1104
  // The Standard mandates shrink_to_fit() does not increase the capacity.
1113
1105
  // With equal capacity keep the existing buffer. This avoids extra work
1114
1106
  // due to swapping the elements.
@@ -1125,14 +1117,33 @@ template <class _Tp, class _Allocator>
1125
1117
  template <class... _Args>
1126
1118
  _LIBCPP_CONSTEXPR_SINCE_CXX20 typename vector<_Tp, _Allocator>::pointer
1127
1119
  vector<_Tp, _Allocator>::__emplace_back_slow_path(_Args&&... __args) {
1128
- __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), size(), this->__alloc_);
1120
+ __split_buffer<value_type, allocator_type> __v(__recommend(size() + 1), size(), this->__alloc_);
1129
1121
  // __v.emplace_back(std::forward<_Args>(__args)...);
1130
- __alloc_traits::construct(this->__alloc_, std::__to_address(__v.__end_), std::forward<_Args>(__args)...);
1131
- __v.__end_++;
1122
+ pointer __end = __v.end();
1123
+ __alloc_traits::construct(this->__alloc_, std::__to_address(__end), std::forward<_Args>(__args)...);
1124
+ __v.__set_sentinel(++__end);
1132
1125
  __swap_out_circular_buffer(__v);
1133
1126
  return this->__end_;
1134
1127
  }
1135
1128
 
1129
+ // This makes the compiler inline `__else()` if `__cond` is known to be false. Currently LLVM doesn't do that without
1130
+ // the `__builtin_constant_p`, since it considers `__else` unlikely even through it's known to be run.
1131
+ // See https://llvm.org/PR154292
1132
+ template <class _If, class _Else>
1133
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void __if_likely_else(bool __cond, _If __if, _Else __else) {
1134
+ if (__builtin_constant_p(__cond)) {
1135
+ if (__cond)
1136
+ __if();
1137
+ else
1138
+ __else();
1139
+ } else {
1140
+ if (__cond) [[__likely__]]
1141
+ __if();
1142
+ else
1143
+ __else();
1144
+ }
1145
+ }
1146
+
1136
1147
  template <class _Tp, class _Allocator>
1137
1148
  template <class... _Args>
1138
1149
  _LIBCPP_CONSTEXPR_SINCE_CXX20 inline
@@ -1143,12 +1154,14 @@ _LIBCPP_CONSTEXPR_SINCE_CXX20 inline
1143
1154
  #endif
1144
1155
  vector<_Tp, _Allocator>::emplace_back(_Args&&... __args) {
1145
1156
  pointer __end = this->__end_;
1146
- if (__end < this->__cap_) {
1147
- __emplace_back_assume_capacity(std::forward<_Args>(__args)...);
1148
- ++__end;
1149
- } else {
1150
- __end = __emplace_back_slow_path(std::forward<_Args>(__args)...);
1151
- }
1157
+ std::__if_likely_else(
1158
+ __end < this->__cap_,
1159
+ [&] {
1160
+ __emplace_back_assume_capacity(std::forward<_Args>(__args)...);
1161
+ ++__end;
1162
+ },
1163
+ [&] { __end = __emplace_back_slow_path(std::forward<_Args>(__args)...); });
1164
+
1152
1165
  this->__end_ = __end;
1153
1166
  #if _LIBCPP_STD_VER >= 17
1154
1167
  return *(__end - 1);
@@ -1207,7 +1220,7 @@ vector<_Tp, _Allocator>::insert(const_iterator __position, const_reference __x)
1207
1220
  *__p = *__xr;
1208
1221
  }
1209
1222
  } else {
1210
- __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), __p - this->__begin_, this->__alloc_);
1223
+ __split_buffer<value_type, allocator_type> __v(__recommend(size() + 1), __p - this->__begin_, this->__alloc_);
1211
1224
  __v.emplace_back(__x);
1212
1225
  __p = __swap_out_circular_buffer(__v, __p);
1213
1226
  }
@@ -1226,7 +1239,7 @@ vector<_Tp, _Allocator>::insert(const_iterator __position, value_type&& __x) {
1226
1239
  *__p = std::move(__x);
1227
1240
  }
1228
1241
  } else {
1229
- __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), __p - this->__begin_, this->__alloc_);
1242
+ __split_buffer<value_type, allocator_type> __v(__recommend(size() + 1), __p - this->__begin_, this->__alloc_);
1230
1243
  __v.emplace_back(std::move(__x));
1231
1244
  __p = __swap_out_circular_buffer(__v, __p);
1232
1245
  }
@@ -1247,7 +1260,7 @@ vector<_Tp, _Allocator>::emplace(const_iterator __position, _Args&&... __args) {
1247
1260
  *__p = std::move(__tmp.get());
1248
1261
  }
1249
1262
  } else {
1250
- __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), __p - this->__begin_, this->__alloc_);
1263
+ __split_buffer<value_type, allocator_type> __v(__recommend(size() + 1), __p - this->__begin_, this->__alloc_);
1251
1264
  __v.emplace_back(std::forward<_Args>(__args)...);
1252
1265
  __p = __swap_out_circular_buffer(__v, __p);
1253
1266
  }
@@ -1275,7 +1288,7 @@ vector<_Tp, _Allocator>::insert(const_iterator __position, size_type __n, const_
1275
1288
  std::fill_n(__p, __n, *__xr);
1276
1289
  }
1277
1290
  } else {
1278
- __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), __p - this->__begin_, this->__alloc_);
1291
+ __split_buffer<value_type, allocator_type> __v(__recommend(size() + __n), __p - this->__begin_, this->__alloc_);
1279
1292
  __v.__construct_at_end(__n, __x);
1280
1293
  __p = __swap_out_circular_buffer(__v, __p);
1281
1294
  }
@@ -1296,28 +1309,28 @@ vector<_Tp, _Allocator>::__insert_with_sentinel(const_iterator __position, _Inpu
1296
1309
  if (__first == __last)
1297
1310
  (void)std::rotate(__p, __old_last, this->__end_);
1298
1311
  else {
1299
- __split_buffer<value_type, allocator_type&> __v(__alloc_);
1312
+ __split_buffer<value_type, allocator_type> __v(__alloc_);
1300
1313
  auto __guard = std::__make_exception_guard(
1301
1314
  _AllocatorDestroyRangeReverse<allocator_type, pointer>(__alloc_, __old_last, this->__end_));
1302
1315
  __v.__construct_at_end_with_sentinel(std::move(__first), std::move(__last));
1303
- __split_buffer<value_type, allocator_type&> __merged(
1316
+ __split_buffer<value_type, allocator_type> __merged(
1304
1317
  __recommend(size() + __v.size()), __off, __alloc_); // has `__off` positions available at the front
1305
1318
  std::__uninitialized_allocator_relocate(
1306
- __alloc_, std::__to_address(__old_last), std::__to_address(this->__end_), std::__to_address(__merged.__end_));
1319
+ __alloc_, std::__to_address(__old_last), std::__to_address(this->__end_), std::__to_address(__merged.end()));
1307
1320
  __guard.__complete(); // Release the guard once objects in [__old_last_, __end_) have been successfully relocated.
1308
- __merged.__end_ += this->__end_ - __old_last;
1321
+ __merged.__set_sentinel(__merged.end() + (this->__end_ - __old_last));
1309
1322
  this->__end_ = __old_last;
1310
1323
  std::__uninitialized_allocator_relocate(
1311
- __alloc_, std::__to_address(__v.__begin_), std::__to_address(__v.__end_), std::__to_address(__merged.__end_));
1312
- __merged.__end_ += __v.size();
1313
- __v.__end_ = __v.__begin_;
1324
+ __alloc_, std::__to_address(__v.begin()), std::__to_address(__v.end()), std::__to_address(__merged.end()));
1325
+ __merged.__set_sentinel(__merged.size() + __v.size());
1326
+ __v.__set_sentinel(__v.begin());
1314
1327
  __p = __swap_out_circular_buffer(__merged, __p);
1315
1328
  }
1316
1329
  return __make_iter(__p);
1317
1330
  }
1318
1331
 
1319
1332
  template <class _Tp, class _Allocator>
1320
- template <class _Iterator, class _Sentinel>
1333
+ template <class _AlgPolicy, class _Iterator, class _Sentinel>
1321
1334
  _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI typename vector<_Tp, _Allocator>::iterator
1322
1335
  vector<_Tp, _Allocator>::__insert_with_size(
1323
1336
  const_iterator __position, _Iterator __first, _Sentinel __last, difference_type __n) {
@@ -1338,15 +1351,15 @@ vector<_Tp, _Allocator>::__insert_with_size(
1338
1351
  __construct_at_end(__m, __last, __n - __dx);
1339
1352
  if (__dx > 0) {
1340
1353
  __move_range(__p, __old_last, __p + __n);
1341
- __insert_assign_n_unchecked(__first, __dx, __p);
1354
+ __insert_assign_n_unchecked<_AlgPolicy>(__first, __dx, __p);
1342
1355
  }
1343
1356
  }
1344
1357
  } else {
1345
1358
  __move_range(__p, __old_last, __p + __n);
1346
- __insert_assign_n_unchecked(std::move(__first), __n, __p);
1359
+ __insert_assign_n_unchecked<_AlgPolicy>(std::move(__first), __n, __p);
1347
1360
  }
1348
1361
  } else {
1349
- __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), __p - this->__begin_, this->__alloc_);
1362
+ __split_buffer<value_type, allocator_type> __v(__recommend(size() + __n), __p - this->__begin_, this->__alloc_);
1350
1363
  __v.__construct_at_end_with_size(std::move(__first), __n);
1351
1364
  __p = __swap_out_circular_buffer(__v, __p);
1352
1365
  }
@@ -1355,21 +1368,35 @@ vector<_Tp, _Allocator>::__insert_with_size(
1355
1368
  }
1356
1369
 
1357
1370
  template <class _Tp, class _Allocator>
1358
- _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector<_Tp, _Allocator>::resize(size_type __sz) {
1359
- size_type __cs = size();
1360
- if (__cs < __sz)
1361
- this->__append(__sz - __cs);
1362
- else if (__cs > __sz)
1363
- this->__destruct_at_end(this->__begin_ + __sz);
1371
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector<_Tp, _Allocator>::resize(size_type __new_size) {
1372
+ size_type __current_size = size();
1373
+ if (__current_size < __new_size) {
1374
+ if (__new_size <= capacity()) {
1375
+ __construct_at_end(__new_size - __current_size);
1376
+ } else {
1377
+ __split_buffer<value_type, allocator_type> __v(__recommend(__new_size), __current_size, __alloc_);
1378
+ __v.__construct_at_end(__new_size - __current_size);
1379
+ __swap_out_circular_buffer(__v);
1380
+ }
1381
+ } else if (__current_size > __new_size) {
1382
+ this->__destruct_at_end(this->__begin_ + __new_size);
1383
+ }
1364
1384
  }
1365
1385
 
1366
1386
  template <class _Tp, class _Allocator>
1367
- _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector<_Tp, _Allocator>::resize(size_type __sz, const_reference __x) {
1368
- size_type __cs = size();
1369
- if (__cs < __sz)
1370
- this->__append(__sz - __cs, __x);
1371
- else if (__cs > __sz)
1372
- this->__destruct_at_end(this->__begin_ + __sz);
1387
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 void vector<_Tp, _Allocator>::resize(size_type __new_size, const_reference __x) {
1388
+ size_type __current_size = size();
1389
+ if (__current_size < __new_size) {
1390
+ if (__new_size <= capacity())
1391
+ __construct_at_end(__new_size - __current_size, __x);
1392
+ else {
1393
+ __split_buffer<value_type, allocator_type> __v(__recommend(__new_size), __current_size, __alloc_);
1394
+ __v.__construct_at_end(__new_size - __current_size, __x);
1395
+ __swap_out_circular_buffer(__v);
1396
+ }
1397
+ } else if (__current_size > __new_size) {
1398
+ this->__destruct_at_end(this->__begin_ + __new_size);
1399
+ }
1373
1400
  }
1374
1401
 
1375
1402
  template <class _Tp, class _Allocator>