Changes in buildable components over time
I've recently needed to understand which components need to be built, which are header-only, and what versions correspond to each component (i.e., when was it introduced, when was it removed). Combining the outputs from 'bootstrap.sh --show-libraries' since 1.39.0 and scraping the library listings on the website as of 1.78.0, I was able to identify everything I needed. Surprisingly, though, it appears that coroutine2 and metaparse started out as buildable components, but then switched to being header-only. coroutine2 - introduced in 1.59.0 - first buildable in 1.59.0 - last buildable in 1.64.0 - available as of 1.78.0 metaparse - introduced in 1.61.0 - first buildable in 1.61.0 - last buildable in 1.65.1 - available as of 1.78.0 I cross-referenced the release notes, but I didn't see any mention of these components being made header-only. Is this intended behavior? Thanks. - Tim
On Thu, Apr 7, 2022 at 11:12 AM Tim Haines via Boost
Surprisingly, though, it appears that coroutine2 and metaparse started out as buildable components, but then switched to being header-only.
coroutine2 - introduced in 1.59.0 - first buildable in 1.59.0 - last buildable in 1.64.0 - available as of 1.78.0
metaparse - introduced in 1.61.0 - first buildable in 1.61.0 - last buildable in 1.65.1 - available as of 1.78.0
I cross-referenced the release notes, but I didn't see any mention of these components being made header-only. Is this intended behavior?
Metaparse was always header-only, but prior to 1.66.0 it had a build/Jamfile.v2 which just built examples and tests: build-project ../example ; build-project ../test ; This isn't best-practices, and so build/Jamfile.v2 was rightly removed. Coroutine2 did become header-only in 2017: https://github.com/boostorg/coroutine2/commit/5b06384117d19b8ce8b52678fe7f62... This wasn't mentioned in the release notes. We can probably do a better job of indicating which libraries are header-only and which are not. Maybe the https://www.boost.org/doc/libs/1_79_0/ list is the best place. (The list on https://www.boost.org/doc/libs/1_79_0/more/getting_started/windows.html is out of date too.) Glen
On Fri, Apr 15, 2022 at 2:29 PM Glen Fernandes
Surprisingly, though, it appears that coroutine2 and metaparse started out as buildable components, but then switched to being header-only.
coroutine2 - introduced in 1.59.0 - first buildable in 1.59.0 - last buildable in 1.64.0 - available as of 1.78.0
metaparse - introduced in 1.61.0 - first buildable in 1.61.0 - last buildable in 1.65.1 - available as of 1.78.0
I cross-referenced the release notes, but I didn't see any mention of
On Thu, Apr 7, 2022 at 11:12 AM Tim Haines via Boost
wrote: these components being made header-only. Is this intended behavior?
Metaparse was always header-only, but prior to 1.66.0 it had a build/Jamfile.v2 which just built examples and tests: build-project ../example ; build-project ../test ;
This isn't best-practices, and so build/Jamfile.v2 was rightly removed.
Ah, I see. For my purposes, I'll just assume it was always header-only then.
Coroutine2 did become header-only in 2017:
https://github.com/boostorg/coroutine2/commit/5b06384117d19b8ce8b52678fe7f62...
This wasn't mentioned in the release notes.
We can probably do a better job of indicating which libraries are header-only and which are not. Maybe the https://www.boost.org/doc/libs/1_79_0/ list is the best place.
That's what I used to scrape part of my data, so I think that would work well.
(The list on https://www.boost.org/doc/libs/1_79_0/more/getting_started/windows.html is out of date too.)
I would happily contribute the data I collected to this effort. It also seems timely as there have been other discussions about updating the website. I'm assuming https://github.com/boostorg/website would be the right place to make this contribution?
Glen
On Tue, Apr 19, 2022 at 12:12 PM Tim Haines wrote:
On Fri, Apr 15, 2022 at 2:29 PM Glen Fernandes wrote:
We can probably do a better job of indicating which libraries are header-only and which are not. Maybe the https://www.boost.org/doc/libs/1_79_0/ list is the best place.
That's what I used to scrape part of my data, so I think that would work well.
(The list on https://www.boost.org/doc/libs/1_79_0/more/getting_started/windows.html is out of date too.)
I would happily contribute the data I collected to this effort. It also seems timely as there have been other discussions about updating the website. I'm assuming https://github.com/boostorg/website would be the right place to make this contribution?
Contributions would be very welcome. For the Getting Started list, that would be: https://github.com/boostorg/more/tree/master/getting_started For a header-only tag on the library list page, we will make sure the new website in development has this feature. (It might involve adding that information to each library's meta/libraries.json to indicate whether it is header-only or not) Glen
participants (2)
-
Glen Fernandes
-
Tim Haines