summaryrefslogtreecommitdiff
path: root/absl
Commit message (Collapse)AuthorAge
* Add support for enum types with AbslStringifyGravatar Abseil Team2022-11-09
| | | | | PiperOrigin-RevId: 487394692 Change-Id: I55e9b57055483dc921e9773c3643ea9be4f9bdf6
* Release the CRC libraryGravatar Derek Mauro2022-11-09
| | | | | | | | | This implementation can advantage of hardware acceleration available on common CPUs when using GCC and Clang. A future update may enable this on MSVC as well. PiperOrigin-RevId: 487327024 Change-Id: I99a8f1bcbdf25297e776537e23bd0a902e0818a1
* Improve error messages when comparing swisstable iterators.Gravatar Evan Brown2022-11-09
| | | | | | | We check for comparisons of swisstable iterators from different heap allocations, which can indicate either iterators from different containers or that there was a rehash between when the iterators were initialized. PiperOrigin-RevId: 487304602 Change-Id: I5c596c5ea07948d66e048f99937f9032a630344f
* Auto increase inlined capacity whenever it does not affect class' size.Gravatar Abseil Team2022-11-09
| | | | | PiperOrigin-RevId: 487292771 Change-Id: I2454e28fe91017fb2954a4ad194712fcafe893d2
* drop an unused depGravatar Andy Getzendanner2022-11-08
| | | | | PiperOrigin-RevId: 486867412 Change-Id: Ib54b1acaf1ea57f8f377c87261d7d52e9a48784f
* Factor out the internal helper AppendTruncated, which is used and redefined ↵Gravatar Andy Getzendanner2022-11-07
| | | | | | | in a couple places, plus several more that have yet to be released. PiperOrigin-RevId: 486759835 Change-Id: Ib1b24f287f856ca38b691fbce7e747f0f5a34626
* Fix some invalid iterator bugs in btree_test.cc for multi{set,map} ↵Gravatar Evan Brown2022-11-07
| | | | | | | | | | | | | emplace{_hint} tests. Note that multi{set,map}::emplace doesn't specify in which order the new element is inserted if there are equivalent keys in the table, whereas emplace_hint specifies that the new element must be before the hint if possible. https://en.cppreference.com/w/cpp/container/multiset/emplace https://en.cppreference.com/w/cpp/container/multiset/emplace_hint Also refactor to rely on IsAssertEnabled instead of checking for NDEBUG. PiperOrigin-RevId: 486733450 Change-Id: Ie90d33c584a6caccd8301ad6fc0396234dbbfac4
* Force a conservative allocation for pointers to methods in Condition objects.Gravatar Abseil Team2022-11-07
| | | | | | | | | | | In order for Condition to work on Microsoft platforms, it has to store pointers to methods that are larger than we usually expect. MSVC pointers to methods from class hierarchies that employ multiple inheritance or virtual inheritance are strictly larger than pointers to methods in class hierarchies that only employ single inheritance. This change introduces an opaque declaration of a class, which is not fulfilled. This declaration is used to calculate the size of the Condition method pointer allocation. Because the declaration is of unspecified inheritance, the compiler is forced to use a conservatively large allocation, which will thereby accommodate all method pointer sizes. Because the `method_` and `function_` callbacks are only populated in mutually exclusive conditions, they can be allowed to take up the same space in the Condition object. This change combines the `method_` and `function_` fields and renames the new field to `callback_`. The constructor logic is updated to reflect the new field. PiperOrigin-RevId: 486701312 Change-Id: If06832cc26f27d91e295183e44dc29440af5f9db
* Fix a few lint findings in flags' usage.ccGravatar Michael Diamond2022-11-06
| | | | | PiperOrigin-RevId: 486480813 Change-Id: I05292dd0550dfb4130bbe47eafa96ff5b58c040b
* Narrow some _MSC_VER checks to not catch clang-cl.Gravatar Andy Getzendanner2022-11-04
| | | | | PiperOrigin-RevId: 486227733 Change-Id: If492d715e5758971cf7bd0ccd748b47b1424a3c7
* Small cleanups in logging test helpersGravatar Andy Getzendanner2022-11-03
| | | | | PiperOrigin-RevId: 486023797 Change-Id: I0b82754fd40c2d6fb451f304aaf1d795eed8d009
* Import of CCTZ from GitHub.Gravatar Derek Mauro2022-11-03
| | | | | PiperOrigin-RevId: 485921596 Change-Id: I453801e3d7b4a60ecedf173d448c8b6f51cb0b2e
* Merge pull request #1287 from GOGOYAO:patch-1Gravatar Copybara-Service2022-11-03
|\ | | | | | | | | PiperOrigin-RevId: 485886212 Change-Id: Ic7a710913f8376d07b9bdeb987d007ec04e48465
* \ Merge pull request #1307 from KindDragon:patch-1Gravatar Copybara-Service2022-11-03
|\ \ | | | | | | | | | | | | PiperOrigin-RevId: 485885633 Change-Id: Idfaf6ce22a9421fe05ae38029c8a68b720ce50ba
* | | Stop disabling some test warnings that have been fixedGravatar Derek Mauro2022-11-03
| | | | | | | | | | | | | | | PiperOrigin-RevId: 485868656 Change-Id: I09d70adc570b6b79a80c29f89601186aab390032
* | | Support logging of user-defined types that implement `AbslStringify()`Gravatar Phoebe Liang2022-11-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | If a user-defined type has `AbslStringify()` defined, it will always be used for logging over `operator<<`. `HasAbslStringify` now uses the empty class `UnimplementedSink` for its checks instead of `StringifySink` in order to make it work in cases involving other sinks. PiperOrigin-RevId: 485710377 Change-Id: Ibdd916151c7abc3269c35fbe79b772867f3d25e1
| * | Fix MSVC version checking in lifetime_test.ccGravatar Arkady Shapkin2022-11-03
|/ /
* | Eliminate span_internal::Min in favor of std::min, since Min conflicts with ↵Gravatar Jorg Brown2022-11-02
| | | | | | | | | | | | | | a macro in a third-party library. PiperOrigin-RevId: 485653193 Change-Id: I0615ceb9ea3e1533a989470e7c9863c86b70698b
* | Fix -Wimplicit-int-conversion.Gravatar Abseil Team2022-11-02
| | | | | | | | | | PiperOrigin-RevId: 485575914 Change-Id: If1752252e3cc2f91dc3c171382c9fb3a4def0377
* | Improve error messages when dereferencing invalid swisstable iterators.Gravatar Evan Brown2022-11-01
| | | | | | | | | | | | | | | | | | - Separate the failure cases into different assertions: end/default constructed vs rehashed or erased. - Update the assertion error for AssertIsValid to not mention the end iterator case because end iterators are considered valid by AssertIsValid. - Also fix an out-of-date comment for skip_empty_or_deleted. PiperOrigin-RevId: 485402559 Change-Id: I593056abdc6c3565d0396fb885923fef643bf4e4
* | Cord: Avoid leaking a node if SetExpectedChecksum() is called on anGravatar Derek Mauro2022-11-01
| | | | | | | | | | | | | | empty cord twice in a row. PiperOrigin-RevId: 485367641 Change-Id: I6605ff25acbcef7c40b68e15a8888076a2da63be
* | Add a warning about extract invalidating iterators (not just the iterator of ↵Gravatar Abseil Team2022-10-31
| | | | | | | | | | | | | | the element being extracted). PiperOrigin-RevId: 485120182 Change-Id: Ic54d538721678bed0a748dacbf33c319e62b93b8
* | Import of CCTZ from GitHub.Gravatar Abseil Team2022-10-31
| | | | | | | | | | PiperOrigin-RevId: 485070787 Change-Id: Ie62021eaf84f5a43e8943d3167e98e3986fcf5a6
* | Import of CCTZ from GitHub.Gravatar Abseil Team2022-10-31
| | | | | | | | | | PiperOrigin-RevId: 485054062 Change-Id: Ieafa217b562548f8bb8dc6fc4e1e414f8ede0579
* | Support empty Cords with an expected checksumGravatar Derek Mauro2022-10-28
| | | | | | | | | | PiperOrigin-RevId: 484578104 Change-Id: Ie4be3e4de27dc28d88395e16fd075fb10ab7a302
* | Move internal details from one source file to another more appropriate sourceGravatar Andy Soffer2022-10-27
| | | | | | | | | | | | | | file. PiperOrigin-RevId: 484419458 Change-Id: Ic2c1afa1a3434ac071c01ae2e6c75dee41b1f069
* | Removes `PutPaddedString()` functionGravatar Phoebe Liang2022-10-27
| | | | | | | | | | | | | | This function is unnecessary as it was originally used to support modifiers with `absl::StrFormat()`. This functionality is irrelevant to `absl::StrCat()`. PiperOrigin-RevId: 484339246 Change-Id: I8c4a0ee01b30aee7a83f6ab54e5465465cc9cc56
* | Return uint8_t from CappedDamerauLevenshteinDistance.Gravatar Abseil Team2022-10-27
| | | | | | | | | | PiperOrigin-RevId: 484181180 Change-Id: I00206c1506a25dca5555261d6500c1e54368a368
* | Remove the unknown CMAKE_SYSTEM_PROCESSOR warning when configuringGravatar Derek Mauro2022-10-26
| | | | | | | | | | | | | | | | | | | | | | ABSL_RANDOM_RANDEN_COPTS Everything works fine when this is empty Fixes #1301 PiperOrigin-RevId: 484014466 Change-Id: I2fa96d845320f23063e1e86ee2df3ac14bd44012
* | Enforce Visual Studio 2017 (MSVC++ 15.0) minumumGravatar Derek Mauro2022-10-26
| | | | | | | | | | PiperOrigin-RevId: 483972593 Change-Id: I5358871cdf825bbfae65bf9f5872c4fd56005fb7
* | `absl::InlinedVector::swap` supports non-assignable types.Gravatar Abseil Team2022-10-25
| | | | | | | | | | PiperOrigin-RevId: 483752526 Change-Id: Ie6b63a4a3cc7593e5b8bf255ba571a77d609ce04
* | Improve b-tree error messages when dereferencing invalid iterators.Gravatar Evan Brown2022-10-25
| | | | | | | | | | | | | | | | - Check for invalid generation before checking for other types of invalid iterators. - Check specifically for dereferencing end() iterators. PiperOrigin-RevId: 483725646 Change-Id: Ibca19c48b1b242384683580145be8fb9ae707bc8
* | Mutex: Fix stall on single-core systemsGravatar Abseil Team2022-10-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On single-core systems, a thread could be preempted while holding an absl::Mutex, or even worse, the spin lock. If a FIFO thread wakes up and tries to acquire this lock, it might not be able to yield() to the sleeping thread. Within MutexDelay(), a yield() and a sleep(10us) are used to yield the CPU. The yield() would do nothing if the calling thread holds the highest priority in the system. The 10us sleep() may not be able to reach the scheduler either, if the system is slow enough. This code path is known to be reachable in the following scenarios: - a FIFO thread calls LockSlowLoop() with spin lock held by a normal thread - a FIFO thread calls LockWhen*() with the Mutex held by a normal thread for a long time - a FIFO thread calls Await*(), releases the Mutex to be held by a normal thread for a long time This CL adds a mutex global for the sleep time, and sets it using the return time of the a yield() call. Yield() must reach the scheduler even when it fails to yield to anyone, and would allow sleep() to do the same. A small constant multiplier (5) is also applied to overcome uncontrollable factors in the runtime and help sleep() to consistently yield to another thread. Upper and lower bounds for the sleep time is also controlled to block any unreasonable values. PiperOrigin-RevId: 483459711 Change-Id: I14efadbadaf9244a2462f377b515147bda651c89
* | Document Base64Unescape() paddingGravatar Abseil Team2022-10-21
| | | | | | | | | | PiperOrigin-RevId: 482905442 Change-Id: Ic3a1e62f8a17efee5508d94835635aa489940f2d
* | Fix sign conversion warnings in memory_test.cc.Gravatar Abseil Team2022-10-21
| | | | | | | | | | | | Bug: chromium:1292951 PiperOrigin-RevId: 482767615 Change-Id: Ia1e812fa7bde8753b17046ed325542ad41f30f9b
* | Fix a sign conversion warning.Gravatar Abseil Team2022-10-19
| | | | | | | | | | | | Bug: chromium:1292951 PiperOrigin-RevId: 482287305 Change-Id: I896033c7c8b2645eacab974c4364c6ba66d38cb6
* | Fix a truncation warning on Windows 64-bit.Gravatar Abseil Team2022-10-18
| | | | | | | | | | | | Bug: chromium:1292951 PiperOrigin-RevId: 482021281 Change-Id: I01c25dcb2dae82fcee25da00aefec4484f7c409d
* | Use btree iterator subtraction instead of std::distance in erase_range() and ↵Gravatar Evan Brown2022-10-18
| | | | | | | | | | | | | | count(). PiperOrigin-RevId: 481979737 Change-Id: I69f53665b0463a7d8d80f2a3feedfdd95d32b012
* | Eliminate use of internal interfaces and make the test portable and expose ↵Gravatar Gennadiy Rozental2022-10-18
| | | | | | | | | | | | | | it to OSS. PiperOrigin-RevId: 481865072 Change-Id: I46364ec07df6aaff25911f8bd9e40dfee6c60626
* | Fix various warnings for _WIN32.Gravatar Abseil Team2022-10-17
| | | | | | | | | | | | Bug: chromium:1292951 PiperOrigin-RevId: 481757795 Change-Id: I03c808222c6c4d3d7052576ab4b36141e5f1ebbc
* | Disables StderrKnobsDefault due to order dependencyGravatar Abseil Team2022-10-17
| | | | | | | | | | | | | | The SetLogtostderr and SetAlsologtostderr tests are setting flags that cause the stderrthreshold global value to be out of sync with the stderrthreshold flag. As a result, it is not currently possible to remove order dependency with these existing tests. PiperOrigin-RevId: 481731395 Change-Id: Ie992520982f2e69821d1d1b660e3326bf745ef0d
* | Implement btree_iterator::operator-, which is faster than std::distance for ↵Gravatar Evan Brown2022-10-17
| | | | | | | | | | | | | | | | btree iterators. Note: btree_iterator::operator- is still O(N) because in the worst case (end()-begin()), we will have at least one operation per node in the tree, and there are at least N/M nodes, where M (a constant) is the maximum number of values per node. PiperOrigin-RevId: 481716874 Change-Id: Ic0225b7509208ed96b75a2dc626d2aa4a24f4946
* | Merge pull request #1298 from rpjohnst:mingw-cmake-buildGravatar Copybara-Service2022-10-17
|\ \ | | | | | | | | | | | | PiperOrigin-RevId: 481654034 Change-Id: I8cb2ba51fec831a24a56e62022e210191e732687
* | | Implement function to calculate Damerau-Levenshtein distance between two ↵Gravatar Abseil Team2022-10-17
| | | | | | | | | | | | | | | | | | | | | strings. PiperOrigin-RevId: 481568970 Change-Id: Icb132348f62fed4c0168aac4963b3313a060890b
| * | Use the `-l` form for MinGW-specific link dependenciesGravatar Russell Johnston2022-10-15
|/ / | | | | | | | | This corrects the generated .pc files, so these libs match the other libs already included there.
* | Change per_thread_sem_test from size medium to size large.Gravatar Evan Brown2022-10-14
| | | | | | | | | | PiperOrigin-RevId: 481192073 Change-Id: I1e3296f6be4ddf73bd5c7164f4673e97a0c2c408
* | Support stringification of user-defined types in AbslStringify in ↵Gravatar Andy Soffer2022-10-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | absl::Substitute. We are also moving some internals into an internal header. `HasAbslStringify` was not previously in an internal namespace but was intended to be and has now been moved to an internal namespace. This is in adherence to our compatibility guidelines which wave requirements for APIs within their first 30 days of public release (See https://abseil.io/about/compatibility for details). PiperOrigin-RevId: 481190705 Change-Id: I4c0c348f269ea8d76ea3d4bd5a2c41cce475dc04
* | Fix "unsafe narrowing" warnings in absl, 12/12.Gravatar Abseil Team2022-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Addresses failures with the following, in some files: -Wshorten-64-to-32 -Wimplicit-int-conversion -Wsign-compare -Wsign-conversion -Wtautological-unsigned-zero-compare (This specific CL enables these warnings and fixes the remaining known issues.) Bug: chromium:1292951 PiperOrigin-RevId: 480981210 Change-Id: I92d5023c6833e24d6aa29b10d433116329972f41
* | Revert change to internal 'Rep', this causes issues for gdbGravatar Martijn Vels2022-10-13
| | | | | | | | | | PiperOrigin-RevId: 480945608 Change-Id: I3e90a105c793deee02fbef322946bf7d5340dc78
* | Reorganize InlineData into an inner Rep structure.Gravatar Martijn Vels2022-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves inlined code around a bit without changing anything bar the names of things. The purpose for all this is that it greatly simplifies the process of adding memory poisining to Cord / InlineData. InlineData can have scoped poison / unpoison regions around the interface, calling into rep for the 'real code'. I.e.: Rep::as_chars() { return &inline_data[1]; } InlineData::as_chars() { Unpoisoned self(this); return rep_.as_chars(); } Likewise, it greatly simplifies intercepting the code for constructors, copy constructors and operator= logic. PiperOrigin-RevId: 480893031 Change-Id: I050c88caff2315939d95a0361ae20528be36a96b