passenger 6.0.0 → 6.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (454) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +148 -18
  3. data/CONTRIBUTORS +6 -0
  4. data/bin/passenger-install-nginx-module +1 -1
  5. data/bin/passenger-status +15 -0
  6. data/build/misc.rb +3 -1
  7. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +56 -3
  8. data/dev/copy_boost_headers +1 -0
  9. data/package.json +1 -1
  10. data/passenger.gemspec +1 -1
  11. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
  12. data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
  13. data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
  14. data/resources/templates/standalone/http.erb +2 -0
  15. data/resources/templates/standalone/server.erb +1 -0
  16. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  17. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
  18. data/src/agent/Core/ApplicationPool/Options.h +10 -0
  19. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
  20. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
  21. data/src/agent/Core/Config.h +13 -1
  22. data/src/agent/Core/Controller.h +1 -0
  23. data/src/agent/Core/Controller/Config.h +4 -1
  24. data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
  25. data/src/agent/Core/Controller/InitRequest.cpp +3 -0
  26. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
  27. data/src/agent/Core/CoreMain.cpp +2 -1
  28. data/src/agent/Core/OptionParser.h +3 -0
  29. data/src/agent/Core/SpawningKit/Context.h +1 -0
  30. data/src/agent/Core/SpawningKit/Handshake/Perform.h +1 -0
  31. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
  32. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
  33. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
  34. data/src/agent/Watchdog/Config.h +14 -1
  35. data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
  36. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
  37. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +10 -0
  38. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
  39. data/src/apache2_module/Hooks.cpp +6 -0
  40. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
  41. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
  42. data/src/cxx_supportlib/Constants.h +2 -1
  43. data/src/cxx_supportlib/LoggingKit/Config.h +2 -0
  44. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +15 -9
  45. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
  46. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +57 -2
  47. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
  48. data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
  49. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
  50. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
  51. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
  52. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
  53. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
  54. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
  55. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
  56. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
  57. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
  58. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
  59. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
  60. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
  61. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
  62. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
  63. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
  64. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
  65. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
  66. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
  67. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
  68. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
  69. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
  70. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
  71. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
  72. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
  73. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
  74. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
  75. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
  76. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
  77. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
  78. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
  79. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
  80. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
  81. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
  82. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
  83. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
  84. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
  85. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
  87. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
  88. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
  89. data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
  90. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
  91. data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
  92. data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
  93. data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
  94. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
  96. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
  97. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
  98. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
  99. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -0
  100. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
  101. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
  102. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
  103. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
  105. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -1
  106. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
  107. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
  108. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
  109. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
  110. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
  111. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
  112. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
  113. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
  114. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
  115. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  116. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
  117. data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
  118. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
  120. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
  121. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
  122. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
  123. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
  124. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
  125. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
  127. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
  128. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
  129. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
  130. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
  131. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
  132. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
  133. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
  134. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
  136. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
  137. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
  138. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
  141. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
  142. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
  143. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
  144. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
  145. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
  146. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
  147. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
  148. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
  149. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
  150. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
  151. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
  152. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
  153. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
  154. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
  155. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
  156. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
  157. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
  158. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
  159. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
  160. data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
  161. data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
  162. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
  163. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
  164. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
  165. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
  167. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
  168. data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
  169. data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
  170. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
  171. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
  172. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
  173. data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
  174. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
  175. data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
  176. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
  177. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
  178. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
  179. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
  180. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
  181. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
  182. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
  183. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
  184. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
  185. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
  186. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
  187. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
  188. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
  189. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
  190. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
  191. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
  192. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
  193. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  194. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
  195. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
  197. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
  198. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
  199. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
  200. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
  201. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
  202. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
  203. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
  204. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
  205. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
  206. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
  207. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
  208. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
  209. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
  211. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  212. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
  213. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
  214. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
  215. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
  216. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
  218. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  219. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
  220. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
  221. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
  222. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
  223. data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
  224. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
  225. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
  226. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
  227. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
  228. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
  229. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
  230. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
  231. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
  232. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
  233. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
  234. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
  235. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
  236. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
  237. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
  238. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
  239. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
  240. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
  241. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
  242. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
  243. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
  244. data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
  245. data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
  246. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
  247. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
  248. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
  249. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
  250. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
  251. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
  252. data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
  253. data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
  254. data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
  255. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  256. data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
  257. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
  258. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  259. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
  260. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
  261. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
  262. data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
  263. data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
  264. data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
  265. data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
  266. data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
  267. data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
  269. data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
  270. data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
  271. data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
  272. data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
  273. data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
  274. data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
  275. data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
  276. data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
  277. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
  278. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
  279. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
  280. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
  281. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
  282. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
  283. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
  284. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
  285. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
  286. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
  287. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
  288. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
  289. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
  290. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
  291. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
  292. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
  293. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
  294. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
  295. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
  296. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
  297. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
  298. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
  299. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
  300. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
  301. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
  302. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
  303. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
  304. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
  305. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
  306. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
  307. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
  308. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
  309. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
  310. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
  311. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
  312. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
  313. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
  314. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
  315. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
  316. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
  317. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
  319. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
  320. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
  321. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
  322. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
  323. data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
  324. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
  325. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
  326. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
  329. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
  330. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
  331. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
  332. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
  333. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
  334. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
  335. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
  336. data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
  337. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
  338. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
  339. data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
  340. data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
  341. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
  342. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
  343. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
  344. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
  345. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
  346. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
  347. data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
  348. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
  349. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
  350. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
  351. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
  352. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
  353. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
  354. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
  355. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
  356. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
  357. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
  359. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
  360. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
  363. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
  364. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
  365. data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
  366. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
  367. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
  369. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
  370. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
  371. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
  372. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
  373. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
  374. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
  375. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
  376. data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
  377. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
  378. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
  379. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
  380. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
  381. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
  382. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
  383. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
  384. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
  385. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
  386. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
  387. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
  388. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
  389. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
  390. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
  391. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
  392. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
  393. data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
  394. data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
  395. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
  396. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
  397. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
  398. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
  399. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
  400. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
  401. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
  402. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
  403. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
  404. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
  405. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
  406. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
  407. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
  408. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
  409. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
  410. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
  411. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
  412. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
  413. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
  414. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
  415. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
  416. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
  417. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  418. data/src/helper-scripts/prespawn +1 -0
  419. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
  420. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +26 -0
  421. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
  422. data/src/nginx_module/Configuration.c +9 -5
  423. data/src/nginx_module/ContentHandler.c +5 -1
  424. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +15 -0
  425. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
  426. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +28 -0
  427. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
  428. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +11 -0
  429. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
  430. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
  431. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
  432. data/src/nginx_module/ngx_http_passenger_module.c +2 -0
  433. data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
  434. data/src/ruby_native_extension/extconf.rb +7 -0
  435. data/src/ruby_supportlib/phusion_passenger.rb +7 -7
  436. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +8 -0
  437. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +23 -0
  438. data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
  439. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -3
  440. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +37 -0
  441. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
  442. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
  443. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
  444. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
  445. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -0
  446. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -0
  447. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
  448. data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +6 -0
  449. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
  450. metadata +48 -7
  451. data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
  452. data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
  453. data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
  454. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
@@ -19,6 +19,7 @@
19
19
  #define BOOST_CORE_EXPLICIT_OPERATOR_BOOL_HPP
20
20
 
21
21
  #include <boost/config.hpp>
22
+ #include <boost/config/workaround.hpp>
22
23
 
23
24
  #ifdef BOOST_HAS_PRAGMA_ONCE
24
25
  #pragma once
@@ -52,6 +53,8 @@
52
53
  return !this->operator! ();\
53
54
  }
54
55
 
56
+ #if !BOOST_WORKAROUND(BOOST_GCC, < 40700)
57
+
55
58
  /*!
56
59
  * \brief The macro defines a constexpr explicit operator of conversion to \c bool
57
60
  *
@@ -65,6 +68,12 @@
65
68
  return !this->operator! ();\
66
69
  }
67
70
 
71
+ #else
72
+
73
+ #define BOOST_CONSTEXPR_EXPLICIT_OPERATOR_BOOL() BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()
74
+
75
+ #endif
76
+
68
77
  #else // !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS)
69
78
 
70
79
  #if (defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)) && !defined(BOOST_NO_COMPILER_CONFIG)
@@ -14,16 +14,19 @@
14
14
  // Copyright (2) Beman Dawes 2010, 2011
15
15
  // Copyright (3) Ion Gaztanaga 2013
16
16
  //
17
+ // Copyright 2018 Glen Joseph Fernandes
18
+ // (glenjofe@gmail.com)
19
+ //
17
20
  // Distributed under the Boost Software License, Version 1.0.
18
21
  // See accompanying file LICENSE_1_0.txt or copy at
19
22
  // http://www.boost.org/LICENSE_1_0.txt
20
23
  //
21
24
 
22
25
  #include <boost/core/no_exceptions_support.hpp>
23
- #include <boost/assert.hpp>
24
26
  #include <boost/current_function.hpp>
25
27
  #include <iostream>
26
28
  #include <iterator>
29
+ #include <cstdlib>
27
30
  #include <cstring>
28
31
  #include <cstddef>
29
32
 
@@ -39,29 +42,45 @@ namespace boost
39
42
  namespace detail
40
43
  {
41
44
 
42
- struct report_errors_reminder
43
- {
44
- bool called_report_errors_function;
45
+ class test_result {
46
+ public:
47
+ test_result()
48
+ : report_(false)
49
+ , errors_(0) {
50
+ #if defined(_MSC_VER) && (_MSC_VER > 1310)
51
+ ::_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
52
+ #endif
53
+ }
45
54
 
46
- report_errors_reminder() : called_report_errors_function(false) {}
55
+ ~test_result() {
56
+ if (!report_) {
57
+ BOOST_LIGHTWEIGHT_TEST_OSTREAM << "main() should return report_errors()" << std::endl;
58
+ std::abort();
59
+ }
60
+ }
47
61
 
48
- ~report_errors_reminder()
49
- {
50
- BOOST_ASSERT(called_report_errors_function); // verify report_errors() was called
62
+ int& errors() {
63
+ return errors_;
51
64
  }
65
+
66
+ void done() {
67
+ report_ = true;
68
+ }
69
+
70
+ private:
71
+ bool report_;
72
+ int errors_;
52
73
  };
53
74
 
54
- inline report_errors_reminder& report_errors_remind()
75
+ inline test_result& test_results()
55
76
  {
56
- static report_errors_reminder r;
57
- return r;
77
+ static test_result instance;
78
+ return instance;
58
79
  }
59
80
 
60
- inline int & test_errors()
81
+ inline int& test_errors()
61
82
  {
62
- static int x = 0;
63
- report_errors_remind();
64
- return x;
83
+ return test_results().errors();
65
84
  }
66
85
 
67
86
  inline void test_failed_impl(char const * expr, char const * file, int line, char const * function)
@@ -69,7 +88,7 @@ inline void test_failed_impl(char const * expr, char const * file, int line, cha
69
88
  BOOST_LIGHTWEIGHT_TEST_OSTREAM
70
89
  << file << "(" << line << "): test '" << expr << "' failed in function '"
71
90
  << function << "'" << std::endl;
72
- ++test_errors();
91
+ ++test_results().errors();
73
92
  }
74
93
 
75
94
  inline void error_impl(char const * msg, char const * file, int line, char const * function)
@@ -77,7 +96,7 @@ inline void error_impl(char const * msg, char const * file, int line, char const
77
96
  BOOST_LIGHTWEIGHT_TEST_OSTREAM
78
97
  << file << "(" << line << "): " << msg << " in function '"
79
98
  << function << "'" << std::endl;
80
- ++test_errors();
99
+ ++test_results().errors();
81
100
  }
82
101
 
83
102
  inline void throw_failed_impl(char const * excep, char const * file, int line, char const * function)
@@ -85,7 +104,7 @@ inline void throw_failed_impl(char const * excep, char const * file, int line, c
85
104
  BOOST_LIGHTWEIGHT_TEST_OSTREAM
86
105
  << file << "(" << line << "): Exception '" << excep << "' not thrown in function '"
87
106
  << function << "'" << std::endl;
88
- ++test_errors();
107
+ ++test_results().errors();
89
108
  }
90
109
 
91
110
  // In the comparisons below, it is possible that T and U are signed and unsigned integer types, which generates warnings in some compilers.
@@ -118,105 +137,58 @@ template inline const void* test_output_impl(T volatile* v) { return co
118
137
  inline const void* test_output_impl(std::nullptr_t) { return nullptr; }
119
138
  #endif
120
139
 
121
- template<class T, class U> inline void test_eq_impl( char const * expr1, char const * expr2,
122
- char const * file, int line, char const * function, T const & t, U const & u )
123
- {
124
- if( t == u )
125
- {
126
- report_errors_remind();
127
- }
128
- else
129
- {
130
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
131
- << file << "(" << line << "): test '" << expr1 << " == " << expr2
132
- << "' failed in function '" << function << "': "
133
- << "'" << test_output_impl(t) << "' != '" << test_output_impl(u) << "'" << std::endl;
134
- ++test_errors();
135
- }
136
- }
140
+ struct lw_test_eq {
141
+ template <typename T, typename U>
142
+ bool operator()(const T& t, const U& u) const { return t == u; }
143
+ static const char* op() { return "=="; }
144
+ };
137
145
 
138
- template<class T, class U> inline void test_ne_impl( char const * expr1, char const * expr2,
139
- char const * file, int line, char const * function, T const & t, U const & u )
140
- {
141
- if( t != u )
142
- {
143
- report_errors_remind();
144
- }
145
- else
146
- {
147
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
148
- << file << "(" << line << "): test '" << expr1 << " != " << expr2
149
- << "' failed in function '" << function << "': "
150
- << "'" << test_output_impl(t) << "' == '" << test_output_impl(u) << "'" << std::endl;
151
- ++test_errors();
152
- }
153
- }
146
+ struct lw_test_ne {
147
+ template <typename T, typename U>
148
+ bool operator()(const T& t, const U& u) const { return t != u; }
149
+ static const char* op() { return "!="; }
150
+ };
154
151
 
155
- template<class T, class U> inline void test_lt_impl( char const * expr1, char const * expr2,
156
- char const * file, int line, char const * function, T const & t, U const & u )
157
- {
158
- if( t < u )
159
- {
160
- report_errors_remind();
161
- }
162
- else
163
- {
164
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
165
- << file << "(" << line << "): test '" << expr1 << " < " << expr2
166
- << "' failed in function '" << function << "': "
167
- << "'" << test_output_impl(t) << "' >= '" << test_output_impl(u) << "'" << std::endl;
168
- ++test_errors();
169
- }
170
- }
152
+ struct lw_test_lt {
153
+ template <typename T, typename U>
154
+ bool operator()(const T& t, const U& u) const { return t < u; }
155
+ static const char* op() { return "<"; }
156
+ };
171
157
 
172
- template<class T, class U> inline void test_le_impl( char const * expr1, char const * expr2,
173
- char const * file, int line, char const * function, T const & t, U const & u )
174
- {
175
- if( t <= u )
176
- {
177
- report_errors_remind();
178
- }
179
- else
180
- {
181
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
182
- << file << "(" << line << "): test '" << expr1 << " <= " << expr2
183
- << "' failed in function '" << function << "': "
184
- << "'" << test_output_impl(t) << "' > '" << test_output_impl(u) << "'" << std::endl;
185
- ++test_errors();
186
- }
187
- }
158
+ struct lw_test_le {
159
+ template <typename T, typename U>
160
+ bool operator()(const T& t, const U& u) const { return t <= u; }
161
+ static const char* op() { return "<="; }
162
+ };
188
163
 
189
- template<class T, class U> inline void test_gt_impl( char const * expr1, char const * expr2,
190
- char const * file, int line, char const * function, T const & t, U const & u )
191
- {
192
- if( t > u )
193
- {
194
- report_errors_remind();
195
- }
196
- else
197
- {
198
- BOOST_LIGHTWEIGHT_TEST_OSTREAM
199
- << file << "(" << line << "): test '" << expr1 << " > " << expr2
200
- << "' failed in function '" << function << "': "
201
- << "'" << test_output_impl(t) << "' <= '" << test_output_impl(u) << "'" << std::endl;
202
- ++test_errors();
203
- }
204
- }
164
+ struct lw_test_gt {
165
+ template <typename T, typename U>
166
+ bool operator()(const T& t, const U& u) const { return t > u; }
167
+ static const char* op() { return ">"; }
168
+ };
205
169
 
206
- template<class T, class U> inline void test_ge_impl( char const * expr1, char const * expr2,
207
- char const * file, int line, char const * function, T const & t, U const & u )
170
+ struct lw_test_ge {
171
+ template <typename T, typename U>
172
+ bool operator()(const T& t, const U& u) const { return t >= u; }
173
+ static const char* op() { return ">="; }
174
+ };
175
+
176
+ template<class BinaryPredicate, class T, class U>
177
+ inline void test_with_impl(BinaryPredicate pred, char const * expr1, char const * expr2,
178
+ char const * file, int line, char const * function,
179
+ T const & t, U const & u)
208
180
  {
209
- if( t >= u )
181
+ if( pred(t, u) )
210
182
  {
211
- report_errors_remind();
183
+ test_results();
212
184
  }
213
185
  else
214
186
  {
215
187
  BOOST_LIGHTWEIGHT_TEST_OSTREAM
216
- << file << "(" << line << "): test '" << expr1 << " >= " << expr2
217
- << "' failed in function '" << function << "': "
218
- << "'" << test_output_impl(t) << "' < '" << test_output_impl(u) << "'" << std::endl;
219
- ++test_errors();
188
+ << file << "(" << line << "): test '" << expr1 << " " << pred.op() << " " << expr2
189
+ << "' ('" << test_output_impl(t) << "' " << pred.op() << " '" << test_output_impl(u)
190
+ << "') failed in function '" << function << "'" << std::endl;
191
+ ++test_results().errors();
220
192
  }
221
193
  }
222
194
 
@@ -225,15 +197,14 @@ inline void test_cstr_eq_impl( char const * expr1, char const * expr2,
225
197
  {
226
198
  if( std::strcmp(t, u) == 0 )
227
199
  {
228
- report_errors_remind();
200
+ test_results();
229
201
  }
230
202
  else
231
203
  {
232
204
  BOOST_LIGHTWEIGHT_TEST_OSTREAM
233
- << file << "(" << line << "): test '" << expr1 << " == " << expr2
234
- << "' failed in function '" << function << "': "
235
- << "'" << t << "' != '" << u << "'" << std::endl;
236
- ++test_errors();
205
+ << file << "(" << line << "): test '" << expr1 << " == " << expr2 << "' ('" << t
206
+ << "' == '" << u << "') failed in function '" << function << "'" << std::endl;
207
+ ++test_results().errors();
237
208
  }
238
209
  }
239
210
 
@@ -242,15 +213,14 @@ inline void test_cstr_ne_impl( char const * expr1, char const * expr2,
242
213
  {
243
214
  if( std::strcmp(t, u) != 0 )
244
215
  {
245
- report_errors_remind();
216
+ test_results();
246
217
  }
247
218
  else
248
219
  {
249
220
  BOOST_LIGHTWEIGHT_TEST_OSTREAM
250
- << file << "(" << line << "): test '" << expr1 << " == " << expr2
251
- << "' failed in function '" << function << "': "
252
- << "'" << t << "' == '" << u << "'" << std::endl;
253
- ++test_errors();
221
+ << file << "(" << line << "): test '" << expr1 << " != " << expr2 << "' ('" << t
222
+ << "' != '" << u << "') failed in function '" << function << "'" << std::endl;
223
+ ++test_results().errors();
254
224
  }
255
225
  }
256
226
 
@@ -313,12 +283,12 @@ void test_all_eq_impl(FormattedOutputFunction& output,
313
283
 
314
284
  if (error_count == 0)
315
285
  {
316
- boost::detail::report_errors_remind();
286
+ test_results();
317
287
  }
318
288
  else
319
289
  {
320
290
  output << std::endl;
321
- ++boost::detail::test_errors();
291
+ ++test_results().errors();
322
292
  }
323
293
  }
324
294
 
@@ -382,12 +352,12 @@ void test_all_with_impl(FormattedOutputFunction& output,
382
352
 
383
353
  if (error_count == 0)
384
354
  {
385
- report_errors_remind();
355
+ test_results();
386
356
  }
387
357
  else
388
358
  {
389
359
  output << std::endl;
390
- ++test_errors();
360
+ ++test_results().errors();
391
361
  }
392
362
  }
393
363
 
@@ -405,10 +375,10 @@ void test_all_with_impl(FormattedOutputFunction& output,
405
375
 
406
376
  inline int report_errors()
407
377
  {
408
- boost::detail::report_errors_remind().called_report_errors_function = true;
409
-
410
- int errors = boost::detail::test_errors();
378
+ boost::detail::test_result& result = boost::detail::test_results();
379
+ result.done();
411
380
 
381
+ int errors = result.errors();
412
382
  if( errors == 0 )
413
383
  {
414
384
  BOOST_LIGHTWEIGHT_TEST_OSTREAM
@@ -425,18 +395,18 @@ inline int report_errors()
425
395
 
426
396
  } // namespace boost
427
397
 
428
- #define BOOST_TEST(expr) ((expr)? (void)0: ::boost::detail::test_failed_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION))
398
+ #define BOOST_TEST(expr) ((expr)? (void)::boost::detail::test_results(): ::boost::detail::test_failed_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION))
429
399
  #define BOOST_TEST_NOT(expr) BOOST_TEST(!(expr))
430
400
 
431
401
  #define BOOST_ERROR(msg) ( ::boost::detail::error_impl(msg, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION) )
432
402
 
433
- #define BOOST_TEST_EQ(expr1,expr2) ( ::boost::detail::test_eq_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
434
- #define BOOST_TEST_NE(expr1,expr2) ( ::boost::detail::test_ne_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
403
+ #define BOOST_TEST_EQ(expr1,expr2) ( ::boost::detail::test_with_impl(::boost::detail::lw_test_eq(), #expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
404
+ #define BOOST_TEST_NE(expr1,expr2) ( ::boost::detail::test_with_impl(::boost::detail::lw_test_ne(), #expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
435
405
 
436
- #define BOOST_TEST_LT(expr1,expr2) ( ::boost::detail::test_lt_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
437
- #define BOOST_TEST_LE(expr1,expr2) ( ::boost::detail::test_le_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
438
- #define BOOST_TEST_GT(expr1,expr2) ( ::boost::detail::test_gt_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
439
- #define BOOST_TEST_GE(expr1,expr2) ( ::boost::detail::test_ge_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
406
+ #define BOOST_TEST_LT(expr1,expr2) ( ::boost::detail::test_with_impl(::boost::detail::lw_test_lt(), #expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
407
+ #define BOOST_TEST_LE(expr1,expr2) ( ::boost::detail::test_with_impl(::boost::detail::lw_test_le(), #expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
408
+ #define BOOST_TEST_GT(expr1,expr2) ( ::boost::detail::test_with_impl(::boost::detail::lw_test_gt(), #expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
409
+ #define BOOST_TEST_GE(expr1,expr2) ( ::boost::detail::test_with_impl(::boost::detail::lw_test_ge(), #expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
440
410
 
441
411
  #define BOOST_TEST_CSTR_EQ(expr1,expr2) ( ::boost::detail::test_cstr_eq_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
442
412
  #define BOOST_TEST_CSTR_NE(expr1,expr2) ( ::boost::detail::test_cstr_ne_impl(#expr1, #expr2, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, expr1, expr2) )
@@ -452,6 +422,7 @@ inline int report_errors()
452
422
  (#EXCEP, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION); \
453
423
  } \
454
424
  catch(EXCEP const&) { \
425
+ ::boost::detail::test_results(); \
455
426
  } \
456
427
  catch(...) { \
457
428
  ::boost::detail::throw_failed_impl \
@@ -31,7 +31,7 @@ template< class T > inline void test_trait_impl( char const * trait, void (*)( T
31
31
  {
32
32
  if( T::value == expected )
33
33
  {
34
- report_errors_remind();
34
+ test_results();
35
35
  }
36
36
  else
37
37
  {
@@ -42,7 +42,7 @@ template< class T > inline void test_trait_impl( char const * trait, void (*)( T
42
42
  << "' (should have been " << ( expected? "true": "false" ) << ")"
43
43
  << std::endl;
44
44
 
45
- ++test_errors();
45
+ ++test_results().errors();
46
46
  }
47
47
  }
48
48
 
@@ -20,7 +20,22 @@ namespace boost {
20
20
 
21
21
  namespace noncopyable_ // protection from unintended ADL
22
22
  {
23
- class noncopyable
23
+ #ifndef BOOST_NONCOPYABLE_BASE_TOKEN_DEFINED
24
+ #define BOOST_NONCOPYABLE_BASE_TOKEN_DEFINED
25
+
26
+ // noncopyable derives from base_token to enable Type Traits to detect
27
+ // whether a type derives from noncopyable without needing the definition
28
+ // of noncopyable itself.
29
+ //
30
+ // The definition of base_token is macro-guarded so that Type Trais can
31
+ // define it locally without including this header, to avoid a dependency
32
+ // on Core.
33
+
34
+ struct base_token {};
35
+
36
+ #endif // #ifndef BOOST_NONCOPYABLE_BASE_TOKEN_DEFINED
37
+
38
+ class noncopyable: base_token
24
39
  {
25
40
  protected:
26
41
  #if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS)
@@ -0,0 +1,59 @@
1
+ #ifndef BOOST_CORE_QUICK_EXIT_HPP_INCLUDED
2
+ #define BOOST_CORE_QUICK_EXIT_HPP_INCLUDED
3
+
4
+ // MS compatible compilers support #pragma once
5
+
6
+ #if defined(_MSC_VER) && (_MSC_VER >= 1020)
7
+ # pragma once
8
+ #endif
9
+
10
+ // boost/core/quick_exit.hpp
11
+ //
12
+ // Copyright 2018 Peter Dimov
13
+ //
14
+ // Distributed under the Boost Software License, Version 1.0.
15
+ // See accompanying file LICENSE_1_0.txt or copy at
16
+ // http://www.boost.org/LICENSE_1_0.txt)
17
+
18
+ #include <boost/config.hpp>
19
+ #include <cstdlib>
20
+
21
+ #if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)
22
+
23
+ extern "C" _CRTIMP __cdecl __MINGW_NOTHROW void _exit (int) __MINGW_ATTRIB_NORETURN;
24
+
25
+ #endif
26
+
27
+ #if defined(__CYGWIN__) && __cplusplus < 201103L
28
+
29
+ extern "C" _Noreturn void quick_exit(int);
30
+
31
+ #endif
32
+
33
+ namespace boost
34
+ {
35
+
36
+ BOOST_NORETURN void quick_exit( int code ) BOOST_NOEXCEPT
37
+ {
38
+ #if defined(_MSC_VER) && _MSC_VER < 1900
39
+
40
+ ::_exit( code );
41
+
42
+ #elif defined(__MINGW32__)
43
+
44
+ ::_exit( code );
45
+
46
+ #elif defined(__APPLE__)
47
+
48
+ ::_Exit( code );
49
+
50
+ #else
51
+
52
+ ::quick_exit( code );
53
+
54
+ #endif
55
+ }
56
+
57
+ } // namespace boost
58
+
59
+ #endif // #ifndef BOOST_CORE_QUICK_EXIT_HPP_INCLUDED