1. 16 Dec, 2020 1 commit
  2. 15 Dec, 2020 1 commit
    • Export of internal Abseil changes · 68f1ad93
      --
      f0456157cdc6cef6dbb5d2f99f9dc3ca0e213fab by Abseil Team <absl-team@google.com>:
      
      Improve flag_benchmark reproducibility, test multiple threads
      
      This adds multiple threads to the flags benchmark, and also uses some
      linker magic to ensure that the defined flags are mapped to a consistent
      alignment regardless of other code changes in the benchmark binary.
      
      The benchmark performance in multiple threads is somewhat sensitive to
      the alignment of the FlagImpl class, depending on whether the flag value
      and the absl::Mutex are on the same cacheline or different ones. Making
      all flags be cacheline-aligned would probably waste too much memory,
      so this CL instead just makes the memory alignment consistent within the
      tests.
      
      PiperOrigin-RevId: 347536882
      
      --
      a019646d306b9497a1eba7efa5e2c4c651d9979d by Derek Mauro <dmauro@google.com>:
      
      Fix other comments in node_hash_set.h
      
      PiperOrigin-RevId: 347462975
      
      --
      66a4b39fe84a3e81935ad08ee76291df13d1d5e6 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 347436244
      
      --
      52f4d18c2c4439d26428f64ac4de41e6183919ee by Mark Barolak <mbar@google.com>:
      
      container: fix introduction for node_hash_set.h
      
      Import of https://github.com/abseil/abseil-cpp/pull/861
      
      PiperOrigin-RevId: 347432772
      GitOrigin-RevId: f0456157cdc6cef6dbb5d2f99f9dc3ca0e213fab
      Change-Id: I629f27e5b9584d92b0a42284c1acf708779bad3f
      Abseil Team committed
  3. 14 Dec, 2020 1 commit
    • Export of internal Abseil changes · 52acfe6f
      --
      751781aa5b9e998f84a8a7e00789c80d3338730e by Abseil Team <absl-team@google.com>:
      
      Fix attributes.h compilation with -Wundef flag in C
      
      PiperOrigin-RevId: 347394915
      
      --
      66070a8166b0e1a61236b954d07fbb378f4f990b by Abseil Team <absl-team@google.com>:
      
      Revert the usage of variant<> in Cord iterator and reader.
      
      The introduction of the variant may lead to some missed compiler optimizations.
      
      PiperOrigin-RevId: 347384869
      GitOrigin-RevId: 751781aa5b9e998f84a8a7e00789c80d3338730e
      Change-Id: Ibf1190d498a6f968f2ea9b89467ccfb5224dafa8
      Abseil Team committed
  4. 12 Dec, 2020 1 commit
    • Export of internal Abseil changes · 1918ad2a
      --
      0bfa836596a9c787a2f0bdc283011dd1f6810c6e by Benjamin Barenblat <bbaren@google.com>:
      
      Ignore missing CPU frequency on more architectures
      
      Linux on MIPS, PA-RISC, RISC-V, and SystemZ doesn’t expose the nominal
      CPU frequency via /sys, so don’t worry if `NominalCPUFrequency` returns
      1.0 on those platforms.
      
      Some POWER machines expose the CPU frequency; others do not. Since we
      can’t predict which type of machine the tests will run on, simply
      disable testing for `NominalCPUFrequency` on POWER.
      
      PiperOrigin-RevId: 347079873
      
      --
      492b6834ed4a07cbc3abccd846f7e37d8c556ee5 by Benjamin Barenblat <bbaren@google.com>:
      
      Use ABSL_HAVE_THREAD_LOCAL macro instead of copying code
      
      Reduce code duplication by checking the ABSL_HAVE_THREAD_LOCAL macro
      instead of copying code from base/config.h.
      
      PiperOrigin-RevId: 347079561
      
      --
      8d656efce4da9cb032094377e58493d98427a536 by Abseil Team <absl-team@google.com>:
      
      Rollback
      
      PiperOrigin-RevId: 347078779
      
      --
      221bc69ec6dd7e2777ffcff6942584f979ef6382 by Abseil Team <absl-team@google.com>:
      
      Add flag for 'shallow subcord' feature for experimental ring buffer rollout
      
      There is a potential trade-off of CPU cost vs over-sharing cord data for subcord of large cords. This flag allows making subcords shallow for ringbuffers (with a potential larger waste of referenced source cords), which allows us to make subcord fast for this apps that do no persist (unmodified / plain copied) sub cords.
      
      This change also introduces constants for the default settings, intended to keep the internal cord settings concistent with external flags.
      
      PiperOrigin-RevId: 347053271
      
      --
      00a56c24293566734009f6bf2169a83fb37a35ba by Abseil Team <absl-team@google.com>:
      
      Revert the usage of variant<> in Cord iterator and reader.
      
      The introduction of the variant may lead to some missed compiler optimizations.
      
      PiperOrigin-RevId: 347053041
      
      --
      c7b7b5ed7e3ab46b1e75b80f1a7de0bda26c8f70 by Chris Kennelly <ckennelly@google.com>:
      
      Release library for integer power-of-2 functions and bit counting.
      
      PiperOrigin-RevId: 347035065
      
      --
      5a035c0d9840b251967f9e7039fc6a4e01dd52f3 by Abseil Team <absl-team@google.com>:
      
      Restructure Cord::ChunkIterator for future ring buffer support.
      
      PiperOrigin-RevId: 346890054
      GitOrigin-RevId: 0bfa836596a9c787a2f0bdc283011dd1f6810c6e
      Change-Id: I3a58e2a44cb4c6f2116c43e2a4ccbc319d3ccecf
      Abseil Team committed
  5. 10 Dec, 2020 1 commit
    • Export of internal Abseil changes · 938fd0f4
      --
      6e9f93888bbe6718997ed90bbd049f1f3572b066 by Abseil Team <absl-team@google.com>:
      
      Fix status to be safe for self move assignment.
      
      PiperOrigin-RevId: 346815392
      
      --
      35cae74a977f258e81dfbe925fb5a34cb6632036 by Gennadiy Rozental <rogeeff@google.com>:
      
      Eliminate unnecessary access to the global vars.
      
      PiperOrigin-RevId: 346777168
      
      --
      e7e786c243069060f5d6c1c945decb4b0b83f95b by Andy Getzendanner <durandal@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 346685656
      
      --
      4ccd41c48f1a83cfa20b3ea534f743dd7d788376 by Abseil Team <absl-team@google.com>:
      
      Move CordRep Ref() and Unref() logic into cord_internal.h
      
      This change moves Ref() and Unref() logic out of cord.cc into cord_internal. The main purpose is to make upcoming ring buffer changes easier to isolate from existing cord.cc code. Notice that this removes the nullptr check from Unref() and now requires it to be non null (which held true most times). We may need to rethink if the 'unref unlikely one' is the common case: are cordreps most likely shared? This may be something between 'root' and non root nodes, i.e., is it more likely for leaf / flat nodes in large cords to be shared than top level cordreps being shared? Vice versa? Benchmarks say that we mostly shouldn't care, the caveat being that atomic ops seem more expensive on upcoming archs (arcadia) so we should error on the side of an extra IsOne() branch saving us single owned atomic ops.
      
      PiperOrigin-RevId: 346676121
      
      --
      f0babab103b9e60d61ba09482d468985e43eceb3 by Samuel Benzaquen <sbenza@google.com>:
      
      Fix iterator based constructor and `.insert` members to only require
      EmplaceConstructible as the standard specifies.
      
      PiperOrigin-RevId: 346616707
      
      --
      8f48eedda02277f9c96a88ed7726e34b557cce20 by Evan Brown <ezb@google.com>:
      
      Fix a bug in binary_search_impl when there's a transparent, three-way comparator that has different equivalence classes for different lookup types.
      
      Add a new can_have_multiple_equivalent_keys method to share the common logic for these cases.
      
      PiperOrigin-RevId: 346605948
      
      --
      649183cb3cc9383431de9c81fb1c0f885d4001ae by Abseil Team <absl-team@google.com>:
      
      Add benchmark for accessing a Duration flag.
      
      PiperOrigin-RevId: 346594843
      
      --
      fefdb046520871af63ce2229e2f7cccfc0483dea by Abseil Team <absl-team@google.com>:
      
      Restructure CordReader for upcoming ring buffer changes.
      
      PiperOrigin-RevId: 346410642
      
      --
      8b2f50e7da0ebab06ead5f94e366e984ca23cb6a by Abseil Team <absl-team@google.com>:
      
      Wire in an internal-only flag to toggle upcoming ring buffer changes on/off for experimentation.
      
      PiperOrigin-RevId: 346199111
      GitOrigin-RevId: 6e9f93888bbe6718997ed90bbd049f1f3572b066
      Change-Id: I8f34866b25a79209cb5448bbb28dd3044111d2e9
      Abseil Team committed
  6. 07 Dec, 2020 1 commit
    • Export of internal Abseil changes · fbdff6f3
      --
      ff793052bd01e1e4fcf639f94d7c30c4855a9372 by Evan Brown <ezb@google.com>:
      
      Roll forward of btree_iterator refactoring.
      
      PiperOrigin-RevId: 346116047
      
      --
      17984679f16e3e2139b0f14fa76f4a6ca16a3ef9 by Chris Kennelly <ckennelly@google.com>:
      
      Extend absl::StrContains to accept single character needles.
      
      Single characters are more efficient to search for.  Extending this API allows
      the abseil-string-find-str-contains Clang Tidy to include this pattern.
      
      The C++ committee has adopted http://wg21.link/P1679 for inclusion in C++23.
      
      PiperOrigin-RevId: 346095060
      
      --
      ef20b31c501b1dcaa25e244fd8f8aa43dec09bd6 by Jorg Brown <jorg@google.com>:
      
      Internal change for cord ring
      
      PiperOrigin-RevId: 346087545
      
      --
      b70f2c1cb77fc9e733a126e790967d45c5fd1dc7 by Derek Mauro <dmauro@google.com>:
      
      Release layout_benchmark
      
      PiperOrigin-RevId: 345968909
      
      --
      3a0eda337ee43622f92cfe14c2aa06f72dc71ee5 by Derek Mauro <dmauro@google.com>:
      
      Release raw_hash_set_probe_benchmark
      
      PiperOrigin-RevId: 345965969
      
      --
      abffdb4bb241a2264cb4e73a6262b660bb10447d by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 345733599
      
      --
      7c9e24a71188df945be17fe98f700bdb51f81b16 by Derek Mauro <dmauro@google.com>:
      
      Release hash_benchmark
      
      PiperOrigin-RevId: 345721635
      
      --
      d68f33f17f9a8cd3f6da8eee3870bdb46402cdc8 by Derek Mauro <dmauro@google.com>:
      
      Release raw_hash_set_benchmark
      
      PiperOrigin-RevId: 345708384
      
      --
      6e6c547d4d1327b226c0ffe8ff34d0aa103ce24b by Abseil Team <absl-team@google.com>:
      
      Updates the implementation of InlinedVector to accurately express the value-initialization semantics of the default constructor
      
      PiperOrigin-RevId: 345548260
      
      --
      1532424deda97d468444c217cc0fa4614099c7c1 by Evan Brown <ezb@google.com>:
      
      Rollback btree_iterator refactoring.
      
      PiperOrigin-RevId: 345543900
      GitOrigin-RevId: ff793052bd01e1e4fcf639f94d7c30c4855a9372
      Change-Id: I719831981fd056de41939f9addfee3d85e3b49b2
      Abseil Team committed
  7. 03 Dec, 2020 1 commit
    • Export of internal Abseil changes · acf3390c
      --
      8ebcdcac49f299156a8fd4a77501a258050960e8 by Evan Brown <ezb@google.com>:
      
      In btree_iterator, refactor a bit and update a couple of comments.
      
      PiperOrigin-RevId: 345491436
      
      --
      421d3b9b5cf484811b9514436ce83f797e109145 by CJ Johnson <johnsoncj@google.com>:
      
      Updates the implementation of InlinedVector to accurately express the value-initialization semantics of the default constructor
      
      PiperOrigin-RevId: 345479151
      
      --
      88f36a132b2038cb276ed1ad4d9764adb1fc78e6 by CJ Johnson <johnsoncj@google.com>:
      
      Updates the implementation of InlinedVector to accurately express the value-initialization semantics of the default constructor
      
      PiperOrigin-RevId: 345433064
      
      --
      e55c9b4e7c578c1c4f2df65b1991041c283a97d9 by Chris Kennelly <ckennelly@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 345388181
      
      --
      e2284c4e77ff1ebc3009e5bf520524c552226d8a by Chris Kennelly <ckennelly@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 345357514
      
      --
      1c496a2ae07ce98578614155d63ef2ea4de5e518 by Chris Kennelly <ckennelly@google.com>:
      
      Mark string lookup functions noexcept.
      
      PiperOrigin-RevId: 345275012
      GitOrigin-RevId: 8ebcdcac49f299156a8fd4a77501a258050960e8
      Change-Id: I0ccb57d210b543270769e1378de38bf0922f8745
      Abseil Team committed
  8. 01 Dec, 2020 1 commit
    • Export of internal Abseil changes · 59292448
      --
      7b6a68aa92dcc7247236d1a1813914e035383bf8 by Abseil Team <absl-team@google.com>:
      
      Use atomic exchange to mark completion in absl::once_flag
      
      This prevents a potential for a missed wakeup if one thread marks
      itself as a waiter while another thread is completing the invocation.
      
      PiperOrigin-RevId: 344946791
      
      --
      ddff21d1dde08d1368d8be5fca81b154e78be2fc by Abseil Team <absl-team@google.com>:
      
      Add missing string_view include. This is currently used transitively through the cord header.
      
      PiperOrigin-RevId: 344845266
      GitOrigin-RevId: 7b6a68aa92dcc7247236d1a1813914e035383bf8
      Change-Id: Ia24e98a1df832fc4cb491d888fdf21182b5954f4
      Abseil Team committed
  9. 30 Nov, 2020 1 commit
    • Export of internal Abseil changes · e80c0b35
      --
      d85f04af95a6fdafb102f7dc393d78d4431b47e5 by Abseil Team <absl-team@google.com>:
      
      Internal change for cord ring
      
      PiperOrigin-RevId: 344541196
      
      --
      1ff57908e31a09ec0c98d8316da1263092cc3a1c by Abseil Team <absl-team@google.com>:
      
      Fix typo in comment.
      
      PiperOrigin-RevId: 344214280
      GitOrigin-RevId: d85f04af95a6fdafb102f7dc393d78d4431b47e5
      Change-Id: I58b3c28f62a5d10dd665b17d58a121f371e1260a
      Abseil Team committed
  10. 24 Nov, 2020 1 commit
    • Export of internal Abseil changes · 5d8fc919
      --
      fcedaa5714efab8738446fa21620b827a40a3458 by Derek Mauro <dmauro@google.com>:
      
      Uses Wyhash in the implementation of absl::Hash for hashing sequences
      of more than 16 bytes on some platforms.
      
      Due to the per-process randomization of the seed used by absl::Hash, users
      should not notice this change, other than possibly getting better performance.
      
      This change only affects platforms where absl::uint128 is implemented
      with an intrinsic (and where sizeof(size_t)==8) since Wyhash relies on
      fast 128-bit multiplication for speed.
      
      PiperOrigin-RevId: 343956735
      
      --
      085e108c760084f19caa21dbeb2118de2be3f8f0 by Abseil Team <absl-team@google.com>:
      
      Internal change for cord ring
      
      PiperOrigin-RevId: 343919274
      
      --
      4c333278ad14d6692f203074b902506008ad624a by Jorg Brown <jorg@google.com>:
      
      Minimize strings_internal::StringConstant further, by removing the need for the compiler to instantiate a compile-time class function.
      
      PiperOrigin-RevId: 343878568
      
      --
      71c3c8c7b7821b67997e3d5345aaec67f93f266f by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 343838259
      GitOrigin-RevId: fcedaa5714efab8738446fa21620b827a40a3458
      Change-Id: Ifb91895a82d11e743acd42fe97ab7fb70712b7df
      Abseil Team committed
  11. 20 Nov, 2020 1 commit
    • Export of internal Abseil changes · e19260fd
      --
      1f91ba7fcb79244fce1fe448c1d31fb5b0580584 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 343511158
      
      --
      8dcd61fed44f4e56044aa4a899cc3124117fa21f by Abseil Team <absl-team@google.com>:
      
      refactors result_of so it doesn't unnecessarily break in C++20 mode
      
      std::result_of was deprecated in C++17 and removed in C++20. This CL
      adds an implementation detail so it transparently continues to work
      when external users turn up to C++20 or later.
      
      The implementation is derived from C++17's specification of result_of
      [depr.meta.types][1].
      
      [1]: https://timsong-cpp.github.io/cppwp/n4659/depr.meta.types
      
      Fixes #649
      
      PiperOrigin-RevId: 343395432
      GitOrigin-RevId: 1f91ba7fcb79244fce1fe448c1d31fb5b0580584
      Change-Id: Id5d9c55dc7547737bade48a15f2f5740f414d811
      Abseil Team committed
  12. 19 Nov, 2020 1 commit
    • Export of internal Abseil changes · 4fd9a1ec
      --
      03700706d80f0939e2b5b8c02a326f045b643730 by Abseil Team <absl-team@google.com>:
      
      Reduced latency and code-size of some InlinedVector methods:
      
      1. Simpler fast path for push_back/emplace_back.
      2. Do not inline slow path of push-back/emplace_back.
      3. Simplify resize implementation.
      
      Performance:
      A simple benchmark that does the following per iteration:
      
      ```
      push_back on an InlinedVector<int64>
      push_back on an InlinedVector<bool>
      ```
      
      Sees iteration time go from 4.3ns to 2.8ns and code size shrink from 1129 bytes to 175 bytes.
      
      PiperOrigin-RevId: 343335635
      
      --
      16f74277a9e8bf228c164b053da8b8098f76de62 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 343332753
      
      --
      886b6d5d0244783d309e34f03c21710f411e3cb3 by Abseil Team <absl-team@google.com>:
      
      Optimize `Status::Status`: When creating a status, we currently create an empty struct first, then assign fields. This is suboptimal: https://screenshot.googleplex.com/5HqDuFBKUEqrVgy.
      
      Relevant Benchmarks:
      ```
      BM_StatusCopyError_Deep/threads:1              26.9ns ±13%   21.2ns ±16%  -21.46%  (p=0.000 n=15+15)
      BM_StatusCopyError_Deep/threads:2              32.0ns ±30%   25.6ns ±37%  -20.17%  (p=0.004 n=15+14)
      BM_StatusCopyError_Deep/threads:4              37.4ns ±84%   30.6ns ±58%  -18.26%  (p=0.029 n=15+15)
      BM_StatusCopyError_Deep/threads:8              47.2ns ±33%   33.5ns ±56%  -28.91%  (p=0.000 n=15+14)
      ```
      
      PiperOrigin-RevId: 343303312
      
      --
      2f9d945654292e8e52cad410fa41dae794cff42c by Abseil Team <absl-team@google.com>:
      
      Set SOVERSION for the installed libraries
      
      PiperOrigin-RevId: 343287682
      
      --
      600bbfffe91cfbdc60b43cdad5619258298d0b0d by Abseil Team <absl-team@google.com>:
      
      Fix a typo in a comment (than -> that)
      
      PiperOrigin-RevId: 343187724
      
      --
      310c82cd97b3f1f0d1ee93a0ee2b0aee828b2a93 by Abseil Team <absl-team@google.com>:
      
      Simplify unaligned memory access functions.
      
      The #ifdef to produce calls to __sanitizer_unaligned_load16 etc were needed in past versions of this code, when we were lying to the compiler about the alignment of the loads/stores, by using a reinterpret_cast.
      
      However, a year ago, absl switched to simply use memcpy. Sanitizers support this correctly by default, nothing extra is required.
      
      PiperOrigin-RevId: 343159883
      
      --
      bdf6fcf99180c371fda6ba8af82fd44656e372fa by Gennadiy Rozental <rogeeff@google.com>:
      
      Migrate usage flags to global variables instead of modeling them as Abseil Flags.
      
      Also introduce new semantic for --help=substring command line argument.
      
      PiperOrigin-RevId: 343019883
      GitOrigin-RevId: 03700706d80f0939e2b5b8c02a326f045b643730
      Change-Id: I4ad40dfa9606f8b8bfb2d91fd09e327105311bfb
      Abseil Team committed
  13. 17 Nov, 2020 1 commit
    • Export of internal Abseil changes · 4ae67306
      --
      77e2a9c277721f23a8df983c1efc6ed97c167964 by Derek Mauro <dmauro@google.com>:
      
      Simplify an internal piece of CityHash to remove the conflicting
      definition of uint128
      
      PiperOrigin-RevId: 342906008
      
      --
      593dbb6d5fd32cc5d31e3ba1eda02e8ddeaeaaf6 by Gennadiy Rozental <rogeeff@google.com>:
      
      Skip retired flags in GetAllFlags output.
      
      This is a bug fix. We should not have released this interface producing retired flags. There should be no observable difference for the users who should not care about retired flags.
      
      PiperOrigin-RevId: 342889378
      
      --
      bb77e07abff4dbd0a9c97eb85ee85cb39b84d04a by Abseil Team <absl-team@google.com>:
      
      Extract `find_first_not_full` outside of the raw_hash_set.
      
      This function is used in the following scenarios:
      
      0. [relatively hot] insert, when actual new element is added.
      1. [relatively cold] resize (explicit or on capacity grow)
      2. [relatively cold] copy constructor
      3. [cold] rehash on insert/erase (aka cache) use cases
      
      Resize typically mitigated by `reserve` in performance critical cases. Rehashing happen relatively rare, when hash table become polluted with deleted slots.
      
      We keep `find_first_not_full` in header, so that compiler still can inline it, when necessary (most notably in insert use case).
      
      This reduce binary size since only one copy of this function will be present in the binary for all tables where the function is not inlined (at least in one case).
      
      PiperOrigin-RevId: 342736300
      GitOrigin-RevId: 77e2a9c277721f23a8df983c1efc6ed97c167964
      Change-Id: I3fe9d054c66049bb598ea35c45fc800b1cdaa9b6
      Abseil Team committed
  14. 16 Nov, 2020 2 commits
    • Export of internal Abseil changes · 1b465af3
      --
      92811d3307196b2810bdc3c7e50ef9544db3f23b by CJ Johnson <johnsoncj@google.com>:
      
      Refactor InlinedVector's OverheadTest.Storage test to be easier to understand and modify in the future
      
      PiperOrigin-RevId: 342718098
      
      --
      cf3f2af201775f9c4e68dd2f9806126aecbd0748 by Abseil Team <absl-team@google.com>:
      
      Implement `reserve` more explicit to avoid calling `rehash`.
      
      `reserve` is much more widely used method and doesn't need extra logic present in `rehash`.
      
      E. g., accidental `t.reserve(0)` on non empty table shouldn't cause rehashing, which was a case before this change.
      
      It also remove some unnecessary computations from `reserve`.
      Was:
      ```
      GrowthToLowerboundCapacity  2x
      NormalizeCapacity           1x
      bitwise |                   1x
      n == 0 && capacity_ == 0    1x
      n == 0 && size_ == 0        1x
      n == 0                      1x
      ||                          1x
      m > capacity_               1x
      overall branches            6x
      (GrowthToLowerboundCapacity 2x, NormalizeCapacity 1x, rehash 3x)
      ```
      
      Now:
      ```
      GrowthToLowerboundCapacity  1x
      NormalizeCapacity           1x
      bitwise |                   0x
      n == 0 && capacity_ == 0    0x
      n == 0 && size_ == 0        0x
      n == 0                      0x
      ||                          0x
      m > capacity_               1x
      overall branches            3x
      (GrowthToLowerboundCapacity 1x, NormalizeCapacity 1x, reserve 1x)
      ```
      PiperOrigin-RevId: 342714022
      
      --
      c2ab8c1e4091ff685110c81bae12e3567e0cded3 by Abseil Team <absl-team@google.com>:
      
      Remove `reset_growth_left` call, which already happen in `initialize_slots`.
      
      PiperOrigin-RevId: 342701073
      
      --
      3f41ccb70afabec8bc0dcfcca3e3ac918726bb92 by Derek Mauro <dmauro@google.com>:
      
      Use memmove instead of memcpy in situations where the source and
      destination may point to the same buffer
      
      Note that the OSS Abseil code never calls CUnescapeInternal with
      leave_nulls_scaped=true, so there is no bug in the OSS code.
      
      Fixes #844
      
      PiperOrigin-RevId: 342633781
      
      --
      57afb2c307b008b9f9daaa736b49c066e0075e39 by Abseil Team <absl-team@google.com>:
      
      Add absl::Round() for absl::Duration as a complementary to Floor, Ceil and Trunc. Rounding halfway cases away from zero as std::round() does.
      
      PiperOrigin-RevId: 342610871
      
      --
      c49754ecddb9339eff60b826dc17b3b459333bc0 by Abseil Team <absl-team@google.com>:
      
      Add absl::Round() for absl::Duration as a complementary to Floor, Ceil and Trunc. Rounding halfway cases away from zero as std::round() does.
      
      PiperOrigin-RevId: 342594847
      
      --
      b51bd29233aaee6ef241de984635356d26c93e4d by Abseil Team <absl-team@google.com>:
      
      Move `ConvertDeletedToEmptyAndFullToDeleted` to cc file.
      
      This function is cold and only used when table become polluted with deleted slots.
      So this shouldn't negatively affect performance and considered safe.
      
      This change is reducing linkage and binary size.
      
      PiperOrigin-RevId: 342319685
      
      --
      acb83c004d14e563a3b47dcfcb6c5508bee6408f by Abseil Team <absl-team@google.com>:
      
      Fix indentation in uniform_int_distribution.h.
      
      PiperOrigin-RevId: 342297575
      GitOrigin-RevId: 92811d3307196b2810bdc3c7e50ef9544db3f23b
      Change-Id: I4fbaf4aab122d5c939ae9a3ef46ee8cca3df75e6
      Abseil Team committed
    • fix build dll (#797) · 6b03bf54
      ulinzeng committed
  15. 13 Nov, 2020 1 commit
  16. 11 Nov, 2020 1 commit
    • Export of internal Abseil changes · 0453e165
      --
      90e177c9e8bdfb38eed84d2377b019353c3990f8 by Abseil Team <absl-team@google.com>:
      
      Fix typo in documentation.
      
      PiperOrigin-RevId: 341814490
      GitOrigin-RevId: 90e177c9e8bdfb38eed84d2377b019353c3990f8
      Change-Id: Ia84bf687921caedf1d8fab243c7383835d305e44
      Abseil Team committed
  17. 09 Nov, 2020 1 commit
    • Export of internal Abseil changes · a4798817
      --
      197bd3e5e315f408bdc2f7111a0652be7f47609f by Jorg Brown <jorg@google.com>:
      
      ConvertibleToStringView wastes a lot of cycles initializing a std::string
      member that it never uses.  This CL restricts ConvertibleToStringView to just
      the cases that don't nned a std::string member, and uses an additional StrSplit
      overload to catch when users pass a temporary string.
      
      This makes StrSplit() 0-30% faster depending on the use case.
      
      PiperOrigin-RevId: 341378221
      GitOrigin-RevId: 197bd3e5e315f408bdc2f7111a0652be7f47609f
      Change-Id: Id863f2a3d298ed5a086ac912afab42dc30601be5
      Abseil Team committed
  18. 05 Nov, 2020 3 commits
    • Export of internal Abseil changes · e96d4968
      --
      76c5eb1cf346a1a64e0a5e2edf032546d600075a by Andy Getzendanner <durandal@google.com>:
      
      Fix stacktrace on aarch64 architecture. Fixes #805
      
      Import of https://github.com/abseil/abseil-cpp/pull/827
      
      PiperOrigin-RevId: 340886173
      
      --
      28f48f7bcadd4681854cddb0a7736d26d7dab000 by Andy Getzendanner <durandal@google.com>:
      
      Some attribute cleanups in and around statusor:
      * mark statusor_internal::Helper::Crash ABSL_ATTRIBUTE_NORETURN
      * add ABSL_INTERNAL_UNREACHABLE to ABSL_INTERNAL_LOG when severity is FATAL
      * create ABSL_INTERNAL_UNREACHABLE to wrap __builtin_unreachable and __assume(0)
      * use ABSL_ATTRIBUTE_NONNULL instead of __builtin_unreachable in statusor_internal::PlacementNew (https://godbolt.org/z/n691fa)
      
      PiperOrigin-RevId: 340868438
      
      --
      33905d1d2d01eb6f81b04abaf24170bfebb6df09 by Andy Getzendanner <durandal@google.com>:
      
      moved deleted functions to public for better compiler errors.
      
      Import of https://github.com/abseil/abseil-cpp/pull/828
      
      PiperOrigin-RevId: 340863976
      
      --
      5e502222dfc3f5a0ef146535a9e16c743b005092 by Jorg Brown <jorg@google.com>:
      
      ConvertibleToStringView wastes a lot of cycles initializing members just to reset them immediately after. Only initialize the string storage when needed. This makes StrSplit() 0-30% faster depending on the use case.
      
      PiperOrigin-RevId: 340732039
      GitOrigin-RevId: 76c5eb1cf346a1a64e0a5e2edf032546d600075a
      Change-Id: I2ba1f717c4eaad384cd0a22694fd05f9e6a2d8fa
      Abseil Team committed
    • Fix stacktrace on aarch64 architecture. Fixes #805 (#827) · 731852f1
      * Fix stacktrace on aarch64 architecture
      
      * Tweak formatting to fit in 80 cols
      Roman Gershman committed
    • moved deleted functions to public for better compiler errors. (#828) · 2e5f2bcf
      * Update low_level_scheduling.h
      
      * Update low_level_scheduling.h
      
      * Update low_level_scheduling.h
      
      * Update low_level_scheduling.h
      Kohei Otsuka committed
  19. 03 Nov, 2020 2 commits
    • Export of internal Abseil changes · e9e9b9fc
      --
      bc21467e5507ca041dcd1162cb524d2a01fd17d6 by Abseil Team <absl-team@google.com>:
      
      Fix mistakes in license boilerplate:
      - randen_detect.cc had a space removed
      - arg_test.cc had a truncated header
      
      PiperOrigin-RevId: 340484448
      GitOrigin-RevId: bc21467e5507ca041dcd1162cb524d2a01fd17d6
      Change-Id: I654080c9c84f28017384a3f30bcb17d7cf43b881
      Abseil Team committed
    • Export of internal Abseil changes · b8e890f9
      --
      1ef58d4aefffb2f90a38a89e26057c1e484a3b4b by Abseil Team <absl-team@google.com>:
      
      Fixed typo
      
      PiperOrigin-RevId: 340342194
      GitOrigin-RevId: 1ef58d4aefffb2f90a38a89e26057c1e484a3b4b
      Change-Id: I75b601f7c2b7737b4b34673aafbcd30cdfd4a4e8
      Abseil Team committed
  20. 30 Oct, 2020 1 commit
    • Export of internal Abseil changes · c9894d1d
      --
      dce086fa6e045bed433c664f95a6581b7ffb2d98 by Abseil Team <absl-team@google.com>:
      
      fix spelling error "fulfil" -> "fulfill"
      
      PiperOrigin-RevId: 339898016
      
      --
      10faa4546b69d8a07f949bc03dd9671231232ad0 by Abseil Team <absl-team@google.com>:
      
      Clarify comments on variant::emplace
      
      PiperOrigin-RevId: 339897241
      
      --
      0d02261a7a8b9c11e3a4e76dfedf4d95590e2419 by Derek Mauro <dmauro@google.com>:
      
      Use thread_local for ThreadIdentity storage on Apple platforms
      that support it
      
      PiperOrigin-RevId: 339698124
      GitOrigin-RevId: dce086fa6e045bed433c664f95a6581b7ffb2d98
      Change-Id: I8c668b33c805fd5231ceb285652c80f312e5a33a
      Abseil Team committed
  21. 29 Oct, 2020 1 commit
    • Export of internal Abseil changes · e9b9e38f
      --
      0e3e8be75b3ab243991c9b28a27623d86e4511e6 by Abseil Team <absl-team@google.com>:
      
      Add constructor overloads with signature (Mutex*, const Condition&) to MutexLock, ReaderMutexLock, WriterMutexLock, ReleasableMutexLock, MaybeMutexLock.
      
      These overloads call Mutex::LockWhen, Mutex::ReaderLockWhen, Mutex::WriterLockWhen.
      
      Using the guard classes with these new constructors replaces both manual LockWhen/Unlock sequences and the less-efficient, but popular current pattern of "absl::MutexLock lock(&mu); mu.Await(cond);".
      
      PiperOrigin-RevId: 339480213
      
      --
      ff999bc08360f5bd95557147c97b0e7b200fe3a8 by Jorg Brown <jorg@google.com>:
      
      ConvertibleToStringView wastes a lot of cycles initializing members just to reset them immediately after. Only initialize the string storage when needed. This makes StrSplit() 0-30% faster depending on the use case.
      
      PiperOrigin-RevId: 339479046
      
      --
      0a773bfb8bc141433a41388731357001fdb34881 by Derek Mauro <dmauro@google.com>:
      
      Remove the compiler upgrade fiasco inducing -Weverything -Werror.
      Switch to a curated set of warnings that may be expanded in the future.
      
      PiperOrigin-RevId: 339472677
      
      --
      eab54e3e11b126283d33f64c914b200038d215a4 by Abseil Team <absl-team@google.com>:
      
      Change execute permission to match presence of the shebang
      
      remove execute permission for cmake_common.sh
      add execute permission for conanfile.py
      
      PiperOrigin-RevId: 339453550
      
      --
      7f9726fb605ed20f17f3e221dbce0df03d6904c6 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 339385761
      
      --
      f3210dbee3e8a719cf31706963721722203f90e0 by Derek Mauro <dmauro@google.com>:
      
      Switch clang compiler detection to use to the Bazel supported mechanism
      
      When Abseil launched, we relied on the compiler string "llvm",
      which we manually set when we used the automatic crosstool generation
      by using the environment variable BAZEL_COMPILER. Today, Bazel detects
      clang and automatically sets the compiler string to "clang".
      
      Fixes #732
      
      PiperOrigin-RevId: 339360688
      
      --
      413211f59e5e671bf5774efa63ab4df185c74248 by Abseil Team <absl-team@google.com>:
      
      Minor comment clarifications and cosmetic tweaks.
      
      PiperOrigin-RevId: 339344301
      GitOrigin-RevId: 0e3e8be75b3ab243991c9b28a27623d86e4511e6
      Change-Id: Ia5b7224cd3d274c79ec7f5514fef63014f458f0f
      Abseil Team committed
  22. 27 Oct, 2020 1 commit
    • Export of internal Abseil changes · 962b0675
      --
      e5b45b15c19e85aaa33430ac2bd45fcc2e52dad5 by Greg Falcon <gfalcon@google.com>:
      
      Add extra tests exercising ShiftLeft() at boundary conditions, to guard against logic errors in our memory bounds checking.
      
      PiperOrigin-RevId: 339326030
      
      --
      cdfde78815ca016a57f90f53d08c3335bd355f30 by Evan Brown <ezb@google.com>:
      
      Fix a bug in b-tree erase() and count() in which we weren't accounting for cases where the comparator is heterogeneous and has different equivalence classes for different lookup types.
      
      Optimize equal_range to avoid comparisons when possible.
      
      PiperOrigin-RevId: 339270230
      
      --
      b4aa337c156fa91f74f25c676c679ae146311968 by Derek Mauro <dmauro@google.com>:
      
      Fix execution of the cmake build scripts when not on Kokoro
      
      PiperOrigin-RevId: 339131253
      
      --
      fa3d1f602f711be72fde6b5f29d6341b9b5f8a2c by Derek Mauro <dmauro@google.com>:
      
      Update Docker container used for Alpine Linux testing
      
      PiperOrigin-RevId: 339074246
      GitOrigin-RevId: e5b45b15c19e85aaa33430ac2bd45fcc2e52dad5
      Change-Id: I2cc3adc4de3493203c8a944aedee40efa54af0c0
      Abseil Team committed
  23. 26 Oct, 2020 1 commit
    • Export of internal Abseil changes · 5bf048b8
      --
      730bb88bee556aa11fa19aa33e1434cb6fa78985 by Evan Brown <ezb@google.com>:
      
      Support missing allocator-related constructors in b-tree. See [reference](https://en.cppreference.com/w/cpp/container/set/set).
      
      Also use allocator_traits::select_on_container_copy_construction() to get allocator for copy construction.
      
      PiperOrigin-RevId: 339058322
      
      --
      b6cc121689ae3e452d1db2d66122cb198d25142b by Derek Mauro <dmauro@google.com>:
      
      Fix more sign-compare warnings
      
      PiperOrigin-RevId: 339057920
      
      --
      0e2c62da1dcaf6529abab952bdcc96c6de2d9506 by Abseil Team <absl-team@google.com>:
      
      Add missing <limits> include
      
      PiperOrigin-RevId: 339054753
      
      --
      d5a9ec2d1e40fe6359e720942e4955009ee415ec by Derek Mauro <dmauro@google.com>:
      
      Stop disabling sign-compare warnings for non-test targets.
      Our users complain about these.
      
      This does not catch issues in header-only libraries (like btree.h)
      but we may work on those in the future
      
      PiperOrigin-RevId: 338967089
      
      --
      0c062c542a4c61ea0f65d25811827c0858e3adde by Abseil Team <absl-team@google.com>:
      
      Improve cache-locality for ThreadIdentity and PerThreadSynch.
      
      This is a change based on an observation in RPC benchmarks that shows
      significant cycles being spent in waking up a thread, 99.8% of which
      was on cache misses. Investigating this a bit more, it turns out to
      be due to sharing the cache line with the waiter state.
      
      To fix this issue, the following changes are introduced:
      - Reorder fields in PerThreadSync so that it fits in a single cache line
        The size of this structure was 80 bytes before this change.
        Note: Manually inspected all booleans to make sure they are not modified by
              multiple threads concurrently.
      
      PiperOrigin-RevId: 338852058
      
      --
      a90d6f2b2346385017e32dd8ae1b5ca691a5863f by Derek Mauro <dmauro@google.com>:
      
      Delete GCC 4.9 test script. It is no longer supported
      
      PiperOrigin-RevId: 338779452
      
      --
      7274008d4757e88869110be9db39d03d911ae2b5 by Abseil Team <absl-team@google.com>:
      
      Fix the usage example in which SetFlag should take a pointer.
      
      PiperOrigin-RevId: 338744529
      GitOrigin-RevId: 730bb88bee556aa11fa19aa33e1434cb6fa78985
      Change-Id: Iff99594c4022e60e482a392d334b376c7ae8883e
      Abseil Team committed
  24. 23 Oct, 2020 1 commit
    • Export of internal Abseil changes · 1e3d25b2
      --
      017c3924d21132085bc20c9be0ae469bfbf2c56c by Gennadiy Rozental <rogeeff@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 338723934
      
      --
      8b08c23d7b05232e283b1388cee3eb5bebc2d9c4 by Derek Mauro <dmauro@google.com>:
      
      Add script to test GCC floor (the minimum version of GCC we support,
      currently the GCC 5 series)
      
      PiperOrigin-RevId: 338708581
      
      --
      afa440ac7c843126b4f99b89ebc071dda1d85a4d by Abseil Team <absl-team@google.com>:
      
      Fix typo in documentation of StatusOr::value_or() ('of' -> 'if').
      
      PiperOrigin-RevId: 338690089
      
      --
      97d5008865327fc36b942b96de0d0cacfb909df5 by Derek Mauro <dmauro@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 338568224
      
      --
      da5e09a7fedb3217329465d9206b7cbc6677176b by Abseil Team <absl-team@google.com>:
      
      Add `absl_btree_prefer_linear_node_search`
      
      Allow keys of `btree_set`, `btree_map`, `btree_multiset`, and `btree_multimap`
      to opt-in to linear search (instead of binary search).  Linear search was
      used previously for arithmetic types with `key_compare` of `std::greater`
      or `std::less`.
      
      For example, this would be useful for key types that wrap an integer
      and define their own cheap `operator<()`.
      
      ```
       class K {
        public:
         using absl_btree_prefer_linear_node_search = std::true_type;
         ...
        private:
         friend bool operator<(K a, K b) { return a.k_ < b.k_; }
         int k_;
       };
      
       absl::btree_map<K, V> m;  // Uses linear search
       assert((absl::btree_map<K, V>::testonly_uses_linear_node_search()));
      ```
      
      PiperOrigin-RevId: 338476553
      
      --
      c56ead7ce6b0a5ad32e3a42904c686448a69451e by Gennadiy Rozental <rogeeff@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 338419417
      GitOrigin-RevId: 017c3924d21132085bc20c9be0ae469bfbf2c56c
      Change-Id: I1199f3ae917280a3ef20ccc6038abbe34d96ec0b
      Abseil Team committed
  25. 22 Oct, 2020 1 commit
    • Export of internal Abseil changes · eb317a70
      --
      d09230db053c544c2dc7fd7d95d1ebe4302071e9 by Abseil Team <absl-team@google.com>:
      
      Move testonly_uses_linear_node_search to BtreeNodePeer
      
      PiperOrigin-RevId: 338210523
      
      --
      7b11c945dbba7a354103c194877eba240f7f0cbc by Derek Mauro <dmauro@google.com>:
      
      Allow pinning to a GoogleTest commit to make the build reproducible
      Allow using a cached copy of the commit to avoid depending on GitHub
      
      PiperOrigin-RevId: 338115715
      
      --
      8414f496c570a6398744da8324e158b39a2e3d92 by Andy Getzendanner <durandal@google.com>:
      
      Generate a pkg-config file per absl_cc_library.
      
      PiperOrigin-RevId: 337986219
      GitOrigin-RevId: d09230db053c544c2dc7fd7d95d1ebe4302071e9
      Change-Id: Iae398ab8ad5c0c6833abd01aa5198315f5b6fa99
      Abseil Team committed
  26. 19 Oct, 2020 1 commit
    • Export of internal Abseil changes · 4b915e70
      --
      77c85460dc3c46593b231c5161ac55273bb0c7ef by Abseil Team <absl-team@google.com>:
      
      Support int128 in SimpleAtoi.
      
      PiperOrigin-RevId: 337946262
      
      --
      0be53049ccf8309650e4e22f23b290e5f75ee828 by Gennadiy Rozental <rogeeff@google.com>:
      
      Update build scripts to use --mount instead of --volume to mount the host data into a container.
      
      This is somewhat more verbose, but more readable and flexible. More importantly this is what docker documentation is recomending to use now.
      
      PiperOrigin-RevId: 337898761
      
      --
      3bc877f1679fdf61ecbf4365287a0403cfc9b53e by Samuel Benzaquen <sbenza@google.com>:
      
      Add Cord constructor for constinit instances.
      
      PiperOrigin-RevId: 337871148
      
      --
      8b87701892b9c325e78ad4e8e4f16b785a744622 by Chris Kennelly <ckennelly@google.com>:
      
      Use the address of kSeed, rather than its value.
      
      We initialize kSeed with &kSeed, so these are equivalent, but kSeed requires a
      load from memory while &kSeed can be formed as a RIP-relative lea.
      
      PiperOrigin-RevId: 337868415
      GitOrigin-RevId: 77c85460dc3c46593b231c5161ac55273bb0c7ef
      Change-Id: I3d06c18a123f1be29dad5801e8625952dc41cd95
      Abseil Team committed
  27. 17 Oct, 2020 1 commit
    • Export of internal Abseil changes · 8f1c34a7
      --
      498800727a35cd00c199e653c2a8e34dc3322b54 by Derek Mauro <dmauro@google.com>:
      
      Fixes CMake dependency issues and adds `-Wl,--no-undefined` to avoid
      these issues in the future.
      
      Fixes #817
      
      PiperOrigin-RevId: 337615527
      
      --
      a14b214a50a095d0c10c9d7a9e98ab1bd3b3976b by Samuel Benzaquen <sbenza@google.com>:
      
      Minor compatibility fix for a version of gcc 5.5
      
      PiperOrigin-RevId: 337561733
      
      --
      89a65c211e626bd30c046f79d0df9cc4a7d7c792 by Gennadiy Rozental <rogeeff@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 337436891
      
      --
      d30c05c850ead352dad5ea0dc32942feb2942986 by Abseil Team <absl-team@google.com>:
      
      Place STL exception functions underneath the ABSL_HAVE_EXCEPTIONS #ifdef.
      
      The STL exception functions are not present in the Android NDK, so Abseil fails to build as part of ANGLE in AOSP.   This CL places the various STL exception throwing functions inside #ifdef ABSL_HAVE_EXCEPTIONS blocks so they are removed during Android builds since neither ANGLE nor the NDK support exceptions by default.
      
      PiperOrigin-RevId: 337142938
      GitOrigin-RevId: 498800727a35cd00c199e653c2a8e34dc3322b54
      Change-Id: I17b02daaea145d1a8fdbfd098f0fa99e65c86d2d
      Abseil Team committed
  28. 14 Oct, 2020 1 commit
    • Export of internal Abseil changes · 60d00a58
      --
      4ee535c37f92cd45b8c9aa009e5c833265b3a0bb by Samuel Benzaquen <sbenza@google.com>:
      
      Test and fix `insert(hint, node)`
      
      PiperOrigin-RevId: 337122891
      
      --
      7b760ced555756fecbad702fedb697424dd65167 by Abseil Team <absl-team@google.com>:
      
      Changed the minimum version of iOS and OSX for Abseil Podspec.
      
      PiperOrigin-RevId: 336926756
      GitOrigin-RevId: 4ee535c37f92cd45b8c9aa009e5c833265b3a0bb
      Change-Id: I94e70f3342570c83b9965ca458a3f02eaa3efc0d
      Abseil Team committed
  29. 13 Oct, 2020 1 commit
    • Export of internal Abseil changes · f3f785ab
      --
      5bd06440e700fefd6eadd577d7d69c51f15c63e0 by Abseil Team <absl-team@google.com>:
      
      Add if-guard to futex.h so that it doesn't fail to parse for unsupported platforms
      
      PiperOrigin-RevId: 336880375
      
      --
      8b3d3bb4ad123fc9f648f0e397b2eddd88dc0c02 by Derek Mauro <dmauro@google.com>:
      
      Fix race in AddressIsReadable file descriptors using stronger memory ordering
      
      PiperOrigin-RevId: 336874423
      
      --
      1d8bf23747009cca29129b80c2793bc91443dd55 by Derek Mauro <dmauro@google.com>:
      
      Avoid -Wundef warnings on ABSL_HAVE_THREAD_LOCAL
      
      PiperOrigin-RevId: 336792406
      
      --
      562a480f029c600c1d3b1428da6a9b09e8952a74 by Derek Mauro <dmauro@google.com>:
      
      Fix preprocessor condition for symbols __tsan_mutex_read_lock and
      __tsan_mutex_try_lock
      
      PiperOrigin-RevId: 336732571
      GitOrigin-RevId: 5bd06440e700fefd6eadd577d7d69c51f15c63e0
      Change-Id: Id9bb331baec74b9d80c7b228959a7739bc30e694
      Abseil Team committed
  30. 12 Oct, 2020 2 commits
    • Export of internal Abseil changes · 4b2fbb4a
      --
      a5af5874c1c5cc02bd2a748d455321f82b6f2a93 by Andy Getzendanner <durandal@google.com>:
      
      fix compile fails with asan and -Wredundant-decls
      
      Import of https://github.com/abseil/abseil-cpp/pull/801
      
      PiperOrigin-RevId: 336693223
      
      --
      ed9df42ab2b742386c6692c2bed015374c919d9c by Derek Mauro <dmauro@google.com>:
      
      Fix integer conversion warning
      
      Fixes #814
      
      PiperOrigin-RevId: 336651814
      
      --
      0ab4c23884e72dce17b67c1eb520f9dbb802565d by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 336585378
      
      --
      eba0e3dccd52a6e91bcff84075bef0affc650b74 by Matt Kulukundis <kfm@google.com>:
      
      Add bitset operations to Futex helper.
      
      PiperOrigin-RevId: 336409368
      
      --
      8b0709a8b4500bf5f0af4b602d76a298d81645e8 by Abseil Team <absl-team@google.com>:
      
      Fix code indentation in a comment.
      
      PiperOrigin-RevId: 336368167
      
      --
      bc3961c87a7e7760c10319a5b0349c279f7ae3ad by Samuel Benzaquen <sbenza@google.com>:
      
      Improve performance of the registry:
       - Reduce contention
       - Reduce memory usage for each flag by `6*sizeof(void*)`.
       - Replace one immortal allocation per-flag with a single one for all the flags
       - Slightly improve single-threaded performance by avoiding the std::map indirections.
      
      PiperOrigin-RevId: 336365904
      
      --
      264ad9f28f935aad8b6b1437f8bf804fa9104346 by Abseil Team <absl-team@google.com>:
      
      Fix typo in comment on absl::Condition.
      
      PiperOrigin-RevId: 336311680
      
      --
      b5b808a8c75ca0df7b09eff9a423ec171d80f771 by Derek Mauro <dmauro@google.com>:
      
      Add missing Apache license headers
      
      PiperOrigin-RevId: 336294980
      
      --
      89446c3a4793df8b95060385cf3e219357c3db1d by Andy Soffer <asoffer@google.com>:
      
      Internal changes
      
      PiperOrigin-RevId: 336287465
      
      --
      57c8be4e294881bc79a6a44b8e4bf7ecbb19b9b9 by Matt Kulukundis <kfm@google.com>:
      
      Extract Futex from an implementation detail of Wait to a private interface.
      
      PiperOrigin-RevId: 336123209
      GitOrigin-RevId: a5af5874c1c5cc02bd2a748d455321f82b6f2a93
      Change-Id: Ie5a0ebe28e571814e3e11d4c05ca308523ccf311
      Abseil Team committed
    • fix compile fails with asan and -Wredundant-decls (#801) · e493d6ac
      If compile with asan, unaligned_access.h redeclares the same sanitizer
      function with sanitizer/common_interface_defs.h.
      
      This patch removes these declarations and includes sanitizer header
      file to avoid this warning.
      hellowangsai committed
  31. 08 Oct, 2020 1 commit
    • Export of internal Abseil changes · e63a5a61
      --
      430bda42820b619b346201bc42769d014228e825 by Gennadiy Rozental <rogeeff@google.com>:
      
      Update version for CMake and Bazel
      
      PiperOrigin-RevId: 336089889
      
      --
      0a36f989acb0e6f7d2f04039c600b0934c44ffed by Abseil Team <absl-team@google.com>:
      
      changes how non-equality is evaluated
      
      absl::c_mismatch is based on std::mismatch, which requires that its
      iterators' reference types meet the requirements of
      Cpp17EqualityComparable[1]. The previous CL mistakenly wrote
      absl::c_mismatch using `*first1 != *first2` which assumes that the
      reference types model std::equality_comparable[2] (which was only added
      in C++20).
      
      This CL reverts that behaviour.
      
      [0]: http://wg21.link/mismatch
      [1]: http://wg21.link/utility.arg.requirements#tab:cpp17.equalitycomparable
      [2]: http://wg21.link/concept.equalitycomparable
      
      PiperOrigin-RevId: 335897465
      
      --
      7cb902f079838081a15f8b72e0cef46beab653f2 by Derek Mauro <dmauro@google.com>:
      
      Disable a raw_hash_map_allocator.cc test that doesn't build
      due to a noexcept bug in gcc 5.4 and 5.5
      
      PiperOrigin-RevId: 335876843
      GitOrigin-RevId: 430bda42820b619b346201bc42769d014228e825
      Change-Id: I94d5b8e03e0a91d81923aa831f6f63c625e0b836
      Abseil Team committed
  32. 07 Oct, 2020 1 commit
    • Export of internal Abseil changes · c678d6c6
      --
      9b45aa0bd58cd9e8478abffafa792e1e53feed08 by Abseil Team <absl-team@google.com>:
      
      Document that command line flag help for a flag will include the default value.
      Cleaned up the doc for undefok.
      
      PiperOrigin-RevId: 335701801
      GitOrigin-RevId: 9b45aa0bd58cd9e8478abffafa792e1e53feed08
      Change-Id: I435e240bd10bf6a232a95f220cab83c41701ecb6
      Abseil Team committed
  33. 06 Oct, 2020 1 commit
    • Export of internal Abseil changes · 4b4f9aae
      --
      6e808cee774d9f4fd315da432e39442ebb738429 by Abseil Team <absl-team@google.com>:
      
      Fix a couple of typos.
      
      PiperOrigin-RevId: 335422012
      GitOrigin-RevId: 6e808cee774d9f4fd315da432e39442ebb738429
      Change-Id: I8deec4caa0b5e1219d758ba1a2d7b138b9915ed4
      Abseil Team committed
  34. 03 Oct, 2020 1 commit
    • Export of internal Abseil changes · 887d0eee
      --
      d6e582e21ceec768aa72e857c10ba80cad2f2202 by Abseil Team <absl-team@google.com>:
      
      adds bounds-checking for the second range in absl::c_mismatch
      
      The API for the two-range absl::c_mismatch is misleading as it
      doesn't check the bounds of the second range against the first one.
      This commit cleans up the internals of the overload to make sure that
      buggy calls are not exploitable; non-buggy calls are unaffected.
      
      This is consistent with both C++14's two-range std::mismatch and
      C++20's std::ranges::mismatch (see http://wg21.link/mismatch).
      
      PiperOrigin-RevId: 335050236
      GitOrigin-RevId: d6e582e21ceec768aa72e857c10ba80cad2f2202
      Change-Id: I77e0d030adf35c09069ceab5ea67efdf09377390
      Abseil Team committed
  35. 02 Oct, 2020 1 commit
    • Export of internal Abseil changes · b978fc02
      --
      ef529b5fc5d72de02c145ae6643af0465090252b by Abseil Team <absl-team@google.com>:
      
      Fix typo in comment (foo -> i).
      
      PiperOrigin-RevId: 334894645
      
      --
      18aab6f6c71e6abd83d467dbf8868df24100e710 by Abseil Team <absl-team@google.com>:
      
      Fix -Wno-sign-compare error
      
      PiperOrigin-RevId: 334837327
      GitOrigin-RevId: ef529b5fc5d72de02c145ae6643af0465090252b
      Change-Id: Ieeedf1a4fd458eb38ffbda0ca77a47021b510043
      Abseil Team committed