Review abseil-in-webrtc for freshness
Remove mention of absl_deps - it is history already. Rewrite motiviation of banning absl::Span to be up to date with c++20 state. Remove motivation of banning absl::Mutex as it likely no longer accurate, and that ban might be re-evaluated. Ensure allow list matches what is in root DEPS No-Try: True Bug: b/363943024, webrtc:342905193 Change-Id: I890a87511bafac7c51355d8f49e0237352eee7b9 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361302 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#42914}
This commit is contained in:
parent
86ac1df5ae
commit
04ab497275
1
DEPS
1
DEPS
@ -2457,7 +2457,6 @@ include_rules = [
|
||||
"+absl/strings/match.h",
|
||||
"+absl/strings/str_replace.h",
|
||||
"+absl/strings/string_view.h",
|
||||
"+absl/types/optional.h",
|
||||
"+absl/types/variant.h",
|
||||
|
||||
# Abseil flags are allowed in tests and tools.
|
||||
|
||||
@ -1,8 +1,4 @@
|
||||
specific_include_rules = {
|
||||
".*\.h": [
|
||||
"+third_party/absl/types/optional.h",
|
||||
],
|
||||
|
||||
"voip_engine_factory.h": [
|
||||
"+modules/audio_device/include/audio_device.h",
|
||||
"+modules/audio_processing/include/audio_processing.h",
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<!-- go/cmark -->
|
||||
<!--* freshness: {owner: 'danilchap' reviewed: '2021-05-12'} *-->
|
||||
<!--* freshness: {owner: 'danilchap' reviewed: '2024-09-02'} *-->
|
||||
|
||||
# Using Abseil in WebRTC
|
||||
|
||||
@ -22,8 +22,6 @@ The GN templates will take care of generating the proper dependency when
|
||||
used within Chromium or standalone. In that build mode, WebRTC will depend
|
||||
on a monolithic Abseil build target that will generate a shared library.
|
||||
|
||||
Previously, `absl_deps` was used but been deprecated in May 2024.
|
||||
|
||||
## **Allowed**
|
||||
|
||||
* `absl::AnyInvocable`
|
||||
@ -47,6 +45,8 @@ Previously, `absl_deps` was used but been deprecated in May 2024.
|
||||
`absl/base/macros.h`.
|
||||
* `absl/numeric/bits.h`
|
||||
|
||||
* ABSL_FLAG is allowed in tests and tools, but disallowed in in non-test code.
|
||||
|
||||
|
||||
## **Disallowed**
|
||||
|
||||
@ -58,12 +58,6 @@ Previously, `absl_deps` was used but been deprecated in May 2024.
|
||||
|
||||
*Use `webrtc::Mutex` instead.*
|
||||
|
||||
Chromium has a ban on new static initializers, and `absl::Mutex` uses
|
||||
one. To make `absl::Mutex` available, we would need to nicely ask the
|
||||
Abseil team to remove that initializer (like they already did for a
|
||||
spinlock initializer). Additionally, `absl::Mutex` handles time in a
|
||||
way that may not be compatible with the rest of WebRTC.
|
||||
|
||||
### `absl::optional`
|
||||
|
||||
*Use `std::optional` instead.*
|
||||
@ -73,12 +67,9 @@ way that may not be compatible with the rest of WebRTC.
|
||||
*Use `rtc::ArrayView` instead.*
|
||||
|
||||
`absl::Span` differs from `rtc::ArrayView` on several points, and both
|
||||
of them differ from the `std::span` that was voted into
|
||||
C++20—and `std::span` is likely to undergo further changes
|
||||
before C++20 is finalized. We should just keep using `rtc::ArrayView`
|
||||
and avoid `absl::Span` until C++20 is finalized and the Abseil team
|
||||
has decided if they will change `absl::Span` to match.
|
||||
[Bug](https://bugs.webrtc.org/9214).
|
||||
of them differ from the `std::span` introduced in C++20. We should just keep
|
||||
using `rtc::ArrayView` and avoid `absl::Span`. When WebRTC switches to C++20,
|
||||
we will consider replacing `rtc::ArrayView` with `std::span`.
|
||||
|
||||
### `absl::StrCat`, `absl::StrAppend`, `absl::StrJoin`, `absl::StrSplit`
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user