Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
testing symengine build with boost
Technical Details
Boost release tarball: The boostorg/boost GitHub repo uses git submodules for every library (multiprecision, config, core, mpl, etc.). When cget downloads a package via owner/repo@tag, GitHub generates the tarball from the repo tree at that tag but does not include submodule contents — so every library directory would be empty. The boost-X.Y.Z-cmake.tar.gz release archives are specially packaged with all library sources bundled together, which is why we need the release tarball. This archive format has only been available since Boost 1.85.0.
SymEngine commit pin: SymEngine v0.14.0 (the latest release) hardcodes -std=c++11 in CMAKE_CXX_FLAGS in its CMakeLists.txt. Boost >= 1.85 requires C++14 for its math/multiprecision headers (std::decay_t, std::enable_if_t, etc.). Since SymEngine's hardcoded flag overrides any CMAKE_CXX_STANDARD we pass, the build fails with clang. This was fixed on master in PR #2134 (merged as c670a74, Feb 12 2026), which replaced the hardcoded -std=c++11 with the modern CMake approach target_compile_features(cxx_std_11). This sets C++11 as a minimum rather than forcing it, so our -DCMAKE_CXX_STANDARD=17 is properly respected. Once SymEngine cuts a new release (v0.15.0+), we can switch back to a version tag.
Changelog Category
Add a
CHANGELOG.mdentry for any option other thanNot Applicable