C++ Logo

sg15

Advanced search

Re: [isocpp-ext] Can we expect that all C++ source files can have the same suffix?

From: Patrice Roy <patricer_at_[hidden]>
Date: Mon, 25 Apr 2022 18:41:46 -0400
I think a piece from this discussion is missing : there seems to be strong
resistance from some implementers as to supporting Tom's "Congrats Gaby"
hello-world-style program that would only depend on a modularized standard
library (let's leave Boost and other well-known but non-std libraries for
the moment). This resistance would be hard to explain to users without
knowing more about the reasons for this resistance.

Would an implementer care to explain why this seems so unreasonable without
a build system? Ideally, comparing the "old-style" (lexically included
headers) approach to the modules-based approach.

>From this, it would at least be easier to explain to beginners why just
compiling their simple, standard-library-only programs requires more
tooling than it used to. Everyone would benefit from that knowledge, or so
it seems to me. My users are game programmers; they are experienced, they
use build systems, but they also compile small test code manually at the
command line and if they cannot use modules for this, they will ask why and
I would really like to have an answer. It's not a sand-castle vs skyscraper
issue; it's something they will need to know to integrate it in their
workflow.

Thanks in advance!


Le lun. 25 avr. 2022 à 14:44, Steve Downey via SG15 <sg15_at_[hidden]>
a écrit :

>
>
> On Mon, Apr 25, 2022 at 1:55 PM Peter Dimov via Ext <ext_at_[hidden]>
> wrote:
>
>> Tom Honermann wrote:
>> > On 4/25/22 1:12 PM, Gabriel Dos Reis wrote:
>> > > [Peter]
>> > >> You are correct that the requests don't stop here.
>> > > Please, go talk to Tom 😊
>> > > Let me know when you're on the same page and what the actual request
>> > > is 😉
>> >
>> > I think Peter and I are pretty well aligned. At a minimum, we're
>> aligned on
>> > support for the standard library.
>> >
>> > Supporting Boost as Peter suggested would require something like what
>> the
>> > SG15 TR intends to specify or some other form of deeper integration
>> between
>> > the compiler and the Boost installation; I'm content to categorize those
>> > integrations as falling on the sky scraper side. Like Peter, I would
>> like for the
>> > compiler to just support those integrations, but I would also like for
>> build
>> > systems to just never be required at all and I don't see that happening
>> any time
>> > soon :)
>>
>> Boost here is just an example. The `import <boost/smart_ptr.hpp>` scenario
>> concerns a header-only library that is, as today, installed somewhere in
>> the
>> default compiler include path. #include works today, we'd ideally want
>> import
>> to work tomorrow without additional friction, so that people can
>> painlessly
>> migrate to using modules.
>>
>> The Regex scenario describes a C++ compiled library that is installed in
>> the
>> default include path and the default library path (by e.g. the system
>> package
>> manager, although not necessarily.) The question here is would it be
>> possible,
>> in the brave new module world, for the system package manager to install
>> some things somewhere such that `import <boost/regex.hpp>` or
>> `import boost.regex` works as well as #include works today.
>>
>> (I'm assuming here that both libraries have been changed in whatever way
>> is needed to support modules.)
>>
>>
>> Possibly for the system compiler, so that the BMI for
> <boost/smart_ptr.hpp> could be produced upon installation of the boost
> library.
>
> However, this will also make compiler upgrades and secondary compilers a
> nightmare to install as the entire world gets rebuilt to generate some set
> of ABI compatible importable objects.
>
>
> _______________________________________________
> SG15 mailing list
> SG15_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/sg15
>

Received on 2022-04-25 22:42:00