passenger 6.0.23 → 6.0.24

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.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (305) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +26 -1
  3. data/Rakefile +7 -3
  4. data/bin/passenger-install-apache2-module +5 -0
  5. data/bin/passenger-install-nginx-module +17 -2
  6. data/build/apache2.rb +1 -1
  7. data/build/basics.rb +10 -4
  8. data/build/cxx_tests.rb +18 -7
  9. data/build/support/cxx_dependency_map.rb +40 -6
  10. data/build/test_basics.rb +4 -12
  11. data/package.json +1 -1
  12. data/passenger.gemspec +1 -1
  13. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +8 -0
  14. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +10 -2
  15. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +8 -0
  16. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +9 -0
  17. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +9 -0
  18. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +63 -50
  19. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +19 -9
  20. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +8 -0
  21. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +8 -0
  22. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +8 -0
  23. data/src/agent/Core/ApplicationPool/Group.h +15 -5
  24. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +5 -0
  25. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +5 -0
  26. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +5 -0
  27. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +5 -0
  28. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +5 -0
  29. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +5 -0
  30. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +5 -0
  31. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +11 -1
  32. data/src/agent/Core/ApplicationPool/Pool.h +0 -2
  33. data/src/agent/Core/ApplicationPool/Process.h +22 -6
  34. data/src/agent/Core/ApplicationPool/Session.h +6 -1
  35. data/src/agent/Core/Config.h +7 -3
  36. data/src/agent/Core/Controller/Config.h +1 -1
  37. data/src/agent/Core/CoreMain.cpp +10 -17
  38. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -53
  39. data/src/agent/Core/SpawningKit/Handshake/Session.h +3 -0
  40. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
  41. data/src/agent/Core/SpawningKit/SmartSpawner.h +6 -2
  42. data/src/agent/Core/SpawningKit/Spawner.h +4 -0
  43. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +88 -9
  44. data/src/agent/Shared/Fundamentals/AbortHandler.h +2 -0
  45. data/src/agent/Shared/Fundamentals/Initialization.cpp +9 -3
  46. data/src/agent/Shared/Fundamentals/Initialization.h +3 -3
  47. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +6 -7
  48. data/src/agent/Watchdog/Config.h +1 -1
  49. data/src/agent/Watchdog/WatchdogMain.cpp +4 -7
  50. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +5 -3
  51. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +3 -0
  52. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +3 -0
  53. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +2 -1
  54. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -1
  55. data/src/cxx_supportlib/Constants.h +1 -1
  56. data/src/cxx_supportlib/DataStructures/StringMap.h +0 -1
  57. data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
  58. data/src/cxx_supportlib/SafeLibev.h +1 -3
  59. data/src/cxx_supportlib/ServerKit/Hooks.h +2 -2
  60. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +0 -1
  61. data/src/cxx_supportlib/ServerKit/HttpServer.h +15 -10
  62. data/src/cxx_supportlib/ServerKit/Server.h +0 -6
  63. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +2 -0
  64. data/src/cxx_supportlib/Utils/SpeedMeter.h +0 -3
  65. data/src/cxx_supportlib/oxt/implementation.cpp +11 -0
  66. data/src/cxx_supportlib/oxt/system_calls.cpp +10 -3
  67. data/src/cxx_supportlib/oxt/thread.hpp +1 -1
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +35 -9
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +3 -2
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +1 -1
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +74 -68
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +11 -11
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +2 -2
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +2 -2
  75. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +10 -10
  76. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +1 -1
  77. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +3 -3
  78. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +2 -2
  79. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +1 -1
  80. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +2 -2
  81. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +9 -9
  82. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +2 -2
  83. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +6 -6
  84. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +2 -2
  85. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +1 -1
  86. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +88 -22
  87. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +91 -22
  88. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +105 -23
  89. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +90 -23
  90. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2 -2
  91. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +1 -1
  92. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +303 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +296 -0
  94. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/impl/co_composed.hpp → co_composed.hpp} +208 -61
  95. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +49 -0
  96. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +10 -201
  97. data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +415 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +214 -48
  99. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +3 -4
  100. data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +91 -0
  101. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +9 -5
  102. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +2 -2
  103. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +1 -1
  104. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_message.hpp → detail/completion_message.hpp} +14 -16
  105. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_payload.hpp → detail/completion_payload.hpp} +30 -32
  106. data/src/cxx_supportlib/vendor-modified/boost/asio/{experimental/detail/channel_handler.hpp → detail/completion_payload_handler.hpp} +15 -13
  107. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +26 -32
  108. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +5 -1
  109. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +14 -118
  110. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +36 -33
  111. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +1 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +7 -5
  113. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +6 -4
  114. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +44 -35
  115. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +1 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +64 -0
  117. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -11
  118. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +20 -16
  119. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +4 -4
  121. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +23 -18
  122. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +9 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +1 -1
  124. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +1 -1
  125. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +11 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +363 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +29 -51
  128. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +1 -1
  129. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +1 -1
  130. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +1 -1
  131. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +1 -1
  133. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +1 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +1 -1
  135. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +1 -1
  136. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +2 -1
  137. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +2 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +2 -114
  139. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +2 -3
  140. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +27 -19
  141. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +0 -1
  142. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +17 -15
  143. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +2 -3
  144. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +4 -2
  145. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +3 -5
  146. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +12 -7
  147. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +1 -1
  148. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +38 -40
  149. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +3 -3
  150. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +5 -5
  151. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +1 -1
  152. data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +144 -0
  153. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +14 -7
  154. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +45 -14
  155. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +3 -3
  156. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +270 -0
  157. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +270 -0
  158. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +8 -0
  159. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +60 -166
  160. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +14 -7
  161. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +2 -2
  162. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +14 -7
  163. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +26 -177
  164. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +16 -82
  165. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +13 -286
  166. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +55 -18
  167. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +1 -1
  168. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +26 -185
  169. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +16 -87
  170. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +5 -5
  171. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -6
  172. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +1 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +1 -1
  174. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +12 -6
  175. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +1 -1
  176. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +2 -2
  177. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +127 -28
  178. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +70 -20
  179. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +114 -36
  180. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +43 -3
  181. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +2 -2
  182. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -1
  183. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +2 -2
  184. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +10 -7
  185. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +5 -5
  186. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +2 -2
  187. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +2 -2
  188. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +1 -1
  189. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +1 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  191. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +147 -35
  192. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +74 -22
  193. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +6 -0
  194. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +4 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +42 -11
  196. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +15 -37
  197. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +8 -8
  198. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
  199. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +151 -10
  200. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +11 -9
  201. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +611 -102
  202. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
  203. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +47 -47
  204. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +25 -24
  205. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
  206. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
  207. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
  208. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +35 -1
  209. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +14 -14
  210. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +1 -1
  211. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +55 -23
  212. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
  213. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
  214. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +1 -1
  215. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +4 -4
  216. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +8 -8
  217. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +9 -9
  218. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
  219. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +96 -10
  220. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +19 -4
  221. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
  222. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +17 -17
  223. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
  224. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
  225. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +4 -4
  226. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +86 -52
  227. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
  228. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +12 -0
  229. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +145 -65
  230. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +105 -22
  231. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +2 -2
  232. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +30 -22
  233. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +19 -2
  234. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +1 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +15 -8
  236. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +6 -5
  237. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +15 -15
  238. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +1 -1
  239. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -1
  240. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +3 -3
  241. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +1 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +2 -2
  243. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +31 -24
  244. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +45 -43
  245. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +45 -33
  246. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +5 -7
  247. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +55 -47
  248. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
  249. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +222 -73
  250. data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
  251. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +13 -13
  252. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +53 -5
  253. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +1 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +2 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +7 -2
  257. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +22 -34
  258. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +141 -38
  259. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
  260. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +1 -1
  261. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +8 -6
  262. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +18 -18
  263. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +22 -17
  264. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
  265. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
  266. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +9 -1
  268. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +6 -1
  269. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  270. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
  271. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +1 -1
  273. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
  274. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +13 -1
  275. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +13 -1
  276. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +15 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +13 -1
  278. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +15 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +22 -6
  280. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +38 -10
  281. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +111 -2
  282. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +11 -1
  284. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +33 -7
  285. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +12 -0
  286. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +15 -0
  287. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +12 -0
  288. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +14 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +19 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +12 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +15 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +12 -0
  293. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +14 -0
  294. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +17 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
  296. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  297. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +6 -2
  298. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +10 -0
  299. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +12 -4
  300. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +32 -5
  301. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +0 -4
  302. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +5 -1
  303. data/src/ruby_supportlib/phusion_passenger/utils.rb +5 -15
  304. data/src/ruby_supportlib/phusion_passenger.rb +5 -5
  305. metadata +21 -8
@@ -95,9 +95,57 @@ private:
95
95
  };
96
96
 
97
97
  #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
98
+ #if defined(BOOST_MSVC)
99
+ /*
100
+ This is a workaround to an MSVC bug when T is a nested class:
101
+ https://developercommunity.visualstudio.com/t/Compiler-bug:-Incorrect-C2247-and-C2248/10690025
102
+ */
103
+ namespace detail {
104
+
105
+ template<class T>
106
+ class empty_value_base
107
+ : public T {
108
+ public:
109
+ #if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
110
+ empty_value_base() = default;
111
+ #else
112
+ BOOST_CONSTEXPR empty_value_base() { }
113
+ #endif
114
+
115
+ #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
116
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
117
+ template<class U, class... Args>
118
+ BOOST_CONSTEXPR empty_value_base(U&& value, Args&&... args)
119
+ : T(std::forward<U>(value), std::forward<Args>(args)...) { }
120
+ #else
121
+ template<class U>
122
+ BOOST_CONSTEXPR empty_value_base(U&& value)
123
+ : T(std::forward<U>(value)) { }
124
+ #endif
125
+ #else
126
+ template<class U>
127
+ BOOST_CONSTEXPR empty_value_base(const U& value)
128
+ : T(value) { }
129
+
130
+ template<class U>
131
+ BOOST_CONSTEXPR empty_value_base(U& value)
132
+ : T(value) { }
133
+ #endif
134
+ };
135
+
136
+ } /* detail */
137
+ #endif
138
+
98
139
  template<class T, unsigned N>
99
140
  class empty_value<T, N, true>
141
+ #if defined(BOOST_MSVC)
142
+ : detail::empty_value_base<T> {
143
+ typedef detail::empty_value_base<T> empty_base_;
144
+ #else
100
145
  : T {
146
+ typedef T empty_base_;
147
+ #endif
148
+
101
149
  public:
102
150
  typedef T type;
103
151
 
@@ -108,26 +156,26 @@ public:
108
156
  #endif
109
157
 
110
158
  BOOST_CONSTEXPR empty_value(boost::empty_init_t)
111
- : T() { }
159
+ : empty_base_() { }
112
160
 
113
161
  #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
114
162
  #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
115
163
  template<class U, class... Args>
116
164
  BOOST_CONSTEXPR empty_value(boost::empty_init_t, U&& value, Args&&... args)
117
- : T(std::forward<U>(value), std::forward<Args>(args)...) { }
165
+ : empty_base_(std::forward<U>(value), std::forward<Args>(args)...) { }
118
166
  #else
119
167
  template<class U>
120
168
  BOOST_CONSTEXPR empty_value(boost::empty_init_t, U&& value)
121
- : T(std::forward<U>(value)) { }
169
+ : empty_base_(std::forward<U>(value)) { }
122
170
  #endif
123
171
  #else
124
172
  template<class U>
125
173
  BOOST_CONSTEXPR empty_value(boost::empty_init_t, const U& value)
126
- : T(value) { }
174
+ : empty_base_(value) { }
127
175
 
128
176
  template<class U>
129
177
  BOOST_CONSTEXPR empty_value(boost::empty_init_t, U& value)
130
- : T(value) { }
178
+ : empty_base_(value) { }
131
179
  #endif
132
180
 
133
181
  BOOST_CONSTEXPR const T& get() const BOOST_NOEXCEPT {
@@ -153,6 +153,7 @@ inline void no_throw_failed_impl(const char* expr, const char* what, const char*
153
153
  #elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406
154
154
  # pragma GCC diagnostic push
155
155
  # pragma GCC diagnostic ignored "-Wsign-compare"
156
+ # pragma GCC diagnostic ignored "-Wsign-conversion"
156
157
  #endif
157
158
 
158
159
  // specialize test output for char pointers to avoid printing as cstring
@@ -0,0 +1,49 @@
1
+ /*
2
+ Copyright 2024 Glen Joseph Fernandes
3
+ (glenjofe@gmail.com)
4
+
5
+ Distributed under the Boost Software License, Version 1.0.
6
+ (http://www.boost.org/LICENSE_1_0.txt)
7
+ */
8
+ #ifndef BOOST_CORE_POINTER_IN_RANGE_HPP
9
+ #define BOOST_CORE_POINTER_IN_RANGE_HPP
10
+
11
+ #include <boost/config.hpp>
12
+ #include <functional>
13
+
14
+ #if !defined(BOOST_NO_CXX14_CONSTEXPR)
15
+ #if defined(BOOST_MSVC) && BOOST_MSVC >= 1925
16
+ #define BOOST_CORE_DETAIL_HAS_IS_CONSTEVAL
17
+ #elif defined(__has_builtin)
18
+ #if __has_builtin(__builtin_is_constant_evaluated)
19
+ #define BOOST_CORE_DETAIL_HAS_IS_CONSTEVAL
20
+ #endif
21
+ #endif
22
+ #endif
23
+
24
+ #if !defined(BOOST_CORE_DETAIL_HAS_IS_CONSTEVAL)
25
+ #define BOOST_CORE_NO_CONSTEXPR_POINTER_IN_RANGE
26
+ #endif
27
+
28
+ namespace boost {
29
+
30
+ template<class T>
31
+ inline BOOST_CONSTEXPR bool
32
+ pointer_in_range(const T* p, const T* b, const T* e)
33
+ {
34
+ #if defined(BOOST_CORE_DETAIL_HAS_IS_CONSTEVAL)
35
+ if ( __builtin_is_constant_evaluated()) {
36
+ for (; b != e; ++b) {
37
+ if (b == p) {
38
+ return true;
39
+ }
40
+ }
41
+ return false;
42
+ }
43
+ #endif
44
+ return std::less_equal<const T*>()(b, p) && std::less<const T*>()(p, e);
45
+ }
46
+
47
+ } /* boost */
48
+
49
+ #endif
@@ -351,8 +351,10 @@ private:
351
351
  detail::span_store<T, E> s_;
352
352
  };
353
353
 
354
+ #if defined(BOOST_NO_CXX17_INLINE_VARIABLES)
354
355
  template<class T, std::size_t E>
355
356
  constexpr std::size_t span<T, E>::extent;
357
+ #endif
356
358
 
357
359
  #ifdef __cpp_deduction_guides
358
360
  template<class I, class L>
@@ -103,7 +103,8 @@ inline std::string fix_typeid_name( char const* n )
103
103
  }
104
104
 
105
105
  // class types can be incomplete
106
- template<class T> std::string typeid_name_impl( int T::* )
106
+ // but also abstract (T[1] doesn't form)
107
+ template<class T> std::string typeid_name_impl( int T::*, T(*)[1] )
107
108
  {
108
109
  std::string r = fix_typeid_name( typeid(T[1]).name() );
109
110
  return r.substr( 0, r.size() - 4 ); // remove ' [1]' suffix
@@ -116,7 +117,7 @@ template<class T> std::string typeid_name_impl( ... )
116
117
 
117
118
  template<class T> std::string typeid_name()
118
119
  {
119
- return typeid_name_impl<T>( 0 );
120
+ return typeid_name_impl<T>( 0, 0 );
120
121
  }
121
122
 
122
123
  // template names
@@ -345,6 +346,8 @@ template<> struct tn_holder<boost::uint128_type>
345
346
 
346
347
  #endif
347
348
 
349
+ #if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
350
+
348
351
  template<> struct tn_holder<wchar_t>
349
352
  {
350
353
  static std::string type_name( std::string const& suffix )
@@ -353,6 +356,8 @@ template<> struct tn_holder<wchar_t>
353
356
  }
354
357
  };
355
358
 
359
+ #endif
360
+
356
361
  #if !defined(BOOST_NO_CXX11_CHAR16_T)
357
362
 
358
363
  template<> struct tn_holder<char16_t>
@@ -15,17 +15,6 @@
15
15
  #include <boost/function_equal.hpp>
16
16
  #include <boost/core/typeinfo.hpp>
17
17
  #include <boost/core/ref.hpp>
18
- #include <boost/type_traits/has_trivial_copy.hpp>
19
- #include <boost/type_traits/has_trivial_destructor.hpp>
20
- #include <boost/type_traits/is_const.hpp>
21
- #include <boost/type_traits/is_integral.hpp>
22
- #include <boost/type_traits/is_volatile.hpp>
23
- #include <boost/type_traits/composite_traits.hpp>
24
- #include <boost/type_traits/conditional.hpp>
25
- #include <boost/type_traits/alignment_of.hpp>
26
- #include <boost/type_traits/enable_if.hpp>
27
- #include <boost/type_traits/integral_constant.hpp>
28
- #include <boost/type_traits/is_function.hpp>
29
18
  #include <boost/assert.hpp>
30
19
  #include <boost/config.hpp>
31
20
  #include <boost/config/workaround.hpp>
@@ -33,6 +22,7 @@
33
22
  #include <string>
34
23
  #include <memory>
35
24
  #include <new>
25
+ #include <type_traits>
36
26
 
37
27
  #if defined(BOOST_MSVC)
38
28
  # pragma warning( push )
@@ -43,10 +33,8 @@
43
33
  // retained because used in a test
44
34
  #define BOOST_FUNCTION_TARGET_FIX(x)
45
35
 
46
- # define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \
47
- typename ::boost::enable_if_< \
48
- !(::boost::is_integral<Functor>::value), \
49
- Type>::type
36
+ #define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \
37
+ typename std::enable_if< !std::is_integral<Functor>::value, Type>::type
50
38
 
51
39
  namespace boost {
52
40
  namespace detail {
@@ -131,15 +119,15 @@ namespace boost {
131
119
  template<typename F>
132
120
  class get_function_tag
133
121
  {
134
- typedef typename conditional<(is_pointer<F>::value),
122
+ typedef typename std::conditional<std::is_pointer<F>::value,
135
123
  function_ptr_tag,
136
124
  function_obj_tag>::type ptr_or_obj_tag;
137
125
 
138
- typedef typename conditional<(is_member_pointer<F>::value),
126
+ typedef typename std::conditional<std::is_member_pointer<F>::value,
139
127
  member_ptr_tag,
140
128
  ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag;
141
129
 
142
- typedef typename conditional<(is_reference_wrapper<F>::value),
130
+ typedef typename std::conditional<is_reference_wrapper<F>::value,
143
131
  function_obj_ref_tag,
144
132
  ptr_or_obj_or_mem_tag>::type or_ref_tag;
145
133
 
@@ -204,8 +192,8 @@ namespace boost {
204
192
  BOOST_STATIC_CONSTANT
205
193
  (bool,
206
194
  value = ((sizeof(F) <= sizeof(function_buffer) &&
207
- (alignment_of<function_buffer>::value
208
- % alignment_of<F>::value == 0))));
195
+ (std::alignment_of<function_buffer>::value
196
+ % std::alignment_of<F>::value == 0))));
209
197
  };
210
198
 
211
199
  template <typename F,typename A>
@@ -306,7 +294,7 @@ namespace boost {
306
294
  // Function objects that fit in the small-object buffer.
307
295
  static inline void
308
296
  manager(const function_buffer& in_buffer, function_buffer& out_buffer,
309
- functor_manager_operation_type op, true_type)
297
+ functor_manager_operation_type op, std::true_type)
310
298
  {
311
299
  functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
312
300
  }
@@ -314,7 +302,7 @@ namespace boost {
314
302
  // Function objects that require heap allocation
315
303
  static inline void
316
304
  manager(const function_buffer& in_buffer, function_buffer& out_buffer,
317
- functor_manager_operation_type op, false_type)
305
+ functor_manager_operation_type op, std::false_type)
318
306
  {
319
307
  if (op == clone_functor_tag) {
320
308
  // Clone the functor
@@ -355,7 +343,7 @@ namespace boost {
355
343
  functor_manager_operation_type op, function_obj_tag)
356
344
  {
357
345
  manager(in_buffer, out_buffer, op,
358
- integral_constant<bool, (function_allows_small_object_optimization<functor_type>::value)>());
346
+ std::integral_constant<bool, (function_allows_small_object_optimization<functor_type>::value)>());
359
347
  }
360
348
 
361
349
  // For member pointers, we use the small-object optimization buffer.
@@ -363,7 +351,7 @@ namespace boost {
363
351
  manager(const function_buffer& in_buffer, function_buffer& out_buffer,
364
352
  functor_manager_operation_type op, member_ptr_tag)
365
353
  {
366
- manager(in_buffer, out_buffer, op, true_type());
354
+ manager(in_buffer, out_buffer, op, std::true_type());
367
355
  }
368
356
 
369
357
  public:
@@ -401,7 +389,7 @@ namespace boost {
401
389
  // Function objects that fit in the small-object buffer.
402
390
  static inline void
403
391
  manager(const function_buffer& in_buffer, function_buffer& out_buffer,
404
- functor_manager_operation_type op, true_type)
392
+ functor_manager_operation_type op, std::true_type)
405
393
  {
406
394
  functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
407
395
  }
@@ -409,7 +397,7 @@ namespace boost {
409
397
  // Function objects that require heap allocation
410
398
  static inline void
411
399
  manager(const function_buffer& in_buffer, function_buffer& out_buffer,
412
- functor_manager_operation_type op, false_type)
400
+ functor_manager_operation_type op, std::false_type)
413
401
  {
414
402
  typedef functor_wrapper<Functor,Allocator> functor_wrapper_type;
415
403
 
@@ -460,7 +448,7 @@ namespace boost {
460
448
  functor_manager_operation_type op, function_obj_tag)
461
449
  {
462
450
  manager(in_buffer, out_buffer, op,
463
- integral_constant<bool, (function_allows_small_object_optimization<functor_type>::value)>());
451
+ std::integral_constant<bool, (function_allows_small_object_optimization<functor_type>::value)>());
464
452
  }
465
453
 
466
454
  public:
@@ -529,8 +517,8 @@ public:
529
517
 
530
518
  detail::function::function_buffer type_result;
531
519
  type_result.members.type.type = &BOOST_CORE_TYPEID(Functor);
532
- type_result.members.type.const_qualified = is_const<Functor>::value;
533
- type_result.members.type.volatile_qualified = is_volatile<Functor>::value;
520
+ type_result.members.type.const_qualified = std::is_const<Functor>::value;
521
+ type_result.members.type.volatile_qualified = std::is_volatile<Functor>::value;
534
522
  get_vtable()->manager(functor, type_result,
535
523
  detail::function::check_functor_type_tag);
536
524
  return static_cast<Functor*>(type_result.members.obj_ptr);
@@ -544,7 +532,7 @@ public:
544
532
  detail::function::function_buffer type_result;
545
533
  type_result.members.type.type = &BOOST_CORE_TYPEID(Functor);
546
534
  type_result.members.type.const_qualified = true;
547
- type_result.members.type.volatile_qualified = is_volatile<Functor>::value;
535
+ type_result.members.type.volatile_qualified = std::is_volatile<Functor>::value;
548
536
  get_vtable()->manager(functor, type_result,
549
537
  detail::function::check_functor_type_tag);
550
538
  // GCC 2.95.3 gets the CV qualifiers wrong here, so we
@@ -553,8 +541,8 @@ public:
553
541
  }
554
542
 
555
543
  template<typename F>
556
- typename boost::enable_if_< !boost::is_function<F>::value, bool >::type
557
- contains(const F& f) const
544
+ typename std::enable_if< !std::is_function<F>::value, bool >::type
545
+ contains(const F& f) const
558
546
  {
559
547
  if (const F* fp = this->template target<F>())
560
548
  {
@@ -565,8 +553,8 @@ public:
565
553
  }
566
554
 
567
555
  template<typename Fn>
568
- typename boost::enable_if_< boost::is_function<Fn>::value, bool >::type
569
- contains(Fn& f) const
556
+ typename std::enable_if< std::is_function<Fn>::value, bool >::type
557
+ contains(Fn& f) const
570
558
  {
571
559
  typedef Fn* F;
572
560
  if (const F* fp = this->template target<F>())