passenger 6.2.1 → 6.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +37 -15
  3. data/build/cxx_tests.rb +2 -0
  4. data/build/support/cxx_dependency_map.rb +3 -63
  5. data/src/agent/Core/Config.h +1 -1
  6. data/src/agent/Core/Controller/Config.h +1 -1
  7. data/src/agent/Shared/ApiServerUtils.h +1 -1
  8. data/src/agent/Watchdog/Config.h +1 -1
  9. data/src/apache2_module/Hooks.cpp +13 -0
  10. data/src/apache2_module/Utils.h +14 -0
  11. data/src/cxx_supportlib/Constants.h +1 -1
  12. data/src/cxx_supportlib/FileTools/FileManip.cpp +27 -3
  13. data/src/cxx_supportlib/InstanceDirectory.h +30 -3
  14. data/src/cxx_supportlib/ServerKit/Errors.h +1 -1
  15. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +1 -1
  16. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +1 -1
  17. data/src/cxx_supportlib/ServerKit/HttpRequest.h +1 -1
  18. data/src/cxx_supportlib/ServerKit/llerrors.h +3 -3
  19. data/src/cxx_supportlib/ServerKit/llversion.h +1 -1
  20. data/src/cxx_supportlib/{ServerKit/llhttp_api.c → vendor-copy/llhttp/api.c} +30 -23
  21. data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.c +1756 -1645
  22. data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.h +35 -13
  23. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/classification.hpp +19 -0
  24. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +1 -1
  25. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim_all.hpp +0 -2
  26. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +20 -13
  27. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +2 -2
  28. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +4 -0
  29. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +1 -1
  30. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/debug.hpp +4 -0
  31. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  32. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +1 -1
  33. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  34. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +1 -1
  35. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
  36. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +1 -1
  37. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
  38. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +10 -1
  39. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +5 -3
  40. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +1 -1
  41. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +5 -0
  42. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +57 -53
  43. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +10 -10
  44. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -2
  45. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +14 -2
  46. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +176 -2287
  47. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +13 -9
  48. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +186 -70
  49. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +2 -2
  50. data/src/cxx_supportlib/vendor-modified/boost/container/detail/aligned_allocation.hpp +149 -0
  51. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +35 -0
  52. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +1 -0
  53. data/src/cxx_supportlib/vendor-modified/boost/container/detail/bit_utilities.hpp +133 -0
  54. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +18 -3
  55. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +5 -0
  56. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +4 -0
  57. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +1 -1
  58. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +20 -10
  59. data/src/cxx_supportlib/vendor-modified/boost/container/detail/deque_impl.hpp +2744 -0
  60. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +202 -104
  61. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dlmalloc.hpp +5 -4
  62. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +161 -85
  63. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_constructible.hpp +180 -0
  64. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +3 -2
  65. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +12 -0
  66. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +16 -0
  67. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +1 -1
  68. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +9 -1
  69. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +18 -14
  70. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +256 -41
  71. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +75 -24
  72. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +1 -56
  73. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +16 -3
  74. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +1 -7
  75. data/src/cxx_supportlib/vendor-modified/boost/container/detail/range_utils.hpp +196 -0
  76. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +33 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +124 -69
  78. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +109 -7
  79. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +168 -162
  80. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/nest.hpp +2978 -0
  81. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/pmr/nest.hpp +45 -0
  82. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_all_of.hpp +43 -0
  83. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_any_of.hpp +42 -0
  84. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy.hpp +229 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_if.hpp +270 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_n.hpp +308 -0
  87. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count.hpp +101 -0
  88. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count_if.hpp +100 -0
  89. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_equal.hpp +268 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill.hpp +101 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill_n.hpp +171 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find.hpp +110 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if.hpp +110 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if_not.hpp +43 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last.hpp +179 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if.hpp +179 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if_not.hpp +43 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_for_each.hpp +92 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate.hpp +90 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate_n.hpp +162 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_partitioned.hpp +46 -0
  102. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted.hpp +49 -0
  103. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted_until.hpp +169 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_iterator_traits.hpp +382 -0
  105. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_merge.hpp +428 -0
  106. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_mismatch.hpp +350 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_none_of.hpp +98 -0
  108. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition.hpp +296 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_copy.hpp +105 -0
  110. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_point.hpp +116 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove.hpp +57 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy.hpp +207 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy_if.hpp +223 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_if.hpp +57 -0
  115. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace.hpp +90 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace_if.hpp +90 -0
  117. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse.hpp +245 -0
  118. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse_copy.hpp +229 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search.hpp +211 -0
  120. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search_n.hpp +476 -0
  121. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_difference.hpp +300 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_intersection.hpp +287 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_symmetric_difference.hpp +306 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_union.hpp +294 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_stable_partition.hpp +153 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_swap_ranges.hpp +92 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_transform.hpp +93 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/wrapped_iterator.hpp +142 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +642 -417
  130. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +141 -30
  131. data/src/cxx_supportlib/vendor-modified/boost/container/hub.hpp +2426 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +65 -57
  133. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +247 -68
  134. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +7 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +39 -33
  136. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +156 -23
  137. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +3 -3
  138. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/hub.hpp +43 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +5 -3
  140. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +4 -0
  143. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/segtor.hpp +45 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +5 -4
  145. data/src/cxx_supportlib/vendor-modified/boost/container/segtor.hpp +905 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +148 -35
  147. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +59 -52
  148. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +632 -5
  149. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +66 -60
  150. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +46 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +612 -317
  152. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +54 -111
  153. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_construction.hpp +100 -0
  154. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +1 -3
  155. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +233 -116
  156. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +17 -10
  158. data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +1 -3
  159. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +16 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/encoder.hpp +114 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +4 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +1 -1
  163. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +211 -1
  164. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +59 -0
  165. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +6 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +34 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +0 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +12 -3
  169. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
  170. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +29 -174
  171. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +18 -2
  172. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +0 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +4 -5
  174. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +20 -11
  175. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +42 -14
  176. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +58 -22
  177. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +3 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +5 -1
  179. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +8 -2
  180. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +9 -0
  181. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +11 -1
  182. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +9 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/config.hpp +22 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +15 -7
  185. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +23 -11
  186. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +11 -1
  187. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +9 -1
  188. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +11 -2
  189. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +10 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +8 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/{detail → lexical_cast/detail}/lcast_precision.hpp +13 -1
  192. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +11 -1
  193. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +10 -2
  194. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +15 -2
  195. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +11 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +48 -46
  198. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +23 -0
  199. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  200. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +12 -4
  201. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +76 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/move/traits.hpp +11 -0
  204. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +58 -37
  205. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +1 -2
  206. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +17 -9
  207. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +1 -2
  208. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +6 -0
  209. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +6 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_common_defs.hpp +188 -0
  212. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +0 -6
  213. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +1 -1
  214. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_nonmember_interface.hpp +117 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +108 -83
  216. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +39 -39
  217. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_select_implementation.hpp +37 -0
  218. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +8 -8
  220. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/union_optional.hpp +724 -0
  221. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +93 -220
  222. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +14 -4
  223. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +1 -1
  226. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1 -1
  227. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +4 -6
  228. data/src/cxx_supportlib/vendor-modified/boost/system/api_config.hpp +1 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +16 -0
  230. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +13 -13
  231. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -5
  232. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +3 -2
  233. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +3 -2
  234. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +2 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +1 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +30 -28
  237. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +6 -3
  238. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +5 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +1 -0
  240. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +16 -16
  241. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +26 -26
  242. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +196 -6
  243. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +191 -6
  244. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +196 -5
  245. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +192 -5
  246. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +3 -3
  247. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2 -2
  248. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +3 -3
  249. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +52 -16
  250. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/ranges_support.hpp +104 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +1 -14
  252. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unordered_printers.hpp +10 -4
  253. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +121 -3
  254. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +118 -3
  255. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +338 -1
  256. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +121 -3
  257. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +118 -3
  258. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +333 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  260. data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +276 -143
  261. data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +1262 -771
  262. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +1704 -1586
  263. data/src/nginx_module/ContentHandler.c +35 -0
  264. data/src/ruby_supportlib/phusion_passenger/common_library.rb +6 -6
  265. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +25 -2
  266. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +12 -1
  267. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  268. metadata +73 -8
  269. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +0 -41
  270. /data/src/cxx_supportlib/{ServerKit/llhttp_http.c → vendor-copy/llhttp/http.c} +0 -0
@@ -0,0 +1,382 @@
1
+ //////////////////////////////////////////////////////////////////////////////
2
+ //
3
+ // (C) Copyright Ion Gaztanaga 2025-2026. Distributed under the Boost
4
+ // Software License, Version 1.0. (See accompanying file
5
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
+ //
7
+ // See http://www.boost.org/libs/container for documentation.
8
+ //
9
+ //////////////////////////////////////////////////////////////////////////////
10
+ #ifndef BOOST_CONTAINER_EXPERIMENTAL_SEGMENTED_ITERATOR_TRAITS_HPP
11
+ #define BOOST_CONTAINER_EXPERIMENTAL_SEGMENTED_ITERATOR_TRAITS_HPP
12
+
13
+ #ifndef BOOST_CONFIG_HPP
14
+ # include <boost/config.hpp>
15
+ #endif
16
+
17
+ #if defined(BOOST_HAS_PRAGMA_ONCE)
18
+ # pragma once
19
+ #endif
20
+
21
+ #include <boost/container/detail/config_begin.hpp>
22
+ #include <boost/container/detail/workaround.hpp>
23
+ #include <boost/container/detail/iterator.hpp>
24
+
25
+ #include <boost/move/utility_core.hpp>
26
+
27
+ namespace boost {
28
+ namespace container {
29
+
30
+ //! Tag type indicating a segmented iterator.
31
+ struct segmented_iterator_tag
32
+ {
33
+ static const bool value = true;
34
+ };
35
+
36
+ //! Tag type indicating a non-segmented (flat) iterator.
37
+ struct non_segmented_iterator_tag
38
+ {
39
+ static const bool value = false;
40
+ };
41
+
42
+ //! Sentinel whose comparison with any iterator always yields false (not equal).
43
+ //! Passes through segmented_remove_if_result_bounded to express an unbounded
44
+ //! destination, letting the compiler eliminate the dead destination-full branch.
45
+ template<class T1, class T2>
46
+ struct segduo
47
+ {
48
+ T1 first;
49
+ T2 second;
50
+
51
+ BOOST_CONTAINER_FORCEINLINE segduo() {}
52
+
53
+ template<class U1, class U2>
54
+ BOOST_CONTAINER_FORCEINLINE segduo(const U1 &f, const U2 &s) : first(f), second(s) {}
55
+
56
+ template<class U1, class U2>
57
+ BOOST_CONTAINER_FORCEINLINE segduo(const segduo<U1, U2> &sd) : first(sd.first), second(sd.second) {}
58
+ };
59
+
60
+ template<class T1, class T2, class T3>
61
+ struct segtrio
62
+ {
63
+ T1 first;
64
+ T2 second;
65
+ T3 third;
66
+
67
+ BOOST_CONTAINER_FORCEINLINE segtrio() {}
68
+
69
+ template<class U1, class U2, class U3>
70
+ BOOST_CONTAINER_FORCEINLINE segtrio(const U1 &f, const U2 &s, const U3 &t)
71
+ : first(f), second(s), third(t) {}
72
+
73
+ template<class U1, class U2, class U3>
74
+ BOOST_CONTAINER_FORCEINLINE segtrio(const segtrio<U1, U2, U3> &sd)
75
+ : first(sd.first), second(sd.second), third(sd.third) {}
76
+ };
77
+
78
+ struct unreachable_sentinel_t
79
+ {
80
+ template <class It>
81
+ BOOST_CONTAINER_FORCEINLINE friend bool operator==(const It&, unreachable_sentinel_t) { return false; }
82
+
83
+ template <class It>
84
+ BOOST_CONTAINER_FORCEINLINE friend bool operator==(unreachable_sentinel_t, const It&) { return false; }
85
+
86
+ template <class It>
87
+ BOOST_CONTAINER_FORCEINLINE friend bool operator!=(const It&, unreachable_sentinel_t) { return true; }
88
+
89
+ template <class It>
90
+ BOOST_CONTAINER_FORCEINLINE friend bool operator!=(unreachable_sentinel_t, const It&) { return true; }
91
+ };
92
+
93
+ //! Disambiguator tag passed by the dual-RA fast-path overload of certain
94
+ //! bounded helpers (e.g. segmented_copy_if_dst_bounded,
95
+ //! segmented_remove_copy_if_dst_bounded) when it has decided that the
96
+ //! remaining source does not fit the destination capacity and a real
97
+ //! bounded scan is required. The tag's only role is to perturb the
98
+ //! signature of the recursive call so that the dual-RA overload itself
99
+ //! cannot re-match: only the unrolled / generic terminal overloads remain
100
+ //! viable, leaving the random-access category of both iterators intact.
101
+ struct dual_ra_skip_t {};
102
+
103
+ namespace detail_algo {
104
+
105
+ //! Default less-than function object used by segmented algorithms when the
106
+ //! user does not provide an explicit comparator. Centralised here to avoid
107
+ //! duplicating the same struct across every algorithm header.
108
+ struct segmented_default_less
109
+ {
110
+ template <class T>
111
+ BOOST_CONTAINER_FORCEINLINE
112
+ bool operator()(const T& a, const T& b) const { return a < b; }
113
+ };
114
+
115
+ //! Proxy-safe "equal to *it" predicate. Holds the iterator by value and
116
+ //! re-dereferences on every invocation, so a prvalue proxy returned by
117
+ //! operator*() only lives for the full expression of the comparison and
118
+ //! never outlives it. This avoids the lifetime hazard of caching *it in
119
+ //! a const-reference member (as equal_to_value would).
120
+ template <class Iter>
121
+ struct equal_to_deref
122
+ {
123
+ Iter it_;
124
+
125
+ BOOST_CONTAINER_FORCEINLINE explicit equal_to_deref(Iter it)
126
+ : it_(it)
127
+ {}
128
+
129
+ template <class U>
130
+ BOOST_CONTAINER_FORCEINLINE bool operator()(const U &u) const
131
+ { return u == *it_; }
132
+ };
133
+
134
+ template <bool B> struct void_if_true;
135
+ template <> struct void_if_true<true> { typedef void type; };
136
+
137
+ template <class T> struct make_void { typedef void type; };
138
+
139
+ template <bool, class T = void> struct algo_enable_if_c {};
140
+ template <class T> struct algo_enable_if_c<true, T> { typedef T type; };
141
+
142
+ template <class T, class Enable = void>
143
+ struct has_iterator_category { static const bool value = false; };
144
+
145
+ template <class T>
146
+ struct has_iterator_category<T, typename make_void<typename T::iterator_category>::type>
147
+ { static const bool value = true; };
148
+
149
+ template <class T>
150
+ struct constref_generator
151
+ {
152
+ const T& value;
153
+ BOOST_CONTAINER_FORCEINLINE explicit constref_generator(const T& v)
154
+ : value(v)
155
+ {}
156
+
157
+ BOOST_CONTAINER_FORCEINLINE const T& operator()() const { return value; }
158
+ };
159
+
160
+ //////////////////////////////////////////////////////////////////////////////
161
+ // Transfer helper: copy (Move=false) or move (Move=true) a single element.
162
+ //////////////////////////////////////////////////////////////////////////////
163
+
164
+ template <bool> struct transfer_op;
165
+ template <> struct transfer_op<false>
166
+ {
167
+ template <class D, class S>
168
+ BOOST_CONTAINER_FORCEINLINE static void apply(D& d, S& s) { d = s; }
169
+ };
170
+ template <> struct transfer_op<true>
171
+ {
172
+ template <class D, class S>
173
+ BOOST_CONTAINER_FORCEINLINE static void apply(D& d, S& s) { d = boost::move(s); }
174
+ };
175
+
176
+ } // namespace detail_algo
177
+
178
+ //! Traits class to detect and decompose segmented iterators.
179
+ //!
180
+ //! The default definition marks all iterators as non-segmented.
181
+ //! Specializations for segmented iterator types must provide:
182
+ //!
183
+ //! typedef segmented_iterator_tag is_segmented_iterator;
184
+ //! typedef <implementation-defined> segment_iterator;
185
+ //! typedef <implementation-defined> local_iterator;
186
+ //!
187
+ //! static segment_iterator segment(Iterator it);
188
+ //! static local_iterator local(Iterator it);
189
+ //! static Iterator compose(segment_iterator s, local_iterator l);
190
+ //! static local_iterator begin(segment_iterator s);
191
+ //! static local_iterator end(segment_iterator s);
192
+ //!
193
+ //! An explicit specialization is not required when the iterator type
194
+ //! provides the intrusive interface:
195
+ //!
196
+ //! typedef segmented_iterator_tag is_segmented_iterator;
197
+ //! typedef <implementation-defined> segment_iterator;
198
+ //! typedef <implementation-defined> local_iterator;
199
+ //! segment_iterator segment() const;
200
+ //! local_iterator local() const;
201
+ //! Iterator(segment_iterator s, local_iterator l); // composing constructor
202
+ //!
203
+ //! and segment_iterator provides begin()/end() returning local_iterator.
204
+ //!
205
+ //! Based on: M. Austern, "Segmented Iterators and Hierarchical Algorithms"
206
+ template <class Iterator>
207
+ struct segmented_iterator_traits
208
+ {
209
+ typedef non_segmented_iterator_tag is_segmented_iterator;
210
+ };
211
+
212
+ //! Detects whether \c Sent is a true sentinel for \c Iter.
213
+ //! A sentinel is a type that is not the same as the iterator and
214
+ //! does not model an iterator (lacks \c iterator_category).
215
+ //! When \c is_sentinel is false, algorithms use the \c (Iter, Iter)
216
+ //! overload, avoiding extra template instantiations from mixed
217
+ //! iterator types such as \c iterator / \c const_iterator.
218
+ template <class Sent, class Iter>
219
+ struct is_sentinel
220
+ {
221
+ static const bool value = !detail_algo::has_iterator_category<Sent>::value;
222
+ };
223
+
224
+ template <class Iter>
225
+ struct is_sentinel<Iter, Iter>
226
+ {
227
+ static const bool value = false;
228
+ };
229
+
230
+ namespace detail_algo {
231
+
232
+ //////////////////////////////////////////////////////////////////////////////
233
+ // sent_filter: when [first, last) is closed by a true sentinel
234
+ // (Sent != Iter), segment walkers cannot decompose Sent and bidirectional
235
+ // algorithms cannot step backwards from it; in that case both the iterator
236
+ // category and the segmentation tag are downgraded to
237
+ // (std::forward_iterator_tag, non_segmented_iterator_tag) so that algorithms
238
+ // route through the flat, forward-only path. When Sent == Iter, the
239
+ // iterator's natural category and segmentation are preserved.
240
+ //
241
+ // Used by bidirectional/segmented algorithms (e.g. segmented_partition,
242
+ // segmented_find_last_if) that need a single dispatch point covering both
243
+ // the (Iter, Iter) and (Iter, Sentinel) call signatures.
244
+ //////////////////////////////////////////////////////////////////////////////
245
+
246
+ template <class Iter, class Sent, bool = is_sentinel<Sent, Iter>::value>
247
+ struct sent_filter
248
+ {
249
+ typedef std::forward_iterator_tag cat_t;
250
+ typedef non_segmented_iterator_tag seg_t;
251
+ };
252
+
253
+ template <class Iter>
254
+ struct sent_filter<Iter, Iter, false>
255
+ {
256
+ typedef typename boost::container::iterator_traits<Iter>
257
+ ::iterator_category cat_t;
258
+ typedef typename segmented_iterator_traits<Iter>
259
+ ::is_segmented_iterator seg_t;
260
+ };
261
+
262
+ template <class Iter, class Sent>
263
+ struct sent_filter<Iter, Sent, false>
264
+ : public sent_filter<Iter, Iter, false>
265
+ {};
266
+
267
+ // Compile-time metafunction that unwraps a (possibly recursively) segmented
268
+ // iterator to its deepest non-segmented `local_iterator` type.
269
+ //
270
+ // deepest_local_iterator<It>::type == It (non-segmented)
271
+ // deepest_local_iterator<It>::type ==
272
+ // deepest_local_iterator<segmented_iterator_traits<It>::local_iterator>::type
273
+ // (segmented)
274
+ //
275
+ // Used by segmented algorithms that need to hold cross-segment state of
276
+ // iterator type rather than element type (e.g. a "previous element" pointer
277
+ // that survives the boundary between sub-ranges), by reducing that state to a
278
+ // single unified type across all levels of recursion.
279
+ template <bool IsSeg, class It>
280
+ struct deepest_local_iterator_impl;
281
+
282
+ template <class It>
283
+ struct deepest_local_iterator_impl<false, It>
284
+ {
285
+ typedef It type;
286
+ BOOST_CONTAINER_FORCEINLINE static type get(It it) { return it; }
287
+ };
288
+
289
+ template <class It>
290
+ struct deepest_local_iterator_impl<true, It>
291
+ {
292
+ private:
293
+
294
+ typedef typename segmented_iterator_traits<It>::local_iterator local_t;
295
+ typedef deepest_local_iterator_impl
296
+ < segmented_iterator_traits<local_t>::is_segmented_iterator::value
297
+ , local_t> next_layer_t;
298
+
299
+ public:
300
+
301
+ typedef typename next_layer_t::type type;
302
+
303
+ BOOST_CONTAINER_FORCEINLINE static typename next_layer_t::type get(It it)
304
+ { return next_layer_t::get(segmented_iterator_traits<It>::local(it)); }
305
+ };
306
+
307
+ template <class It>
308
+ struct deepest_local_iterator
309
+ {
310
+ typedef deepest_local_iterator_impl
311
+ < segmented_iterator_traits<It>::is_segmented_iterator::value
312
+ , It> next_layer_t;
313
+
314
+ public:
315
+
316
+ typedef typename next_layer_t::type type;
317
+
318
+ BOOST_CONTAINER_FORCEINLINE static typename next_layer_t::type get(It it)
319
+ { return next_layer_t::get(it); }
320
+ };
321
+
322
+ } // namespace detail_algo
323
+
324
+ } // namespace container
325
+ } // namespace boost
326
+
327
+ #include <boost/container/detail/config_end.hpp>
328
+
329
+ //////////////////////////////////////////////////////////////////////////////
330
+ // BOOST_CONTAINER_DISABLE_MULTI_SEGMENTED_ALGO
331
+ //
332
+ // When defined, segmented algorithms that write to an output iterator will
333
+ // NOT exploit segmentation on the output side. Only input (source) iterator
334
+ // segmentation is used. This is useful for benchmarking the advantage of
335
+ // the segmented output optimisation in isolation.
336
+ //
337
+ // Define BOOST_CONTAINER_DISABLE_MULTI_SEGMENTED_ALGO before including any
338
+ // segmented algorithm header to disable the optimisation.
339
+ //////////////////////////////////////////////////////////////////////////////
340
+
341
+ //#define BOOST_CONTAINER_DISABLE_MULTI_SEGMENTED_ALGO
342
+
343
+ // When defined, segmented algorithms that count elements (e.g. segmented_count,
344
+ // segmented_count_if) will use a branchless counting strategy in their
345
+ // innermost loops, incrementing the count by the boolean result of the
346
+ // predicate rather than testing the predicate result in a branch and conditionally
347
+ // incrementing. This can improve performance on some platforms by avoiding branch mispredictions,
348
+ // at the cost of potentially increased instruction count and/or reduced vectorization opportunities.
349
+ //
350
+ // However, the optimal strategy is highly platform- and algorithm-specific, so this is disabled by default.
351
+ // There are regressions on some algorithms and platforms when this is enabled, and the performance impact
352
+ // varies widely across different scenarios.
353
+ //
354
+ //#define BOOST_CONTAINER_SEGMENTED_COUNT_BRANCHLESS
355
+
356
+ //#define BOOST_CONTAINER_SEGMENTED_DISABLE_PRAGMA_UNROLL
357
+ //#define BOOST_CONTAINER_SEGMENTED_ENABLE_PRAGMA_UNROLL
358
+
359
+ #if defined(BOOST_CONTAINER_SEGMENTED_DISABLE_PRAGMA_UNROLL) && defined (BOOST_CONTAINER_SEGMENTED_ENABLE_PRAGMA_UNROLL)
360
+ #error "Cannot define both BOOST_CONTAINER_SEGMENTED_DISABLE_PRAGMA_UNROLL and BOOST_CONTAINER_SEGMENTED_ENABLE_PRAGMA_UNROLL"
361
+ #endif
362
+
363
+ #if !defined(BOOST_CONTAINER_SEGMENTED_DISABLE_PRAGMA_UNROLL) && !defined (BOOST_CONTAINER_SEGMENTED_ENABLE_PRAGMA_UNROLL)
364
+ #if defined(BOOST_CLANG)
365
+ //Let clang decide when to unroll loops, as it can auto-vectorize more aggressively when unrolling is disabled.
366
+ #define BOOST_CONTAINER_SEGMENTED_DISABLE_PRAGMA_UNROLL
367
+ #else
368
+ #define BOOST_CONTAINER_SEGMENTED_ENABLE_PRAGMA_UNROLL
369
+ #endif
370
+ #endif
371
+
372
+ #if defined(BOOST_CONTAINER_SEGMENTED_ENABLE_PRAGMA_UNROLL)
373
+ #define BOOST_CONTAINER_SEGMENTED_UNROLL(N) BOOST_CONTAINER_UNROLL(N)
374
+ #define BOOST_CONTAINER_SEGMENTED_AUTO_UNROLL BOOST_CONTAINER_AUTO_UNROLL
375
+ #elif defined(BOOST_CONTAINER_SEGMENTED_DISABLE_PRAGMA_UNROLL)
376
+ #define BOOST_CONTAINER_SEGMENTED_UNROLL(N)
377
+ #define BOOST_CONTAINER_SEGMENTED_AUTO_UNROLL
378
+ #else
379
+ #error "Must define either BOOST_CONTAINER_SEGMENTED_ENABLE_PRAGMA_UNROLL or BOOST_CONTAINER_SEGMENTED_DISABLE_PRAGMA_UNROLL"
380
+ #endif
381
+
382
+ #endif // BOOST_CONTAINER_EXPERIMENTAL_SEGMENTED_ITERATOR_TRAITS_HPP