Boost logo

Boost :

From: Hassan Sajjad (hassan.sajjad069_at_[hidden])
Date: 2025-04-16 12:21:45


The interactions to reproduce the results.
https://github.com/HassanSajjad-302/HMake/blob/main/Projects/Boost/hmake.cpp

On Wed, Apr 16, 2025, 16:34 Hassan Sajjad <hassan.sajjad069_at_[hidden]>
wrote:

> Hi.
>
> I compiled 25 Boost libraries with C++20 header-units, including examples
> and Tests of a few.
> This resulted in a 1.44x speed-up if we exclude the scanning. Scanning was
> as slow as the header-unit build.
>
> I have a solution for that. I am sending this paper (Making some final
> edits)
> https://htmlpreview.github.io/?https://github.com/HassanSajjad-302/iso-papers/blob/main/generated/my-paper.html
> ,
> which allows for a build-system to use a scanning-less approach to build
> header-units.This method requires only minimal modifications to the
> compiler and enables memory-mapped file sharing, which significantly
> reduces filesystem overhead and further boosts speed.
>
> My proposal for a scanning-less approach will allow HMake to have another
> amazing feature, monolithic Big header-units. BigHu will allow you to map
> all the headers from a directory to a single header-unit. This header-unit
> includes all these header-files and consumes them as header-files. Now,
> whenever the compiler requests a header-unit from this directory, the
> build-system instead sends this consolidated BigHu. This will not only
> improve the clean build speed, because of fewer process launches. But also
> massively boosts the rebuild speed as few header-units need to be read
> instead of lots of files. No source-code editing will be needed to use this
> feature. And you will have the option to either build a library as BigHu
> (if you don't mean to edit it) or as small header-units (if you are working
> on it).
>
> HMake will soon support compile_commands.json, which I guess can work fine
> with header-units. Thus you can benefit from both, faster compilation and
> working intelliscence.
>
> The API shown in hmake.cpp is a work in progress. HMake build-system
> benefits are numerous, even if we leave out the header-units support. This
> makes it a perfect replacement for B2. I believe we can complete the switch
> in the next 2 months. And if some compiler supports my paper, we get >3x
> faster compilation as well.
>
> Best,
> Hassan Sajjad
>
>
>


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