On Tue, 3 Sept 2024 at 12:30, Jonathan Wakely <jwakely....@gmail.com> wrote:
>
>
>
> On Tue, 3 Sept 2024, 10:15 Iain Sandoe, <i...@sandoe.co.uk> wrote:
>>
>> Hi Folks,
>>
>> When we build a C++ binary module (CMI/BMI), we obviously have access to its 
>> source to produce diagnostics, all fine.
>>
>> However, when we consume that module we might also need access to the 
>> sources used to build it - since diagnostics triggered in the consumer can 
>> refer back to the sources used.
>
>
> I'm fairly convinced by your argument that building the module usually 
> happens as part of the same build as consuming the module, and so the sources 
> will be available anyway.
>
> For large scale build environments where pre-built BMIs might be deployed by 
> one team and consumed by other teams, without (re)building those BMIs, it 
> doesn't seem too difficult for the module interface sources to also be 
> deployed. That's not so different from deploying headers and libraries (.so, 
> .dlsym, .dll etc) today.
>
> So I don't actually see a need to embed sources. It seems like it's solving 
> something that can easily be solved using existing processes. Just include 
> sources with BMIs that you deploy.

Reading this back, I realise "include" is ambiguous :-) I don't mean
embed within the BMI, I mean deploy alongside.


> If the full sources are sensitive IP, separate your code into the public 
> parts that are used to compile the BMI and the non-public parts. Or 
> proprietary vendors who don't want to do that separation can choose to not 
> provide code, and diagnostics suffer for their users. That's not a technical 
> problem, and doesn't need to be solved by the compiler.
>
>
>
>>
>> Currently clang has been experimenting with embedding the sources into the 
>> BMI - this can make things seem more efficient when, for example, 
>> distributing BMIs to remote nodes in a large-scale distributed build.
>>
>> There was a patch proposed to make this the default for clang, which has 
>> resulted in the discussion here:
>>
>> https://discourse.llvm.org/t/rfc-modules-should-we-embed-sources-to-the-bmi/81029
>>
>> Does GCC have a plan to deal with this?
>> .. if so can we communicate it..
>> .. if not, then what do we think about this strategy?
>> .. at the very least trying to avoid tooling divergence seems a worthwhile 
>> objective.
>>
>>

Reply via email to