aboutsummaryrefslogtreecommitdiff
path: root/absl
Commit message (Collapse)AuthorAgeFilesLines
...
* Drop std:: qualification from integer types like uint64_t.Chris Mihelich2024-06-145-34/+34
| | | | | PiperOrigin-RevId: 643418422 Change-Id: Ib16cfef8ddedc8366df49ca75ab02eb60af08f26
* Increase slop time on MSVC in PerThreadSemTest.Timeouts again due to ↵Evan Brown2024-06-141-1/+1
| | | | | | | continued flakiness. PiperOrigin-RevId: 643372086 Change-Id: I8fb2acc0e5ad35113e865bf008a531f3442a9295
* Turn on validation for out of bounds MockUniform in MockingBitGenJustin Bassett2024-06-132-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | This makes MockUniform fail if the action is specified to return an out of bounds value. Examples that will fail: absl::Uniform(gen, 1, 4) -> 42 absl::Uniform(gen, 1, 4) -> 4: [1, 4) absl::Uniform(absl::IntervalOpenClosed, gen, 1, 4) -> 1: (1, 4] Examples that will pass: absl::Uniform(gen, 1, 4) -> 3 absl::Uniform(gen, 1, 4) -> 1: [1, 4) absl::Uniform(absl::IntervalClosed, gen, 1, 4) -> 4: [1, 4] Special case: the empty range always returns its boundary, so this case passes: absl::Uniform(absl::IntervalOpen, 1, 1) -> 1: (1, 1) If this breaks your test, your test has a bug: it's relying on an absl::Uniform() call that returns an impossible value. The UnvalidatedMockingBitGen type temporarily exists to allow for disabling the validation to give a bit of time to fix the test, but this type will go away soon. PiperOrigin-RevId: 643090275 Change-Id: I23470fa9e1efbcb42fa3866237038414545c7be2
* Use ABSL_UNREACHABLE() instead of equivalentDerek Mauro2024-06-131-14/+1
| | | | | PiperOrigin-RevId: 643024432 Change-Id: Id07aa18d186291442f7b6f3c68ef8dd6cc20b434
* If so configured, report which part of a C++ mangled name didn't parse.Chris Mihelich2024-06-121-3/+69
| | | | | PiperOrigin-RevId: 642757934 Change-Id: I6dffe81e5173201b80a107b951fe1c69b20972f5
* Sequence of 1-to-4 values with prefix sum to support Punycode decoding.Chris Mihelich2024-06-124-0/+282
| | | | | PiperOrigin-RevId: 642696557 Change-Id: Ia6b8e174ddb55e44bd082bf0d81d2f9c53c94016
* Add the missing inline namespace to the nullability filesDerek Mauro2024-06-124-1/+8
| | | | | PiperOrigin-RevId: 642621989 Change-Id: I95efa4bd9fe8fe3c449304706401374f851f0fbe
* Add ABSL_INTERNAL_ATTRIBUTE_VIEW and ABSL_INTERNAL_ATTRIBUTE_OWNER ↵Abseil Team2024-06-127-8/+14
| | | | | | | attributes to types in Abseil PiperOrigin-RevId: 642619703 Change-Id: I8d2e423a3c7f40709d0e8c82cac0395c75d601cf
* Disallow reentrance removal in `absl::erase_if`.Vitaly Goldshteyn2024-06-112-29/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Predicates should generally have no side effects since we do not guarantee the order or quantity for the calls. In this change we forbid one specific side effect: modification of the table we are iterating over. As a positive effect we have performance improvements (less computations and less branches). ``` name old cpu/op new cpu/op delta BM_EraseIf/num_elements:10/num_erased:0 3.02ns ± 2% 2.79ns ± 3% -7.44% (p=0.000 n=35+37) BM_EraseIf/num_elements:1000/num_erased:0 2.41ns ± 5% 2.05ns ± 4% -14.88% (p=0.000 n=37+37) BM_EraseIf/num_elements:10/num_erased:5 4.40ns ± 3% 4.22ns ± 3% -4.19% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:500 9.16ns ± 4% 9.13ns ± 3% ~ (p=0.307 n=37+37) BM_EraseIf/num_elements:10/num_erased:10 5.77ns ± 3% 5.50ns ± 4% -4.62% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:1000 7.84ns ± 3% 7.77ns ± 3% -0.94% (p=0.006 n=37+35) name old time/op new time/op delta BM_EraseIf/num_elements:10/num_erased:0 3.02ns ± 2% 2.79ns ± 3% -7.48% (p=0.000 n=35+36) BM_EraseIf/num_elements:1000/num_erased:0 2.41ns ± 5% 2.05ns ± 4% -14.89% (p=0.000 n=37+37) BM_EraseIf/num_elements:10/num_erased:5 4.42ns ± 3% 4.23ns ± 3% -4.22% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:500 9.18ns ± 4% 9.15ns ± 3% ~ (p=0.347 n=37+37) BM_EraseIf/num_elements:10/num_erased:10 5.79ns ± 3% 5.52ns ± 4% -4.61% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:1000 7.87ns ± 3% 7.79ns ± 3% -0.95% (p=0.007 n=37+35) name old INSTRUCTIONS/op new INSTRUCTIONS/op delta BM_EraseIf/num_elements:10/num_erased:0 14.9 ± 0% 12.9 ± 0% -13.46% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:0 12.7 ± 0% 10.3 ± 0% -18.76% (p=0.000 n=37+37) BM_EraseIf/num_elements:10/num_erased:5 30.9 ± 0% 28.9 ± 0% -6.48% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:500 37.6 ± 0% 35.3 ± 0% -6.33% (p=0.000 n=37+37) BM_EraseIf/num_elements:10/num_erased:10 46.9 ± 0% 44.9 ± 0% -4.27% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:1000 62.6 ± 0% 60.2 ± 0% -3.80% (p=0.000 n=37+36) name old CYCLES/op new CYCLES/op delta BM_EraseIf/num_elements:10/num_erased:0 4.91 ± 1% 4.11 ± 1% -16.35% (p=0.000 n=36+35) BM_EraseIf/num_elements:1000/num_erased:0 7.74 ± 2% 6.54 ± 2% -15.54% (p=0.000 n=37+37) BM_EraseIf/num_elements:10/num_erased:5 9.18 ± 3% 8.45 ± 3% -7.88% (p=0.000 n=37+35) BM_EraseIf/num_elements:1000/num_erased:500 29.5 ± 1% 29.3 ± 1% -0.82% (p=0.000 n=36+37) BM_EraseIf/num_elements:10/num_erased:10 13.5 ± 1% 12.6 ± 0% -7.06% (p=0.000 n=33+34) BM_EraseIf/num_elements:1000/num_erased:1000 25.1 ± 0% 24.9 ± 0% -0.90% (p=0.000 n=37+35) ``` PiperOrigin-RevId: 642318040 Change-Id: I78a4a5a9a5881db0818225f9c7c153c562009f66
* Fix implicit conversion of temporary bitgen to BitGenRefAbseil Team2024-06-101-7/+8
| | | | | | | There is no reason a temporary *shouldn't* be usable with BitGenRef (indeed, ABSL_ATTRIBUTE_LIFETIME_BOUND should catch errors) and it is useful when passing a temporary bitgen as an input argument. PiperOrigin-RevId: 642021132 Change-Id: I03e46f5f437e40a0c6225ea1f0361475a3501513
* Use `IterateOverFullSlots` in `absl::erase_if` for hash table.Vitaly Goldshteyn2024-06-104-106/+292
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `EraseIf` itself is not very hot function, but I want to use that as demonstration of the speed of iteration via `IterateOverFullSlots`. Motivation: 1. We are still going to save some resources. 2. It is the first step to implement faster `absl::c_for_each` that may give larger benefits. Will require readability considerations. `BM_EraseIf/num_elements:1000/num_erased:0` is just iteration and it gives 60% speed up. On smaller tables removing all elements shows 25% speed up. Note that on small tables erasing is much faster due to cl/592272653. ``` name old cpu/op new cpu/op delta BM_EraseIf/num_elements:10/num_erased:0 3.41ns ± 5% 3.03ns ± 3% -11.14% (p=0.000 n=37+35) BM_EraseIf/num_elements:1000/num_erased:0 6.06ns ± 3% 2.42ns ± 3% -60.05% (p=0.000 n=34+37) BM_EraseIf/num_elements:10/num_erased:5 5.90ns ± 3% 4.44ns ± 4% -24.88% (p=0.000 n=36+37) BM_EraseIf/num_elements:1000/num_erased:500 11.0ns ± 2% 9.2ns ± 2% -16.60% (p=0.000 n=35+37) BM_EraseIf/num_elements:10/num_erased:10 8.03ns ± 3% 5.77ns ± 2% -28.19% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:1000 9.00ns ± 3% 7.83ns ± 2% -12.98% (p=0.000 n=37+37) name old time/op new time/op delta BM_EraseIf/num_elements:10/num_erased:0 3.42ns ± 5% 3.04ns ± 3% -11.13% (p=0.000 n=37+36) BM_EraseIf/num_elements:1000/num_erased:0 6.07ns ± 3% 2.42ns ± 3% -60.10% (p=0.000 n=34+37) BM_EraseIf/num_elements:10/num_erased:5 5.93ns ± 3% 4.45ns ± 4% -24.89% (p=0.000 n=36+37) BM_EraseIf/num_elements:1000/num_erased:500 11.1ns ± 2% 9.2ns ± 2% -16.61% (p=0.000 n=35+37) BM_EraseIf/num_elements:10/num_erased:10 8.06ns ± 3% 5.79ns ± 2% -28.19% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:1000 9.03ns ± 3% 7.85ns ± 2% -12.98% (p=0.000 n=37+37) name old INSTRUCTIONS/op new INSTRUCTIONS/op delta BM_EraseIf/num_elements:10/num_erased:0 19.5 ± 1% 14.9 ± 0% -23.79% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:0 19.9 ± 0% 12.7 ± 0% -36.20% (p=0.000 n=37+37) BM_EraseIf/num_elements:10/num_erased:5 36.9 ± 1% 30.9 ± 0% -16.47% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:500 44.8 ± 0% 37.6 ± 0% -16.06% (p=0.000 n=37+37) BM_EraseIf/num_elements:10/num_erased:10 53.0 ± 1% 46.9 ± 0% -11.61% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:1000 69.8 ± 0% 62.6 ± 0% -10.32% (p=0.000 n=36+37) name old CYCLES/op new CYCLES/op delta BM_EraseIf/num_elements:10/num_erased:0 6.10 ± 7% 4.91 ± 1% -19.49% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:0 19.4 ± 1% 7.7 ± 2% -60.04% (p=0.000 n=37+37) BM_EraseIf/num_elements:10/num_erased:5 13.9 ± 4% 9.2 ± 3% -33.80% (p=0.000 n=37+37) BM_EraseIf/num_elements:1000/num_erased:500 35.5 ± 0% 29.5 ± 1% -16.74% (p=0.000 n=37+37) BM_EraseIf/num_elements:10/num_erased:10 20.8 ± 5% 13.5 ± 0% -35.07% (p=0.000 n=37+30) BM_EraseIf/num_elements:1000/num_erased:1000 28.9 ± 0% 25.1 ± 0% -13.06% (p=0.000 n=37+37) ``` PiperOrigin-RevId: 642016364 Change-Id: I8be6af5916bd45fd110bb0398c3ffe932a6a083f
* UTF-8 encoding library to support Rust Punycode decoding.Chris Mihelich2024-06-105-0/+322
| | | | | PiperOrigin-RevId: 641983507 Change-Id: Iad7933884aef6bfd90d159c049a1d698d19456c6
* Disable negative NaN float ostream format checking on RISC-VBenjamin Barenblat2024-06-101-0/+14
| | | | | | | | | | | It’s not clear whether negative NaN floats are supposed to print as "-nan" or "nan" on RISC-V (https://cplusplus.github.io/LWG/issue4101). Until that’s resolved, don’t require that logging such a float with Abseil produce the same result as streaming it to an ostream does. Closes: https://github.com/abseil/abseil-cpp/issues/1684 PiperOrigin-RevId: 641942176 Change-Id: Iec7ef130cc15c114714f2d124cb37886b3c37ab4
* PR #1689: Minor: Add missing quotes in CMake string view library definitionRobert Schulze2024-06-101-2/+2
| | | | | | | | | | | | Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1689 Merge c755474cd03d3da0efa68ec0605b183d24bfd5d6 into 2f61aed18c4affd3a75a2b2d2468d23f2f16192a Merging this change closes #1689 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1689 from rschu1ze:missing-quotes c755474cd03d3da0efa68ec0605b183d24bfd5d6 PiperOrigin-RevId: 641896976 Change-Id: Iaf565a13ad639543c2f1ba698aefd18f8f48bede
* Demangle template parameter object names, TA <template-arg>.Chris Mihelich2024-06-102-0/+38
| | | | | PiperOrigin-RevId: 641893938 Change-Id: I8a21e322c9cf1d5dab7477af5367aad134fbf2ab
* Demangle sr St <simple-id> <simple-id>, a dubious encoding found in the wild.Chris Mihelich2024-06-072-0/+42
| | | | | PiperOrigin-RevId: 641418373 Change-Id: I2999228cccfd18a000725b938a692c0c9004867c
* Try not to lose easy type combinators in S::operator const int*() and the like.Chris Mihelich2024-06-072-6/+139
| | | | | PiperOrigin-RevId: 641411131 Change-Id: Icba1307cccb8957e09f087a7b544f7fe8bfd8333
* Demangle fixed-width floating-point types, DF....Chris Mihelich2024-06-072-1/+54
| | | | | PiperOrigin-RevId: 641400156 Change-Id: Ib9f6e4f6c4bbd6d3234dfd322d1d14a59b08d88a
* Demangle _BitInt types DB..., DU....Chris Mihelich2024-06-072-0/+55
| | | | | PiperOrigin-RevId: 641360162 Change-Id: Iabce55eb61feaa4dc099093a6496e26ab66906fa
* Demangle complex floating-point literals.Chris Mihelich2024-06-072-2/+28
| | | | | PiperOrigin-RevId: 641324572 Change-Id: Ie266da9c8c702e62b89352d64870fb41d2ea76c3
* Demangle <extended-qualifier> in types, e.g., U5AS128 for address_space(128).Chris Mihelich2024-06-072-7/+51
| | | | | PiperOrigin-RevId: 641310017 Change-Id: I0f10a2a1965e842db4efda455e0cdfbeb6656fa5
* Demangle operator co_await (aw).Chris Mihelich2024-06-072-0/+10
| | | | | PiperOrigin-RevId: 641291188 Change-Id: I02f6bae62b05c8964a3b6e8f78299061ce57e01a
* Demangle fully general vendor extended types (any <template-args>).Chris Mihelich2024-06-072-15/+7
| | | | | PiperOrigin-RevId: 641271471 Change-Id: Ibeedb4dea3b961955d073f048d293b19aa917792
* Demangle transaction-safety notations GTt and Dx.Chris Mihelich2024-06-072-1/+24
| | | | | PiperOrigin-RevId: 641249074 Change-Id: Id410ce6c3b7a9a2b10aedf9c70ec65d3e37af06d
* Demangle C++11 user-defined literal operator functions.Chris Mihelich2024-06-062-2/+22
| | | | | PiperOrigin-RevId: 641046309 Change-Id: Iaa2564a60035421969c2cd6074a457980083cbd2
* Demangle C++20 constrained friend names, F (<source-name> | <operator-name>).Chris Mihelich2024-06-062-0/+42
| | | | | PiperOrigin-RevId: 641011959 Change-Id: I844d4eb99a9f9da160bb53e491dee753a70750df
* Demangle dependent GNU vector extension types, Dv <expression> _ <type>.Chris Mihelich2024-06-062-2/+71
| | | | | PiperOrigin-RevId: 640993627 Change-Id: I84073099907a3634eca4b12cd2e633908465907a
* Demangle elaborated type names, (Ts | Tu | Te) <name>.Chris Mihelich2024-06-062-1/+38
| | | | | PiperOrigin-RevId: 640972027 Change-Id: I810aaa10e7761686d03854abab3198be8b2868cf
* Add validation that hash/eq functors are consistent, meaning that `eq(k1, ↵Evan Brown2024-06-065-0/+123
| | | | | | | | | k2) -> hash(k1) == hash(k2)`. Also add missing includes/dependencies in flat_hash_map_test. PiperOrigin-RevId: 640959222 Change-Id: I8d99544af05e97310045e6149f6ef6f7c82e552d
* Demangle delete-expressions with the global-scope operator, gs (dl | da) ....Chris Mihelich2024-06-062-2/+73
| | | | | PiperOrigin-RevId: 640928445 Change-Id: I547f194ebb0a4482ecec627a7a03bab60e8e1c0b
* Demangle new-expressions with braced-init-lists.Chris Mihelich2024-06-062-0/+58
| | | | | PiperOrigin-RevId: 640908672 Change-Id: I85bed6e7d79b24b693007c08acde8e28e3e1429c
* Demangle array new-expressions, [gs] na ....Chris Mihelich2024-06-062-1/+69
| | | | | PiperOrigin-RevId: 640891321 Change-Id: I2bc0f6b907d8af88446375409fb523158ae0e001
* Demangle object new-expressions, [gs] nw ....Chris Mihelich2024-06-052-0/+108
| | | | | PiperOrigin-RevId: 640688552 Change-Id: I843e5aed55f90eeb89e007389390d0aba705a3fe
* Demangle preincrement and predecrement, pp_... and mm_....Chris Mihelich2024-06-052-0/+71
| | | | | PiperOrigin-RevId: 640666300 Change-Id: I1dae13f515de5fae3768a54c3808b80083ed63f8
* Demangle throw and rethrow (tw... and tr).Chris Mihelich2024-06-052-0/+41
| | | | | PiperOrigin-RevId: 640648613 Change-Id: Ifb4c385e629e2649da61b2b49c786a320da05fc7
* Remove redundant check of is_soo() while prefetching heap blocks.Abseil Team2024-06-051-1/+1
| | | | | PiperOrigin-RevId: 640620462 Change-Id: I72c0a7f0f549404ad8310b8cebd7dd491341390b
* Demangle ti... and te... expressions (typeid).Chris Mihelich2024-06-052-0/+48
| | | | | PiperOrigin-RevId: 640616282 Change-Id: I2aa94673283d89458886f0634adec87bbf0e57de
* Demangle nx... syntax for noexcept(e) as an expression in a dependent signature.Chris Mihelich2024-06-052-0/+22
| | | | | PiperOrigin-RevId: 640590102 Change-Id: I2641cddd35119062328a197162bb700d8309fc05
* Demangle alignof expressions, at... and az....Chris Mihelich2024-06-052-0/+44
| | | | | PiperOrigin-RevId: 640568425 Change-Id: Id63142ff2e94d7f7ee16367f34a2e4ae81c29b4e
* Demangle C++17 structured bindings, DC...E.Chris Mihelich2024-06-052-0/+24
| | | | | PiperOrigin-RevId: 640547784 Change-Id: Ib230993a358f89258367a1c10271c47be3b724e5
* Demangle modern _ZGR..._ symbols.Chris Mihelich2024-06-052-3/+36
| | | | | PiperOrigin-RevId: 640517212 Change-Id: Ideaaf45d2104a3c82cc9b6807894554335e5b904
* Remove redundant check of is_soo() while prefetching heap blocks.Abseil Team2024-06-041-1/+1
| | | | | PiperOrigin-RevId: 640359514 Change-Id: Ic321d23cad283425c686536ae7be04a490a950d5
* Demangle sizeof...(pack captured from an alias template), sP ... E.Chris Mihelich2024-06-042-0/+26
| | | | | PiperOrigin-RevId: 640314320 Change-Id: I1020879b354c75558d3dba064bb3ea13bd667227
* Demangle types nested under vendor extended types.Chris Mihelich2024-06-042-1/+39
| | | | | PiperOrigin-RevId: 640284003 Change-Id: I3ad2d971383513c7eeb5e3179e50c036cf7aa020
* Demangle il ... E syntax (braced list other than direct-list-initialization).Chris Mihelich2024-06-042-0/+69
| | | | | PiperOrigin-RevId: 640242497 Change-Id: I5574281110ddb27a6ee8d902dae90be6be6c0886
* Avoid signed overflow for Ed <number> _ manglings with large <number>s.Chris Mihelich2024-06-042-0/+33
| | | | | PiperOrigin-RevId: 640213246 Change-Id: Ib0dcf34d52566bfd0e3e9129c4438954aedab8ec
* Remove redundant check of is_soo() while prefetching heap blocks.Abseil Team2024-06-041-1/+1
| | | | | PiperOrigin-RevId: 640208455 Change-Id: I4c2b7d3f1adad2078e8a5f805574f71c4d7743d4
* Remove obsolete TODOAbseil Team2024-06-041-1/+0
| | | | | PiperOrigin-RevId: 640138527 Change-Id: I650dd91d76824cfd3a57b36eca282f41b3667125
* Clarify function comment for `erase` by stating that this idiom only works ↵Abseil Team2024-06-031-1/+1
| | | | | | | | | for "some" standard containers. If you use this idiom with `std::vector` or `absl::btree_map` you can end up either skipping elements or dereferencing an invalid iterator. PiperOrigin-RevId: 639892758 Change-Id: Ic5c213667b4b1e8c39813ee237aaffe320a8eb27
* Set ABSL_HAVE_THREAD_LOCAL to 1 on all platformsDerek Mauro2024-05-311-38/+3
| | | | | | | | | | thread_local is supported on all supported platforms https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md ABSL_HAVE_THREAD_LOCAL should be considered deprecated at this point. PiperOrigin-RevId: 639029951 Change-Id: I6525766c428f897fa50148e5c6b5a0f3fff0d9be