Note that __config is not a module anymore.
Note that there are a lot of cyclic dependencies hidden by the main module.
Differential D94924
[libc++] first steps of a private modulemap tschuett on Jan 18 2021, 11:01 AM. Authored by
Details
Note that __config is not a module anymore. Note that there are a lot of cyclic dependencies hidden by the main module.
Diff Detail
Event TimelineComment Actions Is this ready for review? If not, please ping me when it is. In the meantime, I'll "request changes" so it shows up correctly in the queue.
Comment Actions You can see it as proof of concept. If you don't like, feel free to reject.
Comment Actions Generally speaking, I have no objection with doing this if it's an improvement. But I don't understand the benefits / tradeoffs here cause I don't have much experience with Clang modules (so far the libc++ Clang modules are kind of a side thing maintained by people who care about it, but we still use the non-modular build by default). Can you explain what introducing private modules is going to buy us, and what sort of changes are going to be required? Will this have any visible change for people building with -fcxx-modules or -fmodules today?
Comment Actions
Comment Actions Nice! Then yes, I think it's a good idea to do this. It all depends on what changes are needed of course, but I'd be favorable if the changes are reasonable. It definitely seems like an improvement to me.
Comment Actions Yes, indeed. I would 100% support that. In fact, I've started doing that here and there when it makes sense. If you want to pursue such an effort, I would definitely back it up. Comment Actions I would rather see it as that I am forced to do that. It is the only way to eliminate cyclic dependencies. Comment Actions Is this still relevant? Our support for modules has evolved enormously in the past few months. If not, can we please abandon this review to clear up the review queue? |
undef_macros_private is an exact copy of undef_macros. I didn't even change the name.