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,1030 +0,0 @@
1
- /*
2
- *
3
- * Copyright (c) 2002
4
- * John Maddock
5
- *
6
- * Use, modification and distribution are subject to the
7
- * Boost Software License, Version 1.0. (See accompanying file
8
- * LICENSE_1_0.txt or copy at 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 perl_matcher_common.cpp
15
- * VERSION see <boost/version.hpp>
16
- * DESCRIPTION: Definitions of perl_matcher member functions that are
17
- * common to both the recursive and non-recursive versions.
18
- */
19
-
20
- #ifndef BOOST_REGEX_V4_PERL_MATCHER_COMMON_HPP
21
- #define BOOST_REGEX_V4_PERL_MATCHER_COMMON_HPP
22
-
23
- #ifdef BOOST_MSVC
24
- #pragma warning(push)
25
- #pragma warning(disable: 4103)
26
- #if BOOST_MSVC >= 1800
27
- #pragma warning(disable: 26812)
28
- #endif
29
- #endif
30
- #ifdef BOOST_HAS_ABI_HEADERS
31
- # include BOOST_ABI_PREFIX
32
- #endif
33
- #ifdef BOOST_MSVC
34
- #pragma warning(pop)
35
- #endif
36
-
37
- #ifdef BOOST_BORLANDC
38
- # pragma option push -w-8008 -w-8066
39
- #endif
40
- #ifdef BOOST_MSVC
41
- # pragma warning(push)
42
- #if BOOST_MSVC < 1910
43
- #pragma warning(disable:4800)
44
- #endif
45
- #endif
46
-
47
- namespace boost{
48
- namespace BOOST_REGEX_DETAIL_NS{
49
-
50
- #ifdef BOOST_MSVC
51
- # pragma warning(push)
52
- #pragma warning(disable:26812)
53
- #endif
54
- template <class BidiIterator, class Allocator, class traits>
55
- void perl_matcher<BidiIterator, Allocator, traits>::construct_init(const basic_regex<char_type, traits>& e, match_flag_type f)
56
- {
57
- typedef typename regex_iterator_traits<BidiIterator>::iterator_category category;
58
- typedef typename basic_regex<char_type, traits>::flag_type expression_flag_type;
59
-
60
- if(e.empty())
61
- {
62
- // precondition failure: e is not a valid regex.
63
- std::invalid_argument ex("Invalid regular expression object");
64
- boost::throw_exception(ex);
65
- }
66
- pstate = 0;
67
- m_match_flags = f;
68
- estimate_max_state_count(static_cast<category*>(0));
69
- expression_flag_type re_f = re.flags();
70
- icase = re_f & regex_constants::icase;
71
- if(!(m_match_flags & (match_perl|match_posix)))
72
- {
73
- if((re_f & (regbase::main_option_type|regbase::no_perl_ex)) == 0)
74
- m_match_flags |= match_perl;
75
- else if((re_f & (regbase::main_option_type|regbase::emacs_ex)) == (regbase::basic_syntax_group|regbase::emacs_ex))
76
- m_match_flags |= match_perl;
77
- else if((re_f & (regbase::main_option_type|regbase::literal)) == (regbase::literal))
78
- m_match_flags |= match_perl;
79
- else
80
- m_match_flags |= match_posix;
81
- }
82
- if(m_match_flags & match_posix)
83
- {
84
- m_temp_match.reset(new match_results<BidiIterator, Allocator>());
85
- m_presult = m_temp_match.get();
86
- }
87
- else
88
- m_presult = &m_result;
89
- #ifdef BOOST_REGEX_NON_RECURSIVE
90
- m_stack_base = 0;
91
- m_backup_state = 0;
92
- #elif defined(BOOST_REGEX_RECURSIVE)
93
- m_can_backtrack = true;
94
- m_have_accept = false;
95
- #endif
96
- // find the value to use for matching word boundaries:
97
- m_word_mask = re.get_data().m_word_mask;
98
- // find bitmask to use for matching '.':
99
- match_any_mask = static_cast<unsigned char>((f & match_not_dot_newline) ? BOOST_REGEX_DETAIL_NS::test_not_newline : BOOST_REGEX_DETAIL_NS::test_newline);
100
- // Disable match_any if requested in the state machine:
101
- if(e.get_data().m_disable_match_any)
102
- m_match_flags &= regex_constants::match_not_any;
103
- }
104
- #ifdef BOOST_MSVC
105
- # pragma warning(pop)
106
- #endif
107
-
108
- template <class BidiIterator, class Allocator, class traits>
109
- void perl_matcher<BidiIterator, Allocator, traits>::estimate_max_state_count(std::random_access_iterator_tag*)
110
- {
111
- //
112
- // How many states should we allow our machine to visit before giving up?
113
- // This is a heuristic: it takes the greater of O(N^2) and O(NS^2)
114
- // where N is the length of the string, and S is the number of states
115
- // in the machine. It's tempting to up this to O(N^2S) or even O(N^2S^2)
116
- // but these take unreasonably amounts of time to bale out in pathological
117
- // cases.
118
- //
119
- // Calculate NS^2 first:
120
- //
121
- static const std::ptrdiff_t k = 100000;
122
- std::ptrdiff_t dist = boost::BOOST_REGEX_DETAIL_NS::distance(base, last);
123
- if(dist == 0)
124
- dist = 1;
125
- std::ptrdiff_t states = re.size();
126
- if(states == 0)
127
- states = 1;
128
- if ((std::numeric_limits<std::ptrdiff_t>::max)() / states < states)
129
- {
130
- max_state_count = (std::min)((std::ptrdiff_t)BOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits<std::ptrdiff_t>::max)() - 2);
131
- return;
132
- }
133
- states *= states;
134
- if((std::numeric_limits<std::ptrdiff_t>::max)() / dist < states)
135
- {
136
- max_state_count = (std::min)((std::ptrdiff_t)BOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits<std::ptrdiff_t>::max)() - 2);
137
- return;
138
- }
139
- states *= dist;
140
- if((std::numeric_limits<std::ptrdiff_t>::max)() - k < states)
141
- {
142
- max_state_count = (std::min)((std::ptrdiff_t)BOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits<std::ptrdiff_t>::max)() - 2);
143
- return;
144
- }
145
- states += k;
146
-
147
- max_state_count = states;
148
-
149
- //
150
- // Now calculate N^2:
151
- //
152
- states = dist;
153
- if((std::numeric_limits<std::ptrdiff_t>::max)() / dist < states)
154
- {
155
- max_state_count = (std::min)((std::ptrdiff_t)BOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits<std::ptrdiff_t>::max)() - 2);
156
- return;
157
- }
158
- states *= dist;
159
- if((std::numeric_limits<std::ptrdiff_t>::max)() - k < states)
160
- {
161
- max_state_count = (std::min)((std::ptrdiff_t)BOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits<std::ptrdiff_t>::max)() - 2);
162
- return;
163
- }
164
- states += k;
165
- //
166
- // N^2 can be a very large number indeed, to prevent things getting out
167
- // of control, cap the max states:
168
- //
169
- if(states > BOOST_REGEX_MAX_STATE_COUNT)
170
- states = BOOST_REGEX_MAX_STATE_COUNT;
171
- //
172
- // If (the possibly capped) N^2 is larger than our first estimate,
173
- // use this instead:
174
- //
175
- if(states > max_state_count)
176
- max_state_count = states;
177
- }
178
-
179
- template <class BidiIterator, class Allocator, class traits>
180
- inline void perl_matcher<BidiIterator, Allocator, traits>::estimate_max_state_count(void*)
181
- {
182
- // we don't know how long the sequence is:
183
- max_state_count = BOOST_REGEX_MAX_STATE_COUNT;
184
- }
185
-
186
- #ifdef BOOST_REGEX_HAS_MS_STACK_GUARD
187
- template <class BidiIterator, class Allocator, class traits>
188
- inline bool perl_matcher<BidiIterator, Allocator, traits>::protected_call(
189
- protected_proc_type proc)
190
- {
191
- ::boost::BOOST_REGEX_DETAIL_NS::concrete_protected_call
192
- <perl_matcher<BidiIterator, Allocator, traits> >
193
- obj(this, proc);
194
- return obj.execute();
195
-
196
- }
197
- #endif
198
-
199
- template <class BidiIterator, class Allocator, class traits>
200
- inline bool perl_matcher<BidiIterator, Allocator, traits>::match()
201
- {
202
- #ifdef BOOST_REGEX_HAS_MS_STACK_GUARD
203
- return protected_call(&perl_matcher<BidiIterator, Allocator, traits>::match_imp);
204
- #else
205
- return match_imp();
206
- #endif
207
- }
208
-
209
- template <class BidiIterator, class Allocator, class traits>
210
- bool perl_matcher<BidiIterator, Allocator, traits>::match_imp()
211
- {
212
- // initialise our stack if we are non-recursive:
213
- #ifdef BOOST_REGEX_NON_RECURSIVE
214
- save_state_init init(&m_stack_base, &m_backup_state);
215
- used_block_count = BOOST_REGEX_MAX_BLOCKS;
216
- #if !defined(BOOST_NO_EXCEPTIONS)
217
- try{
218
- #endif
219
- #endif
220
-
221
- // reset our state machine:
222
- position = base;
223
- search_base = base;
224
- state_count = 0;
225
- m_match_flags |= regex_constants::match_all;
226
- m_presult->set_size((m_match_flags & match_nosubs) ? 1u : static_cast<typename results_type::size_type>(1u + re.mark_count()), search_base, last);
227
- m_presult->set_base(base);
228
- m_presult->set_named_subs(this->re.get_named_subs());
229
- if(m_match_flags & match_posix)
230
- m_result = *m_presult;
231
- verify_options(re.flags(), m_match_flags);
232
- if(0 == match_prefix())
233
- return false;
234
- return (m_result[0].second == last) && (m_result[0].first == base);
235
-
236
- #if defined(BOOST_REGEX_NON_RECURSIVE) && !defined(BOOST_NO_EXCEPTIONS)
237
- }
238
- catch(...)
239
- {
240
- // unwind all pushed states, apart from anything else this
241
- // ensures that all the states are correctly destructed
242
- // not just the memory freed.
243
- while(unwind(true)){}
244
- throw;
245
- }
246
- #endif
247
- }
248
-
249
- template <class BidiIterator, class Allocator, class traits>
250
- inline bool perl_matcher<BidiIterator, Allocator, traits>::find()
251
- {
252
- #ifdef BOOST_REGEX_HAS_MS_STACK_GUARD
253
- return protected_call(&perl_matcher<BidiIterator, Allocator, traits>::find_imp);
254
- #else
255
- return find_imp();
256
- #endif
257
- }
258
-
259
- template <class BidiIterator, class Allocator, class traits>
260
- bool perl_matcher<BidiIterator, Allocator, traits>::find_imp()
261
- {
262
- static matcher_proc_type const s_find_vtable[7] =
263
- {
264
- &perl_matcher<BidiIterator, Allocator, traits>::find_restart_any,
265
- &perl_matcher<BidiIterator, Allocator, traits>::find_restart_word,
266
- &perl_matcher<BidiIterator, Allocator, traits>::find_restart_line,
267
- &perl_matcher<BidiIterator, Allocator, traits>::find_restart_buf,
268
- &perl_matcher<BidiIterator, Allocator, traits>::match_prefix,
269
- &perl_matcher<BidiIterator, Allocator, traits>::find_restart_lit,
270
- &perl_matcher<BidiIterator, Allocator, traits>::find_restart_lit,
271
- };
272
-
273
- // initialise our stack if we are non-recursive:
274
- #ifdef BOOST_REGEX_NON_RECURSIVE
275
- save_state_init init(&m_stack_base, &m_backup_state);
276
- used_block_count = BOOST_REGEX_MAX_BLOCKS;
277
- #if !defined(BOOST_NO_EXCEPTIONS)
278
- try{
279
- #endif
280
- #endif
281
-
282
- state_count = 0;
283
- if((m_match_flags & regex_constants::match_init) == 0)
284
- {
285
- // reset our state machine:
286
- search_base = position = base;
287
- pstate = re.get_first_state();
288
- m_presult->set_size((m_match_flags & match_nosubs) ? 1u : static_cast<typename results_type::size_type>(1u + re.mark_count()), base, last);
289
- m_presult->set_base(base);
290
- m_presult->set_named_subs(this->re.get_named_subs());
291
- m_match_flags |= regex_constants::match_init;
292
- }
293
- else
294
- {
295
- // start again:
296
- search_base = position = m_result[0].second;
297
- // If last match was null and match_not_null was not set then increment
298
- // our start position, otherwise we go into an infinite loop:
299
- if(((m_match_flags & match_not_null) == 0) && (m_result.length() == 0))
300
- {
301
- if(position == last)
302
- return false;
303
- else
304
- ++position;
305
- }
306
- // reset $` start:
307
- m_presult->set_size((m_match_flags & match_nosubs) ? 1u : static_cast<typename results_type::size_type>(1u + re.mark_count()), search_base, last);
308
- //if((base != search_base) && (base == backstop))
309
- // m_match_flags |= match_prev_avail;
310
- }
311
- if(m_match_flags & match_posix)
312
- {
313
- m_result.set_size(static_cast<typename results_type::size_type>(1u + re.mark_count()), base, last);
314
- m_result.set_base(base);
315
- }
316
-
317
- verify_options(re.flags(), m_match_flags);
318
- // find out what kind of expression we have:
319
- unsigned type = (m_match_flags & match_continuous) ?
320
- static_cast<unsigned int>(regbase::restart_continue)
321
- : static_cast<unsigned int>(re.get_restart_type());
322
-
323
- // call the appropriate search routine:
324
- matcher_proc_type proc = s_find_vtable[type];
325
- return (this->*proc)();
326
-
327
- #if defined(BOOST_REGEX_NON_RECURSIVE) && !defined(BOOST_NO_EXCEPTIONS)
328
- }
329
- catch(...)
330
- {
331
- // unwind all pushed states, apart from anything else this
332
- // ensures that all the states are correctly destructed
333
- // not just the memory freed.
334
- while(unwind(true)){}
335
- throw;
336
- }
337
- #endif
338
- }
339
-
340
- template <class BidiIterator, class Allocator, class traits>
341
- bool perl_matcher<BidiIterator, Allocator, traits>::match_prefix()
342
- {
343
- m_has_partial_match = false;
344
- m_has_found_match = false;
345
- pstate = re.get_first_state();
346
- m_presult->set_first(position);
347
- restart = position;
348
- match_all_states();
349
- if(!m_has_found_match && m_has_partial_match && (m_match_flags & match_partial))
350
- {
351
- m_has_found_match = true;
352
- m_presult->set_second(last, 0, false);
353
- position = last;
354
- if((m_match_flags & match_posix) == match_posix)
355
- {
356
- m_result.maybe_assign(*m_presult);
357
- }
358
- }
359
- #ifdef BOOST_REGEX_MATCH_EXTRA
360
- if(m_has_found_match && (match_extra & m_match_flags))
361
- {
362
- //
363
- // we have a match, reverse the capture information:
364
- //
365
- for(unsigned i = 0; i < m_presult->size(); ++i)
366
- {
367
- typename sub_match<BidiIterator>::capture_sequence_type & seq = ((*m_presult)[i]).get_captures();
368
- std::reverse(seq.begin(), seq.end());
369
- }
370
- }
371
- #endif
372
- if(!m_has_found_match)
373
- position = restart; // reset search postion
374
- #ifdef BOOST_REGEX_RECURSIVE
375
- m_can_backtrack = true; // reset for further searches
376
- #endif
377
- return m_has_found_match;
378
- }
379
-
380
- template <class BidiIterator, class Allocator, class traits>
381
- bool perl_matcher<BidiIterator, Allocator, traits>::match_literal()
382
- {
383
- unsigned int len = static_cast<const re_literal*>(pstate)->length;
384
- const char_type* what = reinterpret_cast<const char_type*>(static_cast<const re_literal*>(pstate) + 1);
385
- //
386
- // compare string with what we stored in
387
- // our records:
388
- for(unsigned int i = 0; i < len; ++i, ++position)
389
- {
390
- if((position == last) || (traits_inst.translate(*position, icase) != what[i]))
391
- return false;
392
- }
393
- pstate = pstate->next.p;
394
- return true;
395
- }
396
-
397
- template <class BidiIterator, class Allocator, class traits>
398
- bool perl_matcher<BidiIterator, Allocator, traits>::match_start_line()
399
- {
400
- if(position == backstop)
401
- {
402
- if((m_match_flags & match_prev_avail) == 0)
403
- {
404
- if((m_match_flags & match_not_bol) == 0)
405
- {
406
- pstate = pstate->next.p;
407
- return true;
408
- }
409
- return false;
410
- }
411
- }
412
- else if(m_match_flags & match_single_line)
413
- return false;
414
-
415
- // check the previous value character:
416
- BidiIterator t(position);
417
- --t;
418
- if(position != last)
419
- {
420
- if(is_separator(*t) && !((*t == static_cast<char_type>('\r')) && (*position == static_cast<char_type>('\n'))) )
421
- {
422
- pstate = pstate->next.p;
423
- return true;
424
- }
425
- }
426
- else if(is_separator(*t))
427
- {
428
- pstate = pstate->next.p;
429
- return true;
430
- }
431
- return false;
432
- }
433
-
434
- template <class BidiIterator, class Allocator, class traits>
435
- bool perl_matcher<BidiIterator, Allocator, traits>::match_end_line()
436
- {
437
- if(position != last)
438
- {
439
- if(m_match_flags & match_single_line)
440
- return false;
441
- // we're not yet at the end so *first is always valid:
442
- if(is_separator(*position))
443
- {
444
- if((position != backstop) || (m_match_flags & match_prev_avail))
445
- {
446
- // check that we're not in the middle of \r\n sequence
447
- BidiIterator t(position);
448
- --t;
449
- if((*t == static_cast<char_type>('\r')) && (*position == static_cast<char_type>('\n')))
450
- {
451
- return false;
452
- }
453
- }
454
- pstate = pstate->next.p;
455
- return true;
456
- }
457
- }
458
- else if((m_match_flags & match_not_eol) == 0)
459
- {
460
- pstate = pstate->next.p;
461
- return true;
462
- }
463
- return false;
464
- }
465
-
466
- template <class BidiIterator, class Allocator, class traits>
467
- bool perl_matcher<BidiIterator, Allocator, traits>::match_wild()
468
- {
469
- if(position == last)
470
- return false;
471
- if(is_separator(*position) && ((match_any_mask & static_cast<const re_dot*>(pstate)->mask) == 0))
472
- return false;
473
- if((*position == char_type(0)) && (m_match_flags & match_not_dot_null))
474
- return false;
475
- pstate = pstate->next.p;
476
- ++position;
477
- return true;
478
- }
479
-
480
- template <class BidiIterator, class Allocator, class traits>
481
- bool perl_matcher<BidiIterator, Allocator, traits>::match_word_boundary()
482
- {
483
- bool b; // indcates whether next character is a word character
484
- if(position != last)
485
- {
486
- // prev and this character must be opposites:
487
- b = traits_inst.isctype(*position, m_word_mask);
488
- }
489
- else
490
- {
491
- if (m_match_flags & match_not_eow)
492
- return false;
493
- b = false;
494
- }
495
- if((position == backstop) && ((m_match_flags & match_prev_avail) == 0))
496
- {
497
- if(m_match_flags & match_not_bow)
498
- return false;
499
- else
500
- b ^= false;
501
- }
502
- else
503
- {
504
- --position;
505
- b ^= traits_inst.isctype(*position, m_word_mask);
506
- ++position;
507
- }
508
- if(b)
509
- {
510
- pstate = pstate->next.p;
511
- return true;
512
- }
513
- return false; // no match if we get to here...
514
- }
515
-
516
- template <class BidiIterator, class Allocator, class traits>
517
- bool perl_matcher<BidiIterator, Allocator, traits>::match_within_word()
518
- {
519
- if(position == last)
520
- return false;
521
- // both prev and this character must be m_word_mask:
522
- bool prev = traits_inst.isctype(*position, m_word_mask);
523
- {
524
- bool b;
525
- if((position == backstop) && ((m_match_flags & match_prev_avail) == 0))
526
- return false;
527
- else
528
- {
529
- --position;
530
- b = traits_inst.isctype(*position, m_word_mask);
531
- ++position;
532
- }
533
- if(b == prev)
534
- {
535
- pstate = pstate->next.p;
536
- return true;
537
- }
538
- }
539
- return false;
540
- }
541
-
542
- template <class BidiIterator, class Allocator, class traits>
543
- bool perl_matcher<BidiIterator, Allocator, traits>::match_word_start()
544
- {
545
- if(position == last)
546
- return false; // can't be starting a word if we're already at the end of input
547
- if(!traits_inst.isctype(*position, m_word_mask))
548
- return false; // next character isn't a word character
549
- if((position == backstop) && ((m_match_flags & match_prev_avail) == 0))
550
- {
551
- if(m_match_flags & match_not_bow)
552
- return false; // no previous input
553
- }
554
- else
555
- {
556
- // otherwise inside buffer:
557
- BidiIterator t(position);
558
- --t;
559
- if(traits_inst.isctype(*t, m_word_mask))
560
- return false; // previous character not non-word
561
- }
562
- // OK we have a match:
563
- pstate = pstate->next.p;
564
- return true;
565
- }
566
-
567
- template <class BidiIterator, class Allocator, class traits>
568
- bool perl_matcher<BidiIterator, Allocator, traits>::match_word_end()
569
- {
570
- if((position == backstop) && ((m_match_flags & match_prev_avail) == 0))
571
- return false; // start of buffer can't be end of word
572
- BidiIterator t(position);
573
- --t;
574
- if(traits_inst.isctype(*t, m_word_mask) == false)
575
- return false; // previous character wasn't a word character
576
-
577
- if(position == last)
578
- {
579
- if(m_match_flags & match_not_eow)
580
- return false; // end of buffer but not end of word
581
- }
582
- else
583
- {
584
- // otherwise inside buffer:
585
- if(traits_inst.isctype(*position, m_word_mask))
586
- return false; // next character is a word character
587
- }
588
- pstate = pstate->next.p;
589
- return true; // if we fall through to here then we've succeeded
590
- }
591
-
592
- template <class BidiIterator, class Allocator, class traits>
593
- bool perl_matcher<BidiIterator, Allocator, traits>::match_buffer_start()
594
- {
595
- if((position != backstop) || (m_match_flags & match_not_bob))
596
- return false;
597
- // OK match:
598
- pstate = pstate->next.p;
599
- return true;
600
- }
601
-
602
- template <class BidiIterator, class Allocator, class traits>
603
- bool perl_matcher<BidiIterator, Allocator, traits>::match_buffer_end()
604
- {
605
- if((position != last) || (m_match_flags & match_not_eob))
606
- return false;
607
- // OK match:
608
- pstate = pstate->next.p;
609
- return true;
610
- }
611
-
612
- template <class BidiIterator, class Allocator, class traits>
613
- bool perl_matcher<BidiIterator, Allocator, traits>::match_backref()
614
- {
615
- //
616
- // Compare with what we previously matched.
617
- // Note that this succeeds if the backref did not partisipate
618
- // in the match, this is in line with ECMAScript, but not Perl
619
- // or PCRE.
620
- //
621
- int index = static_cast<const re_brace*>(pstate)->index;
622
- if(index >= hash_value_mask)
623
- {
624
- named_subexpressions::range_type r = re.get_data().equal_range(index);
625
- BOOST_REGEX_ASSERT(r.first != r.second);
626
- do
627
- {
628
- index = r.first->index;
629
- ++r.first;
630
- }while((r.first != r.second) && ((*m_presult)[index].matched != true));
631
- }
632
-
633
- if((m_match_flags & match_perl) && !(*m_presult)[index].matched)
634
- return false;
635
-
636
- BidiIterator i = (*m_presult)[index].first;
637
- BidiIterator j = (*m_presult)[index].second;
638
- while(i != j)
639
- {
640
- if((position == last) || (traits_inst.translate(*position, icase) != traits_inst.translate(*i, icase)))
641
- return false;
642
- ++i;
643
- ++position;
644
- }
645
- pstate = pstate->next.p;
646
- return true;
647
- }
648
-
649
- template <class BidiIterator, class Allocator, class traits>
650
- bool perl_matcher<BidiIterator, Allocator, traits>::match_long_set()
651
- {
652
- typedef typename traits::char_class_type char_class_type;
653
- // let the traits class do the work:
654
- if(position == last)
655
- return false;
656
- BidiIterator t = re_is_set_member(position, last, static_cast<const re_set_long<char_class_type>*>(pstate), re.get_data(), icase);
657
- if(t != position)
658
- {
659
- pstate = pstate->next.p;
660
- position = t;
661
- return true;
662
- }
663
- return false;
664
- }
665
-
666
- template <class BidiIterator, class Allocator, class traits>
667
- bool perl_matcher<BidiIterator, Allocator, traits>::match_set()
668
- {
669
- if(position == last)
670
- return false;
671
- if(static_cast<const re_set*>(pstate)->_map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
672
- {
673
- pstate = pstate->next.p;
674
- ++position;
675
- return true;
676
- }
677
- return false;
678
- }
679
-
680
- template <class BidiIterator, class Allocator, class traits>
681
- bool perl_matcher<BidiIterator, Allocator, traits>::match_jump()
682
- {
683
- pstate = static_cast<const re_jump*>(pstate)->alt.p;
684
- return true;
685
- }
686
-
687
- template <class BidiIterator, class Allocator, class traits>
688
- bool perl_matcher<BidiIterator, Allocator, traits>::match_combining()
689
- {
690
- if(position == last)
691
- return false;
692
- if(is_combining(traits_inst.translate(*position, icase)))
693
- return false;
694
- ++position;
695
- while((position != last) && is_combining(traits_inst.translate(*position, icase)))
696
- ++position;
697
- pstate = pstate->next.p;
698
- return true;
699
- }
700
-
701
- template <class BidiIterator, class Allocator, class traits>
702
- bool perl_matcher<BidiIterator, Allocator, traits>::match_soft_buffer_end()
703
- {
704
- if(m_match_flags & match_not_eob)
705
- return false;
706
- BidiIterator p(position);
707
- while((p != last) && is_separator(traits_inst.translate(*p, icase)))++p;
708
- if(p != last)
709
- return false;
710
- pstate = pstate->next.p;
711
- return true;
712
- }
713
-
714
- template <class BidiIterator, class Allocator, class traits>
715
- bool perl_matcher<BidiIterator, Allocator, traits>::match_restart_continue()
716
- {
717
- if(position == search_base)
718
- {
719
- pstate = pstate->next.p;
720
- return true;
721
- }
722
- return false;
723
- }
724
-
725
- template <class BidiIterator, class Allocator, class traits>
726
- bool perl_matcher<BidiIterator, Allocator, traits>::match_backstep()
727
- {
728
- #ifdef BOOST_MSVC
729
- #pragma warning(push)
730
- #pragma warning(disable:4127)
731
- #endif
732
- if( ::boost::is_random_access_iterator<BidiIterator>::value)
733
- {
734
- std::ptrdiff_t maxlen = ::boost::BOOST_REGEX_DETAIL_NS::distance(backstop, position);
735
- if(maxlen < static_cast<const re_brace*>(pstate)->index)
736
- return false;
737
- std::advance(position, -static_cast<const re_brace*>(pstate)->index);
738
- }
739
- else
740
- {
741
- int c = static_cast<const re_brace*>(pstate)->index;
742
- while(c--)
743
- {
744
- if(position == backstop)
745
- return false;
746
- --position;
747
- }
748
- }
749
- pstate = pstate->next.p;
750
- return true;
751
- #ifdef BOOST_MSVC
752
- #pragma warning(pop)
753
- #endif
754
- }
755
-
756
- template <class BidiIterator, class Allocator, class traits>
757
- inline bool perl_matcher<BidiIterator, Allocator, traits>::match_assert_backref()
758
- {
759
- // return true if marked sub-expression N has been matched:
760
- int index = static_cast<const re_brace*>(pstate)->index;
761
- bool result = false;
762
- if(index == 9999)
763
- {
764
- // Magic value for a (DEFINE) block:
765
- return false;
766
- }
767
- else if(index > 0)
768
- {
769
- // Have we matched subexpression "index"?
770
- // Check if index is a hash value:
771
- if(index >= hash_value_mask)
772
- {
773
- named_subexpressions::range_type r = re.get_data().equal_range(index);
774
- while(r.first != r.second)
775
- {
776
- if((*m_presult)[r.first->index].matched)
777
- {
778
- result = true;
779
- break;
780
- }
781
- ++r.first;
782
- }
783
- }
784
- else
785
- {
786
- result = (*m_presult)[index].matched;
787
- }
788
- pstate = pstate->next.p;
789
- }
790
- else
791
- {
792
- // Have we recursed into subexpression "index"?
793
- // If index == 0 then check for any recursion at all, otherwise for recursion to -index-1.
794
- int idx = -(index+1);
795
- if(idx >= hash_value_mask)
796
- {
797
- named_subexpressions::range_type r = re.get_data().equal_range(idx);
798
- int stack_index = recursion_stack.empty() ? -1 : recursion_stack.back().idx;
799
- while(r.first != r.second)
800
- {
801
- result |= (stack_index == r.first->index);
802
- if(result)break;
803
- ++r.first;
804
- }
805
- }
806
- else
807
- {
808
- result = !recursion_stack.empty() && ((recursion_stack.back().idx == idx) || (index == 0));
809
- }
810
- pstate = pstate->next.p;
811
- }
812
- return result;
813
- }
814
-
815
- template <class BidiIterator, class Allocator, class traits>
816
- bool perl_matcher<BidiIterator, Allocator, traits>::match_fail()
817
- {
818
- // Just force a backtrack:
819
- return false;
820
- }
821
-
822
- template <class BidiIterator, class Allocator, class traits>
823
- bool perl_matcher<BidiIterator, Allocator, traits>::match_accept()
824
- {
825
- if(!recursion_stack.empty())
826
- {
827
- return skip_until_paren(recursion_stack.back().idx);
828
- }
829
- else
830
- {
831
- return skip_until_paren(INT_MAX);
832
- }
833
- }
834
-
835
- template <class BidiIterator, class Allocator, class traits>
836
- bool perl_matcher<BidiIterator, Allocator, traits>::find_restart_any()
837
- {
838
- #ifdef BOOST_MSVC
839
- #pragma warning(push)
840
- #pragma warning(disable:4127)
841
- #endif
842
- const unsigned char* _map = re.get_map();
843
- while(true)
844
- {
845
- // skip everything we can't match:
846
- while((position != last) && !can_start(*position, _map, (unsigned char)mask_any) )
847
- ++position;
848
- if(position == last)
849
- {
850
- // run out of characters, try a null match if possible:
851
- if(re.can_be_null())
852
- return match_prefix();
853
- break;
854
- }
855
- // now try and obtain a match:
856
- if(match_prefix())
857
- return true;
858
- if(position == last)
859
- return false;
860
- ++position;
861
- }
862
- return false;
863
- #ifdef BOOST_MSVC
864
- #pragma warning(pop)
865
- #endif
866
- }
867
-
868
- template <class BidiIterator, class Allocator, class traits>
869
- bool perl_matcher<BidiIterator, Allocator, traits>::find_restart_word()
870
- {
871
- #ifdef BOOST_MSVC
872
- #pragma warning(push)
873
- #pragma warning(disable:4127)
874
- #endif
875
- // do search optimised for word starts:
876
- const unsigned char* _map = re.get_map();
877
- if((m_match_flags & match_prev_avail) || (position != base))
878
- --position;
879
- else if(match_prefix())
880
- return true;
881
- do
882
- {
883
- while((position != last) && traits_inst.isctype(*position, m_word_mask))
884
- ++position;
885
- while((position != last) && !traits_inst.isctype(*position, m_word_mask))
886
- ++position;
887
- if(position == last)
888
- break;
889
-
890
- if(can_start(*position, _map, (unsigned char)mask_any) )
891
- {
892
- if(match_prefix())
893
- return true;
894
- }
895
- if(position == last)
896
- break;
897
- } while(true);
898
- return false;
899
- #ifdef BOOST_MSVC
900
- #pragma warning(pop)
901
- #endif
902
- }
903
-
904
- template <class BidiIterator, class Allocator, class traits>
905
- bool perl_matcher<BidiIterator, Allocator, traits>::find_restart_line()
906
- {
907
- // do search optimised for line starts:
908
- const unsigned char* _map = re.get_map();
909
- if(match_prefix())
910
- return true;
911
- while(position != last)
912
- {
913
- while((position != last) && !is_separator(*position))
914
- ++position;
915
- if(position == last)
916
- return false;
917
- ++position;
918
- if(position == last)
919
- {
920
- if(re.can_be_null() && match_prefix())
921
- return true;
922
- return false;
923
- }
924
-
925
- if( can_start(*position, _map, (unsigned char)mask_any) )
926
- {
927
- if(match_prefix())
928
- return true;
929
- }
930
- if(position == last)
931
- return false;
932
- //++position;
933
- }
934
- return false;
935
- }
936
-
937
- template <class BidiIterator, class Allocator, class traits>
938
- bool perl_matcher<BidiIterator, Allocator, traits>::find_restart_buf()
939
- {
940
- if((position == base) && ((m_match_flags & match_not_bob) == 0))
941
- return match_prefix();
942
- return false;
943
- }
944
-
945
- template <class BidiIterator, class Allocator, class traits>
946
- bool perl_matcher<BidiIterator, Allocator, traits>::find_restart_lit()
947
- {
948
- #if 0
949
- if(position == last)
950
- return false; // can't possibly match if we're at the end already
951
-
952
- unsigned type = (m_match_flags & match_continuous) ?
953
- static_cast<unsigned int>(regbase::restart_continue)
954
- : static_cast<unsigned int>(re.get_restart_type());
955
-
956
- const kmp_info<char_type>* info = access::get_kmp(re);
957
- int len = info->len;
958
- const char_type* x = info->pstr;
959
- int j = 0;
960
- while (position != last)
961
- {
962
- while((j > -1) && (x[j] != traits_inst.translate(*position, icase)))
963
- j = info->kmp_next[j];
964
- ++position;
965
- ++j;
966
- if(j >= len)
967
- {
968
- if(type == regbase::restart_fixed_lit)
969
- {
970
- std::advance(position, -j);
971
- restart = position;
972
- std::advance(restart, len);
973
- m_result.set_first(position);
974
- m_result.set_second(restart);
975
- position = restart;
976
- return true;
977
- }
978
- else
979
- {
980
- restart = position;
981
- std::advance(position, -j);
982
- if(match_prefix())
983
- return true;
984
- else
985
- {
986
- for(int k = 0; (restart != position) && (k < j); ++k, --restart)
987
- {} // dwa 10/20/2000 - warning suppression for MWCW
988
- if(restart != last)
989
- ++restart;
990
- position = restart;
991
- j = 0; //we could do better than this...
992
- }
993
- }
994
- }
995
- }
996
- if((m_match_flags & match_partial) && (position == last) && j)
997
- {
998
- // we need to check for a partial match:
999
- restart = position;
1000
- std::advance(position, -j);
1001
- return match_prefix();
1002
- }
1003
- #endif
1004
- return false;
1005
- }
1006
-
1007
- } // namespace BOOST_REGEX_DETAIL_NS
1008
-
1009
- } // namespace boost
1010
-
1011
- #ifdef BOOST_MSVC
1012
- # pragma warning(pop)
1013
- #endif
1014
-
1015
- #ifdef BOOST_BORLANDC
1016
- # pragma option pop
1017
- #endif
1018
- #ifdef BOOST_MSVC
1019
- #pragma warning(push)
1020
- #pragma warning(disable: 4103)
1021
- #endif
1022
- #ifdef BOOST_HAS_ABI_HEADERS
1023
- # include BOOST_ABI_SUFFIX
1024
- #endif
1025
- #ifdef BOOST_MSVC
1026
- #pragma warning(pop)
1027
- #endif
1028
-
1029
- #endif
1030
-