1. 07 Apr, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · e854df09
      Abseil Team authored
      --
      0c8848ebedc07470c7ab647a5bb8949481540ce9 by Dino Radakovic <dinor@google.com>:
      
      Define absl::base_internal::invoke using std::invoke when C++ >= 17
      
      PiperOrigin-RevId: 439880834
      Change-Id: I3622fcf473501d54c57575118a11d54c19573446
      GitOrigin-RevId: 0c8848ebedc07470c7ab647a5bb8949481540ce9
      e854df09
  2. 06 Apr, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 9fed77a6
      Abseil Team authored
      --
      ef2bf829c333f378ecc12f3259e3187cdb75a3d5 by Abseil Team <absl-team@google.com>:
      
      debugging: fix the VDSO symbol name used for unwinding on RISC-V Linux
      
      The name listed in `man vdso` is incorrect. Instead, use the name from `linux-5.16/arch/riscv/kernel/vdso/rt_sigreturn.S`
      
      PiperOrigin-RevId: 439654174
      Change-Id: Ib39d066f416681720068e806e828a2c76a14a532
      
      --
      43dfad824afd36cfc3e5049b4fea71a2bccb066c by Benjamin Barenblat <bbaren@google.com>:
      
      Check printf format strings in str_format_convert_test
      
      Add ABSL_PRINTF_ATTRIBUTE to appropriate functions in
      strings/internal/str_format/convert_test. Correct
      TypedFormatConvertTest.Char, which was accidentally passing values of
      types larger than int to StrPrint.
      
      PiperOrigin-RevId: 439388148
      Change-Id: I6cde4e8e0c6455064138192430f07f4c990be0bc
      
      --
      f84b4ab2c3b070c8af0c82742ac7a8a4bf443bca by Derek Mauro <dmauro@google.com>:
      
      Use __builtin_memcmp in the absl::string_view implementation
      starting with MSVC 16.9, where it first appeared
      
      This enables more constexpr operations
      
      PiperOrigin-RevId: 439317316
      Change-Id: Iaf1ce76b60901d4b2d5b96be5900c56572f57b15
      GitOrigin-RevId: ef2bf829c333f378ecc12f3259e3187cdb75a3d5
      9fed77a6
  3. 04 Apr, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 6f43f5bb
      Abseil Team authored
      --
      afa44fa0245a1cfb1824ef9697b3fa77fa9615c9 by Laramie Leavitt <lar@google.com>:
      
      Comment CMakeLists.txt about internal absl_cc_library() targets.
      
      From what I can tell, these are the CMake targets that are public:
      
          absl::algorithm
          absl::algorithm_container
          absl::base
          absl::core_headers
          absl::dynamic_annotations
          absl::log_severity
          absl::cleanup
          absl::btree
          absl::fixed_array
          absl::flat_hash_map
          absl::flat_hash_set
          absl::inlined_vector
          absl::node_hash_map
          absl::node_hash_set
          absl::debugging
          absl::failure_signal_handler
          absl::leak_check
          absl::leak_check_disable
          absl::stacktrace
          absl::symbolize
          absl::flags
          absl::flags_commandlineflag
          absl::flags_config
          absl::flags_marshalling
          absl::flags_parse
          absl::flags_reflection
          absl::flags_usage
          absl::bind_front
          absl::function_ref
          absl::hash
          absl::hash_testing
          absl::memory
          absl::meta
          absl::type_traits
          absl::bits
          absl::int128
          absl::numeric
          absl::numeric_representation
          absl::exponential_biased
          absl::periodic_sampler
          absl::sample_recorder
          absl::random_bit_gen_ref
          absl::random_distributions
          absl::random_mocking_bit_gen
          absl::random_random
          absl::random_seed_gen_exception
          absl::random_seed_sequences
          absl::status
          absl::statusor
          absl::cord
          absl::cord_test_helpers
          absl::str_format
          absl::strings
          absl::synchronization
          absl::civil_time
          absl::time
          absl::time_zone
          absl::any
          absl::bad_any_cast
          absl::bad_optional_access
          absl::bad_variant_access
          absl::compare
          absl::optional
          absl::span
          absl::variant
          absl::utility
      
      PiperOrigin-RevId: 438702788
      Change-Id: Icf611c35e88f03cd2493a95f61617605305d4e8e
      
      --
      a99f60847578e6c0df6befadb29a01c86def0d21 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438647928
      Change-Id: I141eadd17d6e8607df25ebc893aecefa0239a72f
      
      --
      b23e77e8f62a77023188594390c9e491c507d22c by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438628502
      Change-Id: I40c4297716c8c1621ba8b02a22393bfcbefb5b5e
      GitOrigin-RevId: afa44fa0245a1cfb1824ef9697b3fa77fa9615c9
      6f43f5bb
  4. 31 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 4dcae40a
      Abseil Team authored
      --
      b984c7c1cbee4253192c833046bfcfa16dca8ccf by Dino Radakovic <dinor@google.com>:
      
      Restrict visibility of absl/flags:commandlineflag_internal
      
      PiperOrigin-RevId: 438591894
      Change-Id: I12a6392b2c7f9f1263c741dfd6c43ae22e903aad
      
      --
      81315601aab70bb6ac2d17655a727d7f9ee2ff95 by Justin Lebar <jlebar@google.com>:
      
      Update example in str_join.h to use a lambda.
      
      PiperOrigin-RevId: 438390035
      Change-Id: Icc707b972e5a369a71ad774004fdf0a17a9b33a7
      
      --
      1c3c7921224e505faca8617b073f657d3737219f by Dino Radakovic <dinor@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438386036
      Change-Id: I6066da1b5a1ddf5af265944a31ed298297b4f2e1
      
      --
      2d6885f78481f04e0e7ee86060aec15b677144f3 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438378389
      Change-Id: If70dd9114114eb44e85afccd521e7fb7e1436b88
      
      --
      7f8282ddee7fcd032e01cbfe65c11c2d166cceb8 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 438374554
      Change-Id: I993367952af1dc83bd5aa0ae19a64c024f457fdd
      
      --
      ce65ba28f6031e45db8fa5118a05410f5166fd7a by Abseil Team <absl-team@google.com>:
      
      Spelling gardening: Heterogeneous has an "e" after the "n".
      
      PiperOrigin-RevId: 438374411
      Change-Id: If1a9098a5d04338837998883739c7b555efa62b4
      GitOrigin-RevId: b984c7c1cbee4253192c833046bfcfa16dca8ccf
      4dcae40a
  5. 30 Mar, 2022 2 commits
    • Fabrice Fontaine's avatar
      Fix build with uclibc-ng (#1145) · b9ad9bbf
      Fabrice Fontaine authored
      uclibc-ng doesn't provide getauxval which results in the following build
      failure on arm or ppc with any user of abseil-cpp such as grpc:
      
      /home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/buildroot/autobuild/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libabsl_random_internal_randen_hwaes.so.2111.0.0: undefined reference to `getauxval'
      
      To fix this build failure, check that __UCLIBC__ is not defined before
      using getauxval (as Babel is not able to check function availability)
      
      Fixes:
       - http://autobuild.buildroot.org/results/775f3ca3dedebff29e212b29dfa896b7613b7a02
      
      Signed-off-by: default avatarFabrice Fontaine <fontaine.fabrice@gmail.com>
      b9ad9bbf
    • Abseil Team's avatar
      Export of internal Abseil changes · cfccbd2e
      Abseil Team authored
      --
      fb671efb2a70f452f17a884b17cf18817b977a8f by Abseil Team <absl-team@google.com>:
      
      Remove extra semicolon in ABSL_INTERNAL_ASSERT_IS_FULL macro
      
      To fix compilation when empty statement warning is treated as error.
      
      PiperOrigin-RevId: 438342663
      Change-Id: I3067fbeffa2691888f37554e88f229f24fb55ecc
      
      --
      a58c9396f1d88d11347aed36ef2e1b633071363c by Martijn Vels <mvels@google.com>:
      
      Fix kMaxHeight bounds to kMaxDepth for CordrepBtreeNavigator
      
      Added unit test (confirmed failure mode with old code) and extra assertion in the implementation.
      
      PiperOrigin-RevId: 438327463
      Change-Id: I32242c86b0c879b8a42cb9a92075e537d588e09f
      
      --
      f348e85dbfc9187ef59085fa2b999374f1670338 by Jorge Gorbe Moya <jgorbe@google.com>:
      
      Make the flags enum in `RefcountAndFlags` a named enum to workaround an lldb
      issue (https://github.com/llvm/llvm-project/issues/54602).
      
      PiperOrigin-RevId: 438146097
      Change-Id: Ibc2ee26489d99de515a779a903b6458dd0befef7
      
      --
      a960a3e9fb2a2e3418f806178e73d8566b78bc85 by Gennadiy Rozental <rogeeff@google.com>:
      
      Introduce support for std::optional<T>/absl::optional<T> flag types.
      
      PiperOrigin-RevId: 438129500
      Change-Id: I3d925c0a7f9ce9f857277fac3b0bf664ccd3a95c
      GitOrigin-RevId: fb671efb2a70f452f17a884b17cf18817b977a8f
      cfccbd2e
  6. 29 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 3204cc06
      Abseil Team authored
      --
      291f7ef542f73e4801ab5108014bc02344ef31df by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 437835981
      Change-Id: I42fd92e74903894533ac9984d7f622e3ba20f468
      
      --
      2e8caf1a57c50b518e05b4bca48e4fe1bb19af82 by Andy Getzendanner <durandal@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 437832673
      Change-Id: I61b35089418d01a54cecf161b254b68252bebff3
      
      --
      b927482ccc399f7e337b60582988b914d9946e4e by Derek Mauro <dmauro@google.com>:
      
      Simplify endian intrinsics for modern compilers
      
      All modern compilers have either __builtin_bswapN (gcc, clang) or
      _byteswap_TYPE (MSVC).  The other intrinsic definitions are no longer
      necessary.
      
      PiperOrigin-RevId: 437772295
      Change-Id: Ifb3d88ba24b9097f87ceb202272b36d2f5e5117f
      
      --
      b6782a2247a16d5c14706a74ec577c19963d9f97 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 437373174
      Change-Id: I0f77e1780dee90d7a3c32a08d96c4aeb624a57b4
      
      --
      a53e0c724e37b0b01515a99bd25394b8e21ffdfc by Derek Mauro <dmauro@google.com>:
      
      Unify detection of SSE2 and SSSE3 instruction sets and
      include the proper headers
      
      Fix the intrinsic implementation of FastHexToBufferZeroPad16 in
      numbers.h which only relies on SSSE3, not SSE 4.2.
      https://godbolt.org/z/Pf5bn1Yv9
      
      Closes #639
      
      PiperOrigin-RevId: 437286940
      Change-Id: Ic97948399b61b91e9c0bccd09313b795b904d714
      
      --
      f173f597cb2a75ef2a989f45a496334b85e6f40d by Abseil Team <absl-team@google.com>:
      
      Change assertion function to enable clearer error messages.
      
      PiperOrigin-RevId: 437227057
      Change-Id: If420d2f63b51feef6648762f344d5be012cd9c85
      GitOrigin-RevId: 291f7ef542f73e4801ab5108014bc02344ef31df
      3204cc06
  7. 28 Mar, 2022 1 commit
  8. 25 Mar, 2022 1 commit
  9. 24 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · eb3db08c
      Abseil Team authored
      --
      8c9dd24a6fbf9ed10ae81f9fa0bc2168558a9700 by Abseil Team <absl-team@google.com>:
      
      Improve WebAssembly detection when using Bazel.
      
      Unfortunately, the --cpu values are not standardized, and both
      --cpu=wasm and --cpu=wasm32 are used in the wild. Most notably,
      Emscripten's Bazel rules use --cpu=wasm, which was missing.
      
      While there, add support for @platforms//cpu:{wasm32,wasm64}.
      
      This change adds a dependency on @bazel_skylib, which requires
      adding the following http_archive() rule to the WORKSPACE file:
      
        http_archive(
          name = "bazel_skylib",
          urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz"],
          sha256 = "f7be3474d42aae265405a592bb7da8e171919d74c16f082a5457840f06054728",
        )
      
      PiperOrigin-RevId: 436815546
      Change-Id: I4e1946070c6964abb12259f25a546f2d24e0992a
      
      --
      59514589043d9b0734a01f7aa7bc354f5b495eab by Abseil Team <absl-team@google.com>:
      
      Fix some typos that slipped through.
      
      PiperOrigin-RevId: 436777566
      Ch...
      eb3db08c
  10. 22 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · f3489c9c
      Abseil Team authored
      --
      bcd349230e418f5e29d5fced1b942828fa5cb2ad by Abseil Team <absl-team@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 436317331
      Change-Id: I0f8a0c4cd0d5f348a33e486c85c863072c30742a
      GitOrigin-RevId: bcd349230e418f5e29d5fced1b942828fa5cb2ad
      f3489c9c
  11. 21 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 6c8dab80
      Abseil Team authored
      --
      f3ac7ee28fc7de737bc9e2e1d10ff7739781d645 by Gennadiy Rozental <rogeeff@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 435739199
      Change-Id: I8f854b742418a237f9060e4b9f23d0f20baf0bdf
      
      --
      fe1329708cb40da8e72e53e4eaad79112bdb79ea by Abseil Team <absl-team@google.com>:
      
      Port SwissTable internals comments from github.com/google/cwisstable to Abseil.
      
      PiperOrigin-RevId: 435719801
      Change-Id: I2270cc93aaa5d3d57954a8cea7e570b72b6c3956
      
      --
      a6e6fcd4b944ce370ac3307e848645c27bf21e47 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 435716325
      Change-Id: I77999f69e176ee6c0d18e7c3329a7c336164f0fc
      GitOrigin-RevId: f3ac7ee28fc7de737bc9e2e1d10ff7739781d645
      6c8dab80
  12. 18 Mar, 2022 2 commits
    • Ben Niu's avatar
      Exclude unsupported x64 intrinsics from ARM64EC (#1135) · 4c015dbb
      Ben Niu authored
      ARM64EC is a Microsoft-designed ARM64 ABI compatible with AMD64
      applications on ARM64 Windows 11. The ARM64EC does not support
      _umul128 and __rdtsc as x64 intrinsics, though it provides inline
      function implementations for them, by emulation. Since the code
      already has portable code paths without using the intrinsics,
      instead of using the emulated intrinsic implementations, we use
      the said portable code paths for ARM64EC.
      4c015dbb
    • Abseil Team's avatar
      Export of internal Abseil changes · c33f21f8
      Abseil Team authored
      --
      199bdbf9ad253b216ed6c6386bf69bc706330204 by Abseil Team <absl-team@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 435425408
      Change-Id: I502d21ca5771d14e24fe41b28dc562ea6274996d
      
      --
      245a761e96f53857cef9c2359eac9d4bbcfdfd47 by Abseil Team <absl-team@google.com>:
      
      Fix a -Wsign-compare -Wconversion problem in absl::btree discovered while getting cachelib to compile with those flags enabled.
      
      PiperOrigin-RevId: 435419108
      Change-Id: I0a9fa53d0163f678dde8960410315a5bc8445c72
      GitOrigin-RevId: 199bdbf9ad253b216ed6c6386bf69bc706330204
      c33f21f8
  13. 17 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 9f5b2c78
      Abseil Team authored
      --
      399d051d30f7a78c367bb1dc08829ffacbb619a6 by Abseil Team <absl-team@google.com>:
      
      Fix a glitch in symbolization which could result in the same address being
      correctly symbolized and "(unknown)" in the same crash report.
      
      PiperOrigin-RevId: 435371003
      Change-Id: I9f6a5684144be6d3d366584601d79fda9eefdce6
      
      --
      5dad813de52773e0bb09c6b2351e1bbadb53deac by Abseil Team <absl-team@google.com>:
      
      Fix ABSL_HAVE_MMAP check in direct_mmap.h
      
      This change makes the check for ABSL_HAVE_MMAP match the other checks
      in absl. This fixes builds where ABSL_HAVE_MMAP is not defined.
      
      PiperOrigin-RevId: 435190242
      Change-Id: I11638ef315849cafcf4ea1611eee1a98c80e7dcb
      GitOrigin-RevId: 399d051d30f7a78c367bb1dc08829ffacbb619a6
      9f5b2c78
  14. 16 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · e6ae2641
      Abseil Team authored
      --
      c49308e5361da572b5accdfe664757ca6bf7fed1 by Derek Mauro <dmauro@google.com>:
      
      Disable TestArmThumbOverlap on platforms that don't support it
      
      TestArmThumbOverlap includes a pair of test functions, one built in
      arm mode and the other built in thumb mode.
      
      Unfortunately when configured for armv6 hardfloat, gcc refuses to
      build any functions in thumb mode (even if they don't actually use
      floating point)
      
      Closes #1112
      
      PiperOrigin-RevId: 435078532
      Change-Id: I090623d0f89839a5f9dde831756aba5267c9a45c
      GitOrigin-RevId: c49308e5361da572b5accdfe664757ca6bf7fed1
      e6ae2641
  15. 15 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 231c393a
      Abseil Team authored
      --
      5dc885f2b62993bccf33a3f3b99f7e460c819c89 by Derek Mauro <dmauro@google.com>:
      
      Remove the internal-only ABSL_INTERNAL_ASSUME now that ABSL_ASSUME
      is available and ABSL_INTERNAL_ASSUME has no more users.
      
      Improve the documentation to ABSL_ASSUME somewhat.
      
      PiperOrigin-RevId: 434803125
      Change-Id: I7c27418463ffc1c7e10ecd50e2d17f348f686af7
      
      --
      4aea19a0ef596228c9136a4c2446e6f25085f23c by Derek Mauro <dmauro@google.com>:
      
      Update documentation to warn against using absl::Hash across
      dynamically loaded libraries
      
      Fixes #1128
      
      PiperOrigin-RevId: 434723247
      Change-Id: Ib0c7ba03b2cab98b42e19e85be6833192d4b4067
      GitOrigin-RevId: 5dc885f2b62993bccf33a3f3b99f7e460c819c89
      231c393a
  16. 14 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 5ed77665
      Abseil Team authored
      --
      d3b99682554d339c42556680f4d65f83226005e2 by Martijn Vels <mvels@google.com>:
      
      Inline CycleClock code and remove branch for x86 CycleClockSource function
      
      This CL removes the relaxed load for x86 as there is no acquire price to pay on x86. It inlines the UnscaledCycleClock::Now() which is a single RTDSC op for x86, and likewise inlines CycleClock::Now() for x86. The inlining should mostly have secondary benefits such as reducing spills on outlined calls.
      
      LTO may eventually hoist these functions inline for the hotspots, but it doesn't hurt to default inline this for all builds and let the compiler decide on the first pass.
      
      The perlab benchmark is noisy for the plain BM_Now, but the other benchmarks and the run on my local machine are clear.
      
      ------------- Local Benchy Benchmark
      name                       old cpu/op  new cpu/op  delta
      BM_Now                     3.41ns ± 1%  2.30ns ± 2%  -32.52%  (p=0.000 n=50+50)
      BM_NowWithRegisterPresure  4.96ns ± 2%  4.19ns ± 2%  -15.57%  (p=0.000 n=56+55)
      BM_NowWithCallback         3.30ns ± 2%  1.91ns ± 2%  -42.00%  (p=0.000 n=47+60)
      
      ------------- Perflab Benchy Benchmark
      name                       old cpu/op  new cpu/op  delta
      BM_Now                     8.20ns ±13%  4.32ns ±83%     ~     (p=0.413 n=4+5)
      BM_NowWithRegisterPresure  7.91ns ± 1%  3.68ns ± 2%  -53.45%  (p=0.029 n=4+4)
      BM_NowWithCallback         2.66ns ±13%  1.58ns ± 0%  -40.51%  (p=0.008 n=5+5)
      
      PiperOrigin-RevId: 434474766
      Change-Id: I991d987ae9233e50f09606c874055cf4c5a56300
      
      --
      b38330686a0af176a2679163e4d2fa1b90e2f667 by Laramie Leavitt <lar@google.com>:
      
      Style, comment, and test updates
      
      * Remove a redundant assert in uniform_real_distribution.
      * Update comment in internal/generate_real.h
      * Style updates to uniform_real_distribution_test
         mainly replacing TypeParam with real_type, using aliases for some limits, etc.
      * Add a few more minor tests.
      
      PiperOrigin-RevId: 433902174
      Change-Id: Id75be8e24be2fb8f6aea05feec13e3ef320a7254
      
      --
      ab2da6047ff7f5dae3add3779fcddf73b03feabf by Abseil Team <absl-team@google.com>:
      
      Remove declaration of method whose definition was previously removed.
      
      PiperOrigin-RevId: 433507828
      Change-Id: I0130b689813125250f7de2664e767e181f676c89
      
      --
      df0c87f4ec2c010691931c1bef9d26470a6e63a2 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 433289136
      Change-Id: Iba157dc83ed99dafd17a2223d2504e49f8afbb9e
      
      --
      7445fa312f2995772900eda82467325b3401a17d by Martijn Vels <mvels@google.com>:
      
      Optimize CordReader logic now that CONCAT is removed
      
      This CL cleans up various helper functions and logic remaining from previous complex CONCAT logic that is no longer needed, simplifying the CordReader logic.
      
      PiperOrigin-RevId: 433208748
      Change-Id: I5f7b1883573c44e7c6f8af12c3cddbd197cb134d
      GitOrigin-RevId: d3b99682554d339c42556680f4d65f83226005e2
      5ed77665
  17. 08 Mar, 2022 2 commits
  18. 04 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 04bde89e
      Abseil Team authored
      --
      3358c3cca1c3770fb5d50e743ac56547af813561 by Dino Radakovic <dinor@google.com>:
      
      Add ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT guard to TEST(Duration, Multiplication)
      
      PiperOrigin-RevId: 432350431
      Change-Id: I28a26a12665e3e9a9ebdf50d0249eafa8336c585
      
      --
      af631611681a298c305578d5049757ec8ced03ab by Dino Radakovic <dinor@google.com>:
      
      Add config macro for optional skipping absl/time:time_test cases that fail on MSVC optimized builds
      
      PiperOrigin-RevId: 432252533
      Change-Id: Ic3879ccdd8e30945a1a2e980e9ae246bcef8d7bd
      GitOrigin-RevId: 3358c3cca1c3770fb5d50e743ac56547af813561
      04bde89e
  19. 03 Mar, 2022 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · ec33f404
      Abseil Team authored
      --
      f2ffea8ae1c1b152b63bf561375cfb6eb6b9dbe5 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 432180490
      Change-Id: I5e318e1d06fe26eee08920fe39f8a6285eb8e217
      
      --
      e5d0de4b3293833eab3f77252a091ac4ed74b210 by Derek Mauro <dmauro@google.com>:
      
      absl::optional - Add a workaround for an internal compiler error in GCC5 though GCC10
      
      PiperOrigin-RevId: 432047437
      Change-Id: I524a9098dadc116d8a423dd66f7ec5ee894f2874
      GitOrigin-RevId: f2ffea8ae1c1b152b63bf561375cfb6eb6b9dbe5
      ec33f404
    • Andrew Krasavin's avatar
      dfc3fa9b
  20. 02 Mar, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 1dd160f9
      Abseil Team authored
      --
      f0b7d230a90c82c6fee7adcb46a213d2582b6a7b by Martijn Vels <mvels@google.com>:
      
      Optimize substring logic now that CONCAT is removed
      
      This CL adds a static Substring() method to CordRepSubstring, and implements substring logic in cord.cc in terms of the new function. This cleans up various helper functions and logic remaining from previous complex CONCAT logic that is no longer needed.
      
      PiperOrigin-RevId: 431756805
      Change-Id: I39c875b5af119916780e68598c7fc619fb2e8476
      
      --
      fa7d1bedf0e1244303844869a332c2a5dbd9ac0f by Derek Mauro <dmauro@google.com>:
      
      Allow macro expansion within ABSL_FLAG and ABSL_DECLARE_FLAG args
      
      PiperOrigin-RevId: 431721184
      Change-Id: I6e19713fb541205d796f940998db5ee25178d55e
      
      --
      1b328badd92304ed1c634f23e1c191be57b7bb15 by Laramie Leavitt <lar@google.com>:
      
      Add #include for std:: types
      
      PiperOrigin-RevId: 431546757
      Change-Id: I75efbcd3c77e6f53e4db66494101d30d670d988e
      
      --
      e25323b299d4d3840218702860f537cdd2a3926f by Thomas Köppe <tkoeppe@google.com>:
      
      Add hashing support for pointers to member.
      
      Also add tests for function pointers to the existing "pointer" test.
      
      PiperOrigin-RevId: 431067588
      Change-Id: I3686010635d9fee34c47a418b72402e10737cdbc
      
      --
      ab27b012a61cf10109fd51932b3b0b05ee78f32f by Laramie Leavitt <lar@google.com>:
      
      Avoid use of std::pow in ChiSquare test.
      
      PiperOrigin-RevId: 431015830
      Change-Id: Idd767ff2f51009ee171de48757207b38330ffea3
      
      --
      28c359135d89061177958580fe4a7493802499cb by Laramie Leavitt <lar@google.com>:
      
      Add #include <type_traits> for std::false_type
      
      PiperOrigin-RevId: 431005757
      Change-Id: I85a6a918778601e19512aaea744424cf39018521
      
      --
      a920730f23669479d92e3a696d65d0bc3a5b1de1 by Laramie Leavitt <lar@google.com>:
      
      #include <utility> for std::declval
      
      PiperOrigin-RevId: 431004934
      Change-Id: I295237b2d44e9a15e4083698ea121b68ce0a1bb7
      GitOrigin-RevId: f0b7d230a90c82c6fee7adcb46a213d2582b6a7b
      1dd160f9
  21. 24 Feb, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 5e4ea1ce
      Abseil Team authored
      --
      7473df9e4922c589f6b27cf546aad097381ae552 by Martijn Vels <mvels@google.com>:
      
      Make ABSL_ASSUME publicly available
      
      PiperOrigin-RevId: 430540224
      Change-Id: I760e2d86e3a0b676cd2a6d26e0225a77381e948f
      
      --
      c83e38bc421f715b3c1e20150c2f1ffe8e633028 by Abseil Team <absl-team@google.com>:
      
      Alias absl::bind_front to std::bind_front if available
      
      This avoids ambiguity between the two when enabling C++20.
      
      PiperOrigin-RevId: 430486679
      GitOrigin-RevId: 7473df9e4922c589f6b27cf546aad097381ae552
      Change-Id: I1e9bba09a8946480ce10ddd28e86b6c86191d38c
      5e4ea1ce
  22. 23 Feb, 2022 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · 0ad7994f
      Abseil Team authored
      --
      91d76b3ac9edff91f206d9eee60423c39eeeaf93 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 430442277
      
      --
      9f8a87bcc5cc5b0fd8b7f0318f37d152fd8bea06 by Evan Brown <ezb@google.com>:
      
      Small refactoring to work towards allowing for node_btree_* containers.
      
      - Change common_params::transfer to rely on slot_policy transfer instead of manually doing construct/destruct. Transfer is not construct/destruct for node containers.
      - Move maps' value_compare into btree.h from btree_map.h so it can be reused for node_btree_map.h.
      - Also add a test for maps' value_compare protected members.
      
      PiperOrigin-RevId: 430245542
      
      --
      0126e0b6295342317d9c9f0a66e2d7009b858426 by Martijn Vels <mvels@google.com>:
      
      Add CordRepSubString::Create function with hard checks on IsFlat() | IsExternal()
      
      This hardens internal invariants, IsFlat() || IsExternal() is a cheap, single predicted branch, and removes boilerplate code from cord.cc
      
      PiperOrigin-RevId: 429676041
      
      --
      ed98a92af49d9e238d9f1d1b69fb4eddcd1ccbc7 by Abseil Team <absl-team@google.com>:
      
      tweaks to status.h documentation to reflect general-purpose communication
      
      PiperOrigin-RevId: 429584104
      GitOrigin-RevId: 91d76b3ac9edff91f206d9eee60423c39eeeaf93
      Change-Id: I54d6d116a564f86a842b983ca76559bf9b388f72
      0ad7994f
    • imaiguo's avatar
      Add support of loongarch64 (#1110) · 808bc202
      imaiguo authored
      808bc202
  23. 17 Feb, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 7f850b31
      Abseil Team authored
      --
      ed829ac612f090375427c3488827c6e74deb2e3f by Derek Mauro <dmauro@google.com>:
      
      Update latest GCC/Clang Linux tests to Bazel 5.0.0 and CMake 3.22.2
      
      PiperOrigin-RevId: 429369775
      
      --
      76952303c4d942288c4e7657ffb5893cec54a132 by Martijn Vels <mvels@google.com>:
      
      Optimize Cord::ChunkIterator now that CordRepConcat is removed
      
      PiperOrigin-RevId: 429321455
      
      --
      dcd0d287793649aba9b98268c5783e449a34749f by Martijn Vels <mvels@google.com>:
      
      Add IsDataEdge() and DataEdgeValue() helper functions.
      
      This moves repetitive logic accessing data edges into its own header, and more strongly defines the notion of what a data edge is, enforcing the internal invariants. This will also be incorporated in optimized Cord iteration logic once CordRepConcat is totally removed from the Cord code.
      
      PiperOrigin-RevId: 429307248
      
      --
      6a0903962155988085bf8656743fda9c4cdcba6c by Abseil Team <absl-team@google.com>:
      
      Make it clear that the probability function given for the zipf distribution is unnormalized, i.e., sum(p(x) for x = 0..k) != 100%.
      
      Quoting Section 7 of the paper cited in the comments, where this formula comes from (emphasis mine): "We will consider the two parameter generalization as defined in Dagpunar [1988] with the *unnormalized* probability function ..."
      
      PiperOrigin-RevId: 429068258
      
      --
      3899ff6d444ba755148bc521a6ee031d9e9d4485 by Abseil Team <absl-team@google.com>:
      
      Internal Changes
      
      PiperOrigin-RevId: 428644856
      
      --
      319de702d2b537cbb76c4c71277ae89b349b162e by Benjamin Barenblat <bbaren@google.com>:
      
      Support symbolization on PA-RISC
      
      Null out supervisor bits in PA-RISC addresses before symbolizing, and
      handle function descriptor tables correctly.
      
      Change symbolize_test.cc to use 32-bit aligned addresses, allowing that
      test to pass on PA-RISC.
      
      PiperOrigin-RevId: 428590564
      GitOrigin-RevId: ed829ac612f090375427c3488827c6e74deb2e3f
      Change-Id: Ie01ff3b9365fd45e5a55f858038552679f3180d3
      7f850b31
  24. 14 Feb, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · c2ef7033
      Abseil Team authored
      --
      ceee18732f9499d3a53d46d5974f12ea0774b900 by Abseil Team <absl-team@google.com>:
      
      Remove division from the profile guided optimization
      
      PiperOrigin-RevId: 428444108
      
      --
      fc27059f1b0c0b4cb8ddd9a7a88220af52c0c755 by Evan Brown <ezb@google.com>:
      
      Rename btree_node::leaf to is_leaf and also add is_internal for readability improvements.
      
      PiperOrigin-RevId: 428076422
      
      --
      6a90d18477cc3a6de84282b6e38d6f294aa72748 by Evan Brown <ezb@google.com>:
      
      In sanitizer mode, add generation integers to b-tree nodes and iterators and validate that iterators have not been invalidated already when they're used.
      
      Even though generation integers are stored in all nodes, we only use the one stored in the root node for validation. The reason we keep one in all the nodes is that nodes can become a root node after they are allocated.
      
      Also change the order of args in init_leaf to not violate the style guide.
      
      PiperOrigin-RevId: 428054226
      
      --
      ede4a0f676f43e7003fd2599c263d55222e760ba by Martijn Vels <mvels@google.com>:
      
      Physically remove CordRepConcat
      
      This CL removes all uses of CordRepConcat. This change is executed by removing all the dead 'btree_enabled()' and 'IsConcat' branches, and all subsequent dead code. This change explicitly does not optimize any of the remaining code other than the most trivial ones such as removing 'stack' loop vars and loops.
      
      PiperOrigin-RevId: 428002308
      
      --
      7cc83d96118149cf1aa1258a066b8fd4517df5f6 by Evan Brown <ezb@google.com>:
      
      Change btree_iterator from a struct to a class.
      
      Motivation: btree_iterator has private members and invariants so it should be a class.
      
      Also merge two private sections.
      
      PiperOrigin-RevId: 427768836
      
      --
      524d478b0af422e1a867a8823d9fbad149030360 by Martijn Vels <mvels@google.com>:
      
      Physically block the creation of new CordRepConcat nodes.
      
      This change removes CordRepConcat creation, issuing a FATAL errors on the (practically impossible) call path on broken invariants. This change is deliberately limited in impact, subsequent changes will be more voluminous ripping out the (now dead) CordRepConcat code.
      
      PiperOrigin-RevId: 427741022
      
      --
      e21eb354c1bb358ea8b64d0e3fbb378e87b8b8c4 by Derek Mauro <dmauro@google.com>:
      
      Update the implementation of ABSL_DEPRECATED to work with GCC, and
      recommend using the standard attribute [[deprecated]] for C++14 and newer
      
      GCC users that are experiencing new warnings can silence them with
      -Wno-deprecated-declatations.
      
      GCC users that want to see the warnings but not error on them can use
      -Wno-error=deprecated-declarations.
      PiperOrigin-RevId: 427228952
      
      --
      0ab4ee5660f3a072054dc4ab5056925c26977c7a by Laramie Leavitt <lar@google.com>:
      
      Change comment to avoid overflow.
      
      PiperOrigin-RevId: 427090218
      GitOrigin-RevId: ceee18732f9499d3a53d46d5974f12ea0774b900
      Change-Id: Ida00477b6a3d02a8b7bb467be7621b618385d1e9
      c2ef7033
  25. 07 Feb, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 73316fc3
      Abseil Team authored
      --
      262f6992ee0553782531ad58dd7d8bcd6d0b7bb7 by Martijn Vels <mvels@google.com>:
      
      Remove CordRepConcat uses in tests and CONCAT constants.
      
      This change removes the creation and uses of CordRepConcat in unit tests, and replaces some remaining CONCAT constants with IsConcat() to make subsequent teardown of CordrepConcat uses easier.
      
      PiperOrigin-RevId: 426932694
      
      --
      fd590f7e849ba8c5395c589ed3f762cd00affdc8 by Abseil Team <absl-team@google.com>:
      
      Replace NULL and 0 with nullptr.
      
      PiperOrigin-RevId: 426912932
      
      --
      183e5babc478748023f732a1608745a2a544c996 by Abseil Team <absl-team@google.com>:
      
      Replace "span of time" with "amount of time" in the first comment line, to make it clearer that we're not talking about a duration that starts at a specific time.
      
      PiperOrigin-RevId: 426691794
      
      --
      e28ca760f21505f1be55c7af336eb61d2f1b7fea by Martijn Vels <mvels@google.com>:
      
      Add extra assertions on CordRepSubstring child nodes
      
      PiperOrigin-RevId: 426369104
      GitOrigin-RevId: 262f6992ee0553782531ad58dd7d8bcd6d0b7bb7
      Change-Id: I7ffdaa2dc999a2117944c9abdb1565b6b6f48b59
      73316fc3
  26. 03 Feb, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 36db0e4b
      Abseil Team authored
      --
      4409b08e103d6e7041d18a4d431290cafe3650cf by Derek Mauro <dmauro@google.com>:
      
      Workaround NVCC compile error in StringConstant
      
      Based on a patch in TensorFlow:
      https://github.com/tensorflow/tensorflow/blob/da83132aba8d2b6a3c3a9b2e662868eb24f4dd1e/third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch#L262-L282
      
      Fixes #1105
      
      PiperOrigin-RevId: 426156316
      
      --
      25db16567ffc5400dfaa30b567398ede84729687 by Abseil Team <absl-team@google.com>:
      
      Only look for Elf64_Auxinfo on 64-bit FreeBSD.
      
      PiperOrigin-RevId: 426132251
      
      --
      2e73c3d9df59b2b769d2b8dca97f0ca5c512c72a by Abseil Team <absl-team@google.com>:
      
      Add a problem hint to the error message when dereferencing the end() iterator.
      
      PiperOrigin-RevId: 426120394
      
      --
      6befbf89c47963656b9e8151166ab4c8446d4785 by Martijn Vels <mvels@google.com>:
      
      Make Cord Btree the default and remove opt out machinery
      
      This change makes btree the default Cord format and removes the machinery to opt out. Subsequent changes will remove the 'true' constant evaluation and effectively cleanup all old code and references to CONCAT.
      
      PiperOrigin-RevId: 426119728
      
      --
      f6a0a664029d61811d90bd484f4eefa0400b5dd4 by Abseil Team <absl-team@google.com>:
      
      Mark Notification::HasBeenNotified as ABSL_MUST_USE_RESULT
      
      PiperOrigin-RevId: 425927033
      GitOrigin-RevId: 4409b08e103d6e7041d18a4d431290cafe3650cf
      Change-Id: I86f1052c63c13c6486baf4108de2554f162f9c40
      36db0e4b
  27. 01 Feb, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 5202173c
      Abseil Team authored
      --
      121db1a08321eaa3006726cc32b459cf17880e35 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 425707805
      
      --
      0dec484389bbb75aae0a412146e3564bf833a739 by Derek Mauro <dmauro@google.com>:
      
      macOS CI: Avoid depending on external sites like GitHub by prepopulating
      dependencies and setting --distdir
      
      Our Linux CI does this, but for some reason was never enabled on macOS
      
      PiperOrigin-RevId: 425668638
      GitOrigin-RevId: 121db1a08321eaa3006726cc32b459cf17880e35
      Change-Id: Id51645df90b6a0808dd5b18eb636a10f798e24ea
      5202173c
  28. 31 Jan, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 63d26fad
      Abseil Team authored
      --
      c475e8ac1ea163248415e7d4bdc05e3c47dd8f3d by Derek Mauro <dmauro@google.com>:
      
      Replace absl::bit_cast with std::bit_cast in C++20
      
      Remove the deprecated implementation that is less-strict than the
      standard, and also relies on undefined behavior
      
      PiperOrigin-RevId: 425391711
      
      --
      dc97c996aed85161f0e490baafd3ed851e8bea9d by Abseil Team <absl-team@google.com>:
      
      Add enum example for ABSL_DEPRECATED()
      
      PiperOrigin-RevId: 425311634
      GitOrigin-RevId: c475e8ac1ea163248415e7d4bdc05e3c47dd8f3d
      Change-Id: Id8f159b37fe3f3cace6ab7bce08daf9888c44bcf
      63d26fad
  29. 28 Jan, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 940c06c2
      Abseil Team authored
      --
      ef2bdebfdff0a93d3af6248d709d42a47fe2e7b4 by Derek Mauro <dmauro@google.com>:
      
      Compile with -DGTEST_REMOVE_LEGACY_TEST_CASEAPI_ in Bazel CI builds to
      prevent uses of the legacy TestCase API from sneaking in
      
      PiperOrigin-RevId: 424882792
      
      --
      4cf19d7b4dd855685deb0d4d3170e4db9f6f789b by Abseil Team <absl-team@google.com>:
      
      Fix typo in comment.
      
      PiperOrigin-RevId: 424745867
      GitOrigin-RevId: ef2bdebfdff0a93d3af6248d709d42a47fe2e7b4
      Change-Id: I50ad9b4cf3fa17831aa6521c58d81b0ce8ec0c47
      940c06c2
  30. 27 Jan, 2022 3 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · a655ec4a
      Abseil Team authored
      --
      dab53ef01a1c8ceebd1347a4918a0def0d7d4ce5 by Derek Mauro <dmauro@google.com>:
      
      Migrate away from the remaining usages of GoogleTest's legacy TestCase API
      and use the new TestSuite API instead
      
      PiperOrigin-RevId: 424668744
      GitOrigin-RevId: dab53ef01a1c8ceebd1347a4918a0def0d7d4ce5
      Change-Id: I599de09f3349d18c2d74795b1f867fa6c99c3eed
      a655ec4a
    • Abseil Team's avatar
      Export of internal Abseil changes · d2da09a4
      Abseil Team authored
      --
      7fbe730c56c0890f27df47f9ad4f0cfa600c6ad9 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 424639048
      
      --
      1825fcf704e45e881cdd1d2fe3eb2226f523f3cd by Derek Mauro <dmauro@google.com>:
      
      Disable tests Table.EnsureNonQuadraticTopNXorSeedByProbeSeqLength and Table.EnsureNonQuadraticTopNLinearTransformByProbeSeqLength again
      as they are (still) flaky
      
      PiperOrigin-RevId: 424616745
      
      --
      e624119171d9bceec2f6df023b220a6642070cfb by Abseil Team <absl-team@google.com>:
      
      Switch from *_TEST_CASE_P to *_TEST_SUITE_P gtest macros.
      
      PiperOrigin-RevId: 424404790
      
      --
      a110698c10554fb1f640412db8cd7c5a38b7b8e8 by Abseil Team <absl-team@google.com>:
      
      Remove extraneous newline in documentation.
      
      PiperOrigin-RevId: 424328502
      GitOrigin-RevId: 7fbe730c56c0890f27df47f9ad4f0cfa600c6ad9
      Change-Id: I56fd8c7cecf65fe37cb4cf2dde70842867d637d7
      d2da09a4
    • Roman Gershman's avatar
  31. 25 Jan, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · e3fdd9b1
      Abseil Team authored
      --
      505dc83f11dbc14d6e493d83ed6451966629fe71 by Evan Brown <ezb@google.com>:
      
      In debug mode, make b-tree adapt comparators to do checking to diagnose invalid non-strict-weak-ordering comparators.
      
      Reference: https://en.cppreference.com/w/cpp/named_req/Compare
      
      - Add an opt-out mechanism for tests that rely on counting the number of comparisons.
      - Use the unadapted comparator (original_key_compare) in making the use_linear_search decision so is_same still works.
      
      PiperOrigin-RevId: 423889350
      GitOrigin-RevId: 505dc83f11dbc14d6e493d83ed6451966629fe71
      Change-Id: I65b0ba489c69c8dcfb107684db84f3f7f4d72daa
      e3fdd9b1
  32. 22 Jan, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · b2c96417
      Abseil Team authored
      --
      75504b9d2eb7560359b98b69136d071f980e04f2 by Abseil Team <absl-team@google.com>:
      
      Fix typos in documentation.
      
      PiperOrigin-RevId: 423376798
      
      --
      bf87e5de48a868f49a57d516be027e6e3a3cc3bd by Gennadiy Rozental <rogeeff@google.com>:
      
      Correct WEAK attribute enabling condition.
      
      ABSL_ATTRIBUTE_WEAK is present if:
          compiler has built-in attribute weak
        OR
          we are using gcc (and not clang)
      AND
          we are not on windows
        OR
          we use windows clang version >= 9.0.0
      AND
        we are not on MinGW
      
      PiperOrigin-RevId: 423357629
      
      --
      a01a8f1b7ea3da4ec349db452162a3333953dd9d by Abseil Team <absl-team@google.com>:
      
      There are magic numbers in the expected load factors and probe lengths, and they seem to be wrong especially under msvc.  Even under the linux tool chain, these tests fail occasionally.  Fix the magic numbers to make the tests succeed.
      
      PiperOrigin-RevId: 423320829
      
      --
      fd109295a1425ca1cb2b69fe34a294b6189542c0 by Laramie Leavitt <lar@google.com>:
      
      Manually align buffers in randen_engine.
      
      In C++ it's implementation defined whether types with extended alignment are supported.
      
      randen_engine uses vector intrinsics with 16-byte alignment requirements in
      some instances, so internally we allocate an extra 8 bytes to manually align to 16.
      
      No detectable performance impact.
      
      PiperOrigin-RevId: 423109265
      GitOrigin-RevId: 75504b9d2eb7560359b98b69136d071f980e04f2
      Change-Id: I8c5ab2269ff6d9e89d3b4d0e95d36ddb6ce8096e
      b2c96417
  33. 19 Jan, 2022 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · fbbb5865
      Abseil Team authored
      --
      487c7a754a3b93bc0f9de14bdced48007a96ae55 by Greg Falcon <gfalcon@google.com>:
      
      Add support for absl::Hash to hash unordered containers.  These can now be hashed directly, as well as combined in AbslHashValue implementations.
      
      This also adds a new method, `H::combine_unordered()`, to the public AbslHashValue hash state API.  This allows users to implement hash specializations for their own unordered collection types.
      
      A traits class, `H::is_hashable<T>`, is also added to the hash state API.  H::is_hashable<T>::value reflects whether type T is considered hashable by the AbslHashValue framework.  This allows users to properly SFINAE templated versions of AbslHashValue.  (The AbslHashValue implementation added to raw_hash_set shows an example of its use.)
      
      PiperOrigin-RevId: 422856706
      GitOrigin-RevId: 487c7a754a3b93bc0f9de14bdced48007a96ae55
      Change-Id: Id31fd4ccba282f8c9ae6fcee6ae0ad0f7879f456
      fbbb5865