Releases: abseil/abseil-cpp
Releases · abseil/abseil-cpp
Abseil LTS branch, Jan 2023, Patch 2
Abseil LTS 20230125.2
What's New:
- The Abseil logging library has been released. This library provides facilities for writing short text messages about the status of a program to
stderr, disk files, or other sinks (via an extension API). See the logging library documentation for more information. - An extension point,
AbslStringify(), allows user-defined types to seamlessly work with Abseil's string formatting functions likeabsl::StrCat()andabsl::StrFormat(). - A library for computing CRC32C checksums has been added.
- Floating-point parsing now uses the Eisel-Lemire algorithm, which provides a significant speed improvement.
- The flags library now provides suggestions for the closest flag(s) in the case of misspelled flags.
- Using CMake to install Abseil now makes the installed artifacts (in particular
absl/base/options.h) reflect the compiled ABI.
Breaking Changes:
- Abseil now requires at least C++14 and follows Google's Foundational C++ Support Policy. See this table for a list of currently supported versions compilers, platforms, and build tools.
- The legacy spellings of the thread annotation macros/functions (e.g.
GUARDED_BY()) have been removed by default in favor of theABSL_prefixed versions (e.g.ABSL_GUARDED_BY()) due to clashes with other libraries. The compatibility macroABSL_LEGACY_THREAD_ANNOTATIONScan be defined on the compile command-line to temporarily restore these spellings, but this compatibility macro will be removed in the future.
Known Issues
- The Abseil logging library in this release is not a feature-complete replacement for glog yet.
VLOGandDFATALare examples of features that have not yet been released.
Baseline: a69b0ae
Cherry pick: 35e8e3f (Patch 1)
Cherry pick: a0f9b46 (Patch 1)
Cherry pick: 2de126c (Patch 2)
Abseil LTS branch, Jan 2023, Patch 1
Abseil LTS 20230125.1
What's New:
- The Abseil logging library has been released. This library provides facilities for writing short text messages about the status of a program to
stderr, disk files, or other sinks (via an extension API). See the logging library documentation for more information. - An extension point,
AbslStringify(), allows user-defined types to seamlessly work with Abseil's string formatting functions likeabsl::StrCat()andabsl::StrFormat(). - A library for computing CRC32C checksums has been added.
- Floating-point parsing now uses the Eisel-Lemire algorithm, which provides a significant speed improvement.
- The flags library now provides suggestions for the closest flag(s) in the case of misspelled flags.
- Using CMake to install Abseil now makes the installed artifacts (in particular
absl/base/options.h) reflect the compiled ABI.
Breaking Changes:
- Abseil now requires at least C++14 and follows Google's Foundational C++ Support Policy. See this table for a list of currently supported versions compilers, platforms, and build tools.
- The legacy spellings of the thread annotation macros/functions (e.g.
GUARDED_BY()) have been removed by default in favor of theABSL_prefixed versions (e.g.ABSL_GUARDED_BY()) due to clashes with other libraries. The compatibility macroABSL_LEGACY_THREAD_ANNOTATIONScan be defined on the compile command-line to temporarily restore these spellings, but this compatibility macro will be removed in the future.
Known Issues
- The Abseil logging library in this release is not a feature-complete replacement for glog yet.
VLOGandDFATALare examples of features that have not yet been released.
Baseline: a69b0ae
Cherry pick: 35e8e3f (Patch 1)
Cherry pick: a0f9b46 (Patch 1)
Abseil LTS branch, Jan 2023
Abseil LTS 20230125
What's New:
- The Abseil logging library has been released. This library provides facilities for writing short text messages about the status of a program to
stderr, disk files, or other sinks (via an extension API). See the logging library documentation for more information. - An extension point,
AbslStringify(), allows user-defined types to seamlessly work with Abseil's string formatting functions likeabsl::StrCat()andabsl::StrFormat(). - A library for computing CRC32C checksums has been added.
- Floating-point parsing now uses the Eisel-Lemire algorithm, which provides a significant speed improvement.
- The flags library now provides suggestions for the closest flag(s) in the case of misspelled flags.
- Using CMake to install Abseil now makes the installed artifacts (in particular
absl/base/options.h) reflect the compiled ABI.
Breaking Changes:
- Abseil now requires at least C++14 and follows Google's Foundational C++ Support Policy. See this table for a list of currently supported versions compilers, platforms, and build tools.
- The legacy spellings of the thread annotation macros/functions (e.g.
GUARDED_BY()) have been removed by default in favor of theABSL_prefixed versions (e.g.ABSL_GUARDED_BY()) due to clashes with other libraries. The compatibility macroABSL_LEGACY_THREAD_ANNOTATIONScan be defined on the compile command-line to temporarily restore these spellings, but this compatibility macro will be removed in the future.
Known Issues
- The Abseil logging library in this release is not a feature-complete replacement for glog yet.
VLOGandDFATALare examples of features that have not yet been released.
Baseline: a69b0ae
Abseil LTS branch, June 2022, Patch 1
Abseil LTS 20220623.1
What's New:
- Added
absl::AnyInvocable, a move-only function type. - Added
absl::CordBuffer, a type for buffering data for eventual inclusion anabsl::Cord, which is useful for writing zero-copy code. - Added support for command-line flags of type
absl::optional<T>.
Breaking Changes:
- CMake builds now use the flag
ABSL_BUILD_TESTING(default:OFF) to control whether or not unit tests are built. - The
ABSL_DEPRECATEDmacro now works with the GCC compiler. GCC users that are experiencing new warnings can use-Wno-deprecated-declatationssilence the warnings or use-Wno-error=deprecated-declarationsto see warnings but not fail the build. ABSL_CONST_INITuses the C++20 keywordconstinitwhen available. Some compilers are more strict about where this keyword must appear compared to the pre-C++20 implementation.- Bazel builds now depend on the bazelbuild/bazel-skylib repository. See Abseil's WORKSPACE file for an example of how to add this dependency.
Other:
- This will be the last release to support C++11. Future releases will require at least C++14.
Abseil LTS branch, June 2022
Abseil LTS 20220623
What's New:
- Added
absl::AnyInvocable, a move-only function type. - Added
absl::CordBuffer, a type for buffering data for eventual inclusion anabsl::Cord, which is useful for writing zero-copy code. - Added support for command-line flags of type
absl::optional<T>.
Breaking Changes:
- CMake builds now use the flag
ABSL_BUILD_TESTING(default:OFF) to control whether or not unit tests are built. - The
ABSL_DEPRECATEDmacro now works with the GCC compiler. GCC users that are experiencing new warnings can use-Wno-deprecated-declatationssilence the warnings or use-Wno-error=deprecated-declarationsto see warnings but not fail the build. ABSL_CONST_INITuses the C++20 keywordconstinitwhen available. Some compilers are more strict about where this keyword must appear compared to the pre-C++20 implementation.- Bazel builds now depend on the bazelbuild/bazel-skylib repository. See Abseil's WORKSPACE file for an example of how to add this dependency.
Other:
- This will be the last release to support C++11. Future releases will require at least C++14.
Baseline: 273292d
Abseil LTS branch, Nov 2021
Abseil LTS 20211102
What's New:
absl::Cordis now implemented as a b-tree. The new implementation offers improved performance in most workloads.absl::SimpleHexAtoi()has been added tostringslibrary for parsing hexadecimal strings.
Breaking Changes:
- Bazel builds now depend on the bazelbuild/platforms repository. See Abseil's WORKSPACE file for an example of how to add this dependency.
Baseline: 2151058
Abseil LTS branch, March 2021, Patch 2
Abseil LTS 20210324.2
What's New:
- The
cleanuplibrary has been released. This library contains the control-flow-construct-like typeabsl::Cleanupwhich is used for executing a callback on scope exit. - The
numericlibrary now includesbits.h, a polyfill header containing implementations of C++20's bitwise math functions. - Abseil now installs pkg-config files to make it easier to use Abseil with some other build systems.
- Abseil now respects the default CMake installation paths. Standard CMake variables like
CMAKE_INSTALL_PREFIXcan be used to change the installation path.
Breaking Changes:
- The empty
absl::containertarget has been removed from the CMake build. This target had no effect and references to this target in user code can safely be removed.
Baseline: 997aaf3
Cherry pick: e1d388e (Patch 1)
Cherry pick: 278e0a0 (Patch 2)
Abseil LTS branch, March 2021, Patch 1
Abseil LTS 20210324.1
What's New:
- The
cleanuplibrary has been released. This library contains the control-flow-construct-like typeabsl::Cleanupwhich is used for executing a callback on scope exit. - The
numericlibrary now includesbits.h, a polyfill header containing implementations of C++20's bitwise math functions. - Abseil now installs pkg-config files to make it easier to use Abseil with some other build systems.
- Abseil now respects the default CMake installation paths. Standard CMake variables like
CMAKE_INSTALL_PREFIXcan be used to change the installation path.
Breaking Changes:
- The empty
absl::containertarget has been removed from the CMake build. This target had no effect and references to this target in user code can safely be removed.
Abseil LTS branch, March 2021
Abseil LTS 20210324.0
What's New:
- The
cleanuplibrary has been released. This library contains the control-flow-construct-like typeabsl::Cleanupwhich is used for executing a callback on scope exit. - The
numericlibrary now includesbits.h, a polyfill header containing implementations of C++20's bitwise math functions. - Abseil now installs pkg-config files to make it easier to use Abseil with some other build systems.
- Abseil now respects the default CMake installation paths. Standard CMake variables like
CMAKE_INSTALL_PREFIXcan be used to change the installation path.
Breaking Changes:
- The empty
absl::containertarget has been removed from the CMake build. This target had no effect and references to this target in user code can safely be removed.
Baseline: 997aaf3
Abseil LTS branch, Sept 2020, Patch 3
Abseil LTS 20200923, Patch 3
What's New:
absl::StatusOr<T>has been released. See our blog
post for more information.- Abseil Flags reflection interfaces have been released.
- Abseil Flags memory usage has been significantly optimized.
- Abseil now supports a "hardened" build mode. This build mode enables
runtime checks that guard against programming errors that may lead
to security vulnerabilities.
Notable Fixes:
- Sanitizer dynamic annotations like
AnnotateRWLockCreatethat are
also defined by the compiler sanitizer implementation are no longer
also defined by Abseil. - Sanitizer macros are now prefixed with
ABSL_to avoid naming collisions. - Sanitizer usage is now automatically detected and no longer requires
macros likeADDRESS_SANITIZERto be defined on the command line.
Breaking Changes:
- Abseil no longer contains a
dynamic_annotationslibrary. Users
using a supported build system (Bazel or CMake) are unaffected by
this, but users manually specifying link libraries may get an error
about a missing linker input.
Baseline: 7680a5f
Cherry pick: bd0de71 (Patch 1)
Cherry pick: 0f3bb46 (Patch 2)
Cherry pick: 6f9d96a (Patch 3)