1. 21 Mar, 2022 1 commit
    • Export of internal Abseil changes · 6c8dab80
      --
      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
      Abseil Team committed
  2. 18 Mar, 2022 2 commits
    • Exclude unsupported x64 intrinsics from ARM64EC (#1135) · 4c015dbb
      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.
      Ben Niu committed
    • Export of internal Abseil changes · c33f21f8
      --
      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
      Abseil Team committed
  3. 17 Mar, 2022 1 commit
    • Export of internal Abseil changes · 9f5b2c78
      --
      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
      Abseil Team committed
  4. 16 Mar, 2022 2 commits
    • Export of internal Abseil changes · e6ae2641
      --
      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
      Abseil Team committed
    • Export of internal Abseil changes · 231c393a
      --
      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
      Abseil Team committed
  5. 14 Mar, 2022 1 commit
    • Export of internal Abseil changes · 5ed77665
      --
      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
      Abseil Team committed
  6. 08 Mar, 2022 2 commits
  7. 04 Mar, 2022 1 commit
    • Export of internal Abseil changes · 04bde89e
      --
      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
      Abseil Team committed
  8. 03 Mar, 2022 2 commits
    • Export of internal Abseil changes · ec33f404
      --
      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
      Abseil Team committed
  9. 02 Mar, 2022 1 commit
    • Export of internal Abseil changes · 1dd160f9
      --
      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
      Abseil Team committed
  10. 24 Feb, 2022 1 commit
    • Export of internal Abseil changes · 5e4ea1ce
      --
      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
      Abseil Team committed
  11. 23 Feb, 2022 2 commits
    • Export of internal Abseil changes · 0ad7994f
      --
      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
      Abseil Team committed
  12. 17 Feb, 2022 1 commit
    • Export of internal Abseil changes · 7f850b31
      --
      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
      Abseil Team committed
  13. 14 Feb, 2022 1 commit
    • Export of internal Abseil changes · c2ef7033
      --
      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
      Abseil Team committed
  14. 07 Feb, 2022 1 commit
    • Export of internal Abseil changes · 73316fc3
      --
      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
      Abseil Team committed
  15. 03 Feb, 2022 1 commit
    • Export of internal Abseil changes · 36db0e4b
      --
      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
      Abseil Team committed
  16. 01 Feb, 2022 1 commit
    • Export of internal Abseil changes · 5202173c
      --
      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
      Abseil Team committed
  17. 31 Jan, 2022 1 commit
    • Export of internal Abseil changes · 63d26fad
      --
      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
      Abseil Team committed
  18. 28 Jan, 2022 1 commit
    • Export of internal Abseil changes · 940c06c2
      --
      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
      Abseil Team committed
  19. 27 Jan, 2022 3 commits
    • Export of internal Abseil changes · a655ec4a
      --
      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 committed
    • Export of internal Abseil changes · d2da09a4
      --
      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
      Abseil Team committed
  20. 26 Jan, 2022 1 commit
    • Export of internal Abseil changes · e3fdd9b1
      --
      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
      Abseil Team committed
  21. 22 Jan, 2022 1 commit
    • Export of internal Abseil changes · b2c96417
      --
      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
      Abseil Team committed
  22. 19 Jan, 2022 2 commits
    • Export of internal Abseil changes · fbbb5865
      --
      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
      Abseil Team committed
    • Export of internal Abseil changes · 9bb42857
      --
      7f5caec21a1a88db6486b8bc2e5f6d5baba076ed by Derek Mauro <dmauro@google.com>:
      
      Tag absl::StatusOr with [[nodiscard]] when it is available
      
      [[nodiscard]] provides better diagnostics on classes than the current
      ABSL_MUST_USE_RESULT, which expands to
      __attribute__((warn_unused_result))
      
      Ideally we would make ABSL_MUST_USE_RESULT expand to [[nodiscard]], but
      we would need to fix all code to build with [[nodiscard]] first.
      
      PiperOrigin-RevId: 422628161
      
      --
      236be69f0f34ccaa3adc831075613847797e6557 by Jorg Brown <jorg@google.com>:
      
      Make sure all of absl/strings compiles even with -Wsign-compare and -Wconversion warnings.
      
      PiperOrigin-RevId: 422573904
      
      --
      005669883a8794e6d19dc4bbb4f0e18032e2fbc9 by Chris Kennelly <ckennelly@google.com>:
      
      Include sampling stride in hashtable sampling data.
      
      This allows us to weight each sample to control for our sampling rate.
      
      PiperOrigin-RevId: 421886935
      
      --
      78046ce6b429b9f5b6c97b05e8448a791db93bbe by Abseil Team <absl-team@google.com>:
      
      Use __builtin_bit_cast for absl::bit_cast when possible
      
      This makes absl::bit_cast match the requirements of the standard when compiler support exists.
      
      PiperOrigin-RevId: 421883999
      
      --
      f397461f4bbeabd32437df0f2275663aeb51adb2 by Derek Mauro <dmauro@google.com>:
      
      Tag absl::Status with [[nodiscard]] when it is available
      
      [[nodiscard]] provides better diagnostics on classes than the current
      ABSL_MUST_USE_RESULT, which expands to
      __attribute__((warn_unused_result))
      
      Ideally we would make ABSL_MUST_USE_RESULT expand to [[nodiscard]], but
      we would need to fix all code to build with [[nodiscard]] first.
      
      PiperOrigin-RevId: 421825565
      GitOrigin-RevId: 7f5caec21a1a88db6486b8bc2e5f6d5baba076ed
      Change-Id: I760b45b68f6012809c70c2a584e4144a99f98733
      Abseil Team committed
  23. 14 Jan, 2022 1 commit
    • Export of internal Abseil changes · c59e7e59
      --
      0db7f4046f9b59c0f8c3df2f0eb7fd88fc328439 by Abseil Team <absl-team@google.com>:
      
      Revise documentation of bit_cast:
      
      * Removes inappropriate examples (round-tripping pointers, serialization), for which reinterpret_cast is more appropriate.
      * Removes mention of "bit representation", which is not an explicit notion in C++. The best we get is "byte representation".
      * Removes a circular defition of "bitcast" as itself, and instead explains what it does.
      * Removes the mathism "for some values of", which is probably not totally accessible to a general audience, and in any case needless verbiage.
      * Fixes comments in the example.
      * Replaces some colloquialisms with simpler, more direct language.
      
      PiperOrigin-RevId: 421791786
      
      --
      e04e64df55d93c1b9a09c0483b97cc4d8763260d by Derek Mauro <dmauro@google.com>:
      
      Update Docker image to use GCC 11.2, Clang 14 (prerelease),
      CMake 3.22.1, and Bazel 4.2.2
      
      PiperOrigin-RevId: 421658559
      
      --
      d002bb3dc5cd1fc5b4cbd79a450efc894caa567c by Chris Kennelly <ckennelly@google.com>:
      
      Add a small microbenchmark for absl::bit_width.
      
      PiperOrigin-RevId: 421604852
      
      --
      131b057d1b76ecd7170421b48d661bb958ff676b by Evan Brown <ezb@google.com>:
      
      Adds a disabled test for EBO in nested `CompressedTuple`s.
      
      PiperOrigin-RevId: 421413134
      
      --
      e34c7876d3a1212d90c73c030ccae6169b682d43 by Jorg Brown <jorg@google.com>:
      
      Show users a better error message if they pass a pointer to absl::Uniform.
      
      PiperOrigin-RevId: 421090472
      GitOrigin-RevId: 0db7f4046f9b59c0f8c3df2f0eb7fd88fc328439
      Change-Id: I5a004e8d17e974fa4897a09d1466ae8fc65dfdbb
      Abseil Team committed
  24. 10 Jan, 2022 1 commit
    • Export of internal Abseil changes · 2a042b08
      --
      389189dbb322df0d0468ab13edf7dc185dc63833 by Abseil Team <absl-team@google.com>:
      
      absl str_format.h can compile with -Wconversion and -Wsign-compare
      
      PiperOrigin-RevId: 420799960
      
      --
      762e5adc429fc143756c42fe92fe8073c87c075f by Abseil Team <absl-team@google.com>:
      
      GetStackTraceWithContext: Fix min_dropped_frames when no frames are recorded
      
      Previously, if there were still frames to skip, they would be included
      in min_dropped_frames.
      
      PiperOrigin-RevId: 420766341
      
      --
      7d4374b8eaa410f4f98ec03d6a8997dccadfb271 by Abseil Team <absl-team@google.com>:
      
      absl::flags compiles with -Wconversion and -Wsign-compare
      
      PiperOrigin-RevId: 420476807
      
      --
      5f00f7805419d725fa1ff57b388e4c0750d1d6b0 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 420282152
      
      --
      bd5471fc34956acf3888bf90287b2aee4415c96d by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 420282033
      
      --
      61c78020804e4290e9b2fe151aeaf99b198716ee by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 420281867
      
      --
      dbe3aad24b65ea11664401a307ea3d2f28e8a7b9 by Derek Mauro <dmauro@google.com>:
      
      Remove the incorrect test for the availability of [[nodiscard]]
      
      It should have been ABSL_HAVE_CPP_ATTRIBUTE(nodiscard) instead of
      ABSL_HAVE_ATTRIBUTE(nodiscard). As a result, some code is not
      compliant with [[nodiscard]], so we cannot simply correct the availability
      test.
      
      Recommend that C++17-only code use the standard [[nodiscard] directly.
      
      PiperOrigin-RevId: 420150702
      GitOrigin-RevId: 389189dbb322df0d0468ab13edf7dc185dc63833
      Change-Id: Idf6ebae3c4edd945c9032c7db3d0ab32d16e8078
      Abseil Team committed
  25. 07 Jan, 2022 3 commits
  26. 06 Jan, 2022 1 commit
    • Export of internal Abseil changes · 628a2825
      --
      04e8fdf6a37d31f9364ca0f70bf663ee972481c6 by Abseil Team <absl-team@google.com>:
      
      Another implicit sign conversion found and removed.
      
      PiperOrigin-RevId: 419718762
      
      --
      dbb6bca7d3cfa9ce79e70d0ed3d0354a4e3a0983 by Abseil Team <absl-team@google.com>:
      
      Fix sign conversions so that absl/status/status.h can compile with -Wconversion -Wsign-compare
      
      PiperOrigin-RevId: 419658075
      GitOrigin-RevId: 04e8fdf6a37d31f9364ca0f70bf663ee972481c6
      Change-Id: I18441488cc84f573c2818ee241c387e1953d5105
      Abseil Team committed
  27. 04 Jan, 2022 1 commit
    • Export of internal Abseil changes · c498947f
      --
      620668e56950d7cfc39db2cd321adf265199ad77 by Abseil Team <absl-team@google.com>:
      
      absl::random compiles (at least for some cases) with -Wconversion -Wsign-compare
      
      PiperOrigin-RevId: 419595521
      
      --
      746651e5fbcab6080d25c4eef8617fc289a448f6 by Abseil Team <absl-team@google.com>:
      
      Annotate FlagImpl storage buffer
      
      Flag type can contain legit uninitialized bits, e.g. padding.
      When the code calls bit_cast as int64_t, it will contain those bits as well.
      Then when we pass the int into the store it's UB for C++ and will be
      reported by the new msan.
      
      PiperOrigin-RevId: 418666492
      GitOrigin-RevId: 620668e56950d7cfc39db2cd321adf265199ad77
      Change-Id: Idd1190f5c98a0a13c4019f3d92cec0313822084c
      Abseil Team committed
  28. 28 Dec, 2021 1 commit
    • Export of internal Abseil changes · 04610889
      --
      3fad46c668edd864a62511f2a6875b8b79e38f34 by Evan Brown <ezb@google.com>:
      
      Use switches instead of lookup tables for zap_desig_waker and ignore_waiting_writers so that we can avoid dTLB misses.
      
      See, e.g., https://godbolt.org/z/a7Gb9vzzj.
      
      Also, now that these are functions, follow function style in naming and comments.
      
      PiperOrigin-RevId: 418654693
      
      --
      ba5107744023a4e9163a44d706fbe8e4a1bc0fd9 by Abseil Team <absl-team@google.com>:
      
      Check for Clang before attempting to expand __clang_major__.
      
      This avoids a warning about an undefined macro on Windows when compiling with
      MinGW-GCC.
      
      PiperOrigin-RevId: 418287329
      GitOrigin-RevId: 3fad46c668edd864a62511f2a6875b8b79e38f34
      Change-Id: I28104980c4d3b204537b248447a6bd1022c9ef5d
      Abseil Team committed
  29. 25 Dec, 2021 1 commit
    • Export of internal Abseil changes · d7587351
      --
      cca8a0c0d709803ce3413861ccbdb1b47e8fdcef by Abseil Team <absl-team@google.com>:
      
      Add AssertHeld() to SpinLock.
      
      PiperOrigin-RevId: 418034654
      
      --
      9e95a0e614b4cd7929d8db4324ca69d7be5351b2 by Evan Brown <ezb@google.com>:
      
      Make btree use an unsigned size_type (size_t).
      
      This brings btree in line with std::set, et al., which are required to use an unsigned size type - see https://en.cppreference.com/w/cpp/container/set.
      
      Also avoid some warnings about comparing integers of different signs.
      
      PiperOrigin-RevId: 418014466
      GitOrigin-RevId: cca8a0c0d709803ce3413861ccbdb1b47e8fdcef
      Change-Id: I2b951cf1d69a3bb9c8dc236c69ab4a06b45047ea
      Abseil Team committed
  30. 20 Dec, 2021 1 commit
    • Export of internal Abseil changes · f523d0dd
      --
      1e25fb5996193524bf2f75781f1e6bdcdf972a3a by Gennadiy Rozental <rogeeff@google.com>:
      
      Introduce enums to represent lower and upper thresholds for LogSeverity.
      
      PiperOrigin-RevId: 417414673
      
      --
      abfddb3a6ad8ce4849fbb6dadb34d7d6295def0f by Abseil Team <absl-team@google.com>:
      
      Restore __arch64__ macro check for SPARC
      
      PiperOrigin-RevId: 416798208
      
      PiperOrigin-RevId: 416688543
      GitOrigin-RevId: 1e25fb5996193524bf2f75781f1e6bdcdf972a3a
      Change-Id: I424dd98e5e07420d5f9dfd191f2bfc06036e2bd1
      Abseil Team committed