@zigc/lib 0.17.0-dev.135 → 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/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/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/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
|
@@ -12,16 +12,13 @@
|
|
|
12
12
|
#include <__algorithm/copy.h>
|
|
13
13
|
#include <__algorithm/copy_backward.h>
|
|
14
14
|
#include <__algorithm/iterator_operations.h>
|
|
15
|
+
#include <__algorithm/min.h>
|
|
15
16
|
#include <__algorithm/move.h>
|
|
16
17
|
#include <__algorithm/move_backward.h>
|
|
17
18
|
#include <__algorithm/swap_ranges.h>
|
|
18
19
|
#include <__config>
|
|
19
|
-
#include <__cstddef/size_t.h>
|
|
20
20
|
#include <__fwd/bit_reference.h>
|
|
21
21
|
#include <__iterator/iterator_traits.h>
|
|
22
|
-
#include <__memory/construct_at.h>
|
|
23
|
-
#include <__memory/pointer_traits.h>
|
|
24
|
-
#include <__type_traits/is_constant_evaluated.h>
|
|
25
22
|
#include <__type_traits/is_trivially_assignable.h>
|
|
26
23
|
#include <__utility/move.h>
|
|
27
24
|
#include <__utility/pair.h>
|
|
@@ -89,46 +86,32 @@ __rotate_forward(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIt
|
|
|
89
86
|
return __r;
|
|
90
87
|
}
|
|
91
88
|
|
|
92
|
-
template <
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
for (_RandomAccessIterator __p = __first + __g; __p != __first;) {
|
|
117
|
-
value_type __t(_Ops::__iter_move(--__p));
|
|
118
|
-
_RandomAccessIterator __p1 = __p;
|
|
119
|
-
_RandomAccessIterator __p2 = __p1 + __m1;
|
|
120
|
-
do {
|
|
121
|
-
*__p1 = _Ops::__iter_move(__p2);
|
|
122
|
-
__p1 = __p2;
|
|
123
|
-
const difference_type __d = _Ops::distance(__p2, __last);
|
|
124
|
-
if (__m1 < __d)
|
|
125
|
-
__p2 += __m1;
|
|
126
|
-
else
|
|
127
|
-
__p2 = __first + (__m1 - __d);
|
|
128
|
-
} while (__p2 != __p);
|
|
129
|
-
*__p1 = std::move(__t);
|
|
89
|
+
template <class _AlgPolicy, class _Iter, class _Sent>
|
|
90
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX17 _Iter
|
|
91
|
+
__rotate_random_access(_Iter __first, _Iter __middle, _Sent __sent) {
|
|
92
|
+
auto __left = _IterOps<_AlgPolicy>::distance(__first, __middle);
|
|
93
|
+
auto __right = _IterOps<_AlgPolicy>::distance(__middle, __sent);
|
|
94
|
+
auto __last = __first + __right;
|
|
95
|
+
|
|
96
|
+
auto __min_len = std::min(__left, __right);
|
|
97
|
+
|
|
98
|
+
while (__min_len > 0) {
|
|
99
|
+
if (__left <= __right) {
|
|
100
|
+
do {
|
|
101
|
+
std::__swap_ranges<_AlgPolicy>(__first, __first + __left, __first + __left);
|
|
102
|
+
__first += __left;
|
|
103
|
+
__right -= __left;
|
|
104
|
+
} while (__left <= __right);
|
|
105
|
+
__min_len = __right;
|
|
106
|
+
} else {
|
|
107
|
+
do {
|
|
108
|
+
std::__swap_ranges<_AlgPolicy>(__first + (__left - __right), __first + __left, __first + __left);
|
|
109
|
+
__left -= __right;
|
|
110
|
+
} while (__left > __right);
|
|
111
|
+
__min_len = __left;
|
|
112
|
+
}
|
|
130
113
|
}
|
|
131
|
-
return
|
|
114
|
+
return __last;
|
|
132
115
|
}
|
|
133
116
|
|
|
134
117
|
template <class _AlgPolicy, class _ForwardIterator>
|
|
@@ -170,7 +153,7 @@ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _RandomAccessIterator
|
|
|
170
153
|
return std::__rotate_left<_AlgPolicy>(__first, __last);
|
|
171
154
|
if (_IterOps<_AlgPolicy>::next(__middle) == __last)
|
|
172
155
|
return std::__rotate_right<_AlgPolicy>(__first, __last);
|
|
173
|
-
return std::
|
|
156
|
+
return std::__rotate_random_access<_AlgPolicy>(__first, __middle, __last);
|
|
174
157
|
}
|
|
175
158
|
return std::__rotate_forward<_AlgPolicy>(__first, __middle, __last);
|
|
176
159
|
}
|
|
@@ -14,11 +14,7 @@
|
|
|
14
14
|
#include <__algorithm/iterator_operations.h>
|
|
15
15
|
#include <__config>
|
|
16
16
|
#include <__functional/identity.h>
|
|
17
|
-
#include <__iterator/advance.h>
|
|
18
|
-
#include <__iterator/concepts.h>
|
|
19
|
-
#include <__iterator/distance.h>
|
|
20
17
|
#include <__iterator/iterator_traits.h>
|
|
21
|
-
#include <__ranges/concepts.h>
|
|
22
18
|
#include <__type_traits/enable_if.h>
|
|
23
19
|
#include <__type_traits/invoke.h>
|
|
24
20
|
#include <__type_traits/is_callable.h>
|
|
@@ -68,44 +64,60 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_Iter, _Iter> __search_
|
|
|
68
64
|
}
|
|
69
65
|
}
|
|
70
66
|
|
|
71
|
-
|
|
67
|
+
// Finds the longest suffix in [__first, __last) where each element satisfies __pred.
|
|
68
|
+
template <class _RAIter, class _Pred, class _Proj, class _ValueT>
|
|
69
|
+
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _RAIter
|
|
70
|
+
__find_longest_suffix(_RAIter __first, _RAIter __last, const _ValueT& __value, _Pred& __pred, _Proj& __proj) {
|
|
71
|
+
while (__first != __last) {
|
|
72
|
+
if (!std::__invoke(__pred, std::__invoke(__proj, *--__last), __value)) {
|
|
73
|
+
return ++__last;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return __first;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
template <class _AlgPolicy, class _Pred, class _Iter, class _SizeT, class _Type, class _Proj, class _DiffT>
|
|
72
80
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 std::pair<_Iter, _Iter> __search_n_random_access_impl(
|
|
73
|
-
_Iter __first,
|
|
74
|
-
|
|
81
|
+
_Iter __first, _SizeT __count_in, const _Type& __value, _Pred& __pred, _Proj& __proj, _DiffT __size) {
|
|
82
|
+
auto __last = __first + __size;
|
|
83
|
+
auto __count = static_cast<_DiffT>(__count_in);
|
|
84
|
+
|
|
75
85
|
if (__count == 0)
|
|
76
86
|
return std::make_pair(__first, __first);
|
|
77
|
-
if (
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
87
|
+
if (__size < __count)
|
|
88
|
+
return std::make_pair(__last, __last);
|
|
89
|
+
|
|
90
|
+
// [__match_start, __match_start + __count) is the subrange which we currently check whether it only contains matching
|
|
91
|
+
// elements. This subrange is returned in case all the elements match.
|
|
92
|
+
// [__match_start, __matched_until) is the longest subrange where all elements are known to match at any given point
|
|
93
|
+
// in time.
|
|
94
|
+
// [__matched_until, __match_start + __count) is the subrange where we don't know whether the elements match.
|
|
95
|
+
|
|
96
|
+
// This algorithm tries to expand the subrange [__match_start, __matched_until) into a range of sufficient length.
|
|
97
|
+
// When we fail to do that because we find a mismatching element, we move it forward to the beginning of the next
|
|
98
|
+
// consecutive sequence that is not known not to match.
|
|
99
|
+
|
|
100
|
+
const _Iter __try_match_until = __last - __count;
|
|
101
|
+
_Iter __match_start = __first;
|
|
102
|
+
_Iter __matched_until = __first;
|
|
81
103
|
|
|
82
|
-
const auto __s = __first + __size1 - difference_type(__count - 1); // Start of pattern match can't go beyond here
|
|
83
104
|
while (true) {
|
|
84
|
-
//
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
return std::make_pair(__first, __first);
|
|
89
|
-
}
|
|
90
|
-
if (std::__invoke(__pred, std::__invoke(__proj, *__first), __value))
|
|
91
|
-
break;
|
|
92
|
-
++__first;
|
|
93
|
-
}
|
|
94
|
-
// *__first matches __value_, now match elements after here
|
|
95
|
-
auto __m = __first;
|
|
96
|
-
_SizeT __c(0);
|
|
97
|
-
while (true) {
|
|
98
|
-
if (++__c == __count) // If pattern exhausted, __first is the answer (works for 1 element pattern)
|
|
99
|
-
return std::make_pair(__first, __first + _DiffT(__count));
|
|
100
|
-
++__m; // no need to check range on __m because __s guarantees we have enough source
|
|
105
|
+
// There's no chance of expanding the subrange into a sequence of sufficient length, since we don't have enough
|
|
106
|
+
// elements in the haystack anymore.
|
|
107
|
+
if (__match_start > __try_match_until)
|
|
108
|
+
return std::make_pair(__last, __last);
|
|
101
109
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
110
|
+
auto __mismatch = std::__find_longest_suffix(__matched_until, __match_start + __count, __value, __pred, __proj);
|
|
111
|
+
|
|
112
|
+
// If all elements in [__matched_until, __match_start + __count) match, we know that
|
|
113
|
+
// [__match_start, __match_start + __count) is a full sequence of matching elements, so we're done.
|
|
114
|
+
if (__mismatch == __matched_until)
|
|
115
|
+
return std::make_pair(__match_start, __match_start + __count);
|
|
116
|
+
|
|
117
|
+
// Otherwise, we have to move the [__match_start, __matched_until) subrange forward past the point where we know for
|
|
118
|
+
// sure a match is impossible.
|
|
119
|
+
__matched_until = __match_start + __count;
|
|
120
|
+
__match_start = __mismatch;
|
|
109
121
|
}
|
|
110
122
|
}
|
|
111
123
|
|
|
@@ -119,7 +131,7 @@ template <class _Iter,
|
|
|
119
131
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_Iter, _Iter>
|
|
120
132
|
__search_n_impl(_Iter __first, _Sent __last, _DiffT __count, const _Type& __value, _Pred& __pred, _Proj& __proj) {
|
|
121
133
|
return std::__search_n_random_access_impl<_ClassicAlgPolicy>(
|
|
122
|
-
__first,
|
|
134
|
+
__first, __count, __value, __pred, __proj, __last - __first);
|
|
123
135
|
}
|
|
124
136
|
|
|
125
137
|
template <class _Iter1,
|
|
@@ -24,59 +24,60 @@ _LIBCPP_PUSH_MACROS
|
|
|
24
24
|
|
|
25
25
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
26
26
|
|
|
27
|
-
template <class _AlgPolicy, class _Compare, class _RandomAccessIterator>
|
|
27
|
+
template <class _AlgPolicy, bool __assume_both_children, class _Compare, class _RandomAccessIterator>
|
|
28
28
|
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void
|
|
29
29
|
__sift_down(_RandomAccessIterator __first,
|
|
30
30
|
_Compare&& __comp,
|
|
31
|
-
|
|
32
|
-
_RandomAccessIterator __start) {
|
|
31
|
+
__iterator_difference_type<_RandomAccessIterator> __len,
|
|
32
|
+
__iterator_difference_type<_RandomAccessIterator> __start) {
|
|
33
33
|
using _Ops = _IterOps<_AlgPolicy>;
|
|
34
34
|
|
|
35
35
|
typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;
|
|
36
36
|
typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type;
|
|
37
37
|
// left-child of __start is at 2 * __start + 1
|
|
38
38
|
// right-child of __start is at 2 * __start + 2
|
|
39
|
-
difference_type __child = __start
|
|
39
|
+
difference_type __child = __start;
|
|
40
40
|
|
|
41
41
|
if (__len < 2 || (__len - 2) / 2 < __child)
|
|
42
42
|
return;
|
|
43
43
|
|
|
44
|
-
__child
|
|
45
|
-
_RandomAccessIterator __child_i = __first + __child;
|
|
44
|
+
__child = 2 * __child + 1;
|
|
46
45
|
|
|
47
|
-
if
|
|
46
|
+
if _LIBCPP_CONSTEXPR (__assume_both_children) {
|
|
47
|
+
// right-child exists and is greater than left-child
|
|
48
|
+
__child += __comp(__first[__child], __first[__child + 1]);
|
|
49
|
+
} else if ((__child + 1) < __len && __comp(__first[__child], __first[__child + 1])) {
|
|
48
50
|
// right-child exists and is greater than left-child
|
|
49
|
-
++__child_i;
|
|
50
51
|
++__child;
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
// check if we are in heap-order
|
|
54
|
-
if (__comp(
|
|
55
|
+
if (__comp(__first[__child], __first[__start]))
|
|
55
56
|
// we are, __start is larger than its largest child
|
|
56
57
|
return;
|
|
57
58
|
|
|
58
|
-
value_type __top(_Ops::__iter_move(__start));
|
|
59
|
+
value_type __top(_Ops::__iter_move(__first + __start));
|
|
59
60
|
do {
|
|
60
61
|
// we are not in heap-order, swap the parent with its largest child
|
|
61
|
-
|
|
62
|
-
__start
|
|
62
|
+
__first[__start] = _Ops::__iter_move(__first + __child);
|
|
63
|
+
__start = __child;
|
|
63
64
|
|
|
64
65
|
if ((__len - 2) / 2 < __child)
|
|
65
66
|
break;
|
|
66
67
|
|
|
67
68
|
// recompute the child based off of the updated parent
|
|
68
|
-
__child
|
|
69
|
-
__child_i = __first + __child;
|
|
69
|
+
__child = 2 * __child + 1;
|
|
70
70
|
|
|
71
|
-
if
|
|
71
|
+
if _LIBCPP_CONSTEXPR (__assume_both_children) {
|
|
72
|
+
__child += __comp(__first[__child], __first[__child + 1]);
|
|
73
|
+
} else if ((__child + 1) < __len && __comp(__first[__child], __first[__child + 1])) {
|
|
72
74
|
// right-child exists and is greater than left-child
|
|
73
|
-
++__child_i;
|
|
74
75
|
++__child;
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
// check if we are in heap-order
|
|
78
|
-
} while (!__comp(
|
|
79
|
-
|
|
79
|
+
} while (!__comp(__first[__child], __top));
|
|
80
|
+
__first[__start] = std::move(__top);
|
|
80
81
|
}
|
|
81
82
|
|
|
82
83
|
template <class _AlgPolicy, class _Compare, class _RandomAccessIterator>
|
|
@@ -26,9 +26,7 @@ _LIBCPP_PUSH_MACROS
|
|
|
26
26
|
#include <__undef_macros>
|
|
27
27
|
|
|
28
28
|
// TODO: Find out how altivec changes things and allow vectorizations there too.
|
|
29
|
-
|
|
30
|
-
#if _LIBCPP_STD_VER >= 14 && defined(_LIBCPP_COMPILER_CLANG_BASED) && !defined(__ALTIVEC__) && \
|
|
31
|
-
!(defined(_LIBCPP_APPLE_CLANG_VER) && _LIBCPP_APPLE_CLANG_VER < 1600)
|
|
29
|
+
#if _LIBCPP_STD_VER >= 14 && defined(_LIBCPP_COMPILER_CLANG_BASED) && !defined(__ALTIVEC__)
|
|
32
30
|
# define _LIBCPP_HAS_ALGORITHM_VECTOR_UTILS 1
|
|
33
31
|
#else
|
|
34
32
|
# define _LIBCPP_HAS_ALGORITHM_VECTOR_UTILS 0
|
|
@@ -116,16 +114,47 @@ template <class _VecT, class _Iter>
|
|
|
116
114
|
}(make_index_sequence<__simd_vector_size_v<_VecT>>{});
|
|
117
115
|
}
|
|
118
116
|
|
|
117
|
+
// Load the first _Np elements, zero the rest
|
|
118
|
+
_LIBCPP_DIAGNOSTIC_PUSH
|
|
119
|
+
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wpsabi")
|
|
120
|
+
template <class _VecT, size_t _Np, class _Iter>
|
|
121
|
+
[[__nodiscard__]] _LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _VecT __partial_load(_Iter __iter) noexcept {
|
|
122
|
+
return [=]<size_t... _LoadIndices, size_t... _ZeroIndices>(
|
|
123
|
+
index_sequence<_LoadIndices...>, index_sequence<_ZeroIndices...>) _LIBCPP_ALWAYS_INLINE noexcept {
|
|
124
|
+
return _VecT{__iter[_LoadIndices]..., ((void)_ZeroIndices, 0)...};
|
|
125
|
+
}(make_index_sequence<_Np>{}, make_index_sequence<__simd_vector_size_v<_VecT> - _Np>{});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Create a vector where every elements is __val
|
|
129
|
+
template <class _VecT>
|
|
130
|
+
[[__nodiscard__]] _LIBCPP_ALWAYS_INLINE _LIBCPP_HIDE_FROM_ABI _VecT
|
|
131
|
+
__broadcast(__simd_vector_underlying_type_t<_VecT> __val) {
|
|
132
|
+
return [&]<std::size_t... _Indices>(index_sequence<_Indices...>) {
|
|
133
|
+
return _VecT{((void)_Indices, __val)...};
|
|
134
|
+
}(make_index_sequence<__simd_vector_size_v<_VecT>>());
|
|
135
|
+
}
|
|
136
|
+
_LIBCPP_DIAGNOSTIC_POP
|
|
137
|
+
|
|
138
|
+
template <class _Tp, size_t _Np>
|
|
139
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI bool __any_of(__simd_vector<_Tp, _Np> __vec) noexcept {
|
|
140
|
+
return __builtin_reduce_or(__builtin_convertvector(__vec, __simd_vector<bool, _Np>));
|
|
141
|
+
}
|
|
142
|
+
|
|
119
143
|
template <class _Tp, size_t _Np>
|
|
120
144
|
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI bool __all_of(__simd_vector<_Tp, _Np> __vec) noexcept {
|
|
121
145
|
return __builtin_reduce_and(__builtin_convertvector(__vec, __simd_vector<bool, _Np>));
|
|
122
146
|
}
|
|
123
147
|
|
|
148
|
+
template <class _Tp, size_t _Np>
|
|
149
|
+
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI bool __none_of(__simd_vector<_Tp, _Np> __vec) noexcept {
|
|
150
|
+
return !__builtin_reduce_or(__builtin_convertvector(__vec, __simd_vector<bool, _Np>));
|
|
151
|
+
}
|
|
152
|
+
|
|
124
153
|
template <class _Tp, size_t _Np>
|
|
125
154
|
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_t __find_first_set(__simd_vector<_Tp, _Np> __vec) noexcept {
|
|
126
155
|
using __mask_vec = __simd_vector<bool, _Np>;
|
|
127
156
|
|
|
128
|
-
// This has MSan disabled du to https://
|
|
157
|
+
// This has MSan disabled du to https://llvm.org/PR85876
|
|
129
158
|
auto __impl = [&]<class _MaskT>(_MaskT) _LIBCPP_NO_SANITIZE("memory") noexcept {
|
|
130
159
|
# if defined(_LIBCPP_BIG_ENDIAN)
|
|
131
160
|
return std::min<size_t>(
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
//===----------------------------------------------------------------------===//
|
|
2
|
+
//
|
|
3
|
+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
4
|
+
// See https://llvm.org/LICENSE.txt for license information.
|
|
5
|
+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
6
|
+
//
|
|
7
|
+
//===----------------------------------------------------------------------===//
|
|
8
|
+
|
|
9
|
+
#ifndef _LIBCPP___ALGORITHM_SPECIALIZED_ALGORITHMS_H
|
|
10
|
+
#define _LIBCPP___ALGORITHM_SPECIALIZED_ALGORITHMS_H
|
|
11
|
+
|
|
12
|
+
#include <__config>
|
|
13
|
+
|
|
14
|
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
15
|
+
# pragma GCC system_header
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
19
|
+
|
|
20
|
+
namespace _Algorithm {
|
|
21
|
+
struct __copy {};
|
|
22
|
+
struct __fill_n {};
|
|
23
|
+
struct __for_each {};
|
|
24
|
+
} // namespace _Algorithm
|
|
25
|
+
|
|
26
|
+
template <class>
|
|
27
|
+
struct __single_iterator;
|
|
28
|
+
|
|
29
|
+
template <class, class>
|
|
30
|
+
struct __iterator_pair;
|
|
31
|
+
|
|
32
|
+
template <class>
|
|
33
|
+
struct __single_range;
|
|
34
|
+
|
|
35
|
+
// This struct allows specializing algorithms for specific arguments. This is useful when we know a more efficient
|
|
36
|
+
// algorithm implementation for e.g. library-defined iterators. _Alg is one of tags defined inside the _Algorithm
|
|
37
|
+
// namespace above. _Ranges is an essentially arbitrary subset of the arguments to the algorithm that are used for
|
|
38
|
+
// dispatching. This set is specific to the algorithm: look at each algorithm to see which arguments they use for
|
|
39
|
+
// dispatching to specialized algorithms.
|
|
40
|
+
//
|
|
41
|
+
// A specialization of `__specialized_algorithm` has to define `__has_algorithm` to true for the specialized algorithm
|
|
42
|
+
// to be used. This is intended for cases where iterators can do generic unwrapping and forward to a different
|
|
43
|
+
// specialization of `__specialized_algorithm`.
|
|
44
|
+
//
|
|
45
|
+
// If __has_algorithm is true, there has to be an operator() which will get called with the actual arguments to the
|
|
46
|
+
// algorithm.
|
|
47
|
+
template <class _Alg, class... _Ranges>
|
|
48
|
+
struct __specialized_algorithm {
|
|
49
|
+
static const bool __has_algorithm = false;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
53
|
+
|
|
54
|
+
#endif // _LIBCPP___ALGORITHM_SPECIALIZED_ALGORITHMS_H
|
|
@@ -247,7 +247,7 @@ _LIBCPP_CONSTEXPR_SINCE_CXX26 void __stable_sort(
|
|
|
247
247
|
constexpr auto __default_comp = __desugars_to_v<__less_tag, _Compare, value_type, value_type >;
|
|
248
248
|
constexpr auto __radix_sortable =
|
|
249
249
|
__is_ordered_integer_representable_v<value_type> &&
|
|
250
|
-
is_same_v< value_type&,
|
|
250
|
+
is_same_v< value_type&, __iterator_reference<_RandomAccessIterator>>;
|
|
251
251
|
if constexpr (__default_comp && __radix_sortable) {
|
|
252
252
|
if (__len <= __buff_size && __len >= static_cast<difference_type>(std::__radix_sort_min_bound<value_type>()) &&
|
|
253
253
|
__len <= static_cast<difference_type>(std::__radix_sort_max_bound<value_type>())) {
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
# include <__cxx03/__verbose_trap>
|
|
17
17
|
#else
|
|
18
18
|
# include <__config>
|
|
19
|
+
# include <__log_hardening_failure>
|
|
19
20
|
# include <__verbose_abort>
|
|
20
21
|
# include <__verbose_trap>
|
|
21
22
|
#endif
|
|
@@ -24,14 +25,40 @@
|
|
|
24
25
|
# pragma GCC system_header
|
|
25
26
|
#endif
|
|
26
27
|
|
|
27
|
-
#if
|
|
28
|
+
#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
// Keep the old implementation that doesn't support assertion semantics for backward compatibility with the frozen C++03
|
|
31
|
+
// mode.
|
|
32
|
+
# if _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_DEBUG
|
|
33
|
+
# define _LIBCPP_ASSERTION_HANDLER(message) _LIBCPP_VERBOSE_ABORT("%s", message)
|
|
34
|
+
# else
|
|
35
|
+
# define _LIBCPP_ASSERTION_HANDLER(message) _LIBCPP_VERBOSE_TRAP(message)
|
|
36
|
+
# endif // _LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_DEBUG
|
|
30
37
|
|
|
31
38
|
#else
|
|
32
39
|
|
|
33
|
-
#
|
|
40
|
+
# if _LIBCPP_ASSERTION_SEMANTIC == _LIBCPP_ASSERTION_SEMANTIC_IGNORE
|
|
41
|
+
# define _LIBCPP_ASSERTION_HANDLER(message) ((void)0)
|
|
42
|
+
|
|
43
|
+
# elif _LIBCPP_ASSERTION_SEMANTIC == _LIBCPP_ASSERTION_SEMANTIC_OBSERVE
|
|
44
|
+
# define _LIBCPP_ASSERTION_HANDLER(message) _LIBCPP_LOG_HARDENING_FAILURE(message)
|
|
45
|
+
|
|
46
|
+
# elif _LIBCPP_ASSERTION_SEMANTIC == _LIBCPP_ASSERTION_SEMANTIC_QUICK_ENFORCE
|
|
47
|
+
# define _LIBCPP_ASSERTION_HANDLER(message) _LIBCPP_VERBOSE_TRAP(message)
|
|
48
|
+
|
|
49
|
+
# elif _LIBCPP_ASSERTION_SEMANTIC == _LIBCPP_ASSERTION_SEMANTIC_ENFORCE
|
|
50
|
+
# define _LIBCPP_ASSERTION_HANDLER(message) _LIBCPP_VERBOSE_ABORT("%s", message)
|
|
51
|
+
|
|
52
|
+
# else
|
|
53
|
+
|
|
54
|
+
# error _LIBCPP_ASSERTION_SEMANTIC must be set to one of the following values: \
|
|
55
|
+
_LIBCPP_ASSERTION_SEMANTIC_IGNORE, \
|
|
56
|
+
_LIBCPP_ASSERTION_SEMANTIC_OBSERVE, \
|
|
57
|
+
_LIBCPP_ASSERTION_SEMANTIC_QUICK_ENFORCE, \
|
|
58
|
+
_LIBCPP_ASSERTION_SEMANTIC_ENFORCE
|
|
59
|
+
|
|
60
|
+
# endif // _LIBCPP_ASSERTION_SEMANTIC == _LIBCPP_ASSERTION_SEMANTIC_IGNORE
|
|
34
61
|
|
|
35
|
-
#endif //
|
|
62
|
+
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
|
|
36
63
|
|
|
37
64
|
#endif // _LIBCPP___ASSERTION_HANDLER
|