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
|
@@ -109,10 +109,10 @@ absl_cc_library(
|
|
|
109
109
|
absl::core_headers
|
|
110
110
|
absl::dynamic_annotations
|
|
111
111
|
absl::malloc_internal
|
|
112
|
+
absl::nullability
|
|
112
113
|
absl::raw_logging_internal
|
|
113
114
|
absl::stacktrace
|
|
114
115
|
absl::symbolize
|
|
115
|
-
absl::tracing_internal
|
|
116
116
|
absl::time
|
|
117
117
|
absl::tracing_internal
|
|
118
118
|
Threads::Threads
|
|
@@ -192,6 +192,7 @@ absl_cc_test(
|
|
|
192
192
|
absl::core_headers
|
|
193
193
|
absl::log
|
|
194
194
|
absl::memory
|
|
195
|
+
absl::random_random
|
|
195
196
|
absl::time
|
|
196
197
|
GTest::gmock_main
|
|
197
198
|
)
|
|
@@ -37,7 +37,7 @@ TEST(Barrier, SanityTest) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
// Increment the counter.
|
|
40
|
-
absl::MutexLock lock(
|
|
40
|
+
absl::MutexLock lock(mutex);
|
|
41
41
|
++counter;
|
|
42
42
|
};
|
|
43
43
|
|
|
@@ -57,7 +57,7 @@ TEST(Barrier, SanityTest) {
|
|
|
57
57
|
// The counter should still be zero since no thread should have
|
|
58
58
|
// been able to pass the barrier yet.
|
|
59
59
|
{
|
|
60
|
-
absl::MutexLock lock(
|
|
60
|
+
absl::MutexLock lock(mutex);
|
|
61
61
|
EXPECT_EQ(counter, 0);
|
|
62
62
|
}
|
|
63
63
|
|
|
@@ -70,6 +70,6 @@ TEST(Barrier, SanityTest) {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
// All threads should now have incremented the counter.
|
|
73
|
-
absl::MutexLock lock(
|
|
73
|
+
absl::MutexLock lock(mutex);
|
|
74
74
|
EXPECT_EQ(counter, kNumThreads);
|
|
75
75
|
}
|
|
@@ -42,7 +42,7 @@ bool BlockingCounter::DecrementCount() {
|
|
|
42
42
|
"BlockingCounter::DecrementCount() called too many times");
|
|
43
43
|
if (count == 0) {
|
|
44
44
|
base_internal::TraceSignal(this, TraceObjectKind());
|
|
45
|
-
MutexLock l(
|
|
45
|
+
MutexLock l(lock_);
|
|
46
46
|
done_ = true;
|
|
47
47
|
return true;
|
|
48
48
|
}
|
|
@@ -52,7 +52,7 @@ bool BlockingCounter::DecrementCount() {
|
|
|
52
52
|
void BlockingCounter::Wait() {
|
|
53
53
|
base_internal::TraceWait(this, TraceObjectKind());
|
|
54
54
|
{
|
|
55
|
-
MutexLock l(
|
|
55
|
+
MutexLock l(this->lock_);
|
|
56
56
|
|
|
57
57
|
// only one thread may call Wait(). To support more than one thread,
|
|
58
58
|
// implement a counter num_to_exit, like in the Barrier class.
|
|
@@ -35,7 +35,7 @@ namespace synchronization_internal {
|
|
|
35
35
|
// ThreadIdentity storage is persistent, we maintain a free-list of previously
|
|
36
36
|
// released ThreadIdentity objects.
|
|
37
37
|
ABSL_CONST_INIT static base_internal::SpinLock freelist_lock(
|
|
38
|
-
|
|
38
|
+
base_internal::SCHEDULE_KERNEL_ONLY);
|
|
39
39
|
ABSL_CONST_INIT static base_internal::ThreadIdentity* thread_identity_freelist;
|
|
40
40
|
|
|
41
41
|
// A per-thread destructor for reclaiming associated ThreadIdentity objects.
|
|
@@ -60,7 +60,7 @@ static void ReclaimThreadIdentity(void* v) {
|
|
|
60
60
|
// association state in this case.
|
|
61
61
|
base_internal::ClearCurrentThreadIdentity();
|
|
62
62
|
{
|
|
63
|
-
base_internal::SpinLockHolder l(
|
|
63
|
+
base_internal::SpinLockHolder l(freelist_lock);
|
|
64
64
|
identity->next = thread_identity_freelist;
|
|
65
65
|
thread_identity_freelist = identity;
|
|
66
66
|
}
|
|
@@ -108,7 +108,7 @@ static base_internal::ThreadIdentity* NewThreadIdentity() {
|
|
|
108
108
|
|
|
109
109
|
{
|
|
110
110
|
// Re-use a previously released object if possible.
|
|
111
|
-
base_internal::SpinLockHolder l(
|
|
111
|
+
base_internal::SpinLockHolder l(freelist_lock);
|
|
112
112
|
if (thread_identity_freelist) {
|
|
113
113
|
identity = thread_identity_freelist; // Take list-head.
|
|
114
114
|
thread_identity_freelist = thread_identity_freelist->next;
|
|
@@ -31,10 +31,6 @@ namespace absl {
|
|
|
31
31
|
ABSL_NAMESPACE_BEGIN
|
|
32
32
|
namespace synchronization_internal {
|
|
33
33
|
|
|
34
|
-
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
|
35
|
-
constexpr char FutexWaiter::kName[];
|
|
36
|
-
#endif
|
|
37
|
-
|
|
38
34
|
int FutexWaiter::WaitUntil(std::atomic<int32_t>* v, int32_t val,
|
|
39
35
|
KernelTimeout t) {
|
|
40
36
|
#ifdef CLOCK_MONOTONIC
|
|
@@ -33,15 +33,15 @@
|
|
|
33
33
|
#include "absl/base/internal/low_level_alloc.h"
|
|
34
34
|
#ifndef ABSL_LOW_LEVEL_ALLOC_MISSING
|
|
35
35
|
|
|
36
|
-
#include "absl/synchronization/internal/graphcycles.h"
|
|
37
|
-
|
|
38
36
|
#include <algorithm>
|
|
39
37
|
#include <array>
|
|
40
38
|
#include <cinttypes>
|
|
41
39
|
#include <limits>
|
|
40
|
+
|
|
42
41
|
#include "absl/base/internal/hide_ptr.h"
|
|
43
42
|
#include "absl/base/internal/raw_logging.h"
|
|
44
43
|
#include "absl/base/internal/spinlock.h"
|
|
44
|
+
#include "absl/synchronization/internal/graphcycles.h"
|
|
45
45
|
|
|
46
46
|
// Do not use STL. This module does not use standard memory allocation.
|
|
47
47
|
|
|
@@ -54,15 +54,14 @@ namespace {
|
|
|
54
54
|
// Avoid LowLevelAlloc's default arena since it calls malloc hooks in
|
|
55
55
|
// which people are doing things like acquiring Mutexes.
|
|
56
56
|
ABSL_CONST_INIT static absl::base_internal::SpinLock arena_mu(
|
|
57
|
-
|
|
57
|
+
base_internal::SCHEDULE_KERNEL_ONLY);
|
|
58
58
|
ABSL_CONST_INIT static base_internal::LowLevelAlloc::Arena* arena;
|
|
59
59
|
|
|
60
60
|
static void InitArenaIfNecessary() {
|
|
61
|
-
arena_mu
|
|
61
|
+
base_internal::SpinLockHolder l(arena_mu);
|
|
62
62
|
if (arena == nullptr) {
|
|
63
63
|
arena = base_internal::LowLevelAlloc::NewArena(0);
|
|
64
64
|
}
|
|
65
|
-
arena_mu.Unlock();
|
|
66
65
|
}
|
|
67
66
|
|
|
68
67
|
// Number of inlined elements in Vec. Hash table implementation
|
|
@@ -89,7 +88,7 @@ class Vec {
|
|
|
89
88
|
T* end() { return ptr_ + size_; }
|
|
90
89
|
const T& operator[](uint32_t i) const { return ptr_[i]; }
|
|
91
90
|
T& operator[](uint32_t i) { return ptr_[i]; }
|
|
92
|
-
const T& back() const { return ptr_[size_-1]; }
|
|
91
|
+
const T& back() const { return ptr_[size_ - 1]; }
|
|
93
92
|
void pop_back() { size_--; }
|
|
94
93
|
|
|
95
94
|
void push_back(const T& v) {
|
|
@@ -178,7 +177,7 @@ class NodeSet {
|
|
|
178
177
|
}
|
|
179
178
|
table_[i] = v;
|
|
180
179
|
// Double when 75% full.
|
|
181
|
-
if (occupied_ >= table_.size() - table_.size()/4) Grow();
|
|
180
|
+
if (occupied_ >= table_.size() - table_.size() / 4) Grow();
|
|
182
181
|
return true;
|
|
183
182
|
}
|
|
184
183
|
|
|
@@ -193,7 +192,7 @@ class NodeSet {
|
|
|
193
192
|
// Example:
|
|
194
193
|
// HASH_FOR_EACH(elem, node->out) { ... }
|
|
195
194
|
#define HASH_FOR_EACH(elem, eset) \
|
|
196
|
-
for (int32_t elem, _cursor = 0; (eset).Next(&_cursor, &elem);
|
|
195
|
+
for (int32_t elem, _cursor = 0; (eset).Next(&_cursor, &elem);)
|
|
197
196
|
bool Next(int32_t* cursor, int32_t* elem) {
|
|
198
197
|
while (static_cast<uint32_t>(*cursor) < table_.size()) {
|
|
199
198
|
int32_t v = table_[static_cast<uint32_t>(*cursor)];
|
|
@@ -209,7 +208,7 @@ class NodeSet {
|
|
|
209
208
|
private:
|
|
210
209
|
enum : int32_t { kEmpty = -1, kDel = -2 };
|
|
211
210
|
Vec<int32_t> table_;
|
|
212
|
-
uint32_t occupied_;
|
|
211
|
+
uint32_t occupied_; // Count of non-empty slots (includes deleted slots)
|
|
213
212
|
|
|
214
213
|
static uint32_t Hash(int32_t a) { return static_cast<uint32_t>(a) * 41; }
|
|
215
214
|
|
|
@@ -270,25 +269,23 @@ inline GraphId MakeId(int32_t index, uint32_t version) {
|
|
|
270
269
|
return g;
|
|
271
270
|
}
|
|
272
271
|
|
|
273
|
-
inline int32_t NodeIndex(GraphId id) {
|
|
274
|
-
return static_cast<int32_t>(id.handle);
|
|
275
|
-
}
|
|
272
|
+
inline int32_t NodeIndex(GraphId id) { return static_cast<int32_t>(id.handle); }
|
|
276
273
|
|
|
277
274
|
inline uint32_t NodeVersion(GraphId id) {
|
|
278
275
|
return static_cast<uint32_t>(id.handle >> 32);
|
|
279
276
|
}
|
|
280
277
|
|
|
281
278
|
struct Node {
|
|
282
|
-
int32_t rank;
|
|
283
|
-
uint32_t version;
|
|
284
|
-
int32_t next_hash;
|
|
285
|
-
bool visited;
|
|
286
|
-
uintptr_t masked_ptr;
|
|
287
|
-
NodeSet in;
|
|
288
|
-
NodeSet out;
|
|
289
|
-
int priority;
|
|
290
|
-
int nstack;
|
|
291
|
-
void* stack[40];
|
|
279
|
+
int32_t rank; // rank number assigned by Pearce-Kelly algorithm
|
|
280
|
+
uint32_t version; // Current version number
|
|
281
|
+
int32_t next_hash; // Next entry in hash table
|
|
282
|
+
bool visited; // Temporary marker used by depth-first-search
|
|
283
|
+
uintptr_t masked_ptr; // User-supplied pointer
|
|
284
|
+
NodeSet in; // List of immediate predecessor nodes in graph
|
|
285
|
+
NodeSet out; // List of immediate successor nodes in graph
|
|
286
|
+
int priority; // Priority of recorded stack trace.
|
|
287
|
+
int nstack; // Depth of recorded stack trace.
|
|
288
|
+
void* stack[40]; // stack[0,nstack-1] holds stack trace for node.
|
|
292
289
|
};
|
|
293
290
|
|
|
294
291
|
// Hash table for pointer to node index lookups.
|
|
@@ -318,7 +315,7 @@ class PointerMap {
|
|
|
318
315
|
// Advance through linked list while keeping track of the
|
|
319
316
|
// predecessor slot that points to the current entry.
|
|
320
317
|
auto masked = base_internal::HidePtr(ptr);
|
|
321
|
-
for (int32_t* slot = &table_[Hash(ptr)]; *slot != -1;
|
|
318
|
+
for (int32_t* slot = &table_[Hash(ptr)]; *slot != -1;) {
|
|
322
319
|
int32_t index = *slot;
|
|
323
320
|
Node* n = (*nodes_)[static_cast<uint32_t>(index)];
|
|
324
321
|
if (n->masked_ptr == masked) {
|
|
@@ -381,7 +378,9 @@ GraphCycles::GraphCycles() {
|
|
|
381
378
|
|
|
382
379
|
GraphCycles::~GraphCycles() {
|
|
383
380
|
for (auto* node : rep_->nodes_) {
|
|
384
|
-
if (node == nullptr) {
|
|
381
|
+
if (node == nullptr) {
|
|
382
|
+
continue;
|
|
383
|
+
}
|
|
385
384
|
node->Node::~Node();
|
|
386
385
|
base_internal::LowLevelAlloc::Free(node);
|
|
387
386
|
}
|
|
@@ -474,8 +473,7 @@ void GraphCycles::RemoveNode(void* ptr) {
|
|
|
474
473
|
|
|
475
474
|
void* GraphCycles::Ptr(GraphId id) {
|
|
476
475
|
Node* n = FindNode(rep_, id);
|
|
477
|
-
return n == nullptr ? nullptr
|
|
478
|
-
: base_internal::UnhidePtr<void>(n->masked_ptr);
|
|
476
|
+
return n == nullptr ? nullptr : base_internal::UnhidePtr<void>(n->masked_ptr);
|
|
479
477
|
}
|
|
480
478
|
|
|
481
479
|
bool GraphCycles::HasNode(GraphId node) {
|
|
@@ -502,8 +500,8 @@ static bool ForwardDFS(GraphCycles::Rep* r, int32_t n, int32_t upper_bound);
|
|
|
502
500
|
static void BackwardDFS(GraphCycles::Rep* r, int32_t n, int32_t lower_bound);
|
|
503
501
|
static void Reorder(GraphCycles::Rep* r);
|
|
504
502
|
static void Sort(const Vec<Node*>&, Vec<int32_t>* delta);
|
|
505
|
-
static void MoveToList(
|
|
506
|
-
|
|
503
|
+
static void MoveToList(GraphCycles::Rep* r, Vec<int32_t>* src,
|
|
504
|
+
Vec<int32_t>* dst);
|
|
507
505
|
|
|
508
506
|
bool GraphCycles::InsertEdge(GraphId idx, GraphId idy) {
|
|
509
507
|
Rep* r = rep_;
|
|
@@ -605,9 +603,8 @@ static void Reorder(GraphCycles::Rep* r) {
|
|
|
605
603
|
|
|
606
604
|
// Produce sorted list of all ranks that will be reassigned.
|
|
607
605
|
r->merged_.resize(r->deltab_.size() + r->deltaf_.size());
|
|
608
|
-
std::merge(r->deltab_.begin(), r->deltab_.end(),
|
|
609
|
-
r->deltaf_.
|
|
610
|
-
r->merged_.begin());
|
|
606
|
+
std::merge(r->deltab_.begin(), r->deltab_.end(), r->deltaf_.begin(),
|
|
607
|
+
r->deltaf_.end(), r->merged_.begin());
|
|
611
608
|
|
|
612
609
|
// Assign the ranks in order to the collected list.
|
|
613
610
|
for (uint32_t i = 0; i < r->list_.size(); i++) {
|
|
@@ -628,8 +625,8 @@ static void Sort(const Vec<Node*>& nodes, Vec<int32_t>* delta) {
|
|
|
628
625
|
std::sort(delta->begin(), delta->end(), cmp);
|
|
629
626
|
}
|
|
630
627
|
|
|
631
|
-
static void MoveToList(
|
|
632
|
-
|
|
628
|
+
static void MoveToList(GraphCycles::Rep* r, Vec<int32_t>* src,
|
|
629
|
+
Vec<int32_t>* dst) {
|
|
633
630
|
for (auto& v : *src) {
|
|
634
631
|
int32_t w = v;
|
|
635
632
|
// Replace v entry with its rank
|
|
@@ -12,14 +12,13 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
|
|
15
|
-
#include "absl/synchronization/internal/graphcycles.h"
|
|
16
|
-
|
|
17
15
|
#include <algorithm>
|
|
18
16
|
#include <cstdint>
|
|
19
17
|
#include <vector>
|
|
20
18
|
|
|
21
|
-
#include "benchmark/benchmark.h"
|
|
22
19
|
#include "absl/base/internal/raw_logging.h"
|
|
20
|
+
#include "absl/synchronization/internal/graphcycles.h"
|
|
21
|
+
#include "benchmark/benchmark.h"
|
|
23
22
|
|
|
24
23
|
namespace {
|
|
25
24
|
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#include "absl/synchronization/internal/graphcycles.h"
|
|
16
16
|
|
|
17
17
|
#include <climits>
|
|
18
|
+
#include <cstdint>
|
|
18
19
|
#include <map>
|
|
19
20
|
#include <random>
|
|
20
21
|
#include <unordered_set>
|
|
@@ -461,20 +462,20 @@ TEST_F(GraphCyclesTest, ManyEdges) {
|
|
|
461
462
|
|
|
462
463
|
TEST(GraphCycles, IntegerOverflow) {
|
|
463
464
|
GraphCycles graph_cycles;
|
|
464
|
-
|
|
465
|
-
GraphId prev_id = graph_cycles.GetId(buf);
|
|
465
|
+
uintptr_t buf = 0;
|
|
466
|
+
GraphId prev_id = graph_cycles.GetId(reinterpret_cast<void*>(buf));
|
|
466
467
|
buf += 1;
|
|
467
|
-
GraphId id = graph_cycles.GetId(buf);
|
|
468
|
+
GraphId id = graph_cycles.GetId(reinterpret_cast<void*>(buf));
|
|
468
469
|
ASSERT_TRUE(graph_cycles.InsertEdge(prev_id, id));
|
|
469
470
|
|
|
470
471
|
// INT_MAX / 40 is enough to cause an overflow when multiplied by 41.
|
|
471
472
|
graph_cycles.TestOnlyAddNodes(INT_MAX / 40);
|
|
472
473
|
|
|
473
474
|
buf += 1;
|
|
474
|
-
GraphId newid = graph_cycles.GetId(buf);
|
|
475
|
+
GraphId newid = graph_cycles.GetId(reinterpret_cast<void*>(buf));
|
|
475
476
|
graph_cycles.HasEdge(prev_id, newid);
|
|
476
477
|
|
|
477
|
-
graph_cycles.RemoveNode(buf);
|
|
478
|
+
graph_cycles.RemoveNode(reinterpret_cast<void*>(buf));
|
|
478
479
|
}
|
|
479
480
|
|
|
480
481
|
} // namespace synchronization_internal
|
|
@@ -35,11 +35,6 @@ namespace absl {
|
|
|
35
35
|
ABSL_NAMESPACE_BEGIN
|
|
36
36
|
namespace synchronization_internal {
|
|
37
37
|
|
|
38
|
-
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
|
39
|
-
constexpr uint64_t KernelTimeout::kNoTimeout;
|
|
40
|
-
constexpr int64_t KernelTimeout::kMaxNanos;
|
|
41
|
-
#endif
|
|
42
|
-
|
|
43
38
|
int64_t KernelTimeout::SteadyClockNow() {
|
|
44
39
|
if (!SupportsSteadyClock()) {
|
|
45
40
|
return absl::GetCurrentTimeNanos();
|
|
@@ -58,10 +58,6 @@ class PthreadMutexHolder {
|
|
|
58
58
|
};
|
|
59
59
|
} // namespace
|
|
60
60
|
|
|
61
|
-
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
|
62
|
-
constexpr char PthreadWaiter::kName[];
|
|
63
|
-
#endif
|
|
64
|
-
|
|
65
61
|
PthreadWaiter::PthreadWaiter() : waiter_count_(0), wakeup_count_(0) {
|
|
66
62
|
const int err = pthread_mutex_init(&mu_, 0);
|
|
67
63
|
if (err != 0) {
|
|
@@ -33,10 +33,6 @@ namespace absl {
|
|
|
33
33
|
ABSL_NAMESPACE_BEGIN
|
|
34
34
|
namespace synchronization_internal {
|
|
35
35
|
|
|
36
|
-
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
|
37
|
-
constexpr char SemWaiter::kName[];
|
|
38
|
-
#endif
|
|
39
|
-
|
|
40
36
|
SemWaiter::SemWaiter() : wakeups_(0) {
|
|
41
37
|
if (sem_init(&sem_, 0, 0) != 0) {
|
|
42
38
|
ABSL_RAW_LOG(FATAL, "sem_init failed with errno %d\n", errno);
|
|
@@ -30,10 +30,6 @@ namespace absl {
|
|
|
30
30
|
ABSL_NAMESPACE_BEGIN
|
|
31
31
|
namespace synchronization_internal {
|
|
32
32
|
|
|
33
|
-
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
|
34
|
-
constexpr char StdcppWaiter::kName[];
|
|
35
|
-
#endif
|
|
36
|
-
|
|
37
33
|
StdcppWaiter::StdcppWaiter() : waiter_count_(0), wakeup_count_(0) {}
|
|
38
34
|
|
|
39
35
|
bool StdcppWaiter::Wait(KernelTimeout t) {
|
|
@@ -46,7 +46,7 @@ class ThreadPool {
|
|
|
46
46
|
|
|
47
47
|
~ThreadPool() {
|
|
48
48
|
{
|
|
49
|
-
absl::MutexLock l(
|
|
49
|
+
absl::MutexLock l(mu_);
|
|
50
50
|
for (size_t i = 0; i < threads_.size(); i++) {
|
|
51
51
|
queue_.push(nullptr); // Shutdown signal.
|
|
52
52
|
}
|
|
@@ -59,7 +59,7 @@ class ThreadPool {
|
|
|
59
59
|
// Schedule a function to be run on a ThreadPool thread immediately.
|
|
60
60
|
void Schedule(absl::AnyInvocable<void()> func) {
|
|
61
61
|
assert(func != nullptr);
|
|
62
|
-
absl::MutexLock l(
|
|
62
|
+
absl::MutexLock l(mu_);
|
|
63
63
|
queue_.push(std::move(func));
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -72,7 +72,7 @@ class ThreadPool {
|
|
|
72
72
|
while (true) {
|
|
73
73
|
absl::AnyInvocable<void()> func;
|
|
74
74
|
{
|
|
75
|
-
absl::MutexLock l(
|
|
75
|
+
absl::MutexLock l(mu_);
|
|
76
76
|
mu_.Await(absl::Condition(this, &ThreadPool::WorkAvailable));
|
|
77
77
|
func = std::move(queue_.front());
|
|
78
78
|
queue_.pop();
|
|
@@ -21,10 +21,6 @@ namespace absl {
|
|
|
21
21
|
ABSL_NAMESPACE_BEGIN
|
|
22
22
|
namespace synchronization_internal {
|
|
23
23
|
|
|
24
|
-
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
|
25
|
-
constexpr int WaiterBase::kIdlePeriods;
|
|
26
|
-
#endif
|
|
27
|
-
|
|
28
24
|
void WaiterBase::MaybeBecomeIdle() {
|
|
29
25
|
base_internal::ThreadIdentity *identity =
|
|
30
26
|
base_internal::CurrentThreadIdentityIfPresent();
|
|
@@ -129,7 +129,10 @@ TYPED_TEST_P(WaiterTest, WaitTimeWoken) {
|
|
|
129
129
|
start + absl::Seconds(10))));
|
|
130
130
|
absl::Duration waited = absl::Now() - start;
|
|
131
131
|
EXPECT_GE(waited, WithTolerance(absl::Milliseconds(500)));
|
|
132
|
-
|
|
132
|
+
#ifndef _MSC_VER
|
|
133
|
+
// Skip on MSVC due to flakiness.
|
|
134
|
+
EXPECT_LT(waited, absl::Seconds(2));
|
|
135
|
+
#endif
|
|
133
136
|
}
|
|
134
137
|
|
|
135
138
|
TYPED_TEST_P(WaiterTest, WaitDurationReached) {
|
|
@@ -139,7 +142,10 @@ TYPED_TEST_P(WaiterTest, WaitDurationReached) {
|
|
|
139
142
|
absl::synchronization_internal::KernelTimeout(absl::Milliseconds(500))));
|
|
140
143
|
absl::Duration waited = absl::Now() - start;
|
|
141
144
|
EXPECT_GE(waited, WithTolerance(absl::Milliseconds(500)));
|
|
142
|
-
|
|
145
|
+
#ifndef _MSC_VER
|
|
146
|
+
// Skip on MSVC due to flakiness.
|
|
147
|
+
EXPECT_LT(waited, absl::Seconds(1));
|
|
148
|
+
#endif
|
|
143
149
|
}
|
|
144
150
|
|
|
145
151
|
TYPED_TEST_P(WaiterTest, WaitTimeReached) {
|
|
@@ -149,7 +155,10 @@ TYPED_TEST_P(WaiterTest, WaitTimeReached) {
|
|
|
149
155
|
start + absl::Milliseconds(500))));
|
|
150
156
|
absl::Duration waited = absl::Now() - start;
|
|
151
157
|
EXPECT_GE(waited, WithTolerance(absl::Milliseconds(500)));
|
|
152
|
-
|
|
158
|
+
#ifndef _MSC_VER
|
|
159
|
+
// Skip on MSVC due to flakiness.
|
|
160
|
+
EXPECT_LT(waited, absl::Seconds(1));
|
|
161
|
+
#endif
|
|
153
162
|
}
|
|
154
163
|
|
|
155
164
|
REGISTER_TYPED_TEST_SUITE_P(WaiterTest,
|
|
@@ -28,10 +28,6 @@ namespace absl {
|
|
|
28
28
|
ABSL_NAMESPACE_BEGIN
|
|
29
29
|
namespace synchronization_internal {
|
|
30
30
|
|
|
31
|
-
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
|
|
32
|
-
constexpr char Win32Waiter::kName[];
|
|
33
|
-
#endif
|
|
34
|
-
|
|
35
31
|
class Win32Waiter::WinHelper {
|
|
36
32
|
public:
|
|
37
33
|
static SRWLOCK *GetLock(Win32Waiter *w) {
|
|
@@ -45,7 +45,7 @@ void ThreadOne(absl::Mutex* mutex, absl::CondVar* condvar,
|
|
|
45
45
|
CHECK(!*state) << "*state not initialized";
|
|
46
46
|
|
|
47
47
|
{
|
|
48
|
-
absl::MutexLock lock(mutex);
|
|
48
|
+
absl::MutexLock lock(*mutex);
|
|
49
49
|
|
|
50
50
|
notification->Notify();
|
|
51
51
|
CHECK(notification->HasBeenNotified()) << "invalid Notification";
|
|
@@ -64,7 +64,7 @@ void ThreadTwo(absl::Mutex* mutex, absl::CondVar* condvar,
|
|
|
64
64
|
notification->WaitForNotification();
|
|
65
65
|
CHECK(notification->HasBeenNotified()) << "invalid Notification";
|
|
66
66
|
{
|
|
67
|
-
absl::MutexLock lock(mutex);
|
|
67
|
+
absl::MutexLock lock(*mutex);
|
|
68
68
|
*state = true;
|
|
69
69
|
condvar->Signal();
|
|
70
70
|
}
|
|
@@ -148,12 +148,12 @@ ABSL_CONST_INIT absl::Mutex early_const_init_mutex(absl::kConstInit);
|
|
|
148
148
|
// before the constructors of either grab_lock or check_still_locked are run.)
|
|
149
149
|
extern absl::Mutex const_init_sanity_mutex;
|
|
150
150
|
OnConstruction grab_lock([]() ABSL_NO_THREAD_SAFETY_ANALYSIS {
|
|
151
|
-
const_init_sanity_mutex.
|
|
151
|
+
const_init_sanity_mutex.lock();
|
|
152
152
|
});
|
|
153
153
|
ABSL_CONST_INIT absl::Mutex const_init_sanity_mutex(absl::kConstInit);
|
|
154
154
|
OnConstruction check_still_locked([]() ABSL_NO_THREAD_SAFETY_ANALYSIS {
|
|
155
155
|
const_init_sanity_mutex.AssertHeld();
|
|
156
|
-
const_init_sanity_mutex.
|
|
156
|
+
const_init_sanity_mutex.unlock();
|
|
157
157
|
});
|
|
158
158
|
#endif // defined(__clang__) || !(defined(_MSC_VER) && _MSC_VER > 1900)
|
|
159
159
|
|