@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
|
@@ -57,15 +57,11 @@
|
|
|
57
57
|
// float __strtof(const char*, char**, __locale_t);
|
|
58
58
|
// double __strtod(const char*, char**, __locale_t);
|
|
59
59
|
// long double __strtold(const char*, char**, __locale_t);
|
|
60
|
-
// long long __strtoll(const char*, char**, __locale_t);
|
|
61
|
-
// unsigned long long __strtoull(const char*, char**, __locale_t);
|
|
62
60
|
// }
|
|
63
61
|
//
|
|
64
62
|
// Character manipulation functions
|
|
65
63
|
// --------------------------------
|
|
66
64
|
// namespace __locale {
|
|
67
|
-
// int __isdigit(int, __locale_t); // required by the headers
|
|
68
|
-
// int __isxdigit(int, __locale_t); // required by the headers
|
|
69
65
|
// int __toupper(int, __locale_t);
|
|
70
66
|
// int __tolower(int, __locale_t);
|
|
71
67
|
// int __strcoll(const char*, const char*, __locale_t);
|
|
@@ -106,7 +102,6 @@
|
|
|
106
102
|
//
|
|
107
103
|
// int __snprintf(char*, size_t, __locale_t, const char*, ...); // required by the headers
|
|
108
104
|
// int __asprintf(char**, __locale_t, const char*, ...); // required by the headers
|
|
109
|
-
// int __sscanf(const char*, __locale_t, const char*, ...); // required by the headers
|
|
110
105
|
// }
|
|
111
106
|
|
|
112
107
|
#if _LIBCPP_HAS_LOCALIZATION
|
|
@@ -115,7 +110,6 @@
|
|
|
115
110
|
# include <__locale_dir/support/apple.h>
|
|
116
111
|
# elif defined(__FreeBSD__)
|
|
117
112
|
# include <__locale_dir/support/freebsd.h>
|
|
118
|
-
/* zig patch: https://github.com/llvm/llvm-project/pull/143055 */
|
|
119
113
|
# elif defined(__NetBSD__)
|
|
120
114
|
# include <__locale_dir/support/netbsd.h>
|
|
121
115
|
# elif defined(_LIBCPP_MSVCRT_LIKE)
|
|
@@ -124,20 +118,20 @@
|
|
|
124
118
|
# include <__locale_dir/support/fuchsia.h>
|
|
125
119
|
# elif defined(__linux__)
|
|
126
120
|
# include <__locale_dir/support/linux.h>
|
|
121
|
+
# elif _LIBCPP_LIBC_NEWLIB
|
|
122
|
+
# include <__locale_dir/support/newlib.h>
|
|
123
|
+
# elif defined(_AIX)
|
|
124
|
+
# include <__locale_dir/support/aix.h>
|
|
127
125
|
# else
|
|
128
126
|
|
|
129
127
|
// TODO: This is a temporary definition to bridge between the old way we defined the locale base API
|
|
130
128
|
// (by providing global non-reserved names) and the new API. As we move individual platforms
|
|
131
129
|
// towards the new way of defining the locale base API, this should disappear since each platform
|
|
132
130
|
// will define those directly.
|
|
133
|
-
# if defined(
|
|
131
|
+
# if defined(__MVS__)
|
|
134
132
|
# include <__locale_dir/locale_base_api/ibm.h>
|
|
135
|
-
# elif defined(__ANDROID__)
|
|
136
|
-
# include <__locale_dir/locale_base_api/android.h>
|
|
137
133
|
# elif defined(__OpenBSD__)
|
|
138
134
|
# include <__locale_dir/locale_base_api/openbsd.h>
|
|
139
|
-
# elif defined(__wasi__) || _LIBCPP_HAS_MUSL_LIBC
|
|
140
|
-
# include <__locale_dir/locale_base_api/musl.h>
|
|
141
135
|
# endif
|
|
142
136
|
|
|
143
137
|
# include <__locale_dir/locale_base_api/bsd_locale_fallbacks.h>
|
|
@@ -197,21 +191,9 @@ inline _LIBCPP_HIDE_FROM_ABI long double __strtold(const char* __nptr, char** __
|
|
|
197
191
|
return strtold_l(__nptr, __endptr, __loc);
|
|
198
192
|
}
|
|
199
193
|
|
|
200
|
-
inline _LIBCPP_HIDE_FROM_ABI long long __strtoll(const char* __nptr, char** __endptr, int __base, __locale_t __loc) {
|
|
201
|
-
return strtoll_l(__nptr, __endptr, __base, __loc);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
inline _LIBCPP_HIDE_FROM_ABI unsigned long long
|
|
205
|
-
__strtoull(const char* __nptr, char** __endptr, int __base, __locale_t __loc) {
|
|
206
|
-
return strtoull_l(__nptr, __endptr, __base, __loc);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
194
|
//
|
|
210
195
|
// Character manipulation functions
|
|
211
196
|
//
|
|
212
|
-
inline _LIBCPP_HIDE_FROM_ABI int __isdigit(int __ch, __locale_t __loc) { return isdigit_l(__ch, __loc); }
|
|
213
|
-
inline _LIBCPP_HIDE_FROM_ABI int __isxdigit(int __ch, __locale_t __loc) { return isxdigit_l(__ch, __loc); }
|
|
214
|
-
|
|
215
197
|
# if defined(_LIBCPP_BUILDING_LIBRARY)
|
|
216
198
|
inline _LIBCPP_HIDE_FROM_ABI int __strcoll(const char* __s1, const char* __s2, __locale_t __loc) {
|
|
217
199
|
return strcoll_l(__s1, __s2, __loc);
|
|
@@ -307,11 +289,6 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT(__printf__, 3, 4) int __
|
|
|
307
289
|
char** __s, __locale_t __loc, const char* __format, _Args&&... __args) {
|
|
308
290
|
return std::__libcpp_asprintf_l(__s, __loc, __format, std::forward<_Args>(__args)...);
|
|
309
291
|
}
|
|
310
|
-
template <class... _Args>
|
|
311
|
-
_LIBCPP_HIDE_FROM_ABI _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT(__scanf__, 3, 4) int __sscanf(
|
|
312
|
-
const char* __s, __locale_t __loc, const char* __format, _Args&&... __args) {
|
|
313
|
-
return std::__libcpp_sscanf_l(__s, __loc, __format, std::forward<_Args>(__args)...);
|
|
314
|
-
}
|
|
315
292
|
_LIBCPP_DIAGNOSTIC_POP
|
|
316
293
|
# undef _LIBCPP_VARIADIC_ATTRIBUTE_FORMAT
|
|
317
294
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
# if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
|
|
24
24
|
// Most unix variants have catopen. These are the specific ones that don't.
|
|
25
|
-
# if !defined(__BIONIC__) && !
|
|
25
|
+
# if !defined(__BIONIC__) && !_LIBCPP_LIBC_NEWLIB && !defined(__EMSCRIPTEN__)
|
|
26
26
|
# define _LIBCPP_HAS_CATOPEN 1
|
|
27
27
|
# include <nl_types.h>
|
|
28
28
|
# else
|
|
@@ -433,7 +433,7 @@ bool money_get<_CharT, _InputIterator>::__do_get(
|
|
|
433
433
|
__err |= ios_base::failbit;
|
|
434
434
|
return false;
|
|
435
435
|
}
|
|
436
|
-
for (++__b; __fd > 0; --__fd, ++__b) {
|
|
436
|
+
for (++__b; __fd > 0; --__fd, (void)++__b) {
|
|
437
437
|
if (__b == __e || !__ct.is(ctype_base::digit, *__b)) {
|
|
438
438
|
__err |= ios_base::failbit;
|
|
439
439
|
return false;
|
|
@@ -451,7 +451,7 @@ bool money_get<_CharT, _InputIterator>::__do_get(
|
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
453
|
if (__trailing_sign) {
|
|
454
|
-
for (unsigned __i = 1; __i < __trailing_sign->size(); ++__i, ++__b) {
|
|
454
|
+
for (unsigned __i = 1; __i < __trailing_sign->size(); ++__i, (void)++__b) {
|
|
455
455
|
if (__b == __e || *__b != (*__trailing_sign)[__i]) {
|
|
456
456
|
__err |= ios_base::failbit;
|
|
457
457
|
return false;
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
#ifndef _LIBCPP___LOCALE_DIR_NUM_H
|
|
10
10
|
#define _LIBCPP___LOCALE_DIR_NUM_H
|
|
11
11
|
|
|
12
|
+
#include <__algorithm/copy.h>
|
|
12
13
|
#include <__algorithm/find.h>
|
|
13
14
|
#include <__algorithm/reverse.h>
|
|
15
|
+
#include <__algorithm/simd_utils.h>
|
|
14
16
|
#include <__charconv/to_chars_integral.h>
|
|
15
17
|
#include <__charconv/traits.h>
|
|
16
18
|
#include <__config>
|
|
@@ -22,6 +24,7 @@
|
|
|
22
24
|
#include <__locale_dir/scan_keyword.h>
|
|
23
25
|
#include <__memory/unique_ptr.h>
|
|
24
26
|
#include <__system_error/errc.h>
|
|
27
|
+
#include <__type_traits/is_signed.h>
|
|
25
28
|
#include <cerrno>
|
|
26
29
|
#include <ios>
|
|
27
30
|
#include <streambuf>
|
|
@@ -46,9 +49,9 @@ struct _LIBCPP_EXPORTED_FROM_ABI __num_get_base {
|
|
|
46
49
|
static int __get_base(ios_base&);
|
|
47
50
|
static const char __src[33]; // "0123456789abcdefABCDEFxX+-pPiInN"
|
|
48
51
|
// count of leading characters in __src used for parsing integers ("012..X+-")
|
|
49
|
-
static const size_t __int_chr_cnt = 26;
|
|
52
|
+
static inline const size_t __int_chr_cnt = 26;
|
|
50
53
|
// count of leading characters in __src used for parsing floating-point values ("012..-pP")
|
|
51
|
-
static const size_t __fp_chr_cnt = 28;
|
|
54
|
+
static inline const size_t __fp_chr_cnt = 28;
|
|
52
55
|
};
|
|
53
56
|
|
|
54
57
|
template <class _CharT>
|
|
@@ -71,7 +74,8 @@ struct __num_get : protected __num_get_base {
|
|
|
71
74
|
|
|
72
75
|
[[__deprecated__("This exists only for ABI compatibility")]] static string
|
|
73
76
|
__stage2_int_prep(ios_base& __iob, _CharT* __atoms, _CharT& __thousands_sep);
|
|
74
|
-
|
|
77
|
+
|
|
78
|
+
[[__deprecated__("This exists only for ABI compatibility")]] static int __stage2_int_loop(
|
|
75
79
|
_CharT __ct,
|
|
76
80
|
int __base,
|
|
77
81
|
char* __a,
|
|
@@ -83,11 +87,24 @@ struct __num_get : protected __num_get_base {
|
|
|
83
87
|
unsigned*& __g_end,
|
|
84
88
|
_CharT* __atoms);
|
|
85
89
|
|
|
86
|
-
_LIBCPP_HIDE_FROM_ABI static
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
_LIBCPP_HIDE_FROM_ABI static ptrdiff_t __atoms_offset(const _CharT* __atoms, _CharT __val) {
|
|
91
|
+
// TODO: Remove the manual vectorization once https://llvm.org/PR168551 is resolved
|
|
92
|
+
# if _LIBCPP_HAS_ALGORITHM_VECTOR_UTILS
|
|
93
|
+
if constexpr (is_same<_CharT, char>::value) {
|
|
94
|
+
// TODO(LLVM 24): This can be removed, since -Wpsabi doesn't warn on [[gnu::always_inline]] functions anymore.
|
|
95
|
+
_LIBCPP_DIAGNOSTIC_PUSH
|
|
96
|
+
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wpsabi")
|
|
97
|
+
using __vec = __simd_vector<char, 32>;
|
|
98
|
+
__vec __chars = std::__broadcast<__vec>(__val);
|
|
99
|
+
__vec __cmp = std::__partial_load<__vec, __int_chr_cnt>(__atoms);
|
|
100
|
+
auto __res = __chars == __cmp;
|
|
101
|
+
if (std::__none_of(__res))
|
|
102
|
+
return __int_chr_cnt;
|
|
103
|
+
return std::min(__int_chr_cnt, std::__find_first_set(__res));
|
|
104
|
+
_LIBCPP_DIAGNOSTIC_POP
|
|
105
|
+
}
|
|
106
|
+
# endif
|
|
107
|
+
return std::find(__atoms, __atoms + __int_chr_cnt, __val) - __atoms;
|
|
91
108
|
}
|
|
92
109
|
|
|
93
110
|
_LIBCPP_HIDE_FROM_ABI const _CharT* __do_widen(ios_base& __iob, _CharT* __atoms) const {
|
|
@@ -120,54 +137,6 @@ string __num_get<_CharT>::__stage2_float_prep(
|
|
|
120
137
|
return __np.grouping();
|
|
121
138
|
}
|
|
122
139
|
|
|
123
|
-
template <class _CharT>
|
|
124
|
-
int __num_get<_CharT>::__stage2_int_loop(
|
|
125
|
-
_CharT __ct,
|
|
126
|
-
int __base,
|
|
127
|
-
char* __a,
|
|
128
|
-
char*& __a_end,
|
|
129
|
-
unsigned& __dc,
|
|
130
|
-
_CharT __thousands_sep,
|
|
131
|
-
const string& __grouping,
|
|
132
|
-
unsigned* __g,
|
|
133
|
-
unsigned*& __g_end,
|
|
134
|
-
_CharT* __atoms) {
|
|
135
|
-
if (__a_end == __a && (__ct == __atoms[24] || __ct == __atoms[25])) {
|
|
136
|
-
*__a_end++ = __ct == __atoms[24] ? '+' : '-';
|
|
137
|
-
__dc = 0;
|
|
138
|
-
return 0;
|
|
139
|
-
}
|
|
140
|
-
if (__grouping.size() != 0 && __ct == __thousands_sep) {
|
|
141
|
-
if (__g_end - __g < __num_get_buf_sz) {
|
|
142
|
-
*__g_end++ = __dc;
|
|
143
|
-
__dc = 0;
|
|
144
|
-
}
|
|
145
|
-
return 0;
|
|
146
|
-
}
|
|
147
|
-
ptrdiff_t __f = std::find(__atoms, __atoms + __int_chr_cnt, __ct) - __atoms;
|
|
148
|
-
if (__f >= 24)
|
|
149
|
-
return -1;
|
|
150
|
-
switch (__base) {
|
|
151
|
-
case 8:
|
|
152
|
-
case 10:
|
|
153
|
-
if (__f >= __base)
|
|
154
|
-
return -1;
|
|
155
|
-
break;
|
|
156
|
-
case 16:
|
|
157
|
-
if (__f < 22)
|
|
158
|
-
break;
|
|
159
|
-
if (__a_end != __a && __a_end - __a <= 2 && __a_end[-1] == '0') {
|
|
160
|
-
__dc = 0;
|
|
161
|
-
*__a_end++ = __src[__f];
|
|
162
|
-
return 0;
|
|
163
|
-
}
|
|
164
|
-
return -1;
|
|
165
|
-
}
|
|
166
|
-
*__a_end++ = __src[__f];
|
|
167
|
-
++__dc;
|
|
168
|
-
return 0;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
140
|
template <class _CharT>
|
|
172
141
|
int __num_get<_CharT>::__stage2_float_loop(
|
|
173
142
|
_CharT __ct,
|
|
@@ -272,65 +241,6 @@ _LIBCPP_HIDE_FROM_ABI _Tp __num_get_float(const char* __a, const char* __a_end,
|
|
|
272
241
|
return 0;
|
|
273
242
|
}
|
|
274
243
|
|
|
275
|
-
template <class _Tp>
|
|
276
|
-
_LIBCPP_HIDE_FROM_ABI _Tp
|
|
277
|
-
__num_get_signed_integral(const char* __a, const char* __a_end, ios_base::iostate& __err, int __base) {
|
|
278
|
-
if (__a != __a_end) {
|
|
279
|
-
__libcpp_remove_reference_t<decltype(errno)> __save_errno = errno;
|
|
280
|
-
errno = 0;
|
|
281
|
-
char* __p2;
|
|
282
|
-
long long __ll = __locale::__strtoll(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);
|
|
283
|
-
__libcpp_remove_reference_t<decltype(errno)> __current_errno = errno;
|
|
284
|
-
if (__current_errno == 0)
|
|
285
|
-
errno = __save_errno;
|
|
286
|
-
if (__p2 != __a_end) {
|
|
287
|
-
__err = ios_base::failbit;
|
|
288
|
-
return 0;
|
|
289
|
-
} else if (__current_errno == ERANGE || __ll < numeric_limits<_Tp>::min() || numeric_limits<_Tp>::max() < __ll) {
|
|
290
|
-
__err = ios_base::failbit;
|
|
291
|
-
if (__ll > 0)
|
|
292
|
-
return numeric_limits<_Tp>::max();
|
|
293
|
-
else
|
|
294
|
-
return numeric_limits<_Tp>::min();
|
|
295
|
-
}
|
|
296
|
-
return static_cast<_Tp>(__ll);
|
|
297
|
-
}
|
|
298
|
-
__err = ios_base::failbit;
|
|
299
|
-
return 0;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
template <class _Tp>
|
|
303
|
-
_LIBCPP_HIDE_FROM_ABI _Tp
|
|
304
|
-
__num_get_unsigned_integral(const char* __a, const char* __a_end, ios_base::iostate& __err, int __base) {
|
|
305
|
-
if (__a != __a_end) {
|
|
306
|
-
const bool __negate = *__a == '-';
|
|
307
|
-
if (__negate && ++__a == __a_end) {
|
|
308
|
-
__err = ios_base::failbit;
|
|
309
|
-
return 0;
|
|
310
|
-
}
|
|
311
|
-
__libcpp_remove_reference_t<decltype(errno)> __save_errno = errno;
|
|
312
|
-
errno = 0;
|
|
313
|
-
char* __p2;
|
|
314
|
-
unsigned long long __ll = __locale::__strtoull(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);
|
|
315
|
-
__libcpp_remove_reference_t<decltype(errno)> __current_errno = errno;
|
|
316
|
-
if (__current_errno == 0)
|
|
317
|
-
errno = __save_errno;
|
|
318
|
-
if (__p2 != __a_end) {
|
|
319
|
-
__err = ios_base::failbit;
|
|
320
|
-
return 0;
|
|
321
|
-
} else if (__current_errno == ERANGE || numeric_limits<_Tp>::max() < __ll) {
|
|
322
|
-
__err = ios_base::failbit;
|
|
323
|
-
return numeric_limits<_Tp>::max();
|
|
324
|
-
}
|
|
325
|
-
_Tp __res = static_cast<_Tp>(__ll);
|
|
326
|
-
if (__negate)
|
|
327
|
-
__res = -__res;
|
|
328
|
-
return __res;
|
|
329
|
-
}
|
|
330
|
-
__err = ios_base::failbit;
|
|
331
|
-
return 0;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
244
|
template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
|
|
335
245
|
class num_get : public locale::facet, private __num_get<_CharT> {
|
|
336
246
|
public:
|
|
@@ -468,137 +378,196 @@ protected:
|
|
|
468
378
|
return __b;
|
|
469
379
|
}
|
|
470
380
|
|
|
471
|
-
template <class
|
|
472
|
-
|
|
473
|
-
|
|
381
|
+
template <class _MaybeSigned>
|
|
382
|
+
iter_type __do_get_integral(
|
|
383
|
+
iter_type __first, iter_type __last, ios_base& __iob, ios_base::iostate& __err, _MaybeSigned& __v) const {
|
|
384
|
+
using _Unsigned = __make_unsigned_t<_MaybeSigned>;
|
|
385
|
+
|
|
474
386
|
// Stage 1
|
|
475
387
|
int __base = this->__get_base(__iob);
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
388
|
+
|
|
389
|
+
// Stages 2 & 3
|
|
390
|
+
// These are combined into a single step where we parse the characters and calculate the value in one go instead of
|
|
391
|
+
// storing the relevant characters first (in an allocated buffer) and parse the characters after we extracted them.
|
|
392
|
+
// This makes the whole process significantly faster, since we avoid potential allocations and copies.
|
|
393
|
+
|
|
394
|
+
const auto& __numpunct = use_facet<numpunct<_CharT> >(__iob.getloc());
|
|
395
|
+
char_type __thousands_sep = __numpunct.thousands_sep();
|
|
396
|
+
string __grouping = __numpunct.grouping();
|
|
397
|
+
|
|
398
|
+
char_type __atoms_buffer[__num_get_base::__int_chr_cnt];
|
|
399
|
+
const char_type* __atoms = this->__do_widen(__iob, __atoms_buffer);
|
|
486
400
|
unsigned __g[__num_get_base::__num_get_buf_sz];
|
|
487
401
|
unsigned* __g_end = __g;
|
|
488
402
|
unsigned __dc = 0;
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
403
|
+
|
|
404
|
+
if (__first == __last) {
|
|
405
|
+
__err |= ios_base::eofbit | ios_base::failbit;
|
|
406
|
+
__v = 0;
|
|
407
|
+
return __first;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
while (!__grouping.empty() && *__first == __thousands_sep) {
|
|
411
|
+
++__first;
|
|
412
|
+
if (__g_end - __g < this->__num_get_buf_sz)
|
|
413
|
+
*__g_end++ = 0;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
bool __negate = false;
|
|
417
|
+
// __c == '+' || __c == '-'
|
|
418
|
+
if (auto __c = *__first; __c == __atoms[24] || __c == __atoms[25]) {
|
|
419
|
+
__negate = __c == __atoms[25];
|
|
420
|
+
++__first;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
if (__first == __last) {
|
|
424
|
+
__err |= ios_base::eofbit | ios_base::failbit;
|
|
425
|
+
__v = 0;
|
|
426
|
+
return __first;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
bool __parsed_num = false;
|
|
430
|
+
|
|
431
|
+
// If we don't have a pre-set base, figure it out and swallow any prefix
|
|
432
|
+
if (__base == 0) {
|
|
433
|
+
auto __c = *__first;
|
|
434
|
+
// __c == '0'
|
|
435
|
+
if (__c == __atoms[0]) {
|
|
436
|
+
++__first;
|
|
437
|
+
if (__first == __last) {
|
|
438
|
+
__err |= ios_base::eofbit;
|
|
439
|
+
__v = 0;
|
|
440
|
+
return __first;
|
|
441
|
+
}
|
|
442
|
+
// __c2 == 'x' || __c2 == 'X'
|
|
443
|
+
if (auto __c2 = *__first; __c2 == __atoms[22] || __c2 == __atoms[23]) {
|
|
444
|
+
__base = 16;
|
|
445
|
+
++__first;
|
|
446
|
+
} else {
|
|
447
|
+
__base = 8;
|
|
448
|
+
__parsed_num = true; // We only swallowed '0', so we've started to parse a number
|
|
449
|
+
}
|
|
450
|
+
} else {
|
|
451
|
+
__base = 10;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
// If the base has been specified explicitly, try to swallow the appropriate prefix. We only need to do something
|
|
455
|
+
// special for hex, since decimal has no prefix and octal's prefix is '0', which doesn't change the value that
|
|
456
|
+
// we'll parse if we don't swallow it.
|
|
457
|
+
} else if (__base == 16) {
|
|
458
|
+
// Try to swallow '0x'
|
|
459
|
+
|
|
460
|
+
// *__first == '0'
|
|
461
|
+
if (*__first == __atoms[0]) {
|
|
462
|
+
++__first;
|
|
463
|
+
if (__first == __last) {
|
|
464
|
+
__err |= ios_base::eofbit;
|
|
465
|
+
__v = 0;
|
|
466
|
+
return __first;
|
|
467
|
+
}
|
|
468
|
+
// __c == 'x' || __c == 'X'
|
|
469
|
+
if (auto __c = *__first; __c == __atoms[22] || __c == __atoms[23])
|
|
470
|
+
++__first;
|
|
471
|
+
else
|
|
472
|
+
__parsed_num = true; // We only swallowed '0', so we've started to parse a number
|
|
496
473
|
}
|
|
497
|
-
if (this->__stage2_int_loop(
|
|
498
|
-
*__b,
|
|
499
|
-
__base,
|
|
500
|
-
__a,
|
|
501
|
-
__a_end,
|
|
502
|
-
__dc,
|
|
503
|
-
__thousands_sep,
|
|
504
|
-
__grouping,
|
|
505
|
-
__g,
|
|
506
|
-
__g_end,
|
|
507
|
-
const_cast<char_type*>(__atoms)))
|
|
508
|
-
break;
|
|
509
474
|
}
|
|
510
|
-
if (__grouping.size() != 0 && __g_end - __g < __num_get_base::__num_get_buf_sz)
|
|
511
|
-
*__g_end++ = __dc;
|
|
512
|
-
// Stage 3
|
|
513
|
-
__v = std::__num_get_signed_integral<_Signed>(__a, __a_end, __err, __base);
|
|
514
|
-
// Digit grouping checked
|
|
515
|
-
__check_grouping(__grouping, __g, __g_end, __err);
|
|
516
|
-
// EOF checked
|
|
517
|
-
if (__b == __e)
|
|
518
|
-
__err |= ios_base::eofbit;
|
|
519
|
-
return __b;
|
|
520
|
-
}
|
|
521
475
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
string __buf;
|
|
534
|
-
__buf.resize(__buf.capacity());
|
|
535
|
-
char* __a = &__buf[0];
|
|
536
|
-
char* __a_end = __a;
|
|
537
|
-
unsigned __g[__num_get_base::__num_get_buf_sz];
|
|
538
|
-
unsigned* __g_end = __g;
|
|
539
|
-
unsigned __dc = 0;
|
|
540
|
-
for (; __b != __e; ++__b) {
|
|
541
|
-
if (__a_end == __a + __buf.size()) {
|
|
542
|
-
size_t __tmp = __buf.size();
|
|
543
|
-
__buf.resize(2 * __buf.size());
|
|
544
|
-
__buf.resize(__buf.capacity());
|
|
545
|
-
__a = &__buf[0];
|
|
546
|
-
__a_end = __a + __tmp;
|
|
476
|
+
// Calculate the actual number
|
|
477
|
+
_Unsigned __val = 0;
|
|
478
|
+
bool __overflowed = false;
|
|
479
|
+
for (; __first != __last; ++__first) {
|
|
480
|
+
auto __c = *__first;
|
|
481
|
+
if (!__grouping.empty() && __c == __thousands_sep) {
|
|
482
|
+
if (__g_end - __g < this->__num_get_buf_sz) {
|
|
483
|
+
*__g_end++ = __dc;
|
|
484
|
+
__dc = 0;
|
|
485
|
+
}
|
|
486
|
+
continue;
|
|
547
487
|
}
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
__grouping,
|
|
556
|
-
__g,
|
|
557
|
-
__g_end,
|
|
558
|
-
const_cast<char_type*>(__atoms)))
|
|
488
|
+
auto __offset = this->__atoms_offset(__atoms, __c);
|
|
489
|
+
if (__offset >= 22) // Not a valid integer character
|
|
490
|
+
break;
|
|
491
|
+
|
|
492
|
+
if (__base == 16 && __offset >= 16)
|
|
493
|
+
__offset -= 6;
|
|
494
|
+
if (__offset >= __base)
|
|
559
495
|
break;
|
|
496
|
+
// __val = (__val * __base) + __offset
|
|
497
|
+
__overflowed |= __builtin_mul_overflow(__val, __base, std::addressof(__val)) ||
|
|
498
|
+
__builtin_add_overflow(__val, __offset, std::addressof(__val));
|
|
499
|
+
__parsed_num = true;
|
|
500
|
+
++__dc;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
if (!__parsed_num) {
|
|
504
|
+
__err |= ios_base::failbit;
|
|
505
|
+
__v = 0;
|
|
506
|
+
} else if (__overflowed) {
|
|
507
|
+
__err |= ios_base::failbit;
|
|
508
|
+
__v = is_signed<_MaybeSigned>::value && __negate
|
|
509
|
+
? numeric_limits<_MaybeSigned>::min()
|
|
510
|
+
: numeric_limits<_MaybeSigned>::max();
|
|
511
|
+
} else if (!__negate) {
|
|
512
|
+
if (__val > static_cast<_Unsigned>(numeric_limits<_MaybeSigned>::max())) {
|
|
513
|
+
__err |= ios_base::failbit;
|
|
514
|
+
__v = numeric_limits<_MaybeSigned>::max();
|
|
515
|
+
} else {
|
|
516
|
+
__v = __val;
|
|
517
|
+
}
|
|
518
|
+
} else if (is_signed<_MaybeSigned>::value) {
|
|
519
|
+
if (__val > static_cast<_Unsigned>(numeric_limits<_MaybeSigned>::max()) + 1) {
|
|
520
|
+
__err |= ios_base::failbit;
|
|
521
|
+
__v = numeric_limits<_MaybeSigned>::min();
|
|
522
|
+
} else if (__val == static_cast<_Unsigned>(numeric_limits<_MaybeSigned>::max()) + 1) {
|
|
523
|
+
__v = numeric_limits<_MaybeSigned>::min();
|
|
524
|
+
} else {
|
|
525
|
+
__v = -__val;
|
|
526
|
+
}
|
|
527
|
+
} else {
|
|
528
|
+
__v = -__val;
|
|
560
529
|
}
|
|
530
|
+
|
|
561
531
|
if (__grouping.size() != 0 && __g_end - __g < __num_get_base::__num_get_buf_sz)
|
|
562
532
|
*__g_end++ = __dc;
|
|
563
|
-
|
|
564
|
-
__v = std::__num_get_unsigned_integral<_Unsigned>(__a, __a_end, __err, __base);
|
|
533
|
+
|
|
565
534
|
// Digit grouping checked
|
|
566
535
|
__check_grouping(__grouping, __g, __g_end, __err);
|
|
567
536
|
// EOF checked
|
|
568
|
-
if (
|
|
537
|
+
if (__first == __last)
|
|
569
538
|
__err |= ios_base::eofbit;
|
|
570
|
-
return
|
|
539
|
+
return __first;
|
|
571
540
|
}
|
|
572
541
|
|
|
573
542
|
virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, bool& __v) const;
|
|
574
543
|
|
|
575
544
|
virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, long& __v) const {
|
|
576
|
-
return this->
|
|
545
|
+
return this->__do_get_integral(__b, __e, __iob, __err, __v);
|
|
577
546
|
}
|
|
578
547
|
|
|
579
548
|
virtual iter_type
|
|
580
549
|
do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, long long& __v) const {
|
|
581
|
-
return this->
|
|
550
|
+
return this->__do_get_integral(__b, __e, __iob, __err, __v);
|
|
582
551
|
}
|
|
583
552
|
|
|
584
553
|
virtual iter_type
|
|
585
554
|
do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned short& __v) const {
|
|
586
|
-
return this->
|
|
555
|
+
return this->__do_get_integral(__b, __e, __iob, __err, __v);
|
|
587
556
|
}
|
|
588
557
|
|
|
589
558
|
virtual iter_type
|
|
590
559
|
do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned int& __v) const {
|
|
591
|
-
return this->
|
|
560
|
+
return this->__do_get_integral(__b, __e, __iob, __err, __v);
|
|
592
561
|
}
|
|
593
562
|
|
|
594
563
|
virtual iter_type
|
|
595
564
|
do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned long& __v) const {
|
|
596
|
-
return this->
|
|
565
|
+
return this->__do_get_integral(__b, __e, __iob, __err, __v);
|
|
597
566
|
}
|
|
598
567
|
|
|
599
568
|
virtual iter_type
|
|
600
569
|
do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, unsigned long long& __v) const {
|
|
601
|
-
return this->
|
|
570
|
+
return this->__do_get_integral(__b, __e, __iob, __err, __v);
|
|
602
571
|
}
|
|
603
572
|
|
|
604
573
|
virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, float& __v) const {
|
|
@@ -652,40 +621,13 @@ _InputIterator num_get<_CharT, _InputIterator>::do_get(
|
|
|
652
621
|
template <class _CharT, class _InputIterator>
|
|
653
622
|
_InputIterator num_get<_CharT, _InputIterator>::do_get(
|
|
654
623
|
iter_type __b, iter_type __e, ios_base& __iob, ios_base::iostate& __err, void*& __v) const {
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
.widen(__num_get_base::__src, __num_get_base::__src + __num_get_base::__int_chr_cnt, __atoms);
|
|
663
|
-
string __buf;
|
|
664
|
-
__buf.resize(__buf.capacity());
|
|
665
|
-
char* __a = &__buf[0];
|
|
666
|
-
char* __a_end = __a;
|
|
667
|
-
unsigned __g[__num_get_base::__num_get_buf_sz];
|
|
668
|
-
unsigned* __g_end = __g;
|
|
669
|
-
unsigned __dc = 0;
|
|
670
|
-
for (; __b != __e; ++__b) {
|
|
671
|
-
if (__a_end == __a + __buf.size()) {
|
|
672
|
-
size_t __tmp = __buf.size();
|
|
673
|
-
__buf.resize(2 * __buf.size());
|
|
674
|
-
__buf.resize(__buf.capacity());
|
|
675
|
-
__a = &__buf[0];
|
|
676
|
-
__a_end = __a + __tmp;
|
|
677
|
-
}
|
|
678
|
-
if (this->__stage2_int_loop(*__b, __base, __a, __a_end, __dc, __thousands_sep, __grouping, __g, __g_end, __atoms))
|
|
679
|
-
break;
|
|
680
|
-
}
|
|
681
|
-
// Stage 3
|
|
682
|
-
__buf.resize(__a_end - __a);
|
|
683
|
-
if (__locale::__sscanf(__buf.c_str(), _LIBCPP_GET_C_LOCALE, "%p", &__v) != 1)
|
|
684
|
-
__err = ios_base::failbit;
|
|
685
|
-
// EOF checked
|
|
686
|
-
if (__b == __e)
|
|
687
|
-
__err |= ios_base::eofbit;
|
|
688
|
-
return __b;
|
|
624
|
+
auto __flags = __iob.flags();
|
|
625
|
+
__iob.flags((__flags & ~ios_base::basefield & ~ios_base::uppercase) | ios_base::hex);
|
|
626
|
+
uintptr_t __ptr;
|
|
627
|
+
auto __res = __do_get_integral(__b, __e, __iob, __err, __ptr);
|
|
628
|
+
__iob.flags(__flags);
|
|
629
|
+
__v = reinterpret_cast<void*>(__ptr);
|
|
630
|
+
return __res;
|
|
689
631
|
}
|
|
690
632
|
|
|
691
633
|
extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_get<char>;
|
|
@@ -748,6 +690,13 @@ void __num_put<_CharT>::__widen_and_group_int(
|
|
|
748
690
|
__op = __ob + (__np - __nb);
|
|
749
691
|
}
|
|
750
692
|
|
|
693
|
+
_LIBCPP_HIDE_FROM_ABI inline bool __isdigit(char __c) { return __c >= '0' && __c <= '9'; }
|
|
694
|
+
|
|
695
|
+
_LIBCPP_HIDE_FROM_ABI inline bool __isxdigit(char __c) {
|
|
696
|
+
auto __lower = __c | 0x20;
|
|
697
|
+
return std::__isdigit(__c) || (__lower >= 'a' && __lower <= 'f');
|
|
698
|
+
}
|
|
699
|
+
|
|
751
700
|
template <class _CharT>
|
|
752
701
|
void __num_put<_CharT>::__widen_and_group_float(
|
|
753
702
|
char* __nb, char* __np, char* __ne, _CharT* __ob, _CharT*& __op, _CharT*& __oe, const locale& __loc) {
|
|
@@ -763,11 +712,11 @@ void __num_put<_CharT>::__widen_and_group_float(
|
|
|
763
712
|
*__oe++ = __ct.widen(*__nf++);
|
|
764
713
|
*__oe++ = __ct.widen(*__nf++);
|
|
765
714
|
for (__ns = __nf; __ns < __ne; ++__ns)
|
|
766
|
-
if (!
|
|
715
|
+
if (!std::__isxdigit(*__ns))
|
|
767
716
|
break;
|
|
768
717
|
} else {
|
|
769
718
|
for (__ns = __nf; __ns < __ne; ++__ns)
|
|
770
|
-
if (!
|
|
719
|
+
if (!std::__isdigit(*__ns))
|
|
771
720
|
break;
|
|
772
721
|
}
|
|
773
722
|
if (__grouping.empty()) {
|
|
@@ -885,9 +834,7 @@ num_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob, char_ty
|
|
|
885
834
|
const numpunct<char_type>& __np = std::use_facet<numpunct<char_type> >(__iob.getloc());
|
|
886
835
|
typedef typename numpunct<char_type>::string_type string_type;
|
|
887
836
|
string_type __nm = __v ? __np.truename() : __np.falsename();
|
|
888
|
-
|
|
889
|
-
*__s = *__i;
|
|
890
|
-
return __s;
|
|
837
|
+
return std::copy(__nm.begin(), __nm.end(), __s);
|
|
891
838
|
}
|
|
892
839
|
|
|
893
840
|
template <class _CharT, class _OutputIterator>
|