As part of this update, GoogleTest is now using the Abseil flags
implementation, and the flags usage_test needs to be modified to pass.
If building with bazel and --define=absl=1 to force GoogleTest to use
Abseil, a WORKSPACE dependency on the abseil branch of the RE2 project
is now required.
PiperOrigin-RevId: 455512245
Change-Id: I2025df0c86006fac97a80713524c9d0aae8b358e
Using GoogleTest at 0320f517fd920866d918e564105d68fd4362040a breaks Windows DLLs.
PiperOrigin-RevId: 455452411
Change-Id: Iff89a01351c01487786a22701efedf25860fadf9
As part of this update, GoogleTest is now using the Abseil flags
implementation, and the flags usage_test needs to be modified to pass.
If building with bazel and --define=absl=1 to force GoogleTest to use
Abseil, a WORKSPACE dependency on the abseil branch of the RE2 project
is now required.
PiperOrigin-RevId: 455257879
Change-Id: Id1548ce7d6a95b747b72a4f255d31ced98e36006
--
ed829ac612f090375427c3488827c6e74deb2e3f by Derek Mauro <dmauro@google.com>:
Update latest GCC/Clang Linux tests to Bazel 5.0.0 and CMake 3.22.2
PiperOrigin-RevId: 429369775
--
76952303c4d942288c4e7657ffb5893cec54a132 by Martijn Vels <mvels@google.com>:
Optimize Cord::ChunkIterator now that CordRepConcat is removed
PiperOrigin-RevId: 429321455
--
dcd0d287793649aba9b98268c5783e449a34749f by Martijn Vels <mvels@google.com>:
Add IsDataEdge() and DataEdgeValue() helper functions.
This moves repetitive logic accessing data edges into its own header, and more strongly defines the notion of what a data edge is, enforcing the internal invariants. This will also be incorporated in optimized Cord iteration logic once CordRepConcat is totally removed from the Cord code.
PiperOrigin-RevId: 429307248
--
6a0903962155988085bf8656743fda9c4cdcba6c by Abseil Team <absl-team@google.com>:
Make it clear that the probability function given for the zipf distribution is unnormalized, i.e., sum(p(x) for x = 0..k) != 100%.
Quoting Section 7 of the paper cited in the comments, where this formula comes from (emphasis mine): "We will consider the two parameter generalization as defined in Dagpunar [1988] with the *unnormalized* probability function ..."
PiperOrigin-RevId: 429068258
--
3899ff6d444ba755148bc521a6ee031d9e9d4485 by Abseil Team <absl-team@google.com>:
Internal Changes
PiperOrigin-RevId: 428644856
--
319de702d2b537cbb76c4c71277ae89b349b162e by Benjamin Barenblat <bbaren@google.com>:
Support symbolization on PA-RISC
Null out supervisor bits in PA-RISC addresses before symbolizing, and
handle function descriptor tables correctly.
Change symbolize_test.cc to use 32-bit aligned addresses, allowing that
test to pass on PA-RISC.
PiperOrigin-RevId: 428590564
GitOrigin-RevId: ed829ac612f090375427c3488827c6e74deb2e3f
Change-Id: Ie01ff3b9365fd45e5a55f858038552679f3180d3
--
121db1a08321eaa3006726cc32b459cf17880e35 by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 425707805
--
0dec484389bbb75aae0a412146e3564bf833a739 by Derek Mauro <dmauro@google.com>:
macOS CI: Avoid depending on external sites like GitHub by prepopulating
dependencies and setting --distdir
Our Linux CI does this, but for some reason was never enabled on macOS
PiperOrigin-RevId: 425668638
GitOrigin-RevId: 121db1a08321eaa3006726cc32b459cf17880e35
Change-Id: Id51645df90b6a0808dd5b18eb636a10f798e24ea
--
ef2bdebfdff0a93d3af6248d709d42a47fe2e7b4 by Derek Mauro <dmauro@google.com>:
Compile with -DGTEST_REMOVE_LEGACY_TEST_CASEAPI_ in Bazel CI builds to
prevent uses of the legacy TestCase API from sneaking in
PiperOrigin-RevId: 424882792
--
4cf19d7b4dd855685deb0d4d3170e4db9f6f789b by Abseil Team <absl-team@google.com>:
Fix typo in comment.
PiperOrigin-RevId: 424745867
GitOrigin-RevId: ef2bdebfdff0a93d3af6248d709d42a47fe2e7b4
Change-Id: I50ad9b4cf3fa17831aa6521c58d81b0ce8ec0c47
--
0db7f4046f9b59c0f8c3df2f0eb7fd88fc328439 by Abseil Team <absl-team@google.com>:
Revise documentation of bit_cast:
* Removes inappropriate examples (round-tripping pointers, serialization), for which reinterpret_cast is more appropriate.
* Removes mention of "bit representation", which is not an explicit notion in C++. The best we get is "byte representation".
* Removes a circular defition of "bitcast" as itself, and instead explains what it does.
* Removes the mathism "for some values of", which is probably not totally accessible to a general audience, and in any case needless verbiage.
* Fixes comments in the example.
* Replaces some colloquialisms with simpler, more direct language.
PiperOrigin-RevId: 421791786
--
e04e64df55d93c1b9a09c0483b97cc4d8763260d by Derek Mauro <dmauro@google.com>:
Update Docker image to use GCC 11.2, Clang 14 (prerelease),
CMake 3.22.1, and Bazel 4.2.2
PiperOrigin-RevId: 421658559
--
d002bb3dc5cd1fc5b4cbd79a450efc894caa567c by Chris Kennelly <ckennelly@google.com>:
Add a small microbenchmark for absl::bit_width.
PiperOrigin-RevId: 421604852
--
131b057d1b76ecd7170421b48d661bb958ff676b by Evan Brown <ezb@google.com>:
Adds a disabled test for EBO in nested `CompressedTuple`s.
PiperOrigin-RevId: 421413134
--
e34c7876d3a1212d90c73c030ccae6169b682d43 by Jorg Brown <jorg@google.com>:
Show users a better error message if they pass a pointer to absl::Uniform.
PiperOrigin-RevId: 421090472
GitOrigin-RevId: 0db7f4046f9b59c0f8c3df2f0eb7fd88fc328439
Change-Id: I5a004e8d17e974fa4897a09d1466ae8fc65dfdbb
Abseil's own tests now are disabled if either BUILD_TESTING
or a new option called ABSL_BUILD_TESTING is false.
Additionally, Abseil's CMakeLists.txt no longer re-declares
the BUILD_TESTING option with a value of false.
Abseil had been using just the BUILD_TESTING option, since
the fix for #901. Because setting BUILD_TESTING false still
works to disable Abseil's tests, this change preserves the
behavior asked for in that issue.
Previous to that, Abseil had a project specific flag for
this, as is the typical idiom used in other projects.
The issue with BUILD_TESTING is that it is an all-or-nothing
policy. When Abseil is incorporated as a subproject, the
encompasing project has no convenient way to enable its own
tests while disabling Abseil's.
Fixes#1056
--
f6d1ddef9a38e3fb8492181bf1a7a006b7f2145d by Abseil Team <absl-team@google.com>:
Update the implementation of `operator<<` in Status to use `ToString(StatusToStringMode::kWithEverything)`
PiperOrigin-RevId: 380740880
--
5f13b20c4b85c1c6e94b69c74f80f8f3f3941747 by Derek Mauro <dmauro@google.com>:
Update Docker images
This also disables the Clang/libstdc++/C++20 combo as it seems that
the latest libstdc++ is relying on C++20 Concepts to a greater extent
than Clang supports.
PiperOrigin-RevId: 380714572
--
f8f4dee12cfd02559bf741ad6b06f10ac0c48c73 by Abseil Team <absl-team@google.com>:
Fix shadow member warnings in randen_hwaes.cc
These happen when attempting to use abseil in github.com/google/benchmark. The project sets -Wshadow.
The warning is due to the name of the Vector128 ctor parameter. Using v instead, which I see used elsewhere (e.g. line 290)
PiperOrigin-RevId: 380704197
--
2e1a09e9cb1239485715acb4828d9b4799fcfbb5 by Tom Manshreck <shreck@google.com>:
Add more precise documentation for AbslParseFlag declarations in the Time API
PiperOrigin-RevId: 380649107
--
153e5f7a960c03e4161c03737a0ff18ba377ff73 by Evan Brown <ezb@google.com>:
Make the number of control bytes a constant.
We use a constexpr function because we need to support C++11, which doesn't have inline variables.
The motivation is to avoid future bugs where the number changes and we forget to update all the places it's used.
This CL should be a no-op.
PiperOrigin-RevId: 380253975
GitOrigin-RevId: f6d1ddef9a38e3fb8492181bf1a7a006b7f2145d
Change-Id: Id584138f898bf3ebef95fabcf48e41098c4db954
--
ca5ce10fa5286f2bfb51890a37b547308b8d6d93 by Benjamin Barenblat <bbaren@google.com>:
Skip floating-point edge-case tests when using an x87
32-bit Intel CPUs use 80-bit floats for intermediate values, which can
change the results of floating point computations from what we normally
expect. Identify tests that are sensitive to the x87, and skip them when
we’re on 32-bit Intel.
PiperOrigin-RevId: 378722613
--
e5798bb017854e7f3b6d8721fed7dd553642b83d by Abseil Team <absl-team@google.com>:
Build without -Wl,-no-undefined.
PiperOrigin-RevId: 378690619
--
3587685a2c932405e401546ec383abcfbf8495c8 by Derek Mauro <dmauro@google.com>:
Update CCTZ BUILD file.
PiperOrigin-RevId: 378688996
--
06c7841b2bf8851410b716823b7ff9b42d86085e by Derek Mauro <dmauro@google.com>:
Change the CMake install test to use installed version of GoogleTest
PiperOrigin-RevId: 378537383
--
eaa8122a7062c56bed80e806344cca0c8325bf6f by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 378525523
--
381f505cce894b8eec031a541855650c4aa46e64 by Abseil Team <absl-team@google.com>:
Mark btree_container::clear() with the ABSL_ATTRIBUTE_REINITIALIZES attribute.
This prevents false positives in the clang-tidy check bugprone-use-after-move;
it allows clear() to be called on a moved-from btree_container without any
warnings, and the btree_container will thereafter be regarded as initialized again.
PiperOrigin-RevId: 378472690
GitOrigin-RevId: ca5ce10fa5286f2bfb51890a37b547308b8d6d93
Change-Id: I4267246f418538c5baacb562d1a40213fb13f246
--
72ce5b636488f17753d110ec18f57132d6180db3 by Derek Mauro <dmauro@google.com>:
Update GoogleTest version used by Abseil
PiperOrigin-RevId: 378296419
--
1eaa36f65315a1cb95c95dfee0bc31307d280d18 by Abseil Team <absl-team@google.com>:
Define unary + operators for absl::int128 and absl::uint128.
These are rarely used but apparently missing.
PiperOrigin-RevId: 377975179
--
1a029d6ff8f9e21ddf0b89949be04c0a56661359 by Abseil Team <absl-team@google.com>:
Remove gratuitous reinterpret_cast.
PiperOrigin-RevId: 377894806
GitOrigin-RevId: 72ce5b636488f17753d110ec18f57132d6180db3
Change-Id: I8a06f69b3489c9aef8260fd271bde2a55f01807f
--
d74f30ef0da7139c30a24eb6c1776bc0c257e642 by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 375779441
--
25e33cde30d78dbafcb81ee3ce77c3d70c74db5a by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 375520720
--
46857d17d4dbc6fbd13a27dd82e14ec814dd117a by Samuel Benzaquen <sbenza@google.com>:
Add an explicit template parameter barrier to absl::HashOf.
PiperOrigin-RevId: 375103300
--
cf2bf52b9a425b0360ed1f46778f0ef1326a3658 by Abseil Team <absl-team@google.com>:
Improve string_view API compliance with C++17 std::basic_string_view.
This adds missing overloads, default values, and constexpr specifiers.
PiperOrigin-RevId: 374885658
--
41e55166dc5bd3ed7bce567c400781585d55e1ce by Derek Mauro <dmauro@google.com>:
Update CI to GCC 11.1, Bazel 4.0.0, CMake 3.20.2, and
LLVM git:7bcc0a1e399d461af7ec013ff33bc330a2de6641
PiperOrigin-RevId: 374858288
GitOrigin-RevId: d74f30ef0da7139c30a24eb6c1776bc0c257e642
Change-Id: I657c815c83522b030495ff54ca327e7012ed151e
--
30af50146f07d7afdb196abf235f44ec44ea6409 by Derek Mauro <dmauro@google.com>:
Update Abseil dependency versions
PiperOrigin-RevId: 374415690
--
6a241e9ea8ee201789bb66aadf9e1ca9cc23c5dc by Derek Mauro <dmauro@google.com>:
Fix the install test project, which is doing a mixed-mode build.
This manifests in failure with GCC 11, which defaults to C++17
Also explicitly reference python3 in the test script.
python2 is being removed by some Linux distros.
PiperOrigin-RevId: 374278107
--
42f85122407e799183880e0b2e2a71f6d35ee003 by Evan Brown <ezb@google.com>:
Use `capacity + Group::kWidth` control bytes instead of `capacity + Group::kWidth + 1`.
We don't use the extra byte - we only need the first `capacity` ones that are valid, the one sentinel byte and then `Group::kWidth - 1` cloned control bytes. For example, in `EmptyGroup()`, where capacity is 0, we use `Group::kWidth` control bytes.
We need to update set_ctrl() to only mirror `Group::kWidth - 1` bytes instead of `Group::kWidth` bytes.
Note: this doesn't actually save memory unless `alignof(value_type)` is one.
Also add/update related comments.
PiperOrigin-RevId: 374198589
--
5dcd09b2221bf23add583541769b476dac54e112 by Evan Brown <ezb@google.com>:
Improve b-tree value_comp() support.
- Don't expose internal adapted comparator functionality.
- Support value_comp() for maps using function pointer comparators.
- For maps, make value_compare's constructor and the member comparator be protected - [reference](https://en.cppreference.com/w/cpp/container/map/value_compare).
PiperOrigin-RevId: 373832649
--
d75819786ff5a06e1ed0c5c1e80b3b95ac49c83b by Evan Brown <ezb@google.com>:
Don't export adapted comparator functionality in key_comp().
PiperOrigin-RevId: 373651039
GitOrigin-RevId: 30af50146f07d7afdb196abf235f44ec44ea6409
Change-Id: I260480b0923cefeba81c543e2b7c34cacaa7d7c7
--
8e75347c10d85112296811be6ef35761744ad9bc by Derek Mauro <dmauro@google.com>:
Big update to LTS release process
* Add create_lts.py script to to the LTS modification
This is simpler than copybara since very few changes are needed
* Use the default installation paths instead of a versioned path.
If a versioned path is needed, this is easy to change on the commandline.
* Make the integration test use the LTS transformed version
* Test both static and dynamic linking (fixes pkg-config dynamic linking)
PiperOrigin-RevId: 363566934
--
e00e971a2de3138861f5e1900201c9cc7788f714 by Laramie Leavitt <lar@google.com>:
Add a non-compile test to absl::BitGenRef for temporaries.
PiperOrigin-RevId: 363437284
--
3685644ec115d99789de32aceb76c32a00756fea by Derek Mauro <dmauro@google.com>:
Make OSS code consistent with internal code by using the forward
declaration of absl::Status that contains ABSL_MUST_USE_RESULT.
PiperOrigin-RevId: 363426906
--
b85fec142c3aa3f632fa985f9f8f73a253819723 by Evan Brown <ezb@google.com>:
Move raw_hash_set::infoz_ into raw_hash_set::settings_. This reduces the size of raw_hash_sets by alignof(size_t) bytes when hashtablez is disabled.
PiperOrigin-RevId: 363034264
--
c6fde3b17e5845191eb8b2bfc1760c8bfb9573ff by Mark Barolak <mbar@google.com>:
Internal change
PiperOrigin-RevId: 362990378
--
81713cf964905b43d1cbe32ce5fed97539029625 by Abseil Team <absl-team@google.com>:
Fix typo in comment (execeptions -> exceptions).
PiperOrigin-RevId: 362946191
--
3ee92ca470feca44da417b03ee45a915c6eb5155 by Abseil Team <absl-team@google.com>:
Add absl::FindAndReportLeaks and routes it to the corresponding
__lsan_do_recoverable_leak_check.
PiperOrigin-RevId: 362622199
--
b95b7194b20e02c20d72289fbc79a0d35b82e256 by Abseil Team <absl-team@google.com>:
Add `kWithEverything` to StatusToStringMode
PiperOrigin-RevId: 362595218
--
0a960d96a0014eab7e1c55b479269450ed8e98d7 by Abseil Team <absl-team@google.com>:
Accept e.g. ".__uniq" as a valid clone name. Further, bring the implementation
on par with libiberty's demangler grammar.
Clang introduced option -funique-internal-linkage-names that adds the suffix
".__uniq.[0-9]+" to internal linkage functions to give them a globally unique
identifier. The suffix was designed to work with existing demanglers which do
recognize a "_" along with the alphanumeric string. This change enhances the
demangler to allow "_" with the alphanumeric string.
Please refer to libiberty's cp-demangle.c where function d_clone_suffix
implements the demangling of clone suffixes :
1. '_' is accepted as a valid character with the alphanumeric sequence.
2. The alphanumberic sequence is optional.
3. The digit sequence is optional.
PiperOrigin-RevId: 362557420
--
2ac5ea212c150afd2f58025a5cab8c45d16949c6 by Abseil Team <absl-team@google.com>:
Change variable name 'slots' to 'slot_count' to avoid name-clash with Qt builds.
PiperOrigin-RevId: 362556289
--
934f0f409c9c548716a46363d6e243406fad4028 by Mark Barolak <mbar@google.com>:
Clarify the comment on ABSL_CACHELINE_SIZE to indicate that the macro definition itself shouldn't change, but rather that call sites should change when possible.
This addresses the request for improved documentation in https://github.com/abseil/abseil-cpp/pull/842.
PiperOrigin-RevId: 362354288
GitOrigin-RevId: 8e75347c10d85112296811be6ef35761744ad9bc
Change-Id: I33ec8561d8d645c3353e9d2dd447501d0e1825a7
--
4ceae78ecef025a331985958bba12ce12d4d0a68 by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 358888936
--
48f69b0b46e2041bb321e8af7374d7e0b45efc25 by Derek Mauro <dmauro@google.com>:
Use the standard CTest mechanism BUILD_TESTING for enabling/disabling tests
in CMake
Fixes#901
PiperOrigin-RevId: 358822190
GitOrigin-RevId: 4ceae78ecef025a331985958bba12ce12d4d0a68
Change-Id: Ib1ca69a42355f2a4cd4c7f5a47184c4fd8441f35
--
0e3e8be75b3ab243991c9b28a27623d86e4511e6 by Abseil Team <absl-team@google.com>:
Add constructor overloads with signature (Mutex*, const Condition&) to MutexLock, ReaderMutexLock, WriterMutexLock, ReleasableMutexLock, MaybeMutexLock.
These overloads call Mutex::LockWhen, Mutex::ReaderLockWhen, Mutex::WriterLockWhen.
Using the guard classes with these new constructors replaces both manual LockWhen/Unlock sequences and the less-efficient, but popular current pattern of "absl::MutexLock lock(&mu); mu.Await(cond);".
PiperOrigin-RevId: 339480213
--
ff999bc08360f5bd95557147c97b0e7b200fe3a8 by Jorg Brown <jorg@google.com>:
ConvertibleToStringView wastes a lot of cycles initializing members just to reset them immediately after. Only initialize the string storage when needed. This makes StrSplit() 0-30% faster depending on the use case.
PiperOrigin-RevId: 339479046
--
0a773bfb8bc141433a41388731357001fdb34881 by Derek Mauro <dmauro@google.com>:
Remove the compiler upgrade fiasco inducing -Weverything -Werror.
Switch to a curated set of warnings that may be expanded in the future.
PiperOrigin-RevId: 339472677
--
eab54e3e11b126283d33f64c914b200038d215a4 by Abseil Team <absl-team@google.com>:
Change execute permission to match presence of the shebang
remove execute permission for cmake_common.sh
add execute permission for conanfile.py
PiperOrigin-RevId: 339453550
--
7f9726fb605ed20f17f3e221dbce0df03d6904c6 by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 339385761
--
f3210dbee3e8a719cf31706963721722203f90e0 by Derek Mauro <dmauro@google.com>:
Switch clang compiler detection to use to the Bazel supported mechanism
When Abseil launched, we relied on the compiler string "llvm",
which we manually set when we used the automatic crosstool generation
by using the environment variable BAZEL_COMPILER. Today, Bazel detects
clang and automatically sets the compiler string to "clang".
Fixes#732
PiperOrigin-RevId: 339360688
--
413211f59e5e671bf5774efa63ab4df185c74248 by Abseil Team <absl-team@google.com>:
Minor comment clarifications and cosmetic tweaks.
PiperOrigin-RevId: 339344301
GitOrigin-RevId: 0e3e8be75b3ab243991c9b28a27623d86e4511e6
Change-Id: Ia5b7224cd3d274c79ec7f5514fef63014f458f0f
--
e5b45b15c19e85aaa33430ac2bd45fcc2e52dad5 by Greg Falcon <gfalcon@google.com>:
Add extra tests exercising ShiftLeft() at boundary conditions, to guard against logic errors in our memory bounds checking.
PiperOrigin-RevId: 339326030
--
cdfde78815ca016a57f90f53d08c3335bd355f30 by Evan Brown <ezb@google.com>:
Fix a bug in b-tree erase() and count() in which we weren't accounting for cases where the comparator is heterogeneous and has different equivalence classes for different lookup types.
Optimize equal_range to avoid comparisons when possible.
PiperOrigin-RevId: 339270230
--
b4aa337c156fa91f74f25c676c679ae146311968 by Derek Mauro <dmauro@google.com>:
Fix execution of the cmake build scripts when not on Kokoro
PiperOrigin-RevId: 339131253
--
fa3d1f602f711be72fde6b5f29d6341b9b5f8a2c by Derek Mauro <dmauro@google.com>:
Update Docker container used for Alpine Linux testing
PiperOrigin-RevId: 339074246
GitOrigin-RevId: e5b45b15c19e85aaa33430ac2bd45fcc2e52dad5
Change-Id: I2cc3adc4de3493203c8a944aedee40efa54af0c0
--
730bb88bee556aa11fa19aa33e1434cb6fa78985 by Evan Brown <ezb@google.com>:
Support missing allocator-related constructors in b-tree. See [reference](https://en.cppreference.com/w/cpp/container/set/set).
Also use allocator_traits::select_on_container_copy_construction() to get allocator for copy construction.
PiperOrigin-RevId: 339058322
--
b6cc121689ae3e452d1db2d66122cb198d25142b by Derek Mauro <dmauro@google.com>:
Fix more sign-compare warnings
PiperOrigin-RevId: 339057920
--
0e2c62da1dcaf6529abab952bdcc96c6de2d9506 by Abseil Team <absl-team@google.com>:
Add missing <limits> include
PiperOrigin-RevId: 339054753
--
d5a9ec2d1e40fe6359e720942e4955009ee415ec by Derek Mauro <dmauro@google.com>:
Stop disabling sign-compare warnings for non-test targets.
Our users complain about these.
This does not catch issues in header-only libraries (like btree.h)
but we may work on those in the future
PiperOrigin-RevId: 338967089
--
0c062c542a4c61ea0f65d25811827c0858e3adde by Abseil Team <absl-team@google.com>:
Improve cache-locality for ThreadIdentity and PerThreadSynch.
This is a change based on an observation in RPC benchmarks that shows
significant cycles being spent in waking up a thread, 99.8% of which
was on cache misses. Investigating this a bit more, it turns out to
be due to sharing the cache line with the waiter state.
To fix this issue, the following changes are introduced:
- Reorder fields in PerThreadSync so that it fits in a single cache line
The size of this structure was 80 bytes before this change.
Note: Manually inspected all booleans to make sure they are not modified by
multiple threads concurrently.
PiperOrigin-RevId: 338852058
--
a90d6f2b2346385017e32dd8ae1b5ca691a5863f by Derek Mauro <dmauro@google.com>:
Delete GCC 4.9 test script. It is no longer supported
PiperOrigin-RevId: 338779452
--
7274008d4757e88869110be9db39d03d911ae2b5 by Abseil Team <absl-team@google.com>:
Fix the usage example in which SetFlag should take a pointer.
PiperOrigin-RevId: 338744529
GitOrigin-RevId: 730bb88bee556aa11fa19aa33e1434cb6fa78985
Change-Id: Iff99594c4022e60e482a392d334b376c7ae8883e
--
017c3924d21132085bc20c9be0ae469bfbf2c56c by Gennadiy Rozental <rogeeff@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 338723934
--
8b08c23d7b05232e283b1388cee3eb5bebc2d9c4 by Derek Mauro <dmauro@google.com>:
Add script to test GCC floor (the minimum version of GCC we support,
currently the GCC 5 series)
PiperOrigin-RevId: 338708581
--
afa440ac7c843126b4f99b89ebc071dda1d85a4d by Abseil Team <absl-team@google.com>:
Fix typo in documentation of StatusOr::value_or() ('of' -> 'if').
PiperOrigin-RevId: 338690089
--
97d5008865327fc36b942b96de0d0cacfb909df5 by Derek Mauro <dmauro@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 338568224
--
da5e09a7fedb3217329465d9206b7cbc6677176b by Abseil Team <absl-team@google.com>:
Add `absl_btree_prefer_linear_node_search`
Allow keys of `btree_set`, `btree_map`, `btree_multiset`, and `btree_multimap`
to opt-in to linear search (instead of binary search). Linear search was
used previously for arithmetic types with `key_compare` of `std::greater`
or `std::less`.
For example, this would be useful for key types that wrap an integer
and define their own cheap `operator<()`.
```
class K {
public:
using absl_btree_prefer_linear_node_search = std::true_type;
...
private:
friend bool operator<(K a, K b) { return a.k_ < b.k_; }
int k_;
};
absl::btree_map<K, V> m; // Uses linear search
assert((absl::btree_map<K, V>::testonly_uses_linear_node_search()));
```
PiperOrigin-RevId: 338476553
--
c56ead7ce6b0a5ad32e3a42904c686448a69451e by Gennadiy Rozental <rogeeff@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 338419417
GitOrigin-RevId: 017c3924d21132085bc20c9be0ae469bfbf2c56c
Change-Id: I1199f3ae917280a3ef20ccc6038abbe34d96ec0b
--
d09230db053c544c2dc7fd7d95d1ebe4302071e9 by Abseil Team <absl-team@google.com>:
Move testonly_uses_linear_node_search to BtreeNodePeer
PiperOrigin-RevId: 338210523
--
7b11c945dbba7a354103c194877eba240f7f0cbc by Derek Mauro <dmauro@google.com>:
Allow pinning to a GoogleTest commit to make the build reproducible
Allow using a cached copy of the commit to avoid depending on GitHub
PiperOrigin-RevId: 338115715
--
8414f496c570a6398744da8324e158b39a2e3d92 by Andy Getzendanner <durandal@google.com>:
Generate a pkg-config file per absl_cc_library.
PiperOrigin-RevId: 337986219
GitOrigin-RevId: d09230db053c544c2dc7fd7d95d1ebe4302071e9
Change-Id: Iae398ab8ad5c0c6833abd01aa5198315f5b6fa99
--
77c85460dc3c46593b231c5161ac55273bb0c7ef by Abseil Team <absl-team@google.com>:
Support int128 in SimpleAtoi.
PiperOrigin-RevId: 337946262
--
0be53049ccf8309650e4e22f23b290e5f75ee828 by Gennadiy Rozental <rogeeff@google.com>:
Update build scripts to use --mount instead of --volume to mount the host data into a container.
This is somewhat more verbose, but more readable and flexible. More importantly this is what docker documentation is recomending to use now.
PiperOrigin-RevId: 337898761
--
3bc877f1679fdf61ecbf4365287a0403cfc9b53e by Samuel Benzaquen <sbenza@google.com>:
Add Cord constructor for constinit instances.
PiperOrigin-RevId: 337871148
--
8b87701892b9c325e78ad4e8e4f16b785a744622 by Chris Kennelly <ckennelly@google.com>:
Use the address of kSeed, rather than its value.
We initialize kSeed with &kSeed, so these are equivalent, but kSeed requires a
load from memory while &kSeed can be formed as a RIP-relative lea.
PiperOrigin-RevId: 337868415
GitOrigin-RevId: 77c85460dc3c46593b231c5161ac55273bb0c7ef
Change-Id: I3d06c18a123f1be29dad5801e8625952dc41cd95
--
498800727a35cd00c199e653c2a8e34dc3322b54 by Derek Mauro <dmauro@google.com>:
Fixes CMake dependency issues and adds `-Wl,--no-undefined` to avoid
these issues in the future.
Fixes#817
PiperOrigin-RevId: 337615527
--
a14b214a50a095d0c10c9d7a9e98ab1bd3b3976b by Samuel Benzaquen <sbenza@google.com>:
Minor compatibility fix for a version of gcc 5.5
PiperOrigin-RevId: 337561733
--
89a65c211e626bd30c046f79d0df9cc4a7d7c792 by Gennadiy Rozental <rogeeff@google.com>:
Internal change
PiperOrigin-RevId: 337436891
--
d30c05c850ead352dad5ea0dc32942feb2942986 by Abseil Team <absl-team@google.com>:
Place STL exception functions underneath the ABSL_HAVE_EXCEPTIONS #ifdef.
The STL exception functions are not present in the Android NDK, so Abseil fails to build as part of ANGLE in AOSP. This CL places the various STL exception throwing functions inside #ifdef ABSL_HAVE_EXCEPTIONS blocks so they are removed during Android builds since neither ANGLE nor the NDK support exceptions by default.
PiperOrigin-RevId: 337142938
GitOrigin-RevId: 498800727a35cd00c199e653c2a8e34dc3322b54
Change-Id: I17b02daaea145d1a8fdbfd098f0fa99e65c86d2d
--
430bda42820b619b346201bc42769d014228e825 by Gennadiy Rozental <rogeeff@google.com>:
Update version for CMake and Bazel
PiperOrigin-RevId: 336089889
--
0a36f989acb0e6f7d2f04039c600b0934c44ffed by Abseil Team <absl-team@google.com>:
changes how non-equality is evaluated
absl::c_mismatch is based on std::mismatch, which requires that its
iterators' reference types meet the requirements of
Cpp17EqualityComparable[1]. The previous CL mistakenly wrote
absl::c_mismatch using `*first1 != *first2` which assumes that the
reference types model std::equality_comparable[2] (which was only added
in C++20).
This CL reverts that behaviour.
[0]: http://wg21.link/mismatch
[1]: http://wg21.link/utility.arg.requirements#tab:cpp17.equalitycomparable
[2]: http://wg21.link/concept.equalitycomparable
PiperOrigin-RevId: 335897465
--
7cb902f079838081a15f8b72e0cef46beab653f2 by Derek Mauro <dmauro@google.com>:
Disable a raw_hash_map_allocator.cc test that doesn't build
due to a noexcept bug in gcc 5.4 and 5.5
PiperOrigin-RevId: 335876843
GitOrigin-RevId: 430bda42820b619b346201bc42769d014228e825
Change-Id: I94d5b8e03e0a91d81923aa831f6f63c625e0b836
--
14d42e9d0b8aed0c0f00900cd6fd790908930de5 by Gennadiy Rozental <rogeeff@google.com>:
Fix gcc ci build command for LTS
PiperOrigin-RevId: 331543198
--
f1655ec91a4ad656dd1100cf2e134d08941278ca by Abseil Team <absl-team@google.com>:
Consistently document size_type return value of all map/set types.
PiperOrigin-RevId: 331528359
GitOrigin-RevId: 14d42e9d0b8aed0c0f00900cd6fd790908930de5
Change-Id: I33ebba4acb3e5918e4e112f03c81aba529dcd0b4
--
cfb567ed02096320663d882d2c0c2fb7db7af1e4 by Derek Mauro <dmauro@google.com>:
Upgrade to GCC 10.2.0, Bazel 3.5.0, and CMake 3.18.2
PiperOrigin-RevId: 330847323
--
5dcb9ce14d92315163079366a91c43cbd5184ea4 by Evan Brown <ezb@google.com>:
Optimize equal_range() by avoiding the call to upper_bound() when possible.
We need to support heterogeneous comparators that have different behavior when comparing key_type to non-key_type. See the new test.
Also update the comment for `key_compare_to_adapter`.
PiperOrigin-RevId: 330794444
--
744405dbda5513527d74094a5c3b9db1e0927693 by Gennadiy Rozental <rogeeff@google.com>:
Introduce trampoline for friend access to avoid friending routines and classes from different namespace.
PiperOrigin-RevId: 330773156
--
a195d1226576f8a7bb5671f3e42d1021b827fad9 by Abseil Team <absl-team@google.com>:
Fix an incorrect version number test for std::variant availability in tvOs.
PiperOrigin-RevId: 330759480
--
58b02eb9159a577953676d9928cb26b30068b847 by Derek Mauro <dmauro@google.com>:
Use c++20 instead of c++2a now that it is supported by GCC
PiperOrigin-RevId: 330559797
GitOrigin-RevId: cfb567ed02096320663d882d2c0c2fb7db7af1e4
Change-Id: I0e0d68409c95da42f5609920155ba5694ade8df0
--
587e6db882749fa7faa12815e614afab04d218b9 by Derek Mauro <dmauro@google.com>:
Use attribute detection for other sanitizer related attributes
PiperOrigin-RevId: 324077073
--
3ee55e4935b4235516b1fcac3c55945e510f7afc by Evan Brown <ezb@google.com>:
Simplify CordRepExternal allocation/deallocation.
I think this can save some memory when `Releaser` is empty and when on platforms where alignof(CordRepExternal) < (default `::operator new` alignment).
We no longer need the API requirement that alignof(Releaser) <= (default `::operator new` alignment).
Also remove another static_assert from a TODO in cord_internal.h and fix some warnings about calling std::move on a forwarding reference.
PiperOrigin-RevId: 324053720
--
9fc78436565eb3b204d4aa425ee3773354392f45 by Derek Mauro <dmauro@google.com>:
Use auto-detected sanitizer attributes for ASAN, MSAN, and TSAN builds
PiperOrigin-RevId: 323831461
GitOrigin-RevId: 587e6db882749fa7faa12815e614afab04d218b9
Change-Id: Ie0e4a2846d7f66988a2d81a5e50721b62fdb3d6d
--
69b3ab092ee0fef3d27f589e709280c341f006c6 by Greg Falcon <gfalcon@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 321005878
--
3a4038cd0cea6455453a7ae82f2de7e91d7e2bc1 by Abseil Team <absl-team@google.com>:
Google-internal changes only.
PiperOrigin-RevId: 320994821
--
f9d9a93782924df6ffc351a271c239ca4bdff3c8 by Derek Mauro <dmauro@google.com>:
Update Linux latest toolchains, most notably to GCC 10.1
This create a new "hybrid" docker image that includes the latest
versions of both GCC and LLVM. Since the LLVM build targets Debian 10,
but Debian 10 uses an older version of libstdc++ that doesn't have
full C++20 support, the easiest solution is to use the GCC/Debian 10
base image from DockerHub and copy LLVM into it.
This also includes fixes to get the build working with the
new toolchains.
PiperOrigin-RevId: 320991795
--
43129cd66dc4439b36d85030800a3929f20d9f86 by Abseil Team <absl-team@google.com>:
Rollback import of CCTZ from GitHub (breaks MSAN tests)
- e87b391f0d10ae9c3d2e70e4a3633337d2c5e643 handle "slim" TZif files in TimeZoneInfo::ExtendTransitio... by Bradley White <14679271+devbww@users.noreply.github.com>
PiperOrigin-RevId: 320978767
--
2a343a55f297d433c1521920f0bd20ddd2dc71e8 by Derek Mauro <dmauro@google.com>:
Use ABSL_HAVE_ATTRIBUTE in thread_annotations.h
PiperOrigin-RevId: 320956378
--
f6f3e8333c9ef6e6441586be6587bbfb1c8c8127 by Gennadiy Rozental <rogeeff@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 320952592
--
3cc2bcce3533ac1233c0536232b07eea45fe8ed0 by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 320862698
--
4e22066476744609e42c475b55e3cbd874f04c39 by Gennadiy Rozental <rogeeff@google.com>:
Internal change
PiperOrigin-RevId: 320461277
GitOrigin-RevId: 69b3ab092ee0fef3d27f589e709280c341f006c6
Change-Id: I36f547711e7078d52f2e0a1ff3f4c903056a2b9e
--
13b7cb0eff8fda5127193e11dbe0b8655415b512 by Gennadiy Rozental <rogeeff@google.com>:
Change the preprocessor guards to properly exclude tests which does not build on older
version on libstdc++.
Fixes#731
PiperOrigin-RevId: 319987618
--
ab2155855b4dd1259a3dd9f48fbb5e6e8c2ccd3f by Derek Mauro <dmauro@google.com>:
Update clang-latest container to LLVM 052e1e0cfd9, Bazel 3.3.1, and CMake 3.17.3
PiperOrigin-RevId: 319835484
--
7554283733c309649a05b7f1891b2593e50f07b7 by Abseil Team <absl-team@google.com>:
Implement support for LOAD segments that don't start at p_vaddr==0.
PiperOrigin-RevId: 319694669
GitOrigin-RevId: 13b7cb0eff8fda5127193e11dbe0b8655415b512
Change-Id: I220c2af4169cf8e4dad20cb372589ec7def0e018
--
cb68208c1ae9ca45ce48bf2b7e6cc46592a3b22d by Derek Mauro <dmauro@google.com>:
Update GoogleTest dependency and use it to mark a parameterized test
as possibly unused.
PiperOrigin-RevId: 313643136
--
24f61fe25e943e78f8a1fd014c89516776943170 by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 313636155
--
36c453ddf04791f8cf3d14673bacd7bbd98911fd by Gennadiy Rozental <rogeeff@google.com>:
Address sanitizer should not use DYNAMIC_ANNOTATIONS_ENABLED=1
PiperOrigin-RevId: 313635651
--
7a7a3e3888ac8ae366572ea0a2a1c62dc669cec7 by Abseil Team <absl-team@google.com>:
CMake: don't attempt to use googletest unless ABSL_RUN_TESTS==true.
Fixes: https://github.com/abseil/abseil-cpp/issues/690
PiperOrigin-RevId: 313477705
GitOrigin-RevId: cb68208c1ae9ca45ce48bf2b7e6cc46592a3b22d
Change-Id: Ief7b31b53cdf3f79518b767d882960c1636aad23
--
f012012ef78234a6a4585321b67d7b7c92ebc266 by Laramie Leavitt <lar@google.com>:
Slight restructuring of absl/random/internal randen implementation.
Convert round-keys.inc into randen_round_keys.cc file.
Consistently use a 128-bit pointer type for internal method parameters. This allows simpler pointer arithmetic in C++ & permits removal of some constants and casts.
Remove some redundancy in comments & constexpr variables. Specifically, all references to Randen algorithm parameters use RandenTraits; duplication in RandenSlow removed.
PiperOrigin-RevId: 312190313
--
dc8b42e054046741e9ed65335bfdface997c6063 by Abseil Team <absl-team@google.com>:
Internal change.
PiperOrigin-RevId: 312167304
--
f13d248fafaf206492c1362c3574031aea3abaf7 by Matthew Brown <matthewbr@google.com>:
Cleanup StrFormat extensions a little.
PiperOrigin-RevId: 312166336
--
9d9117589667afe2332bb7ad42bc967ca7c54502 by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 312105213
--
9a12b9b3aa0e59b8ee6cf9408ed0029045543a9b by Abseil Team <absl-team@google.com>:
Complete IGNORE_TYPE macro renaming.
PiperOrigin-RevId: 311999699
--
64756f20d61021d999bd0d4c15e9ad3857382f57 by Gennadiy Rozental <rogeeff@google.com>:
Switch to fixed bytes specific default value.
This fixes the Abseil Flags for big endian platforms.
PiperOrigin-RevId: 311844448
--
bdbe6b5b29791dbc3816ada1828458b3010ff1e9 by Laramie Leavitt <lar@google.com>:
Change many distribution tests to use pcg_engine as a deterministic source of entropy.
It's reasonable to test that the BitGen itself has good entropy, however when testing the cross product of all random distributions x all the architecture variations x all submitted changes results in a large number of tests. In order to account for these failures while still using good entropy requires that our allowed sigma need to account for all of these independent tests.
Our current sigma values are too restrictive, and we see a lot of failures, so we have to either relax the sigma values or convert some of the statistical tests to use deterministic values.
This changelist does the latter.
PiperOrigin-RevId: 311840096
GitOrigin-RevId: f012012ef78234a6a4585321b67d7b7c92ebc266
Change-Id: Ic84886f38ff30d7d72c126e9b63c9a61eb729a1a