passenger 6.1.0 → 6.1.2

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 (441) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +46 -2
  3. data/Rakefile +6 -13
  4. data/bin/passenger-install-apache2-module +15 -19
  5. data/bin/passenger-install-nginx-module +47 -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 +6 -1
  12. data/passenger.gemspec +1 -0
  13. data/src/agent/Core/Config.h +1 -1
  14. data/src/agent/Core/Controller/Config.h +1 -1
  15. data/src/agent/Watchdog/Config.h +1 -1
  16. data/src/cxx_supportlib/Constants.h +1 -1
  17. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
  18. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
  19. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
  20. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
  21. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
  22. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
  23. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
  24. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
  25. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
  26. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
  27. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
  28. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
  29. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
  30. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
  31. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
  32. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
  33. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
  34. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
  35. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
  36. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
  37. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
  38. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
  39. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
  40. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
  41. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
  42. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
  43. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
  44. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
  45. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
  46. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
  47. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
  48. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
  49. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
  50. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
  51. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
  52. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
  53. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
  54. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
  55. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
  56. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
  57. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
  58. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
  59. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
  60. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
  61. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
  62. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
  63. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
  64. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
  65. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
  66. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
  67. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
  68. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
  69. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
  70. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
  71. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
  72. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
  73. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
  74. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
  75. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
  76. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
  78. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
  79. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
  80. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
  81. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
  82. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
  83. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
  84. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
  85. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
  86. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
  88. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
  89. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
  90. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
  91. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
  92. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
  93. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
  94. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
  95. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
  96. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
  97. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
  98. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
  99. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
  100. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
  101. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
  102. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
  103. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
  104. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
  105. data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
  106. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
  107. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
  108. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
  109. data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  115. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
  116. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
  117. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
  118. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
  120. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
  121. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
  122. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
  123. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
  124. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
  125. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
  126. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
  128. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
  130. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
  131. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
  132. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
  133. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
  135. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
  136. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
  137. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
  138. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
  140. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
  141. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
  142. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
  143. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
  145. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
  146. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
  147. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
  148. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
  149. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
  150. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
  152. data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
  153. data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
  154. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
  155. data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
  156. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
  157. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
  158. data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
  159. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
  161. data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
  162. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
  163. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
  166. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
  167. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
  168. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
  170. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
  171. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
  172. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
  173. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
  174. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
  175. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
  179. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
  180. data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
  181. data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
  182. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
  183. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
  184. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
  185. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
  186. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
  187. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
  188. data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
  189. data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
  190. data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
  191. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
  192. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
  195. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
  196. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
  197. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
  199. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  201. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
  202. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
  203. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
  204. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
  205. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  206. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
  207. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
  208. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
  211. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
  212. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
  213. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  216. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
  217. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
  218. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
  220. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
  221. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
  222. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  223. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
  224. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
  225. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
  226. data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
  227. data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
  228. data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
  229. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
  230. data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
  231. data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
  232. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
  233. data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
  234. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
  235. data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
  236. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
  237. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
  238. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
  239. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
  240. data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
  241. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
  242. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
  243. data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
  244. data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
  245. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
  246. data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
  248. data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
  249. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
  250. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
  251. data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
  252. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
  253. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
  254. data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
  255. data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
  256. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
  257. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
  258. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
  260. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
  262. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
  263. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
  264. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
  265. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
  266. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
  268. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
  269. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
  270. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
  271. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
  272. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
  273. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
  274. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
  275. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
  276. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
  277. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
  278. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
  279. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
  280. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
  281. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
  282. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
  283. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
  285. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
  286. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
  287. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
  288. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
  289. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
  297. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
  298. data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
  299. data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
  300. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
  301. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
  302. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
  303. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
  304. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
  305. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
  306. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
  307. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
  308. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
  309. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
  310. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
  311. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
  313. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
  314. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
  315. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
  316. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
  317. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
  318. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
  320. data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
  321. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
  322. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
  323. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
  324. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
  326. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  327. data/src/nginx_module/ContentHandler.c +2 -0
  328. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
  329. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
  330. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
  331. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
  332. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
  333. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
  334. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
  335. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
  336. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +6 -13
  337. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +29 -30
  338. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +7 -3
  339. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
  340. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
  341. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
  342. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
  343. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
  344. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  345. metadata +40 -99
  346. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
  347. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
  348. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
  349. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
  350. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
  351. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
  352. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
  353. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
  354. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
  355. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
  356. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
  357. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
  358. data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
  359. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
  360. data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
  361. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
  362. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
  363. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
  364. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
  365. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
  366. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
  367. data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
  368. data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
  369. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
  370. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
  371. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
  372. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
  373. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
  374. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
  375. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
  376. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
  377. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
  378. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
  379. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
  380. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
  381. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
  382. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
  383. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
  384. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
  385. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
  386. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
  387. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
  388. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
  389. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
  390. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
  391. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
  392. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
  393. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
  394. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
  395. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
  396. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
  397. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
  398. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
  399. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
  400. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
  401. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
  402. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
  403. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
  404. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
  405. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
  406. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
  407. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
  408. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
  409. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
  410. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
  411. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
  412. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
  413. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
  414. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
  415. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
  416. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
  417. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
  418. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
  419. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
  420. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
  421. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
  422. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
  423. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
  424. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
  425. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
  426. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
  427. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
  428. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
  429. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
  430. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
  431. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
  432. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
  433. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
  434. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
  435. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
  436. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
  437. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
  438. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
  439. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
  440. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
  441. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +0 -94
@@ -1,797 +0,0 @@
1
- /*
2
- *
3
- * Copyright (c) 1998-2004 John Maddock
4
- * Copyright 2011 Garmin Ltd. or its subsidiaries
5
- *
6
- * Distributed under the Boost Software License, Version 1.0.
7
- * (See accompanying file LICENSE_1_0.txt or copy at
8
- * http://www.boost.org/LICENSE_1_0.txt)
9
- *
10
- */
11
-
12
- /*
13
- * LOCATION: see http://www.boost.org/ for most recent version.
14
- * FILE basic_regex.cpp
15
- * VERSION see <boost/version.hpp>
16
- * DESCRIPTION: Declares template class basic_regex.
17
- */
18
-
19
- #ifndef BOOST_REGEX_V4_BASIC_REGEX_HPP
20
- #define BOOST_REGEX_V4_BASIC_REGEX_HPP
21
-
22
- #include <boost/type_traits/is_same.hpp>
23
- #include <boost/container_hash/hash.hpp>
24
-
25
- #ifdef BOOST_MSVC
26
- #pragma warning(push)
27
- #pragma warning(disable: 4103)
28
- #endif
29
- #ifdef BOOST_HAS_ABI_HEADERS
30
- # include BOOST_ABI_PREFIX
31
- #endif
32
- #ifdef BOOST_MSVC
33
- #pragma warning(pop)
34
- #endif
35
-
36
- namespace boost{
37
- #ifdef BOOST_MSVC
38
- #pragma warning(push)
39
- #pragma warning(disable : 4251)
40
- #if BOOST_MSVC < 1700
41
- # pragma warning(disable : 4231)
42
- #endif
43
- #if BOOST_MSVC < 1600
44
- #pragma warning(disable : 4660)
45
- #endif
46
- #if BOOST_MSVC < 1910
47
- #pragma warning(disable:4800)
48
- #endif
49
- #endif
50
-
51
- namespace BOOST_REGEX_DETAIL_NS{
52
-
53
- //
54
- // forward declaration, we will need this one later:
55
- //
56
- template <class charT, class traits>
57
- class basic_regex_parser;
58
-
59
- template <class I>
60
- void bubble_down_one(I first, I last)
61
- {
62
- if(first != last)
63
- {
64
- I next = last - 1;
65
- while((next != first) && (*next < *(next-1)))
66
- {
67
- (next-1)->swap(*next);
68
- --next;
69
- }
70
- }
71
- }
72
-
73
- static const int hash_value_mask = 1 << (std::numeric_limits<int>::digits - 1);
74
-
75
- template <class Iterator>
76
- inline int hash_value_from_capture_name(Iterator i, Iterator j)
77
- {
78
- std::size_t r = boost::hash_range(i, j);
79
- r %= ((std::numeric_limits<int>::max)());
80
- return static_cast<int>(r) | hash_value_mask;
81
- }
82
-
83
- class named_subexpressions
84
- {
85
- public:
86
- struct name
87
- {
88
- template <class charT>
89
- name(const charT* i, const charT* j, int idx)
90
- : index(idx)
91
- {
92
- hash = hash_value_from_capture_name(i, j);
93
- }
94
- name(int h, int idx)
95
- : index(idx), hash(h)
96
- {
97
- }
98
- int index;
99
- int hash;
100
- bool operator < (const name& other)const
101
- {
102
- return hash < other.hash;
103
- }
104
- bool operator == (const name& other)const
105
- {
106
- return hash == other.hash;
107
- }
108
- void swap(name& other)
109
- {
110
- std::swap(index, other.index);
111
- std::swap(hash, other.hash);
112
- }
113
- };
114
-
115
- typedef std::vector<name>::const_iterator const_iterator;
116
- typedef std::pair<const_iterator, const_iterator> range_type;
117
-
118
- named_subexpressions(){}
119
-
120
- template <class charT>
121
- void set_name(const charT* i, const charT* j, int index)
122
- {
123
- m_sub_names.push_back(name(i, j, index));
124
- bubble_down_one(m_sub_names.begin(), m_sub_names.end());
125
- }
126
- template <class charT>
127
- int get_id(const charT* i, const charT* j)const
128
- {
129
- name t(i, j, 0);
130
- typename std::vector<name>::const_iterator pos = std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
131
- if((pos != m_sub_names.end()) && (*pos == t))
132
- {
133
- return pos->index;
134
- }
135
- return -1;
136
- }
137
- template <class charT>
138
- range_type equal_range(const charT* i, const charT* j)const
139
- {
140
- name t(i, j, 0);
141
- return std::equal_range(m_sub_names.begin(), m_sub_names.end(), t);
142
- }
143
- int get_id(int h)const
144
- {
145
- name t(h, 0);
146
- std::vector<name>::const_iterator pos = std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
147
- if((pos != m_sub_names.end()) && (*pos == t))
148
- {
149
- return pos->index;
150
- }
151
- return -1;
152
- }
153
- range_type equal_range(int h)const
154
- {
155
- name t(h, 0);
156
- return std::equal_range(m_sub_names.begin(), m_sub_names.end(), t);
157
- }
158
- private:
159
- std::vector<name> m_sub_names;
160
- };
161
-
162
- //
163
- // class regex_data:
164
- // represents the data we wish to expose to the matching algorithms.
165
- //
166
- template <class charT, class traits>
167
- struct regex_data : public named_subexpressions
168
- {
169
- typedef regex_constants::syntax_option_type flag_type;
170
- typedef std::size_t size_type;
171
-
172
- regex_data(const ::boost::shared_ptr<
173
- ::boost::regex_traits_wrapper<traits> >& t)
174
- : m_ptraits(t), m_flags(0), m_status(0), m_expression(0), m_expression_len(0),
175
- m_mark_count(0), m_first_state(0), m_restart_type(0),
176
- #if !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !(defined(BOOST_MSVC) && (BOOST_MSVC < 1900))
177
- m_startmap{ 0 },
178
- #endif
179
- m_can_be_null(0), m_word_mask(0), m_has_recursions(false), m_disable_match_any(false) {}
180
- regex_data()
181
- : m_ptraits(new ::boost::regex_traits_wrapper<traits>()), m_flags(0), m_status(0), m_expression(0), m_expression_len(0),
182
- m_mark_count(0), m_first_state(0), m_restart_type(0),
183
- #if !defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !(defined(BOOST_MSVC) && (BOOST_MSVC < 1900))
184
- m_startmap{ 0 },
185
- #endif
186
- m_can_be_null(0), m_word_mask(0), m_has_recursions(false), m_disable_match_any(false) {}
187
-
188
- ::boost::shared_ptr<
189
- ::boost::regex_traits_wrapper<traits>
190
- > m_ptraits; // traits class instance
191
- flag_type m_flags; // flags with which we were compiled
192
- int m_status; // error code (0 implies OK).
193
- const charT* m_expression; // the original expression
194
- std::ptrdiff_t m_expression_len; // the length of the original expression
195
- size_type m_mark_count; // the number of marked sub-expressions
196
- BOOST_REGEX_DETAIL_NS::re_syntax_base* m_first_state; // the first state of the machine
197
- unsigned m_restart_type; // search optimisation type
198
- unsigned char m_startmap[1 << CHAR_BIT]; // which characters can start a match
199
- unsigned int m_can_be_null; // whether we can match a null string
200
- BOOST_REGEX_DETAIL_NS::raw_storage m_data; // the buffer in which our states are constructed
201
- typename traits::char_class_type m_word_mask; // mask used to determine if a character is a word character
202
- std::vector<
203
- std::pair<
204
- std::size_t, std::size_t> > m_subs; // Position of sub-expressions within the *string*.
205
- bool m_has_recursions; // whether we have recursive expressions;
206
- bool m_disable_match_any; // when set we need to disable the match_any flag as it causes different/buggy behaviour.
207
- };
208
- //
209
- // class basic_regex_implementation
210
- // pimpl implementation class for basic_regex.
211
- //
212
- template <class charT, class traits>
213
- class basic_regex_implementation
214
- : public regex_data<charT, traits>
215
- {
216
- public:
217
- typedef regex_constants::syntax_option_type flag_type;
218
- typedef std::ptrdiff_t difference_type;
219
- typedef std::size_t size_type;
220
- typedef typename traits::locale_type locale_type;
221
- typedef const charT* const_iterator;
222
-
223
- basic_regex_implementation(){}
224
- basic_regex_implementation(const ::boost::shared_ptr<
225
- ::boost::regex_traits_wrapper<traits> >& t)
226
- : regex_data<charT, traits>(t) {}
227
- void assign(const charT* arg_first,
228
- const charT* arg_last,
229
- flag_type f)
230
- {
231
- regex_data<charT, traits>* pdat = this;
232
- basic_regex_parser<charT, traits> parser(pdat);
233
- parser.parse(arg_first, arg_last, f);
234
- }
235
-
236
- locale_type BOOST_REGEX_CALL imbue(locale_type l)
237
- {
238
- return this->m_ptraits->imbue(l);
239
- }
240
- locale_type BOOST_REGEX_CALL getloc()const
241
- {
242
- return this->m_ptraits->getloc();
243
- }
244
- std::basic_string<charT> BOOST_REGEX_CALL str()const
245
- {
246
- std::basic_string<charT> result;
247
- if(this->m_status == 0)
248
- result = std::basic_string<charT>(this->m_expression, this->m_expression_len);
249
- return result;
250
- }
251
- const_iterator BOOST_REGEX_CALL expression()const
252
- {
253
- return this->m_expression;
254
- }
255
- std::pair<const_iterator, const_iterator> BOOST_REGEX_CALL subexpression(std::size_t n)const
256
- {
257
- const std::pair<std::size_t, std::size_t>& pi = this->m_subs.at(n);
258
- std::pair<const_iterator, const_iterator> p(expression() + pi.first, expression() + pi.second);
259
- return p;
260
- }
261
- //
262
- // begin, end:
263
- const_iterator BOOST_REGEX_CALL begin()const
264
- {
265
- return (this->m_status ? 0 : this->m_expression);
266
- }
267
- const_iterator BOOST_REGEX_CALL end()const
268
- {
269
- return (this->m_status ? 0 : this->m_expression + this->m_expression_len);
270
- }
271
- flag_type BOOST_REGEX_CALL flags()const
272
- {
273
- return this->m_flags;
274
- }
275
- size_type BOOST_REGEX_CALL size()const
276
- {
277
- return this->m_expression_len;
278
- }
279
- int BOOST_REGEX_CALL status()const
280
- {
281
- return this->m_status;
282
- }
283
- size_type BOOST_REGEX_CALL mark_count()const
284
- {
285
- return this->m_mark_count - 1;
286
- }
287
- const BOOST_REGEX_DETAIL_NS::re_syntax_base* get_first_state()const
288
- {
289
- return this->m_first_state;
290
- }
291
- unsigned get_restart_type()const
292
- {
293
- return this->m_restart_type;
294
- }
295
- const unsigned char* get_map()const
296
- {
297
- return this->m_startmap;
298
- }
299
- const ::boost::regex_traits_wrapper<traits>& get_traits()const
300
- {
301
- return *(this->m_ptraits);
302
- }
303
- bool can_be_null()const
304
- {
305
- return this->m_can_be_null;
306
- }
307
- const regex_data<charT, traits>& get_data()const
308
- {
309
- basic_regex_implementation<charT, traits> const* p = this;
310
- return *static_cast<const regex_data<charT, traits>*>(p);
311
- }
312
- };
313
-
314
- } // namespace BOOST_REGEX_DETAIL_NS
315
- //
316
- // class basic_regex:
317
- // represents the compiled
318
- // regular expression:
319
- //
320
-
321
- #ifdef BOOST_REGEX_NO_FWD
322
- template <class charT, class traits = regex_traits<charT> >
323
- #else
324
- template <class charT, class traits >
325
- #endif
326
- class basic_regex : public regbase
327
- {
328
- public:
329
- // typedefs:
330
- typedef std::size_t traits_size_type;
331
- typedef typename traits::string_type traits_string_type;
332
- typedef charT char_type;
333
- typedef traits traits_type;
334
-
335
- typedef charT value_type;
336
- typedef charT& reference;
337
- typedef const charT& const_reference;
338
- typedef const charT* const_iterator;
339
- typedef const_iterator iterator;
340
- typedef std::ptrdiff_t difference_type;
341
- typedef std::size_t size_type;
342
- typedef regex_constants::syntax_option_type flag_type;
343
- // locale_type
344
- // placeholder for actual locale type used by the
345
- // traits class to localise *this.
346
- typedef typename traits::locale_type locale_type;
347
-
348
- public:
349
- explicit basic_regex(){}
350
- explicit basic_regex(const charT* p, flag_type f = regex_constants::normal)
351
- {
352
- assign(p, f);
353
- }
354
- basic_regex(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
355
- {
356
- assign(p1, p2, f);
357
- }
358
- basic_regex(const charT* p, size_type len, flag_type f)
359
- {
360
- assign(p, len, f);
361
- }
362
- basic_regex(const basic_regex& that)
363
- : m_pimpl(that.m_pimpl) {}
364
- ~basic_regex(){}
365
- basic_regex& BOOST_REGEX_CALL operator=(const basic_regex& that)
366
- {
367
- return assign(that);
368
- }
369
- basic_regex& BOOST_REGEX_CALL operator=(const charT* ptr)
370
- {
371
- return assign(ptr);
372
- }
373
-
374
- //
375
- // assign:
376
- basic_regex& assign(const basic_regex& that)
377
- {
378
- m_pimpl = that.m_pimpl;
379
- return *this;
380
- }
381
- basic_regex& assign(const charT* p, flag_type f = regex_constants::normal)
382
- {
383
- return assign(p, p + traits::length(p), f);
384
- }
385
- basic_regex& assign(const charT* p, size_type len, flag_type f)
386
- {
387
- return assign(p, p + len, f);
388
- }
389
- private:
390
- basic_regex& do_assign(const charT* p1,
391
- const charT* p2,
392
- flag_type f);
393
- public:
394
- basic_regex& assign(const charT* p1,
395
- const charT* p2,
396
- flag_type f = regex_constants::normal)
397
- {
398
- return do_assign(p1, p2, f);
399
- }
400
- #if !defined(BOOST_NO_MEMBER_TEMPLATES)
401
-
402
- template <class ST, class SA>
403
- unsigned int BOOST_REGEX_CALL set_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
404
- {
405
- return set_expression(p.data(), p.data() + p.size(), f);
406
- }
407
-
408
- template <class ST, class SA>
409
- explicit basic_regex(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
410
- {
411
- assign(p, f);
412
- }
413
-
414
- template <class InputIterator>
415
- basic_regex(InputIterator arg_first, InputIterator arg_last, flag_type f = regex_constants::normal)
416
- {
417
- typedef typename traits::string_type seq_type;
418
- seq_type a(arg_first, arg_last);
419
- if(!a.empty())
420
- assign(static_cast<const charT*>(&*a.begin()), static_cast<const charT*>(&*a.begin() + a.size()), f);
421
- else
422
- assign(static_cast<const charT*>(0), static_cast<const charT*>(0), f);
423
- }
424
-
425
- template <class ST, class SA>
426
- basic_regex& BOOST_REGEX_CALL operator=(const std::basic_string<charT, ST, SA>& p)
427
- {
428
- return assign(p.data(), p.data() + p.size(), regex_constants::normal);
429
- }
430
-
431
- template <class string_traits, class A>
432
- basic_regex& BOOST_REGEX_CALL assign(
433
- const std::basic_string<charT, string_traits, A>& s,
434
- flag_type f = regex_constants::normal)
435
- {
436
- return assign(s.data(), s.data() + s.size(), f);
437
- }
438
-
439
- template <class InputIterator>
440
- basic_regex& BOOST_REGEX_CALL assign(InputIterator arg_first,
441
- InputIterator arg_last,
442
- flag_type f = regex_constants::normal)
443
- {
444
- typedef typename traits::string_type seq_type;
445
- seq_type a(arg_first, arg_last);
446
- if(a.size())
447
- {
448
- const charT* p1 = &*a.begin();
449
- const charT* p2 = &*a.begin() + a.size();
450
- return assign(p1, p2, f);
451
- }
452
- return assign(static_cast<const charT*>(0), static_cast<const charT*>(0), f);
453
- }
454
- #else
455
- unsigned int BOOST_REGEX_CALL set_expression(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
456
- {
457
- return set_expression(p.data(), p.data() + p.size(), f);
458
- }
459
-
460
- basic_regex(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
461
- {
462
- assign(p, f);
463
- }
464
-
465
- basic_regex& BOOST_REGEX_CALL operator=(const std::basic_string<charT>& p)
466
- {
467
- return assign(p.data(), p.data() + p.size(), regex_constants::normal);
468
- }
469
-
470
- basic_regex& BOOST_REGEX_CALL assign(
471
- const std::basic_string<charT>& s,
472
- flag_type f = regex_constants::normal)
473
- {
474
- return assign(s.data(), s.data() + s.size(), f);
475
- }
476
-
477
- #endif
478
-
479
- //
480
- // locale:
481
- locale_type BOOST_REGEX_CALL imbue(locale_type l);
482
- locale_type BOOST_REGEX_CALL getloc()const
483
- {
484
- return m_pimpl.get() ? m_pimpl->getloc() : locale_type();
485
- }
486
- //
487
- // getflags:
488
- // retained for backwards compatibility only, "flags"
489
- // is now the preferred name:
490
- flag_type BOOST_REGEX_CALL getflags()const
491
- {
492
- return flags();
493
- }
494
- flag_type BOOST_REGEX_CALL flags()const
495
- {
496
- return m_pimpl.get() ? m_pimpl->flags() : 0;
497
- }
498
- //
499
- // str:
500
- std::basic_string<charT> BOOST_REGEX_CALL str()const
501
- {
502
- return m_pimpl.get() ? m_pimpl->str() : std::basic_string<charT>();
503
- }
504
- //
505
- // begin, end, subexpression:
506
- std::pair<const_iterator, const_iterator> BOOST_REGEX_CALL subexpression(std::size_t n)const
507
- {
508
- if(!m_pimpl.get())
509
- boost::throw_exception(std::logic_error("Can't access subexpressions in an invalid regex."));
510
- return m_pimpl->subexpression(n);
511
- }
512
- const_iterator BOOST_REGEX_CALL begin()const
513
- {
514
- return (m_pimpl.get() ? m_pimpl->begin() : 0);
515
- }
516
- const_iterator BOOST_REGEX_CALL end()const
517
- {
518
- return (m_pimpl.get() ? m_pimpl->end() : 0);
519
- }
520
- //
521
- // swap:
522
- void BOOST_REGEX_CALL swap(basic_regex& that)throw()
523
- {
524
- m_pimpl.swap(that.m_pimpl);
525
- }
526
- //
527
- // size:
528
- size_type BOOST_REGEX_CALL size()const
529
- {
530
- return (m_pimpl.get() ? m_pimpl->size() : 0);
531
- }
532
- //
533
- // max_size:
534
- size_type BOOST_REGEX_CALL max_size()const
535
- {
536
- return UINT_MAX;
537
- }
538
- //
539
- // empty:
540
- bool BOOST_REGEX_CALL empty()const
541
- {
542
- return (m_pimpl.get() ? 0 != m_pimpl->status() : true);
543
- }
544
-
545
- size_type BOOST_REGEX_CALL mark_count()const
546
- {
547
- return (m_pimpl.get() ? m_pimpl->mark_count() : 0);
548
- }
549
-
550
- int status()const
551
- {
552
- return (m_pimpl.get() ? m_pimpl->status() : regex_constants::error_empty);
553
- }
554
-
555
- int BOOST_REGEX_CALL compare(const basic_regex& that) const
556
- {
557
- if(m_pimpl.get() == that.m_pimpl.get())
558
- return 0;
559
- if(!m_pimpl.get())
560
- return -1;
561
- if(!that.m_pimpl.get())
562
- return 1;
563
- if(status() != that.status())
564
- return status() - that.status();
565
- if(flags() != that.flags())
566
- return flags() - that.flags();
567
- return str().compare(that.str());
568
- }
569
- bool BOOST_REGEX_CALL operator==(const basic_regex& e)const
570
- {
571
- return compare(e) == 0;
572
- }
573
- bool BOOST_REGEX_CALL operator != (const basic_regex& e)const
574
- {
575
- return compare(e) != 0;
576
- }
577
- bool BOOST_REGEX_CALL operator<(const basic_regex& e)const
578
- {
579
- return compare(e) < 0;
580
- }
581
- bool BOOST_REGEX_CALL operator>(const basic_regex& e)const
582
- {
583
- return compare(e) > 0;
584
- }
585
- bool BOOST_REGEX_CALL operator<=(const basic_regex& e)const
586
- {
587
- return compare(e) <= 0;
588
- }
589
- bool BOOST_REGEX_CALL operator>=(const basic_regex& e)const
590
- {
591
- return compare(e) >= 0;
592
- }
593
-
594
- //
595
- // The following are deprecated as public interfaces
596
- // but are available for compatibility with earlier versions.
597
- const charT* BOOST_REGEX_CALL expression()const
598
- {
599
- return (m_pimpl.get() && !m_pimpl->status() ? m_pimpl->expression() : 0);
600
- }
601
- unsigned int BOOST_REGEX_CALL set_expression(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
602
- {
603
- assign(p1, p2, f | regex_constants::no_except);
604
- return status();
605
- }
606
- unsigned int BOOST_REGEX_CALL set_expression(const charT* p, flag_type f = regex_constants::normal)
607
- {
608
- assign(p, f | regex_constants::no_except);
609
- return status();
610
- }
611
- unsigned int BOOST_REGEX_CALL error_code()const
612
- {
613
- return status();
614
- }
615
- //
616
- // private access methods:
617
- //
618
- const BOOST_REGEX_DETAIL_NS::re_syntax_base* get_first_state()const
619
- {
620
- BOOST_REGEX_ASSERT(0 != m_pimpl.get());
621
- return m_pimpl->get_first_state();
622
- }
623
- unsigned get_restart_type()const
624
- {
625
- BOOST_REGEX_ASSERT(0 != m_pimpl.get());
626
- return m_pimpl->get_restart_type();
627
- }
628
- const unsigned char* get_map()const
629
- {
630
- BOOST_REGEX_ASSERT(0 != m_pimpl.get());
631
- return m_pimpl->get_map();
632
- }
633
- const ::boost::regex_traits_wrapper<traits>& get_traits()const
634
- {
635
- BOOST_REGEX_ASSERT(0 != m_pimpl.get());
636
- return m_pimpl->get_traits();
637
- }
638
- bool can_be_null()const
639
- {
640
- BOOST_REGEX_ASSERT(0 != m_pimpl.get());
641
- return m_pimpl->can_be_null();
642
- }
643
- const BOOST_REGEX_DETAIL_NS::regex_data<charT, traits>& get_data()const
644
- {
645
- BOOST_REGEX_ASSERT(0 != m_pimpl.get());
646
- return m_pimpl->get_data();
647
- }
648
- boost::shared_ptr<BOOST_REGEX_DETAIL_NS::named_subexpressions > get_named_subs()const
649
- {
650
- return m_pimpl;
651
- }
652
-
653
- private:
654
- shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> > m_pimpl;
655
- };
656
-
657
- //
658
- // out of line members;
659
- // these are the only members that mutate the basic_regex object,
660
- // and are designed to provide the strong exception guarantee
661
- // (in the event of a throw, the state of the object remains unchanged).
662
- //
663
- template <class charT, class traits>
664
- basic_regex<charT, traits>& basic_regex<charT, traits>::do_assign(const charT* p1,
665
- const charT* p2,
666
- flag_type f)
667
- {
668
- shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> > temp;
669
- if(!m_pimpl.get())
670
- {
671
- temp = shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> >(new BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits>());
672
- }
673
- else
674
- {
675
- temp = shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> >(new BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits>(m_pimpl->m_ptraits));
676
- }
677
- temp->assign(p1, p2, f);
678
- temp.swap(m_pimpl);
679
- return *this;
680
- }
681
-
682
- template <class charT, class traits>
683
- typename basic_regex<charT, traits>::locale_type BOOST_REGEX_CALL basic_regex<charT, traits>::imbue(locale_type l)
684
- {
685
- shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> > temp(new BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits>());
686
- locale_type result = temp->imbue(l);
687
- temp.swap(m_pimpl);
688
- return result;
689
- }
690
-
691
- //
692
- // non-members:
693
- //
694
- template <class charT, class traits>
695
- void swap(basic_regex<charT, traits>& e1, basic_regex<charT, traits>& e2)
696
- {
697
- e1.swap(e2);
698
- }
699
-
700
- #ifndef BOOST_NO_STD_LOCALE
701
- template <class charT, class traits, class traits2>
702
- std::basic_ostream<charT, traits>&
703
- operator << (std::basic_ostream<charT, traits>& os,
704
- const basic_regex<charT, traits2>& e)
705
- {
706
- return (os << e.str());
707
- }
708
- #else
709
- template <class traits>
710
- std::ostream& operator << (std::ostream& os, const basic_regex<char, traits>& e)
711
- {
712
- return (os << e.str());
713
- }
714
- #endif
715
-
716
- //
717
- // class reg_expression:
718
- // this is provided for backwards compatibility only,
719
- // it is deprecated, no not use!
720
- //
721
- #ifdef BOOST_REGEX_NO_FWD
722
- template <class charT, class traits = regex_traits<charT> >
723
- #else
724
- template <class charT, class traits >
725
- #endif
726
- class reg_expression : public basic_regex<charT, traits>
727
- {
728
- public:
729
- typedef typename basic_regex<charT, traits>::flag_type flag_type;
730
- typedef typename basic_regex<charT, traits>::size_type size_type;
731
- explicit reg_expression(){}
732
- explicit reg_expression(const charT* p, flag_type f = regex_constants::normal)
733
- : basic_regex<charT, traits>(p, f){}
734
- reg_expression(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
735
- : basic_regex<charT, traits>(p1, p2, f){}
736
- reg_expression(const charT* p, size_type len, flag_type f)
737
- : basic_regex<charT, traits>(p, len, f){}
738
- reg_expression(const reg_expression& that)
739
- : basic_regex<charT, traits>(that) {}
740
- ~reg_expression(){}
741
- reg_expression& BOOST_REGEX_CALL operator=(const reg_expression& that)
742
- {
743
- return this->assign(that);
744
- }
745
-
746
- #if !defined(BOOST_NO_MEMBER_TEMPLATES)
747
- template <class ST, class SA>
748
- explicit reg_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
749
- : basic_regex<charT, traits>(p, f)
750
- {
751
- }
752
-
753
- template <class InputIterator>
754
- reg_expression(InputIterator arg_first, InputIterator arg_last, flag_type f = regex_constants::normal)
755
- : basic_regex<charT, traits>(arg_first, arg_last, f)
756
- {
757
- }
758
-
759
- template <class ST, class SA>
760
- reg_expression& BOOST_REGEX_CALL operator=(const std::basic_string<charT, ST, SA>& p)
761
- {
762
- this->assign(p);
763
- return *this;
764
- }
765
- #else
766
- explicit reg_expression(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
767
- : basic_regex<charT, traits>(p, f)
768
- {
769
- }
770
-
771
- reg_expression& BOOST_REGEX_CALL operator=(const std::basic_string<charT>& p)
772
- {
773
- this->assign(p);
774
- return *this;
775
- }
776
- #endif
777
-
778
- };
779
-
780
- #ifdef BOOST_MSVC
781
- #pragma warning (pop)
782
- #endif
783
-
784
- } // namespace boost
785
-
786
- #ifdef BOOST_MSVC
787
- #pragma warning(push)
788
- #pragma warning(disable: 4103)
789
- #endif
790
- #ifdef BOOST_HAS_ABI_HEADERS
791
- # include BOOST_ABI_SUFFIX
792
- #endif
793
- #ifdef BOOST_MSVC
794
- #pragma warning(pop)
795
- #endif
796
-
797
- #endif