passenger 6.1.0 → 6.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +32 -2
  3. data/Rakefile +6 -13
  4. data/bin/passenger-install-apache2-module +15 -19
  5. data/bin/passenger-install-nginx-module +42 -44
  6. data/bin/passenger-status +9 -10
  7. data/build/common_library.rb +4 -4
  8. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
  9. data/build/test_basics.rb +4 -3
  10. data/dev/copy_boost_headers +54 -40
  11. data/dev/ruby_server.rb +1 -1
  12. data/src/agent/Core/Config.h +1 -1
  13. data/src/agent/Core/Controller/Config.h +1 -1
  14. data/src/agent/Watchdog/Config.h +1 -1
  15. data/src/cxx_supportlib/Constants.h +1 -1
  16. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
  17. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
  18. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
  19. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
  20. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
  21. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
  22. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
  23. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
  24. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
  25. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
  26. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
  27. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
  28. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
  29. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
  30. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
  31. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
  32. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
  33. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
  34. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
  35. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
  36. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
  37. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
  38. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
  39. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
  40. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
  41. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
  42. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
  43. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
  44. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
  45. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
  46. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
  47. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
  48. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
  49. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
  50. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
  51. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
  52. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
  53. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
  54. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
  55. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
  56. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
  57. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
  58. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
  59. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
  60. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
  61. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
  62. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
  63. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
  64. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
  65. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
  66. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
  67. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
  68. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
  69. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
  70. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
  71. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
  72. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
  73. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
  74. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
  75. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
  76. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
  77. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
  78. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
  79. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
  80. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
  81. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
  82. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
  83. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
  84. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
  85. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
  86. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
  88. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
  89. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
  90. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
  91. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
  92. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
  93. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
  94. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
  95. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
  96. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
  97. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
  98. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
  99. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
  100. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
  101. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
  102. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
  103. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
  104. data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
  105. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
  106. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
  107. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
  108. data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  114. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
  115. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
  116. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
  117. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
  118. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
  120. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
  121. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
  122. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
  123. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
  124. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
  125. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
  127. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
  129. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
  130. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
  131. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
  134. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
  135. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
  136. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
  137. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
  139. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
  140. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
  142. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
  144. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
  145. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
  146. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
  147. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
  148. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
  149. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
  150. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
  151. data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
  154. data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
  155. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
  156. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
  157. data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
  158. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
  160. data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
  161. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
  164. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
  165. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
  166. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
  168. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
  169. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
  170. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
  171. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
  172. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
  174. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
  179. data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
  180. data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
  181. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
  182. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
  183. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
  184. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
  185. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
  186. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
  187. data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
  189. data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
  190. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
  191. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
  194. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
  195. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
  196. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
  198. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
  201. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
  203. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
  204. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  205. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
  206. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
  207. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
  208. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
  211. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
  212. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
  216. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
  219. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
  220. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
  221. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
  223. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
  224. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
  225. data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
  226. data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
  227. data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
  228. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
  229. data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
  230. data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
  231. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
  232. data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
  233. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
  234. data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
  235. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
  236. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
  237. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
  238. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
  239. data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
  241. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
  242. data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
  243. data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
  244. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
  246. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
  247. data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
  249. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
  250. data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
  251. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
  252. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
  253. data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
  254. data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
  255. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
  256. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
  257. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
  258. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
  259. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
  260. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
  261. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
  264. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
  265. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
  266. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
  267. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
  268. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
  269. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
  270. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
  271. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
  272. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
  273. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
  274. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
  275. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
  276. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
  277. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
  278. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
  279. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
  280. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
  281. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
  282. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
  284. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
  285. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
  286. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
  287. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
  288. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
  297. data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
  298. data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
  299. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
  300. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
  301. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
  302. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
  303. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
  304. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
  305. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
  307. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
  308. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
  309. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
  310. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
  313. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
  314. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
  315. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
  316. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
  317. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
  319. data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
  320. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
  321. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  326. data/src/nginx_module/ContentHandler.c +2 -0
  327. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
  328. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
  329. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
  330. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
  331. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
  332. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
  333. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
  334. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
  335. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +6 -13
  336. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +29 -30
  337. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -3
  338. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
  339. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
  340. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
  341. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
  342. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
  343. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  344. metadata +26 -99
  345. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
  346. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
  347. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
  348. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
  349. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
  350. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
  351. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
  352. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
  353. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
  354. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
  355. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
  356. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
  357. data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
  358. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
  359. data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
  360. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
  361. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
  362. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
  363. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
  364. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
  365. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
  366. data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
  367. data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
  368. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
  369. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
  370. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
  371. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
  372. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
  373. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
  374. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
  375. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
  376. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
  377. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
  378. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
  379. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
  380. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
  381. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
  382. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
  383. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
  384. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
  385. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
  386. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
  387. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
  388. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
  389. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
  390. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
  391. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
  392. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
  393. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
  394. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
  395. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
  396. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
  397. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
  398. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
  399. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
  400. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
  401. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
  402. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
  403. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
  404. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
  405. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
  406. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
  407. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
  408. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
  409. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
  410. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
  411. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
  412. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
  413. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
  414. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
  415. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
  416. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
  417. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
  418. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
  419. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
  420. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
  421. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
  422. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
  423. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
  424. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
  425. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
  426. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
  427. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
  428. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
  429. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
  430. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
  431. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
  432. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
  433. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
  434. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
  435. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
  436. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
  437. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
  438. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
  439. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
  440. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +0 -94
@@ -27,6 +27,7 @@
27
27
  #include <boost/container/detail/mpl.hpp>
28
28
  #include <boost/container/detail/tree.hpp>
29
29
  #include <boost/container/new_allocator.hpp> //new_allocator
30
+ #include <boost/container/detail/algorithm.hpp>
30
31
  // intrusive/detail
31
32
  #include <boost/intrusive/detail/minimal_pair_header.hpp> //pair
32
33
  #include <boost/intrusive/detail/minimal_less_equal_header.hpp>//less, equal
@@ -957,6 +958,15 @@ class set
957
958
  #endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
958
959
  };
959
960
 
961
+ //! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
962
+ //!
963
+ //! <b>Complexity</b>: Linear.
964
+ template <class K, class C, class A, class O, class Pred>
965
+ inline typename set<K, C, A, O>::size_type erase_if(set<K, C, A, O>& c, Pred pred)
966
+ {
967
+ return container_erase_if(c, pred);
968
+ }
969
+
960
970
  #ifndef BOOST_CONTAINER_NO_CXX17_CTAD
961
971
 
962
972
  template <typename InputIterator>
@@ -1612,6 +1622,15 @@ class multiset
1612
1622
  #endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1613
1623
  };
1614
1624
 
1625
+ //! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
1626
+ //!
1627
+ //! <b>Complexity</b>: Linear.
1628
+ template <class K, class C, class A, class O, class Pred>
1629
+ inline typename multiset<K, C, A, O>::size_type erase_if(multiset<K, C, A, O>& c, Pred pred)
1630
+ {
1631
+ return container_erase_if(c, pred);
1632
+ }
1633
+
1615
1634
  #ifndef BOOST_CONTAINER_NO_CXX17_CTAD
1616
1635
 
1617
1636
  template <typename InputIterator>
@@ -94,7 +94,7 @@ struct intrusive_slist_type
94
94
  , dtl::bi::size_type
95
95
  <typename allocator_traits_type::size_type>
96
96
  >::type container_type;
97
- typedef container_type type ;
97
+ typedef container_type type;
98
98
  };
99
99
 
100
100
  } //namespace dtl {
@@ -1629,8 +1629,8 @@ class slist
1629
1629
  Icont &icont_;
1630
1630
  typedef typename Icont::iterator iiterator;
1631
1631
  typedef typename Icont::const_iterator iconst_iterator;
1632
- const iconst_iterator prev_;
1633
- iiterator ret_;
1632
+ iconst_iterator prev_;
1633
+ iiterator ret_;
1634
1634
 
1635
1635
  public:
1636
1636
  insertion_functor(Icont &icont, typename Icont::const_iterator prev)
@@ -1639,11 +1639,16 @@ class slist
1639
1639
 
1640
1640
  void operator()(Node &n)
1641
1641
  {
1642
- ret_ = this->icont_.insert_after(prev_, n);
1642
+ prev_ = this->icont_.insert_after(prev_, n);
1643
+ if(!ret_)
1644
+ ret_ = prev_.unconst();
1643
1645
  }
1644
1646
 
1645
1647
  iiterator inserted_first() const
1646
- { return ret_; }
1648
+ {
1649
+ iiterator f(ret_);
1650
+ return ++f;
1651
+ }
1647
1652
  };
1648
1653
 
1649
1654
  //Functors for member algorithm defaults
@@ -1653,6 +1658,28 @@ class slist
1653
1658
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
1654
1659
  };
1655
1660
 
1661
+ //! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
1662
+ //!
1663
+ //! <b>Complexity</b>: Linear.
1664
+ template <class T, class A, class U>
1665
+ inline typename slist<T, A>::size_type erase(slist<T, A>& c, const U& v)
1666
+ {
1667
+ typename slist<T, A>::size_type old_size = c.size();
1668
+ c.remove_if(equal_to_value<U>(v));
1669
+ return old_size - c.size();
1670
+ }
1671
+
1672
+ //! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
1673
+ //!
1674
+ //! <b>Complexity</b>: Linear.
1675
+ template <class T, class A, class Pred>
1676
+ inline typename slist<T, A>::size_type erase_if(slist<T, A>& c, Pred pred)
1677
+ {
1678
+ typename slist<T, A>::size_type old_size = c.size();
1679
+ c.remove_if(pred);
1680
+ return old_size - c.size();
1681
+ }
1682
+
1656
1683
  #ifndef BOOST_CONTAINER_NO_CXX17_CTAD
1657
1684
 
1658
1685
  template <typename InpIt>
@@ -127,10 +127,11 @@ class small_vector_allocator
127
127
  {
128
128
  typedef unsigned int allocation_type;
129
129
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
130
- private:
131
130
 
131
+ public:
132
132
  typedef typename allocator_traits<VoidAlloc>::template portable_rebind_alloc<T>::type allocator_type;
133
133
 
134
+ private:
134
135
  BOOST_COPYABLE_AND_MOVABLE(small_vector_allocator)
135
136
 
136
137
  inline const allocator_type &as_base() const BOOST_NOEXCEPT
@@ -353,7 +354,8 @@ class small_vector_base
353
354
  typedef typename real_allocator<T, SecAlloc>::type underlying_allocator_t;
354
355
  typedef typename allocator_traits<underlying_allocator_t>::
355
356
  template portable_rebind_alloc<void>::type void_underlying_allocator_t;
356
- typedef small_vector_allocator<T, void_underlying_allocator_t, Options>allocator_type;
357
+ typedef typename small_vector_allocator
358
+ <T, void_underlying_allocator_t, Options>::allocator_type allocator_type;
357
359
  typedef typename dtl::get_small_vector_opt<Options>::type options_t;
358
360
  typedef typename dtl::vector_for_small_vector
359
361
  <T, SecAlloc, Options>::type base_type;
@@ -548,6 +550,7 @@ class small_vector
548
550
  BOOST_COPYABLE_AND_MOVABLE(small_vector)
549
551
 
550
552
  public:
553
+ typedef dtl::true_type is_partially_propagable;
551
554
  typedef small_vector_base<T, Allocator, Options> base_type;
552
555
  typedef typename base_type::allocator_type allocator_type;
553
556
  typedef typename base_type::size_type size_type;
@@ -672,6 +675,28 @@ class small_vector
672
675
  { this->base_type::prot_shrink_to_fit_small(this->internal_capacity()); }
673
676
  };
674
677
 
678
+ //! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
679
+ //!
680
+ //! <b>Complexity</b>: Linear.
681
+ template <class T, std::size_t N, class A, class O, class U>
682
+ inline typename small_vector<T, N, A, O>::size_type erase(small_vector<T, N, A, O>& c, const U& v)
683
+ {
684
+ typename small_vector<T, N, A, O>::size_type old_size = c.size();
685
+ c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
686
+ return old_size - c.size();
687
+ }
688
+
689
+ //! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
690
+ //!
691
+ //! <b>Complexity</b>: Linear.
692
+ template <class T, std::size_t N, class A, class O, class Pred>
693
+ inline typename small_vector<T, N, A, O>::size_type erase_if(small_vector<T, N, A, O>& c, Pred pred)
694
+ {
695
+ typename small_vector<T, N, A, O>::size_type old_size = c.size();
696
+ c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
697
+ return old_size - c.size();
698
+ }
699
+
675
700
  }}
676
701
 
677
702
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
@@ -2251,6 +2251,28 @@ stable_vector(InputIterator, InputIterator, Allocator const&) ->
2251
2251
 
2252
2252
  #undef BOOST_CONTAINER_STABLE_VECTOR_CHECK_INVARIANT
2253
2253
 
2254
+ //! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
2255
+ //!
2256
+ //! <b>Complexity</b>: Linear.
2257
+ template <class T, class A, class U>
2258
+ inline typename stable_vector<T, A>::size_type erase(stable_vector<T, A>& c, const U& v)
2259
+ {
2260
+ typename stable_vector<T, A>::size_type old_size = c.size();
2261
+ c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
2262
+ return old_size - c.size();
2263
+ }
2264
+
2265
+ //! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
2266
+ //!
2267
+ //! <b>Complexity</b>: Linear.
2268
+ template <class T, class A, class Pred>
2269
+ inline typename stable_vector<T, A>::size_type erase_if(stable_vector<T, A>& c, Pred pred)
2270
+ {
2271
+ typename stable_vector<T, A>::size_type old_size = c.size();
2272
+ c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
2273
+ return old_size - c.size();
2274
+ }
2275
+
2254
2276
  } //namespace container {
2255
2277
 
2256
2278
  //!has_trivial_destructor_after_move<> == true_type
@@ -63,8 +63,19 @@ class static_storage_allocator
63
63
  inline static_storage_allocator & operator=(const static_storage_allocator &) BOOST_NOEXCEPT_OR_NOTHROW
64
64
  { return *this; }
65
65
 
66
- inline T* internal_storage() const BOOST_NOEXCEPT_OR_NOTHROW
67
- { return move_detail::launder_cast<T*>(&storage); }
66
+ //GCC in C++03 regressions fails, due to a bug in strict-aliasing optimizations
67
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 120000) && (BOOST_CXX_VERSION < 201103L)
68
+ #pragma GCC push_options
69
+ #pragma GCC optimize("no-strict-aliasing")
70
+ #endif
71
+
72
+ BOOST_CONTAINER_FORCEINLINE T* internal_storage() const BOOST_NOEXCEPT_OR_NOTHROW
73
+ //Avoiding launder due to performance regressions, see https://github.com/boostorg/container/issues/309
74
+ { return const_cast<T*>(static_cast<const T*>(static_cast<const void*>(storage.data))); }
75
+
76
+ #if defined(BOOST_GCC) && (BOOST_GCC >= 120000) && (BOOST_CXX_VERSION < 201103L)
77
+ #pragma GCC pop_options
78
+ #endif
68
79
 
69
80
  BOOST_STATIC_CONSTEXPR std::size_t internal_capacity = N;
70
81
 
@@ -819,7 +830,8 @@ public:
819
830
  //! Nothing.
820
831
  //!
821
832
  //! @par Complexity
822
- //! Constant O(1).
833
+ //! @li If \c is_trivially_destructible<T>::value is \c true Constant O(1).
834
+ //! @li If \c is_trivially_destructible<T>::value is \c false Linear O(N).
823
835
  void clear() BOOST_NOEXCEPT_OR_NOTHROW;
824
836
 
825
837
  //! @pre <tt>i < size()</tt>
@@ -1226,8 +1238,6 @@ public:
1226
1238
 
1227
1239
  //! @brief Checks if contents of two static_vectors are equal.
1228
1240
  //!
1229
- //! @ingroup static_vector_non_member
1230
- //!
1231
1241
  //! @param x The first static_vector.
1232
1242
  //! @param y The second static_vector.
1233
1243
  //!
@@ -1240,8 +1250,6 @@ bool operator== (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> con
1240
1250
 
1241
1251
  //! @brief Checks if contents of two static_vectors are not equal.
1242
1252
  //!
1243
- //! @ingroup static_vector_non_member
1244
- //!
1245
1253
  //! @param x The first static_vector.
1246
1254
  //! @param y The second static_vector.
1247
1255
  //!
@@ -1254,8 +1262,6 @@ bool operator!= (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> con
1254
1262
 
1255
1263
  //! @brief Lexicographically compares static_vectors.
1256
1264
  //!
1257
- //! @ingroup static_vector_non_member
1258
- //!
1259
1265
  //! @param x The first static_vector.
1260
1266
  //! @param y The second static_vector.
1261
1267
  //!
@@ -1268,8 +1274,6 @@ bool operator< (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> cons
1268
1274
 
1269
1275
  //! @brief Lexicographically compares static_vectors.
1270
1276
  //!
1271
- //! @ingroup static_vector_non_member
1272
- //!
1273
1277
  //! @param x The first static_vector.
1274
1278
  //! @param y The second static_vector.
1275
1279
  //!
@@ -1282,8 +1286,6 @@ bool operator> (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> cons
1282
1286
 
1283
1287
  //! @brief Lexicographically compares static_vectors.
1284
1288
  //!
1285
- //! @ingroup static_vector_non_member
1286
- //!
1287
1289
  //! @param x The first static_vector.
1288
1290
  //! @param y The second static_vector.
1289
1291
  //!
@@ -1296,8 +1298,6 @@ bool operator<= (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> con
1296
1298
 
1297
1299
  //! @brief Lexicographically compares static_vectors.
1298
1300
  //!
1299
- //! @ingroup static_vector_non_member
1300
- //!
1301
1301
  //! @param x The first static_vector.
1302
1302
  //! @param y The second static_vector.
1303
1303
  //!
@@ -1312,8 +1312,6 @@ bool operator>= (static_vector<V, C1, O1> const& x, static_vector<V, C2, O2> con
1312
1312
  //!
1313
1313
  //! This function calls static_vector::swap().
1314
1314
  //!
1315
- //! @ingroup static_vector_non_member
1316
- //!
1317
1315
  //! @param x The first static_vector.
1318
1316
  //! @param y The second static_vector.
1319
1317
  //!
@@ -1335,6 +1333,28 @@ inline void swap(static_vector<V, C1, O1> & x, static_vector<V, C2, O2> & y
1335
1333
 
1336
1334
  #endif // BOOST_CONTAINER_DOXYGEN_INVOKED
1337
1335
 
1336
+ //! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
1337
+ //!
1338
+ //! <b>Complexity</b>: Linear.
1339
+ template <class T, std::size_t N, class O, class U>
1340
+ inline typename static_vector<T, N, O>::size_type erase(static_vector<T, N, O>& c, const U& v)
1341
+ {
1342
+ typename static_vector<T, N, O>::size_type old_size = c.size();
1343
+ c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
1344
+ return old_size - c.size();
1345
+ }
1346
+
1347
+ //! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
1348
+ //!
1349
+ //! <b>Complexity</b>: Linear.
1350
+ template <class T, std::size_t N, class O, class Pred>
1351
+ inline typename static_vector<T, N, O>::size_type erase_if(static_vector<T, N, O>& c, Pred pred)
1352
+ {
1353
+ typename static_vector<T, N, O>::size_type old_size = c.size();
1354
+ c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
1355
+ return old_size - c.size();
1356
+ }
1357
+
1338
1358
  }} // namespace boost::container
1339
1359
 
1340
1360
  #include <boost/container/detail/config_end.hpp>
@@ -274,7 +274,7 @@ class basic_string_base
274
274
  //active representation is short or long
275
275
  short_header hdr;
276
276
  BOOST_CONTAINER_STATIC_ASSERT((sizeof(short_header) == 1));
277
- *(unsigned char*)&hdr = *(unsigned char*)&this->members_.m_repr;
277
+ *(unsigned char*)&hdr = *static_cast<const unsigned char*>(static_cast<const void *>(&this->members_.m_repr));
278
278
  return hdr.is_short != 0;
279
279
  }
280
280
 
@@ -3550,6 +3550,28 @@ getline(std::basic_istream<CharT, Traits>& is, basic_string<CharT,Traits,Allocat
3550
3550
  return getline(is, s, '\n');
3551
3551
  }
3552
3552
 
3553
+ //! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
3554
+ //!
3555
+ //! <b>Complexity</b>: Linear.
3556
+ template <class T, class Tr, class A, class U>
3557
+ inline typename basic_string<T, Tr, A>::size_type erase(basic_string<T, Tr, A>& c, const U& v)
3558
+ {
3559
+ typename basic_string<T, Tr, A>::size_type old_size = c.size();
3560
+ c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
3561
+ return old_size - c.size();
3562
+ }
3563
+
3564
+ //! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
3565
+ //!
3566
+ //! <b>Complexity</b>: Linear.
3567
+ template <class T, class Tr, class A, class Pred>
3568
+ inline typename basic_string<T, Tr, A>::size_type erase_if(basic_string<T, Tr, A>& c, Pred pred)
3569
+ {
3570
+ typename basic_string<T, Tr, A>::size_type old_size = c.size();
3571
+ c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
3572
+ return old_size - c.size();
3573
+ }
3574
+
3553
3575
  }}
3554
3576
 
3555
3577
  //GCC 12 has a regression for array-bounds warnings
@@ -454,16 +454,16 @@ struct vector_alloc_holder
454
454
  }
455
455
  }
456
456
 
457
- inline void set_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
457
+ BOOST_CONTAINER_FORCEINLINE void set_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
458
458
  { this->m_size = static_cast<stored_size_type>(s); }
459
459
 
460
- inline void dec_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
460
+ BOOST_CONTAINER_FORCEINLINE void dec_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
461
461
  { this->m_size = static_cast<stored_size_type>(this->m_size - s); }
462
462
 
463
- inline void inc_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
463
+ BOOST_CONTAINER_FORCEINLINE void inc_stored_size(size_type s) BOOST_NOEXCEPT_OR_NOTHROW
464
464
  { this->m_size = static_cast<stored_size_type>(this->m_size + s); }
465
465
 
466
- inline void set_stored_capacity(size_type c) BOOST_NOEXCEPT_OR_NOTHROW
466
+ BOOST_CONTAINER_FORCEINLINE void set_stored_capacity(size_type c) BOOST_NOEXCEPT_OR_NOTHROW
467
467
  { this->m_capacity = static_cast<stored_size_type>(c); }
468
468
 
469
469
  inline pointer allocation_command(boost::container::allocation_type command,
@@ -546,13 +546,13 @@ struct vector_alloc_holder
546
546
  inline const allocator_type &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
547
547
  { return *this; }
548
548
 
549
- inline pointer start() const BOOST_NOEXCEPT_OR_NOTHROW
549
+ BOOST_CONTAINER_FORCEINLINE pointer start() const BOOST_NOEXCEPT_OR_NOTHROW
550
550
  { return m_start; }
551
- inline size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
551
+ BOOST_CONTAINER_FORCEINLINE size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
552
552
  { return m_capacity; }
553
- inline void start(const pointer &p) BOOST_NOEXCEPT_OR_NOTHROW
553
+ BOOST_CONTAINER_FORCEINLINE void start(const pointer &p) BOOST_NOEXCEPT_OR_NOTHROW
554
554
  { m_start = p; }
555
- inline void capacity(const size_type &c) BOOST_NOEXCEPT_OR_NOTHROW
555
+ BOOST_CONTAINER_FORCEINLINE void capacity(const size_type &c) BOOST_NOEXCEPT_OR_NOTHROW
556
556
  { BOOST_ASSERT( c <= stored_size_type(-1)); this->set_stored_capacity(c); }
557
557
 
558
558
  static inline void on_capacity_overflow()
@@ -729,13 +729,13 @@ struct vector_alloc_holder<Allocator, StoredSizeType, version_0>
729
729
  inline const allocator_type &alloc() const BOOST_NOEXCEPT_OR_NOTHROW
730
730
  { return *this; }
731
731
 
732
- inline bool try_expand_fwd(size_type at_least)
732
+ BOOST_CONTAINER_FORCEINLINE bool try_expand_fwd(size_type at_least)
733
733
  { return !at_least; }
734
734
 
735
- inline pointer start() const BOOST_NOEXCEPT_OR_NOTHROW
735
+ BOOST_CONTAINER_FORCEINLINE pointer start() const BOOST_NOEXCEPT_OR_NOTHROW
736
736
  { return allocator_type::internal_storage(); }
737
737
 
738
- inline size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
738
+ BOOST_CONTAINER_FORCEINLINE size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
739
739
  { return allocator_type::internal_capacity; }
740
740
 
741
741
  stored_size_type m_size;
@@ -2100,8 +2100,8 @@ private:
2100
2100
  >::type * = 0
2101
2101
  )
2102
2102
  {
2103
- typedef typename iter_size<FwdIt>::type it_size_type;
2104
2103
  BOOST_ASSERT(this->priv_in_range_or_end(pos));
2104
+ typedef typename iter_size<FwdIt>::type it_size_type;
2105
2105
  const it_size_type sz = boost::container::iterator_udistance(first, last);
2106
2106
  if (BOOST_UNLIKELY(sz > size_type(-1))){
2107
2107
  boost::container::throw_length_error("vector::insert, FwdIt's max length reached");
@@ -2573,7 +2573,7 @@ private:
2573
2573
  new_values_destroyer.release();
2574
2574
  }
2575
2575
 
2576
- inline bool room_enough() const
2576
+ BOOST_CONTAINER_FORCEINLINE bool room_enough() const
2577
2577
  { return this->m_holder.m_size != this->m_holder.capacity(); }
2578
2578
 
2579
2579
  inline pointer back_ptr() const
@@ -2897,13 +2897,13 @@ private:
2897
2897
  }
2898
2898
 
2899
2899
  template<class U>
2900
- inline iterator priv_insert(const const_iterator &p, BOOST_FWD_REF(U) u)
2900
+ BOOST_CONTAINER_FORCEINLINE iterator priv_insert(const const_iterator &p, BOOST_FWD_REF(U) u)
2901
2901
  {
2902
2902
  return this->emplace(p, ::boost::forward<U>(u));
2903
2903
  }
2904
2904
 
2905
2905
  template <class U>
2906
- inline void priv_push_back(BOOST_FWD_REF(U) u)
2906
+ BOOST_CONTAINER_FORCEINLINE void priv_push_back(BOOST_FWD_REF(U) u)
2907
2907
  {
2908
2908
  this->emplace_back(::boost::forward<U>(u));
2909
2909
  }
@@ -3014,6 +3014,7 @@ private:
3014
3014
  {
3015
3015
  return alloc_holder_t::on_capacity_overflow(), iterator();
3016
3016
  }
3017
+
3017
3018
  #ifdef _MSC_VER
3018
3019
  #pragma warning (pop)
3019
3020
  #endif
@@ -3022,15 +3023,14 @@ private:
3022
3023
  BOOST_CONTAINER_NOINLINE iterator priv_insert_forward_range_no_capacity
3023
3024
  (T *const raw_pos, const size_type n, const InsertionProxy insert_range_proxy, version_1)
3024
3025
  {
3025
- //Check if we have enough memory or try to expand current memory
3026
- const size_type n_pos = static_cast<size_type>(raw_pos - this->priv_raw_begin());
3027
-
3028
3026
  const size_type new_cap = this->m_holder.template next_capacity<growth_factor_type>(n);
3029
3027
  //Pass the hint so that allocators can take advantage of this.
3030
3028
  T * const new_buf = boost::movelib::to_raw_pointer(this->m_holder.allocate(new_cap));
3031
3029
  #ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
3032
3030
  ++this->num_alloc;
3033
3031
  #endif
3032
+ //Check if we have enough memory or try to expand current memory
3033
+ const size_type n_pos = static_cast<size_type>(raw_pos - this->priv_raw_begin());
3034
3034
  this->priv_insert_forward_range_new_allocation(new_buf, new_cap, raw_pos, n, insert_range_proxy);
3035
3035
  return iterator(this->m_holder.start() + difference_type(n_pos));
3036
3036
  }
@@ -3221,10 +3221,10 @@ private:
3221
3221
  }
3222
3222
 
3223
3223
  private:
3224
- inline T *priv_raw_begin() const
3224
+ BOOST_CONTAINER_FORCEINLINE T *priv_raw_begin() const
3225
3225
  { return boost::movelib::to_raw_pointer(m_holder.start()); }
3226
3226
 
3227
- inline T* priv_raw_end() const
3227
+ BOOST_CONTAINER_FORCEINLINE T* priv_raw_end() const
3228
3228
  { return this->priv_raw_begin() + this->m_holder.m_size; }
3229
3229
 
3230
3230
  template <class InsertionProxy> //inline single-element version as it is significantly smaller
@@ -3351,6 +3351,27 @@ vector(InputIterator, InputIterator, Allocator const&) ->
3351
3351
 
3352
3352
  #endif
3353
3353
 
3354
+ //! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
3355
+ //!
3356
+ //! <b>Complexity</b>: Linear.
3357
+ template <class T, class A, class O, class U>
3358
+ inline typename vector<T, A, O>::size_type erase(vector<T, A, O>& c, const U& v)
3359
+ {
3360
+ typename vector<T, A, O>::size_type old_size = c.size();
3361
+ c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
3362
+ return old_size - c.size();
3363
+ }
3364
+
3365
+ //! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
3366
+ //!
3367
+ //! <b>Complexity</b>: Linear.
3368
+ template <class T, class A, class O, class Pred>
3369
+ inline typename vector<T, A, O>::size_type erase_if(vector<T, A, O>& c, Pred pred)
3370
+ {
3371
+ typename vector<T, A, O>::size_type old_size = c.size();
3372
+ c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
3373
+ return old_size - c.size();
3374
+ }
3354
3375
 
3355
3376
  }} //namespace boost::container
3356
3377
 
@@ -1,5 +1,5 @@
1
1
  // Copyright 2005-2014 Daniel James.
2
- // Copyright 2021, 2022 Peter Dimov.
2
+ // Copyright 2021, 2022, 2025 Peter Dimov.
3
3
  // Distributed under the Boost Software License, Version 1.0.
4
4
  // https://www.boost.org/LICENSE_1_0.txt
5
5
 
@@ -11,6 +11,7 @@
11
11
  #define BOOST_FUNCTIONAL_HASH_HASH_HPP
12
12
 
13
13
  #include <boost/container_hash/hash_fwd.hpp>
14
+ #include <boost/container_hash/hash_is_avalanching.hpp>
14
15
  #include <boost/container_hash/is_range.hpp>
15
16
  #include <boost/container_hash/is_contiguous_range.hpp>
16
17
  #include <boost/container_hash/is_unordered_range.hpp>
@@ -557,19 +558,15 @@ namespace boost
557
558
 
558
559
  #endif
559
560
 
560
- // boost::unordered::hash_is_avalanching
561
+ // hash_is_avalanching
561
562
 
562
- namespace unordered
563
- {
564
- template<class T> struct hash_is_avalanching;
565
- template<class Ch> struct hash_is_avalanching< boost::hash< std::basic_string<Ch> > >: std::is_integral<Ch> {};
563
+ template<class Ch> struct hash_is_avalanching< boost::hash< std::basic_string<Ch> > >: std::is_integral<Ch> {};
566
564
 
567
565
  #if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW)
568
566
 
569
- template<class Ch> struct hash_is_avalanching< boost::hash< std::basic_string_view<Ch> > >: std::is_integral<Ch> {};
567
+ template<class Ch> struct hash_is_avalanching< boost::hash< std::basic_string_view<Ch> > >: std::is_integral<Ch> {};
570
568
 
571
569
  #endif
572
- } // namespace unordered
573
570
 
574
571
  } // namespace boost
575
572
 
@@ -1,5 +1,5 @@
1
1
  // Copyright 2005-2009 Daniel James.
2
- // Copyright 2021, 2022 Peter Dimov.
2
+ // Copyright 2021, 2022, 2025 Peter Dimov.
3
3
  // Distributed under the Boost Software License, Version 1.0.
4
4
  // https://www.boost.org/LICENSE_1_0.txt
5
5
 
@@ -32,6 +32,8 @@ template<class It> std::size_t hash_range( It, It );
32
32
  template<class It> void hash_unordered_range( std::size_t&, It, It );
33
33
  template<class It> std::size_t hash_unordered_range( It, It );
34
34
 
35
+ template<class Hash> struct hash_is_avalanching;
36
+
35
37
  } // namespace boost
36
38
 
37
39
  #endif // #ifndef BOOST_FUNCTIONAL_HASH_FWD_HPP
@@ -0,0 +1,57 @@
1
+ // Copyright 2025 Joaquin M Lopez Munoz.
2
+ // Distributed under the Boost Software License, Version 1.0.
3
+ // https://www.boost.org/LICENSE_1_0.txt
4
+
5
+ #ifndef BOOST_HASH_HASH_IS_AVALANCHING_HPP_INCLUDED
6
+ #define BOOST_HASH_HASH_IS_AVALANCHING_HPP_INCLUDED
7
+
8
+ #include <type_traits>
9
+
10
+ namespace boost
11
+ {
12
+ namespace hash_detail
13
+ {
14
+
15
+ template<class... Ts> struct make_void
16
+ {
17
+ using type = void;
18
+ };
19
+
20
+ template<class... Ts> using void_t = typename make_void<Ts...>::type;
21
+
22
+ template<class IsAvalanching> struct avalanching_value
23
+ {
24
+ static constexpr bool value = IsAvalanching::value;
25
+ };
26
+
27
+ // may be explicitly marked as BOOST_DEPRECATED in the future
28
+ template<> struct avalanching_value<void>
29
+ {
30
+ static constexpr bool value = true;
31
+ };
32
+
33
+ template<class Hash, class = void> struct hash_is_avalanching_impl: std::false_type
34
+ {
35
+ };
36
+
37
+ template<class Hash> struct hash_is_avalanching_impl<Hash, void_t<typename Hash::is_avalanching> >:
38
+ std::integral_constant<bool, avalanching_value<typename Hash::is_avalanching>::value>
39
+ {
40
+ };
41
+
42
+ template<class Hash>
43
+ struct hash_is_avalanching_impl<Hash, typename std::enable_if< ((void)Hash::is_avalanching, true) >::type>
44
+ {
45
+ // Hash::is_avalanching is not a type: we don't define value to produce
46
+ // a compile error downstream
47
+ };
48
+
49
+ } // namespace hash_detail
50
+
51
+ template<class Hash> struct hash_is_avalanching: hash_detail::hash_is_avalanching_impl<Hash>::type
52
+ {
53
+ };
54
+
55
+ } // namespace boost
56
+
57
+ #endif // #ifndef BOOST_HASH_HASH_IS_AVALANCHING_HPP_INCLUDED