re2 1.22.2 → 1.23.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/README.md +60 -4
- package/binding.gyp +5 -1
- package/lib/addon.cc +4 -0
- package/lib/new.cc +1 -246
- package/lib/pattern.cc +252 -0
- package/lib/pattern.h +10 -0
- package/lib/set.cc +777 -0
- package/lib/wrapped_re2_set.h +42 -0
- package/package.json +21 -9
- package/re2.d.ts +46 -9
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +14 -24
- package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +3 -3
- package/vendor/abseil-cpp/CMake/README.md +2 -2
- package/vendor/abseil-cpp/CMakeLists.txt +3 -3
- package/vendor/abseil-cpp/MODULE.bazel +6 -9
- package/vendor/abseil-cpp/README.md +6 -8
- package/vendor/abseil-cpp/absl/abseil.podspec.gen.py +6 -4
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/algorithm/container.h +2 -19
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +4 -11
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +60 -45
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +57 -38
- package/vendor/abseil-cpp/absl/base/attributes.h +76 -7
- package/vendor/abseil-cpp/absl/base/attributes_test.cc +43 -0
- package/vendor/abseil-cpp/absl/base/call_once.h +11 -12
- package/vendor/abseil-cpp/absl/base/config.h +22 -129
- package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +0 -4
- package/vendor/abseil-cpp/absl/base/{internal/fast_type_id.h → fast_type_id.h} +11 -16
- package/vendor/abseil-cpp/absl/base/{internal/fast_type_id_test.cc → fast_type_id_test.cc} +34 -30
- package/vendor/abseil-cpp/absl/base/internal/cycleclock.cc +0 -5
- package/vendor/abseil-cpp/absl/base/internal/cycleclock_config.h +7 -7
- package/vendor/abseil-cpp/absl/base/internal/endian.h +34 -38
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +71 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test.cc +85 -0
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -9
- package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
- package/vendor/abseil-cpp/absl/base/internal/poison.cc +7 -6
- package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +15 -28
- package/vendor/abseil-cpp/absl/base/internal/spinlock.h +65 -35
- package/vendor/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +2 -2
- package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +2 -2
- package/vendor/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/base/internal/thread_identity_test.cc +4 -4
- package/vendor/abseil-cpp/absl/base/internal/unaligned_access.h +6 -6
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +4 -0
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +8 -3
- package/vendor/abseil-cpp/absl/base/no_destructor.h +11 -32
- package/vendor/abseil-cpp/absl/base/no_destructor_test.cc +0 -4
- package/vendor/abseil-cpp/absl/base/nullability.h +83 -72
- package/vendor/abseil-cpp/absl/base/nullability_test.cc +25 -64
- package/vendor/abseil-cpp/absl/base/options.h +3 -80
- package/vendor/abseil-cpp/absl/base/policy_checks.h +7 -7
- package/vendor/abseil-cpp/absl/base/raw_logging_test.cc +15 -0
- package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +50 -30
- package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +2 -1
- package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +0 -1
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +1 -3
- package/vendor/abseil-cpp/absl/cleanup/cleanup_test.cc +0 -2
- package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -4
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +74 -1
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +73 -0
- package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +51 -9
- package/vendor/abseil-cpp/absl/container/btree_map.h +8 -6
- package/vendor/abseil-cpp/absl/container/btree_set.h +8 -6
- package/vendor/abseil-cpp/absl/container/btree_test.cc +89 -4
- package/vendor/abseil-cpp/absl/container/fixed_array.h +7 -15
- package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +17 -0
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +20 -15
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +8 -14
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +19 -14
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +46 -0
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +7 -6
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +28 -0
- package/vendor/abseil-cpp/absl/container/internal/btree.h +132 -29
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +175 -71
- package/vendor/abseil-cpp/absl/container/internal/common.h +43 -0
- package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -2
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +28 -24
- package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +4 -17
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +80 -17
- package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +32 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +13 -8
- package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +1 -52
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +9 -31
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +23 -32
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +5 -1
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +11 -23
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +14 -9
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +516 -0
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +259 -0
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -6
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +32 -13
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +8 -8
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +2 -7
- package/vendor/abseil-cpp/absl/container/internal/layout.h +26 -42
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +199 -68
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +1506 -213
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +1095 -1658
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +3 -2
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +31 -29
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +51 -20
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +66 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +707 -363
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +20 -15
- package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +0 -3
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +18 -13
- package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +3 -8
- package/vendor/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +1 -1
- package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +9 -20
- package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +9 -20
- package/vendor/abseil-cpp/absl/copts/copts.py +24 -15
- package/vendor/abseil-cpp/absl/crc/BUILD.bazel +3 -0
- package/vendor/abseil-cpp/absl/crc/crc32c.cc +0 -4
- package/vendor/abseil-cpp/absl/crc/crc32c.h +7 -5
- package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +17 -4
- package/vendor/abseil-cpp/absl/crc/crc32c_test.cc +30 -0
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +17 -0
- package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
- package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +0 -22
- package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +136 -165
- package/vendor/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +90 -0
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +7 -0
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
- package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +1 -1
- package/vendor/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +5 -5
- package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +8 -35
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_rust.cc +16 -16
- package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +11 -10
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +40 -37
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +16 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +14 -5
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +10 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +27 -16
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +13 -4
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +4 -3
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +15 -28
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -14
- package/vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +161 -27
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +73 -5
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +435 -1
- package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +55 -63
- package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +3 -2
- package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +25 -6
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +6 -0
- package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +3 -0
- package/vendor/abseil-cpp/absl/flags/commandlineflag.h +2 -2
- package/vendor/abseil-cpp/absl/flags/flag.h +4 -3
- package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +2 -2
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +14 -13
- package/vendor/abseil-cpp/absl/flags/internal/flag.h +34 -34
- package/vendor/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/internal/registry.h +4 -3
- package/vendor/abseil-cpp/absl/flags/internal/usage.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/parse.cc +10 -6
- package/vendor/abseil-cpp/absl/flags/reflection.cc +9 -7
- package/vendor/abseil-cpp/absl/flags/usage.cc +2 -2
- package/vendor/abseil-cpp/absl/flags/usage_config.cc +2 -2
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +7 -6
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +2 -4
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +15 -15
- package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +10 -42
- package/vendor/abseil-cpp/absl/functional/function_ref.h +2 -9
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +10 -0
- package/vendor/abseil-cpp/absl/functional/function_type_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +112 -227
- package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +10 -12
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +2 -5
- package/vendor/abseil-cpp/absl/functional/overload.h +0 -20
- package/vendor/abseil-cpp/absl/functional/overload_test.cc +1 -7
- package/vendor/abseil-cpp/absl/hash/BUILD.bazel +16 -9
- package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +6 -9
- package/vendor/abseil-cpp/absl/hash/hash.h +18 -0
- package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +3 -0
- package/vendor/abseil-cpp/absl/hash/hash_instantiated_test.cc +1 -1
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +131 -30
- package/vendor/abseil-cpp/absl/hash/hash_testing.h +20 -20
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +129 -17
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +326 -362
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +54 -151
- package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +14 -2
- package/vendor/abseil-cpp/absl/{strings/cord_buffer.cc → hash/internal/weakly_mixed_integer.h} +14 -6
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +7 -0
- package/vendor/abseil-cpp/absl/log/check.h +2 -1
- package/vendor/abseil-cpp/absl/log/check_test_impl.inc +308 -14
- package/vendor/abseil-cpp/absl/log/die_if_null.h +2 -2
- package/vendor/abseil-cpp/absl/log/flags_test.cc +7 -0
- package/vendor/abseil-cpp/absl/log/globals.h +4 -5
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +13 -9
- package/vendor/abseil-cpp/absl/log/internal/append_truncated.h +28 -0
- package/vendor/abseil-cpp/absl/log/internal/check_op.cc +24 -22
- package/vendor/abseil-cpp/absl/log/internal/check_op.h +149 -94
- package/vendor/abseil-cpp/absl/log/internal/conditions.cc +5 -3
- package/vendor/abseil-cpp/absl/log/internal/conditions.h +7 -2
- package/vendor/abseil-cpp/absl/log/internal/fnmatch_test.cc +1 -0
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +85 -43
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +84 -59
- package/vendor/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
- package/vendor/abseil-cpp/absl/log/internal/nullstream.h +1 -0
- package/vendor/abseil-cpp/absl/log/internal/proto.cc +3 -2
- package/vendor/abseil-cpp/absl/log/internal/proto.h +3 -3
- package/vendor/abseil-cpp/absl/log/internal/strip.h +4 -12
- package/vendor/abseil-cpp/absl/log/internal/structured.h +3 -7
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +9 -9
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +8 -6
- package/vendor/abseil-cpp/absl/log/internal/voidify.h +10 -4
- package/vendor/abseil-cpp/absl/log/log.h +48 -35
- package/vendor/abseil-cpp/absl/log/log_basic_test_impl.inc +45 -0
- package/vendor/abseil-cpp/absl/log/log_entry.cc +241 -19
- package/vendor/abseil-cpp/absl/log/log_entry.h +2 -0
- package/vendor/abseil-cpp/absl/log/log_format_test.cc +412 -6
- package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +20 -0
- package/vendor/abseil-cpp/absl/log/log_sink_registry.h +2 -2
- package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +15 -2
- package/vendor/abseil-cpp/absl/log/scoped_mock_log.h +7 -1
- package/vendor/abseil-cpp/absl/log/structured_test.cc +1 -0
- package/vendor/abseil-cpp/absl/memory/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/meta/type_traits.h +46 -175
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +1 -478
- package/vendor/abseil-cpp/absl/numeric/BUILD.bazel +7 -3
- package/vendor/abseil-cpp/absl/numeric/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/numeric/bits.h +68 -2
- package/vendor/abseil-cpp/absl/numeric/bits_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/numeric/bits_test.cc +83 -0
- package/vendor/abseil-cpp/absl/numeric/int128.cc +0 -52
- package/vendor/abseil-cpp/absl/numeric/int128_benchmark.cc +14 -15
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +13 -8
- package/vendor/abseil-cpp/absl/numeric/internal/bits.h +39 -7
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +47 -0
- package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +38 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +124 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.h +40 -0
- package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased.cc +1 -1
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +462 -0
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.h +138 -0
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
- package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +7 -3
- package/vendor/abseil-cpp/absl/random/BUILD.bazel +6 -4
- package/vendor/abseil-cpp/absl/random/CMakeLists.txt +20 -19
- package/vendor/abseil-cpp/absl/random/benchmarks.cc +16 -23
- package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +10 -11
- package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +7 -2
- package/vendor/abseil-cpp/absl/random/distributions.h +6 -8
- package/vendor/abseil-cpp/absl/random/gaussian_distribution.h +1 -1
- package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +19 -20
- package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +5 -6
- package/vendor/abseil-cpp/absl/random/internal/{pool_urbg.cc → entropy_pool.cc} +24 -92
- package/vendor/abseil-cpp/absl/{base/inline_variable_test_b.cc → random/internal/entropy_pool.h} +14 -6
- package/vendor/abseil-cpp/absl/random/internal/entropy_pool_test.cc +119 -0
- package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +6 -7
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +5 -6
- package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +39 -0
- package/vendor/abseil-cpp/absl/random/internal/randen_benchmarks.cc +8 -6
- package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +1 -1
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +20 -12
- package/vendor/abseil-cpp/absl/random/internal/seed_material.h +5 -5
- package/vendor/abseil-cpp/absl/random/internal/seed_material_test.cc +3 -0
- package/vendor/abseil-cpp/absl/random/mock_distributions_test.cc +5 -4
- package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +8 -10
- package/vendor/abseil-cpp/absl/random/random.h +88 -53
- package/vendor/abseil-cpp/absl/random/seed_sequences.cc +6 -2
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +26 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.cc +3 -4
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +3 -4
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.cc +4 -3
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +194 -32
- package/vendor/abseil-cpp/absl/status/status.cc +4 -8
- package/vendor/abseil-cpp/absl/status/status.h +8 -8
- package/vendor/abseil-cpp/absl/{base/inline_variable_test_a.cc → status/status_benchmark.cc} +20 -10
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +65 -0
- package/vendor/abseil-cpp/absl/status/status_payload_printer.h +2 -2
- package/vendor/abseil-cpp/absl/status/statusor.cc +2 -2
- package/vendor/abseil-cpp/absl/status/statusor.h +49 -102
- package/vendor/abseil-cpp/absl/status/statusor_benchmark.cc +480 -0
- package/vendor/abseil-cpp/absl/status/statusor_test.cc +323 -1
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +70 -34
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +6 -3
- package/vendor/abseil-cpp/absl/strings/ascii.cc +9 -9
- package/vendor/abseil-cpp/absl/strings/ascii.h +18 -18
- package/vendor/abseil-cpp/absl/strings/ascii_benchmark.cc +5 -8
- package/vendor/abseil-cpp/absl/strings/charconv.cc +21 -22
- package/vendor/abseil-cpp/absl/strings/charconv.h +5 -5
- package/vendor/abseil-cpp/absl/strings/charconv_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/charset_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/cord.cc +54 -58
- package/vendor/abseil-cpp/absl/strings/cord.h +94 -84
- package/vendor/abseil-cpp/absl/strings/cord_analysis.cc +11 -11
- package/vendor/abseil-cpp/absl/strings/cord_analysis.h +3 -3
- package/vendor/abseil-cpp/absl/strings/cord_test.cc +23 -0
- package/vendor/abseil-cpp/absl/strings/cordz_test_helpers.h +4 -5
- package/vendor/abseil-cpp/absl/strings/escaping.cc +130 -149
- package/vendor/abseil-cpp/absl/strings/escaping.h +9 -10
- package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/escaping_test.cc +19 -9
- package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +6 -10
- package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +0 -4
- package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +5 -9
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +2 -4
- package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +56 -0
- package/vendor/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.cc +7 -63
- package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +1 -11
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +1 -6
- package/vendor/abseil-cpp/absl/strings/internal/str_format/extension.cc +0 -22
- package/vendor/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +3 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_format/output.cc +5 -3
- package/vendor/abseil-cpp/absl/strings/internal/str_format/parser.h +4 -2
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +3 -3
- package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +7 -2
- package/vendor/abseil-cpp/absl/strings/internal/string_constant.h +0 -5
- package/vendor/abseil-cpp/absl/strings/internal/utf8.cc +96 -1
- package/vendor/abseil-cpp/absl/strings/internal/utf8.h +15 -1
- package/vendor/abseil-cpp/absl/strings/internal/utf8_test.cc +196 -3
- package/vendor/abseil-cpp/absl/strings/numbers.cc +53 -32
- package/vendor/abseil-cpp/absl/strings/numbers.h +87 -58
- package/vendor/abseil-cpp/absl/strings/numbers_benchmark.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +634 -120
- package/vendor/abseil-cpp/absl/strings/str_cat.cc +6 -7
- package/vendor/abseil-cpp/absl/strings/str_cat.h +32 -32
- package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +25 -1
- package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +2 -7
- package/vendor/abseil-cpp/absl/strings/str_format.h +18 -18
- package/vendor/abseil-cpp/absl/strings/str_format_test.cc +8 -14
- package/vendor/abseil-cpp/absl/strings/str_join_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/str_replace.cc +3 -3
- package/vendor/abseil-cpp/absl/strings/str_replace.h +6 -6
- package/vendor/abseil-cpp/absl/strings/str_replace_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/str_split.h +2 -2
- package/vendor/abseil-cpp/absl/strings/str_split_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/strings/string_view.cc +4 -9
- package/vendor/abseil-cpp/absl/strings/string_view.h +38 -39
- package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +4 -6
- package/vendor/abseil-cpp/absl/strings/string_view_test.cc +2 -50
- package/vendor/abseil-cpp/absl/strings/strip.h +4 -4
- package/vendor/abseil-cpp/absl/strings/substitute.cc +5 -4
- package/vendor/abseil-cpp/absl/strings/substitute.h +66 -64
- package/vendor/abseil-cpp/absl/strings/substitute_benchmark.cc +158 -0
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +6 -1
- package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +2 -1
- package/vendor/abseil-cpp/absl/synchronization/barrier.cc +1 -1
- package/vendor/abseil-cpp/absl/synchronization/barrier_test.cc +3 -3
- package/vendor/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
- package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +2 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +6 -5
- package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +0 -5
- package/vendor/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/thread_pool.h +3 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/waiter_base.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/internal/waiter_test.cc +12 -3
- package/vendor/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +0 -4
- package/vendor/abseil-cpp/absl/synchronization/lifetime_test.cc +4 -4
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +27 -29
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +205 -126
- package/vendor/abseil-cpp/absl/synchronization/mutex_benchmark.cc +13 -31
- package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +183 -169
- package/vendor/abseil-cpp/absl/synchronization/notification.cc +5 -5
- package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
- package/vendor/abseil-cpp/absl/synchronization/notification_test.cc +3 -3
- package/vendor/abseil-cpp/absl/time/BUILD.bazel +9 -1
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +3 -1
- package/vendor/abseil-cpp/absl/time/civil_time.cc +1 -0
- package/vendor/abseil-cpp/absl/time/civil_time_test.cc +134 -0
- package/vendor/abseil-cpp/absl/time/clock.cc +11 -14
- package/vendor/abseil-cpp/absl/time/duration.cc +14 -9
- package/vendor/abseil-cpp/absl/time/duration_test.cc +6 -7
- package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +14 -3
- package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +4 -490
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +515 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +41 -4
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +22 -23
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +90 -111
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +1 -488
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +2 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +1 -1
- package/vendor/abseil-cpp/absl/time/time.h +24 -18
- package/vendor/abseil-cpp/absl/time/time_test.cc +26 -0
- package/vendor/abseil-cpp/absl/types/BUILD.bazel +11 -164
- package/vendor/abseil-cpp/absl/types/CMakeLists.txt +23 -167
- package/vendor/abseil-cpp/absl/types/any.h +9 -484
- package/vendor/abseil-cpp/absl/types/optional.h +7 -747
- package/vendor/abseil-cpp/absl/types/span.h +46 -19
- package/vendor/abseil-cpp/absl/types/span_test.cc +27 -0
- package/vendor/abseil-cpp/absl/types/variant.h +5 -784
- package/vendor/abseil-cpp/absl/types/variant_test.cc +43 -2597
- package/vendor/abseil-cpp/absl/utility/BUILD.bazel +1 -41
- package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +0 -40
- package/vendor/abseil-cpp/absl/utility/utility.h +10 -185
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +2 -3
- package/vendor/abseil-cpp/ci/cmake_common.sh +2 -2
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +12 -13
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +24 -21
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +12 -12
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +23 -22
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +20 -19
- package/vendor/abseil-cpp/ci/linux_docker_containers.sh +4 -4
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +17 -17
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +10 -10
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +1 -1
- package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +1 -1
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +9 -10
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +9 -1
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +14 -6
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +14 -6
- package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +1 -1
- package/vendor/re2/.bazelrc +4 -4
- package/vendor/re2/.bcr/metadata.template.json +16 -0
- package/vendor/re2/.bcr/presubmit.yml +57 -0
- package/vendor/re2/.bcr/source.template.json +5 -0
- package/vendor/re2/.github/bazel.sh +1 -7
- package/vendor/re2/.github/workflows/ci-bazel.yml +5 -5
- package/vendor/re2/.github/workflows/ci-cmake.yml +4 -4
- package/vendor/re2/.github/workflows/ci.yml +5 -6
- package/vendor/re2/.github/workflows/pages.yml +3 -3
- package/vendor/re2/.github/workflows/python.yml +29 -24
- package/vendor/re2/.github/workflows/release-bazel.yml +42 -0
- package/vendor/re2/.github/workflows/release.yml +15 -4
- package/vendor/re2/BUILD.bazel +25 -0
- package/vendor/re2/CMakeLists.txt +100 -85
- package/vendor/re2/CONTRIBUTING.md +0 -1
- package/vendor/re2/MODULE.bazel +10 -10
- package/vendor/re2/Makefile +1 -1
- package/vendor/re2/README.md +259 -0
- package/vendor/re2/python/BUILD.bazel +8 -0
- package/vendor/re2/python/re2.py +1 -1
- package/vendor/re2/python/re2_test.py +6 -0
- package/vendor/re2/python/setup.py +3 -3
- package/vendor/re2/re2/bitmap256.cc +3 -4
- package/vendor/re2/re2/bitstate.cc +15 -10
- package/vendor/re2/re2/dfa.cc +1 -2
- package/vendor/re2/re2/parse.cc +3 -4
- package/vendor/re2/re2/prog.cc +1 -2
- package/vendor/re2/re2/prog.h +1 -0
- package/vendor/re2/re2/re2.cc +5 -0
- package/vendor/re2/re2/re2.h +9 -9
- package/vendor/re2/re2/set.cc +6 -0
- package/vendor/re2/re2/set.h +5 -0
- package/vendor/re2/re2/testing/re2_arg_test.cc +3 -3
- package/vendor/re2/re2/testing/re2_test.cc +8 -0
- package/vendor/re2/re2/testing/set_test.cc +5 -0
- package/vendor/re2/re2/walker-inl.h +1 -1
- package/vendor/abseil-cpp/WORKSPACE +0 -76
- package/vendor/abseil-cpp/WORKSPACE.bzlmod +0 -19
- package/vendor/abseil-cpp/absl/base/inline_variable_test.cc +0 -64
- package/vendor/abseil-cpp/absl/base/internal/inline_variable.h +0 -108
- package/vendor/abseil-cpp/absl/base/internal/inline_variable_testing.h +0 -46
- package/vendor/abseil-cpp/absl/base/internal/invoke.h +0 -241
- package/vendor/abseil-cpp/absl/base/internal/nullability_impl.h +0 -69
- package/vendor/abseil-cpp/absl/base/invoke_test.cc +0 -331
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -148
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -54
- package/vendor/abseil-cpp/absl/random/internal/pool_urbg.h +0 -131
- package/vendor/abseil-cpp/absl/random/internal/pool_urbg_test.cc +0 -182
- package/vendor/abseil-cpp/absl/types/any_exception_safety_test.cc +0 -173
- package/vendor/abseil-cpp/absl/types/any_test.cc +0 -778
- package/vendor/abseil-cpp/absl/types/bad_any_cast.cc +0 -64
- package/vendor/abseil-cpp/absl/types/bad_any_cast.h +0 -75
- package/vendor/abseil-cpp/absl/types/bad_optional_access.cc +0 -66
- package/vendor/abseil-cpp/absl/types/bad_optional_access.h +0 -78
- package/vendor/abseil-cpp/absl/types/bad_variant_access.cc +0 -82
- package/vendor/abseil-cpp/absl/types/bad_variant_access.h +0 -82
- package/vendor/abseil-cpp/absl/types/internal/optional.h +0 -352
- package/vendor/abseil-cpp/absl/types/internal/variant.h +0 -1622
- package/vendor/abseil-cpp/absl/types/optional_exception_safety_test.cc +0 -292
- package/vendor/abseil-cpp/absl/types/optional_test.cc +0 -1615
- package/vendor/abseil-cpp/absl/types/variant_benchmark.cc +0 -222
- package/vendor/abseil-cpp/absl/types/variant_exception_safety_test.cc +0 -532
- package/vendor/abseil-cpp/absl/utility/internal/if_constexpr.h +0 -70
- package/vendor/abseil-cpp/absl/utility/internal/if_constexpr_test.cc +0 -79
- package/vendor/abseil-cpp/absl/utility/utility_test.cc +0 -239
- package/vendor/re2/.github/workflows/pr.yml +0 -34
- package/vendor/re2/README +0 -47
|
@@ -75,7 +75,7 @@ class SampleRecorder {
|
|
|
75
75
|
|
|
76
76
|
// Iterates over all the registered `StackInfo`s. Returning the number of
|
|
77
77
|
// samples that have been dropped.
|
|
78
|
-
|
|
78
|
+
size_t Iterate(const std::function<void(const T& stack)>& f);
|
|
79
79
|
|
|
80
80
|
size_t GetMaxSamples() const;
|
|
81
81
|
void SetMaxSamples(size_t max);
|
|
@@ -130,7 +130,7 @@ SampleRecorder<T>::SetDisposeCallback(DisposeCallback f) {
|
|
|
130
130
|
template <typename T>
|
|
131
131
|
SampleRecorder<T>::SampleRecorder()
|
|
132
132
|
: dropped_samples_(0), size_estimate_(0), all_(nullptr), dispose_(nullptr) {
|
|
133
|
-
absl::MutexLock l(
|
|
133
|
+
absl::MutexLock l(graveyard_.init_mu);
|
|
134
134
|
graveyard_.dead = &graveyard_;
|
|
135
135
|
}
|
|
136
136
|
|
|
@@ -159,8 +159,8 @@ void SampleRecorder<T>::PushDead(T* sample) {
|
|
|
159
159
|
dispose(*sample);
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
absl::MutexLock graveyard_lock(
|
|
163
|
-
absl::MutexLock sample_lock(
|
|
162
|
+
absl::MutexLock graveyard_lock(graveyard_.init_mu);
|
|
163
|
+
absl::MutexLock sample_lock(sample->init_mu);
|
|
164
164
|
sample->dead = graveyard_.dead;
|
|
165
165
|
graveyard_.dead = sample;
|
|
166
166
|
}
|
|
@@ -168,7 +168,7 @@ void SampleRecorder<T>::PushDead(T* sample) {
|
|
|
168
168
|
template <typename T>
|
|
169
169
|
template <typename... Targs>
|
|
170
170
|
T* SampleRecorder<T>::PopDead(Targs... args) {
|
|
171
|
-
absl::MutexLock graveyard_lock(
|
|
171
|
+
absl::MutexLock graveyard_lock(graveyard_.init_mu);
|
|
172
172
|
|
|
173
173
|
// The list is circular, so eventually it collapses down to
|
|
174
174
|
// graveyard_.dead == &graveyard_
|
|
@@ -176,7 +176,7 @@ T* SampleRecorder<T>::PopDead(Targs... args) {
|
|
|
176
176
|
T* sample = graveyard_.dead;
|
|
177
177
|
if (sample == &graveyard_) return nullptr;
|
|
178
178
|
|
|
179
|
-
absl::MutexLock sample_lock(
|
|
179
|
+
absl::MutexLock sample_lock(sample->init_mu);
|
|
180
180
|
graveyard_.dead = sample->dead;
|
|
181
181
|
sample->dead = nullptr;
|
|
182
182
|
sample->PrepareForSampling(std::forward<Targs>(args)...);
|
|
@@ -198,7 +198,7 @@ T* SampleRecorder<T>::Register(Targs&&... args) {
|
|
|
198
198
|
// Resurrection failed. Hire a new warlock.
|
|
199
199
|
sample = new T();
|
|
200
200
|
{
|
|
201
|
-
absl::MutexLock sample_lock(
|
|
201
|
+
absl::MutexLock sample_lock(sample->init_mu);
|
|
202
202
|
// If flag initialization happens to occur (perhaps in another thread)
|
|
203
203
|
// while in this block, it will lock `graveyard_` which is usually always
|
|
204
204
|
// locked before any sample. This will appear as a lock inversion.
|
|
@@ -222,11 +222,11 @@ void SampleRecorder<T>::Unregister(T* sample) {
|
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
template <typename T>
|
|
225
|
-
|
|
225
|
+
size_t SampleRecorder<T>::Iterate(
|
|
226
226
|
const std::function<void(const T& stack)>& f) {
|
|
227
227
|
T* s = all_.load(std::memory_order_acquire);
|
|
228
228
|
while (s != nullptr) {
|
|
229
|
-
absl::MutexLock l(
|
|
229
|
+
absl::MutexLock l(s->init_mu);
|
|
230
230
|
if (s->dead == nullptr) {
|
|
231
231
|
f(*s);
|
|
232
232
|
}
|
|
@@ -15,14 +15,20 @@
|
|
|
15
15
|
#include "absl/profiling/internal/sample_recorder.h"
|
|
16
16
|
|
|
17
17
|
#include <atomic>
|
|
18
|
+
#include <cassert>
|
|
19
|
+
#include <cstddef>
|
|
20
|
+
#include <cstdint>
|
|
18
21
|
#include <random>
|
|
19
22
|
#include <vector>
|
|
20
23
|
|
|
21
24
|
#include "gmock/gmock.h"
|
|
25
|
+
#include "gtest/gtest.h"
|
|
22
26
|
#include "absl/base/thread_annotations.h"
|
|
27
|
+
#include "absl/random/random.h"
|
|
23
28
|
#include "absl/synchronization/internal/thread_pool.h"
|
|
24
29
|
#include "absl/synchronization/mutex.h"
|
|
25
30
|
#include "absl/synchronization/notification.h"
|
|
31
|
+
#include "absl/time/clock.h"
|
|
26
32
|
#include "absl/time/time.h"
|
|
27
33
|
|
|
28
34
|
namespace absl {
|
|
@@ -112,9 +118,7 @@ TEST(SampleRecorderTest, MultiThreaded) {
|
|
|
112
118
|
|
|
113
119
|
for (int i = 0; i < 10; ++i) {
|
|
114
120
|
pool.Schedule([&sampler, &stop, i]() {
|
|
115
|
-
|
|
116
|
-
std::mt19937 gen(rd());
|
|
117
|
-
|
|
121
|
+
absl::InsecureBitGen gen;
|
|
118
122
|
std::vector<Info*> infoz;
|
|
119
123
|
while (!stop.HasBeenNotified()) {
|
|
120
124
|
if (infoz.empty()) {
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
|
|
17
17
|
# ABSL random-number generation libraries.
|
|
18
18
|
|
|
19
|
+
load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
|
|
20
|
+
load("@rules_cc//cc:cc_library.bzl", "cc_library")
|
|
21
|
+
load("@rules_cc//cc:cc_test.bzl", "cc_test")
|
|
19
22
|
load(
|
|
20
23
|
"//absl:copts/configure_copts.bzl",
|
|
21
24
|
"ABSL_DEFAULT_COPTS",
|
|
@@ -42,9 +45,9 @@ cc_library(
|
|
|
42
45
|
deps = [
|
|
43
46
|
":distributions",
|
|
44
47
|
":seed_sequences",
|
|
48
|
+
"//absl/base:config",
|
|
45
49
|
"//absl/random/internal:nonsecure_base",
|
|
46
50
|
"//absl/random/internal:pcg_engine",
|
|
47
|
-
"//absl/random/internal:pool_urbg",
|
|
48
51
|
"//absl/random/internal:randen_engine",
|
|
49
52
|
],
|
|
50
53
|
)
|
|
@@ -111,7 +114,7 @@ cc_library(
|
|
|
111
114
|
":seed_gen_exception",
|
|
112
115
|
"//absl/base:config",
|
|
113
116
|
"//absl/base:nullability",
|
|
114
|
-
"//absl/random/internal:
|
|
117
|
+
"//absl/random/internal:entropy_pool",
|
|
115
118
|
"//absl/random/internal:salted_seed_seq",
|
|
116
119
|
"//absl/random/internal:seed_material",
|
|
117
120
|
"//absl/strings:string_view",
|
|
@@ -447,6 +450,7 @@ cc_test(
|
|
|
447
450
|
deps = [
|
|
448
451
|
":bit_gen_ref",
|
|
449
452
|
":random",
|
|
453
|
+
"//absl/base:config",
|
|
450
454
|
"//absl/base:fast_type_id",
|
|
451
455
|
"//absl/random/internal:sequence_urbg",
|
|
452
456
|
"@googletest//:gtest",
|
|
@@ -538,9 +542,7 @@ cc_binary(
|
|
|
538
542
|
deps = [
|
|
539
543
|
":distributions",
|
|
540
544
|
":random",
|
|
541
|
-
":seed_sequences",
|
|
542
545
|
"//absl/base:core_headers",
|
|
543
|
-
"//absl/meta:type_traits",
|
|
544
546
|
"//absl/random/internal:fast_uniform_bits",
|
|
545
547
|
"//absl/random/internal:randen_engine",
|
|
546
548
|
"@google_benchmark//:benchmark_main",
|
|
@@ -24,10 +24,10 @@ absl_cc_library(
|
|
|
24
24
|
LINKOPTS
|
|
25
25
|
${ABSL_DEFAULT_LINKOPTS}
|
|
26
26
|
DEPS
|
|
27
|
+
absl::config
|
|
27
28
|
absl::random_distributions
|
|
28
29
|
absl::random_internal_nonsecure_base
|
|
29
30
|
absl::random_internal_pcg_engine
|
|
30
|
-
absl::random_internal_pool_urbg
|
|
31
31
|
absl::random_internal_randen_engine
|
|
32
32
|
absl::random_seed_sequences
|
|
33
33
|
)
|
|
@@ -59,6 +59,7 @@ absl_cc_test(
|
|
|
59
59
|
LINKOPTS
|
|
60
60
|
${ABSL_DEFAULT_LINKOPTS}
|
|
61
61
|
DEPS
|
|
62
|
+
absl::config
|
|
62
63
|
absl::random_bit_gen_ref
|
|
63
64
|
absl::random_random
|
|
64
65
|
absl::random_internal_sequence_urbg
|
|
@@ -229,7 +230,7 @@ absl_cc_library(
|
|
|
229
230
|
absl::config
|
|
230
231
|
absl::inlined_vector
|
|
231
232
|
absl::nullability
|
|
232
|
-
absl::
|
|
233
|
+
absl::random_internal_entropy_pool
|
|
233
234
|
absl::random_internal_salted_seed_seq
|
|
234
235
|
absl::random_internal_seed_material
|
|
235
236
|
absl::random_seed_gen_exception
|
|
@@ -582,7 +583,7 @@ absl_cc_library(
|
|
|
582
583
|
${ABSL_DEFAULT_LINKOPTS}
|
|
583
584
|
$<$<BOOL:${MINGW}>:-lbcrypt>
|
|
584
585
|
DEPS
|
|
585
|
-
absl::
|
|
586
|
+
absl::config
|
|
586
587
|
absl::optional
|
|
587
588
|
absl::random_internal_fast_uniform_bits
|
|
588
589
|
absl::raw_logging_internal
|
|
@@ -593,11 +594,11 @@ absl_cc_library(
|
|
|
593
594
|
# Internal-only target, do not depend on directly.
|
|
594
595
|
absl_cc_library(
|
|
595
596
|
NAME
|
|
596
|
-
|
|
597
|
+
random_internal_entropy_pool
|
|
597
598
|
SRCS
|
|
598
|
-
"internal/
|
|
599
|
+
"internal/entropy_pool.cc"
|
|
599
600
|
HDRS
|
|
600
|
-
"internal/
|
|
601
|
+
"internal/entropy_pool.h"
|
|
601
602
|
COPTS
|
|
602
603
|
${ABSL_DEFAULT_COPTS}
|
|
603
604
|
LINKOPTS
|
|
@@ -606,13 +607,12 @@ absl_cc_library(
|
|
|
606
607
|
absl::base
|
|
607
608
|
absl::config
|
|
608
609
|
absl::core_headers
|
|
609
|
-
absl::
|
|
610
|
+
absl::random_internal_platform
|
|
610
611
|
absl::random_internal_randen
|
|
611
612
|
absl::random_internal_seed_material
|
|
612
|
-
absl::random_internal_traits
|
|
613
613
|
absl::random_seed_gen_exception
|
|
614
|
-
absl::raw_logging_internal
|
|
615
614
|
absl::span
|
|
615
|
+
absl::synchronization
|
|
616
616
|
)
|
|
617
617
|
|
|
618
618
|
# Internal-only target, do not depend on directly.
|
|
@@ -738,12 +738,11 @@ absl_cc_library(
|
|
|
738
738
|
LINKOPTS
|
|
739
739
|
${ABSL_DEFAULT_LINKOPTS}
|
|
740
740
|
DEPS
|
|
741
|
-
absl::
|
|
741
|
+
absl::config
|
|
742
742
|
absl::inlined_vector
|
|
743
|
-
absl::
|
|
743
|
+
absl::random_internal_entropy_pool
|
|
744
744
|
absl::random_internal_salted_seed_seq
|
|
745
745
|
absl::random_internal_seed_material
|
|
746
|
-
absl::span
|
|
747
746
|
absl::type_traits
|
|
748
747
|
)
|
|
749
748
|
|
|
@@ -1033,9 +1032,11 @@ absl_cc_test(
|
|
|
1033
1032
|
LINKOPTS
|
|
1034
1033
|
${ABSL_DEFAULT_LINKOPTS}
|
|
1035
1034
|
DEPS
|
|
1035
|
+
absl::flat_hash_map
|
|
1036
|
+
absl::random_distributions
|
|
1036
1037
|
absl::random_internal_nonsecure_base
|
|
1037
1038
|
absl::random_random
|
|
1038
|
-
absl::
|
|
1039
|
+
absl::synchronization
|
|
1039
1040
|
absl::type_traits
|
|
1040
1041
|
GTest::gtest_main
|
|
1041
1042
|
)
|
|
@@ -1052,6 +1053,7 @@ absl_cc_test(
|
|
|
1052
1053
|
${ABSL_DEFAULT_LINKOPTS}
|
|
1053
1054
|
DEPS
|
|
1054
1055
|
absl::random_internal_seed_material
|
|
1056
|
+
absl::span
|
|
1055
1057
|
GTest::gmock
|
|
1056
1058
|
GTest::gtest_main
|
|
1057
1059
|
)
|
|
@@ -1059,17 +1061,17 @@ absl_cc_test(
|
|
|
1059
1061
|
# Internal-only target, do not depend on directly.
|
|
1060
1062
|
absl_cc_test(
|
|
1061
1063
|
NAME
|
|
1062
|
-
|
|
1064
|
+
random_internal_entropy_pool_test
|
|
1063
1065
|
SRCS
|
|
1064
|
-
"internal/
|
|
1066
|
+
"internal/entropy_pool_test.cc"
|
|
1065
1067
|
COPTS
|
|
1066
1068
|
${ABSL_TEST_COPTS}
|
|
1067
1069
|
LINKOPTS
|
|
1068
1070
|
${ABSL_DEFAULT_LINKOPTS}
|
|
1069
1071
|
DEPS
|
|
1070
|
-
absl::
|
|
1071
|
-
absl::
|
|
1072
|
-
absl::
|
|
1072
|
+
absl::flat_hash_map
|
|
1073
|
+
absl::random_internal_entropy_pool
|
|
1074
|
+
absl::synchronization
|
|
1073
1075
|
GTest::gtest_main
|
|
1074
1076
|
)
|
|
1075
1077
|
|
|
@@ -1242,7 +1244,6 @@ absl_cc_test(
|
|
|
1242
1244
|
${ABSL_DEFAULT_LINKOPTS}
|
|
1243
1245
|
DEPS
|
|
1244
1246
|
absl::random_internal_wide_multiply
|
|
1245
|
-
absl::bits
|
|
1246
1247
|
absl::int128
|
|
1247
1248
|
GTest::gmock
|
|
1248
1249
|
GTest::gtest_main
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
#include <vector>
|
|
27
27
|
|
|
28
28
|
#include "absl/base/macros.h"
|
|
29
|
-
#include "absl/meta/type_traits.h"
|
|
30
29
|
#include "absl/random/bernoulli_distribution.h"
|
|
31
30
|
#include "absl/random/beta_distribution.h"
|
|
32
31
|
#include "absl/random/exponential_distribution.h"
|
|
@@ -65,10 +64,10 @@ class PrecompiledSeedSeq {
|
|
|
65
64
|
PrecompiledSeedSeq() = default;
|
|
66
65
|
|
|
67
66
|
template <typename Iterator>
|
|
68
|
-
PrecompiledSeedSeq(Iterator
|
|
67
|
+
PrecompiledSeedSeq(Iterator, Iterator) {}
|
|
69
68
|
|
|
70
69
|
template <typename T>
|
|
71
|
-
PrecompiledSeedSeq(std::initializer_list<T>
|
|
70
|
+
PrecompiledSeedSeq(std::initializer_list<T>) {}
|
|
72
71
|
|
|
73
72
|
template <typename OutIterator>
|
|
74
73
|
void generate(OutIterator begin, OutIterator end) {
|
|
@@ -89,30 +88,23 @@ class PrecompiledSeedSeq {
|
|
|
89
88
|
}
|
|
90
89
|
};
|
|
91
90
|
|
|
92
|
-
//
|
|
93
|
-
|
|
94
|
-
// a seed sequence. This is used because some engines do not accept seed
|
|
95
|
-
// sequence-based initialization.
|
|
96
|
-
template <typename E>
|
|
97
|
-
using use_default_initialization = std::false_type;
|
|
91
|
+
// Triggers default constructor initialization.
|
|
92
|
+
class DefaultConstructorSeedSeq {};
|
|
98
93
|
|
|
99
94
|
// make_engine<T, SSeq> returns a random_engine which is initialized,
|
|
100
95
|
// either via the default constructor, when use_default_initialization<T>
|
|
101
96
|
// is true, or via the indicated seed sequence, SSeq.
|
|
102
|
-
template <typename Engine, typename SSeq =
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
make_engine() {
|
|
114
|
-
// Initialize the random engine using the default constructor.
|
|
115
|
-
return Engine();
|
|
97
|
+
template <typename Engine, typename SSeq = DefaultConstructorSeedSeq>
|
|
98
|
+
Engine make_engine() {
|
|
99
|
+
constexpr bool use_default_initialization =
|
|
100
|
+
std::is_same_v<SSeq, DefaultConstructorSeedSeq>;
|
|
101
|
+
if constexpr (use_default_initialization) {
|
|
102
|
+
return Engine();
|
|
103
|
+
} else {
|
|
104
|
+
// Otherwise, use the provided seed sequence.
|
|
105
|
+
SSeq seq(std::begin(kSeedData), std::end(kSeedData));
|
|
106
|
+
return Engine(seq);
|
|
107
|
+
}
|
|
116
108
|
}
|
|
117
109
|
|
|
118
110
|
template <typename Engine, typename SSeq>
|
|
@@ -248,6 +240,7 @@ void BM_Thread(benchmark::State& state) {
|
|
|
248
240
|
|
|
249
241
|
// Normal benchmark suite
|
|
250
242
|
#define BM_BASIC(Engine) \
|
|
243
|
+
BENCHMARK_TEMPLATE(BM_Construct, Engine, DefaultConstructorSeedSeq); \
|
|
251
244
|
BENCHMARK_TEMPLATE(BM_Construct, Engine, PrecompiledSeedSeq); \
|
|
252
245
|
BENCHMARK_TEMPLATE(BM_Construct, Engine, std::seed_seq); \
|
|
253
246
|
BENCHMARK_TEMPLATE(BM_Direct, Engine); \
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
#include "absl/base/attributes.h"
|
|
33
33
|
#include "absl/base/config.h"
|
|
34
|
-
#include "absl/base/
|
|
34
|
+
#include "absl/base/fast_type_id.h"
|
|
35
35
|
#include "absl/meta/type_traits.h"
|
|
36
36
|
#include "absl/random/internal/distribution_caller.h"
|
|
37
37
|
#include "absl/random/internal/fast_uniform_bits.h"
|
|
@@ -88,7 +88,7 @@ class MockHelpers;
|
|
|
88
88
|
//
|
|
89
89
|
class BitGenRef {
|
|
90
90
|
// SFINAE to detect whether the URBG type includes a member matching
|
|
91
|
-
// bool InvokeMock(
|
|
91
|
+
// bool InvokeMock(key_id, args_tuple*, result*).
|
|
92
92
|
//
|
|
93
93
|
// These live inside BitGenRef so that they have friend access
|
|
94
94
|
// to MockingBitGen. (see similar methods in DistributionCaller).
|
|
@@ -100,7 +100,7 @@ class BitGenRef {
|
|
|
100
100
|
|
|
101
101
|
template <class T>
|
|
102
102
|
using invoke_mock_t = decltype(std::declval<T*>()->InvokeMock(
|
|
103
|
-
std::declval<
|
|
103
|
+
std::declval<FastTypeIdType>(), std::declval<void*>(),
|
|
104
104
|
std::declval<void*>()));
|
|
105
105
|
|
|
106
106
|
template <typename T>
|
|
@@ -145,8 +145,7 @@ class BitGenRef {
|
|
|
145
145
|
|
|
146
146
|
private:
|
|
147
147
|
using impl_fn = result_type (*)(uintptr_t);
|
|
148
|
-
using mock_call_fn = bool (*)(uintptr_t,
|
|
149
|
-
void*);
|
|
148
|
+
using mock_call_fn = bool (*)(uintptr_t, FastTypeIdType, void*, void*);
|
|
150
149
|
|
|
151
150
|
template <typename URBG>
|
|
152
151
|
static result_type ImplFn(uintptr_t ptr) {
|
|
@@ -158,19 +157,19 @@ class BitGenRef {
|
|
|
158
157
|
|
|
159
158
|
// Get a type-erased InvokeMock pointer.
|
|
160
159
|
template <typename URBG>
|
|
161
|
-
static bool MockCall(uintptr_t gen_ptr,
|
|
162
|
-
void*
|
|
163
|
-
return reinterpret_cast<URBG*>(gen_ptr)->InvokeMock(
|
|
160
|
+
static bool MockCall(uintptr_t gen_ptr, FastTypeIdType key_id, void* result,
|
|
161
|
+
void* arg_tuple) {
|
|
162
|
+
return reinterpret_cast<URBG*>(gen_ptr)->InvokeMock(key_id, result,
|
|
164
163
|
arg_tuple);
|
|
165
164
|
}
|
|
166
|
-
static bool NotAMock(uintptr_t,
|
|
165
|
+
static bool NotAMock(uintptr_t, FastTypeIdType, void*, void*) {
|
|
167
166
|
return false;
|
|
168
167
|
}
|
|
169
168
|
|
|
170
|
-
inline bool InvokeMock(
|
|
169
|
+
inline bool InvokeMock(FastTypeIdType key_id, void* args_tuple,
|
|
171
170
|
void* result) {
|
|
172
171
|
if (mock_call_ == NotAMock) return false; // avoids an indirect call.
|
|
173
|
-
return mock_call_(t_erased_gen_ptr_,
|
|
172
|
+
return mock_call_(t_erased_gen_ptr_, key_id, args_tuple, result);
|
|
174
173
|
}
|
|
175
174
|
|
|
176
175
|
uintptr_t t_erased_gen_ptr_;
|
|
@@ -15,9 +15,14 @@
|
|
|
15
15
|
//
|
|
16
16
|
#include "absl/random/bit_gen_ref.h"
|
|
17
17
|
|
|
18
|
+
#include <cstdint>
|
|
19
|
+
#include <random>
|
|
20
|
+
#include <vector>
|
|
21
|
+
|
|
18
22
|
#include "gmock/gmock.h"
|
|
19
23
|
#include "gtest/gtest.h"
|
|
20
|
-
#include "absl/base/
|
|
24
|
+
#include "absl/base/config.h"
|
|
25
|
+
#include "absl/base/fast_type_id.h"
|
|
21
26
|
#include "absl/random/internal/sequence_urbg.h"
|
|
22
27
|
#include "absl/random/random.h"
|
|
23
28
|
|
|
@@ -34,7 +39,7 @@ class ConstBitGen {
|
|
|
34
39
|
result_type operator()() { return 1; }
|
|
35
40
|
|
|
36
41
|
// InvokeMock method
|
|
37
|
-
bool InvokeMock(
|
|
42
|
+
bool InvokeMock(FastTypeIdType, void*, void* result) {
|
|
38
43
|
*static_cast<int*>(result) = 42;
|
|
39
44
|
return true;
|
|
40
45
|
}
|
|
@@ -50,7 +50,6 @@
|
|
|
50
50
|
#include <type_traits>
|
|
51
51
|
|
|
52
52
|
#include "absl/base/config.h"
|
|
53
|
-
#include "absl/base/internal/inline_variable.h"
|
|
54
53
|
#include "absl/meta/type_traits.h"
|
|
55
54
|
#include "absl/random/bernoulli_distribution.h"
|
|
56
55
|
#include "absl/random/beta_distribution.h"
|
|
@@ -68,13 +67,12 @@
|
|
|
68
67
|
namespace absl {
|
|
69
68
|
ABSL_NAMESPACE_BEGIN
|
|
70
69
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
ABSL_INTERNAL_INLINE_CONSTEXPR(IntervalOpenClosedTag, IntervalOpenClosed, {});
|
|
70
|
+
inline constexpr IntervalClosedClosedTag IntervalClosedClosed = {};
|
|
71
|
+
inline constexpr IntervalClosedClosedTag IntervalClosed = {};
|
|
72
|
+
inline constexpr IntervalClosedOpenTag IntervalClosedOpen = {};
|
|
73
|
+
inline constexpr IntervalOpenOpenTag IntervalOpenOpen = {};
|
|
74
|
+
inline constexpr IntervalOpenOpenTag IntervalOpen = {};
|
|
75
|
+
inline constexpr IntervalOpenClosedTag IntervalOpenClosed = {};
|
|
78
76
|
|
|
79
77
|
// -----------------------------------------------------------------------------
|
|
80
78
|
// absl::Uniform<T>(tag, bitgen, lo, hi)
|
|
@@ -244,7 +244,7 @@ inline double gaussian_distribution_base::zignor(
|
|
|
244
244
|
bits); // U(-1, 1)
|
|
245
245
|
const double x = j * zg_.x[i];
|
|
246
246
|
|
|
247
|
-
//
|
|
247
|
+
// Rectangular box. Handles >97% of all cases.
|
|
248
248
|
// For any given box, this handles between 75% and 99% of values.
|
|
249
249
|
// Equivalent to U(01) < (x[i+1] / x[i]), and when i == 0, ~93.5%
|
|
250
250
|
if (std::abs(x) < zg_.x[i + 1]) {
|
|
@@ -15,6 +15,9 @@
|
|
|
15
15
|
#
|
|
16
16
|
|
|
17
17
|
load("@bazel_skylib//lib:selects.bzl", "selects")
|
|
18
|
+
load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
|
|
19
|
+
load("@rules_cc//cc:cc_library.bzl", "cc_library")
|
|
20
|
+
load("@rules_cc//cc:cc_test.bzl", "cc_test")
|
|
18
21
|
|
|
19
22
|
# Internal-only implementation classes for Abseil Random
|
|
20
23
|
load(
|
|
@@ -164,7 +167,7 @@ cc_library(
|
|
|
164
167
|
}),
|
|
165
168
|
deps = [
|
|
166
169
|
":fast_uniform_bits",
|
|
167
|
-
"//absl/base:
|
|
170
|
+
"//absl/base:config",
|
|
168
171
|
"//absl/base:dynamic_annotations",
|
|
169
172
|
"//absl/base:raw_logging_internal",
|
|
170
173
|
"//absl/strings",
|
|
@@ -174,13 +177,9 @@ cc_library(
|
|
|
174
177
|
)
|
|
175
178
|
|
|
176
179
|
cc_library(
|
|
177
|
-
name = "
|
|
178
|
-
srcs = [
|
|
179
|
-
|
|
180
|
-
],
|
|
181
|
-
hdrs = [
|
|
182
|
-
"pool_urbg.h",
|
|
183
|
-
],
|
|
180
|
+
name = "entropy_pool",
|
|
181
|
+
srcs = ["entropy_pool.cc"],
|
|
182
|
+
hdrs = ["entropy_pool.h"],
|
|
184
183
|
copts = ABSL_DEFAULT_COPTS,
|
|
185
184
|
linkopts = select({
|
|
186
185
|
"@rules_cc//cc/compiler:msvc-cl": [],
|
|
@@ -189,14 +188,12 @@ cc_library(
|
|
|
189
188
|
"//conditions:default": ["-pthread"],
|
|
190
189
|
}) + ABSL_DEFAULT_LINKOPTS,
|
|
191
190
|
deps = [
|
|
191
|
+
":platform",
|
|
192
192
|
":randen",
|
|
193
193
|
":seed_material",
|
|
194
|
-
":traits",
|
|
195
194
|
"//absl/base",
|
|
196
195
|
"//absl/base:config",
|
|
197
196
|
"//absl/base:core_headers",
|
|
198
|
-
"//absl/base:endian",
|
|
199
|
-
"//absl/base:raw_logging_internal",
|
|
200
197
|
"//absl/random:seed_gen_exception",
|
|
201
198
|
"//absl/types:span",
|
|
202
199
|
],
|
|
@@ -299,13 +296,12 @@ cc_library(
|
|
|
299
296
|
copts = ABSL_DEFAULT_COPTS,
|
|
300
297
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
301
298
|
deps = [
|
|
302
|
-
":
|
|
299
|
+
":entropy_pool",
|
|
303
300
|
":salted_seed_seq",
|
|
304
301
|
":seed_material",
|
|
305
|
-
"//absl/base:
|
|
302
|
+
"//absl/base:config",
|
|
306
303
|
"//absl/container:inlined_vector",
|
|
307
304
|
"//absl/meta:type_traits",
|
|
308
|
-
"//absl/types:span",
|
|
309
305
|
],
|
|
310
306
|
)
|
|
311
307
|
|
|
@@ -623,9 +619,11 @@ cc_test(
|
|
|
623
619
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
624
620
|
deps = [
|
|
625
621
|
":nonsecure_base",
|
|
622
|
+
"//absl/container:flat_hash_set",
|
|
626
623
|
"//absl/meta:type_traits",
|
|
627
624
|
"//absl/random",
|
|
628
625
|
"//absl/random:distributions",
|
|
626
|
+
"//absl/synchronization",
|
|
629
627
|
"@googletest//:gtest",
|
|
630
628
|
"@googletest//:gtest_main",
|
|
631
629
|
],
|
|
@@ -639,23 +637,24 @@ cc_test(
|
|
|
639
637
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
640
638
|
deps = [
|
|
641
639
|
":seed_material",
|
|
640
|
+
"//absl/types:span",
|
|
642
641
|
"@googletest//:gtest",
|
|
643
642
|
"@googletest//:gtest_main",
|
|
644
643
|
],
|
|
645
644
|
)
|
|
646
645
|
|
|
647
646
|
cc_test(
|
|
648
|
-
name = "
|
|
647
|
+
name = "entropy_pool_test",
|
|
649
648
|
size = "small",
|
|
650
649
|
srcs = [
|
|
651
|
-
"
|
|
650
|
+
"entropy_pool_test.cc",
|
|
652
651
|
],
|
|
653
652
|
copts = ABSL_TEST_COPTS,
|
|
654
653
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
655
654
|
deps = [
|
|
656
|
-
":
|
|
657
|
-
"//absl/
|
|
658
|
-
"//absl/
|
|
655
|
+
":entropy_pool",
|
|
656
|
+
"//absl/container:flat_hash_set",
|
|
657
|
+
"//absl/synchronization",
|
|
659
658
|
"@googletest//:gtest",
|
|
660
659
|
"@googletest//:gtest_main",
|
|
661
660
|
],
|
|
@@ -750,7 +749,6 @@ cc_test(
|
|
|
750
749
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
751
750
|
deps = [
|
|
752
751
|
":wide_multiply",
|
|
753
|
-
"//absl/numeric:bits",
|
|
754
752
|
"//absl/numeric:int128",
|
|
755
753
|
"@googletest//:gtest",
|
|
756
754
|
"@googletest//:gtest_main",
|
|
@@ -804,6 +802,7 @@ cc_test(
|
|
|
804
802
|
linkopts = ABSL_DEFAULT_LINKOPTS,
|
|
805
803
|
tags = [
|
|
806
804
|
"benchmark",
|
|
805
|
+
"no_test_ios_sim_arm64",
|
|
807
806
|
"no_test_ios_x86_64",
|
|
808
807
|
"no_test_loonix", # Crashing.
|
|
809
808
|
"no_test_wasm",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
#include <utility>
|
|
23
23
|
|
|
24
24
|
#include "absl/base/config.h"
|
|
25
|
-
#include "absl/base/
|
|
25
|
+
#include "absl/base/fast_type_id.h"
|
|
26
26
|
#include "absl/meta/type_traits.h"
|
|
27
27
|
#include "absl/utility/utility.h"
|
|
28
28
|
|
|
@@ -38,7 +38,7 @@ struct DistributionCaller {
|
|
|
38
38
|
static_assert(!std::is_pointer<URBG>::value,
|
|
39
39
|
"You must pass a reference, not a pointer.");
|
|
40
40
|
// SFINAE to detect whether the URBG type includes a member matching
|
|
41
|
-
// bool InvokeMock(
|
|
41
|
+
// bool InvokeMock(key_id, args_tuple*, result*).
|
|
42
42
|
//
|
|
43
43
|
// These live inside BitGenRef so that they have friend access
|
|
44
44
|
// to MockingBitGen. (see similar methods in DistributionCaller).
|
|
@@ -50,8 +50,8 @@ struct DistributionCaller {
|
|
|
50
50
|
|
|
51
51
|
template <class T>
|
|
52
52
|
using invoke_mock_t = decltype(std::declval<T*>()->InvokeMock(
|
|
53
|
-
std::declval
|
|
54
|
-
std::declval<void*>()
|
|
53
|
+
std::declval<FastTypeIdType>(), std::declval<void*>(),
|
|
54
|
+
std::declval<void*>()));
|
|
55
55
|
|
|
56
56
|
using HasInvokeMock = typename detector<invoke_mock_t, void, URBG>::type;
|
|
57
57
|
|
|
@@ -74,8 +74,7 @@ struct DistributionCaller {
|
|
|
74
74
|
|
|
75
75
|
ArgTupleT arg_tuple(std::forward<Args>(args)...);
|
|
76
76
|
ResultT result;
|
|
77
|
-
if (!urbg->InvokeMock(
|
|
78
|
-
&result)) {
|
|
77
|
+
if (!urbg->InvokeMock(FastTypeId<KeyT>(), &arg_tuple, &result)) {
|
|
79
78
|
auto dist = absl::make_from_tuple<DistrT>(arg_tuple);
|
|
80
79
|
result = dist(*urbg);
|
|
81
80
|
}
|