summaryrefslogtreecommitdiff
path: root/absl
Commit message (Collapse)AuthorAge
* Use NullSafeStringView for const char* args to absl::StrCat, treating null ↵Gravatar Dino Radakovic2022-05-17
| | | | | | | | | pointers as "" Fixes #1167 PiperOrigin-RevId: 449328725 Change-Id: I813785db77b94efa49eeeff4c93449334c380935
* raw_logging: Extract the inlined no-hook-registered behavior for ↵Gravatar Andy Getzendanner2022-05-17
| | | | | | | LogPrefixHook to a default implementation. PiperOrigin-RevId: 449306617 Change-Id: Ia3e87d2edcae7e9874998f21a0e2ff245e48fd96
* absl: fix use-after-free in Mutex/CondVarGravatar Abseil Team2022-05-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both Mutex and CondVar signal PerThreadSem/Waiter after satisfying the wait condition, as the result the waiting thread may return w/o waiting on the PerThreadSem/Waiter at all. If the waiting thread then exits, it currently destroys Waiter object. As the result Waiter::Post can be called on already destroyed object. PerThreadSem/Waiter must be type-stable after creation and must not be destroyed. The futex-based implementation is the only one that is not affected by the bug since there is effectively nothing to destroy (maybe only UBSan/ASan could complain about calling methods on a destroyed object). Here is the problematic sequence of events: 1: void Mutex::Block(PerThreadSynch *s) { 2: while (s->state.load(std::memory_order_acquire) == PerThreadSynch::kQueued) { 3: if (!DecrementSynchSem(this, s, s->waitp->timeout)) { 4: PerThreadSynch *Mutex::Wakeup(PerThreadSynch *w) { 5: ... 6: w->state.store(PerThreadSynch::kAvailable, std::memory_order_release); 7: IncrementSynchSem(this, w); 8: ... 9: } Consider line 6 is executed, then line 2 observes kAvailable and line 3 is not called. The thread executing Mutex::Block returns from the method, acquires the mutex, releases the mutex, exits and destroys PerThreadSem/Waiter. Now Mutex::Wakeup resumes and executes line 7 on the destroyed object. Boom! CondVar uses a similar pattern. Moreover the semaphore-based Waiter implementation is not even destruction-safe (the Waiter cannot be used to signal own destruction). So even if Mutex/CondVar would always pair Waiter::Post with Waiter::Wait before destroying PerThreadSem/Waiter, it would still be subject to use-after-free bug on the semaphore. PiperOrigin-RevId: 449159939 Change-Id: I497134fa8b6ce1294a422827c5f0de0e897cea31
* absl: fix live-lock in CondVarGravatar Abseil Team2022-05-17
| | | | | | | | CondVar::WaitWithTimeout can live-lock when timeout is racing with Signal/SignalAll and Signal/SignalAll thread is not scheduled due to priorities, affinity or other scheduler artifacts. This could lead to stalls of up to tens of seconds in some cases. PiperOrigin-RevId: 449159670 Change-Id: I64bbd277c1f91964cfba3306ba8a80eeadf85f64
* Add a stress test for base_internal::ThreadIdentity reuse.Gravatar Abseil Team2022-05-16
| | | | | PiperOrigin-RevId: 449067700 Change-Id: I972b1736c28d76ed500e9ad6fd15c7a469a5825f
* Improve compiler errors for mismatched ParsedFormat inputs.Gravatar Samuel Benzaquen2022-05-13
| | | | | PiperOrigin-RevId: 448582508 Change-Id: I67fbff5f42a083e093ea2c20749e073ca03feb0b
* Internal changeGravatar Abseil Team2022-05-12
| | | | | PiperOrigin-RevId: 448361090 Change-Id: Iec6063b88a778dfe815081612650eaa456503265
* Fix an msan warning in cord_ringbuffer_testGravatar Benjamin Barenblat2022-05-12
| | | | | | | | | Stop the absl::Cord destructor from running on the constinit cord in CordTest.ConstinitConstructor. This allows inspecting the cord at any point while the test is exiting, which is important for the semantics of the test. PiperOrigin-RevId: 448327386 Change-Id: Icef9faa2b63f1f0ae60b3430dcf6184f5dead885
* Fix spelling error "charachter"Gravatar Abseil Team2022-05-11
| | | | | PiperOrigin-RevId: 448159349 Change-Id: I6b25a90d8a3b6d3a888274d156aa696d77fb042d
* Document that Consume(Prefix|Suffix)() don't modify the input on failureGravatar Abseil Team2022-05-11
| | | | | PiperOrigin-RevId: 448075898 Change-Id: Ia4047f833bf27c62752b41f4ba65ab3be88a0181
* Fixes for C++20 support when not using std::optional.Gravatar Abseil Team2022-05-10
| | | | | | | | | | | * Avoid warnings due to deprecation of volatile return types. Also fix up optional_test.cc due to ABSL_USES_STD_OPTIONAL always being false in its body. Bug: chromium:1284275 PiperOrigin-RevId: 447796238 Change-Id: If050206c979c6c08af22e71ff0ea91e7f7932f0c
* raw_logging: Document that AbortHook's buffers live for as long as the ↵Gravatar Andy Getzendanner2022-05-05
| | | | | | | process remains alive. PiperOrigin-RevId: 446725910 Change-Id: I291fa8c1c41155b1530969f64b2b7f44b1576c92
* raw_logging: Rename SafeWriteToStderr to indicate what about it is safe ↵Gravatar Andy Getzendanner2022-05-04
| | | | | | | | | (answer: it's async-signal-safe). Also, preserve errno across calls to make it actually signal-safe. PiperOrigin-RevId: 446620926 Change-Id: I875fbec02b909e8424ddf763303b0d6007f8548f
* Correct the comment about the probe sequence. It's (i/2 + i)/2 not (i/2 - i)/2.Gravatar Abseil Team2022-05-04
| | | | | | | Also note that this probe sequence visits every group exactly once. PiperOrigin-RevId: 446535602 Change-Id: I13169be3f8ee6a4ddbbe8be84f1e1a482444d0cc
* Improve analysis of the number of extra `==` operations, which was overly ↵Gravatar Abseil Team2022-05-04
| | | | | | | | | | | | | | | | complicated, slightly incorrect. The old analysis viewed it as birthday attack, which asks how often there are multiple values in the probe same probe sequence with the same H2. In their own words, this analysis "breaks down" at around `n = 12`. Instead we can answer a simpler question, which is, if a probe sequence examines `k` objects that are not what we are looking for, what's the number of calls `==`? The expectation is simply `k/128`. PiperOrigin-RevId: 446518063 Change-Id: Ie879bd4f6c97979822bc9d550b9e2503b1418c78
* In btree, move rightmost_ into the CompressedTuple instead of root_.Gravatar Evan Brown2022-05-04
| | | | | | | We also add accessors for rightmost()/mutable_rightmost(). PiperOrigin-RevId: 446515231 Change-Id: I4b8cb46f4bd209a0f51dcdcb96c9479e480828a3
* raw_logging: Rename LogPrefixHook to reflect the other half of it's job ↵Gravatar Andy Getzendanner2022-05-04
| | | | | | | (filtering by severity). PiperOrigin-RevId: 446476285 Change-Id: Ibd0913e06244424241200d17177a4f220fcb7861
* Don't construct/destroy object twiceGravatar Abseil Team2022-05-03
| | | | | PiperOrigin-RevId: 446274314 Change-Id: Ibf641808c533a10e0aef8d1601095e539ae5c43a
* Rename function_ref_benchmark.cc into more generic ↵Gravatar Dino Radakovic2022-05-03
| | | | | | | function_type_benchmark.cc, add missing includes PiperOrigin-RevId: 446209567 Change-Id: I9aac8ce10b93ed71f1260931995af1d32db6f780
* Fixed typo in `try_emplace` comment.Gravatar Abseil Team2022-05-02
| | | | | PiperOrigin-RevId: 446010475 Change-Id: I28020510f3888a11f35b1960e9af441145ebf39b
* Fix a typo in a comment.Gravatar Abseil Team2022-04-29
| | | | | PiperOrigin-RevId: 445394311 Change-Id: I265b6a83f79bbed4321e24e6da4730a2c43ddb07
* Adds ABSL_CONST_INIT to initializing declarations where it is missingGravatar Derek Mauro2022-04-25
| | | | | | | Fixes #1159 PiperOrigin-RevId: 444278141 Change-Id: Iae055fe78b438c31150a9e7601b734f4981f002e
* Automated visibility attribute cleanup.Gravatar Abseil Team2022-04-25
| | | | | PiperOrigin-RevId: 444259007 Change-Id: Ic518f66a33e387b7a551f37f7c0f6003c743dcb0
* Fix typo in absl/time/time.hGravatar Dino Radakovic2022-04-22
| | | | | PiperOrigin-RevId: 443726104 Change-Id: Ibd015472fe3e403c2da49bdeeb365ca9a817b8a5
* Fix typo: "a the condition" -> "a condition".Gravatar Abseil Team2022-04-22
| | | | | PiperOrigin-RevId: 443723710 Change-Id: Ic39b0cf2b289efa9cd9434616949dd08a1a35117
* Export of internal Abseil changesGravatar Abseil Team2022-04-19
| | | | | | | | | | | -- 6457ad659de86ce4cae1e9f7cb03a701c6c2851e by Abseil Team <absl-team@google.com>: Introduced ErrnoToStatusCode and ErrnoToStatus to abseil. PiperOrigin-RevId: 442903450 Change-Id: I9c062b34a3811216f43eef56e631eada3b4e3e84 GitOrigin-RevId: 6457ad659de86ce4cae1e9f7cb03a701c6c2851e
* Export of internal Abseil changesGravatar Abseil Team2022-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- 3d018c03a34bf273a4b24b3584ed77f0a6d21686 by Abseil Team <absl-team@google.com>: Fix a spelling typo (s/boundries/boundaries). PiperOrigin-RevId: 442041877 Change-Id: I608020697d37b85316bb9a0838e4b457659c926c -- 518b8119e51db24ce7fb0fd2fe537ec43825c3e6 by Dino Radakovic <dinor@google.com>: absl/types/internal/variant: Make include guard uppercase https://google.github.io/styleguide/cppguide.html#The__define_Guard PiperOrigin-RevId: 441911692 Change-Id: I9837dd07f20204d8253f20627b0917a34dc21825 -- b91696c38310a7cae8c1ea9e2d479495f5dc3f69 by Greg Falcon <gfalcon@google.com>: Add an internal-only API to wrap __builtin_prefetch() if available. This private API is intended for future use by the Abseil implementation. Like any internal-namespaced function, it may be changed or removed at any time. PiperOrigin-RevId: 441894616 Change-Id: Iaa48bd4680b373f4a0d5afab0cb35e2a1908595f -- 0f01e8b0551a662e02dff60840c54320f987315f by Derek Mauro <dmauro@google.com>: C++20: Use the standard `constinit` keyword for `ABSL_CONST_INIT` when available PiperOrigin-RevId: 441778874 Change-Id: I70c616469752ff23b326b1c615437599f42cc6aa GitOrigin-RevId: 3d018c03a34bf273a4b24b3584ed77f0a6d21686
* Export of internal Abseil changesGravatar Abseil Team2022-04-14
| | | | | | | | | | | | | -- 155545fafefd0a0cef83853f1addea1ecf4a4618 by Derek Mauro <dmauro@google.com>: Support ABSL_ATTRIBUTE_NO_SANITIZE_ADDRESS on MSVC https://docs.microsoft.com/en-us/cpp/cpp/no-sanitize-address PiperOrigin-RevId: 441737758 Change-Id: Ida9b185a929ffa22ad2ffdcfbd53076f69bfc036 GitOrigin-RevId: 155545fafefd0a0cef83853f1addea1ecf4a4618
* Export of internal Abseil changesGravatar Abseil Team2022-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- f4c7e510922668c68be4aa79a00867c3d3ca9f95 by Derek Mauro <dmauro@google.com>: Many improvements to LeakChecker builds The presence of the LeakChecker is now detected when possible. GCC users using LeakChecker in standalone mode still need to use -DLEAK_CHECKER. This is now documented in the header. The hacky targets used for testing leak checking have been removed in favor of testing in AddressSanitizer mode on Kokoro. Fixes #885 Fixes #1153 PiperOrigin-RevId: 441203393 Change-Id: Ibe64ef6b104bcaf31839ff7184e558cc86abdd1c -- 5c70a23aa83b8152ab95d2cf21662fc63c80ef7d by Abseil Team <absl-team@google.com>: Add a benchmark for stacktrace PiperOrigin-RevId: 441196473 Change-Id: I4c9aa2e797aa2cae09abfaaee3abe5c09eb62fc4 -- 50b406052273b9d5bad04a7860a96e4d5d956c02 by Abseil Team <absl-team@google.com>: Internal change. PiperOrigin-RevId: 441114481 Change-Id: I667af7a50d5631ca91289dd24c91ba90233e0184 -- 568b4eaac120b420bce5290179d407d2b57d5bae by Dino Radakovic <dinor@google.com>: Internal change PiperOrigin-RevId: 440894155 Change-Id: Ia587ffc65a8321126585fb363b7c0ca8cc2a0da2 -- d53948eace4f3a10ac5a6c1496dc51b81adc412c by Abseil Team <absl-team@google.com>: Explicitly give internal linkage to symbols which are not used outside of their translation units. PiperOrigin-RevId: 440424519 Change-Id: I531c5e229d443375483b7550a34f48042589a99b GitOrigin-RevId: f4c7e510922668c68be4aa79a00867c3d3ca9f95
* Export of internal Abseil changesGravatar Abseil Team2022-04-07
| | | | | | | | | | | -- 0c8848ebedc07470c7ab647a5bb8949481540ce9 by Dino Radakovic <dinor@google.com>: Define absl::base_internal::invoke using std::invoke when C++ >= 17 PiperOrigin-RevId: 439880834 Change-Id: I3622fcf473501d54c57575118a11d54c19573446 GitOrigin-RevId: 0c8848ebedc07470c7ab647a5bb8949481540ce9
* Export of internal Abseil changesGravatar Abseil Team2022-04-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- ef2bf829c333f378ecc12f3259e3187cdb75a3d5 by Abseil Team <absl-team@google.com>: debugging: fix the VDSO symbol name used for unwinding on RISC-V Linux The name listed in `man vdso` is incorrect. Instead, use the name from `linux-5.16/arch/riscv/kernel/vdso/rt_sigreturn.S` PiperOrigin-RevId: 439654174 Change-Id: Ib39d066f416681720068e806e828a2c76a14a532 -- 43dfad824afd36cfc3e5049b4fea71a2bccb066c by Benjamin Barenblat <bbaren@google.com>: Check printf format strings in str_format_convert_test Add ABSL_PRINTF_ATTRIBUTE to appropriate functions in strings/internal/str_format/convert_test. Correct TypedFormatConvertTest.Char, which was accidentally passing values of types larger than int to StrPrint. PiperOrigin-RevId: 439388148 Change-Id: I6cde4e8e0c6455064138192430f07f4c990be0bc -- f84b4ab2c3b070c8af0c82742ac7a8a4bf443bca by Derek Mauro <dmauro@google.com>: Use __builtin_memcmp in the absl::string_view implementation starting with MSVC 16.9, where it first appeared This enables more constexpr operations PiperOrigin-RevId: 439317316 Change-Id: Iaf1ce76b60901d4b2d5b96be5900c56572f57b15 GitOrigin-RevId: ef2bf829c333f378ecc12f3259e3187cdb75a3d5
* Export of internal Abseil changesGravatar Abseil Team2022-04-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- afa44fa0245a1cfb1824ef9697b3fa77fa9615c9 by Laramie Leavitt <lar@google.com>: Comment CMakeLists.txt about internal absl_cc_library() targets. From what I can tell, these are the CMake targets that are public: absl::algorithm absl::algorithm_container absl::base absl::core_headers absl::dynamic_annotations absl::log_severity absl::cleanup absl::btree absl::fixed_array absl::flat_hash_map absl::flat_hash_set absl::inlined_vector absl::node_hash_map absl::node_hash_set absl::debugging absl::failure_signal_handler absl::leak_check absl::leak_check_disable absl::stacktrace absl::symbolize absl::flags absl::flags_commandlineflag absl::flags_config absl::flags_marshalling absl::flags_parse absl::flags_reflection absl::flags_usage absl::bind_front absl::function_ref absl::hash absl::hash_testing absl::memory absl::meta absl::type_traits absl::bits absl::int128 absl::numeric absl::numeric_representation absl::exponential_biased absl::periodic_sampler absl::sample_recorder absl::random_bit_gen_ref absl::random_distributions absl::random_mocking_bit_gen absl::random_random absl::random_seed_gen_exception absl::random_seed_sequences absl::status absl::statusor absl::cord absl::cord_test_helpers absl::str_format absl::strings absl::synchronization absl::civil_time absl::time absl::time_zone absl::any absl::bad_any_cast absl::bad_optional_access absl::bad_variant_access absl::compare absl::optional absl::span absl::variant absl::utility PiperOrigin-RevId: 438702788 Change-Id: Icf611c35e88f03cd2493a95f61617605305d4e8e -- a99f60847578e6c0df6befadb29a01c86def0d21 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 438647928 Change-Id: I141eadd17d6e8607df25ebc893aecefa0239a72f -- b23e77e8f62a77023188594390c9e491c507d22c by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 438628502 Change-Id: I40c4297716c8c1621ba8b02a22393bfcbefb5b5e GitOrigin-RevId: afa44fa0245a1cfb1824ef9697b3fa77fa9615c9
* Export of internal Abseil changesGravatar Abseil Team2022-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- b984c7c1cbee4253192c833046bfcfa16dca8ccf by Dino Radakovic <dinor@google.com>: Restrict visibility of absl/flags:commandlineflag_internal PiperOrigin-RevId: 438591894 Change-Id: I12a6392b2c7f9f1263c741dfd6c43ae22e903aad -- 81315601aab70bb6ac2d17655a727d7f9ee2ff95 by Justin Lebar <jlebar@google.com>: Update example in str_join.h to use a lambda. PiperOrigin-RevId: 438390035 Change-Id: Icc707b972e5a369a71ad774004fdf0a17a9b33a7 -- 1c3c7921224e505faca8617b073f657d3737219f by Dino Radakovic <dinor@google.com>: Internal change PiperOrigin-RevId: 438386036 Change-Id: I6066da1b5a1ddf5af265944a31ed298297b4f2e1 -- 2d6885f78481f04e0e7ee86060aec15b677144f3 by Abseil Team <absl-team@google.com>: Internal change PiperOrigin-RevId: 438378389 Change-Id: If70dd9114114eb44e85afccd521e7fb7e1436b88 -- 7f8282ddee7fcd032e01cbfe65c11c2d166cceb8 by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 438374554 Change-Id: I993367952af1dc83bd5aa0ae19a64c024f457fdd -- ce65ba28f6031e45db8fa5118a05410f5166fd7a by Abseil Team <absl-team@google.com>: Spelling gardening: Heterogeneous has an "e" after the "n". PiperOrigin-RevId: 438374411 Change-Id: If1a9098a5d04338837998883739c7b555efa62b4 GitOrigin-RevId: b984c7c1cbee4253192c833046bfcfa16dca8ccf
* Fix build with uclibc-ng (#1145)Gravatar Fabrice Fontaine2022-03-30
| | | | | | | | | | | | | | uclibc-ng doesn't provide getauxval which results in the following build failure on arm or ppc with any user of abseil-cpp such as grpc: /home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /home/buildroot/autobuild/instance-0/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libabsl_random_internal_randen_hwaes.so.2111.0.0: undefined reference to `getauxval' To fix this build failure, check that __UCLIBC__ is not defined before using getauxval (as Babel is not able to check function availability) Fixes: - http://autobuild.buildroot.org/results/775f3ca3dedebff29e212b29dfa896b7613b7a02 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
* Export of internal Abseil changesGravatar Abseil Team2022-03-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- fb671efb2a70f452f17a884b17cf18817b977a8f by Abseil Team <absl-team@google.com>: Remove extra semicolon in ABSL_INTERNAL_ASSERT_IS_FULL macro To fix compilation when empty statement warning is treated as error. PiperOrigin-RevId: 438342663 Change-Id: I3067fbeffa2691888f37554e88f229f24fb55ecc -- a58c9396f1d88d11347aed36ef2e1b633071363c by Martijn Vels <mvels@google.com>: Fix kMaxHeight bounds to kMaxDepth for CordrepBtreeNavigator Added unit test (confirmed failure mode with old code) and extra assertion in the implementation. PiperOrigin-RevId: 438327463 Change-Id: I32242c86b0c879b8a42cb9a92075e537d588e09f -- f348e85dbfc9187ef59085fa2b999374f1670338 by Jorge Gorbe Moya <jgorbe@google.com>: Make the flags enum in `RefcountAndFlags` a named enum to workaround an lldb issue (https://github.com/llvm/llvm-project/issues/54602). PiperOrigin-RevId: 438146097 Change-Id: Ibc2ee26489d99de515a779a903b6458dd0befef7 -- a960a3e9fb2a2e3418f806178e73d8566b78bc85 by Gennadiy Rozental <rogeeff@google.com>: Introduce support for std::optional<T>/absl::optional<T> flag types. PiperOrigin-RevId: 438129500 Change-Id: I3d925c0a7f9ce9f857277fac3b0bf664ccd3a95c GitOrigin-RevId: fb671efb2a70f452f17a884b17cf18817b977a8f
* Export of internal Abseil changesGravatar Abseil Team2022-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- 291f7ef542f73e4801ab5108014bc02344ef31df by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 437835981 Change-Id: I42fd92e74903894533ac9984d7f622e3ba20f468 -- 2e8caf1a57c50b518e05b4bca48e4fe1bb19af82 by Andy Getzendanner <durandal@google.com>: Internal change PiperOrigin-RevId: 437832673 Change-Id: I61b35089418d01a54cecf161b254b68252bebff3 -- b927482ccc399f7e337b60582988b914d9946e4e by Derek Mauro <dmauro@google.com>: Simplify endian intrinsics for modern compilers All modern compilers have either __builtin_bswapN (gcc, clang) or _byteswap_TYPE (MSVC). The other intrinsic definitions are no longer necessary. PiperOrigin-RevId: 437772295 Change-Id: Ifb3d88ba24b9097f87ceb202272b36d2f5e5117f -- b6782a2247a16d5c14706a74ec577c19963d9f97 by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 437373174 Change-Id: I0f77e1780dee90d7a3c32a08d96c4aeb624a57b4 -- a53e0c724e37b0b01515a99bd25394b8e21ffdfc by Derek Mauro <dmauro@google.com>: Unify detection of SSE2 and SSSE3 instruction sets and include the proper headers Fix the intrinsic implementation of FastHexToBufferZeroPad16 in numbers.h which only relies on SSSE3, not SSE 4.2. https://godbolt.org/z/Pf5bn1Yv9 Closes #639 PiperOrigin-RevId: 437286940 Change-Id: Ic97948399b61b91e9c0bccd09313b795b904d714 -- f173f597cb2a75ef2a989f45a496334b85e6f40d by Abseil Team <absl-team@google.com>: Change assertion function to enable clearer error messages. PiperOrigin-RevId: 437227057 Change-Id: If420d2f63b51feef6648762f344d5be012cd9c85 GitOrigin-RevId: 291f7ef542f73e4801ab5108014bc02344ef31df
* Replace the implementation of the Mix function in arm64 back to 128bit ↵Gravatar Ren Zibei2022-03-28
| | | | multiplication (#1094)
* Support for QNX (#1147)Gravatar Calvin Ke2022-03-25
|
* Export of internal Abseil changesGravatar Abseil Team2022-03-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- 8c9dd24a6fbf9ed10ae81f9fa0bc2168558a9700 by Abseil Team <absl-team@google.com>: Improve WebAssembly detection when using Bazel. Unfortunately, the --cpu values are not standardized, and both --cpu=wasm and --cpu=wasm32 are used in the wild. Most notably, Emscripten's Bazel rules use --cpu=wasm, which was missing. While there, add support for @platforms//cpu:{wasm32,wasm64}. This change adds a dependency on @bazel_skylib, which requires adding the following http_archive() rule to the WORKSPACE file: http_archive( name = "bazel_skylib", urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz"], sha256 = "f7be3474d42aae265405a592bb7da8e171919d74c16f082a5457840f06054728", ) PiperOrigin-RevId: 436815546 Change-Id: I4e1946070c6964abb12259f25a546f2d24e0992a -- 59514589043d9b0734a01f7aa7bc354f5b495eab by Abseil Team <absl-team@google.com>: Fix some typos that slipped through. PiperOrigin-RevId: 436777566 Change-Id: Ibf5c54e2671c749dc87d2bd5d36dcd220ce347d4 GitOrigin-RevId: 8c9dd24a6fbf9ed10ae81f9fa0bc2168558a9700
* Export of internal Abseil changesGravatar Abseil Team2022-03-22
| | | | | | | | | | | -- bcd349230e418f5e29d5fced1b942828fa5cb2ad by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 436317331 Change-Id: I0f8a0c4cd0d5f348a33e486c85c863072c30742a GitOrigin-RevId: bcd349230e418f5e29d5fced1b942828fa5cb2ad
* Export of internal Abseil changesGravatar Abseil Team2022-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | -- f3ac7ee28fc7de737bc9e2e1d10ff7739781d645 by Gennadiy Rozental <rogeeff@google.com>: Internal change PiperOrigin-RevId: 435739199 Change-Id: I8f854b742418a237f9060e4b9f23d0f20baf0bdf -- fe1329708cb40da8e72e53e4eaad79112bdb79ea by Abseil Team <absl-team@google.com>: Port SwissTable internals comments from github.com/google/cwisstable to Abseil. PiperOrigin-RevId: 435719801 Change-Id: I2270cc93aaa5d3d57954a8cea7e570b72b6c3956 -- a6e6fcd4b944ce370ac3307e848645c27bf21e47 by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 435716325 Change-Id: I77999f69e176ee6c0d18e7c3329a7c336164f0fc GitOrigin-RevId: f3ac7ee28fc7de737bc9e2e1d10ff7739781d645
* Exclude unsupported x64 intrinsics from ARM64EC (#1135)Gravatar Ben Niu2022-03-18
| | | | | | | | | ARM64EC is a Microsoft-designed ARM64 ABI compatible with AMD64 applications on ARM64 Windows 11. The ARM64EC does not support _umul128 and __rdtsc as x64 intrinsics, though it provides inline function implementations for them, by emulation. Since the code already has portable code paths without using the intrinsics, instead of using the emulated intrinsic implementations, we use the said portable code paths for ARM64EC.
* Export of internal Abseil changesGravatar Abseil Team2022-03-18
| | | | | | | | | | | | | | | | | | | -- 199bdbf9ad253b216ed6c6386bf69bc706330204 by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 435425408 Change-Id: I502d21ca5771d14e24fe41b28dc562ea6274996d -- 245a761e96f53857cef9c2359eac9d4bbcfdfd47 by Abseil Team <absl-team@google.com>: Fix a -Wsign-compare -Wconversion problem in absl::btree discovered while getting cachelib to compile with those flags enabled. PiperOrigin-RevId: 435419108 Change-Id: I0a9fa53d0163f678dde8960410315a5bc8445c72 GitOrigin-RevId: 199bdbf9ad253b216ed6c6386bf69bc706330204
* Export of internal Abseil changesGravatar Abseil Team2022-03-17
| | | | | | | | | | | | | | | | | | | | | | | -- 399d051d30f7a78c367bb1dc08829ffacbb619a6 by Abseil Team <absl-team@google.com>: Fix a glitch in symbolization which could result in the same address being correctly symbolized and "(unknown)" in the same crash report. PiperOrigin-RevId: 435371003 Change-Id: I9f6a5684144be6d3d366584601d79fda9eefdce6 -- 5dad813de52773e0bb09c6b2351e1bbadb53deac by Abseil Team <absl-team@google.com>: Fix ABSL_HAVE_MMAP check in direct_mmap.h This change makes the check for ABSL_HAVE_MMAP match the other checks in absl. This fixes builds where ABSL_HAVE_MMAP is not defined. PiperOrigin-RevId: 435190242 Change-Id: I11638ef315849cafcf4ea1611eee1a98c80e7dcb GitOrigin-RevId: 399d051d30f7a78c367bb1dc08829ffacbb619a6
* Export of internal Abseil changesGravatar Abseil Team2022-03-16
| | | | | | | | | | | | | | | | | | | | -- c49308e5361da572b5accdfe664757ca6bf7fed1 by Derek Mauro <dmauro@google.com>: Disable TestArmThumbOverlap on platforms that don't support it TestArmThumbOverlap includes a pair of test functions, one built in arm mode and the other built in thumb mode. Unfortunately when configured for armv6 hardfloat, gcc refuses to build any functions in thumb mode (even if they don't actually use floating point) Closes #1112 PiperOrigin-RevId: 435078532 Change-Id: I090623d0f89839a5f9dde831756aba5267c9a45c GitOrigin-RevId: c49308e5361da572b5accdfe664757ca6bf7fed1
* Export of internal Abseil changesGravatar Abseil Team2022-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | -- 5dc885f2b62993bccf33a3f3b99f7e460c819c89 by Derek Mauro <dmauro@google.com>: Remove the internal-only ABSL_INTERNAL_ASSUME now that ABSL_ASSUME is available and ABSL_INTERNAL_ASSUME has no more users. Improve the documentation to ABSL_ASSUME somewhat. PiperOrigin-RevId: 434803125 Change-Id: I7c27418463ffc1c7e10ecd50e2d17f348f686af7 -- 4aea19a0ef596228c9136a4c2446e6f25085f23c by Derek Mauro <dmauro@google.com>: Update documentation to warn against using absl::Hash across dynamically loaded libraries Fixes #1128 PiperOrigin-RevId: 434723247 Change-Id: Ib0c7ba03b2cab98b42e19e85be6833192d4b4067 GitOrigin-RevId: 5dc885f2b62993bccf33a3f3b99f7e460c819c89
* Export of internal Abseil changesGravatar Abseil Team2022-03-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- d3b99682554d339c42556680f4d65f83226005e2 by Martijn Vels <mvels@google.com>: Inline CycleClock code and remove branch for x86 CycleClockSource function This CL removes the relaxed load for x86 as there is no acquire price to pay on x86. It inlines the UnscaledCycleClock::Now() which is a single RTDSC op for x86, and likewise inlines CycleClock::Now() for x86. The inlining should mostly have secondary benefits such as reducing spills on outlined calls. LTO may eventually hoist these functions inline for the hotspots, but it doesn't hurt to default inline this for all builds and let the compiler decide on the first pass. The perlab benchmark is noisy for the plain BM_Now, but the other benchmarks and the run on my local machine are clear. ------------- Local Benchy Benchmark name old cpu/op new cpu/op delta BM_Now 3.41ns ± 1% 2.30ns ± 2% -32.52% (p=0.000 n=50+50) BM_NowWithRegisterPresure 4.96ns ± 2% 4.19ns ± 2% -15.57% (p=0.000 n=56+55) BM_NowWithCallback 3.30ns ± 2% 1.91ns ± 2% -42.00% (p=0.000 n=47+60) ------------- Perflab Benchy Benchmark name old cpu/op new cpu/op delta BM_Now 8.20ns ±13% 4.32ns ±83% ~ (p=0.413 n=4+5) BM_NowWithRegisterPresure 7.91ns ± 1% 3.68ns ± 2% -53.45% (p=0.029 n=4+4) BM_NowWithCallback 2.66ns ±13% 1.58ns ± 0% -40.51% (p=0.008 n=5+5) PiperOrigin-RevId: 434474766 Change-Id: I991d987ae9233e50f09606c874055cf4c5a56300 -- b38330686a0af176a2679163e4d2fa1b90e2f667 by Laramie Leavitt <lar@google.com>: Style, comment, and test updates * Remove a redundant assert in uniform_real_distribution. * Update comment in internal/generate_real.h * Style updates to uniform_real_distribution_test mainly replacing TypeParam with real_type, using aliases for some limits, etc. * Add a few more minor tests. PiperOrigin-RevId: 433902174 Change-Id: Id75be8e24be2fb8f6aea05feec13e3ef320a7254 -- ab2da6047ff7f5dae3add3779fcddf73b03feabf by Abseil Team <absl-team@google.com>: Remove declaration of method whose definition was previously removed. PiperOrigin-RevId: 433507828 Change-Id: I0130b689813125250f7de2664e767e181f676c89 -- df0c87f4ec2c010691931c1bef9d26470a6e63a2 by Derek Mauro <dmauro@google.com>: Internal change PiperOrigin-RevId: 433289136 Change-Id: Iba157dc83ed99dafd17a2223d2504e49f8afbb9e -- 7445fa312f2995772900eda82467325b3401a17d by Martijn Vels <mvels@google.com>: Optimize CordReader logic now that CONCAT is removed This CL cleans up various helper functions and logic remaining from previous complex CONCAT logic that is no longer needed, simplifying the CordReader logic. PiperOrigin-RevId: 433208748 Change-Id: I5f7b1883573c44e7c6f8af12c3cddbd197cb134d GitOrigin-RevId: d3b99682554d339c42556680f4d65f83226005e2
* Add NetBSD support (#1121)Gravatar Thomas Klausner2022-03-08
|
* Export of internal Abseil changesGravatar Abseil Team2022-03-08
| | | | | | | | | | | -- 0b01bad05b4cdea647ad274d64af0d6732787a1d by Gennadiy Rozental <rogeeff@google.com>: Internal change PiperOrigin-RevId: 433124996 Change-Id: I0a081fb5cbb628901e4913a9c587468ca3b3aaa4 GitOrigin-RevId: 0b01bad05b4cdea647ad274d64af0d6732787a1d
* Export of internal Abseil changesGravatar Abseil Team2022-03-04
| | | | | | | | | | | | | | | | | | | -- 3358c3cca1c3770fb5d50e743ac56547af813561 by Dino Radakovic <dinor@google.com>: Add ABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT guard to TEST(Duration, Multiplication) PiperOrigin-RevId: 432350431 Change-Id: I28a26a12665e3e9a9ebdf50d0249eafa8336c585 -- af631611681a298c305578d5049757ec8ced03ab by Dino Radakovic <dinor@google.com>: Add config macro for optional skipping absl/time:time_test cases that fail on MSVC optimized builds PiperOrigin-RevId: 432252533 Change-Id: Ic3879ccdd8e30945a1a2e980e9ae246bcef8d7bd GitOrigin-RevId: 3358c3cca1c3770fb5d50e743ac56547af813561