Skip to content
Snippets Groups Projects
  1. May 23, 2019
  2. May 22, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · ce65f5ac
      Abseil Team authored
      --
      1edfe05ddddca43e7650b2d790df7c8498c0e588 by Abseil Team <absl-team@google.com>:
      
      Adding an assert to catch various misuses of std::optional.
      
      PiperOrigin-RevId: 249427865
      
      --
      45463bbb7e59dfbc584b2f024368a63db98bd7a8 by CJ Johnson <johnsoncj@google.com>:
      
      Migrates internal member function GetAllocator() to GetAllocPtr() and changes the return type to pointer instead of reference to avoid unnecessary copy in DestroyElements(...)
      
      PiperOrigin-RevId: 249319571
      
      --
      507835be22af85676143ee0c43a80a52bc32094c by Abseil Team <absl-team@google.com>:
      
      Fix -Wstring-conversion in GetEnvVar (Windows implementation).
      
      PiperOrigin-RevId: 249201897
      GitOrigin-RevId: 1edfe05ddddca43e7650b2d790df7c8498c0e588
      Change-Id: I9300131887ee507cf80d399c724cf87341e4f11a
      ce65f5ac
  3. May 20, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · a18fc746
      Abseil Team authored
      --
      b254aba40a65385deccd757480f8d7383f2f2f55 by CJ Johnson <johnsoncj@google.com>:
      
      Updates some of the assignment operators to dispatch to the `assign(ForwardIt, ForwardIt)` member function (and removing `AssignForwardRange(...)` as a result.
      
      PiperOrigin-RevId: 249030603
      GitOrigin-RevId: b254aba40a65385deccd757480f8d7383f2f2f55
      Change-Id: I6ba84c8e014d47de469691fa02f328df68066208
      a18fc746
  4. May 17, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 8a394b19
      Abseil Team authored
      --
      cae9f0c87632d690ec3f471e181be247fe4fb025 by Abseil Team <absl-team@google.com>:
      
      Run IWYU on some headers.
      
      PiperOrigin-RevId: 248749194
      
      --
      f57dcac97cacbe31769a8646020a99b6686987dc by Samuel Benzaquen <sbenza@google.com>:
      
      Accept vector<bool>::reference in StrFormat and friends.
      
      The proxy types might overload `operator&`. Use std::addressof instead.
      
      PiperOrigin-RevId: 248619661
      GitOrigin-RevId: cae9f0c87632d690ec3f471e181be247fe4fb025
      Change-Id: Iacf5d46a59d1d5f1fa1fd4a1e0d0de8c6cbedb3e
      8a394b19
  5. May 16, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · daf381e8
      Abseil Team authored
      --
      6fca451d74e509671f0996e15ea05008f73c9957 by Eric Fiselier <ericwf@google.com>:
      
      Support vector<bool>::reference and ::const_reference
      in absl::Substitute.
      
      PiperOrigin-RevId: 248524270
      
      --
      a4b298c74acb8ae0688ed681052593623d8021c7 by Abseil Team <absl-team@google.com>:
      
      Clarify that a static `SpinLock` using the `LinkerInitialized` constructor is
      initialized in non-cooperative mode.
      
      PiperOrigin-RevId: 248386381
      GitOrigin-RevId: 6fca451d74e509671f0996e15ea05008f73c9957
      Change-Id: I13d54c2034695e7677170cdc7b86384b7d7d9cb5
      daf381e8
  6. May 15, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · fa00c321
      Abseil Team authored
      --
      6258612abc571fa7f51f34046b410c73486505fe by Derek Mauro <dmauro@google.com>:
      
      Rollback checking the return value of pthread functions in thread_identity.cc.
      
      PiperOrigin-RevId: 248381230
      
      --
      fda6acddab04fc53eeb84ec253de4a9655bf9a36 by CJ Johnson <johnsoncj@google.com>:
      
      Removes too-restrictive benchmark abstraction in inlined_vector_benchmark
      
      PiperOrigin-RevId: 248366325
      
      --
      68674991e63c919de8a3eebced5adec6466ec8fe by Abseil Team <absl-team@google.com>:
      
      Check for pthread_setmask() failure.
      
      Log a fatal error message if pthread_setmask() fails.
      
      PiperOrigin-RevId: 248347115
      
      --
      45389e44c0d1badafb6b560cae3df99fc8bd16ac by Derek Mauro <dmauro@google.com>:
      
      Fix a -Wredundant-move warning in GCC 9.
      
      PiperOrigin-RevId: 248338682
      
      --
      12cfbacf599084a8ac6bf4395026cbf193c85a26 by Derek Mauro <dmauro@google.com>:
      
      Check the return value of pthread functions in thread_identity.cc.
      
      PiperOrigin-RevId: 248327118
      
      --
      2bc69998e68cfee96e812ce800e83cce7a715091 by Benjamin Barenblat <bbaren@google.com>:
      
      Encourage judicious use of ABSL_PREDICT_{TRUE,FALSE}
      
      Recommend that users use branch prediction annotations only on hot,
      consistently mispredicted branches.
      
      PiperOrigin-RevId: 248222450
      GitOrigin-RevId: 6258612abc571fa7f51f34046b410c73486505fe
      Change-Id: I09d409f9a3941ee926b8476b5473f9c4899cc3ff
      fa00c321
  7. May 14, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 436ba6c4
      Abseil Team authored
      --
      22fceefcf070a0cf89bf1846bee16a9d36ad4161 by Derek Mauro <dmauro@google.com>:
      
      Use function static for once initialization of flag registry.
      
      This is a workaround for the MSVC debug constexpr initialization issue
      in absl::once_flag.
      
      GitHub #304
      
      PiperOrigin-RevId: 248169007
      
      --
      97bbe6a5233802b61e758c55f7ba8926539cc4ca by Chris Kennelly <ckennelly@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 248139347
      
      --
      e72640ee079b9fa44e2c7f925fa0a608bcfea515 by Derek Mauro <dmauro@google.com>:
      
      Re-write flags config. It doesn't have to be written in the convoluted
      way it currently is in the opensource-only code path.
      
      PiperOrigin-RevId: 248010502
      
      --
      2a72552511b8086c78cb43012c1644e519b3807e by Abseil Team <absl-team@google.com>:
      
      Handle pthread_getschedparam() failure.
      
      Log an error message if pthread_getschedparam() fails.
      
      In Android's Media Framework, libminijail (which I believe is a sandbox)
      aborts the process if pthread_getschedparam() is called:
      
        media.swcodec: libminijail[7526]: blocked syscall: sched_getparam
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        /system/bin/tombstoned: received crash request for pid 7526
      
      Although this CL cannot handle that extreme failure mode, it handles an
      error return from pthread_getschedparam() and won't use the uninitialized
      param.sched_priority value in that case.
      
      PiperOrigin-RevId: 247999953
      
      --
      bb154a92be37987d00d652c7c792594f2f515d83 by Abseil Team <absl-team@google.com>:
      
      Allow intrinsic int128 to be set for __aarch64__ targets.
      
      PiperOrigin-RevId: 247977594
      GitOrigin-RevId: 22fceefcf070a0cf89bf1846bee16a9d36ad4161
      Change-Id: I1f7ccfd82eb71446277a8e6f542fe835ac173d71
      436ba6c4
  8. May 10, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 0cbdc774
      Abseil Team authored
      --
      ab1a58c85a462884413ec0022dc1fff19ccb8602 by Abseil Team <absl-team@google.com>:
      
      Clarified the documentation in str_format.h to say that use of absl::FormatSpec
      is ok for wrapper functions. Added tests that express this.
      
      PiperOrigin-RevId: 247657991
      
      --
      fef9481e58d579f1514babcb960ca60a51883fd8 by CJ Johnson <johnsoncj@google.com>:
      
      Adds exception safety tests for InlinedVector::InlinedVector() and InlinedVector::InlinedVector(const allocator_type&).
      
      PiperOrigin-RevId: 247617048
      
      --
      ef3217e1cd1e9a6ff5f2025e061b8ce3735af78f by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 247614063
      
      --
      ed4c3345c4a04d8ec5c9e627058f17fce55925b1 by CJ Johnson <johnsoncj@google.com>:
      
      Update InlinedVector::clear()
      
      Introduces inlined_vector_exception_safety_test with the first test (clear), adds new benchmarks (for clear), and updates the implementation of clear.
      
      PiperOrigin-RevId: 247496049
      
      --
      144a3a77c93bc8b2226da6f4b56166ee3d9868de by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 247482532
      
      --
      286bbb89e154d5424955b644edad5fe04be487f8 by Derek Mauro <dmauro@google.com>:
      
      Add scripts to run ASAN and TSAN on CI.
      
      PiperOrigin-RevId: 247479658
      GitOrigin-RevId: ab1a58c85a462884413ec0022dc1fff19ccb8602
      Change-Id: Ief4c5a62587d0c59d405735df469d498aa6bf101
      0cbdc774
  9. May 08, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 27c2f6e2
      Abseil Team authored
      --
      9fa04b5fb4b6aeb47226b9095b3bc36a53669c39 by Abseil Team <absl-team@google.com>:
      
      Release types/compare.h, which contains stand ins for three-way comparison result types from C++20. Use absl::weak_ordering for a three-way comparator in test-instance-tracker.h.
      
      PiperOrigin-RevId: 247290078
      
      --
      70a762f4eb35ea1d5a5fcb3274a8086824a0b82c by Derek Mauro <dmauro@google.com>:
      
      Upgrade linux_clang-latest builds to LLVM r356814 and Bazel 0.25.0
      
      PiperOrigin-RevId: 247250176
      
      --
      f305cd5c36561e4dbb69eb87568553ae5badcb15 by CJ Johnson <johnsoncj@google.com>:
      
      Remove argument deduction based on template template argument in InlinedVector/Storage
      
      PiperOrigin-RevId: 247232334
      
      --
      2cab8e426838baceb7d08edb313416480d26aa5b by Eric Fiselier <ericwf@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 247140132
      GitOrigin-RevId: 9fa04b5fb4b6aeb47226b9095b3bc36a53669c39
      Change-Id: I373a7d9bc90befa2a9f06555cb8703610c0313b9
      27c2f6e2
  10. May 07, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · aa468ad7
      Abseil Team authored
      --
      78293ba4eb4981991ae7e6edd25eb9245fcd7515 by Andy Soffer <asoffer@google.com>:
      
      internal changes
      
      PiperOrigin-RevId: 247073879
      
      --
      7bd97e3aad0c3012b89a39392a6ad3f254e9f3c3 by Derek Mauro <dmauro@google.com>:
      
      Release commandline flags
      
      PiperOrigin-RevId: 247065920
      
      --
      2a991849fd7b140a43b073076d194b61533fd199 by Tom Manshreck <shreck@google.com>:
      
      Add documentation for built-in usage flags
      
      PiperOrigin-RevId: 247058863
      
      --
      14157b0de45841706bbd631284191fd94c313db9 by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 247058292
      
      --
      ed67e0a80468596e30540b367727a250fa415b68 by Abseil Team <absl-team@google.com>:
      
      Internal Change.
      
      PiperOrigin-RevId: 246828655
      
      --
      e1bc8c2aa3f90b3d56c55c5b7244e718c919265d by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 246822325
      
      --
      907a68f287199f749cb9bdb48571b50bc34731e1 by Eric Fiselier <ericwf@google.com>:
      
      Accept vector<bool>::reference in StrCat and friends.
      
      Converting vector<bool>::reference to alphanum requires
      two user defined conversions, which isn't allowed.
      In order to accept this, we need a special constructor that
      is only enabled for the bool proxy types.
      
      PiperOrigin-RevId: 246626732
      
      --
      fe4295fa95cc65dee8c881ba12dd8f516e68c40d by Abseil Team <absl-team@google.com>:
      
      Clarify the proper way to define AbslHashValue, and fix confusing indentation.
      
      PiperOrigin-RevId: 246406528
      
      --
      d7174681a72d4a25c8fd2b4d9f515a0763eff87c by Gennadiy Rozental <rogeeff@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 246358214
      
      --
      a7fdc19683cf1a5885e9e1af52fcdb2db1eda53b by Abseil Team <absl-team@google.com>:
      
      Fix sample template instantiation.
      
      PiperOrigin-RevId: 246354617
      
      --
      29a23c6835f872948d09b24d890385bf195bc995 by Abseil Team <absl-team@google.com>:
      
      Fix incorrectly copy-pasted static_assert in absl::optional::value_or
      
      The static_assert for a move-constructible type previously said the type must be copy-constructible.
      
      PiperOrigin-RevId: 246313827
      
      --
      41884d5872d4ea2c67875b00144b8c8a5859a295 by Greg Falcon <gfalcon@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 245418790
      
      --
      7f90a7f94cdd5e21232c749efe952a750b5c43a2 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 245412658
      
      --
      730a329cf047d54b46971fce1781edd857208c2a by Greg Falcon <gfalcon@google.com>:
      
      internal change
      
      PiperOrigin-RevId: 245293234
      
      --
      cf0216be6338200cbb18167d3f3b2e98e372be77 by Greg Falcon <gfalcon@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 245288164
      GitOrigin-RevId: 78293ba4eb4981991ae7e6edd25eb9245fcd7515
      Change-Id: I5ea9a852c36c722bae2d6be65fb7f72473d94ab6
      aa468ad7
  11. Apr 25, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · cd86d0d2
      Abseil Team authored
      --
      997d2a8d12d9395046b0bdfc2f206a0b2fe2f1f9 by Abseil Team <absl-team@google.com>:
      
      Typo fix: IsHashCallble -> IsHashCallable
      
      PiperOrigin-RevId: 245235915
      
      --
      2baa4df2e3284df925bfd728bab7d7bd60ae002e by Eric Fiselier <ericwf@google.com>:
      
      Remove need for `Windows.h` header in `waiter.h`
      
      Ideally we never want to drag in `windows.h` because it's non-modular and hijacks global identifiers like `ERROR` and `OPAQUE`.
      
      This patch changes our waiter implementation to store char buffers for `SRWLOCK` and `CONDITION_VARIABLE` instead of the types directly.
      
      PiperOrigin-RevId: 245189428
      
      --
      33cfacd70c0d148d7590472dbcce38c93f2f7a34 by Matthew Brown <matthewbr@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 245092803
      GitOrigin-RevId: 997d2a8d12d9395046b0bdfc2f206a0b2fe2f1f9
      Change-Id: Icccd6cbe4b205096f6a71e114d135303ee4c1857
      cd86d0d2
  12. Apr 24, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 33841c5c
      Abseil Team authored
      --
      bb92c768e2271ddbebc1b1eb7e16a7b7c86a6e1c by Abseil Team <absl-team@google.com>:
      
      Automated g4 rollback of changelist 244998488.
      
      *** Reason for rollback ***
      
      I'm seeing test failures, rolling this back.
      
      *** Original change description ***
      
      BEGIN_PUBLIC
      
      The default constructor for optional<T> is filling dummy_ with zeros (see https://godbolt.org/z/IVea7X for a reduced example), which has a performance impact for large Ts. This comes from the gcc6 bugfix that made dummy as big as T. Because constexpr constructors are required to initialize all members of a struct, we cannot prevent this in a standard-compliant way as soon as dummy has any members (note that clang will happily accept adding a `constexpr dummy_type() {}` constructor...
      
      ***
      
      PiperOrigin-RevId: 245004716
      
      --
      6e3ee35af50ffbee604c22300f3260ebc5f6cf52 by Abseil Team <absl-team@google.com>:
      
      The default constructor for optional<T> is filling dummy_ with zeros (see https://godbolt.org/z/IVea7X for a reduced example), which has a performance impact for large Ts. This comes from the gcc6 bugfix that made dummy as big as T. Because constexpr constructors are required to initialize all members of a struct, we cannot prevent this in a standard-compliant way as soon as dummy has any members (note that clang will happily accept adding a `constexpr dummy_type() {}` constructor to dummy_type to prevent zero-initialization, but this is UB AFAICT).
      
      This all stems from the fact that we're constructing an object by using placement new on dummy_. The solution I'm using here is to do the placement new on the actual data_. This creates a new issue in when T is volatile, because we can no longer use `&data_` to do the placement new. The solution I'm using here is to make data_ a non-const and non-volatile T, and only provide fully possibly qualified access through `reference()` accessors. I think this correctly prevents UB.
      
      PiperOrigin-RevId: 244998488
      
      --
      4f52e64c4cf6aef8df6360007bcc53d8b00db2b4 by Abseil Team <absl-team@google.com>:
      
      Increase SYMBOL_BUF_SIZE from 2KB to 3KB.
      
      PiperOrigin-RevId: 244954529
      GitOrigin-RevId: bb92c768e2271ddbebc1b1eb7e16a7b7c86a6e1c
      Change-Id: Iaed9a027064a9ecd194c5c146169c683b77f12ef
      33841c5c
  13. Apr 23, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · ca3f8756
      Abseil Team authored
      --
      5a5dba4252e764e6737070bf0a31074bf23a3b41 by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 244898913
      
      --
      3eb7d5b445ffbf08a104e39cd15aecf568417333 by Matt Calabrese <calabrese@google.com>:
      
      Introduce absl::is_trivially_move_constructible and absl::is_trivially_move_assignable, and update the absl::is_trivially_copy_constructible and absl::is_trivially_copy_assignable traits to use similar techniques (should now be closer to the standard behavior).
      
      PiperOrigin-RevId: 244859015
      
      --
      7da05a24fa786cab3985de0c39a186d73dcbcfb5 by Abseil Team <absl-team@google.com>:
      
      Fix misspellings in comments in raw_hash_set.h.
      
      PiperOrigin-RevId: 244754700
      
      --
      5c057be96048f21473d5ec45005ab4dcd8dd354f by Derek Mauro <dmauro@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 244744239
      
      --
      592394e3c2e98f1238d3fb6fcb0d20c3e3739ba9 by Derek Mauro <dmauro@google.com>:
      
      Limit the raw_hash_set prefetch test to x86-64.
      
      PiperOrigin-RevId: 244737534
      
      --
      99ebe4e003633c8ff7838b035b31a827994879ef by Derek Mauro <dmauro@google.com>:
      
      Workaround warning 4091 in an MSVC header.
      
      PiperOrigin-RevId: 244701744
      
      --
      0aa23f09a32efe7985ee55b0217190f08da42477 by Abseil Team <absl-team@google.com>:
      
      Fix comment typo.
      
      PiperOrigin-RevId: 244659371
      
      --
      c6cdb87e9f28062c8daa29b3d8d68182ecc16383 by Derek Mauro <dmauro@google.com>:
      
      Fix -Wundef warnings and support -Wundef.
      
      PiperOrigin-RevId: 244244968
      
      --
      06b81245f7696b20c3c63b0618d33ac25e29cad6 by Abseil Team <absl-team@google.com>:
      
      Fix a typo in inlined_vector.h.
      
      PiperOrigin-RevId: 244230809
      
      --
      94877a2125d2cfe837384240e4d6551f39d737e4 by Greg Falcon <gfalcon@google.com>:
      
      Fix sysinfo_test for emscripten.
      
      PiperOrigin-RevId: 244198804
      
      --
      ec7783531ef7f9df2da37d341d61f7cb2bf843f0 by Shaindel Schwartz <shaindel@google.com>:
      
      Import of CCTZ from GitHub.
      
      Fixes #291.
      
      PiperOrigin-RevId: 244184598
      
      --
      b652c14fa95ea206c217487ee713b11f5d1762b3 by Matt Calabrese <calabrese@google.com>:
      
      Emulate the `in_place_index` and `in_place_type` variable templates such that they are syntactically usable in C++11 with `any` and `variant`. Also pull in the variable templates from namespace std when available.
      
      The main observable differences here are:
      
      1)
      The types of `in_place_index_t<I>` and `in_place_type_t<T>` become function pointer types rather than structs when using the implementation that is not an alias of the std equivalents.
      
      2)
      The types of `in_place_index<I>` and `in_place_type<T>` are not directly `in_place_index_t<I>` and `in_place_type_t<T>`, but rather they become function types that decay to the corresponding function pointer types.
      
      3)
      The default constructor for `in_place_index_t` and `in_place_type_t` instantiations is no longer explicit, but for these templates I think that's less important than for something like `in_place_t` since the _type_t and _index_t versions basically never have their template parameter non-deduced when participating in overload resolution with conflicting candidates.
      
      4) While idiomatic usage of `in_place_type_t` and `in_place_index_t` with std::variant and std::any should not be affected, there is the possibility that strange, non-idiomatic uses may be affected in the wild.
      
      5) Default construction (rather than value-initialization) leads to a default-constructed pointer.
      
      PiperOrigin-RevId: 244180003
      
      --
      b9ac5a96581837ffa24532117b7ea302a5569751 by Derek Mauro <dmauro@google.com>:
      
      Fix MSVC debug assertion.
      
      isprint is undefined for values not representable as unsigned char or
      EOF.
      
      PiperOrigin-RevId: 244083005
      
      --
      41758be6137c2f25e84b50f23938e49484be2903 by Shaindel Schwartz <shaindel@google.com>:
      
      Update config settings for Apple platforms.
      
      PiperOrigin-RevId: 244040587
      
      --
      c90df6a26db94b0305a0c954455a621542a89d91 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 244024427
      
      --
      c71e9ceb89495354eca7d02bd905ffeaa9029aec by Derek Mauro <dmauro@google.com>:
      
      Adds missing ABSL_DEFAULT_COPTS and ABSL_TEST_COPTS to CMakeLists.txt
      
      Don't error on deprecated declarations in tests. It is completely
      reasonable to test that code marked deprecated still works.
      
      PiperOrigin-RevId: 244003941
      
      --
      e1326a96527a8ba9b8d120161545260da9c4562e by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 243990623
      
      --
      90b8e12934c7711e1bfcc0117d21288bf9220dee by Abseil Team <absl-team@google.com>:
      
      Add variation of absl::Base64Escape/WebSafeBase64Escape that directly returns its result.
      
      PiperOrigin-RevId: 243894308
      
      --
      317fef3344481ebc5c35712d42f5d8a0fa64dff4 by Abseil Team <absl-team@google.com>:
      
      Enable raw logging in Emscripten builds.
      
      PiperOrigin-RevId: 243893705
      GitOrigin-RevId: 5a5dba4252e764e6737070bf0a31074bf23a3b41
      Change-Id: I19293aab73cc98d9e9bf6a9fdc30819764adb9db
      ca3f8756
  14. Apr 16, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · d902eb86
      Abseil Team authored
      --
      babbb6421068af3831870fd5995444437ace6769 by Derek Mauro <dmauro@google.com>:
      
      Rollback of:
      
      Make raw_hash_set_test less flaky.
      
      Split the timing loop into chunks so that we are less suceptible to
      antogantistic processes.
      
      PiperOrigin-RevId: 243854490
      
      --
      a2711f17a712f6d09799bf32363d67526737b486 by CJ Johnson <johnsoncj@google.com>:
      
      Relocates IsAtLeastForwardIterator to internal/inlined_vector.h
      
      PiperOrigin-RevId: 243846090
      
      --
      6c14cdbeb9a61022c27f8957654f930d8abf2fc1 by Matt Kulukundis <kfm@google.com>:
      
      Make raw_hash_set_test less flaky.
      
      Split the timing loop into chunks so that we are less suceptible to
      antogantistic processes.
      
      PiperOrigin-RevId: 243824289
      
      --
      ee6072a6b6e0ac653622524ceb09db3b9e870f96 by Samuel Benzaquen <sbenza@google.com>:
      
      Improve format parser performance.
      Replace the main switch with a lookup in the existing tag table.
      Improve the ABI of ConsumeUnboundConversion a little.
      
      PiperOrigin-RevId: 243824112
      
      --
      24b9e6476dfa4be8d644359eab8ac6816492f187 by Abseil Team <absl-team@google.com>:
      
      Fix DR numbers: 3800 ? 3080, 3801 ? 3081.
      
      PiperOrigin-RevId: 243804213
      
      --
      0660404074707e197684f07cc0bffe4a9c35cd2f by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 243757359
      
      --
      ba0f5bb9b8584d75c4ffc44ff3cb8c691796ffc6 by Xiaoyi Zhang <zhangxy@google.com>:
      
      Consolidate ABSL_INTERNAL_UNALIGNED_* implementation into memcpy.
      The compiler should be good enough to optimize these operations.
      See https://github.com/abseil/abseil-cpp/issues/269 for background.
      
      PiperOrigin-RevId: 243323941
      
      --
      00853a8756548df7217513c562d604b4ee5c6ab9 by Eric Fiselier <ericwf@google.com>:
      
      Reexport memory.h from optional.h for compatibility between libc++ and
      libstdc++.
      
      PiperOrigin-RevId: 243313425
      GitOrigin-RevId: babbb6421068af3831870fd5995444437ace6769
      Change-Id: Ic53c127ad857a431ad60c98b27cc585fed50a3e3
      d902eb86
  15. Apr 12, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · a02f62f4
      Abseil Team authored
      --
      5755b40f6025f3ca126070fc68adb8fde9a7f01b by Abseil Team <absl-team@google.com>:
      
      Fix -Wextra-semi error.
      
      PiperOrigin-RevId: 243215850
      
      --
      3b6b6e18df9fbd233943cae460f0063f4efaa7c7 by Eric Fiselier <ericwf@google.com>:
      
      Internal Change.
      
      PiperOrigin-RevId: 243152671
      
      --
      82eef03f246009c806c25607c5682547cb4ad21e by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 243151861
      
      --
      c14e6340fca7070634e0ecfdf97833d930dd0e5d by Samuel Benzaquen <sbenza@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 243123590
      
      --
      9abb7a6b22457c0aa72d72b3b9392efd226d302a by Andy Getzendanner <durandal@google.com>:
      
      Implement operator<<(std::ostream &, absl::LogSeverity) so that absl::LogSeverity values can be streamed.
      
      PiperOrigin-RevId: 243117646
      GitOrigin-RevId: 5755b40f6025f3ca126070fc68adb8fde9a7f01b
      Change-Id: I7ea607d8a4e803ad15a3090139271f58ad4173a3
      a02f62f4
  16. Apr 11, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 0b545b46
      Abseil Team authored
      --
      421902a6ea836e4e59bed86eed68ab9ed992295a by Shaindel Schwartz <shaindel@google.com>:
      
      Remove setting and checking of max_load_factor. Setting max_load_factor is a no-op.
      
      Resolves #290.
      
      PiperOrigin-RevId: 243104530
      
      --
      bdbd409faf92ce4f6a1cacf16a063098dd0907d3 by Andy Soffer <asoffer@google.com>:
      
      Update authors.
      
      PiperOrigin-RevId: 242725194
      GitOrigin-RevId: 421902a6ea836e4e59bed86eed68ab9ed992295a
      Change-Id: I09666564fb2a94f16b9d3443fb2f6219c3bcc412
      0b545b46
  17. Apr 09, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · dbae8764
      Abseil Team authored
      --
      3f04cd3c25a99df91ff913977b8c5b343532db5d by Abseil Team <absl-team@google.com>:
      
      Stricter memory order constraints for CycleClock callback.
      
      PiperOrigin-RevId: 242670115
      
      --
      216db48375306490f1722a11aaf33080939d9f2f by Abseil Team <absl-team@google.com>:
      
      internal/optional.h: move macro from types/optional.h
      
      ABSL_OPTIONAL_USE_INHERITING_CONSTRUCTORS is only used within this file.
      additionally check the macro with #ifdef rather than #if, fixes -Wundef
      warning:
      'ABSL_OPTIONAL_USE_INHERITING_CONSTRUCTORS' is not defined, evaluates to 0
      PiperOrigin-RevId: 242548205
      
      --
      fbe22e7d8dc5c0b3d43ac26297e97ddbaeab3d39 by Samuel Benzaquen <sbenza@google.com>:
      
      Implement %f natively for any input.
      It evaluates the input at runtime and allocates stack space accordingly.
      
      This removes a potential fallback into snprintf, improves performance, and removes all memory allocations in this formatting path.
      
      PiperOrigin-RevId: 242531736
      
      --
      1458f9ba2a79ef0534e46527cd34770dee54164d by Greg Falcon <gfalcon@google.com>:
      
      Add explicit check for NVCC in compressed_tuple.h.
      
      NVCC claims to be MSVC, but does not implement this MSVC attribute.
      
      PiperOrigin-RevId: 242513453
      GitOrigin-RevId: 3f04cd3c25a99df91ff913977b8c5b343532db5d
      Change-Id: I0742e8619c5248c7607961113e406486bc0e279b
      dbae8764
  18. Apr 08, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 044da8a2
      Abseil Team authored
      --
      7c43cf69f00a02d8ed1e669cad12105de667a5ec by Abseil Team <absl-team@google.com>:
      
      tagging benchmark tests as benchmarks
      
      PiperOrigin-RevId: 242480880
      
      --
      3d8d518cde58cddc3d651ea6394ac0722f1f3149 by Samuel Benzaquen <sbenza@google.com>:
      
      Implement %f natively for any input.
      It evaluates the input at runtime and allocates stack space accordingly.
      
      This removes a potential fallback into snprintf, improves performance, and removes all memory allocations in this formatting path.
      
      PiperOrigin-RevId: 242474325
      
      --
      de2dc59909cd6c61960f46e647d297c17cb784b5 by Derek Mauro <dmauro@google.com>:
      
      Add a script to test MacOS/Xcode/CMake
      
      PiperOrigin-RevId: 242283929
      
      --
      dbc90e3dec22939d99397cd8894760bfe62480ec by Derek Mauro <dmauro@google.com>:
      
      Release macos_xcode_bazel.sh
      
      PiperOrigin-RevId: 242153782
      
      --
      92cda8a7ff7b4b974b0ae6a185cc449476336609 by Derek Mauro <dmauro@google.com>:
      
      Add a script to test MacOS/Xcode/Bazel
      
      PiperOrigin-RevId: 242144494
      GitOrigin-RevId: 7c43cf69f00a02d8ed1e669cad12105de667a5ec
      Change-Id: I3ae1f144a25a968cd4da0b2da0a3b268c81fd3bb
      044da8a2
  19. Apr 05, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 6cc6ac44
      Abseil Team authored
      --
      4a7dc9bd72a50f493671ea3ae2a571462cb70fc4 by Jon Cohen <cohenjon@google.com>:
      
      Use -ignore instead of /ignore.  CMake was interpreting /ignore as a path and changing it it \ignore in windows builds, expecting it to be some sort of file.
      
      Close #293
      
      PiperOrigin-RevId: 242134552
      
      --
      8de3e403667f677859584bb321ef8fce3253af18 by CJ Johnson <johnsoncj@google.com>:
      
      In InlinedVector: Migrates `Rep` to `Data` getting rid of the `Allocation` class.
      
      PiperOrigin-RevId: 242130255
      GitOrigin-RevId: 4a7dc9bd72a50f493671ea3ae2a571462cb70fc4
      Change-Id: Ic7ff4c572bba7a411155bf304b9cae10d68599db
      6cc6ac44
  20. Apr 04, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 666fc126
      Abseil Team authored
      --
      bc89d3221e3927d08881d75eeee0e8db862300fa by Benjamin Barenblat <bbaren@google.com>:
      
      Clean up C-style casts in `ABSL_ASSERT`
      
      PiperOrigin-RevId: 241932756
      
      --
      17482daae4b3e2fc725b759586590ac466b72a1e by Jon Cohen <cohenjon@google.com>:
      
      Move Gtest-specific CMake code to its own directory
      
      PiperOrigin-RevId: 241920192
      
      --
      9ae52b4f665625352c0a789cff884bde492c28f5 by CJ Johnson <johnsoncj@google.com>:
      
      Moves private data methods from InlinedVector to InlinedVector Storage in anticipation of migrating the Rep union type
      
      PiperOrigin-RevId: 241794144
      
      --
      95315bc50a61a0aae4f171b44c2312158a43e72e by Jon Cohen <cohenjon@google.com>:
      
      Use /DNOMINMAX in Abseil tests.  This offsets inlcudes of <windows.h> from gtest.
      
      PiperOrigin-RevId: 241790584
      
      --
      ee505c7f2ab99d29c165ea21a07190474f64053d by CJ Johnson <johnsoncj@google.com>:
      
      Adds inlined_vector_internal to the deps of inlined_vector in CMakeLists.txt
      
      PiperOrigin-RevId: 241775332
      
      --
      94eb5165b49bab59ce7de143be38a4581d5658da by CJ Johnson <johnsoncj@google.com>:
      
      Migrates InlinedVector Storage to class Metadata for compatibility with the eventual member-wise migration to the new exception safe implementation
      
      PiperOrigin-RevId: 241633420
      
      --
      f99e172caad1ec8b35bf7bbabaf2833d55a6f055 by Abseil Team <absl-team@google.com>:
      
      Add MSVC specific linker flags only to MSVC builds.
      
      PiperOrigin-RevId: 241615711
      
      --
      3ad19d2779281e945bdf56643dc5cee3f730eb4f by Abseil Team <absl-team@google.com>:
      
      Add a comment about per-process randomization of absl::Hash.
      
      PiperOrigin-RevId: 241583697
      
      --
      8dfb02d725fee3528351b2da4ed32a7455f9858a by Tom Manshreck <shreck@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 241564734
      GitOrigin-RevId: bc89d3221e3927d08881d75eeee0e8db862300fa
      Change-Id: Ibad3da416d08a96ec1f8313f8b519b4270b7e01a
      666fc126
  21. Apr 01, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 93dfcf74
      Abseil Team authored
      --
      855576faf9556573fd74c2874b290d8feb6565d5 by Gennadiy Rozental <rogeeff@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 241395451
      
      --
      b93bfd43eb2a992258f131e10f503526cfec6d48 by CJ Johnson <johnsoncj@google.com>:
      
      Fixes comment over AbslHashValue for InlinedVector
      
      PiperOrigin-RevId: 241368320
      
      --
      75f58dafcac7d78c28d92a61ec7e53c5b3b86697 by Matt Kulukundis <kfm@google.com>:
      
      Do not call sampling logic for tables with custom allocators.
      
      PiperOrigin-RevId: 241356451
      
      --
      09f1b4889476ff707a54189aff540e2fe1edcf61 by Derek Mauro <dmauro@google.com>:
      
      Re-enable optionalTest.InPlaceTSFINAEBug after libc++ update
      
      PiperOrigin-RevId: 241222673
      
      --
      01a8bb5a8cb1e13e88ddb92f9c0160beb6e126be by Derek Mauro <dmauro@google.com>:
      
      Update Clang on Kokoro to r356196.
      
      This includes a workaround for a -Wgnu-include-next warning fixed by
      https://reviews.llvm.org/rG0706e144d57305782988dd4367530ae04986116f
      
      PiperOrigin-RevId: 241222395
      
      --
      1de66bb669a7ec1494d6064677687f761ee2d369 by Abseil Team <absl-team@google.com>:
      
      Remove identical test and fix char to string per comment
      
      PiperOrigin-RevId: 240855512
      GitOrigin-RevId: 855576faf9556573fd74c2874b290d8feb6565d5
      Change-Id: Ie155b209ef5567e6597da6ef1844db7e2ad72586
      93dfcf74
  22. Mar 28, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 2c8421e1
      Abseil Team authored
      --
      fcf9d3facb12451964ad1850073cbfb6f9739379 by CJ Johnson <johnsoncj@google.com>:
      
      Makes it obvious to readers that the comparison operators do not branch more than needed
      
      PiperOrigin-RevId: 240811527
      
      --
      680c586f81f805be68e96caffb28d5f46b6a6511 by Jon Cohen <cohenjon@google.com>:
      
      Consistently use "if(" instead of "if (" in CMake files
      
      PiperOrigin-RevId: 240621819
      
      --
      c4acc506648622389f33f564fd94f8dda08cb61a by Tom Manshreck <shreck@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 240619556
      
      --
      ddbc1894944aae96767c876a1ae8696ddaba42a2 by Jon Cohen <cohenjon@google.com>:
      
      Remove the warning about install prefixes when we aren't installing abseil
      
      PiperOrigin-RevId: 240614750
      
      --
      086c4fad213d99e875038bc8a1c7268e28a7ebf3 by Abseil Team <absl-team@google.com>:
      
      Adjust some tests and test cases which fail on WebAssembly
      
      PiperOrigin-RevId: 240592367
      
      --
      46c2c09723a37ef4911ae3c64aab92e3f0fdba79 by Abseil Team <absl-team@google.com>:
      
      CMake install target update
      - Add prefix absl_ to each target when install rule are disabled.
      - Disable all install commands when absl is used as subdirectory (Fix #287)
      
      PiperOrigin-RevId: 240575083
      
      --
      8d88063ed5b16f982a91950693d37ca18fdd46d8 by Jon Cohen <cohenjon@google.com>:
      
      Correctly link to Threads::Threads for a few cmake targets which were missing it.
      
      PiperOrigin-RevId: 240574513
      GitOrigin-RevId: fcf9d3facb12451964ad1850073cbfb6f9739379
      Change-Id: I031c57de8cd88554348eb8bd1371d01d15ff1fc7
      2c8421e1
  23. Mar 27, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 5b65c4af
      Abseil Team authored
      --
      f6c627ce4470a814adc377947b58346eef69a4c9 by Jon Cohen <cohenjon@google.com>:
      
      Don't create install rules when Abseil is used as a subdirectory.
      
      Fix #287
      
      PiperOrigin-RevId: 240559825
      
      --
      a5d9b06fe736143068997988b654b5f66ec3266a by Matt Calabrese <calabrese@google.com>:
      
      Make absl::nullopt an inline constexpr variable, as specified in the standard (with a workaround for pre-c++17 compilers).
      
      PiperOrigin-RevId: 240552286
      
      --
      d7bee50cff745fbb8d1cdf56a200d9073d311c80 by Abseil Team <absl-team@google.com>:
      
      Internal Change
      
      PiperOrigin-RevId: 240425622
      
      --
      828dd49d392d83dbeecd9d3e9cb14551ab265905 by Jon Cohen <cohenjon@google.com>:
      
      Add default link options to absl builds.
      
      Currently all this does is add -ignore:4221 to Abseil msvc builds, but the structure is all in place to add more link options when necessary
      
      Fix #277
      
      Note: This CL changes tact for us in that it puts the default options in the helper function as opposed to the invocations of absl_cc_blah.  The original intent of keeping these out of the helper functions was to make generating the CMakeLists.txt files have a smaller diff, but looking now that is a problem for the future, and small compared to making maintenance and use of our CMake buildsystem easier
      PiperOrigin-RevId: 240409463
      
      --
      4aa120e9dcf76d29e9ca0008d0f6d4d9fa8abe8c by Matt Kulukundis <kfm@google.com>:
      
      Reduce flake rate for non-determistic test to < 1/10,000
      
      PiperOrigin-RevId: 240370938
      
      --
      bc30e219531827bfbf90915b2067c7fb8160bb6d by Derek Mauro <dmauro@google.com>:
      
      Add Bazel caching on Kokoro for new linux targets.
      
      PiperOrigin-RevId: 240356556
      
      --
      c4e06d79a50d7bb211312b7845c4bd92c0761747 by Jon Cohen <cohenjon@google.com>:
      
      include AbseilInstallDirs instead of GNUInstallDirs.  It worked before because global_CMakeLists.txt also included AbseilInstallDirs
      
      PiperOrigin-RevId: 240206409
      
      --
      c254dc6cade8a263f3f97fb1417d92fe5235ff32 by Jon Cohen <cohenjon@google.com>:
      
      Fix logic for when we create the variant_exception_safety_test in CMake.  Currently we are only running in on gcc > 4.9, when we want it run on every compiler except gcc <= 4.8
      
      PiperOrigin-RevId: 240194174
      
      --
      01518006b351d3670ba1d349cfbcb7dd6f3a8b84 by CJ Johnson <johnsoncj@google.com>:
      
      Removes old implementation warning comment now that InlinedVector has an implementation detail file
      
      PiperOrigin-RevId: 240167265
      
      --
      eb05355ae8c7397752ab7a65afc9e0a99472ba9d by Jon Cohen <cohenjon@google.com>:
      
      Remove the forward declaration of Span
      
      PiperOrigin-RevId: 240156660
      
      --
      b7e75aa3933d6e79dd086821cf58d15e72f476f4 by Jon Cohen <cohenjon@google.com>:
      
      Prepare CMake install rule for LTS releases:
        * Remove the warning against installing in system install locations
        * Insert versioning to keep different LTS installs from colliding.  Headers are installed in <prefix>/absl_$version/include, .a files in <prefix>/absl_$version/lib, and config files in <prefix>/absl_$version/lib/cmake
      
      PiperOrigin-RevId: 240153986
      
      --
      de63488ab6236e041f08260794b0b634a2b8ed16 by CJ Johnson <johnsoncj@google.com>:
      
      Reduce reader confusion by using std::addressof(...) even when the type is known to not overload operator&(...)
      
      PiperOrigin-RevId: 240131902
      GitOrigin-RevId: f6c627ce4470a814adc377947b58346eef69a4c9
      Change-Id: I95dbbacaaf65aceeeca9e9bee5fd9ea456225f62
      5b65c4af
  24. Mar 22, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · eab2078b
      Abseil Team authored
      --
      8b7c3bc2fb69608e9b2389b1be0b0de840a4c59d by Derek Mauro <dmauro@google.com>:
      
      Set correct flags for clang-cl.
      https://github.com/abseil/abseil-cpp/pull/278
      
      clang-cl produce binaries with MSVC ABI and wants to be as
      flag-compatible with pure MSVC as possible, so this leads to all sorts
      of weird cases.
      
      clang-cl alias /Wall as clang's -Weverything which is way too verbose,
      so it needs /W3 like pure MSVC.
      
      clang-cl only understand GCC style warning flags (-W[no]blah) and just
      silent drop MSVC style warning flags (/wd[num]).
      
      clang-cl needs MSVC define flags since it is consuming the same header
      files as pure MSVC.
      
      CMake set CMAKE_CXX_COMPILER_ID as Clang when clang-cl is detected, so
      need extra if (MSVC) to differentiate it.
      
      We are not doing clang-cl specialization in Bazel as currently there
      is no reliable way to detect clang-cl in Bazel..
      
      Other changes:
      Add ABSL_ prefix to variable names to avoid name collision in CMake.
      
      PiperOrigin-RevId: 239841297
      
      --
      add96c3fc067d5c7b6f016d2ba74725a443a185e by CJ Johnson <johnsoncj@google.com>:
      
      Eventually Storage will need to refer to the type `absl::InlinedVector<...>*`. This can be done via a forward declaration. However, doing so would move the defaulted allocator template parameter to the forward declaration and thus inside an internal file. Instead of doing that, this change gives Storage access to the template and it's parameters so the complete type can be formed without including it.
      
      PiperOrigin-RevId: 239811298
      
      --
      b5f5279f1b13b09cae5c745597d64ea1efab146b by CJ Johnson <johnsoncj@google.com>:
      
      Simplify/cleanup the benchmark tests for InlinedVector
      
      PiperOrigin-RevId: 239805767
      
      --
      f5991e51b43b13a0ae95025474071f5039a33d27 by Matt Calabrese <calabrese@google.com>:
      
      Update the internal-only IsSwappable traits to be nested inside of namespace absl so that the script to add inline namespaces for LTS releases works with the implementation.
      
      PiperOrigin-RevId: 239622024
      
      --
      d1cb234dc5706f033ad56f4eb16d94ac5da80d52 by Abseil Team <absl-team@google.com>:
      
      Mutex: fix tsan annotations
      
      This fixes 2 bugs:
      1. We call cond directly in Mutex::AwaitCommon without using EvalConditionAnnotated. As the result we call into user code ignoring synchronization, miss synchronization and report false positives later. Use EvalConditionAnnotated to call cond as we should.
      
      2. We call Mutex invariant ignoring synchronization. Result is the same: we miss synchronization and report false positive races later. Reuse EvalConditionAnnotated to call mutex invariant too.
      
      PiperOrigin-RevId: 239583878
      
      --
      52295e4922a9b408fa0dd03d27bc91ccc6645cd7 by Abseil Team <absl-team@google.com>:
      
      Clarify how to obtain the same behavior as std::unordered_map::erase if need be.
      
      PiperOrigin-RevId: 239549513
      
      --
      6e76e68ed084fd1247981dbb92677ce8e563b0ec by Jon Cohen <cohenjon@google.com>:
      
      Avoid the -S -B form of `cmake` since it's only supported starting in CMake 3.13
      
      PiperOrigin-RevId: 239473143
      GitOrigin-RevId: 8b7c3bc2fb69608e9b2389b1be0b0de840a4c59d
      Change-Id: Ib6d356fa1a7435260273df991e65df4149bd5861
      eab2078b
    • Loo Rong Jie's avatar
      [CMake] Set correct flags for clang-cl (#278) · 253eb741
      Loo Rong Jie authored
      clang-cl produce binaries with MSVC ABI and wants to be as flag-compatible with pure MSVC as possible, so this leads to all sorts of weird cases.
      
      clang-cl alias /Wall as clang's -Weverything which is way too verbose, so it needs /W3 like pure MSVC.
      clang-cl only understand GCC style warning flags (-W[no]blah) and just silent drop MSVC style warning flags (/wd[num]).
      clang-cl needs MSVC define flags since it is consuming the same header files as pure MSVC.
      CMake set CMAKE_CXX_COMPILER_ID as Clang when clang-cl is detected, so need extra if (MSVC) to differentiate it.
      
      We are not doing clang-cl specialization in Bazel as currently there is no reliable way to detect clang-cl in Bazel..
      
      This PR should be NFC for LLVM/GCC users on Unix platforms.
      
      Other changes:
      
      Add ABSL_ prefix to variable names to avoid name collision in CMake.
      253eb741
  25. Mar 20, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · e75672f6
      Abseil Team authored
      --
      61a5128b3b3db9db7df219b7ef737b78f7743e54 by Abseil Team <absl-team@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 239413069
      
      --
      fd47ba5c2243523cc579239a220254cbc47376af by Jon Cohen <cohenjon@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 239404848
      
      --
      bece0ae2b391351feb27547a4693f4e654b1b4ab by Eric Fiselier <ericwf@google.com>:
      
      Unconditionally include memory.h in optional.
      
      PiperOrigin-RevId: 239298731
      GitOrigin-RevId: 61a5128b3b3db9db7df219b7ef737b78f7743e54
      Change-Id: I09c1268154f1c8ea2b653d3e907f709e09025817
      e75672f6
  26. Mar 19, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · bf294703
      Abseil Team authored
      --
      bdce7e57e9e886eff1114d0266781b443f7ec639 by Derek Mauro <dmauro@google.com>:
      
      Change {Get|Set}EnvironmentVariable to {Get|Set}EnvironmentVariableA for
      compatibility with /DUNICODE.
      
      PiperOrigin-RevId: 239229514
      
      --
      2276ed502326a044a84060d34eb19d499e3a3be2 by Derek Mauro <dmauro@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 239228622
      
      --
      a462efb970ff43b08a362ef2343fb75ac1295a50 by Derek Mauro <dmauro@google.com>:
      
      Adding linking of CoreFoundation to CMakeLists in absl/time.
      Import https://github.com/abseil/abseil-cpp/pull/280.
      
      Fix #283
      
      PiperOrigin-RevId: 239220785
      
      --
      fc23327b97f940c682aae1956cf7a1bf87f88c06 by Derek Mauro <dmauro@google.com>:
      
      Add hermetic test script that uses Docker to build with a very recent
      version of gcc (8.3.0 today) with libstdc++ and bazel.
      
      PiperOrigin-RevId: 239220448
      
      --
      418c08a8f6a53e63b84e39473035774417ca3aa7 by Derek Mauro <dmauro@google.com>:
      
      Disable part of the variant exeception safety test on move assignment
      when using versions of libstd++ that contain a bug.
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87431#c7
      
      PiperOrigin-RevId: 239062455
      
      --
      799722217aeda79679577843c91d5be62cbcbb42 by Matt Calabrese <calabrese@google.com>:
      
      Add internal-only IsSwappable traits corresponding to std::is_swappable and std::is_nothrow_swappable, which are used with the swap implementations of optional and variant.
      
      PiperOrigin-RevId: 239049448
      
      --
      aa46a036038a3de5c68ac5e5d3b4bf76f818d2ea by CJ Johnson <johnsoncj@google.com>:
      
      Make InlinedVectorStorage constructor explicit
      
      PiperOrigin-RevId: 239044361
      
      --
      17949715b3aa21c794701f69f2154e91b6acabc3 by CJ Johnson <johnsoncj@google.com>:
      
      Add absl namesapce to internal/inlined_vector.h
      
      PiperOrigin-RevId: 239030789
      
      --
      834628325953078cc08ed10d23bb8890e5bec897 by Derek Mauro <dmauro@google.com>:
      
      Add test script that uses Docker to build Abseil with gcc-4.8,
      libstdc++, and cmake.
      
      PiperOrigin-RevId: 239028433
      
      --
      80fe24149ed73ed2ced995ad1e372fb060c60427 by CJ Johnson <johnsoncj@google.com>:
      
      Factors data members of InlinedVector into an impl type called InlinedVectorStorage so that (in future changes) the contents of a vector can be grouped together with a single pointer.
      
      PiperOrigin-RevId: 239021086
      
      --
      585331436d5d4d79f845e45dcf79d918a0dc6169 by Derek Mauro <dmauro@google.com>:
      
      Add -Wno-missing-field-initializers to gcc compiler flags.
      gcc-4.x has spurious missing field initializer warnings.
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36750
      
      PiperOrigin-RevId: 239017217
      
      --
      94602fe4e33ee3a552a7f2939c0f57a992f55075 by Abseil Team <absl-team@google.com>:
      
      Formatting fixes.
      
      PiperOrigin-RevId: 238983038
      
      --
      a1c1b63c08505574e0a8c491561840cecb2bb93e by Derek Mauro <dmauro@google.com>:
      
      Add hermetic test script that uses Docker to build with a very recent
      version of clang with libc++ and bazel.
      
      PiperOrigin-RevId: 238669118
      
      --
      e525f8d20bc2f79a0d69336b902f63858f3bff9d by Derek Mauro <dmauro@google.com>:
      
      Disable the test optionalTest.InPlaceTSFINAEBug until libc++ is updated.
      
      PiperOrigin-RevId: 238661703
      
      --
      f99a2a0b5ec424a059678f7f226600f137b4c74e by Derek Mauro <dmauro@google.com>:
      
      Correct the check for the FlatHashMap-Any test bug (list conditions
      instead of platforms when possible)
      
      PiperOrigin-RevId: 238653344
      
      --
      777928035dbcbf39f361eb7d10dc3696822f692f by Jon Cohen <cohenjon@google.com>:
      
      Add install rules for Abseil CMake.
      
      These are attempted to be limited to in-project installation.  This serves two purposes -- first it's morally the same as using Abseil in-source, except you don't have to rebuild us every time.  Second, the presence of an install rule makes life massively simpler for package manager maintainers.
      
      Currently this doesn't install absl tests or testonly libraries.  This can be added in a follow-up patch.
      
      Fixes #38, Fixes #80, Closes #182
      
      PiperOrigin-RevId: 238645836
      
      --
      ded1c6ce697c191b7a6ff14572b3e6d183117b2c by Derek Mauro <dmauro@google.com>:
      
      Add hermetic test script that uses Docker to build with a very recent
      version of clang with libstdc++ and bazel.
      
      PiperOrigin-RevId: 238517815
      GitOrigin-RevId: bdce7e57e9e886eff1114d0266781b443f7ec639
      Change-Id: I6f745869cb8ef63851891ccac05ae9a7dd241c4f
      bf294703
    • Derek Mauro's avatar
      Merge pull request #280 from chiumichael/master · 6fd82712
      Derek Mauro authored
      Adding linking of CoreFoundation to CMakeLists in absl/time
  27. Mar 15, 2019
  28. Mar 14, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 7c7754fb
      Abseil Team authored
      --
      89b5e681db1d4f0b039daebb86c49bda77c8931b by Tom Manshreck <shreck@google.com>:
      
      Add clarification that absl::Hash does not produce stable values across instances.
      
      PiperOrigin-RevId: 238316564
      
      --
      56dec1d1e37fb2a02aa10d7c81bcd78f8486c093 by Eric Fiselier <ericwf@google.com>:
      
      Add SFINAE to absl::optional::optional(in_place_t, Args...)
      
      This constructor previously didn't have SFINAE because the SFINAE
      acted badly when Clang was trying to figure out what special
      members to declare. Specifically, while considering copy
      constructors it would attempt to call `optional(in_place_t) [ with Args = <>
      ]`, which evaluated `is_constructible<T>`, which shouldn't have been
      evaluated.
      
      This patch avoids the eager SFINAE bug by deducing the in_place_t tag
      and short-circuting the SFINAE if the argument passed is not exactly
      in_place_t.
      
      I fixed the same bug in libc++ in the same way.
      
      PiperOrigin-RevId: 238290810
      
      --
      ffe6d087df495f7f990c89b0a4e1f1664c2c4f9d by Jon Cohen <cohenjon@google.com>:
      
      Remove absl_internal_blah names form CMake.  We are always creating the alias target now, since use of these targets still requires including a header with internal in the name. This simplifies target naming a bit, especially for installation where we have to generate non-prefixed target names to export in the absl:: namespace.
      
      PiperOrigin-RevId: 238280135
      
      --
      9d8ae92ff8727fa49391f7f5386810ff81e80aa7 by Derek Mauro <dmauro@google.com>:
      
      Use ABSL_TEST_COPTS for spinlock_benchmark_common and mutex_benchmark_common.
      Despite being cc_library, these are really tests and the warning for the
      used-but-marked-unused iterator in Google Benchmark needs to be supressed.
      
      PiperOrigin-RevId: 238225200
      
      --
      fcde1a79420ce15c8925944c45b69f9fd5226f12 by Matt Armstrong <marmstrong@google.com>:
      
      Qualify calls to certain functions from the cmath library.
      
      PiperOrigin-RevId: 238163972
      
      --
      4b931e5ef4ba76961b0e2a9edab1e586ba12dfd4 by Tom Manshreck <shreck@google.com>:
      
      Add clarification that absl::Hash does not produce stable values across instances.
      
      PiperOrigin-RevId: 238125817
      
      --
      8963ea8c65cac1e396a72fe77d6eb6a7313d76db by Derek Mauro <dmauro@google.com>:
      
      Fix -Wc++14-binary-literal warning.
      
      PiperOrigin-RevId: 238069157
      GitOrigin-RevId: 89b5e681db1d4f0b039daebb86c49bda77c8931b
      Change-Id: Ib06f1ee8efcddb7e2f332bc5bf1c1325458e1073
      7c7754fb
  29. Mar 12, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 256be563
      Abseil Team authored
      --
      00d42e3d5433aaf29c2ed293520b2ba178ae8bdb by Greg Falcon <gfalcon@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 238061818
      
      --
      867a7ca318fac2991ea9a4107dbae3cc9fbf974a by Abseil Team <absl-team@google.com>:
      
      Added a IWYU export pragma when including a standard header for the purpose of aliasing its symbols.
      
      PiperOrigin-RevId: 238022277
      
      --
      17047745058f2f151cd986ea9f649512542d3876 by Matt Armstrong <marmstrong@google.com>:
      
      Clarify the comment discouraging WrapUnique<T>(x) calls.
      
      PiperOrigin-RevId: 237873803
      
      --
      3dcb2e4968243d33ca0ce53280c445df50f4a7ec by Samuel Benzaquen <sbenza@google.com>:
      
      Workaround clang bug https://bugs.llvm.org/show_bug.cgi?id=38289
      
      PiperOrigin-RevId: 237873551
      
      --
      f348d2dc7087a990cbdfb95aa51fd7ff478ae40e by Samuel Benzaquen <sbenza@google.com>:
      
      Reduce minimum capacity to 1.
      This reduces memory usage for small tables.
      A flat_hash_set<int> of 1 element goes from 92 bytes to 24.
      A flat_hash_set<string> of 1 element goes from 512 bytes to 56.
      
      PiperOrigin-RevId: 237859811
      
      --
      9c8125be5e4e5d22a7bb62bdec8c323338385c1b by Jon Cohen <cohenjon@google.com>:
      
      Bump to CMake 3.5. This is the oldest modern cmake being included by default in most popular OS distributions according to https://repology.org/project/cmake/versions.  Specifically, Ubuntu LTS 16.04 uses cmake 3.5 (https://packages.ubuntu.com/xenial/cmake)
      
      PiperOrigin-RevId: 237859345
      
      --
      07638d672e0a4dced986a62750cfd8318ed36ffa by Derek Mauro <dmauro@google.com>:
      
      Import of CCTZ from GitHub.
      
      PiperOrigin-RevId: 237714597
      GitOrigin-RevId: 00d42e3d5433aaf29c2ed293520b2ba178ae8bdb
      Change-Id: I5faecc45add4a5a774d4f9baf06e5519091f2ccc
      256be563
  30. Mar 08, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 88a152ae
      Abseil Team authored
      --
      5dc8d7504b7c11710b19365a6582c288c8992366 by Derek Mauro <dmauro@google.com>:
      
      Fix constexpr Span::last under MSVC and add Span constexpr tests.
      
      PiperOrigin-RevId: 237515952
      
      --
      5ea8c146e653bbc49ff7e698699478242df7de35 by Derek Mauro <dmauro@google.com>:
      
      Implement Span::first and Span::last from C++20.
      https://github.com/abseil/abseil-cpp/pull/274
      
      PiperOrigin-RevId: 237494399
      
      --
      08db3417f1d8fe4556255d57a2f0df51b09bdd9a by Derek Mauro <dmauro@google.com>:
      
      HTTPS in more URLs.
      
      PiperOrigin-RevId: 237486823
      
      --
      83ec63a7f8e47b62af619546f9f7b3bf72e74e86 by Derek Mauro <dmauro@google.com>:
      
      Changed HTTP URLs to HTTPS where possible.
      https://github.com/abseil/abseil-cpp/pull/270
      
      PiperOrigin-RevId: 237445310
      
      --
      220bf279c14cb31efa239500d1a70e0ac0c32e3c by Abseil Team <absl-team@google.com>:
      
      Support parsing decltype(nullptr) as a type.
      
      PiperOrigin-RevId: 237336739
      
      --
      ced234bbe78f5d495c3f6f6a9c2e0a95f7c080a5 by Gennadiy Rozental <rogeeff@google.com>:
      
      Introduce internal interface for setting environment variable value in scope
      
      PiperOrigin-RevId: 237275806
      
      --
      1f1acb4e294af24d9f7598e85163d5e1d9958ae9 by Samuel Benzaquen <sbenza@google.com>:
      
      Avoid using aliases in the SFINAE expressions to make it more compatible with MSVC.
      Turn on the tests in MSVC.
      
      PiperOrigin-RevId: 237261456
      
      --
      06cf7de6250a0572ef90fa1176f742ca0451ce71 by Derek Mauro <dmauro@google.com>:
      
      Fix unused variable warning.
      
      PiperOrigin-RevId: 237108006
      GitOrigin-RevId: 5dc8d7504b7c11710b19365a6582c288c8992366
      Change-Id: Ife5182c80942945c4e8700844c8febb482d6ad82
      88a152ae
    • Girts's avatar
      Implement Span::first and Span::last from C++20 (#274) · c1cecb25
      Girts authored
      This implements `first` and `last` methods on `Span` that mimics
      ones in `std::span`.
      c1cecb25
    • nik7273's avatar
      38b70438
  31. Mar 06, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · febc5ee6
      Abseil Team authored
      --
      f9f068aa8a260dc576398e47b8e4540902e41358 by Derek Mauro <dmauro@google.com>:
      
      Fix test string with embedded NUL. Currently parses as octal.
      
      PiperOrigin-RevId: 237088193
      
      --
      d271ffdd3f450f817f6d30e98ff39d439aaf3a98 by Abseil Team <absl-team@google.com>:
      
      Make symbolizer examine any mapping with read+exec permission regardless of 'w' bit.
      
      PiperOrigin-RevId: 237056461
      
      --
      af315f8306d36a7367a452fd0b58cafdbf20719d by Abseil Team <absl-team@google.com>:
      
      Switch comments referencing base:: CondVar and Mutex to absl::.
      
      PiperOrigin-RevId: 236917884
      
      --
      c624d5d1c0bdb917bff5e651ba40599472f84e0e by Gennadiy Rozental <rogeeff@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 236898300
      
      --
      3cdc82429af964846d1152f49148abc61d196a4b by Samuel Benzaquen <sbenza@google.com>:
      
      Make the `long double` overload if AbslHashValue a template to avoid invalid
      conversions with implicit operators.
      
      This overload was never meant to capture anything other than `long double` and any current caller to it that wasn't a `long double` is potentially a bug.
      In particular, any type with an implicit `bool` conversion is calling this
      overload instead of trying to find a hash<> specialization, thus causing
      pretty bad hash behavior.
      
      PiperOrigin-RevId: 236877073
      GitOrigin-RevId: f9f068aa8a260dc576398e47b8e4540902e41358
      Change-Id: If9cc008dd814f0ca06ed881f612c06575f1f7137
      febc5ee6
  32. Mar 05, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 9fdf5e5b
      Abseil Team authored
      --
      425305bdac5c84a2b7b61d65aee90e4d9d1c29a0 by Abseil Team <absl-team@google.com>:
      
      Change a comment about hex strings to use lowercase 'a' and 'f' characters, since StrCat(Hex()) produces lowercase hex characters.
      
      PiperOrigin-RevId: 236763001
      
      --
      2a312da1c2e46da3bdece0c322c4cd37356bb9aa by Samuel Benzaquen <sbenza@google.com>:
      
      Enable more tests for non-std containers by default.
      Add more tests for typedefs and other members.
      
      PiperOrigin-RevId: 236652269
      
      --
      5d5abd4d8e8e03d3c924675550a9584325b18732 by Eric Fiselier <ericwf@google.com>:
      
      Fix incorrect detection of unavailable C++17 types.
      
      Using <any> on OS X has complications, because it is
      present but marked "unavailable" due to dylib compatibility
      reasons.
      
      The dance we did to detect availability was correct
      on OS X, but accidentally clobbered all other platforms
      for not being Apple.
      
      This patch corrects the detection.
      
      PiperOrigin-RevId: 236651217
      GitOrigin-RevId: 425305bdac5c84a2b7b61d65aee90e4d9d1c29a0
      Change-Id: Ib922ce003422781aec169ea169d8fb15292ccd85
      9fdf5e5b
  33. Mar 04, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 419f3184
      Abseil Team authored
      --
      92e1bd6dc9e64163659028b640427d6d8573e41c by Abseil Team <absl-team@google.com>:
      
      Don't enable ABSL_HAVE_STD_IS_TRIVIALLY_ASSIGNABLE with MSVC when used with nvcc.
      
      With nvcc on Windows __has_trivial_assign(int) is false; that leads to a failure of the check in is_trivially_copy_assignable. A better solution would probably be to use the std-provided check in this case, but that seems like a more intrusive change.
      
      PiperOrigin-RevId: 236135209
      
      --
      26cee4a7e647076b4e2f88375b4848d1469e55ed by Derek Mauro <dmauro@google.com>:
      
      Remove hashtablez_force_sampling from the open-source release.
      This should not have been released. It is internal-only and not portable.
      
      Fixes https://github.com/abseil/abseil-cpp/issues/268
      
      PiperOrigin-RevId: 235978666
      
      --
      935a885ec0e108963014f1bb79f00102da8f3871 by CJ Johnson <johnsoncj@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 235976027
      
      --
      1c148c89de6064031f1ad9f2eeac0331bd77b7b0 by Tom Manshreck <shreck@google.com>:
      
      Add design note for absl::from_chars to abseil.io
      
      Fixes #165
      
      PiperOrigin-RevId: 235975923
      GitOrigin-RevId: 92e1bd6dc9e64163659028b640427d6d8573e41c
      Change-Id: I220b0bbb46742070ea8c2a94b06007ecae76fe0f
      419f3184
  34. Feb 26, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · b312c3cb
      Abseil Team authored
      --
      4501f16edb0939be6165df74c70a421d3a959aa5 by Jon Cohen <cohenjon@google.com>:
      
      Remove use of list(FILTER as it's only available in cmake 3.6.  We currently have to support cmake 3.5 at least because of Ubuntu 14.04.  Also make sure to exclude .inc files when checking if the library is header only.
      
      Fixes #263
      
      PiperOrigin-RevId: 235725207
      
      --
      68ceb6a674a6cbb74472c64915e9e76d2de2fb8d by Abseil Team <absl-team@google.com>:
      
      Fix comment in FixedArrayTest.SmallObjects.
      
      PiperOrigin-RevId: 235671337
      GitOrigin-RevId: 4501f16edb0939be6165df74c70a421d3a959aa5
      Change-Id: I7c2759ad9d1d086cc7c213e7964279366113fccb
      b312c3cb
  35. Feb 25, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 308ce315
      Abseil Team authored
      --
      e4e4a3460b64ba0571be217b04ec286bfac6b6bf by Tom Manshreck <shreck@google.com>:
      
      Internal change
      
      PiperOrigin-RevId: 235573160
      
      --
      200323f1243e20c201d20bdab4c15a20346a27e5 by CJ Johnson <johnsoncj@google.com>:
      
      Removed unneded template parameter from InlinedVector internal functions
      
      PiperOrigin-RevId: 234910222
      
      --
      2f1bba53c9ca40d0718c4c1edfcfea40edd5049e by CJ Johnson <johnsoncj@google.com>:
      
      Add comment highlighting the fact that the InlinedVector(&&, alloc) move constructor overload will still commit pointer theft in one case
      
      PiperOrigin-RevId: 234899890
      GitOrigin-RevId: e4e4a3460b64ba0571be217b04ec286bfac6b6bf
      Change-Id: I0aabbabb96e9a057a55ed6b42591ea43b4609efe
      308ce315
  36. Feb 20, 2019
    • Abseil Team's avatar
      Export of internal Abseil changes. · 93d155bc
      Abseil Team authored
      --
      3d20ce6cd6541579abecaba169d4b8716d511272 by Jon Cohen <cohenjon@google.com>:
      
      Only use LSAN for clang version >= 3.5.  This should fix https://github.com/abseil/abseil-cpp/issues/244
      
      PiperOrigin-RevId: 234675129
      
      --
      e15bd4ec7a81aa95cc3d09fa1e0e81d58ae478fb by Conrad Parker <conradparker@google.com>:
      
      Fix errors in apply() sample code
      
      The following changes are made:
       * Make the example method public.
       * Give the two user functions different names to avoid confusion about
         whether apply() can select the correct overload of a function based
         on its tuple argument (it can't).
       * Pass tuple2 to the second example apply() invocation, instead of
         passing its contents individually.
       * Fix a s/tuple/tuple3/ typo in the third example apply() invocation.
      
      PiperOrigin-RevId: 234223407
      
      --
      de0ed71e21bc76ddf9fe715fdbaef74cd0df95c7 by Abseil Team <absl-team@google.com>:
      
      First test if a macro is defined to avoid -Wundef.
      
      ABSL clients may need to compile their code with the -Wundef warning
      flag. It will be helpful if ABSL header files can be compiled without
      the -Wundef warning.
      
      How to avoid the -Wundef warning: If a macro may be undefined, we need
      to first test whether the macro is defined before testing its value. We
      can't rely on the C preprocessor rule that an undefined macro has the
      value 0L.
      
      PiperOrigin-RevId: 234201123
      
      --
      fa484ad7dae0cac21140a96662809ecb0ec8eb5d by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 234185697
      
      --
      d69b1baef681e27954b065375ecf9c2320463b2b by Samuel Benzaquen <sbenza@google.com>:
      
      Mix pointers more thoroughly.
      Some pointer alignments interact badly with the mixing constant. By mixing twice we reduce this problem.
      
      PiperOrigin-RevId: 234178401
      
      --
      1041d0e474610f3a8fea0db90958857327d6da1c by Samuel Benzaquen <sbenza@google.com>:
      
      Record rehashes in the hashtablez struct.
      Only recording the probe length on insertion causes a huge overestimation of
      the total probe length at any given time.
      
      With natural growth, elements are inserted when the load factor is between
      (max load/2, max load). However, after a rehash the majority of elements are
      actually inserted when the load factor is less than max/2 and have a much lower
      average probe length.
      
      Also reset some values when the table is cleared.
      
      PiperOrigin-RevId: 234013580
      
      --
      299205caf3c89c47339f7409bc831746602cea84 by Mark Barolak <mbar@google.com>:
      
      Fix a sample code snippet that assumes `absl::string_view::const_iterator` is `const char*`.  This is generally true, however in C++17 builds, absl::string_view is an alias for std::string_view and on MSVC, the std::string_view::const_iterator is an object instead of just a pointer.
      
      PiperOrigin-RevId: 233844595
      
      --
      af6c6370cf51a1e6c1469c79dfb2a486a4009136 by Abseil Team <absl-team@google.com>:
      
      Internal change.
      
      PiperOrigin-RevId: 233773470
      
      --
      6e59e4b8e2bb6101b448f0f32b0bea81fe399ccf by Abseil Team <absl-team@google.com>:
      
      fix typo in {Starts|Ends}WithIgnoreCase comment in match.h
      
      PiperOrigin-RevId: 233662951
      GitOrigin-RevId: 3d20ce6cd6541579abecaba169d4b8716d511272
      Change-Id: Ib9a29b1c38c6aedf5d9f3f7f00596e8d30e864dd
      93d155bc
Loading