| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
PiperOrigin-RevId: 592301543
Change-Id: I97e4df805c7313896228430a50a7f991127f3e30
|
|
|
|
|
| |
PiperOrigin-RevId: 592272653
Change-Id: I895c5786555227bdc88ab0a4cce8cf5ba65222a1
|
|
|
|
|
|
|
|
|
| |
use Bazel 7.0.0.
CMake is also updated to 3.28.1
PiperOrigin-RevId: 592263272
Change-Id: I4daccdad4bceb483b0400328baebc79591990328
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The added test exposes a false TSan race report in
EnableInvariantDebugging/EnableDebugLog related to SynchEvent reuse.
We ignore most of the stuff that happens inside of the Mutex code,
but not for the code inside of EnableInvariantDebugging/EnableDebugLog.
So these can cause occasional false reports on SynchEvent bankruptcy.
Also ignore accesses in EnableInvariantDebugging/EnableDebugLog.
PiperOrigin-RevId: 592226791
Change-Id: I066edb1ef5661ba6cf86a195f91a9d5328b93d10
|
|
|
|
|
|
|
| |
same element.
PiperOrigin-RevId: 591987002
Change-Id: Ic1ed2063aeb95a6e814eefcbed024e1a5a1d8d2f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, `absl::Condition` incorrectly used the same (non-`const`)
pointer-to-method type when wrapping both `const` and non-`const` methods.
Unfortunately, this is undefined behavior according to `[expr.reinterpret.cast]`
in the C++ standard:
> The effect of calling a function through a pointer to a function type that is
> not the same as the type used in the definition of the function is undefined.
This fixes the UB.
PiperOrigin-RevId: 591981682
Change-Id: Iaca955346699417232383d3a1800ea9b82ea5761
|
|
|
|
|
| |
PiperOrigin-RevId: 591928115
Change-Id: I55de0886d3ce2d58cc1c94a15ce0f3eefc5eeaaf
|
|
|
|
|
| |
PiperOrigin-RevId: 591894838
Change-Id: Ib3fe72d255f49320e2728c210ba1faabc81e0ef8
|
|
|
|
|
|
|
|
|
|
|
|
| |
These are in some sense correct (begin()/end() can be null for empty spans), but
don't capture the critical contract that begin() is only null when end() is.
This leads to foreach loops over spans being considered unsafe.
Long-term we may want to express such constraints somehow, but for now giving
these pointers unknown nullability is the best we can do.
PiperOrigin-RevId: 591191038
Change-Id: I1f02e068a445c0ca5996a9212477b64393ef4161
|
|
|
|
|
| |
PiperOrigin-RevId: 591161019
Change-Id: Iae2477a24819e20288fbb83b4a343031af71f1bb
|
|
|
|
|
| |
PiperOrigin-RevId: 591015112
Change-Id: I3e654433f0b0a4ea02ee10e0894e70738e730782
|
|
|
|
|
| |
PiperOrigin-RevId: 590669848
Change-Id: Ibc703b0fbedede86ddaa9682049b7dcc2250fbfb
|
|
|
|
|
|
|
|
| |
These methods will only be defined if they're defined for `T`. Additionally,
we add jitter to the output to discourage people relying on the output format.
PiperOrigin-RevId: 590598988
Change-Id: I4e7173b5f0c66fd3a1cdd3392944e20b8a26641f
|
|
|
|
|
| |
PiperOrigin-RevId: 590337123
Change-Id: Ib98bbb5a5dadbce5e891567038e016f4da2efc0b
|
|
|
|
|
|
|
|
|
| |
It is not used at the moment. Usage is planned to be submitted separately.
Useful for faster iterating over all slots in the internal functions.
PiperOrigin-RevId: 590300049
Change-Id: I081f33113268761db868771d29796d94c24e4e7a
|
|
|
|
|
|
|
| |
These used to be independent implementations. Now that they are aliases, maintaining tests doesn't make sense anymore.
PiperOrigin-RevId: 589947915
Change-Id: I555496e3467d56a75468b180383482eee2e8f198
|
|
|
|
|
|
|
|
|
|
|
| |
Abseil does not support C++11 anymore: https://github.com/google/oss-policies-info/blob/b842c39db88e6569dfe2cf98be434b03507cb503/foundational-cxx-support-matrix.md
NOTE: This is a breaking change because `std::integer_sequence<T>` requires `std::is_integral_v<T>`, but `absl::integer_sequence<T>` does not.
Unit tests will be deleted in a follow-up.
PiperOrigin-RevId: 589908215
Change-Id: I57a81e4451840304d5fba60bef286e81e024af9c
|
|
|
|
|
| |
PiperOrigin-RevId: 589842893
Change-Id: I9657761d1f71c665582406f278c6605f6d382f6d
|
|
|
|
|
| |
PiperOrigin-RevId: 588893303
Change-Id: I3f9278f2f7f0bc4b8903a87cb4a740daf7349755
|
|
|
|
|
|
|
|
|
| |
Details:
- In case the table entirely fits into a single group size (`capacity <= Group::kWidth`), the order of elements is not important.
- For growing upto Group::kWidth we rotate control bytes and slots deterministically (using memcpy).
- We also avoid second find_first_non_full right after resize for small growing.
PiperOrigin-RevId: 588825966
Change-Id: I09bd7fd489e3868dcf56c36b436805d08dae7ab5
|
|
|
|
|
|
|
|
| |
Reduces final binary size by avoiding stream I/O and all its associated
overhead.
PiperOrigin-RevId: 588789394
Change-Id: Ib8653db77aee0dae45e44f4ac72fe7dd87aa2eba
|
|
|
|
|
| |
PiperOrigin-RevId: 588530709
Change-Id: Iee28c7693a4802f11e13728e1c28febee8c8576f
|
|
|
|
|
|
|
| |
This works around a Clang bug, https://github.com/llvm/llvm-project/issues/25168
PiperOrigin-RevId: 588491254
Change-Id: Ia59afae4df45474d6025a2ab1ca487b381c9ee66
|
|
|
|
|
|
|
| |
Chromium requires no global destructors.
PiperOrigin-RevId: 588466793
Change-Id: Icd255d9fb37667b4f5ce4b2552b70fa53cbf6ecf
|
|
|
|
|
|
|
|
|
|
| |
absl_log.h is supposed to be a mirror of log.h that only uses ABSL_
prefixed macros. This change adds ABSL_VLOG_IS_ON to absl_vlog_is_on.h
and uses it in the implementation of VLOG. VLOG_IS_ON is then only
exported though vlog_is_on.h.
PiperOrigin-RevId: 588435577
Change-Id: Ifa9193afa0b782194b64447f4fedfaf24b72c95a
|
|
|
|
|
| |
PiperOrigin-RevId: 588403935
Change-Id: I6a3af3c044b887ec65b19390d316cfb3ccdcc853
|
|
|
|
|
|
|
| |
This converts to UTF-8 regardless of locale.
PiperOrigin-RevId: 588186076
Change-Id: I2c9598279b413d460e13ad65da2ba421c0b40b83
|
|
|
|
|
|
|
|
|
|
|
| |
and the QCHECK flavors of these.
In particular, if ABSL_MIN_LOG_LEVEL exceeds kFatal, these should, upon failure, terminate the program without logging anything. The lack of logging should be visible to the optimizer so that it can strip string literals and stringified variable names from the object file.
Making some edge cases work under Clang required rewriting NormalizeLogSeverity to help make constraints on its return value more obvious to the optimizer.
PiperOrigin-RevId: 588181755
Change-Id: I95db3bae39f8dadb52a307ca3b80775db23de766
|
|
|
|
|
| |
PiperOrigin-RevId: 588121665
Change-Id: Id057772e426aefe2fe7b2f1e94fd405b97167fed
|
|
|
|
|
|
|
|
|
|
|
|
| |
types when they are available.
This makes them interchangeable in contexts known to be compiled as C++20.
This also makes `absl::` ordering types compatible with `<=>`, allowing to
unconditionally use `absl::` spelling for types but conditionally use `<=>`
when available.
PiperOrigin-RevId: 588085408
Change-Id: I1aa5247f0e31acbb838ee76829b7a13c74b0a94f
|
|
|
|
|
|
|
| |
These are methods for configurable verbose logging
PiperOrigin-RevId: 588059727
Change-Id: Ib3703edd2493050a5da8b30e88b21adc643b1f7f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The corresponding `std` types were removed before C++20 was finalized:
https://wg21.link/P1959R0.
They are unused. The language mechanisms and recommendations changed since they
were originally proposed. In particular:
* An explicitly defaulted `operator==` is defined in terms of memberwise
`operator==` rather than sibling `operator<=>`.
* An `operator!=` can be implicitly added to an overload set in terms of
`operator==` rather than `operator<=>`.
* A class which has equality but not ordering defined should provide
`operator==` rather than `operator<=>`.
PiperOrigin-RevId: 587834267
Change-Id: I2c2513c13f3485b9edc6a345dca4a577d8e65167
|
|
|
|
|
|
|
|
|
| |
without SSE)
Closes #1575
PiperOrigin-RevId: 586009018
Change-Id: Icc34c1201268303dde96bfbb067506b861754b3a
|
|
|
|
|
| |
PiperOrigin-RevId: 585892739
Change-Id: I30490dac5826bff2a33d9872f71154d360f9cc0d
|
|
|
|
|
| |
PiperOrigin-RevId: 585691325
Change-Id: Icd18dc0294dfd1e22f9878b628d5e5898fcc8185
|
|
|
|
|
| |
PiperOrigin-RevId: 584675181
Change-Id: I78c9a29055327c84f1e78b8440221439839a041c
|
|
|
|
|
|
|
| |
This reduces produced binary size and can trigger even more optimizations in the future.
PiperOrigin-RevId: 584136517
Change-Id: I3854833799f88f28b755ec53132925f0c3d468ab
|
|
|
|
|
|
|
| |
- libc++ throws errors when filesystem is included when disabled
PiperOrigin-RevId: 583474609
Change-Id: I205edc5c508f12b84244912f9acc47308a8ca540
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is somewhat tricky to implement because path equality is not
straightforward. See
https://github.com/abseil/abseil-cpp/pull/1560#issuecomment-1799983471
for discussion.
This re-lands 3bd86026c93da5a40006fd53403dff9d5f5e30e3 with a fix
for iOS 13 unavailability of std::filesystem::path.
Roll-forward of 524ebb7ea91d2955dc4c68c7e6fd2bed620621b5.
Closes #655
Closes #1560
PiperOrigin-RevId: 583365100
Change-Id: Id49735c49d123e0cd6a620a2b5b5a12d94129f94
|
|
|
|
|
| |
PiperOrigin-RevId: 583235586
Change-Id: Ia472b8d6530fd829fed1c07558e152975d9b24ac
|
|
|
|
|
|
|
| |
'path' is unavailable: introduced in iOS 13.0
PiperOrigin-RevId: 583036562
Change-Id: I5aea530d03c3317896c3c15bcf7cb5f9d8bc466a
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is somewhat tricky to implement because path equality is not
straightforward. See
https://github.com/abseil/abseil-cpp/pull/1560#issuecomment-1799983471
for discussion.
Closes #655
Closes #1560
PiperOrigin-RevId: 582863821
Change-Id: I03517a7f2003614c027c786abbfb91b6571ab662
|
|
|
|
|
| |
PiperOrigin-RevId: 582861689
Change-Id: Iac257539ab282e9bfdc6d90e86c8da0c0d57b9c9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
absl::Symbolize does tons of tiny reads. Speed this up by switching
from lseek+read to a pread, and by reading more data than requested
into a buffer.
A faster absl::Symbolize will be helpful in tests and when printing
stack traces on /threadz etc.
Results for absl::Symbolize benchmark that exercises uncached behavior
of absl::Symbolize:
```
name old time/op new time/op delta
BM_Symbolize 16.4ms ±12% 2.6ms ± 0% -84.06% (p=0.001 n=5+9)
```
PiperOrigin-RevId: 582687566
Change-Id: I44caf189d81867f3fd8c050a3100a4b9a8e744d7
|
|
|
|
|
| |
PiperOrigin-RevId: 582455513
Change-Id: Ic78d14d6dd748420a64e7026ec7f8b967bebbf42
|
|
|
|
|
| |
PiperOrigin-RevId: 582426024
Change-Id: Ic8650de4faff9688f4cb5529c1df9bc752878b5a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
current behavior of decaying the array to a pointer and hashing the
pointer can lead to subtle bugs.
The most common potential error is passing a C-string literal. Hashing
the char pointer in those cases is correct only if the string literals
are guaranteed to be deduplicated, which is dangerous to rely on even
if true (and the call sites in header files require deduplication
across translation units). After this change, these call-sites
requires wrapping the literal in absl::string_view.
This is a breaking change for code doing something like
absl::HashOf("string");
Instead, this should be changed to
absl::HashOf(absl::string_view("string"));
PiperOrigin-RevId: 582393585
Change-Id: I3810c07b5b74bf153cb62a7beedce243be5a69ee
|
|
|
|
|
| |
PiperOrigin-RevId: 582342910
Change-Id: Iada5420867779ed352d8fb0695ff6d6044acfba2
|
|
|
|
|
|
|
| |
disabled. This will make it easier to roll back and forwards in the future (if needed) without causing merge conflicts in unrelated code.
PiperOrigin-RevId: 582059046
Change-Id: I66dc6527e7a0b351367b7a391c2d653fe793143f
|
|
|
|
|
| |
PiperOrigin-RevId: 582033534
Change-Id: I9af42210f65b40ccd7f55c9a2e0c8387b69760dc
|