C++ Logo

sg15

Advanced search

Re: [Tooling] Tooling experience? (was Re: Proposed mission)

From: Jens Maurer <Jens.Maurer_at_[hidden]>
Date: Mon, 09 Apr 2018 18:56:57 +0200
On 04/09/2018 06:29 PM, Boris Kolpackov wrote:
> Tom Honermann <tom_at_[hidden]> writes:
>
>> No, that would not be possible. The "Another take on Modules" proposal
>> [1] explicitly guards against this; see section 3.3 (Preprocessor impact).
>
> Thanks for the pointer.
>
> To summarize my understanding: in this proposal (but not in Modules TS)

(The Modules TS does not allow exporting macros from modules at all.)

> all import declarations must come first, before any other declarations.

Yes.

> Then the proposal "disables" expansion of exported macros in this
> import region. The build system can then discover the import set by
> somehow only preprocessing this import region and stopping (it still
> has to preprocess since the use of non-module-exported macros and,

That's my understanding.

> presumably, #include's in this region is valid).

Only if those #includes contain nothing but "import"s (if valid at all),
I'd guess.
 
> To me, personally, this feels like a bunch of artificial restrictions
> to make something inherently broken kinda work.

The subdivision of C++ translation unit text into a "module import header"
and the rest, with different rules applied, certainly is a departure from
current preprocessor style and C++ practice.

The question is: Would this approach address your build system concerns?

Jens

Received on 2018-04-09 18:57:01