[cfe-dev] Will Clang use PCH format to implement C++20 module system?

Yafei Liu via cfe-dev cfe-dev at lists.llvm.org
Tue Jan 7 22:29:52 PST 2020


So what will happen to package management platforms like apt?
For example, I wrote a module and wanna distribute it on apt, I have three
possible ways of doing this:
1. since precompiled modules to be portable between compilers, I have to
compile my code with different compilers then upload different modules.
2. I upload the source and let the user do the compile.
3. I don't use module at all, use the "header+library" old way.

which should be the right way?


On Wed, Jan 8, 2020 at 2:38 AM David Blaikie <dblaikie at gmail.com> wrote:

> It won't - there are no plans for precompiled modules to be portable
> between compilers. (someone at Microsoft has been having some discussions
> about maybe making some of that possible - but there's a fair bit of
> resistance, and so far as I know from Clang and GCC there's no work in that
> direction)
>
> On Tue, Jan 7, 2020 at 4:10 AM Yafei Liu <yfliu at mobvoi.com> wrote:
>
>> Hey David, I got another question, do you know how will Clang handle
>> modules which is compiled by other compiler? For example GCC? The AST
>> serialization is not the same.
>>
>> On Tue, Jan 7, 2020 at 2:30 AM David Blaikie <dblaikie at gmail.com> wrote:
>>
>>>
>>>
>>> On Mon, Jan 6, 2020 at 2:28 AM Yafei Liu via cfe-dev <
>>> cfe-dev at lists.llvm.org> wrote:
>>>
>>>> Hi all, I'm curious if the PCH format will be used to implement C++20
>>>> module system? Any Clang community discussions or documents on this?
>>>>
>>>
>>> More or less. The basic AST serialization system is already shared
>>> between PCH, Clang Header Modules, and preliminary support for C++20
>>> Modules. Not exactly the same, because the semantics of each are slightly
>>> different - but the core AST serialization is common across all 3.
>>>
>>>
>>>> What's more, I'm inventing a language using LLVM, and I want to
>>>> generate some middle layer to communicate with c++ module, so is there any
>>>> tools or apis to generate a PCH?
>>>>
>>>
>>> None that I know of. The only cross-language binding like that that I
>>> know of is Swift, which is one-way to the best of my knowledge (so Swift
>>> doesn't have to generate Clang-compatible AST files (PCH/PCM/whatever) - it
>>> only has to be able to read them). I imagine Swift's binary module
>>> representation might be similar for ease of interoperability, but I don't
>>> actually know.
>>>
>>> - Dave
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20200108/8c0e5a92/attachment.html>


More information about the cfe-dev mailing list