C++ Logo

sg15

Advanced search

Re: P2581R0: Specifying the Interoperability of Binary Module Interface Files

From: Daniel Ruoso <daniel_at_[hidden]>
Date: Sat, 30 Apr 2022 12:40:55 -0400
On Fri, Apr 29, 2022, 17:13 Tom Honermann <tom_at_[hidden]> wrote:
> I'm not sure how to interpret your response here.

I think we're not talking about the same thing. What you're describing
is what in the paper I described as the "hashing" mechanism that
compilers are implementing. They do what you're describing, however
you would end up with a unique hash per module, meaning that we would
have to fully preprocess the module interface unit prior to deciding
if that binary interface file is usable in this context or not.

The goal of this paper is to allow this step to be skipped, by having
a "baseline" configuration for the compiler as it is being used in a
given target, at which point any bmi matching that identifier can be
presumed to be compatible without ever having to read the module
interface file. That identifier would then be communicated in the
module metadata as it was distributed with the library.

This means the build system would be able to even short-circuit
dependency analysis on that point forward and just consume that BMI
file as is.

That would include pre-built bmi files for the standard library
modules, or for module header units.

daniel

Received on 2022-04-30 16:41:07