--
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
--
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
--
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
--
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
--
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
--
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
--
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