Boost logo

Boost :

From: Hassan Sajjad (hassan.sajjad069_at_[hidden])
Date: 2025-05-05 21:45:44


>
> Generally speaking your "benefits list" has quite bold statements
>
> Are you proposing replacement of b2 for Boost or just yet another
> build system to the club?

These statements are based on concrete evidence. I am proposing to replace
b2.

And why is it good? I mean you need to have a really good point to make
> build system that uses C++ files to define a build...

>3x faster compilation in Release and >5x faster in Debug mode for Boost
and better for bigger projects. No other build-system can do that. HMake
will have a few other game-changing features in the future as well. It is
not possible to evolve a DSL based build-system like that.

I mean today CMake is the most common industry standard build system
> that works really well.
> Why would you want to use it over something like this?

CMake can not support C++20 header-units. One benefit that I forgot is that
once you have compiled your project with header-units in HMake and you want
to move to C++20 modules, you do not need to make a single edit in your
configuration file (Not true for projects like Boost which want to support
both header-files and modules. In this case some macro definitions will be
needed). With this, #10 and #8, C++20 modules and header-units become an
absolute bliss to use with HMake.

See build systems run multiple tests (cmake, autotools and others) to make
> sure that everything is as expected. How exactly do you think you'll
> be able to speed it up?
> Because most of the configuration time is actually performing checks
> like potential dependencies, test builds, etc.
>

By caching the results and not running tests every time. Also,
configure.exe uses the same code that is used by build.exe. It is fully
parallel as well.

Now I don't want to discourage you but it is a really non-standard
> approach to build.

Isn't it superior, though?

And on more technical details: while it is more than ok to share ideas,
> generally speaking seeking of an endorsement is something done
> to get ready for a review... Not sure it is even close to it.

How so?

Best,
Hassan Sajjad

On Mon, May 5, 2025 at 5:49 PM Artyom Beilis via Boost <
boost_at_[hidden]> wrote:

> Hi,
>
> >
> > Following is a comprehensive list of benefits that HMake provides
> compared
> > to b2 or other build-systems.
>
> Generally speaking your "benefits list" has quite bold statements
>
> Are you proposing replacement of b2 for Boost or just yet another
> build system to the club?
>
> > 1) Using C++ itself. You have to learn a library interface, but not a new
> > programming language.
>
> And why is it good? I mean you need to have a really good point to make
> build system that uses C++ files to define a build...
>
> > 4) Very performant and efficient. On par with Ninja in both metrics, if
> not
> > better. Some optimizations are still under development.
>
> So how would it be better than just old good cmake + ninja?
>
> I mean today CMake is the most common industry standard build system
> that works really well.
> Why would you want to use it over something like this?
>
> Serious question that needs a deep answer.
>
> > 5) Fast configuration. Configuration will always be less than 5s ( even
> > with up to 10 full Boost configurations on Windows ).
>
> See build systems run multiple tests (cmake, autotools and others) to make
> sure that everything is as expected. How exactly do you think you'll
> be able to speed it up?
> Because most of the configuration time is actually performing checks
> like potential dependencies, test builds, etc.
>
> Now I don't want to discourage you but it is a really non-standard
> approach to build.
>
> And on more technical details: while it is more than ok to share ideas,
> generally speaking seeking of an endorsement is something done
> to get ready for a review... Not sure it is even close to it.
>
> Regards,
> Artyom
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>


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