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
C++20 on Solaris using gcc is supported as a Tier 3 experimental platform.
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.