| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
https://bazel.build/build/style-guide#other-conventions
PiperOrigin-RevId: 603084345
Change-Id: Ibd7c9573d820f88059d12c46ff82d7d322d002ae
|
|
|
|
|
| |
PiperOrigin-RevId: 602974812
Change-Id: Ic35b41e321b9456a8ddd83470ee2eb07c51e3180
|
|
|
|
|
| |
PiperOrigin-RevId: 602864815
Change-Id: I74db20c93f6a7d9046779677cb4a328dc54bae69
|
|
|
|
|
|
|
| |
flat_hash_{*}.
PiperOrigin-RevId: 602813933
Change-Id: I744fe438281755a141b2fd47e54ab9c6c0fad5a3
|
|
|
|
|
|
|
| |
Closes #1536
PiperOrigin-RevId: 602764437
Change-Id: Ia5c20a3874262a2ddb8797f608af17d7e86dd6d6
|
|
|
|
|
|
|
| |
Also updated the return value to reference to clarify non-nullability.
PiperOrigin-RevId: 602730828
Change-Id: Ia36f7fde3cc87ac597ba4f194eebe9ebb90a1a09
|
|
|
|
|
|
|
|
|
|
|
|
| |
When bzlmod is enabled and WORKSPACE.bzlmod exists, the content of
WORKSPACE is ignored. This prevents bzlmod builds from unintentionally
depending on the WORKSPACE file.
This exposed some small problems with our clang-cl configuration,
which are also fixed in this change.
PiperOrigin-RevId: 602511311
Change-Id: I0ba411edde2df0e17f4eeede4117ddb6934dd8f8
|
|
|
|
|
| |
PiperOrigin-RevId: 602485199
Change-Id: I5cc10eb8dcfe5988cf939080a224522e02ad8607
|
|
|
|
|
|
|
| |
AbslHash allows for piecewise chunks to be streamed incrementally into hash states and requires them to hash identically to one giant stream. The exact size window for this is an internal details `PiecewiseChunkSize`. There was an off by one error in this code. Add tests and fix it.
PiperOrigin-RevId: 602463183
Change-Id: I159bbb5e7e745f55b2fe6eaf0d2735bd0a08aca9
|
|
|
|
|
| |
PiperOrigin-RevId: 601477629
Change-Id: I3b683d94192b04f233ce5ec636586ccb90d24602
|
|
|
|
|
| |
PiperOrigin-RevId: 601156448
Change-Id: Id6d19bda7eb3acee11cfab3a95e611996d6ef4cc
|
|
|
|
|
|
|
| |
Terminate the stack trace if it isn't.
PiperOrigin-RevId: 600839499
Change-Id: I5692fa6cb52c4c8061b4ac14d8fba70f7fbabc52
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1604
Looks like abseil is not using any of the APIs listed in https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api?language=objc, so adding an empty manifest file.
fixes #1602
Merge 79da4bd7b54949d5e01c04623842ea1d0d4fbe59 into f7d2b13ef2466a5a3b7bcc535c49d3962a5c89f9
Merging this change closes #1604
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1604 from HannahShiSFB:privacy-manifests 79da4bd7b54949d5e01c04623842ea1d0d4fbe59
PiperOrigin-RevId: 600525731
Change-Id: I3fbc6dcc6e47032665a9fa72c000ae245a25dd52
|
|
|
|
|
|
|
| |
The minimum supported version today is GCC 7 (`__GNUC__ >= 7`).
PiperOrigin-RevId: 600475215
Change-Id: I1aa46384f1e75f268649a48dbe2b42f3475bb07f
|
|
|
|
|
|
|
|
|
| |
Since compiler support for this attribute differs, if for example
system libraries compiled with GCC are mixed with libraries compiled
with Clang, types will have different ideas about their ABI.
PiperOrigin-RevId: 600467146
Change-Id: I5729e54d34176d019a2dee9afc36ed9da1da10fa
|
|
|
|
|
|
|
|
|
| |
This was not intended to be supported, and it has resulted in calls as `absl::StrCat({...})`, which are not supported and only work coincidentally for the first 4 arguments due to `absl::StrCat` having overloads that take `absl::AlphaNum` directly for those.
The existing situation prevents modifying the implementations of such functions to alternatives that do not have such overloads for those arguments.
PiperOrigin-RevId: 599872755
Change-Id: I02c90119b2b96a922cf7e3b5d5f02affe24a272d
|
|
|
|
|
|
|
| |
The current support policy is `_MSC_VER >= 1920`.
PiperOrigin-RevId: 599833619
Change-Id: I9cf7393a5b659d1680765e37e0328539ccb870fa
|
|
|
|
|
| |
PiperOrigin-RevId: 599538858
Change-Id: I9e92f4c9cfef1bfe6f8f925efe0ede3f309b6bf4
|
|
|
|
|
|
|
| |
Note that this only changes how we allocate the empty state, and reference countings of `empty` stay the same.
PiperOrigin-RevId: 599526339
Change-Id: I2c6aaf875c144c947e17fe8f69692b1195b55dd7
|
|
|
|
|
|
|
| |
requirements to apply to the interface methods.
PiperOrigin-RevId: 599266310
Change-Id: I3b5a91eb17b4b09feba5e048892875f3a747afb1
|
|
|
|
|
|
|
| |
the lack of a feature equivalent to Bazel's alwayslink=True
PiperOrigin-RevId: 598855446
Change-Id: I0bb3bc40005908106eb7a7252572e3af153a7f5c
|
|
|
|
|
|
|
|
| |
For consistency, all global logging configurations lives in
//absl/log/globals.h
PiperOrigin-RevId: 598194040
Change-Id: I815b7d07f8fe06c70cef83bdf825c2f7ca504a2b
|
|
|
|
|
|
|
| |
dereference of iterator returned by `try_emplace`.
PiperOrigin-RevId: 597920257
Change-Id: I1b2e8f10a2f1efa763a6f0760294beafdb6fd9c0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with ABSL_HAVE_HWADDRESS_SANITIZER.
It will detect bugs similar to Asan.
Also updated related tests to pass with HWASAN.
They are still flaky because of nature of HWASAN algorithm,
but test can be update to avoid flakiness, which I will do
in followup patches.
PiperOrigin-RevId: 597613798
Change-Id: Ic8af36a268ca041c002eb561b946aa2d9b93996a
|
|
|
|
|
|
|
|
| |
Some compilers warn if a switch block that already covers all
enumeration values also has a default label.
PiperOrigin-RevId: 597583941
Change-Id: Ib3eb08dca0a19105522c61e47944cfc75280c15e
|
|
|
|
|
| |
PiperOrigin-RevId: 597297788
Change-Id: Idb4cd3f62a03204bcad423d9934963136c018996
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
releasing Abseil and GoogleTest.
GoogleTest referenced this internal file and this internal trait. Since
simultaneous releases are not possible since once release must reference
another, we will temporarily add this back.
https://github.com/google/googletest/blob/v1.14.x/googletest/include/gtest/gtest-printers.h#L119
https://github.com/google/googletest/pull/4368#issuecomment-1717699895
https://github.com/google/googletest/pull/4368#issuecomment-1717699895
PiperOrigin-RevId: 597073935
Change-Id: I7c2697a212dc477fd25770777445c64cfee73745
|
|
|
|
|
|
|
|
|
|
|
| |
This changes the way in which clang-cl is selected on Windows
as it has changed:
https://bazel.build/configure/windows#clang
--features=external_include_paths has been removed from Windows builds
since it appears cause build command errors currently
PiperOrigin-RevId: 596965732
Change-Id: I95b636a9a4fdcc4172c3bb8c6cb28d5f7db592c9
|
|
|
|
|
|
|
|
|
| |
This follows Benford's law, which is likely also a much more accurate representation of real data than a constant.
We also add benchmarks for different integer types.
PiperOrigin-RevId: 596039508
Change-Id: I4862c7cfdbf5face18ae31cf0bd2fd54e47684b7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The updated code is designed to:
- Be branch-predictor-friendly
- Be cache-friendly
- Minimize the lengths of critical paths
- Minimize slow operations (particularly multiplications)
- Minimize binary/codegen bloat
The most notable performance trick here is perhaps the precomputation & caching of the number of digits, so that we can reuse/exploit it when writing the output.
This precomputation of the exact length enables 2 further performance benefits:
- It makes `StrCat` and `StrAppend` zero-copy when only integers are passed, by avoiding intermediate `AlphaNum` entirely in those cases. If needed in the future, we can probably also make many other mixtures of non-integer types zero-copy as well.
- It avoids over-reservation of the string buffer, allowing for more strings to fit inside SSO, which will likely have further performance benefits.
There is also a side benefit of preventing `FastIntToBuffer` from writing beyond the end of the buffer, which has caused buffer overflows in the past.
The new code continues to use & extend some of the existing core tricks (such as the division-by-100 trick), as those are already efficient.
PiperOrigin-RevId: 595785531
Change-Id: Id6920e7e038fec10b2c45f213de75dc7e2cbddd1
|
|
|
|
|
|
|
| |
Neither GCC nor Clang's __builtin_nan(), nor glibc's nan(), accept null pointers.
PiperOrigin-RevId: 595767225
Change-Id: I4cddd1cafd0c9e83a823ec68386f10ce077c6b4c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://github.com/abseil/abseil-cpp/issues/1465 reports that
some CMake builds on Apply platforms issue
```
warning: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: archive library: libabsl_bad_any_cast_impl.a the table of contents is empty (no object file members in the library define global symbols)
```
Our CMake build handles this problem for header-only libraries by not
building a library at all. For some libraries, for example our polyfills,
the library is only conditionally empty. In these libraries, I added
a single char variable on Apple platforms as a workaround.
I have been able to reproduce the warnings reported in
https://github.com/abseil/abseil-cpp/issues/1465, but they don't fail the
build for me. I don't see them any more after this change.
PiperOrigin-RevId: 595480705
Change-Id: Ie48637e84ebae2f2aea4e2de83b146f30f6a76b9
|
|
|
|
|
|
|
| |
removing the iterator invalidation check from the comparison that contains performs.
PiperOrigin-RevId: 595460301
Change-Id: I9a5d6c81385e38184f4848c58209adc5d32bb7be
|
|
|
|
|
|
|
|
| |
constexpr Flag construction. These versions of MSVC are no longer
supported.
PiperOrigin-RevId: 595195773
Change-Id: Iaf2f01a2255fb24f3aadc26f09600543fffa9da5
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1589
It makes sense because even if it fails spuriously, we can just try again since we have to check for other readers anyway.
Merge 0b1780299b9e43205202d6b25f6e57759722d063 into 6a19ff47352a2112e953f4ab813d820e0ecfe1e3
Merging this change closes #1589
COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1589 from AtariDreams:atomics 0b1780299b9e43205202d6b25f6e57759722d063
PiperOrigin-RevId: 595149382
Change-Id: I24f678f6bf95c6a37b2ed541a2b6668a58a67702
|
|
|
|
|
| |
PiperOrigin-RevId: 595114487
Change-Id: Ia8fc94e4feaf8da1185e7e93ba4250e61e690cfd
|
|
|
|
|
|
|
|
| |
* Also does this for `absl::internal::identity_t` which is now `absl::internal::type_identity_t`
* This is clearer naming as this is a backfill of `std::type_identity` (the identity type), and not `std::identity` (the identity function)
PiperOrigin-RevId: 594316002
Change-Id: I5fb8cf7e3d07c1bc736cbecd202e7d556b6ea33e
|
|
|
|
|
|
|
|
|
| |
absl::numbers_internal::FastIntToBuffer isn't provably insufficient
This performance-sensitive API is internal, and should not be used directly. Nevertheless, some do use it, so it's worth trying to block incorrect uses where we can.
PiperOrigin-RevId: 594289730
Change-Id: Ib5df39b450ef2ceda795082cde10ec2ba2642172
|
|
|
|
|
|
|
| |
benchmarks.
PiperOrigin-RevId: 593918110
Change-Id: Ide100c69b10e28011af17c7f82bb10eea072cad4
|
|
|
|
|
| |
PiperOrigin-RevId: 593889663
Change-Id: I589cd18922172d8aca99ddcc0d6f08a013bed9b4
|
|
|
|
|
| |
PiperOrigin-RevId: 593814844
Change-Id: If1967814b2b9273061b928bfee102faae1fad263
|
|
|
|
|
| |
PiperOrigin-RevId: 593780380
Change-Id: Id80217c63dd76bafbcfb79a7ee10807f1b771cb2
|
|
|
|
|
|
|
| |
& some tests.
PiperOrigin-RevId: 592918704
Change-Id: Iacef0e069c012a04960211c032454244822f9634
|
|
|
|
|
| |
PiperOrigin-RevId: 592864147
Change-Id: I83179b0225aa446ae0b57b46b604af14f1fa14df
|
|
|
|
|
| |
PiperOrigin-RevId: 592664369
Change-Id: I7aa7b045c2b3c0f25cff7b82eb9d9cc13e9fc49f
|
|
|
|
|
| |
PiperOrigin-RevId: 592653487
Change-Id: Iddd2f484807cb02dd2ee8bba26c22d196be02c88
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linux kernel's rt_sigprocmask correctly handles an unaligned user address[1].
The original issue was for qemu-user, which seems long irrelevant.
Tested locally on an AArch64 CPU and qemu-aarch64-static.
The alignment operation actually serves another purpose: when addr resides in
the last 7 bytes of a page (unaligned), check only the current page and not the
next. Update the comment.
[1]:
kernel/signal.c `SYSCALL_DEFINE4(rt_sigprocmask`
arch/arm64/include/asm/uaccess.h:raw_copy_from_user
arch/arm64/lib/copy_template.S "alignment handled by the hardware"
PiperOrigin-RevId: 592618320
Change-Id: Ifbd05aba42f46e36e710cca940570213036b3ce0
|
|
|
|
|
|
|
|
|
| |
We currently have a workaround for MSVC, which has constexpr pointer arithmetic bugs. The bug seems to still exist and the existing code for non-MSVC compilers doesn't build.
This alternative constexpr constructor avoids pointer arithmetic and seems to be working for all, including MSVC.
PiperOrigin-RevId: 592586957
Change-Id: Ic585693c3a7abaab5fbbc0954b8ee924994f8dbf
|
|
|
|
|
|
|
| |
benchmarks.
PiperOrigin-RevId: 592483250
Change-Id: I55fa9982c4dbc723b30957cb31da95251e368707
|
|
|
|
|
| |
PiperOrigin-RevId: 592337948
Change-Id: I373943b8daf28781e063b302fc916ca5644e8fe1
|