Abseil Blog

    Abseil Platform Support Update

    01 Oct 2020

    Abseil Platform Support Update

    By Derek Mauro, Abseil Engineer

    In September 2017, Abseil made the following support promise:

    We will support our code for at least 5 years. We will support language versions, compilers, platforms, and workarounds as needed for 5 years after their replacement is available, when possible. If it is technically infeasible (such as support for MSVC before 2015, which has limited C++11 functionality), those will be noted specifically. After 5 years we will stop support and may remove workarounds. ABSL_HAVE_THREAD_LOCAL is a good example: the base language feature works on everything except Xcode prior to Xcode 8 ; once Xcode 8 is out for 5 years, we will drop that workaround support.

    Read more


    Abseil Status

    10 Sep 2020

    By Xiaoyi Zhang, Google Engineer, Emeritus

    The Abseil status library is now available on abseil.io. This library is used within Google for error handling and contains the following two abstractions:

    • absl::Status
    • absl::StatusOr<T>

    Within Google, absl::Status is the primary mechanism to gracefully handle errors across API boundaries (and in particular across RPC boundaries). Some of these errors may be recoverable, but others may not. Most functions that can produce a recoverable error should be designed to return either an absl::Status (or the similar absl::StatusOr<T>, which holds either an object of type T or an error).

    Read more


    Announcing TCMalloc

    12 Feb 2020

    By Chris Kennelly, Google Software Engineer

    We are happy to announce the arrival of TCMalloc, a fast memory allocator with useful profiling and introspection features.

    The source code can be found on Github. This is a distinct repository, allowing Abseil to be used independently of TCMalloc. The library includes:

    • A lockfree, per-CPU cache implementation based on restartable sequences, available on modern Linux kernels, and a per-thread based fallback implementation.
    • A hugepage-aware backend that reduces TLB stalls by more densely populating hugepage subregions while reducing memory waste.
    • Optimizations leveraging modern C++ language features, including sized delete from C++14 and overaligned allocation from C++17.
    • Always-on, sampling-based heap profiling, allowing an application to obtain a heap profile without additional configuration. We also provide a “peak heap” profile, a snapshot of the application’s memory usage near its high watermark of usage.

    Read more


    Abseil Random

    21 Nov 2019

    By Andy Soffer, Engineer

    We are happy to announce the arrival of the Abseil Random library, providing simple tools for generating random numbers and testing code that uses random numbers.

    Abseil now includes a random number generation library, which can be found in absl/random/. The library includes

    Read more


    Introducing Abseil Options

    15 Nov 2019

    By Greg Falcon, Abseil Engineer

    Abseil now provides an options file, providing a limited means of configuring Abseil’s features. In the initial release of this options mechanism, we have added the ability to override Abseil’s automatic type detection and force (for example) absl::string_view to either always alias to std::string_view, or always remain using our Abseil implementation.

    Read more



Subscribe to the Abseil Blog