| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
a74bdb72c3a6983e08a805938dd0e20e97d55bba by Abseil Team <absl-team@google.com>:
Fix typo: calcualte -> calculate
PiperOrigin-RevId: 360515509
--
3ddf8ac194e81a13e9de095e59dd061c1beacfe3 by Benjamin Barenblat <bbaren@google.com>:
Make tests tolerant of FMA contraction
Weaken Duration.ToDoubleSecondsCheckEdgeCases and
Duration.ToDoubleSecondsCheckRandom to make them less sensitive to fused
multiply/add contraction.
PiperOrigin-RevId: 360297653
GitOrigin-RevId: a74bdb72c3a6983e08a805938dd0e20e97d55bba
Change-Id: I0c55383bc13040ea77511c4130d142368103dc57
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
a9eb3c976c6d8ef4fca3d416847f8fca4bd90dd7 by Derek Mauro <dmauro@google.com>:
Remove the deprecated container library, which doesn't do anything.
This will help prevent user confusion, as seen in #183.
PiperOrigin-RevId: 360172262
--
4f872f651e25a528bdc59ee4e24543fbbd358f00 by Abseil Team <absl-team@google.com>:
Remove unused nspace alias.
PiperOrigin-RevId: 359487559
--
43e877e464886cf9226012f5bb47910b8995e70f by Abseil Team <absl-team@google.com>:
Create a StatusToStringMode to control how the ToString behaves.
PiperOrigin-RevId: 359339603
--
0da1291569e167341613359846948c72c8a838e1 by Greg Falcon <gfalcon@google.com>:
Fix a bug in SimpleAtoi/SimpleAtof, which accepted a prefix of "+-" (e.g., "+-5" was parsed as 5.0).
This regression was introduced when we migrated these functions to use absl::from_chars.
PiperOrigin-RevId: 359135105
GitOrigin-RevId: a9eb3c976c6d8ef4fca3d416847f8fca4bd90dd7
Change-Id: I0e2072cad80651e473ba1d34b1fb3a033dfaba80
|
|
|
|
|
|
|
|
|
|
|
| |
--
32b444c0540e8255cc216171aba57639903edc22 by CJ Johnson <johnsoncj@google.com>:
Add missing `final` to `absl::Cleanup` since it is not an interface type and should never be used as a base class.
PiperOrigin-RevId: 359045692
GitOrigin-RevId: 32b444c0540e8255cc216171aba57639903edc22
Change-Id: I4f72714cd6f2e101709f31958af28b358f15646b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
| |
* Add support for alpha
* Add support for hppa
* Add support for ia64
* Add support for sh
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
f27dbf50d5db12279ab018f11c93ad1704043006 by Derek Mauro <dmauro@google.com>:
Internal change
PiperOrigin-RevId: 358298501
--
864c141a59e20e96234c06700d7519d43bc73d71 by Derek Mauro <dmauro@google.com>:
Annotates the duration-to-int64 and duration-to-double conversion
functions as "pure" to potentially optimize out repeated calls with
the same argument
This adds an ABSL_ATTRIBUTE_PURE_FUNCTION macro for this purpose.
PiperOrigin-RevId: 358247225
GitOrigin-RevId: f27dbf50d5db12279ab018f11c93ad1704043006
Change-Id: I5c2238911711b15d9d3ae53da44db788f20b402b
|
|
|
| |
Fixes #895
|
|
|
| |
Fixes #893
|
|
|
| |
Fixes #894
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
2247e59ee5696e61c7cb24dce479db572980032d by Derek Mauro <dmauro@google.com>:
Ensure ThreadIdentity::WaiterState data has the correct alignment
PiperOrigin-RevId: 357969866
--
79bb81a2e6723b186536ad4b4f25cd7ee83f3e72 by Laramie Leavitt <lar@google.com>:
Rework absl::MockingBitGen internal mock registry.
Use a virtual base class with template-specialized derived classes to implement match method rather than taking the address of a function specialization and using casts everywhere.
This combines several of the previously type-erased pointers into a single object, eliminates the separate cleanup container previously used, and eliminates some gratuitous static_cast<>s.
PiperOrigin-RevId: 357827438
--
a2eb53d002c9b376360a70b2b0f6a18a1de1e16f by Todd Lipcon <tlipcon@google.com>:
Reduce runtime of sequence_lock_test
PiperOrigin-RevId: 357785571
--
dd1175ff13b560f01c4aaa64bc6759a5300e391c by Abseil Team <absl-team@google.com>:
Don't assume that compiling for Windows means that MSVC or clang-cl is being used.
PiperOrigin-RevId: 357760052
--
251a9cbede52e729b3a25911b6e225b779c285a8 by Andy Getzendanner <durandal@google.com>:
Internal change.
PiperOrigin-RevId: 357702979
GitOrigin-RevId: 2247e59ee5696e61c7cb24dce479db572980032d
Change-Id: Icd366d3775d88d623695209b5f328dbd69f01d27
|
|
|
|
|
|
|
|
|
|
|
| |
--
1211187ce27bbccc0198f1eb2e25ef9f913e2cdb by Abseil Team <absl-team@google.com>:
Fix typo in github issue config
PiperOrigin-RevId: 357034108
GitOrigin-RevId: 1211187ce27bbccc0198f1eb2e25ef9f913e2cdb
Change-Id: Iab3fabbf471ed4626609c7f3545e7e7011627c25
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
684e488495a2d95def9a865569ad5ba7ec89967f by Abseil Team <absl-team@google.com>:
Remove references to deleted clang-tidy checks.
Tested:
TAP --sample ran all affected tests and none failed
http://test/OCL:356861384:BASE:356825575:1613005412689:548d66bd
PiperOrigin-RevId: 356877726
--
f9d8549cd67866e13bb71b21280ec293684ab43b by Abseil Team <absl-team@google.com>:
Add missing closing punctuation to two file-level comments.
PiperOrigin-RevId: 356867260
GitOrigin-RevId: 684e488495a2d95def9a865569ad5ba7ec89967f
Change-Id: Ibe04878684c20a23b214ee7e5df9c6dd434bc3dc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
756156bf03da050e8b27539a8247d9af7e44c6a2 by Abseil Team <absl-team@google.com>:
Fix a typo in cord.h: "accomodate" => "accommodate"
PiperOrigin-RevId: 356168875
--
638befdb342b608ec28910ee931ee200fdbe1fef by Samuel Benzaquen <sbenza@google.com>:
Fix float conversion for PPC.
In PPC `long double` is a double-double representation which behaves weirdly
wrt numeric_limits. Don't take `long double` into account when we are not
handling `long double` natively anyway.
Fix the convert test to always run the conversion even if we are not going to
compare against libc's printf result. This allows exercising the code itself to
make sure we don't trigger assertions or UB found by sanitizers.
PiperOrigin-RevId: 355857729
--
ff5f893319fa76b273c7785b76ef6c95b1791076 by Abseil Team <absl-team@google.com>:
Example usage tweak
PiperOrigin-RevId: 355695750
--
0efc454f90023fa651b226e5e3ba7395a3b60c6d by Benjamin Barenblat <bbaren@google.com>:
Remove endian-sensitivity from Abseil’s RNG
Ensure that the Abseil random number generator produces identical output
on both big- and little-endian platforms by byte-swapping appropriately
on big-endian systems.
PiperOrigin-RevId: 355635051
GitOrigin-RevId: 756156bf03da050e8b27539a8247d9af7e44c6a2
Change-Id: Iaaa69767b8e85d626742b9ba56fefb75f07c69ee
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
| |
Co-authored-by: Christian Fersch <Chronial@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
cea62ebc5d31c62aabcb94c066d9be506f34baf6 by Abseil Team <absl-team@google.com>:
Fix typo in `Cord::EndsWith()` docs
PiperOrigin-RevId: 355023067
--
f89225a55476478ec167be50dea543f5414836f9 by Abseil Team <absl-team@google.com>:
Add set_cordz_info() and get_cordz_info() methods to InlineData
This change has preparations for future (optional) integration of CordzInfo sampling data into Cord's InlineData for non inlined cords.
PiperOrigin-RevId: 354965340
--
324057574aeb697bd3327cb905eb5bca16ade768 by Abseil Team <absl-team@google.com>:
Fix two comment typos.
PiperOrigin-RevId: 354952568
--
5bb93ca3d57ead3633e1efde4aa28718987ef64f by CJ Johnson <johnsoncj@google.com>:
Clarify doc comment for absl::Cleanup by using absl::Status return type and clarify the engaged state by surfacing the initial value in the public header.
PiperOrigin-RevId: 354935253
--
ec95424594b24a1aec9bf7972b2355f37285506a by Abseil Team <absl-team@google.com>:
Remove `preserve_most` attribute from CordRep::Destroy()
PiperOrigin-RevId: 354921927
GitOrigin-RevId: cea62ebc5d31c62aabcb94c066d9be506f34baf6
Change-Id: Ibe1d66197db7ce9554594e07b1c6e7c6dea3c9da
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
8c77b14bdee3f4cafb8ba520d4d050b15a949fd4 by Derek Mauro <dmauro@google.com>:
Fix absl::Cleanup usage example
PiperOrigin-RevId: 354702001
--
10365da7a0aacaa0c4774a4b618a76dff328611b by CJ Johnson <johnsoncj@google.com>:
Swap the order of the C++11 and C++17 interfaces for absl::Cleanup to mirror the order used in the comment example
PiperOrigin-RevId: 354675180
GitOrigin-RevId: 8c77b14bdee3f4cafb8ba520d4d050b15a949fd4
Change-Id: Ia2054b725ed737ff9e557cb3d973de7c34bc51b0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
3b43586da865534cf86401d2cae09c65c60b8474 by Abseil Team <absl-team@google.com>:
Introduce CordRepRingReader class
PiperOrigin-RevId: 353070937
--
0bff6e4bcca34fdd1e6610da5fb3c37fd49b2940 by Abseil Team <absl-team@google.com>:
Fix docstring typo "Exmaple" -> "Example"
PiperOrigin-RevId: 352927688
--
1ef4e0a1100cfa7bc9d9e8f155acf0e469348b56 by Abseil Team <absl-team@google.com>:
Refactor tree initialization of ChunkIterator and CordReader
PiperOrigin-RevId: 352916786
--
919c3eb175b87294184a405785eef4fab520d47e by Abseil Team <absl-team@google.com>:
Disable `preserve_most` when compiling with sanitizers.
PiperOrigin-RevId: 352890630
GitOrigin-RevId: 3b43586da865534cf86401d2cae09c65c60b8474
Change-Id: I8a733494b353af69a46862a4019a7f9b40148f49
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
642ab296a2c9629c44f3f2ce6911cd2488bcf416 by Derek Mauro <dmauro@google.com>:
Remove an obsolete check in CMakeLists.txt
PiperOrigin-RevId: 352852564
--
ce78cb96bcfd162737dbcf35005da3d1d6a3486b by Abseil Team <absl-team@google.com>:
Clarify that the calling *thread* must have locked the mutex in order to unlock
it.
PiperOrigin-RevId: 352801804
--
24e1f5f72756046f5265abf618e951c341f09b8d by Derek Mauro <dmauro@google.com>:
Fixes failing CMake string comparisons
https://cmake.org/cmake/help/latest/policy/CMP0054.html
Fixes #791
PiperOrigin-RevId: 352791054
--
0ac10bc3f4dca2c4c4b51d7b8196a2eaee9537a1 by Abseil Team <absl-team@google.com>:
Introduce CordRepRing class
This change introduces the CordRepRing class that implements all the lower level / internal implementation for upcoming CordRepRing ring buffer support in cord.
PiperOrigin-RevId: 352771994
--
4bd36dda61760785844f0f29f26d90cc18046f75 by Abseil Team <absl-team@google.com>:
Optimize InlineData representation for cord sampling (cordz)
This CL changes InlineData to allow us to store a (future) Cordz Info pointer directly into the inline representation:
- make InlineData a class that provides a public API to set the active union members (tree or chars) and safely access that data.
- change 'tree' and 'profiled' bits to be the 2 least significant bits, allowing us 62 continquous bits for storing a Cordz Info pointer.
PiperOrigin-RevId: 352642411
--
dc55ba71bbce0e6a83e05a453990c51ac3d68426 by Mark Barolak <mbar@google.com>:
Add unit test coverage for the mutating overload of absl::AsciiStrToLower.
PiperOrigin-RevId: 352626006
GitOrigin-RevId: 642ab296a2c9629c44f3f2ce6911cd2488bcf416
Change-Id: I6c5929dd830d3c630e14e7fd5387fc3e25a69100
|
|
|
|
|
|
|
|
|
|
|
| |
--
874f906d2b90d4c74b0edeac52811efc10323422 by Todd Lipcon <tlipcon@google.com>:
Internal change
PiperOrigin-RevId: 352140672
GitOrigin-RevId: 874f906d2b90d4c74b0edeac52811efc10323422
Change-Id: I151299caff75d404309f059dd0e5971f5a71655d
|
|
|
|
|
|
|
|
|
|
|
| |
--
e36760a8db7f0417dad3429987c2b026278a1e07 by Andy Getzendanner <durandal@google.com>:
Nit: s/GUARDED_BY/ABSL_GUARDED_BY/
PiperOrigin-RevId: 351752933
GitOrigin-RevId: e36760a8db7f0417dad3429987c2b026278a1e07
Change-Id: Ib8394f030092b1832adde759cd37e0207acc7e4b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
a0491c8d790972cd80e2d720fe1fdf5f711a6f1a by Greg Falcon <gfalcon@google.com>:
Stop directly accessing CordRepFlat data via CordRep::data.
The old pattern of access breaks the `CordRep` type abstraction; since `CordRep::data` is not in general guaranteed to contain the chunk's data, we shouldn't access it that way.
This incidentally adds an assertion check (via the flat() accessor) that the CordRep is indeed flat on each such access, but a manual inspection of the code, as well as the fact that this code currently works, suggest that this is always true.)
PiperOrigin-RevId: 351592344
--
f40c3b43ca5b1d7e23cd45f1ffac1783105ac1a3 by Abseil Team <absl-team@google.com>:
Revert 18abb2902b9f06c63a968b24d3dda785ebf99a22
PiperOrigin-RevId: 351523518
--
18abb2902b9f06c63a968b24d3dda785ebf99a22 by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 351512412
--
9b881602d45e95e06089792c7627cd56528a255a by Abseil Team <absl-team@google.com>:
Keep time's global state in a cacheline-aligned structure.
Keeping the global state as separate global variables results in two issues:
1) False sharing with adjacent global data (e.g., cycle clock source), since
the global fields are updated every O(10usec).
2) The hot global fields (e.g., seq and samples) can reside on different
cache lines.
To fix this, simply wrap the global data in a ABSL_CACHE_ALIGNED structure.
This is similar to what we do for MutexGlobals.
PiperOrigin-RevId: 351389466
GitOrigin-RevId: a0491c8d790972cd80e2d720fe1fdf5f711a6f1a
Change-Id: Ie0fa80112043381cd37c84e2ab2b7334839f54b5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
1609589925459c2c0b2a17912c0d65227f709db9 by Abseil Team <absl-team@google.com>:
Clarify the "Potential Mutex deadlock" reason message.
PiperOrigin-RevId: 351367862
--
88bf28863db2c2d2d48767c3e4dfab6a48bdff79 by Abseil Team <absl-team@google.com>:
Print CPU number is fault handler.
This CL adds code to print CPU number inside the fault handler. This is only supported on Linux. The CPU number is also a hint only. There is no guarantee that it is indeed the CPU on which a fault happened.
PiperOrigin-RevId: 351238373
--
66a9c8e44b5744fec1ca0d7b8db7e1d50772d9a2 by Samuel Benzaquen <sbenza@google.com>:
Add better error message for ODR violations of flags.
PiperOrigin-RevId: 351197423
--
6efd1efb341563148dd43255aaa4bf959dfd9554 by Chris Kennelly <ckennelly@google.com>:
Assume bitwise builtins are available on GCC.
These are long-standing builtins but are not consistently detected by
ABSL_HAVE_BUILTIN.
PiperOrigin-RevId: 350814036
GitOrigin-RevId: 1609589925459c2c0b2a17912c0d65227f709db9
Change-Id: Ied3fd2f135187f2c316b403fba45f3bbaea54138
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
b927776da818c674a674e46a7bbbdd54170a0ad3 by Todd Lipcon <tlipcon@google.com>:
Include priority in the calculation of mutex waiter equivalence
This changes the behavior of the absl::Mutex wait list to take into account
waiter priority when creating "skip chains". A skip chain on the wait list
is a set of adjacent waiters that share some property and enable skipping
during traversal.
Prior to this CL, the skip chains were formed of waiters with the same
wait type (e.g. exclusive vs read) and Condition. With this CL, the priority
is also taken into account.
This avoids O(n) behavior when enqueueing a waiter onto a wait list where
the oldest waiter is at a lower priority than the waiter to be enqueued.
With the prior notion of equivalence class, a skip chain could contain
waiters of different priority, so we had to walk the linked list one-by-one
until finding the appropriate insertion point. With the new equivalence
class computation, we can skip past all of the equivalent waiters to find
the right insertion point.
This gives a substantial improvement to the enqueue performance in the
case where there's already a waiter at lower priority.
Note that even though this code path isn't a hot one, it's performed while
holding the Mutex's spinlock, which prevents other threads from unlocking
the Mutex, so minimizing the time under the critical section can have
"knock-on" throughput benefits.
Notable performance differences:
name old cpu/op new cpu/op delta
BM_MutexEnqueue/multiple_priorities:0/threads:4 8.60µs ± 7% 8.69µs ± 6% ~ (p=0.365 n=19+20)
BM_MutexEnqueue/multiple_priorities:0/threads:64 8.47µs ± 5% 8.64µs ±10% ~ (p=0.569 n=19+20)
BM_MutexEnqueue/multiple_priorities:0/threads:128 8.56µs ± 3% 8.55µs ± 6% ~ (p=0.563 n=17+17)
BM_MutexEnqueue/multiple_priorities:0/threads:512 8.98µs ± 8% 8.86µs ± 4% ~ (p=0.232 n=19+17)
BM_MutexEnqueue/multiple_priorities:1/threads:4 6.64µs ±10% 6.45µs ± 4% ~ (p=0.097 n=20+17)
BM_MutexEnqueue/multiple_priorities:1/threads:64 15.2µs ± 8% 9.1µs ± 4% -39.93% (p=0.000 n=20+17)
BM_MutexEnqueue/multiple_priorities:1/threads:128 22.3µs ± 6% 9.4µs ± 4% -57.82% (p=0.000 n=20+17)
BM_MutexEnqueue/multiple_priorities:1/threads:512 61.5µs ± 3% 10.1µs ± 8% -83.53% (p=0.000 n=20+20)
name old time/op new time/op delta
BM_Mutex/real_time/threads:1 19.6ns ± 4% 19.8ns ±11% ~ (p=0.534 n=17+17)
BM_Mutex/real_time/threads:112 120ns ±17% 122ns ±14% ~ (p=0.988 n=20+18)
BM_MutexEnqueue/multiple_priorities:0/threads:4 5.18µs ± 6% 5.23µs ± 6% ~ (p=0.428 n=19+20)
BM_MutexEnqueue/multiple_priorities:0/threads:64 5.06µs ± 5% 5.18µs ±10% ~ (p=0.235 n=19+20)
BM_MutexEnqueue/multiple_priorities:0/threads:128 5.16µs ± 3% 5.14µs ± 6% ~ (p=0.474 n=17+17)
BM_MutexEnqueue/multiple_priorities:0/threads:512 5.40µs ± 8% 5.32µs ± 5% ~ (p=0.196 n=20+18)
BM_MutexEnqueue/multiple_priorities:1/threads:4 3.99µs ±10% 3.88µs ± 3% ~ (p=0.074 n=20+17)
BM_MutexEnqueue/multiple_priorities:1/threads:64 8.48µs ± 9% 5.41µs ± 3% -36.20% (p=0.000 n=20+16)
BM_MutexEnqueue/multiple_priorities:1/threads:128 12.2µs ± 6% 5.6µs ± 4% -54.43% (p=0.000 n=20+17)
BM_MutexEnqueue/multiple_priorities:1/threads:512 32.1µs ± 3% 5.9µs ± 8% -81.45% (p=0.000 n=20+20)
...
BM_Contended<absl::Mutex>/cs_ns:2000/num_prios:2/real_time/threads:32 1.69µs ± 4% 1.66µs ± 2% -1.91% (p=0.000 n=20+20)
BM_Contended<absl::Mutex>/cs_ns:2000/num_prios:2/real_time/threads:48 1.90µs ± 2% 1.82µs ± 2% -4.09% (p=0.000 n=20+19)
BM_Contended<absl::Mutex>/cs_ns:2000/num_prios:2/real_time/threads:64 2.19µs ± 2% 1.80µs ± 1% -17.89% (p=0.000 n=20+20)
BM_Contended<absl::Mutex>/cs_ns:2000/num_prios:2/real_time/threads:96 2.18µs ± 5% 1.81µs ± 1% -16.94% (p=0.000 n=17+19)
BM_Contended<absl::Mutex>/cs_ns:2000/num_prios:2/real_time/threads:128 2.18µs ± 1% 1.91µs ± 2% -12.33% (p=0.000 n=19+20)
BM_Contended<absl::Mutex>/cs_ns:2000/num_prios:2/real_time/threads:192 2.27µs ± 2% 1.89µs ± 1% -16.79% (p=0.000 n=20+19)
BM_Contended<absl::Mutex>/cs_ns:2000/num_prios:2/real_time/threads:256 2.36µs ± 2% 1.83µs ± 1% -22.25% (p=0.000 n=20+19)
PiperOrigin-RevId: 350775432
--
e7812590e5dbd75d21e2e8762713bd04c0353ef6 by Todd Lipcon <tlipcon@google.com>:
Fix test timeouts for sequence_lock_test on TSAN
PiperOrigin-RevId: 350680903
--
3090d8154d875f3eabce48876321ae8d6a197302 by Todd Lipcon <tlipcon@google.com>:
Add benchmarks for Mutex performance with multiple priorities
This adds a new benchmark to mutex_benchmark which forces threads to go
through the slow "Enqueue" path. The benchmark runs with varying numbers
of threads and with/without the presence of a lower-priority waiter.
PiperOrigin-RevId: 350655403
GitOrigin-RevId: b927776da818c674a674e46a7bbbdd54170a0ad3
Change-Id: If739e5e205f0d3867661a52466b8f64e7e033b22
|
|
|
|
|
|
|
|
|
|
|
| |
--
e86453648e05d9bf30ff97a68fba8ce5134ee1c9 by Abseil Team <absl-team@google.com>:
Fix compilation in C with clang on windows with -Wundef flag
PiperOrigin-RevId: 350545275
GitOrigin-RevId: e86453648e05d9bf30ff97a68fba8ce5134ee1c9
Change-Id: I029538298ff894d5798b9c6f488af7aa1a3ec2a7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
9d120df9deffb80c2102ac5048bb18c0cf5b9506 by Derek Mauro <dmauro@google.com>:
Delete LTS.md
Update links to point to https://abseil.io/about/releases and
https://github.com/abseil/abseil-cpp/releases instead.
PiperOrigin-RevId: 350239792
--
43790be723cc11169a559e25b2198ee07a63722c by Derek Mauro <dmauro@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 350188087
GitOrigin-RevId: 9d120df9deffb80c2102ac5048bb18c0cf5b9506
Change-Id: Ieb9bd31a3af06e64a3d49f8b233daafe7827f733
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
4e789887c5e2d3e531499c6c761a10bf60272969 by Abseil Team <absl-team@google.com>:
Remove a branch from MutexDelay.
Store the mutex sleep limit in the static so that it's not calculated every
time. Remove num_cpus from the static data because it's not used anymore. The
size of static data is 2 QWORDS after this change.
PiperOrigin-RevId: 350069849
GitOrigin-RevId: 4e789887c5e2d3e531499c6c761a10bf60272969
Change-Id: Ic374c63c8a7011b5f8931459e44a7841d4b2a2e6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
465461299a9814aca325fee599cefbfe462f12fe by Abseil Team <absl-team@google.com>:
Optimize trivially copyable flags with a sequence lock
PiperOrigin-RevId: 349602779
--
73f39f959e21121684a51887243abad0814a335e by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 349590869
--
6b3106fa66b8f075a39a1a8f3265ae132b7e2c84 by Abseil Team <absl-team@google.com>:
Remove ABSL_DLL from `log_prefix_hook` and `abort_hook`.
PiperOrigin-RevId: 349560499
--
bb0d295e699a509f3284145e025d00036b70dbb2 by Abseil Team <absl-team@google.com>:
Tiny docstring fix
A small edit to make "use of this is useful" a little less redundant. :)
PiperOrigin-RevId: 349445689
GitOrigin-RevId: 465461299a9814aca325fee599cefbfe462f12fe
Change-Id: I08cc4091b8b95b68188cb9168ac622dacc5fa688
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
be02479c8f5ddf18f0d711e86648a2a0a9823fb6 by Gennadiy Rozental <rogeeff@google.com>:
Suppress MSVC warning about unused return value
PiperOrigin-RevId: 348624511
--
10e6da15e34d84d314fc1eca1bcdeb96538a04d1 by Derek Mauro <dmauro@google.com>:
Add additional information to README.md
PiperOrigin-RevId: 348562436
--
57283e13d221d9a3f6678a1c6db1a41b4421b938 by Jorg Brown <jorg@google.com>:
Tweaks for better AArch64 support under MSVC
PiperOrigin-RevId: 348518028
--
48cb64ed90c71db6342dcf478a03bbb419b98500 by Christian Blichmann <cblichmann@google.com>:
Internal change
PiperOrigin-RevId: 348480642
GitOrigin-RevId: be02479c8f5ddf18f0d711e86648a2a0a9823fb6
Change-Id: I3614bf846ad1b99e34f507346da1252c6bbc13ba
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
b95862447354428f62ae1627cf526e42ca0b7a9d by Christian Blichmann <cblichmann@google.com>:
Minor cleanups:
* Sorting using declarations
* Changing the format of a NOLINT statement
PiperOrigin-RevId: 348448885
--
954a4375fb09267e55dfda345605b9aca54998b0 by Abseil Team <absl-team@google.com>:
Enable some more Emscripten tests.
Requires setting -s PRINTF_LONG_DOUBLE=1 in a recent build.
PiperOrigin-RevId: 348043610
GitOrigin-RevId: b95862447354428f62ae1627cf526e42ca0b7a9d
Change-Id: I517c94a5fd0feb9b99823dc8552d28fa598723fe
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
| |
It is a bit confusing that it is not listed here although already publically released.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
751781aa5b9e998f84a8a7e00789c80d3338730e by Abseil Team <absl-team@google.com>:
Fix attributes.h compilation with -Wundef flag in C
PiperOrigin-RevId: 347394915
--
66070a8166b0e1a61236b954d07fbb378f4f990b 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: 347384869
GitOrigin-RevId: 751781aa5b9e998f84a8a7e00789c80d3338730e
Change-Id: Ibf1190d498a6f968f2ea9b89467ccfb5224dafa8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
7b6a68aa92dcc7247236d1a1813914e035383bf8 by Abseil Team <absl-team@google.com>:
Use atomic exchange to mark completion in absl::once_flag
This prevents a potential for a missed wakeup if one thread marks
itself as a waiter while another thread is completing the invocation.
PiperOrigin-RevId: 344946791
--
ddff21d1dde08d1368d8be5fca81b154e78be2fc by Abseil Team <absl-team@google.com>:
Add missing string_view include. This is currently used transitively through the cord header.
PiperOrigin-RevId: 344845266
GitOrigin-RevId: 7b6a68aa92dcc7247236d1a1813914e035383bf8
Change-Id: Ia24e98a1df832fc4cb491d888fdf21182b5954f4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
d85f04af95a6fdafb102f7dc393d78d4431b47e5 by Abseil Team <absl-team@google.com>:
Internal change for cord ring
PiperOrigin-RevId: 344541196
--
1ff57908e31a09ec0c98d8316da1263092cc3a1c by Abseil Team <absl-team@google.com>:
Fix typo in comment.
PiperOrigin-RevId: 344214280
GitOrigin-RevId: d85f04af95a6fdafb102f7dc393d78d4431b47e5
Change-Id: I58b3c28f62a5d10dd665b17d58a121f371e1260a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--
fcedaa5714efab8738446fa21620b827a40a3458 by Derek Mauro <dmauro@google.com>:
Uses Wyhash in the implementation of absl::Hash for hashing sequences
of more than 16 bytes on some platforms.
Due to the per-process randomization of the seed used by absl::Hash, users
should not notice this change, other than possibly getting better performance.
This change only affects platforms where absl::uint128 is implemented
with an intrinsic (and where sizeof(size_t)==8) since Wyhash relies on
fast 128-bit multiplication for speed.
PiperOrigin-RevId: 343956735
--
085e108c760084f19caa21dbeb2118de2be3f8f0 by Abseil Team <absl-team@google.com>:
Internal change for cord ring
PiperOrigin-RevId: 343919274
--
4c333278ad14d6692f203074b902506008ad624a by Jorg Brown <jorg@google.com>:
Minimize strings_internal::StringConstant further, by removing the need for the compiler to instantiate a compile-time class function.
PiperOrigin-RevId: 343878568
--
71c3c8c7b7821b67997e3d5345aaec67f93f266f by Abseil Team <absl-team@google.com>:
Internal change
PiperOrigin-RevId: 343838259
GitOrigin-RevId: fcedaa5714efab8738446fa21620b827a40a3458
Change-Id: Ifb91895a82d11e743acd42fe97ab7fb70712b7df
|