Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: 0xDAD/boost
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: boostorg/boost
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Able to merge. These branches can be automatically merged.
Loading
Showing with 2,702 additions and 6,385 deletions.
  1. +38 −0 .circleci/autocancel.sh
  2. +17 −0 .circleci/config.yml
  3. +251 −0 .github/workflows/ci.yml
  4. +132 −0 .github/workflows/commit-bot.yml
  5. +149 −0 .github/workflows/release-cmake.yml
  6. +2 −1 .gitignore
  7. +335 −18 .gitmodules
  8. +108 −42 .travis.yml
  9. +20 −0 CMakeLists.txt
  10. +239 −66 Jamroot
  11. +11 −0 README.md
  12. +11 −1 appveyor.yml
  13. +1 −1 boost-build.jam
  14. +259 −267 boostcpp.jam
  15. +44 −27 bootstrap.bat
  16. +35 −23 bootstrap.sh
  17. +0 −53 circle.yml
  18. +39 −21 doc/Jamfile.v2
  19. +2 −2 doc/html/bbv2.html
  20. +0 −17 doc/html/boost_tr1.html
  21. +2 −2 doc/html/boostbook.html
  22. +0 −1 doc/pdf/Jamfile.v2
  23. +1 −1 doc/pdf/build
  24. +1 −1 doc/src/boost.xml
  25. +74 −1 doc/src/boostbook.css
  26. +1 −1 doc/src/minimal.css
  27. +2 −2 doc/test/HTML4_symbols.qbk
  28. +1 −1 doc/test/array.xml
  29. +1 −1 doc/test/gold/document_to_test_formatting/array.html
  30. +1 −1 doc/test/gold/document_to_test_formatting/images.html
  31. +2 −2 doc/test/gold/document_to_test_formatting/remez.html
  32. +1 −1 doc/test/gold/index.html
  33. +2 −2 doc/test/remez.qbk
  34. +2 −2 doc/test/test.qbk
  35. +1 −1 doc/test/test_HTML4_symbols.qbk
  36. +10 −2 index.html
  37. +1 −1 libs/accumulators
  38. +1 −1 libs/algorithm
  39. +1 −1 libs/align
  40. +1 −1 libs/any
  41. +1 −1 libs/array
  42. +1 −1 libs/asio
  43. +1 −1 libs/assert
  44. +1 −1 libs/assign
  45. +1 −1 libs/atomic
  46. +1 −0 libs/beast
  47. +1 −1 libs/bimap
  48. +1 −1 libs/bind
  49. +1 −0 libs/callable_traits
  50. +1 −0 libs/charconv
  51. +1 −1 libs/chrono
  52. +1 −1 libs/circular_buffer
  53. +1 −0 libs/cobalt
  54. +1 −0 libs/compat
  55. +0 −1 libs/compatibility
  56. +1 −1 libs/compute
  57. +1 −1 libs/concept_check
  58. +1 −1 libs/config
  59. +1 −1 libs/container
  60. +1 −0 libs/container_hash
  61. +1 −1 libs/context
  62. +1 −0 libs/contract
  63. +1 −1 libs/conversion
  64. +1 −1 libs/convert
  65. +1 −1 libs/core
  66. +1 −1 libs/coroutine
  67. +1 −1 libs/coroutine2
  68. +1 −1 libs/crc
  69. +1 −1 libs/date_time
  70. +1 −0 libs/describe
  71. +1 −1 libs/detail
  72. +0 −1 libs/disjoint_sets
  73. +1 −1 libs/dll
  74. +1 −1 libs/dynamic_bitset
  75. +1 −1 libs/endian
  76. +1 −1 libs/exception
  77. +1 −1 libs/fiber
  78. +1 −1 libs/filesystem
  79. +1 −1 libs/flyweight
  80. +1 −1 libs/foreach
  81. +1 −1 libs/format
  82. +1 −1 libs/function
  83. +1 −1 libs/function_types
  84. +1 −1 libs/functional
  85. +1 −1 libs/fusion
  86. +1 −1 libs/geometry
  87. +1 −1 libs/gil
  88. +1 −1 libs/graph
  89. +1 −1 libs/graph_parallel
  90. +1 −1 libs/hana
  91. +1 −0 libs/hash2
  92. +1 −0 libs/headers
  93. +1 −1 libs/heap
  94. +1 −0 libs/histogram
  95. +1 −0 libs/hof
  96. +1 −1 libs/icl
  97. +1 −1 libs/integer
  98. +1 −1 libs/interprocess
  99. +1 −1 libs/intrusive
  100. +1 −1 libs/io
  101. +1 −1 libs/iostreams
  102. +1 −1 libs/iterator
  103. +1 −0 libs/json
  104. +1 −1 libs/lambda
  105. +1 −0 libs/lambda2
  106. +1 −0 libs/leaf
  107. +1 −1 libs/lexical_cast
  108. +3 −0 libs/libraries.htm
  109. +1 −1 libs/local_function
  110. +1 −1 libs/locale
  111. +1 −1 libs/lockfree
  112. +1 −1 libs/log
  113. +1 −1 libs/logic
  114. +71 −31 libs/maintainers.txt
  115. +1 −1 libs/math
  116. +1 −1 libs/metaparse
  117. +1 −1 libs/move
  118. +1 −0 libs/mp11
  119. +1 −1 libs/mpi
  120. +1 −1 libs/mpl
  121. +1 −0 libs/mqtt5
  122. +1 −1 libs/msm
  123. +1 −1 libs/multi_array
  124. +1 −1 libs/multi_index
  125. +1 −1 libs/multiprecision
  126. +1 −0 libs/mysql
  127. +1 −0 libs/nowide
  128. +1 −1 libs/numeric/conversion
  129. +1 −1 libs/numeric/interval
  130. +1 −1 libs/numeric/odeint
  131. +1 −1 libs/numeric/ublas
  132. +1 −1 libs/optional
  133. +1 −0 libs/outcome
  134. +1 −1 libs/parameter
  135. +1 −0 libs/parameter_python
  136. +1 −0 libs/parser
  137. +1 −0 libs/pfr
  138. +1 −1 libs/phoenix
  139. +1 −0 libs/poly_collection
  140. +1 −1 libs/polygon
  141. +1 −1 libs/pool
  142. +1 −1 libs/predef
  143. +1 −1 libs/preprocessor
  144. +1 −0 libs/process
  145. +1 −1 libs/program_options
  146. +1 −1 libs/property_map
  147. +1 −0 libs/property_map_parallel
  148. +1 −1 libs/property_tree
  149. +1 −1 libs/proto
  150. +1 −1 libs/ptr_container
  151. +1 −1 libs/python
  152. +1 −1 libs/qvm
  153. +1 −1 libs/random
  154. +1 −1 libs/range
  155. +1 −1 libs/ratio
  156. +1 −1 libs/rational
  157. +1 −0 libs/redis
  158. +1 −1 libs/regex
  159. +1 −0 libs/safe_numerics
  160. +1 −0 libs/scope
  161. +1 −1 libs/scope_exit
  162. +1 −1 libs/serialization
  163. +0 −1 libs/signals
  164. +1 −1 libs/signals2
  165. +1 −1 libs/smart_ptr
  166. +1 −1 libs/sort
  167. +1 −1 libs/spirit
  168. +1 −0 libs/stacktrace
  169. +1 −1 libs/statechart
  170. +1 −1 libs/static_assert
  171. +1 −0 libs/static_string
  172. +1 −0 libs/stl_interfaces
  173. +1 −1 libs/system
  174. +1 −1 libs/test
  175. +1 −1 libs/thread
  176. +1 −1 libs/throw_exception
  177. +1 −1 libs/timer
  178. +1 −1 libs/tokenizer
  179. +0 −1 libs/tr1
  180. +1 −1 libs/tti
  181. +1 −1 libs/tuple
  182. +1 −1 libs/type_erasure
  183. +1 −1 libs/type_index
  184. +1 −1 libs/type_traits
  185. +1 −1 libs/typeof
  186. +1 −1 libs/units
  187. +1 −1 libs/unordered
  188. +1 −0 libs/url
  189. +1 −1 libs/utility
  190. +1 −1 libs/uuid
  191. +1 −1 libs/variant
  192. +1 −0 libs/variant2
  193. +1 −1 libs/vmd
  194. +1 −1 libs/wave
  195. +1 −1 libs/winapi
  196. +1 −1 libs/xpressive
  197. +1 −0 libs/yap
  198. +1 −0 more
  199. BIN more/BoostSponsorshipAgreement.pdf
  200. +0 −104 more/blanket-permission.txt
  201. +0 −12 more/getting_started.html
  202. +0 −23 more/getting_started/Jamfile.v2
  203. +0 −10 more/getting_started/detail/binary-head.rst
  204. +0 −113 more/getting_started/detail/build-from-source-head.rst
  205. +0 −73 more/getting_started/detail/build-from-source-tail.rst
  206. +0 −28 more/getting_started/detail/build-simple-head.rst
  207. +0 −26 more/getting_started/detail/common-footnotes.rst
  208. +0 −29 more/getting_started/detail/common-unix.rst
  209. +0 −40 more/getting_started/detail/common-windows.rst
  210. +0 −5 more/getting_started/detail/common.rst
  211. +0 −35 more/getting_started/detail/conclusion.rst
  212. +0 −88 more/getting_started/detail/distro.rst
  213. +0 −16 more/getting_started/detail/errors-and-warnings.rst
  214. +0 −68 more/getting_started/detail/header-only.rst
  215. +0 −77 more/getting_started/detail/library-naming.rst
  216. +0 −39 more/getting_started/detail/link-head.rst
  217. +0 −27 more/getting_started/detail/links.rst
  218. +0 −12 more/getting_started/detail/release-variables.rst
  219. +0 −16 more/getting_started/detail/test-head.rst
  220. +0 −65 more/getting_started/index.html
  221. +0 −70 more/getting_started/index.rst
  222. +0 −800 more/getting_started/unix-variants.html
  223. +0 −242 more/getting_started/unix-variants.rst
  224. +0 −897 more/getting_started/windows.html
  225. +0 −340 more/getting_started/windows.rst
  226. +0 −102 more/index.htm
  227. +0 −576 more/writingdoc/design.html
  228. +0 −57 more/writingdoc/index.html
  229. +0 −68 more/writingdoc/introduction.html
  230. +0 −461 more/writingdoc/structure.html
  231. +0 −48 more/writingdoc/template/acknowledgments.html
  232. +0 −48 more/writingdoc/template/bibliography.html
  233. +0 −145 more/writingdoc/template/configuration.html
  234. +0 −78 more/writingdoc/template/definitions.html
  235. +0 −61 more/writingdoc/template/faq.html
  236. +0 −346 more/writingdoc/template/header.html
  237. +0 −126 more/writingdoc/template/index.html
  238. +0 −79 more/writingdoc/template/overview.html
  239. +0 −79 more/writingdoc/template/rationale.html
  240. +54 −11 status/Jamfile.v2
  241. +5 −5 status/boost_check_library.py
  242. +602 −106 status/explicit-failures-markup.xml
  243. +3 −3 status/explicit-failures.xsd
  244. +1 −1 tools/auto_index
  245. +1 −1 tools/bcp
  246. +1 −0 tools/boost_install
  247. +1 −1 tools/boostbook
  248. +1 −1 tools/boostdep
  249. +1 −0 tools/boostlook
  250. +1 −1 tools/build
  251. +1 −0 tools/check_build
  252. +1 −0 tools/cmake
  253. +1 −0 tools/docca
  254. +1 −8 tools/index.html
  255. +1 −1 tools/inspect
  256. +1 −1 tools/quickbook
38 changes: 38 additions & 0 deletions .circleci/autocancel.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/bin/bash

# Auto-cancel preceding workflows
# https://discuss.circleci.com/t/workaround-auto-cancel-redundant-builds-on-the-default-branch/39468

set -x

## Get the name of the workflow and the related pipeline number
curl --header "Circle-Token: $PERS_API_TOKEN_BOOST_5" --request GET "https://circleci.com/api/v2/workflow/${CIRCLE_WORKFLOW_ID}" -o current_workflow.json
WF_NAME=$(jq -r '.name' current_workflow.json)
CURRENT_PIPELINE_NUM=$(jq -r '.pipeline_number' current_workflow.json)
CURRENT_PIPELINE_CREATED=$(jq -r '.created_at' current_workflow.json)
TIME_THRESHOLD=$(date --utc +'%Y-%m-%dT%TZ' -d "${CURRENT_PIPELINE_CREATED} -10 minutes")

## Get the IDs of pipelines created by the current user on the same branch. (Only consider pipelines that have a pipeline number inferior to the current pipeline)
PIPE_IDS=$(curl --header "Circle-Token: $PERS_API_TOKEN_BOOST_5" --request GET "https://circleci.com/api/v2/project/gh/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/pipeline?branch=$CIRCLE_BRANCH"|jq -r --argjson CURRENT_PIPELINE_NUM "$CURRENT_PIPELINE_NUM" --arg TIME_THRESHOLD "${TIME_THRESHOLD}" '.items[] | select(.state == "created") | select(.number < $CURRENT_PIPELINE_NUM) | select(.created_at > $TIME_THRESHOLD) | .id')

## Get the IDs of currently running/on_hold workflows that have the same name as the current workflow, in all previously created pipelines.
if [ ! -z "$PIPE_IDS" ]; then
for PIPE_ID in $PIPE_IDS
do
curl --header "Circle-Token: $PERS_API_TOKEN_BOOST_5" --request GET "https://circleci.com/api/v2/pipeline/${PIPE_ID}/workflow"|jq -r --arg WF_NAME "${WF_NAME}" '.items[]|select(.status == "on_hold" or .status == "running") | select(.name == $WF_NAME) | .id' >> WF_to_cancel.txt
done
fi

## Cancel any currently running/on_hold workflow with the same name
if [ -s WF_to_cancel.txt ]; then
echo "Cancelling the following workflow(s):"
cat WF_to_cancel.txt
while read WF_ID;
do
curl --header "Circle-Token: $PERS_API_TOKEN_BOOST_5" --request POST https://circleci.com/api/v2/workflow/$WF_ID/cancel
done < WF_to_cancel.txt
## Allowing some time to complete the cancellation
sleep 2
else
echo "Nothing to cancel"
fi
17 changes: 17 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
version: 2.1
jobs:
build:
docker:
- image: cppalliance/boost_superproject_build:24.04-v3
parallelism: 2
steps:
- checkout
- run: ./.circleci/autocancel.sh || true
- run: wget "https://raw.githubusercontent.com/boostorg/release-tools/master/ci_boost_common.py" -P ${HOME}
- run: wget "https://raw.githubusercontent.com/boostorg/release-tools/master/ci_boost_release.py" -P ${HOME}
- run: python3 ${HOME}/ci_boost_release.py checkout_post
# - run: python3 ${HOME}/ci_boost_release.py dependencies_override
- run: '[ "$CIRCLE_NODE_INDEX" != "0" ] || EOL=LF python3 ${HOME}/ci_boost_release.py test_pre'
- run: '[ "$CIRCLE_NODE_INDEX" != "1" ] || EOL=CRLF python3 ${HOME}/ci_boost_release.py test_pre'
- run: '[ "$CIRCLE_NODE_INDEX" != "0" ] || EOL=LF python3 ${HOME}/ci_boost_release.py test_override'
- run: '[ "$CIRCLE_NODE_INDEX" != "1" ] || EOL=CRLF python3 ${HOME}/ci_boost_release.py test_override'
251 changes: 251 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,251 @@
name: CI

on:
pull_request:
push:
branches:
- master
- develop
- feature/**
tags:
- '**'

jobs:
b2-posix:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: ubuntu-22.04-arm
- os: ubuntu-24.04
- os: ubuntu-24.04-arm
- os: macos-13
- os: macos-14
- os: macos-15

runs-on: ${{matrix.os}}

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Setup Boost
run: |
./bootstrap.sh
./b2 -d0 headers
- name: Build Boost
run: |
./b2 -j3 stage
- name: Install Boost
run: |
./b2 -j3 --prefix=$HOME/.local install
- name: Test Boost
run: |
cd status
../b2 -j3 quick
b2-windows:
strategy:
fail-fast: false
matrix:
include:
- os: windows-2019
- os: windows-2022
- os: windows-2025

runs-on: ${{matrix.os}}

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Setup Boost
shell: cmd
run: |
cmd /c bootstrap
b2 -d0 headers
- name: Build Boost
run: |
./b2 -j3 stage
- name: Install Boost
run: |
./b2 -j3 install
- name: Test Boost
run: |
cd status
../b2 -j3 quick
cmake-install-posix:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: ubuntu-22.04-arm
- os: ubuntu-24.04
- os: ubuntu-24.04-arm
- os: macos-13
- os: macos-14
- os: macos-15

runs-on: ${{matrix.os}}
timeout-minutes: 20

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Configure Boost
run: |
mkdir __build__ && cd __build__
cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=~/.local ..
- name: Build Boost
run: |
cd __build__
cmake --build . -j 3
- name: Install Boost
run: |
cd __build__
cmake --build . -j 3 --target install
cmake-install-windows:
strategy:
fail-fast: false
matrix:
include:
- os: windows-2019
- os: windows-2022
- os: windows-2025

runs-on: ${{matrix.os}}

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Configure Boost
run: |
mkdir __build__ && cd __build__
cmake -DBUILD_SHARED_LIBS=ON ..
- name: Build Boost
run: |
cd __build__
cmake --build . -j 3
- name: Install Boost
run: |
cd __build__
cmake --build . -j 3 --target install
cmake-test-posix:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest

runs-on: ${{matrix.os}}

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Configure Boost
run: |
mkdir __build__ && cd __build__
cmake -DBUILD_TESTING=ON -DBOOST_EXCLUDE_LIBRARIES="process;geometry" ..
- name: Build tests
run: |
cd __build__
cmake --build . -j 3 --target tests
- name: Run tests
run: |
cd __build__
ctest --output-on-failure --no-tests=error -j 3
cmake-test-posix-quick:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: ubuntu-22.04-arm
- os: ubuntu-24.04
- os: ubuntu-24.04-arm
- os: macos-13
- os: macos-14
- os: macos-15

runs-on: ${{matrix.os}}
timeout-minutes: 90

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Configure Boost
run: |
mkdir __build__ && cd __build__
cmake -DBUILD_TESTING=ON ..
- name: Build tests
run: |
cd __build__
cmake --build . -j 3 --target tests-quick
- name: Run tests
run: |
cd __build__
ctest --output-on-failure --no-tests=error -j 3 -R quick
cmake-test-windows-quick:
strategy:
fail-fast: false
matrix:
include:
- os: windows-2019
- os: windows-2022
- os: windows-2025

runs-on: ${{matrix.os}}

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Configure Boost
run: |
mkdir __build__ && cd __build__
cmake -DBUILD_TESTING=ON ..
- name: Build tests
run: |
cd __build__
cmake --build . -j 3 --target tests-quick
- name: Run tests
run: |
cd __build__
ctest --output-on-failure --no-tests=error -j 3 -R quick -C Debug
Loading