summaryrefslogtreecommitdiff
path: root/absl
Commit message (Collapse)AuthorAge
* absl: fix Mutex writer starvation related to uninit priorityGravatar Abseil Team2023-06-16
| | | | | | | | | | | | | | | | | | Currently when we queue the first thread, we don't init its priority. Subsequent queued threads init priority, but they compare it against the first thread priority, which is uninit. Thus the order can be wrong. It can lead to complete false starvation in some corner cases. On Linux the default priority is 0, which matches the uninit value, thus the problem is harder to spot on Linux (only possible if explicit thread priorities are used). But on Darwin the default priority is 31, thus the first thread falsely looks like lower priority than subsequently queued threads. The added test exposes the problem on Darwin. Always initialize the priority before queuing threads. PiperOrigin-RevId: 540814133 Change-Id: I513ce1493a67afe77d3e92fb49000b046b42a9f2
* absl: move comment in mutex.cc to where it belongsGravatar Abseil Team2023-06-15
| | | | | | | | | | Move the comment that relates to kMuDesig close to kMuDesig definition. Currently it's placed in between unrelated flags. NFC PiperOrigin-RevId: 540792401 Change-Id: I5f6a928cd9e01664812b2a7c3d9eb087c0723d7f
* The current aarch64 large-stack frame error handling is unsophisticated,Gravatar Abseil Team2023-06-15
| | | | | | | | | | | which makes it give up in certain situations where the x86 handler works fine This change adopts x86's more sophisticated stack-bounds-checking method for aarch64, and enables the HugeStack test to pass on aarch64. PiperOrigin-RevId: 540655431 Change-Id: If7d816330327722bbe5c135abfa77fda5e7e452b
* Rename AsyncSignalSafeWriteToStderr to AsyncSignalSafeWriteError.Gravatar Abseil Team2023-06-15
| | | | | | | It no longer strictly writes to stderr, since Emscripten/WebAssembly now use _emscripten_err which might be replaced by something that is not the same as stderr by the host. PiperOrigin-RevId: 540655336 Change-Id: Icc2a430a0db53a1282ef5558e9f3648db67e972c
* Bug fixGravatar Tsige Solomon2023-06-15
| | | | | PiperOrigin-RevId: 540586646 Change-Id: Iac1e133647fbaa5036ac9ef7322f9af5886c658e
* For web assembly, implement raw logging as direct JS console logging.Gravatar Abseil Team2023-06-14
| | | | | | | This bypasses the need for filesystem APIs just for stderr access. PiperOrigin-RevId: 540367155 Change-Id: Ib91dadac28cb5c8e571407b5dfa60c3e65539c95
* Remove two_ASCII_digits and replace with a scalar algorithmGravatar Abseil Team2023-06-13
| | | | | PiperOrigin-RevId: 539900072 Change-Id: I675386e3184f6f5ab70b851add970c91d1dde9c5
* Functions added: FindLongestCommonSuffix, FindLongestCommonPrefix.Gravatar Tsige Solomon2023-06-12
| | | | | PiperOrigin-RevId: 539784770 Change-Id: Ie224afa04af023bbddc89b967e8c8440f9e8a887
* Removes unused methods CRC::Empty() and CRC::Concat() from the internalGravatar Abseil Team2023-06-12
| | | | | | | implementation. PiperOrigin-RevId: 539749773 Change-Id: Iec83431ffd360a077b153cea00427580ae287d1f
* Merge pull request #1475 from anpol:placement-new-array-needs-more-spaceGravatar Copybara-Service2023-06-12
|\ | | | | | | | | PiperOrigin-RevId: 539747818 Change-Id: Ia0ab0fdda0ffe9b23d83d55c899f301df20b1179
* | Adding more support and testing for int128 and uint128 flags from cl/534444213Gravatar Abseil Team2023-06-12
| | | | | | | | | | PiperOrigin-RevId: 539726003 Change-Id: Ie38f8d48a7b4c9d498fc1c4c4af6138048f80f68
* | Fix behaviors of StrCat() and StrFormat() regarding char types and enum types.Gravatar Greg Falcon2023-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a conservative change, in that it only contains bugfixes and allows new patterns that used to be compile errors. There are other changes we would like to make (as reflected in the comments in char_formatting_test.cc), but we are being careful about the implications of such behavior changes. The two implementation changes are: * Apply integral promotions to enums before printing them, so they are always treated as integers (and not chars) by StrCat and StrFormat. * Classify `unsigned char` and `signed char` as integer-like rather than char-like, so that `StrFormat("%v", v)` accepts those types as integers (consistent with `StrCat()`.) The behavior changes are: * StrCat() now accepts char-backed enums (rather than failing to compile). * StrFormat("%v") now accepts `signed char` and `unsigned char` as integral (rather than failing to compile). * StrFormat("%v") now correctly formats 8-bit enums as integers (rather than failing internally and emitting nothing). Tested: Modified the char_formatting_test.cc case to reflect changes. Re-ran all other tests. PiperOrigin-RevId: 539659674 Change-Id: Ief56335f5a57e4582af396d00eaa9e7b6be4ddc6
* | DirectMmap: Use off_t instead of off64_t for the offset parameterGravatar Derek Mauro2023-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | off_t is best for portability. Its size varies with the platform. off64_t is non-standard, but is present in glibc and some BSDs. It also matches the signature specified in the manual. https://man7.org/linux/man-pages/man2/mmap.2.html This is a re-spin of #1349, but correctly casts the type to the type expected by the kernel for mmap2. https://man7.org/linux/man-pages/man2/mmap2.2.html Fixes #1473 PiperOrigin-RevId: 539656313 Change-Id: I7a30dd9d3eb6af03a99da0d93d721a86f6521b25
| * Fix buffer overflow in a placement `new[]` storage test.Gravatar Andrei Polushin2023-06-12
|/ | | | | | | | AppleClang seem to allocate two extra 64-bit words per each `new[]`. A test should pass larger buffer to a placement `new[]`. Fixes #1090
* Optimize Cord Refcount decrement.Gravatar Connal de Souza2023-06-09
| | | | | | | Introduce kHighRefcountMask which masks off flags and the LSb of the refcount value. In the cases where this mask is used, we don't need to check the LSb because we can assume the refcount is 1 when the rest of the masked RefcountAndFlags is empty, and the LSb doesn't matter if the masked value is not empty (either it's immortal or refcount > 1). This saves an instruction and a cycle (and + cmp -> tst) https://godbolt.org/z/Kz69eqfhq PiperOrigin-RevId: 539151659 Change-Id: I2ec7d72918f052c4b0938edd746af9d5b3052c7e
* Merge pull request #1472 from pateldeev:ivGravatar Copybara-Service2023-06-09
|\ | | | | | | | | PiperOrigin-RevId: 539145188 Change-Id: Ic8dc8112f77ca720a8871de57ee389f15693ab00
* | Fix unwinding through nested signal frames on aarch64.Gravatar Abseil Team2023-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes an endless loop in the absl Arm stack unwinder where encountering a second signal return trampoline (as one has in nested signal frames), would restart unwinding at the outermost signal, resulting in an endless loop. This does not change any behavior in the non-nested signal case, so I believe it is safe for any stack that hasn't encountered this bug already. I would love to test this beyond the absl unwinding test cases and the fingerprint_test included here, but I'm at a loss for other test cases. PiperOrigin-RevId: 539113007 Change-Id: I10037f9fa77b45cc4db61f89b9c6380ec3529113
* | StrFormat() simplification: Treat %v unconditionally as %d when formatting ↵Gravatar Greg Falcon2023-06-09
| | | | | | | | | | | | | | | | | | integers. This is a simplification but not a behavior change; we used to choose %u for unsigned ints, but %u and %d generate the same output for these types. PiperOrigin-RevId: 539104599 Change-Id: I9d7ff561b969a6287889f95063636d6b77a4a78b
* | Import of CCTZ from GitHub.Gravatar Abseil Team2023-06-09
| | | | | | | | | | PiperOrigin-RevId: 539104398 Change-Id: I6385662e0c5694d40c57887f983b16adc9eced14
* | The previous code was using `memmove` under the hood (`string::append`).Gravatar Abseil Team2023-06-09
| | | | | | | | | | | | | | This patch makes it use `memcpy` for performance and consistency with other overloads. PiperOrigin-RevId: 539079130 Change-Id: I5aea9dd9b8a1ce708c787df7d6c9a75ae419c484
* | Implement GetTID for NACL platform.Gravatar Abseil Team2023-06-09
| | | | | | | | | | | | | | in NACL pthread_self() returns a pointer that isn't directly convertible to arithmetic type. PiperOrigin-RevId: 539023020 Change-Id: I3745ec5565f3a99ccb1d9df12c27a80e57ca4755
| * Use InlinedVectorGravatar pateldeev2023-06-08
|/
* Merge pull request #1471 from wenshan1:blan-add-VxWorks-supportGravatar Copybara-Service2023-06-08
|\ | | | | | | | | PiperOrigin-RevId: 538778978 Change-Id: I0c04b09987eb4d97892825e3c994656d4e300f60
* \ Merge pull request #1468 from Romain-Geissler-1A:silence-aligned_storage-warningGravatar Copybara-Service2023-06-07
|\ \ | | | | | | | | | | | | PiperOrigin-RevId: 538651091 Change-Id: Id1aa7ab287beb252f4826f70e26b7e3bfa80c462
| | * Add VxWorks supportGravatar Bin Lan2023-06-08
| | |
* | | Remove redundant redeclarations causing -Wredundant-decls warningsGravatar Derek Mauro2023-06-07
| | | | | | | | | | | | | | | | | | | | | Fixes #1469 PiperOrigin-RevId: 538534014 Change-Id: Iab84f73c0a0665355b614e85c62f686dc54c8671
* | | Merge pull request #1458 from juergbi:aixGravatar Copybara-Service2023-06-07
|\ \ \ | | | | | | | | | | | | | | | | PiperOrigin-RevId: 538488164 Change-Id: I680dcbc2f27dca3beba416b3cd0a55943751cf4c
* | | | Update XML output to properly print special characters. Non printable ↵Gravatar Gennadiy Rozental2023-06-07
| |_|/ |/| | | | | | | | | | | | | | | | | characters are skipped in output. All the "whitespace-like" (including \t, \r, \n) characters printed as plain space ' '. PiperOrigin-RevId: 538479923 Change-Id: I62dff39bb21f376d00a7b9480f8f1d31d7015e45
* | | Import of CCTZ from GitHub.Gravatar Abseil Team2023-06-06
| | | | | | | | | | | | | | | PiperOrigin-RevId: 538241594 Change-Id: Ie6f0d913bcf07dea2f33e47198ba952b3800d70e
| | * Silence std::aligned_storage warnings in C++23 mode.Gravatar Romain Geissler2023-06-06
| | | | | | | | | | | | | | | | | | This is only a workaround, working only with gcc/clang, while waiting for a better long term fix not using std::aligned_storage, which is tracked by b/260219225.
* | | Add a unit test that captures the current behavior of formatting of char ↵Gravatar Greg Falcon2023-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | types and char-backed enum types through StrCat(), StrFormat("%v"), and Substitute(). This test allows us to modify the behavior in this space without introducing undesired changes elsewhere. PiperOrigin-RevId: 537981963 Change-Id: Icda91b66efcc0dc8c263011b137e130a3db2dc19
* | | Import of CCTZ from GitHub.Gravatar Abseil Team2023-06-05
| |/ |/| | | | | | | PiperOrigin-RevId: 537825067 Change-Id: I3ce8712d5130068fb7d77b563eb502e2e9560810
* | Lifetime checks for `absl::StrSplit()`Gravatar Abseil Team2023-06-02
| | | | | | | | | | PiperOrigin-RevId: 537400816 Change-Id: I06794a6b8b6a441e34121047024380190d42869a
* | `absl`: Replace `absl::remove_cv_t<absl::remove_reference_t<T>>` with ↵Gravatar Dino Radakovic2023-06-02
| | | | | | | | | | | | | | `absl::remove_cvref_t<T>` PiperOrigin-RevId: 537372070 Change-Id: I46ff6e42856aea2cd8da6ff7105cf58613603dd4
* | Adding support for int128 and uint128 flag typesGravatar Abseil Team2023-06-01
| | | | | | | | | | PiperOrigin-RevId: 537120102 Change-Id: I7952e53aca10319eb433e4c4d60cf3d7fe74d19a
* | Merge pull request #1457 from juergbi:time-threadsGravatar Copybara-Service2023-06-01
|\ \ | | | | | | | | | | | | PiperOrigin-RevId: 537088042 Change-Id: I6ef219a1a76baf3a751a6084a8fb8639c9bdac51
* | | Convert `raw_hash_set` comments from imperative to indicative mood.Gravatar Bradley C. Kuszmaul2023-05-31
| | | | | | | | | | | | https://google.github.io/styleguide/cppguide.html#Function_Comments
* | | Merge pull request #1462 from kuszmaul:fix-typoGravatar Copybara-Service2023-05-31
|\ \ \ | | | | | | | | | | | | | | | | PiperOrigin-RevId: 536785792 Change-Id: I2963dea81a75b01b7275d784f6a2908816d0c7bf
* | | | Switch from perror to ABSL_INTERNAL_LOG.Gravatar Abseil Team2023-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Motivation is for WebAssembly to avoid perror which in turn requires file system emulation. PiperOrigin-RevId: 536737294 Change-Id: I5177064c9451fb630ec5e9d0c0a0679fabd98afa
* | | | For web assembly, implement WriteToStderr as emscripten_err.Gravatar Abseil Team2023-05-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids the need to use filesystem APIs just to write to stderr, which emscripten implements the same as this under the hood. PiperOrigin-RevId: 536525710 Change-Id: I0a647a4593eacfba324505b6e8c4acfb577ac839
| * | | Typo gardeningGravatar Bradley C. Kuszmaul2023-05-30
| | | |
* | | | Disable the use of the fast GetCurrentTimeNanos() algorithm based onGravatar Derek Mauro2023-05-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the cyclecounter by default, since it may be unsafe in some situations (for example, if the system may enter a sleep state). Fixes #1460 PiperOrigin-RevId: 535641718 Change-Id: I41c9cc4bc7a8ae7280ff9df00abd57668205045b
* | | | Add support for stateful allocators to absl::FixedArray.Gravatar Abseil Team2023-05-26
| | | | | | | | | | | | | | | | | | | | PiperOrigin-RevId: 535534819 Change-Id: Iccf8da3e0b084131e4c0dba205f3e190d3a66f4e
* | | | Implement a better GetTID on Apple platforms, and a better fallback too.Gravatar Andy Getzendanner2023-05-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The fallback isn't totally portable, even within POSIX, but we can special case any future platforms where it's not just like this change does for Apple. PiperOrigin-RevId: 535324103 Change-Id: Ib628925c4946b6c112373678fe37e9bb44259090
* | | | Split absl/hash/hash_test.cc into two filesGravatar Benjamin Barenblat2023-05-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hash_test.cc leans heavily on INSTANTIATE_TYPED_TEST_SUITE_P, which is quite memory- and CPU-hungry. Split a few heavyweight tests into a new hash_instantiated_test.cc, reducing peak RAM consumption (or, on multicore systems, compilation time). PiperOrigin-RevId: 535305679 Change-Id: Ic204da0a47c749c3f7db5f902ade8d74ed3043bb
* | | | Note that AsyncSignalSafeWriteToStderr preserves errno, and inline one use ↵Gravatar Andy Getzendanner2023-05-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | of it into a lambda. PiperOrigin-RevId: 535245982 Change-Id: I816f60c8b6476536df6836500f01c9a3ad88ddd4
* | | | Merge pull request #1454 from niranjan-nilakantan:niranjan-nilakantan/issue1450Gravatar Copybara-Service2023-05-24
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | PiperOrigin-RevId: 534841675 Change-Id: I6fbee6f0fe61d8dd51c9c7d93c3b47684a2f4d9f
* | | | | fill ABSL_INTERNAL_(DISABLE|RESTORE)_DEPRECATED_DECLARATION_WARNING macro ↵Gravatar Abseil Team2023-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for clang PiperOrigin-RevId: 534824761 Change-Id: I0ab78fcb211bc5df756fb581761ed8febc3d18fd
| | | | * absl/status: Fix build on AIXGravatar Jürg Billeter2023-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `_LINUX_SOURCE_COMPAT` needs to be defined to fix absl/status/status.cc:494:5: error: duplicate case value 494 | case ENOTEMPTY: // Directory not empty | ^~~~ absl/status/status.cc:480:5: note: previously used here 480 | case EEXIST: // File exists | ^~~~
| | | | * absl/base: Fix build on AIXGravatar Jürg Billeter2023-05-24
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | The AIX assembler doesn't support numeric labels. Use a relative jump instead to fix Assembler: /tmp/ccw16WCt.s: line 25: Error In Syntax