C++ Logo

sg15

Advanced search

Re: P2581R0: Specifying the Interoperability of Binary Module Interface Files

From: Gabriel Dos Reis <gdr_at_[hidden]>
Date: Wed, 4 May 2022 12:11:18 +0000
Yes, understandable. One snag with that conversion is that we similarly end up with "interface partition" - which, I believe is a common term these days.
The next question that programmers (not WG21 experts) ask is: "oh so, an implementation partition implements the interface partition, just like .h/.cpp files common practice?" The answer is "no". And they get thoroughly confused.
Hence, the term "internal partition" used by MSVC in its documentation and education materials.

Orthogonality is a funny thing, until it is not.

-- Gaby

-----Original Message-----
From: Iain Sandoe <iain_at_[hidden]>
Sent: Wednesday, May 4, 2022 5:00 AM
To: sg15_at_[hidden]
Cc: Gabriel Dos Reis <gdr_at_[hidden]>; dani <dani_at_[hidden]>
Subject: Re: [SG15] P2581R0: Specifying the Interoperability of Binary Module Interface Files



> On 4 May 2022, at 12:45, Daniela Engert via SG15 <sg15_at_[hidden]> wrote:
>
> Am 04.05.2022 um 13:33 schrieb Gabriel Dos Reis:
>> Where is "implementation partition" defined in the standards text?
>>
>> -- Gaby, not defending an tool-specific terminology, but genuinely curious
>
> I may have been fallen victim of a mental implicit conversion, but when parsing the standards text in elevator mode in recent years I came to the conclusion this particular module TU type is called "module implementation partition". If this is just a mirage then let's find a proper name for these beasts or stick with whatever already exists. I told my audience all the time that these are the modules equivalent to library-internal headers but that's just one use case.

I think many of us have the same scenario;

The standard says that module unit that does not have an 'export' is an implementation unit ... I think that some/many of us have therefore concluded that a partition with that property is also an implementation partition. Alas my implementation (in the compiler!) uses this terminology.

Iain

>
>
>> -----Original Message-----
>> From: SG15 <sg15-bounces_at_[hidden]> On Behalf Of Daniela Engert via SG15
>> Sent: Wednesday, May 4, 2022 4:27 AM
>> To: sg15_at_[hidden]
>> Cc: dani <dani_at_[hidden]>
>> Subject: Re: [SG15] P2581R0: Specifying the Interoperability of Binary Module Interface Files
>>
>> Am 04.05.2022 um 12:46 schrieb Nathan Sidwell via SG15:
>>> On 5/3/22 10:32, Ben Boeckel via SG15 wrote:
>>>> On Tue, May 03, 2022 at 12:48:24 +0000, Gabriel Dos Reis wrote:
>>>>> I have a lot to say in this thread, but a request for the CMake folks:
>>>>>
>>>>>> CXX_MODULE_HEADERS
>>>>> Please, can we avoid "module headers" or "header modules" as
>>>>> terminology in the community?
>>>>> We've settled on "header units". If we need something more than
>>>>> that, please let's work on it.
>>>> There are currently three names used:
>>>> - `CXX_MODULE_INTERNAL_PARTITIONS`: for any TU which is a partition
>>>> without `export` and not an implementation unit (needs to be
>>>> separate because of the `-internalPartition` flag is needed during
>>>> scanning; it wouldn't be that important if the non-standard MSVC
>>>> extention needed the flag and this one did not)
>>> IIUC these are what the std calls implementation partitions. It is
>>> unfortunate the same name is not being used.
>> I'd also prefer this name as coined by the standard instead of a
>> tool-specific one.
>>
>>
>> _______________________________________________
>> SG15 mailing list
>> SG15_at_[hidden]
>> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isocpp.org%2Fmailman%2Flistinfo.cgi%2Fsg15&amp;data=05%7C01%7Cgdr%40microsoft.com%7Cbcd02e0ee2544313ace608da2dc5a8db%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637872624219688051%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=YSVfaSThKzE3KoVBaw7P1HKvkEQp85vmuJjl9Ei80qM%3D&amp;reserved=0
>
>
> _______________________________________________
> SG15 mailing list
> SG15_at_[hidden]
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isocpp.org%2Fmailman%2Flistinfo.cgi%2Fsg15&amp;data=05%7C01%7Cgdr%40microsoft.com%7Cbcd02e0ee2544313ace608da2dc5a8db%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637872624219688051%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=YSVfaSThKzE3KoVBaw7P1HKvkEQp85vmuJjl9Ei80qM%3D&amp;reserved=0

Received on 2022-05-04 12:11:22