Date: Wed, 24 May 2023 11:19:39 -0400
On 5/24/23 10:07 AM, Daniel Ruoso via SG15 wrote:
> Em qua., 24 de mai. de 2023 às 01:58, Boris Kolpackov
> <boris_at_[hidden]> escreveu:
>> This is a red herring, IMO.
>> Firstly, there are plenty of "places where C++ is currently used"
>> where C++11 (let alone C++20) is not implementable. Does that mean
>> we should "walk back" to C++98?
> I don't think that's a fair comparison. The scenario I'm describing is
> of someone successfully adopting C++23, but not being able to use some
> libraries because they depend on Importable Headers and those are not
> usable for them.
That concern is equally applicable to projects that can't use libraries
that depend on named modules because their build system doesn't support
them.
>
>> Secondly, C++20 header units are always implementable by the C++
>> compiler directly (i.e., the "turn the compiler into a build system"
>> approach). It may not be desirable or practical, but it is
>> implementable anywhere, "where C++ is currently used".
> That would actually prevent the optimizations in the build system Tom
> was talking about, since now not only the dependency scanning depend
> on the list of importable headers and the arguments to their
> translation, but the translation itself would also depend on that.
No, this is Clang's implicitly built modules model. BMIs are cached with
metadata that is used to determine when they are reusable. It isn't
perfect, but it works pretty well in practice.
>
> So this would actually make things worse.
There are trade offs and those trade offs are evaluated differently by
different people. Most of the issues we are discussing are not cases of
something being objectively better or worse; those judgements depend on
other considerations.
Tom.
>
> daniel
> _______________________________________________
> SG15 mailing list
> SG15_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/sg15
> Em qua., 24 de mai. de 2023 às 01:58, Boris Kolpackov
> <boris_at_[hidden]> escreveu:
>> This is a red herring, IMO.
>> Firstly, there are plenty of "places where C++ is currently used"
>> where C++11 (let alone C++20) is not implementable. Does that mean
>> we should "walk back" to C++98?
> I don't think that's a fair comparison. The scenario I'm describing is
> of someone successfully adopting C++23, but not being able to use some
> libraries because they depend on Importable Headers and those are not
> usable for them.
That concern is equally applicable to projects that can't use libraries
that depend on named modules because their build system doesn't support
them.
>
>> Secondly, C++20 header units are always implementable by the C++
>> compiler directly (i.e., the "turn the compiler into a build system"
>> approach). It may not be desirable or practical, but it is
>> implementable anywhere, "where C++ is currently used".
> That would actually prevent the optimizations in the build system Tom
> was talking about, since now not only the dependency scanning depend
> on the list of importable headers and the arguments to their
> translation, but the translation itself would also depend on that.
No, this is Clang's implicitly built modules model. BMIs are cached with
metadata that is used to determine when they are reusable. It isn't
perfect, but it works pretty well in practice.
>
> So this would actually make things worse.
There are trade offs and those trade offs are evaluated differently by
different people. Most of the issues we are discussing are not cases of
something being objectively better or worse; those judgements depend on
other considerations.
Tom.
>
> daniel
> _______________________________________________
> SG15 mailing list
> SG15_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/sg15
Received on 2023-05-24 15:19:40