- 21 May, 2024 6 commits
-
-
`absl::int128` and `absl::uint128` are not `std::is_integral`. There is an internal `IsIntegral` type trait we could use, but it actually makes more sense to remove the `static_assert` altogether. Any compile-time validation should be done in `absl::Uniform` itself, and duplicating that logic here just increases the chance of divergence. PiperOrigin-RevId: 635971431 Change-Id: I9177ae64c86ee1abe6571e0b29aba1844553c972
Justin Bassett committed -
PiperOrigin-RevId: 635955480 Change-Id: I9322b4e7732e252007f6ca6c9b0cefc25974c9f8
Chris Mihelich committed -
PiperOrigin-RevId: 635938476 Change-Id: I49cba8789452f13cfeb4a24203b3b46624aa7269
Chris Mihelich committed -
PiperOrigin-RevId: 635913776 Change-Id: I8c765caa918b1afee9f855cf3afbc6489d60735f
Abseil Team committed -
We follow the C++ demangler in not printing the arguments, just an empty <>. PiperOrigin-RevId: 635858791 Change-Id: I24903d4c5a1e2060e92ca950bf7a61647aee655f
Chris Mihelich committed -
Fixes #1676 PiperOrigin-RevId: 635840902 Change-Id: Ifc4099175f1c5f040f55a9f5a47fe0c996af79d1
Derek Mauro committed
-
- 20 May, 2024 3 commits
-
-
This significantly reduces binary size of big binaries and creates a single hot function instead of many cold. That is decreasing cash misses during code execution. We also avoid size related computations for tables with no deleted slots, when resize is necessary. PiperOrigin-RevId: 635527119 Change-Id: I763b135f1f6089051e62e348a07b33536af265ab
Vitaly Goldshteyn committed -
This was supposed to be -Wunreachable-code-aggressive. PiperOrigin-RevId: 635519833 Change-Id: I2df1ca9ea8a8bf1060006c2b11602646a26eac61
Peter Boström committed -
`absl::Uniform(tag, rng, a, b)` has some restrictions on the values it can produce in that it will always be in the range specified by `a` and `b`, but these restrictions can be violated by `absl::MockingBitGen`. This makes it easier than necessary to introduce a bug in tests using a mock RNG. We can fix this by making `MockingBitGen` emit a runtime error if the value produced is out of bounds. Immediately fixing all the internal buggy uses of `MockingBitGen` is currently infeasible, so the plan is this: 1. Add turned-off validation to `MockingBitGen` to avoid the costs of maintaining unsubmitted code. 2. Temporarily migrate the internal buggy use cases to keep the current behavior, to be fixed later. 3. Turn on validation for `MockingBitGen`. 4. Fix the internal buggy use cases over time. --- A few of the different categories of errors I found: - `Call(tag, rng, a, b) -> a or b`, for open/half-open intervals (i.e. incorrect boundary condition). This case happens quite a lot, e.g. by specifying `absl::Uniform<double>(rng, 0, 1)` to return `1.0`. - `Call(tag, rng, 0, 1) -> 42` (i.e. return an arbitrary value). These may be straightforward to fix by just returning an in-range value, or sometimes they are difficult to fix because other data structures depend on those values. PiperOrigin-RevId: 635503223 Change-Id: I9293ab78e79450e2b7b682dcb05149f238ecc550
Justin Bassett committed
-
- 16 May, 2024 1 commit
-
-
`AbslStringify` is the [recommended](abseil.io/tips/215) way to make a type printable. However, the simple expression `DCHECK_EQ(x, y)` fails when either argument implements it, and not `operator<<`. PiperOrigin-RevId: 634261367 Change-Id: Ic42666c286cf172c9482abbd28194da828706c71
Abseil Team committed
-
- 15 May, 2024 2 commits
-
-
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1672 https://github.com/abseil/abseil-cpp/discussions/1671 Merge ddcbb2466b2c9c4048d60be7e58cf47f935c257d into eba8db7b Merging this change closes #1672 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1672 from MBkkt:optimize-str-join ddcbb2466b2c9c4048d60be7e58cf47f935c257d PiperOrigin-RevId: 633988391 Change-Id: I2b3904211a29de3a768fb90a7fc106d7ff6c03e7
Valery Mironov committed -
PiperOrigin-RevId: 633974603 Change-Id: I7efd0f0fadf1803aa8eacb86a18366e9a8a07df0
Chris Mihelich committed
-
- 14 May, 2024 2 commits
-
-
PiperOrigin-RevId: 633738511 Change-Id: I3f895d5de1aec5b5b9666523a328f3a3b0344e59
Chris Mihelich committed -
The tests work either way, but this way the inputs are more realistic. PiperOrigin-RevId: 633606944 Change-Id: I6c0440f2fceb5b8d9d4aed5818c3171d3fce2fb8
Chris Mihelich committed
-
- 13 May, 2024 3 commits
-
-
Both libstdc++ and libc++abi currently ship a __cxa_demangle on MIPS; there’s no reason to avoid using it. PiperOrigin-RevId: 633319823 Change-Id: I8d28a87f9998a62a25e0e149138395f8994e6fb5
Benjamin Barenblat committed -
This allows users to pass a collection of string-like objects in an `initializer_list` without having to convert everything to the same type first. `initializer_list` has the requirement that everything is copied in to the list. For strings hitting the `string_view` overload avoids unnecessary copies. This may be a breaking change if `absl::StrJoin` has an explicit template parameter, for example `absl::StrJoin<std::string>({foo, "bar"});`. In this case, remove the explicit template parameter. PiperOrigin-RevId: 633295575 Change-Id: Ie5f0860f409f639a27a58949842ec961e0b3bdebDerek Mauro committed -
PiperOrigin-RevId: 633229582 Change-Id: Ibda908d261b52b1af766304992edd77a5bdd56b5
Chris Mihelich committed
-
- 10 May, 2024 1 commit
-
-
The `if (actual != expected)` makes the `ASSERT_EQ(actual, expected)` trigger only when the assertion fails. However, a successful `ASSERT_EQ` takes a negligible amount of time, which means the `if` is useless and only makes the test harder to read. PiperOrigin-RevId: 632487285 Change-Id: I1f78136cf4895295c88a5ff3e0bcdce6b08c1d0b
Dino Radakovic committed
-
- 09 May, 2024 1 commit
-
-
- remove [<initializer_list>](https://en.cppreference.com/w/cpp/header/initializer_list) from internal header. It declares `std::initializer_list`, `std::begin` and `std::end`, none of which are used there - add `absl/base/attributes.h` to the internal header because it provides `ABSL_FALLTHROUGH_INTENDED` - add [<functional>](https://en.cppreference.com/w/cpp/header/functional) to the public header, because it provides `std::reference_wrapper` PiperOrigin-RevId: 632018125 Change-Id: Icf7a9c8a920c9c076ef416ea80995e3a81ce3e81
Dino Radakovic committed
-
- 08 May, 2024 3 commits
-
-
overload_test needs some extra dependencies to build when absl::variant is not an alias for std::variant; these dependencies are listed in absl/functional/BUILD.bazel but not in absl/functional/CMakeLists.txt. Copy dependencies from BUILD.bazel to CMakeLists.txt. PiperOrigin-RevId: 631845552 Change-Id: I63f53323b28aff36530be645b312e94b24475f53
Benjamin Barenblat committed -
`any_invocable`: Add public documentation for undefined behavior when invoking an empty AnyInvocable This is currently documented in `internal/any_invocable.h`, but not in the public API. For example, `std::function` [documents](https://en.cppreference.com/w/cpp/utility/functional/function) the fact that invoking an empty instance throws `std::bad_function_call`. PiperOrigin-RevId: 631621604 Change-Id: I6b886a805ffa0e7aaef5f6971e1eafd14f94050c
Dino Radakovic committed -
The comment calls if `any_invocable`, but the standard ultimately chose [`move_only_function`](https://en.cppreference.com/w/cpp/utility/functional/move_only_function/move_only_function). And `absl::AnyInvocable` does not officially track the standard. PiperOrigin-RevId: 631612663 Change-Id: I3f21f33cd6e2c6ce06ac92a8d2a68db6f942ea1b
Dino Radakovic committed
-
- 07 May, 2024 1 commit
-
-
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1662 Merge 4b2c6c909b573d31a1cccba7cb72d4d8badeef8b into cba31a95 Merging this change closes #1662 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1662 from pps83:crc-add 4b2c6c909b573d31a1cccba7cb72d4d8badeef8b PiperOrigin-RevId: 631470883 Change-Id: I4a72be643ed341ddf0e0007418ab4a613a03db4b
Pavel P committed
-
- 06 May, 2024 3 commits
-
-
PiperOrigin-RevId: 631211391 Change-Id: I68bb19d5702626ac497b05d851936aec42cc99d4
Abseil Team committed -
This change is a step towards simplifying `TestWithMultipleFormatsHelper` to the point where we'll be able to handle special cases (e.g. apple's handling of nan) by changing which inputs are fed into the helper, instead of skipping them within the helper and not testing them at all. Extracting the loop also improves readability by reducing indentation. PiperOrigin-RevId: 631038465 Change-Id: I8b2458539d9d276093d8e7b5f373efba6a33800c
Dino Radakovic committed -
PiperOrigin-RevId: 631018414 Change-Id: Ice8efa0af4cb1f72b5d62fbbea4cb12cbead8634
Chris Mihelich committed
-
- 03 May, 2024 2 commits
-
-
CountTrailingZeroesNonzero16 and CountLeadingZeroes16 when they are available. GCC 14 and Clang 19 adds these new builtins. The g-suffix is for "generic". The s-suffix on __builtin_ctzs and __builtin_clzs is for "short". GCC never implemented the short versions and #1664 reports GCC 14 (pre-release) gives an error here, although this may be a pre-release bug. Fixes #1664 PiperOrigin-RevId: 630408249 Change-Id: I4aedcc82b85430f50d025f8eb1cab089c6fcd1bc
Derek Mauro committed -
PiperOrigin-RevId: 630404862 Change-Id: Icfe4bea2657d319cdd10902ee79af895c43602f1
Derek Mauro committed
-
- 02 May, 2024 3 commits
-
-
PiperOrigin-RevId: 630205286 Change-Id: I14e29fe846701c1381adb4642e55843b482254c6
Derek Mauro committed -
PiperOrigin-RevId: 630072639 Change-Id: Ibbb166cc3c0479617c8e48abe8134b59a67a578f
Zie Weaver committed -
PiperOrigin-RevId: 630047753 Change-Id: I6ad73216bbe4e279553b9a57bd2727310091c754
Abseil Team committed
-
- 30 Apr, 2024 1 commit
-
-
PiperOrigin-RevId: 629403229 Change-Id: I24762df161f8a0ea41e59765ec68273f8607166b
Fergus Henderson committed
-
- 26 Apr, 2024 1 commit
-
-
PiperOrigin-RevId: 628424298 Change-Id: Ia4d15decff040add1b161cd9b472f19f562c49f9
Abseil Team committed
-
- 25 Apr, 2024 2 commits
-
-
PiperOrigin-RevId: 628134930 Change-Id: I6b9763f2a87a9259963f00815c6953927f8add73
Fergus Henderson committed -
PiperOrigin-RevId: 628091370 Change-Id: I2dd20b7f33ab99e78d63688832ab475a513aa3fd
Chris Kennelly committed
-
- 24 Apr, 2024 5 commits
-
-
Generic user code sometimes wants to provide more flexibility for its own users and provide type arguments that are used as Hash/Eq in underlying containers. However, there is no sensible publicly available default value for it yet. This CL fixes this issue and provides publicly visible aliases that such user code can use. PiperOrigin-RevId: 627844757 Change-Id: I4c393007244ad8d998da02883c623eae1715c0df
Dennis Kormalev committed -
PiperOrigin-RevId: 627807723 Change-Id: I106cfe4d3d614b26422f632e856397b8bdcf743e
Abseil Team committed -
to test the after-exit behavior PiperOrigin-RevId: 627804039 Change-Id: Idc1c5fc14cea466dcc98f0d8746c02cafe887502
Derek Mauro committed -
It is unused. We already use code within the `TestWithMultipleFormatsHelper` to skip output verification for Apple and MSVC. PiperOrigin-RevId: 627783586 Change-Id: Ib51374e8571aa5f4b5f1e836815188bd9bdc1536
Dino Radakovic committed -
There's no need to go through an extra layer of indirection to get this. PiperOrigin-RevId: 627567108 Change-Id: I241851c5294417aae069047e35961ed58475e59e
Aaron Jacobs committed
-