C++ Logo


Advanced search

Re: [Tooling] Modules feedback

From: Corentin <corentin.jabot_at_[hidden]>
Date: Tue, 12 Feb 2019 21:28:50 +0100
On Tue, 12 Feb 2019 at 20:50 Ben Boeckel <ben.boeckel_at_[hidden]> wrote:

> On Tue, Feb 12, 2019 at 19:32:45 +0000, Gabriel Dos Reis wrote:
> > IPR isn’t for distribution.
> OK. Substitute whatever format we end up using for distribution of
> modules within RPM, DPKG, vcpkg, ports, etc. It just can't be "nothing"
> because otherwise modules are effectively only useful in monorepo
> build-the-world-from-scratch projects. Which is not how C++ works today
> in the realm of FOSS. And it is best if that format is compatible
> between otherwise-compatible compilers too.

Linux distributions are rather interesting
Internally, they are very much built from source in that all packages are
built in
in a similar environment - to some extent.
Except packages aren't necessarily rebuilt when the compiler changes.
(Debian rebuilt everything last time C++ broke abi)

Externally, it is standard practice to consume the libraries of the
distribution from projects that may not use the same compiler.
So Shipping BMI would be counterproductive on Linux.
Instead, you would ship the headers and the Module Interface Units source
And you would consume them by generating a BMI then go on with your build
get some compile-time benefits if the BMI is used in multiple TU.

I suspect Distributions Maintainers could get great performance
improvements if they can find a way to share BMI accross all build of
packages for a given compiler version.

Similarly vcpkg and ports are, very sanely, source-based.
They wouldn't function differently than today.

* Reason 47 to have a deterministic mapping from module name to Module
Interface Units identifier.

> --Ben
> _______________________________________________
> Tooling mailing list
> Tooling_at_[hidden]
> http://www.open-std.org/mailman/listinfo/tooling

Received on 2019-02-12 21:29:03