C++ Logo

sg15

Advanced search

Re: [SG15] Will any change in a module source or dependencies cause change in the public/reachable surface of the built module?

From: Ben Boeckel <ben.boeckel_at_[hidden]>
Date: Thu, 1 Aug 2019 08:54:40 -0400
On Wed, Jul 31, 2019 at 23:30:02 +0000, Olga Arkhipova via SG15 wrote:
> Yes, having more than one file for a built module is definitely an
> option. If we look at other languages - c#, for instance, produces a
> "regular" binary (containing definitions, implementations and whatever
> else) and a special "reference only" binary, containing only public
> declarations. The first one is updated every time it builds, the
> second one only if public surface is changing.

Are there any build tools which actually support such a "only care about
Important Changes™ to this file for the purposes of this dependency"
(this sounds like a per-edge thing actually, not a per-node thing since
the link step cares about all of that file, not just the public part)?
This sounds isomorphic to a rule which extracts that Important bit and
makes a new file that is then depended on by the rules that only care
about that bit.

If there are build tools doing the former, are they intimately familiar
with C# to do this or is it a general mechanism that is relied upon?

--Ben

Received on 2019-08-01 07:56:41