Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2024-03-22 14:51:53


On 3/22/24 16:43, Boris Kolpackov wrote:
> Andrey Semashev via Boost <boost_at_[hidden]> writes:
>
>> I'm not very familiar with modules, but it looks to me that this
>> technology is very far from wide adoption. More than that, it looks like
>> it is very demanding on the developers [...]
>
> I think `import std;`, which I found surprisingly usable[1] in Clang 18
> and libc++, could provide a lot of benefit while demanding little form
> developers.

If you intend your library to require C++20 with modules as a minimum,
you might get away with a simple `import std;`. But you're still
including headers from other libraries, and your own headers as well
(which is what I'm seeing in your linked project's headers), so the
benefit from importing std is questionable. The code becomes more messy
if you want to support older C++ versions.

And let's not forget that in order for the `import std;` to work,
including in mixed usage scenario when part of the code includes headers
and part uses modules, compiler and standard library developers had to
do their part.

>> So yeah, modules are a mixed bag, and I don't see support for modules as
>> a worthy goal in the immediate future. If modules are the only benefit
>> HMake promises to provide, that's a weak selling point, IMO.
>
> What would be a strong selling point of a new build system for Boost,
> in your opinion (or anyone else's, for that matter)?

I'm not sure what that might be. Both b2 and CMake get the job done,
which is they support configuring, building and testing code. That's
pretty much the extent of what I expect from a build system.

There are, of course, things other than that, like fetching dependencies
or building distro packages or deploying to a server, but in my opinion,
these things are out of scope of what I call a build system.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk