On Tue, 12 Feb 2019 at 23:33 Steve Downey <sdowney@gmail.com> wrote:

Right now, they ship headers. They can't ship BMI's because BMI's are
not portable across compilers or quite possibly even compiler versions.
Shipping raw source will not be an option for non-open-source libraries.

We need an intermediate representation that is *portable*.

Source for the module interface. If you don't want to provide details in the module interface, then don't. You are no worse off than if you provided headers. 

export module my_closed_source;
export import "my_closed_source_header.h"

We do need some ground rules for how to consume the source of an interface unit. I believe the compiled interface should be in a library, or otherwise provided, and the consumer just translate the interface into the bmi, because providing a .o and a .a to a posix linker has very different effects. The object file is added unconditionally, and its undefs must be resolved, where a library is just a source for undef resolution. 

+10
 

 
_______________________________________________
Tooling mailing list
Tooling@isocpp.open-std.org
http://www.open-std.org/mailman/listinfo/tooling