1. 07 Feb, 2022 1 commit
    • Export of internal Abseil changes · 73316fc3
      --
      262f6992ee0553782531ad58dd7d8bcd6d0b7bb7 by Martijn Vels <mvels@google.com>:
      
      Remove CordRepConcat uses in tests and CONCAT constants.
      
      This change removes the creation and uses of CordRepConcat in unit tests, and replaces some remaining CONCAT constants with IsConcat() to make subsequent teardown of CordrepConcat uses easier.
      
      PiperOrigin-RevId: 426932694
      
      --
      fd590f7e849ba8c5395c589ed3f762cd00affdc8 by Abseil Team <absl-team@google.com>:
      
      Replace NULL and 0 with nullptr.
      
      PiperOrigin-RevId: 426912932
      
      --
      183e5babc478748023f732a1608745a2a544c996 by Abseil Team <absl-team@google.com>:
      
      Replace "span of time" with "amount of time" in the first comment line, to make it clearer that we're not talking about a duration that starts at a specific time.
      
      PiperOrigin-RevId: 426691794
      
      --
      e28ca760f21505f1be55c7af336eb61d2f1b7fea by Martijn Vels <mvels@google.com>:
      
      Add extra assertions on CordRepSubstring child nodes
      
      PiperOrigin-RevId: 426369104
      GitOrigin-RevId: 262f6992ee0553782531ad58dd7d8bcd6d0b7bb7
      Change-Id: I7ffdaa2dc999a2117944c9abdb1565b6b6f48b59
      Abseil Team committed
  2. 03 Feb, 2022 1 commit
    • Export of internal Abseil changes · 36db0e4b
      --
      4409b08e103d6e7041d18a4d431290cafe3650cf by Derek Mauro <dmauro@google.com>:
      
      Workaround NVCC compile error in StringConstant
      
      Based on a patch in TensorFlow:
      https://github.com/tensorflow/tensorflow/blob/da83132aba8d2b6a3c3a9b2e662868eb24f4dd1e/third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch#L262-L282
      
      Fixes #1105
      
      PiperOrigin-RevId: 426156316
      
      --
      25db16567ffc5400dfaa30b567398ede84729687 by Abseil Team <absl-team@google.com>:
      
      Only look for Elf64_Auxinfo on 64-bit FreeBSD.
      
      PiperOrigin-RevId: 426132251
      
      --
      2e73c3d9df59b2b769d2b8dca97f0ca5c512c72a by Abseil Team <absl-team@google.com>:
      
      Add a problem hint to the error message when dereferencing the end() iterator.
      
      PiperOrigin-RevId: 426120394
      
      --
      6befbf89c47963656b9e8151166ab4c8446d4785 by Martijn Vels <mvels@google.com>:
      
      Make Cord Btree the default and remove opt out machinery
      
      This change makes btree the default Cord format and removes the machinery to opt out. Subsequent changes will remove the 'true' constant evaluation and effectively cleanup all old code and references to CONCAT.
      
      PiperOrigin-RevId: 426119728
      
      --
      f6a0a664029d61811d90bd484f4eefa0400b5dd4 by Abseil Team <absl-team@google.com>:
      
      Mark Notification::HasBeenNotified as ABSL_MUST_USE_RESULT
      
      PiperOrigin-RevId: 425927033
      GitOrigin-RevId: 4409b08e103d6e7041d18a4d431290cafe3650cf
      Change-Id: I86f1052c63c13c6486baf4108de2554f162f9c40
      Abseil Team committed
  3. 01 Feb, 2022 1 commit
    • Export of internal Abseil changes · 5202173c
      --
      121db1a08321eaa3006726cc32b459cf17880e35 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 425707805
      
      --
      0dec484389bbb75aae0a412146e3564bf833a739 by Derek Mauro <dmauro@google.com>:
      
      macOS CI: Avoid depending on external sites like GitHub by prepopulating
      dependencies and setting --distdir
      
      Our Linux CI does this, but for some reason was never enabled on macOS
      
      PiperOrigin-RevId: 425668638
      GitOrigin-RevId: 121db1a08321eaa3006726cc32b459cf17880e35
      Change-Id: Id51645df90b6a0808dd5b18eb636a10f798e24ea
      Abseil Team committed
  4. 31 Jan, 2022 1 commit
    • Export of internal Abseil changes · 63d26fad
      --
      c475e8ac1ea163248415e7d4bdc05e3c47dd8f3d by Derek Mauro <dmauro@google.com>:
      
      Replace absl::bit_cast with std::bit_cast in C++20
      
      Remove the deprecated implementation that is less-strict than the
      standard, and also relies on undefined behavior
      
      PiperOrigin-RevId: 425391711
      
      --
      dc97c996aed85161f0e490baafd3ed851e8bea9d by Abseil Team <absl-team@google.com>:
      
      Add enum example for ABSL_DEPRECATED()
      
      PiperOrigin-RevId: 425311634
      GitOrigin-RevId: c475e8ac1ea163248415e7d4bdc05e3c47dd8f3d
      Change-Id: Id8f159b37fe3f3cace6ab7bce08daf9888c44bcf
      Abseil Team committed
  5. 28 Jan, 2022 1 commit
    • Export of internal Abseil changes · 940c06c2
      --
      ef2bdebfdff0a93d3af6248d709d42a47fe2e7b4 by Derek Mauro <dmauro@google.com>:
      
      Compile with -DGTEST_REMOVE_LEGACY_TEST_CASEAPI_ in Bazel CI builds to
      prevent uses of the legacy TestCase API from sneaking in
      
      PiperOrigin-RevId: 424882792
      
      --
      4cf19d7b4dd855685deb0d4d3170e4db9f6f789b by Abseil Team <absl-team@google.com>:
      
      Fix typo in comment.
      
      PiperOrigin-RevId: 424745867
      GitOrigin-RevId: ef2bdebfdff0a93d3af6248d709d42a47fe2e7b4
      Change-Id: I50ad9b4cf3fa17831aa6521c58d81b0ce8ec0c47
      Abseil Team committed
  6. 27 Jan, 2022 3 commits
    • Export of internal Abseil changes · a655ec4a
      --
      dab53ef01a1c8ceebd1347a4918a0def0d7d4ce5 by Derek Mauro <dmauro@google.com>:
      
      Migrate away from the remaining usages of GoogleTest's legacy TestCase API
      and use the new TestSuite API instead
      
      PiperOrigin-RevId: 424668744
      GitOrigin-RevId: dab53ef01a1c8ceebd1347a4918a0def0d7d4ce5
      Change-Id: I599de09f3349d18c2d74795b1f867fa6c99c3eed
      Abseil Team committed
    • Export of internal Abseil changes · d2da09a4
      --
      7fbe730c56c0890f27df47f9ad4f0cfa600c6ad9 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 424639048
      
      --
      1825fcf704e45e881cdd1d2fe3eb2226f523f3cd by Derek Mauro <dmauro@google.com>:
      
      Disable tests Table.EnsureNonQuadraticTopNXorSeedByProbeSeqLength and Table.EnsureNonQuadraticTopNLinearTransformByProbeSeqLength again
      as they are (still) flaky
      
      PiperOrigin-RevId: 424616745
      
      --
      e624119171d9bceec2f6df023b220a6642070cfb by Abseil Team <absl-team@google.com>:
      
      Switch from *_TEST_CASE_P to *_TEST_SUITE_P gtest macros.
      
      PiperOrigin-RevId: 424404790
      
      --
      a110698c10554fb1f640412db8cd7c5a38b7b8e8 by Abseil Team <absl-team@google.com>:
      
      Remove extraneous newline in documentation.
      
      PiperOrigin-RevId: 424328502
      GitOrigin-RevId: 7fbe730c56c0890f27df47f9ad4f0cfa600c6ad9
      Change-Id: I56fd8c7cecf65fe37cb4cf2dde70842867d637d7
      Abseil Team committed
  7. 26 Jan, 2022 1 commit
    • Export of internal Abseil changes · e3fdd9b1
      --
      505dc83f11dbc14d6e493d83ed6451966629fe71 by Evan Brown <ezb@google.com>:
      
      In debug mode, make b-tree adapt comparators to do checking to diagnose invalid non-strict-weak-ordering comparators.
      
      Reference: https://en.cppreference.com/w/cpp/named_req/Compare
      
      - Add an opt-out mechanism for tests that rely on counting the number of comparisons.
      - Use the unadapted comparator (original_key_compare) in making the use_linear_search decision so is_same still works.
      
      PiperOrigin-RevId: 423889350
      GitOrigin-RevId: 505dc83f11dbc14d6e493d83ed6451966629fe71
      Change-Id: I65b0ba489c69c8dcfb107684db84f3f7f4d72daa
      Abseil Team committed
  8. 22 Jan, 2022 1 commit
    • Export of internal Abseil changes · b2c96417
      --
      75504b9d2eb7560359b98b69136d071f980e04f2 by Abseil Team <absl-team@google.com>:
      
      Fix typos in documentation.
      
      PiperOrigin-RevId: 423376798
      
      --
      bf87e5de48a868f49a57d516be027e6e3a3cc3bd by Gennadiy Rozental <rogeeff@google.com>:
      
      Correct WEAK attribute enabling condition.
      
      ABSL_ATTRIBUTE_WEAK is present if:
          compiler has built-in attribute weak
        OR
          we are using gcc (and not clang)
      AND
          we are not on windows
        OR
          we use windows clang version >= 9.0.0
      AND
        we are not on MinGW
      
      PiperOrigin-RevId: 423357629
      
      --
      a01a8f1b7ea3da4ec349db452162a3333953dd9d by Abseil Team <absl-team@google.com>:
      
      There are magic numbers in the expected load factors and probe lengths, and they seem to be wrong especially under msvc.  Even under the linux tool chain, these tests fail occasionally.  Fix the magic numbers to make the tests succeed.
      
      PiperOrigin-RevId: 423320829
      
      --
      fd109295a1425ca1cb2b69fe34a294b6189542c0 by Laramie Leavitt <lar@google.com>:
      
      Manually align buffers in randen_engine.
      
      In C++ it's implementation defined whether types with extended alignment are supported.
      
      randen_engine uses vector intrinsics with 16-byte alignment requirements in
      some instances, so internally we allocate an extra 8 bytes to manually align to 16.
      
      No detectable performance impact.
      
      PiperOrigin-RevId: 423109265
      GitOrigin-RevId: 75504b9d2eb7560359b98b69136d071f980e04f2
      Change-Id: I8c5ab2269ff6d9e89d3b4d0e95d36ddb6ce8096e
      Abseil Team committed
  9. 19 Jan, 2022 2 commits
    • Export of internal Abseil changes · fbbb5865
      --
      487c7a754a3b93bc0f9de14bdced48007a96ae55 by Greg Falcon <gfalcon@google.com>:
      
      Add support for absl::Hash to hash unordered containers.  These can now be hashed directly, as well as combined in AbslHashValue implementations.
      
      This also adds a new method, `H::combine_unordered()`, to the public AbslHashValue hash state API.  This allows users to implement hash specializations for their own unordered collection types.
      
      A traits class, `H::is_hashable<T>`, is also added to the hash state API.  H::is_hashable<T>::value reflects whether type T is considered hashable by the AbslHashValue framework.  This allows users to properly SFINAE templated versions of AbslHashValue.  (The AbslHashValue implementation added to raw_hash_set shows an example of its use.)
      
      PiperOrigin-RevId: 422856706
      GitOrigin-RevId: 487c7a754a3b93bc0f9de14bdced48007a96ae55
      Change-Id: Id31fd4ccba282f8c9ae6fcee6ae0ad0f7879f456
      Abseil Team committed
    • Export of internal Abseil changes · 9bb42857
      --
      7f5caec21a1a88db6486b8bc2e5f6d5baba076ed by Derek Mauro <dmauro@google.com>:
      
      Tag absl::StatusOr with [[nodiscard]] when it is available
      
      [[nodiscard]] provides better diagnostics on classes than the current
      ABSL_MUST_USE_RESULT, which expands to
      __attribute__((warn_unused_result))
      
      Ideally we would make ABSL_MUST_USE_RESULT expand to [[nodiscard]], but
      we would need to fix all code to build with [[nodiscard]] first.
      
      PiperOrigin-RevId: 422628161
      
      --
      236be69f0f34ccaa3adc831075613847797e6557 by Jorg Brown <jorg@google.com>:
      
      Make sure all of absl/strings compiles even with -Wsign-compare and -Wconversion warnings.
      
      PiperOrigin-RevId: 422573904
      
      --
      005669883a8794e6d19dc4bbb4f0e18032e2fbc9 by Chris Kennelly <ckennelly@google.com>:
      
      Include sampling stride in hashtable sampling data.
      
      This allows us to weight each sample to control for our sampling rate.
      
      PiperOrigin-RevId: 421886935
      
      --
      78046ce6b429b9f5b6c97b05e8448a791db93bbe by Abseil Team <absl-team@google.com>:
      
      Use __builtin_bit_cast for absl::bit_cast when possible
      
      This makes absl::bit_cast match the requirements of the standard when compiler support exists.
      
      PiperOrigin-RevId: 421883999
      
      --
      f397461f4bbeabd32437df0f2275663aeb51adb2 by Derek Mauro <dmauro@google.com>:
      
      Tag absl::Status with [[nodiscard]] when it is available
      
      [[nodiscard]] provides better diagnostics on classes than the current
      ABSL_MUST_USE_RESULT, which expands to
      __attribute__((warn_unused_result))
      
      Ideally we would make ABSL_MUST_USE_RESULT expand to [[nodiscard]], but
      we would need to fix all code to build with [[nodiscard]] first.
      
      PiperOrigin-RevId: 421825565
      GitOrigin-RevId: 7f5caec21a1a88db6486b8bc2e5f6d5baba076ed
      Change-Id: I760b45b68f6012809c70c2a584e4144a99f98733
      Abseil Team committed
  10. 14 Jan, 2022 1 commit
    • Export of internal Abseil changes · c59e7e59
      --
      0db7f4046f9b59c0f8c3df2f0eb7fd88fc328439 by Abseil Team <absl-team@google.com>:
      
      Revise documentation of bit_cast:
      
      * Removes inappropriate examples (round-tripping pointers, serialization), for which reinterpret_cast is more appropriate.
      * Removes mention of "bit representation", which is not an explicit notion in C++. The best we get is "byte representation".
      * Removes a circular defition of "bitcast" as itself, and instead explains what it does.
      * Removes the mathism "for some values of", which is probably not totally accessible to a general audience, and in any case needless verbiage.
      * Fixes comments in the example.
      * Replaces some colloquialisms with simpler, more direct language.
      
      PiperOrigin-RevId: 421791786
      
      --
      e04e64df55d93c1b9a09c0483b97cc4d8763260d by Derek Mauro <dmauro@google.com>:
      
      Update Docker image to use GCC 11.2, Clang 14 (prerelease),
      CMake 3.22.1, and Bazel 4.2.2
      
      PiperOrigin-RevId: 421658559
      
      --
      d002bb3dc5cd1fc5b4cbd79a450efc894caa567c by Chris Kennelly <ckennelly@google.com>:
      
      Add a small microbenchmark for absl::bit_width.
      
      PiperOrigin-RevId: 421604852
      
      --
      131b057d1b76ecd7170421b48d661bb958ff676b by Evan Brown <ezb@google.com>:
      
      Adds a disabled test for EBO in nested `CompressedTuple`s.
      
      PiperOrigin-RevId: 421413134
      
      --
      e34c7876d3a1212d90c73c030ccae6169b682d43 by Jorg Brown <jorg@google.com>:
      
      Show users a better error message if they pass a pointer to absl::Uniform.
      
      PiperOrigin-RevId: 421090472
      GitOrigin-RevId: 0db7f4046f9b59c0f8c3df2f0eb7fd88fc328439
      Change-Id: I5a004e8d17e974fa4897a09d1466ae8fc65dfdbb
      Abseil Team committed
  11. 10 Jan, 2022 1 commit
    • Export of internal Abseil changes · 2a042b08
      --
      389189dbb322df0d0468ab13edf7dc185dc63833 by Abseil Team <absl-team@google.com>:
      
      absl str_format.h can compile with -Wconversion and -Wsign-compare
      
      PiperOrigin-RevId: 420799960
      
      --
      762e5adc429fc143756c42fe92fe8073c87c075f by Abseil Team <absl-team@google.com>:
      
      GetStackTraceWithContext: Fix min_dropped_frames when no frames are recorded
      
      Previously, if there were still frames to skip, they would be included
      in min_dropped_frames.
      
      PiperOrigin-RevId: 420766341
      
      --
      7d4374b8eaa410f4f98ec03d6a8997dccadfb271 by Abseil Team <absl-team@google.com>:
      
      absl::flags compiles with -Wconversion and -Wsign-compare
      
      PiperOrigin-RevId: 420476807
      
      --
      5f00f7805419d725fa1ff57b388e4c0750d1d6b0 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 420282152
      
      --
      bd5471fc34956acf3888bf90287b2aee4415c96d by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 420282033
      
      --
      61c78020804e4290e9b2fe151aeaf99b198716ee by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 420281867
      
      --
      dbe3aad24b65ea11664401a307ea3d2f28e8a7b9 by Derek Mauro <dmauro@google.com>:
      
      Remove the incorrect test for the availability of [[nodiscard]]
      
      It should have been ABSL_HAVE_CPP_ATTRIBUTE(nodiscard) instead of
      ABSL_HAVE_ATTRIBUTE(nodiscard). As a result, some code is not
      compliant with [[nodiscard]], so we cannot simply correct the availability
      test.
      
      Recommend that C++17-only code use the standard [[nodiscard] directly.
      
      PiperOrigin-RevId: 420150702
      GitOrigin-RevId: 389189dbb322df0d0468ab13edf7dc185dc63833
      Change-Id: Idf6ebae3c4edd945c9032c7db3d0ab32d16e8078
      Abseil Team committed
  12. 07 Jan, 2022 3 commits
  13. 06 Jan, 2022 1 commit
    • Export of internal Abseil changes · 628a2825
      --
      04e8fdf6a37d31f9364ca0f70bf663ee972481c6 by Abseil Team <absl-team@google.com>:
      
      Another implicit sign conversion found and removed.
      
      PiperOrigin-RevId: 419718762
      
      --
      dbb6bca7d3cfa9ce79e70d0ed3d0354a4e3a0983 by Abseil Team <absl-team@google.com>:
      
      Fix sign conversions so that absl/status/status.h can compile with -Wconversion -Wsign-compare
      
      PiperOrigin-RevId: 419658075
      GitOrigin-RevId: 04e8fdf6a37d31f9364ca0f70bf663ee972481c6
      Change-Id: I18441488cc84f573c2818ee241c387e1953d5105
      Abseil Team committed
  14. 04 Jan, 2022 1 commit
    • Export of internal Abseil changes · c498947f
      --
      620668e56950d7cfc39db2cd321adf265199ad77 by Abseil Team <absl-team@google.com>:
      
      absl::random compiles (at least for some cases) with -Wconversion -Wsign-compare
      
      PiperOrigin-RevId: 419595521
      
      --
      746651e5fbcab6080d25c4eef8617fc289a448f6 by Abseil Team <absl-team@google.com>:
      
      Annotate FlagImpl storage buffer
      
      Flag type can contain legit uninitialized bits, e.g. padding.
      When the code calls bit_cast as int64_t, it will contain those bits as well.
      Then when we pass the int into the store it's UB for C++ and will be
      reported by the new msan.
      
      PiperOrigin-RevId: 418666492
      GitOrigin-RevId: 620668e56950d7cfc39db2cd321adf265199ad77
      Change-Id: Idd1190f5c98a0a13c4019f3d92cec0313822084c
      Abseil Team committed
  15. 28 Dec, 2021 1 commit
    • Export of internal Abseil changes · 04610889
      --
      3fad46c668edd864a62511f2a6875b8b79e38f34 by Evan Brown <ezb@google.com>:
      
      Use switches instead of lookup tables for zap_desig_waker and ignore_waiting_writers so that we can avoid dTLB misses.
      
      See, e.g., https://godbolt.org/z/a7Gb9vzzj.
      
      Also, now that these are functions, follow function style in naming and comments.
      
      PiperOrigin-RevId: 418654693
      
      --
      ba5107744023a4e9163a44d706fbe8e4a1bc0fd9 by Abseil Team <absl-team@google.com>:
      
      Check for Clang before attempting to expand __clang_major__.
      
      This avoids a warning about an undefined macro on Windows when compiling with
      MinGW-GCC.
      
      PiperOrigin-RevId: 418287329
      GitOrigin-RevId: 3fad46c668edd864a62511f2a6875b8b79e38f34
      Change-Id: I28104980c4d3b204537b248447a6bd1022c9ef5d
      Abseil Team committed
  16. 25 Dec, 2021 1 commit
    • Export of internal Abseil changes · d7587351
      --
      cca8a0c0d709803ce3413861ccbdb1b47e8fdcef by Abseil Team <absl-team@google.com>:
      
      Add AssertHeld() to SpinLock.
      
      PiperOrigin-RevId: 418034654
      
      --
      9e95a0e614b4cd7929d8db4324ca69d7be5351b2 by Evan Brown <ezb@google.com>:
      
      Make btree use an unsigned size_type (size_t).
      
      This brings btree in line with std::set, et al., which are required to use an unsigned size type - see https://en.cppreference.com/w/cpp/container/set.
      
      Also avoid some warnings about comparing integers of different signs.
      
      PiperOrigin-RevId: 418014466
      GitOrigin-RevId: cca8a0c0d709803ce3413861ccbdb1b47e8fdcef
      Change-Id: I2b951cf1d69a3bb9c8dc236c69ab4a06b45047ea
      Abseil Team committed
  17. 20 Dec, 2021 1 commit
    • Export of internal Abseil changes · f523d0dd
      --
      1e25fb5996193524bf2f75781f1e6bdcdf972a3a by Gennadiy Rozental <rogeeff@google.com>:
      
      Introduce enums to represent lower and upper thresholds for LogSeverity.
      
      PiperOrigin-RevId: 417414673
      
      --
      abfddb3a6ad8ce4849fbb6dadb34d7d6295def0f by Abseil Team <absl-team@google.com>:
      
      Restore __arch64__ macro check for SPARC
      
      PiperOrigin-RevId: 416798208
      
      PiperOrigin-RevId: 416688543
      GitOrigin-RevId: 1e25fb5996193524bf2f75781f1e6bdcdf972a3a
      Change-Id: I424dd98e5e07420d5f9dfd191f2bfc06036e2bd1
      Abseil Team committed
  18. 15 Dec, 2021 1 commit
    • Export of internal Abseil changes · 52d41a9e
      --
      81f95fcf85b75b84f9892c73123501472b9cff33 by Martijn Vels <mvels@google.com>:
      
      Introduce GetEstimatedMemoryUsage(CordMemoryAccounting::kFairShare)
      
      Memory usage analysis is moved into a separate cord_analysis.cc source.
      
      PiperOrigin-RevId: 416370158
      
      --
      6bc7b1348fd27fe53f100c9eabd47f4f2cb9c19c by Abseil Team <absl-team@google.com>:
      
      Support scoped enum in absl::Substitute.
      
      PiperOrigin-RevId: 416345422
      
      --
      6399f4f6ae05ebcd67664ebd844902f699ab8ec7 by Abseil Team <absl-team@google.com>:
      
      Correct the computation of contention cycles
      
      Currently, we record contention cycles from the first time a thread started
      waiting on a mutex.  Consider a situation in which two threads, T1 and T2, run
      a loop at the top of which they acquire a common mutex and release it at the
      end of the loop body.  Further assume that T2 is never able to acquire the
      mutex as T1 repeatedly acquires and then releases the mutex.  In this case, we
      would expect that the reported contention cycles would be increase linearly
      over time.  But currently we observe a quadratic behavior in the reported
      waiting time as mentioned in b/14684244#comment10.
      
      To fix the issue, this CL records the contention cycles experienced by all the threads woken up when the mutex is released.  Further, contention_start_cycles is set to the current time since the contention cycles for the time already passed has been taken into account.  With this CL, we get a linear increase in the waiting time, the expected behavior.
      
      PiperOrigin-RevId: 416322593
      
      --
      149c1637c8a0f1a38e5a8f9f27e5803a2015a554 by Jorg Brown <jorg@google.com>:
      
      Make Status::EmptyString more efficient by constructing it in global space, rather than on the heap.  See https://godbolt.org/z/8M9n7YqcY for reduced code size.
      
      PiperOrigin-RevId: 416307833
      
      --
      3b4562a8be5a3c80077cb67b0a32c97419058380 by Abseil Team <absl-team@google.com>:
      
      Clarify the usage of RegisterMutexProfiler
      
      PiperOrigin-RevId: 416146130
      GitOrigin-RevId: 81f95fcf85b75b84f9892c73123501472b9cff33
      Change-Id: Iccb72d7ee617e6ebe226a38170d62e0849b43480
      Abseil Team committed
  19. 13 Dec, 2021 1 commit
    • Export of internal Abseil changes · 1065514e
      --
      07240ca7822d007cdcc79f2c40bd58b2c2010348 by Abseil Team <absl-team@google.com>:
      
      Correct the comment from "AlphaNum" to "Arg".
      
      PiperOrigin-RevId: 416139192
      
      --
      adcba4a6b3763626e1db7b1e8c108b3114903557 by Martijn Vels <mvels@google.com>:
      
      Fix NewExternalRep() to require data being non-empty, and remove nullptr return.
      
      PiperOrigin-RevId: 416135865
      
      --
      c0d14cd918fb16f15d1d84de9284b5c5ecc1f8f2 by Abseil Team <absl-team@google.com>:
      
      Fix doc comment for absl::ascii_isprint().
      
      The comment was incorrectly saying that it includes all whitespace.
      It doesn't; the only whitespace char it includes is ' '.
      
      PiperOrigin-RevId: 416112524
      
      --
      d83327800159c07002b6865e21232a12463e02dd by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 416099978
      
      --
      baf11e9ca42ca9140cdbf8075f971db8d65b1195 by Ilya Tokar <tokarip@google.com>:
      
      Prevent compiler from optimizing Group_Match* benchmarks away.
      Currently we benchmark single store of precomputed value.
      
      Not all affected benchmarks show performance changes:
      
      BM_Group_Match                                          0.53ns ± 1%  0.53ns ± 0%   -0.42%  (p=0.038 n=10+10)
      BM_Group_MatchEmpty                                     0.26ns ± 1%  0.26ns ± 1%     ~     (p=1.000 n=10+10)
      BM_Group_MatchEmptyOrDeleted                            0.26ns ± 1%  0.26ns ± 1%     ~     (p=0.121 n=10+10)
      BM_Group_CountLeadingEmptyOrDeleted                     0.26ns ± 1%  0.45ns ± 0%  +70.05%   (p=0.000 n=10+8)
      BM_Group_MatchFirstEmptyOrDeleted                       0.26ns ± 0%  0.44ns ± 1%  +65.91%    (p=0.000 n=8+9)
      
      But inspecting the generated code shows the difference,
      e. g. BM_Group_MatchFirstEmptyOrDeleted
      
      Before:
      add  $0xffffffffffffffff,%rbx
      jne  30
      
      After:
      pcmpeqd  %xmm0,%xmm0
      pcmpgtb  -0x30(%rbp),%xmm0
      pmovmskb %xmm0,%eax
      add: 0x23$0xffffffffffffffff,%rbx
      jne      40
      PiperOrigin-RevId: 416083515
      
      --
      122fbff893dc4571b3e75e4b241eb4495b925610 by Abseil Team <absl-team@google.com>:
      
      Put namespace guard in ABSL_DECLARE_FLAG to make declaring a flag in a namespace a compiler error instead of a linker error.
      
      PiperOrigin-RevId: 416036072
      
      --
      020fd8a20f5fa319e948846e003391fcb9e03868 by Ilya Tokar <tokarip@google.com>:
      
      Make Cord::InlineRep::set_data unconditionally zero out memory.
      
      Currently there is a single case where we don't zero out memory
      as an optimization. Unconditional zeroing doesn't show any changes
      in benchmarks, except for the unrelated improvement:
      
      BM_CordPartialCopyToCord/1M/1              12.6ns ± 4%   12.6ns ± 4%     ~     (p=0.857 n=16+19)
      BM_CordPartialCopyToCord/1M/128            44.9ns ± 7%   45.0ns ± 3%     ~     (p=0.468 n=18+17)
      BM_CordPartialCopyToCord/1M/1k             64.5ns ± 4%   61.4ns ± 4%   -4.82%  (p=0.000 n=19+17)
      BM_CordPartialCopyToCord/1M/8k              139ns ± 3%    128ns ±15%   -7.76%  (p=0.009 n=17+20)
      BM_CordPartialCopyToCord/1M/16k             193ns ± 6%    168ns ± 6%  -13.17%  (p=0.000 n=17+17)
      BM_CordPartialCopyToCord/4M/16k             199ns ± 4%    177ns ± 4%  -11.36%  (p=0.000 n=17+18)
      BM_CordPartialCopyToCord/4M/32k             275ns ± 3%    250ns ± 4%   -9.00%  (p=0.000 n=18+18)
      BM_CordPartialCopyToCord/4M/64k             291ns ± 4%    266ns ± 5%   -8.53%  (p=0.000 n=18+16)
      BM_CordPartialCopyToCord/4M/128k            322ns ± 5%    291ns ± 4%   -9.43%  (p=0.000 n=20+18)
      BM_CordPartialCopyToCord/8M/32k             281ns ± 5%    251ns ± 4%  -10.38%  (p=0.000 n=20+16)
      BM_CordPartialCopyToCord/8M/64k             293ns ± 6%    267ns ± 4%   -8.87%  (p=0.000 n=16+19)
      BM_CordPartialCopyToCord/8M/128k            334ns ± 3%    305ns ± 2%   -8.56%  (p=0.000 n=17+16)
      
      This is clearly an alignmnet effect since number of the executed instructions is the same:
      M_CordPartialCopyToCord/1M/1                 155 ± 0%                155 ± 0%     ~     (all samples are equal)
      BM_CordPartialCopyToCord/1M/128               446 ± 0%                446 ± 0%     ~           (p=0.332 n=36+39)
      BM_CordPartialCopyToCord/1M/1k                473 ± 0%                473 ± 0%     ~           (p=0.969 n=40+40)
      BM_CordPartialCopyToCord/1M/8k                808 ± 0%                808 ± 0%     ~           (p=0.127 n=40+39)
      BM_CordPartialCopyToCord/1M/16k               957 ± 0%                957 ± 0%     ~           (p=0.532 n=40+40)
      BM_CordPartialCopyToCord/4M/16k               952 ± 0%                952 ± 0%     ~           (p=0.686 n=39+39)
      BM_CordPartialCopyToCord/4M/32k             1.12k ± 0%              1.12k ± 0%     ~           (p=0.690 n=40+40)
      BM_CordPartialCopyToCord/4M/64k             1.23k ± 0%              1.23k ± 0%     ~           (p=0.182 n=40+39)
      BM_CordPartialCopyToCord/4M/128k            1.44k ± 0%              1.44k ± 0%     ~           (p=0.711 n=40+40)
      BM_CordPartialCopyToCord/8M/32k             1.12k ± 0%              1.12k ± 0%     ~           (p=0.697 n=40+40)
      BM_CordPartialCopyToCord/8M/64k             1.23k ± 0%              1.23k ± 0%   +0.00%        (p=0.049 n=40+40)
      BM_CordPartialCopyToCord/8M/128k            1.44k ± 0%              1.44k ± 0%     ~           (p=0.507 n=40+40)
      
      This makes code simpler and doesn't regress performance.
      
      PiperOrigin-RevId: 415560574
      
      --
      37305b2690b31682088749e4d62f40d7095bdc54 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 415558737
      
      --
      86aaed569b9e743c1eb813a5f48def978a793db3 by Martijn Vels <mvels@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 415515201
      
      --
      6cdb8786cdcb4fa0b8a4b72fc98940877d1fdeff by Abseil Team <absl-team@google.com>:
      
      Update SubmitMutexProfileData to accept wait_cycles instead of wait_timestamp
      
      PiperOrigin-RevId: 415360871
      
      --
      9f979d307aa16ad09f214e04876cbe84395c0901 by Abseil Team <absl-team@google.com>:
      
      absl::flat_hash_set compiles with -Wconversion -Wsign-compare
      
      PiperOrigin-RevId: 415357498
      
      --
      9eceb14174708f15e61259d449b214a8a4c7f9e7 by Abseil Team <absl-team@google.com>:
      
      Fix AddressIsReadable for the corner case of (aligned) addr == NULL.
      
      PiperOrigin-RevId: 415307792
      
      --
      1a39ffe55898375e2d7f88c17c99db5a1b95b313 by Martijn Vels <mvels@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 415162872
      
      --
      64378549b110d5f5762185a5906c520fba70f0e7 by Abseil Team <absl-team@google.com>:
      
      Fix a typo in the comments
      
      PiperOrigin-RevId: 415088461
      
      --
      41aae8322e913b82710153c22b97c611fdb6e1fb by Abseil Team <absl-team@google.com>:
      
      Switch from `connect` to `rt_sigreturn` -- the latter is much less problematic
      for system call sandboxes.
      
      PiperOrigin-RevId: 415073965
      
      --
      870c5e3388b6a35611bff538626fe7a1c8c87171 by Abseil Team <absl-team@google.com>:
      
      Add ABSL_HAVE_HWADDRESS_SANITIZER and ABSL_HAVE_LEAK_SANITIZER
      
      PiperOrigin-RevId: 414871189
      
      --
      f213ed60a66b58da7ac40555adfb1d529ff0a4db by Derek Mauro <dmauro@google.com>:
      
      Remove reference to __SANITIZE_MEMORY__, which does not exist
      
      It appears to have been copied by pattern matching from the ASAN/TSAN
      code blocks.
      
      https://github.com/gcc-mirror/gcc/blob/f47662204de27f7685699eeef89aa173ccf32d85/gcc/cppbuiltin.c#L79-L126
      
      PiperOrigin-RevId: 414806587
      
      --
      b152891e73ab515f397ceb53f66c8ee2f33863ea by Abseil Team <absl-team@google.com>:
      
      Rollback previous commit: SYS_open is not defined in certain environments.
      
      PiperOrigin-RevId: 414521820
      
      --
      5a1cbb282331023902e1374dd0d920c4effbe47f by Abseil Team <absl-team@google.com>:
      
      Use syscall(SYS_open, ...) instead of open() to avoid possible symbol
      interposition.
      
      Also add some warning notes.
      
      PiperOrigin-RevId: 414508186
      
      --
      1824d6593612710aafdc599a89b0adced7d787f6 by Abseil Team <absl-team@google.com>:
      
      Correct aarch64 macro check
      
      The macro is __aarch64__, not __arch64__.
      
      PiperOrigin-RevId: 414446225
      
      --
      a1536a57b64dfd53945d33a01cfc08b18c99c97b by Abseil Team <absl-team@google.com>:
      
      Fix backwards comment in the last commit.
      
      PiperOrigin-RevId: 414281214
      
      --
      11ac021ba779513667a31cf2563ddafc57d6d913 by Abseil Team <absl-team@google.com>:
      
      AddressIsReadable() didn't work correctly on ARM when the given pointer was
      misaligned at the end of the page.
      
      Fix that by aligning the pointer on an 8-byte boundary before checking it.
      
      PiperOrigin-RevId: 414203863
      GitOrigin-RevId: 07240ca7822d007cdcc79f2c40bd58b2c2010348
      Change-Id: If5f129194d59f5c9e5d84efd8cd9e17a70e072ab
      Abseil Team committed
  20. 10 Dec, 2021 1 commit
    • cmake: add ABSL_BUILD_TESTING option (#1057) · fb7dd24b
      Abseil's own tests now are disabled if either BUILD_TESTING
      or a new option called ABSL_BUILD_TESTING is false.
      Additionally, Abseil's CMakeLists.txt no longer re-declares
      the BUILD_TESTING option with a value of false.
      
      Abseil had been using just the BUILD_TESTING option, since
      the fix for #901.  Because setting BUILD_TESTING false still
      works to disable Abseil's tests, this change preserves the
      behavior asked for in that issue.
      
      Previous to that, Abseil had a project specific flag for
      this, as is the typical idiom used in other projects.
      
      The issue with BUILD_TESTING is that it is an all-or-nothing
      policy.  When Abseil is incorporated as a subproject, the
      encompasing project has no convenient way to enable its own
      tests while disabling Abseil's.
      
      Fixes #1056
      Matt Armstrong committed
  21. 03 Dec, 2021 1 commit
    • Export of internal Abseil changes · 9336be04
      --
      e7f53dfbf809812e84770217777f81b6308a3084 by Abseil Team <absl-team@google.com>:
      
      Add a parameter pack to absl profile to allow profiles to separate
      dynamic data from static data that is available at constructor-time.
      
      Background: `inline_element_size` is effectively constant, but there
      is a data race between its initialization and its access. We had fixed that race by making
      inline_element_size atomic.  This CL changes `inline_element_size`
      back to a non-atomic integer, and provides a way for all profiles to
      provide Register()-time values.
      PiperOrigin-RevId: 413960559
      
      --
      70234c5943f8e37e17c1d9c54d8ed61d39880abf by Chris Kennelly <ckennelly@google.com>:
      
      Document that absl::FunctionRef does not allocate.
      
      PiperOrigin-RevId: 413946831
      
      --
      3308ae571412c4be3cc32d088c6edac98ff2d1ed by Samuel Benzaquen <sbenza@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 413933619
      
      --
      1617093a730d055edcf7bc04fdd6509783f5f75d by Martijn Vels <mvels@google.com>:
      
      Internal Change
      
      PiperOrigin-RevId: 413778735
      
      --
      03ad683f059c806a6c8b04f5b79b2662c3df8c73 by Evan Brown <ezb@google.com>:
      
      Unify btree erase_if definitions and optimize them so that we only do rebalancing once per leaf node.
      
      PiperOrigin-RevId: 413757280
      
      --
      5ba402f70801938178e486617063f01c7862525d by Martijn Vels <mvels@google.com>:
      
      Cleanup up cord sampling internals
      
      PiperOrigin-RevId: 413755011
      
      --
      522da8f9d3e0f11630d89fb41952004742bc335a by Evan Brown <ezb@google.com>:
      
      Add b-tree benchmark for erase_if.
      
      Since this benchmark doesn't work for std:: containers before C++20, disable it for them.
      
      PiperOrigin-RevId: 413740844
      
      --
      a690ea42de8ed4a761d00235d8b2fb7548ba9732 by Andy Getzendanner <durandal@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 413735737
      GitOrigin-RevId: e7f53dfbf809812e84770217777f81b6308a3084
      Change-Id: I4f9f9039ba92831bc48971964aa063244c9fed72
      Abseil Team committed
  22. 02 Dec, 2021 1 commit
    • Export of internal Abseil changes · e11e039e
      --
      08d99ee216b7bfac1c5182db952d4e053e5ebc31 by Abseil Team <absl-team@google.com>:
      
      Fix race condition reported by tsan on `inline_element_size` in hashtablez.
      
      PiperOrigin-RevId: 413520771
      GitOrigin-RevId: 08d99ee216b7bfac1c5182db952d4e053e5ebc31
      Change-Id: Ibd396803f04a659cfbdb8dc7ec37511643657694
      Abseil Team committed
  23. 01 Dec, 2021 1 commit
    • Export of internal Abseil changes · cad715db
      --
      e2a571b818faaec4185426a8cf71fd2970674423 by Matt Kulukundis <kfm@google.com>:
      
      Fix missed use of old RTTI macro
      
      PiperOrigin-RevId: 413239579
      
      --
      e3c15a3fe0a4e44d6e08d69ad912b2245a403bd6 by Derek Mauro <dmauro@google.com>:
      
      Makes erase_if return the number of erased elements for compatibility
      with C++20
      
      https://en.cppreference.com/w/cpp/container/unordered_map/erase_if
      
      This may technically be an API break, but no actual breaks were found
      in Google code. Fixes to open source code should be trivial.
      
      Closes #1065
      
      PiperOrigin-RevId: 413204392
      
      --
      c1fb1ddbc2def3f3d177e5b80b9934bdbb7b16fc by Matt Kulukundis <kfm@google.com>:
      
      Consolidate to a single HAS_RTTI macro
      
      PiperOrigin-RevId: 413169336
      GitOrigin-RevId: e2a571b818faaec4185426a8cf71fd2970674423
      Change-Id: I74b78ebd5fc172e3f5fcbd13a58cf53f7b250ae9
      Abseil Team committed
  24. 30 Nov, 2021 1 commit
    • Export of internal Abseil changes · 3e1983c5
      --
      a9ea60e9c0ccd744b6f12fd021dbedfe826dfe84 by Matt Kulukundis <kfm@google.com>:
      
      Add an internal hook to allow keeping flags in sync with global state.
      
      Rollforward, except continue including hashtablez_flags.h in absl_flags.h so users don't break.
      
      PiperOrigin-RevId: 412198044
      
      --
      183e5c440b68c797ce4a82102f94f41c97a14674 by Martijn Vels <mvels@google.com>:
      
      Internal cleanups and changes
      
      PiperOrigin-RevId: 412083793
      
      --
      3740faf7c5a2e1723e3c7e4d1b3f3db7cbec6e61 by Abseil Team <absl-team@google.com>:
      
      Mark Cord::Clear() with the ABSL_ATTRIBUTE_REINITIALIZES attribute.
      
      This prevents false positives in the clang-tidy check bugprone-use-after-move; it allows Clear() to be called on a moved-from Cord without any warnings, and the Cord will thereafter be regarded as initialized again.
      
      PiperOrigin-RevId: 412082757
      
      --
      a730d3f4ba06b55ae50386920a0544592069ac01 by Abseil Team <absl-team@google.com>:
      
      StrJoin: Support iterators that do not have an `operator->`
      
      Allows using `StrJoin` with iterators that do not have an `operator->`.
      The `operator->` requirement for input iterators was dropped in C++20.
      
      PiperOrigin-RevId: 412066130
      
      --
      6773c0ced2caa6a7855898298faecc584f3997ec by Andy Soffer <asoffer@google.com>:
      
      Rollback of internal hook for keeping flags in sync with global state.
      
      PiperOrigin-RevId: 411895027
      
      --
      4e7016a2fb88ce97853ef85ad5b4f76998eacca1 by Matt Kulukundis <kfm@google.com>:
      
      Add an internal hook to allow keeping flags in sync with global state.
      
      PiperOrigin-RevId: 411867376
      
      --
      2a7d4056e467b6b5d8a7aa9398d6cb5454c10fc5 by Martijn Vels <mvels@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 411806932
      GitOrigin-RevId: a9ea60e9c0ccd744b6f12fd021dbedfe826dfe84
      Change-Id: Ib35bb7b40774979ed2ad205bbb1744b1085eae78
      Abseil Team committed
  25. 22 Nov, 2021 1 commit
    • Export of internal Abseil changes · ec0d76f1
      --
      a0847bf19789c97689f1a8b0133a53b8af5e5caa by Samuel Benzaquen <sbenza@google.com>:
      
      Add support for absl::(u)int128 to random distributions and generators.
      
      PiperOrigin-RevId: 411565479
      GitOrigin-RevId: a0847bf19789c97689f1a8b0133a53b8af5e5caa
      Change-Id: Ide434bdd93fcab8e90f791796498de14833b667c
      Abseil Team committed
  26. 19 Nov, 2021 2 commits
    • Export of internal Abseil changes · 72c76511
      --
      28ba85cbeb766341969fda677bbd8df8615b349f by Martijn Vels <mvels@google.com>:
      
      Internally allow for CordRepFlat sizes up to 256KB
      
      The default flat size will remain at 4KB, but this allows for future specializations such as file io and compression where larger buffers can be used providing 'zero copy' streaming optimizations.
      
      PiperOrigin-RevId: 411095538
      
      --
      0c1cae5ff376a0955a5b67868723836665737801 by Abseil Team <absl-team@google.com>:
      
      cord_rep_btree: Reduce nesting in `DestroyTree` using guard clauses
      
      PiperOrigin-RevId: 411093741
      GitOrigin-RevId: 28ba85cbeb766341969fda677bbd8df8615b349f
      Change-Id: Ieb84ed409f1e8a8bca74edebbf2d097a9ec828a7
      Abseil Team committed
    • Export of internal Abseil changes · 8a4e6b8c
      --
      e400e8c3dc7190b83dec57be9d858ee44e146a42 by Martijn Vels <mvels@google.com>:
      
      Optimize Cord destructor through CordRepBtree::Destroy
      
      This change inlines tree destruction 2 levels at a time, special casing leaf and leaf + 1 levels.
      
      Benchmarks shows this provides up to 8% speed up
      
      PiperOrigin-RevId: 410953099
      GitOrigin-RevId: e400e8c3dc7190b83dec57be9d858ee44e146a42
      Change-Id: Ic1c123fa0fa2b13cb141ee7a6be155d9e57a0466
      Abseil Team committed
  27. 18 Nov, 2021 1 commit
    • Export of internal Abseil changes · 299f59ca
      --
      2130ba98c8359b08d97fb16d84dfd05687005dcf by Abseil Team <absl-team@google.com>:
      
      Tweaking the documentation of c_all_of to state the effect more directly.
      
      PiperOrigin-RevId: 410557900
      
      --
      4732289bf4b56123fed113e36be4710b55c6a6c7 by Greg Falcon <gfalcon@google.com>:
      
      Improve the quality of absl::Hash<std::vector<bool>>.
      
      This previously dispatched to std::hash<vector<bool>>, which suffers from trivial collisions on many platforms.  (They often hash the internal words but no size info, so that, e.g., {1, 1} and {1, 1, 0} collide.)
      
      Also extended the unit test to exercise this.
      
      PiperOrigin-RevId: 410329943
      
      --
      1c5f3934230a7669f74c96b305251786a265e235 by Greg Falcon <gfalcon@google.com>:
      
      Add broader testing of absl hash contracts in the hash unit test.
      
      In particular, test that the hash erasure mechanism works.
      
      PiperOrigin-RevId: 410312738
      
      --
      5e1923f527ed3d02f6752a5b38d5e1c17a4a146f by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 410290663
      
      --
      8c74bc962b3b98a5908017c345efc592393048ea by Martijn Vels <mvels@google.com>:
      
      Add Cord::CreateFlat() function
      
      PiperOrigin-RevId: 410260776
      
      --
      bd0de4e94c85620d3b8dd60fae367b730fc4cb34 by Evan Brown <ezb@google.com>:
      
      Rename node_hash_policy to node_slot_policy.
      
      Motivation: we can potentially reuse this code for node_btree_*.
      PiperOrigin-RevId: 410082271
      GitOrigin-RevId: 2130ba98c8359b08d97fb16d84dfd05687005dcf
      Change-Id: Ie052084cf992dee250d8b2f388d39c4de0dcff40
      Abseil Team committed
  28. 16 Nov, 2021 1 commit
  29. 15 Nov, 2021 1 commit
    • Export of internal Abseil changes · d587c966
      --
      355b8f7b0070b005d53d94ee4180e95559ba2c88 by Derek Mauro <dmauro@google.com>:
      
      Documentation: don't define absl::Status::ok() in terms of itself
      
      Fixes #1058
      
      PiperOrigin-RevId: 410035651
      
      --
      31c512c834b3a8979297adc5006c3727a3c6554b by Evan Brown <ezb@google.com>:
      
      Cleanup: move set_params/set_slot_policy into btree_set.h and move map_params into btree_map.h.
      
      Also change some `sizeof(value_type)`s to `sizeof(slot_type)`s and update some comments/variable names referring to values to refer to slots as appropriate in btree.h.
      
      Motivation: preliminary cleanup towards node_btree_*.
      PiperOrigin-RevId: 409991342
      
      --
      3129ca320d61a82f1c9ee8c02a23d25024eea4ab by Abseil Team <absl-team@google.com>:
      
      Use simpler implementation for AddressIsReadable.
      
      In particular, current solution doesn't work on systems configured with large
      pid_t space.
      
      PiperOrigin-RevId: 409397716
      
      --
      f71067f7494b19ce4a2e1df730b934dc931c51b2 by Martijn Vels <mvels@google.com>:
      
      Add Span dependency
      
      PiperOrigin-RevId: 409198889
      GitOrigin-RevId: 355b8f7b0070b005d53d94ee4180e95559ba2c88
      Change-Id: I7f4df3ec7739fdfde61d8ba983f07a08f6f1c7d7
      Abseil Team committed
  30. 11 Nov, 2021 1 commit
    • Export of internal Abseil changes · f2dbd918
      --
      317c7bd0caa12fa0a4dc65dc9c8e645211f85872 by Abseil Team <absl-team@google.com>:
      
      Elide the Emscripten JS-based stack trace and symbolization functions when
      building in Standalone Mode.
      
      Users will need to set `-DSTANDALONE_WASM=1` in some toolchain(s).
      
      PiperOrigin-RevId: 408961649
      
      --
      92ba3ab1ef3edee4b7fb9e151f2061661e7beb0a by Derek Mauro <dmauro@google.com>:
      
      Suppress MSVC warning "C4127: conditional expression is constant"
      
      Fixes #1004
      
      PiperOrigin-RevId: 408920356
      GitOrigin-RevId: 317c7bd0caa12fa0a4dc65dc9c8e645211f85872
      Change-Id: Ieca0a9e263874ba5bd93110dc437c56bc59ad5a7
      Abseil Team committed
  31. 10 Nov, 2021 1 commit
    • Export of internal Abseil changes · 732b5580
      --
      4324716dc5384f03dcd7e36e8cca0e944e4dac74 by Evan Brown <ezb@google.com>:
      
      Clarify comments about API differences from std::{set,map} in btree headers.
      
      We note that the most important API differences are mentioned in the next paragraph and that other API differences are minor. An example of another minor API difference is the note about std::launder in the comment for `extract`.
      
      Motivation: readers shouldn't feel like they need to read the entire header file to understand why b-tree containers are not "drop-in replacements" for STL containers.
      PiperOrigin-RevId: 408703780
      
      --
      7e8da4f14afd25d11713eee6b743ba31605332bf by Derek Mauro <dmauro@google.com>:
      
      Remove the test for absl::base_internal::NominalCPUFrequency() from OSS code
      
      This is an internal-only function that should never by called by OSS code.
      By its nature fails on unsupported platforms.
      Google code has tests for this function on supported internal platforms.
      
      Fixes #1053
      
      PiperOrigin-RevId: 408692861
      
      --
      37bad2e003b17e3f82d6fd5d90ae183553c018b0 by Abseil Team <absl-team@google.com>:
      
      To avoid triggering -Wmissing-variable-declarations warnings, ABSL_FLAG now
      declares the Flag before defining it.
      
      PiperOrigin-RevId: 408673990
      GitOrigin-RevId: 4324716dc5384f03dcd7e36e8cca0e944e4dac74
      Change-Id: I8c8ea73c4a4e38729c5bfdfa3fefb5d593e0536c
      Abseil Team committed
  32. 09 Nov, 2021 1 commit
    • Export of internal Abseil changes · 39f46faa
      --
      83e4cdf03a4d702b30e69204060de09e462e23c6 by Greg Falcon <gfalcon@google.com>:
      
      Revert the crc addition to RefcountAndFlags, and restore related comments to their original state.
      
      In development, the implementation of SetExpectedCrc() changed, and there is no longer a need to track the CRC status in the refcount.
      
      Since the distinction between IsOne() and IsMutable() is subtle *and unused*, removing it now can help avoid subtle bugs in the future.  This distinction can always be added back later, if it proves necessary.
      
      Keep the reserved bit for now; all it costs is one extra mask instruction in the refcount checks, and space for extra state in Cord is always hard to find.
      
      PiperOrigin-RevId: 408647038
      
      --
      ee67585cf66954176615271f50f8b278119dd138 by Greg Falcon <gfalcon@google.com>:
      
      Implement Cord::SetExpectedChecksum() and Cord::ExpectedChecksum().
      
      SetExpectedChecksum() will store a uint32_t out-of-band alongside a Cord's data.  This value persists through copies and assignments.  Mutating operations on a Cord cause the value to be forgotten.  ExpectedChecksum() retrieves the stored value, if present.
      
      This API is intended for storing a CRC32C checksum alongside data, allowing checksums to be passed through dataflows and validated at the final step.  However, this API is agnostic to the meaning of the stored value.  No CRC32C validation is performed by these new APIs.
      
      This implementation adds a new CordRep node, CordRepCrc.  A CordRepCrc may (currently) only live at the top of a tree.  This allows traversal logic to be agnostic to these nodes, instead putting the needed branches at the mutation level.    This also implements the property requested from API review, that any mutation is guaranteed to permanently forget the stored CRC.
      
      PiperOrigin-RevId: 408611221
      
      --
      a86f592402b37c854ebdc77d2b9b425451a7a675 by Martijn Vels <mvels@google.com>:
      
      Move 'ExtractResult' into CordRep
      
      The result of an extract operation is logically identical for any tree implementation, and having a single type makes 'tree independent' implementation in cord.cc more concise.
      
      PiperOrigin-RevId: 408332408
      
      --
      baa7647e21db59a87f75af9cac62172ce38a0f71 by Abseil Team <absl-team@google.com>:
      
      Replace usages of `assert` macros with `ABSL_HARDENING_ASSERT`.
      
      PiperOrigin-RevId: 408272133
      
      --
      c7658133d8662c39fa5035fc93a364c7c3d327e0 by Martijn Vels <mvels@google.com>:
      
      Add CordRepBtree::ExtractAppendBuffer
      
      PiperOrigin-RevId: 407944179
      
      --
      5775100363b5890ebfe710fadebf040445eab991 by Martijn Vels <mvels@google.com>:
      
      Add CordRepConcat::ExtractAppendBuffer
      
      PiperOrigin-RevId: 407932968
      
      --
      9f520ba1600a93352c78f644a369c7c76195ee86 by Greg Falcon <gfalcon@google.com>:
      
      Add cordz tracking for crc nodes.
      
      This also adds a new kSetExpectedChecksum method to the list of tracked methods.  This is presently unused but will be used soon.
      
      PiperOrigin-RevId: 407884120
      GitOrigin-RevId: 83e4cdf03a4d702b30e69204060de09e462e23c6
      Change-Id: I134ace2d87215813eaa60a282996a33884676c06
      Abseil Team committed
  33. 05 Nov, 2021 1 commit
    • Export of internal Abseil changes · c86347d4
      --
      5e45aadfb89e366dedd1fcad5034a76c5c10ad76 by James Y Knight <jyknight@google.com>:
      
      Correct the conditions for std::{optional,variant,any} availability on Apple platforms.
      
      Before XCode 12.5, the availability declarations incorrectly excluded one release on which the features were in fact available. This was corrected in https://github.com/llvm/llvm-project/commit/7fb40e1569dd66292b647f4501b85517e9247953
      
      Unfortunately, we cannot simply switch abseil to the corrected versions, as that will cause build failures when using the older XCode toolchain. So, we check the version, and choose the correct set of versions for the toolchain in use.
      
      PiperOrigin-RevId: 407667302
      
      --
      376fa06cde048e536e9447336b27bebf598ed4ea by Greg Falcon <gfalcon@google.com>:
      
      Cord implementation change: Add a new CordRepCrc node type.
      
      This is an implementation detail that will allow storing expected CRCs alongside cord data.  This node is intended only to live at the top of Cord trees.
      
      PiperOrigin-RevId: 407587140
      GitOrigin-RevId: 5e45aadfb89e366dedd1fcad5034a76c5c10ad76
      Change-Id: Iea3ca001c0cbb4deec8286b5581b30dc172a9918
      Abseil Team committed
  34. 04 Nov, 2021 1 commit
    • Export of internal Abseil changes · d6c75d9d
      --
      9f6ef337f282272bc098330c9ccacd9d39155db4 by Abseil Team <absl-team@google.com>:
      
      Make DestroyElements an empty function if the value types are trivially deconstructible.
      
      PiperOrigin-RevId: 407345743
      
      --
      a639bbf6f22446d6ba3da9e2c205e26cda4bebc5 by Derek Mauro <dmauro@google.com>:
      
      Add ctest --output-on-failure to the CMake install test
      
      PiperOrigin-RevId: 407333671
      
      --
      54d0577fa6ba1159c6a86410ae185c52f4afaff6 by Derek Mauro <dmauro@google.com>:
      
      Fix Android build of elf_mem_image.cc
      
      PiperOrigin-RevId: 407331032
      GitOrigin-RevId: 9f6ef337f282272bc098330c9ccacd9d39155db4
      Change-Id: I7e13f01cd804aec50f280ac25934c9ec48ef3c5f
      Abseil Team committed