C++ Logo


Advanced search

[SG15] Draft: Requirements for Usage of C++ Modules at Bloomberg

From: Daniel Ruoso <daniel_at_[hidden]>
Date: Tue, 25 May 2021 19:31:42 -0000

This is still just a draft, and therefore it doesn't reflect an official
position. But I'm looking for some early feedback.

The draft is attached as PDF, but here's a snippet from the introduction,
which describes the paper:

Bloomberg has a code base with tens of thousands of independent C++
projects, which are integrated together with a package-manager approach
with aggressive dependency rebuilds to ensure coherency of all those
projects into what we call a “distribution snapshot”.
That distribution snapshot contains prebuilt artifacts. Most developers
will create a build context that contains only the source code they’re
expecting to change, and build against an installed location where
artifacts (headers, archives, pkg-config files) are deployed.
This stands in contrast with the practice of a “monorepo”. At Bloomberg we
explain that distinction by the categories “Source-to-Source Builds” versus
“Source-to-Binary Builds”. We will start by exploring those concepts, and
how they reflect real-world practice.
It is our understanding that Bloomberg’s experience is not dissimilar to
most Free/Libre Open Source Software communities, so while this document is
heavily influenced by our particular experience, this document tries to
frame it in a way that is not Bloomberg-specific.
After we describe the state of the world before the adoption of modules, we
will break down different requirements for the successful adoption of
modules for organizations that follow similar patterns.
Let me know what you folks think,

Received on 2021-05-25 14:31:41