Commit graph

452 commits

Author SHA1 Message Date
Abseil Team
361cb8a9db Export of internal Abseil changes.
--
4a21ad4ffa957d28b770de8717289fab7410f567 by Gennadiy Rozental <rogeeff@google.com>:

Internal cleanup

PiperOrigin-RevId: 252366381

--
b6b0f25439549c54f1537a16625be1fecd3c7d8c by Xiaoyi Zhang <zhangxy@google.com>:

Fix C4245 compiler warning of visual studio. This allows using abseil headers
in code requiring strict warning settings.
This is an import of https://github.com/abseil/abseil-cpp/pull/321.

PiperOrigin-RevId: 252101240

--
0543b7861b658a5a665298e1d868e29968ff7b27 by CJ Johnson <johnsoncj@google.com>:

Adds new benchmarks for the constructors of InlinedVector

PiperOrigin-RevId: 251905349

--
c65a08507917e9f8f6450b8beb235fe1426d7954 by CJ Johnson <johnsoncj@google.com>:

Updates the InlinedVector BatchedBenchmark abstractions to 1) provide the index of the instance back to the prepare and test functions so that callers may perform extra work on local state with a unique per-instance ID and 2) reduce the number of manually written calls to BENCHMARK_TEMPLATE.

PiperOrigin-RevId: 251895546

--
99a1ae2d786b80096172f6e018711e15c0c750b9 by Samuel Benzaquen <sbenza@google.com>:

Fix ambiguous construction problem in absl::variant<> to make in line with
std::variant.
ImaginaryFun is hiding duplicate objects instead of causing ambiguity. Add a
second unique argument to make sure all overloads exist in the final overload
set.

PiperOrigin-RevId: 251860694

--
b54d0a12673be6ebb6e77e24a556ce9b758b3a7e by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 251739183

--
f51b115e0dc3fc9a9c9c20b33a1f27027a700d48 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 251686812

--
30e868049282dc6a6fc77d923ca7d2a5d35a1658 by Xiaoyi Zhang <zhangxy@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 251652119
GitOrigin-RevId: 4a21ad4ffa957d28b770de8717289fab7410f567
Change-Id: I7171cb613793fa90e0eb0143b65ec8264a2a84db
2019-06-10 13:31:00 -04:00
Adam Phoenix
f15ddf8cf1 Fix for CMake 3.6 2019-06-10 10:33:52 +08:00
Christoph Cullmann
8717fd7fbb fix C4245 compiler warning of visual studio
allows to use abseil headers in code requiring stricter warnings
2019-06-07 10:25:28 +02:00
Abseil Team
61c9bf3e3e Export of internal Abseil changes.
--
39b55fafbe4a83f9f0524544a12d4ed02fdec751 by Xiaoyi Zhang <zhangxy@google.com>:

Avoid -Wundef warning of macro `ABSL_HAVE_ELF_MEM_IMAGE`.
This is github pull request https://github.com/abseil/abseil-cpp/pull/320.

PiperOrigin-RevId: 251646785

--
2fbf0de42d6723088211cb23444f16ecadcc7d67 by Abseil Team <absl-team@google.com>:

Add missing dependency on base:dynamic_annotations.

The target absl/debugging:symbolize includes dynamic_annotations from absl/debugging/symbolize_elf.inc.

PiperOrigin-RevId: 251430877

--
2537de6f01458938684f4818606ba5ce3f1c3cdf by CJ Johnson <johnsoncj@google.com>:

In InlinedVector: Combines storage_.SetAllocatedData(...) and storage_.SetAllocatedCapacity(...) into a single two-arg function also called storage_.SetAllocatedData(...) such that data and capacity must always be set together

PiperOrigin-RevId: 251331883

--
c05252c01710ac28d2c3defd09acfc55ecf2b8f1 by CJ Johnson <johnsoncj@google.com>:

So that InlinedVector constructors do no leak allocations when throwing exceptions, this CL moves the call to `clear()` from `~InlinedVector()` to `~Storage()`

In addition, noexcept specifiers have been added where appropriate (Copy construction and default construction on std::allocator are noexcept. See CppRef: https://en.cppreference.com/w/cpp/memory/allocator/allocator)

PiperOrigin-RevId: 251256272

--
34ce8367a8e29a0dea950c0e2967dd7cfdbd5d33 by CJ Johnson <johnsoncj@google.com>:

Cleans up InlinedVector constructors by inlining Impl functions with only one caller and dispatching where appropriate

PiperOrigin-RevId: 250919357
GitOrigin-RevId: 39b55fafbe4a83f9f0524544a12d4ed02fdec751
Change-Id: I21e8866582e6e02afb2c54f7347d624053e9ce45
2019-06-05 12:00:50 -04:00
Xiaoyi Zhang
bc9101f998
Merge pull request #320 from christoph-cullmann/master
avoid use of undefined ABSL_HAVE_ELF_MEM_IMAGE
2019-06-05 11:27:47 -04:00
Abseil Team
2f76a9bf50 Export of internal Abseil changes.
--
0925eb11f7730d5a1e538b9e6c2d1f8239f5fdc0 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 250694613

--
4e1690e492a8399da1b1450ff5f21adf435fcef5 by Greg Falcon <gfalcon@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 250684222

--
c7281b44eb005c21d45bdc0b437e47c7787275bc by Derek Mauro <dmauro@google.com>:

Fix warnings on Xcode/clang.

PiperOrigin-RevId: 250552120

--
5ea3b1cfa759a7e6c70e7558f27c762baf818f7d by CJ Johnson <johnsoncj@google.com>:

Minor edits to InlinedVector benchmarks: Adds DoNotOptimize to the member functions of NontrivialType, removes unused template parameter for InlVec typeder

PiperOrigin-RevId: 250505482

--
7fe9c02b49121936c5b47034f20272a916111174 by Matt Kulukundis <kfm@google.com>:

Internal change.

PiperOrigin-RevId: 250376825

--
ad348c9c0eb37449874648e8544c56343c1dfaef by CJ Johnson <johnsoncj@google.com>:

Minor edits to InlinedVector benchmark

PiperOrigin-RevId: 250361830

--
55e8b411431e982059af73b160fa6bcef90e87f7 by CJ Johnson <johnsoncj@google.com>:

Switches use of allocator_traits to the Abseil backport to leverage existing bug fixes and workarounds

PiperOrigin-RevId: 250359321

--
b0edbe3218940128523e36388a31ff90df01a364 by CJ Johnson <johnsoncj@google.com>:

Updates exception safety test for InlinedVector to use TYPED_TEST (with fixtures) which increases the coverage without complicating the code.

PiperOrigin-RevId: 250359198

--
8ab55c9a8c191aabcb562cf1789f360eba0b1a81 by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 250281509

--
dd8a67f4f9e5e8930457203c18205183b8306b5a by Abseil Team <absl-team@google.com>:

Change the suggestions for the non-strict Next/PrevWeekday() calls.

Previously we suggested `PrevWeekday(d, Weekday::thursday) + 7`
to get the _following_ Thursday if d is not already a Thursday,
but `NextWeekday(d - 1, Weekday::thursday)` is more intuitive,
and probably even a little faster.

Similarly for the _previous_ Thursday if d is not already a
Thursday, suggest `PrevWeekday(d + 1, Weekday::thursday)`
instead of `NextWeekday(d, Weekday::thursday) - 7`.

PiperOrigin-RevId: 249840844

--
4775dce26cdb0560011a5d1ecdc8e0c20f856911 by Abseil Team <absl-team@google.com>:

Change the DbgHelp lib pragma to use lowercase and an extension.

This matches the conventions used in the Windows SDK.

PiperOrigin-RevId: 249826229

--
cbc49e865f3715ebe1983307d4f02e50998b2958 by Abseil Team <absl-team@google.com>:

Introduce Abseil prefixed thread annotation macros.

PiperOrigin-RevId: 249825200

--
8e97c8dfbadb78743c2421b494398be25f632cb1 by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 249737936

--
0d720538bc6af3e77ac19def27a4a0514c2800d2 by Abseil Team <absl-team@google.com>:

Tell CMake Abseil is a C++ project.

PiperOrigin-RevId: 249726509

--
20651845edf236757b3ffb3eaeff330af81be40a by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 249726377
GitOrigin-RevId: 0925eb11f7730d5a1e538b9e6c2d1f8239f5fdc0
Change-Id: I05d18d30ad4e9ace6b60a17d2dc6fd699643fe30
2019-05-30 13:42:15 -04:00
Christoph Cullmann
01033dba23 avoid use of undefined ABSL_HAVE_ELF_MEM_IMAGE
this avoids e.g. on macOS:

In file included from abseil-cpp/absl/debugging/internal/elf_mem_image.cc:18:
abseil-cpp/absl/debugging/internal/elf_mem_image.h:37:5: error: 'ABSL_HAVE_ELF_MEM_IMAGE' is not defined, evaluates to 0 [-Werror,-Wundef]
    ^
1 error generated.
2019-05-29 17:01:10 +02:00
Abseil Team
4adaf54909 Export of internal Abseil changes.
--
2d7c9650fe2b1bf76085a993285e49db4d24aa4f by Derek Mauro <dmauro@google.com>:

Fix a build error in hash_test.cc under MSVC 2017

PiperOrigin-RevId: 249666534

--
66887d4ed411663f688fc9852701d648fe7cefe6 by Derek Mauro <dmauro@google.com>:

Merge GitHub #316 - Avoid undefined behavior when passing nullptr to
memcpy with size 0.

Fixes #315

PiperOrigin-RevId: 249570899
GitOrigin-RevId: 2d7c9650fe2b1bf76085a993285e49db4d24aa4f
Change-Id: I0fae0c581f3c0df9e6f70c69661973d020155738
2019-05-23 16:15:55 -04:00
Roman Gershman
27c30ec671 Avoid undefined behavior when nullptr is passed to memcpy with size 0 2019-05-22 23:03:35 -04:00
Abseil Team
ce65f5ac3c Export of internal Abseil changes.
--
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
2019-05-22 09:07:07 -04:00
Abseil Team
a18fc7461e Export of internal Abseil changes.
--
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
2019-05-20 17:12:34 -04:00
Abseil Team
8a394b19c1 Export of internal Abseil changes.
--
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
2019-05-17 14:57:29 -04:00
Abseil Team
daf381e853 Export of internal Abseil changes.
--
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
2019-05-16 15:48:51 -04:00
Abseil Team
fa00c32107 Export of internal Abseil changes.
--
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
2019-05-15 15:37:33 -04:00
Abseil Team
436ba6c4a0 Export of internal Abseil changes.
--
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
2019-05-14 14:23:52 -04:00
Abseil Team
0cbdc774b9 Export of internal Abseil changes.
--
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
2019-05-10 16:08:13 -04:00
Abseil Team
27c2f6e2f3 Export of internal Abseil changes.
--
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
2019-05-08 18:40:30 -04:00
Abseil Team
aa468ad755 Export of internal Abseil changes.
--
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
2019-05-07 16:32:35 -04:00
Abseil Team
cd86d0d20a Export of internal Abseil changes.
--
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
2019-04-25 13:31:55 -04:00
Abseil Team
33841c5c96 Export of internal Abseil changes.
--
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
2019-04-24 14:35:20 -04:00
Abseil Team
ca3f87560a Export of internal Abseil changes.
--
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
2019-04-23 15:57:17 -04:00
Abseil Team
d902eb869b Export of internal Abseil changes.
--
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
2019-04-16 15:40:40 -04:00
Abseil Team
a02f62f456 Export of internal Abseil changes.
--
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
2019-04-12 15:05:20 -04:00
Abseil Team
0b545b4601 Export of internal Abseil changes.
--
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
2019-04-11 14:29:49 -04:00
Abseil Team
dbae8764fb Export of internal Abseil changes.
--
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
2019-04-09 13:34:52 -04:00
Abseil Team
044da8a29c Export of internal Abseil changes.
--
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
2019-04-08 13:14:41 -04:00
Abseil Team
6cc6ac44e0 Export of internal Abseil changes.
--
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
2019-04-05 12:06:49 -04:00
Abseil Team
666fc1266b Export of internal Abseil changes.
--
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
2019-04-04 16:07:58 -04:00
Abseil Team
93dfcf74cb Export of internal Abseil changes.
--
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
2019-04-01 18:15:34 -04:00
Abseil Team
2c8421e1c6 Export of internal Abseil changes.
--
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
2019-03-28 16:54:11 -04:00
Abseil Team
5b65c4af51 Export of internal Abseil changes.
--
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
2019-03-27 12:14:39 -04:00
Abseil Team
eab2078b53 Export of internal Abseil changes.
--
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
2019-03-22 15:30:00 -04:00
Loo Rong Jie
253eb74164 [CMake] Set correct flags for clang-cl (#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..

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.
2019-03-22 15:23:01 -04:00
Abseil Team
e75672f6af Export of internal Abseil changes.
--
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
2019-03-20 15:38:56 -04:00
Abseil Team
bf29470384 Export of internal Abseil changes.
--
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
2019-03-19 14:19:10 -04:00
Michael Chiu
3bd3028e86 Adding linking of CoreFoundation to CMakeLists in absl/time as time_zone_lookup.cc includes CoreFoundation 2019-03-15 10:42:22 -04:00
Abseil Team
7c7754fb3e Export of internal Abseil changes.
--
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
2019-03-14 11:32:24 -04:00
Abseil Team
256be56344 Export of internal Abseil changes.
--
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
2019-03-12 15:07:34 -04:00
Abseil Team
88a152ae74 Export of internal Abseil changes.
--
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
2019-03-08 17:11:18 -05:00
Girts
c1cecb25a9 Implement Span::first and Span::last from C++20 (#274)
This implements `first` and `last` methods on `Span` that mimics
ones in `std::span`.
2019-03-08 15:05:39 -05:00
nik7273
38b704384c Changed HTTP URLs to HTTPS where possible (#270) 2019-03-08 10:27:53 -05:00
Abseil Team
febc5ee6a9 Export of internal Abseil changes.
--
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
2019-03-06 14:49:15 -05:00
Abseil Team
9fdf5e5b80 Export of internal Abseil changes.
--
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
2019-03-05 13:09:37 -05:00
Abseil Team
419f3184f8 Export of internal Abseil changes.
--
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
2019-03-04 09:41:52 -05:00
Abseil Team
b312c3cb53 Export of internal Abseil changes.
--
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
2019-02-26 17:48:41 -05:00
Abseil Team
308ce31528 Export of internal Abseil changes.
--
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
2019-02-25 15:03:46 -05:00
Abseil Team
93d155bc44 Export of internal Abseil changes.
--
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
2019-02-20 18:02:20 -05:00
Abseil Team
426eaa4aa4 Export of internal Abseil changes.
--
0c2e865b4611eda0b43e64c177ac34540f059be2 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: 233631168

--
16f472f1b94dabf81632d6845574513546c8026e by Abseil Team <absl-team@google.com>:

Updating documentation for custom StrSplit delimiters to reflect
the fact that string_view does not have a (string_view, start, len)
constructor.

PiperOrigin-RevId: 233611745

--
a3192dc5122a9a67e0e4d4d2421b0cdb10612c27 by Eric Fiselier <ericwf@google.com>:

Add missing <cassert> include.

PiperOrigin-RevId: 233523528
GitOrigin-RevId: 0c2e865b4611eda0b43e64c177ac34540f059be2
Change-Id: Ic12e547da3e9c4fe2e79b880f9426fa3cc0f4866
2019-02-13 10:51:49 -05:00
Abseil Team
2901ec32a9 Export of internal Abseil changes.
--
5da9755667df37e38ccaf6938c9f408e294110bb by Shaindel Schwartz <shaindel@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 232942734

--
b6fb275769c66fdd2bd92b119198c59e9a7dd737 by Samuel Benzaquen <sbenza@google.com>:

Fix integral underflow when from-arg width is INT_MIN.

PiperOrigin-RevId: 232888037

--
4135dbba4a26c4642277fc2a7e2a833d593daa1c by Abseil Team <absl-team@google.com>:

Add the insert_return_type alias to raw_hash_set.

PiperOrigin-RevId: 232683892

--
0b120b7d3693800bbb886f6fc607ae54a9338cb1 by Abseil Team <absl-team@google.com>:

Macros to detect and disabled SafeStack
https://clang.llvm.org/docs/SafeStack.html

PiperOrigin-RevId: 232680114

--
a77b3fb533a9e37966d1d6ef5ccd09c73fff2ca1 by Abseil Team <absl-team@google.com>:

Avoid potential red zone clobber

Pushing on the stack on x86-64 may clobber local variables held below
%rsp in the red zone. Avoid this by using lea on x86-64.

PiperOrigin-RevId: 232592478

--
bf326a0eefa92f4e704287563df0c5a5b1873b6d by Eric Fiselier <ericwf@google.com>:

Add additional tests for AbslHashValue.

PiperOrigin-RevId: 232344325

--
816e4f98fd7632c944c779db87b7dac4e138afcf by Eric Fiselier <ericwf@google.com>:

Avoid upcoming GCC 9.0 warnings about base class init.

Currently, in trunk, GCC has a new warning under -Wextra
that diagnoses when a derived class fails to explicitly
initialize the base class in a constructor initializer list.

This patch avoids this warning.

PiperOrigin-RevId: 232327626

--
779c0f44b3c2b7a04d4bdf978641eb8180515bf6 by Eric Fiselier <ericwf@google.com>:

Guard against C++2a char8_t change.

PiperOrigin-RevId: 232326178

--
41e5395b85bbbfb5bf418cc21b04ad4ccb15a284 by Eric Fiselier <ericwf@google.com>:

Avoid Clang Warning

PiperOrigin-RevId: 232138866
GitOrigin-RevId: 5da9755667df37e38ccaf6938c9f408e294110bb
Change-Id: I49ee4f58db177b81b039d7d949f671c97c5a7933
2019-02-07 17:48:22 -05:00
Abseil Team
d78310fe5a Export of internal Abseil changes.
--
2c12ae8d6cbb8cbeb3ff446393578dd0d6d0cf8c by Andy Getzendanner <durandal@google.com>:

Fix printf POSIX reference link to point at printf(3) (the C API) instead of printf(1) (the shell utility).

PiperOrigin-RevId: 231719473

--
a36b3a0e539b5ca2033bb25438aa325ac84a285a by CJ Johnson <johnsoncj@google.com>:

Fixes "correct" but poor semantics `allocator_and_tag_` initializations in InlinedVector to the proper version that gets a reference/const reference to allocator_type

PiperOrigin-RevId: 231691608

--
de5eca5c7146a1e4692a201804817d98354d20ec by CJ Johnson <johnsoncj@google.com>:

Removes pathologically deleted move constructor and assignment operator from benchmark test type

PiperOrigin-RevId: 231680297

--
b2b52859e5f0e14a25047e528c8163b12ea9ca32 by Matt Armstrong <marmstrong@google.com>:

Assert on elapsed time, not absolute time.

This is a cosmetic change that aims to make
test failures clearer.  Human readers no longer
need to do as much mental math to deduce the
magnitude of the failure.  It does not change the
semantics of the test assertions.

PiperOrigin-RevId: 231644805
GitOrigin-RevId: 2c12ae8d6cbb8cbeb3ff446393578dd0d6d0cf8c
Change-Id: Ic121a26a7a6bb7441da6a8c1d7797bee4f705fdc
2019-01-31 13:00:01 -05:00
Abseil Team
a4cb1c8ba6 Export of internal Abseil changes.
--
6fdf24a197b964f9bacbebd0ceca305aef1654fc by Shaindel Schwartz <shaindel@google.com>:

Internal change

PiperOrigin-RevId: 231627312

--
65f7faf52bff01384171efb85fee159378dedf70 by CJ Johnson <johnsoncj@google.com>:

Relocates the definitions of the InputIterator-accepting parts of the InlinedVector API into the top-level. The removed functions had no other callers so there was no reason to keep the layer of indirection in the form of the function call.

PiperOrigin-RevId: 231527459

--
30e105b749b5ecc50fdaf26c7da589617efce425 by CJ Johnson <johnsoncj@google.com>:

Relocates closing brace for absl namespace in InlinedVector to the correct end location

PiperOrigin-RevId: 231477871

--
063c1e8b9d1f032662c46d574e20ecc357b87d0c by Eric Fiselier <ericwf@google.com>:

Cleanup std::hash probing metafunctions.

Previously there were two different ways to probe for
std::hash. One in hash.h and another in type_traits.h,
and they were both implemented differently, and neither
correctly worked around bad STL implementations.

This patch unifies the implementations into a single IsHashable trait.
It also:

* Correctly checks for old libc++ versions where this won't work.
* Avoids undefined behavior which resulted from calling std::is_constructible
  incomplete types.
* Unifies the feature test macro used in the headers and the tests.

Additionally it also slightly changes the behavior of when absl::variant
is hashable. Previously we disable hashing when std::hash<T>()(key) was
formed but when std::hash<T> couldn't be destructed. This seems wrong. If a
user provides a evil specialization of std::hash, then it's OK for variant's
hash to blow up.

PiperOrigin-RevId: 231468345

--
05d75dd4b07c893de9b104731644d0d207b01253 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 231397518

--
a0ee9032f9e04039f3410ed17fcf45ae1a3868f5 by CJ Johnson <johnsoncj@google.com>:

Remove unused EnableIfAtLeastInputIterator from InlinedVector

PiperOrigin-RevId: 231348903

--
4dcd4e9a6780a81d7a6974c7bf22a037e6482b49 by Abseil Team <absl-team@google.com>:

Remove unnecessary register keyword from absl/base/internal/endian.h.

PiperOrigin-RevId: 231316570

--
c8584836caa3a10f90a8604a85d4b831310b72ee by Abseil Team <absl-team@google.com>:

Fix hashtablez_sampler compilation on older Android NDK builds

PiperOrigin-RevId: 231283542
GitOrigin-RevId: 6fdf24a197b964f9bacbebd0ceca305aef1654fc
Change-Id: I185b12fb8347e3ad0ffcb2cbb83a53450e5eb938
2019-01-30 14:24:09 -05:00
Abseil Team
540e2537b9 Export of internal Abseil changes.
--
8c420997e7a08b9e7e24afa32d6e37cb2bfa2c12 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 231265916

--
f52b9e201698b315c23ebaa6c8ec97362048d9b8 by CJ Johnson <johnsoncj@google.com>:

inlined_capacity() => GetInlinedCapacity()

Originally I intended inlined_capacity() to be moved from the private to public part of the API eventually so I named it appropriately and punted on publicizing it until later. After it was found to cause an issue on some platforms, I decided there was no reason to grow the API of the type just for a pretty function name. Thus, this change brings its name to be of the same format as the rest of the Abseil team's naming convention.

PiperOrigin-RevId: 231248856

--
04e700ea1aad12cdb6a1ed29e183c59d97a47ccd by Abseil Team <absl-team@google.com>:

Merge https://github.com/abseil/abseil-cpp/pull/255

PiperOrigin-RevId: 231240011

--
4f2c2212c98093194c73572995e7770b58c9b9a0 by CJ Johnson <johnsoncj@google.com>:

Adds identifiers to the AbslHashValue(...) forward declaration bringing it in line with the format of the other forward declarations while keeping it on one line.

PiperOrigin-RevId: 231231932

--
68923d6c9289eb523126638f25d95916456125cf by CJ Johnson <johnsoncj@google.com>:

Remove bad calls to assert(...) that do not make sense

PiperOrigin-RevId: 231214093

--
a2a0b59b7dc2c39aca979ff6e474b9e170ab96b6 by CJ Johnson <johnsoncj@google.com>:

Switch to trailing return type syntax for non-member functions of InlinedVector

PiperOrigin-RevId: 230975981
GitOrigin-RevId: 8c420997e7a08b9e7e24afa32d6e37cb2bfa2c12
Change-Id: Ibbad7f27b596801bc770b440afed8d5e9e89ff8d
2019-01-28 15:59:07 -05:00
Abseil Team
5e0dcf72c6 Export of internal Abseil changes.
--
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
2019-01-25 17:06:51 -05:00
Abseil Team
0dffca4e36 Export of internal Abseil changes.
--
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
2019-01-24 11:10:30 -05:00
Boris Staletic
6b4201f9ef Fix GCC8 warnings 2019-01-23 11:42:31 -05:00
Abseil Team
0b1e6d417b Export of internal Abseil changes.
--
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
2019-01-18 14:05:08 -05:00
Abseil Team
efccc50260 Export of internal Abseil changes.
--
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
2019-01-17 14:35:37 -05:00
Abseil Team
5e6a78131f Export of internal Abseil changes.
--
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
2019-01-16 14:52:22 -05:00
Abseil Team
5eea0f713c Export of internal Abseil changes.
--
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
2019-01-14 14:09:52 -05:00
Abseil Team
66f9becbb9 Export of internal Abseil changes.
--
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
2019-01-10 16:10:30 -05:00
Abseil Team
018b4db1d7 Export of internal Abseil changes.
--
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
2019-01-09 13:09:28 -05:00
Alex Strelnikov
9449ae9439
Merge pull request #243 from ThomsonTan/FixIntrinsic
_umul128 intrinsic is x64 only and not available on Windows ARM64
2019-01-09 12:55:48 -05:00
Abseil Team
b16aeb6756 Export of internal Abseil changes.
--
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
2019-01-07 15:22:43 -05:00
Tom Tan
aca0473d96 _umul128 is not available on Windows ARM64 2019-01-02 17:55:33 -08:00
Abseil Team
7ffbe09f3d Export of internal Abseil changes.
--
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
2018-12-27 11:50:39 -05:00
Abseil Team
01b471d9f3 Export of internal Abseil changes.
--
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
2018-12-26 12:35:10 -05:00
Abseil Team
7bd8f36c74 Export of internal Abseil changes.
--
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
2018-12-21 14:43:20 -05:00
Abseil Team
968a34ffda Export of internal Abseil changes.
--
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
2018-12-21 14:43:20 -05:00
Abseil Team
111ca7060a Export of internal Abseil changes.
--
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
2018-12-17 13:22:17 -05:00
Abseil Team
389ec3f906 Export of internal Abseil changes.
--
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
2018-12-13 14:40:49 -05:00
Abseil Team
8fbcdb9095 Export of internal Abseil changes.
--
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
2018-12-12 11:52:06 -05:00
Abseil Team
455dc17ba1 Export of internal Abseil changes.
--
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
2018-12-10 10:58:40 -05:00
Abseil Team
f197d7c72a Export of internal Abseil changes.
--
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
2018-12-07 14:40:28 -05:00
Abseil Team
284378a71b Export of internal Abseil changes.
--
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
2018-12-05 15:38:39 -05:00
Abseil Team
44b0fafc62 Export of internal Abseil changes.
--
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
2018-12-04 16:27:57 -05:00
Abseil Team
926bfeb9ff Export of internal Abseil changes.
--
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
2018-11-29 15:52:29 -05:00
Abseil Team
13327debeb Export of internal Abseil changes.
--
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
2018-11-27 17:37:00 -05:00
Abseil Team
3088e76c59 Export of internal Abseil changes.
--
5278e56bd7d322ecf161eaf29fd7fa3941d7431b by Greg Falcon <gfalcon@google.com>:

internal change

PiperOrigin-RevId: 222078614
GitOrigin-RevId: 5278e56bd7d322ecf161eaf29fd7fa3941d7431b
Change-Id: I1e86bef2e3733c81148a1a42dccd8182fe3f7fae
2018-11-19 15:11:12 -05:00
Abseil Team
f6ae816808 Export of internal Abseil changes.
--
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
2018-11-16 16:38:42 -05:00
Abseil Team
a06c4a1d90 Export of internal Abseil changes.
--
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
2018-11-15 15:05:39 -05:00
Abseil Team
7b46e1d31a Export of internal Abseil changes.
--
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
2018-11-13 17:56:57 -05:00
Abseil Team
070f6e47b3 Export of internal Abseil changes.
--
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
2018-11-07 16:54:23 -05:00
Abseil Team
7990fd459e Export of internal Abseil changes.
--
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
2018-11-06 16:06:39 -05:00
Abseil Team
f95179062e Export of internal Abseil changes.
--
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
2018-11-02 12:35:09 -04:00
Abseil Team
cc8dcd307b Export of internal Abseil changes.
--
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
2018-10-31 11:12:18 -04:00
Xiaoyi Zhang
a705aa78dc
Merge pull request #194 from Mizux/windows
absl::container Windows VS 15.8 (fix #192)
2018-10-31 10:34:05 -04:00
Abseil Team
a4c3ffff11 Export of internal Abseil changes.
--
ba4dd47492748bd630462eb68b7959037fc6a11a by Abseil Team <absl-team@google.com>:

Work around nvcc 9.0 compiler bug for open-source Tensorflow build.

With the current implementation, when I (unintentionally and transitively)
include absl/types/optional.h in a CUDA compilation unit, I get the following
nvcc error message:
  INFO: From Compiling tensorflow/core/kernels/crop_and_resize_op_gpu.cu.cc:
  external/com_google_absl/absl/types/optional.h: In member function 'void absl::optional_internal::optional_data_dtor_base<T, <anonymous> >::destruct()':
  external/com_google_absl/absl/types/optional.h:185:50: error: '__T0' was not declared in this scope
         data_.~T();

I've also seen similar compilation failures online, for flat_hash_map:
https://devtalk.nvidia.com/default/topic/1042599/nvcc-preprocessor-bug-causes-compilation-failure/

The bug is always around unnamed template parameters. Therefore, the workaround is to make them named.

PiperOrigin-RevId: 219208288

--
dad2f40cb2e8d5017660985ef6fb57f3c3cdcc80 by CJ Johnson <johnsoncj@google.com>:

Adds internal macros for catching and throwing unknown exception types

PiperOrigin-RevId: 219207362

--
0a9840328d2d86e8420b853435fdbf1f7a19d931 by Abseil Team <absl-team@google.com>:

Fix typo in mutex.h comments.

PiperOrigin-RevId: 219199397

--
0d576dc7597564210bfdf91518075064756f0bf4 by Matt Calabrese <calabrese@google.com>:

Internal change.

PiperOrigin-RevId: 219185475

--
66be156095571959fb19a76da8ad0b53ec37658e by Abseil Team <absl-team@google.com>:

Fix alignment conformance for VS 2017 >= 15.8 (fix #193)

PiperOrigin-RevId: 219129894

--
a6e1825a12587945f8194677ccfdcaba6f7aad1d by Abseil Team <absl-team@google.com>:

Reapply PR #173

PiperOrigin-RevId: 219129361

--
cf72ade4881b25acc6ccaea468f69793a0fdce32 by Abseil Team <absl-team@google.com>:

Update .gitignore

PiperOrigin-RevId: 219127495

--
0537490c6348a2cb489abe15638928ac5aa6982a by Jon Cohen <cohenjon@google.com>:

Small refactor and reformat of error messages from the exception safety test framework.

PiperOrigin-RevId: 218927773

--
4c556ca45fa25698ad12002a00c713aeceefab73 by CJ Johnson <johnsoncj@google.com>:

Updates the inlined vector swap tests to check for number of moves that took place if available

PiperOrigin-RevId: 218900777

--
dcbfda0021a1e6dfa9586986b1269c06ec394053 by Mark Barolak <mbar@google.com>:

Add parens around calls to std::numeric_limits<>::min and
std::numeric_limits<>::max to prevent compilation errors on Windows platforms
where min and max are defined as macros.

PiperOrigin-RevId: 218888700
GitOrigin-RevId: ba4dd47492748bd630462eb68b7959037fc6a11a
Change-Id: I0e393958eb8cb501b85f6114979f6d4d86ed996c
2018-10-30 11:19:34 -04:00
Matt Calabrese
0117457865
Merge pull request #201 from ccawley2011/fix-byteswap
Fix compilation of generic byteswap routines
2018-10-30 11:03:01 -04:00
Abseil Team
f86f941385 Export of internal Abseil changes.
--
dabd5614eec687a27bcba28e1d98e84ce716f281 by Abseil Team <absl-team@google.com>:

Demonstrate that std::bitset is supported by AbslHash, both with a comment and
a test.

PiperOrigin-RevId: 218782040
GitOrigin-RevId: dabd5614eec687a27bcba28e1d98e84ce716f281
Change-Id: I777d5e030ba8c6b8a2a353e29ace87484caa811f
2018-10-26 14:43:39 -04:00
Cameron Cawley
297e77fb90 Fix compilation of generic byteswap routines 2018-10-25 23:22:02 +01:00
Abseil Team
94c298e2a0 Export of internal Abseil changes.
--
441d1aa02483cdc510eb2fef012b31384fd8e3a6 by Eric Fiselier <ericwf@google.com>:

Fix str_format with non-POSIX libc implementations.

PiperOrigin-RevId: 218441122

--
da6190130e74222af6eb161a5593364341370370 by Jon Cohen <cohenjon@google.com>:

Refactor ExceptionSafetyTester::Test in order to remove the levels of indirection related to unpacking tuples.

PiperOrigin-RevId: 218403355
GitOrigin-RevId: 441d1aa02483cdc510eb2fef012b31384fd8e3a6
Change-Id: I6f6b978eb96fe261e8ee41ecdce185e5356a601d
2018-10-24 16:47:28 -04:00
Abseil Team
0884a6a04e Export of internal Abseil changes.
--
fe689b30f9a3a614e8a577997cc340043d01c2f1 by Abseil Team <absl-team@google.com>:

Change arm32 linux backtrace to use the generic implementation.

PiperOrigin-RevId: 218386158

--
86f8678d055d32edc989e6a4d1dc49c3a15cd350 by Abseil Team <absl-team@google.com>:

Update documentation on SHARED_LOCKS_REQUIRED and EXCLUSIVE_LOCKS_REQUIRED so that users know the differences between them.

PiperOrigin-RevId: 218365545

--
22947b48ce4a1ba71ad4794f762235dac3a1df12 by Greg Falcon <gfalcon@google.com>:

The from_chars implementation incorrectly assumed `uint32_t` was `unsigned int`.

`strings_internal::BigUnsigned` had `uint32_t` and `uint64_t` constructors; when both of these types differ from `unsigned int`, `BigUnsigned(1u)` is ambiguous (neither conversion is better).

Fix this by removing the `uint32_t` constructor.  When the `uint64_t` constructor is called with a literal or type that is 32 bits or narrower, the compiler is smart enough to optimize away the two-word case, so this fix is free.

PiperOrigin-RevId: 218346935

--
7201ab430bb90ca0e30b102915d02564f61353eb by Abseil Team <absl-team@google.com>:

Fix formatting errors discovered during merge conflict.

PiperOrigin-RevId: 218229891
GitOrigin-RevId: fe689b30f9a3a614e8a577997cc340043d01c2f1
Change-Id: I5d382482ad227d48ffe57b243ce11b1eb44a1314
2018-10-23 15:52:40 -04:00
Abseil Team
c16d5557cd Export of internal Abseil changes.
--
4e043a11b4c10a24e84046827ee16f47e11e35cc by Abseil Team <absl-team@google.com>:

Merge of https://github.com/abseil/abseil-cpp/pull/136

PiperOrigin-RevId: 218197648

--
e61f06e1e601061a443feaa8c5207c52437bd641 by Abseil Team <absl-team@google.com>:

Don't include <iostream> into int128, it's wasteful

Including iostream emits a global constructor for initializing std::cout and
friends, which isn't actually used by this file.

PiperOrigin-RevId: 218156386

--
8a6c82396e4c956be7f285328aec131cb4965f16 by Xiaoyi Zhang <zhangxy@google.com>:

Fix MSVC compiler warnings on discarding return values of functions with 'nodiscard'
attribute.

PiperOrigin-RevId: 217883401

--
abf3e3a0f22bc4070df9dbc9a4ef4d883ed686bf by Tom Manshreck <shreck@google.com>:

Update public README to add new libraries

PiperOrigin-RevId: 217879399

--
43b3b420a4e861711abbfbd497b8f2b3de17ec8c by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 217780963

--
1c8831947ca6a65a63842e6bd5f37a7c102a4e1b by Abseil Team <absl-team@google.com>:

Fix typo in a comment (missing comma in usage example).

PiperOrigin-RevId: 217776645
GitOrigin-RevId: 4e043a11b4c10a24e84046827ee16f47e11e35cc
Change-Id: I8999ae928da7a0030b4ecfd8d13da8522fdd013a
2018-10-22 15:01:16 -04:00
Corentin Le Molgat
26da89db3e Fix absl::container on VS2017 v15.8 (#192) 2018-10-19 08:29:59 +02:00
Abseil Team
45221ccc4e Export of internal Abseil changes.
--
f6241e6923d4d1525d3ec54bc5b85178b18612e9 by Derek Mauro <dmauro@google.com>:

Make implicit_cast constexpr.
GitHub #191

PiperOrigin-RevId: 217726953
GitOrigin-RevId: f6241e6923d4d1525d3ec54bc5b85178b18612e9
Change-Id: I46e4d92cbd54a38bfe5faeb939cf19d871d8b697
2018-10-18 16:51:00 -04:00
Abseil Team
2019e17a52 Export of internal Abseil changes.
--
578b3ed641b8d92769a34d73389dfff5559925e6 by Abseil Team <absl-team@google.com>:

Prevents tail call optimization for
GetStackFrames[WithContext]/GetStackTrace[WithContext] functions, so the
skipped frames will not change because of optimization difference.

PiperOrigin-RevId: 217342437

--
31fad1337e146a6ec74ae887d95920373e36c8dd by Abseil Team <absl-team@google.com>:

Fixed syntax on flat_hash_set documentation for insert.

PiperOrigin-RevId: 217208659
GitOrigin-RevId: 578b3ed641b8d92769a34d73389dfff5559925e6
Change-Id: I121c42861e8321ab561326978ac8972c68f066d0
2018-10-17 16:27:44 -04:00
Abseil Team
5b70a8910b Export of internal Abseil changes.
--
f4e870453d02106c2685e0461816469a4704ad25 by Abseil Team <absl-team@google.com>:

Expose TimeZone::NextTransition() and PrevTransition() now that
we have absl::CivilSecond support in time.h.  Note that these are
for informational purposes only.  General time code should not
care when offset changes occur.

PiperOrigin-RevId: 217177292

--
cfadd275c7333f7c27c4d682b9d167010d874e69 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 217153577

--
6ff5b8c61a1239b9c0478a7c62bcd2844b310307 by Jon Cohen <cohenjon@google.com>:

Fix code examples in hash_testing.h.  Includes random clang-format changes.

PiperOrigin-RevId: 216898995

--
de124129d27f4627dabe193a10bf106a11783fba by Shaindel Schwartz <shaindel@google.com>:

Add contribution guidelines describing how we decide whether to include an API in Abseil.

PiperOrigin-RevId: 216886943
GitOrigin-RevId: f4e870453d02106c2685e0461816469a4704ad25
Change-Id: Ib9c6706f5bf931b71c0357bf1342053a3bee8ff7
2018-10-15 15:32:46 -04:00
Abseil Team
a00bdd176d Export of internal Abseil changes.
--
fa894a667a3bebbe479539c8d5e829beebf36c27 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 216855907

--
59e0a42fa9045eb164573b82ce625248bd9999f3 by Jon Cohen <cohenjon@google.com>:

Some edits to the documentation for absl::Hash as I was reading through it.

Itemized changes:
  * implement -> implements for grammar
  * Fix an incomplete sentence
  * specify *any* type T as opposed to *a* type T ? this is just the language I tend to see for these sorts of concepts in math and makes it more clear that we?re talking about a set of all types T satisfying these constraints
  * add arguments to comine() and combine_contiguous() ? this was mostly because for hash_continuous there was a reference to `size` elements without any mention of what `size` was.

PiperOrigin-RevId: 216766923

--
c2a744d0f70ec5a079c22502b7a7ca72805a29dc by Shaindel Schwartz <shaindel@google.com>:

Remove unneeded include.

PiperOrigin-RevId: 216703710

--
ad22fc4e3d236f7bd354b61e0fa37ea524a7cf5e by Shaindel Schwartz <shaindel@google.com>:

Fix typos.

PiperOrigin-RevId: 216699071
GitOrigin-RevId: fa894a667a3bebbe479539c8d5e829beebf36c27
Change-Id: I35c8d8be66043aad9f17bbb867e69acb770bd1b0
2018-10-12 10:26:45 -04:00
Abseil Team
f340f773ed Export of internal Abseil changes.
--
906c47420646d510edd2479d5542c56f5fa31b65 by CJ Johnson <johnsoncj@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 216573923

--
74560d4afd2b605909e677c6fc3076049fb3010a by Eric Fiselier <ericwf@google.com>:

Avoid -Wformat-pedantic in benchmark.

PiperOrigin-RevId: 216523769

--
9bcc9da8b03e6d1ea43ee78931256c5541cb9686 by Eric Fiselier <ericwf@google.com>:

Delete unused CityHash functions.

PiperOrigin-RevId: 216464492

--
a42563b394c89fbb4c55cb5a6a5edbf96d271eea by Abseil Team <absl-team@google.com>:

Introduce new Abseil interfaces for converting between civil
times and absolute times.s

Deprecates absl::ConvertDateTime() and absl::FromDateTime().

PiperOrigin-RevId: 216424948

--
088e11235124267517d7f137854fa5554679c24f by Eric Fiselier <ericwf@google.com>:

Remove unneeded break statements in test.

PiperOrigin-RevId: 216403321
GitOrigin-RevId: 906c47420646d510edd2479d5542c56f5fa31b65
Change-Id: Idb44420be623e369c66f5a9c92bdc9ab46d3ec92
2018-10-10 15:35:19 -04:00
Abseil Team
445998d7ac Export of internal Abseil changes.
--
714347c156cfe01575c1830a92bc6dea3030065b by Emma Christie <emmachristie@google.com>:

Release absl::EqualsIgnoreCase

PiperOrigin-RevId: 216243900

--
688106e2b9d2924799d597682690851cfba87818 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 216208373

--
53638e4da238b230af0e56dc31b9fb790e708f36 by Emma Christie <emmachristie@google.com>:

Update StartsWithIgnoreCase(), EndsWithIgnoreCase(), and EqualsIgnoreCase() headers to say that these functions only consider ASCII case inputs.

PiperOrigin-RevId: 215930962
GitOrigin-RevId: 714347c156cfe01575c1830a92bc6dea3030065b
Change-Id: I7fb3506234185b1a961e0110c1f8302ffe7228fa
2018-10-09 15:36:40 -04:00
Abseil Team
e821380d69 Export of internal Abseil changes.
--
e09635c907d471ab46e14fb8091988c92cb4e78e by Abseil Team <absl-team@google.com>:

Fix syntax error in documentation '}' -> ')'

PiperOrigin-RevId: 215744854

--
a9e2d036850748137355f4a07083f1052d5c3766 by Abseil Team <absl-team@google.com>:

WrapUnique's comment about avoiding explicit template specification
doesn't make clear what alternative there is when this hurts
readability. Add a comment about the approved alternative.

PiperOrigin-RevId: 215634917

--
596b8ff41ff70b27bff3a2369038c0fe7d13ae85 by Greg Falcon <gfalcon@google.com>:

Allow for a small amount of slop in timeout tests, as not all OSs we support give us the perfect timing behavior we're testing for here.

PiperOrigin-RevId: 215615172
GitOrigin-RevId: e09635c907d471ab46e14fb8091988c92cb4e78e
Change-Id: I30721294bac86510a49bb7f405149fc74c532abb
2018-10-05 10:53:08 -04:00
Abseil Team
f21d187b80 Export of internal Abseil changes.
--
1c1d6e2404dfc6caa022b335df5acdac6da50fe1 by Derek Mauro <dmauro@google.com>:

Fix the internal namespacing in unaligned_access.h

PiperOrigin-RevId: 215434506

--
17d4400aebf025a230690fc1c7a968ef8d85bbba by Eric Fiselier <ericwf@google.com>:

gtest depends on the GCC extension allowing variadic macros
to be passed a empty parameter pack for ..., but LLVM diagnoses
this as a GNU extension.

This patch suppresses the warning when building the absl tests.

PiperOrigin-RevId: 215426161

--
f2c49dde23a9f445b9de963f1bbe840ebb568b30 by Eric Fiselier <ericwf@google.com>:

Use EXPECT_DEATH_IF_SUPPORTED instead of EXPECT_DEATH.

This avoids breaking the test when gtest doesn't support
death tests.

PiperOrigin-RevId: 215423849

--
cd687c1e121709603f4fc3726b534f6a9c52cc89 by Eric Fiselier <ericwf@google.com>:

Disable LLVM's -Wmissing-variable-declarations in tests.

GCC's configuration already disables this via -Wno-missing-declarations,
this change makes LLVM do the same.

The warning would otherwise flag most tests which use ABSL_FLAG.

PiperOrigin-RevId: 215407429

--
d14098824c84e3a8c8f6fb920e0335fb48fe2010 by Eric Fiselier <ericwf@google.com>:

Fix local variable shadowing in city hash implementation.

PiperOrigin-RevId: 215407249

--
4b5e140ba743f0d231790a26c49083abb4329e2c by Abseil Team <absl-team@google.com>:

Make raw_hash_set::reserve 2X fast when reserve doesn't do any allocation.
Make raw_hash_set::reserve ~1% faster when reserve does some (128~4k) allocation.

PiperOrigin-RevId: 215348727

--
461161e65e04b801480aa117af2534c594654ccf by Eric Fiselier <ericwf@google.com>:

Internal change

PiperOrigin-RevId: 215272283

--
50413ae31ad3d3a177257416acd8ede47a17bff2 by Eric Fiselier <ericwf@google.com>:

Internal Change

PiperOrigin-RevId: 215233183

--
477be54c43d61019a8fe4e190e340eb52737d383 by Abseil Team <absl-team@google.com>:

Clarify misleading comment on ABSL_ATTRIBUTE_UNUSED

PiperOrigin-RevId: 215185496

--
2cafa2b5287507d3a946682aee9ab13af6d471c9 by Matt Kulukundis <kfm@google.com>:

Add support for absl::Hash to various absl in types.

PiperOrigin-RevId: 215039569

--
082248901991aa3d29be0ea3689c7f213cf0fd83 by Derek Mauro <dmauro@google.com>:

Remove an instance of HAS_GLOBAL_STRING from hash_function_defaults.h

PiperOrigin-RevId: 214989094

--
b929f61907f0786a6133e3a9d7287e339c0a0acb by Derek Mauro <dmauro@google.com>:

Internal import of Github #174
Fix code snippet in comment
https://github.com/abseil/abseil-cpp/pull/174

PiperOrigin-RevId: 214958849

--
f2c5e829eca11c352e121f56eefbf87083305023 by Derek Mauro <dmauro@google.com>:

Internal import of GitHub #173
Fix CMake build for absl::container.
https://github.com/abseil/abseil-cpp/pull/173

PiperOrigin-RevId: 214957796

--
d704f860f9fddafb99e34e6c5032e49f73874e10 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 214828181
GitOrigin-RevId: 1c1d6e2404dfc6caa022b335df5acdac6da50fe1
Change-Id: I551de2b1ba0cbaf6856cd5959358cf6651179dea
2018-10-03 09:19:28 -04:00
Loo Rong Jie
5441bbe1db Fix code snippet in comment (#174) 2018-09-28 13:41:11 -04:00
Stephan Dollberg
5aae0cffae Fix CMake build (#173)
* Fix CMake build after Swissmap addition

`absl::container` library now contains source files so needs to be
respectively built for CMake as well.

Switches `absl::container` from being a header library to a source
library.

* Add raw_hash_set_test to CMake test build
2018-09-28 13:35:51 -04:00
Abseil Team
48cd2c3f35 Export of internal Abseil changes.
--
4eacae3ff1b14b1d309e8092185bc10e8a6203cf by Derek Mauro <dmauro@google.com>:

Release SwissTable - a fast, efficient, cache-friendly hash table.

https://www.youtube.com/watch?v=ncHmEUmJZf4

PiperOrigin-RevId: 214816527

--
df8c3dfab3cfb2f4365909a84d0683b193cfbb11 by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 214785288

--
1eabd5266bbcebc33eecc91e5309b751856a75c8 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 214722931

--
2ebbfac950f83146b46253038e7dd7dcde9f2951 by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 214701684
GitOrigin-RevId: 4eacae3ff1b14b1d309e8092185bc10e8a6203cf
Change-Id: I9ba64e395b22ad7863213d157b8019b082adc19d
2018-09-27 15:28:12 -04:00
Abseil Team
e291c279e4 Export of internal Abseil changes.
--
87c9505f1d41b52486630ae4404b9060b89a6369 by Abseil Team <absl-team@google.com>:

Fix wording in a comment.

PiperOrigin-RevId: 214606367
GitOrigin-RevId: 87c9505f1d41b52486630ae4404b9060b89a6369
Change-Id: Icb95299b88e65840dfbc415b515412b24d578ce9
2018-09-26 12:23:01 -04:00
Abseil Team
e01d95528e Export of internal Abseil changes.
--
eca34da4ccb7bb6a580f1364dff9ca053418fa3b by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 214305433

--
35393bdd21a87c4286f945fd34dda93afc4e0cd6 by Abseil Team <absl-team@google.com>:

Move some implementation details of string_view around to facilitate compiling on NVCC.

Abseil does not officially support NVCC as a reminder.

PiperOrigin-RevId: 214184876

--
61846cab9ab9476a4676ecade7173f68978cd038 by Jorg Brown <jorg@google.com>:

Move the initialization values for constants back to their declaration.

PiperOrigin-RevId: 214135927

--
7ac7df6c5f78f2faf419268c04618b936cb26065 by Abseil Team <absl-team@google.com>:

Performance improvements on format parser.

PiperOrigin-RevId: 214032366

--
90b4c0cf20e9feaa257a7ece40adaf7db40a60a7 by Xiaoyi Zhang <zhangxy@google.com>:

Add static_assert check to absl::visit to make sure all overloads of the visitor return the same type, as required by the C++ standard.

PiperOrigin-RevId: 213677001

--
787995342101b4c181291cde9ecea3048536e4bd by Abseil Team <absl-team@google.com>:

Update comment to indicate finite durations are less than InfiniteDuration.

PiperOrigin-RevId: 213660328

--
d78f0dce7cc31218807e96d93b9e8513b6c80b24 by Jon Cohen <cohenjon@google.com>:

s/invariant/contract in the exceptions safety testing framework.  This is a better term as these can be type invariants or function post conditions.  They also are very similar ground as to what is covered by c++20 Contracts (and could even be replaced by them.

PiperOrigin-RevId: 213631019

--
0b3ff1a640de9a7391a6c233568802cf86245b0e by Abseil Team <absl-team@google.com>:

Add noinline attribute for GetStackTrace/GetStackFrames/... so the skipped frames will not change because of inlining difference.

PiperOrigin-RevId: 213009637
GitOrigin-RevId: eca34da4ccb7bb6a580f1364dff9ca053418fa3b
Change-Id: Iff1022fd24e440fcbdf3c4ab2a915ca8954daa31
2018-09-24 16:07:47 -04:00
Abseil Team
8ff1374008 Export of internal Abseil changes.
--
821196cfb2a3b943ffdc4c9e75daec92d7ffb28b by Abseil Team <absl-team@google.com>:

Performance improvements

PiperOrigin-RevId: 212668992

--
704858e2e767016bad27d53eec01d9d48e546b23 by Abseil Team <absl-team@google.com>:

Low-level Portability enchancements for Abseil Mutex on WebAssembly.

Emscripten Pthreads do not use signals, so remove use of pthread_sigmask or
other async-signal-safe related handling code.

PiperOrigin-RevId: 212527958

--
be3e38cb4d493b755132d20c8c2d1a51e45d5449 by Jon Cohen <cohenjon@google.com>:

Internal change.

PiperOrigin-RevId: 212523797
GitOrigin-RevId: 821196cfb2a3b943ffdc4c9e75daec92d7ffb28b
Change-Id: I5694e23e4e09364a15dd6fc4e2e3f15e38835687
2018-09-13 13:24:44 -04:00
Abseil Team
02451914b9 Export of internal Abseil changes.
--
74c1330e29f1501f2738258faf9ec4564395c90a by Gennadiy Civil <misterg@google.com>:

Merging https://github.com/abseil/abseil-cpp/pull/166

PiperOrigin-RevId: 212487256

--
4ac236574ff8fb3cc1125505292b0bd8c8192da9 by Abseil Team <absl-team@google.com>:

Allow c_move to take rvalue containers.

PiperOrigin-RevId: 212458618

--
ce94e23984870db666d4c91623ae45b3c60b5b61 by Matt Armstrong <marmstrong@google.com>:

Internal change.

PiperOrigin-RevId: 212153041

--
7d88d286821c5839934756dd63a704ed162c49cb by Chris Kennelly <ckennelly@google.com>:

Internal change

PiperOrigin-RevId: 211982309

--
ddae814b3f609948c20551ea3d80bf51b973f480 by Abseil Team <absl-team@google.com>:

Remove unused argument from InlinedVector's AllocatorAndTag

This is not part of InlinedVector's public interface.

PiperOrigin-RevId: 211973017

--
051fbfd81648a8da66c62c6603af63038d709c15 by Abseil Team <absl-team@google.com>:

Minor performance fix

PiperOrigin-RevId: 211820453

--
c205cb2add7400bc8caf2131cb700eea560b7dbf by Laramie Leavitt <lar@google.com>:

Make absl::Span a tiny bit more consistent.

Add constexper to equivalent absl::Span members as described by
http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p0122r7.pdf

* Span constructor use consistently delegate to Span(ptr, length)
* Mark more member methods as constexpr.
* Use data() and size() consistently in member methods.

PiperOrigin-RevId: 211707244

--
55500c9e941f2f58f4a95c121f32772408866eee by Derek Mauro <dmauro@google.com>:

Stop catching polymorphic exception types by value.
GCC 8 emits a warning for this.

PiperOrigin-RevId: 211684466
GitOrigin-RevId: 74c1330e29f1501f2738258faf9ec4564395c90a
Change-Id: Iceab4a5b30ee35d82ef494830262ad29c028cb0a
2018-09-11 14:28:55 -04:00
Abseil Team
fb462224c0 Export of internal Abseil changes.
--
86b1c997fac1f77b0eacfab788659b5a89a6096e by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 211654320

--
299b70e1247df768454a76eb957a184de9706f61 by Chris Kennelly <ckennelly@google.com>:

Avoid creating a misaligned reference to int.

PiperOrigin-RevId: 211505883

--
c8fad4357ad0bfb3c5ad197c505509bc087072c9 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 211458539

--
0613feffcd36466c3e53a50758d7e8f17c001dce by Greg Falcon <gfalcon@google.com>:

Refactor a string unit test into a template function for internal purposes.

PiperOrigin-RevId: 211100748
GitOrigin-RevId: 86b1c997fac1f77b0eacfab788659b5a89a6096e
Change-Id: Ic6a932b6c27c6762dcdb3b0127f1e2be782418c1
2018-09-05 15:21:18 -04:00
Abseil Team
c075ad3216 Export of internal Abseil changes.
--
9c6654a316935ab097ccf462d506c02626373f0a by Tom Manshreck <shreck@google.com>:

Update comment on CUnescape() to note on failure it leaves its output param in an unspecified state.

PiperOrigin-RevId: 210956338
GitOrigin-RevId: 9c6654a316935ab097ccf462d506c02626373f0a
Change-Id: Icf0aea66afb413a0334df27960f75387087c6629
2018-08-31 10:48:01 -04:00
Abseil Team
0f4bc96675 Export of internal Abseil changes.
--
ed4be0cb9a708158187a0628c1c2167ae6783274 by Greg Falcon <gfalcon@google.com>:

Refactor a string unit test into a template function for internal purposes.

PiperOrigin-RevId: 210798880

--
e4c734be903ac7b3a88caf4b17909343c283a21a by Abseil Team <absl-team@google.com>:

Add a note that the RFC3339_* format specifiers use %Y, and so
do not produce 4-digit years on output nor require 4-digit years
on input, as a strict reading of RFC3339 might require.

PiperOrigin-RevId: 210785544

--
cfb5e32f9397e49ddb731445a191b36652fe2f6d by Greg Falcon <gfalcon@google.com>:

Refactor a string unit test into a template function for internal purposes.

PiperOrigin-RevId: 210776525

--
105ee700e62869cfda2a37e6f7c2ea483f8fc75e by Xiaoyi Zhang <zhangxy@google.com>:

Correctly define ABSL_HAVE_STD_STRING_VIEW for MSVC 2017. Currently the macro
is not defined even though MSVC 2017 provides `std::string_view`, and this
means both `absl::string_view` and `std::string_view` exist as distinct types.
A bunch of places relying on the false assumption that
`string_view::const_iterator` is `const char*` have to be fixed to build
successfully.

See related github issue https://github.com/abseil/abseil-cpp/issues/161.

PiperOrigin-RevId: 210764947
GitOrigin-RevId: ed4be0cb9a708158187a0628c1c2167ae6783274
Change-Id: I7a9658b3201aa669db9d3d90474feb08072718c7
2018-08-30 10:48:15 -04:00
Abseil Team
6c7e5ffc43 Export of internal Abseil changes.
--
a371d3d4e213c65354dd0e8b1aa28673455aec2a by Matt Armstrong <marmstrong@google.com>:

Fix the C++17 build of absl/types/internal/variant.h.

If ABSL_HAVE_STD_VARIANT is defined this header is now a
nop. While no code should include this header in that case,
the build system may still try to compile it, for example,
if the Bazel parse_headers feature is on.

PiperOrigin-RevId: 210544253
GitOrigin-RevId: a371d3d4e213c65354dd0e8b1aa28673455aec2a
Change-Id: I9c02018b86293b7235fcc9e03fb54f1d86c4b096
2018-08-29 10:37:01 -04:00
Abseil Team
d6df769173 Export of internal Abseil changes.
--
de82143f509d8fd6e70efc9eaed35582054a7443 by Abseil Team <absl-team@google.com>:

Mark optional::reset() 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 optional without any warnings, and the optional will thereafter be regarded as initialized again.

PiperOrigin-RevId: 210502364

--
e645e68c44df957271e109aca6d68af530e27d04 by Derek Mauro <dmauro@google.com>:

Mark //absl/synchronization:thread_pool as only visible to internal
Abseil targets since it is internal-only.

PiperOrigin-RevId: 210406260

--
09b53240efba9bf73190eaea91fe33b9eafc3529 by Abseil Team <absl-team@google.com>:

Add support for the [[clang::reinitializes]] attribute.

This will be used to prevent false positives in the clang-tidy check
bugprone-use-after-move.

PiperOrigin-RevId: 210377317
GitOrigin-RevId: de82143f509d8fd6e70efc9eaed35582054a7443
Change-Id: Ibac1ee694f7b5b9f5aff8670559e49505ff8ee11
2018-08-28 11:08:00 -04:00
Abseil Team
28080f5f05 Export of internal Abseil changes.
--
a48a8dd622891ff1bfe0c0bbc09cefa363458dfe by Abseil Team <absl-team@google.com>:

Add missing closing bracket.

PiperOrigin-RevId: 210024045
GitOrigin-RevId: a48a8dd622891ff1bfe0c0bbc09cefa363458dfe
Change-Id: I4d1d59b6ba286328978873e05e2f84652840f204
2018-08-24 15:09:36 -04:00
Abseil Team
9c987f429b Export of internal Abseil changes.
--
02313145821172a55b1cda543868be5e986de591 by Tom Manshreck <shreck@google.com>:

Internal change

PiperOrigin-RevId: 209992038
GitOrigin-RevId: 02313145821172a55b1cda543868be5e986de591
Change-Id: Iadab8fb89daa467d8e0cb8e3d38ae058c77c5b38
2018-08-23 17:51:54 -04:00
Abseil Team
5e7d459eec Export of internal Abseil changes.
--
2dcf3ec79f961d2962cdad33ac4bfbcb14126dad by Abseil Team <absl-team@google.com>:

Consolidate implementations of CountLeadingZeros and add new ones for
CountTrailingZeros.
Internal APIs only.

PiperOrigin-RevId: 209961247

--
4f3ac87c6928dab26faff962bb18aade9383f184 by Jorg Brown <jorg@google.com>:

Fix absl::CUnescape not to write to const_cast<char*>(str->data()), which does the wrong thing if the string type is copy-on-write

PiperOrigin-RevId: 209957656

--
c5103067be19dc88a4c32e5306154e5e3bba4673 by Tom Manshreck <shreck@google.com>:

Update comments in time library header files.

PiperOrigin-RevId: 209829588

--
fe36f9b6150243d2ac88e2a892d84c565c18cd2f by Abseil Team <absl-team@google.com>:

Clarifying the sample use of absl::LoadTimeZone function in the documentation.

PiperOrigin-RevId: 209782218
GitOrigin-RevId: 2dcf3ec79f961d2962cdad33ac4bfbcb14126dad
Change-Id: I3e2f87a8c543599b81eada58409a9bddc0b51ab8
2018-08-23 13:48:48 -04:00
Abseil Team
bed5bd6e18 Export of internal Abseil changes.
--
f4bb8afa9376b4120f56f3beff7b07260da4a5c2 by CJ Johnson <johnsoncj@google.com>:

Add user to Github list

PiperOrigin-RevId: 209630262
GitOrigin-RevId: f4bb8afa9376b4120f56f3beff7b07260da4a5c2
Change-Id: I3fedf35011d805ee4a20b92e073b43523b47d15b
2018-08-22 11:02:33 -04:00
Abseil Team
fefc83638f Export of internal Abseil changes.
--
b01400905d2ba23ec9f4541153532eefcfb0d5f5 by Mark Barolak <mbar@google.com>:

Tweak the comment for WebSafeBase64Unescape to make it match the style of the other comments in escaping.h.

PiperOrigin-RevId: 209596034

--
dd35c55ee538ed458bb32494d87996d6624676df by Abseil Team <absl-team@google.com>:

Migrate FixedArray from allocator pointers to references. Also updates the name to be more generic as nothing about the implementation was specific to FixedArray's StorageElement*

PiperOrigin-RevId: 209438135
GitOrigin-RevId: b01400905d2ba23ec9f4541153532eefcfb0d5f5
Change-Id: I27304e4609708ec24fb19dce1e33215d7e4b5ae9
2018-08-21 14:07:46 -04:00
Abseil Team
d8cfe9f2a7 Export of internal Abseil changes.
--
c508ee8bcc38dad1019c0ad744c47ac70efd36b7 by Derek Mauro <dmauro@google.com>:

Opensource the Linux specific SpinLock Wait/Wake implementation.

PiperOrigin-RevId: 209420888

--
c13113e19973d496f3e798c0e6d5569c78e41466 by Derek Mauro <dmauro@google.com>:

Fix build error from https://github.com/abseil/abseil-cpp/issues/159

PiperOrigin-RevId: 209152118
GitOrigin-RevId: c508ee8bcc38dad1019c0ad744c47ac70efd36b7
Change-Id: I1a287df973198f9e26936d8f91031bb354db0c71
2018-08-20 11:24:03 -04:00
Abseil Team
ad5c960b2e Export of internal Abseil changes.
--
ae3a8f7f60cc6444179c6c31ec501742eef4ef58 by Abseil Team <absl-team@google.com>:

Shard mutex_test to improve testing speed.

PiperOrigin-RevId: 208277475
GitOrigin-RevId: ae3a8f7f60cc6444179c6c31ec501742eef4ef58
Change-Id: I99a7e0ff783c1a071d993abd5c4d1995c5912aa0
2018-08-13 14:19:55 -04:00
Abseil Team
86f0fe93ad Export of internal Abseil changes.
--
9850e5567db4ab7cf4928e68d1c6e232d9845fff by Abseil Team <absl-team@google.com>:

Add missing file parameter for FPrintF example.

PiperOrigin-RevId: 208238843

--
e3aa5daed78a2d38f0f19c20db93d6b9cca54041 by Abseil Team <absl-team@google.com>:

Internal cleanup.

PiperOrigin-RevId: 208216296

--
6ec960705441f7ae7383214160cf78244b0ac614 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 208111059
GitOrigin-RevId: 9850e5567db4ab7cf4928e68d1c6e232d9845fff
Change-Id: I3ceef9b66ffc8d434eb522f79479581975e780e6
2018-08-10 15:16:16 -04:00
Abseil Team
f0f15c2778 Export of internal Abseil changes.
--
7fb969986d7d5a1b30233a94ae7ea29e1abf8937 by Greg Falcon <gfalcon@google.com>:

Fix whitespace in str_join.h.

PiperOrigin-RevId: 208082852

--
85428003a8a29fbcd92c0b48708a69460eeb0e8f by Abseil Team <absl-team@google.com>:

Add missing back-ticks to the comments.

PiperOrigin-RevId: 207985417

--
0bbac248d5649ac1d7bc71ff1025a11332fb2026 by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 207927484

--
f587324b99570b403b4626fb03fce16f0d950b05 by Abseil Team <absl-team@google.com>:

Update BaseCountedInstance to have comparison operators and allow them to be tracked by InstanceTracker.

PiperOrigin-RevId: 207919218

--
d7f410e4f15328412941f16e25ba3735d5bdfda6 by Derek Mauro <dmauro@google.com>:

Internal import of GitHub PR #153
Removed "warning treated as error" flag from MSVC

PiperOrigin-RevId: 207908806

--
59eefc78f8571ffc51cb636894015ce2580508d7 by Abseil Team <absl-team@google.com>:

Fix namespace references in examples from 'std::' to 'absl::'.

PiperOrigin-RevId: 207895230

--
151df17b6544222e29913b034a1296c0e14374d5 by Abseil Team <absl-team@google.com>:

Internal Change

PiperOrigin-RevId: 207894949
GitOrigin-RevId: 7fb969986d7d5a1b30233a94ae7ea29e1abf8937
Change-Id: I00097afbe9610ddb3f2330a2a86dcffde7bb6675
2018-08-09 14:37:31 -04:00
vocaviking
29ff6d4860 Removed "warning treated as error" flag from MSVC (#153)
* Removed "warning treated as error" flag from MSVC

Setting the "warning treated as error" flag in public projects is problematic, because it can lead to compilation errors for users, when the compiler adds new warnings. This however, does not mean that the project has a bug, only that it emits a new warning. Nevertheless it still fails to compile.
2018-08-08 13:38:37 -04:00
Abseil Team
083d04dd4a Export of internal Abseil changes.
--
c1f3a243ff3713917eaf0255c86ddd1b40461ba9 by Abseil Team <absl-team@google.com>:

Remove stray space.

PiperOrigin-RevId: 207753171

--
4abe43b174f7fafa390d2f6eb96f31977a38fc69 by Shaindel Schwartz <shaindel@google.com>:

Typo fix.

PiperOrigin-RevId: 207572868

--
e7757b409256b025cadba20a84a93cb9dc4319e1 by Abseil Team <absl-team@google.com>:

Adds backported is_(copy|move)_assignable<T>

PiperOrigin-RevId: 207572180
GitOrigin-RevId: c1f3a243ff3713917eaf0255c86ddd1b40461ba9
Change-Id: I1202715e5092b54d5967017728044715d6eb2ec0
2018-08-08 09:53:34 -04:00
Abseil Team
bea85b5273 Export of internal Abseil changes.
--
36d990031b4ae8e2debaccca63ff41829383a7d2 by Derek Mauro <dmauro@google.com>:

Rename FailureSignalHandler to AbslFailureSignalHandler so that we
don't confuse poor souls.

PiperOrigin-RevId: 207539530

--
0ced19ef8e0e0887f9809ffb88c5ef5f8746a6aa by Abseil Team <absl-team@google.com>:

Minor changes to support WebAssembly.

PiperOrigin-RevId: 207286743
GitOrigin-RevId: 36d990031b4ae8e2debaccca63ff41829383a7d2
Change-Id: I6b86713e96f5c32b595171594e456e38c898e601
2018-08-06 10:29:20 -04:00
Abseil Team
8f96be6ca6 Export of internal Abseil changes.
--
586c41e29e80d9613434f18347d4a70a92a90989 by Jon Cohen <cohenjon@google.com>:

Whitespace cleanup

PiperOrigin-RevId: 207119388

--
e28fc6932d68f7097918f3092079f07112e684c1 by Abseil Team <absl-team@google.com>:

Fix comment typo in mutex.h

PiperOrigin-RevId: 207024211

--
b7714a5f189b2863f9cfc285ba428ca2059b83f4 by Abseil Team <absl-team@google.com>:

Raise the floor for gcc from gcc 4.7 to gcc 4.8.

PiperOrigin-RevId: 207021220

--
262ae79150278ea1b4e512dfe8ff05c32768f429 by Matt Armstrong <marmstrong@google.com>:

Raise the floor for gcc from gcc 4.7 to gcc 4.8.

PiperOrigin-RevId: 206997741

--
5aba0b15eaf6c5beff0e91670a7cdf5ad1151886 by Derek Mauro <dmauro@google.com>:

Use std::chrono to get the current time on both Apple and Windows
platforms, eliminating the unnecessarily complicated logic on Apple
platforms.

PiperOrigin-RevId: 206979219

--
807a91adf876f7532050d442f00268754c0f260b by Derek Mauro <dmauro@google.com>:

Fix multiple definition problem when Abseil is combined with
gperftools on PowerPC.

https://github.com/abseil/abseil-cpp/pull/152

PiperOrigin-RevId: 206963083
GitOrigin-RevId: 586c41e29e80d9613434f18347d4a70a92a90989
Change-Id: I0ee65a733c423890b97dd3500f2d17449792387c
2018-08-02 13:59:26 -04:00
Derek Mauro
92e07e5590
Merge pull request #152 from clnperez/fix-multi-defines-ppc64le
fix multiple define problem with ppc64le
2018-08-01 14:37:53 -04:00
Derek Mauro
b876d861b0 Tweak pull request #152 to fix multiple define problem with ppc64le. 2018-08-01 13:56:45 -04:00
Abseil Team
2125e6444a Export of internal Abseil changes.
--
ac7508120c60dfe689c40929e416b6a486f83ee3 by Gennadiy Rozental <rogeeff@google.com>:

Internal change

PiperOrigin-RevId: 206912089

--
bd709faba88565367b6d337466e6456481b5f3e8 by Matt Calabrese <calabrese@google.com>:

Implement `std::experimental::is_detected` in type_traits internals and move `is_detected_convertible` from variant's internals to type_traits internals. This is in preparation of creating workarounds for broken standard traits.

PiperOrigin-RevId: 206825598

--
0dbddea569370eb9b6348cee172d1874f9046eb4 by Jorg Brown <jorg@google.com>:

Support users who turn on floating-point conversion warnings

PiperOrigin-RevId: 206813209

--
30991f757c8f0100584619d8a9c41897d029f112 by Jorg Brown <jorg@google.com>:

Speed up the absl::Seconds() function for floating-point values, roughly by 4.5x, since
we can take advantage of the fact that we're just taking a floating-point number and
splitting it into its integral and fractional parts.

PiperOrigin-RevId: 206806270

--
6883837176838aa5a517e7a8cb4c99afd24c0d12 by Jon Cohen <cohenjon@google.com>:

Remove the DISABLE_INSTALL from absl_container.  It doesn't do anything.

PiperOrigin-RevId: 206802544

--
92ab14fed06e6dd1f01a0284bd7f95d3e2c0c3d8 by Jon Cohen <cohenjon@google.com>:

Internal change

PiperOrigin-RevId: 206776244

--
17b76c7f364ac562d9e0faeca0320f63aa3fdb85 by Jorg Brown <jorg@google.com>:

Fix absl/strings:numbers_test flakiness due to exceeding the 1-minute timeout

PiperOrigin-RevId: 206763175

--
6637843f2e198b8efd90e5577fbc86bdea43b2cc by Abseil Team <absl-team@google.com>:

Adds templated allocator to absl::FixedArray with corresponding tests

PiperOrigin-RevId: 206354178

--
bced22f81add828c9b4c60eb45554d36c22e2f96 by Abseil Team <absl-team@google.com>:

Adds templated allocator to absl::FixedArray with corresponding tests

PiperOrigin-RevId: 206347377

--
75be14a71d2d5e335812d5b7670120271fb5bd79 by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 206326935

--
6929e43f4c7898b1f51e441911a19092a06fbf97 by Abseil Team <absl-team@google.com>:

Adds templated allocator to absl::FixedArray with corresponding tests

PiperOrigin-RevId: 206326368

--
55ae34b75ff029eb267f9519e577bab8a575b487 by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 206233448

--
6950a8ccddf35d451eec2d02cd28a797c8b7cf6a by Matt Kulukundis <kfm@google.com>:

Internal change

PiperOrigin-RevId: 206035613
GitOrigin-RevId: ac7508120c60dfe689c40929e416b6a486f83ee3
Change-Id: I675605abbedab6b3ac9aa82195cbd059ff7c82b1
2018-08-01 13:27:57 -04:00
Christy Norman
5a85c65255 fix multiple define problem with ppc64le
building anything, e.g. envoy, that also builds gperftools, results in
the error that StacktracePowerPCDummyFunction was previously defined.

Rename this one, as its only a dummy function and is only used in this
one place.

Signed-off-by: Christy Norman <christy@linux.vnet.ibm.com>
2018-07-31 16:11:46 -04:00
Olaf van der Spek
3c491f6fd0
Typo in escaping.h 2018-07-30 15:46:08 +02:00
Abseil Team
c2e00d3419 Export of internal Abseil changes.
--
eb6cc81ef7e89e10fc9df47418af93e22fd116d2 by Abseil Team <absl-team@google.com>:

Workaround clang bug https://bugs.llvm.org/show_bug.cgi?id=38289

PiperOrigin-RevId: 206006290

--
509e9829295bfc429b82de42f2e073c756ea5709 by Jon Cohen <cohenjon@google.com>:

Remove make_unique ambiguity when using gcc 4.9 in C++14 mode.

gcc 4.9.4 has __cplusplus at 201300L instead of 201402L when in C++14 mode, I guess indicating incomplete support.  Anyways, it causes a problem with this check as in c++14 mode in old gcc we were defining absl::make_unique when std::make_unique was present

PiperOrigin-RevId: 205886589
GitOrigin-RevId: eb6cc81ef7e89e10fc9df47418af93e22fd116d2
Change-Id: I9acf3f3d0fd3b0b46ae099821f3bf21b72c28b2b
2018-07-25 14:13:24 -04:00
Abseil Team
9e060686d1 Export of internal Abseil changes.
--
ee644a89fb1429d9337852690a01182853f68964 by Derek Mauro <dmauro@google.com>:

Lower the thread limit in the Mutex benchmark on some platforms.
https://github.com/abseil/abseil-cpp/issues/147

PiperOrigin-RevId: 205663768
GitOrigin-RevId: ee644a89fb1429d9337852690a01182853f68964
Change-Id: Ic5db4061809aa65f73e6a63dba90b2554376b38c
2018-07-24 15:36:25 -04:00
Abseil Team
7aa411ceaf Export of internal Abseil changes.
--
298d93fcb860116111611a8ab0662b409734227a by Alex Strelnikov <strel@google.com>:

Release ascii_benchmark.

PiperOrigin-RevId: 205275981

--
73a01469e5862eefbe5ef9d434f45b7073476272 by Abseil Team <absl-team@google.com>:

Internal cleanup

PiperOrigin-RevId: 205236717

--
53d6338bf49dab95bd0fbb5bbcd56970c6b868c2 by Abseil Team <absl-team@google.com>:

Removes InlinedVector's dependency on bitwise operators for size_type

PiperOrigin-RevId: 205236134
GitOrigin-RevId: 298d93fcb860116111611a8ab0662b409734227a
Change-Id: I754f5eea889567add2dbbdea358a533f54a912dd
2018-07-20 09:18:23 -04:00
Abseil Team
2c5af55ed3 Export of internal Abseil changes.
--
60bc1e62580e0ff352a92c785f29550c2000447d by Xiaoyi Zhang <zhangxy@google.com>:

Import Github PR https://github.com/abseil/abseil-cpp/pull/143.

absl/synchronization/internal/kernel_timeout.h uses INFINITE macro that comes from windows.h that is included by winsock2.h that is included by absl/time/time.h. This internal header will be included by public header. It should not depend on windows.h.

PiperOrigin-RevId: 205109009

--
1617f0a333a8030e4e4c0bc1eef71f4a5fe9874d by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 205101804

--
8dce298b8c96c12c423943a366a4d92a554366c4 by Chris Kennelly <ckennelly@google.com>:

Define UNALIGNED_LOAD/STORE macros for UNDEFINED_BEHAVIOR_SANITIZER.

When using UBSan in trap mode (that is, without the ubsan runtime library), the
x86 macros can cause alignment errors as they assume unaligned loads/stores are
permitted.  The macros defined in the presence of
{ADDRESS,THREAD,MEMORY}_SANITIZER require the runtime library.

PiperOrigin-RevId: 205096794
GitOrigin-RevId: 60bc1e62580e0ff352a92c785f29550c2000447d
Change-Id: I65a6cc86a711796c9d3a605310d67795b9f76ce9
2018-07-19 08:54:14 -04:00
Xiaoyi Zhang
44aa275286
Merge pull request #143 from rongjiecomputer/kernel
Remove dependency of windows.h in kernel_timeout.h
2018-07-18 15:02:13 -04:00
Abseil Team
42f22a2840 Export of internal Abseil changes.
--
28b634d3e8e879546e20006b81086a2b02390f1d by Abseil Team <absl-team@google.com>:

Indicate Solaris / Illumos has mmap support
https://github.com/abseil/abseil-cpp/pull/139
This change is **untested** as Abseil does not officially support Solaris/Illumos.

PiperOrigin-RevId: 205094615

--
3c4cc80abcd91c6cd88209a61b50936d1c498bac by Xiaoyi Zhang <zhangxy@google.com>:

Make is_trivially_copy_assignable work with reference types.

PiperOrigin-RevId: 204982099

--
98c6658b3d6cd5eddba9f498747dc84c172ffe05 by Abseil Team <absl-team@google.com>:

Fix typo in comments for c_mismatch.

PiperOrigin-RevId: 204962537

--
deef8b23585f7831d67c1d4b1c9ef7f3e30d9028 by Matt Kulukundis <kfm@google.com>:

Internal change

PiperOrigin-RevId: 204956873
GitOrigin-RevId: 28b634d3e8e879546e20006b81086a2b02390f1d
Change-Id: I1da029f8cb83d83ee5a05f3b0c6a07bc3dd5368e
2018-07-18 13:09:57 -04:00
ahedberg
b973bc53ef
Merge pull request #139 from siepkes/smartos-support
Indicate Solaris / Illumos has mmap support
2018-07-18 13:06:57 -04:00
Loo Rong Jie
22baa38bf6 Convert one std::numeric_limits<Dword>::max() to kInfinite 2018-07-18 09:55:24 +08:00
Loo Rong Jie
407252f121 Update comment and use std::numeric_limits<Dword>::max() 2018-07-18 09:53:05 +08:00
Loo Rong Jie
44976eb3bc Add comment and change type name 2018-07-18 08:42:48 +08:00
Loo Rong Jie
a105cada55 Remove dependency of windows.h in kernel_timeout.h 2018-07-18 08:42:48 +08:00
Abseil Team
e0def7473e Export of internal Abseil changes.
--
ffe43f972f956e3f9a8fb7b68993d243ba8f79fb by Abseil Team <absl-team@google.com>:

Replace usage of soon-to-be-deprecated http_archive rule with Skylark equivalent
https://github.com/abseil/abseil-cpp/pull/138

PiperOrigin-RevId: 204939972

--
24021d7aec96ed013333760fba590eba5a9ddf63 by Abseil Team <absl-team@google.com>:

Remove incorrect constraint that StrSplit only works on std::strings; rather, it works on anything string-like.

PiperOrigin-RevId: 204761431

--
ce61d3b0ac163caa1156817f3d1a997d9376a3f3 by Derek Mauro <dmauro@google.com>:

Support s390/s390x in examine_stack.cc (GitHub issue #135).
This is UNTESTED (no machine to test on).

PiperOrigin-RevId: 204756692

--
68ecab659a95d713c4342fe9e8008c4cdf6abfc1 by Derek Mauro <dmauro@google.com>:

Update WORKSPACE.bazel Gogole Test dependency, remove the unused RE2 dependency.

PiperOrigin-RevId: 204741814

--
891e185522f0934e3b48a75617be5fc859d75dbd by Derek Mauro <dmauro@google.com>:

Fix endian_test.cc on big endian platforms.
GitHub issue #135

PiperOrigin-RevId: 204738726

--
9becfa12fbb525cd97e5695b94677bd3ea3f61b0 by Abseil Team <absl-team@google.com>:

Improve error messages in absl::variant by splitting up the conditions in the valid type static_assert.

This makes it slightly easier to determine what type is causing issues.

PiperOrigin-RevId: 204508430
GitOrigin-RevId: ffe43f972f956e3f9a8fb7b68993d243ba8f79fb
Change-Id: Icc5e4e8cd1a4cea98dfbed794cd992b734812e1d
2018-07-17 14:32:16 -04:00
Abseil Team
7b50a4a94b Export of internal Abseil changes.
--
50154b443b21a5123c50bebcfb866581e2e5b907 by Xiaoyi Zhang <zhangxy@google.com>:

Import https://github.com/abseil/abseil-cpp/pull/144

PiperOrigin-RevId: 204482647

--
ffefb7e0f9861a24296e672a5e32bbb56051239a by Abseil Team <absl-team@google.com>:

Cast ABSL_MIN_LOG_LEVEL to absl::LogSeverity rather than casting severity to int.  This allows it to be defined symbolically e.g. -DABSL_MIN_LOG_LEVEL=absl::LogSeverity::kError.

PiperOrigin-RevId: 204347589
GitOrigin-RevId: 50154b443b21a5123c50bebcfb866581e2e5b907
Change-Id: I728baa8a3ad11ca28b731cc7979238c163e9c9a4
2018-07-13 16:43:41 -04:00
Xiaoyi Zhang
a5030ca512
Merge pull request #144 from rongjiecomputer/winsock2
Only MSVC does not have sys/time.h
2018-07-13 14:13:24 -04:00
Abseil Team
02687955b7 Export of internal Abseil changes.
--
898e99cae89ca4cc27f86f719148f020d521dd58 by Abseil Team <absl-team@google.com>:

Update comment.

PiperOrigin-RevId: 204323401

--
b9d14db8b8a9dfb0e1cfb5967aaa0de1c4e94c42 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 204178059

--
f3b5a667611a588aa06fea9168e997ef5cffa7ac by Abseil Team <absl-team@google.com>:

Fix a potential reinterpret_cast compile error in absl::InlinedVector

The current code will trigger a reinterpret_cast error enhanced by llvm r336738.

PiperOrigin-RevId: 204131536

--
cc87d7a8302ad4471c1a25781d6ec19c2ce1524e by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 203979040

--
bc5cae3cfc72af1d3e786d5a3b59a47e205afec9 by Gennadiy Rozental <rogeeff@google.com>:

Internal: add internal logging hooks

PiperOrigin-RevId: 203850605

--
503655c248f557f677c920078613522b010e73c8 by Derek Mauro <dmauro@google.com>:

Cleanup stacktrace_config.h

Instead of listing the platforms that aren't supported, list the ones
we do support, and fallback to stacktrace_unimplemented-inl.inc at the
end. Previously any platform that wasn't listed gets "#error Not supported yet".

GitHub issue #135

PiperOrigin-RevId: 203823079

--
cb69925c4cacc14558cf103a09f218c37f466a16 by Abseil Team <absl-team@google.com>:

Fix a minor typo in absl::variant documentation.

PiperOrigin-RevId: 203679877

--
23a0e4db10039011fa5fd879fb73d2f2bbd17301 by Abseil Team <absl-team@google.com>:

Format .bzl files with buildifier

PiperOrigin-RevId: 203461813

--
1ad02616bdb715dfdc7f1a73313e383f4ededa03 by Abseil Team <absl-team@google.com>:

Make the absl::SleepFor() tests treat any successful retry within
a 48x deadline as a total success, thereby reducing flakiness.

PiperOrigin-RevId: 203401603

--
b3dccbbc6563ea0173527076a3fff21433d48f47 by Abseil Team <absl-team@google.com>:

Replace config_setting.values{"compiler"} with config_setting.flag_values{"@bazel_tools//tools/cpp:compiler"}

Due to changes in Bazel we need to change the way "compiler" is specified in config_setting. This will not change the behavior of the config_setting itself.

PiperOrigin-RevId: 203345693

--
170f1692537460a4ba1756d34852275899c2339b by Matt Armstrong <marmstrong@google.com>:

Address test flakiness in the TimeoutTest.

The basic idea is to loop forever until the expected
scheduling delays are observed (within reasonable bounds),
and only then assert the other invariants.

PiperOrigin-RevId: 203188162
GitOrigin-RevId: 898e99cae89ca4cc27f86f719148f020d521dd58
Change-Id: Ie853ec050afa3a04c519393afe666bc03e11dc87
2018-07-12 14:35:25 -04:00
Loo Rong Jie
37d45c0164 Only MSVC does not have sys/time.h 2018-07-12 13:35:44 +08:00
Jasper Siepkes
0326e1c745
Add support for Solaris / Illumos. 2018-07-05 14:35:18 +02:00
Abseil Team
8f612ebb15 Export of internal Abseil changes.
--
71756e7176d15d52a4ee66cc25c088aedbca78f4 by Abseil Team <absl-team@google.com>:

internal change

PiperOrigin-RevId: 203131836

--
2e80b965b590fd6459f45413215690980eb50960 by Matt Calabrese <calabrese@google.com>:

Tighten type requirements for use of absl::bit_cast. Ideally, the constraints should depend on std::is_trivally_copyable, but a combination of supported configurations and lack of intrinsic support for bit_cast makes this not currently feasible. In a future change we should introduce more proper preprocessor branching and workarounds to better emulate the trait.

PiperOrigin-RevId: 202950382
GitOrigin-RevId: 71756e7176d15d52a4ee66cc25c088aedbca78f4
Change-Id: If58840d1e4d801817be85cbf99a475c31fa94fe0
2018-07-03 14:30:54 -04:00
Abseil Team
134496a31d Export of internal Abseil changes.
--
aa9e2bff92652605b8244677058be787c872f99c by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 202702969

--
d26c857c203589892a84bc44d789f2a15a60f234 by Abseil Team <absl-team@google.com>:

Cleans up the FixedArray code (formatting, renames, etc) without changing the functionality

PiperOrigin-RevId: 202538159
GitOrigin-RevId: aa9e2bff92652605b8244677058be787c872f99c
Change-Id: I6561257232c6cc8e1cbf51d7e26bae5f8760551e
2018-07-02 09:58:35 -04:00
Abseil Team
ba8d6cf077 Export of internal Abseil changes.
--
6769c6ebe79804063d68d70a5623a1475d63aeff by Alex Strelnikov <strel@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 202500218

--
c65cc4af08b8c48ca65f0816c1d2f59c7de7b0a5 by Derek Mauro <dmauro@google.com>:

Fix DirectMMap on s390x (GitHub #135).
This is *untested* because no s390x system is available.

PiperOrigin-RevId: 202484458

--
0ae7b628d7859cb3af169d007c29efd7917bb3ea by Abseil Team <absl-team@google.com>:

Changes the Holder's compile-type type decision making to a std::conditional for improved readability

PiperOrigin-RevId: 202340646
GitOrigin-RevId: 6769c6ebe79804063d68d70a5623a1475d63aeff
Change-Id: I8f9d049ee279b1b1e3381fdf7e6fe9a4ea228306
2018-06-28 15:01:10 -04:00
Abseil Team
be1e84b988 Export of internal Abseil changes.
--
6befc69900cd77b5af55d1235b2c74dbeb37fbeb by Alex Strelnikov <strel@google.com>:

move ExtendedParsedFormat

PiperOrigin-RevId: 202336028

--
3adf2a6358189b28e9bdf982c4fd3110e24fb84b by Alex Strelnikov <strel@google.com>:

Internal change.

PiperOrigin-RevId: 202330527

--
8fdd1e8aee74992f5d4f3ab79739e6272feca7a8 by Alex Strelnikov <strel@google.com>:

move ExtendedParsedFormat

PiperOrigin-RevId: 202317418

--
c618725b2320d5c4292ea479b877c848ccdf2e6b by Alex Strelnikov <strel@google.com>:

Release strings:numbers_benchmark

PiperOrigin-RevId: 202297686

--
7c9f6132034a5a32160f56ca0dd0a4edcd476928 by Matt Kulukundis <kfm@google.com>:

Internal change

PiperOrigin-RevId: 202230893

--
bf1a0e1724e87e4fb55165997562efa9c8d081c5 by Juemin Yang <jueminyang@google.com>:

move ExtendedParsedFormat

PiperOrigin-RevId: 202199857
GitOrigin-RevId: 6befc69900cd77b5af55d1235b2c74dbeb37fbeb
Change-Id: Iafe46260e141de9f34b130b9d968a0ea542151d1
2018-06-27 14:01:06 -04:00
Alex Strelnikov
16ac2ec2e3
Merge pull request #134 from rongjiecomputer/cmake
Fix CMake declaration for absl_str_format
2018-06-27 13:27:04 -04:00
Abseil Team
7efd8dc0f1 Export of internal Abseil changes.
--
6bab63b2bcdbd768743c2ebcc4a8e19af20c5406 by Abseil Team <absl-team@google.com>:

Reformats inlined_vector.h to match the current Google lint rules

PiperOrigin-RevId: 202154101

--
00cdeda6ea24591a9cb8ac8b3c2e2a042e1b15b1 by Gennadiy Rozental <rogeeff@google.com>:

Improve SplitterIsConvertibleTo implementation.

PiperOrigin-RevId: 202095009

--
7c24071afac45a17c47e819896f844a36e239bda by Greg Falcon <gfalcon@google.com>:

Internal change

PiperOrigin-RevId: 201991288
GitOrigin-RevId: 6bab63b2bcdbd768743c2ebcc4a8e19af20c5406
Change-Id: Ic5a988ab39e78247285411f36287cd34d6f5afd3
2018-06-26 13:49:13 -04:00
Abseil Team
87a4c07856 Export of internal Abseil changes.
--
8becce38c862a044db194a9aea1b505796a46d6f by Abseil Team <absl-team@google.com>:

Updates the FixedArray's constructors to be exception safe by preventing double deletions. Also adds exception safety tests for FixedArray to document/enforce the expected behavior.

PiperOrigin-RevId: 201964431

--
794188b401a602b4be97190fb8738066fe1f9ca5 by Derek Mauro <dmauro@google.com>:

Fixes for str_format.h documentation.

PiperOrigin-RevId: 201951760

--
beae3bdd6eee2cf61101102fddc35ada188f330b by Alex Strelnikov <strel@google.com>:

Add numeric_limits specialization for uint128.

Turns out numeric_limits is a case where the consensus is that it is okay to specialize for a user defined type.

PiperOrigin-RevId: 201944736

--
b2b3444a52b36878ade1ae8801e69932b05fc4f9 by Shaindel Schwartz <shaindel@google.com>:

Internal change.

PiperOrigin-RevId: 201718662

--
aa924c459922f39caabfc193998c58d0f4981ac0 by Abseil Team <absl-team@google.com>:

Typo fix.

PiperOrigin-RevId: 201692176

--
bbfcaa7b1af331d9b97c92470608240c5c864fbc by Xiaoyi Zhang <zhangxy@google.com>:

Use ABSL_HAVE_ANY/OPTIONAL/VARIANT to conditionally compile out the definition of absl::bad_any_cast, absl::bad_optional_access, absl::bad_variant_access. This would fix the issues where users #include those header directly in C++17 modes.

PiperOrigin-RevId: 201683792
GitOrigin-RevId: 8becce38c862a044db194a9aea1b505796a46d6f
Change-Id: I60a7ad043136a439d82c374d225a1804016b0509
2018-06-25 12:53:37 -04:00
Loo Rong Jie
286ca4cf30 Fix CMake declaration for absl::str_format 2018-06-23 10:16:48 +08:00
Abseil Team
4491d606df Export of internal Abseil changes.
--
70f43a482d7d4ae4a255f17ca02b0106653dd600 by Shaindel Schwartz <shaindel@google.com>:

Internal change

PiperOrigin-RevId: 201571193

--
93e6e9c2e683158be49d9dd1f5cb1a91d0c0f556 by Abseil Team <absl-team@google.com>:

Internal change.

PiperOrigin-RevId: 201567108

--
fbd8ee94fbe9f2448e5adf5e88706f9c8216048f by Juemin Yang <jueminyang@google.com>:

str_format release

PiperOrigin-RevId: 201565129

--
387faa301555a8a888c4429df52734aa806dca46 by Abseil Team <absl-team@google.com>:

Adds a defaulted allocator parameter to the size_type constructor of InlinedVector

PiperOrigin-RevId: 201558711

--
39b15ea2c68d7129d70cbde7e71af900032595ec by Matt Calabrese <calabrese@google.com>:

Update the variant implementation to eliminate unnecessary checking on alternative access when the index is known or required to be correct.

PiperOrigin-RevId: 201529535

--
adab77f1f7bb363aa534297f22aae2b0f08889ea by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 201458388

--
a701dc0ba62e3cadf0de14203415b91df4ee8151 by Greg Falcon <gfalcon@google.com>:

Internal cleanup

PiperOrigin-RevId: 201394836

--
8a7191410b8f440fdfa27f722ff05e451502ab61 by Abseil Team <absl-team@google.com>:

Import of CCTZ from GitHub.

PiperOrigin-RevId: 201369269
GitOrigin-RevId: 70f43a482d7d4ae4a255f17ca02b0106653dd600
Change-Id: I8ab073b30b4e27405a3b6da2c826bb4f3f0b9af6
2018-06-22 08:55:41 -04:00
Abseil Team
d89dba27e3 Export of internal Abseil changes.
--
7672429b51fa4edc9e2386f3d6ead89a33e523c0 by Xiaoyi Zhang <zhangxy@google.com>:

Work around a bug in MSVC 2015 which causes compiler error when building
variant_test with inline namespace for the LTS release.
The bug is reduced to https://godbolt.org/g/hvqDVz.

PiperOrigin-RevId: 201343049

--
dfe4f3869aa4b70dda69631816103e7b2c53c593 by Shaindel Schwartz <shaindel@google.com>:

Update date for LTS branch.

PiperOrigin-RevId: 201335133

--
9a8f41ddd0c75d5d2746141f61ba5736cfbde494 by Abseil Team <absl-team@google.com>:

Update bazel_toolchains to the latest commit.

PiperOrigin-RevId: 201231595

--
f6d5d5d08e638424073d0bc31bb4ed4d1ef512e2 by Tom Manshreck <shreck@google.com>:

Fix LTS wording, move to top level

PiperOrigin-RevId: 201054433
GitOrigin-RevId: 7672429b51fa4edc9e2386f3d6ead89a33e523c0
Change-Id: Id63a986870993889258f6364634a7880d226d187
2018-06-20 09:26:33 -04:00
Abseil Team
bd40a41cc1 --
f28d30df5769bb832dec3ff36d2fcd2bcdf494a3 by Shaindel Schwartz <shaindel@google.com>:

Internal change

PiperOrigin-RevId: 201046831

--
711715a78b7e53dfaafd4d7f08a74e76db22af88 by Mark Barolak <mbar@google.com>:

Internal fix

PiperOrigin-RevId: 201043684

--
64b53edd6bf1fa48f74e7f5d33f00f80d5089147 by Shaindel Schwartz <shaindel@google.com>:

Remove extra whitespace

PiperOrigin-RevId: 201041989

--
0bdd2a0b33657b688e4a04aeba9ebba47e4dc6ca by Shaindel Schwartz <shaindel@google.com>:

Whitespace fix.

PiperOrigin-RevId: 201034413

--
3deb0ac296ef1b74c4789e114a8a8bf53253f26b by Shaindel Schwartz <shaindel@google.com>:

Scrub build tags. No functional changes.

PiperOrigin-RevId: 201032927

--
da75d0f8b73baa7e8f4e9a092bba546012ed3b71 by Alex Strelnikov <strel@google.com>:

Internal change.

PiperOrigin-RevId: 201026131

--
6815d80caa19870d0c441b6b9816c68db41393a5 by Tom Manshreck <shreck@google.com>:

Add documentation for our LTS snapshot branches

PiperOrigin-RevId: 201025191

--
64c3b02006f39e6a8127bbabf9ec947fb45b6504 by Greg Falcon <gfalcon@google.com>:

Provide absl::from_chars for double and float types.  This is a forward-compatible implementation of std::from_chars from C++17.

This provides exact "round_to_nearest" conversions, and has some nice properties:

* Works with string_view (it can convert numbers from non-NUL-terminated buffers)
* Never allocates memory
* Faster than the standard library strtod() in our toolchain
* Uses integer math in its calculations, so is unaffected by floating point environment
* Unaffected by C locale

Also change SimpleAtod/SimpleAtoi to use this new API under the hood.

PiperOrigin-RevId: 201003324

--
542869258eb100779497c899103dc96aced52749 by Greg Falcon <gfalcon@google.com>:

Internal change

PiperOrigin-RevId: 200999200

--
3aba192775c7f80e2cd7f221b0a73537823c54ea by Gennadiy Rozental <rogeeff@google.com>:

Internal change

PiperOrigin-RevId: 200947470

--
daf9b9feedd748d5364a4c06165b7cb7604d3e1e by Mark Barolak <mbar@google.com>:

Add an absl:: qualification to a usage of base_internal::SchedulingMode outside of an absl:: namespace.

PiperOrigin-RevId: 200748234

--
a8d265290a22d629f3d9bf9f872c204200bfe8c8 by Mark Barolak <mbar@google.com>:

Add a missing namespace closing comment to optional.h.

PiperOrigin-RevId: 200739934

--
f05af8ee1c6b864dad2df7c907d424209a3e3202 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 200719115
GitOrigin-RevId: f28d30df5769bb832dec3ff36d2fcd2bcdf494a3
Change-Id: Ie4fa601078fd4aa57286372611f1d114fdec82c0
2018-06-18 16:20:03 -04:00
Abseil Team
f44e1eed08 - d6b8d35be9659e1c99a5daca1af8c8587acaa044 Update bazel_toolchains to the latest commit. by Abseil Team <absl-team@google.com>
- 38311bf46f29bf1b20bdfe6c9b10c54e6258d28c Fix inlined_vector_benchmark when using libc++. libc++'s ... by Derek Mauro <dmauro@google.com>
  - 32178d067d4af7c3062532103d213eb7230c2be6 Adding sha256 hashes to dependencies in Abseil OSS WORKSP... by Daniel Katz <katzdm@google.com>
  - 13ac34416b326909f1ce0889ec0eb3bff3f3bebe Fix silly whitespace typo. by Daniel Katz <katzdm@google.com>

GitOrigin-RevId: d6b8d35be9659e1c99a5daca1af8c8587acaa044
Change-Id: I6be0d76930206edb79a10779bff3ffcc5ce856c9
2018-06-15 11:09:49 -04:00
Abseil Team
eb686c069f - b9a479321581cd0293f124041bf5c06f456afec1 Adds exception safety tests for absl::make_unique<T>(...) by Abseil Team <absl-team@google.com>
- 78c61364007f6ab66155c151d0061bbec89c3dbd Update variadic visitation to use a switch statement when... by Matt Calabrese <calabrese@google.com>
  - b62eb9546087e0001307a741fcdf023b2d156966 Merge GitHub PR #130 - Add MIPS support to GetProgramCoun... by Derek Mauro <dmauro@google.com>
  - 09ab5739de33c8f1bebab2bb70bf7d4331348f05 Update ABSL_ASSERT to silence clang-tidy warnings about c... by Matt Calabrese <calabrese@google.com>
  - e73ee389ce8fe1a90738973c219ebbb19bb389f3 Update unary visitation to use a switch statement when th... by Matt Calabrese <calabrese@google.com>
  - c8734ccf475b856c95220f21a5ec4f44302cb5ce Work around a MSVC bug for absl::variant, by making `Acce... by Xiaoyi Zhang <zhangxy@google.com>

GitOrigin-RevId: b9a479321581cd0293f124041bf5c06f456afec1
Change-Id: Idb6fc906087c0a4e6fc5c75a391c7f73101c613e
2018-06-13 15:04:15 -04:00
Milko Leporis
defe5ed3cc Add MIPS support to GetProgramCounter()
Change adds __mips__ case to the GetProgramCounter function in abseil.

Chromium bug: 850029
2018-06-12 10:53:52 +02:00
Abseil Team
92020a042c - abacaab4b11a69dd4db627bd183571d7cabb8def Refinement to previous time.h edit (in this same github p... by Greg Falcon <gfalcon@google.com>
- 64db19b773134c6c8004e3b23c9ca892efbf8bae Move SpinLock's adaptive spin count computation from a st... by Derek Mauro <dmauro@google.com>
  - 6f9533fb44a52485a7c2bbb9b4efc7bf8d6c359a Import of CCTZ from GitHub. by Abseil Team <absl-team@google.com>
  - a211d7255c986e8dd4ceada362c0d054a6a1969a Cleanup exception flags by Abseil Team <absl-team@google.com>
  - babdb29c590126fe9bba5229fe91034b5b5c358a Release time benchmarks. by Alex Strelnikov <strel@google.com>
  - 5803b32a3ff123d1fb57a0c471d199c818357c9f Release memutil microbenchmarks. by Alex Strelnikov <strel@google.com>
  - 5357d4890d30e80c53beb05af32500fb20e9402b Add parens around expansion of ABSL_PREDICT_{FALSE,TRUE} ... by Abseil Team <absl-team@google.com>
  - 32023f61a239a5f6b1c59e577bfe81b179bbcd2d Reformat build rule tag. by Alex Strelnikov <strel@google.com>
  - 833758ecf2b0cf7a42bbd50b5b127e416425c168 Release uint128 microbenchmarks. by Alex Strelnikov <strel@google.com>
  - c115a9bca1f944b90fdc78a56b2de176466b124f Disambiguate bitwise-not of size_type by Abseil Team <absl-team@google.com>
  - f6905f5b5f6e425792de646edafde440548d9346 Updates ConstructorTracker and TrackedObjects with 1) a m... by Abseil Team <absl-team@google.com>
  - 147c553bdd5d2db20a38f75c4d1ef973d6c709c5 Changes the absl::Duration factory functions to disallow ... by Greg Miller <jgm@google.com>
  - dba2b96d11b5264546b283ba452f2de1303b0f07 White space fix by Alex Strelnikov <strel@google.com>

GitOrigin-RevId: abacaab4b11a69dd4db627bd183571d7cabb8def
Change-Id: I6fa34f20d0b2f898e7b5475a603111413bb80a67
2018-06-08 11:24:58 -04:00
Abseil Team
7aacab8ae0 - e2f6b8ac647271815b4fed2991f405524dd762c3 Release cctz microbenchmarks. by Alex Strelnikov <strel@google.com>
- 924ba2a3f9fca695d73c6bf491d20669e2b96b8e Changed RawPtr to use std::addressof() instead of operato... by Abseil Team <absl-team@google.com>
  - e8cf67f9fa74d4c5632da35547025ad2301c6819 Import of CCTZ from GitHub. by Alex Strelnikov <strel@google.com>
  - 2ece8a96611afcddd7b91e0197dadb896248250c Abandon ".inc" files in favor of ".h" headers. by Jorg Brown <jorg@google.com>
  - 37f5ed5da4058f90fb3e6a2733fce5b1fd0aaedf Add exception safety tests for absl::optional<T> by Abseil Team <absl-team@google.com>
  - 337f995a866b8f905f64ca6b271b5fec8f248a60 Update WORKSPACE to grab specific commits of dependencies... by Alex Strelnikov <strel@google.com>
  - 93e5b134607a554993387ad913e6c1621606004b Release Charmap microbenchmark. by Alex Strelnikov <strel@google.com>
  - 95c2e29b6d93ec1334484ee37d91f63101c45307 Release OStringStream microbenchmarks. by Alex Strelnikov <strel@google.com>
  - 250f51839ed26dd1e6b658d35aa291413e5f4825 Internal change by Greg Falcon <gfalcon@google.com>
  - ce34900fa3d1a95a8446bc943cdd801fac95be25 Improve compatibility of cctz cc_test targets for portabl... by Shaindel Schwartz <shaindel@google.com>
  - ce7e31dbf2c1ee93c79aae5b7dc7c603cb4babcf Improve portability of cc_tests. (Mark more tests that ca... by Abseil Team <absl-team@google.com>
  - dfcd4e455923703c1a1dcd523c5f915f7990fa2a Accept strings with custom allocators as arguments to abs... by Greg Falcon <gfalcon@google.com>
  - 2946b41ed3d5b8b5a8dc11182e443cf1ab6e3bde Link against benchmark_main instead of using BENCHMARK_MA... by Alex Strelnikov <strel@google.com>
  - f09de9e03bf8edd363069c4b352d8009423f531c Adds link to doc about the formats allowed by SimpleAtof(... by Greg Miller <jgm@google.com>
  - 59b0977e7a308e0800277886cf60226b2cc426a1 Simplify the HideMask() calculation so that it doesn't us... by Jorg Brown <jorg@google.com>

GitOrigin-RevId: e2f6b8ac647271815b4fed2991f405524dd762c3
Change-Id: Ib9c8547ed7fe217fad6cb3ab1362e96181aa5cfa
2018-05-31 15:58:36 -04:00
Abseil Team
99477fa9f1 - 31d03284ca8017ba59d98d47e7d041f361d478a7 Release escaping microbenchmarks. by Alex Strelnikov <strel@google.com>
- f183ce453db49ebc1948bb1d8eced37021cf63f7 Internal change. by Derek Mauro <dmauro@google.com>
  - b1660cb93e0fa37cdcecf37642766f5bfd12c7b0 Improve compatibility of some cc_test targets for portabl... by Abseil Team <absl-team@google.com>

GitOrigin-RevId: 31d03284ca8017ba59d98d47e7d041f361d478a7
Change-Id: I9c4c4d2ad12cfe10c914f7cfa9aaab67fcef5cb1
2018-05-24 13:59:23 -04:00
Abseil Team
014f02a3ec - 45b4111d940009bc7b3ebf621c9cb9293c60344a Use copied value i in lambda by Abseil Team <absl-team@google.com>
- b726b3102f8439b8480b6ff52fc3660162fa0bd9 Fix MSVC compiler warning on 32-bit platforms (GitHub iss... by Derek Mauro <dmauro@google.com>
  - a8a29e636c85bd7d82c0cbc824a1c2e498764337 Explicitly forbid to specify the template parameter to Wr... by Abseil Team <absl-team@google.com>
  - 566a1d903266fdbfdcf758401c356a0c6703422d Add missing license header to BUILD file. by Alex Strelnikov <strel@google.com>
  - ef1c0642cde0bbad62bbb30715256b232a4ab817 Fix BUILD file header. by Alex Strelnikov <strel@google.com>
  - b6e2cf00f808ee32b9eb7b3226af79d628742c20 Release GraphCycles microbenchmark. by Alex Strelnikov <strel@google.com>
  - f592d78f549e7a242bf2bb4858a26645a655eac3 Release Mutex microbenchmarks. by Alex Strelnikov <strel@google.com>

GitOrigin-RevId: 45b4111d940009bc7b3ebf621c9cb9293c60344a
Change-Id: I82885ae176952a764574c6d4616e312a977407b2
2018-05-23 11:44:15 -04:00
Abseil Team
3e671c7821 - f619bd3c1ab57586b7ed6010db09cdaf8a6882f9 Fix comment typos in strings/numbers.h . by Daniel Katz <katzdm@google.com>
- 1f7096d96dcf2a75ba13c210b709432165a05963 Internal namespace change by Gennadiy Rozental <rogeeff@google.com>
  - ac2911b3047a79a1fc8bbcdd3f3cb24b02ab0054 Fixing -Wunused-function warning in failure_signal_handler. by Abseil Team <absl-team@google.com>

GitOrigin-RevId: f619bd3c1ab57586b7ed6010db09cdaf8a6882f9
Change-Id: Ib09117eacfcb40ad25b216dbe8dcc9b8f1a0df6c
2018-05-22 10:59:15 -04:00
Abseil Team
59ae4d5a0e - a4e14440b870dbf7b36975eaebf783a70a7fcee4 Release string_view microbenchmarks. by Alex Strelnikov <strel@google.com>
- 7cec68e37e16fb4e266368236ae1de6419f6946a Increase Abseil's minimum supported cmake version to 3.1.... by Jon Cohen <cohenjon@google.com>
  - b977456175c8db380676bd56c44b32efbfc6f606 Fix a typo in the mutex.h comments. by Abseil Team <absl-team@google.com>
  - 3d30cec131d08b066bc1cf877e4f661e8ee0584c Release StrSplit microbenchmarks. by Alex Strelnikov <strel@google.com>
  - dddece6031feac1cca4689e623462f895f28d019 Release StrReplace microbenchmarks. by Alex Strelnikov <strel@google.com>
  - ac3b40e1694f74bdcf31b8d1152481e92edfd441 Internal Change by Abseil Team <absl-team@google.com>
  - d0e69ad6ddf0e59596a02ccab0253967f2909cdb Release StrCat microbenchmarks. by Alex Strelnikov <strel@google.com>
  - db4d471030fa320d2b9d2ce241610333f0eb7a50 Release StrJoin microbenchmarks. by Alex Strelnikov <strel@google.com>

GitOrigin-RevId: a4e14440b870dbf7b36975eaebf783a70a7fcee4
Change-Id: I3f12700aafce677049f4d1a6e09ea821963a8c9e
2018-05-18 11:41:24 -04:00
Abseil Team
30de20488b - 2db207ef16d548380e4f5cd1d583546d0b5f7d61 Run clang-format on all outbound Copybara-transformed code. by Daniel Katz <katzdm@google.com>
- f9f24ecdf159c232b68a72b3be4d66854489f13e Run clang-format on all outbound Copybara-transformed code. by Daniel Katz <katzdm@google.com>
  - 54b1d34753a2b6999bb65e0c05255bde7de8cfb5 Properly indent the PROPERTY FOLDER calls in AbseilHelper... by Jon Cohen <cohenjon@google.com>
  - 540ce6bab1a7c81a15d7244b9effcb1c1378911b Fix -Wgnu-zero-variadic-macro-arguments warning under cla... by Derek Mauro <dmauro@google.com>
  - cc82ee3f18e882bfcba911ebc1b8ea39983f319b Suppress MSVC unreachable code warning in optional.h by Abseil Team <absl-team@google.com>
  - c1176bed2a7a2d20e72db2601f1044c097d8078c Change signature of __mmap2() in direct_mmap.h to match _... by Greg Falcon <gfalcon@google.com>
  - 5c02fe2031997fe064bd189fecc593395f34fae8 Change released benchmarks back to cc_test targets. by Alex Strelnikov <strel@google.com>
  - 7a342ecf7a8c56276d28d94158291fe2d64b2543 Fix sanitizer example command. by Derek Mauro <dmauro@google.com>
  - 0c2c55fe01cd84ab885d9f4865d7672c423680d2 Remove redundant cast; string_view::find already returns ... by Jorg Brown <jorg@google.com>

GitOrigin-RevId: 2db207ef16d548380e4f5cd1d583546d0b5f7d61
Change-Id: I5b61d91c8c7b4754c839868fc73d612b31bf5c33
2018-05-17 12:20:21 -04:00
Abseil Team
04dd99d8c1 - abe587c2360b21f085b7d65a77d840015bc04cf6 Factor an internal interface into its own header, as it w... by Greg Falcon <gfalcon@google.com>
- 2201f1644336e64280dbd20207d8fbc3bfea2bf4 Internal change. by Abseil Team <absl-team@google.com>
  - 94e6b5b20d2cc754c99a18c575a4f1f3cd1f28d4 Rename no_throw_ctor to nothrow_ctor to match the standar... by Abseil Team <absl-team@google.com>
  - 86aa34d2129c4914c5133b7b619480aae786288e Update header files in debugging target by Tom Manshreck <shreck@google.com>
  - ed234519ced458724a7267b8fdf184eaae1c97c7 Remove CMAKE_CXX_WARNING_VLA from our c++ flags in the cm... by Jon Cohen <cohenjon@google.com>

GitOrigin-RevId: abe587c2360b21f085b7d65a77d840015bc04cf6
Change-Id: I92f9301c69419d3830c358b88984967185aa33f6
2018-05-15 11:00:30 -04:00
Abseil Team
add89fd0e4 - 6194c9b0d6dbdbeeb27b19d5c61562f985b25ff2 Removing support for NaCL in dynamic_annotations.h. by Abseil Team <absl-team@google.com>
- 6f89386971a21422c4cd9653e965c96d9f7a3573 Fix handling of VDSOs that are loaded lower then their li... by Abseil Team <absl-team@google.com>
  - f27a7269ab714c9c75fe4e15fa1bce8b12531a92 Check that __GLIBC__ is defined before checking for __GLI... by Derek Mauro <dmauro@google.com>

GitOrigin-RevId: 6194c9b0d6dbdbeeb27b19d5c61562f985b25ff2
Change-Id: I3eceb6f76bf2b25d55d1f5f77fba57af947da0cf
2018-05-14 13:15:39 -04:00
Abseil Team
dd9911a004 - da802ce3de569d5af0bfc5888c8a0d823548b544 Removes private method pointer() from optional and adds a... by Abseil Team <absl-team@google.com>
GitOrigin-RevId: da802ce3de569d5af0bfc5888c8a0d823548b544
Change-Id: Ic9c0a0771c90a5484b459655c8b25b36ffd8c3f0
2018-05-11 11:42:54 -04:00
Abseil Team
7454bdded7 - be60293bacf8d17861853a73c751b4a74534b049 Update header file for failure_signal_handler.h by Tom Manshreck <shreck@google.com>
- 83dbeb97cb3874932a4159f2f287c5b2cca7089b Fix for MSVC warning C4244 about "conversion from 'int' t... by Abseil Team <absl-team@google.com>

GitOrigin-RevId: be60293bacf8d17861853a73c751b4a74534b049
Change-Id: If8a91fa3edca47f349662cb214fde380c65802bb
2018-05-10 17:33:50 -04:00
Abseil Team
cd95e71df6 - e63f59e34d34d483f89e4e6a7fe80805d1332329 This CL replicates github.com/abseil/abseil-cpp/pull/117 ... by Abseil Team <absl-team@google.com>
- 8444789eefc1f20c0102041ee52ad841131dcf93 Import of CCTZ from Github. by Abseil Team <absl-team@google.com>
  - 847bf3389edff542cdfcc4fcfb5b1d7466a5d297 Suggest using MakeSpan rather than the explicit mutable r... by Abseil Team <absl-team@google.com>
  - b6f130c12a3b2e8ea14e848df523f3ca8d360d25 ABSL_ARRAYSIZE is now declared and documented more clearl... by Matt Armstrong <marmstrong@google.com>
  - 8243bbcd7398e0cc1fed405b3c7cecc54fe77145 Don't dereference the begin() iterator of an empty string. by Derek Mauro <dmauro@google.com>
  - be817477eb17964a0f4c2a943c8281763ee269b0 Revert rename THREAD_ANNOTATION_ATTRIBUTE__ by Abseil Team <absl-team@google.com>
  - 940d4657f63acd7ff61d986558b0a38fa545a1fe Don't create '".text"' section when '.text' was intended. by Abseil Team <absl-team@google.com>
  - f6680d634b66537acec18121fbdca7c9083877b1 Rename THREAD_ANNOTATION_ATTRIBUTE__ by Abseil Team <absl-team@google.com>

GitOrigin-RevId: e63f59e34d34d483f89e4e6a7fe80805d1332329
Change-Id: If6f2286d6cbfd7b822e83c6cc28fa3e752bb41a4
2018-05-09 17:08:36 -04:00
Abseil Team
f88b4e9cd8 - bd7f5fa7ad5b7f1371315d45e4e4863f2c2ad9f6 Remove unused includes from string_view.cc. by Greg Falcon <gfalcon@google.com>
- 692ef928a910fc42bf54b1683d589db4ef58686f Fix build on Mac. GitHub issue #120 reports failure_signa... by Derek Mauro <dmauro@google.com>
  - e5c7aded7ad19ef14c8c980b0bd0ab2ae8598bad Remove stray semicolon; by Abseil Team <absl-team@google.com>

GitOrigin-RevId: bd7f5fa7ad5b7f1371315d45e4e4863f2c2ad9f6
Change-Id: I80850e9bb5eb969fb3a9a79abfd8440258857984
2018-05-08 14:35:03 -04:00
Abseil Team
bd5a2bba8f - 45690246da1e36acde86c941b68aad2248b16ea7 Import of CCTZ from Github. by Abseil Team <absl-team@google.com>
- ff3cf0774f9903fb62f7012af24c0901286a1b80 Fix -Wunreachable-code-return warning (from clang 6.0) in by Derek Mauro <dmauro@google.com>
  - b41ca35e56f6137cf6672d16613a7edfd6107e27 Include port.h to drag in platform-specific configurations. by Abseil Team <absl-team@google.com>
  - 5d50b728937d245caedaa2208a97d52f55040134 Set the default symbolizer for Mutex deadlock detector re... by Derek Mauro <dmauro@google.com>

GitOrigin-RevId: 45690246da1e36acde86c941b68aad2248b16ea7
Change-Id: I2c6a87e9090657ff3fb456f3409bfdc24b8b765a
2018-05-07 14:24:31 -04:00
Abseil Team
26b789f9a5 - 07191b0f52301e1e4a790e236f7b7c2fd90561ae Disambiguates computed return type of absl::optional logi... by Abseil Team <absl-team@google.com>
- acd95f8ec4e6ec1587cb198c7f40af3c81094d92 Release container benchmarks. by Alex Strelnikov <strel@google.com>
  - 80f596b6b7c5e06453e778c16527d5a0e85f8413 Allow absl::base_internal::AtomicHook to have a default v... by Derek Mauro <dmauro@google.com>
  - 8402631546af8bcbd4acdf897d0cdfb805ad544a Release thread_identity benchmark. by Alex Strelnikov <strel@google.com>
  - 6dcb1e90fefb8556ce4654983d3a73c7585b4b99 Fix spelling error in variant.h by Abseil Team <absl-team@google.com>
  - faa8a81e1442018c0d400b09a595a5be55074715 Run tests from CMake.  The CI is currently Linux only, fo... by Jon Cohen <cohenjon@google.com>
  - 745ed6db574f931f2ec3a88e964fb03a5f22f816 Internal change. by Derek Mauro <dmauro@google.com>
  - 23facd7d1c5f43ac8181b016ee4acc5955f048c1 absl::variant exception safety test. by Xiaoyi Zhang <zhangxy@google.com>
  - c18e21e7cf8f6e83ae9d90e536e886409dd6cf68 Reinstate the syntax check on time-zone abbreviations now... by Abseil Team <absl-team@google.com>
  - da469f4314f0c820665a2b5b9477af9462b23e42 Import CCTZ changes to internal copy. by Shaindel Schwartz <shaindel@google.com>
  - 44ea35843517be03ab256b69449ccfea64352621 Import CCTZ changes to internal copy. by Abseil Team <absl-team@google.com>
  - 55d1105312687c6093950fac831c7540f49045b5 Import CCTZ changes to internal copy. by Greg Falcon <gfalcon@google.com>
  - 58d7965ad274406410b6d833213eca04d41c6867 Add zoneinfo as a data dependency to the //absl/time tests. by Shaindel Schwartz <shaindel@google.com>
  - 6acc50146f9ff29015bfaaa5bf9900691f839da5 Change benchmark target type from cc_test to cc_binary. by Alex Strelnikov <strel@google.com>
  - db3fbdae8f9f285a466f7a070326b1ce43b6a0dd Update WORKSPACE for C++ microbenchmarks and release algo... by Alex Strelnikov <strel@google.com>
  - 0869ae168255242af651853ed01719166d8cebf6 Update to Bazel version 0.13.0. by Abseil Team <absl-team@google.com>
  - e507dd53ab788964207fdf27d31b72a33c296fab Add missing include of cstdio by Abseil Team <absl-team@google.com>

GitOrigin-RevId: 07191b0f52301e1e4a790e236f7b7c2fd90561ae
Change-Id: I90994cf2b438fbec894724dcd9b90882281eef56
2018-05-04 13:30:42 -04:00
Abseil Team
9613678332 - 60c1f40a5e0bc33f93392ff6827528072d749a29 Move ExceptionSafetyTester from the absl:: namespace to t... by Abseil Team <absl-team@google.com>
- abd40a98f8ae746eb151e777ea8a8b5223d68a4b Splits the NoThrow flags into TypeSpec and AllocSpec flag... by Abseil Team <absl-team@google.com>
  - c16d0b5509b36679b384147b474135e7951afccf Change the abbreviation for the breakdowns of InfinitePas... by Abseil Team <absl-team@google.com>
  - 8ac104351764f23d666b52dce7536a34c05abf00 Use ABSL_CONST_INIT with std::atomic variables in static ... by Matt Armstrong <marmstrong@google.com>

GitOrigin-RevId: 60c1f40a5e0bc33f93392ff6827528072d749a29
Change-Id: I9d45a6ed30ed32ae57e9eff93f4205dbcd71feb2
2018-04-30 15:07:44 -04:00
Abseil Team
28f5b89070 - 81cdce434ff1bd8fa54c832a11dda59af46e79cc Adds a failure signal handler to Abseil. by Derek Mauro <dmauro@google.com>
- 40a973dd1b159e7455dd5fc06ac2d3f494d72c3e Remove test fixture requirement for ExceptionSafetyTester... by Abseil Team <absl-team@google.com>

GitOrigin-RevId: 81cdce434ff1bd8fa54c832a11dda59af46e79cc
Change-Id: Ia9fca98e38f229b68f7ec45600dee1bbd5dcff33
2018-04-26 11:05:43 -04:00
Abseil Team
ea0e750e52 - 2f6a3c92ce0f64e0923ad326ec5d07eae03061fd Add C++14's std::exchange to absl/utility/utility.h. by Abseil Team <absl-team@google.com>
- 9f2c9adbf998dd9062c8cc3da1076bde87081d71 Fix comment typo. by Greg Falcon <gfalcon@google.com>

GitOrigin-RevId: 2f6a3c92ce0f64e0923ad326ec5d07eae03061fd
Change-Id: I7b9db94ad315092baefe56b02f250acadafbe312
2018-04-25 13:44:41 -04:00
Abseil Team
19b3c95727 - 3a9532fb2d6ae45c3cba44c9bb0dbdfc1558b7d3 Fix the description of Span::subspan(). by Abseil Team <absl-team@google.com>
- bae1a1c21924bd31fa7315eff05ea6158d9e7947 Port the symbolizer to Windows. by Derek Mauro <dmauro@google.com>
  - 2253c04c1a4f39d9581772f1dc4491878aa3831f Support absl::Hex() and absl::Dec() as arguments to absl:... by Jorg Brown <jorg@google.com>
  - 552c3ac259e9c254fda9244755487f3423d2fe4b Internal change by Jorg Brown <jorg@google.com>

GitOrigin-RevId: 3a9532fb2d6ae45c3cba44c9bb0dbdfc1558b7d3
Change-Id: I448133c9bb6d837037c12b45a9a16a7945049453
2018-04-24 10:09:46 -04:00
Abseil Team
af7882601a - fd5f3d7077270ffc5ea74cdb9e18bbae3b9b46aa Fix typo optional -> variant by Abseil Team <absl-team@google.com>
- 9136c06dfa8dbfdde0a427ad3509e34763d607a6 Fix string_view_test and str_cat_test build under MSVC de... by Derek Mauro <dmauro@google.com>
  - a463820f9441888f4368aa87328599e3209f9b07 Removes constexpr optional<T>::operator->(). This was don... by Abseil Team <absl-team@google.com>
  - 3bf78a7f126daafff329f7815d507422f1ca378d Remove dependencies on external CCTZ project. by Shaindel Schwartz <shaindel@google.com>
  - a4ae574a11b1ddf6e88459af3d638cf79aea7ecd Internal change by Jon Cohen <cohenjon@google.com>

GitOrigin-RevId: fd5f3d7077270ffc5ea74cdb9e18bbae3b9b46aa
Change-Id: I6ab8ab99863716fe9b2745a12ef285f7a6da6d1e
2018-04-23 12:57:34 -04:00
Jonathan Cohen
94ce52d46c
Merge pull request #101 from waywardmonkeys/fix-typos
Fix some typos.
2018-04-20 17:02:04 -04:00
Abseil Team
faf0a1b903 - 551e205ef49682a1cb7e6e0cda46957fbcf88edd Release absl::variant. by Xiaoyi Zhang <zhangxy@google.com>
- 01c52f640594d073c6e54c47e7853b25522cf085 Update comments in absl::variant (and minor changes to ab... by Tom Manshreck <shreck@google.com>
  - 064465e1e6b158abd8c38fd1942b4fc464b57d6a Documentation change. by Abseil Team <absl-team@google.com>
  - 58df2c8a27e80c9ea21d87c1acee8019246377c9 Relocates SetCountdown and UnsetCountdown to the exceptio... by Abseil Team <absl-team@google.com>
  - fd9d248d0948d472f2543f7fd9c0ae4a1cd60d01 Clarify thread_annotation.h documentation around local va... by Abseil Team <absl-team@google.com>
  - 0d0abaf7f0945ac5f2c5f49e78afe1b326d5aca0 Typo fix in comments. by Abseil Team <absl-team@google.com>
  - 67286d587cbd07508a81e5b8147c245a5b5538b4 Internal change. by Xiaoyi Zhang <zhangxy@google.com>

GitOrigin-RevId: 551e205ef49682a1cb7e6e0cda46957fbcf88edd
Change-Id: I1a343b080187293cb5f892a309618b5712e7aa14
2018-04-20 12:30:23 -04:00
Bruce Mitchener
08760addbe Fix some typos. 2018-04-20 01:11:44 +07:00
Abseil Team
5b53540166 - ed0ba496fe01eb8edfa86beade8a37768e7c12ef Updates the API for Exception Safety testing to use build... by Abseil Team <absl-team@google.com>
- c4b7a4e517c9404932c45f2f9f92eb7dc694e45d Internal change by Abseil Team <absl-team@google.com>
  - 76c78ed9385f65d881511645446e0bb8ababf6ec Add missing ABSL_PREDICT_FALSE to one of FixedArray::at()... by Abseil Team <absl-team@google.com>
  - 1204fb1c46f007dd9dfb7d9abf3e96c58835d193 Internal change. by Greg Falcon <gfalcon@google.com>
  - f1f47c98a026bc5e425ae83ff4a2eb391bbd3d9b Add internal-only functionality to examine the stack, to ... by Derek Mauro <dmauro@google.com>
  - 30d63097cd268d912f917526f6511005580465c4 fix typo by Abseil Team <absl-team@google.com>
  - 942d7efa6cf54cd248ca57dcaf3c245188b52a76 Remove unnecessary semicolons from comment examples. by Abseil Team <absl-team@google.com>
  - 7db0669cf23a06d934d3ed8c76aee4e4e23b7e04 Remove malloc_hook and malloc_extension from our internal... by Greg Falcon <gfalcon@google.com>
  - 0190f1063d101b1ded355019df2e1d325931f6c7 Make the maximum length of a string view equal difference... by Abseil Team <absl-team@google.com>
  - c8ae37cbce29449b02115a0ebd435ddc3d7ab062 Add namespace qualification. by Shaindel Schwartz <shaindel@google.com>
  - ff70afe2e6e3dd39f51ce9829e3e1f18231bf4d7 Fix internal/direct_mmap.h for non-linux builds. by Greg Falcon <gfalcon@google.com>

GitOrigin-RevId: ed0ba496fe01eb8edfa86beade8a37768e7c12ef
Change-Id: I7595ee3480d1d6724fd3797c15ba9d9be0d17e62
2018-04-19 10:19:32 -04:00
Abseil Team
a7e522daf1 - a0673e81da7ee7e322283e518331a4cdaeca837b Internal change by Abseil Team <absl-team@google.com>
- 537e863510a423968c2d319263dd1c100695a2e9 Add internal-only functionality to examine the stack, to ... by Derek Mauro <dmauro@google.com>
  - 1ded12406d8b8fd7be910c8dfe8c2a8edf66136e Explicitly suppress the default move constructor and assi... by Derek Mauro <dmauro@google.com>
  - 347d38447ebc38e5d33fec6b67988880eb3cd249 Move implementation detail do_mmap64 to a new file. by Greg Falcon <gfalcon@google.com>

GitOrigin-RevId: a0673e81da7ee7e322283e518331a4cdaeca837b
Change-Id: I5a347d34d5173082b3a78eb53432481b32c94b69
2018-04-11 13:39:23 -04:00
Abseil Team
475d64f2de - edb38790ce245c95715e5c50dfafb0db79d2cdc4 Add quickstart and build sections to readme. by Alex Strelnikov <strel@google.com>
- 508b3da428bc79cab730aa57109b352a58820573 Fix accidentally qualifying std int types with absl:: in ... by Alex Strelnikov <strel@google.com>

GitOrigin-RevId: edb38790ce245c95715e5c50dfafb0db79d2cdc4
Change-Id: Idf72547f30c72fbb4153d5eae6b59b499ec42955
2018-04-10 10:27:42 -04:00
Abseil Team
3f622d6c59 - 51e2d3690b9065da84dbbf71fb52f87149670719 Fix ABSL_HAVE_THREAD_LOCAL on Apple 32-bit iOS simulato... by Xiaoyi Zhang <zhangxy@google.com>
- d38332e4d6b51542a42ff49fb0fc4f4a756fdd05 Internal change. by Abseil Team <absl-team@google.com>

GitOrigin-RevId: 51e2d3690b9065da84dbbf71fb52f87149670719
Change-Id: I9403fc6308a6c731f1c8e2cd70fdb382fafd960e
2018-04-09 12:39:17 -04:00
Abseil Team
abd0824ba6 - 985074b3d2f08388125a0004a4984f1d64fb0fcf In the internal implementation, avoid conflicting definit... by Abseil Team <absl-team@google.com>
GitOrigin-RevId: 985074b3d2f08388125a0004a4984f1d64fb0fcf
Change-Id: I1a564ac086a36bb52d36aeb5f500c7099d2ee032
2018-04-04 10:42:31 -04:00
Abseil Team
0e5c3e8f16 - 7f2f6ad0cc3488cb57dfc5d1050c38862a2e42ef Only check for a specific message in the bad_cast tests... by Matt Calabrese <calabrese@google.com>
- 6a8e56df0d6820c48ee8f39146c7e1fba8a394e7 This prevents a uint32_t value from potentially being log... by Matt Calabrese <calabrese@google.com>
  - 00a77f5569086654837c03d06206349642364395 Add doc-comments to `absl::LogSeverity` and its helpers. by Abseil Team <absl-team@google.com>
  - bf877655e420ebff42bede238523d360b53a80fa Enforce the Abseil-wide assumption that CHAR_BIT == 8. by Mark Barolak <mbar@google.com>

GitOrigin-RevId: 7f2f6ad0cc3488cb57dfc5d1050c38862a2e42ef
Change-Id: Id210255c9301442b0379dca147a806c85452f772
2018-04-03 14:35:40 -04:00
Abseil Team
7b3c38a062 - f1b5ee8ff389dead0ba5671ad564a46aa1e8d216 Using %d with a uint32_t appears to work on some compiler... by Abseil Team <absl-team@google.com>
- f8fabe263281d0f57692b1e72014c34dc8a85340 Internal change. by Abseil Team <absl-team@google.com>

GitOrigin-RevId: f1b5ee8ff389dead0ba5671ad564a46aa1e8d216
Change-Id: I207dfc6ba2cd55653652e6bfc9d3699a9e114c1d
2018-04-02 09:36:44 -04:00
Abseil Team
70b5fa948d Changes imported from Abseil "staging" branch:
- f2c4c517f14afa7a3fac6b35588381462f02dec3 Rollback release of algorithm benchmark. by Alex Strelnikov <strel@google.com>
  - ec8a9569ac36d58a4fff2f9fc851e5a9474d274a Change AllocInspector to ConstructorTracker by Jon Cohen <cohenjon@google.com>
  - 6f94f3d65a29b11c692948d23c0fc530f015cd53 Update WORKSPACE for C++ microbenchmarks and release algo... by Alex Strelnikov <strel@google.com>
  - 79187dd7cec821e47cdd751db71bb23be2b8cef7 Define copy assignment operator for ThrowingAllocator. by Xiaoyi Zhang <zhangxy@google.com>
  - 8bf5e1048dd7788f4bce60376f5c3992f8525d88 Fix incorrect format string used in str_cat_test.cc code,... by Jorg Brown <jorg@google.com>
  - 19c51194e6638f05cbb364c6684f14dc7ed1a323 Fix symbolize_test under sanitizers. by Derek Mauro <dmauro@google.com>
  - d68119cfb845a9d460fc3fd4aae1d2ea7d79ee21 Internal change. by Derek Mauro <dmauro@google.com>
  - 4ca54d336c7a18050c95c6c1a859f2a0530e1cde Internal change. by Shaindel Schwartz <shaindel@google.com>

GitOrigin-RevId: f2c4c517f14afa7a3fac6b35588381462f02dec3
Change-Id: If61a65d65f03b26d6776710040780ddd1c52c4de
2018-03-27 10:30:13 -04:00
Abseil Team
4e2e6c5c00 Changes imported from Abseil "staging" branch:
- 1320147f7597a9490562d439ecea46faa1793a24 Support Hex formatting of pointers without forcing a cast... by Jorg Brown <jorg@google.com>
  - 13c793d6e14a52063c2d4ee327b6c976631b690e Add support for native WebAssembly llvm backend. by Abseil Team <absl-team@google.com>

GitOrigin-RevId: 1320147f7597a9490562d439ecea46faa1793a24
Change-Id: Ibd4dbf288903ab45387932e5b11a28f5accdf166
2018-03-21 10:51:50 -04:00
Abseil Team
506fb4b56a Changes imported from Abseil "staging" branch:
- deb12f2a67aafb3568bf83109b6814e69a70473d Add tests to check symbolization with linker flag: -z,kee... by Abseil Team <absl-team@google.com>

GitOrigin-RevId: deb12f2a67aafb3568bf83109b6814e69a70473d
Change-Id: I4139e27395610734ccd21fa80b70b03deff786f8
2018-03-20 15:06:07 -04:00
Abseil Team
3837bd9aae Changes imported from Abseil "staging" branch:
- 7349efb2d18db3a019034f66502b67f7461c15ae Reword the noexcept specification for InlinedVector's def... by Jon Cohen <cohenjon@google.com>
  - f3576b18d039a0c8b533f05ac496fa8d7ff3b207 Remove an unneeded comment in call_once.h by Jon Cohen <cohenjon@google.com>

GitOrigin-RevId: 7349efb2d18db3a019034f66502b67f7461c15ae
Change-Id: I398888e6a82ccd69e23ffc0af9eb198d25e57e02
2018-03-19 15:38:35 -04:00
Abseil Team
eed36bfba0 Changes imported from Abseil "staging" branch:
- 95e20a66bfa6104937ec92722b04a9c0ca0443dc Make ThrowingBool convertible to bool. by Xiaoyi Zhang <zhangxy@google.com>

GitOrigin-RevId: 95e20a66bfa6104937ec92722b04a9c0ca0443dc
Change-Id: I7a1dcb53b0764b24482ee1886276b267c8cb83c2
2018-03-16 10:00:07 -04:00
Abseil Team
2661ed4998 Changes imported from Abseil "staging" branch:
- 586ce24e521973fceb43fd8ea7c9f54eae938762 Remove comments that reference internal code. by Abseil Team <absl-team@google.com>

GitOrigin-RevId: 586ce24e521973fceb43fd8ea7c9f54eae938762
Change-Id: Ibab556ce20d3cb0022483cb1f027af67e26706f6
2018-03-13 14:59:16 -04:00
Abseil Team
23ef7e1127 Changes imported from Abseil "staging" branch:
- 50eadebdcad56fe50e8070b94497568c74175b28 Correct an example for StrSplit in the comments and chang... by Abseil Team <absl-team@google.com>

GitOrigin-RevId: 50eadebdcad56fe50e8070b94497568c74175b28
Change-Id: I2b12ce54e7d9db05ee15904801498f59e20e5d23
2018-03-12 12:43:06 -04:00