Skip to content
Snippets Groups Projects
  1. Jan 25, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 5e0dcf72
      Abseil Team authored
      --
      a9115ecdf91183528f677fbbd9294652ab68c35f by CJ Johnson <johnsoncj@google.com>:
      
      Shorten the names of the args of the public InlinedVector member functions
      
      PiperOrigin-RevId: 230963027
      
      --
      93eaa2e3826901bafd16b088c8b5b272a2650fbb by CJ Johnson <johnsoncj@google.com>:
      
      Elevates input/forward iterator type checking to the top level of the InlinedVector API
      
      PiperOrigin-RevId: 230771558
      GitOrigin-RevId: a9115ecdf91183528f677fbbd9294652ab68c35f
      Change-Id: I30524e1a2a6260c6947a7ad756caade9b0b2c82f
      5e0dcf72
  2. Jan 24, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 0dffca4e
      Abseil Team authored
      --
      5804cc13b413412988248835459b90cd15ec43d9 by Abseil Team <absl-team@google.com>:
      
      Mark raw_hash_set::clear() with the ABSL_ATTRIBUTE_REINITIALIZES attribute.
      
      This prevents false positives in the clang-tidy check bugprone-use-after-move;
      it allows reset() to be called on a moved-from raw_hash_set without any
      warnings, and the raw_hash_set will thereafter be regarded as initialized again.
      
      PiperOrigin-RevId: 230717196
      
      --
      ff5961a5600ae19b69a9cba6912126cdf2858f38 by CJ Johnson <johnsoncj@google.com>:
      
      Swaps DisableIfIntegral<> for EnableIfInputIterator<> for Iterator member functions of InlinedVector
      
      PiperOrigin-RevId: 230559521
      
      --
      3f9754ccbeecbd40f235c6f2465279e045ff51d9 by Derek Mauro <dmauro@google.com>:
      
      Import GitHub PR 254
      https://github.com/abseil/abseil-cpp/pull/254
      
      Fixes warnings from -Wclass-memaccess (base_internal::ThreadIdentity?
      with no trivial copy-assignment).
      
      PiperOrigin-RevId: 230536048
      
      --
      8af03a654ce9a4a7f55384bc7eb1ed64878ac2ec by Chris Kennelly <ckennelly@google.com>:
      
      absl: cap SpinLock backoff to 4ms
      
      The current backoff logic has 3 problems:
      1. It can produce too high values (up to 256ms), which can negatively
      affect tail latency. The value was chosen long time ago and now it's
      a good idea to reconsider it.
      2. It does not have low bound, so on any iteration it can produce
      a very small value that will lead to unnecessary cpu consumption.
      3. It does not increase low bound with the number of iterations.
      So if the SpinLock is actually somehow locked for a very prolonged time,
      a waiter can still wake periodically.
      
      Rework the logic to solve these problems.
      Add lower bound of 128us, no code should rely on absence of episodic
      delays in this range as they can occur everywhere.
      Lower upper bound to 4ms. A thread sleeping for 4ms does not consume
      significant cpu time (see below).
      Grow lower bound with the number of iterations.
      
      This is cpu consumption of a process doing usleep(x) in a loop
      (sampled with ps):
      
          64us -> 4.0%
         128us -> 2.7%
         256us -> 3.5%
         512us -> 2.8%
        1024us -> 1.6%
        2048us -> 0.6%
        4096us -> 0.3%
        8192us -> 0.0%
      
      Few millisecond sleeps do not consume significant time.
      
      PiperOrigin-RevId: 230534015
      
      --
      37ebba92289ca556cb2412cd8b3cb4c1ead3def7 by Samuel Benzaquen <sbenza@google.com>:
      
      Add override and dispose hooks to the hashtable sampler.
      
      PiperOrigin-RevId: 230353438
      
      --
      89c8f90175233ce9964eb3412df04e8a3cff0c0f by Andy Getzendanner <durandal@google.com>:
      
      Fix a comment typo.
      
      PiperOrigin-RevId: 229986838
      GitOrigin-RevId: 5804cc13b413412988248835459b90cd15ec43d9
      Change-Id: Iedb5e2cc9c0b924635c1c87b537780ab6b5b899f
      0dffca4e
  3. Jan 23, 2019
  4. Jan 18, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 0b1e6d41
      Abseil Team authored
      --
      461c1b6eb19490429db3bc6dd10ee32df9429cd7 by Samuel Benzaquen <sbenza@google.com>:
      
      Group all the capacity/growth calculation in one place.
      This helps remove the unnecessary floating point operations.
      
      PiperOrigin-RevId: 229928140
      GitOrigin-RevId: 461c1b6eb19490429db3bc6dd10ee32df9429cd7
      Change-Id: Ib00f85a6033fcd06a1d38a5987670b1524a80f93
      0b1e6d41
  5. Jan 17, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · efccc502
      Abseil Team authored
      --
      b7d4f72ebb8a052cb2c6dfbfb628200eb64585c5 by CJ Johnson <johnsoncj@google.com>:
      
      `Hash` -> `H` for AbslHashValue in InlinedVector
      
      PiperOrigin-RevId: 229765535
      
      --
      ecceb8dc7eb9fe576dd0b8f0e95b5d3c3e92795d by Abseil Team <absl-team@google.com>:
      
      fix ubsan error in Mutex on arm32
      
      PiperOrigin-RevId: 229744897
      GitOrigin-RevId: b7d4f72ebb8a052cb2c6dfbfb628200eb64585c5
      Change-Id: Ic0fd2252f9838d5fceffc808d05a09a8bc872efc
      efccc502
  6. Jan 16, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 5e6a7813
      Abseil Team authored
      --
      4a492de32dd1e02c5c3600bfdb36da7af7855210 by Samuel Benzaquen <sbenza@google.com>:
      
      Fix potential intergral overflow in the parser.
      
      PiperOrigin-RevId: 229378698
      
      --
      c5d5385eff879a65582138febb44c79725baf582 by CJ Johnson <johnsoncj@google.com>:
      
      Adds an explanatory comment over AbslHashValue(...) for InlinedVector
      
      PiperOrigin-RevId: 229237373
      GitOrigin-RevId: 4a492de32dd1e02c5c3600bfdb36da7af7855210
      Change-Id: Iad9edfde23ab5af9001ce80e3d00a34be3d73815
      5e6a7813
  7. Jan 14, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 5eea0f71
      Abseil Team authored
      --
      70b243f160a2f0f222066f62e06cc4346aea683d by Gennadiy Civil <misterg@google.com>:
      
      Replace tests with new googletest Test Suite APIs
      
      PiperOrigin-RevId: 228901526
      
      --
      28fe449f416c3d3fe882ef3dfa4289b94be5f8af by CJ Johnson <johnsoncj@google.com>:
      
      Changes the style of enable_if on InlinedVector::insert(...) to match all others
      
      PiperOrigin-RevId: 228878640
      
      --
      5b4732f783d16cfb19c8c42962201aafe12b3c0f by Abseil Team <absl-team@google.com>:
      
      Update the absl::FromDateTime() deprecation message to refer to
      absl::FromCivil(), the recommended replacement despite a slight
      change in behavior for skipped civil times.
      
      PiperOrigin-RevId: 228820837
      
      --
      ee77056d753bb8665236a173064af85d935acfc4 by Gennadiy Civil <misterg@google.com>:
      
      Bump googletest to the latest
      
      PiperOrigin-RevId: 228792994
      
      --
      aebc04f76b83a26432dba8e6199c971d5b69df0f by CJ Johnson <johnsoncj@google.com>:
      
      Switches InlinedVector input/forward iterator tagged dispatch from callsite to template decorator
      
      PiperOrigin-RevId: 228771063
      GitOrigin-RevId: 70b243f160a2f0f222066f62e06cc4346aea683d
      Change-Id: I5f8cd05685ff642eff81187b8e207a0bdbcf073a
      5eea0f71
  8. Jan 10, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 66f9becb
      Abseil Team authored
      --
      da7b6d9d43b2951a3487bbfd41aa2ee96b2813ef by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 228757155
      
      --
      2789fc170bed4b671a01a4106e3ba5059ff225fb by CJ Johnson <johnsoncj@google.com>:
      
      `Other<X>` => `The<X>` for AbslHashValue of InlinedVector
      
      PiperOrigin-RevId: 228558678
      GitOrigin-RevId: da7b6d9d43b2951a3487bbfd41aa2ee96b2813ef
      Change-Id: Iaeb33ae791f093d94ad9f893b3455d5403429089
      66f9becb
  9. Jan 09, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 018b4db1
      Abseil Team authored
      --
      fd86c60bac6c41f1629ce1ab7dc1c8edff398a59 by Alex Strelnikov <strel@google.com>:
      
      Import PR: https://github.com/abseil/abseil-cpp/pull/243
      Fix Windows ARM64 intrinsic use.
      
      PiperOrigin-RevId: 228535649
      
      --
      a0ca663f606a3b31493683e405be2b1cff450894 by CJ Johnson <johnsoncj@google.com>:
      
      Fixes issue of mixed signedness comparison
      
      PiperOrigin-RevId: 228535623
      
      --
      d71aaa1705d7303b43fe02088fe07b153e647796 by Shaindel Schwartz <shaindel@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 228534365
      
      --
      c1b49d361aa880198e071f93997724bddbcd4760 by Samuel Benzaquen <sbenza@google.com>:
      
      Internal cleanup
      
      PiperOrigin-RevId: 228406627
      
      --
      0c4b1c2bed107698e209055b3431771d7a1bdba1 by Dave Walker <dawalker@google.com>:
      
      Add comments about the purpose of container_internal::slot_type.
      
      PiperOrigin-RevId: 228264537
      
      --
      060aa6077d2f3a0a129149e0644d19f2f521b241 by Abseil Team <absl-team@google.com>:
      
      #include <cmath> in hashtablez_sampler.cc
      
      Expected to fix the android build.
      
      PiperOrigin-RevId: 228222550
      GitOrigin-RevId: fd86c60bac6c41f1629ce1ab7dc1c8edff398a59
      Change-Id: I26339fd4548c1a81b037cb52c26910d1bd850ea8
      018b4db1
    • Alex Strelnikov's avatar
      Merge pull request #243 from ThomsonTan/FixIntrinsic · 9449ae94
      Alex Strelnikov authored
      _umul128 intrinsic is x64 only and not available on Windows ARM64
      9449ae94
  10. Jan 07, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · b16aeb67
      Abseil Team authored
      --
      5f1cf6547231f1b1daad6d1b785df6b0b999b3c9 by Samuel Benzaquen <sbenza@google.com>:
      
      Fix uninitialized member in the `iterator` class by using a union of the two
      possible states of the iterator.
      This silences a Wuninitialized warning in gcc>=7.
      
      PiperOrigin-RevId: 228175148
      
      --
      98b4e3204c0ec3cfd4cb037e24d443ea4b63fc84 by CJ Johnson <johnsoncj@google.com>:
      
      Factors out the implementation of InlinedVector::swap(...) into a private member function
      
      PiperOrigin-RevId: 228173383
      
      --
      f1432ad3a8b05285c6d55bc4754cfae765485b7f by Abseil Team <absl-team@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 227891984
      
      --
      03fc00c7a4efc6000e6d9125cb2e252bffda76fe by Andy Getzendanner <durandal@google.com>:
      
      Add a missing linebreak to a comment and markdownify two unordered lists.
      
      PiperOrigin-RevId: 227861389
      
      --
      0d66c9afba4fc9aa52e61d9fb410e165018a7b48 by Abseil Team <absl-team@google.com>:
      
      Add an API to register a new source for the cycle clock.
      
      PiperOrigin-RevId: 227779218
      
      --
      14d3f9b70c8818b8541e5fb2f6ca4c59d479de31 by Andy Getzendanner <durandal@google.com>:
      
      Correct a typo in a stripping marker.
      
      PiperOrigin-RevId: 227750014
      
      --
      59df88740f4e315beb57a8772f8bcf7879440c74 by Matt Kulukundis <kfm@google.com>:
      
      Switch thread local handling to be more cross platform
      
      PiperOrigin-RevId: 227695133
      
      --
      75deed5bfcb5c42534e933f104aa7d94e11e348d by Abseil Team <absl-team@google.com>:
      
      Rollback workaround toolchain bug for incorrect handling of thread_local in inline
      functions
      
      PiperOrigin-RevId: 227689133
      
      --
      54994bf0afec026e6e0e7a199df0bbb4b7d9a4aa by Derek Mauro <dmauro@google.com>:
      
      Add -pthread to linkopts where it actually belongs, on the library
      that uses it.
      Fixes https://github.com/abseil/abseil-cpp/issues/240.
      
      PiperOrigin-RevId: 227612492
      
      --
      893875f3536b7e0a1bad993aa6b2e083abb3b25a by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 227582833
      
      --
      506c9b8e9002ca3389c7040473b68d4cbf94bdcc by Matt Kulukundis <kfm@google.com>:
      
      Workaround toolchain bug for incorrect handling of thread_local in inline
      functions
      
      PiperOrigin-RevId: 227561449
      
      --
      29ee90d96dfe3114cf93f9bb92ea0cc9e768a407 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 227054634
      GitOrigin-RevId: 5f1cf6547231f1b1daad6d1b785df6b0b999b3c9
      Change-Id: Ibc90566d92ee6e0ad7e150f513ec7f5d22ec0a94
      b16aeb67
  11. Jan 03, 2019
  12. Dec 27, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 7ffbe09f
      Abseil Team authored
      --
      027adbb0bceda5c3908f7f4d3a911284ee407b3d by Abseil Team <absl-team@google.com>:
      
      Make ABSL_CACHELINE_ALIGNED work for Visual C++.
      
      PiperOrigin-RevId: 227007205
      GitOrigin-RevId: 027adbb0bceda5c3908f7f4d3a911284ee407b3d
      Change-Id: I572ec7e79dda1291eb324c90a39be90e744b4b05
      7ffbe09f
  13. Dec 26, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 01b471d9
      Abseil Team authored
      --
      ffe1bf0e5f98c77cf4193f24ae9ce94d16a72c6e by Alex Strelnikov <strel@google.com>:
      
      Remove accidental duplication of conanfile.py.
      
      PiperOrigin-RevId: 226926125
      
      --
      daf639ddd32c57d1c5ab99b26a9b15107f47ce16 by Derek Mauro <dmauro@google.com>:
      
      Fix the CMake build for absl::container.
      This target is deprecated and will be removed in the future.
      
      Fixes https://github.com/abseil/abseil-cpp/pull/238
      
      PiperOrigin-RevId: 226921798
      
      --
      b8ab2bb9081c266ced1d966c86d5b19af6b5b3ef by Abseil Team <absl-team@google.com>:
      
      Cleanup: Fix some ClangTidy warnings.
      
      PiperOrigin-RevId: 226678127
      
      --
      8cdc95316fc8baba00073c38a444c089ed2d5f5e by Abseil Team <absl-team@google.com>:
      
      Cleanup: Fix some ClangTidy warnings.
      
      PiperOrigin-RevId: 226567814
      GitOrigin-RevId: ffe1bf0e5f98c77cf4193f24ae9ce94d16a72c6e
      Change-Id: Idfe30b8b3229082eb7db4bfa928d3257be7dce1a
      01b471d9
  14. Dec 21, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 7bd8f36c
      Abseil Team authored
      --
      d99e8545a19cec7569c1f04404398e4d31e71e81 by Mark Barolak <mbar@google.com>:
      
      Internal import of GitHub PR #231: "Add Conan recipe"
      https://github.com/abseil/abseil-cpp/pull/231
      
      PiperOrigin-RevId: 226376774
      GitOrigin-RevId: d99e8545a19cec7569c1f04404398e4d31e71e81
      Change-Id: I763db5e14b9d0250c0859b3c12a4b8f374362c15
      7bd8f36c
    • Abseil Team's avatar
      Export of internal Abseil changes. · 968a34ff
      Abseil Team authored
      --
      7fa1107161a03dac53fb84c2b06d8092616c7b13 by Abseil Team <absl-team@google.com>:
      
      Harden the generic stacktrace implementation for use during early program execution
      
      PiperOrigin-RevId: 226375950
      
      --
      079f9969329f5eb66f647dd3c44b17541b1bf217 by Matt Kulukundis <kfm@google.com>:
      
      Workaround platforms that have over-aggressive warnings on -Wexit-time-destructors
      
      PiperOrigin-RevId: 226362948
      
      --
      1447943f509be681ca5495add0162c750ef237f1 by Matt Kulukundis <kfm@google.com>:
      
      Switch from 64 to size_t atomics so they work on embedded platforms that do not
      have 64 bit atomics.
      
      PiperOrigin-RevId: 226210704
      
      --
      d14d49837ae2bcde74051e0c79c18ee0f43866b9 by Tom Manshreck <shreck@google.com>:
      
      Develop initial documentation for API breaking changes process:
      
      PiperOrigin-RevId: 226210021
      
      --
      7ea3d7fe0e86979dab83a5fc9cc3bf1d6cb3bd53 by Abseil Team <absl-team@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 226195522
      
      --
      7de873e880d7f016a4fa1e08d626f0535cc470af by Abseil Team <absl-team@google.com>:
      
      Make Abseil LICENSE files newline terminated, with a single
      trailing blank line.  Also remove line-ending whitespace.
      
      PiperOrigin-RevId: 226182949
      
      --
      7d00643fadfad7f0d992c68bd9d2ed2e5bc960b0 by Matt Kulukundis <kfm@google.com>:
      
      Internal cleanup
      
      PiperOrigin-RevId: 226045282
      
      --
      c4a0a11c0ce2875271191e477f3d36eaaeca4613 by Matt Kulukundis <kfm@google.com>:
      
      Internal cleanup
      
      PiperOrigin-RevId: 226038273
      
      --
      8ee4ebbb1ae5cda119e436e5ff7e3aa966608c10 by Matt Kulukundis <kfm@google.com>:
      
      Adds a global sampler which tracks a fraction of live tables for collecting
      telemetry data.
      
      PiperOrigin-RevId: 226032080
      
      --
      d576446f050518cd1b0ae447d682d8552f0e7e30 by Mark Barolak <mbar@google.com>:
      
      Replace an internal CaseEqual function with calls to the identical absl::EqualsIgnoreCase.  This closes out a rather old TODO.
      
      PiperOrigin-RevId: 226024779
      
      --
      6b23f1ee028a5ffa608c920424f1220a117a8f3d by Abseil Team <absl-team@google.com>:
      
      Add December 2018 LTS branch to list of LTS branches.
      
      PiperOrigin-RevId: 226011333
      
      --
      bb0833a43bdaef4c8c059b17bcd27ba9a085a114 by Mark Barolak <mbar@google.com>:
      
      Explicitly state that when the SimpleAtoi family of functions encounter an error, the value of their output parameter is unspecified.
      
      Also standardize the name of the output parameter to be `out`.
      
      PiperOrigin-RevId: 225997035
      
      --
      46c1876b1a248eabda7545daa61a74a4cdfe9077 by Abseil Team <absl-team@google.com>:
      
      Remove deprecated CMake function absl_test, absl_library and absl_header_library
      
      PiperOrigin-RevId: 225950041
      GitOrigin-RevId: 7fa1107161a03dac53fb84c2b06d8092616c7b13
      Change-Id: I2ca9d3aada9292614527d1339a7557494139b806
      968a34ff
  15. Dec 20, 2018
  16. Dec 17, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 111ca706
      Abseil Team authored
      --
      a2adbf75201f6b7feba929f77dfc4f87f9c1110b by Abseil Team <absl-team@google.com>:
      
      This change allows for capturing the address of the mutex from which a call to `Block(...)` could be introducing latency. The attribute is a no-op if the application is not being built with XRay instrumentation.
      
      See http://llvm.org/docs/XRay.html for more information about XRay.
      
      PiperOrigin-RevId: 225752598
      
      --
      6bc7f25573ddc6711f484dfacab9459f45e0bf42 by Abseil Team <absl-team@google.com>:
      
      Update absl/utility/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 225651883
      
      --
      4acde5e72032f31a26a1ffa53a28f35dbb0bd7d3 by Abseil Team <absl-team@google.com>:
      
      Update absl/types/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 225584788
      
      --
      fe2c740d64b17cece25eee4e5d2196a7c059d3e9 by Abseil Team <absl-team@google.com>:
      
      Update auto-generated build options files.
      
      PiperOrigin-RevId: 225557283
      
      --
      cd779dddceeee191ee82deb6b9030c4db288e758 by Jon Cohen <cohenjon@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 225556657
      
      --
      3d56dd132d845930c3fb520a39ee77ecb2430bd2 by Matt Kulukundis <kfm@google.com>:
      
      Internal cleanup
      
      PiperOrigin-RevId: 225488946
      GitOrigin-RevId: a2adbf75201f6b7feba929f77dfc4f87f9c1110b
      Change-Id: I1b2178e053bdebc8cf3dcb017b0e247619b81a0c
      111ca706
  17. Dec 13, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 389ec3f9
      Abseil Team authored
      --
      636137f6f0de910691a3950387fefacfa4909fb8 by Abseil Team <absl-team@google.com>:
      
      Add move semantics to absl::container_internal::CompressedTuple
      
      PiperOrigin-RevId: 225394165
      
      --
      43da91e4f95a196b2e6b76f1c2f4158817b0ebb0 by Greg Falcon <gfalcon@google.com>:
      
      Add a constructor to allow for global absl::Mutex instances.
      
      This adds a new constexpr constructor to absl::Mutex, invoked with the absl::kConstInit tag value, which is intended to be used to construct Mutex instances with static storage duration.
      
      What's tricky about is absl::Mutex (like std::mutex) is not a trivially destructible class, so by the letter of the law, accessing a global Mutex instance after it is destroyed results in undefined behavior.  Despite this, we take care in the destructor to not invalidate the memory layout of the Mutex.  Using a kConstInit-constructed global Mutex after it is destroyed happens to work on the toolchains we use.  Google relies heavily on this behavior internally.
      
      Code sanitizers that detect undefined behavior are able to notice use-after-free of globals, and might complain about this pattern.
      
      PiperOrigin-RevId: 225389447
      
      --
      7b553a54bc6460cc7008b028552e66799475ca64 by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 225373389
      
      --
      fd0c722d217b3b509102274765ccb1a0b596cf46 by Abseil Team <absl-team@google.com>:
      
      Update absl/time/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 225246853
      
      --
      9f8f3ba3b67a6d1ac4ecdc529c8b8eb0f02576d9 by Abseil Team <absl-team@google.com>:
      
      Update absl/synchronisation/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 225237980
      
      --
      a3fdd67dad2e596f804f5e100c8d3a74d8064faa by Abseil Team <absl-team@google.com>:
      
      Internal cleanup
      
      PiperOrigin-RevId: 225226813
      
      --
      48fab23fb8cdca45e95da14fce0de56614d09c25 by Jon Cohen <cohenjon@google.com>:
      
      Use a shim #define for wchar_t in msvc in int128.
      
      On ancient versions of msvc and with some compatibility flags on wchar_t is a typedef for unsigned short, whereas on standards-conforming versions wchar_t is a typedef for __wchar_t.  The first situation causes int128 to not compile as you can't define both `operator wchar_t()` and `operator unsigned short()` because they are the same type.
      
      This CL introduces a wrapper #define in order to abstract over the different typedefs for wchar_t.  We do a define instead of a typedef so that we can #undef at the end and not leak the symbol, since we need it in a header.
      
      https://docs.microsoft.com/en-us/previous-versions/dh8che7s(v=vs.140) has more detail about the underlying problem.
      
      PiperOrigin-RevId: 225223756
      GitOrigin-RevId: 636137f6f0de910691a3950387fefacfa4909fb8
      Change-Id: Iad94e52e9484c5acec115a2f09ef2d5ec22c2074
      389ec3f9
    • Uilian Ries's avatar
      #187 Add Conan topics · 1aa550f8
      Uilian Ries authored
      
      Signed-off-by: default avatarUilian Ries <uilianries@gmail.com>
      1aa550f8
  18. Dec 12, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 8fbcdb90
      Abseil Team authored
      --
      e7f892a0b9b313b434c5f9e9a2365b377204b60e by Abseil Team <absl-team@google.com>:
      
      Remove internal CaseEqual helper now that we have the equivalent absl::EqualsIgnoreCase.
      
      PiperOrigin-RevId: 225189084
      
      --
      722af2c74766d2fe3cee13c8dc886d39aedda597 by Abseil Team <absl-team@google.com>:
      
      Add -Wno-extra-semi-stmt to silence that warning.
      
      The [-Wno-extra-semi] is already disabled in the build.  This
      change will allow the build to remain consistent across newer
      versions of clang which are now issuing a new similiar warning
      [-Wextra-semi-stmt]:
      
        https://clang.llvm.org/docs/ReleaseNotes.html#major-new-features
        https://clang.llvm.org/docs/DiagnosticsReference.html#wextra-semi-stmt
      
      PiperOrigin-RevId: 225185101
      
      --
      f7fd6244b4efcf0331631a54b7b0cf5f1f691a89 by CJ Johnson <johnsoncj@google.com>:
      
      Move using directive in swap implementation
      
      PiperOrigin-RevId: 225017825
      
      --
      3005841725df5b9cdb35c8a5319bb4c78b5dc2b7 by Abseil Team <absl-team@google.com>:
      
      Update absl/strings/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 224860689
      
      --
      eeaf7099924b182472bfea3636ef6d9a39adfc50 by CJ Johnson <johnsoncj@google.com>:
      
      Prefer public method over private for InlinedVector allocator access
      
      PiperOrigin-RevId: 224825775
      
      --
      db9d218e3ca7ab400eef97778b720cb082a03281 by Eric Fiselier <ericwf@google.com>:
      
      Take advantage of secret libc++ resize uninitialized function in string.
      
      PiperOrigin-RevId: 224817877
      GitOrigin-RevId: e7f892a0b9b313b434c5f9e9a2365b377204b60e
      Change-Id: I051beee37ee03f0570bd2e068355ad75c8bdfcf8
      8fbcdb90
  19. Dec 10, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 455dc17b
      Abseil Team authored
      --
      bbb50c2e52241f0a5f8478bac89e6523ec8fd664 by CJ Johnson <johnsoncj@google.com>:
      
      The two InlinedVector copy constructors have identical definitions. This CL simply defines one in terms of the other
      
      PiperOrigin-RevId: 224734857
      GitOrigin-RevId: bbb50c2e52241f0a5f8478bac89e6523ec8fd664
      Change-Id: I617c239fd4f16fde0aa10a15fdac58a0cfd10f8a
      455dc17b
  20. Dec 07, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · f197d7c7
      Abseil Team authored
      --
      1a5fb4eb5bc6c0332962f659470a07908168aa5c by CJ Johnson <johnsoncj@google.com>:
      
      Move InlinedVector's AbslHashValue(...) definition to out of line
      
      PiperOrigin-RevId: 224389234
      
      --
      b7c5ccdfe17b9cb5f7124c8d591ce0989a15b9fb by Jon Cohen <cohenjon@google.com>:
      
      Add a shebang line and chmod +x generate_copts.py.  Note that we use the "python" command as suggested in PEP 934 (https://www.python.org/dev/peps/pep-0394/) as this script should work in both Python 2 and Python 3.
      
      Also adds a gitignore for __pycache__ for when using python3
      
      PiperOrigin-RevId: 224375405
      
      --
      c57a148a1106b21dbcd750541f10b058bf55a2bf by CJ Johnson <johnsoncj@google.com>:
      
      Adds comment to InlinedVector intended to help the g4 diffing algo to better identify the substantive change
      
      PiperOrigin-RevId: 224362807
      
      --
      b635ab981a07dc2434be7b0d164030a42cc67923 by Greg Falcon <gfalcon@google.com>:
      
      internal change
      
      PiperOrigin-RevId: 224362442
      
      --
      217021f7dcec31141a89b91930c241af062c2133 by CJ Johnson <johnsoncj@google.com>:
      
      Distinguishes the source of InlinedVector::at(...)'s bounds checking exception
      
      PiperOrigin-RevId: 224341645
      
      --
      01a5943560ce9216a9d8ccb1279b5c5c2f6e1019 by CJ Johnson <johnsoncj@google.com>:
      
      Relocates out of line member function definitions to their respective declarations in InlinedVector
      
      PiperOrigin-RevId: 224320130
      
      --
      b3d57fcddcd737e91aab812d69b82fef2ca43d7e by Abseil Team <absl-team@google.com>:
      
      On 32-bit systems, the alignment of int64 can be 4 bytes. Created a custom Int64 type (to go with the custom Int128 type) just for the purpose of testing layouts and alignments; it doesn't need to support actual arithmetic.
      
      PiperOrigin-RevId: 224209785
      GitOrigin-RevId: 1a5fb4eb5bc6c0332962f659470a07908168aa5c
      Change-Id: I9d6b1c441cd712709ebd6c0a8911d0755cab506f
      f197d7c7
  21. Dec 05, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 284378a7
      Abseil Team authored
      --
      22fa219d17b2281c0695642830c4300711bd65ea by CJ Johnson <johnsoncj@google.com>:
      
      Rearrange the private method declarations in InlinedVector
      
      PiperOrigin-RevId: 224202447
      
      --
      eed3c9f488f23b521bee41d3683eb6cc22517ded by Derek Mauro <dmauro@google.com>:
      
      Fix leak_check target (it was always a no-op when LSAN isn't available).
      Fixes https://github.com/abseil/abseil-cpp/issues/232
      
      PiperOrigin-RevId: 224201634
      
      --
      fc08039e175204b14a9561f618fcfc0234586801 by Greg Falcon <gfalcon@google.com>:
      
      Add parens around more invocations of min() and max() missed in my prior CL.
      
      PiperOrigin-RevId: 224162430
      
      --
      0ec5476a8293c7796cd84928a1a558b14f14f222 by Abseil Team <absl-team@google.com>:
      
      Update absl/numeric/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 224139165
      
      --
      2b46aa6fabb20c589661f8bbc84030ecf39ce394 by Abseil Team <absl-team@google.com>:
      
      Update absl/meta/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 224117258
      
      --
      6c951c798f8c6903bd8793a8a4b5f69244be8aa9 by Abseil Team <absl-team@google.com>:
      
      Fix 2 Unused C++ BUILD Dependencies
      
      PiperOrigin-RevId: 224070093
      
      --
      0ee7bd191708708f91fc5209c197fd93f6e4a8b3 by Greg Falcon <gfalcon@google.com>:
      
      Inside Abseil headers, wrap most invocations of methods and functions named `min` and `max` in parentheses, for better interoperability with Windows toolchains.
      
      CCTZ fixes will appear in a follow-up CL.
      
      PiperOrigin-RevId: 224051960
      
      --
      f562f56577b84a8bc07e5873775c01d068531bca by Jon Cohen <cohenjon@google.com>:
      
      Generate Abseil compile options.  The single source of truth is now absl/copts/copts.py
      
      The way this works goes something like this:
      copts.py acts as the configuration file.  We use python because unlike JSON it allows comments.  It has two maps in it: one from names to external flags, and one from names to internal flags.
      
      generate_copts.py imports the maps and loops through them to write GENERATED_copts.bzl and GENERATED_AbseilCopts.cmake
      
      AbseilConfigureCopts.cmake and configure_copts.bzl import their respective copts args and set the platform-appropriate copts into ABSL_DEFAULT_COPTS, ABSL_TEST_COPTS, ABSL_EXCEPTIONS_FLAG, and ABSL_EXCEPTIONS_LINKOPTS
      
      For Bazel, each BUILD file load()s configure_copts.bzl
      
      For CMake, AbseilHelpers.cmake include()s AbseilConfigureCopts.cmake to get the final copts and both inserts them as needed into legacy target rules and also makes them available to the rest of our CMakeLists.txt file.  We may instead want to include() AbseilConfigureCopts.cmake directly into each CMakeLists.txt file for consistency, but I'm not sure what the deal is with cmake and include guards, or if they are even needed.  That's also not as idiomatic -- CMake tends to use directory scope where globals set at a higher level CMakeLists.txt file are used in the subdirectory CMakeLists.txt files.
      
      PiperOrigin-RevId: 224039419
      
      --
      f7402f6bb65037e668a7355f0a003f5c05a3b6a7 by Abseil Team <absl-team@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 224036622
      GitOrigin-RevId: 22fa219d17b2281c0695642830c4300711bd65ea
      Change-Id: I6b505360539ff2aef8aa30c51a5f7d55db1c75cf
      284378a7
  22. Dec 04, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 44b0fafc
      Abseil Team authored
      --
      cd076f55c1fa600131f6dda392533dfe61679fc0 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 224008762
      
      --
      e05f62b01286d51044ff86ec6ef565749b9faf82 by Abseil Team <absl-team@google.com>:
      
      Create a pow10() test helper function to compute guaranteed-precise double values of 10^x. Not all standard libraries ship bit-accurate pow() functions, causing tests to fail that rely on expected values generated by it.
      
      PiperOrigin-RevId: 223883762
      
      --
      fd88e5e3f7ab80f7f5df9fd1488cd58b4573be69 by Abseil Team <absl-team@google.com>:
      
      Remove some absl:: qualifications to work around inline namespace bugs on MSVC 2015.
      
      PiperOrigin-RevId: 223869642
      
      --
      6276cfff969d596edd36a2bbaba65ee045808903 by Abseil Team <absl-team@google.com>:
      
      Update absl/memory/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 223854224
      
      --
      359de9afc7a34c975fd3e0cbc52afd96637d97bd by Chris Kennelly <ckennelly@google.com>:
      
      Mark spinlock_benchmark_common as alwayslink = 1.
      
      PiperOrigin-RevId: 223844536
      
      --
      450cd8cbe2789a6d54ed1eb87170259bb334f8b9 by Abseil Team <absl-team@google.com>:
      
      Support .* (pointer-to-member dereference) expressions in demangle.cc.
      
      PiperOrigin-RevId: 223826797
      
      --
      772ca92179c3634f3e31a80bbc272ed8022e3572 by Abseil Team <absl-team@google.com>:
      
      Fix misspellings in absl::variant comments and replace a ' with a `.
      
      PiperOrigin-RevId: 223807911
      
      --
      35dcdc2fbf299d195658aac101887f6dcad1de2f by Abseil Team <absl-team@google.com>:
      
      Bug fix in CMakeLists.txt file (SRCS --> HDRS).
      
      The compressed_tuple header-only library is being defined
      with the SRCS parameter instead of the HDRS parameter and
      this has been observed to cause some builds on some platforms
      to attempt to create a static library from it which fails
      since there are no .cc sources.
      
      PiperOrigin-RevId: 223805367
      
      --
      4a57a3d2045bb137c0c97958e45ce425190b8d3e by Chris Kennelly <ckennelly@google.com>:
      
      Add test that absl::make_unique value initializes memory.
      
      PiperOrigin-RevId: 223801819
      
      --
      dfe8289d7f4dcc6bb568a26aaf192a89e896bdfd by Chris Kennelly <ckennelly@google.com>:
      
      SpinLock: Use exchange to avoid missing wakeups.
      
      The default fast path for SpinLock::Unlock does not use an atomic.  If the
      SpinLock becomes contended while we are unlocking between lockword_.load and
      lockword_.store, we will fail to wake up the new waiter.  This can cause
      unexpected latency spikes.
      
      PiperOrigin-RevId: 223800369
      
      --
      9b9d35df786482f0016f77dd31691eff81503d23 by Abseil Team <absl-team@google.com>:
      
      Update absl/hash/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 223755819
      
      --
      c2014e2704b87e7cdce2d2a0287c7e2397752296 by Abseil Team <absl-team@google.com>:
      
      Update absl/debugging/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 223751986
      
      --
      d83a4e09126400e3fd80645cb03ee558f532271e by Derek Mauro <dmauro@google.com>:
      
      Cleanup synchronization benchmarks.
      
      PiperOrigin-RevId: 223589416
      
      --
      fad140b473586531b5b12843f942ec27dfcf5e93 by CJ Johnson <johnsoncj@google.com>:
      
      Makes unifies the order of forward_iterator and input_iterator overloads
      
      PiperOrigin-RevId: 223580660
      
      --
      6cd7c96faa7cc5f79f574e35a1b13837ef187d05 by Abseil Team <absl-team@google.com>:
      
      Internal Change.
      
      PiperOrigin-RevId: 223561629
      
      --
      bd2e545356b0f548af0e3c14bb2f7f0e712e49d0 by Shaindel Schwartz <shaindel@google.com>:
      
      Remove misleading comments. try_emplace() does not exist for the hash_set containers.
      
      PiperOrigin-RevId: 223543089
      
      --
      0cd380a53b587eb7aacc4003a4a3bbb6c78d7c10 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 223512551
      
      --
      7156dfee599cb72e9adddfe0e6ae07a95ddf10bb by Greg Miller <jgm@google.com>:
      
      Fixes UB that would result from constructing, multiplying, or dividing a
      Duration with a double "NaN" value. This CL changes the absl::Duration
      *implementation* to return an InfiniteDuration value that has the same sign as
      the given NaN.
      
      PiperOrigin-RevId: 223407499
      
      --
      196b7d18609958267951882baf7f9429e49bcafa by CJ Johnson <johnsoncj@google.com>:
      
      Addresses NVCC+MSVC compilation bug where `inlined_capacity()` was not considered valid in constexpr
      
      PiperOrigin-RevId: 223397718
      GitOrigin-RevId: cd076f55c1fa600131f6dda392533dfe61679fc0
      Change-Id: I5423ca6470f661a7c6f73aa8fee49990446f157f
      44b0fafc
    • Uilian Ries's avatar
      #187 Remove cctz as external dependency · db6a7368
      Uilian Ries authored
      
      - CCTZ was embedded in absl/time/internal
      
      Signed-off-by: default avatarUilian Ries <uilianries@gmail.com>
      db6a7368
  23. Dec 03, 2018
  24. Nov 29, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 926bfeb9
      Abseil Team authored
      --
      008301e65c323ea0b78e4a92221bf43f7f01e358 by Abseil Team <absl-team@google.com>:
      
      Add k...Pad17 through 20 PadSpec enum values.
      
      PiperOrigin-RevId: 223371590
      
      --
      ad0580b0a215257044e090181630793b7e5e9ab0 by Jon Cohen <cohenjon@google.com>:
      
      Make the table in the prefetch check not fit in L2 cache.  This should help deflake the test.
      
      PiperOrigin-RevId: 223224646
      
      --
      77c76690626b89944946d01da5e3428b763103e8 by Abseil Team <absl-team@google.com>:
      
      Fixed typo in container by replacing asbl::Hash with absl::Hash.
      
      PiperOrigin-RevId: 223083789
      GitOrigin-RevId: 008301e65c323ea0b78e4a92221bf43f7f01e358
      Change-Id: I81399f09cd82fbb27bcfec4c1517bb5d2fd07f3b
      926bfeb9
  25. Nov 27, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 13327deb
      Abseil Team authored
      --
      15d7bcf28220750db46930f4d8c090b54e3ae5fe by Jon Cohen <cohenjon@google.com>:
      
      Fix miscellaneous CMake change interleaving issues for the daily release:
        * add back the absl::container target
        * Add copts to absl_cc_library targets in absl/container/CMakeLists.txt
        * Add trailing newline to the end of AbseilConfigureCopts.cmake
      
      PiperOrigin-RevId: 223057096
      
      --
      baac35470d75b6561477f688dc4eb021f604cf71 by Abseil Team <absl-team@google.com>:
      
      Internal Cleanup.
      
      PiperOrigin-RevId: 223051579
      
      --
      6791c2f2e35b030b5579f36d3c607c6ba92fa089 by Abseil Team <absl-team@google.com>:
      
      Internal Change.
      
      PiperOrigin-RevId: 223046855
      
      --
      5467ad987ea82aef77d2f1cc85aa9105e7d9c320 by Samuel Benzaquen <sbenza@google.com>:
      
      Workaround for gcc bug https://gcc.gnu.org/PR88115
      
      PiperOrigin-RevId: 223041901
      
      --
      36fa5cfd41df2b71d26487c45363901bbf6a2463 by Tom Manshreck <shreck@google.com>:
      
      Clarify visit() constraints
      
      PiperOrigin-RevId: 223032194
      
      --
      afdf4013de036b411db7f92cde8a2493e6665223 by Abseil Team <absl-team@google.com>:
      
      Fix comment typos.
      
      PiperOrigin-RevId: 223024090
      
      --
      e11c01927eb8b898f6633282824022104b258342 by Jon Cohen <cohenjon@google.com>:
      
      Make absl::spinlock_test_common TESTONLY
      
      This should fix https://github.com/abseil/abseil-cpp/issues/221
      
      PiperOrigin-RevId: 222885323
      
      --
      5ccc576d1c68e4b92705aa8064f1e8d715e5415e by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 222877017
      
      --
      96ff25bf78c4f4bca0d6e61faa4feeab91a2e73c by Jon Cohen <cohenjon@google.com>:
      
      Align CMake and Bazel compile options.  This is the first step towards a single source of truth for Abseil compile options.  Also makes absl_test and absl_cc_test make binaries and targets with compatible names to each other to make testing easier.
      
      PiperOrigin-RevId: 222858408
      
      --
      7dd3e2618ad5a5de5d918fc73e438ef0b98cec6a by Abseil Team <absl-team@google.com>:
      
      Revert "absl: cap SpinLock backoff to 4ms"
      
      PiperOrigin-RevId: 222656230
      
      --
      0d49538a3cab714156ed0a5651656c0aa098a1e5 by Abseil Team <absl-team@google.com>:
      
      Update absl/container/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 222535766
      
      --
      92744e9d0e5c3bf9e1167a7bdf1a6777192531b1 by Abseil Team <absl-team@google.com>:
      
      Disable header parsing for broken targets
      
      PiperOrigin-RevId: 222257218
      
      --
      39a6c623601c44e02d91e412f126a813d719507b by Abseil Team <absl-team@google.com>:
      
      absl: cap SpinLock backoff to 4ms
      
      The current backoff logic has 3 problems:
      1. It can produce too high values (up to 256ms), which can negatively
      affect tail latency. The value was chosen long time ago and now it's
      a good idea to reconsider it.
      2. It does not have low bound, so on any iteration it can produce
      a very small value that will lead to unnecessary cpu consumption.
      3. It does not increase low bound with the number of iterations.
      So if the SpinLock is actually somehow locked for a very prolonged time,
      a waiter can still wake periodically.
      
      Rework the logic to solve these problems.
      Add lower bound of 128us, no code should rely on absence of episodic
      delays in this range as they can occur everywhere.
      Lower upper bound to 4ms. A thread sleeping for 4ms does not consume
      significant cpu time (see below).
      Grow lower bound with the number of iterations.
      
      This is cpu consumption of a process doing usleep(x) in a loop
      (sampled with ps):
      
          64us -> 4.0%
         128us -> 2.7%
         256us -> 3.5%
         512us -> 2.8%
        1024us -> 1.6%
        2048us -> 0.6%
        4096us -> 0.3%
        8192us -> 0.0%
      
      Few millisecond sleeps do not consume significant time.
      
      PiperOrigin-RevId: 222196086
      
      --
      17104a2396ddda61fb0faed0a72ff8c161ca17ea by Shahriar Rouf <nafi@google.com>:
      
      Add benchmarks for hashing civil_times.
      
      PiperOrigin-RevId: 222152108
      GitOrigin-RevId: 15d7bcf28220750db46930f4d8c090b54e3ae5fe
      Change-Id: I73b929feaf6ce72b70fdafd6108f53bbbeaf9738
      13327deb
  26. Nov 19, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 3088e76c
      Abseil Team authored
      --
      5278e56bd7d322ecf161eaf29fd7fa3941d7431b by Greg Falcon <gfalcon@google.com>:
      
      internal change
      
      PiperOrigin-RevId: 222078614
      GitOrigin-RevId: 5278e56bd7d322ecf161eaf29fd7fa3941d7431b
      Change-Id: I1e86bef2e3733c81148a1a42dccd8182fe3f7fae
      3088e76c
  27. Nov 16, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · f6ae8168
      Abseil Team authored
      --
      da04b8cd21f6225d71397471474d34a77df0efd6 by Jon Cohen <cohenjon@google.com>:
      
      Don't use std::any, std::optional, std::variant, and friends on MacOS versions older than 10.14.
      
      Although Xcode 10 includes those headers and makes the types available to use, according to https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes, on MacOS 10.13 and earlier use of any functions (std::get, for example) results in an error message to upgrade to MacOS 10.14.
      
      This fixes https://github.com/abseil/abseil-cpp/issues/207.  See that issue for more information on the error generated.
      
      PiperOrigin-RevId: 221844618
      
      --
      1d99f77b4c60c5b0d7984f46e8ed63a3f969c635 by Jon Cohen <cohenjon@google.com>:
      
      raw_hash_set_test is still flaky under gcc 4.8.  Since we now have the probe_test, we don't need the PerfectRatio tests.  Just remove them.
      
      PiperOrigin-RevId: 221843042
      
      --
      135cbb2a5d90963256518b3b59fe6710815e5dfa by Abseil Team <absl-team@google.com>:
      
      Update absl/algorithm/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 221828348
      
      --
      1a5abde4f17f998ae89d87155d59f982a70202d8 by Jon Cohen <cohenjon@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 221708245
      
      --
      e03e031d4de39275989f695c768b0940cce1ff16 by Matt Armstrong <marmstrong@google.com>:
      
      Log to FATAL in throw_delegate.h
      
      ABSL_RAW_LOG(FATAL, ...) is guaranteed to abort.
      Previously, the code was logging to ERROR and
      calling abort() explicitly, which defeated any
      integration with absl::raw_logging_internal::AbortHook().
      
      These changes are limited to Abseil internal APIs.
      
      PiperOrigin-RevId: 221696513
      
      --
      d13691523a3f9a5367fd1194cf9604bf4a969029 by Shahriar Rouf <nafi@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 221694877
      
      --
      f4044c56d44ba0ac2a9f218ed55f1b1f9e985eae by Abseil Team <absl-team@google.com>:
      
      Update absl/base/CMakeLists.txt to use new functions
      i.e. absl_cc_(library|test)
      
      PiperOrigin-RevId: 221676669
      GitOrigin-RevId: da04b8cd21f6225d71397471474d34a77df0efd6
      Change-Id: If6621e10d096a39b6a056a072c2727a0df0b0620
      f6ae8168
  28. Nov 15, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · a06c4a1d
      Abseil Team authored
      --
      5f1ab09522226336830d9ea6ef7276d37f536ac5 by Abseil Team <absl-team@google.com>:
      
      Clarify the documentation of ABSL_MUST_USE_RESULT.
      
      PiperOrigin-RevId: 221663609
      
      --
      af4c8359a20d56369fd1dce318220cf3be03ca66 by Greg Falcon <gfalcon@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 221538448
      
      --
      487cd09bd1942bf607080deeae38fee6ce66f294 by Eric Fiselier <ericwf@google.com>:
      
      Work around emscripten bugs and missing features in absl/time:time_test.
      
      The emscripten toolchain has a couple of issues that cause time_test
      to fail. Specifically:
      
      1) emscripten doesn't support signals.
      2) The javascript implementation of strftime/strptime use different expansions
      of '%c' that mean it doesn't round-trip.
      
      PiperOrigin-RevId: 221523701
      
      --
      5823652e6a200b97b07334bc47128dfac40e20fc by Xiaoyi Zhang <zhangxy@google.com>:
      
      Fix MSVC compiler warning by explicitly casting to char.
      Currently our MSVC build breaks with the following error:
      raw_hash_set.h(406): warning C4309: 'argument': truncation of constant value
      
      PiperOrigin-RevId: 221492585
      
      --
      c5806358320711a5efbe5c523df13e14ab53a17d by Greg Falcon <gfalcon@google.com>:
      
      Replace calls to getpagesize() with the more portable sysconf(_SC_PAGESIZE); the latter is in POSIX 1.0 and is called out in the Linux `getpagesize` man page as a more portable spelling.
      
      PiperOrigin-RevId: 221492471
      
      --
      19ffe82851072229bb7ce73f754ffe4c18e8c575 by Abseil Team <absl-team@google.com>:
      
      Fix -Wundef error in absl/hash/internal/hash.h.
      
      PiperOrigin-RevId: 221444120
      
      --
      b30f3d0a848563b6e4ec33f3dc085831dfabb748 by Jon Cohen <cohenjon@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 221339736
      GitOrigin-RevId: 5f1ab09522226336830d9ea6ef7276d37f536ac5
      Change-Id: I96223d522d98bf6616dea88eb047c2d536eeddd0
      a06c4a1d
  29. Nov 13, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 7b46e1d3
      Abseil Team authored
      --
      07575526242a8e1275ac4223a3d2822795f46569 by CJ Johnson <johnsoncj@google.com>:
      
      Comment cleanup on InlinedVector
      
      PiperOrigin-RevId: 221322176
      
      --
      49a5e643f85e34d53c41f5e6cc33357c55c9115d by Matt Kulukundis <kfm@google.com>:
      
      Internal cleanup
      
      PiperOrigin-RevId: 221309185
      
      --
      bb35be87ec9c74244b7d902e7e7d2d33ab139d76 by Abseil Team <absl-team@google.com>:
      
      Fix typo in comment.
      
      PiperOrigin-RevId: 221145354
      
      --
      afd4d7c106919708004e06aeea068a57c28aec44 by Derek Mauro <dmauro@google.com>:
      
      Update the debugging log message in CallOnceImpl()
      
      PiperOrigin-RevId: 221103254
      
      --
      0b9dace8b88113777bf26a6d38f9bc0bcaf053a1 by Abseil Team <absl-team@google.com>:
      
      Workaround an MSVC 2015 bug in compile-time initialization.
      
      PiperOrigin-RevId: 220871483
      
      --
      ea0a3854511ed26beab827e5a5113766b334db86 by Marek Gilbert <mcg@google.com>:
      
      Fix ABSL_HAVE_THREAD_LOCAL when compiling for iOS 8 with Xcode 10.
      
      Xcode 10 has moved the check for thread_local to a link time, so
      clang reports __has_feature(cxx_thread_local) but then linking fails
      with messages like this:
      
      ld: targeted OS version does not support use of thread local variables
      PiperOrigin-RevId: 220815885
      
      --
      485b6876c158c3dcf37eb32d7e512242d5d4ecc6 by Greg Falcon <gfalcon@google.com>:
      
      Make the absl::c_set_xxxx() algorithms refuse to compile when passed an unordered collection from std:: or absl::.
      
      These algorithms operate on sorted sequences; passing an unordered container to them is nearly certainly a bug.  This change is technically an API break, but it only breaks incorrect code.
      
      We could try to be more clever and detect unordered collections from other libraries, but false positives will break legal code, and this would constitute an API break Abseil cannot afford.
      
      PiperOrigin-RevId: 220794190
      
      --
      c47cff7f9cc70a4c1604eee0131af552f40e46d6 by Jon Cohen <cohenjon@google.com>:
      
      MSVC 2017's STL throws a Structured Exception (not a C++ exception, essentially equivalent to SIGSEGV) when variant::emplace calls a throwing constructor when using the debug multithreaded MSVC runtime DLL.  This manifests in dbg mode in Bazel builds.  Disable tests which trigger this bug.
      
      It's impossible to specifically pull out MSVC 2017 -dbg modes because there's no way for Bazel to know when version of MSVC is being used -- you tell Bazel the directory where the MSVC tools live, not which version of MSVC tools to use.  Thus the best we can do is switch on _DEBUG, which is set whenever the debug runtime is selected with the /MDd build flag, as in Bazel -dbg modes.  See https://msdn.microsoft.com/en-us/library/b0084kay.aspx ctrl-f "_DEBUG"
      
      PiperOrigin-RevId: 220706161
      
      --
      43993d4af309d92f4ebff38391dcc245f154ecc7 by Shaindel Schwartz <shaindel@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 220688429
      
      --
      2448802972dcc261af153af464f2b022ef54a2a9 by Abseil Team <absl-team@google.com>:
      
      Speed up operator* for uint128 in WIN64.
      
      PiperOrigin-RevId: 220678790
      
      --
      7b376403dd05ba10152fb52e40b29d8af79b58bb by Abseil Team <absl-team@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 220654834
      
      --
      ae08af58111c3f838b8d4de25f501c3559c86002 by Abseil Team <absl-team@google.com>:
      
      CMake: Add absl_cc_test function
      
      PiperOrigin-RevId: 220603940
      GitOrigin-RevId: 07575526242a8e1275ac4223a3d2822795f46569
      Change-Id: Iba7f53eb394c8a9de564582a976793f9bb0596d9
      7b46e1d3
  30. Nov 07, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 070f6e47
      Abseil Team authored
      --
      178e7a9a76fc8fcd6df6335b59139cbe644a16b9 by Jon Cohen <cohenjon@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 220523164
      
      --
      59ef14fe7034a3148f1e9cef1f128b8ca264b444 by Jon Cohen <cohenjon@google.com>:
      
      Don't assume how much std::vector's constructors allocate in InlinedVector's test for scoped_allocator_adaptor support.
      
      PiperOrigin-RevId: 220464683
      
      --
      6f8351be43a44a8f10bf20612b2cc744a4a911c7 by Jon Cohen <cohenjon@google.com>:
      
      Add VS Code and some Bazel output files to absl/.gitignore
      
      PiperOrigin-RevId: 220464362
      
      --
      43fac22f8af6b6ed55309a784a9d25d837393d0e by Abseil Team <absl-team@google.com>:
      
      absl: fix SpinLock::EncodeWaitCycles
      
      If a thread has ever observed or set kSpinLockSleeper, it must
      never leave 0 in kWaitTimeMask because at this point it is
      expected to wake subsequent threads. Current calculations in
      EncodeWaitCycles can result in 0 in kWaitTimeMask and lead to
      missed wakeups. This is mostly theoretical today, because
      the futex call needs to finish within 128 cycles (futex can
      return immediately without waiting, but 128 cycles still
      look too low for this). But this can well fire in future
      if we bump granularity and/or threshold for recording contention.
      
      Use kSpinLockSleeper instead of 0.
      
      PiperOrigin-RevId: 220463123
      
      --
      def9b7e3d45c99d68cc52a4429256116d7f421f2 by Abseil Team <absl-team@google.com>:
      
      absl: optimize SpinLock::SlowLock
      
      Currently we record contention even after the first initial spin.
      This leads to several performance issues:
      1. If we succeed in acquiring the lock after the initial spin,
      overall wait time can be within tens/hundreds of nanoseconds.
      Recording such low wait time looks completely unnecessary and excessive.
      From some point of view this is not even a wait, because we did not sleep.
      And, for example, Mutex does not record contention in this case.
      In majority of cases the lock should be acquired exactly during the initial
      spin, yet we still go through full overhead of submitting contention.
      2. Whenever a thread submits contention it also calls FUTEX_WAKE
      (there is no way to understand if it's necessary or not when wait value
      is stored in the lock). So if there are just 2 threads and a brief
      contention, the second thread will still call FUTEX_WAKE which
      is completely unnecessary overhead.
      
      Don't record contention after the initial spin wait.
      
      FWIW this also removes 2 CycleClock::Now calls and EncodeWaitCycles
      from the common hot path.
      
      PiperOrigin-RevId: 220379972
      
      --
      75b0c0cb214de904ea622f81ec3f4eabdc8695b0 by Derek Mauro <dmauro@google.com>:
      
      Supress MSVC warnings in raw_hash_set's use of TrailingZeros and LeadingZeros.
      https://github.com/abseil/abseil-cpp/issues/208
      
      PiperOrigin-RevId: 220372204
      GitOrigin-RevId: 178e7a9a76fc8fcd6df6335b59139cbe644a16b9
      Change-Id: I3a66af4e050810a3274e45d4e055b2aa19ffba1b
      070f6e47
  31. Nov 06, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · 7990fd45
      Abseil Team authored
      --
      ee19e203eca970ff88e8f25ce4e19c32e143b988 by Jon Cohen <cohenjon@google.com>:
      
      Exception safety testing no longer uses absl::optional
      
      PiperOrigin-RevId: 220336204
      
      --
      460666eb0b316a8b4aeedc589644d53b05251bd1 by Derek Mauro <dmauro@google.com>:
      
      Rework SwissTable SSE2 support
        - Use SSE2 on MSVC when available
          https://github.com/abseil/abseil-cpp/issues/210
        - Emulate _mm_cmpgt_epi8 with other SSE2 instructions when using
          -funsigned-char under GCC
          https://github.com/abseil/abseil-cpp/issues/209
      
      PiperOrigin-RevId: 220312351
      
      --
      1f4318ecedf8d539b7b698eb803d613ad6b69278 by Abseil Team <absl-team@google.com>:
      
      Change CollectPerfectRatios to use 10 trials to smooth out the outliers in the
      sample.
      
      PiperOrigin-RevId: 220286579
      
      --
      6755abc2673553a7f578bb29c6e9ca8d991bc9c8 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 220274307
      
      --
      8645b6187329ebf0aaf3c2de2888ba44466cd879 by Abseil Team <absl-team@google.com>:
      
      * #endif for a header guard should reference the guard macro in a comment
      
      PiperOrigin-RevId: 220206868
      
      --
      3987a7ad11319230910931cd2468b60b3fd1b85c by Gennadiy Civil <misterg@google.com>:
      
      Internal Change
      
      PiperOrigin-RevId: 220136674
      
      --
      cc908c1db2ee0d4523dc813e33f600583bb986c5 by Abseil Team <absl-team@google.com>:
      
      absl: fix backoff logic in SpinLockWait
      
      There are 3 bugs in loop variable handling:
      1. It starts with 0, but AbslInternalSpinLockDelay ignores loop == 0.
      So it does not actually wait when it should.
      2. loop is incremented after successful state changes,
      but it should not (why would be increase backoff delay after that?).
      3. loop is incremented after CAS failures,
      but it should not (why would be increase backoff delay after that?).
      
      Use the same handling of loop as used in SpinLock.
      
      PiperOrigin-RevId: 220136079
      
      --
      a0a1c6ef5910ebd28e07215d7df03cc0da0b3eed by Abseil Team <absl-team@google.com>:
      
      absl: relax unnecessarily strong memory ordering in SpinLock::SlowLock
      
      We don't need to acquire visibility over anything when setting kSpinLockSleeper.
      Replace the confusing and unnecessarily strong memory order with relaxed.
      
      PiperOrigin-RevId: 220023380
      
      --
      c50858b51af28b9fca1a62616324f85f3e84ea74 by Tom Manshreck <shreck@google.com>:
      
      Update comments in flat_hash_map, node_hash_{set, map} and the containers developer guide
      
      PiperOrigin-RevId: 219938692
      
      --
      e87b7d1a5f61e165b1c44d3b16d8d967197cdfce by CJ Johnson <johnsoncj@google.com>:
      
      Rearranges the public methods of InlinedVector and cleans up the comments
      
      PiperOrigin-RevId: 219896257
      
      --
      f3234c466f792e0fc4bfd21fc7919dba5e679375 by CJ Johnson <johnsoncj@google.com>:
      
      Adds branch prediction to exceptional early exit cases of inlined vector's API
      
      PiperOrigin-RevId: 219887173
      
      --
      4dfccf1a81ca0425912d3da25a8470f78c532ce4 by CJ Johnson <johnsoncj@google.com>:
      
      Fixes the InlinedVector public interface to use the allocator type references instead of assuming the type
      Also cleans up some cruft in formatting and comments
      
      PiperOrigin-RevId: 219878876
      
      --
      4bb6a2b892abb10bd6a424db7e94ed8640802470 by Tom Manshreck <shreck@google.com>:
      
      Add comments on constructor and assignment operator support to flat_hash_set
      
      PiperOrigin-RevId: 219825338
      
      --
      c23f973e2f7f4feea0da36bf8a9c3f8a8954bb74 by Abseil Team <absl-team@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 219823847
      GitOrigin-RevId: ee19e203eca970ff88e8f25ce4e19c32e143b988
      Change-Id: I288c927ca481dc57340420dbb4c278a05cf15e83
      7990fd45
  32. Nov 02, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · f9517906
      Abseil Team authored
      --
      4e224c85c3730398919fc5195cb1fc7a752e6e4f by Mark Barolak <mbar@google.com>:
      
      Update some references to "StringPiece" to say "string_view" instead.
      
      PiperOrigin-RevId: 219693697
      
      --
      6bdc925a3db5e97f1f8a404bdfda2e47e48f7b9a by Abseil Team <absl-team@google.com>:
      
      Disable weak symbols for the Windows backend of LLVM, since they are currently buggy. See https://bugs.llvm.org/show_bug.cgi?id=37598 for more information.
      
      PiperOrigin-RevId: 219676493
      
      --
      5823f495036181191f435efa4c45d60ca3160145 by Derek Mauro <dmauro@google.com>:
      
      Don't use the SSE2 implementation of container_internal::Group
      with -funsigned-char under GCC.
      
      This is a workaround for https://github.com/abseil/abseil-cpp/issues/209.
      
      _mm_cmpgt_epi8 is broken under GCC with -funsigned-char.
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87853
      
      PiperOrigin-RevId: 219666066
      GitOrigin-RevId: 4e224c85c3730398919fc5195cb1fc7a752e6e4f
      Change-Id: I2f115d0256576cf476ae73a9464c21d4106a2a56
      f9517906
  33. Oct 31, 2018
    • Abseil Team's avatar
      Export of internal Abseil changes. · cc8dcd30
      Abseil Team authored
      --
      9e8aa654630015ea8221703b0ea10dd1a47a848f by Abseil Team <absl-team@google.com>:
      
      Fix typo
      
      PiperOrigin-RevId: 219474910
      
      --
      b1621572fb5a326642766f9f0f16abc3620dd6e8 by Xiaoyi Zhang <zhangxy@google.com>:
      
      Applies https://github.com/abseil/abseil-cpp/pull/194 to fix raw_hash_map
      build issues for Windows VS 15.8.
      
      PiperOrigin-RevId: 219473484
      
      --
      a61df296bc5449261c6deccb6410df83d560d210 by Jon Cohen <cohenjon@google.com>:
      
      Remove reference to ABSL_COMPILE_CXXFLAGS in our cmakelists files.  It wasn't used, but we will soon instead use an INERFACE target with target_compile_options for the compile options needed for Abseil.
      
      PiperOrigin-RevId: 219352641
      
      --
      0d9536a26c03229df3e782e78a8211e450259af2 by Abseil Team <absl-team@google.com>:
      
      Add missing dependencies on base:core_headers
      
      PiperOrigin-RevId: 219320098
      
      --
      5693e836e4ec4ce23315f3a7846c12c64cf3d5ab by Abseil Team <absl-team@google.com>:
      
      Remove dynamic_annotations from core_headers, and add core_headers to CMakeLists.
      
      PiperOrigin-RevId: 219306959
      GitOrigin-RevId: 9e8aa654630015ea8221703b0ea10dd1a47a848f
      Change-Id: Ie52b9fa7ab1285b6846ceea5503caf744e7303d8
      cc8dcd30
    • Xiaoyi Zhang's avatar
      Merge pull request #194 from Mizux/windows · a705aa78
      Xiaoyi Zhang authored
      absl::container Windows VS 15.8 (fix #192)
      a705aa78
Loading