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
  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
  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:
      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
  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
  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)
       - http://autobuild.buildroot.org/results/775f3ca3dedebff29e212b29dfa896b7613b7a02
      Signed-off-by: default avatarFabrice Fontaine <fontaine.fabrice@gmail.com>
    • 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
  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
      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.
      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
  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:
          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
  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
  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
  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.
    • 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
  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
  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
  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
  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
  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
  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
    • Andrew Krasavin's avatar
  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
  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
  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
    • imaiguo's avatar
      Add support of loongarch64 (#1110) · 808bc202
      imaiguo authored
  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
  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
      GCC users that want to see the warnings but not error on them can use
      PiperOrigin-RevId: 427228952
      0ab4ee5660f3a072054dc4ab5056925c26977c7a by Laramie Leavitt <lar@google.com>:
      Change comment to avoid overflow.
      PiperOrigin-RevId: 427090218
      GitOrigin-RevId: ceee18732f9499d3a53d46d5974f12ea0774b900
      Change-Id: Ida00477b6a3d02a8b7bb467be7621b618385d1e9
  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
  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:
      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
  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
  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
  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
  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
    • 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
    • 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
  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
          we are using gcc (and not clang)
          we are not on windows
          we use windows clang version >= 9.0.0
        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
  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