1. 11 Oct, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 084aa074
      Abseil Team authored
      --
      42dc250867db8816381a38596e00a3b27b7dbc37 by Gennadiy Rozental <rogeeff@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 401863616
      GitOrigin-RevId: 42dc250867db8816381a38596e00a3b27b7dbc37
      Change-Id: Ia1f100293e0c0845de76d986a170b5ca8d15f1a3
      084aa074
  2. 08 Oct, 2021 2 commits
  3. 07 Oct, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · a59b4daa
      Abseil Team authored
      --
      17141711ee419daa597a9f31e73721f80143e55a by Gennadiy Rozental <rogeeff@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 401384949
      
      --
      ac48584a7b16e8a12e26d49deb6cddec584a20b5 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 401337785
      
      --
      8a51bb7c962845e0707240c5ba12c1b80f6fbbe9 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 401047691
      
      --
      8e18024510869247f3c04c7807c93709eca2322a by Chris Kennelly <ckennelly@google.com>:
      
      Note that SpinLock does not guarantee priorities for wakeups.
      
      PiperOrigin-RevId: 400999238
      
      --
      75bc09b5f95fbb74b74d14c370bfb80011e8fb7f by Derek Mauro <dmauro@google.com>:
      
      Add visibility restrictions to some internal targets
      
      PiperOrigin-RevId: 400718253
      
      --
      1de5061016bc42cd7be009c9725ed2343ce12e3d by Abseil Team <absl-team@google.com>:
      
      Make it clear that operator<< can also be used in place of ToString when logging absl::Status.
      
      PiperOrigin-RevId: 400248269
      
      --
      cda15d9dc6e5cd569de7e5e73f409b72a3caed51 by Abseil Team <absl-team@google.com>:
      
      Minor cleanup
      
      PiperOrigin-RevId: 400087535
      
      --
      b001375ec47da3a0434be9ca9a45c0df510e7dda by Abseil Team <absl-team@google.com>:
      
      Move periodic_sampler from base/internal to profiling/internal
      
      PiperOrigin-RevId: 400038533
      
      --
      e7e02e686abc3900e723080849a3607d190ef57f by Abseil Team <absl-team@google.com>:
      
      Move exponential_biased from base/internal to profiling/internal
      
      PiperOrigin-RevId: 400020329
      GitOrigin-RevId: 17141711ee419daa597a9f31e73721f80143e55a
      Change-Id: I10924df7e1cc198447813dbe97a374a5cef66b49
      a59b4daa
  4. 06 Oct, 2021 1 commit
  5. 05 Oct, 2021 1 commit
  6. 30 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 4167eab0
      Abseil Team authored
      --
      506fa3e10b3d8399ad937c32ecea26d1ad4e62bb by Abseil Team <absl-team@google.com>:
      
      Disable ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE when GCC < 8.2.0 is used with libc++
      
      PiperOrigin-RevId: 399707056
      
      --
      656b7c7cee87f46a4bc7953618796f82da08e62c by Derek Mauro <dmauro@google.com>:
      
      Remove the MSVC flag implementation from flag.h to help clarify that
      methods on absl::Flag<T> are not part of the public API
      
      PiperOrigin-RevId: 399584678
      
      --
      a92a9bc156303bc663b84c4b704891ec8f67e333 by Abseil Team <absl-team@google.com>:
      
      Get rid of MemcpyIfAllowed while continuing to suppress erroneous warnings
      
      PiperOrigin-RevId: 399468864
      
      --
      5f9a66895f707ba001fb51b88c0c6025f8c872a3 by Abseil Team <absl-team@google.com>:
      
      Use feature testing to check for availability of invoke_result.
      
      Feature testing should be available by C++20, which removes invoke_result.
      https://en.cppreference.com/w/cpp/feature_test
      
      PiperOrigin-RevId: 399447373
      
      --
      946c0a502b4499dbfcabf1ab93ddde0048288fb4 by CJ Johnson <johnsoncj@google.com>:
      
      Add rvalue-reference qualifier to the Commit method on ConstructionTransaction
      
      PiperOrigin-RevId: 399442206
      
      --
      726a4d036eff49aeb6fd0ca2b1775699b6844395 by Greg Falcon <gfalcon@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 399441870
      
      --
      1df6d3f659b88dbac13c3d8e13db23bb3844ece2 by Abseil Team <absl-team@google.com>:
      
      Clang-format whitespace changes
      
      PiperOrigin-RevId: 399281271
      
      --
      4a828cde95a07421d699ebac775b37810624214f by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 399234071
      
      --
      e520c72b34ba2f98668c889139001f8276243d31 by Greg Falcon <gfalcon@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 399233662
      GitOrigin-RevId: 506fa3e10b3d8399ad937c32ecea26d1ad4e62bb
      Change-Id: I92b9176d2387c08eb167f9268efa78b55b8e09c2
      4167eab0
  7. 27 Sep, 2021 2 commits
    • Martin Blais's avatar
      7143e49e
    • Abseil Team's avatar
      Export of internal Abseil changes · b1b63f7a
      Abseil Team authored
      --
      d6f0dab708b123a5e24b98da1de0b11e36a7a86e by Evan Brown <ezb@google.com>:
      
      In STLStringResizeUninitializedAmortized, use basic_string::__append_default_init for amortized growth rather than conditionally adding reserve in STLStringReserveAmortized. This way, we can avoid extra branches, e.g. in basic_string::__shrink_or_extend.
      
      PiperOrigin-RevId: 398761382
      GitOrigin-RevId: d6f0dab708b123a5e24b98da1de0b11e36a7a86e
      Change-Id: Ib2d99411c95d61300519c32b885ce586b410c3bf
      b1b63f7a
  8. 23 Sep, 2021 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · 1ce4ceca
      Abseil Team authored
      --
      1801102e11205861bc063e067e9fd4754b625c5a by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 398562681
      
      --
      485008445725d4013f60f4b2876f84b6b47932ec by Jorg Brown <jorg@google.com>:
      
      Replace calls to std::isinf with comparison against max().
      
      PiperOrigin-RevId: 398534255
      
      --
      9b99d074d39ad677cf92f99549d22bb73f504f8f by Saleem Abdulrasool <abdulras@google.com>:
      
      debugging: add support for non-glibc targets for debugging
      
      This relaxes the ELF mem_image handling and subsequently enables the VDSO
      support for non-glibc targets.  The primary need for the restriction was the
      use of the `__GLIBC_PREREQ` macro.  If it is undefined, assume that the glibc
      pre-requisite is unavailable.  This allows building the debugging_internal
      target on musl targets.
      
      PiperOrigin-RevId: 398499050
      
      --
      3cc3630ef2226ae1981a944573f0f9c27a527ebf by Abseil Team <absl-team@google.com>:
      
      Replace usages of `auto` with proper typedefs.
      
      PiperOrigin-RevId: 398479551
      GitOrigin-RevId: 1801102e11205861bc063e067e9fd4754b625c5a
      Change-Id: Ib13e8612d1b263b9c1ae7f56a9f394b24c3add2e
      1ce4ceca
    • Milad Fa's avatar
      Initial support for AIX (#1021) · f3a42743
      Milad Fa authored
      * Init support of AIX
      
      * make sysinfo change AIX specific
      
      * Relocate TBF
      
      * Add comments for .csect psudo op.
      f3a42743
  9. 22 Sep, 2021 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · 020619c4
      Abseil Team authored
      --
      336f161ad8cb2cc3e1a6bbcbbb8c5b692ee59789 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 398308807
      
      --
      80d512823d17561a45feca81f37713a91a175349 by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 398257218
      
      --
      f1f9792000355eb1d0c11b17800048491662a218 by Abseil Team <absl-team@google.com>:
      
      Fix documentation for btree_multi{map,set}::merge to match behavior for elements with equivalent keys.
      
      PiperOrigin-RevId: 398071060
      
      --
      8a9a302aebf2419e83f0c7dc5a63c33d26b807a3 by James Y Knight <jyknight@google.com>:
      
      Silence -Wunused-value warning newly emitted by ToT Clang.
      
      The value is being intentionally ignored, as the purpose of the call is only to eliminate this overload via SFINAE when `GenT{}` is not constant evaluable.
      
      PiperOrigin-RevId: 397861294
      GitOrigin-RevId: 336f161ad8cb2cc3e1a6bbcbbb8c5b692ee59789
      Change-Id: I946e1d22619f92ce6a424c8c13a20a50b39ed463
      020619c4
    • Markus Dreseler's avatar
  10. 20 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 29f8307d
      Abseil Team authored
      --
      d56207f5535c3aad1624e33d20777ea6e66f51a7 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 397830482
      
      --
      7f7ff3e88e0d3cd61d63da477b2a08e61a1aeea2 by Evan Brown <ezb@google.com>:
      
      Update implementation details comment in raw_hash_set to include information about the heap allocation's layout.
      
      PiperOrigin-RevId: 397786239
      
      --
      fde783b12a79ae8d587d1027bc8736dff6844897 by Abseil Team <absl-team@google.com>:
      
      Add comments on #endif to make nesting clearer
      
      PiperOrigin-RevId: 397684219
      GitOrigin-RevId: d56207f5535c3aad1624e33d20777ea6e66f51a7
      Change-Id: I43dc2b5c982f1ef2b21f82b6133c49c428baf223
      29f8307d
  11. 17 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · de715111
      Abseil Team authored
      --
      3794fe8db7a8e5a17945a8d6e198cde1db1fed7d by Chris Kennelly <ckennelly@google.com>:
      
      Record maximum reserve or rehash argument in hashtable statistics.
      
      This makes it possible to identify containers that are large because of reserve
      calls or ones that could have an opportunity for more precise capacity sizing.
      
      PiperOrigin-RevId: 396851064
      
      --
      c3d247c08acfd45d8e19cfd8e6e841e16e38e23d by Abseil Team <absl-team@google.com>:
      
      Remove extra semi-colon
      
      PiperOrigin-RevId: 396823800
      GitOrigin-RevId: 3794fe8db7a8e5a17945a8d6e198cde1db1fed7d
      Change-Id: I9f26407c2dc6b3dff04f6f3e249571dd8ab288c3
      de715111
  12. 15 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 2f25e6ea
      Abseil Team authored
      --
      a7924266cefd1c175142545996c967fb18b6144f by Abseil Team <absl-team@google.com>:
      
      Document the performance advantages of the `ToInt64*()` family of functions.
      
      PiperOrigin-RevId: 396736253
      
      --
      77aa845d3aa4c56a48b899ce5a5ffcf9b81991b3 by Matt Kulukundis <kfm@google.com>:
      
      tiny cleanup: remove redundant `public:`
      
      PiperOrigin-RevId: 396615677
      
      --
      b837e3de0ebd99e4c4f692a80a5d7ece3e829d18 by Martijn Vels <mvels@google.com>:
      
      Make btree growth factor identical to concat code
      
      The btree code is using a more aggressive growth rate on Cord::Append than the Concat version. To minimize impact on migration and existing tests using empirical assumptions on growth, this change makes the btree use the same rate as Concat logic.
      
      PiperOrigin-RevId: 396595109
      
      --
      e958c06b6ab52e389caa7b3e43d83f924367e79c by Martijn Vels <mvels@google.com>:
      
      Change CordRepBtree::Dump to include capacity of flats
      
      PiperOrigin-RevId: 396591195
      GitOrigin-RevId: a7924266cefd1c175142545996c967fb18b6144f
      Change-Id: Ia38c09ba9891364b0727509dec4776eb6aadf984
      2f25e6ea
  13. 13 Sep, 2021 2 commits
  14. 10 Sep, 2021 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · cfbf5bf9
      Abseil Team authored
      --
      77e710b0ced5792a328e88bcb938a41484bf4cdc by Saleem Abdulrasool <abdulras@google.com>:
      
      absl: add an implementation for UnscaledCycleClock on RISCV
      
      Add an implementation for UnscaledCycleClock on RISC-V targets.
      
      PiperOrigin-RevId: 395982312
      
      --
      84430fce6760c488ca36401cd530f44268ac710d by Martijn Vels <mvels@google.com>:
      
      Harden CordRepBtreeReader against reading up to or beyond EOF
      
      This change hardens the reader to Next() calls on EOF situations. It changes the 'consumed()' property inside CordRepBtreeReader into a 'remaining()' property which is easier to understand and use than the 'consumed()' property QED the function documentation and use in cord.cc
      
      This change also adds the CharIterator test to the CordTest fixture enabling them to be run with btree cords.
      
      PiperOrigin-RevId: 395971732
      
      --
      6557e628f2613169da8f693189223acb30e07833 by Martijn Vels <mvels@google.com>:
      
      Add AdvanceAndRead() test addressing the edge case surfaced in b/197776822
      
      This adds a test explicitly exercising all possible AdvanceAndRead() calls on CharIterator. As per the linked bug, a partial or full small read ending exactly at the end of the last edge of a btree cord results in an attempt to read beyond that last edge and subsequent failure. We will fix the bug and enable these tests for btree in a subsequent change.
      
      PiperOrigin-RevId: 395958317
      GitOrigin-RevId: 77e710b0ced5792a328e88bcb938a41484bf4cdc
      Change-Id: Ie6e21ce36980515165af7cf046cf199ecbe0ddb0
      cfbf5bf9
    • Abseil Team's avatar
      Export of internal Abseil changes · c22c032a
      Abseil Team authored
      --
      4fd27d1c0fda72a8772f2779714c327b18ae657b by Derek Mauro <dmauro@google.com>:
      
      Adds missing documentation for btree's lower_bound and upper_bound methods
      
      PiperOrigin-RevId: 395777262
      GitOrigin-RevId: 4fd27d1c0fda72a8772f2779714c327b18ae657b
      Change-Id: Ife2f9149bcf30523be93ee9d8919c7085a9d3a29
      c22c032a
  15. 07 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 8c800bb0
      Abseil Team authored
      --
      6eac0cc7bca997ee95afd4ec485077ae8fd99333 by Abseil Team <absl-team@google.com>:
      
      Add comment not to use `ABSL_ATTRIBUTE_PACKED` with `std::atomic`.
      
      PiperOrigin-RevId: 395231460
      GitOrigin-RevId: 6eac0cc7bca997ee95afd4ec485077ae8fd99333
      Change-Id: Ib4e83bed0f313724b309b6278e9e24a6e5fe9b2c
      8c800bb0
  16. 03 Sep, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 6039dd95
      Abseil Team authored
      --
      7507caf944f8eb98e55730e60e77f9060c572788 by Derek Mauro <dmauro@google.com>:
      
      Remove RunningOnValgrind() and ValgrindSlowdown() from dynamic_annotations.h
      
      These are defined by some sanitizer implementations and possibly Valgrind.
      Abseil decided to define them when the implementation was unavailable so
      that they could be unconditionally called, but we now consider this a mistake.
      Other libraries, including Python, have copied this method, leading to
      multiple definitions when these libraries are used together.
      
      In the unlikely case that code is using Abseil's definition, it
      is recommended that the call be guarded instead:
      ```
      #if __has_feature(thread_sanitizer)
      extern "C" int RunningOnValgrind();
      if (RunningOnValgrind()) ...
      #endif
      ```
      
      Fixes #1011
      
      PiperOrigin-RevId: 394501460
      GitOrigin-RevId: 7507caf944f8eb98e55730e60e77f9060c572788
      Change-Id: I5ddaf9a590c857d645461352a0f6fbccbb3d5584
      6039dd95
  17. 01 Sep, 2021 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · 4bb9e39c
      Abseil Team authored
      --
      f73e17cb24f7878933fc100bd9bfc39fce190b64 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 394306402
      
      --
      3d3eeffa4e37f63aa50fec1b90858043b40fe377 by Abseil Team <absl-team@google.com>:
      
      Release a few more absl::Cord unit tests that were accidentally omitted from the OSS release before.
      
      PiperOrigin-RevId: 394016464
      
      --
      8a77a8eb93d021aadd8fdf43e219bf35328001ad by CJ Johnson <johnsoncj@google.com>:
      
      Fix typo in identifier
      
      PiperOrigin-RevId: 394000560
      
      --
      d87206c7c8e045b03d74b91e47ef3db0eb47a17b by Derek Mauro <dmauro@google.com>:
      
      Fix typo: RandenHwAes
      
      PiperOrigin-RevId: 393879427
      
      --
      980a3402eea77b0c77fb20dd124203002ff791ba by Derek Mauro <dmauro@google.com>:
      
      Adds macros `ABSL_LTS_RELEASE_VERSION` and `ABSL_LTS_RELEASE_PATCH_LEVEL`
      to allow projects to detect if an LTS version is being used.
      
      Fixes #1006
      
      PiperOrigin-RevId: 393807178
      
      --
      aecc7ed34de718c64733dab76621eacb5af9af5f by CJ Johnson <johnsoncj@google.com>:
      
      Change `alloc` to `allocator` to match the fact that other identifiers are full words
      
      PiperOrigin-RevId: 393794869
      
      --
      ad754bbcf7b78f5d51ed5f39193ac3159429b2b4 by Derek Mauro <dmauro@google.com>:
      
      Remove self-include of cord_rep_btree.h
      
      PiperOrigin-RevId: 393792085
      
      --
      f8e937a0d8fe26400560754f3596e3c21bb6d0d7 by Abseil Team <absl-team@google.com>:
      
      Fix trivial typo in comment.
      
      PiperOrigin-RevId: 393770527
      
      --
      7a58ca5d708038d222c6a2b6ff5076b4ceffd370 by Tomas Dzetkulic <dzetkulic@google.com>:
      
      Update Cord::AppendArray resize policy.
      
      PiperOrigin-RevId: 393362184
      
      --
      316050d171190d9d6312cadf88b1cc2db2d1caa7 by Abseil Team <absl-team@google.com>:
      
      Add a new top level profiling/ directory to the Abseil library
      
      PiperOrigin-RevId: 393358109
      
      --
      0dbb8e10f7fa4a7ac74e12b178e936a67b266c51 by CJ Johnson <johnsoncj@google.com>:
      
      Switch to the more common enable_if pattern of ` = 0` in InlinedVector
      
      PiperOrigin-RevId: 393301549
      
      --
      136d3068ce33b50ac820e8bd01395a7164d5181f by Abseil Team <absl-team@google.com>:
      
      Clean up typedefs in internal/inlined_vector.h
      
      PiperOrigin-RevId: 393181754
      GitOrigin-RevId: f73e17cb24f7878933fc100bd9bfc39fce190b64
      Change-Id: I0c4cd4d71d97bd1bf651701b6302ea3d9ac59b66
      4bb9e39c
    • Oleg Fatkhiev's avatar
      Add -Wno-unknown-warning-option to ABSL_LLVM_FLAGS to disable warnings on... · 665ac5b4
      Oleg Fatkhiev authored
      Add -Wno-unknown-warning-option to ABSL_LLVM_FLAGS to disable warnings on unknown warning flags. (#1008)
      
      665ac5b4
  18. 26 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 637722af
      Abseil Team authored
      --
      e1c30aa6d6bb25987916d3ec39245c6d4a2a93ea by Derek Mauro <dmauro@google.com>:
      
      Only build the non-stub implementation of RandenHwAes when
      accelerated AES can be detected by compiler-set flags.
      
      This removes the case where the full RandenHwAes is built when
      only ABSL_RANDOM_INTERNAL_AES_DISPATCH is true.
      
      This also removes the case where ARM crypto is enabled through
      the crypto directive. This directive doesn't appear to reliably
      work when used with arm_neon.h. As far as I can tell, the crypto
      directive is only meant to work with crypto instructions in
      handwritten asm. For this to work with arm_neon.h, it appears
      several hacks are needed, including overriding some compiler-set
      defines.
      
      PiperOrigin-RevId: 392948948
      GitOrigin-RevId: e1c30aa6d6bb25987916d3ec39245c6d4a2a93ea
      Change-Id: Ie97e26f0204c8a86f72d2f38a59181f1ef578418
      637722af
  19. 25 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 095dfc24
      Abseil Team authored
      --
      5d05c54a619a969da5b4b7f66a2af2d969dc7920 by Abseil Team <absl-team@google.com>:
      
      Save not needed copies of the predicate in raw_hash_set's EraseIf.
      
      PiperOrigin-RevId: 392706073
      
      --
      61ee9b808cd3c81dd10a600c8de5428d6a43cfeb by Abseil Team <absl-team@google.com>:
      
      Save unnecessary copies of the iterator in raw_hash_set's EraseIf.
      
      PiperOrigin-RevId: 392668288
      GitOrigin-RevId: 5d05c54a619a969da5b4b7f66a2af2d969dc7920
      Change-Id: I180dab2706841ce56f27cf6eabdad1106ebdcf73
      095dfc24
  20. 24 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 9134967d
      Abseil Team authored
      --
      2aa219620f39aa490fa989f5d92e1bd3e52a46c5 by Abseil Team <absl-team@google.com>:
      
      Add lifetime annotations to FunctionRef.
      
      PiperOrigin-RevId: 392131866
      GitOrigin-RevId: 2aa219620f39aa490fa989f5d92e1bd3e52a46c5
      Change-Id: I295b808986857e46a565e047db25a951dd7ce0e3
      9134967d
  21. 20 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · f39e6ad4
      Abseil Team authored
      --
      82011e44e917fb70fa00078f0bad7f787580bd8e by Abseil Team <absl-team@google.com>:
      
      Add lifetime annotations to status methods that return references.
      
      PiperOrigin-RevId: 391907063
      GitOrigin-RevId: 82011e44e917fb70fa00078f0bad7f787580bd8e
      Change-Id: Icb2cafbf5eb1201b3bdb56a17263073e22b642e7
      f39e6ad4
  22. 19 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · a05366d8
      Abseil Team authored
      --
      04cb3b22497190170aa5b774e98080c5de2ba60b by Abseil Team <absl-team@google.com>:
      
      Alternative bit mixer for LowLevelHash on ARM
      
      LowLevelHash's bit-mixer is inefficient on ARM because it calculates a 128-bit product of two 64-bit numbers. On ARM, this requires a sequence of two instructions with a high combined latency and poor throughput. This change provides alternative bit-mixing code for ARM that uses only 64-bit arithmetic (multiplication, xor, and left-shifts) and speeds things up considerably.
      
      The bit-mixing code for ARM was inspired by by Woothash[1] and xxh3[1]. Once I landed on a sequence of operations that provided good mixing, I used a test harness to search for the combination of shift / rotate factors that provided the best mixing, as indicated by SMHasher hash quality tests. The new mixing code passes 13 out of 15 of the hash quality test suites in SMHasher, with the two failures being in the noise range: e.g. 1 collision vs. zero expected in a keyset of ~8m keys.
      
        [1]: https://github.com/tommyettinger/waterhash/blob/49f5cf0b63b9/woothash.h#L16-L20
        [2]: https://github.com/Cyan4973/xxHash/blob/6853ddc36e46/xxhash.h#L3240-L3265
      
      PiperOrigin-RevId: 391833008
      
      --
      17a4de1f9d623155c75b19285d414cd55a487cd6 by Saleem Abdulrasool <abdulras@google.com>:
      
      debugging: add support for unwinding on RISCV Linux
      
      This adds partial support for unwinding the RISCV call stack.  It is largely
      duplicated from the AArch64 support with alterations for the ELF RISCV psABI.
      This covers RISCV64 and RISCV32, though not the ILP32E calling convention.
      
      PiperOrigin-RevId: 391818522
      
      --
      32c93e449327b2cea32b32f6365e84b420fe1ed3 by Gennadiy Rozental <rogeeff@google.com>:
      
      New storage for types smaller than 8 bytes.
      
      Also adding new read interface for types smaller than or rqual to 8 bytes to avoid passing the pointer.
      
      PiperOrigin-RevId: 391726822
      
      --
      e987ac08a7787801cbfc7d7c96649e97fa8cff1a by Abseil Team <absl-team@google.com>:
      
      Extern template `find_first_non_full` to reduce linkage size for TU with single not inlined function.
      
      PiperOrigin-RevId: 391718862
      
      --
      73af9bfcb5bf045089133e18bbd20eb5bb699172 by Gennadiy Rozental <rogeeff@google.com>:
      
      Make most non-mutable most int128 methods and friend free functions constexpr.
      
      Some functions are implemented offline (at least in some configurations) and can't be made constexpr. Mutable methods can't be made constexpr until we drop c++11 support.
      
      Fixes #978
      
      PiperOrigin-RevId: 391706535
      GitOrigin-RevId: 04cb3b22497190170aa5b774e98080c5de2ba60b
      Change-Id: If051fad5ff004e2e82fa53618fc04a6fe3d2d4be
      a05366d8
  23. 18 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 189d55a5
      Abseil Team authored
      --
      84bcdcd9497d1ec989f50c8dee93f656507c7bd6 by Abseil Team <absl-team@google.com>:
      
      Reduce length of the `flat_hash_map<std::string, V>` type name in order to reduce binary bloat.
      
      PiperOrigin-RevId: 391560997
      
      --
      5f49bd435e066989851dc045c7786ef400413f66 by Greg Falcon <gfalcon@google.com>:
      
      Claim a bit from the Cord refcount for future use.
      
      Also rename the increasingly-inaccurately named "Refcount" class to "RefcountAndFlags".
      
      In optimized builds, this adds an extra mask instruction to decrement and test operations, but no new branches.  Future flags can be added at no extra cost.  Each additional flag will of course reduce the range of our refcount, but even with the bit added, we still support refcounts of 500 million.
      
      PiperOrigin-RevId: 391557567
      GitOrigin-RevId: 84bcdcd9497d1ec989f50c8dee93f656507c7bd6
      Change-Id: I051823bf5a9a42d4fa9200e39563ab585ecab331
      189d55a5
  24. 17 Aug, 2021 2 commits
  25. 13 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 8910297b
      Abseil Team authored
      --
      3a9b4e8e5ecba532db5cc4ac12d12660307ce9fb by Derek Mauro <dmauro@google.com>:
      
      Use the Bazel @platforms repository for platform constraints
      Fixes #1000
      
      PiperOrigin-RevId: 390644226
      
      --
      b34e4d2f8a86b54bd483ec4c9c3dd781ad2d8b68 by Abseil Team <absl-team@google.com>:
      
      debugging: add some handling for RISC-V
      
      The RISC-V architecture uses a downward growing stack and can host Linux using
      ELF files.  Adjust a few sites accordingly to indicate how to handle the RISC-V
      architecture.
      
      PiperOrigin-RevId: 390631894
      
      --
      5fa3a0961bf3dd0799c048956a0128f7b8113f1e by Samuel Benzaquen <sbenza@google.com>:
      
      Rename the buffer hash function to LowLevelHash.
      Although it started as wyhash, it will depart from it so it does not make sense
      to keep the name.
      
      PiperOrigin-RevId: 390483506
      
      --
      2e7867a2301d58ad4cd5abcaa5fd6f0db973ae7b by Abseil Team <absl-team@google.com>:
      
      This is an internal change.
      
      PiperOrigin-RevId: 390349746
      GitOrigin-RevId: 3a9b4e8e5ecba532db5cc4ac12d12660307ce9fb
      Change-Id: I322c3762552a2107e6c6b108c25c01e5efa8aecd
      8910297b
  26. 12 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · f04a0408
      Abseil Team authored
      --
      667d6502169b645de44d5aa79ff7524c329ef136 by Abseil Team <absl-team@google.com>:
      
      Improve the error messages for absl::Substitute to clarify that an unescaped $ symbol is an error.
      
      The existing functionality enforces that unescaped $ results in a compile-time error. However, the current error messages do not mention this case and make it easier to miss while looking for an incorrect numerical substitution argument.
      
      PiperOrigin-RevId: 390242485
      GitOrigin-RevId: 667d6502169b645de44d5aa79ff7524c329ef136
      Change-Id: Iad1f1c18ab9686be11d40772e3d51dd233cfc9bc
      f04a0408
  27. 11 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · b699707f
      Abseil Team authored
      --
      228b5878d7a994656f383666cfaee34e33e0b09b by Abseil Team <absl-team@google.com>:
      
      Add element_type typedef to match std::span<T>
      
      PiperOrigin-RevId: 390186160
      
      --
      c91d96c88c60be793c525158f76dfcaa5e32d161 by Abseil Team <absl-team@google.com>:
      
      Rollback change to only hide retired flags if human-readable output
      is requested
      
      PiperOrigin-RevId: 390183146
      
      --
      170192c10ef8d513de80f29298ce93eeccc3712c by Abseil Team <absl-team@google.com>:
      
      Move alignas(16) before ABSL_CONST_INIT and ABSL_DLL.
      
      PiperOrigin-RevId: 390182845
      
      --
      77a5ee5081c81cef625fac7bbcf993cc028b32ed by Evan Brown <ezb@google.com>:
      
      Use simple SlotOffset and AllocSize logic instead of container_internal::Layout in order to save linker input size for non-opt and sanitizer builds.
      
      In opt mode, all of this logic is inlined so we don't save linker input size in opt mode.
      
      PiperOrigin-RevId: 389914594
      GitOrigin-RevId: 228b5878d7a994656f383666cfaee34e33e0b09b
      Change-Id: I3b904068687574931d8390071b322c0c3c083283
      b699707f
  28. 10 Aug, 2021 1 commit
    • Abseil Team's avatar
      Export of internal Abseil changes · 8e088c5f
      Abseil Team authored
      --
      77cd6291781bc39e8472c706163d6951fe2ae573 by Derek Mauro <dmauro@google.com>:
      
      absl::uint128: Use intrinsics for more operations when available
      
      This change also inlines the division and modulus operators when
      intrinsics are available for better code generation.
      
      Fixes #987
      
      PiperOrigin-RevId: 389895706
      
      --
      fa23339584599e07ebcb4d0a857e2553b017757c by Abseil Team <absl-team@google.com>:
      
      only hide retired flags if human-readable output is requested
      
      PiperOrigin-RevId: 389835452
      
      --
      f1111f2b88359d4b253d4d81681c8a488458a36e by Martijn Vels <mvels@google.com>:
      
      Add helpers IsFlat(), IsExternal(), etc to improve readability
      
      PiperOrigin-RevId: 389779333
      
      --
      785b8712261e41695ebeeb64b4317f93b37adc11 by Martijn Vels <mvels@google.com>:
      
      Split off 'concat' and 'btree' RepMemoryUsageLeaf and RepMemoryUsageDataEdge
      
      PiperOrigin-RevId: 389701120
      
      --
      5264bffebffc2b377bf7e18f0ce69a3ed38c6629 by CJ Johnson <johnsoncj@google.com>:
      
      Eagerly destroy `Callback` in `absl::Cleanup`
      
      PiperOrigin-RevId: 389678813
      
      --
      a05312f0668458e97c50ca932c8f974c1508ebf2 by Abseil Team <absl-team@google.com>:
      
      Have one instance of empty_group per program, rather than one per translation unit.
      
      https://stackoverflow.com/questions/185624/static-variables-in-an-inlined-function
      
      PiperOrigin-RevId: 389185845
      GitOrigin-RevId: 77cd6291781bc39e8472c706163d6951fe2ae573
      Change-Id: Iac8d9cb27707a9562c831c77a552d1fb4bb0405f
      8e088c5f
  29. 06 Aug, 2021 2 commits
    • Abseil Team's avatar
      Export of internal Abseil changes · bf31a10b
      Abseil Team authored
      --
      93c607726d663800b4bfa472cba043fd3f5d0e97 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 389158822
      
      --
      55b3bb50bbc168567c6ba25d07df2c2c39e864af by Martijn Vels <mvels@google.com>:
      
      Change CordRepRing alternative implementation to CordRepBtree alternative.
      
      This changes makes CordRepBtree (BTREE) the alternative to CordRepConcat (CONCAT) trees, enabled through the internal / experimental 'cord_btree_enabled' latch.
      
      PiperOrigin-RevId: 389030571
      
      --
      d6fc346143606c096bca8eb5029e4c429ac6e305 by Todd Lipcon <tlipcon@google.com>:
      
      Fix a small typo in SequenceLock doc comment
      
      PiperOrigin-RevId: 388972936
      
      --
      e46f9245dce8b4150e3ca2664e0cf42b75f90a83 by Martijn Vels <mvels@google.com>:
      
      Add 'shallow' validation mode to CordRepBtree which will be the default for internal assertions.
      
      PiperOrigin-RevId: 388753606
      
      --
      b5e74f163b490beb006f848ace67bb650433fe13 by Martijn Vels <mvels@google.com>:
      
      Add btree statistics to CordzInfo, and reduce rounding errors
      
      PiperOrigin-RevId: 388715878
      
      --
      105bcbf80de649937e693b29b18220f9e6841a51 by Evan Brown <ezb@google.com>:
      
      Skip length checking when constructing absl::string_view from `const char*`.
      The length check causes unnecessary code bloat.
      
      PiperOrigin-RevId: 388271741
      
      --
      bed595158f24839efe49c65ae483f797d79fe0ae by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 387713428
      GitOrigin-RevId: 93c607726d663800b4bfa472cba043fd3f5d0e97
      Change-Id: I2a4840f5ffcd7f70b7d7d45cce66f23c42cf565f
      bf31a10b
    • Leonhard Markert's avatar
      Simplifies the construction of the value returned by GenerateRealFromBits() (#994) · ab01e040
      Leonhard Markert authored
      
      
      * GenerateRealFromBits: sign is already set
      
      If std::is_same<SignedTag, GeneratePositiveTag>::value then sign is
      already set to zero thanks to:
      
          uint_type sign = std::is_same<SignedTag, GenerateNegativeTag>::value
                               ? (static_cast<uint_type>(1) << (kUintBits - 1))
                               : 0; // <- here
      
      So the conditional is unnecessary.
      
      * Update generate_real.h
      
      Remove extra parenthesis
      Co-authored-by: default avatarDerek Mauro <761129+derekmauro@users.noreply.github.com>
      ab01e040
  30. 29 Jul, 2021 2 commits
    • Eric Barndollar's avatar
      CMake: option to use cxx_std_11 (minimum) that propagates. (#986) · ee0ebdae
      Eric Barndollar authored
      See https://github.com/abseil/abseil-cpp/issues/259 for context.
      
      This change introduces the ABSL_PROPAGATE_CXX_STD option (default to OFF for now, though it prints a warning in CMake 2.8+ builds that a future Abseil release will default to ON). When enabled, all Abseil CMake targets will set the cxx_std_11 target meta feature (which will then propagate to targets that depend upon Abseil) rather than setting the target-level CXX_STANDARD property to CMAKE_CXX_STANDARD (which is the default value anyway), which doesn't propagate.
      
      Updates README documentation to clarify behavior and with a different example recommendation for library projects (which should generally leave CMAKE_CXX_STANDARD to the root application project).
      
      See https://crascit.com/2015/03/28/enabling-cxx11-in-cmake/ for a useful overview of these different CMake features surrounding C++ standard version configuration.
      ee0ebdae
    • Abseil Team's avatar
      Export of internal Abseil changes · 89c531c1
      Abseil Team authored
      --
      e1a0989213908927f05002ab7697955ad7dc5632 by Martijn Vels <mvels@google.com>:
      
      Introduce CordRepBtreeReader
      
      CordRepBtreeReader provides forward navigation on cord btrees with absolute positional (offset) context, iterating over btree data in absl::string_view chunks.
      
      PiperOrigin-RevId: 387585161
      
      --
      206d298e2bccb998731995cb05717b31fa9d90ec by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 387577465
      
      --
      f07fafe8a400a4f5dfef186d1a3b61fb7f709fe5 by Abseil Team <absl-team@google.com>:
      
      This change adds debug-build enforcement that the inputs to
      absl::c_set_intersection are sorted, which is a prerequisite of
      std::set_intersection and required for correct operation of the
      algorithm.
      
      PiperOrigin-RevId: 387446657
      
      --
      2ca15c6361bb758be7fb88cae82bf8489b4d3364 by Abseil Team <absl-team@google.com>:
      
      Change BadStatusOrAccess::what() to contain status_.ToString()
      
      This ensures that on uncaught exception propagation that would cause program termination, the message contains information on the error which caused the failure.
      
      Lazy initialization of what_ is a value judgement: if most callers are expected to call status() not what(), lazy initialization is correct. If most callers are expected to call what(), it should be initialized on construction to avoid atomic operation overhead.
      
      PiperOrigin-RevId: 387402243
      
      --
      3e855084e104dc972a0c4385395e6d8e8465127f by Gennadiy Rozental <rogeeff@google.com>:
      
      LSC: Standardize access to GoogleTest flags on GTEST_FLAG_GET/GTEST_FLAG_SET
      
      This change is necessary to move Googletest flags out of the testing:: namespace without breaking code. These new macros will continue to be required for code that needs to work both inside Google's monorepo and outside in OSS, but can be used anywhere inside the monorepo.
      
      PiperOrigin-RevId: 387396025
      
      --
      1ccf5895a15059ef689af5c4817d7b84f73190be by Gennadiy Rozental <rogeeff@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 387388496
      GitOrigin-RevId: e1a0989213908927f05002ab7697955ad7dc5632
      Change-Id: I3606d9ce29d909a3555e662e9df564202cf5068d
      89c531c1