C++ Logo

sg15

Advanced search

Re: Proposal for module metadata format to be used by the std library and others

From: Gabriel Dos Reis <gdr_at_[hidden]>
Date: Wed, 13 Dec 2023 19:29:27 +0000
  * I think the metadata file should be provided by the implementors of libraries (libc++ , libstdc++ and MSSTL in the case) instead of the compiler.

+1.

-- Gaby

From: SG15 <sg15-bounces_at_[hidden]> On Behalf Of Chuanqi Xu via SG15
Sent: Wednesday, December 13, 2023 7:28 AM
To: SG15 <sg15_at_[hidden]>
Cc: Chuanqi Xu <chuanqi.xcq_at_[hidden]>
Subject: Re: [SG15] Proposal for module metadata format to be used by the std library and others

> Am I understanding this correctly: the compiler will provide to the
build system the location of such a metadata file for the standard
library modules and from that metadata file the build system will
be able to obtain the location of the module interface units?

I think the metadata file should be provided by the implementors of libraries (libc++ , libstdc++ and MSSTL in the case) instead of the compiler.


Thanks,
Chuanqi

------------------------------------------------------------------
From: SG15 <sg15_at_[hidden]<mailto:sg15_at_[hidden]>>
Send Time:2023 Dec. 13 (Wed.) 23:13
To: SG15 <sg15_at_[hidden]<mailto:sg15_at_[hidden]cpp.org>>
Cc:Boris Kolpackov <boris_at_[hidden]<mailto:boris_at_[hidden]>>
Subject:Re: [SG15] Proposal for module metadata format to be used by the std library and others

Daniel Ruoso via SG15 <sg15_at_[hidden].org<mailto:sg15_at_[hidden]>> writes:

> * The compiler should offer a mechanism to introspect the path to the
> metadata file of the standard library, with the settings that the compiler
> will be used. That means build systems don't need to perform the lookup of
> the metadata.
>
> Here's how I would expect that would look like for a standard library
> (assuming the modules file for now), such as libc++:
>
> {
> "version": 1,
> "revision": 1,
> "modules": [
> {
> "logical-name": "std",
> "source-path": "modules/std.cppm",
> "is-standard-library": true
> },
> {
> "logical-name": "std.compat",
> "source-path": "modules/std.compat.cppm"
> "is-std-library": true
> },
> [...]
> ]
> }

Am I understanding this correctly: the compiler will provide to the
build system the location of such a metadata file for the standard
library modules and from that metadata file the build system will
be able to obtain the location of the module interface units?

And it looks like at least for now and for MS STL and libc++, those
locations will be the only useful thing that build systems will get
from this metadata file?
_______________________________________________
SG15 mailing list
SG15_at_[hidden]g<mailto:SG15_at_[hidden]>
https://lists.isocpp.org/mailman/listinfo.cgi/sg15

Received on 2023-12-13 19:29:32