@zigc/lib 0.17.0-dev.135 → 0.17.0-dev.224
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/libc/hdr/errno_macros.h +3 -1
- package/libcxx/libc/hdr/stdint_proxy.h +18 -0
- package/libcxx/libc/hdr/types/wchar_t.h +23 -0
- package/libcxx/libc/hdr/wchar_overlay.h +69 -0
- package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
- package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
- package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
- package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
- package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
- package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
- package/libcxx/libc/shared/libc_common.h +5 -0
- package/libcxx/libc/src/__support/CPP/bit.h +50 -12
- package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
- package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
- package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
- package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
- package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
- package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
- package/libcxx/libc/src/__support/big_int.h +14 -14
- package/libcxx/libc/src/__support/common.h +3 -2
- package/libcxx/libc/src/__support/ctype_utils.h +19 -12
- package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
- package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
- package/libcxx/libc/src/__support/libc_assert.h +2 -0
- package/libcxx/libc/src/__support/macros/attributes.h +44 -1
- package/libcxx/libc/src/__support/macros/config.h +23 -0
- package/libcxx/libc/src/__support/macros/null_check.h +1 -2
- package/libcxx/libc/src/__support/macros/optimization.h +3 -0
- package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
- package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
- package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
- package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
- package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
- package/libcxx/libc/src/__support/math_extras.h +20 -4
- package/libcxx/libc/src/__support/str_to_float.h +98 -125
- package/libcxx/libc/src/__support/str_to_integer.h +39 -27
- package/libcxx/libc/src/__support/wctype_utils.h +588 -0
- 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 +42 -20
- package/libunwind/src/CompactUnwinder.hpp +16 -5
- package/libunwind/src/DwarfInstructions.hpp +24 -13
- package/libunwind/src/DwarfParser.hpp +62 -23
- 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 +16 -8
- package/std/c.zig +7 -0
- package/std/crypto/ml_kem.zig +0 -15
- 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 +1 -2
- 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/std/zig/target.zig +1 -2
- package/std/zon/parse.zig +1 -1
- 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
|
@@ -128,17 +128,8 @@ struct ErrorHandler {
|
|
|
128
128
|
T report(const error_code& ec, const char* msg, ...) const {
|
|
129
129
|
va_list ap;
|
|
130
130
|
va_start(ap, msg);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
#endif // _LIBCPP_HAS_EXCEPTIONS
|
|
134
|
-
report_impl(ec, msg, ap);
|
|
135
|
-
#if _LIBCPP_HAS_EXCEPTIONS
|
|
136
|
-
} catch (...) {
|
|
137
|
-
va_end(ap);
|
|
138
|
-
throw;
|
|
139
|
-
}
|
|
140
|
-
#endif // _LIBCPP_HAS_EXCEPTIONS
|
|
141
|
-
va_end(ap);
|
|
131
|
+
__scope_guard guard([&] { va_end(ap); });
|
|
132
|
+
report_impl(ec, msg, ap);
|
|
142
133
|
return error_value<T>();
|
|
143
134
|
}
|
|
144
135
|
|
|
@@ -148,17 +139,8 @@ struct ErrorHandler {
|
|
|
148
139
|
T report(errc const& err, const char* msg, ...) const {
|
|
149
140
|
va_list ap;
|
|
150
141
|
va_start(ap, msg);
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
#endif // _LIBCPP_HAS_EXCEPTIONS
|
|
154
|
-
report_impl(make_error_code(err), msg, ap);
|
|
155
|
-
#if _LIBCPP_HAS_EXCEPTIONS
|
|
156
|
-
} catch (...) {
|
|
157
|
-
va_end(ap);
|
|
158
|
-
throw;
|
|
159
|
-
}
|
|
160
|
-
#endif // _LIBCPP_HAS_EXCEPTIONS
|
|
161
|
-
va_end(ap);
|
|
142
|
+
__scope_guard guard([&] { va_end(ap); });
|
|
143
|
+
report_impl(make_error_code(err), msg, ap);
|
|
162
144
|
return error_value<T>();
|
|
163
145
|
}
|
|
164
146
|
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
#include <__assert>
|
|
13
13
|
#include <__config>
|
|
14
|
+
#include <__utility/scope_guard.h>
|
|
14
15
|
#include <array>
|
|
15
16
|
#include <cstdarg>
|
|
16
17
|
#include <cstddef>
|
|
@@ -34,20 +35,19 @@ inline _LIBCPP_ATTRIBUTE_FORMAT(__printf__, 1, 0) string vformat_string(const ch
|
|
|
34
35
|
|
|
35
36
|
va_list apcopy;
|
|
36
37
|
va_copy(apcopy, ap);
|
|
37
|
-
int
|
|
38
|
+
int size = ::vsnprintf(buf.data(), buf.size(), msg, apcopy);
|
|
38
39
|
va_end(apcopy);
|
|
39
40
|
|
|
40
41
|
string result;
|
|
41
|
-
if (static_cast<size_t>(
|
|
42
|
-
result.assign(buf.data(), static_cast<size_t>(
|
|
42
|
+
if (static_cast<size_t>(size) < buf.size()) {
|
|
43
|
+
result.assign(buf.data(), static_cast<size_t>(size));
|
|
43
44
|
} else {
|
|
44
45
|
// we did not provide a long enough buffer on our first attempt. The
|
|
45
46
|
// return value is the number of bytes (excluding the null byte) that are
|
|
46
47
|
// needed for formatting.
|
|
47
|
-
|
|
48
|
-
result.
|
|
49
|
-
|
|
50
|
-
_LIBCPP_ASSERT_INTERNAL(static_cast<size_t>(ret) == (size_with_null - 1), "TODO");
|
|
48
|
+
result.resize_and_overwrite(size, [&](char* res, size_t n) { return ::vsnprintf(res, n, msg, ap); });
|
|
49
|
+
_LIBCPP_ASSERT_INTERNAL(static_cast<size_t>(size) == result.size(),
|
|
50
|
+
"vsnprintf did not result in the same number of characters as the first attempt?");
|
|
51
51
|
}
|
|
52
52
|
return result;
|
|
53
53
|
}
|
|
@@ -56,17 +56,8 @@ inline _LIBCPP_ATTRIBUTE_FORMAT(__printf__, 1, 2) string format_string(const cha
|
|
|
56
56
|
string ret;
|
|
57
57
|
va_list ap;
|
|
58
58
|
va_start(ap, msg);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
#endif // _LIBCPP_HAS_EXCEPTIONS
|
|
62
|
-
ret = detail::vformat_string(msg, ap);
|
|
63
|
-
#if _LIBCPP_HAS_EXCEPTIONS
|
|
64
|
-
} catch (...) {
|
|
65
|
-
va_end(ap);
|
|
66
|
-
throw;
|
|
67
|
-
}
|
|
68
|
-
#endif // _LIBCPP_HAS_EXCEPTIONS
|
|
69
|
-
va_end(ap);
|
|
59
|
+
__scope_guard guard([&] { va_end(ap); });
|
|
60
|
+
ret = detail::vformat_string(msg, ap);
|
|
70
61
|
return ret;
|
|
71
62
|
}
|
|
72
63
|
|
|
@@ -41,17 +41,10 @@
|
|
|
41
41
|
#include <time.h>
|
|
42
42
|
|
|
43
43
|
// since Linux 4.5 and FreeBSD 13, but the Linux libc wrapper is only provided by glibc >= 2.27 and musl
|
|
44
|
-
#if defined(
|
|
45
|
-
# if defined(_LIBCPP_GLIBC_PREREQ)
|
|
46
|
-
# if _LIBCPP_GLIBC_PREREQ(2, 27)
|
|
47
|
-
# define _LIBCPP_FILESYSTEM_USE_COPY_FILE_RANGE
|
|
48
|
-
# endif
|
|
49
|
-
# elif _LIBCPP_HAS_MUSL_LIBC
|
|
50
|
-
# define _LIBCPP_FILESYSTEM_USE_COPY_FILE_RANGE
|
|
51
|
-
# endif
|
|
52
|
-
#elif defined(__FreeBSD__)
|
|
44
|
+
#if _LIBCPP_GLIBC_PREREQ(2, 27) || _LIBCPP_HAS_MUSL_LIBC || defined(__FreeBSD__)
|
|
53
45
|
# define _LIBCPP_FILESYSTEM_USE_COPY_FILE_RANGE
|
|
54
46
|
#endif
|
|
47
|
+
|
|
55
48
|
#if __has_include(<sys/sendfile.h>)
|
|
56
49
|
# include <sys/sendfile.h>
|
|
57
50
|
# define _LIBCPP_FILESYSTEM_USE_SENDFILE
|
|
@@ -292,7 +292,9 @@ path path::lexically_relative(const path& base) const {
|
|
|
292
292
|
// return a path constructed with 'n' dot-dot elements, followed by the
|
|
293
293
|
// elements of '*this' after the mismatch.
|
|
294
294
|
path Result;
|
|
295
|
-
|
|
295
|
+
constexpr size_t ElemSize = 2; // ".."
|
|
296
|
+
constexpr size_t SeparatorSize = 1; // separator is always a single char
|
|
297
|
+
Result.__reserve(ElemCount * (ElemSize + SeparatorSize) + SeparatorSize + PP.Path.size());
|
|
296
298
|
while (ElemCount--)
|
|
297
299
|
Result /= PATHSTR("..");
|
|
298
300
|
for (; PP; ++PP)
|
|
@@ -0,0 +1,65 @@
|
|
|
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_SRC_ALIGNED_ALLOC_H
|
|
10
|
+
#define _LIBCPP_SRC_ALIGNED_ALLOC_H
|
|
11
|
+
|
|
12
|
+
#include <__config>
|
|
13
|
+
#include <cstdlib>
|
|
14
|
+
|
|
15
|
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
16
|
+
# pragma GCC system_header
|
|
17
|
+
#endif
|
|
18
|
+
|
|
19
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
20
|
+
|
|
21
|
+
#if _LIBCPP_HAS_LIBRARY_ALIGNED_ALLOCATION
|
|
22
|
+
|
|
23
|
+
// Low-level helpers to call the aligned allocation and deallocation functions
|
|
24
|
+
// on the target platform. This is used to implement libc++'s own memory
|
|
25
|
+
// allocation routines -- if you need to allocate memory inside the library,
|
|
26
|
+
// chances are that you want to use `__libcpp_allocate` instead.
|
|
27
|
+
//
|
|
28
|
+
// Returns the allocated memory, or `nullptr` on failure.
|
|
29
|
+
inline _LIBCPP_HIDE_FROM_ABI void* __libcpp_aligned_alloc(std::size_t __alignment, std::size_t __size) {
|
|
30
|
+
# if defined(_LIBCPP_MSVCRT_LIKE)
|
|
31
|
+
return ::_aligned_malloc(__size, __alignment);
|
|
32
|
+
|
|
33
|
+
// Android only provides aligned_alloc when targeting API 28 or higher.
|
|
34
|
+
# elif !defined(__ANDROID__) || __ANDROID_API__ >= 28
|
|
35
|
+
// aligned_alloc() requires that __size is a multiple of __alignment,
|
|
36
|
+
// but for C++ [new.delete.general], only states "if the value of an
|
|
37
|
+
// alignment argument passed to any of these functions is not a valid
|
|
38
|
+
// alignment value, the behavior is undefined".
|
|
39
|
+
// To handle calls such as ::operator new(1, std::align_val_t(128)), we
|
|
40
|
+
// round __size up to the next multiple of __alignment.
|
|
41
|
+
size_t __rounded_size = (__size + __alignment - 1) & ~(__alignment - 1);
|
|
42
|
+
// Rounding up could have wrapped around to zero, so we have to add another
|
|
43
|
+
// max() ternary to the actual call site to avoid succeeded in that case.
|
|
44
|
+
return ::aligned_alloc(__alignment, __size > __rounded_size ? __size : __rounded_size);
|
|
45
|
+
# else
|
|
46
|
+
void* __result = nullptr;
|
|
47
|
+
(void)::posix_memalign(&__result, __alignment, __size);
|
|
48
|
+
// If posix_memalign fails, __result is unmodified so we still return `nullptr`.
|
|
49
|
+
return __result;
|
|
50
|
+
# endif
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
inline _LIBCPP_HIDE_FROM_ABI void __libcpp_aligned_free(void* __ptr) {
|
|
54
|
+
# if defined(_LIBCPP_MSVCRT_LIKE)
|
|
55
|
+
::_aligned_free(__ptr);
|
|
56
|
+
# else
|
|
57
|
+
::free(__ptr);
|
|
58
|
+
# endif
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
#endif // _LIBCPP_HAS_LIBRARY_ALIGNED_ALLOCATION
|
|
62
|
+
|
|
63
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
64
|
+
|
|
65
|
+
#endif // _LIBCPP_SRC_ALIGNED_ALLOC_H
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
# define _LIBCPP_ELAST ELAST
|
|
24
24
|
#elif defined(__LLVM_LIBC__)
|
|
25
25
|
// No _LIBCPP_ELAST needed for LLVM libc
|
|
26
|
-
#elif
|
|
26
|
+
#elif _LIBCPP_LIBC_NEWLIB
|
|
27
27
|
# define _LIBCPP_ELAST __ELASTERROR
|
|
28
28
|
#elif defined(__NuttX__)
|
|
29
29
|
// No _LIBCPP_ELAST needed on NuttX
|
|
@@ -9,11 +9,6 @@
|
|
|
9
9
|
#ifndef _LIBCPP_SRC_INCLUDE_FROM_CHARS_FLOATING_POINT_H
|
|
10
10
|
#define _LIBCPP_SRC_INCLUDE_FROM_CHARS_FLOATING_POINT_H
|
|
11
11
|
|
|
12
|
-
// These headers are in the shared LLVM-libc header library.
|
|
13
|
-
#include "shared/fp_bits.h"
|
|
14
|
-
#include "shared/str_to_float.h"
|
|
15
|
-
#include "shared/str_to_integer.h"
|
|
16
|
-
|
|
17
12
|
#include <__assert>
|
|
18
13
|
#include <__config>
|
|
19
14
|
#include <cctype>
|
|
@@ -21,6 +16,15 @@
|
|
|
21
16
|
#include <concepts>
|
|
22
17
|
#include <limits>
|
|
23
18
|
|
|
19
|
+
// Make sure we use libc++'s assertion machinery within the shared code we use
|
|
20
|
+
// from LLVM libc.
|
|
21
|
+
#define LIBC_ASSERT(cond) _LIBCPP_ASSERT((cond), _LIBCPP_TOSTRING(cond))
|
|
22
|
+
|
|
23
|
+
// These headers are in the shared LLVM-libc header library.
|
|
24
|
+
#include "shared/fp_bits.h"
|
|
25
|
+
#include "shared/str_to_float.h"
|
|
26
|
+
#include "shared/str_to_integer.h"
|
|
27
|
+
|
|
24
28
|
// Included for the _Floating_type_traits class
|
|
25
29
|
#include "to_chars_floating_point.h"
|
|
26
30
|
|
|
@@ -193,7 +197,7 @@ struct __exponent_result {
|
|
|
193
197
|
// __offset, 0, false. This allows using the results unconditionally, the
|
|
194
198
|
// __present is important for the scientific notation, where the value is
|
|
195
199
|
// mandatory.
|
|
196
|
-
__exponent_result __parse_exponent(const char* __input, size_t __n, size_t __offset, char __marker) {
|
|
200
|
+
static __exponent_result __parse_exponent(const char* __input, size_t __n, size_t __offset, char __marker) {
|
|
197
201
|
if (__offset + 1 < __n && // an exponent always needs at least one digit.
|
|
198
202
|
std::tolower(__input[__offset]) == __marker && //
|
|
199
203
|
!std::isspace(__input[__offset + 1]) // leading whitespace is not allowed.
|
|
@@ -213,7 +217,7 @@ __exponent_result __parse_exponent(const char* __input, size_t __n, size_t __off
|
|
|
213
217
|
}
|
|
214
218
|
|
|
215
219
|
// Here we do this operation as int64 to avoid overflow.
|
|
216
|
-
int32_t __merge_exponents(int64_t __fractional, int64_t __exponent, int __max_biased_exponent) {
|
|
220
|
+
static int32_t __merge_exponents(int64_t __fractional, int64_t __exponent, int __max_biased_exponent) {
|
|
217
221
|
int64_t __sum = __fractional + __exponent;
|
|
218
222
|
|
|
219
223
|
if (__sum > __max_biased_exponent)
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
// This is a low-level utility which does not work on all platforms, since it needs
|
|
30
30
|
// to make assumptions about the object file format in use. Furthermore, it requires
|
|
31
31
|
// the "base definition" of the function (the one we want to check whether it has been
|
|
32
|
-
// overridden) to be defined using the
|
|
32
|
+
// overridden) to be defined using the OVERRIDABLE_FUNCTION macro.
|
|
33
33
|
//
|
|
34
34
|
// This currently works with Mach-O files (used on Darwin) and with ELF files (used on Linux
|
|
35
35
|
// and others). On platforms where we know how to implement this detection, the macro
|
|
36
36
|
// _LIBCPP_CAN_DETECT_OVERRIDDEN_FUNCTION is defined to 1, and it is defined to 0 on
|
|
37
|
-
// other platforms. The
|
|
37
|
+
// other platforms. The OVERRIDABLE_FUNCTION macro is defined to perform a normal
|
|
38
38
|
// function definition on unsupported platforms so that it can be used to define functions
|
|
39
39
|
// regardless of whether detection is actually supported.
|
|
40
40
|
//
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
// Let's say we want to check whether a weak function `f` has been overridden by the user.
|
|
45
45
|
// The general mechanism works by placing `f`'s definition (in the libc++ built library)
|
|
46
46
|
// inside a special section, which we do using the `__section__` attribute via the
|
|
47
|
-
//
|
|
47
|
+
// OVERRIDABLE_FUNCTION macro.
|
|
48
48
|
//
|
|
49
49
|
// Then, when comes the time to check whether the function has been overridden, we take
|
|
50
50
|
// the address of the function and we check whether it falls inside the special function
|
|
@@ -66,11 +66,10 @@
|
|
|
66
66
|
#if defined(_LIBCPP_OBJECT_FORMAT_MACHO)
|
|
67
67
|
|
|
68
68
|
# define _LIBCPP_CAN_DETECT_OVERRIDDEN_FUNCTION 1
|
|
69
|
-
# define
|
|
70
|
-
__attribute__((__section__("__TEXT,__lcxx_override,regular,pure_instructions"))) _LIBCPP_WEAK
|
|
69
|
+
# define OVERRIDABLE_FUNCTION \
|
|
70
|
+
__attribute__((__section__("__TEXT,__lcxx_override,regular,pure_instructions"))) _LIBCPP_WEAK
|
|
71
71
|
|
|
72
|
-
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
73
|
-
template <typename T, T* _Func>
|
|
72
|
+
_LIBCPP_BEGIN_NAMESPACE_STD template <typename T, T* _Func>
|
|
74
73
|
_LIBCPP_HIDE_FROM_ABI inline bool __is_function_overridden() noexcept {
|
|
75
74
|
// Declare two dummy bytes and give them these special `__asm` values. These values are
|
|
76
75
|
// defined by the linker, which means that referring to `&__lcxx_override_start` will
|
|
@@ -100,8 +99,7 @@ _LIBCPP_END_NAMESPACE_STD
|
|
|
100
99
|
#elif defined(_LIBCPP_OBJECT_FORMAT_ELF) && !defined(__NVPTX__)
|
|
101
100
|
|
|
102
101
|
# define _LIBCPP_CAN_DETECT_OVERRIDDEN_FUNCTION 1
|
|
103
|
-
# define
|
|
104
|
-
__attribute__((__section__("__lcxx_override"))) _LIBCPP_WEAK type name arglist
|
|
102
|
+
# define OVERRIDABLE_FUNCTION __attribute__((__section__("__lcxx_override"))) _LIBCPP_WEAK
|
|
105
103
|
|
|
106
104
|
// This is very similar to what we do for Mach-O above. The ELF linker will implicitly define
|
|
107
105
|
// variables with those names corresponding to the start and the end of the section.
|
|
@@ -129,7 +127,7 @@ _LIBCPP_END_NAMESPACE_STD
|
|
|
129
127
|
#else
|
|
130
128
|
|
|
131
129
|
# define _LIBCPP_CAN_DETECT_OVERRIDDEN_FUNCTION 0
|
|
132
|
-
# define
|
|
130
|
+
# define OVERRIDABLE_FUNCTION _LIBCPP_WEAK
|
|
133
131
|
|
|
134
132
|
#endif
|
|
135
133
|
|
package/libcxx/src/iostream.cpp
CHANGED
|
@@ -16,24 +16,40 @@
|
|
|
16
16
|
|
|
17
17
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
18
18
|
|
|
19
|
+
// This file implements the various stream objects provided inside <iostream>. We're doing some ODR violations in here,
|
|
20
|
+
// so this quite fragile. Specifically, the size of the stream objects (i.e. cout, cin etc.) needs to stay the same.
|
|
21
|
+
// For that reason, we have `stream` and `stream_data` separated into two objects. The public `stream` objects only
|
|
22
|
+
// contain the actual stream, while the private `stream_data` objects contains the `basic_streambuf` we're using as well
|
|
23
|
+
// as the mbstate_t. `stream_data` objects are only accessible within the library, so they aren't ABI sensitive and we
|
|
24
|
+
// can change them as we want.
|
|
25
|
+
|
|
26
|
+
template <class StreamT>
|
|
27
|
+
union stream {
|
|
28
|
+
constexpr stream() {}
|
|
29
|
+
stream(const stream&) = delete;
|
|
30
|
+
stream& operator=(const stream&) = delete;
|
|
31
|
+
constexpr ~stream() {}
|
|
32
|
+
|
|
33
|
+
StreamT value;
|
|
34
|
+
};
|
|
35
|
+
|
|
19
36
|
template <class StreamT, class BufferT>
|
|
20
37
|
union stream_data {
|
|
21
38
|
constexpr stream_data() {}
|
|
22
39
|
constexpr ~stream_data() {}
|
|
23
40
|
struct {
|
|
24
|
-
// The stream has to be the first element, since that's referenced by the stream declarations in <iostream>
|
|
25
|
-
StreamT stream;
|
|
26
41
|
BufferT buffer;
|
|
27
42
|
mbstate_t mb;
|
|
28
43
|
};
|
|
29
|
-
|
|
30
|
-
void init(FILE* stdstream) {
|
|
31
|
-
mb = {};
|
|
32
|
-
std::construct_at(&buffer, stdstream, &mb);
|
|
33
|
-
std::construct_at(&stream, &buffer);
|
|
34
|
-
}
|
|
35
44
|
};
|
|
36
45
|
|
|
46
|
+
template <class StreamT, class BufferT>
|
|
47
|
+
void init_stream(FILE* stdstream, stream<StreamT>& stream, stream_data<StreamT, BufferT>& data) {
|
|
48
|
+
data.mb = {};
|
|
49
|
+
std::construct_at(&data.buffer, stdstream, &data.mb);
|
|
50
|
+
std::construct_at(&stream.value, &data.buffer);
|
|
51
|
+
}
|
|
52
|
+
|
|
37
53
|
#define CHAR_MANGLING_char "D"
|
|
38
54
|
#define CHAR_MANGLING_wchar_t "_W"
|
|
39
55
|
#define CHAR_MANGLING(CharT) CHAR_MANGLING_##CharT
|
|
@@ -46,25 +62,28 @@ union stream_data {
|
|
|
46
62
|
|
|
47
63
|
#ifdef _LIBCPP_ABI_MICROSOFT
|
|
48
64
|
# define STREAM(StreamT, BufferT, CharT, var) \
|
|
49
|
-
STRING_DATA_CONSTINIT stream_data<StreamT<CharT>, BufferT<CharT>> var
|
|
65
|
+
STRING_DATA_CONSTINIT stream_data<StreamT<CharT>, BufferT<CharT>> var##_data; \
|
|
66
|
+
_LIBCPP_EXPORTED_FROM_ABI STRING_DATA_CONSTINIT stream<StreamT<CharT>> var __asm__( \
|
|
50
67
|
"?" #var "@" ABI_NAMESPACE_STR "@std@@3V?$" #StreamT \
|
|
51
68
|
"@" CHAR_MANGLING(CharT) "U?$char_traits@" CHAR_MANGLING(CharT) "@" ABI_NAMESPACE_STR "@std@@@12@A")
|
|
52
69
|
#else
|
|
53
|
-
# define STREAM(StreamT, BufferT, CharT, var)
|
|
70
|
+
# define STREAM(StreamT, BufferT, CharT, var) \
|
|
71
|
+
STRING_DATA_CONSTINIT stream_data<StreamT<CharT>, BufferT<CharT>> var##_data; \
|
|
72
|
+
_LIBCPP_EXPORTED_FROM_ABI STRING_DATA_CONSTINIT stream<StreamT<CharT>> var
|
|
54
73
|
#endif
|
|
55
74
|
|
|
56
75
|
// These definitions and the declarations in <iostream> technically cause ODR violations, since they have different
|
|
57
76
|
// types (stream_data and {i,o}stream respectively). This means that <iostream> should never be included in this TU.
|
|
58
77
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
78
|
+
STREAM(basic_istream, __stdinbuf, char, cin);
|
|
79
|
+
STREAM(basic_ostream, __stdoutbuf, char, cout);
|
|
80
|
+
STREAM(basic_ostream, __stdoutbuf, char, cerr);
|
|
81
|
+
STREAM(basic_ostream, __stdoutbuf, char, clog);
|
|
63
82
|
#if _LIBCPP_HAS_WIDE_CHARACTERS
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
83
|
+
STREAM(basic_istream, __stdinbuf, wchar_t, wcin);
|
|
84
|
+
STREAM(basic_ostream, __stdoutbuf, wchar_t, wcout);
|
|
85
|
+
STREAM(basic_ostream, __stdoutbuf, wchar_t, wcerr);
|
|
86
|
+
STREAM(basic_ostream, __stdoutbuf, wchar_t, wclog);
|
|
68
87
|
#endif // _LIBCPP_HAS_WIDE_CHARACTERS
|
|
69
88
|
|
|
70
89
|
// Pretend we're inside a system header so the compiler doesn't flag the use of the init_priority
|
|
@@ -98,34 +117,34 @@ public:
|
|
|
98
117
|
DoIOSInit::DoIOSInit() {
|
|
99
118
|
force_locale_initialization();
|
|
100
119
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
120
|
+
init_stream(stdin, cin, cin_data);
|
|
121
|
+
init_stream(stdout, cout, cout_data);
|
|
122
|
+
init_stream(stderr, cerr, cerr_data);
|
|
123
|
+
init_stream(stderr, clog, clog_data);
|
|
105
124
|
|
|
106
|
-
cin.
|
|
107
|
-
std::unitbuf(cerr.
|
|
108
|
-
cerr.
|
|
125
|
+
cin.value.tie(&cout.value);
|
|
126
|
+
std::unitbuf(cerr.value);
|
|
127
|
+
cerr.value.tie(&cout.value);
|
|
109
128
|
|
|
110
129
|
#if _LIBCPP_HAS_WIDE_CHARACTERS
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
wcin.
|
|
117
|
-
std::unitbuf(wcerr.
|
|
118
|
-
wcerr.
|
|
130
|
+
init_stream(stdin, wcin, wcin_data);
|
|
131
|
+
init_stream(stdout, wcout, wcout_data);
|
|
132
|
+
init_stream(stderr, wcerr, wcerr_data);
|
|
133
|
+
init_stream(stderr, wclog, wclog_data);
|
|
134
|
+
|
|
135
|
+
wcin.value.tie(&wcout.value);
|
|
136
|
+
std::unitbuf(wcerr.value);
|
|
137
|
+
wcerr.value.tie(&wcout.value);
|
|
119
138
|
#endif
|
|
120
139
|
}
|
|
121
140
|
|
|
122
141
|
DoIOSInit::~DoIOSInit() {
|
|
123
|
-
cout.
|
|
124
|
-
clog.
|
|
142
|
+
cout.value.flush();
|
|
143
|
+
clog.value.flush();
|
|
125
144
|
|
|
126
145
|
#if _LIBCPP_HAS_WIDE_CHARACTERS
|
|
127
|
-
wcout.
|
|
128
|
-
wclog.
|
|
146
|
+
wcout.value.flush();
|
|
147
|
+
wclog.value.flush();
|
|
129
148
|
#endif
|
|
130
149
|
}
|
|
131
150
|
|