Skip to content

Releases: abseil/abseil-cpp

Abseil LTS branch, Jan 2024, Patch 2

08 Apr 20:36
d7aaad8
Compare
Choose a tag to compare

Abseil LTS 20240116.2

What's New:

  • Added absl::NoDestructor<T> to simplify defining static types that do not need to be destructed upon program exit.
  • Added configurable verbose logging (also known as VLOG).
  • Added absl::Overload(), which returns a functor that provides overloads based on the functors passed to it. Note that this functionality requires C++17 or newer.
  • Bzlmod is now officially supported (previously it was supported by the community). Note that it may take several days after the release for it to become available in the Bazel Central Registry.

Breaking Changes:

  • AbslHashValue() no longer accepts C-style arrays as a parameter. Previously the array would decay to a pointer type, which could lead to subtle, unintended bugs. The most common potential error is passing a C-string literal. After this change, these call-sites require wrapping the literal in absl::string_view.
  • absl::weak_equality and absl::strong_equality have been removed. The corresponding std types were removed before C++20 was finalized (https://wg21.link/P1959R0).

Known Issues

  • None known at this time.

Baseline: 10f3e61
Cherry pick: 4a2c633
Cherry pick: 3ab97e7 (Patch 1)
Cherry pick: d7aaad8 (Patch 2)

Abseil LTS branch, Jan 2024, Patch 1

12 Feb 20:05
2f9e432
Compare
Choose a tag to compare

Abseil LTS 20240116.1

What's New:

  • Added absl::NoDestructor<T> to simplify defining static types that do not need to be destructed upon program exit.
  • Added configurable verbose logging (also known as VLOG).
  • Added absl::Overload(), which returns a functor that provides overloads based on the functors passed to it. Note that this functionality requires C++17 or newer.
  • Bzlmod is now officially supported (previously it was supported by the community). Note that it may take several days after the release for it to become available in the Bazel Central Registry.

Breaking Changes:

  • AbslHashValue() no longer accepts C-style arrays as a parameter. Previously the array would decay to a pointer type, which could lead to subtle, unintended bugs. The most common potential error is passing a C-string literal. After this change, these call-sites require wrapping the literal in absl::string_view.
  • absl::weak_equality and absl::strong_equality have been removed. The corresponding std types were removed before C++20 was finalized (https://wg21.link/P1959R0).

Known Issues

  • None known at this time.

Baseline: 10f3e61
Cherry pick: 4a2c633
Cherry pick: 3ab97e7 (Patch 1)

Abseil LTS branch, Aug 2023, Patch 2

12 Feb 20:02
929c17c
Compare
Choose a tag to compare

Abseil LTS 20230802.2

What's New:

  • Added the nullability library for designating the expected nullability of pointers. Currently these serve as annotations only, but it is expected that compilers will one day be able to use these annotations for diagnostic purposes.
  • Added the prefetch library as a portable layer for moving data into caches before it is read.
  • Abseil's hash tables now detect many more programming errors in debug and sanitizer builds.
  • Abseil's synchronization objects now differentiate absolute waits (when passed an absl::Time) from relative waits (when passed an absl::Duration) when the underlying platform supports differentiating these cases. This only makes a difference when system clocks are adjusted.
  • Abseil's flag parsing library includes additional methods that make it easier to use when another library also expects to be able to parse flags.
  • absl::string_view is now available as a smaller target, @com_google_absl//absl/strings:string_view, so that users may use this library without depending on the much larger @com_google_absl//absl/strings target.

Breaking Changes:

  • None known at this time.

Known Issues

  • None known at this time.

Baseline: fdf5be1
Cherry pick: 659b77b
Cherry pick: fb3621f (Patch 1)
Cherry pick: 11e1e5c (Patch 2)

Abseil LTS branch, Jan 2023, Patch 4

12 Feb 19:59
1b66579
Compare
Choose a tag to compare

Abseil LTS 20230125.4

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 like absl::StrCat() and absl::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 the ABSL_ prefixed versions (e.g. ABSL_GUARDED_BY()) due to clashes with other libraries. The compatibility macro ABSL_LEGACY_THREAD_ANNOTATIONS can 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. VLOG and DFATAL are 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)
Cherry pick: 807763a (Patch 3)
Cherry pick: 96074ab (Patch 4)

Abseil LTS branch, June 2022, Patch 2

12 Feb 19:56
053d842
Compare
Choose a tag to compare

Abseil LTS 20220623.2

What's New:

Breaking Changes:

Other:

  • This will be the last release to support C++11. Future releases will require at least C++14.

Baseline: 273292d
Cherry pick: 8c0b94e (Patch 1)
Cherry pick: 704de40 (Patch 2)

Abseil LTS branch, Jan 2024

22 Jan 18:03
4a2c633
Compare
Choose a tag to compare

Abseil LTS 20240116.0

What's New:

  • Added absl::NoDestructor<T> to simplify defining static types that do not need to be destructed upon program exit.
  • Added configurable verbose logging (also known as VLOG).
  • Added absl::Overload(), which returns a functor that provides overloads based on the functors passed to it. Note that this functionality requires C++17 or newer.
  • Bzlmod is now officially supported (previously it was supported by the community). Note that it may take several days after the release for it to become available in the Bazel Central Registry.

Breaking Changes:

  • AbslHashValue() no longer accepts C-style arrays as a parameter. Previously the array would decay to a pointer type, which could lead to subtle, unintended bugs. The most common potential error is passing a C-string literal. After this change, these call-sites require wrapping the literal in absl::string_view.
  • absl::weak_equality and absl::strong_equality have been removed. The corresponding std types were removed before C++20 was finalized (https://wg21.link/P1959R0).

Known Issues

  • None known at this time.

Baseline: 10f3e61
Cherry pick: 4a2c633

Abseil LTS branch, Aug 2023, Patch 1

18 Sep 14:43
fb3621f
Compare
Choose a tag to compare

Abseil LTS 20230802.1

What's New:

  • Added the nullability library for designating the expected nullability of pointers. Currently these serve as annotations only, but it is expected that compilers will one day be able to use these annotations for diagnostic purposes.
  • Added the prefetch library as a portable layer for moving data into caches before it is read.
  • Abseil's hash tables now detect many more programming errors in debug and sanitizer builds.
  • Abseil's synchronization objects now differentiate absolute waits (when passed an absl::Time) from relative waits (when passed an absl::Duration) when the underlying platform supports differentiating these cases. This only makes a difference when system clocks are adjusted.
  • Abseil's flag parsing library includes additional methods that make it easier to use when another library also expects to be able to parse flags.
  • absl::string_view is now available as a smaller target, @com_google_absl//absl/strings:string_view, so that users may use this library without depending on the much larger @com_google_absl//absl/strings target.

Breaking Changes:

  • None known at this time.

Known Issues

  • None known at this time.

Baseline: fdf5be1
Cherry pick: 659b77b
Cherry pick: fb3621f (Patch 1)

Abseil LTS branch, Aug 2023

07 Aug 18:43
29bf808
Compare
Choose a tag to compare

Abseil LTS 20230802

What's New:

  • Added the nullability library for designating the expected nullability of pointers. Currently these serve as annotations only, but it is expected that compilers will one day be able to use these annotations for diagnostic purposes.
  • Added the prefetch library as a portable layer for moving data into caches before it is read.
  • Abseil's hash tables now detect many more programming errors in debug and sanitizer builds.
  • Abseil's synchronization objects now differentiate absolute waits (when passed an absl::Time) from relative waits (when passed an absl::Duration) when the underlying platform supports differentiating these cases. This only makes a difference when system clocks are adjusted.
  • Abseil's flag parsing library includes additional methods that make it easier to use when another library also expects to be able to parse flags.
  • absl::string_view is now available as a smaller target, @com_google_absl//absl/strings:string_view, so that users may use this library without depending on the much larger @com_google_absl//absl/strings target.

Breaking Changes:

  • None known at this time.

Known Issues

  • This release does not build in some configurations on several unsupported platforms, including FreeBSD, NetBSD, OpenBSD, and MinGW. 20230802.1 addresses this issue.

Baseline: fdf5be1
Cherry pick: 659b77b

Abseil LTS branch, Jan 2023, Patch 3

04 May 14:36
c2435f8
Compare
Choose a tag to compare

Abseil LTS 20230125.3

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 like absl::StrCat() and absl::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 the ABSL_ prefixed versions (e.g. ABSL_GUARDED_BY()) due to clashes with other libraries. The compatibility macro ABSL_LEGACY_THREAD_ANNOTATIONS can 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. VLOG and DFATAL are 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)
Cherry pick: 807763a (Patch 3)

Abseil LTS branch, Jan 2023, Patch 2

27 Mar 15:01
b971ac5
Compare
Choose a tag to compare

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 like absl::StrCat() and absl::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 the ABSL_ prefixed versions (e.g. ABSL_GUARDED_BY()) due to clashes with other libraries. The compatibility macro ABSL_LEGACY_THREAD_ANNOTATIONS can 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. VLOG and DFATAL are 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)