passenger 6.0.27 → 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 (482) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +42 -2
  3. data/CONTRIBUTORS +2 -0
  4. data/Rakefile +6 -13
  5. data/bin/passenger-install-apache2-module +21 -22
  6. data/bin/passenger-install-nginx-module +50 -47
  7. data/bin/passenger-status +9 -10
  8. data/build/common_library.rb +4 -4
  9. data/build/support/cxx_dependency_map.rb +3 -621
  10. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
  11. data/build/test_basics.rb +4 -3
  12. data/dev/copy_boost_headers +54 -40
  13. data/dev/index_cxx_dependencies.rb +4 -0
  14. data/dev/ruby_server.rb +1 -1
  15. data/package.json +1 -1
  16. data/src/agent/Core/ApplicationPool/Implementation.cpp +1 -1
  17. data/src/agent/Core/ApplicationPool/Socket.h +3 -3
  18. data/src/agent/Core/ApplicationPool/TestSession.h +3 -4
  19. data/src/agent/Core/Config.h +1 -6
  20. data/src/agent/Core/Controller/Config.h +1 -1
  21. data/src/agent/Core/CoreMain.cpp +1 -0
  22. data/src/agent/Core/SecurityUpdateChecker.h +10 -1
  23. data/src/agent/Core/SpawningKit/Exceptions.h +0 -1
  24. data/src/agent/Core/SpawningKit/Handshake/Perform.h +13 -2
  25. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +23 -5
  26. data/src/agent/Shared/Fundamentals/AbortHandler.h +10 -22
  27. data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -0
  28. data/src/agent/Watchdog/Config.h +1 -1
  29. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -0
  30. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  31. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +14 -0
  32. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +3 -0
  33. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
  34. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +11 -0
  35. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
  36. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +17 -0
  37. data/src/apache2_module/Hooks.cpp +0 -6
  38. data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +2 -12
  39. data/src/cxx_supportlib/ConfigKit/Store.h +1 -6
  40. data/src/cxx_supportlib/Constants.h +1 -1
  41. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -7
  42. data/src/cxx_supportlib/Exceptions.cpp +178 -0
  43. data/src/cxx_supportlib/Exceptions.h +62 -177
  44. data/src/cxx_supportlib/IOTools/IOUtils.cpp +255 -228
  45. data/src/cxx_supportlib/IOTools/IOUtils.h +84 -121
  46. data/src/cxx_supportlib/ServerKit/Config.h +1 -6
  47. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
  48. data/src/cxx_supportlib/StaticString.h +1 -6
  49. data/src/cxx_supportlib/Utils/Curl.h +1 -6
  50. data/src/cxx_supportlib/Utils/ScopeGuard.h +0 -32
  51. data/src/cxx_supportlib/oxt/implementation.cpp +2 -2
  52. data/src/cxx_supportlib/oxt/spin_lock.hpp +94 -23
  53. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
  54. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
  55. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
  56. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
  57. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
  58. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
  59. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
  60. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
  61. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
  62. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
  63. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
  64. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
  65. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
  67. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
  68. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
  69. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
  70. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
  71. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
  72. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
  73. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
  74. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
  75. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
  76. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
  77. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
  78. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
  79. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
  80. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
  81. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
  82. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
  83. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
  84. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
  85. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
  86. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
  88. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
  89. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
  90. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
  91. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
  92. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
  93. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
  94. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
  95. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
  96. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
  97. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
  98. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
  99. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
  100. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
  101. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
  102. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
  103. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
  104. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
  105. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
  106. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
  107. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
  108. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
  109. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
  110. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
  111. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
  112. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
  115. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
  116. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
  117. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
  118. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
  119. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
  120. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
  121. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
  122. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
  123. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
  124. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
  125. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
  126. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
  127. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
  128. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
  129. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
  130. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
  131. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
  132. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
  133. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
  134. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
  135. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
  136. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
  137. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
  138. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
  139. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
  140. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
  141. data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
  142. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
  143. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
  144. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
  145. data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
  147. data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
  148. data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
  150. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
  152. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
  153. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
  154. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
  155. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
  156. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
  157. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
  158. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
  159. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
  160. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
  161. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
  162. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
  163. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
  164. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
  166. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
  167. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
  168. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
  169. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
  171. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
  172. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
  173. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
  174. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
  176. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
  177. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
  179. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
  180. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
  181. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
  182. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
  185. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
  186. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
  188. data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
  190. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
  191. data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
  192. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
  193. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
  194. data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
  196. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
  197. data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
  198. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
  199. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
  200. data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
  201. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
  202. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
  203. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
  204. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
  205. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
  207. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
  208. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
  209. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
  211. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
  216. data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
  217. data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
  218. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
  219. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
  220. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
  221. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
  222. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
  223. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
  224. data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
  225. data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
  226. data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
  227. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
  228. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
  230. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
  231. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
  232. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
  233. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
  235. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
  238. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
  239. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
  240. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
  241. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
  243. data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
  244. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
  245. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
  246. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
  248. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
  249. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
  250. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
  251. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  252. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
  253. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
  254. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
  255. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
  256. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
  257. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
  258. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
  260. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
  261. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
  262. data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
  263. data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
  264. data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
  265. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
  266. data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
  267. data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
  269. data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
  270. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
  271. data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
  272. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
  273. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
  274. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
  275. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
  276. data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
  285. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
  286. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
  287. data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
  288. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
  289. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
  290. data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
  297. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
  298. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
  299. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
  300. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
  301. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
  302. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
  303. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
  304. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
  305. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
  307. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
  308. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
  309. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
  310. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
  311. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
  312. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
  313. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
  314. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
  315. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
  316. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
  317. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
  318. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
  319. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
  320. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
  321. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
  322. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
  323. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
  324. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
  325. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
  326. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
  329. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
  330. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
  331. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
  332. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
  333. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
  334. data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
  335. data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
  336. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
  337. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
  338. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
  339. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
  340. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
  341. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
  342. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
  343. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
  344. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
  345. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
  346. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
  347. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
  348. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
  349. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
  350. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
  351. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
  352. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
  353. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
  354. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
  355. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
  356. data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
  357. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
  358. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
  359. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
  360. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
  361. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
  362. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  363. data/src/nginx_module/ContentHandler.c +2 -0
  364. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
  365. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
  366. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
  367. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
  368. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
  369. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
  370. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
  371. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
  372. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +12 -23
  373. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +31 -32
  374. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +2 -2
  375. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -3
  376. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
  377. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
  378. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
  379. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
  380. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
  381. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  382. metadata +27 -104
  383. data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +0 -75
  384. data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +0 -85
  385. data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +0 -38
  386. data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +0 -111
  387. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
  388. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
  389. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
  390. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
  391. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
  392. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
  393. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
  394. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
  395. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
  396. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
  397. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
  398. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
  399. data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
  400. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
  401. data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
  402. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
  403. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
  404. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
  405. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
  406. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
  407. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
  408. data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
  409. data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
  410. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
  411. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
  412. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
  413. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
  414. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
  415. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
  416. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
  417. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
  418. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
  419. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
  420. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
  421. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
  422. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
  423. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
  424. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
  425. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
  426. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
  427. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
  428. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
  429. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
  430. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
  431. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
  432. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
  433. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
  434. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
  435. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
  436. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
  437. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
  438. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
  439. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
  440. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
  441. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
  442. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
  443. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
  444. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
  445. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
  446. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
  447. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
  448. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
  449. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
  450. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
  451. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
  452. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
  453. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
  454. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
  455. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
  456. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
  457. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
  458. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
  459. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
  460. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
  461. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
  462. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
  463. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
  464. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
  465. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
  466. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
  467. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
  468. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
  469. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
  470. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
  471. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
  472. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
  473. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
  474. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
  475. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
  476. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
  477. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
  478. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
  479. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
  480. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
  481. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
  482. 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