1. 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
  2. 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
  3. 13 Nov, 2020 1 commit
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 01 Oct, 2020 1 commit
    • Export of internal Abseil changes · 093cc276
      --
      0674e1ab1c1f71c5362b9e2337333e67f7ed865d by Andy Getzendanner <durandal@google.com>:
      
      btree: fix sign-compare warnings
      
      Import of https://github.com/abseil/abseil-cpp/pull/800
      
      PiperOrigin-RevId: 334668397
      
      --
      3b1f289781e4c68e244a7534f95eb0719ca1e8e1 by Abseil Team <absl-team@google.com>:
      
      Avoid iterating past the end of either container in absl::c_transform.
      
      The API for the two-range absl::c_transform 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 C++20 ranges (see
      http://wg21.link/alg.transform).
      
      PiperOrigin-RevId: 334629614
      
      --
      1184d9c2e7031860638b709c489cbd1b0d861040 by Abseil Team <absl-team@google.com>:
      
      Avoid iterating past the end of either container in absl::c_swap_ranges.
      
      The API for absl::c_swap_ranges 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 C++20 ranges (see http://wg21.link/alg.swap).
      
      PiperOrigin-RevId: 334618454
      GitOrigin-RevId: 0674e1ab1c1f71c5362b9e2337333e67f7ed865d
      Change-Id: Ifac0e99b1209bb7589bf74215b1d354dd30eabaa
      Abseil Team committed
  25. 30 Sep, 2020 1 commit
  26. 29 Sep, 2020 2 commits
    • Export of internal Abseil changes · 1fd58b69
      --
      dad7313f7e8c36c35fc213ce5110100595f90990 by Andy Getzendanner <durandal@google.com>:
      
      Fix log_severity.h header guard to match path.
      
      PiperOrigin-RevId: 334439123
      
      --
      8a58aa0f4171219d38fb49a2e008e249f86de4cb by Abseil Team <absl-team@google.com>:
      
      Minor comment cleanup
      
      PiperOrigin-RevId: 334409054
      
      --
      a1bc324e53c358b874f99b3f5624658fff99453e by Evan Brown <ezb@google.com>:
      
      Cleanup in btree.h:
      - Combine internal_locate_impls and update comments.
      - Avoid use of auto with SearchResult.
      - Change one iterator reference to be stored by value (copy is cheap).
      
      PiperOrigin-RevId: 334396951
      GitOrigin-RevId: dad7313f7e8c36c35fc213ce5110100595f90990
      Change-Id: I79862795abd3169587f5bafe0e5369bdde90c1e1
      Abseil Team committed
    • Export of internal Abseil changes · d1de75bf
      --
      f50d25c8f8491ef7031cbbcad78edd15f98c2bd1 by Abseil Team <absl-team@google.com>:
      
      Add myriad2 to HAVE_MMAP
      Remove mutex_nonprod and associated defines.
      
      PiperOrigin-RevId: 333759830
      
      --
      25ef4c577ea983aa3fcd6cfe2af6cdc62a06f520 by Samuel Benzaquen <sbenza@google.com>:
      
      Internal refactor.
      Represent the data with a union to allow for better constexpr support in the future.
      
      PiperOrigin-RevId: 333756733
      GitOrigin-RevId: f50d25c8f8491ef7031cbbcad78edd15f98c2bd1
      Change-Id: Ieecd2c47cb20de638726eb3f9fc2e5682d05dcca
      Abseil Team committed
  27. 25 Sep, 2020 1 commit
    • Export of internal Abseil changes · cad3f30b
      --
      1d4582ea8b9f38bef580d1998ebeb56adca7d3fb by Abseil Team <absl-team@google.com>:
      
      Used StorageT alias to unify getters of CompressedTuple
      
      PiperOrigin-RevId: 333572002
      
      --
      a630f1ef375a621dd89e6908cc6980ba81448331 by Derek Mauro <dmauro@google.com>:
      
      Silence -Wrange-loop-analysis warnings
      
      These warnings are likely incorrect for small POD objects, and clang
      fixed this with https://reviews.llvm.org/D72212, but Xcode 12 enabled
      this buggy warning by default. This fixes this problem for these users.
      
      As a reminder, [we still recommend passing string_view by value for
      function parameters](https://abseil.io/tips/1) as it generates less
      code.
      
      Fixes #787
      
      PiperOrigin-RevId: 333536667
      GitOrigin-RevId: 1d4582ea8b9f38bef580d1998ebeb56adca7d3fb
      Change-Id: Ib17aa296f48f3f0fda566460a302979f5adf4195
      Abseil Team committed
  28. 23 Sep, 2020 2 commits
    • Export of internal Abseil changes · 9927a098
      --
      bddfb8bae4e569884bf8749f5368e536562f0682 by Samuel Benzaquen <sbenza@google.com>:
      
      Forward the Status.
      
      PiperOrigin-RevId: 333159251
      
      --
      461640476dab1726eba8d26a0c8012b5a35ba0b1 by Evan Brown <ezb@google.com>:
      
      Avoid relying on mutable b-tree set iterators in merge(). Mutable set iterators is an API difference from std::set that we want to get rid of.
      
      Also remove a superfluous `public` member specification in btree_container.
      
      PiperOrigin-RevId: 333101335
      
      --
      96cf8ac6946840be17da445739c950fd237159f4 by Abseil Team <absl-team@google.com>:
      
      Explicitly mention that FormatDuration deviates from Go for the zero duration
      
      PiperOrigin-RevId: 333094962
      
      --
      83389040371436aab4e952211e98ffa98e24fd94 by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 332862771
      GitOrigin-RevId: bddfb8bae4e569884bf8749f5368e536562f0682
      Change-Id: I4a47043ddbad6e700380614c75566c09d4943103
      Abseil Team committed
    • Added missing asserts for seq.index() < capacity_ and unified their usage based… · 7680a5f8
      Added missing asserts for seq.index() < capacity_ and unified their usage based on has_element(). (#781)
      
      * Added missing asserts for seq.index() < capacity_ and unified their usage based on its implemention in has_element().
      
      * Removed an accidentaly added assert.
      Tomas Trebicky committed
  29. 20 Sep, 2020 1 commit
    • Export of internal Abseil changes · d3614de6
      --
      1829e203300191671abd4b478ca189019e6f88b1 by Abseil Team <absl-team@google.com>:
      
      Don't return true from Demangle() when we didn't actually produce demangled output.
      
      PiperOrigin-RevId: 332544020
      
      --
      239b617bd8322cfda69d0dcdd3d78499ed61206d by Abseil Team <absl-team@google.com>:
      
      Minor documentation fix.
      
      PiperOrigin-RevId: 332517877
      
      --
      d566c156619bbdceaf6e84bd0d3aa575d5e790f8 by Gennadiy Rozental <rogeeff@google.com>:
      
      Added missing asserts for seq.index() < capacity_ and unified their usage based on has_element().
      
      Import of https://github.com/abseil/abseil-cpp/pull/781
      
      PiperOrigin-RevId: 332229369
      GitOrigin-RevId: 1829e203300191671abd4b478ca189019e6f88b1
      Change-Id: I5bb1f713497fef54a7abaf2020be91cb32e87b93
      Abseil Team committed
  30. 17 Sep, 2020 1 commit
    • Export of internal Abseil changes · 20feb1cd
      --
      9214ee309fa224a43eb1621bcf826ab9c86a4cd7 by Abseil Team <absl-team@google.com>:
      
      Don't keep constructing/destructing `random_device`.
      
      It causes an open/close pair on /dev/urandom.
      
      This is somewhat expensive on Emscripten, and unnecessary since it is not using
      the value anyway.
      
      PiperOrigin-RevId: 332055452
      
      --
      4931ab77995b946f3ffba8036e0a00927b0d47e6 by Abseil Team <absl-team@google.com>:
      
      TYPO: Stess->Stress
      
      PiperOrigin-RevId: 332010526
      
      --
      95ae1dde505f74dc7fd68447bf27718db223688e by Gennadiy Rozental <rogeeff@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 332010411
      GitOrigin-RevId: 9214ee309fa224a43eb1621bcf826ab9c86a4cd7
      Change-Id: I23c5d6aa5aa488370e1b48f37366d3d99448e7ec
      Abseil Team committed
  31. 16 Sep, 2020 1 commit
    • Export of internal Abseil changes · c1ae0a49
      --
      14d42e9d0b8aed0c0f00900cd6fd790908930de5 by Gennadiy Rozental <rogeeff@google.com>:
      
      Fix gcc ci build command for LTS
      
      PiperOrigin-RevId: 331543198
      
      --
      f1655ec91a4ad656dd1100cf2e134d08941278ca by Abseil Team <absl-team@google.com>:
      
      Consistently document size_type return value of all map/set types.
      
      PiperOrigin-RevId: 331528359
      GitOrigin-RevId: 14d42e9d0b8aed0c0f00900cd6fd790908930de5
      Change-Id: I33ebba4acb3e5918e4e112f03c81aba529dcd0b4
      Abseil Team committed
  32. 12 Sep, 2020 1 commit
    • Export of internal Abseil changes · 6af91b35
      --
      0e6d5abe305df4e943e0bc0256c67afc00956691 by Abseil Team <absl-team@google.com>:
      
      Ensure that Hashtablez does not pull in absl::Mutex dependency when turned off at compile time.
      
      PiperOrigin-RevId: 331142625
      GitOrigin-RevId: 0e6d5abe305df4e943e0bc0256c67afc00956691
      Change-Id: I984d6d3436e4825a7b20758c45b3142c0f3bb45a
      Abseil Team committed
  33. 10 Sep, 2020 1 commit
    • Export of internal Abseil changes · f2c9c663
      --
      cfb567ed02096320663d882d2c0c2fb7db7af1e4 by Derek Mauro <dmauro@google.com>:
      
      Upgrade to GCC 10.2.0, Bazel 3.5.0, and CMake 3.18.2
      
      PiperOrigin-RevId: 330847323
      
      --
      5dcb9ce14d92315163079366a91c43cbd5184ea4 by Evan Brown <ezb@google.com>:
      
      Optimize equal_range() by avoiding the call to upper_bound() when possible.
      
      We need to support heterogeneous comparators that have different behavior when comparing key_type to non-key_type. See the new test.
      
      Also update the comment for `key_compare_to_adapter`.
      
      PiperOrigin-RevId: 330794444
      
      --
      744405dbda5513527d74094a5c3b9db1e0927693 by Gennadiy Rozental <rogeeff@google.com>:
      
      Introduce trampoline for friend access to avoid friending routines and classes from different namespace.
      
      PiperOrigin-RevId: 330773156
      
      --
      a195d1226576f8a7bb5671f3e42d1021b827fad9 by Abseil Team <absl-team@google.com>:
      
      Fix an incorrect version number test for std::variant availability in tvOs.
      
      PiperOrigin-RevId: 330759480
      
      --
      58b02eb9159a577953676d9928cb26b30068b847 by Derek Mauro <dmauro@google.com>:
      
      Use c++20 instead of c++2a now that it is supported by GCC
      
      PiperOrigin-RevId: 330559797
      GitOrigin-RevId: cfb567ed02096320663d882d2c0c2fb7db7af1e4
      Change-Id: I0e0d68409c95da42f5609920155ba5694ade8df0
      Abseil Team committed