C++ Logo

sg15

Advanced search

Re: P2898R0: Importable Headers are Not Universally Implementable

From: Daniel Ruoso <daniel_at_[hidden]>
Date: Wed, 24 May 2023 10:14:27 -0400
Em ter., 23 de mai. de 2023 às 21:54, Tom Honermann
<tom_at_[hidden]> escreveu:
> What subset of environments is it not implementable in? The paper doesn't actually say as far as I can tell. What is a concrete example?

It is not implementable in open-ended build systems, such as what we
have at Bloomberg.

Concretely, what would happen is that if I do an `apt-get update &&
apt-get dist-upgrade` it could result in a full clean build in my
incremental build because the list of importable headers or the
arguments to those could change.

> The paper doesn't quantify costs in any way. The closest it comes is (correctly) noting that dependency scanning for header units requires computing imported macros in a bottom up way that is not required for named modules. But the paper doesn't quantify that cost. Is it a 5% hit? A 95% hit? Linear with respect to the number of header units? Other papers have offered quantification; see P1441 (Are modules fast?) for example.

The cost is quite binary, actually. Every time the list of importable
headers or the arguments to those change, it results in a full clean
build.

daniel

Received on 2023-05-24 14:14:39