[PATCH] D134267: [C++] [Modules] Support one phase compilation model for named modules

Chuanqi Xu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 13 00:57:03 PDT 2022


ChuanqiXu added a comment.

In D134267#3852136 <https://reviews.llvm.org/D134267#3852136>, @boris wrote:

>> For example, my experimental support for P1689 <https://reviews.llvm.org/P1689> is at: [...]. The implementation looks relatively trivial to me. The simplicity is pretty important.
>
> Two points:
>
> 1. It's worth considering the simplicity of the overall system (compiler + build system + user project) rather than just the compiler. I hope my previous comment highlighted some of the complexity that the overall system must deal with in the pre-scan approach with a lot of it potentially ending up on the user's plate.
>
> 2. I haven't looked at the code, but there are some complex problems in this area as highlighted by this MSVC bug: https://developercommunity.visualstudio.com/t/scanDependencies-does-not-take-into-acc/10029154 I believe you may have it easier because reportedly Richard & friends have already implemented the necessary header import isolation semantics.

Yeah, it looks like the header unit brings new complexity. And my demo only works for named modules. I need to reconsider it.

My original thought for these two modes was: the compiler could avoid to make the choice. I mean, the compiler could support both modes and let the build system writer and end user to make the choice.

And I believe there will be a discuss for client-server model vs pre-scan model in clang. I think we can discuss more then.

In D134267#3852883 <https://reviews.llvm.org/D134267#3852883>, @iains wrote:

> To avoid more tangential discussion here - I've opened https://discourse.llvm.org/t/generating-pcm-module-interfaces-and-regular-object-files-from-the-same-compiler-invocation/65918  ... it would be great if the major stakeholders here especially  @rsmith could comment on the design intentions.

Yeah, this is about the deserialization part. I believe there'll be 2 other discussions about filename suffixes and client-module model. Although I feel none of them are blocker or even related to this patch : )


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134267/new/

https://reviews.llvm.org/D134267



More information about the cfe-commits mailing list