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
|
@@ -180,7 +180,7 @@ struct Policy {
|
|
|
180
180
|
|
|
181
181
|
static slot_type& element(slot_type* slot) { return *slot; }
|
|
182
182
|
|
|
183
|
-
template <class Hash>
|
|
183
|
+
template <class Hash, bool kIsDefault>
|
|
184
184
|
static constexpr HashSlotFn get_hash_slot_fn() {
|
|
185
185
|
return nullptr;
|
|
186
186
|
}
|
|
@@ -436,13 +436,14 @@ TEST_F(NoPropagateOnMove, MoveAssignmentWithDifferentAlloc) {
|
|
|
436
436
|
}
|
|
437
437
|
|
|
438
438
|
TEST_F(PropagateOnAll, Swap) {
|
|
439
|
-
|
|
439
|
+
t1.insert(0);
|
|
440
440
|
Table u(0, a2);
|
|
441
441
|
u.swap(t1);
|
|
442
442
|
EXPECT_EQ(a1, u.get_allocator());
|
|
443
443
|
EXPECT_EQ(a2, t1.get_allocator());
|
|
444
444
|
EXPECT_EQ(1, a1.num_allocs());
|
|
445
445
|
EXPECT_EQ(0, a2.num_allocs());
|
|
446
|
+
auto it = u.begin();
|
|
446
447
|
EXPECT_EQ(0, it->num_moves());
|
|
447
448
|
EXPECT_EQ(0, it->num_copies());
|
|
448
449
|
}
|
|
@@ -64,7 +64,7 @@ struct IntPolicy {
|
|
|
64
64
|
return std::forward<F>(f)(x, x);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
template <class Hash>
|
|
67
|
+
template <class Hash, bool kIsDefault>
|
|
68
68
|
static constexpr HashSlotFn get_hash_slot_fn() {
|
|
69
69
|
return nullptr;
|
|
70
70
|
}
|
|
@@ -127,7 +127,7 @@ class StringPolicy {
|
|
|
127
127
|
PairArgs(std::forward<Args>(args)...));
|
|
128
128
|
}
|
|
129
129
|
|
|
130
|
-
template <class Hash>
|
|
130
|
+
template <class Hash, bool kIsDefault>
|
|
131
131
|
static constexpr HashSlotFn get_hash_slot_fn() {
|
|
132
132
|
return nullptr;
|
|
133
133
|
}
|
|
@@ -172,8 +172,7 @@ struct string_generator {
|
|
|
172
172
|
//
|
|
173
173
|
// On a table of size N, keep deleting the LRU entry and add a random one.
|
|
174
174
|
void BM_CacheInSteadyState(benchmark::State& state) {
|
|
175
|
-
|
|
176
|
-
std::mt19937 rng(rd());
|
|
175
|
+
absl::InsecureBitGen rng;
|
|
177
176
|
string_generator gen{12};
|
|
178
177
|
StringTable t;
|
|
179
178
|
std::deque<std::string> keys;
|
|
@@ -250,8 +249,7 @@ void BM_EndComparison(benchmark::State& state) {
|
|
|
250
249
|
BENCHMARK(BM_EndComparison);
|
|
251
250
|
|
|
252
251
|
void BM_Iteration(benchmark::State& state) {
|
|
253
|
-
|
|
254
|
-
std::mt19937 rng(rd());
|
|
252
|
+
absl::InsecureBitGen rng;
|
|
255
253
|
string_generator gen{12};
|
|
256
254
|
StringTable t;
|
|
257
255
|
|
|
@@ -293,8 +291,7 @@ BENCHMARK(BM_Iteration)
|
|
|
293
291
|
->ArgPair(1000, 10);
|
|
294
292
|
|
|
295
293
|
void BM_CopyCtorSparseInt(benchmark::State& state) {
|
|
296
|
-
|
|
297
|
-
std::mt19937 rng(rd());
|
|
294
|
+
absl::InsecureBitGen rng;
|
|
298
295
|
IntTable t;
|
|
299
296
|
std::uniform_int_distribution<uint64_t> dist(0, ~uint64_t{});
|
|
300
297
|
|
|
@@ -312,8 +309,7 @@ void BM_CopyCtorSparseInt(benchmark::State& state) {
|
|
|
312
309
|
BENCHMARK(BM_CopyCtorSparseInt)->Range(1, 4096);
|
|
313
310
|
|
|
314
311
|
void BM_CopyCtorInt(benchmark::State& state) {
|
|
315
|
-
|
|
316
|
-
std::mt19937 rng(rd());
|
|
312
|
+
absl::InsecureBitGen rng;
|
|
317
313
|
IntTable t;
|
|
318
314
|
std::uniform_int_distribution<uint64_t> dist(0, ~uint64_t{});
|
|
319
315
|
|
|
@@ -330,8 +326,7 @@ void BM_CopyCtorInt(benchmark::State& state) {
|
|
|
330
326
|
BENCHMARK(BM_CopyCtorInt)->Range(0, 4096);
|
|
331
327
|
|
|
332
328
|
void BM_CopyCtorString(benchmark::State& state) {
|
|
333
|
-
|
|
334
|
-
std::mt19937 rng(rd());
|
|
329
|
+
absl::InsecureBitGen rng;
|
|
335
330
|
StringTable t;
|
|
336
331
|
std::uniform_int_distribution<uint64_t> dist(0, ~uint64_t{});
|
|
337
332
|
|
|
@@ -348,8 +343,7 @@ void BM_CopyCtorString(benchmark::State& state) {
|
|
|
348
343
|
BENCHMARK(BM_CopyCtorString)->Range(0, 4096);
|
|
349
344
|
|
|
350
345
|
void BM_CopyAssign(benchmark::State& state) {
|
|
351
|
-
|
|
352
|
-
std::mt19937 rng(rd());
|
|
346
|
+
absl::InsecureBitGen rng;
|
|
353
347
|
IntTable t;
|
|
354
348
|
std::uniform_int_distribution<uint64_t> dist(0, ~uint64_t{});
|
|
355
349
|
while (t.size() < state.range(0)) {
|
|
@@ -365,8 +359,7 @@ void BM_CopyAssign(benchmark::State& state) {
|
|
|
365
359
|
BENCHMARK(BM_CopyAssign)->Range(128, 4096);
|
|
366
360
|
|
|
367
361
|
void BM_RangeCtor(benchmark::State& state) {
|
|
368
|
-
|
|
369
|
-
std::mt19937 rng(rd());
|
|
362
|
+
absl::InsecureBitGen rng;
|
|
370
363
|
std::uniform_int_distribution<uint64_t> dist(0, ~uint64_t{});
|
|
371
364
|
std::vector<int> values;
|
|
372
365
|
const size_t desired_size = state.range(0);
|
|
@@ -418,7 +411,17 @@ void BM_ReserveIntTable(benchmark::State& state) {
|
|
|
418
411
|
}
|
|
419
412
|
}
|
|
420
413
|
}
|
|
421
|
-
BENCHMARK(BM_ReserveIntTable)
|
|
414
|
+
BENCHMARK(BM_ReserveIntTable)
|
|
415
|
+
->Arg(1)
|
|
416
|
+
->Arg(2)
|
|
417
|
+
->Arg(4)
|
|
418
|
+
->Arg(8)
|
|
419
|
+
->Arg(16)
|
|
420
|
+
->Arg(32)
|
|
421
|
+
->Arg(64)
|
|
422
|
+
->Arg(128)
|
|
423
|
+
->Arg(256)
|
|
424
|
+
->Arg(512);
|
|
422
425
|
|
|
423
426
|
void BM_ReserveStringTable(benchmark::State& state) {
|
|
424
427
|
constexpr size_t kBatchSize = 1024;
|
|
@@ -437,7 +440,17 @@ void BM_ReserveStringTable(benchmark::State& state) {
|
|
|
437
440
|
}
|
|
438
441
|
}
|
|
439
442
|
}
|
|
440
|
-
BENCHMARK(BM_ReserveStringTable)
|
|
443
|
+
BENCHMARK(BM_ReserveStringTable)
|
|
444
|
+
->Arg(1)
|
|
445
|
+
->Arg(2)
|
|
446
|
+
->Arg(4)
|
|
447
|
+
->Arg(8)
|
|
448
|
+
->Arg(16)
|
|
449
|
+
->Arg(32)
|
|
450
|
+
->Arg(64)
|
|
451
|
+
->Arg(128)
|
|
452
|
+
->Arg(256)
|
|
453
|
+
->Arg(512);
|
|
441
454
|
|
|
442
455
|
// Like std::iota, except that ctrl_t doesn't support operator++.
|
|
443
456
|
template <typename CtrlIter>
|
|
@@ -506,17 +519,6 @@ void BM_Group_MaskNonFull(benchmark::State& state) {
|
|
|
506
519
|
}
|
|
507
520
|
BENCHMARK(BM_Group_MaskNonFull);
|
|
508
521
|
|
|
509
|
-
void BM_Group_CountLeadingEmptyOrDeleted(benchmark::State& state) {
|
|
510
|
-
std::array<ctrl_t, Group::kWidth> group;
|
|
511
|
-
Iota(group.begin(), group.end(), -2);
|
|
512
|
-
Group g{group.data()};
|
|
513
|
-
for (auto _ : state) {
|
|
514
|
-
::benchmark::DoNotOptimize(g);
|
|
515
|
-
::benchmark::DoNotOptimize(g.CountLeadingEmptyOrDeleted());
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
BENCHMARK(BM_Group_CountLeadingEmptyOrDeleted);
|
|
519
|
-
|
|
520
522
|
void BM_Group_MatchFirstEmptyOrDeleted(benchmark::State& state) {
|
|
521
523
|
std::array<ctrl_t, Group::kWidth> group;
|
|
522
524
|
Iota(group.begin(), group.end(), -2);
|
|
@@ -71,7 +71,7 @@ struct Policy {
|
|
|
71
71
|
return std::forward<F>(f)(arg, arg);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
template <class Hash>
|
|
74
|
+
template <class Hash, bool kIsDefault>
|
|
75
75
|
static constexpr auto get_hash_slot_fn() {
|
|
76
76
|
return nullptr;
|
|
77
77
|
}
|
|
@@ -245,13 +245,28 @@ struct PtrIdentity {
|
|
|
245
245
|
}
|
|
246
246
|
};
|
|
247
247
|
|
|
248
|
-
|
|
248
|
+
enum class StringSize { kSmall, kMedium, kLarge, kExtraLarge };
|
|
249
|
+
constexpr char kStringFormat[] = "%s/name-%07d-of-9999999.txt";
|
|
249
250
|
|
|
250
|
-
template <
|
|
251
|
+
template <StringSize size>
|
|
251
252
|
struct String {
|
|
252
253
|
std::string value;
|
|
253
254
|
static std::string Make(uint32_t v) {
|
|
254
|
-
|
|
255
|
+
switch (size) {
|
|
256
|
+
case StringSize::kSmall:
|
|
257
|
+
return absl::StrCat(v);
|
|
258
|
+
case StringSize::kMedium: // < 32 bytes
|
|
259
|
+
return absl::StrFormat(kStringFormat, "/path", v);
|
|
260
|
+
case StringSize::kLarge: // 33-64 bytes
|
|
261
|
+
return absl::StrFormat(kStringFormat, "/path/to/file", v);
|
|
262
|
+
case StringSize::kExtraLarge: // > 64 bytes
|
|
263
|
+
return absl::StrFormat(kStringFormat,
|
|
264
|
+
"/path/to/a/very/long/file/name/so/that/total/"
|
|
265
|
+
"length/is/larger/than/64/bytes",
|
|
266
|
+
v);
|
|
267
|
+
default:
|
|
268
|
+
return "";
|
|
269
|
+
}
|
|
255
270
|
}
|
|
256
271
|
};
|
|
257
272
|
|
|
@@ -285,10 +300,9 @@ struct Sequential<Ptr<Align>*> {
|
|
|
285
300
|
mutable uintptr_t current = PointerForAlignment<Align>();
|
|
286
301
|
};
|
|
287
302
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
std::string operator()() const { return String<small>::Make(current++); }
|
|
303
|
+
template <StringSize size>
|
|
304
|
+
struct Sequential<String<size>> {
|
|
305
|
+
std::string operator()() const { return String<size>::Make(current++); }
|
|
292
306
|
mutable uint32_t current = 0;
|
|
293
307
|
};
|
|
294
308
|
|
|
@@ -389,10 +403,10 @@ struct Random<PtrIdentity<Align>, Dist> {
|
|
|
389
403
|
}
|
|
390
404
|
};
|
|
391
405
|
|
|
392
|
-
template <class Dist,
|
|
393
|
-
struct Random<String<
|
|
406
|
+
template <class Dist, StringSize size>
|
|
407
|
+
struct Random<String<size>, Dist> {
|
|
394
408
|
std::string operator()() const {
|
|
395
|
-
return String<
|
|
409
|
+
return String<size>::Make(Random<uint32_t, Dist>{}());
|
|
396
410
|
}
|
|
397
411
|
};
|
|
398
412
|
|
|
@@ -421,9 +435,20 @@ std::string Name(PtrIdentity<Align>*) {
|
|
|
421
435
|
return absl::StrCat("PtrIdentity", Align);
|
|
422
436
|
}
|
|
423
437
|
|
|
424
|
-
template <
|
|
425
|
-
std::string Name(String<
|
|
426
|
-
|
|
438
|
+
template <StringSize size>
|
|
439
|
+
std::string Name(String<size>*) {
|
|
440
|
+
switch (size) {
|
|
441
|
+
case StringSize::kSmall:
|
|
442
|
+
return "StrS";
|
|
443
|
+
case StringSize::kMedium:
|
|
444
|
+
return "StrM";
|
|
445
|
+
case StringSize::kLarge:
|
|
446
|
+
return "StrL";
|
|
447
|
+
case StringSize::kExtraLarge:
|
|
448
|
+
return "StrXL";
|
|
449
|
+
default:
|
|
450
|
+
return "";
|
|
451
|
+
}
|
|
427
452
|
}
|
|
428
453
|
|
|
429
454
|
template <class T, class U>
|
|
@@ -543,12 +568,18 @@ int main(int argc, char** argv) {
|
|
|
543
568
|
RunForType<PtrIdentity<32>>(results);
|
|
544
569
|
RunForType<PtrIdentity<64>>(results);
|
|
545
570
|
RunForType<std::pair<uint32_t, uint32_t>>(results);
|
|
546
|
-
RunForType<String<
|
|
547
|
-
RunForType<String<
|
|
548
|
-
RunForType<
|
|
549
|
-
RunForType<
|
|
550
|
-
RunForType<std::pair<uint64_t, String<
|
|
551
|
-
RunForType<std::pair<String<
|
|
571
|
+
RunForType<String<StringSize::kSmall>>(results);
|
|
572
|
+
RunForType<String<StringSize::kMedium>>(results);
|
|
573
|
+
RunForType<String<StringSize::kLarge>>(results);
|
|
574
|
+
RunForType<String<StringSize::kExtraLarge>>(results);
|
|
575
|
+
RunForType<std::pair<uint64_t, String<StringSize::kSmall>>>(results);
|
|
576
|
+
RunForType<std::pair<String<StringSize::kSmall>, uint64_t>>(results);
|
|
577
|
+
RunForType<std::pair<uint64_t, String<StringSize::kMedium>>>(results);
|
|
578
|
+
RunForType<std::pair<String<StringSize::kMedium>, uint64_t>>(results);
|
|
579
|
+
RunForType<std::pair<uint64_t, String<StringSize::kLarge>>>(results);
|
|
580
|
+
RunForType<std::pair<String<StringSize::kLarge>, uint64_t>>(results);
|
|
581
|
+
RunForType<std::pair<uint64_t, String<StringSize::kExtraLarge>>>(results);
|
|
582
|
+
RunForType<std::pair<String<StringSize::kExtraLarge>, uint64_t>>(results);
|
|
552
583
|
|
|
553
584
|
switch (output()) {
|
|
554
585
|
case OutputStyle::kRegular:
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// Copyright 2025 The Abseil Authors
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
//
|
|
15
|
+
// This is a private implementation detail of resize algorithm of
|
|
16
|
+
// raw_hash_set. It is exposed in a separate file for testing purposes.
|
|
17
|
+
|
|
18
|
+
#ifndef ABSL_CONTAINER_INTERNAL_RAW_HASH_SET_RESIZE_IMPL_H_
|
|
19
|
+
#define ABSL_CONTAINER_INTERNAL_RAW_HASH_SET_RESIZE_IMPL_H_
|
|
20
|
+
|
|
21
|
+
#include <cstddef>
|
|
22
|
+
#include <cstdint>
|
|
23
|
+
|
|
24
|
+
#include "absl/base/config.h"
|
|
25
|
+
|
|
26
|
+
namespace absl {
|
|
27
|
+
ABSL_NAMESPACE_BEGIN
|
|
28
|
+
namespace container_internal {
|
|
29
|
+
|
|
30
|
+
// Encoding for probed elements used for smaller tables.
|
|
31
|
+
// Data is encoded into single integer.
|
|
32
|
+
// Storage format for 4 bytes:
|
|
33
|
+
// - 7 bits for h2
|
|
34
|
+
// - 12 bits for source_offset
|
|
35
|
+
// - 13 bits for h1
|
|
36
|
+
// Storage format for 8 bytes:
|
|
37
|
+
// - 7 bits for h2
|
|
38
|
+
// - 28 bits for source_offset
|
|
39
|
+
// - 29 bits for h1
|
|
40
|
+
// Storage format for 16 bytes:
|
|
41
|
+
// - 7 bits for h2
|
|
42
|
+
// - 57 bits for source_offset
|
|
43
|
+
// - 58 bits for h1
|
|
44
|
+
template <typename IntType, size_t kTotalBits>
|
|
45
|
+
struct ProbedItemImpl {
|
|
46
|
+
static constexpr IntType kH2Bits = 7;
|
|
47
|
+
|
|
48
|
+
static constexpr IntType kMaxOldBits = (kTotalBits - kH2Bits) / 2;
|
|
49
|
+
static constexpr IntType kMaxOldCapacity = (IntType{1} << kMaxOldBits) - 1;
|
|
50
|
+
|
|
51
|
+
// We always have one bit more for h1.
|
|
52
|
+
static constexpr IntType kMaxNewBits = kMaxOldBits + 1;
|
|
53
|
+
static constexpr IntType kMaxNewCapacity = (IntType{1} << kMaxNewBits) - 1;
|
|
54
|
+
|
|
55
|
+
static_assert(kMaxNewBits + kMaxOldBits + kH2Bits == kTotalBits);
|
|
56
|
+
|
|
57
|
+
ProbedItemImpl() = default;
|
|
58
|
+
ProbedItemImpl(uint8_t h2_arg, size_t source_offset_arg, size_t h1_arg)
|
|
59
|
+
: h2(h2_arg),
|
|
60
|
+
source_offset(static_cast<IntType>(source_offset_arg)),
|
|
61
|
+
h1(static_cast<IntType>(h1_arg)) {}
|
|
62
|
+
|
|
63
|
+
IntType h2 : kH2Bits;
|
|
64
|
+
IntType source_offset : kMaxOldBits;
|
|
65
|
+
IntType h1 : kMaxNewBits;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
using ProbedItem4Bytes = ProbedItemImpl<uint32_t, 32>;
|
|
69
|
+
static_assert(sizeof(ProbedItem4Bytes) == 4);
|
|
70
|
+
using ProbedItem8Bytes = ProbedItemImpl<uint64_t, 64>;
|
|
71
|
+
static_assert(sizeof(ProbedItem8Bytes) == 8);
|
|
72
|
+
using ProbedItem16Bytes = ProbedItemImpl<uint64_t, 7 + 57 + 58>;
|
|
73
|
+
static_assert(sizeof(ProbedItem16Bytes) == 16);
|
|
74
|
+
|
|
75
|
+
} // namespace container_internal
|
|
76
|
+
ABSL_NAMESPACE_END
|
|
77
|
+
} // namespace absl
|
|
78
|
+
|
|
79
|
+
#endif // ABSL_CONTAINER_INTERNAL_RAW_HASH_SET_RESIZE_IMPL_H_
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// Copyright 2025 The Abseil Authors
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
#include "absl/container/internal/raw_hash_set_resize_impl.h"
|
|
16
|
+
|
|
17
|
+
#include <cstddef>
|
|
18
|
+
#include <cstdint>
|
|
19
|
+
#include <limits>
|
|
20
|
+
|
|
21
|
+
#include "gtest/gtest.h"
|
|
22
|
+
#include "absl/base/config.h"
|
|
23
|
+
|
|
24
|
+
namespace absl {
|
|
25
|
+
ABSL_NAMESPACE_BEGIN
|
|
26
|
+
namespace container_internal {
|
|
27
|
+
namespace {
|
|
28
|
+
|
|
29
|
+
constexpr size_t kSmallSourceOffset = 17;
|
|
30
|
+
constexpr size_t kSmallH1 = 25;
|
|
31
|
+
|
|
32
|
+
template <class Encoder>
|
|
33
|
+
class EncoderTest : public testing::Test {};
|
|
34
|
+
|
|
35
|
+
using ProbedItemTypes =
|
|
36
|
+
::testing::Types<ProbedItem4Bytes, ProbedItem8Bytes, ProbedItem16Bytes>;
|
|
37
|
+
TYPED_TEST_SUITE(EncoderTest, ProbedItemTypes);
|
|
38
|
+
|
|
39
|
+
TYPED_TEST(EncoderTest, EncodeDecodeSmall) {
|
|
40
|
+
using ProbedItem = TypeParam;
|
|
41
|
+
for (uint8_t h2 = 0; h2 < 128; ++h2) {
|
|
42
|
+
ProbedItem item(h2, kSmallSourceOffset, kSmallH1);
|
|
43
|
+
EXPECT_EQ(item.h2, h2);
|
|
44
|
+
EXPECT_EQ(item.source_offset, kSmallSourceOffset);
|
|
45
|
+
EXPECT_EQ(item.h1 & ProbedItem::kMaxNewCapacity, kSmallH1);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
TYPED_TEST(EncoderTest, EncodeDecodeMax) {
|
|
50
|
+
using ProbedItem = TypeParam;
|
|
51
|
+
for (uint8_t h2 = 0; h2 < 128; ++h2) {
|
|
52
|
+
size_t source_offset = static_cast<size_t>(std::min<uint64_t>(
|
|
53
|
+
ProbedItem::kMaxOldCapacity, (std::numeric_limits<size_t>::max)()));
|
|
54
|
+
size_t h1 = static_cast<size_t>(std::min<uint64_t>(
|
|
55
|
+
ProbedItem::kMaxNewCapacity, (std::numeric_limits<size_t>::max)()));
|
|
56
|
+
ProbedItem item(h2, source_offset, h1);
|
|
57
|
+
EXPECT_EQ(item.h2, h2);
|
|
58
|
+
EXPECT_EQ(item.source_offset, source_offset);
|
|
59
|
+
EXPECT_EQ(item.h1 & ProbedItem::kMaxNewCapacity, h1);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
} // namespace
|
|
64
|
+
} // namespace container_internal
|
|
65
|
+
ABSL_NAMESPACE_END
|
|
66
|
+
} // namespace absl
|