C++ Logo

sg15

Advanced search

Re: [Tooling] Modules feedback

From: Steve Downey <sdowney_at_[hidden]>
Date: Tue, 12 Feb 2019 17:33:19 -0500
>
> 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.

Received on 2019-02-12 23:33:34