Skip to content

Boost: add conditional variants#30627

Closed
hainest wants to merge 80 commits intospack:developfrom
hainest:thaines/boost_conditional_variants
Closed

Boost: add conditional variants#30627
hainest wants to merge 80 commits intospack:developfrom
hainest:thaines/boost_conditional_variants

Conversation

@hainest
Copy link
Copy Markdown
Contributor

@hainest hainest commented May 11, 2022

Fixes #1486
Fixes #11467
Closes #31237
Fixes #30663

TODO

  • Remove all_libs.
    I think this can be done with something like [v.lib for v in self.variants if v.enabled] and then call self.libs() in install (at for lib in Boost.all_libs: around line 692).
  • Check version ranges for the other variants
  • boost@master does not build on develop.
    I believe this is due to the if not with_libs check in install. I have not verified this yet. I will post build error messages later.
  • There are many b2 properties/features we don't support. See Add support for alternate boost-context backends #30496

@trws @alalazo @eugeneswalker @wspear @eschnett @asarkar-parsys

@hainest hainest force-pushed the thaines/boost_conditional_variants branch from 98bf872 to 3afdfb7 Compare May 11, 2022 20:00
@hainest
Copy link
Copy Markdown
Contributor Author

hainest commented May 13, 2022

There are many b2 properties/features we don't support.

boost@master. I have no idea how many of these are useful. TBD.

$ find . -iname "*jamfile*" -exec grep -iP "\s*feature\.feature" {} \; -exec echo {} \; -exec echo "" \;
feature.feature phoenix-limit : : free ;
./libs/phoenix/preprocess/Jamfile.v2

feature.feature iterator_debugging
./libs/accumulators/test/Jamfile.v2

feature.feature wavetool 
./libs/wave/tool/build/Jamfile.v2

feature.feature boost.beast.allow-deprecated : on off : propagated composite ;
feature.feature boost.beast.separate-compilation : on off : propagated composite ;
./libs/beast/Jamfile

feature.feature segmented-stacks : on : optional propagated composite ;
feature.feature htm : tsx : optional propagated composite ;
feature.feature valgrind : on : optional propagated composite ;
feature.feature binary-format
feature.feature abi
feature.feature context-impl
./libs/context/build/Jamfile.v2

feature.feature numa : on : optional propagated composite ;
./libs/fiber/build/Jamfile.v2

feature.feature boost.nowide.lfs : auto no : optional propagated ;
./libs/nowide/build/Jamfile.v2

feature.feature nowchar : on :
./libs/lexical_cast/test/Jamfile.v2

feature.feature fusion-limit : : free ;
./libs/fusion/preprocess/Jamfile.v2

feature.feature boost.locale.iconv : on off : optional propagated ;
feature.feature boost.locale.icu : on off :  optional propagated ;
feature.feature boost.locale.posix : on off : optional propagated ;
feature.feature boost.locale.std : on off : optional propagated ;
feature.feature boost.locale.winapi : on off : optional propagated ;
./libs/locale/build/Jamfile.v2

feature.feature <generate-include-all-order> : forward reverse : incidental ;
./libs/units/test_headers/Jamfile.v2

feature.feature <generate-include-all-order> : forward reverse : incidental ;
./libs/spirit/repository/test/test_headers/Jamfile

feature.feature <generate-include-all-order> : forward reverse : incidental ;
./libs/spirit/test/test_headers/Jamfile

    feature.feature known-warnings : hide show : incidental propagated ;
./libs/spirit/Jamfile

@hainest
Copy link
Copy Markdown
Contributor Author

hainest commented Jul 1, 2022

@me add test from #30719 (comment)

@payerle payerle mentioned this pull request Jul 12, 2022
4 tasks
@hainest hainest force-pushed the thaines/boost_conditional_variants branch from d4a635e to a1e9820 Compare November 24, 2022 01:03
@hainest hainest force-pushed the thaines/boost_conditional_variants branch from a1e9820 to 83a44b7 Compare December 23, 2022 00:57
@hainest hainest force-pushed the thaines/boost_conditional_variants branch 2 times, most recently from bd1ff4f to dc1917a Compare January 23, 2023 15:45
@alalazo alalazo added this to the v0.20.0 milestone Feb 20, 2023
@alalazo
Copy link
Copy Markdown
Member

alalazo commented Feb 21, 2023

@hainest I added this one to the v0.20.0 which should be completed roughly for ISC23. Let me know if I can help pushing this forward.

@hainest hainest force-pushed the thaines/boost_conditional_variants branch from d9d89b9 to 74d15ee Compare February 21, 2023 18:01
@hainest
Copy link
Copy Markdown
Contributor Author

hainest commented Feb 21, 2023

@alalazo All of the code changes are done (I think). I've been trying to build all of the packages that depend on Boost to make sure there are no breakages, but some of them just don't build and I've not had a chance to look at why. I will leave it to you to decide if that's a barrier to merging this.

It's been discussed before, but I want to make sure I enunciate this. By far, the biggest change with this PR is that it's now impossible to request a library/feature that doesn't exist in a particular version of boost.

The current behavior is

$ spack spec [email protected]+signals
Input spec
--------------------------------
[email protected]+signals

Concretized
--------------------------------
[email protected] ... +signals ...

but now will fail to concretize because signals was removed in 1.68.0. However, it is my contention that the new behavior is correct as the current behavior leads to possible spec reuse when the signals library actually wasn't installed.

@hainest hainest force-pushed the thaines/boost_conditional_variants branch from 7605f74 to 98e493b Compare February 21, 2023 18:59
@hainest
Copy link
Copy Markdown
Contributor Author

hainest commented Mar 1, 2023

@spackbot re-run pipeline

@spackbot-app
Copy link
Copy Markdown

spackbot-app bot commented Mar 1, 2023

I've started that pipeline for you!

@hainest hainest force-pushed the thaines/boost_conditional_variants branch 2 times, most recently from b0d6b1a to fa98404 Compare April 14, 2023 19:37
@alalazo alalazo self-assigned this May 3, 2023
@alalazo alalazo changed the title [WIP] Boost: add conditional variants Boost: add conditional variants May 3, 2023
@alalazo alalazo modified the milestones: v0.20.0, v0.21.0 May 11, 2023
@alalazo alalazo removed this from the v0.21.0 milestone Jun 7, 2023
@hainest hainest force-pushed the thaines/boost_conditional_variants branch from fa98404 to 35baeca Compare March 13, 2024 19:05
hainest added 24 commits May 5, 2025 18:21
Many libraries now require c++11, so it's easier to just make the
entire package require c++11.
b2 already quotes them, so passing multiple values causes them to be
passed to the compiler as a quoted string like '-fFoo -fBar'.
yap and hana are enabled by default in 1.65.0, but require c++14.
This technically adds an additional check for MPI, but it makes it
clearer as to why this is needed. In the even that both threading
types are wanted, it will invoke `b2 --install` only once.
There's no need to apply patches that don't pertain to the current set
of variants.
@hainest hainest force-pushed the thaines/boost_conditional_variants branch from 11e1062 to 200bcfe Compare May 5, 2025 23:21
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Nov 2, 2025

This pull request has been automatically marked as stale because it has not had any activity in the last 6 months. It will be closed in 30 days if there is no further activity.

If the pull request is waiting for a reply from reviewers, feel free to ping them as a reminder. If it is waiting and has no assigned reviewer, feel free to ping @spack/spack-releasers or simply leave a comment saying this should not be marked stale. This will reset the pull request's stale state.

To get more eyes on your pull request, you can post a link in the #pull-requests channel of the Spack Slack.
Thank you for your contributions!

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Dec 3, 2025

This pull request was closed because it had no activity for 30 days after being marked stale. If you feel this is in error, please feel free to reopen this pull request.

@github-actions github-actions bot closed this Dec 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

5 participants