Supported Platforms

BDE, as a fundamental low-level library, is expected to support a wide array of “platforms” (processor/OS/compiler combinations). We categorize platforms into three different tiers of support, and set a minimum supported version for each compiler.

Current Minimum Compilers Supported

  • gcc-12.5

  • MSVC 2022 Update 6 (17.36)

  • clang-18.0 / XCode 15

  • Sun-cc-5.16 (Solaris Studio 12.6)

Tiers of Support

Tier 1: Bloomberg Production Platforms

  • x86/Linux/gcc-13/C++20

  • x86/Windows/MSVC2022/C++20

  • Sparc/Solaris/Sun-cc-5.16/C++03

All using the default production standard library.

Tier 2: Actively Supported Platforms

These platforms are not Bloomberg production platforms, but either have a large base of Bloomberg active users (e.g., x86/OSX/clang), or tooling that depends on them (e.g., Sparc/Solaris/gcc), or are expected to be production platforms in the future (x86/linux/gcc-11).

  • Apple ARM/macOS/LLVM clang 18/C++20 [1]

  • Apple ARM/macOS/Apple clang 15/C++20 [1]

  • x86/Linux/gcc-12/C++20

  • x86/Linux/clang 18/C++20

  • Sparc/Solaris/gcc-12/C++20

Notes

Tier 3: User Supported Platforms

These are platforms for which code has been contributed, often by motivated BDE users, but the BDE team does not actively support.

  • x86/Cygwin/gcc

  • ARM/Linux/gcc

  • x86/Solaris/gcc

In addition, some compilers allow a choice of standard library. Choices of standard library outside of the default options are also considered Tier 3. This includes:

  • gcc with stdcxx

  • clang with stdc++

Supported Compiler Versions

Language Support Requirements

Language Standard

GCC

Clang

Visual Studio

Solaris Studio

C++20

12.5

18

2022 (MSVC 19.30)

gcc 12 [2]

C++23

13.1

18

2022 (MSVC 19.36)

Not supported

Notes

Rationale

The question of which versions of a compiler to support is inherently tricky. Older versions of a compiler may not contain language or library support for newer features of C++. Newer versions of a compiler may contain errors, generate new warnings, or be less permissive of non-standard constructs. As a general guideline, versions of a compiler used in production at Bloomberg are part of the Tier 1 platforms. Otherwise, as a guideline, compiler versions released two years ago (measured from now) should be fully supported, as being neither too old nor too leading-edge.

Current Test Matrix

The compilers in the active test matrix for BDE:

  • Apple clang-15 (ARM MacOS)

  • LLVM clang-18 (x86 Linux, x64 Linux)

  • gcc-12 (SPARC Solaris, x86 Linux)

  • gcc-13 (x86 Linux, x64 Linux)

  • MSVC 2022

  • Sun C++ 5.16 (SPARC Solaris)

Compiler Patch Information

Note that the baseline Visual Studio 2022 for BDE support is Update 6, released May 2023.