re2 1.24.0 → 1.25.0
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/LICENSE +15 -20
- package/README.md +63 -4
- package/binding.gyp +1 -2
- package/lib/addon.cc +9 -5
- package/lib/exec.cc +4 -4
- package/lib/match.cc +4 -4
- package/lib/new.cc +6 -6
- package/lib/pattern.cc +148 -1
- package/lib/replace.cc +5 -4
- package/lib/search.cc +1 -1
- package/lib/set.cc +85 -10
- package/lib/test.cc +1 -1
- package/lib/unicode_properties.h +15840 -0
- package/lib/wrapped_re2.h +40 -4
- package/lib/wrapped_re2_set.h +3 -1
- package/llms-full.txt +497 -0
- package/llms.txt +135 -0
- package/package.json +19 -11
- package/re2.d.ts +2 -0
- package/re2.js +1 -0
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +87 -74
- package/vendor/abseil-cpp/CMakeLists.txt +3 -3
- package/vendor/abseil-cpp/FAQ.md +130 -79
- package/vendor/abseil-cpp/MODULE.bazel +6 -7
- package/vendor/abseil-cpp/absl/BUILD.bazel +6 -0
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/algorithm/algorithm.h +34 -2
- package/vendor/abseil-cpp/absl/algorithm/container.h +164 -17
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +390 -13
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +53 -6
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +28 -4
- package/vendor/abseil-cpp/absl/base/attributes.h +61 -42
- package/vendor/abseil-cpp/absl/base/call_once.h +1 -0
- package/vendor/abseil-cpp/absl/base/casts.h +8 -1
- package/vendor/abseil-cpp/absl/base/casts_test.cc +3 -6
- package/vendor/abseil-cpp/absl/base/config.h +53 -9
- package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +9 -9
- package/vendor/abseil-cpp/absl/base/fast_type_id.h +30 -2
- package/vendor/abseil-cpp/absl/base/fast_type_id_test.cc +3 -0
- package/vendor/abseil-cpp/absl/base/internal/exception_safety_testing.h +15 -12
- package/vendor/abseil-cpp/absl/base/internal/hardening.h +136 -0
- package/vendor/abseil-cpp/absl/base/internal/hardening_test.cc +168 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +2 -2
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +6 -0
- package/vendor/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
- package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +1 -2
- package/vendor/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
- package/vendor/abseil-cpp/absl/base/macros.h +36 -20
- package/vendor/abseil-cpp/absl/base/nullability.h +4 -3
- package/vendor/abseil-cpp/absl/base/optimization.h +3 -2
- package/vendor/abseil-cpp/absl/base/optimization_test.cc +4 -3
- package/vendor/abseil-cpp/absl/base/options.h +55 -1
- package/vendor/abseil-cpp/absl/base/policy_checks.h +5 -5
- package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
- package/vendor/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
- package/vendor/abseil-cpp/absl/base/throw_delegate_test.cc +19 -28
- package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +3 -2
- package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +19 -7
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +6 -5
- package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +3 -5
- package/vendor/abseil-cpp/absl/container/btree_set.h +5 -5
- package/vendor/abseil-cpp/absl/container/btree_test.cc +11 -14
- package/vendor/abseil-cpp/absl/container/chunked_queue.h +8 -6
- package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +5 -5
- package/vendor/abseil-cpp/absl/container/fixed_array.h +14 -13
- package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +3 -3
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +18 -6
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +34 -1
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +21 -7
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +39 -7
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +29 -29
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +2 -2
- package/vendor/abseil-cpp/absl/container/internal/btree.h +32 -24
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +16 -17
- package/vendor/abseil-cpp/absl/container/internal/common.h +6 -5
- package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +16 -16
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +13 -13
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +41 -31
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +2 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +4 -4
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +3 -3
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +27 -19
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -2
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +0 -17
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +12 -30
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +28 -28
- package/vendor/abseil-cpp/absl/container/internal/layout.h +13 -13
- package/vendor/abseil-cpp/absl/container/internal/layout_test.cc +3 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +60 -62
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +59 -39
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +619 -326
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +25 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +4 -4
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +575 -159
- package/vendor/abseil-cpp/absl/container/linked_hash_map.h +2 -2
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +27 -15
- package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +34 -0
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +25 -11
- package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +39 -7
- package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +7 -4
- package/vendor/abseil-cpp/absl/crc/BUILD.bazel +0 -1
- package/vendor/abseil-cpp/absl/crc/CMakeLists.txt +2 -3
- package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +2 -1
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +6 -6
- package/vendor/abseil-cpp/absl/crc/internal/crc.cc +4 -6
- package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
- package/vendor/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +143 -81
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +9 -31
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +3 -33
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +2 -1
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +12 -2
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +2 -3
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +11 -0
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +46 -36
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +18 -58
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +5 -48
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +10 -124
- package/vendor/abseil-cpp/absl/debugging/symbolize.cc +20 -2
- package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +58 -106
- package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +37 -36
- package/vendor/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -3
- package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +1 -1
- package/vendor/abseil-cpp/absl/flags/commandlineflag.h +8 -6
- package/vendor/abseil-cpp/absl/flags/commandlineflag_test.cc +1 -1
- package/vendor/abseil-cpp/absl/flags/flag_benchmark.cc +5 -5
- package/vendor/abseil-cpp/absl/flags/flag_test.cc +30 -30
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +4 -4
- package/vendor/abseil-cpp/absl/flags/internal/flag.h +6 -6
- package/vendor/abseil-cpp/absl/flags/marshalling.h +2 -28
- package/vendor/abseil-cpp/absl/flags/marshalling_test.cc +12 -11
- package/vendor/abseil-cpp/absl/flags/reflection_test.cc +1 -1
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +26 -1
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +29 -1
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +13 -14
- package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +46 -47
- package/vendor/abseil-cpp/absl/functional/bind_back.h +79 -0
- package/vendor/abseil-cpp/absl/functional/bind_back_test.cc +237 -0
- package/vendor/abseil-cpp/absl/functional/bind_front.h +7 -1
- package/vendor/abseil-cpp/absl/functional/bind_front_test.cc +4 -4
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +2 -2
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +28 -28
- package/vendor/abseil-cpp/absl/functional/internal/back_binder.h +95 -0
- package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
- package/vendor/abseil-cpp/absl/functional/overload_test.cc +13 -13
- package/vendor/abseil-cpp/absl/hash/BUILD.bazel +1 -2
- package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +1 -2
- package/vendor/abseil-cpp/absl/hash/hash.h +1 -1
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +14 -20
- package/vendor/abseil-cpp/absl/hash/hash_testing.h +11 -9
- package/vendor/abseil-cpp/absl/hash/internal/city.cc +39 -51
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +165 -47
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +86 -27
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +36 -1
- package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +8 -5
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +5 -2
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +5 -3
- package/vendor/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +15 -1
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -4
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +14 -0
- package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -1
- package/vendor/abseil-cpp/absl/log/internal/proto.cc +13 -0
- package/vendor/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
- package/vendor/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
- package/vendor/abseil-cpp/absl/log/internal/structured_proto_test.cc +3 -3
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +2 -2
- package/vendor/abseil-cpp/absl/log/internal/vlog_config_benchmark.cc +3 -3
- package/vendor/abseil-cpp/absl/log/log_format_test.cc +19 -2
- package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +18 -0
- package/vendor/abseil-cpp/absl/log/log_streamer.h +29 -2
- package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +18 -0
- package/vendor/abseil-cpp/absl/log/scoped_mock_log_test.cc +1 -1
- package/vendor/abseil-cpp/absl/log/vlog_is_on.h +0 -2
- package/vendor/abseil-cpp/absl/log/vlog_is_on_test.cc +6 -5
- package/vendor/abseil-cpp/absl/memory/memory.h +55 -5
- package/vendor/abseil-cpp/absl/memory/memory_test.cc +55 -1
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/internal/requires.h +1 -1
- package/vendor/abseil-cpp/absl/meta/type_traits.h +119 -55
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +7 -7
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +6 -6
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +3 -1
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +0 -4
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +32 -33
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +25 -2
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +8 -5
- package/vendor/abseil-cpp/absl/random/BUILD.bazel +13 -1
- package/vendor/abseil-cpp/absl/random/CMakeLists.txt +23 -2
- package/vendor/abseil-cpp/absl/random/benchmarks.cc +1 -1
- package/vendor/abseil-cpp/absl/random/beta_distribution.h +2 -2
- package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
- package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +43 -0
- package/vendor/abseil-cpp/absl/random/discrete_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/distributions.h +17 -17
- package/vendor/abseil-cpp/absl/random/distributions_test.cc +4 -4
- package/vendor/abseil-cpp/absl/random/exponential_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +4 -2
- package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
- package/vendor/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/generate_real.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +14 -40
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +2 -2
- package/vendor/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
- package/vendor/abseil-cpp/absl/random/internal/pcg_engine_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
- package/vendor/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/randen_test.cc +3 -2
- package/vendor/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +4 -4
- package/vendor/abseil-cpp/absl/random/internal/seed_material.h +2 -1
- package/vendor/abseil-cpp/absl/random/internal/traits.h +21 -0
- package/vendor/abseil-cpp/absl/random/internal/traits_test.cc +5 -0
- package/vendor/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
- package/vendor/abseil-cpp/absl/random/internal/uniform_helper_test.cc +2 -1
- package/vendor/abseil-cpp/absl/random/mocking_access.h +74 -0
- package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +9 -19
- package/vendor/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +81 -0
- package/vendor/abseil-cpp/absl/status/CMakeLists.txt +91 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +26 -2
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +22 -8
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +43 -43
- package/vendor/abseil-cpp/absl/status/status.cc +62 -70
- package/vendor/abseil-cpp/absl/status/status.h +249 -23
- package/vendor/abseil-cpp/absl/status/status_benchmark.cc +12 -0
- package/vendor/abseil-cpp/absl/status/status_builder.cc +196 -0
- package/vendor/abseil-cpp/absl/status/status_builder.h +978 -0
- package/vendor/abseil-cpp/absl/status/status_builder_test.cc +380 -0
- package/vendor/abseil-cpp/absl/status/status_macros.h +484 -0
- package/vendor/abseil-cpp/absl/status/status_macros_test.cc +634 -0
- package/vendor/abseil-cpp/absl/status/status_matchers.h +2 -1
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +3 -4
- package/vendor/abseil-cpp/absl/status/status_payload_printer.h +3 -2
- package/vendor/abseil-cpp/absl/status/status_test.cc +443 -13
- package/vendor/abseil-cpp/absl/status/statusor.h +69 -36
- package/vendor/abseil-cpp/absl/status/statusor_test.cc +132 -35
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +42 -7
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +33 -4
- package/vendor/abseil-cpp/absl/strings/ascii.h +1 -2
- package/vendor/abseil-cpp/absl/strings/atod_manual_test.cc +5 -5
- package/vendor/abseil-cpp/absl/strings/cord.cc +26 -7
- package/vendor/abseil-cpp/absl/strings/cord.h +23 -13
- package/vendor/abseil-cpp/absl/strings/cord_buffer.h +4 -2
- package/vendor/abseil-cpp/absl/strings/cord_test.cc +85 -9
- package/vendor/abseil-cpp/absl/strings/escaping.cc +183 -35
- package/vendor/abseil-cpp/absl/strings/escaping.h +12 -2
- package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +1 -3
- package/vendor/abseil-cpp/absl/strings/escaping_test.cc +22 -18
- package/vendor/abseil-cpp/absl/strings/has_absl_stringify_test.cc +2 -2
- package/vendor/abseil-cpp/absl/strings/has_ostream_operator_test.cc +2 -2
- package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +10 -10
- package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
- package/vendor/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
- package/vendor/abseil-cpp/absl/strings/internal/escaping.h +2 -26
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +23 -2
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +6 -2
- package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -24
- package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +16 -41
- package/vendor/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
- package/vendor/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +12 -20
- package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +510 -307
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +0 -1
- package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +9 -10
- package/vendor/abseil-cpp/absl/strings/internal/string_constant_test.cc +6 -5
- package/vendor/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
- package/vendor/abseil-cpp/absl/strings/internal/stringify_stream.h +119 -0
- package/vendor/abseil-cpp/absl/strings/internal/stringify_stream_test.cc +111 -0
- package/vendor/abseil-cpp/absl/strings/numbers.cc +406 -0
- package/vendor/abseil-cpp/absl/strings/numbers.h +4 -0
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +33 -0
- package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +10 -6
- package/vendor/abseil-cpp/absl/strings/str_cat.h +36 -1
- package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +28 -0
- package/vendor/abseil-cpp/absl/strings/str_join_test.cc +4 -4
- package/vendor/abseil-cpp/absl/strings/str_split.h +11 -6
- package/vendor/abseil-cpp/absl/strings/str_split_test.cc +13 -0
- package/vendor/abseil-cpp/absl/strings/substitute.h +2 -2
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +21 -0
- package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +13 -0
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +32 -2
- package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +17 -3
- package/vendor/abseil-cpp/absl/time/BUILD.bazel +80 -0
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +73 -0
- package/vendor/abseil-cpp/absl/time/clock.h +3 -0
- package/vendor/abseil-cpp/absl/time/clock_interface.cc +71 -0
- package/vendor/abseil-cpp/absl/time/clock_interface.h +93 -0
- package/vendor/abseil-cpp/absl/time/clock_interface_test.cc +128 -0
- package/vendor/abseil-cpp/absl/time/format.cc +3 -10
- package/vendor/abseil-cpp/absl/time/format_test.cc +12 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +90 -89
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +80 -5
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +1 -2
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +3 -3
- package/vendor/abseil-cpp/absl/time/simulated_clock.cc +225 -0
- package/vendor/abseil-cpp/absl/time/simulated_clock.h +109 -0
- package/vendor/abseil-cpp/absl/time/simulated_clock_test.cc +614 -0
- package/vendor/abseil-cpp/absl/types/BUILD.bazel +116 -0
- package/vendor/abseil-cpp/absl/types/CMakeLists.txt +100 -0
- package/vendor/abseil-cpp/absl/types/any.h +26 -4
- package/vendor/abseil-cpp/absl/types/any_span.h +1067 -0
- package/vendor/abseil-cpp/absl/types/any_span_benchmark.cc +258 -0
- package/vendor/abseil-cpp/absl/types/any_span_test.cc +1210 -0
- package/vendor/abseil-cpp/absl/types/compare.h +4 -4
- package/vendor/abseil-cpp/absl/types/internal/any_span.h +477 -0
- package/vendor/abseil-cpp/absl/types/internal/span.h +5 -6
- package/vendor/abseil-cpp/absl/types/optional.h +30 -3
- package/vendor/abseil-cpp/absl/types/optional_ref.h +295 -0
- package/vendor/abseil-cpp/absl/types/optional_ref_test.cc +370 -0
- package/vendor/abseil-cpp/absl/types/source_location.cc +18 -0
- package/vendor/abseil-cpp/absl/types/source_location.h +172 -0
- package/vendor/abseil-cpp/absl/types/source_location_test.cc +139 -0
- package/vendor/abseil-cpp/absl/types/span.h +19 -23
- package/vendor/abseil-cpp/absl/types/variant.h +75 -18
- package/vendor/abseil-cpp/absl/types/variant_test.cc +23 -23
- package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -0
- package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/utility/utility.h +99 -16
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -0
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +10 -4
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +13 -6
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +10 -4
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +12 -5
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +9 -2
- package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +10 -3
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +8 -2
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +4 -3
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +2 -2
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -1
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -1
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +0 -118
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +0 -71
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +0 -97
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
|
|
46
46
|
#include "absl/base/attributes.h"
|
|
47
47
|
#include "absl/base/config.h"
|
|
48
|
+
#include "absl/base/macros.h"
|
|
48
49
|
|
|
49
50
|
#ifdef __cpp_lib_span
|
|
50
51
|
#include <span> // NOLINT(build/c++20)
|
|
@@ -103,9 +104,10 @@ struct is_detected : is_detected_impl<void, Op, Args...>::type {};
|
|
|
103
104
|
// metafunction allows you to create a general case that maps to `void` while
|
|
104
105
|
// allowing specializations that map to specific types.
|
|
105
106
|
//
|
|
106
|
-
// This metafunction is
|
|
107
|
-
//
|
|
108
|
-
//
|
|
107
|
+
// This metafunction is a workaround for some implementations of `std::void_t`
|
|
108
|
+
// that evaluate to `void` prematurely, causing partial specializations to
|
|
109
|
+
// appear duplicated (and thus invalid) to the compiler prior to substitution
|
|
110
|
+
// taking place. Whenever possible, use `std::void_t` instead.
|
|
109
111
|
template <typename... Ts>
|
|
110
112
|
using void_t = typename type_traits_internal::VoidTImpl<Ts...>::type;
|
|
111
113
|
|
|
@@ -115,38 +117,115 @@ using void_t = typename type_traits_internal::VoidTImpl<Ts...>::type;
|
|
|
115
117
|
//
|
|
116
118
|
// See the documentation for the STL <type_traits> header for more information:
|
|
117
119
|
// https://en.cppreference.com/w/cpp/header/type_traits
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
using std::
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
using std::
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
using
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
using std::
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
using
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
using std::
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
using std::
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
using std::
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
using std::
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
using std::
|
|
120
|
+
|
|
121
|
+
template <class T>
|
|
122
|
+
using add_const_t ABSL_DEPRECATE_AND_INLINE() = std::add_const_t<T>;
|
|
123
|
+
|
|
124
|
+
template <class T>
|
|
125
|
+
using add_cv_t ABSL_DEPRECATE_AND_INLINE() = std::add_cv_t<T>;
|
|
126
|
+
|
|
127
|
+
template <class T>
|
|
128
|
+
using add_lvalue_reference_t ABSL_DEPRECATE_AND_INLINE() =
|
|
129
|
+
std::add_lvalue_reference_t<T>;
|
|
130
|
+
|
|
131
|
+
template <class T>
|
|
132
|
+
using add_pointer_t ABSL_DEPRECATE_AND_INLINE() = std::add_pointer_t<T>;
|
|
133
|
+
|
|
134
|
+
template <class T>
|
|
135
|
+
using add_rvalue_reference_t ABSL_DEPRECATE_AND_INLINE() =
|
|
136
|
+
std::add_rvalue_reference_t<T>;
|
|
137
|
+
|
|
138
|
+
template <class T>
|
|
139
|
+
using add_volatile_t ABSL_DEPRECATE_AND_INLINE() = std::add_volatile_t<T>;
|
|
140
|
+
|
|
141
|
+
template <class... T>
|
|
142
|
+
using common_type_t ABSL_DEPRECATE_AND_INLINE() = std::common_type_t<T...>;
|
|
143
|
+
|
|
144
|
+
template <bool C, class T, class F>
|
|
145
|
+
using conditional_t ABSL_DEPRECATE_AND_INLINE() = std::conditional_t<C, T, F>;
|
|
146
|
+
|
|
147
|
+
template <class... T>
|
|
148
|
+
using conjunction ABSL_DEPRECATE_AND_INLINE() = std::conjunction<T...>;
|
|
149
|
+
|
|
150
|
+
template <class T>
|
|
151
|
+
using decay_t ABSL_DEPRECATE_AND_INLINE() = std::decay_t<T>;
|
|
152
|
+
|
|
153
|
+
template <bool C, class T = void>
|
|
154
|
+
using enable_if_t [[deprecated("Use std::enable_if_t instead.")]] =
|
|
155
|
+
std::enable_if_t<C, T>;
|
|
156
|
+
|
|
157
|
+
template <class... T>
|
|
158
|
+
using disjunction ABSL_DEPRECATE_AND_INLINE() = std::disjunction<T...>;
|
|
159
|
+
|
|
160
|
+
template <class T>
|
|
161
|
+
using is_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
|
|
162
|
+
std::is_copy_assignable<T>;
|
|
163
|
+
|
|
164
|
+
template <class T>
|
|
165
|
+
using is_function ABSL_DEPRECATE_AND_INLINE() = std::is_function<T>;
|
|
166
|
+
|
|
167
|
+
template <class T>
|
|
168
|
+
using is_move_assignable ABSL_DEPRECATE_AND_INLINE() =
|
|
169
|
+
std::is_move_assignable<T>;
|
|
170
|
+
|
|
171
|
+
template <class T>
|
|
172
|
+
using is_trivially_copy_assignable ABSL_DEPRECATE_AND_INLINE() =
|
|
173
|
+
std::is_trivially_copy_assignable<T>;
|
|
174
|
+
|
|
175
|
+
template <class T>
|
|
176
|
+
using is_trivially_copy_constructible ABSL_DEPRECATE_AND_INLINE() =
|
|
177
|
+
std::is_trivially_copy_constructible<T>;
|
|
178
|
+
|
|
179
|
+
template <class T>
|
|
180
|
+
using is_trivially_default_constructible ABSL_DEPRECATE_AND_INLINE() =
|
|
181
|
+
std::is_trivially_default_constructible<T>;
|
|
182
|
+
|
|
183
|
+
template <class T>
|
|
184
|
+
using is_trivially_destructible ABSL_DEPRECATE_AND_INLINE() =
|
|
185
|
+
std::is_trivially_destructible<T>;
|
|
186
|
+
|
|
187
|
+
template <class T>
|
|
188
|
+
using is_trivially_move_assignable ABSL_DEPRECATE_AND_INLINE() =
|
|
189
|
+
std::is_trivially_move_assignable<T>;
|
|
190
|
+
|
|
191
|
+
template <class T>
|
|
192
|
+
using is_trivially_move_constructible ABSL_DEPRECATE_AND_INLINE() =
|
|
193
|
+
std::is_trivially_move_constructible<T>;
|
|
194
|
+
|
|
195
|
+
template <class T>
|
|
196
|
+
using make_signed_t ABSL_DEPRECATE_AND_INLINE() = std::make_signed_t<T>;
|
|
197
|
+
|
|
198
|
+
template <class T>
|
|
199
|
+
using make_unsigned_t ABSL_DEPRECATE_AND_INLINE() = std::make_unsigned_t<T>;
|
|
200
|
+
|
|
201
|
+
template <class T>
|
|
202
|
+
using negation ABSL_DEPRECATE_AND_INLINE() = std::negation<T>;
|
|
203
|
+
|
|
204
|
+
template <class T>
|
|
205
|
+
using remove_all_extents_t ABSL_DEPRECATE_AND_INLINE() =
|
|
206
|
+
std::remove_all_extents_t<T>;
|
|
207
|
+
|
|
208
|
+
template <class T>
|
|
209
|
+
using remove_const_t ABSL_DEPRECATE_AND_INLINE() = std::remove_const_t<T>;
|
|
210
|
+
|
|
211
|
+
template <class T>
|
|
212
|
+
using remove_cv_t ABSL_DEPRECATE_AND_INLINE() = std::remove_cv_t<T>;
|
|
213
|
+
|
|
214
|
+
template <class T>
|
|
215
|
+
using remove_extent_t ABSL_DEPRECATE_AND_INLINE() = std::remove_extent_t<T>;
|
|
216
|
+
|
|
217
|
+
template <class T>
|
|
218
|
+
using remove_pointer_t ABSL_DEPRECATE_AND_INLINE() = std::remove_pointer_t<T>;
|
|
219
|
+
|
|
220
|
+
template <class T>
|
|
221
|
+
using remove_reference_t ABSL_DEPRECATE_AND_INLINE() =
|
|
222
|
+
std::remove_reference_t<T>;
|
|
223
|
+
|
|
224
|
+
template <class T>
|
|
225
|
+
using remove_volatile_t ABSL_DEPRECATE_AND_INLINE() = std::remove_volatile_t<T>;
|
|
226
|
+
|
|
227
|
+
template <class T>
|
|
228
|
+
using underlying_type_t ABSL_DEPRECATE_AND_INLINE() = std::underlying_type_t<T>;
|
|
150
229
|
|
|
151
230
|
#if defined(__cpp_lib_remove_cvref) && __cpp_lib_remove_cvref >= 201711L
|
|
152
231
|
template <typename T>
|
|
@@ -211,31 +290,16 @@ template <typename F>
|
|
|
211
290
|
using result_of_t = typename type_traits_internal::result_of<F>::type;
|
|
212
291
|
|
|
213
292
|
namespace type_traits_internal {
|
|
214
|
-
// In MSVC we can't probe std::hash or stdext::hash because it triggers a
|
|
215
|
-
// static_assert instead of failing substitution. Libc++ prior to 4.0
|
|
216
|
-
// also used a static_assert.
|
|
217
|
-
//
|
|
218
|
-
#if defined(_MSC_VER) || (defined(_LIBCPP_VERSION) && \
|
|
219
|
-
_LIBCPP_VERSION < 4000 && _LIBCPP_STD_VER > 11)
|
|
220
|
-
#define ABSL_META_INTERNAL_STD_HASH_SFINAE_FRIENDLY_ 0
|
|
221
|
-
#else
|
|
222
|
-
#define ABSL_META_INTERNAL_STD_HASH_SFINAE_FRIENDLY_ 1
|
|
223
|
-
#endif
|
|
224
293
|
|
|
225
|
-
#if !ABSL_META_INTERNAL_STD_HASH_SFINAE_FRIENDLY_
|
|
226
|
-
template <typename Key, typename = size_t>
|
|
227
|
-
struct IsHashable : std::true_type {};
|
|
228
|
-
#else // ABSL_META_INTERNAL_STD_HASH_SFINAE_FRIENDLY_
|
|
229
294
|
template <typename Key, typename = void>
|
|
230
295
|
struct IsHashable : std::false_type {};
|
|
231
296
|
|
|
232
297
|
template <typename Key>
|
|
233
298
|
struct IsHashable<
|
|
234
299
|
Key,
|
|
235
|
-
|
|
300
|
+
std::enable_if_t<std::is_convertible<
|
|
236
301
|
decltype(std::declval<std::hash<Key>&>()(std::declval<Key const&>())),
|
|
237
302
|
std::size_t>::value>> : std::true_type {};
|
|
238
|
-
#endif // !ABSL_META_INTERNAL_STD_HASH_SFINAE_FRIENDLY_
|
|
239
303
|
|
|
240
304
|
struct AssertHashEnabledHelper {
|
|
241
305
|
private:
|
|
@@ -258,7 +322,7 @@ struct AssertHashEnabledHelper {
|
|
|
258
322
|
static_assert(
|
|
259
323
|
std::is_copy_constructible<std::hash<Key>>::value,
|
|
260
324
|
"std::hash<Key> must be copy constructible when it is enabled");
|
|
261
|
-
static_assert(
|
|
325
|
+
static_assert(std::is_copy_assignable<std::hash<Key>>::value,
|
|
262
326
|
"std::hash<Key> must be copy assignable when it is enabled");
|
|
263
327
|
// is_destructible is unchecked as it's implied by each of the
|
|
264
328
|
// is_constructible checks.
|
|
@@ -321,7 +385,7 @@ struct IsNothrowSwappable
|
|
|
321
385
|
//
|
|
322
386
|
// Performs the swap idiom from a namespace where valid candidates may only be
|
|
323
387
|
// found in `std` or via ADL.
|
|
324
|
-
template <class T,
|
|
388
|
+
template <class T, std::enable_if_t<IsSwappable<T>::value, int> = 0>
|
|
325
389
|
void Swap(T& lhs, T& rhs) noexcept(IsNothrowSwappable<T>::value) {
|
|
326
390
|
swap(lhs, rhs);
|
|
327
391
|
}
|
|
@@ -490,7 +554,7 @@ template <typename T>
|
|
|
490
554
|
struct IsOwnerImpl<
|
|
491
555
|
T,
|
|
492
556
|
std::enable_if_t<std::is_class<typename T::absl_internal_is_view>::value>>
|
|
493
|
-
:
|
|
557
|
+
: std::negation<typename T::absl_internal_is_view> {};
|
|
494
558
|
|
|
495
559
|
// A trait to determine whether a type is an owner.
|
|
496
560
|
// Do *not* depend on the correctness of this trait for correct code behavior.
|
|
@@ -570,7 +634,7 @@ struct IsView<std::span<T>> : std::true_type {};
|
|
|
570
634
|
// Until then, we consider an assignment from an "owner" (such as std::string)
|
|
571
635
|
// to a "view" (such as std::string_view) to be a lifetime-bound assignment.
|
|
572
636
|
template <typename T, typename U>
|
|
573
|
-
using IsLifetimeBoundAssignment =
|
|
637
|
+
using IsLifetimeBoundAssignment = std::conjunction<
|
|
574
638
|
std::integral_constant<bool, !std::is_lvalue_reference<U>::value>,
|
|
575
639
|
IsOwner<absl::remove_cvref_t<U>>, IsView<absl::remove_cvref_t<T>>>;
|
|
576
640
|
|
|
@@ -33,8 +33,8 @@ using ::testing::StaticAssertTypeEq;
|
|
|
33
33
|
|
|
34
34
|
template <typename T>
|
|
35
35
|
using IsOwnerAndNotView =
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
std::conjunction<absl::type_traits_internal::IsOwner<T>,
|
|
37
|
+
std::negation<absl::type_traits_internal::IsView<T>>>;
|
|
38
38
|
|
|
39
39
|
static_assert(
|
|
40
40
|
IsOwnerAndNotView<std::pair<std::vector<int>, std::string>>::value,
|
|
@@ -70,13 +70,13 @@ struct StructC {};
|
|
|
70
70
|
|
|
71
71
|
struct TypeWithBarFunction {
|
|
72
72
|
template <class T,
|
|
73
|
-
|
|
73
|
+
std::enable_if_t<std::is_same<T&&, StructA&>::value, int> = 0>
|
|
74
74
|
ReturnType bar(T&&, const StructB&, StructC&&) &&; // NOLINT
|
|
75
75
|
};
|
|
76
76
|
|
|
77
77
|
struct TypeWithBarFunctionAndConvertibleReturnType {
|
|
78
78
|
template <class T,
|
|
79
|
-
|
|
79
|
+
std::enable_if_t<std::is_same<T&&, StructA&>::value, int> = 0>
|
|
80
80
|
ConvertibleToReturnType bar(T&&, const StructB&, StructC&&) &&; // NOLINT
|
|
81
81
|
};
|
|
82
82
|
|
|
@@ -160,19 +160,19 @@ enum class TypeEnum { A, B, C, D };
|
|
|
160
160
|
|
|
161
161
|
struct GetTypeT {
|
|
162
162
|
template <typename T,
|
|
163
|
-
|
|
163
|
+
std::enable_if_t<std::is_same<T, TypeA>::value, int> = 0>
|
|
164
164
|
TypeEnum operator()(Wrap<T>) const {
|
|
165
165
|
return TypeEnum::A;
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
template <typename T,
|
|
169
|
-
|
|
169
|
+
std::enable_if_t<std::is_same<T, TypeB>::value, int> = 0>
|
|
170
170
|
TypeEnum operator()(Wrap<T>) const {
|
|
171
171
|
return TypeEnum::B;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
template <typename T,
|
|
175
|
-
|
|
175
|
+
std::enable_if_t<std::is_same<T, TypeC>::value, int> = 0>
|
|
176
176
|
TypeEnum operator()(Wrap<T>) const {
|
|
177
177
|
return TypeEnum::C;
|
|
178
178
|
}
|
|
@@ -93,11 +93,11 @@ TEST(Uint128, IntrinsicTypeTraitsTest) {
|
|
|
93
93
|
#endif // ABSL_HAVE_INTRINSIC_INT128
|
|
94
94
|
|
|
95
95
|
TEST(Uint128, TrivialTraitsTest) {
|
|
96
|
-
static_assert(
|
|
96
|
+
static_assert(std::is_trivially_default_constructible<absl::uint128>::value,
|
|
97
97
|
"");
|
|
98
|
-
static_assert(
|
|
98
|
+
static_assert(std::is_trivially_copy_constructible<absl::uint128>::value,
|
|
99
99
|
"");
|
|
100
|
-
static_assert(
|
|
100
|
+
static_assert(std::is_trivially_copy_assignable<absl::uint128>::value, "");
|
|
101
101
|
static_assert(std::is_trivially_destructible<absl::uint128>::value, "");
|
|
102
102
|
}
|
|
103
103
|
|
|
@@ -619,10 +619,10 @@ TEST(Int128, IntrinsicTypeTraitsTest) {
|
|
|
619
619
|
#endif // ABSL_HAVE_INTRINSIC_INT128
|
|
620
620
|
|
|
621
621
|
TEST(Int128, TrivialTraitsTest) {
|
|
622
|
-
static_assert(
|
|
622
|
+
static_assert(std::is_trivially_default_constructible<absl::int128>::value,
|
|
623
623
|
"");
|
|
624
|
-
static_assert(
|
|
625
|
-
static_assert(
|
|
624
|
+
static_assert(std::is_trivially_copy_constructible<absl::int128>::value, "");
|
|
625
|
+
static_assert(std::is_trivially_copy_assignable<absl::int128>::value, "");
|
|
626
626
|
static_assert(std::is_trivially_destructible<absl::int128>::value, "");
|
|
627
627
|
}
|
|
628
628
|
|
|
@@ -40,6 +40,7 @@ cc_library(
|
|
|
40
40
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
41
41
|
visibility = [
|
|
42
42
|
"//absl:__subpackages__",
|
|
43
|
+
"//absl:friends",
|
|
43
44
|
],
|
|
44
45
|
deps = [
|
|
45
46
|
"//absl/base:config",
|
|
@@ -77,6 +78,7 @@ cc_library(
|
|
|
77
78
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
78
79
|
visibility = [
|
|
79
80
|
"//absl:__subpackages__",
|
|
81
|
+
"//absl:friends",
|
|
80
82
|
],
|
|
81
83
|
deps = [
|
|
82
84
|
"//absl/base:config",
|
|
@@ -106,8 +108,8 @@ cc_library(
|
|
|
106
108
|
copts = ABSL_DEFAULT_COPTS,
|
|
107
109
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
108
110
|
visibility = [
|
|
109
|
-
# TODO(b/304670045): remove after periodic_sampler moves to //spanner/common.
|
|
110
111
|
"//absl:__subpackages__",
|
|
112
|
+
"//absl:friends",
|
|
111
113
|
],
|
|
112
114
|
deps = [
|
|
113
115
|
":exponential_biased",
|
|
@@ -60,7 +60,6 @@ StatusOr<std::string> MarshalHashtableProfile(
|
|
|
60
60
|
const auto capacity_id = builder.InternString("capacity");
|
|
61
61
|
const auto size_id = builder.InternString("size");
|
|
62
62
|
const auto num_erases_id = builder.InternString("num_erases");
|
|
63
|
-
const auto num_insert_hits_id = builder.InternString("num_insert_hits");
|
|
64
63
|
const auto num_rehashes_id = builder.InternString("num_rehashes");
|
|
65
64
|
const auto max_probe_length_id = builder.InternString("max_probe_length");
|
|
66
65
|
const auto total_probe_length_id = builder.InternString("total_probe_length");
|
|
@@ -89,9 +88,6 @@ StatusOr<std::string> MarshalHashtableProfile(
|
|
|
89
88
|
add_label(size_id, info.size.load(std::memory_order_relaxed));
|
|
90
89
|
add_label(num_erases_id,
|
|
91
90
|
info.num_erases.load(std::memory_order_relaxed));
|
|
92
|
-
// TODO(b/436909492): Revisit whether this value is useful.
|
|
93
|
-
add_label(num_insert_hits_id,
|
|
94
|
-
info.num_insert_hits.load(std::memory_order_relaxed));
|
|
95
91
|
add_label(num_rehashes_id,
|
|
96
92
|
info.num_rehashes.load(std::memory_order_relaxed));
|
|
97
93
|
add_label(max_probe_length_id,
|
|
@@ -400,6 +400,38 @@ void ProfileBuilder::AddCurrentMappings() {
|
|
|
400
400
|
|
|
401
401
|
const bool is_main_executable = builder.mappings_.empty();
|
|
402
402
|
|
|
403
|
+
// Storage for path to executable as dlpi_name isn't populated for the
|
|
404
|
+
// main executable. +1 to allow for the null terminator that readlink
|
|
405
|
+
// does not add.
|
|
406
|
+
char self_filename[PATH_MAX + 1];
|
|
407
|
+
const char* filename = info->dlpi_name;
|
|
408
|
+
if (filename == nullptr || filename[0] == '\0') {
|
|
409
|
+
// This is either the main executable or the VDSO. The main
|
|
410
|
+
// executable is always the first entry processed by callbacks.
|
|
411
|
+
if (is_main_executable) {
|
|
412
|
+
// This is the main executable.
|
|
413
|
+
ssize_t ret = readlink("/proc/self/exe", self_filename,
|
|
414
|
+
sizeof(self_filename) - 1);
|
|
415
|
+
if (ret >= 0 && static_cast<size_t>(ret) < sizeof(self_filename)) {
|
|
416
|
+
self_filename[ret] = '\0';
|
|
417
|
+
filename = self_filename;
|
|
418
|
+
}
|
|
419
|
+
} else {
|
|
420
|
+
// This is the VDSO.
|
|
421
|
+
filename = GetSoName(info);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
char resolved_path[PATH_MAX];
|
|
426
|
+
absl::string_view resolved_filename;
|
|
427
|
+
if (realpath(filename, resolved_path)) {
|
|
428
|
+
resolved_filename = resolved_path;
|
|
429
|
+
} else {
|
|
430
|
+
resolved_filename = filename;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
const std::string build_id = GetBuildId(info);
|
|
434
|
+
|
|
403
435
|
// Evaluate all the loadable segments.
|
|
404
436
|
for (int i = 0; i < info->dlpi_phnum; ++i) {
|
|
405
437
|
if (info->dlpi_phdr[i].p_type != PT_LOAD) {
|
|
@@ -414,39 +446,6 @@ void ProfileBuilder::AddCurrentMappings() {
|
|
|
414
446
|
const size_t memory_limit = memory_start + pt_load->p_memsz;
|
|
415
447
|
const size_t file_offset = pt_load->p_offset;
|
|
416
448
|
|
|
417
|
-
// Storage for path to executable as dlpi_name isn't populated for the
|
|
418
|
-
// main executable. +1 to allow for the null terminator that readlink
|
|
419
|
-
// does not add.
|
|
420
|
-
char self_filename[PATH_MAX + 1];
|
|
421
|
-
const char* filename = info->dlpi_name;
|
|
422
|
-
if (filename == nullptr || filename[0] == '\0') {
|
|
423
|
-
// This is either the main executable or the VDSO. The main
|
|
424
|
-
// executable is always the first entry processed by callbacks.
|
|
425
|
-
if (is_main_executable) {
|
|
426
|
-
// This is the main executable.
|
|
427
|
-
ssize_t ret = readlink("/proc/self/exe", self_filename,
|
|
428
|
-
sizeof(self_filename) - 1);
|
|
429
|
-
if (ret >= 0 &&
|
|
430
|
-
static_cast<size_t>(ret) < sizeof(self_filename)) {
|
|
431
|
-
self_filename[ret] = '\0';
|
|
432
|
-
filename = self_filename;
|
|
433
|
-
}
|
|
434
|
-
} else {
|
|
435
|
-
// This is the VDSO.
|
|
436
|
-
filename = GetSoName(info);
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
char resolved_path[PATH_MAX];
|
|
441
|
-
absl::string_view resolved_filename;
|
|
442
|
-
if (realpath(filename, resolved_path)) {
|
|
443
|
-
resolved_filename = resolved_path;
|
|
444
|
-
} else {
|
|
445
|
-
resolved_filename = filename;
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
const std::string build_id = GetBuildId(info);
|
|
449
|
-
|
|
450
449
|
// Add to profile.
|
|
451
450
|
builder.AddMapping(memory_start, memory_limit, file_offset,
|
|
452
451
|
resolved_filename, build_id);
|
|
@@ -116,8 +116,31 @@ class ProfileBuilder {
|
|
|
116
116
|
void set_default_sample_type_id(StringId default_sample_type_id);
|
|
117
117
|
|
|
118
118
|
private:
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
// We turn off hashtable profiling for the ProfileBuilder's own tables.
|
|
120
|
+
//
|
|
121
|
+
// This is necessary since we use this class to construct hashtable profiles,
|
|
122
|
+
// which entails walking the hashtable profiling data and we don't want to
|
|
123
|
+
// encounter it reentrantly.
|
|
124
|
+
template <typename T>
|
|
125
|
+
struct HashtablezBarrier : std::allocator<T> {
|
|
126
|
+
HashtablezBarrier() = default;
|
|
127
|
+
|
|
128
|
+
template <typename U>
|
|
129
|
+
HashtablezBarrier(const HashtablezBarrier<U>&) {}
|
|
130
|
+
|
|
131
|
+
template <class U>
|
|
132
|
+
struct rebind {
|
|
133
|
+
using other = HashtablezBarrier<U>;
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
template <typename K, typename V>
|
|
138
|
+
using UnprofiledHashMap = absl::flat_hash_map<
|
|
139
|
+
K, V, DefaultHashContainerHash<K>, DefaultHashContainerEq<K>,
|
|
140
|
+
HashtablezBarrier<std::pair<const K, V>>>;
|
|
141
|
+
|
|
142
|
+
UnprofiledHashMap<std::string, StringId> string_table_{{"", StringId(0)}};
|
|
143
|
+
UnprofiledHashMap<uintptr_t, LocationId> location_table_;
|
|
121
144
|
// mapping_table_ stores the start address of each mapping in mapping_
|
|
122
145
|
// to its index.
|
|
123
146
|
absl::btree_map<uintptr_t, size_t> mapping_table_;
|
|
@@ -49,15 +49,17 @@ struct Info : public Sample<Info> {
|
|
|
49
49
|
|
|
50
50
|
std::vector<size_t> GetSizes(SampleRecorder<Info>* s) {
|
|
51
51
|
std::vector<size_t> res;
|
|
52
|
-
s->Iterate([&](const Info& info) {
|
|
52
|
+
EXPECT_EQ(s->Iterate([&](const Info& info) {
|
|
53
53
|
res.push_back(info.size.load(std::memory_order_acquire));
|
|
54
|
-
})
|
|
54
|
+
}),
|
|
55
|
+
0);
|
|
55
56
|
return res;
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
std::vector<int64_t> GetWeights(SampleRecorder<Info>* s) {
|
|
59
60
|
std::vector<int64_t> res;
|
|
60
|
-
s->Iterate([&](const Info& info) { res.push_back(info.weight); })
|
|
61
|
+
EXPECT_EQ(s->Iterate([&](const Info& info) { res.push_back(info.weight); }),
|
|
62
|
+
0);
|
|
61
63
|
return res;
|
|
62
64
|
}
|
|
63
65
|
|
|
@@ -141,9 +143,10 @@ TEST(SampleRecorderTest, MultiThreaded) {
|
|
|
141
143
|
}
|
|
142
144
|
case 2: {
|
|
143
145
|
absl::Duration oldest = absl::ZeroDuration();
|
|
144
|
-
sampler.Iterate([&](const Info& info) {
|
|
146
|
+
EXPECT_EQ(sampler.Iterate([&](const Info& info) {
|
|
145
147
|
oldest = std::max(oldest, absl::Now() - info.create_time);
|
|
146
|
-
})
|
|
148
|
+
}),
|
|
149
|
+
0);
|
|
147
150
|
ASSERT_GE(oldest, absl::ZeroDuration());
|
|
148
151
|
break;
|
|
149
152
|
}
|
|
@@ -128,13 +128,14 @@ cc_library(
|
|
|
128
128
|
copts = ABSL_DEFAULT_COPTS,
|
|
129
129
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
130
130
|
deps = [
|
|
131
|
+
":mocking_access",
|
|
131
132
|
":random",
|
|
132
133
|
"//absl/base:config",
|
|
133
134
|
"//absl/base:core_headers",
|
|
134
135
|
"//absl/base:fast_type_id",
|
|
135
136
|
"//absl/meta:type_traits",
|
|
136
|
-
"//absl/random/internal:distribution_caller",
|
|
137
137
|
"//absl/random/internal:fast_uniform_bits",
|
|
138
|
+
"//absl/random/internal:traits",
|
|
138
139
|
],
|
|
139
140
|
)
|
|
140
141
|
|
|
@@ -160,6 +161,7 @@ cc_library(
|
|
|
160
161
|
],
|
|
161
162
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
162
163
|
deps = [
|
|
164
|
+
":mocking_access",
|
|
163
165
|
":random",
|
|
164
166
|
"//absl/base:config",
|
|
165
167
|
"//absl/base:fast_type_id",
|
|
@@ -171,6 +173,16 @@ cc_library(
|
|
|
171
173
|
],
|
|
172
174
|
)
|
|
173
175
|
|
|
176
|
+
cc_library(
|
|
177
|
+
name = "mocking_access",
|
|
178
|
+
hdrs = ["mocking_access.h"],
|
|
179
|
+
deps = [
|
|
180
|
+
"//absl/base:config",
|
|
181
|
+
"//absl/base:fast_type_id",
|
|
182
|
+
"//absl/meta:type_traits",
|
|
183
|
+
],
|
|
184
|
+
)
|
|
185
|
+
|
|
174
186
|
cc_test(
|
|
175
187
|
name = "bernoulli_distribution_test",
|
|
176
188
|
size = "small",
|
|
@@ -44,9 +44,10 @@ absl_cc_library(
|
|
|
44
44
|
DEPS
|
|
45
45
|
absl::config
|
|
46
46
|
absl::core_headers
|
|
47
|
-
absl::random_internal_distribution_caller
|
|
48
47
|
absl::random_internal_fast_uniform_bits
|
|
49
48
|
absl::type_traits
|
|
49
|
+
absl::random_mocking_access
|
|
50
|
+
absl::random_internal_traits
|
|
50
51
|
)
|
|
51
52
|
|
|
52
53
|
absl_cc_test(
|
|
@@ -68,6 +69,21 @@ absl_cc_test(
|
|
|
68
69
|
GTest::gtest_main
|
|
69
70
|
)
|
|
70
71
|
|
|
72
|
+
absl_cc_library(
|
|
73
|
+
NAME
|
|
74
|
+
random_mocking_access
|
|
75
|
+
HDRS
|
|
76
|
+
"mocking_access.h"
|
|
77
|
+
COPTS
|
|
78
|
+
${ABSL_DEFAULT_COPTS}
|
|
79
|
+
LINKOPTS
|
|
80
|
+
${ABSL_DEFAULT_LINKOPTS}
|
|
81
|
+
DEPS
|
|
82
|
+
absl::config
|
|
83
|
+
absl::fast_type_id
|
|
84
|
+
absl::type_traits
|
|
85
|
+
)
|
|
86
|
+
|
|
71
87
|
# Internal-only target, do not depend on directly.
|
|
72
88
|
absl_cc_library(
|
|
73
89
|
NAME
|
|
@@ -82,6 +98,7 @@ absl_cc_library(
|
|
|
82
98
|
absl::config
|
|
83
99
|
absl::fast_type_id
|
|
84
100
|
absl::optional
|
|
101
|
+
absl::random_mocking_access
|
|
85
102
|
)
|
|
86
103
|
|
|
87
104
|
# Internal-only target, do not depend on directly.
|
|
@@ -118,6 +135,7 @@ absl_cc_library(
|
|
|
118
135
|
absl::flat_hash_map
|
|
119
136
|
absl::raw_logging_internal
|
|
120
137
|
absl::random_internal_mock_helpers
|
|
138
|
+
absl::random_mocking_access
|
|
121
139
|
absl::random_random
|
|
122
140
|
absl::type_traits
|
|
123
141
|
absl::utility
|
|
@@ -536,6 +554,9 @@ absl_cc_library(
|
|
|
536
554
|
${ABSL_DEFAULT_LINKOPTS}
|
|
537
555
|
DEPS
|
|
538
556
|
absl::config
|
|
557
|
+
absl::type_traits
|
|
558
|
+
absl::bits
|
|
559
|
+
absl::int128
|
|
539
560
|
)
|
|
540
561
|
|
|
541
562
|
# Internal-only target, do not depend on directly.
|
|
@@ -553,6 +574,7 @@ absl_cc_library(
|
|
|
553
574
|
absl::utility
|
|
554
575
|
absl::fast_type_id
|
|
555
576
|
absl::type_traits
|
|
577
|
+
absl::random_mocking_access
|
|
556
578
|
)
|
|
557
579
|
|
|
558
580
|
# Internal-only target, do not depend on directly.
|
|
@@ -852,7 +874,6 @@ absl_cc_library(
|
|
|
852
874
|
absl::random_internal_platform
|
|
853
875
|
absl::random_internal_randen_hwaes_impl
|
|
854
876
|
absl::config
|
|
855
|
-
absl::optional
|
|
856
877
|
)
|
|
857
878
|
|
|
858
879
|
# Internal-only target, do not depend on directly.
|
|
@@ -97,7 +97,7 @@ class DefaultConstructorSeedSeq {};
|
|
|
97
97
|
template <typename Engine, typename SSeq = DefaultConstructorSeedSeq>
|
|
98
98
|
Engine make_engine() {
|
|
99
99
|
constexpr bool use_default_initialization =
|
|
100
|
-
|
|
100
|
+
std::is_same_v<SSeq, DefaultConstructorSeedSeq>;
|
|
101
101
|
if constexpr (use_default_initialization) {
|
|
102
102
|
return Engine();
|
|
103
103
|
} else {
|
|
@@ -282,7 +282,7 @@ beta_distribution<RealType>::AlgorithmJoehnk(
|
|
|
282
282
|
using random_internal::GeneratePositiveTag;
|
|
283
283
|
using random_internal::GenerateRealFromBits;
|
|
284
284
|
using real_type =
|
|
285
|
-
|
|
285
|
+
std::conditional_t<std::is_same<RealType, float>::value, float, double>;
|
|
286
286
|
|
|
287
287
|
// Based on Joehnk, M. D. Erzeugung von betaverteilten und gammaverteilten
|
|
288
288
|
// Zufallszahlen. Metrika 8.1 (1964): 5-15.
|
|
@@ -340,7 +340,7 @@ beta_distribution<RealType>::AlgorithmCheng(
|
|
|
340
340
|
using random_internal::GeneratePositiveTag;
|
|
341
341
|
using random_internal::GenerateRealFromBits;
|
|
342
342
|
using real_type =
|
|
343
|
-
|
|
343
|
+
std::conditional_t<std::is_same<RealType, float>::value, float, double>;
|
|
344
344
|
|
|
345
345
|
// Based on Cheng, Russell CH. Generating beta variates with nonintegral
|
|
346
346
|
// shape parameters. Communications of the ACM 21.4 (1978): 317-322.
|