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
@@ -0,0 +1,488 @@
1
+ /*
2
+ * Copyright Matt Borland 2022 - 2025.
3
+ * Distributed under the Boost Software License, Version 1.0. (See
4
+ * accompanying file LICENSE_1_0.txt or copy at
5
+ * http://www.boost.org/LICENSE_1_0.txt)
6
+ *
7
+ * See http://www.boost.org for most recent version including documentation.
8
+ *
9
+ * $Id$
10
+ */
11
+
12
+ #ifndef BOOST_RANDOM_XOSHIRO_HPP
13
+ #define BOOST_RANDOM_XOSHIRO_HPP
14
+
15
+ #include <boost/random/detail/config.hpp>
16
+ #include <boost/random/detail/xoshiro_base.hpp>
17
+ #include <boost/core/bit.hpp>
18
+ #include <array>
19
+ #include <cstdint>
20
+
21
+ namespace boost {
22
+ namespace random {
23
+
24
+ /**
25
+ * This is xoshiro256++ 1.0, one of our all-purpose, rock-solid generators.
26
+ * It has excellent (sub-ns) speed, a state (256 bits) that is large
27
+ * enough for any parallel application, and it passes all tests we are
28
+ * aware of.
29
+ *
30
+ * For generating just floating-point numbers, xoshiro256+ is even faster.
31
+ */
32
+ class xoshiro256pp final : public detail::xoshiro_base<xoshiro256pp, 4>
33
+ {
34
+ private:
35
+
36
+ using Base = detail::xoshiro_base<xoshiro256pp, 4>;
37
+
38
+ public:
39
+
40
+ using Base::Base;
41
+
42
+ inline result_type next() noexcept
43
+ {
44
+ const std::uint64_t result = boost::core::rotl(state_[0] + state_[3], 23) + state_[0];
45
+ const std::uint64_t t = state_[1] << 17;
46
+
47
+ state_[2] ^= state_[0];
48
+ state_[3] ^= state_[1];
49
+ state_[1] ^= state_[2];
50
+ state_[0] ^= state_[3];
51
+
52
+ state_[2] ^= t;
53
+
54
+ state_[3] = boost::core::rotl(state_[3], 45);
55
+
56
+ return result;
57
+ }
58
+ };
59
+
60
+ /**
61
+ * This is xoshiro256+ 1.0, our best and fastest generator for floating-point
62
+ * numbers. We suggest to use its upper bits for floating-point
63
+ * generation, as it is slightly faster than xoshiro256++/xoshiro256**. It
64
+ * passes all tests we are aware of except for the lowest three bits,
65
+ * which might fail linearity tests (and just those), so if low linear
66
+ * complexity is not considered an issue (as it is usually the case) it
67
+ * can be used to generate 64-bit outputs, too.
68
+ */
69
+
70
+ class xoshiro256d final : public detail::xoshiro_base<xoshiro256d, 4, double>
71
+ {
72
+ private:
73
+
74
+ using Base = detail::xoshiro_base<xoshiro256d, 4, double>;
75
+
76
+ public:
77
+
78
+ using Base::Base;
79
+
80
+ inline std::uint64_t next_int() noexcept
81
+ {
82
+ const std::uint64_t result = state_[0] + state_[3];
83
+ const std::uint64_t t = state_[1] << 17;
84
+
85
+ state_[2] ^= state_[0];
86
+ state_[3] ^= state_[1];
87
+ state_[1] ^= state_[2];
88
+ state_[0] ^= state_[3];
89
+
90
+ state_[2] ^= t;
91
+
92
+ state_[3] = boost::core::rotl(state_[3], 45);
93
+
94
+ return result;
95
+ }
96
+
97
+ inline result_type next() noexcept
98
+ {
99
+ #ifdef BOOST_RANDOM_HAS_HEX_FLOAT
100
+ return static_cast<double>((next_int() >> 11)) * 0x1.0p-53;
101
+ #else
102
+ return static_cast<double>((next_int() >> 11)) * 1.11022302462515654e-16;
103
+ #endif
104
+ }
105
+
106
+ static constexpr result_type (min)() noexcept
107
+ {
108
+ #ifdef BOOST_RANDOM_HAS_HEX_FLOAT
109
+ return static_cast<double>((std::numeric_limits<std::uint64_t>::min)() >> 11) * 0x1.0p-53;
110
+ #else
111
+ return static_cast<double>((std::numeric_limits<std::uint64_t>::min)() >> 11) * 1.11022302462515654e-16;
112
+ #endif
113
+ }
114
+
115
+ static constexpr result_type (max)() noexcept
116
+ {
117
+ #ifdef BOOST_RANDOM_HAS_HEX_FLOAT
118
+ return static_cast<double>((std::numeric_limits<std::uint64_t>::max)()) * 0x1.0p-53;
119
+ #else
120
+ return static_cast<double>((std::numeric_limits<std::uint64_t>::max)()) * 1.11022302462515654e-16;
121
+ #endif
122
+ }
123
+ };
124
+
125
+ /**
126
+ * This is xoshiro256** 1.0, one of our all-purpose, rock-solid
127
+ * generators. It has excellent (sub-ns) speed, a state (256 bits) that is
128
+ * large enough for any parallel application, and it passes all tests we
129
+ * are aware of.
130
+ *
131
+ * For generating just floating-point numbers, xoshiro256+ is even faster.
132
+ */
133
+
134
+ class xoshiro256mm final : public detail::xoshiro_base<xoshiro256mm, 4>
135
+ {
136
+ private:
137
+
138
+ using Base = detail::xoshiro_base<xoshiro256mm, 4>;
139
+
140
+ public:
141
+
142
+ using Base::Base;
143
+
144
+ inline result_type next() noexcept
145
+ {
146
+ const std::uint64_t result = boost::core::rotl(state_[1] * 5, 7) * 9U;
147
+ const std::uint64_t t = state_[1] << 17;
148
+
149
+ state_[2] ^= state_[0];
150
+ state_[3] ^= state_[1];
151
+ state_[1] ^= state_[2];
152
+ state_[0] ^= state_[3];
153
+
154
+ state_[2] ^= t;
155
+
156
+ state_[3] = boost::core::rotl(state_[3], 45);
157
+
158
+ return result;
159
+ }
160
+ };
161
+
162
+ /**
163
+ * This is xoshiro512++ 1.0, one of our all-purpose, rock-solid
164
+ * generators. It has excellent (about 1ns) speed, a state (512 bits) that
165
+ * is large enough for any parallel application, and it passes all tests
166
+ * we are aware of.
167
+ *
168
+ * For generating just floating-point numbers, xoshiro512+ is even faster.
169
+ *
170
+ * The state must be seeded so that it is not everywhere zero. If you have
171
+ * a 64-bit seed, we suggest to seed a splitmix64 generator and use its
172
+ * output to fill s.
173
+ */
174
+
175
+ class xoshiro512pp final : public detail::xoshiro_base<xoshiro512pp, 8>
176
+ {
177
+ private:
178
+
179
+ using Base = detail::xoshiro_base<xoshiro512pp, 8>;
180
+
181
+ public:
182
+
183
+ using Base::Base;
184
+
185
+ inline result_type next() noexcept
186
+ {
187
+ const std::uint64_t result = boost::core::rotl(state_[0] + state_[2], 17) + state_[2];
188
+
189
+ const std::uint64_t t = state_[1] << 11;
190
+
191
+ state_[2] ^= state_[0];
192
+ state_[5] ^= state_[1];
193
+ state_[1] ^= state_[2];
194
+ state_[7] ^= state_[3];
195
+ state_[3] ^= state_[4];
196
+ state_[4] ^= state_[5];
197
+ state_[0] ^= state_[6];
198
+ state_[6] ^= state_[7];
199
+
200
+ state_[6] ^= t;
201
+
202
+ state_[7] = boost::core::rotl(state_[7], 21);
203
+
204
+ return result;
205
+ }
206
+ };
207
+
208
+ /**
209
+ * This is xoshiro512** 1.0, one of our all-purpose, rock-solid generators
210
+ * with increased state size. It has excellent (about 1ns) speed, a state
211
+ * (512 bits) that is large enough for any parallel application, and it
212
+ * passes all tests we are aware of.
213
+ *
214
+ * For generating just floating-point numbers, xoshiro512+ is even faster.
215
+ *
216
+ * The state must be seeded so that it is not everywhere zero. If you have
217
+ * a 64-bit seed, we suggest to seed a splitmix64 generator and use its
218
+ * output to fill s.
219
+ */
220
+
221
+ class xoshiro512mm final : public detail::xoshiro_base<xoshiro512mm, 8>
222
+ {
223
+ private:
224
+
225
+ using Base = detail::xoshiro_base<xoshiro512mm, 8>;
226
+
227
+ public:
228
+
229
+ using Base::Base;
230
+
231
+ inline result_type next() noexcept
232
+ {
233
+ const std::uint64_t result = boost::core::rotl(state_[1] * 5, 7) * 9;
234
+
235
+ const std::uint64_t t = state_[1] << 11;
236
+
237
+ state_[2] ^= state_[0];
238
+ state_[5] ^= state_[1];
239
+ state_[1] ^= state_[2];
240
+ state_[7] ^= state_[3];
241
+ state_[3] ^= state_[4];
242
+ state_[4] ^= state_[5];
243
+ state_[0] ^= state_[6];
244
+ state_[6] ^= state_[7];
245
+
246
+ state_[6] ^= t;
247
+
248
+ state_[7] = boost::core::rotl(state_[7], 21);
249
+
250
+ return result;
251
+ }
252
+ };
253
+
254
+ /**
255
+ * This is xoshiro512+ 1.0, our generator for floating-point numbers with
256
+ * increased state size. We suggest to use its upper bits for
257
+ * floating-point generation, as it is slightly faster than xoshiro512**.
258
+ * It passes all tests we are aware of except for the lowest three bits,
259
+ * which might fail linearity tests (and just those), so if low linear
260
+ * complexity is not considered an issue (as it is usually the case) it
261
+ * can be used to generate 64-bit outputs, too.
262
+ *
263
+ * We suggest to use a sign test to extract a random Boolean value, and
264
+ * right shifts to extract subsets of bits.
265
+ *
266
+ * The state must be seeded so that it is not everywhere zero. If you have
267
+ * a 64-bit seed, we suggest to seed a splitmix64 generator and use its
268
+ * output to fill s.
269
+ */
270
+
271
+ class xoshiro512d final : public detail::xoshiro_base<xoshiro512d, 8, double>
272
+ {
273
+ private:
274
+
275
+ using Base = detail::xoshiro_base<xoshiro512d, 8, double>;
276
+
277
+ public:
278
+
279
+ using Base::Base;
280
+
281
+ inline std::uint64_t next_int() noexcept
282
+ {
283
+ const std::uint64_t result = state_[0] + state_[2];
284
+
285
+ const std::uint64_t t = state_[1] << 11;
286
+
287
+ state_[2] ^= state_[0];
288
+ state_[5] ^= state_[1];
289
+ state_[1] ^= state_[2];
290
+ state_[7] ^= state_[3];
291
+ state_[3] ^= state_[4];
292
+ state_[4] ^= state_[5];
293
+ state_[0] ^= state_[6];
294
+ state_[6] ^= state_[7];
295
+
296
+ state_[6] ^= t;
297
+
298
+ state_[7] = boost::core::rotl(state_[7], 21);
299
+
300
+ return result;
301
+ }
302
+
303
+ inline result_type next() noexcept
304
+ {
305
+ #ifdef BOOST_RANDOM_HAS_HEX_FLOAT
306
+ return static_cast<double>((next_int() >> 11)) * 0x1.0p-53;
307
+ #else
308
+ return static_cast<double>((next_int() >> 11)) * 1.11022302462515654e-16;
309
+ #endif
310
+ }
311
+
312
+ static constexpr result_type (min)() noexcept
313
+ {
314
+ #ifdef BOOST_RANDOM_HAS_HEX_FLOAT
315
+ return static_cast<double>((std::numeric_limits<std::uint64_t>::min)() >> 11) * 0x1.0p-53;
316
+ #else
317
+ return static_cast<double>((std::numeric_limits<std::uint64_t>::min)() >> 11) * 1.11022302462515654e-16;
318
+ #endif
319
+ }
320
+
321
+ static constexpr result_type (max)() noexcept
322
+ {
323
+ #ifdef BOOST_RANDOM_HAS_HEX_FLOAT
324
+ return static_cast<double>((std::numeric_limits<std::uint64_t>::max)() >> 11) * 0x1.0p-53;
325
+ #else
326
+ return static_cast<double>((std::numeric_limits<std::uint64_t>::max)() >> 11) * 1.11022302462515654e-16;
327
+ #endif
328
+ }
329
+ };
330
+
331
+ /**
332
+ * This is xoshiro128++ 1.0, one of our 32-bit all-purpose, rock-solid
333
+ * generators. It has excellent speed, a state size (128 bits) that is
334
+ * large enough for mild parallelism, and it passes all tests we are aware
335
+ * of.
336
+ *
337
+ * For generating just single-precision (i.e., 32-bit) floating-point
338
+ * numbers, xoshiro128+ is even faster.
339
+ *
340
+ * The state must be seeded so that it is not everywhere zero.
341
+ */
342
+ class xoshiro128pp final : public detail::xoshiro_base<xoshiro128pp, 4, std::uint32_t, std::uint32_t>
343
+ {
344
+ private:
345
+
346
+ using Base = detail::xoshiro_base<xoshiro128pp, 4, std::uint32_t, std::uint32_t>;
347
+
348
+ public:
349
+
350
+ using Base::Base;
351
+
352
+ inline result_type next() noexcept
353
+ {
354
+ const std::uint32_t result = boost::core::rotl(state_[0] + state_[3], 7) + state_[0];
355
+
356
+ const std::uint32_t t = state_[1] << 9;
357
+
358
+ state_[2] ^= state_[0];
359
+ state_[3] ^= state_[1];
360
+ state_[1] ^= state_[2];
361
+ state_[0] ^= state_[3];
362
+
363
+ state_[2] ^= t;
364
+
365
+ state_[3] = boost::core::rotl(state_[3], 11);
366
+
367
+ return result;
368
+ }
369
+ };
370
+
371
+ /**
372
+ * This is xoshiro128** 1.1, one of our 32-bit all-purpose, rock-solid
373
+ * generators. It has excellent speed, a state size (128 bits) that is
374
+ * large enough for mild parallelism, and it passes all tests we are aware
375
+ * of.
376
+ *
377
+ * Note that version 1.0 had mistakenly state_[0] instead of state_[1] as state
378
+ * word passed to the scrambler.
379
+ *
380
+ * For generating just single-precision (i.e., 32-bit) floating-point
381
+ * numbers, xoshiro128+ is even faster.
382
+ *
383
+ * The state must be seeded so that it is not everywhere zero.
384
+ */
385
+ class xoshiro128mm final : public detail::xoshiro_base<xoshiro128mm, 4, std::uint32_t, std::uint32_t>
386
+ {
387
+ private:
388
+
389
+ using Base = detail::xoshiro_base<xoshiro128mm, 4, std::uint32_t, std::uint32_t>;
390
+
391
+ public:
392
+
393
+ using Base::Base;
394
+
395
+ inline result_type next() noexcept
396
+ {
397
+ const std::uint32_t result = boost::core::rotl(state_[1] * 5, 7) * 9;
398
+
399
+ const std::uint32_t t = state_[1] << 9;
400
+
401
+ state_[2] ^= state_[0];
402
+ state_[3] ^= state_[1];
403
+ state_[1] ^= state_[2];
404
+ state_[0] ^= state_[3];
405
+
406
+ state_[2] ^= t;
407
+
408
+ state_[3] = boost::core::rotl(state_[3], 11);
409
+
410
+ return result;
411
+ }
412
+ };
413
+
414
+ /**
415
+ * This is xoshiro128+ 1.0, our best and fastest 32-bit generator for 32-bit
416
+ * floating-point numbers. We suggest to use its upper bits for
417
+ * floating-point generation, as it is slightly faster than xoshiro128**.
418
+ * It passes all tests we are aware of except for
419
+ * linearity tests, as the lowest four bits have low linear complexity, so
420
+ * if low linear complexity is not considered an issue (as it is usually
421
+ * the case) it can be used to generate 32-bit outputs, too.
422
+ *
423
+ * We suggest to use a sign test to extract a random Boolean value, and
424
+ * right shifts to extract subsets of bits.
425
+ *
426
+ * The state must be seeded so that it is not everywhere zero.
427
+ */
428
+
429
+ class xoshiro128f final : public detail::xoshiro_base<xoshiro128f, 4, float, std::uint32_t>
430
+ {
431
+ private:
432
+
433
+ using Base = detail::xoshiro_base<xoshiro128f, 4, float, std::uint32_t>;
434
+
435
+ public:
436
+
437
+ using Base::Base;
438
+
439
+ inline std::uint32_t next_int() noexcept
440
+ {
441
+ const std::uint32_t result = state_[0] + state_[3];
442
+
443
+ const std::uint32_t t = state_[1] << 9;
444
+
445
+ state_[2] ^= state_[0];
446
+ state_[3] ^= state_[1];
447
+ state_[1] ^= state_[2];
448
+ state_[0] ^= state_[3];
449
+
450
+ state_[2] ^= t;
451
+
452
+ state_[3] = boost::core::rotl(state_[3], 11);
453
+
454
+ return result;
455
+ }
456
+
457
+ inline result_type next() noexcept
458
+ {
459
+ #ifdef BOOST_RANDOM_HAS_HEX_FLOAT
460
+ return static_cast<float>((next_int() >> 8)) * 0x1.0p-24f;
461
+ #else
462
+ return static_cast<float>((next_int() >> 8)) * 5.9604645e-08f;
463
+ #endif
464
+ }
465
+
466
+ static constexpr result_type (min)() noexcept
467
+ {
468
+ #ifdef BOOST_RANDOM_HAS_HEX_FLOAT
469
+ return static_cast<float>((std::numeric_limits<std::uint32_t>::min)() >> 8) * 0x1.0p-24f;
470
+ #else
471
+ return static_cast<float>((std::numeric_limits<std::uint64_t>::min)() >> 8) * 5.9604645e-08f;
472
+ #endif
473
+ }
474
+
475
+ static constexpr result_type (max)() noexcept
476
+ {
477
+ #ifdef BOOST_RANDOM_HAS_HEX_FLOAT
478
+ return static_cast<float>((std::numeric_limits<std::uint32_t>::max)() >> 8) * 0x1.0p-24f;
479
+ #else
480
+ return static_cast<float>((std::numeric_limits<std::uint64_t>::max)() >> 8) * 5.9604645e-08f;
481
+ #endif
482
+ }
483
+ };
484
+
485
+ } // namespace random
486
+ } // namespace boost
487
+
488
+ #endif //BOOST_RANDOM_XOSHIRO_HPP
@@ -49,6 +49,7 @@
49
49
  #include <boost/random/taus88.hpp>
50
50
  #include <boost/random/xor_combine.hpp>
51
51
  #include <boost/random/splitmix64.hpp>
52
+ #include <boost/random/xoshiro.hpp>
52
53
 
53
54
  // misc
54
55
  #include <boost/random/generate_canonical.hpp>
@@ -87,6 +88,8 @@
87
88
  #include <boost/random/uniform_real_distribution.hpp>
88
89
  #include <boost/random/uniform_smallint.hpp>
89
90
  #include <boost/random/weibull_distribution.hpp>
91
+ #include <boost/random/inverse_gaussian_distribution.hpp>
92
+ #include <boost/random/generalized_inverse_gaussian_distribution.hpp>
90
93
 
91
94
  #include <boost/random/generate_canonical.hpp>
92
95
 
@@ -23,7 +23,9 @@
23
23
  #include <boost/range/iterator.hpp>
24
24
  #include <boost/range/value_type.hpp>
25
25
  #include <boost/range/detail/misc_concept.hpp>
26
+ #include <boost/mpl/assert.hpp>
26
27
  #include <boost/type_traits/remove_reference.hpp>
28
+ #include <boost/type_traits/is_integral.hpp>
27
29
 
28
30
  #include <iterator>
29
31
 
@@ -13,6 +13,7 @@
13
13
 
14
14
  #include <boost/type_traits/is_class.hpp>
15
15
  #include <boost/type_traits/is_member_function_pointer.hpp>
16
+ #include <boost/mpl/if.hpp>
16
17
  #include <boost/mpl/and.hpp>
17
18
  #include <boost/mpl/bool.hpp>
18
19
  #include <boost/cstdint.hpp>
@@ -20,6 +20,8 @@
20
20
  #endif
21
21
 
22
22
  #if BOOST_WORKAROUND(BOOST_MSVC, <= 1600)
23
+ #include <boost/mpl/bool.hpp>
24
+
23
25
  namespace boost
24
26
  {
25
27
  namespace cb_details
@@ -18,7 +18,7 @@
18
18
  #include <boost/mpl/has_xxx.hpp>
19
19
  #include <boost/range/iterator.hpp>
20
20
  #include <boost/type_traits/remove_reference.hpp>
21
- #include <boost/utility/enable_if.hpp>
21
+ #include <boost/core/enable_if.hpp>
22
22
 
23
23
  namespace boost
24
24
  {
@@ -22,6 +22,7 @@
22
22
  #include <boost/type_traits/is_const.hpp>
23
23
  #include <boost/type_traits/remove_const.hpp>
24
24
  #include <boost/mpl/eval_if.hpp>
25
+ #include <boost/mpl/if.hpp>
25
26
 
26
27
  namespace boost
27
28
  {
@@ -26,8 +26,11 @@
26
26
  #include <boost/iterator/iterator_traits.hpp>
27
27
  #include <boost/iterator/iterator_facade.hpp>
28
28
  #include <boost/mpl/if.hpp>
29
+ #include <boost/mpl/eval_if.hpp>
29
30
  #include <boost/mpl/not.hpp>
31
+ #include <boost/mpl/and.hpp>
30
32
  #include <boost/mpl/or.hpp>
33
+ #include <boost/mpl/identity.hpp>
31
34
  #include <boost/type_traits/is_abstract.hpp>
32
35
  #include <boost/type_traits/is_array.hpp>
33
36
  #include <boost/type_traits/is_base_and_derived.hpp>
@@ -41,7 +44,7 @@
41
44
  #include <boost/range/has_range_iterator.hpp>
42
45
  #include <boost/range/algorithm/equal.hpp>
43
46
  #include <boost/range/detail/safe_bool.hpp>
44
- #include <boost/utility/enable_if.hpp>
47
+ #include <boost/core/enable_if.hpp>
45
48
  #include <boost/next_prior.hpp>
46
49
  #include <iterator>
47
50
  #include <algorithm>
@@ -20,7 +20,7 @@
20
20
  #include <boost/range/concepts.hpp>
21
21
  #include <boost/range/has_range_iterator.hpp>
22
22
 
23
- #include <boost/utility/enable_if.hpp>
23
+ #include <boost/core/enable_if.hpp>
24
24
  #include <boost/type_traits/make_unsigned.hpp>
25
25
  #include <boost/type_traits/remove_const.hpp>
26
26
  #include <cstddef>
@@ -24,7 +24,7 @@
24
24
  #include <boost/type_traits/is_enum.hpp>
25
25
  #include <boost/type_traits/is_base_and_derived.hpp>
26
26
  #include <boost/static_assert.hpp>
27
- #ifndef BOOST_TEST_TR1_REGEX
27
+ #if !defined(BOOST_TEST_TR1_REGEX) && !defined(BOOST_REGEX_TEST_MODULE)
28
28
  #include <boost/regex.hpp>
29
29
  #endif
30
30
  #include <bitset>
@@ -37,6 +37,16 @@
37
37
  #define RW_NS std
38
38
  #endif
39
39
 
40
+
41
+ //
42
+ // alter this to std::tr1, to test a std implementation:
43
+ //
44
+ #ifndef BOOST_TEST_TR1_REGEX
45
+ namespace global_regex_namespace = ::boost;
46
+ #else
47
+ namespace global_regex_namespace = ::std::tr1;
48
+ #endif
49
+
40
50
  namespace boost{
41
51
 
42
52
  //
@@ -76,13 +86,10 @@ inline long hash_value(char_architype val)
76
86
  //
77
87
  } // namespace boost
78
88
  namespace std{
79
- template<> struct char_traits<boost::char_architype>
80
- {
81
- // The intent is that this template is not instantiated,
82
- // but this typedef gives us a chance of compilation in
83
- // case it is:
84
- typedef boost::char_architype char_type;
85
- };
89
+ //
90
+ // We should never use this, if we do it should be an error:
91
+ //
92
+ template<> struct char_traits<boost::char_architype>;
86
93
  }
87
94
  //
88
95
  // Allocator architype:
@@ -127,6 +134,9 @@ bool operator == (const allocator_architype<T>&, const allocator_architype<T>&)
127
134
  template <class T>
128
135
  bool operator != (const allocator_architype<T>&, const allocator_architype<T>&) { return false; }
129
136
 
137
+ template <class T>
138
+ void consume_type() {}
139
+
130
140
  namespace boost{
131
141
  //
132
142
  // regex_traits_architype:
@@ -178,15 +188,6 @@ private:
178
188
  regex_traits_architype& operator=(const regex_traits_architype&){ return *this; }
179
189
  };
180
190
 
181
- //
182
- // alter this to std::tr1, to test a std implementation:
183
- //
184
- #ifndef BOOST_TEST_TR1_REGEX
185
- namespace global_regex_namespace = ::boost;
186
- #else
187
- namespace global_regex_namespace = ::std::tr1;
188
- #endif
189
-
190
191
  template <class Bitmask>
191
192
  struct BitmaskConcept
192
193
  {
@@ -273,7 +274,7 @@ template <class Regex>
273
274
  struct regex_traits_computer;
274
275
 
275
276
  template <class charT, class traits>
276
- struct regex_traits_computer< global_regex_namespace::basic_regex<charT, traits> >
277
+ struct regex_traits_computer< ::boost::basic_regex<charT, traits> >
277
278
  {
278
279
  typedef traits type;
279
280
  };
@@ -371,6 +372,8 @@ struct BaseRegexConcept
371
372
  e1 = except.code();
372
373
 
373
374
  typedef typename Regex::value_type regex_value_type;
375
+ regex_value_type val{};
376
+ ignore_unused_variable_warning(val);
374
377
  function_requires< RegexTraitsConcept<global_regex_namespace::regex_traits<char> > >();
375
378
  function_requires< BaseRegexConcept<global_regex_namespace::basic_regex<char> > >();
376
379
  }
@@ -407,6 +410,10 @@ struct BaseRegexConcept
407
410
  Regex e5(in1, in2, m_flags);
408
411
  ignore_unused_variable_warning(e5);
409
412
 
413
+ // equals:
414
+ e1 == e2;
415
+ e1 != e2;
416
+
410
417
  // assign etc:
411
418
  Regex e;
412
419
  e = m_pointer;
@@ -446,15 +453,25 @@ struct BaseRegexConcept
446
453
  // match_results tests - some typedefs are not used, however these
447
454
  // guarante that they exist (some compilers may warn on non-usage)
448
455
  typedef typename match_results_type::value_type mr_value_type;
456
+ consume_type<mr_value_type>();
449
457
  typedef typename match_results_type::const_reference mr_const_reference;
458
+ consume_type<mr_const_reference>();
450
459
  typedef typename match_results_type::reference mr_reference;
460
+ consume_type<mr_reference>();
451
461
  typedef typename match_results_type::const_iterator mr_const_iterator;
462
+ consume_type<mr_const_iterator>();
452
463
  typedef typename match_results_type::iterator mr_iterator;
464
+ consume_type<mr_iterator>();
453
465
  typedef typename match_results_type::difference_type mr_difference_type;
466
+ consume_type<mr_difference_type>();
454
467
  typedef typename match_results_type::size_type mr_size_type;
468
+ consume_type<mr_size_type>();
455
469
  typedef typename match_results_type::allocator_type mr_allocator_type;
470
+ consume_type<mr_allocator_type>();
456
471
  typedef typename match_results_type::char_type mr_char_type;
472
+ consume_type<mr_char_type>();
457
473
  typedef typename match_results_type::string_type mr_string_type;
474
+ consume_type<mr_string_type>();
458
475
 
459
476
  match_results_type m1;
460
477
  mr_allocator_type at;