| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
| |
"absl/strings/string_view.h".
PiperOrigin-RevId: 617232899
Change-Id: I5e6c0bd4545d7f7ad9c5c494017269e247f620a3
|
|
|
|
|
| |
PiperOrigin-RevId: 617186944
Change-Id: Id540fb42b02f24ad92b8f3898231f01ac004e191
|
|
|
|
|
| |
PiperOrigin-RevId: 616951235
Change-Id: I2d6e95a432285c3f79ef8484848e88e06973f51f
|
|
|
|
|
|
|
| |
Without this keyword, we can sometimes get cryptic compilation failures such as "error: expected ';' after alias declaration".
PiperOrigin-RevId: 616933517
Change-Id: I2209f3899a4ac03c031217cec67de25bd376d355
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1643
Addressing comments at https://github.com/abseil/abseil-cpp/pull/1604/#pullrequestreview-1937008657
Add a xcprivacy subspec and have all other subspecs depend on it (option 1)
Didn't going with option 3 because there are several levels of subspecs in abseil podspec, it's difficult to track whether all of them directly or indirectly depends on abseil/base/config or ensure they will continue to depend on it.
Example of generated podsped: https://gist.github.com/HannahShiSFB/15d8fb6aa637f2781b7be4218d080f11
Merge 4405cdfe71129bebb13c02a6d8ee18be7e813f73 into 4539c540fe48d6a7f0cc4ed3ace2971c9038cc75
Merging this change closes #1643
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1643 from HannahShiSFB:privacy-manifests 4405cdfe71129bebb13c02a6d8ee18be7e813f73
PiperOrigin-RevId: 616914674
Change-Id: If56d5a4f1a7cc6f9fac7a2d8e95b55d140e645fc
|
|
|
|
|
|
|
|
| |
The sampling rate may change over time, so this allows us to weight samples by
the value observed when we made the sampling decision.
PiperOrigin-RevId: 616900100
Change-Id: I9b1affdba93f5f48367cb7503916296b2d84709a
|
|
|
|
|
| |
PiperOrigin-RevId: 616895950
Change-Id: I9dc9099e779df4b692496aa5ee5573ef0e7fd826
|
|
|
|
|
| |
PiperOrigin-RevId: 616818246
Change-Id: I1ee813dd1b4da2d25d6b1b9cdba9e8f70d6a6d90
|
|
|
|
|
|
|
|
|
| |
sizes at compile-time as template parameters. This can make offset and size calculations faster.
In particular, it seems to always improve the performance of AllocSize(), and it sometimes improves the performance of other functions, e.g. when the Layout object outlives the function that created it.
PiperOrigin-RevId: 616817169
Change-Id: Id1d318d7d2af68783f9f59090d89c642be6ae558
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
workaround
The workaround was added for a bug in GCC < 6.1., which had since been fixed. Abseil only [supports](https://github.com/google/oss-policies-info/blob/9a9bfe8a4a12be20757497074fc2f0ecb77438ad/foundational-cxx-support-matrix.md) GCC > 7.3.1.
However, removing the workaround still trips even more recent GCC, such as 13.1. When `SizeSeq` is empty, `p` is not actually used.
Marking it as `ABSL_ATTRIBUTE_UNUSED` silences the GCC warning for that case too.
We could disable `Slices` altogether when `SizeSeq` is empty, but that would be a breaking change (even though this API is internal), and possibly hurt generic programming use (they'd have to check if their parameter packs are empty).
PiperOrigin-RevId: 616245873
Change-Id: I77f7b0b921dfd63fb01c5223851ad1d8a7da233b
|
|
|
|
|
|
|
|
|
|
| |
std::tuple in return statements
This improves readability by avoiding spelling the same type twice, the first time with even more boilerplate (e.g. `typename`).
Return type deduction is a C++14 feature, and Abseil [currently supports](https://github.com/google/oss-policies-info/blob/9a9bfe8a4a12be20757497074fc2f0ecb77438ad/foundational-cxx-support-matrix.md) C++ >= 14.
PiperOrigin-RevId: 616218396
Change-Id: I82aeec878dd69001d2cf822db6512f5a62baec02
|
|
|
|
|
| |
PiperOrigin-RevId: 616083064
Change-Id: I3d69303d32431227c197247682f8dcb70f9a239d
|
|
|
|
|
|
|
|
| |
No longer include vlog_is_on.h from log.h. This is a breaking change.
To use VLOG_IS_ON(), absl/log/vlog_is_on.h must be included, not log.h.
PiperOrigin-RevId: 616045708
Change-Id: I59261eb5c28846557b43b040e187ec3ef36e4132
|
|
|
|
|
|
|
|
|
| |
This change mainly affects 32-bit platforms. Similar to
4618865caf8596742a9fd7c28a70a46b5e277794, check for size_t overflow
in all places where string result sizes are precomputed before allocation.
PiperOrigin-RevId: 615792028
Change-Id: I71c774c5ef2c2978bd812c70e9bab36d266b7c90
|
|
|
|
|
|
|
|
|
| |
This will allow us to give visibility to other Google-internal libraries. The
change is necessary since //visibility:private cannot be combined with other
specifications.
PiperOrigin-RevId: 615779561
Change-Id: I82b1edfa4e1ca280e429cf2a5e4003a1cc316a60
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1603
Merge e324303b1f2aaee8e4418cffb838f150a2d4f4e7 into d802708117c6ef6b9783efe499b2a2d0d0536c77
Merging this change closes #1603
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1603 from adgajda:master e324303b1f2aaee8e4418cffb838f150a2d4f4e7
PiperOrigin-RevId: 615522811
Change-Id: I46a388ac62ffd42ce175dbfa04e414dd498855f8
|
|
|
|
|
| |
PiperOrigin-RevId: 615504707
Change-Id: Ia0e8211bd3c3d28fd0715c8f296ec50f6a700757
|
|
|
|
|
|
|
| |
increases in shared libraries.
PiperOrigin-RevId: 615497725
Change-Id: Ic29db8923ea4ea7cd0b01b396896fa9fff8c74b0
|
|
|
|
|
| |
PiperOrigin-RevId: 615473765
Change-Id: I03c3c16a0e178fce8a572ce272b7e1fd806a38a7
|
|
|
|
|
| |
PiperOrigin-RevId: 615380243
Change-Id: I5400b40a6bc5ac52ece5d4fa6da7df9e4ff50855
|
|
|
|
|
|
|
|
| |
Motivation: mitigate linker input size increase from swisstable optimizations.
Note: the changes in raw_hash_set.h are fixing build errors that happened when adding the explicit instantiations. The change in unchecked_deref is because set iterators have const reference access whereas map iterators have mutable reference access and the function is never actually called for sets (it's used in raw_hash_map) so it wasn't needed before. I'm not sure why the soo_slot/soo_iterator problems didn't cause compile errors earlier.
PiperOrigin-RevId: 615174043
Change-Id: Iac5eb2332a76e9b70021156fbb2b8def47a5391d
|
|
|
|
|
| |
PiperOrigin-RevId: 615160537
Change-Id: I29070c898104c55e6563eed0eef7397441bef1d7
|
|
|
|
|
| |
PiperOrigin-RevId: 615131303
Change-Id: I68fcbdd943594983c67f8e07810b05d5fa9a6f2e
|
|
|
|
|
| |
PiperOrigin-RevId: 615090942
Change-Id: I7cc20a0129dcfbbddedd9e6d816bb6234bff14b3
|
|
|
|
|
|
|
|
|
| |
GCC did not support <filesystem> until GCC8.
Fixes #1635
PiperOrigin-RevId: 615051227
Change-Id: If7cd5802ead40805b1ff1c3bdfc10ba6d2858ef0
|
|
|
|
|
| |
PiperOrigin-RevId: 615047295
Change-Id: I86e5de8543dc1ebee6d5a526846e9121b241b0fa
|
|
|
|
|
|
|
| |
BasicMocking.MocksNotTriggeredForIncorrectTypes test.
PiperOrigin-RevId: 615030645
Change-Id: Ia0ff3e649c6155c44d4772ce32fbcd4c5b273cc7
|
|
|
|
|
| |
PiperOrigin-RevId: 615017130
Change-Id: I73277de8ece31d6a35b47dbdb205b473324b74a2
|
|
|
|
|
| |
PiperOrigin-RevId: 614701769
Change-Id: I7c2143dd467e376eb4936ef894f3413bba681419
|
|
|
|
|
|
|
| |
std:: equivalents
PiperOrigin-RevId: 614687225
Change-Id: I07421db08ee9c221e561f42e3bf8345fb5321401
|
|
|
|
|
| |
PiperOrigin-RevId: 614670264
Change-Id: Id6b1cffa4e104a82234130977235f1eb1021968f
|
|
|
|
|
|
|
|
|
|
|
| |
Addition and subtraction operators std::array::iterator are defined only for
ptrdiff_t, which is signed, instead of size_t, which is unsigned. Therefore,
adding the index variable to ar.begin() will trigger -Wsign-conversion if
std::array::iterator is not a raw pointer because the index variable will be
implicitly converted from size_t (an unsigned type) to ptrdiff_t (a signed
type). To fix this, we explicitly static_cast index to a ptrdiff_t.
PiperOrigin-RevId: 613662928
Change-Id: I5e06c2261d7b8f167fae7bb6acece076257f8579
|
|
|
|
|
| |
PiperOrigin-RevId: 613590317
Change-Id: I69f095681102e5492916085ada0eed085a75765b
|
|
|
|
|
| |
PiperOrigin-RevId: 613326708
Change-Id: I6e5ca195f208b8da0d21d70b5a035bfdc64f866d
|
|
|
|
|
| |
PiperOrigin-RevId: 613305668
Change-Id: Ifc247f48ea476745eaaf0dd41dbdab8404a6cafb
|
|
|
|
|
|
|
|
|
| |
Details:
- We use the space for control/slots pointers as the inline buffer.
- We use a max inline capacity of 1 to make the implementation much simpler and to avoid having to randomize the iteration order for inline tables.
- For iteration of inline tables, we introduce the kSooControl buffer which just has 1 full control byte followed by 1 sentinel control byte so that incrementing yields an end() iterator. We don't access kSooControl during lookups - only iteration.
PiperOrigin-RevId: 613253492
Change-Id: Id98ff11842f8bef27ac7ed88138dc03b46ce4fa6
|
|
|
|
|
| |
PiperOrigin-RevId: 613141617
Change-Id: Ife68495d4a5951b734db7407fb99686cf45a5133
|
|
|
|
|
| |
PiperOrigin-RevId: 612560213
Change-Id: Id75dfd1222a0bed8ec72ce21e4a97b1d09fc9eaa
|
|
|
|
|
| |
PiperOrigin-RevId: 612509928
Change-Id: I90de2e6bd229bf5cf71a27e9c491bc2794e9265f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1632
Prior art for the `vector::erase` optimization:
https://github.com/AmadeusITGroup/amc/blob/efcb7be/include/amc/vectorcommon.hpp#L176-L180 https://github.com/bloomberg/bde/blob/e15f05be6/groups/bsl/bslalg/bslalg_arrayprimitives.h#L3787-L3799 https://github.com/facebook/folly/blob/d24bf04/folly/FBVector.h#L1254-L1262 https://github.com/qt/qtbase/blob/fbfee2d/src/corelib/tools/qarraydataops.h#L856-L861
Merge 6ce011079ccf945ae95434ce45ea6c5e3a088af8 into 55d28d4b3b82f9a47b3fa9b811b675a032820621
Merging this change closes #1632
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1632 from Quuxplusone:trivial-erase 6ce011079ccf945ae95434ce45ea6c5e3a088af8
PiperOrigin-RevId: 612278964
Change-Id: I327ace8a38292b4610c6be031cc334e77c76fd35
|
|
|
|
|
| |
PiperOrigin-RevId: 612201313
Change-Id: Ia9e7f146f5e1ecaffcb15de694049b716db38d02
|
|
|
|
|
|
|
|
| |
* It is stated in prose that the methods on `absl::NoDestructor` can never return a null pointer
* Now this is annotated via nullability annotations as well
PiperOrigin-RevId: 611619075
Change-Id: I078a5628430b7b221c009a5dcb849efe30409c28
|
|
|
|
|
| |
PiperOrigin-RevId: 611321915
Change-Id: Ia63e3e2f66981d9e4f5b97f6df276b8195459ba2
|
|
|
|
|
|
|
| |
Instead of casting an int to the enum type where the int does not have an associated enum value, cast the enum to its underlying type. This should be no functional change but make some linters happier.
PiperOrigin-RevId: 611172311
Change-Id: I9ae10f8fa2029014236f60a90ee2ab2273c66fa5
|
|
|
|
|
| |
PiperOrigin-RevId: 611151721
Change-Id: Ic7b342770fb3e1aab8e54ff125f1529534eedc3c
|
|
|
|
|
|
|
|
| |
in range of range-based for loop
Fixes: #1629
PiperOrigin-RevId: 611131201
Change-Id: I787731e00207b544ee16055e6e0d323a5094a433
|
|
|
|
|
|
|
| |
Breaks unit tests
PiperOrigin-RevId: 611077608
Change-Id: Ie024c299af75407e9798309f8cbf76abf60f9ee2
|
|
|
|
|
|
|
|
| |
Having DLOG(FATAL) be [[noreturn]] in debug builds makes dead-code
warnings impossible to satisfy between the release and debug build.
PiperOrigin-RevId: 610851706
Change-Id: I07104d6687e2b1a8472ee3ea876d5fd74a70574e
|
|
|
|
|
|
|
| |
comparisons in `IDivFastPath`.
PiperOrigin-RevId: 610758911
Change-Id: I3d0fa2f52a3bd75bdd2b5c365d79878b4160bd29
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`time_internal::IDivDuration`, by splitting the slow path to a separate function.
With that change, the compiler can inline the fast path. This is specially important in the context of `Duration::operator%=`, because it allows proving that the return value is unused, therefore avoiding expensive multiplies and divides (e.g. `*q = num_hi / den_hi;`).
```
name old cpu/op new cpu/op delta
BM_Duration_Modulo 23.1ns ± 0% 22.5ns ± 0% -2.42% (p=0.000 n=20+16)
BM_Duration_Modulo_FastPath 7.05ns ± 0% 4.85ns ± 0% -31.17% (p=0.000 n=20+20)
name old time/op new time/op delta
BM_Duration_Modulo 23.1ns ± 0% 22.6ns ± 0% -2.43% (p=0.000 n=20+16)
BM_Duration_Modulo_FastPath 7.06ns ± 0% 4.86ns ± 0% -31.18% (p=0.000 n=20+20)
name old INSTRUCTIONS/op new INSTRUCTIONS/op delta
BM_Duration_Modulo 188 ± 0% 178 ± 0% -5.32% (p=0.000 n=20+20)
BM_Duration_Modulo_FastPath 84.0 ± 0% 62.0 ± 0% -26.19% (p=0.000 n=20+20)
name old CYCLES/op new CYCLES/op delta
BM_Duration_Modulo 73.8 ± 0% 72.1 ± 0% -2.27% (p=0.000 n=19+20)
BM_Duration_Modulo_FastPath 22.5 ± 0% 15.5 ± 0% -31.13% (p=0.000 n=19+20)
```
Note: We don't need to expose `absl::time_internal::IDivDuration` at all given that we have a public `absl::IDivDuration`.
PiperOrigin-RevId: 610710635
Change-Id: Ief7c3d5b1c000b397d931e9249edcaef96e7151e
|