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
@@ -367,6 +367,9 @@ class slist_impl
367
367
  //! <b>Complexity</b>: Linear to the number of elements in the list, if
368
368
  //! it's a safe-mode or auto-unlink value. Otherwise constant.
369
369
  ~slist_impl()
370
+ #if defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
371
+ requires (ValueTraits::link_mode != normal_link)
372
+ #endif
370
373
  {
371
374
  BOOST_IF_CONSTEXPR(is_safe_autounlink<ValueTraits::link_mode>::value){
372
375
  this->clear();
@@ -374,6 +377,11 @@ class slist_impl
374
377
  }
375
378
  }
376
379
 
380
+ #if !defined(BOOST_INTRUSIVE_DOXYGEN_INVOKED) && defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
381
+ //Default destructor for normal links (allows conditional triviality)
382
+ ~slist_impl() requires (ValueTraits::link_mode == normal_link) = default;
383
+ #endif
384
+
377
385
  //! <b>Effects</b>: Erases all the elements of the container.
378
386
  //!
379
387
  //! <b>Throws</b>: Nothing.
@@ -820,7 +828,9 @@ class slist_impl
820
828
  BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::inited(n));
821
829
  node_ptr prev_n(prev_p.pointed_node());
822
830
  node_algorithms::link_after(prev_n, n);
823
- if(cache_last && (this->get_last_node() == prev_n)){
831
+
832
+ BOOST_IF_CONSTEXPR(cache_last)
833
+ if(this->get_last_node() == prev_n){
824
834
  this->set_last_node(n);
825
835
  }
826
836
  this->priv_size_traits().increment();
@@ -852,7 +862,8 @@ class slist_impl
852
862
  prev_n = n;
853
863
  }
854
864
  //Now fix special cases if needed
855
- if(cache_last && (this->get_last_node() == prev_p.pointed_node())){
865
+ BOOST_IF_CONSTEXPR(cache_last)
866
+ if(this->get_last_node() == prev_p.pointed_node()){
856
867
  this->set_last_node(prev_n);
857
868
  }
858
869
  BOOST_IF_CONSTEXPR(constant_time_size){
@@ -1048,7 +1059,9 @@ class slist_impl
1048
1059
  ++it;
1049
1060
  node_ptr prev_n(prev.pointed_node());
1050
1061
  node_algorithms::unlink_after(prev_n);
1051
- if(cache_last && (to_erase == this->get_last_node())){
1062
+
1063
+ BOOST_IF_CONSTEXPR(cache_last)
1064
+ if(to_erase == this->get_last_node()){
1052
1065
  this->set_last_node(prev_n);
1053
1066
  }
1054
1067
  BOOST_IF_CONSTEXPR(safemode_or_autounlink)
@@ -1135,7 +1148,9 @@ class slist_impl
1135
1148
  disposer(priv_value_traits().to_value_ptr(to_erase));
1136
1149
  this->priv_size_traits().decrement();
1137
1150
  }
1138
- if(cache_last && (node_traits::get_next(bfp) == this->get_end_node())){
1151
+
1152
+ BOOST_IF_CONSTEXPR(cache_last)
1153
+ if(node_traits::get_next(bfp) == this->get_end_node()){
1139
1154
  this->set_last_node(bfp);
1140
1155
  }
1141
1156
  return l.unconst();
@@ -1576,7 +1591,8 @@ class slist_impl
1576
1591
  //! <b>Note</b>: Iterators and references are not invalidated
1577
1592
  void reverse() BOOST_NOEXCEPT
1578
1593
  {
1579
- if(cache_last && !this->empty()){
1594
+ BOOST_IF_CONSTEXPR(cache_last)
1595
+ if(!this->empty()){
1580
1596
  this->set_last_node(node_traits::get_next(this->get_root_node()));
1581
1597
  }
1582
1598
  this->priv_reverse(detail::bool_<linear>());
@@ -1592,8 +1608,8 @@ class slist_impl
1592
1608
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1593
1609
  //! and iterators to elements that are not removed remain valid. This function is
1594
1610
  //! linear time: it performs exactly size() comparisons for equality.
1595
- void remove(const_reference value) BOOST_NOEXCEPT
1596
- { this->remove_if(detail::equal_to_value<const_reference>(value)); }
1611
+ size_type remove(const_reference value) BOOST_NOEXCEPT
1612
+ { return this->remove_if(detail::equal_to_value<const_reference>(value)); }
1597
1613
 
1598
1614
  //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1599
1615
  //!
@@ -1607,8 +1623,8 @@ class slist_impl
1607
1623
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1608
1624
  //! and iterators to elements that are not removed remain valid.
1609
1625
  template<class Disposer>
1610
- void remove_and_dispose(const_reference value, Disposer disposer) BOOST_NOEXCEPT
1611
- { this->remove_and_dispose_if(detail::equal_to_value<const_reference>(value), disposer); }
1626
+ size_type remove_and_dispose(const_reference value, Disposer disposer) BOOST_NOEXCEPT
1627
+ { return this->remove_and_dispose_if(detail::equal_to_value<const_reference>(value), disposer); }
1612
1628
 
1613
1629
  //! <b>Effects</b>: Removes all the elements for which a specified
1614
1630
  //! predicate is satisfied. No destructors are called.
@@ -1620,7 +1636,7 @@ class slist_impl
1620
1636
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1621
1637
  //! and iterators to elements that are not removed remain valid.
1622
1638
  template<class Pred>
1623
- void remove_if(Pred pred)
1639
+ size_type remove_if(Pred pred)
1624
1640
  {
1625
1641
  const node_ptr bbeg = this->get_root_node();
1626
1642
  typename node_algorithms::stable_partition_info info;
@@ -1634,6 +1650,7 @@ class slist_impl
1634
1650
  this->erase_after( const_iterator(bbeg, this->priv_value_traits_ptr())
1635
1651
  , const_iterator(info.beg_2st_partition, this->priv_value_traits_ptr())
1636
1652
  , info.num_1st_partition);
1653
+ return info.num_1st_partition;
1637
1654
  }
1638
1655
 
1639
1656
  //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
@@ -1649,7 +1666,7 @@ class slist_impl
1649
1666
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1650
1667
  //! and iterators to elements that are not removed remain valid.
1651
1668
  template<class Pred, class Disposer>
1652
- void remove_and_dispose_if(Pred pred, Disposer disposer)
1669
+ size_type remove_and_dispose_if(Pred pred, Disposer disposer)
1653
1670
  {
1654
1671
  const node_ptr bbeg = this->get_root_node();
1655
1672
  typename node_algorithms::stable_partition_info info;
@@ -1663,24 +1680,29 @@ class slist_impl
1663
1680
  this->erase_after_and_dispose( const_iterator(bbeg, this->priv_value_traits_ptr())
1664
1681
  , const_iterator(info.beg_2st_partition, this->priv_value_traits_ptr())
1665
1682
  , disposer);
1683
+ return info.num_1st_partition;
1666
1684
  }
1667
1685
 
1668
1686
  //! <b>Effects</b>: Removes adjacent duplicate elements or adjacent
1669
1687
  //! elements that are equal from the list. No destructors are called.
1670
1688
  //!
1689
+ //! <b>Returns</b>: The number of removed elements.
1690
+ //!
1671
1691
  //! <b>Throws</b>: If operator== throws. Basic guarantee.
1672
1692
  //!
1673
1693
  //! <b>Complexity</b>: Linear time (size()-1) comparisons calls to pred()).
1674
1694
  //!
1675
1695
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1676
1696
  //! and iterators to elements that are not removed remain valid.
1677
- void unique()
1678
- { this->unique_and_dispose(value_equal<value_type>(), detail::null_disposer()); }
1697
+ size_type unique()
1698
+ { return this->unique_and_dispose(value_equal<value_type>(), detail::null_disposer()); }
1679
1699
 
1680
1700
  //! <b>Effects</b>: Removes adjacent duplicate elements or adjacent
1681
1701
  //! elements that satisfy some binary predicate from the list.
1682
1702
  //! No destructors are called.
1683
1703
  //!
1704
+ //! <b>Returns</b>: The number of removed elements.
1705
+ //!
1684
1706
  //! <b>Throws</b>: If the predicate throws. Basic guarantee.
1685
1707
  //!
1686
1708
  //! <b>Complexity</b>: Linear time (size()-1) comparisons equality comparisons.
@@ -1688,8 +1710,8 @@ class slist_impl
1688
1710
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1689
1711
  //! and iterators to elements that are not removed remain valid.
1690
1712
  template<class BinaryPredicate>
1691
- void unique(BinaryPredicate pred)
1692
- { this->unique_and_dispose(pred, detail::null_disposer()); }
1713
+ size_type unique(BinaryPredicate pred)
1714
+ { return this->unique_and_dispose(pred, detail::null_disposer()); }
1693
1715
 
1694
1716
  //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1695
1717
  //!
@@ -1697,6 +1719,8 @@ class slist_impl
1697
1719
  //! elements that satisfy some binary predicate from the list.
1698
1720
  //! Disposer::operator()(pointer) is called for every removed element.
1699
1721
  //!
1722
+ //! <b>Returns</b>: The number of removed elements.
1723
+ //!
1700
1724
  //! <b>Throws</b>: If operator== throws. Basic guarantee.
1701
1725
  //!
1702
1726
  //! <b>Complexity</b>: Linear time (size()-1) comparisons equality comparisons.
@@ -1704,8 +1728,8 @@ class slist_impl
1704
1728
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1705
1729
  //! and iterators to elements that are not removed remain valid.
1706
1730
  template<class Disposer>
1707
- void unique_and_dispose(Disposer disposer)
1708
- { this->unique(value_equal<value_type>(), disposer); }
1731
+ size_type unique_and_dispose(Disposer disposer)
1732
+ { return this->unique_and_dispose(value_equal<value_type>(), disposer); }
1709
1733
 
1710
1734
  //! <b>Requires</b>: Disposer::operator()(pointer) shouldn't throw.
1711
1735
  //!
@@ -1720,16 +1744,19 @@ class slist_impl
1720
1744
  //! <b>Note</b>: The relative order of elements that are not removed is unchanged,
1721
1745
  //! and iterators to elements that are not removed remain valid.
1722
1746
  template<class BinaryPredicate, class Disposer>
1723
- void unique_and_dispose(BinaryPredicate pred, Disposer disposer)
1747
+ size_type unique_and_dispose(BinaryPredicate pred, Disposer disposer)
1724
1748
  {
1725
1749
  const_iterator end_n(this->cend());
1726
1750
  const_iterator bcur(this->cbegin());
1751
+ size_type n = 0;
1752
+
1727
1753
  if(bcur != end_n){
1728
1754
  const_iterator cur(bcur);
1729
1755
  ++cur;
1730
1756
  while(cur != end_n) {
1731
1757
  if (pred(*bcur, *cur)){
1732
1758
  cur = this->erase_after_and_dispose(bcur, disposer);
1759
+ ++n;
1733
1760
  }
1734
1761
  else{
1735
1762
  bcur = cur;
@@ -1740,6 +1767,7 @@ class slist_impl
1740
1767
  this->set_last_node(bcur.pointed_node());
1741
1768
  }
1742
1769
  }
1770
+ return n;
1743
1771
  }
1744
1772
 
1745
1773
  //! <b>Requires</b>: `value` must be a reference to a value inserted in an instance of this container type.
@@ -1964,7 +1992,8 @@ class slist_impl
1964
1992
 
1965
1993
  friend bool operator==(const slist_impl &x, const slist_impl &y)
1966
1994
  {
1967
- if(constant_time_size && x.size() != y.size()){
1995
+ BOOST_IF_CONSTEXPR(constant_time_size)
1996
+ if(x.size() != y.size()){
1968
1997
  return false;
1969
1998
  }
1970
1999
  return ::boost::intrusive::algo_equal(x.cbegin(), x.cend(), y.cbegin(), y.cend());
@@ -1991,7 +2020,8 @@ class slist_impl
1991
2020
  private:
1992
2021
  void priv_splice_after(node_ptr prev_pos_n, slist_impl &x, node_ptr before_f_n, node_ptr before_l_n)
1993
2022
  {
1994
- if (cache_last && (before_f_n != before_l_n)){
2023
+ BOOST_IF_CONSTEXPR(cache_last)
2024
+ if(before_f_n != before_l_n){
1995
2025
  if(prev_pos_n == this->get_last_node()){
1996
2026
  this->set_last_node(before_l_n);
1997
2027
  }
@@ -2025,7 +2055,10 @@ class slist_impl
2025
2055
  void priv_shift_backwards(size_type n, detail::bool_<false>)
2026
2056
  {
2027
2057
  node_ptr l = node_algorithms::move_forward(this->get_root_node(), (std::size_t)n);
2028
- if(cache_last && l){
2058
+ (void)l;
2059
+
2060
+ BOOST_IF_CONSTEXPR(cache_last)
2061
+ if(l){
2029
2062
  this->set_last_node(l);
2030
2063
  }
2031
2064
  }
@@ -2046,7 +2079,10 @@ class slist_impl
2046
2079
  void priv_shift_forward(size_type n, detail::bool_<false>)
2047
2080
  {
2048
2081
  node_ptr l = node_algorithms::move_backwards(this->get_root_node(), (std::size_t)n);
2049
- if(cache_last && l){
2082
+ (void)l;
2083
+
2084
+ BOOST_IF_CONSTEXPR(cache_last)
2085
+ if(l){
2050
2086
  this->set_last_node(l);
2051
2087
  }
2052
2088
  }
@@ -386,9 +386,11 @@ class unordered_set_impl
386
386
 
387
387
  friend bool operator==(const unordered_set_impl &x, const unordered_set_impl &y)
388
388
  {
389
- if(table_type::constant_time_size && x.size() != y.size()){
389
+ BOOST_IF_CONSTEXPR(table_type::constant_time_size)
390
+ if(x.size() != y.size()){
390
391
  return false;
391
392
  }
393
+
392
394
  //Find each element of x in y
393
395
  for (const_iterator ix = x.cbegin(), ex = x.cend(), ey = y.cend(); ix != ex; ++ix){
394
396
  const_iterator iy = y.find(key_of_value()(*ix));
@@ -7,7 +7,10 @@
7
7
  #ifndef BOOST_ITERATOR_ADVANCE_HPP
8
8
  #define BOOST_ITERATOR_ADVANCE_HPP
9
9
 
10
+ #include <type_traits>
11
+
10
12
  #include <boost/config.hpp>
13
+ #include <boost/iterator/is_iterator.hpp>
11
14
  #include <boost/iterator/iterator_categories.hpp>
12
15
 
13
16
  namespace boost {
@@ -56,7 +59,8 @@ inline BOOST_CXX14_CONSTEXPR void advance_impl(RandomAccessIterator& it, Distanc
56
59
  namespace advance_adl_barrier {
57
60
 
58
61
  template< typename InputIterator, typename Distance >
59
- inline BOOST_CXX14_CONSTEXPR void advance(InputIterator& it, Distance n)
62
+ inline BOOST_CXX14_CONSTEXPR typename std::enable_if< is_iterator< InputIterator >::value >::type
63
+ advance(InputIterator& it, Distance n)
60
64
  {
61
65
  detail::advance_impl(it, n, typename iterator_traversal< InputIterator >::type());
62
66
  }
@@ -1,4 +1,5 @@
1
1
  // Copyright (C) 2017 Michel Morin.
2
+ // Copyright (C) 2026 Jeremy W. Murphy
2
3
  //
3
4
  // Distributed under the Boost Software License, Version 1.0.
4
5
  // (See accompanying file LICENSE_1_0.txt or copy at
@@ -7,7 +8,10 @@
7
8
  #ifndef BOOST_ITERATOR_DISTANCE_HPP
8
9
  #define BOOST_ITERATOR_DISTANCE_HPP
9
10
 
11
+ #include <type_traits>
12
+
10
13
  #include <boost/config.hpp>
14
+ #include <boost/iterator/is_iterator.hpp>
11
15
  #include <boost/iterator/iterator_categories.hpp>
12
16
  #include <boost/iterator/iterator_traits.hpp>
13
17
 
@@ -40,8 +44,10 @@ distance_impl(RandomAccessIterator first, RandomAccessIterator last, random_acce
40
44
  namespace distance_adl_barrier {
41
45
 
42
46
  template< typename SinglePassIterator >
43
- inline BOOST_CXX14_CONSTEXPR typename iterator_difference< SinglePassIterator >::type
44
- distance(SinglePassIterator first, SinglePassIterator last)
47
+ inline BOOST_CXX14_CONSTEXPR typename std::enable_if<
48
+ is_iterator< SinglePassIterator >::value,
49
+ iterator_difference< SinglePassIterator >
50
+ >::type::type distance(SinglePassIterator first, SinglePassIterator last)
45
51
  {
46
52
  return detail::distance_impl(first, last, typename iterator_traversal< SinglePassIterator >::type());
47
53
  }
@@ -139,10 +139,19 @@ struct is_iterator< volatile T > : public detail::is_iterator_impl< T >::type {}
139
139
  template< typename T >
140
140
  struct is_iterator< const volatile T > : public detail::is_iterator_impl< T >::type {};
141
141
 
142
+ #if !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES)
143
+ template< typename T >
144
+ BOOST_INLINE_VARIABLE constexpr bool is_iterator_v = iterators::is_iterator< T >::value;
145
+ #endif // !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES)
146
+
142
147
  } // namespace iterators
143
148
 
144
149
  using iterators::is_iterator;
145
150
 
151
+ #if !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES)
152
+ using iterators::is_iterator_v;
153
+ #endif // !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES)
154
+
146
155
  } // namespace boost
147
156
 
148
157
  #endif // BOOST_ITERATOR_IS_ITERATOR_HPP_INCLUDED_
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,6 +18,11 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_BAD_LEXICAL_CAST_HPP
19
19
  #define BOOST_LEXICAL_CAST_BAD_LEXICAL_CAST_HPP
20
20
 
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
24
+
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
21
26
  #include <boost/config.hpp>
22
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
23
28
  # pragma once
@@ -26,9 +31,11 @@
26
31
  #include <exception>
27
32
  #include <typeinfo>
28
33
  #include <boost/throw_exception.hpp>
34
+ #endif
29
35
 
30
36
  namespace boost
31
37
  {
38
+ BOOST_LEXICAL_CAST_BEGIN_MODULE_EXPORT
32
39
  // exception used to indicate runtime lexical_cast failure
33
40
  class BOOST_SYMBOL_VISIBLE bad_lexical_cast :
34
41
  // workaround MSVC bug with std::bad_cast when _HAS_EXCEPTIONS == 0
@@ -80,6 +87,7 @@ namespace boost
80
87
  const type_info_t *target;
81
88
  #endif
82
89
  };
90
+ BOOST_LEXICAL_CAST_END_MODULE_EXPORT
83
91
 
84
92
  namespace conversion { namespace detail {
85
93
  #ifdef BOOST_NO_TYPEID
@@ -97,4 +105,6 @@ namespace boost
97
105
 
98
106
  } // namespace boost
99
107
 
108
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
109
+
100
110
  #endif // BOOST_LEXICAL_CAST_BAD_LEXICAL_CAST_HPP
@@ -1,4 +1,4 @@
1
- // Copyright Antony Polukhin, 2011-2025.
1
+ // Copyright Antony Polukhin, 2011-2026.
2
2
  //
3
3
  // Distributed under the Boost Software License, Version 1.0. (See
4
4
  // accompanying file LICENSE_1_0.txt or copy at
@@ -7,12 +7,18 @@
7
7
  #ifndef BOOST_LEXICAL_CAST_DETAIL_BUFFER_VIEW_HPP
8
8
  #define BOOST_LEXICAL_CAST_DETAIL_BUFFER_VIEW_HPP
9
9
 
10
+ #include <boost/lexical_cast/detail/config.hpp>
11
+
12
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
13
+
14
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
10
15
  #include <boost/config.hpp>
11
16
  #ifdef BOOST_HAS_PRAGMA_ONCE
12
17
  # pragma once
13
18
  #endif
14
19
 
15
20
  #include <iosfwd>
21
+ #endif
16
22
 
17
23
  namespace boost { namespace conversion { namespace detail {
18
24
 
@@ -55,5 +61,7 @@ namespace boost { namespace conversion { namespace detail {
55
61
 
56
62
  }}} // namespace boost::conversion::detail
57
63
 
64
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
65
+
58
66
  #endif // BOOST_LEXICAL_CAST_DETAIL_BUFFER_VIEW_HPP
59
67
 
@@ -0,0 +1,22 @@
1
+ // Copyright Antony Polukhin, 2021-2026.
2
+ //
3
+ // Distributed under the Boost Software License, Version 1.0. (See
4
+ // accompanying file LICENSE_1_0.txt or copy at
5
+ // http://www.boost.org/LICENSE_1_0.txt)
6
+
7
+ #ifndef BOOST_LEXICAL_CAST_DETAIL_CONFIG_HPP
8
+ #define BOOST_LEXICAL_CAST_DETAIL_CONFIG_HPP
9
+
10
+ #ifdef BOOST_LEXICAL_CAST_INTERFACE_UNIT
11
+ # define BOOST_LEXICAL_CAST_BEGIN_MODULE_EXPORT export {
12
+ # define BOOST_LEXICAL_CAST_END_MODULE_EXPORT }
13
+ #else
14
+ # define BOOST_LEXICAL_CAST_BEGIN_MODULE_EXPORT
15
+ # define BOOST_LEXICAL_CAST_END_MODULE_EXPORT
16
+ #endif
17
+
18
+ #if defined(BOOST_USE_MODULES) && !defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
19
+ import boost.lexical_cast;
20
+ #endif
21
+
22
+ #endif // #ifndef BOOST_LEXICAL_CAST_DETAIL_CONFIG_HPP
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,6 +18,11 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_DETAIL_CONVERTER_LEXICAL_HPP
19
19
  #define BOOST_LEXICAL_CAST_DETAIL_CONVERTER_LEXICAL_HPP
20
20
 
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
24
+
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
21
26
  #include <boost/config.hpp>
22
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
23
28
  # pragma once
@@ -27,15 +32,11 @@
27
32
  #define BOOST_LCAST_NO_WCHAR_T
28
33
  #endif
29
34
 
35
+ #include <array>
30
36
  #include <cstddef>
31
37
  #include <string>
32
38
  #include <type_traits>
33
39
  #include <boost/limits.hpp>
34
- #include <boost/detail/lcast_precision.hpp>
35
-
36
- #include <boost/lexical_cast/detail/widest_char.hpp>
37
- #include <boost/lexical_cast/detail/is_character.hpp>
38
- #include <boost/lexical_cast/detail/type_traits.hpp>
39
40
 
40
41
  #include <array>
41
42
 
@@ -43,9 +44,14 @@
43
44
  #include <string_view>
44
45
  #endif
45
46
 
46
- #include <boost/lexical_cast/detail/buffer_view.hpp>
47
47
  #include <boost/container/container_fwd.hpp>
48
48
 
49
+ #endif // #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
50
+
51
+ #include <boost/lexical_cast/detail/lcast_precision.hpp>
52
+ #include <boost/lexical_cast/detail/widest_char.hpp>
53
+ #include <boost/lexical_cast/detail/is_character.hpp>
54
+ #include <boost/lexical_cast/detail/buffer_view.hpp>
49
55
  #include <boost/lexical_cast/detail/converter_lexical_streams.hpp>
50
56
 
51
57
  namespace boost {
@@ -479,5 +485,7 @@ namespace boost {
479
485
 
480
486
  #undef BOOST_LCAST_NO_WCHAR_T
481
487
 
488
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
489
+
482
490
  #endif // BOOST_LEXICAL_CAST_DETAIL_CONVERTER_LEXICAL_HPP
483
491
 
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,12 +18,16 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_DETAIL_CONVERTER_LEXICAL_STREAMS_HPP
19
19
  #define BOOST_LEXICAL_CAST_DETAIL_CONVERTER_LEXICAL_STREAMS_HPP
20
20
 
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
24
+
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
21
26
  #include <boost/config.hpp>
22
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
23
28
  # pragma once
24
29
  #endif
25
30
 
26
-
27
31
  #if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_WSTRING)
28
32
  #define BOOST_LCAST_NO_WCHAR_T
29
33
  #endif
@@ -33,9 +37,8 @@
33
37
  #include <cstring>
34
38
  #include <cstdio>
35
39
  #include <type_traits>
40
+
36
41
  #include <boost/limits.hpp>
37
- #include <boost/detail/lcast_precision.hpp>
38
- #include <boost/lexical_cast/detail/type_traits.hpp>
39
42
  #include <boost/config/workaround.hpp>
40
43
  #include <boost/core/snprintf.hpp>
41
44
 
@@ -58,21 +61,28 @@
58
61
  #include <sstream>
59
62
  #endif
60
63
 
61
- #include <boost/lexical_cast/detail/buffer_view.hpp>
62
- #include <boost/lexical_cast/detail/lcast_char_constants.hpp>
63
- #include <boost/lexical_cast/detail/lcast_unsigned_converters.hpp>
64
- #include <boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp>
65
- #include <boost/lexical_cast/detail/inf_nan.hpp>
66
-
67
- #include <istream>
68
64
 
69
65
  #include <array>
66
+ #ifndef BOOST_NO_CWCHAR
67
+ # include <cwchar>
68
+ #endif
69
+ #include <istream>
70
70
 
71
71
  #include <boost/container/container_fwd.hpp>
72
72
  #ifndef BOOST_NO_CWCHAR
73
73
  # include <cwchar>
74
74
  #endif
75
75
 
76
+ #endif // #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
77
+
78
+ #include <boost/lexical_cast/detail/buffer_view.hpp>
79
+ #include <boost/lexical_cast/detail/lcast_char_constants.hpp>
80
+ #include <boost/lexical_cast/detail/lcast_unsigned_converters.hpp>
81
+ #include <boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp>
82
+ #include <boost/lexical_cast/detail/inf_nan.hpp>
83
+ #include <boost/lexical_cast/detail/lcast_precision.hpp>
84
+ #include <boost/lexical_cast/detail/type_traits.hpp>
85
+
76
86
  // Forward declarations
77
87
  namespace boost {
78
88
  template<class T, std::size_t N>
@@ -747,5 +757,7 @@ namespace boost { namespace detail { namespace lcast {
747
757
 
748
758
  #undef BOOST_LCAST_NO_WCHAR_T
749
759
 
760
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
761
+
750
762
  #endif // BOOST_LEXICAL_CAST_DETAIL_CONVERTER_LEXICAL_HPP
751
763
 
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,6 +18,11 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_DETAIL_CONVERTER_NUMERIC_HPP
19
19
  #define BOOST_LEXICAL_CAST_DETAIL_CONVERTER_NUMERIC_HPP
20
20
 
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
24
+
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
21
26
  #include <boost/config.hpp>
22
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
23
28
  # pragma once
@@ -26,6 +31,9 @@
26
31
  #include <type_traits>
27
32
  #include <boost/core/cmath.hpp>
28
33
  #include <boost/limits.hpp>
34
+
35
+ #endif // #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
36
+
29
37
  #include <boost/lexical_cast/detail/type_traits.hpp>
30
38
 
31
39
  namespace boost { namespace detail {
@@ -176,5 +184,7 @@ struct dynamic_num_converter_impl
176
184
 
177
185
  }} // namespace boost::detail
178
186
 
187
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
188
+
179
189
  #endif // BOOST_LEXICAL_CAST_DETAIL_CONVERTER_NUMERIC_HPP
180
190
 
@@ -1,6 +1,6 @@
1
1
  // Copyright Kevlin Henney, 2000-2005.
2
2
  // Copyright Alexander Nasonov, 2006-2010.
3
- // Copyright Antony Polukhin, 2011-2025.
3
+ // Copyright Antony Polukhin, 2011-2026.
4
4
  //
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -18,6 +18,11 @@
18
18
  #ifndef BOOST_LEXICAL_CAST_DETAIL_INF_NAN_HPP
19
19
  #define BOOST_LEXICAL_CAST_DETAIL_INF_NAN_HPP
20
20
 
21
+ #include <boost/lexical_cast/detail/config.hpp>
22
+
23
+ #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
24
+
25
+ #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
21
26
  #include <boost/config.hpp>
22
27
  #ifdef BOOST_HAS_PRAGMA_ONCE
23
28
  # pragma once
@@ -32,6 +37,7 @@
32
37
  #include <boost/core/cmath.hpp>
33
38
  #include <cstddef>
34
39
  #include <cstring>
40
+ #endif // #ifndef BOOST_LEXICAL_CAST_INTERFACE_UNIT
35
41
 
36
42
  #include <boost/lexical_cast/detail/lcast_char_constants.hpp>
37
43
 
@@ -183,5 +189,7 @@ namespace boost {
183
189
 
184
190
  #undef BOOST_LCAST_NO_WCHAR_T
185
191
 
192
+ #endif // #if !defined(BOOST_USE_MODULES) || defined(BOOST_LEXICAL_CAST_INTERFACE_UNIT)
193
+
186
194
  #endif // BOOST_LEXICAL_CAST_DETAIL_INF_NAN_HPP
187
195