| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
1a5831c2b4b85e0151b7952e47f4b80827937620 by Laramie Leavitt <lar@google.com>:
Implement FuzzingBitGen, an adapter which allows existing randomized tests which use absl::BitGenRef to easily integrate with fuzz testing.
I found myself implementing a similar option in our tensorstore project to fuzz test a storage layer and figured that it would be more useful as a common tool with defaults that take the non-random path.
This is similar to the FuzzedDataProvider mechanism which generates random values from a fuzz string, and is used to generate fuzz test inputs, and internally it uses FuzzedDataProvider.
The basic technique used here is to construct mocking lambdas for all of the absl mock distribution configurations, and forwarding the parameters to fuzzing-specific implementations that call into FuzzedDataProvider. The default paths for the distributions are either the bounds or a median value.
PiperOrigin-RevId: 358432715
--
e7968538c5ef5cd0b9822dbeac0f659b5e7d49b3 by Derek Mauro <dmauro@google.com>:
Give extern C symbols a unique name when the inline namespace
is given.
This partially addresses #851
PiperOrigin-RevId: 358403842
GitOrigin-RevId: 1a5831c2b4b85e0151b7952e47f4b80827937620
Change-Id: Id5ca0251498e390a8efa7210a17cc2cabb2c7dd8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
f9476c95cf7625d7b0fc4661f253b0aac4341044 by Abseil Team <absl-team@google.com>:
Add a test to verify that the new checksum field in Hashtablez is calculated
PiperOrigin-RevId: 356744293
--
ff8a3612463000e8c3d451e50367a3c65cb6cf21 by Abseil Team <absl-team@google.com>:
Remove the implied support comment for port.h, attributes.h, and integral_types.h's C compatibility from the header documentations.
Abseil-cpp is a C++ library; this brings port.h, attributes.h, and integral_types.h, into our stance for the rest of Abseil (aka, no assurance of C compatibility)
There is no guarantee that future changes to port.h, attributes.h, and integral_types.h, and their dependencies, will remain compatible with C, even for macros and definitions that currently are.
PiperOrigin-RevId: 356727505
--
be62292016381deee628dbb3f36cb6009bcc0282 by Abseil Team <absl-team@google.com>:
internal change
PiperOrigin-RevId: 356608125
--
13b35f17171df3d6853ea7088797b3be611505fc by Evan Brown <ezb@google.com>:
Clarify the comments for CapacityToGrowth/GrowthToLowerboundCapacity methods to specify the intent that capacity should equal growth when `capacity+1 < kWidth`.
Also add testing for this behavior.
PiperOrigin-RevId: 356579041
GitOrigin-RevId: f9476c95cf7625d7b0fc4661f253b0aac4341044
Change-Id: Iadd094d109b4869998f2427319ef66d1cf1e8eff
|
|
|
|
|
|
|
|
|
|
|
| |
--
0acc8470116819a62fd5ebbc2c64fdd703c93331 by Abseil Team <absl-team@google.com>:
Add an attribute to HashtablezInfo which performs a bitwise XOR on all hashes. The purposes of this attribute is to identify if identical hash tables are being created. If we see a large number of identical tables, it's likely the code can be improved by using a common table as opposed to keep rebuilding the same one.
PiperOrigin-RevId: 356338043
GitOrigin-RevId: 0acc8470116819a62fd5ebbc2c64fdd703c93331
Change-Id: If7d0a96629144fb41e6bef1ec93345a22df40733
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
4ff721439234e91caf6f7b772e5f554e7dd423c8 by Benjamin Barenblat <bbaren@google.com>:
Remove endian-sensitivity from hash slow path
Prior to this commit, the Abseil hash fast path was endian-agnostic, but
the slow path assumed a little-endian platform. Change the slow path to
be endian-correct, ensuring that values produced by the fast and slow
paths are equal even on big-endian systems.
PiperOrigin-RevId: 355424258
--
7f4fe1aa4de46ad0a2ef19fa9c061fc12a7391ed by Abseil Team <absl-team@google.com>:
Directly store CordzInfo in the InlineData data contents of InlineRep
This greatly reduces the cost of coping and moving cords. Especially the move constructor and move assignment are now back to lean loads and stores without needing any CordzInfo lookups for tracked cords.
PiperOrigin-RevId: 355409161
--
3ca4ca84ed6d98f1e383ffd8d12c28876e905bb3 by Abseil Team <absl-team@google.com>:
Add #include <unordered_map>
PiperOrigin-RevId: 355386114
--
30b0ffad0621971b3135148fcc9e183b0dd2a6bb by Abseil Team <absl-team@google.com>:
Optimize Cord copy constructor
This change avoids double stores of the Cord copy constructor from the zero init of the InlineData / InlineRep contents followed by the assignment and inlines the copy constructor.
PiperOrigin-RevId: 355287939
--
0c043fa7b6e41ca7cefc5edc1e17ad46223e4e77 by CJ Johnson <johnsoncj@google.com>:
Now that the absl::Cleanup example returns absl::Status, since we decided on absl::FailedPreconditionError, the precondition should be a positive statement and then the check should be failure to adhere to that positive statement
PiperOrigin-RevId: 355216923
--
9ed922ca5d28fe8790ec6bc0837cf39fbcc92896 by Gennadiy Rozental <rogeeff@google.com>:
Do not set mvsc linker flags for clang-cl (fixes #874)
Import of https://github.com/abseil/abseil-cpp/pull/891
PiperOrigin-RevId: 355199380
GitOrigin-RevId: 4ff721439234e91caf6f7b772e5f554e7dd423c8
Change-Id: I3d9d2383549720d7a91f9108dfcd979ad6632fce
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
c68f1886f5e8fd90eb0c2d2e68feaf00a7cdacda by CJ Johnson <johnsoncj@google.com>:
Introduce absl::Cleanup to the OSS repo
PiperOrigin-RevId: 354583156
--
17030cf388e10f7eb959e3e566326d1072ce392e by Abseil Team <absl-team@google.com>:
Internal change only
PiperOrigin-RevId: 354574953
--
e979d7236d4f3252e79ddda6739b67a9a326bf6d by CJ Johnson <johnsoncj@google.com>:
Internal change
PiperOrigin-RevId: 354545297
--
7ea02b3783f7f49ef97d86a8f6580a19cc57df14 by Abseil Team <absl-team@google.com>:
Pre-allocate memory for vectors where the size is known.
PiperOrigin-RevId: 354344576
--
9246c7cb11f1d6444f79ebe25acc69a8a9b870e0 by Matt Kulukundis <kfm@google.com>:
Add support for Elbrus 2000 (e2k)
Import of https://github.com/abseil/abseil-cpp/pull/889
PiperOrigin-RevId: 354344013
--
0fc93d359cc1fb307552e917b37b7b2e7eed822f by Abseil Team <absl-team@google.com>:
Integrate CordRepRing logic into cord (but do not enable it)
PiperOrigin-RevId: 354312238
--
eda05622f7da71466723acb33403f783529df24b by Abseil Team <absl-team@google.com>:
Protect ignore diagnostic with "__has_warning".
PiperOrigin-RevId: 354112334
--
47716c5d8fb10efa4fdd801d28bac414c6f8ec32 by Abseil Team <absl-team@google.com>:
Rearrange InlinedVector copy constructor and destructor to treat
a few special cases inline and then tail-call a non-inlined routine
for the rest. In particular, we optimize for empty vectors in both
cases.
Added a couple of benchmarks that copy either an InlVec<int64> or
an InlVec<InlVec<int64>>.
Speed difference:
```
BM_CopyTrivial/0 0.92ns +- 0% 0.47ns +- 0% -48.91% (p=0.000 n=11+12)
BM_CopyTrivial/1 0.92ns +- 0% 1.15ns +- 0% +25.00% (p=0.000 n=10+9)
BM_CopyTrivial/8 8.57ns +- 0% 10.72ns +- 1% +25.16% (p=0.000 n=10+12)
BM_CopyNonTrivial/0 3.21ns +- 0% 0.70ns +- 0% -78.23% (p=0.000 n=12+10)
BM_CopyNonTrivial/1 5.88ns +- 1% 5.51ns +- 0% -6.28% (p=0.000 n=10+8)
BM_CopyNonTrivial/8 21.5ns +- 1% 15.2ns +- 2% -29.23% (p=0.000 n=12+12)
```
Note: the slowdowns are a few cycles which is expected given the procedure
call added in that case. We decided this is a good tradeoff given the code
size reductions and the more significant speedups for empty vectors.
Size difference (as measured by nm):
```
BM_CopyTrivial from 1048 bytes to 326 bytes.
BM_CopyNonTrivial from 749 bytes to 470 bytes.
```
Code size for a large binary drops by ~500KB (from 349415719 to 348906015 348906191).
All of the benchmarks that showed a significant difference:
Ones that improve with this CL:
```
BM_CopyNonTrivial/0 3.21ns +- 0% 0.70ns +- 0% -78.23% (p=0.000 n=12+10)
BM_InlinedVectorFillString/0 0.93ns +- 0% 0.24ns +- 0% -74.19% (p=0.000 n=12+10)
BM_InlinedVectorAssignments/1 10.5ns +- 0% 4.1ns +- 0% -60.64% (p=0.000 n=11+10)
BM_InlinedVectorAssignments/2 10.7ns +- 0% 4.4ns +- 0% -59.08% (p=0.000 n=11+11)
BM_CopyTrivial/0 0.92ns +- 0% 0.47ns +- 0% -48.91% (p=0.000 n=11+12)
BM_CopyNonTrivial/8 21.5ns +- 1% 15.2ns +- 2% -29.23% (p=0.000 n=12+12)
BM_StdVectorEmpty 0.47ns +- 1% 0.35ns +- 0% -24.73% (p=0.000 n=12+12)
BM_StdVectorSize 0.46ns +- 2% 0.35ns +- 0% -24.32% (p=0.000 n=12+12)
BM_SwapElements<LargeCopyableOnly>/0 3.44ns +- 0% 2.76ns +- 1% -19.83% (p=0.000 n=11+11)
BM_InlinedVectorFillRange/256 20.7ns +- 1% 17.8ns +- 0% -14.08% (p=0.000 n=12+9)
BM_CopyNonTrivial/1 5.88ns +- 1% 5.51ns +- 0% -6.28% (p=0.000 n=10+8)
BM_SwapElements<LargeCopyableMovable>/1 4.19ns +- 0% 3.95ns +- 1% -5.63% (p=0.000 n=11+12)
BM_SwapElements<LargeCopyableMovableSwappable>/1 4.18ns +- 0% 3.99ns +- 0% -4.70% (p=0.000 n=9+11)
BM_SwapElements<LargeCopyableMovable>/0 2.41ns +- 0% 2.31ns +- 0% -4.45% (p=0.000 n=12+12)
BM_InlinedVectorFillRange/64 8.25ns +- 0% 8.04ns +- 0% -2.51% (p=0.000 n=12+11)
BM_SwapElements<LargeCopyableOnly>/1 82.4ns +- 0% 81.5ns +- 0% -1.06% (p=0.000 n=12+12)
```
Ones that get worse with this CL:
```
BM_CopyTrivial/1 0.92ns +- 0% 1.15ns +- 0% +25.00% (p=0.000 n=10+9)
BM_CopyTrivial/8 8.57ns +- 0% 10.72ns +- 1% +25.16% (p=0.000 n=10+12)
BM_SwapElements<LargeCopyableMovableSwappable>/512 1.48ns +- 1% 1.66ns +- 1% +11.88% (p=0.000 n=12+12)
BM_InlinedVectorFillString/1 11.5ns +- 0% 12.8ns +- 1% +11.62% (p=0.000 n=12+11)
BM_SwapElements<LargeCopyableMovableSwappable>/64 1.48ns +- 2% 1.66ns +- 1% +11.66% (p=0.000 n=12+11)
BM_SwapElements<LargeCopyableMovableSwappable>/1k 1.48ns +- 1% 1.65ns +- 2% +11.32% (p=0.000 n=12+12)
BM_SwapElements<LargeCopyableMovable>/512 1.48ns +- 2% 1.58ns +- 4% +6.62% (p=0.000 n=11+12)
BM_SwapElements<LargeCopyableMovable>/1k 1.49ns +- 2% 1.58ns +- 3% +6.05% (p=0.000 n=12+12)
BM_SwapElements<LargeCopyableMovable>/64 1.48ns +- 2% 1.57ns +- 4% +6.04% (p=0.000 n=11+12)
BM_InlinedVectorFillRange/1 4.81ns +- 0% 5.05ns +- 0% +4.83% (p=0.000 n=11+11)
BM_InlinedVectorFillString/8 79.4ns +- 1% 83.1ns +- 1% +4.64% (p=0.000 n=10+12)
BM_StdVectorFillString/1 16.3ns +- 0% 16.6ns +- 0% +2.13% (p=0.000 n=11+8)
```
PiperOrigin-RevId: 353906786
--
8e26518b3cec9c598e5e9573c46c3bd1b03a67ef by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 353737330
--
f206ae0983e58c9904ed8b8f05f9caf564a446be by Matt Kulukundis <kfm@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 353682256
GitOrigin-RevId: c68f1886f5e8fd90eb0c2d2e68feaf00a7cdacda
Change-Id: I5790c1036c4f543c701d1039848fabf7ae881ad8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
cfd7ee2487ed9b5636d8f83d3850c02e3b4a5cb0 by Jorg Brown <jorg@google.com>:
Add union padding to AsTree, to avoid issues on 32-bit MSVC 2015 compilers
alignas() causes compiler errors as per https://godbolt.org/z/vaTKjn
This change uses explicit padding to achieve what we want: https://godbolt.org/z/Mfjhhj
PiperOrigin-RevId: 353211413
--
b1ac7430ffdefe58c01b29e9acd182cda4630e1d by Jorg Brown <jorg@google.com>:
Make the casting functions flat() and ring() be static_cast, rather than reinterpret_cast.
PiperOrigin-RevId: 353149543
--
c37a6761c31720317c8b0b7db62b693643a88586 by Abseil Team <absl-team@google.com>:
Integrate CordRepRing logic into cord (but do not enable it)
PiperOrigin-RevId: 353135656
--
2007fd3045ed6285106795cf8f2e6d792922f5e8 by Abseil Team <absl-team@google.com>:
Fix a typo in the description of ::equal_range(). The correct return is actually a half-open range [first, last).
PiperOrigin-RevId: 353122213
--
6683fa2ba7271dd1f575bd7742d97f47a034c9d2 by Abseil Team <absl-team@google.com>:
Integrate CordRepRing logic into cord (but do not enable it)
PiperOrigin-RevId: 353121763
GitOrigin-RevId: cfd7ee2487ed9b5636d8f83d3850c02e3b4a5cb0
Change-Id: I6635163cd634706f5462c4065aa278e6bf193a72
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
7c15492a46380679651a4291bb284980901d04b1 by Andy Getzendanner <durandal@google.com>:
Add some internal hooks for ABSL_RAW_LOG and do a bit of tidying up.
PiperOrigin-RevId: 348836291
--
9a438cdcf2bd8d2b7ab27f4955432abf0d087672 by Evan Brown <ezb@google.com>:
Fix a bug affecting b-tree extract() when there are multiple keys in the container that are equivalent to the lookup key.
In that case, we are supposed to extract the first such key in the container - [reference](https://en.cppreference.com/w/cpp/container/multiset/extract), but we were extracting the first one we found (which was not necessarily the first in the container).
Also, optimize internal_lower_bound to not keep searching all the way to the leaf if it finds an equivalent key on an internal node and we can't have multiple equivalent keys for the lookup key.
PiperOrigin-RevId: 348822858
--
b5e34c3af3f52815dbca3c6858c26fa8f385a408 by Abseil Team <absl-team@google.com>:
Fix misleading comment.
Ignored object can be either deallocated or leaked.
PiperOrigin-RevId: 348705960
--
64fd9e8c0684bfe86f50161b0e0e9077bb96e05c by Christian Blichmann <cblichmann@google.com>:
Minor cleanups:
- Sorting using declarations
- Changing the format of a NOLINT statement
PiperOrigin-RevId: 348641845
GitOrigin-RevId: 7c15492a46380679651a4291bb284980901d04b1
Change-Id: Ia1ccd844586bd3dced2466651f1175d40caf3d7a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
0b13723ab1ca5231950c3ef76e57c415ce36d9d2 by Abseil Team <absl-team@google.com>:
Fix documentation typo
PiperOrigin-RevId: 348003868
--
2ad4875258ffd604b19f57d7cfbb9f9a093ff880 by Derek Mauro <dmauro@google.com>:
Add missing #include <assert.h>
Note: This file is sometimes used from C so we can't use <cassert>
PiperOrigin-RevId: 347931562
--
4d0c777a3645bddea9d0d6c49ec8ef3afea8c0b7 by Chris Kennelly <ckennelly@google.com>:
Use unsigned types for BitMask helper functions.
Additionally, explicitly perform narrowing cast. T will always have fewer than
2^32 bits.
PiperOrigin-RevId: 347913413
--
80c44b0b066485a25baff56d475b67be2ad027e7 by Abseil Team <absl-team@google.com>:
Stash errno for a larger scope.
Also adjust the test to account for EXPECT_* possibly modifying errno as well.
PiperOrigin-RevId: 347899763
GitOrigin-RevId: 0b13723ab1ca5231950c3ef76e57c415ce36d9d2
Change-Id: I9e7c0e5d45ac778644f3ad72d215378a8cf8a7d4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
dab5caab05d89d03066ef92584660688595a3aaf by Mark Barolak <mbar@google.com>:
Add absl::Status and absl::StatusOr to absl/README.md
Import of https://github.com/abseil/abseil-cpp/pull/863
PiperOrigin-RevId: 347857368
--
1ca3c7a96417cd6e6d62f4dc36fd5ddaa61cfa20 by Chris Kennelly <ckennelly@google.com>:
Leverage integer power-of-2 functions and bit counting library in Abseil.
PiperOrigin-RevId: 347816486
--
e5cbe05879fd65dce7875e2e0105331a1615d89b by Chris Kennelly <ckennelly@google.com>:
Mitigate narrowing warning on MSVC.
If sizeof(x) <= sizeof(uint32_t), no truncation occurs when casting to
uint32_t, but the compiler cannot always determine this.
PiperOrigin-RevId: 347696526
--
079dff64cb175d282d9e22dfb4a522199ffdae2e by Benjamin Barenblat <bbaren@google.com>:
Avoid libgcc -NaN narrowing bug
When testing -NaN parsing, avoid narrowing -NaN from double to float.
This avoids a bug in libgcc
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98251).
PiperOrigin-RevId: 347654751
--
2e78a7634865aeef6765e1f447e96cf8d9985059 by Chris Kennelly <ckennelly@google.com>:
Mark popcount helpers as inline.
These are conditionally constexpr, so we need to add inline to cover the
non-constexpr builds to avoid ODR violations.
PiperOrigin-RevId: 347620138
--
437fbb363aea1654179f102dcdd607ec33c1af1e by Chris Kennelly <ckennelly@google.com>:
Use explicit narrowing cast.
This is never invoked in practice, but compilers with -Wimplicit-int-conversion
may trigger when sizeof(T) > sizeof(uint16_t) prior to determining this never
runs.
PiperOrigin-RevId: 347609857
GitOrigin-RevId: dab5caab05d89d03066ef92584660688595a3aaf
Change-Id: I6296ddffe7ec646f8ce121138f21e1e85a2cff4b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
f0456157cdc6cef6dbb5d2f99f9dc3ca0e213fab by Abseil Team <absl-team@google.com>:
Improve flag_benchmark reproducibility, test multiple threads
This adds multiple threads to the flags benchmark, and also uses some
linker magic to ensure that the defined flags are mapped to a consistent
alignment regardless of other code changes in the benchmark binary.
The benchmark performance in multiple threads is somewhat sensitive to
the alignment of the FlagImpl class, depending on whether the flag value
and the absl::Mutex are on the same cacheline or different ones. Making
all flags be cacheline-aligned would probably waste too much memory,
so this CL instead just makes the memory alignment consistent within the
tests.
PiperOrigin-RevId: 347536882
--
a019646d306b9497a1eba7efa5e2c4c651d9979d by Derek Mauro <dmauro@google.com>:
Fix other comments in node_hash_set.h
PiperOrigin-RevId: 347462975
--
66a4b39fe84a3e81935ad08ee76291df13d1d5e6 by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 347436244
--
52f4d18c2c4439d26428f64ac4de41e6183919ee by Mark Barolak <mbar@google.com>:
container: fix introduction for node_hash_set.h
Import of https://github.com/abseil/abseil-cpp/pull/861
PiperOrigin-RevId: 347432772
GitOrigin-RevId: f0456157cdc6cef6dbb5d2f99f9dc3ca0e213fab
Change-Id: I629f27e5b9584d92b0a42284c1acf708779bad3f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
0bfa836596a9c787a2f0bdc283011dd1f6810c6e by Benjamin Barenblat <bbaren@google.com>:
Ignore missing CPU frequency on more architectures
Linux on MIPS, PA-RISC, RISC-V, and SystemZ doesn’t expose the nominal
CPU frequency via /sys, so don’t worry if `NominalCPUFrequency` returns
1.0 on those platforms.
Some POWER machines expose the CPU frequency; others do not. Since we
can’t predict which type of machine the tests will run on, simply
disable testing for `NominalCPUFrequency` on POWER.
PiperOrigin-RevId: 347079873
--
492b6834ed4a07cbc3abccd846f7e37d8c556ee5 by Benjamin Barenblat <bbaren@google.com>:
Use ABSL_HAVE_THREAD_LOCAL macro instead of copying code
Reduce code duplication by checking the ABSL_HAVE_THREAD_LOCAL macro
instead of copying code from base/config.h.
PiperOrigin-RevId: 347079561
--
8d656efce4da9cb032094377e58493d98427a536 by Abseil Team <absl-team@google.com>:
Rollback
PiperOrigin-RevId: 347078779
--
221bc69ec6dd7e2777ffcff6942584f979ef6382 by Abseil Team <absl-team@google.com>:
Add flag for 'shallow subcord' feature for experimental ring buffer rollout
There is a potential trade-off of CPU cost vs over-sharing cord data for subcord of large cords. This flag allows making subcords shallow for ringbuffers (with a potential larger waste of referenced source cords), which allows us to make subcord fast for this apps that do no persist (unmodified / plain copied) sub cords.
This change also introduces constants for the default settings, intended to keep the internal cord settings concistent with external flags.
PiperOrigin-RevId: 347053271
--
00a56c24293566734009f6bf2169a83fb37a35ba by Abseil Team <absl-team@google.com>:
Revert the usage of variant<> in Cord iterator and reader.
The introduction of the variant may lead to some missed compiler optimizations.
PiperOrigin-RevId: 347053041
--
c7b7b5ed7e3ab46b1e75b80f1a7de0bda26c8f70 by Chris Kennelly <ckennelly@google.com>:
Release library for integer power-of-2 functions and bit counting.
PiperOrigin-RevId: 347035065
--
5a035c0d9840b251967f9e7039fc6a4e01dd52f3 by Abseil Team <absl-team@google.com>:
Restructure Cord::ChunkIterator for future ring buffer support.
PiperOrigin-RevId: 346890054
GitOrigin-RevId: 0bfa836596a9c787a2f0bdc283011dd1f6810c6e
Change-Id: I3a58e2a44cb4c6f2116c43e2a4ccbc319d3ccecf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
6e9f93888bbe6718997ed90bbd049f1f3572b066 by Abseil Team <absl-team@google.com>:
Fix status to be safe for self move assignment.
PiperOrigin-RevId: 346815392
--
35cae74a977f258e81dfbe925fb5a34cb6632036 by Gennadiy Rozental <rogeeff@google.com>:
Eliminate unnecessary access to the global vars.
PiperOrigin-RevId: 346777168
--
e7e786c243069060f5d6c1c945decb4b0b83f95b by Andy Getzendanner <durandal@google.com>:
Internal change.
PiperOrigin-RevId: 346685656
--
4ccd41c48f1a83cfa20b3ea534f743dd7d788376 by Abseil Team <absl-team@google.com>:
Move CordRep Ref() and Unref() logic into cord_internal.h
This change moves Ref() and Unref() logic out of cord.cc into cord_internal. The main purpose is to make upcoming ring buffer changes easier to isolate from existing cord.cc code. Notice that this removes the nullptr check from Unref() and now requires it to be non null (which held true most times). We may need to rethink if the 'unref unlikely one' is the common case: are cordreps most likely shared? This may be something between 'root' and non root nodes, i.e., is it more likely for leaf / flat nodes in large cords to be shared than top level cordreps being shared? Vice versa? Benchmarks say that we mostly shouldn't care, the caveat being that atomic ops seem more expensive on upcoming archs (arcadia) so we should error on the side of an extra IsOne() branch saving us single owned atomic ops.
PiperOrigin-RevId: 346676121
--
f0babab103b9e60d61ba09482d468985e43eceb3 by Samuel Benzaquen <sbenza@google.com>:
Fix iterator based constructor and `.insert` members to only require
EmplaceConstructible as the standard specifies.
PiperOrigin-RevId: 346616707
--
8f48eedda02277f9c96a88ed7726e34b557cce20 by Evan Brown <ezb@google.com>:
Fix a bug in binary_search_impl when there's a transparent, three-way comparator that has different equivalence classes for different lookup types.
Add a new can_have_multiple_equivalent_keys method to share the common logic for these cases.
PiperOrigin-RevId: 346605948
--
649183cb3cc9383431de9c81fb1c0f885d4001ae by Abseil Team <absl-team@google.com>:
Add benchmark for accessing a Duration flag.
PiperOrigin-RevId: 346594843
--
fefdb046520871af63ce2229e2f7cccfc0483dea by Abseil Team <absl-team@google.com>:
Restructure CordReader for upcoming ring buffer changes.
PiperOrigin-RevId: 346410642
--
8b2f50e7da0ebab06ead5f94e366e984ca23cb6a by Abseil Team <absl-team@google.com>:
Wire in an internal-only flag to toggle upcoming ring buffer changes on/off for experimentation.
PiperOrigin-RevId: 346199111
GitOrigin-RevId: 6e9f93888bbe6718997ed90bbd049f1f3572b066
Change-Id: I8f34866b25a79209cb5448bbb28dd3044111d2e9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
ff793052bd01e1e4fcf639f94d7c30c4855a9372 by Evan Brown <ezb@google.com>:
Roll forward of btree_iterator refactoring.
PiperOrigin-RevId: 346116047
--
17984679f16e3e2139b0f14fa76f4a6ca16a3ef9 by Chris Kennelly <ckennelly@google.com>:
Extend absl::StrContains to accept single character needles.
Single characters are more efficient to search for. Extending this API allows
the abseil-string-find-str-contains Clang Tidy to include this pattern.
The C++ committee has adopted http://wg21.link/P1679 for inclusion in C++23.
PiperOrigin-RevId: 346095060
--
ef20b31c501b1dcaa25e244fd8f8aa43dec09bd6 by Jorg Brown <jorg@google.com>:
Internal change for cord ring
PiperOrigin-RevId: 346087545
--
b70f2c1cb77fc9e733a126e790967d45c5fd1dc7 by Derek Mauro <dmauro@google.com>:
Release layout_benchmark
PiperOrigin-RevId: 345968909
--
3a0eda337ee43622f92cfe14c2aa06f72dc71ee5 by Derek Mauro <dmauro@google.com>:
Release raw_hash_set_probe_benchmark
PiperOrigin-RevId: 345965969
--
abffdb4bb241a2264cb4e73a6262b660bb10447d by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 345733599
--
7c9e24a71188df945be17fe98f700bdb51f81b16 by Derek Mauro <dmauro@google.com>:
Release hash_benchmark
PiperOrigin-RevId: 345721635
--
d68f33f17f9a8cd3f6da8eee3870bdb46402cdc8 by Derek Mauro <dmauro@google.com>:
Release raw_hash_set_benchmark
PiperOrigin-RevId: 345708384
--
6e6c547d4d1327b226c0ffe8ff34d0aa103ce24b by Abseil Team <absl-team@google.com>:
Updates the implementation of InlinedVector to accurately express the value-initialization semantics of the default constructor
PiperOrigin-RevId: 345548260
--
1532424deda97d468444c217cc0fa4614099c7c1 by Evan Brown <ezb@google.com>:
Rollback btree_iterator refactoring.
PiperOrigin-RevId: 345543900
GitOrigin-RevId: ff793052bd01e1e4fcf639f94d7c30c4855a9372
Change-Id: I719831981fd056de41939f9addfee3d85e3b49b2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
8ebcdcac49f299156a8fd4a77501a258050960e8 by Evan Brown <ezb@google.com>:
In btree_iterator, refactor a bit and update a couple of comments.
PiperOrigin-RevId: 345491436
--
421d3b9b5cf484811b9514436ce83f797e109145 by CJ Johnson <johnsoncj@google.com>:
Updates the implementation of InlinedVector to accurately express the value-initialization semantics of the default constructor
PiperOrigin-RevId: 345479151
--
88f36a132b2038cb276ed1ad4d9764adb1fc78e6 by CJ Johnson <johnsoncj@google.com>:
Updates the implementation of InlinedVector to accurately express the value-initialization semantics of the default constructor
PiperOrigin-RevId: 345433064
--
e55c9b4e7c578c1c4f2df65b1991041c283a97d9 by Chris Kennelly <ckennelly@google.com>:
Internal change
PiperOrigin-RevId: 345388181
--
e2284c4e77ff1ebc3009e5bf520524c552226d8a by Chris Kennelly <ckennelly@google.com>:
Internal change
PiperOrigin-RevId: 345357514
--
1c496a2ae07ce98578614155d63ef2ea4de5e518 by Chris Kennelly <ckennelly@google.com>:
Mark string lookup functions noexcept.
PiperOrigin-RevId: 345275012
GitOrigin-RevId: 8ebcdcac49f299156a8fd4a77501a258050960e8
Change-Id: I0ccb57d210b543270769e1378de38bf0922f8745
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
03700706d80f0939e2b5b8c02a326f045b643730 by Abseil Team <absl-team@google.com>:
Reduced latency and code-size of some InlinedVector methods:
1. Simpler fast path for push_back/emplace_back.
2. Do not inline slow path of push-back/emplace_back.
3. Simplify resize implementation.
Performance:
A simple benchmark that does the following per iteration:
```
push_back on an InlinedVector<int64>
push_back on an InlinedVector<bool>
```
Sees iteration time go from 4.3ns to 2.8ns and code size shrink from 1129 bytes to 175 bytes.
PiperOrigin-RevId: 343335635
--
16f74277a9e8bf228c164b053da8b8098f76de62 by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 343332753
--
886b6d5d0244783d309e34f03c21710f411e3cb3 by Abseil Team <absl-team@google.com>:
Optimize `Status::Status`: When creating a status, we currently create an empty struct first, then assign fields. This is suboptimal: https://screenshot.googleplex.com/5HqDuFBKUEqrVgy.
Relevant Benchmarks:
```
BM_StatusCopyError_Deep/threads:1 26.9ns ±13% 21.2ns ±16% -21.46% (p=0.000 n=15+15)
BM_StatusCopyError_Deep/threads:2 32.0ns ±30% 25.6ns ±37% -20.17% (p=0.004 n=15+14)
BM_StatusCopyError_Deep/threads:4 37.4ns ±84% 30.6ns ±58% -18.26% (p=0.029 n=15+15)
BM_StatusCopyError_Deep/threads:8 47.2ns ±33% 33.5ns ±56% -28.91% (p=0.000 n=15+14)
```
PiperOrigin-RevId: 343303312
--
2f9d945654292e8e52cad410fa41dae794cff42c by Abseil Team <absl-team@google.com>:
Set SOVERSION for the installed libraries
PiperOrigin-RevId: 343287682
--
600bbfffe91cfbdc60b43cdad5619258298d0b0d by Abseil Team <absl-team@google.com>:
Fix a typo in a comment (than -> that)
PiperOrigin-RevId: 343187724
--
310c82cd97b3f1f0d1ee93a0ee2b0aee828b2a93 by Abseil Team <absl-team@google.com>:
Simplify unaligned memory access functions.
The #ifdef to produce calls to __sanitizer_unaligned_load16 etc were needed in past versions of this code, when we were lying to the compiler about the alignment of the loads/stores, by using a reinterpret_cast.
However, a year ago, absl switched to simply use memcpy. Sanitizers support this correctly by default, nothing extra is required.
PiperOrigin-RevId: 343159883
--
bdf6fcf99180c371fda6ba8af82fd44656e372fa by Gennadiy Rozental <rogeeff@google.com>:
Migrate usage flags to global variables instead of modeling them as Abseil Flags.
Also introduce new semantic for --help=substring command line argument.
PiperOrigin-RevId: 343019883
GitOrigin-RevId: 03700706d80f0939e2b5b8c02a326f045b643730
Change-Id: I4ad40dfa9606f8b8bfb2d91fd09e327105311bfb
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
77e2a9c277721f23a8df983c1efc6ed97c167964 by Derek Mauro <dmauro@google.com>:
Simplify an internal piece of CityHash to remove the conflicting
definition of uint128
PiperOrigin-RevId: 342906008
--
593dbb6d5fd32cc5d31e3ba1eda02e8ddeaeaaf6 by Gennadiy Rozental <rogeeff@google.com>:
Skip retired flags in GetAllFlags output.
This is a bug fix. We should not have released this interface producing retired flags. There should be no observable difference for the users who should not care about retired flags.
PiperOrigin-RevId: 342889378
--
bb77e07abff4dbd0a9c97eb85ee85cb39b84d04a by Abseil Team <absl-team@google.com>:
Extract `find_first_not_full` outside of the raw_hash_set.
This function is used in the following scenarios:
0. [relatively hot] insert, when actual new element is added.
1. [relatively cold] resize (explicit or on capacity grow)
2. [relatively cold] copy constructor
3. [cold] rehash on insert/erase (aka cache) use cases
Resize typically mitigated by `reserve` in performance critical cases. Rehashing happen relatively rare, when hash table become polluted with deleted slots.
We keep `find_first_not_full` in header, so that compiler still can inline it, when necessary (most notably in insert use case).
This reduce binary size since only one copy of this function will be present in the binary for all tables where the function is not inlined (at least in one case).
PiperOrigin-RevId: 342736300
GitOrigin-RevId: 77e2a9c277721f23a8df983c1efc6ed97c167964
Change-Id: I3fe9d054c66049bb598ea35c45fc800b1cdaa9b6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
92811d3307196b2810bdc3c7e50ef9544db3f23b by CJ Johnson <johnsoncj@google.com>:
Refactor InlinedVector's OverheadTest.Storage test to be easier to understand and modify in the future
PiperOrigin-RevId: 342718098
--
cf3f2af201775f9c4e68dd2f9806126aecbd0748 by Abseil Team <absl-team@google.com>:
Implement `reserve` more explicit to avoid calling `rehash`.
`reserve` is much more widely used method and doesn't need extra logic present in `rehash`.
E. g., accidental `t.reserve(0)` on non empty table shouldn't cause rehashing, which was a case before this change.
It also remove some unnecessary computations from `reserve`.
Was:
```
GrowthToLowerboundCapacity 2x
NormalizeCapacity 1x
bitwise | 1x
n == 0 && capacity_ == 0 1x
n == 0 && size_ == 0 1x
n == 0 1x
|| 1x
m > capacity_ 1x
overall branches 6x
(GrowthToLowerboundCapacity 2x, NormalizeCapacity 1x, rehash 3x)
```
Now:
```
GrowthToLowerboundCapacity 1x
NormalizeCapacity 1x
bitwise | 0x
n == 0 && capacity_ == 0 0x
n == 0 && size_ == 0 0x
n == 0 0x
|| 0x
m > capacity_ 1x
overall branches 3x
(GrowthToLowerboundCapacity 1x, NormalizeCapacity 1x, reserve 1x)
```
PiperOrigin-RevId: 342714022
--
c2ab8c1e4091ff685110c81bae12e3567e0cded3 by Abseil Team <absl-team@google.com>:
Remove `reset_growth_left` call, which already happen in `initialize_slots`.
PiperOrigin-RevId: 342701073
--
3f41ccb70afabec8bc0dcfcca3e3ac918726bb92 by Derek Mauro <dmauro@google.com>:
Use memmove instead of memcpy in situations where the source and
destination may point to the same buffer
Note that the OSS Abseil code never calls CUnescapeInternal with
leave_nulls_scaped=true, so there is no bug in the OSS code.
Fixes #844
PiperOrigin-RevId: 342633781
--
57afb2c307b008b9f9daaa736b49c066e0075e39 by Abseil Team <absl-team@google.com>:
Add absl::Round() for absl::Duration as a complementary to Floor, Ceil and Trunc. Rounding halfway cases away from zero as std::round() does.
PiperOrigin-RevId: 342610871
--
c49754ecddb9339eff60b826dc17b3b459333bc0 by Abseil Team <absl-team@google.com>:
Add absl::Round() for absl::Duration as a complementary to Floor, Ceil and Trunc. Rounding halfway cases away from zero as std::round() does.
PiperOrigin-RevId: 342594847
--
b51bd29233aaee6ef241de984635356d26c93e4d by Abseil Team <absl-team@google.com>:
Move `ConvertDeletedToEmptyAndFullToDeleted` to cc file.
This function is cold and only used when table become polluted with deleted slots.
So this shouldn't negatively affect performance and considered safe.
This change is reducing linkage and binary size.
PiperOrigin-RevId: 342319685
--
acb83c004d14e563a3b47dcfcb6c5508bee6408f by Abseil Team <absl-team@google.com>:
Fix indentation in uniform_int_distribution.h.
PiperOrigin-RevId: 342297575
GitOrigin-RevId: 92811d3307196b2810bdc3c7e50ef9544db3f23b
Change-Id: I4fbaf4aab122d5c939ae9a3ef46ee8cca3df75e6
|
|
|
|
|
|
|
|
|
|
|
| |
--
90e177c9e8bdfb38eed84d2377b019353c3990f8 by Abseil Team <absl-team@google.com>:
Fix typo in documentation.
PiperOrigin-RevId: 341814490
GitOrigin-RevId: 90e177c9e8bdfb38eed84d2377b019353c3990f8
Change-Id: Ia84bf687921caedf1d8fab243c7383835d305e44
|
|
|
|
|
|
|
|
|
|
|
| |
--
1ef58d4aefffb2f90a38a89e26057c1e484a3b4b by Abseil Team <absl-team@google.com>:
Fixed typo
PiperOrigin-RevId: 340342194
GitOrigin-RevId: 1ef58d4aefffb2f90a38a89e26057c1e484a3b4b
Change-Id: I75b601f7c2b7737b4b34673aafbcd30cdfd4a4e8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
4ee535c37f92cd45b8c9aa009e5c833265b3a0bb by Samuel Benzaquen <sbenza@google.com>:
Test and fix `insert(hint, node)`
PiperOrigin-RevId: 337122891
--
7b760ced555756fecbad702fedb697424dd65167 by Abseil Team <absl-team@google.com>:
Changed the minimum version of iOS and OSX for Abseil Podspec.
PiperOrigin-RevId: 336926756
GitOrigin-RevId: 4ee535c37f92cd45b8c9aa009e5c833265b3a0bb
Change-Id: I94e70f3342570c83b9965ca458a3f02eaa3efc0d
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
5bd06440e700fefd6eadd577d7d69c51f15c63e0 by Abseil Team <absl-team@google.com>:
Add if-guard to futex.h so that it doesn't fail to parse for unsupported platforms
PiperOrigin-RevId: 336880375
--
8b3d3bb4ad123fc9f648f0e397b2eddd88dc0c02 by Derek Mauro <dmauro@google.com>:
Fix race in AddressIsReadable file descriptors using stronger memory ordering
PiperOrigin-RevId: 336874423
--
1d8bf23747009cca29129b80c2793bc91443dd55 by Derek Mauro <dmauro@google.com>:
Avoid -Wundef warnings on ABSL_HAVE_THREAD_LOCAL
PiperOrigin-RevId: 336792406
--
562a480f029c600c1d3b1428da6a9b09e8952a74 by Derek Mauro <dmauro@google.com>:
Fix preprocessor condition for symbols __tsan_mutex_read_lock and
__tsan_mutex_try_lock
PiperOrigin-RevId: 336732571
GitOrigin-RevId: 5bd06440e700fefd6eadd577d7d69c51f15c63e0
Change-Id: Id9bb331baec74b9d80c7b228959a7739bc30e694
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
a5af5874c1c5cc02bd2a748d455321f82b6f2a93 by Andy Getzendanner <durandal@google.com>:
fix compile fails with asan and -Wredundant-decls
Import of https://github.com/abseil/abseil-cpp/pull/801
PiperOrigin-RevId: 336693223
--
ed9df42ab2b742386c6692c2bed015374c919d9c by Derek Mauro <dmauro@google.com>:
Fix integer conversion warning
Fixes #814
PiperOrigin-RevId: 336651814
--
0ab4c23884e72dce17b67c1eb520f9dbb802565d by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 336585378
--
eba0e3dccd52a6e91bcff84075bef0affc650b74 by Matt Kulukundis <kfm@google.com>:
Add bitset operations to Futex helper.
PiperOrigin-RevId: 336409368
--
8b0709a8b4500bf5f0af4b602d76a298d81645e8 by Abseil Team <absl-team@google.com>:
Fix code indentation in a comment.
PiperOrigin-RevId: 336368167
--
bc3961c87a7e7760c10319a5b0349c279f7ae3ad by Samuel Benzaquen <sbenza@google.com>:
Improve performance of the registry:
- Reduce contention
- Reduce memory usage for each flag by `6*sizeof(void*)`.
- Replace one immortal allocation per-flag with a single one for all the flags
- Slightly improve single-threaded performance by avoiding the std::map indirections.
PiperOrigin-RevId: 336365904
--
264ad9f28f935aad8b6b1437f8bf804fa9104346 by Abseil Team <absl-team@google.com>:
Fix typo in comment on absl::Condition.
PiperOrigin-RevId: 336311680
--
b5b808a8c75ca0df7b09eff9a423ec171d80f771 by Derek Mauro <dmauro@google.com>:
Add missing Apache license headers
PiperOrigin-RevId: 336294980
--
89446c3a4793df8b95060385cf3e219357c3db1d by Andy Soffer <asoffer@google.com>:
Internal changes
PiperOrigin-RevId: 336287465
--
57c8be4e294881bc79a6a44b8e4bf7ecbb19b9b9 by Matt Kulukundis <kfm@google.com>:
Extract Futex from an implementation detail of Wait to a private interface.
PiperOrigin-RevId: 336123209
GitOrigin-RevId: a5af5874c1c5cc02bd2a748d455321f82b6f2a93
Change-Id: Ie5a0ebe28e571814e3e11d4c05ca308523ccf311
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
dad7313f7e8c36c35fc213ce5110100595f90990 by Andy Getzendanner <durandal@google.com>:
Fix log_severity.h header guard to match path.
PiperOrigin-RevId: 334439123
--
8a58aa0f4171219d38fb49a2e008e249f86de4cb by Abseil Team <absl-team@google.com>:
Minor comment cleanup
PiperOrigin-RevId: 334409054
--
a1bc324e53c358b874f99b3f5624658fff99453e by Evan Brown <ezb@google.com>:
Cleanup in btree.h:
- Combine internal_locate_impls and update comments.
- Avoid use of auto with SearchResult.
- Change one iterator reference to be stored by value (copy is cheap).
PiperOrigin-RevId: 334396951
GitOrigin-RevId: dad7313f7e8c36c35fc213ce5110100595f90990
Change-Id: I79862795abd3169587f5bafe0e5369bdde90c1e1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
1d4582ea8b9f38bef580d1998ebeb56adca7d3fb by Abseil Team <absl-team@google.com>:
Used StorageT alias to unify getters of CompressedTuple
PiperOrigin-RevId: 333572002
--
a630f1ef375a621dd89e6908cc6980ba81448331 by Derek Mauro <dmauro@google.com>:
Silence -Wrange-loop-analysis warnings
These warnings are likely incorrect for small POD objects, and clang
fixed this with https://reviews.llvm.org/D72212, but Xcode 12 enabled
this buggy warning by default. This fixes this problem for these users.
As a reminder, [we still recommend passing string_view by value for
function parameters](https://abseil.io/tips/1) as it generates less
code.
Fixes #787
PiperOrigin-RevId: 333536667
GitOrigin-RevId: 1d4582ea8b9f38bef580d1998ebeb56adca7d3fb
Change-Id: Ib17aa296f48f3f0fda566460a302979f5adf4195
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
bddfb8bae4e569884bf8749f5368e536562f0682 by Samuel Benzaquen <sbenza@google.com>:
Forward the Status.
PiperOrigin-RevId: 333159251
--
461640476dab1726eba8d26a0c8012b5a35ba0b1 by Evan Brown <ezb@google.com>:
Avoid relying on mutable b-tree set iterators in merge(). Mutable set iterators is an API difference from std::set that we want to get rid of.
Also remove a superfluous `public` member specification in btree_container.
PiperOrigin-RevId: 333101335
--
96cf8ac6946840be17da445739c950fd237159f4 by Abseil Team <absl-team@google.com>:
Explicitly mention that FormatDuration deviates from Go for the zero duration
PiperOrigin-RevId: 333094962
--
83389040371436aab4e952211e98ffa98e24fd94 by Abseil Team <absl-team@google.com>:
Internal change.
PiperOrigin-RevId: 332862771
GitOrigin-RevId: bddfb8bae4e569884bf8749f5368e536562f0682
Change-Id: I4a47043ddbad6e700380614c75566c09d4943103
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
1829e203300191671abd4b478ca189019e6f88b1 by Abseil Team <absl-team@google.com>:
Don't return true from Demangle() when we didn't actually produce demangled output.
PiperOrigin-RevId: 332544020
--
239b617bd8322cfda69d0dcdd3d78499ed61206d by Abseil Team <absl-team@google.com>:
Minor documentation fix.
PiperOrigin-RevId: 332517877
--
d566c156619bbdceaf6e84bd0d3aa575d5e790f8 by Gennadiy Rozental <rogeeff@google.com>:
Added missing asserts for seq.index() < capacity_ and unified their usage based on has_element().
Import of https://github.com/abseil/abseil-cpp/pull/781
PiperOrigin-RevId: 332229369
GitOrigin-RevId: 1829e203300191671abd4b478ca189019e6f88b1
Change-Id: I5bb1f713497fef54a7abaf2020be91cb32e87b93
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
9214ee309fa224a43eb1621bcf826ab9c86a4cd7 by Abseil Team <absl-team@google.com>:
Don't keep constructing/destructing `random_device`.
It causes an open/close pair on /dev/urandom.
This is somewhat expensive on Emscripten, and unnecessary since it is not using
the value anyway.
PiperOrigin-RevId: 332055452
--
4931ab77995b946f3ffba8036e0a00927b0d47e6 by Abseil Team <absl-team@google.com>:
TYPO: Stess->Stress
PiperOrigin-RevId: 332010526
--
95ae1dde505f74dc7fd68447bf27718db223688e by Gennadiy Rozental <rogeeff@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 332010411
GitOrigin-RevId: 9214ee309fa224a43eb1621bcf826ab9c86a4cd7
Change-Id: I23c5d6aa5aa488370e1b48f37366d3d99448e7ec
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
| |
--
0e6d5abe305df4e943e0bc0256c67afc00956691 by Abseil Team <absl-team@google.com>:
Ensure that Hashtablez does not pull in absl::Mutex dependency when turned off at compile time.
PiperOrigin-RevId: 331142625
GitOrigin-RevId: 0e6d5abe305df4e943e0bc0256c67afc00956691
Change-Id: I984d6d3436e4825a7b20758c45b3142c0f3bb45a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
23500704dd7c2642fad49f88c07ce41ebaab12e4 by Abseil Team <absl-team@google.com>:
Change fetch_add() to store(1 + load())
As there is only one concurrent writer to the Info struct, we can avoid using
the more expensive fetch_add() function.
PiperOrigin-RevId: 329523785
--
79e5018dba2e117ad89b76367165a604b3f24045 by Abseil Team <absl-team@google.com>:
Record rehash count in hashtablez
This will help identify which containers could benefit from a reserve call.
PiperOrigin-RevId: 329510552
--
e327e54b805d67556f934fa7f7dc2d4e72fa066a by Abseil Team <absl-team@google.com>:
Fix -Wsign-compare issues.
These lines could theoretically have overflowed in cases of very large stack
traces etc. Very unlikely, but this was causing warnings when built with
-Wsign-compare, which we intend to enable with Chromium.
In none of these three cases is it trivial to switch to a range-based for loop.
PiperOrigin-RevId: 329415195
--
08aca2fc75e8b3ad1201849987b64148fe48f283 by Xiaoyi Zhang <zhangxy@google.com>:
Release absl::StatusOr.
PiperOrigin-RevId: 329353348
--
bf4d2a7f8b089e2adf14d32b0e39de0a981005c3 by Xiaoyi Zhang <zhangxy@google.com>:
Internal change
PiperOrigin-RevId: 329337031
--
42fa7d2fb993bbfc344954227cf1eeb801eca065 by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 329099807
GitOrigin-RevId: 23500704dd7c2642fad49f88c07ce41ebaab12e4
Change-Id: I6713e4ca3bb0ab2ced5e487827ae036ab8ac61f1
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
ec39082e792ef7bb17e8432b6e10d1cb96dbad24 by Derek Mauro <dmauro@google.com>:
Fix a sign-compare warning in btree.h
Fixes #771
PiperOrigin-RevId: 328653403
GitOrigin-RevId: ec39082e792ef7bb17e8432b6e10d1cb96dbad24
Change-Id: I6b681dcda4fd8933257b06d0428d40b1d01f6ad1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
9c9eb300c95024ea4242bbb4835595f555cb1eed by Derek Mauro <dmauro@google.com>:
Sync string_view comments from the internal copy
PiperOrigin-RevId: 328582796
--
c0bc4e77a46889430a1a40d836a5ff426a4a5bc9 by Xiaoyi Zhang <zhangxy@google.com>:
Make `absl::allocator_traits` an alias to `std::allocator_traits` for C++17 or
above. `std::allocator_traits` should have all its members since C++17 so we
don't need a backport.
PiperOrigin-RevId: 328258154
--
5599a3c0f2d865128057b5e267a397011cd032d0 by Derek Mauro <dmauro@google.com>:
Fix an #endif comment
Reported at https://groups.google.com/g/abseil-io/c/GRUdB0bBrG8/m/852HrgchCQAJ
PiperOrigin-RevId: 328247093
--
abd7e98088267f436e6c10779e574153ece015be by Abseil Team <absl-team@google.com>:
Don't call win32 APIs for UWP builds
symbolize.cc is including symbolize_win32.inc for all Windows builds,
including UWP builds. However, UWP doesn't have access to win32 APIs, so
it should instead include symbolize_unimplemented.inc.
This allows the necessary functions to still exist and be called, but
the win32 calls are not made.
This is part of the effort to enable Abseil in ANGLE:
https://anglebug.com/4873
PiperOrigin-RevId: 328226766
--
f622d3dfb804a6f427c1fd86ee69f47785b49483 by Greg Falcon <gfalcon@google.com>:
Remove incorrect claims of HASH_NAMESPACE support in Abseil hash.
The documentation presently claims that absl::Hash will look for legacy hashers (e.g, in the __gnu_cxx namespace) as controlled by the HASH_NAMESPACE preprocessor define, but this has never been true.
(Vestigial support for this appears in the form `ABSL_INTERNAL_LEGACY_HASH_NAMESPACE`, but this is not a supported extension point, as indicated by the use of `INTERNAL` in the name.)
PiperOrigin-RevId: 328154123
--
32b40a25efe1f7f7da98ce8faf3482c825464ed4 by Abseil Team <absl-team@google.com>:
Switch ABSL_INTERNAL_IGNORE_READS_ATTRIBUTE_ENABLED checks to defined().
PiperOrigin-RevId: 328151556
GitOrigin-RevId: 9c9eb300c95024ea4242bbb4835595f555cb1eed
Change-Id: Ib0686286f7889a976311e8cd2b35655765a8d033
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
9f746b79e16d36dba908ed9e2a586d890fe54acc by Derek Mauro <dmauro@google.com>:
Remove the Bazel mirror URL that we use in our WORKSPACE file
This doesn't appear to be supported. We use --distdir caching in our tests.
PiperOrigin-RevId: 327634738
--
e1f6f54830c415fc8bb8dc14483fae4cf9713d75 by Abseil Team <absl-team@google.com>:
Removing comments following license() rules as they are rarely useful, redundant with LICENSE files, and tend to fall out of date.
PiperOrigin-RevId: 327504063
--
b59c076638a57a74a3f8475f1dee8b536e32a15f by Gennadiy Rozental <rogeeff@google.com>:
Change GetAllFlags API to return a collection of mutable flag handles.
This will make this interface on par with FindCommandLineFlag and allow to call
CommandLineFlag::ParseFrom on the handle returned by GetAllFlags.
PiperOrigin-RevId: 327499084
--
bbf56b3c4a1d908d95e5a52aba38b1984151efff by Gennadiy Rozental <rogeeff@google.com>:
Make raw_hash_set compile when AllocTraits::propagate_on_container_swap is false.
PiperOrigin-RevId: 327371107
--
837f62c85ea65c1d6b847a75816198c625fe62ff by Abseil Team <absl-team@google.com>:
On macOS, `mem_alloc` is defined like this:
rpc/types.h:86:#define mem_alloc(bsize) calloc(1, bsize)
So if that file is included before container_memory.h, the variable mem_alloc
may never get defined. This is fixed by using a different name.
PiperOrigin-RevId: 327360224
--
aa8f5528382c0d01239ce75b645723aaf7e1ef46 by Gennadiy Rozental <rogeeff@google.com>:
Release of absl::GetAllFlags API.
PiperOrigin-RevId: 327275943
GitOrigin-RevId: 9f746b79e16d36dba908ed9e2a586d890fe54acc
Change-Id: I99c5c87dd1712bf8df9a52397b0c1e400a3c3447
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
0c8282d75798c77733eee6167870bcc6acc0bfc1 by Evan Brown <ezb@google.com>:
Provide mutable access to the key in node handles using std::launder when compiled with C++17 or later.
Also, document why we can't provide mutable access to the key without C++17.
Note: we use Policy::mutable_key() because btree already uses Policy::key() internally to get const key access, and we want to avoid calling std::launder unless we need mutable access to the key.
PiperOrigin-RevId: 326519000
--
8018d0c3044400f0a731b0d2d00b606742c98818 by Xiaoyi Zhang <zhangxy@google.com>:
Move `Status` internal symbols from the public header into an internal header file.
PiperOrigin-RevId: 326471847
--
87a7644864ba7c003b0611898aaba1b71c840376 by Abseil Team <absl-team@google.com>:
Avoid a costly divide (the division accounts for 10% of the time spent in the function).
When the division is signed, the compiler has to generate a div. When it is unsigned, it can generate a shift: https://godbolt.org/z/vGfTv4. As per the test above the div, we know that the value is unsigned.
PiperOrigin-RevId: 326453275
GitOrigin-RevId: 0c8282d75798c77733eee6167870bcc6acc0bfc1
Change-Id: I0a953558358055ab3dc6a533d8930698509b1195
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
240f86077dabaa58210e6b1a35cc442902409bf5 by Gennadiy Rozental <rogeeff@google.com>:
Fix the link to the Allocator concept description.
PiperOrigin-RevId: 326292363
--
d023337da5c7c23ec5f316c4e03efc4d8404ad63 by Gennadiy Rozental <rogeeff@google.com>:
Add -DNOMINMAX to gcc/clang build command line in case they are used to build Abseil on Windows.
Fixes #761
PiperOrigin-RevId: 326255039
GitOrigin-RevId: 240f86077dabaa58210e6b1a35cc442902409bf5
Change-Id: If8a40a9b2be9c0c1e652347e2f22e2fff6bbeaa1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
c12db0cff0f0cb0c10731cdf4bf1663e99ecb82e by Samuel Benzaquen <sbenza@google.com>:
Fix incompatibility of retired flags and AddressSanitizer.
PiperOrigin-RevId: 325028944
--
20119dce82503c6ac22f3ec479d0eaea6acc7ba0 by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 324939694
--
bb1ab1a4e1a551469ad110bdfce3210aeb9bf4b8 by Abseil Team <absl-team@google.com>:
Teach Abseil stack consumption utilities about AArch64.
PiperOrigin-RevId: 324935395
--
987043ffc960f38457478b01c04b47dfaf7ae006 by Evan Brown <ezb@google.com>:
Cleanup: simplify the slot transfer methods a bit.
PiperOrigin-RevId: 324834817
--
ed7081130d3ab93a2c3c916e30fe4367d8e96954 by Abseil Team <absl-team@google.com>:
Pass __FILE__ as const char* instead of as array of chars to internal_log_function
to allow deterministic symbols for AtomicHook wrapper of the InternalLogFunction
PiperOrigin-RevId: 324800499
GitOrigin-RevId: c12db0cff0f0cb0c10731cdf4bf1663e99ecb82e
Change-Id: Ibb92b1cab465e45abc86281f0fba894c82a662df
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
873b52b0a691e759413c5db27dafc541a5da5263 by Andy Getzendanner <durandal@google.com>:
Introduce an internal-only thread-local caching wrapper around GetTID.
PiperOrigin-RevId: 323055682
--
091a4537f1ef6e158acbf4261cfae1af7a3bdb7f by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 322864497
--
c80ccfff2a825819f31826a30f48cca3297699f8 by Evan Brown <ezb@google.com>:
Roll forward b-tree changes simplifying deletion and getting rid of recursion in clear_and_delete().
We also change clear_and_delete() to avoid some unnecessary comparisons by restructuring the loops.
PiperOrigin-RevId: 322658938
--
81464c0fb9c8c6268dca2e530aba99e75e1e59ae by Gennadiy Rozental <rogeeff@google.com>:
Eliminate definition of RunningOnValgrind inside the library.
Fixes #674
Fixes #657
PiperOrigin-RevId: 322508440
GitOrigin-RevId: 873b52b0a691e759413c5db27dafc541a5da5263
Change-Id: I20b40c9e8fc62edcf981caab467cca33cf6fd2ba
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
dcd4d95f6201dc5781a3a374be8eb10c812fd98a by Derek Mauro <dmauro@google.com>:
Add -Wundef to GCC warnings
PiperOrigin-RevId: 322388155
--
b030746368262aff6bc487f5525bcd9b32d18ebb by Abseil Team <absl-team@google.com>:
Google internal clean-up.
PiperOrigin-RevId: 322381901
--
18e4cfcd50730c493cfc0cf1e127e57c186ce90b by Evan Brown <ezb@google.com>:
Rollback b-tree erase simplification change.
PiperOrigin-RevId: 322368252
--
d15431c52fa7ccb25ffbd967fd11f8f58246d48a by Abseil Team <absl-team@google.com>:
Update MOCK_METHOD (new format) in memory/memory_test.cc
PiperOrigin-RevId: 322208282
GitOrigin-RevId: dcd4d95f6201dc5781a3a374be8eb10c812fd98a
Change-Id: I3a900b4993f86bdd1c9597819c7a0e6e1759eda3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
763b4755cc65db94fb1d6c09655f77deee685698 by Evan Brown <ezb@google.com>:
Rollback change getting rid of recursion in clear_and_delete().
PiperOrigin-RevId: 322156175
--
e430ae6970ae2e76357876449878033e3c72e734 by Greg Falcon <gfalcon@google.com>:
fix build on P9
Import of https://github.com/abseil/abseil-cpp/pull/739
PiperOrigin-RevId: 321855200
--
3076c5bf811a950e7f7914023434d4aa9c0fbbb0 by Derek Mauro <dmauro@google.com>:
Check for the existence of CMake policies before using them
Fixes #742
PiperOrigin-RevId: 321798698
GitOrigin-RevId: 763b4755cc65db94fb1d6c09655f77deee685698
Change-Id: I641e42f8bebe236b75f1bf1116a129c2ad9b2571
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
d2b7a83bafb90d35b2b7d8eb4177e9d712e8d62c by Gennadiy Rozental <rogeeff@google.com>:
Introduce ABSL specific macros for detecting the usage of sanitizers.
PiperOrigin-RevId: 321687443
--
a41342cc04b1088087dda12d7272aa3835f8e36a by Evan Brown <ezb@google.com>:
Get rid of recursion in clear_and_delete().
PiperOrigin-RevId: 321583786
--
99c6d300b17f186c28867b08cc79f1e55077e88a by Evan Brown <ezb@google.com>:
Code simplification: consolidate methods to erase values/nodes.
Motivation: this will make floating storage work simpler.
- Delete erase_same_node/erase_from_leaf_node/remove_value/remove_values_ignore_children.
- Move node deletion methods inside btree_node.
- Delete three-argument move() and use transfer_n() instead.
- Note: there's still one usage of move (in btree::erase(iterator)) that could use transfer, but I think doing so would add more complexity than it's worth.
PiperOrigin-RevId: 321407673
--
c3efed6c1763190c6b3bccbede9b2989ab21b258 by Evan Brown <ezb@google.com>:
Support heterogeneous insert_or_assign, try_emplace, operator[] for btree_map.
Also do a bit of cleanup:
- Add _impl methods for insert_or_assign/try_emplace.
- Rename some hint iterator params from `position` to `hint`.
PiperOrigin-RevId: 321399557
GitOrigin-RevId: d2b7a83bafb90d35b2b7d8eb4177e9d712e8d62c
Change-Id: Ie2d0c7c3ed197c2b53d475248941392cbad20e59
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
4833151c207fac9f57a735efe6d5db4c83368415 by Gennadiy Rozental <rogeeff@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 320398694
--
a1becb36b223230f0a45f204a5fb33b83d2deffe by Gennadiy Rozental <rogeeff@google.com>:
Update CMakeLists.txt
Import of https://github.com/abseil/abseil-cpp/pull/737
PiperOrigin-RevId: 320391906
--
b529c45856fe7a3447f1f3259286d57e13b1f292 by Abseil Team <absl-team@google.com>:
Improves a comment about use of absl::Condition.
PiperOrigin-RevId: 320384329
--
c7b1dacda2739c10dc1ccbfb56b07ed7fe2464a4 by Laramie Leavitt <lar@google.com>:
Improve FastUniformBits performance for std::minstd_rand.
The rejection algorithm was too pessimistic before, and not in line with the [rand.adapt.ibits]. Specifically, when sampling from an URBG with a non power of 2 range, FastUniformBits constructed a rejection threshold with a power-of-2 range that was too restrictive.
For example, minstd_rand has a range of
[1, 2147483646], which has a range of 2145386495, or about 30.999 bits.
Before FastUniformBits rejected values between 1<<30 and 2145386495, which includes approximately 50% of the generated values. However, since a minimum of 3 calls are required to generate a full 64-bit value from an entropy pool of 30.9 bits, the correct value for rejection sampling is the range value which masks 21 (0x7fe00000) or 22 bits and rejects values greater than that. This reduces the probability of rejecting a sample to about 0.1%
NOTE: Abseil random does not guarantee sequence stability over time, and this is expected to change sequences in some cases.
PiperOrigin-RevId: 320285836
--
15800a39557a07dd52e0add66a0ab67aed00590b by Gennadiy Rozental <rogeeff@google.com>:
Internal change.
PiperOrigin-RevId: 320220913
--
ef39348360873f6d19669755fe0b5d09a945a501 by Gennadiy Rozental <rogeeff@google.com>:
Internal change
PiperOrigin-RevId: 320181729
--
4f9f6ef8034a24da1832e4c838c72f80fc2ea062 by Gennadiy Rozental <rogeeff@google.com>:
Internal change
PiperOrigin-RevId: 320176084
--
6bfc8008462801657d231585bd5c37fc18bb25b6 by Gennadiy Rozental <rogeeff@google.com>:
Internal change
PiperOrigin-RevId: 320176070
--
b35b055ab1f41e6056031ff0641cabab23530027 by Abseil Team <absl-team@google.com>:
Disabling using header module as well as building one for randen_hwaes_impl
PiperOrigin-RevId: 320024299
GitOrigin-RevId: 4833151c207fac9f57a735efe6d5db4c83368415
Change-Id: I9cf102dbf46ed07752a508b7cda3ab3858857d0d
|