- 11 Jul, 2024 3 commits
-
-
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1710 Use the SHELL: prefix in compile flag string to avoid passing it as quoted string Introduced in CMake 3.12, but as CMake 3.16 is required by this project it will be ok. According to https://cmake.org/cmake/help/latest/command/target_compile_options.html#option-de-duplication, CMake's target_compile_options ignores duplicate items, like from the quote of the link: > While beneficial for individual options, the de-duplication step can break up option groups. For example, -option A -option B becomes -option A B. One may specify a group of options using shell-like quoting along with a SHELL: prefix. This was our problem, -option A -option B should be there, but CMake just made it like -option A B, B was not guarded by -Xarch which led to a compilation error. I originally tried the fix with quoting the "-option A", but it led to the quoted string passed to the compiler, and therefore ignored. Now I am using the SHELL: suffix supported by CMake, and it shows differences: > Current build command with quotes: > ... -DNOMINMAX "-Xarch_x86_64 -maes" "-Xarch_x86_64 -msse4.1" ... (Wrong) > With the SHELL: prefix applied: > ... -DNOMINMAX -Xarch_x86_64 -maes -Xarch_x86_64 -msse4.1 ... (Correct) Merge 661534618fb62c22336e473aff66a8915f9b4185 into cd7f66ca Merging this change closes #1710 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1710 from Royna2544:master 661534618fb62c22336e473aff66a8915f9b4185 PiperOrigin-RevId: 651433382 Change-Id: I4c626e18ae8b33a8177ea79714b9678f955f469f
Soo-Hwan Na committed -
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1695 #1495 converted the `if (APPLE)` check for linking against `CoreFoundation` to generator expressions, which is fine and all. The issue is that they forgot the other Apple platforms, making builds for iOS impossible. This patch fixes this issue by adding the other Apple platforms that CMake support to the generator expression. Merge 4f01df8e09f0dc216006dd7ca2d9ce216122b443 into 6dee1532 Merging this change closes #1695 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1695 from GeniusVentures:fix-time-build 4f01df8e09f0dc216006dd7ca2d9ce216122b443 PiperOrigin-RevId: 651416278 Change-Id: I47e4d52384e946cc9e421922f7c6edd5bfa1d976
Eduardo Menges Mattje committed -
PiperOrigin-RevId: 651258120 Change-Id: I1c343bc11407d33dc2d0bb1686be4bdbe6a600df
Mike Kruskal committed
-
- 10 Jul, 2024 3 commits
-
-
Also, return the middle of the poisoned block. PiperOrigin-RevId: 651119057 Change-Id: Iae0fc3dcb40e32cd449f469d9b8d62c37f3773f4
Evan Brown committed -
PiperOrigin-RevId: 651093644 Change-Id: Ia5bb3343ef06529d5fa2d469bcad47451ea79c69
Laramie Leavitt committed -
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1707 Switched to append a full string of "-Xarch_x86_64 -maes" instead of " -Xarch_x86_64" "-maes", for example. Now cmake correctly appends -Xarch_x86_64 to each x64 specific compile option, removing the error caused in recent clang releases: clang++: error: unsupported option '-msse4.1' for target 'arm64-apple-darwin23.5.0' Merge 83d17537ee70158d627681a0f0c15f15f30ef838 into f46495ea Merging this change closes #1707 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1707 from Royna2544:patch-1 83d17537ee70158d627681a0f0c15f15f30ef838 PiperOrigin-RevId: 651046496 Change-Id: Ifdb3848febeead4fb562a2d9f0fdca2e0aea185d
Soo-Hwan Na committed
-
- 09 Jul, 2024 1 commit
-
-
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1706 Follow Google OSS policy. Merge 2ba42b9e5a9ac8c9fe0609fd1ac4cad24714727a into af4c589e Merging this change closes #1706 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1706 from gruenich:feature/cmake-3-16 2ba42b9e5a9ac8c9fe0609fd1ac4cad24714727a PiperOrigin-RevId: 650646746 Change-Id: Ib600608fbc727161c8b8e69cda9a09637188fef8
Christoph Grüninger committed
-
- 07 Jul, 2024 1 commit
-
-
https://learn.microsoft.com/en-us/cpp/code-quality/c26816?view=msvc-170 PiperOrigin-RevId: 650044473 Change-Id: I2bf31f1e4b972e890194d21c5a6dcb4ee9993484
Derek Mauro committed
-
- 04 Jul, 2024 1 commit
-
-
This allows them to be used in constant expressions, such as static_asserts. PiperOrigin-RevId: 649292841 Change-Id: I76e31a94b933fa357276fee534b81c00c28c8b23
Abseil Team committed
-
- 03 Jul, 2024 2 commits
-
-
PiperOrigin-RevId: 649200175 Change-Id: Ic6741d9fe5e0b1853ed8bb37b585d38b51d15581
Gennadiy Rozental committed -
PiperOrigin-RevId: 649138261 Change-Id: I8687eb7b06cc9e96779d1d3e98b44b4f643c95a8
Andy Getzendanner committed
-
- 02 Jul, 2024 2 commits
-
-
PiperOrigin-RevId: 648730502 Change-Id: I662c365c59be9e51f565fd215d284a96b7bd8743
Abseil Team committed -
This change makes the mutable overloads of CompressedTuple::get() constexpr. This is consistent with std::get(std::tuple), which is constexpr since C++14. PiperOrigin-RevId: 648603141 Change-Id: Icbd61809f7a06723cf581dbed5488b7bae998cc9
Abseil Team committed
-
- 01 Jul, 2024 6 commits
-
-
This library provides `LookupSymbol` and `LookupSymbolByAddress`. The latter needs `GetNumSymbols` support. An object file needs either .hash (DT_HASH) or .gnu.hash (DT_GNU_HASH). This patch adds DT_GNU_HASH support. Note: glibc has been supporting DT_GNU_HASH since 2006 and .hash has been quite obsoleted in the Linux communities. PiperOrigin-RevId: 648459622 Change-Id: I3aa1274cd4617990844258175715e3be2343afd2
Fangrui Song committed -
This allows them to be used in constexpr expressions, such as the following: ``` constexpr int distance = absl::c_distance(std::array<int, 3>()); ``` Requires at least C++17 to be constexpr. PiperOrigin-RevId: 648435141 Change-Id: I8136e351a6dc4c25f06ef895fb449f4f11048480
Abseil Team committed -
PiperOrigin-RevId: 648433954 Change-Id: I32e47a89685419ae8d37dfadb354cfaab2a35ae9
Charlie Beattie committed -
standardized in C++11 Migrate all Abseil code to `[[noreturn]]`. Notably, https://github.com/abseil/abseil-cpp/issues/1698 reports that `[[noreturn]]` works better here. We can't migrate `ABSL_ATTRIBUTE_NORETURN` to use `[[noreturn]]` because the difference in accepted attribute placement breaks some code. PiperOrigin-RevId: 648395324 Change-Id: Icd3e9b837aac25f128e8994de099f1edb3cabccf
Derek Mauro committed -
This breaks Chromium due to global constructor and incorrectly assumes page size. https://github.com/abseil/abseil-cpp/pull/1697 PiperOrigin-RevId: 648377066 Change-Id: I19f8b2655971a0c314091e26e62e10a5a9c46e94
Derek Mauro committed -
Static cast instead of reinterpret cast raw hash set slots as casting from void* to T* is well defined PiperOrigin-RevId: 648352837 Change-Id: I082cd0c007706ae8baa8f26cdc85d51b69bffd54
Abseil Team committed
-
- 27 Jun, 2024 5 commits
-
-
It is not possible to have a constant-initialized object of type absl::NoDestructor<T>. Fix the documentation so that it doesn't mention this possibility. Only recommend it use as a function-scope static variable, and discourage its use as a global variable. PiperOrigin-RevId: 647488395 Change-Id: Ifee052fce07609d3de72cddc30e86de67706cd91
Derek Mauro committed -
PiperOrigin-RevId: 647417773 Change-Id: I7d945ae27199262b3baf83b232d17c2f641a27ac
Chris Mihelich committed -
PiperOrigin-RevId: 647359155 Change-Id: I5aba1169b01a74c4431f5ee3788b490124eeaa65
Chris Mihelich committed -
PiperOrigin-RevId: 647340145 Change-Id: I4b0076595dbda1f81ffdc32adad2dc1e35cb9e04
Chris Mihelich committed -
Since we have potential plans to use this function more widely including `absl::c_for_each`, we need to have good error detection. PiperOrigin-RevId: 647236725 Change-Id: I5035bfb8cef24f80f1bbed83a42380e57d84e428
Vitaly Goldshteyn committed
-
- 26 Jun, 2024 4 commits
-
-
PiperOrigin-RevId: 647093624 Change-Id: Ic76bfa4aa8fb616cb23095ce7bfa30c3812dcb21
Chris Mihelich committed -
These functions are based on the C++23's `std::ranges::contains()` and `std::ranges::contains_subrange()` functions, see: https://en.cppreference.com/w/cpp/algorithm/ranges/contains PiperOrigin-RevId: 647084955 Change-Id: If5a01784e3cf1cc4d88e7f2fef92a3701fafc886
Abseil Team committed -
This is portable because cord already has `operator<` etc., which will be unaffected. This just allows C++ >= 20 users to explicitly call `operator<=>`. PiperOrigin-RevId: 646951415 Change-Id: I1432e224bd5dc09b99d56a1d27e95078463adf45
Abseil Team committed -
PiperOrigin-RevId: 646949076 Change-Id: I0d3fc57aee38e5b3a5b85e2301f5035bfd0e388b
Abseil Team committed
-
- 25 Jun, 2024 1 commit
-
-
PiperOrigin-RevId: 646614152 Change-Id: Iee853bdc6f753d758c850a529a6adb05d0d0b1a7
Evan Brown committed
-
- 24 Jun, 2024 5 commits
-
-
The motivation is to make destroyed/moved-from objects cause crashes when they are accessed. PiperOrigin-RevId: 646229564 Change-Id: I68d9c189b542df0933af08f5ad63dc1f5764d856
Evan Brown committed -
PiperOrigin-RevId: 646172195 Change-Id: I089f1d84f2d73b663f12e6818f96436e054e71ae
Abseil Team committed -
windows_clangcl_bazel.bat includes a change from --copt to --cxxopt to only pass /std:c++XX to C++ compiles PiperOrigin-RevId: 646157298 Change-Id: Ib6d9861a2b2d45eb0d664f23b6f3a7426f8e0ab3
Derek Mauro committed -
PiperOrigin-RevId: 646105357 Change-Id: Ia76c1ce33faf811e988d36747f187c112ccb967e
Anthony Lai committed -
PiperOrigin-RevId: 646031348 Change-Id: I212e34a0b89293bd9f0081047bb5a1eba5d04bcb
Tanvi Jagtap committed
-
- 22 Jun, 2024 2 commits
-
-
`optimization.h` needs to be compatible with C. `#include <utility>` is C++-only. PiperOrigin-RevId: 645651894 Change-Id: I55ebc3369b05788346cd0ab684b50bdfc2345fd4
Abseil Team committed -
Imported from GitHub PR https://github.com/abseil/abseil-cpp/pull/1692 `optimization.h` uses `std::unreachable()` if available but does not include `<utility>`, causing errors in `absl/strings/ascii.cc`. Merge bf912bb4e38341d6152ee145ec2be00251c42552 into 8a28a0c8 Merging this change closes #1692 COPYBARA_INTEGRATE_REVIEW=https://github.com/abseil/abseil-cpp/pull/1692 from poconn:optimization_missing_include bf912bb4e38341d6152ee145ec2be00251c42552 PiperOrigin-RevId: 645643983 Change-Id: I3966984afa81f2f6bce65dd872d326f0af114bfa
Patrick O'Connell committed
-
- 21 Jun, 2024 2 commits
-
-
PiperOrigin-RevId: 645286828 Change-Id: I00efdf1bf774daafbd34c898cf4a524852b638e0
Vitaly Goldshteyn committed -
We decided to not allow reentrance in absl::erase_if and absl::container_internal::c_for_each_fast. PiperOrigin-RevId: 645273965 Change-Id: I75dfc73b93ba10f0e051bf0833723af887e1bb36
Vitaly Goldshteyn committed
-
- 20 Jun, 2024 2 commits
-
-
This function is aimed to achieve faster iteration through the entire hash table. It is not ready to be used by the public and stays in `container_internal` namespace. Differences with `absl::c_for_each`: 1. No guarantees on order of iteration. Although for the hash table it is partially not guaranteed already. But we do not even guarantee that it is the same order as in the for loop range. De facto, the order is the same at the moment. 2. No mutating reentrance is allowed. Most notably erasing from the hash_table is not allowed. Based on microbenchmarks, there are following conclusions: 1. c_for_each_fast is clearly faster on big tables with 20-60% speedup. 2. Microbenchmarks show regression on a full small table without any empty slots. We should avoid recommending that for small tables. 3. It seems reasonable to use `c_for_each_fast` in places, where `skip_empty_or_deleted` has significant GCU usage. `skip_empty_or_deleted` usage signals that there are "gaps" between elements, so `c_for_each_fast` should be an improvement. PiperOrigin-RevId: 645142512 Change-Id: I279886b8c8b2545504c2bf7e037d27b2545e044d
Vitaly Goldshteyn committed -
PiperOrigin-RevId: 645054874 Change-Id: Ic4a820b47edfa71bd3e1f149d54f00ac3c1d16a6
Evan Brown committed
-