- 24 May, 2024 4 commits
-
-
PiperOrigin-RevId: 636990118 Change-Id: Ib90ed852b899a976679a8eb6352a9161c27e17ce
Derek Mauro committed -
std::is_signed can't be specialized, so this actually lets through non-unsigned types where the types are not language primitives (i.e. it lets absl::int128 through). However, std::numeric_limits can be specialized, and is indeed specialized, so we can use that instead. PiperOrigin-RevId: 636983590 Change-Id: Ic993518e9cac7c453b08deaf3784b6fba49f15d0
Justin Bassett committed -
PiperOrigin-RevId: 636945786 Change-Id: I2ea027baab08c05c213648b24a1a59ecdacfcf32
Abseil Team committed -
PiperOrigin-RevId: 636911360 Change-Id: I525e25b90b91712b95ab7499425de85610ff9115
Chris Mihelich committed
-
- 23 May, 2024 9 commits
-
-
`absl::StrCat` always returns a `std::string`. Specifying it using a trailing return type does not help. Tests are documentation, and they should be consistent with [the google style guide](https://google.github.io/styleguide/cppguide.html#trailing_return). For example, this is different than `-> absl::string_view` and returning string literals, where it is actually a load-bearing change. PiperOrigin-RevId: 636705683 Change-Id: I0d84a562a59bc0c16be01dd2ae5538adb401432e
Dino Radakovic committed -
PiperOrigin-RevId: 636695970 Change-Id: I22d6f13271ab965563f1f575d9d7ba0ed1af466d
Chris Mihelich committed -
PiperOrigin-RevId: 636682763 Change-Id: I9e5fd6827cb780c288ff5af54643ee4fbbaca6d5
Chris Mihelich committed -
This will enable diagnoses similar to those enabled by ABSL_ATTRIBUTE_LIFETIME_BOUND. See the following links for details: https://reviews.llvm.org/D64448 https://lists.llvm.org/pipermail/cfe-dev/2018-November/060355.html PiperOrigin-RevId: 636650605 Change-Id: Iab3a768d57775863addcf0a7c773551ee8f424c6
Abseil Team committed -
PiperOrigin-RevId: 636649618 Change-Id: I73a0be3defa438daf0e9db5c34c0e2feb0e52b69
Chris Mihelich committed -
PiperOrigin-RevId: 636634618 Change-Id: I812115d2a33dc71446a14deadc6af019eef6dfd7
Chris Mihelich committed -
PiperOrigin-RevId: 636615840 Change-Id: I34f584ea0c6603a0781e874d683b516de94c6928
Chris Mihelich committed -
PiperOrigin-RevId: 636566755 Change-Id: I2c8c1f19a67a7a487dd2bbb46c17f9fb4e2b037c
Chris Mihelich committed -
PiperOrigin-RevId: 636563266 Change-Id: Id4ee907c30d7dac400f1f85776cc5f1fcb3e20b7
Chris Mihelich committed
-
- 22 May, 2024 3 commits
-
-
PiperOrigin-RevId: 636218177 Change-Id: I9f58ccbb468fcc0c44ef12162415f7b721a745bf
Paul Rigge committed -
the open source release. This was only used in tests that never ran as part in the open source release. PiperOrigin-RevId: 636167506 Change-Id: Iafc33bd768307fe9ee77b181369635012abf2245
Derek Mauro committed -
PiperOrigin-RevId: 636152885 Change-Id: If545903854ea39cc4b5c51c88cd555072d27d89e
Chris Mihelich committed
-
- 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 1 commit
-
-
PiperOrigin-RevId: 631211391 Change-Id: I68bb19d5702626ac497b05d851936aec42cc99d4
Abseil Team committed
-