<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 12 Feb 2019 at 20:50 Ben Boeckel &lt;<a href="mailto:ben.boeckel@kitware.com">ben.boeckel@kitware.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, Feb 12, 2019 at 19:32:45 +0000, Gabriel Dos Reis wrote:<br>
&gt; IPR isn’t for distribution.<br>
<br>
OK. Substitute whatever format we end up using for distribution of<br>
modules within RPM, DPKG, vcpkg, ports, etc. It just can&#39;t be &quot;nothing&quot;<br>
because otherwise modules are effectively only useful in monorepo<br>
build-the-world-from-scratch projects. Which is not how C++ works today<br>
in the realm of FOSS. And it is best if that format is compatible<br>
between otherwise-compatible compilers too.<br></blockquote><div><br></div><div>Linux distributions are rather interesting</div><div>Internally, they are very much built from source in that all packages are built in</div><div>in a similar environment - to some extent.</div><div>Except packages aren&#39;t necessarily rebuilt when the compiler changes.</div><div>(Debian rebuilt everything last time C++ broke abi)</div><div><br></div><div>Externally, it is standard practice to consume the libraries of the distribution from projects that may not use the same compiler.</div><div>So Shipping BMI would be counterproductive on Linux.</div><div>Instead, you would ship the headers and the Module Interface Units source files*,</div><div>And you would consume them by generating a BMI then go on with your build and</div><div>get some compile-time benefits if the BMI is used in multiple TU.</div><div><br></div><div>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.</div><div><br></div><div>Similarly vcpkg and ports are, very sanely, source-based.</div><div>They wouldn&#39;t function differently than today.</div><div><br></div><div><br></div><div>* Reason 47 to have a deterministic mapping from module name to Module Interface Units identifier.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
--Ben<br>
_______________________________________________<br>
Tooling mailing list<br>
<a href="mailto:Tooling@isocpp.open-std.org" target="_blank">Tooling@isocpp.open-std.org</a><br>
<a href="http://www.open-std.org/mailman/listinfo/tooling" rel="noreferrer" target="_blank">http://www.open-std.org/mailman/listinfo/tooling</a><br>
</blockquote></div></div>