@zigc/lib 0.17.0-dev.131 → 0.17.0-dev.215
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.
- package/c/stdlib.zig +32 -22
- package/compiler/aro/aro/Compilation.zig +0 -3
- package/compiler/translate-c/ast.zig +5 -2
- package/compiler_rt/arm.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +1 -22
- package/docs/wasm/markdown/Parser.zig +5 -9
- package/include/__clang_spirv_builtins.h +12 -12
- package/include/__float_float.h +176 -0
- package/include/__float_header_macro.h +12 -0
- package/include/__float_infinity_nan.h +20 -0
- package/include/amo.h +131 -0
- package/include/amxavx512intrin.h +215 -1
- package/include/amxintrin.h +0 -2
- package/include/arm_acle.h +37 -27
- package/include/arm_neon.h +218 -82
- package/include/arm_sme.h +8 -8
- package/include/arm_sve.h +4162 -3782
- package/include/avx10_2_512bf16intrin.h +19 -12
- package/include/avx10_2_512convertintrin.h +1 -1
- package/include/avx10_2_512niintrin.h +31 -31
- package/include/avx10_2_512satcvtdsintrin.h +1 -1
- package/include/avx10_2bf16intrin.h +54 -45
- package/include/avx10_2convertintrin.h +2 -2
- package/include/avx10_2copyintrin.h +1 -1
- package/include/avx10_2niintrin.h +14 -14
- package/include/avx10_2satcvtdsintrin.h +2 -2
- package/include/avx2intrin.h +275 -377
- package/include/avx512bf16intrin.h +25 -16
- package/include/avx512bitalgintrin.h +19 -30
- package/include/avx512bwintrin.h +386 -505
- package/include/avx512cdintrin.h +42 -55
- package/include/avx512dqintrin.h +132 -161
- package/include/avx512fintrin.h +1015 -1424
- package/include/avx512fp16intrin.h +112 -110
- package/include/avx512ifmaintrin.h +32 -34
- package/include/avx512ifmavlintrin.h +73 -46
- package/include/avx512vbmi2intrin.h +43 -32
- package/include/avx512vbmiintrin.h +19 -27
- package/include/avx512vbmivlintrin.h +35 -49
- package/include/avx512vlbf16intrin.h +32 -22
- package/include/avx512vlbitalgintrin.h +37 -53
- package/include/avx512vlbwintrin.h +470 -573
- package/include/avx512vlcdintrin.h +74 -102
- package/include/avx512vldqintrin.h +110 -127
- package/include/avx512vlfp16intrin.h +130 -111
- package/include/avx512vlintrin.h +945 -1299
- package/include/avx512vlvbmi2intrin.h +78 -63
- package/include/avx512vlvnniintrin.h +21 -18
- package/include/avx512vlvp2intersectintrin.h +2 -2
- package/include/avx512vnniintrin.h +10 -10
- package/include/avx512vp2intersectintrin.h +1 -2
- package/include/avx512vpopcntdqintrin.h +8 -10
- package/include/avx512vpopcntdqvlintrin.h +17 -15
- package/include/avxifmaintrin.h +16 -0
- package/include/avxintrin.h +165 -241
- package/include/avxvnniint16intrin.h +118 -99
- package/include/avxvnniint8intrin.h +56 -32
- package/include/avxvnniintrin.h +16 -8
- package/include/cpuid.h +101 -4
- package/include/emmintrin.h +168 -168
- package/include/f16cintrin.h +23 -9
- package/include/float.h +16 -155
- package/include/fma4intrin.h +98 -96
- package/include/fmaintrin.h +96 -66
- package/include/gfniintrin.h +21 -16
- package/include/hexagon_types.h +23 -20
- package/include/hvx_hexagon_protos.h +649 -860
- package/include/immintrin.h +0 -12
- package/include/intrin.h +4 -0
- package/include/lasxintrin.h +113 -0
- package/include/llvm_libc_wrappers/assert.h +3 -5
- package/include/llvm_libc_wrappers/ctype.h +3 -115
- package/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/include/llvm_libc_wrappers/stdio.h +10 -38
- package/include/llvm_libc_wrappers/stdlib.h +3 -24
- package/include/llvm_libc_wrappers/string.h +2 -70
- package/include/llvm_libc_wrappers/time.h +4 -10
- package/include/mmintrin.h +188 -257
- package/include/module.modulemap +23 -4
- package/include/movrs_avx10_2_512intrin.h +2 -2
- package/include/movrs_avx10_2intrin.h +4 -4
- package/include/pmmintrin.h +12 -24
- package/include/ptrauth.h +16 -2
- package/include/riscv_mips.h +34 -0
- package/include/riscv_nds.h +89 -0
- package/include/sifive_vector.h +58 -2
- package/include/sm4evexintrin.h +2 -2
- package/include/smmintrin.h +77 -59
- package/include/spirvintrin.h +194 -0
- package/include/stddefer.h +19 -0
- package/include/tmmintrin.h +116 -147
- package/include/vaesintrin.h +1 -2
- package/include/xmmintrin.h +44 -70
- package/include/xopintrin.h +20 -10
- package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
- package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
- package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
- package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
- package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
- package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
- package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
- package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
- package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
- package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
- package/libc/include/any-linux-any/linux/android/binder.h +1 -1
- package/libc/include/any-linux-any/linux/bpf.h +28 -0
- package/libc/include/any-linux-any/linux/btrfs.h +1 -0
- package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
- package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
- package/libc/include/any-linux-any/linux/dpll.h +1 -0
- package/libc/include/any-linux-any/linux/elf.h +2 -0
- package/libc/include/any-linux-any/linux/ethtool.h +21 -5
- package/libc/include/any-linux-any/linux/fs.h +1 -0
- package/libc/include/any-linux-any/linux/hyperv.h +1 -1
- package/libc/include/any-linux-any/linux/idxd.h +134 -134
- package/libc/include/any-linux-any/linux/if_alg.h +1 -1
- package/libc/include/any-linux-any/linux/if_link.h +1 -0
- package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
- package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
- package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
- package/libc/include/any-linux-any/linux/io_uring.h +33 -2
- package/libc/include/any-linux-any/linux/iommufd.h +39 -0
- package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
- package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
- package/libc/include/any-linux-any/linux/kvm.h +30 -6
- package/libc/include/any-linux-any/linux/landlock.h +22 -8
- package/libc/include/any-linux-any/linux/magic.h +1 -0
- package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
- package/libc/include/any-linux-any/linux/mount.h +11 -2
- package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
- package/libc/include/any-linux-any/linux/mshv.h +2 -0
- package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
- package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
- package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
- package/libc/include/any-linux-any/linux/nfs.h +1 -1
- package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
- package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
- package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
- package/libc/include/any-linux-any/linux/nl80211.h +104 -3
- package/libc/include/any-linux-any/linux/pci.h +7 -0
- package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
- package/libc/include/any-linux-any/linux/pcitest.h +1 -0
- package/libc/include/any-linux-any/linux/perf_event.h +24 -3
- package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
- package/libc/include/any-linux-any/linux/prctl.h +30 -0
- package/libc/include/any-linux-any/linux/rseq.h +62 -5
- package/libc/include/any-linux-any/linux/shm.h +0 -1
- package/libc/include/any-linux-any/linux/stddef.h +4 -0
- package/libc/include/any-linux-any/linux/sysctl.h +1 -2
- package/libc/include/any-linux-any/linux/taskstats.h +12 -1
- package/libc/include/any-linux-any/linux/tcp.h +23 -3
- package/libc/include/any-linux-any/linux/typelimits.h +8 -0
- package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
- package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
- package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
- package/libc/include/any-linux-any/linux/vduse.h +80 -5
- package/libc/include/any-linux-any/linux/version.h +3 -3
- package/libc/include/any-linux-any/linux/vfio.h +4 -0
- package/libc/include/any-linux-any/linux/videodev2.h +3 -0
- package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
- package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
- package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
- package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
- package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
- package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
- package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
- package/libc/include/arc-linux-any/asm/swab.h +0 -63
- package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
- package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
- package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
- package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
- package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/mips-linux-any/asm/errno.h +2 -0
- package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
- package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
- package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
- package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/sparc-linux-any/asm/errno.h +2 -0
- package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
- package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
- package/libc/include/x86-linux-any/asm/kvm.h +13 -8
- package/libc/include/x86-linux-any/asm/svm.h +16 -16
- package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
- package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
- package/libcxx/include/__algorithm/all_of.h +11 -5
- package/libcxx/include/__algorithm/comp.h +4 -0
- package/libcxx/include/__algorithm/copy.h +28 -147
- package/libcxx/include/__algorithm/copy_backward.h +9 -24
- package/libcxx/include/__algorithm/copy_n.h +50 -16
- package/libcxx/include/__algorithm/count.h +2 -2
- package/libcxx/include/__algorithm/equal.h +43 -55
- package/libcxx/include/__algorithm/fill.h +26 -8
- package/libcxx/include/__algorithm/fill_n.h +32 -46
- package/libcxx/include/__algorithm/find.h +96 -39
- package/libcxx/include/__algorithm/find_end.h +105 -0
- package/libcxx/include/__algorithm/for_each.h +18 -24
- package/libcxx/include/__algorithm/for_each_n.h +20 -47
- package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
- package/libcxx/include/__algorithm/for_each_segment.h +26 -0
- package/libcxx/include/__algorithm/generate.h +4 -2
- package/libcxx/include/__algorithm/generate_n.h +19 -6
- package/libcxx/include/__algorithm/is_permutation.h +4 -4
- package/libcxx/include/__algorithm/iterator_operations.h +3 -0
- package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
- package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
- package/libcxx/include/__algorithm/make_heap.h +16 -4
- package/libcxx/include/__algorithm/mismatch.h +2 -2
- package/libcxx/include/__algorithm/move.h +8 -19
- package/libcxx/include/__algorithm/move_backward.h +9 -24
- package/libcxx/include/__algorithm/none_of.h +4 -4
- package/libcxx/include/__algorithm/partial_sort.h +1 -1
- package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
- package/libcxx/include/__algorithm/pstl.h +9 -9
- package/libcxx/include/__algorithm/radix_sort.h +27 -25
- package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
- package/libcxx/include/__algorithm/ranges_equal.h +17 -26
- package/libcxx/include/__algorithm/ranges_fill.h +7 -6
- package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
- package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
- package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
- package/libcxx/include/__algorithm/rotate.h +27 -44
- package/libcxx/include/__algorithm/search_n.h +49 -37
- package/libcxx/include/__algorithm/sift_down.h +19 -18
- package/libcxx/include/__algorithm/simd_utils.h +33 -4
- package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
- package/libcxx/include/__algorithm/stable_sort.h +1 -1
- package/libcxx/include/__assertion_handler +31 -4
- package/libcxx/include/__atomic/atomic.h +36 -60
- package/libcxx/include/__atomic/atomic_flag.h +19 -37
- package/libcxx/include/__atomic/atomic_ref.h +29 -12
- package/libcxx/include/__atomic/atomic_sync.h +127 -55
- package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
- package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
- package/libcxx/include/__atomic/contention_t.h +27 -3
- package/libcxx/include/__atomic/floating_point_helper.h +55 -0
- package/libcxx/include/__bit/countl.h +1 -2
- package/libcxx/include/__bit/countr.h +1 -2
- package/libcxx/include/__bit/has_single_bit.h +1 -1
- package/libcxx/include/__bit/popcount.h +0 -1
- package/libcxx/include/__bit/rotate.h +15 -26
- package/libcxx/include/__bit_reference +207 -18
- package/libcxx/include/__charconv/from_chars_integral.h +1 -1
- package/libcxx/include/__charconv/from_chars_result.h +1 -1
- package/libcxx/include/__charconv/to_chars_integral.h +1 -0
- package/libcxx/include/__charconv/to_chars_result.h +1 -1
- package/libcxx/include/__charconv/traits.h +3 -24
- package/libcxx/include/__chrono/day.h +11 -0
- package/libcxx/include/__chrono/duration.h +58 -33
- package/libcxx/include/__chrono/file_clock.h +4 -2
- package/libcxx/include/__chrono/is_clock.h +72 -0
- package/libcxx/include/__chrono/leap_second.h +13 -0
- package/libcxx/include/__chrono/month.h +13 -0
- package/libcxx/include/__chrono/month_weekday.h +22 -0
- package/libcxx/include/__chrono/monthday.h +20 -0
- package/libcxx/include/__chrono/steady_clock.h +1 -1
- package/libcxx/include/__chrono/system_clock.h +3 -3
- package/libcxx/include/__chrono/time_point.h +37 -13
- package/libcxx/include/__chrono/weekday.h +25 -0
- package/libcxx/include/__chrono/year.h +11 -0
- package/libcxx/include/__chrono/year_month.h +13 -0
- package/libcxx/include/__chrono/year_month_day.h +23 -0
- package/libcxx/include/__chrono/year_month_weekday.h +26 -0
- package/libcxx/include/__chrono/zoned_time.h +16 -0
- package/libcxx/include/__compare/is_eq.h +6 -6
- package/libcxx/include/__compare/strong_order.h +12 -30
- package/libcxx/include/__compare/three_way_comparable.h +2 -2
- package/libcxx/include/__concepts/comparison_common_type.h +40 -0
- package/libcxx/include/__concepts/equality_comparable.h +2 -1
- package/libcxx/include/__condition_variable/condition_variable.h +1 -1
- package/libcxx/include/__config +63 -280
- package/libcxx/include/__configuration/abi.h +14 -24
- package/libcxx/include/__configuration/availability.h +65 -118
- package/libcxx/include/__configuration/compiler.h +6 -6
- package/libcxx/include/__configuration/experimental.h +38 -0
- package/libcxx/include/__configuration/hardening.h +215 -0
- package/libcxx/include/__configuration/language.h +3 -0
- package/libcxx/include/__configuration/platform.h +9 -16
- package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
- package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
- package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
- package/libcxx/include/__exception/exception.h +6 -4
- package/libcxx/include/__exception/exception_ptr.h +27 -5
- package/libcxx/include/__exception/nested_exception.h +2 -2
- package/libcxx/include/__exception/operations.h +5 -5
- package/libcxx/include/__expected/bad_expected_access.h +8 -6
- package/libcxx/include/__expected/expected.h +62 -64
- package/libcxx/include/__expected/unexpected.h +4 -4
- package/libcxx/include/__filesystem/copy_options.h +4 -4
- package/libcxx/include/__filesystem/directory_entry.h +37 -33
- package/libcxx/include/__filesystem/directory_iterator.h +9 -11
- package/libcxx/include/__filesystem/directory_options.h +7 -4
- package/libcxx/include/__filesystem/file_status.h +3 -3
- package/libcxx/include/__filesystem/filesystem_error.h +9 -10
- package/libcxx/include/__filesystem/operations.h +97 -66
- package/libcxx/include/__filesystem/path.h +68 -64
- package/libcxx/include/__filesystem/path_iterator.h +1 -3
- package/libcxx/include/__filesystem/perm_options.h +4 -4
- package/libcxx/include/__filesystem/perms.h +4 -4
- package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
- package/libcxx/include/__filesystem/space_info.h +1 -1
- package/libcxx/include/__filesystem/u8path.h +12 -14
- package/libcxx/include/__flat_map/flat_map.h +88 -71
- package/libcxx/include/__flat_map/flat_multimap.h +251 -172
- package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
- package/libcxx/include/__flat_map/utils.h +1 -0
- package/libcxx/include/__flat_set/flat_multiset.h +211 -143
- package/libcxx/include/__flat_set/flat_set.h +86 -68
- package/libcxx/include/__format/concepts.h +0 -14
- package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
- package/libcxx/include/__format/fmt_pair_like.h +42 -0
- package/libcxx/include/__format/format_arg.h +7 -10
- package/libcxx/include/__format/format_args.h +1 -1
- package/libcxx/include/__format/format_context.h +5 -5
- package/libcxx/include/__format/format_parse_context.h +2 -2
- package/libcxx/include/__format/formatter_output.h +30 -34
- package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
- package/libcxx/include/__format/range_default_formatter.h +2 -41
- package/libcxx/include/__format/range_format.h +71 -0
- package/libcxx/include/__format/range_formatter.h +1 -0
- package/libcxx/include/__format/width_estimation_table.h +4 -2
- package/libcxx/include/__functional/bind.h +10 -15
- package/libcxx/include/__functional/bind_back.h +1 -1
- package/libcxx/include/__functional/bind_front.h +1 -1
- package/libcxx/include/__functional/function.h +57 -75
- package/libcxx/include/__functional/hash.h +1 -10
- package/libcxx/include/__functional/identity.h +1 -1
- package/libcxx/include/__functional/is_transparent.h +8 -0
- package/libcxx/include/__functional/mem_fn.h +2 -1
- package/libcxx/include/__functional/operations.h +18 -0
- package/libcxx/include/__functional/ranges_operations.h +7 -0
- package/libcxx/include/__functional/reference_wrapper.h +7 -5
- package/libcxx/include/__functional/weak_result_type.h +14 -28
- package/libcxx/include/__fwd/ios.h +1 -1
- package/libcxx/include/__fwd/tuple.h +14 -0
- package/libcxx/include/__hash_table +371 -357
- package/libcxx/include/__ios/fpos.h +4 -4
- package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/bounded_iter.h +7 -8
- package/libcxx/include/__iterator/concepts.h +6 -9
- package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
- package/libcxx/include/__iterator/distance.h +40 -18
- package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/insert_iterator.h +1 -7
- package/libcxx/include/__iterator/istream_iterator.h +6 -7
- package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
- package/libcxx/include/__iterator/iter_move.h +1 -1
- package/libcxx/include/__iterator/iterator.h +13 -0
- package/libcxx/include/__iterator/iterator_traits.h +13 -14
- package/libcxx/include/__iterator/ostream_iterator.h +1 -7
- package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
- package/libcxx/include/__iterator/reverse_iterator.h +8 -13
- package/libcxx/include/__iterator/segmented_iterator.h +3 -8
- package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
- package/libcxx/include/__iterator/wrap_iter.h +8 -6
- package/libcxx/include/__locale +3 -10
- package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
- package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
- package/libcxx/include/__locale_dir/messages.h +1 -1
- package/libcxx/include/__locale_dir/money.h +2 -2
- package/libcxx/include/__locale_dir/num.h +190 -243
- package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
- package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
- package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
- package/libcxx/include/__locale_dir/support/linux.h +0 -37
- package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
- package/libcxx/include/__locale_dir/support/newlib.h +243 -0
- package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
- package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
- package/libcxx/include/__locale_dir/support/windows.h +0 -29
- package/libcxx/include/__locale_dir/time.h +3 -7
- package/libcxx/include/__math/hypot.h +1 -1
- package/libcxx/include/__math/logarithms.h +1 -1
- package/libcxx/include/__math/traits.h +80 -11
- package/libcxx/include/__mdspan/extents.h +7 -4
- package/libcxx/include/__mdspan/layout_stride.h +4 -5
- package/libcxx/include/__mdspan/mdspan.h +29 -23
- package/libcxx/include/__memory/addressof.h +7 -5
- package/libcxx/include/__memory/align.h +18 -1
- package/libcxx/include/__memory/allocate_at_least.h +15 -10
- package/libcxx/include/__memory/allocator.h +14 -26
- package/libcxx/include/__memory/allocator_traits.h +6 -4
- package/libcxx/include/__memory/compressed_pair.h +15 -9
- package/libcxx/include/__memory/construct_at.h +12 -23
- package/libcxx/include/__memory/inout_ptr.h +1 -1
- package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
- package/libcxx/include/__memory/out_ptr.h +1 -1
- package/libcxx/include/__memory/pointer_traits.h +1 -1
- package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
- package/libcxx/include/__memory/shared_count.h +9 -30
- package/libcxx/include/__memory/shared_ptr.h +100 -145
- package/libcxx/include/__memory/temp_value.h +1 -2
- package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
- package/libcxx/include/__memory/unique_ptr.h +14 -16
- package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
- package/libcxx/include/__memory_resource/memory_resource.h +4 -2
- package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
- package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
- package/libcxx/include/__memory_resource/pool_options.h +1 -1
- package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
- package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
- package/libcxx/include/__mutex/mutex.h +2 -2
- package/libcxx/include/__mutex/once_flag.h +14 -11
- package/libcxx/include/__mutex/tag_types.h +3 -3
- package/libcxx/include/__mutex/unique_lock.h +8 -7
- package/libcxx/include/__new/align_val_t.h +6 -0
- package/libcxx/include/__new/allocate.h +1 -2
- package/libcxx/include/__new/exceptions.h +8 -2
- package/libcxx/include/__new/global_new_delete.h +4 -11
- package/libcxx/include/__new/interference_size.h +0 -4
- package/libcxx/include/__new/launder.h +3 -5
- package/libcxx/include/__new/nothrow_t.h +1 -1
- package/libcxx/include/__numeric/gcd_lcm.h +24 -34
- package/libcxx/include/__numeric/midpoint.h +9 -14
- package/libcxx/include/__numeric/pstl.h +2 -2
- package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
- package/libcxx/include/__ostream/basic_ostream.h +8 -8
- package/libcxx/include/__pstl/backends/default.h +14 -14
- package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
- package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
- package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
- package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
- package/libcxx/include/__random/binomial_distribution.h +10 -4
- package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
- package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
- package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
- package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
- package/libcxx/include/__ranges/adjacent_view.h +419 -0
- package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
- package/libcxx/include/__ranges/chunk_by_view.h +6 -6
- package/libcxx/include/__ranges/common_view.h +7 -7
- package/libcxx/include/__ranges/drop_view.h +8 -8
- package/libcxx/include/__ranges/drop_while_view.h +5 -5
- package/libcxx/include/__ranges/elements_of.h +49 -0
- package/libcxx/include/__ranges/empty_view.h +5 -5
- package/libcxx/include/__ranges/filter_view.h +10 -10
- package/libcxx/include/__ranges/iota_view.h +41 -22
- package/libcxx/include/__ranges/owning_view.h +15 -15
- package/libcxx/include/__ranges/ref_view.h +6 -6
- package/libcxx/include/__ranges/repeat_view.h +17 -10
- package/libcxx/include/__ranges/single_view.h +8 -8
- package/libcxx/include/__ranges/take_view.h +9 -9
- package/libcxx/include/__ranges/transform_view.h +1 -2
- package/libcxx/include/__ranges/view_interface.h +10 -10
- package/libcxx/include/__ranges/zip_transform_view.h +357 -0
- package/libcxx/include/__ranges/zip_view.h +20 -20
- package/libcxx/include/__split_buffer +612 -240
- package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
- package/libcxx/include/__stop_token/stop_callback.h +2 -2
- package/libcxx/include/__stop_token/stop_source.h +1 -1
- package/libcxx/include/__stop_token/stop_state.h +4 -4
- package/libcxx/include/__stop_token/stop_token.h +1 -1
- package/libcxx/include/__string/char_traits.h +51 -31
- package/libcxx/include/__string/constexpr_c_functions.h +5 -5
- package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
- package/libcxx/include/__system_error/error_category.h +8 -8
- package/libcxx/include/__system_error/error_code.h +5 -5
- package/libcxx/include/__system_error/error_condition.h +4 -4
- package/libcxx/include/__system_error/system_error.h +1 -1
- package/libcxx/include/__thread/id.h +1 -1
- package/libcxx/include/__thread/jthread.h +1 -1
- package/libcxx/include/__thread/poll_with_backoff.h +27 -8
- package/libcxx/include/__thread/support/c11.h +8 -8
- package/libcxx/include/__thread/support/pthread.h +8 -8
- package/libcxx/include/__thread/support/windows.h +8 -8
- package/libcxx/include/__thread/thread.h +13 -8
- package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
- package/libcxx/include/__tree +849 -701
- package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
- package/libcxx/include/__tuple/tuple_element.h +0 -12
- package/libcxx/include/__tuple/tuple_size.h +0 -4
- package/libcxx/include/__tuple/tuple_transform.h +45 -0
- package/libcxx/include/__type_traits/aligned_storage.h +13 -40
- package/libcxx/include/__type_traits/desugars_to.h +4 -0
- package/libcxx/include/__type_traits/invoke.h +8 -0
- package/libcxx/include/__type_traits/is_allocator.h +6 -7
- package/libcxx/include/__type_traits/is_array.h +26 -0
- package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
- package/libcxx/include/__type_traits/is_final.h +1 -1
- package/libcxx/include/__type_traits/is_floating_point.h +7 -6
- package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
- package/libcxx/include/__type_traits/is_specialization.h +2 -6
- package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
- package/libcxx/include/__type_traits/make_transparent.h +52 -0
- package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
- package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
- package/libcxx/include/__utility/cmp.h +19 -7
- package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
- package/libcxx/include/__utility/in_place.h +1 -1
- package/libcxx/include/__utility/integer_sequence.h +56 -41
- package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
- package/libcxx/include/__utility/pair.h +22 -25
- package/libcxx/include/__utility/scope_guard.h +2 -0
- package/libcxx/include/__utility/try_key_extraction.h +114 -0
- package/libcxx/include/__vector/vector.h +187 -160
- package/libcxx/include/__vector/vector_bool.h +76 -83
- package/libcxx/include/any +118 -155
- package/libcxx/include/array +88 -56
- package/libcxx/include/atomic +2 -0
- package/libcxx/include/barrier +20 -24
- package/libcxx/include/bitset +49 -30
- package/libcxx/include/ccomplex +3 -11
- package/libcxx/include/chrono +47 -0
- package/libcxx/include/ciso646 +3 -6
- package/libcxx/include/complex +77 -65
- package/libcxx/include/complex.h +10 -10
- package/libcxx/include/condition_variable +3 -3
- package/libcxx/include/cstdalign +3 -10
- package/libcxx/include/cstdbool +3 -10
- package/libcxx/include/ctgmath +2 -11
- package/libcxx/include/ctype.h +24 -24
- package/libcxx/include/cwchar +2 -2
- package/libcxx/include/deque +109 -225
- package/libcxx/include/errno.h +269 -269
- package/libcxx/include/exception +4 -1
- package/libcxx/include/ext/hash_map +7 -48
- package/libcxx/include/ext/hash_set +2 -8
- package/libcxx/include/fenv.h +43 -43
- package/libcxx/include/flat_map +663 -11
- package/libcxx/include/flat_set +543 -8
- package/libcxx/include/float.h +16 -16
- package/libcxx/include/forward_list +33 -53
- package/libcxx/include/fstream +57 -42
- package/libcxx/include/future +41 -51
- package/libcxx/include/initializer_list +9 -3
- package/libcxx/include/inttypes.h +16 -16
- package/libcxx/include/ios +28 -28
- package/libcxx/include/istream +19 -13
- package/libcxx/include/iterator +10 -0
- package/libcxx/include/latch +7 -5
- package/libcxx/include/limits +4 -4
- package/libcxx/include/list +61 -79
- package/libcxx/include/map +386 -274
- package/libcxx/include/math.h +19 -0
- package/libcxx/include/mdspan +1 -5
- package/libcxx/include/mutex +29 -19
- package/libcxx/include/optional +644 -149
- package/libcxx/include/print +9 -5
- package/libcxx/include/queue +39 -37
- package/libcxx/include/ranges +48 -0
- package/libcxx/include/regex +33 -31
- package/libcxx/include/scoped_allocator +16 -11
- package/libcxx/include/semaphore +15 -18
- package/libcxx/include/set +220 -192
- package/libcxx/include/shared_mutex +3 -8
- package/libcxx/include/span +53 -37
- package/libcxx/include/sstream +34 -28
- package/libcxx/include/stack +13 -15
- package/libcxx/include/stddef.h +10 -10
- package/libcxx/include/stdexcept +2 -2
- package/libcxx/include/stdio.h +20 -21
- package/libcxx/include/streambuf +59 -19
- package/libcxx/include/string +574 -573
- package/libcxx/include/string_view +113 -89
- package/libcxx/include/strstream +10 -10
- package/libcxx/include/syncstream +4 -4
- package/libcxx/include/tgmath.h +12 -12
- package/libcxx/include/tuple +242 -212
- package/libcxx/include/type_traits +8 -2
- package/libcxx/include/typeindex +5 -3
- package/libcxx/include/typeinfo +92 -89
- package/libcxx/include/unordered_map +179 -304
- package/libcxx/include/unordered_set +168 -195
- package/libcxx/include/utility +12 -0
- package/libcxx/include/valarray +106 -161
- package/libcxx/include/variant +25 -33
- package/libcxx/include/version +41 -24
- package/libcxx/include/wctype.h +29 -29
- package/libcxx/src/any.cpp +4 -0
- package/libcxx/src/atomic.cpp +365 -80
- package/libcxx/src/barrier.cpp +4 -3
- package/libcxx/src/charconv.cpp +6 -3
- package/libcxx/src/condition_variable_destructor.cpp +1 -1
- package/libcxx/src/error_category.cpp +3 -1
- package/libcxx/src/exception.cpp +2 -10
- package/libcxx/src/experimental/time_zone.cpp +1 -1
- package/libcxx/src/experimental/tzdb.cpp +4 -1
- package/libcxx/src/filesystem/error.h +4 -22
- package/libcxx/src/filesystem/format_string.h +9 -18
- package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
- package/libcxx/src/filesystem/operations.cpp +2 -9
- package/libcxx/src/filesystem/path.cpp +3 -1
- package/libcxx/src/include/aligned_alloc.h +65 -0
- package/libcxx/src/include/config_elast.h +1 -1
- package/libcxx/src/include/from_chars_floating_point.h +11 -7
- package/libcxx/src/include/overridable_function.h +8 -10
- package/libcxx/src/iostream.cpp +56 -37
- package/libcxx/src/locale.cpp +213 -196
- package/libcxx/src/memory.cpp +12 -14
- package/libcxx/src/mutex_destructor.cpp +1 -1
- package/libcxx/src/new.cpp +5 -5
- package/libcxx/src/optional.cpp +4 -0
- package/libcxx/src/print.cpp +9 -1
- package/libcxx/src/random.cpp +0 -26
- package/libcxx/src/string.cpp +10 -25
- package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
- package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
- package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
- package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
- package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
- package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
- package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
- package/libcxx/src/support/win32/locale_win32.cpp +1 -1
- package/libcxx/src/system_error.cpp +2 -0
- package/libcxx/src/thread.cpp +1 -3
- package/libcxx/src/valarray.cpp +1 -2
- package/libcxx/src/vector.cpp +2 -2
- package/libcxxabi/include/__cxxabi_config.h +42 -23
- package/libcxxabi/src/cxa_exception.cpp +4 -2
- package/libcxxabi/src/cxa_exception.h +16 -14
- package/libcxxabi/src/cxa_personality.cpp +126 -9
- package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
- package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
- package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
- package/libcxxabi/src/demangle/Utility.h +21 -7
- package/libcxxabi/src/fallback_malloc.cpp +1 -1
- package/libcxxabi/src/private_typeinfo.cpp +6 -0
- package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
- package/libtsan/LICENSE.TXT +311 -0
- package/libtsan/builtins/assembly.h +41 -8
- package/libtsan/interception/interception_win.cpp +4 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
- package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
- package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
- package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
- package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
- package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
- package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
- package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
- package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
- package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
- package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
- package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
- package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
- package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
- package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
- package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
- package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
- package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
- package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
- package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
- package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
- package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
- package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
- package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
- package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
- package/libtsan/tsan_debugging.cpp +2 -2
- package/libtsan/tsan_flags.cpp +37 -0
- package/libtsan/tsan_flags.h +8 -0
- package/libtsan/tsan_flags.inc +12 -0
- package/libtsan/tsan_interceptors.h +9 -1
- package/libtsan/tsan_interceptors_mac.cpp +19 -0
- package/libtsan/tsan_interceptors_posix.cpp +78 -32
- package/libtsan/tsan_interface.h +3 -3
- package/libtsan/tsan_interface_ann.cpp +23 -9
- package/libtsan/tsan_mman.cpp +18 -4
- package/libtsan/tsan_platform.h +44 -7
- package/libtsan/tsan_platform_linux.cpp +42 -14
- package/libtsan/tsan_platform_mac.cpp +16 -3
- package/libtsan/tsan_report.h +14 -1
- package/libtsan/tsan_rtl.cpp +14 -0
- package/libtsan/tsan_rtl.h +7 -2
- package/libtsan/tsan_rtl_aarch64.S +3 -5
- package/libtsan/tsan_rtl_access.cpp +8 -3
- package/libtsan/tsan_rtl_amd64.S +2 -0
- package/libtsan/tsan_rtl_mutex.cpp +94 -49
- package/libtsan/tsan_rtl_report.cpp +132 -65
- package/libtsan/tsan_rtl_thread.cpp +31 -9
- package/libtsan/tsan_symbolize.cpp +1 -1
- package/libtsan/tsan_symbolize.h +1 -1
- package/libtsan/tsan_trace.h +1 -1
- package/libunwind/include/__libunwind_config.h +11 -2
- package/libunwind/include/libunwind.h +117 -11
- package/libunwind/include/unwind_arm_ehabi.h +4 -1
- package/libunwind/src/AddressSpace.hpp +40 -19
- package/libunwind/src/CompactUnwinder.hpp +16 -5
- package/libunwind/src/DwarfInstructions.hpp +24 -13
- package/libunwind/src/DwarfParser.hpp +60 -22
- package/libunwind/src/EHHeaderParser.hpp +7 -4
- package/libunwind/src/Registers.hpp +226 -22
- package/libunwind/src/Unwind-seh.cpp +6 -7
- package/libunwind/src/Unwind-wasm.c +7 -7
- package/libunwind/src/UnwindCursor.hpp +167 -49
- package/libunwind/src/UnwindLevel1.c +46 -17
- package/libunwind/src/UnwindRegistersRestore.S +46 -5
- package/libunwind/src/UnwindRegistersSave.S +86 -2
- package/libunwind/src/assembly.h +5 -1
- package/libunwind/src/config.h +9 -0
- package/libunwind/src/gcc_personality_v0.c +79 -6
- package/libunwind/src/libunwind.cpp +104 -4
- package/libunwind/src/libunwind_ext.h +7 -1
- package/libunwind/src/shadow_stack_unwind.h +2 -2
- package/lldb/pretty_printers.py +948 -0
- package/package.json +1 -1
- package/std/Build/Step/Compile.zig +18 -19
- package/std/Build/Step/Run.zig +13 -6
- package/std/Build/Step.zig +0 -3
- package/std/Io/Threaded.zig +3 -0
- package/std/Target/aarch64.zig +620 -77
- package/std/Target/amdgcn.zig +421 -21
- package/std/Target/arm.zig +40 -6
- package/std/Target/bpf.zig +6 -0
- package/std/Target/hexagon.zig +41 -6
- package/std/Target/loongarch.zig +18 -0
- package/std/Target/mips.zig +6 -0
- package/std/Target/nvptx.zig +58 -35
- package/std/Target/powerpc.zig +27 -19
- package/std/Target/riscv.zig +415 -177
- package/std/Target/sparc.zig +17 -0
- package/std/Target/wasm.zig +7 -0
- package/std/Target/x86.zig +200 -31
- package/std/Target/xtensa.zig +65 -0
- package/std/Target.zig +11 -2
- package/std/c.zig +7 -0
- package/std/debug/Dwarf.zig +14 -11
- package/std/debug/Pdb.zig +24 -16
- package/std/hash/xxhash.zig +0 -6
- package/std/math/log10.zig +0 -2
- package/std/math/modf.zig +0 -1
- package/std/mem.zig +1 -2
- package/std/os/linux/syscalls.zig +26 -1
- package/std/os/linux/x86.zig +2 -2
- package/std/os/windows.zig +130 -1
- package/std/simd.zig +4 -21
- package/std/start.zig +4 -3
- package/std/zig/Ast.zig +5 -7
- package/std/zig/AstGen.zig +20 -14
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/ZonGen.zig +13 -21
- package/std/zig/llvm/Builder.zig +2 -2
- package/std/zig/system/arm.zig +56 -2
- package/std/zig/system/windows.zig +34 -1
- package/std/zig/system/x86.zig +60 -16
- package/std/zig/system.zig +0 -10
- package/include/amxbf16transposeintrin.h +0 -94
- package/include/amxcomplextransposeintrin.h +0 -303
- package/include/amxfp16transposeintrin.h +0 -94
- package/include/amxmovrstransposeintrin.h +0 -200
- package/include/amxtf32transposeintrin.h +0 -105
- package/include/amxtransposeintrin.h +0 -248
- package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
- package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
- package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
|
@@ -12,16 +12,19 @@
|
|
|
12
12
|
|
|
13
13
|
#include <__algorithm/find_segment_if.h>
|
|
14
14
|
#include <__algorithm/min.h>
|
|
15
|
+
#include <__algorithm/simd_utils.h>
|
|
15
16
|
#include <__algorithm/unwrap_iter.h>
|
|
16
17
|
#include <__bit/countr.h>
|
|
17
18
|
#include <__bit/invert_if.h>
|
|
18
19
|
#include <__config>
|
|
20
|
+
#include <__cstddef/size_t.h>
|
|
19
21
|
#include <__functional/identity.h>
|
|
20
22
|
#include <__fwd/bit_reference.h>
|
|
21
23
|
#include <__iterator/segmented_iterator.h>
|
|
22
24
|
#include <__string/constexpr_c_functions.h>
|
|
23
25
|
#include <__type_traits/enable_if.h>
|
|
24
26
|
#include <__type_traits/invoke.h>
|
|
27
|
+
#include <__type_traits/is_constant_evaluated.h>
|
|
25
28
|
#include <__type_traits/is_equality_comparable.h>
|
|
26
29
|
#include <__type_traits/is_integral.h>
|
|
27
30
|
#include <__type_traits/is_signed.h>
|
|
@@ -44,46 +47,108 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
|
|
44
47
|
// generic implementation
|
|
45
48
|
template <class _Iter, class _Sent, class _Tp, class _Proj>
|
|
46
49
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Iter
|
|
47
|
-
|
|
50
|
+
__find_loop(_Iter __first, _Sent __last, const _Tp& __value, _Proj& __proj) {
|
|
48
51
|
for (; __first != __last; ++__first)
|
|
49
52
|
if (std::__invoke(__proj, *__first) == __value)
|
|
50
53
|
break;
|
|
51
54
|
return __first;
|
|
52
55
|
}
|
|
53
56
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
__enable_if_t<__is_identity<_Proj>::value && __libcpp_is_trivially_equality_comparable<_Tp, _Up>::value &&
|
|
59
|
-
sizeof(_Tp) == 1,
|
|
60
|
-
int> = 0>
|
|
61
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp* __find(_Tp* __first, _Tp* __last, const _Up& __value, _Proj&) {
|
|
62
|
-
if (auto __ret = std::__constexpr_memchr(__first, __value, __last - __first))
|
|
63
|
-
return __ret;
|
|
64
|
-
return __last;
|
|
57
|
+
template <class _Iter, class _Sent, class _Tp, class _Proj>
|
|
58
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Iter
|
|
59
|
+
__find(_Iter __first, _Sent __last, const _Tp& __value, _Proj& __proj) {
|
|
60
|
+
return std::__find_loop(std::move(__first), std::move(__last), __value, __proj);
|
|
65
61
|
}
|
|
66
62
|
|
|
67
|
-
#if
|
|
63
|
+
#if _LIBCPP_VECTORIZE_ALGORITHMS
|
|
64
|
+
template <class _Tp, class _Up>
|
|
65
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI
|
|
66
|
+
_LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp* __find_vectorized(_Tp* __first, _Tp* __last, _Up __value) {
|
|
67
|
+
if (!__libcpp_is_constant_evaluated()) {
|
|
68
|
+
constexpr size_t __unroll_count = 4;
|
|
69
|
+
constexpr size_t __vec_size = __native_vector_size<_Tp>;
|
|
70
|
+
using __vec = __simd_vector<_Tp, __vec_size>;
|
|
71
|
+
|
|
72
|
+
auto __orig_first = __first;
|
|
73
|
+
|
|
74
|
+
auto __values = static_cast<__simd_vector<_Tp, __vec_size>>(__value); // broadcast the value
|
|
75
|
+
while (static_cast<size_t>(__last - __first) >= __unroll_count * __vec_size) [[__unlikely__]] {
|
|
76
|
+
__vec __lhs[__unroll_count];
|
|
77
|
+
|
|
78
|
+
for (size_t __i = 0; __i != __unroll_count; ++__i)
|
|
79
|
+
__lhs[__i] = std::__load_vector<__vec>(__first + __i * __vec_size);
|
|
80
|
+
|
|
81
|
+
for (size_t __i = 0; __i != __unroll_count; ++__i) {
|
|
82
|
+
if (auto __cmp_res = __lhs[__i] == __values; std::__any_of(__cmp_res)) {
|
|
83
|
+
auto __offset = __i * __vec_size + std::__find_first_set(__cmp_res);
|
|
84
|
+
return __first + __offset;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
__first += __unroll_count * __vec_size;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// check the remaining 0-3 vectors
|
|
92
|
+
while (static_cast<size_t>(__last - __first) >= __vec_size) {
|
|
93
|
+
if (auto __cmp_res = std::__load_vector<__vec>(__first) == __values; std::__any_of(__cmp_res)) {
|
|
94
|
+
return __first + std::__find_first_set(__cmp_res);
|
|
95
|
+
}
|
|
96
|
+
__first += __vec_size;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (__last - __first == 0)
|
|
100
|
+
return __first;
|
|
101
|
+
|
|
102
|
+
// Check if we can load elements in front of the current pointer. If that's the case load a vector at
|
|
103
|
+
// (last - vector_size) to check the remaining elements
|
|
104
|
+
if (static_cast<size_t>(__first - __orig_first) >= __vec_size) {
|
|
105
|
+
__first = __last - __vec_size;
|
|
106
|
+
return __first + std::__find_first_set(std::__load_vector<__vec>(__first) == __values);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
__identity __proj;
|
|
111
|
+
return std::__find_loop(__first, __last, __value, __proj);
|
|
112
|
+
}
|
|
113
|
+
#endif
|
|
114
|
+
|
|
115
|
+
#ifndef _LIBCPP_CXX03_LANG
|
|
116
|
+
// trivially equality comparable implementations
|
|
68
117
|
template <class _Tp,
|
|
69
118
|
class _Up,
|
|
70
119
|
class _Proj,
|
|
71
|
-
__enable_if_t<__is_identity<_Proj>::value &&
|
|
72
|
-
sizeof(_Tp) == sizeof(wchar_t) && _LIBCPP_ALIGNOF(_Tp) >= _LIBCPP_ALIGNOF(wchar_t),
|
|
73
|
-
int> = 0>
|
|
120
|
+
__enable_if_t<__is_identity<_Proj>::value && __is_trivially_equality_comparable_v<_Tp, _Up>, int> = 0>
|
|
74
121
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp* __find(_Tp* __first, _Tp* __last, const _Up& __value, _Proj&) {
|
|
75
|
-
if
|
|
76
|
-
|
|
77
|
-
|
|
122
|
+
if constexpr (sizeof(_Tp) == 1) {
|
|
123
|
+
if (auto __ret = std::__constexpr_memchr(__first, __value, __last - __first))
|
|
124
|
+
return __ret;
|
|
125
|
+
return __last;
|
|
126
|
+
}
|
|
127
|
+
# if _LIBCPP_HAS_WIDE_CHARACTERS
|
|
128
|
+
else if constexpr (sizeof(_Tp) == sizeof(wchar_t) && _LIBCPP_ALIGNOF(_Tp) >= _LIBCPP_ALIGNOF(wchar_t)) {
|
|
129
|
+
if (auto __ret = std::__constexpr_wmemchr(__first, __value, __last - __first))
|
|
130
|
+
return __ret;
|
|
131
|
+
return __last;
|
|
132
|
+
}
|
|
133
|
+
# endif
|
|
134
|
+
# if _LIBCPP_VECTORIZE_ALGORITHMS
|
|
135
|
+
else if constexpr (is_integral<_Tp>::value) {
|
|
136
|
+
return std::__find_vectorized(__first, __last, __value);
|
|
137
|
+
}
|
|
138
|
+
# endif
|
|
139
|
+
else {
|
|
140
|
+
__identity __proj;
|
|
141
|
+
return std::__find_loop(__first, __last, __value, __proj);
|
|
142
|
+
}
|
|
78
143
|
}
|
|
79
|
-
#endif
|
|
144
|
+
#endif
|
|
80
145
|
|
|
81
146
|
// TODO: This should also be possible to get right with different signedness
|
|
82
147
|
// cast integral types to allow vectorization
|
|
83
148
|
template <class _Tp,
|
|
84
149
|
class _Up,
|
|
85
150
|
class _Proj,
|
|
86
|
-
__enable_if_t<__is_identity<_Proj>::value && !
|
|
151
|
+
__enable_if_t<__is_identity<_Proj>::value && !__is_trivially_equality_comparable_v<_Tp, _Up> &&
|
|
87
152
|
is_integral<_Tp>::value && is_integral<_Up>::value &&
|
|
88
153
|
is_signed<_Tp>::value == is_signed<_Up>::value,
|
|
89
154
|
int> = 0>
|
|
@@ -143,31 +208,23 @@ __find(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __la
|
|
|
143
208
|
|
|
144
209
|
// segmented iterator implementation
|
|
145
210
|
|
|
146
|
-
template <class>
|
|
147
|
-
struct __find_segment;
|
|
148
|
-
|
|
149
211
|
template <class _SegmentedIterator,
|
|
150
212
|
class _Tp,
|
|
151
213
|
class _Proj,
|
|
152
|
-
__enable_if_t<
|
|
214
|
+
__enable_if_t<__is_segmented_iterator_v<_SegmentedIterator>, int> = 0>
|
|
153
215
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _SegmentedIterator
|
|
154
216
|
__find(_SegmentedIterator __first, _SegmentedIterator __last, const _Tp& __value, _Proj& __proj) {
|
|
155
|
-
|
|
217
|
+
using __local_iterator = typename __segmented_iterator_traits<_SegmentedIterator>::__local_iterator;
|
|
218
|
+
return std::__find_segment_if(
|
|
219
|
+
std::move(__first),
|
|
220
|
+
std::move(__last),
|
|
221
|
+
[&__value](__local_iterator __lfirst, __local_iterator __llast, _Proj& __lproj) {
|
|
222
|
+
return std::__rewrap_iter(
|
|
223
|
+
__lfirst, std::__find(std::__unwrap_iter(__lfirst), std::__unwrap_iter(__llast), __value, __lproj));
|
|
224
|
+
},
|
|
225
|
+
__proj);
|
|
156
226
|
}
|
|
157
227
|
|
|
158
|
-
template <class _Tp>
|
|
159
|
-
struct __find_segment {
|
|
160
|
-
const _Tp& __value_;
|
|
161
|
-
|
|
162
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR __find_segment(const _Tp& __value) : __value_(__value) {}
|
|
163
|
-
|
|
164
|
-
template <class _InputIterator, class _Proj>
|
|
165
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _InputIterator
|
|
166
|
-
operator()(_InputIterator __first, _InputIterator __last, _Proj& __proj) const {
|
|
167
|
-
return std::__find(__first, __last, __value_, __proj);
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
|
|
171
228
|
// public API
|
|
172
229
|
template <class _InputIterator, class _Tp>
|
|
173
230
|
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _InputIterator
|
|
@@ -76,6 +76,111 @@ _LIBCPP_HIDE_FROM_ABI inline _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_Iter1, _Iter1>
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
template <class _AlgPolicy,
|
|
80
|
+
class _Pred,
|
|
81
|
+
class _Iter1,
|
|
82
|
+
class _Sent1,
|
|
83
|
+
class _Iter2,
|
|
84
|
+
class _Sent2,
|
|
85
|
+
class _Proj1,
|
|
86
|
+
class _Proj2>
|
|
87
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 pair<_Iter1, _Iter1> __find_end_impl(
|
|
88
|
+
_Iter1 __first1,
|
|
89
|
+
_Sent1 __sent1,
|
|
90
|
+
_Iter2 __first2,
|
|
91
|
+
_Sent2 __sent2,
|
|
92
|
+
_Pred& __pred,
|
|
93
|
+
_Proj1& __proj1,
|
|
94
|
+
_Proj2& __proj2,
|
|
95
|
+
bidirectional_iterator_tag,
|
|
96
|
+
bidirectional_iterator_tag) {
|
|
97
|
+
auto __last1 = _IterOps<_AlgPolicy>::next(__first1, __sent1);
|
|
98
|
+
auto __last2 = _IterOps<_AlgPolicy>::next(__first2, __sent2);
|
|
99
|
+
// modeled after search algorithm (in reverse)
|
|
100
|
+
if (__first2 == __last2)
|
|
101
|
+
return std::make_pair(__last1, __last1); // Everything matches an empty sequence
|
|
102
|
+
_Iter1 __l1 = __last1;
|
|
103
|
+
_Iter2 __l2 = __last2;
|
|
104
|
+
--__l2;
|
|
105
|
+
while (true) {
|
|
106
|
+
// Find last element in sequence 1 that matches *(__last2-1), with a mininum of loop checks
|
|
107
|
+
while (true) {
|
|
108
|
+
if (__first1 == __l1) // return __last1 if no element matches *__first2
|
|
109
|
+
return std::make_pair(__last1, __last1);
|
|
110
|
+
if (std::__invoke(__pred, std::__invoke(__proj1, *--__l1), std::__invoke(__proj2, *__l2)))
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
// *__l1 matches *__l2, now match elements before here
|
|
114
|
+
_Iter1 __match_last = __l1;
|
|
115
|
+
_Iter1 __m1 = __l1;
|
|
116
|
+
_Iter2 __m2 = __l2;
|
|
117
|
+
while (true) {
|
|
118
|
+
if (__m2 == __first2) // If pattern exhausted, __m1 is the answer (works for 1 element pattern)
|
|
119
|
+
return std::make_pair(__m1, ++__match_last);
|
|
120
|
+
if (__m1 == __first1) // Otherwise if source exhaused, pattern not found
|
|
121
|
+
return std::make_pair(__last1, __last1);
|
|
122
|
+
|
|
123
|
+
// if there is a mismatch, restart with a new __l1
|
|
124
|
+
if (!std::__invoke(__pred, std::__invoke(__proj1, *--__m1), std::__invoke(__proj2, *--__m2))) {
|
|
125
|
+
break;
|
|
126
|
+
} // else there is a match, check next elements
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
template <class _AlgPolicy,
|
|
132
|
+
class _Pred,
|
|
133
|
+
class _Iter1,
|
|
134
|
+
class _Sent1,
|
|
135
|
+
class _Iter2,
|
|
136
|
+
class _Sent2,
|
|
137
|
+
class _Proj1,
|
|
138
|
+
class _Proj2>
|
|
139
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_Iter1, _Iter1> __find_end_impl(
|
|
140
|
+
_Iter1 __first1,
|
|
141
|
+
_Sent1 __sent1,
|
|
142
|
+
_Iter2 __first2,
|
|
143
|
+
_Sent2 __sent2,
|
|
144
|
+
_Pred& __pred,
|
|
145
|
+
_Proj1& __proj1,
|
|
146
|
+
_Proj2& __proj2,
|
|
147
|
+
random_access_iterator_tag,
|
|
148
|
+
random_access_iterator_tag) {
|
|
149
|
+
typedef typename iterator_traits<_Iter1>::difference_type _D1;
|
|
150
|
+
auto __last1 = _IterOps<_AlgPolicy>::next(__first1, __sent1);
|
|
151
|
+
auto __last2 = _IterOps<_AlgPolicy>::next(__first2, __sent2);
|
|
152
|
+
// Take advantage of knowing source and pattern lengths. Stop short when source is smaller than pattern
|
|
153
|
+
auto __len2 = __last2 - __first2;
|
|
154
|
+
if (__len2 == 0)
|
|
155
|
+
return std::make_pair(__last1, __last1);
|
|
156
|
+
auto __len1 = __last1 - __first1;
|
|
157
|
+
if (__len1 < __len2)
|
|
158
|
+
return std::make_pair(__last1, __last1);
|
|
159
|
+
const _Iter1 __s = __first1 + _D1(__len2 - 1); // End of pattern match can't go before here
|
|
160
|
+
_Iter1 __l1 = __last1;
|
|
161
|
+
_Iter2 __l2 = __last2;
|
|
162
|
+
--__l2;
|
|
163
|
+
while (true) {
|
|
164
|
+
while (true) {
|
|
165
|
+
if (__s == __l1)
|
|
166
|
+
return std::make_pair(__last1, __last1);
|
|
167
|
+
if (std::__invoke(__pred, std::__invoke(__proj1, *--__l1), std::__invoke(__proj2, *__l2)))
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
_Iter1 __last_match = __l1;
|
|
171
|
+
_Iter1 __m1 = __l1;
|
|
172
|
+
_Iter2 __m2 = __l2;
|
|
173
|
+
while (true) {
|
|
174
|
+
if (__m2 == __first2)
|
|
175
|
+
return std::make_pair(__m1, ++__last_match);
|
|
176
|
+
// no need to check range on __m1 because __s guarantees we have enough source
|
|
177
|
+
if (!std::__invoke(__pred, std::__invoke(__proj1, *--__m1), std::__invoke(__proj2, *--__m2))) {
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
79
184
|
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>
|
|
80
185
|
[[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _ForwardIterator1 __find_end_classic(
|
|
81
186
|
_ForwardIterator1 __first1,
|
|
@@ -11,45 +11,41 @@
|
|
|
11
11
|
#define _LIBCPP___ALGORITHM_FOR_EACH_H
|
|
12
12
|
|
|
13
13
|
#include <__algorithm/for_each_segment.h>
|
|
14
|
+
#include <__algorithm/specialized_algorithms.h>
|
|
14
15
|
#include <__config>
|
|
15
16
|
#include <__functional/identity.h>
|
|
16
17
|
#include <__iterator/segmented_iterator.h>
|
|
17
|
-
#include <__type_traits/enable_if.h>
|
|
18
18
|
#include <__type_traits/invoke.h>
|
|
19
|
-
#include <
|
|
19
|
+
#include <__type_traits/is_same.h>
|
|
20
20
|
|
|
21
21
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
22
22
|
# pragma GCC system_header
|
|
23
23
|
#endif
|
|
24
24
|
|
|
25
|
-
_LIBCPP_PUSH_MACROS
|
|
26
|
-
#include <__undef_macros>
|
|
27
|
-
|
|
28
25
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
29
26
|
|
|
30
27
|
template <class _InputIterator, class _Sent, class _Func, class _Proj>
|
|
31
28
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _InputIterator
|
|
32
|
-
__for_each(_InputIterator __first, _Sent __last, _Func&
|
|
29
|
+
__for_each(_InputIterator __first, _Sent __last, _Func& __func, _Proj& __proj) {
|
|
30
|
+
#ifndef _LIBCPP_CXX03_LANG
|
|
31
|
+
if constexpr (using _SpecialAlg =
|
|
32
|
+
__specialized_algorithm<_Algorithm::__for_each, __iterator_pair<_InputIterator, _Sent>>;
|
|
33
|
+
_SpecialAlg::__has_algorithm) {
|
|
34
|
+
_SpecialAlg()(__first, __last, __func, __proj);
|
|
35
|
+
return __last;
|
|
36
|
+
} else if constexpr (is_same<_InputIterator, _Sent>::value && __is_segmented_iterator_v<_InputIterator>) {
|
|
37
|
+
using __local_iterator_t = typename __segmented_iterator_traits<_InputIterator>::__local_iterator;
|
|
38
|
+
std::__for_each_segment(__first, __last, [&](__local_iterator_t __lfirst, __local_iterator_t __llast) {
|
|
39
|
+
std::__for_each(__lfirst, __llast, __func, __proj);
|
|
40
|
+
});
|
|
41
|
+
return __last;
|
|
42
|
+
}
|
|
43
|
+
#endif
|
|
33
44
|
for (; __first != __last; ++__first)
|
|
34
|
-
std::__invoke(
|
|
45
|
+
std::__invoke(__func, std::__invoke(__proj, *__first));
|
|
35
46
|
return __first;
|
|
36
47
|
}
|
|
37
48
|
|
|
38
|
-
#ifndef _LIBCPP_CXX03_LANG
|
|
39
|
-
template <class _SegmentedIterator,
|
|
40
|
-
class _Func,
|
|
41
|
-
class _Proj,
|
|
42
|
-
__enable_if_t<__is_segmented_iterator<_SegmentedIterator>::value, int> = 0>
|
|
43
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _SegmentedIterator
|
|
44
|
-
__for_each(_SegmentedIterator __first, _SegmentedIterator __last, _Func& __func, _Proj& __proj) {
|
|
45
|
-
using __local_iterator_t = typename __segmented_iterator_traits<_SegmentedIterator>::__local_iterator;
|
|
46
|
-
std::__for_each_segment(__first, __last, [&](__local_iterator_t __lfirst, __local_iterator_t __llast) {
|
|
47
|
-
std::__for_each(__lfirst, __llast, __func, __proj);
|
|
48
|
-
});
|
|
49
|
-
return __last;
|
|
50
|
-
}
|
|
51
|
-
#endif // !_LIBCPP_CXX03_LANG
|
|
52
|
-
|
|
53
49
|
template <class _InputIterator, class _Func>
|
|
54
50
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _Func
|
|
55
51
|
for_each(_InputIterator __first, _InputIterator __last, _Func __f) {
|
|
@@ -60,6 +56,4 @@ for_each(_InputIterator __first, _InputIterator __last, _Func __f) {
|
|
|
60
56
|
|
|
61
57
|
_LIBCPP_END_NAMESPACE_STD
|
|
62
58
|
|
|
63
|
-
_LIBCPP_POP_MACROS
|
|
64
|
-
|
|
65
59
|
#endif // _LIBCPP___ALGORITHM_FOR_EACH_H
|
|
@@ -16,10 +16,7 @@
|
|
|
16
16
|
#include <__functional/identity.h>
|
|
17
17
|
#include <__iterator/iterator_traits.h>
|
|
18
18
|
#include <__iterator/segmented_iterator.h>
|
|
19
|
-
#include <__type_traits/disjunction.h>
|
|
20
|
-
#include <__type_traits/enable_if.h>
|
|
21
19
|
#include <__type_traits/invoke.h>
|
|
22
|
-
#include <__type_traits/negation.h>
|
|
23
20
|
#include <__utility/convert_to_integral.h>
|
|
24
21
|
#include <__utility/move.h>
|
|
25
22
|
|
|
@@ -32,57 +29,33 @@ _LIBCPP_PUSH_MACROS
|
|
|
32
29
|
|
|
33
30
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
34
31
|
|
|
35
|
-
template <class _InputIterator,
|
|
36
|
-
class _Size,
|
|
37
|
-
class _Func,
|
|
38
|
-
class _Proj,
|
|
39
|
-
__enable_if_t<!__has_random_access_iterator_category<_InputIterator>::value &&
|
|
40
|
-
_Or< _Not<__is_segmented_iterator<_InputIterator> >,
|
|
41
|
-
_Not<__has_random_access_local_iterator<_InputIterator> > >::value,
|
|
42
|
-
int> = 0>
|
|
32
|
+
template <class _InputIterator, class _Size, class _Func, class _Proj>
|
|
43
33
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _InputIterator
|
|
44
34
|
__for_each_n(_InputIterator __first, _Size __orig_n, _Func& __f, _Proj& __proj) {
|
|
45
35
|
typedef decltype(std::__convert_to_integral(__orig_n)) _IntegralSize;
|
|
46
36
|
_IntegralSize __n = __orig_n;
|
|
47
|
-
while (__n > 0) {
|
|
48
|
-
std::__invoke(__f, std::__invoke(__proj, *__first));
|
|
49
|
-
++__first;
|
|
50
|
-
--__n;
|
|
51
|
-
}
|
|
52
|
-
return std::move(__first);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
template <class _RandIter,
|
|
56
|
-
class _Size,
|
|
57
|
-
class _Func,
|
|
58
|
-
class _Proj,
|
|
59
|
-
__enable_if_t<__has_random_access_iterator_category<_RandIter>::value, int> = 0>
|
|
60
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _RandIter
|
|
61
|
-
__for_each_n(_RandIter __first, _Size __orig_n, _Func& __f, _Proj& __proj) {
|
|
62
|
-
typename std::iterator_traits<_RandIter>::difference_type __n = __orig_n;
|
|
63
|
-
auto __last = __first + __n;
|
|
64
|
-
std::__for_each(__first, __last, __f, __proj);
|
|
65
|
-
return __last;
|
|
66
|
-
}
|
|
67
37
|
|
|
68
38
|
#ifndef _LIBCPP_CXX03_LANG
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
39
|
+
if constexpr (__is_segmented_iterator_v<_InputIterator>) {
|
|
40
|
+
using __local_iterator = typename __segmented_iterator_traits<_InputIterator>::__local_iterator;
|
|
41
|
+
if constexpr (__has_random_access_iterator_category<__local_iterator>::value) {
|
|
42
|
+
return std::__for_each_n_segment(__first, __orig_n, [&](__local_iterator __lfirst, __local_iterator __llast) {
|
|
43
|
+
std::__for_each(__lfirst, __llast, __f, __proj);
|
|
44
|
+
});
|
|
45
|
+
} else {
|
|
46
|
+
return std::__for_each(__first, __first + __n, __f, __proj);
|
|
47
|
+
}
|
|
48
|
+
} else
|
|
49
|
+
#endif
|
|
50
|
+
{
|
|
51
|
+
while (__n > 0) {
|
|
52
|
+
std::__invoke(__f, std::__invoke(__proj, *__first));
|
|
53
|
+
++__first;
|
|
54
|
+
--__n;
|
|
55
|
+
}
|
|
56
|
+
return std::move(__first);
|
|
57
|
+
}
|
|
84
58
|
}
|
|
85
|
-
#endif // !_LIBCPP_CXX03_LANG
|
|
86
59
|
|
|
87
60
|
#if _LIBCPP_STD_VER >= 17
|
|
88
61
|
|
|
@@ -27,7 +27,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
|
|
27
27
|
template <class _SegmentedIterator, class _Size, class _Functor>
|
|
28
28
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _SegmentedIterator
|
|
29
29
|
__for_each_n_segment(_SegmentedIterator __first, _Size __orig_n, _Functor __func) {
|
|
30
|
-
static_assert(
|
|
30
|
+
static_assert(__is_segmented_iterator_v<_SegmentedIterator> &&
|
|
31
31
|
__has_random_access_iterator_category<
|
|
32
32
|
typename __segmented_iterator_traits<_SegmentedIterator>::__local_iterator>::value,
|
|
33
33
|
"__for_each_n_segment only works with segmented iterators with random-access local iterators");
|
|
@@ -48,6 +48,32 @@ __for_each_segment(_SegmentedIterator __first, _SegmentedIterator __last, _Funct
|
|
|
48
48
|
__func(_Traits::__begin(__sfirst), _Traits::__local(__last));
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
template <class _SegmentedIterator, class _Functor>
|
|
52
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void
|
|
53
|
+
__for_each_segment_backward(_SegmentedIterator __first, _SegmentedIterator __last, _Functor __func) {
|
|
54
|
+
using _Traits = __segmented_iterator_traits<_SegmentedIterator>;
|
|
55
|
+
|
|
56
|
+
auto __sfirst = _Traits::__segment(__first);
|
|
57
|
+
auto __slast = _Traits::__segment(__last);
|
|
58
|
+
|
|
59
|
+
// We are in a single segment, so we might not be at the beginning or end
|
|
60
|
+
if (__sfirst == __slast) {
|
|
61
|
+
__func(_Traits::__local(__first), _Traits::__local(__last));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// We have more than one segment. Iterate over the last segment, since we might not start at the end
|
|
66
|
+
__func(_Traits::__begin(__slast), _Traits::__local(__last));
|
|
67
|
+
--__slast;
|
|
68
|
+
// iterate over the segments which are guaranteed to be completely in the range
|
|
69
|
+
while (__sfirst != __slast) {
|
|
70
|
+
__func(_Traits::__begin(__slast), _Traits::__end(__slast));
|
|
71
|
+
--__slast;
|
|
72
|
+
}
|
|
73
|
+
// iterate over the first segment
|
|
74
|
+
__func(_Traits::__local(__first), _Traits::__end(__slast));
|
|
75
|
+
}
|
|
76
|
+
|
|
51
77
|
_LIBCPP_END_NAMESPACE_STD
|
|
52
78
|
|
|
53
79
|
#endif // _LIBCPP___ALGORITHM_FOR_EACH_SEGMENT_H
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
#ifndef _LIBCPP___ALGORITHM_GENERATE_H
|
|
10
10
|
#define _LIBCPP___ALGORITHM_GENERATE_H
|
|
11
11
|
|
|
12
|
+
#include <__algorithm/for_each.h>
|
|
12
13
|
#include <__config>
|
|
14
|
+
#include <__utility/forward.h>
|
|
13
15
|
|
|
14
16
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
15
17
|
# pragma GCC system_header
|
|
@@ -20,8 +22,8 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
|
|
20
22
|
template <class _ForwardIterator, class _Generator>
|
|
21
23
|
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
|
|
22
24
|
generate(_ForwardIterator __first, _ForwardIterator __last, _Generator __gen) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
using __iter_ref = decltype(*__first);
|
|
26
|
+
std::for_each(__first, __last, [&](__iter_ref __element) { std::forward<__iter_ref>(__element) = __gen(); });
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
_LIBCPP_END_NAMESPACE_STD
|
|
@@ -9,25 +9,38 @@
|
|
|
9
9
|
#ifndef _LIBCPP___ALGORITHM_GENERATE_N_H
|
|
10
10
|
#define _LIBCPP___ALGORITHM_GENERATE_N_H
|
|
11
11
|
|
|
12
|
+
#include <__algorithm/for_each_n.h>
|
|
12
13
|
#include <__config>
|
|
13
|
-
#include <
|
|
14
|
+
#include <__functional/identity.h>
|
|
15
|
+
#include <__utility/forward.h>
|
|
16
|
+
#include <__utility/move.h>
|
|
14
17
|
|
|
15
18
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
16
19
|
# pragma GCC system_header
|
|
17
20
|
#endif
|
|
18
21
|
|
|
22
|
+
_LIBCPP_PUSH_MACROS
|
|
23
|
+
#include <__undef_macros>
|
|
24
|
+
|
|
19
25
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
20
26
|
|
|
27
|
+
template <class _OutputIterator, class _Size, class _Generator>
|
|
28
|
+
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _OutputIterator
|
|
29
|
+
__generate_n(_OutputIterator __first, _Size __orig_n, _Generator& __gen) {
|
|
30
|
+
using __iter_ref = decltype(*__first);
|
|
31
|
+
__identity __proj;
|
|
32
|
+
auto __f = [&](__iter_ref __element) { std::forward<__iter_ref>(__element) = __gen(); };
|
|
33
|
+
return std::__for_each_n(std::move(__first), __orig_n, __f, __proj);
|
|
34
|
+
}
|
|
35
|
+
|
|
21
36
|
template <class _OutputIterator, class _Size, class _Generator>
|
|
22
37
|
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _OutputIterator
|
|
23
38
|
generate_n(_OutputIterator __first, _Size __orig_n, _Generator __gen) {
|
|
24
|
-
|
|
25
|
-
_IntegralSize __n = __orig_n;
|
|
26
|
-
for (; __n > 0; ++__first, (void)--__n)
|
|
27
|
-
*__first = __gen();
|
|
28
|
-
return __first;
|
|
39
|
+
return std::__generate_n(std::move(__first), __orig_n, __gen);
|
|
29
40
|
}
|
|
30
41
|
|
|
31
42
|
_LIBCPP_END_NAMESPACE_STD
|
|
32
43
|
|
|
44
|
+
_LIBCPP_POP_MACROS
|
|
45
|
+
|
|
33
46
|
#endif // _LIBCPP___ALGORITHM_GENERATE_N_H
|
|
@@ -78,7 +78,7 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool __is_permutation_impl(
|
|
|
78
78
|
_Pred&& __pred,
|
|
79
79
|
_Proj1&& __proj1,
|
|
80
80
|
_Proj2&& __proj2) {
|
|
81
|
-
using _D1 =
|
|
81
|
+
using _D1 = __iterator_difference_type<_Iter1>;
|
|
82
82
|
|
|
83
83
|
for (auto __i = __first1; __i != __last1; ++__i) {
|
|
84
84
|
// Have we already counted the number of *__i in [f1, l1)?
|
|
@@ -126,7 +126,7 @@ template <class _AlgPolicy, class _ForwardIterator1, class _Sentinel1, class _Fo
|
|
|
126
126
|
return true;
|
|
127
127
|
|
|
128
128
|
// __first1 != __last1 && *__first1 != *__first2
|
|
129
|
-
using _D1 =
|
|
129
|
+
using _D1 = __iterator_difference_type<_ForwardIterator1>;
|
|
130
130
|
_D1 __l1 = _IterOps<_AlgPolicy>::distance(__first1, __last1);
|
|
131
131
|
if (__l1 == _D1(1))
|
|
132
132
|
return false;
|
|
@@ -173,10 +173,10 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool __is_permutation(
|
|
|
173
173
|
if (__first2 == __last2) // Second range is shorter
|
|
174
174
|
return false;
|
|
175
175
|
|
|
176
|
-
using _D1 =
|
|
176
|
+
using _D1 = __iterator_difference_type<_Iter1>;
|
|
177
177
|
_D1 __l1 = _IterOps<_AlgPolicy>::distance(__first1, __last1);
|
|
178
178
|
|
|
179
|
-
using _D2 =
|
|
179
|
+
using _D2 = __iterator_difference_type<_Iter2>;
|
|
180
180
|
_D2 __l2 = _IterOps<_AlgPolicy>::distance(__first2, __last2);
|
|
181
181
|
if (__l1 != __l2)
|
|
182
182
|
return false;
|
|
@@ -219,6 +219,9 @@ private:
|
|
|
219
219
|
template <class _AlgPolicy, class _Iter>
|
|
220
220
|
using __policy_iter_diff_t _LIBCPP_NODEBUG = typename _IterOps<_AlgPolicy>::template __difference_type<_Iter>;
|
|
221
221
|
|
|
222
|
+
template <class _AlgPolicy, class _Iter>
|
|
223
|
+
using __policy_value_type _LIBCPP_NODEBUG = typename _IterOps<_AlgPolicy>::template __value_type<_Iter>;
|
|
224
|
+
|
|
222
225
|
_LIBCPP_END_NAMESPACE_STD
|
|
223
226
|
|
|
224
227
|
_LIBCPP_POP_MACROS
|
|
@@ -66,8 +66,8 @@ template <class _Tp,
|
|
|
66
66
|
class _Proj2,
|
|
67
67
|
class _Comp,
|
|
68
68
|
__enable_if_t<__desugars_to_v<__totally_ordered_less_tag, _Comp, _Tp, _Tp> && !is_volatile<_Tp>::value &&
|
|
69
|
-
|
|
70
|
-
__is_identity<
|
|
69
|
+
__is_trivially_equality_comparable_v<_Tp, _Tp> && __is_identity<_Proj1>::value &&
|
|
70
|
+
__is_identity<_Proj2>::value,
|
|
71
71
|
int> = 0>
|
|
72
72
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 bool
|
|
73
73
|
__lexicographical_compare(_Tp* __first1, _Tp* __last1, _Tp* __first2, _Tp* __last2, _Comp&, _Proj1&, _Proj2&) {
|
|
@@ -37,13 +37,13 @@ template <class _InputIterator1, class _InputIterator2, class _Cmp>
|
|
|
37
37
|
_LIBCPP_HIDE_FROM_ABI constexpr auto __lexicographical_compare_three_way_fast_path(
|
|
38
38
|
_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Cmp& __comp)
|
|
39
39
|
-> decltype(__comp(*__first1, *__first2)) {
|
|
40
|
-
static_assert(
|
|
41
|
-
|
|
42
|
-
static_assert(
|
|
43
|
-
|
|
40
|
+
static_assert(signed_integral<__iterator_difference_type<_InputIterator1>>,
|
|
41
|
+
"Using a non-integral difference_type is undefined behavior.");
|
|
42
|
+
static_assert(signed_integral<__iterator_difference_type<_InputIterator2>>,
|
|
43
|
+
"Using a non-integral difference_type is undefined behavior.");
|
|
44
44
|
|
|
45
|
-
using _Len1 =
|
|
46
|
-
using _Len2 =
|
|
45
|
+
using _Len1 = __iterator_difference_type<_InputIterator1>;
|
|
46
|
+
using _Len2 = __iterator_difference_type<_InputIterator2>;
|
|
47
47
|
using _Common = common_type_t<_Len1, _Len2>;
|
|
48
48
|
|
|
49
49
|
_Len1 __len1 = __last1 - __first1;
|