27 Commits

Author SHA1 Message Date
Derek Mauro
bc5e9d0ce0 Abseil CI updates:
* GCC latest is now 16.1
  * GCC floor is 10.5.0
  * CMake 4.3.2"
  * Clang/LLVM 22.1.0"
  * Bazel 9.1.0

The new Linux docker containers now refer to their SHA256
instead of a tag in the configuration file.

PiperOrigin-RevId: 914372195
Change-Id: I39cb89b922a4b829f9e045790742de9b765b210f
2026-05-12 10:58:57 -07:00
Abseil Team
f4fdd8d615 Add --define="absl=1" to the Bazel build commands in CI
This is to allow using Abseil in GoogleTest, which would allow use of RE2.

PiperOrigin-RevId: 865975476
Change-Id: Ifdf62384b82a14e0fb569076333bee96647e7c1f
2026-02-05 09:09:12 -08:00
Derek Mauro
cd765c9dd1 Upgrade CI to Bazel 9.0.0
This requires a GoogleTest dependency update for compatibility

The use of --action_env for setting up the compiler is changed
because of https://github.com/bazelbuild/bazel/issues/26222

Also fix the path to the symbolizer in sanitizer builds

PiperOrigin-RevId: 865570744
Change-Id: I403202956913519c714d6eed4968a9615853ac42
2026-02-04 14:05:30 -08:00
Derek Mauro
1ad4d33262 Upgrade CI to XCode 26.2
PiperOrigin-RevId: 865469257
Change-Id: Ib263a72dc3d0bd8a2ff516bd2b73f62ca3ef7beb
2026-02-04 10:24:31 -08:00
Derek Mauro
045a92b1ad Update Abseil CI
The docker images for Linux have all been combined into a single image
that contain the latest and minimum versions of GCC that are
supported, along with a recent Clang and both a normal and a
TSAN-instrumented libc++.  Bazel is now Bazelisk, which allows for
easier testing of other Bazel versions.

Summary:
Linux Clang x86_64: 22.1.0-rc2 (needed to test a C++26 feature)
Linux Clang aarch64: 21.1.8 (the latest release candidate is broken on ARM)
GCC latest: 15.2.0
GCC floor: 9.5.0
Bazel 8.5.1
CMake 4.2.3

MacOS and Windows is also updated to Bazel 8.5.1 so the vendor cache,
which is dependent on the Bazel version, also works on these
platforms.

PiperOrigin-RevId: 864975917
Change-Id: I072f93164b8ecc0b3a6f2c3d0efecea5bdd05c02
2026-02-03 11:43:53 -08:00
Derek Mauro
6d8e1a5cf0 Mark legacy Mutex methods and MutexLock pointer constructors as deprecated
Updates `absl::Mutex` and related RAII lockers (`absl::MutexLock`,
etc) to deprecate legacy APIs in favor of standard-compliant
alternatives.
  * `absl::Mutex`: Adds `[[deprecated]]` to legacy CamelCase methods
    (e.g., `Lock`, `ReaderLock`) in favor of standard C++ lower-case
    methods (`lock`, `lock_shared`) which support `std::scoped_lock`.
  * `absl::MutexLock` (and friends): Adds `[[deprecated]]` to
    constructors accepting raw pointers, favoring new
    reference-accepting constructors.

To support this change, warnings coming from external repositories
are now suppressed in Bazel CI builds.

PiperOrigin-RevId: 852978576
Change-Id: I54ae951f28a1b7d90fcb46ceeaf09f192af257df
2026-01-06 16:22:35 -08:00
Derek Mauro
4099f7429a macOS CI: Move the Bazel vendor_dir to ${HOME} to workaround a Bazel issue
where it does not work when it is in ${TMP} and also fix the quoting
which was causing it to incorrectly receive the argument

https://github.com/bazelbuild/bazel/issues/27156

PiperOrigin-RevId: 823141075
Change-Id: I465f6bda0d94f4e464fa7ce3c1ee019aec78db69
2025-10-23 12:18:14 -07:00
Derek Mauro
4d8e467f28 Fix CI on macOS Sequoia
This includes fixes for both the CI scripts in the new
OS image and a fix for newly detected missing nullability
annotations in string_view with an upgraded Clang.
It is also no longer necessary to uninstall google-benchmark
since it is not installed by default in the new image.

PiperOrigin-RevId: 764725127
Change-Id: I6ea8c55b4d9a9afd261bf4ae9c5e8239675ea7ca
2025-05-29 07:47:29 -07:00
Derek Mauro
7e67f4ffaa Use Xcode 16.3 for testing
PiperOrigin-RevId: 764695105
Change-Id: Ic6968c954b07a6ff3e83acc480a2a498f1795cc8
2025-05-29 06:01:34 -07:00
Derek Mauro
774d41004a Use Bazel vendor mode to cache external dependencies
on Windows and macOS

Also upgrade to Bazel 8.2.1 since all platforms will need
to use the same version of Bazel to get the most cache hits.
Different Bazel versions have different dependencies.

PiperOrigin-RevId: 755477047
Change-Id: Ib8838c6ef1e3b55841005d877346ed8afceca15a
2025-05-06 12:33:48 -07:00
Derek Mauro
7a03cdb4c0 Require C++17
Policy information:
https://opensource.google/documentation/policies/cplusplus-support#c_language_standard
https://github.com/google/oss-policies-info/blob/main/foundational-cxx-support-matrix.md

PiperOrigin-RevId: 723589409
Change-Id: Ia8665c052ed40f2a78308f7eb0c330191b0cf981
2025-02-05 11:33:01 -08:00
Derek Mauro
90a7ba66e8 Updates to CI to support newer versions of tools
Linux "latest" containers updated to
GCC 14.2
CMake 3.31.2
Bazel 8.0.0

Included are various fixes to get these versions to work.

Bazel now references repositories by their canonical names from the
Bazel Central Registry. For example, Abseil is now @abseil-cpp instead
of @com_google_absl, and GoogleTest is now @googletest instead of
@com_google_googletest. Users still using the old WORKSPACE system may
need to use `repo_mapping` on repositories using the old names. See
`WORKSPACE.bazel` in this commit for an example.

PiperOrigin-RevId: 709102146
Change-Id: I02327ed4f8fb947766480bdeef2b1930a7f831eb
2024-12-23 10:58:05 -08:00
Abseil Team
9e3b68ac3b Use local_config_cc from rules_cc and make it a dev dependency
Prepare for changes in Bazel 8, where cc configure scripts have been moved to rules_cc.

PiperOrigin-RevId: 703026686
Change-Id: I44c573bf84a56aed37fca0717e7e1892d7f9a267
2024-12-05 01:46:29 -08:00
Derek Mauro
41a2a25555 Add support for Bzlmod for the next release
https://bazel.build/external/overview#bzlmod

Bzlmod will be the default in a future Bazel release.
By default it requires projects to be registered with the
Bazel Central Registry (https://registry.bazel.build/) and
thus uses regular releases by default.

Users that want to "live-at-head" can still do this through
with overrides (https://bazel.build/external/module#overrides).

This change updates Abseil dependencies to use released versions.
CI uses Bzlmod except in the case of linux_gcc-floor, which will
keep testing the old WORKSPACE-based dependency system.

PiperOrigin-RevId: 597676666
Change-Id: I8d33facc432477c6dc7daa06fd00bb4ae8c4adba
2024-01-11 15:59:36 -08:00
Derek Mauro
1959993719 Update Windows and MacOS CI builds to Bazel 7.0.0
This changes the way in which clang-cl is selected on Windows
as it has changed:
https://bazel.build/configure/windows#clang

--features=external_include_paths has been removed from Windows builds
since it appears cause build command errors currently
PiperOrigin-RevId: 596965732
Change-Id: I95b636a9a4fdcc4172c3bb8c6cb28d5f7db592c9
2024-01-09 09:58:40 -08:00
Derek Mauro
59cba2b50d Add --features=external_include_paths to Bazel CI to ignore warnings
from dependencies

PiperOrigin-RevId: 467659690
Change-Id: I4804a825af50594fdd49e8927411b805dc5912f5
2022-08-15 07:00:39 -07:00
Derek Mauro
4bbdb02689 Disable C++11 testing, enable C++14 and C++20 in some configurations
where it wasn't enabled

PiperOrigin-RevId: 459092217
Change-Id: I4500bba8a09f4b320610a8170a26e93fdf7e0cab
2022-07-05 09:39:15 -07:00
Derek Mauro
2d492a13c6 Update Bazel used on MacOS CI
PiperOrigin-RevId: 450446058
Change-Id: I22a878bf04cf56b8a0e1dd049353acd2f6933828
2022-05-23 08:37:17 -07:00
Abseil Team
5202173ca7 Export of internal Abseil changes
--
121db1a08321eaa3006726cc32b459cf17880e35 by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 425707805

--
0dec484389bbb75aae0a412146e3564bf833a739 by Derek Mauro <dmauro@google.com>:

macOS CI: Avoid depending on external sites like GitHub by prepopulating
dependencies and setting --distdir

Our Linux CI does this, but for some reason was never enabled on macOS

PiperOrigin-RevId: 425668638
GitOrigin-RevId: 121db1a08321eaa3006726cc32b459cf17880e35
Change-Id: Id51645df90b6a0808dd5b18eb636a10f798e24ea
2022-02-01 16:55:00 -05:00
Abseil Team
940c06c25d Export of internal Abseil changes
--
ef2bdebfdff0a93d3af6248d709d42a47fe2e7b4 by Derek Mauro <dmauro@google.com>:

Compile with -DGTEST_REMOVE_LEGACY_TEST_CASEAPI_ in Bazel CI builds to
prevent uses of the legacy TestCase API from sneaking in

PiperOrigin-RevId: 424882792

--
4cf19d7b4dd855685deb0d4d3170e4db9f6f789b by Abseil Team <absl-team@google.com>:

Fix typo in comment.

PiperOrigin-RevId: 424745867
GitOrigin-RevId: ef2bdebfdff0a93d3af6248d709d42a47fe2e7b4
Change-Id: I50ad9b4cf3fa17831aa6521c58d81b0ce8ec0c47
2022-01-28 14:57:21 -05:00
Abseil Team
d9a31a2d44 Export of internal Abseil changes
--
45c3adace0020bb705e04d254f7b3f914d2ba2e6 by Abseil Team <absl-team@google.com>:

Cleanup CordRepRing unit tests

PiperOrigin-RevId: 365848947

--
3d16aae1a4a20666151d8a5ebfd48a2777053b75 by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 365830995

--
298f2de7061f21fb94b4bc715bbadef37732d1fa by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 365830862

--
540c6f4b8f4443d3bb969e566761760813b17545 by Derek Mauro <dmauro@google.com>:

Upgrade MacOS CI to use Bazel 3.7.0

PiperOrigin-RevId: 365825990

--
8b09ef04a1061038a982c3ff29dc7c8a28364f5f by Abseil Team <absl-team@google.com>:

internal change

PiperOrigin-RevId: 365819242
GitOrigin-RevId: 45c3adace0020bb705e04d254f7b3f914d2ba2e6
Change-Id: I3b2bebd212a41d0c0dda56fefb455240408cc461
2021-03-30 14:51:45 -04:00
Abseil Team
d43b7997c0 Export of internal Abseil changes
--
7a9e8d95f795be037aa2dce4e44809ad0166aaec by Samuel Benzaquen <sbenza@google.com>:

Make end() iterator be nullptr.
This makes the creation of and comparison with end() smaller and faster. `find()!=end()` becomes leaner.

PiperOrigin-RevId: 304681605

--
8f3024979446b391b79b1b60ada7d00a504d6aa6 by Derek Mauro <dmauro@google.com>:

Fix Bazel's distdir detection and prefer double brackets (bash recommendation)

PiperOrigin-RevId: 304615725

--
f1d709cb4b2b3743d548b814dd19602fb057a5e6 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 304570545

--
2bbfa5bda52057e1938a96c286ad33ff64e535e0 by Gennadiy Rozental <rogeeff@google.com>:

Implement general storage case as aligned buffer.

Aside from eliminating dynamic memory allocation for flag storage, we also saving 11 bytes per int flag, 15 bytes per double and string flag.

PiperOrigin-RevId: 304511965

--
9e1aed2a95d7d060f8b906fe8c67fc3ba537b521 by Derek Mauro <dmauro@google.com>:

Use reserve to make a bad_alloc less likely in endian_test

This happened once and shouldn't have happened, so it was probably
just a flake, but might as well make this change.

PiperOrigin-RevId: 304505572

--
c2faf22ba2d4d66753390e6959494214895581f0 by Gennadiy Rozental <rogeeff@google.com>:

Use anonymous bit fields to enforce separation between const and mutable bit fields.

We also move init_control field (which is now safe) to save 8 bytes per flag (based on size_tester output)

PiperOrigin-RevId: 304505215

--
7ec51250a84bb03e826b3caad64431e91748186a by Krzysztof Kosiński <krzysio@google.com>:

Change the buffer size in AppendNumberUnit to constexpr.

PiperOrigin-RevId: 304492779

--
a6c8db1be4f421ea7b7c02f7a01b4f48bad61883 by Gennadiy Rozental <rogeeff@google.com>:

Add test cases for two word storage.

Some additional tests were added for other storage kinds as well. These came about after I started to look into a coverage output and noticed that some cases (like reading flag values via reflection) were not covered by this test at all. It does not make sense to just add tests for two word values, so I've covered other storage kinds as well.

PiperOrigin-RevId: 304432511

--
2644ecc32e1215cd6451efcb2f1054fd77e7c812 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 304254681

--
4949a6b20c2bb4b9b2c811f439ccb893abc08df5 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 304250274
GitOrigin-RevId: 7a9e8d95f795be037aa2dce4e44809ad0166aaec
Change-Id: I01623de87355bec5cf87cc5932a1ca44cade9aae
2020-04-04 17:08:50 -04:00
Abseil Team
b3aaac8a37 Export of internal Abseil changes
--
9beb68204986a015c9cb065b9fae4f9a8879a788 by Abseil Team <absl-team@google.com>:

Move Base64EscapeInternal and CalculateBase64EscapedLenInternal to an internal header.

PiperOrigin-RevId: 288917378

--
90acfbe03b3f9f6de3ffa49c39343dfaa2c5d38c by Greg Falcon <gfalcon@google.com>:

Update macos CI script to support the ALTERNATE_OPTIONS environment variable.

PiperOrigin-RevId: 288913564

--
f1572e870678cdcda6b48cb39780d1ad984e4c1b by Derek Mauro <dmauro@google.com>:

Makes absl::NullSafeStringView constexpr
Fixes https://github.com/abseil/abseil-cpp/issues/583

PiperOrigin-RevId: 288906940

--
d28a8471e32c10caa64bfffe6d6d4d0a8d144013 by Abseil Team <absl-team@google.com>:

absl::GetFlag is lock free for small trivially copyable types.

PiperOrigin-RevId: 288768172

--
2643b8ed1a1dc836b38ab9e46538a1af129ffd67 by Gennadiy Rozental <rogeeff@google.com>:

Eliminate call to callback from flag initialization.

We do not need to have this invocation inside FlagImpl::Init since SetCallback performs invocation anyways. Calling InitCallback from inside of Init complicates separation of value initialization from data guard initialization, which is about to happen.

PiperOrigin-RevId: 288732526

--
22caa880b7a4cb6da34e16a2e064a473c99e880b by Abseil Team <absl-team@google.com>:

Fix the documentation on how to create a null string_view.

PiperOrigin-RevId: 288727968

--
10727c5cadc561837141176f4c9b9717cec9233a by Greg Falcon <gfalcon@google.com>:

Change CI scripts for gcc to use the ALTERNATE_OPTIONS file as well.

PiperOrigin-RevId: 288718855

--
5d1e2dd6c7fb12af8aa4337a0f61872f5f0c5992 by Greg Falcon <gfalcon@google.com>:

Add an option for using inline namespaces in Abseil.

PiperOrigin-RevId: 288614491
GitOrigin-RevId: 9beb68204986a015c9cb065b9fae4f9a8879a788
Change-Id: If9acd46301e3df8cb231b4c16f7ed651bf4fb3c3
2020-01-09 14:19:30 -05:00
Abseil Team
63ee2f8877 Export of internal Abseil changes
--
7f6c15aadc4d97e217dd446518dbb4fdc86b36a3 by Derek Mauro <dmauro@google.com>:

Upgrade GCC automated testing to use GCC 9.2 and Cmake 3.16.2

PiperOrigin-RevId: 288488783

--
a978cee848d3cf65b0826c981bfd81022fc36660 by Abseil Team <absl-team@google.com>:

Removing formatting traits that were only used internally. ON_CALL/EXPECT_CALL do a sufficient job here.

PiperOrigin-RevId: 288386509

--
fdec6f40293d5883220f1f0ea1261f7c5b60a66e by Derek Mauro <dmauro@google.com>:

Upgrade MacOS tests to use Bazel 2.0.0

PiperOrigin-RevId: 288373298

--
465865c4123e9481ab50ea0527e92b39519704dd by Derek Mauro <dmauro@google.com>:

Changes to support GCC 9
 * Fix several -Wredundant-move warnings
 * Remove FlatHashMap.Any test, which basically doesn't work on any platform
   any more (see https://cplusplus.github.io/LWG/lwg-active.html#3121)
 * Fix a constant sign-compare warning
 * Conditionally compile out the PoisonHash test which doesn't build

PiperOrigin-RevId: 288360204

--
57c4bb07fc58e7dd2a04f3c45027aab5ecaccf25 by Andy Soffer <asoffer@google.com>:

Deflaking MockingBitGen test. Because MockingBitGen can return random values,
it is inherently flaky. For log-unifrom, 2040 is a common enough value that
tests failed unreasonably frequently. Replacing it with a significantly larger
value so as to be much less common. 50000 is a good choice because it is (tied for) the least likely to occur randomly from this distribution, but is still in the distribution.

PiperOrigin-RevId: 288360112

--
86f38e4109899d972de353b1c556c018cfe37956 by Matt Calabrese <calabrese@google.com>:

Remove construction tests for the internal `CompressedTuple<std::any>` instantiation. This was not guaranteed to work for the reasons that `std::tuple<std::any>` copy construction does not actually work by standard specification (some implementations introduce workarounds for this). In GCC9, `CompressedTuple<std::any>` and `std::tuple<std::any>` both fail for the same reasons, and a proper "fix" requires updating `std::any`, which is out of our control.

PiperOrigin-RevId: 288351977
GitOrigin-RevId: 7f6c15aadc4d97e217dd446518dbb4fdc86b36a3
Change-Id: I5d5c62bd297dc0ff1f2970ff076bb5cd088a7e4c
2020-01-07 14:50:44 -05:00
Abseil Team
4ef574064e Export of internal Abseil changes
--
3dbb096e4662311f81df1017a8e0975e903936cf by Derek Mauro <dmauro@google.com>:

Document and workaround a known MSVC bug doing constexpr pointer arithmetic

PiperOrigin-RevId: 262604652

--
b5fa7f1a0c776f6ba20d52772a1679ec42ad21fd by Derek Mauro <dmauro@google.com>:

Fix typo in macos_xcode_bazel.sh

PiperOrigin-RevId: 262591285

--
89dd77ab5bb44d76b6cb6b2f288e21536e16a85a by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 262582747

--
32295ed9a0c6c8ab143a912194040eede05d3ea3 by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 262569140

--
7f0f5b94197369228024529022d727439d2c894f by Abseil Team <absl-team@google.com>:

Internal change

PiperOrigin-RevId: 262563554

--
314aed043639abbd221074125c57b7c68616de7e by Derek Mauro <dmauro@google.com>:

Release absl::btree

PiperOrigin-RevId: 262553526

--
72b44056c6ce9000c4a6cd9aec58b82067c82a13 by CJ Johnson <johnsoncj@google.com>:

Internal change

PiperOrigin-RevId: 262421185

--
4e2c12151edf534f929e8e810f1334073f90489a by Abseil Team <absl-team@google.com>:

Update documentation to make it less likely for users to write `Hours(24)` without considering using civil dates instead.

PiperOrigin-RevId: 262420758

--
92b85b9573e800bd96b019408eefbc5ce4f68780 by Derek Mauro <dmauro@google.com>:

Add the ability to override the bazel version in the macos_xcode_bazel.sh
test script.

PiperOrigin-RevId: 262412063
GitOrigin-RevId: 3dbb096e4662311f81df1017a8e0975e903936cf
Change-Id: I423b2b829dc0c5f814e37bec4d68c7470f43f041
2019-08-09 15:11:33 -04:00
Abseil Team
9ee91d3e43 Export of internal Abseil changes
--
f51743aa96e19aa3dda96d09d313b4390f1d61e7 by CJ Johnson <johnsoncj@google.com>:

Minor touchup on the InlinedVector/Storage internal header file

PiperOrigin-RevId: 262389640

--
e2f54c1f7142e40d30ff0fda43bef050625821a5 by Abseil Team <absl-team@google.com>:

Update the absl codebase to use proper marketing names for macOS and Xcode

PiperOrigin-RevId: 262389450

--
f29aae774edd0d00e2daa1fb96694a6dc3565a55 by CJ Johnson <johnsoncj@google.com>:

Blocks code generator script from being affected by LTS inline namespaces

PiperOrigin-RevId: 262376791
GitOrigin-RevId: f51743aa96e19aa3dda96d09d313b4390f1d61e7
Change-Id: I33be7f5a708ce8a2b7111b00151e43d73c5e0009
2019-08-08 14:07:16 -04:00
Abseil Team
044da8a29c Export of internal Abseil changes.
--
7c43cf69f00a02d8ed1e669cad12105de667a5ec by Abseil Team <absl-team@google.com>:

tagging benchmark tests as benchmarks

PiperOrigin-RevId: 242480880

--
3d8d518cde58cddc3d651ea6394ac0722f1f3149 by Samuel Benzaquen <sbenza@google.com>:

Implement %f natively for any input.
It evaluates the input at runtime and allocates stack space accordingly.

This removes a potential fallback into snprintf, improves performance, and removes all memory allocations in this formatting path.

PiperOrigin-RevId: 242474325

--
de2dc59909cd6c61960f46e647d297c17cb784b5 by Derek Mauro <dmauro@google.com>:

Add a script to test MacOS/Xcode/CMake

PiperOrigin-RevId: 242283929

--
dbc90e3dec22939d99397cd8894760bfe62480ec by Derek Mauro <dmauro@google.com>:

Release macos_xcode_bazel.sh

PiperOrigin-RevId: 242153782

--
92cda8a7ff7b4b974b0ae6a185cc449476336609 by Derek Mauro <dmauro@google.com>:

Add a script to test MacOS/Xcode/Bazel

PiperOrigin-RevId: 242144494
GitOrigin-RevId: 7c43cf69f00a02d8ed1e669cad12105de667a5ec
Change-Id: I3ae1f144a25a968cd4da0b2da0a3b268c81fd3bb
2019-04-08 13:14:41 -04:00