From: vspefs <vspefs@protonmail.com>
To: Nathaniel Shead <nathanieloshead@gmail.com>
Cc: "Jose E. Marchesi" <jose.marchesi@oracle.com>,
gcc <gcc@gcc.gnu.org>, joergboe <joergboe@snafu.de>
Subject: Re: Generation of Make Dependencies for C++ Modules
Date: Mon, 29 Dec 2025 00:03:44 +0000 [thread overview]
Message-ID: <I5uNnWAxbiaNuBu8cUmF7cd57vw-hTaSHfEbEBd8AjAb7hiR3H7GT_90Ie7sOvg-FFB8iy3zg64TCLycHqqira_ufL7o2jENKuf7ob93dB4=@protonmail.com> (raw)
In-Reply-To: <aVGmPpK-uoYuzqox@Thaum.localdomain>
> Some people seem to want that from C++ modules, but the way they
> currently work is highly compiler specific (even to the point that
> mismatching compiler flags can cause a compiled module interface to be
> rejected). I don't see this changing anytime soon; my personal
> expectation is that C++ build systems will still require distributing at
> least the sources for any public module interfaces in addition to shared
> libraries with the contents of any relevant implementation units.
I haven’t really gone through Jose’s informative reply, but your concern here is valid. CMI is designed to be an extremely implementation-specific stuff and everything you said is right.
What I want to point out is there are some standard and community efforts to make it distributable, but to make it actually useful we’re practically at least designing a “standard C++ AST” which can be considered impractical. By “community efforts” I mean CMake does distribute CMI but that’s just one way of distributing module packages. The alternative, and from your (also my) point of view, the correct way, is to use CXX_MODULES file set to package module interface units in the final distribution. Meanwhile, Xmake and Bazel don’t really care about binary distribution.
There are naturally some distribution problems emerging here. CMake’s solution works perfectly if we stay in the CMake universe but it distributes CMake script along with the package. If we want module packages at least universal as pkg-config packages, we’ll need some consensus between build systems. It can be pessimistic or limiting. WG21 used to have a study group that could make it a standard effort but due to reasons they can’t. Now arguably the best place to discuss such things is the EcoStd organization.
next prev parent reply other threads:[~2025-12-29 0:03 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-22 18:11 joergboe
2025-12-23 16:23 ` Ben Boeckel
2025-12-25 18:28 ` joergboe
2025-12-26 3:16 ` Ben Boeckel
2025-12-27 5:50 ` vspefs
2025-12-27 11:24 ` Jose E. Marchesi
2025-12-27 12:01 ` Arsen Arsenović
2025-12-28 4:31 ` vspefs
2025-12-28 14:30 ` Jose E. Marchesi
2025-12-28 21:50 ` Nathaniel Shead
2025-12-29 0:03 ` vspefs [this message]
2025-12-29 2:31 ` Ben Boeckel
2025-12-29 6:12 ` vspefs
2025-12-29 16:13 ` Ben Boeckel
2025-12-30 13:47 ` vspefs
2025-12-30 16:19 ` Ben Boeckel
2025-12-30 16:54 ` Arsen Arsenović
2025-12-29 2:50 ` Ben Boeckel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='I5uNnWAxbiaNuBu8cUmF7cd57vw-hTaSHfEbEBd8AjAb7hiR3H7GT_90Ie7sOvg-FFB8iy3zg64TCLycHqqira_ufL7o2jENKuf7ob93dB4=@protonmail.com' \
--to=vspefs@protonmail.com \
--cc=gcc@gcc.gnu.org \
--cc=joergboe@snafu.de \
--cc=jose.marchesi@oracle.com \
--cc=nathanieloshead@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).