passenger 5.1.4 → 5.1.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (542) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +9 -0
  3. data/CHANGELOG +9 -0
  4. data/build/cxx_tests.rb +11 -1
  5. data/build/documentation.rb +0 -32
  6. data/build/support/cxx_dependency_map.rb +602 -2
  7. data/build/test_basics.rb +3 -3
  8. data/dev/boost-patches/0001-Patch-boost-thread-so-that-oxt-thread-can-use-it.patch +48 -0
  9. data/dev/boost-patches/0002-Make-boost-thread_interrupted-derive-from-oxt-tracab.patch +33 -0
  10. data/dev/boost-patches/0003-Disable-a-Clang-pragma-to-prevent-warnings-on-OS-X.patch +25 -0
  11. data/dev/ci/README.md +121 -0
  12. data/dev/ci/lib/functions.sh +129 -0
  13. data/dev/ci/lib/set-container-envvars.sh +46 -0
  14. data/dev/ci/lib/setup-container.sh +43 -0
  15. data/dev/ci/run-tests-natively +24 -0
  16. data/dev/ci/run-tests-with-docker +42 -0
  17. data/dev/ci/scripts/debug-console-wrapper.sh +27 -0
  18. data/dev/ci/scripts/docker-entrypoint-stage2.sh +17 -0
  19. data/dev/ci/scripts/docker-entrypoint.sh +17 -0
  20. data/dev/ci/scripts/inituidgid +17 -0
  21. data/dev/ci/scripts/run-tests-natively-stage2.sh +17 -0
  22. data/dev/ci/scripts/setup-host-natively.sh +11 -0
  23. data/dev/ci/setup-host +50 -0
  24. data/dev/ci/tests/apache2/run +6 -0
  25. data/dev/ci/tests/apache2/setup +4 -0
  26. data/dev/ci/tests/cxx/run +9 -0
  27. data/dev/ci/tests/cxx/setup +4 -0
  28. data/dev/ci/tests/nginx-dynamic/run +20 -0
  29. data/dev/ci/tests/nginx-dynamic/setup +4 -0
  30. data/dev/ci/tests/nginx/run +5 -0
  31. data/dev/ci/tests/nginx/setup +4 -0
  32. data/dev/ci/tests/nodejs/run +4 -0
  33. data/dev/ci/tests/nodejs/setup +4 -0
  34. data/dev/ci/tests/ruby/run +4 -0
  35. data/dev/ci/tests/ruby/setup +4 -0
  36. data/dev/ci/tests/source-packaging/run +4 -0
  37. data/dev/ci/tests/source-packaging/setup +4 -0
  38. data/dev/ci/tests/standalone/run +4 -0
  39. data/dev/ci/tests/standalone/setup +4 -0
  40. data/dev/copy_boost_headers +8 -2
  41. data/src/agent/Core/ApiServer.h +11 -5
  42. data/src/agent/Core/Controller.h +12 -46
  43. data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
  44. data/src/agent/Core/Controller/Config.h +369 -0
  45. data/src/agent/Core/Controller/ForwardResponse.cpp +4 -4
  46. data/src/agent/Core/Controller/Hooks.cpp +15 -3
  47. data/src/agent/Core/Controller/Implementation.cpp +1 -1
  48. data/src/agent/Core/Controller/InitRequest.cpp +28 -39
  49. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +25 -60
  50. data/src/agent/Core/Controller/InternalUtils.cpp +0 -16
  51. data/src/agent/Core/Controller/Miscellaneous.cpp +0 -17
  52. data/src/agent/Core/Controller/Request.h +2 -0
  53. data/src/agent/Core/Controller/SendRequest.cpp +4 -4
  54. data/src/agent/Core/Controller/{StateInspectionAndConfiguration.cpp → StateInspection.cpp} +0 -22
  55. data/src/agent/Core/Controller/TurboCaching.h +11 -10
  56. data/src/agent/Core/CoreMain.cpp +16 -6
  57. data/src/agent/Core/ResponseCache.h +3 -3
  58. data/src/agent/Core/SpawningKit/SmartSpawner.h +9 -3
  59. data/src/agent/Core/SpawningKit/Spawner.h +7 -3
  60. data/src/agent/UstRouter/ApiServer.h +3 -2
  61. data/src/agent/UstRouter/Controller.h +66 -32
  62. data/src/agent/UstRouter/UstRouterMain.cpp +10 -2
  63. data/src/agent/Watchdog/ApiServer.h +3 -2
  64. data/src/agent/Watchdog/WatchdogMain.cpp +3 -1
  65. data/src/apache2_module/ConfigurationCommands.cpp +1 -1
  66. data/src/cxx_supportlib/ConfigKit/Common.h +125 -0
  67. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +34 -0
  68. data/src/cxx_supportlib/ConfigKit/README.md +895 -0
  69. data/src/cxx_supportlib/ConfigKit/Schema.h +331 -0
  70. data/src/cxx_supportlib/ConfigKit/Store.h +385 -0
  71. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +185 -0
  72. data/src/cxx_supportlib/ConfigKit/Utils.h +141 -0
  73. data/src/cxx_supportlib/ConfigKit/VariantMapUtils.h +81 -0
  74. data/src/cxx_supportlib/Constants.h +1 -1
  75. data/src/cxx_supportlib/Crypto.cpp +2 -2
  76. data/src/cxx_supportlib/Logging.h +0 -35
  77. data/src/cxx_supportlib/ServerKit/HttpServer.h +35 -16
  78. data/src/cxx_supportlib/ServerKit/Server.h +65 -25
  79. data/src/cxx_supportlib/oxt/macros.hpp +3 -0
  80. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/replace.hpp +0 -2
  81. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +53 -42
  82. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_template.hpp +11 -5
  83. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +13 -2
  84. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_gcc_x86.hpp +23 -0
  85. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_msvc_x86.hpp +5 -0
  86. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +3 -2
  87. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +8 -1
  88. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_emulated.hpp +3 -1
  89. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_alpha.hpp +2 -0
  90. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm.hpp +2 -0
  91. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_atomic.hpp +5 -0
  92. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc.hpp +2 -0
  93. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sparc.hpp +6 -4
  94. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_sync.hpp +2 -0
  95. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86.hpp +3 -1
  96. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +28 -17
  97. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_linux_arm.hpp +2 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_arm.hpp +2 -0
  99. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_msvc_x86.hpp +9 -4
  100. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +3 -3
  101. data/src/cxx_supportlib/vendor-modified/boost/bind/arg.hpp +10 -3
  102. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +90 -18
  103. data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +2 -2
  104. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +1 -1
  105. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -3
  106. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +2 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +35 -6
  108. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +2 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
  110. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +2 -0
  111. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/compaq_cxx.hpp +1 -1
  112. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +3 -1
  113. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +2 -0
  114. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +19 -4
  115. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -1
  116. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
  117. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +3 -1
  118. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +29 -7
  119. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
  120. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +2 -0
  121. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +2 -0
  122. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +16 -0
  123. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +2 -0
  124. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pgi.hpp +2 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sgi_mipspro.hpp +1 -1
  126. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -1
  127. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +2 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +44 -16
  129. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +1 -2
  131. data/src/cxx_supportlib/vendor-modified/boost/config/platform/linux.hpp +1 -1
  132. data/src/cxx_supportlib/vendor-modified/boost/config/select_compiler_config.hpp +21 -21
  133. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +42 -1
  134. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcomo.hpp +7 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +40 -7
  136. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +39 -6
  137. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/modena.hpp +7 -0
  138. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/msl.hpp +7 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/roguewave.hpp +7 -0
  140. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/sgi.hpp +8 -1
  141. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/stlport.hpp +7 -0
  142. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/vacpp.hpp +7 -0
  143. data/src/cxx_supportlib/vendor-modified/boost/config/suffix.hpp +33 -4
  144. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +0 -2
  145. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +0 -3
  146. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -27
  147. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +62 -26
  148. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -2
  149. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +4 -4
  150. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +4 -4
  151. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +2 -0
  152. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +39 -5
  153. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +49 -32
  154. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +175 -7
  155. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +223 -98
  156. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_sorted.hpp +57 -0
  157. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +88 -41
  158. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +7 -8
  159. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +4 -9
  160. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +45 -18
  161. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +205 -26
  162. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +290 -181
  163. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +2 -0
  164. data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +24 -19
  165. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +38 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +320 -46
  167. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +91 -18
  168. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -19
  169. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +491 -120
  170. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +4 -4
  171. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +0 -3
  172. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +399 -0
  173. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/deque.hpp +2 -0
  174. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_map.hpp +4 -0
  175. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/flat_set.hpp +4 -0
  176. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/list.hpp +2 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/map.hpp +4 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/set.hpp +4 -0
  179. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/slist.hpp +2 -0
  180. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/small_vector.hpp +2 -0
  181. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/stable_vector.hpp +2 -0
  182. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/string.hpp +2 -0
  183. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/vector.hpp +2 -0
  184. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +101 -20
  185. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +19 -14
  186. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +117 -59
  187. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +8 -6
  188. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +33 -28
  189. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +414 -70
  190. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +1 -0
  191. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +2 -2
  192. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +134 -117
  193. data/src/cxx_supportlib/vendor-modified/boost/core/addressof.hpp +202 -99
  194. data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +8 -10
  195. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +217 -1
  196. data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +29 -27
  197. data/src/cxx_supportlib/vendor-modified/boost/current_function.hpp +5 -1
  198. data/src/cxx_supportlib/vendor-modified/boost/date_time/c_time.hpp +13 -13
  199. data/src/cxx_supportlib/vendor-modified/boost/date_time/constrained_value.hpp +3 -3
  200. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +2 -1
  201. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration.hpp +4 -3
  202. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_duration_types.hpp +6 -5
  203. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_facet.hpp +2 -2
  204. data/src/cxx_supportlib/vendor-modified/boost/date_time/date_names_put.hpp +8 -7
  205. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_calendar.hpp +2 -1
  206. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +2 -1
  207. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day.hpp +4 -3
  208. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_day_of_year.hpp +3 -2
  209. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration.hpp +2 -1
  210. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_duration_types.hpp +4 -3
  211. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_facet.hpp +27 -7
  212. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_month.hpp +5 -5
  213. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_serialize.hpp +5 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_weekday.hpp +4 -4
  215. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_year.hpp +4 -5
  216. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.hpp +2 -1
  217. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +5 -4
  218. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/posix_time_zone.hpp +4 -3
  219. data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +3 -2
  220. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/date_duration_operators.hpp +1 -1
  221. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_config.hpp +2 -2
  222. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +5 -4
  223. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/ptime.hpp +6 -5
  224. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_parsers.hpp +4 -0
  225. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +2 -2
  226. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +5 -4
  227. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_zone_base.hpp +2 -1
  228. data/src/cxx_supportlib/vendor-modified/boost/date_time/year_month_day.hpp +3 -1
  229. data/src/cxx_supportlib/vendor-modified/boost/detail/iterator.hpp +13 -0
  230. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +1 -0
  231. data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +5 -0
  232. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +11 -0
  233. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/shared_ptr.hpp +17 -0
  234. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +25 -3
  235. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +2 -1
  236. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +114 -1
  237. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +116 -142
  238. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +57 -69
  239. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/detail/hash_float.hpp +1 -1
  240. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/extensions.hpp +3 -3
  241. data/src/cxx_supportlib/vendor-modified/boost/functional/hash/hash.hpp +27 -13
  242. data/src/cxx_supportlib/vendor-modified/boost/intrusive/any_hook.hpp +4 -2
  243. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +99 -12
  244. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set_hook.hpp +4 -2
  245. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +35 -4
  246. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +37 -6
  247. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +95 -8
  248. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set_hook.hpp +4 -2
  249. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +209 -72
  250. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +86 -20
  251. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +11 -11
  252. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +6 -6
  253. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algo_type.hpp +4 -1
  254. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +58 -45
  255. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +27 -26
  256. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +2 -2
  257. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
  258. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/config_begin.hpp +8 -3
  259. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +4 -3
  260. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +27 -26
  261. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +3 -1
  262. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +4 -2
  263. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +9 -7
  264. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/has_member_function_callable_with.hpp +83 -57
  265. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +30 -30
  266. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +9 -8
  267. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +8 -7
  268. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +16 -15
  269. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +70 -44
  270. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +22 -21
  271. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +7 -6
  272. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +5 -4
  273. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +29 -28
  274. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +33 -12
  275. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +19 -12
  276. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +21 -20
  277. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +4 -3
  278. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/to_raw_pointer.hpp +3 -2
  279. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +23 -22
  280. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +23 -22
  281. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +10 -9
  282. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +103 -29
  283. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +15 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +295 -211
  285. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +2 -2
  286. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +20 -7
  287. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list_hook.hpp +4 -2
  288. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +5 -4
  289. data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +4 -4
  290. data/src/cxx_supportlib/vendor-modified/boost/intrusive/parent_from_member.hpp +3 -2
  291. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +4 -4
  292. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +4 -4
  293. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +22 -4
  294. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +36 -4
  295. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +43 -13
  296. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +95 -8
  297. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set_hook.hpp +4 -2
  298. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +96 -12
  299. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +102 -5
  300. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +48 -4
  301. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +20 -11
  302. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist_hook.hpp +9 -2
  303. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +95 -8
  304. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +36 -4
  305. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +27 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +167 -23
  307. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +28 -0
  308. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +100 -46
  309. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +5 -4
  310. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +37 -27
  311. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +30 -14
  312. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
  313. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +35 -36
  314. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +6 -28
  315. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +20 -5
  316. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +4 -2
  317. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +3 -1
  318. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once.cpp +5 -0
  319. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +11 -7
  320. data/src/cxx_supportlib/vendor-modified/boost/math/policies/policy.hpp +1 -3
  321. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/fpclassify.hpp +5 -1
  322. data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +11 -0
  323. data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +10 -2
  324. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +40 -7
  325. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +67 -0
  326. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +63 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +2437 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +121 -0
  329. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +127 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +637 -0
  331. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +139 -0
  332. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +155 -0
  333. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -116
  334. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +14 -13
  335. data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +17 -1
  336. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +2 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/move/detail/destruct_n.hpp +67 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/move/detail/fwd_macros.hpp +227 -32
  339. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +4 -0
  340. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +30 -9
  341. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +12 -0
  342. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +84 -80
  343. data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +30 -0
  344. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +171 -0
  345. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +14 -20
  346. data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +1 -1
  347. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +14 -0
  348. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +32 -33
  349. data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +2 -1
  350. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +49 -49
  351. data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +8 -7
  352. data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +17 -16
  353. data/src/cxx_supportlib/vendor-modified/boost/mpl/print.hpp +3 -0
  354. data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
  355. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +2 -3
  356. data/src/cxx_supportlib/vendor-modified/boost/operators.hpp +197 -255
  357. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +1059 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +75 -0
  359. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +116 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +36 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +253 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +196 -0
  363. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +117 -0
  364. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +372 -554
  365. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +12 -1
  366. data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +15 -7
  367. data/src/cxx_supportlib/vendor-modified/boost/pool/pool_alloc.hpp +24 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/intel.h +9 -2
  369. data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/visualc.h +15 -1
  370. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd.h +16 -4
  371. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86.h +3 -3
  372. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd.h +4 -4
  373. data/src/cxx_supportlib/vendor-modified/boost/predef/hardware/simd/x86_amd/versions.h +4 -4
  374. data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +1 -1
  375. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +2 -2
  376. data/src/cxx_supportlib/vendor-modified/boost/predef/version_number.h +20 -1
  377. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/cat.hpp +1 -1
  378. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +6 -6
  379. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/binary_transform.hpp +5 -6
  380. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/detail/to_list_msvc.hpp +55 -0
  381. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/seq/to_list.hpp +12 -0
  382. data/src/cxx_supportlib/vendor-modified/boost/range/const_iterator.hpp +4 -4
  383. data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +0 -5
  384. data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +16 -16
  385. data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +4 -4
  386. data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +3 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +102 -87
  388. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +45 -21
  389. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +4 -4
  390. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +2 -2
  391. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +1 -1
  392. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +14 -2
  393. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +46 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +5 -2
  395. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +5 -14
  396. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +116 -13
  397. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +34 -0
  398. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +2 -2
  399. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +1 -1
  400. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +3 -3
  401. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +1 -0
  402. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -2
  403. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +1004 -159
  404. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +9 -0
  405. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +3 -0
  406. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +4 -58
  407. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +5 -2
  408. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +9 -0
  409. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -8
  410. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync.hpp +3 -3
  411. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +30 -0
  412. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +3 -0
  413. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +5 -4
  414. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +28 -3
  415. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +187 -0
  416. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +52 -144
  417. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +120 -450
  418. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +2 -1
  419. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +2 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +7 -6
  421. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +70 -8
  422. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +6 -5
  423. data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +9 -8
  424. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +3 -3
  425. data/src/cxx_supportlib/vendor-modified/boost/thread/barrier.hpp +5 -4
  426. data/src/cxx_supportlib/vendor-modified/boost/thread/completion_latch.hpp +0 -1
  427. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/queue_views.hpp +0 -11
  428. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/sync_timed_queue.hpp +6 -4
  429. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +11 -2
  430. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +11 -4
  431. data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +8 -8
  432. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/executor.hpp +1 -1
  433. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/generic_executor_ref.hpp +5 -5
  434. data/src/cxx_supportlib/vendor-modified/boost/thread/executors/loop_executor.hpp +22 -18
  435. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +163 -55
  436. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/launch.hpp +1 -0
  437. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_all.hpp +1 -1
  438. data/src/cxx_supportlib/vendor-modified/boost/thread/lock_types.hpp +9 -9
  439. data/src/cxx_supportlib/vendor-modified/boost/thread/locks.hpp +1 -0
  440. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +6 -7
  441. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +17 -2
  442. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +2 -2
  443. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +5 -5
  444. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/timespec.hpp +29 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +23 -18
  446. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +6 -6
  447. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_functors.hpp +19 -4
  448. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +3 -3
  449. data/src/cxx_supportlib/vendor-modified/boost/thread/user_scheduler.hpp +1 -1
  450. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +265 -0
  451. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +272 -0
  452. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +300 -0
  453. data/src/cxx_supportlib/vendor-modified/boost/type_traits/add_reference.hpp +3 -3
  454. data/src/cxx_supportlib/vendor-modified/boost/type_traits/aligned_storage.hpp +6 -6
  455. data/src/cxx_supportlib/vendor-modified/boost/type_traits/common_type.hpp +1 -0
  456. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +9 -3
  457. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/mp_defer.hpp +3 -3
  458. data/src/cxx_supportlib/vendor-modified/boost/type_traits/extent.hpp +1 -0
  459. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_assign.hpp +2 -1
  460. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_constructor.hpp +2 -1
  461. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_nothrow_destructor.hpp +1 -1
  462. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_assign.hpp +2 -1
  463. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_copy.hpp +1 -0
  464. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_destructor.hpp +1 -1
  465. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -0
  466. data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +1 -0
  467. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_abstract.hpp +1 -0
  468. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_array.hpp +1 -1
  469. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_assignable.hpp +1 -0
  470. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_const.hpp +2 -1
  471. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_default_constructible.hpp +21 -1
  472. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_destructible.hpp +1 -0
  473. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +1 -1
  474. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -1
  475. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_pod.hpp +1 -0
  476. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +1 -1
  477. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +1 -1
  478. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_volatile.hpp +2 -1
  479. data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +52 -0
  480. data/src/cxx_supportlib/vendor-modified/boost/type_traits/rank.hpp +1 -0
  481. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_all_extents.hpp +1 -1
  482. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_const.hpp +1 -1
  483. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_cv.hpp +1 -1
  484. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_extent.hpp +1 -1
  485. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_pointer.hpp +1 -1
  486. data/src/cxx_supportlib/vendor-modified/boost/type_traits/remove_volatile.hpp +1 -1
  487. data/src/cxx_supportlib/vendor-modified/boost/type_traits/type_with_alignment.hpp +1 -1
  488. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +40 -6
  489. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +4986 -0
  490. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +107 -0
  491. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +105 -0
  492. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +1814 -1255
  493. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +41 -45
  494. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +1498 -1161
  495. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +40 -44
  496. data/src/cxx_supportlib/vendor-modified/boost/utility.hpp +2 -2
  497. data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +7 -6
  498. data/src/cxx_supportlib/vendor-modified/boost/utility/compare_pointees.hpp +10 -2
  499. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +39 -22
  500. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +690 -0
  501. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view_fwd.hpp +39 -0
  502. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  503. data/src/helper-scripts/crash-watch.rb +3 -0
  504. data/src/ruby_supportlib/phusion_passenger.rb +1 -1
  505. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -0
  506. data/src/ruby_supportlib/phusion_passenger/packaging.rb +2 -12
  507. metadata +77 -38
  508. data/dev/ci/inituidgid +0 -24
  509. data/dev/ci/run_jenkins.sh +0 -70
  510. data/dev/ci/run_travis.sh +0 -314
  511. data/doc/Design and Architecture.html +0 -2421
  512. data/doc/Design and Architecture.txt +0 -511
  513. data/doc/Security of user switching support.html +0 -1833
  514. data/doc/Users guide Apache.html +0 -3101
  515. data/doc/Users guide Apache.idmap.txt +0 -451
  516. data/doc/Users guide Apache.txt +0 -534
  517. data/doc/Users guide Nginx.html +0 -3026
  518. data/doc/Users guide Nginx.idmap.txt +0 -431
  519. data/doc/Users guide Nginx.txt +0 -451
  520. data/doc/Users guide Standalone.html +0 -2092
  521. data/doc/Users guide Standalone.idmap.txt +0 -137
  522. data/doc/Users guide Standalone.txt +0 -81
  523. data/doc/Users guide.html +0 -1606
  524. data/doc/Users guide.txt +0 -8
  525. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -20
  526. data/src/cxx_supportlib/vendor-modified/boost/align/detail/address.hpp +0 -29
  527. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align.hpp +0 -40
  528. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -22
  529. data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -29
  530. data/src/cxx_supportlib/vendor-modified/boost/container/detail/hash_table.hpp +0 -383
  531. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_allocator.hpp +0 -318
  532. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_count_impl.hpp +0 -67
  533. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_traits.hpp +0 -60
  534. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/array_utility.hpp +0 -214
  535. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_if_array.hpp +0 -34
  536. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocate.hpp +0 -1128
  537. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/buckets.hpp +0 -928
  538. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/equivalent.hpp +0 -686
  539. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/extract_key.hpp +0 -188
  540. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/table.hpp +0 -873
  541. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unique.hpp +0 -628
  542. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/util.hpp +0 -266
@@ -9,6 +9,9 @@
9
9
  // This header is obsolete and will be deprecated.
10
10
 
11
11
  #include <iterator>
12
+ #if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
13
+ #include <cstddef>
14
+ #endif
12
15
 
13
16
  namespace boost
14
17
  {
@@ -19,6 +22,16 @@ namespace detail
19
22
  using std::iterator_traits;
20
23
  using std::distance;
21
24
 
25
+ #if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
26
+ // std::distance from stlport with Oracle compiler 12.4 and 12.5 fails to deduce template parameters
27
+ // when one of the arguments is an array and the other one is a pointer.
28
+ template< typename T, std::size_t N >
29
+ inline typename std::iterator_traits< T* >::difference_type distance(T (&left)[N], T* right)
30
+ {
31
+ return std::distance(static_cast< T* >(left), right);
32
+ }
33
+ #endif
34
+
22
35
  } // namespace detail
23
36
 
24
37
  } // namespace boost
@@ -125,6 +125,7 @@ inline std::streamsize lcast_get_precision(T* = 0)
125
125
  limits::radix == 10 && limits::digits10 > 0;
126
126
  std::streamsize const streamsize_max =
127
127
  (boost::integer_traits<std::streamsize>::max)();
128
+ (void)streamsize_max;
128
129
 
129
130
  if(is_specialized_bin)
130
131
  { // Floating-point types with
@@ -85,6 +85,11 @@
85
85
  #else
86
86
  #define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0
87
87
  #endif
88
+ #ifndef BOOST_GCC
89
+ #define BOOST_GCC_WORKAROUND_GUARD 1
90
+ #else
91
+ #define BOOST_GCC_WORKAROUND_GUARD 0
92
+ #endif
88
93
  #ifndef __IBMCPP__
89
94
  #define __IBMCPP___WORKAROUND_GUARD 1
90
95
  #else
@@ -12,6 +12,8 @@
12
12
  #pragma warning(push,1)
13
13
  #endif
14
14
 
15
+ #include <boost/config.hpp>
16
+ #include <utility>
15
17
  #include <string>
16
18
 
17
19
  namespace
@@ -46,6 +48,11 @@ boost
46
48
  typedef T value_type;
47
49
 
48
50
  error_info( value_type const & value );
51
+ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
52
+ error_info( error_info const & );
53
+ error_info( value_type && value ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(value))));
54
+ error_info( error_info && x ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(x.value_))));
55
+ #endif
49
56
  ~error_info() throw();
50
57
 
51
58
  value_type const &
@@ -61,6 +68,10 @@ boost
61
68
  }
62
69
 
63
70
  private:
71
+ error_info & operator=( error_info const & );
72
+ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
73
+ error_info & operator=( error_info && x );
74
+ #endif
64
75
 
65
76
  std::string name_value_string() const;
66
77
 
@@ -0,0 +1,17 @@
1
+ //Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
2
+
3
+ //Distributed under the Boost Software License, Version 1.0. (See accompanying
4
+ //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
+
6
+ #ifndef UUID_837060E885AF11E68DA91D15E31AC075
7
+ #define UUID_837060E885AF11E68DA91D15E31AC075
8
+
9
+ #ifdef BOOST_EXCEPTION_MINI_BOOST
10
+ #include <memory>
11
+ namespace boost { namespace exception_detail { using std::shared_ptr; } }
12
+ #else
13
+ #include <boost/shared_ptr.hpp>
14
+ namespace boost { namespace exception_detail { using boost::shared_ptr; } }
15
+ #endif
16
+
17
+ #endif
@@ -12,6 +12,14 @@
12
12
  #pragma warning(push,1)
13
13
  #endif
14
14
 
15
+ #ifdef BOOST_EXCEPTION_MINI_BOOST
16
+ #include <memory>
17
+ namespace boost { namespace exception_detail { using std::shared_ptr; } }
18
+ #else
19
+ namespace boost { template <class T> class shared_ptr; };
20
+ namespace boost { namespace exception_detail { using boost::shared_ptr; } }
21
+ #endif
22
+
15
23
  namespace
16
24
  boost
17
25
  {
@@ -144,9 +152,6 @@ boost
144
152
  # endif
145
153
  #endif
146
154
 
147
- template <class T>
148
- class shared_ptr;
149
-
150
155
  namespace
151
156
  exception_detail
152
157
  {
@@ -182,6 +187,18 @@ boost
182
187
  template <>
183
188
  struct get_info<throw_line>;
184
189
 
190
+ template <class>
191
+ struct set_info_rv;
192
+
193
+ template <>
194
+ struct set_info_rv<throw_function>;
195
+
196
+ template <>
197
+ struct set_info_rv<throw_file>;
198
+
199
+ template <>
200
+ struct set_info_rv<throw_line>;
201
+
185
202
  char const * get_diagnostic_information( exception const &, char const * );
186
203
 
187
204
  void copy_boost_exception( exception *, exception const * );
@@ -264,6 +281,11 @@ boost
264
281
  friend struct exception_detail::get_info<throw_function>;
265
282
  friend struct exception_detail::get_info<throw_file>;
266
283
  friend struct exception_detail::get_info<throw_line>;
284
+ template <class>
285
+ friend struct exception_detail::set_info_rv;
286
+ friend struct exception_detail::set_info_rv<throw_function>;
287
+ friend struct exception_detail::set_info_rv<throw_file>;
288
+ friend struct exception_detail::set_info_rv<throw_line>;
267
289
  friend void exception_detail::copy_boost_exception( exception *, exception const * );
268
290
  #endif
269
291
  mutable exception_detail::refcount_ptr<exception_detail::error_info_container> data_;
@@ -15,7 +15,8 @@
15
15
  #include <boost/exception/exception.hpp>
16
16
  #include <boost/exception/detail/error_info_impl.hpp>
17
17
  #include <boost/exception/detail/type_info.hpp>
18
- #include <boost/shared_ptr.hpp>
18
+ #include <boost/exception/detail/shared_ptr.hpp>
19
+ #include <boost/assert.hpp>
19
20
 
20
21
  namespace
21
22
  boost
@@ -15,7 +15,7 @@
15
15
  #include <boost/exception/exception.hpp>
16
16
  #include <boost/exception/to_string_stub.hpp>
17
17
  #include <boost/exception/detail/error_info_impl.hpp>
18
- #include <boost/shared_ptr.hpp>
18
+ #include <boost/exception/detail/shared_ptr.hpp>
19
19
  #include <boost/config.hpp>
20
20
  #include <map>
21
21
 
@@ -46,6 +46,30 @@ boost
46
46
  {
47
47
  }
48
48
 
49
+ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
50
+ template <class Tag,class T>
51
+ inline
52
+ error_info<Tag,T>::
53
+ error_info( error_info const & x ):
54
+ value_(x.value_)
55
+ {
56
+ }
57
+ template <class Tag,class T>
58
+ inline
59
+ error_info<Tag,T>::
60
+ error_info( value_type && value ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(value)))):
61
+ value_(std::move(value))
62
+ {
63
+ }
64
+ template <class Tag,class T>
65
+ inline
66
+ error_info<Tag,T>::
67
+ error_info( error_info && x ) BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(value_type(std::move(x.value_)))):
68
+ value_(std::move(x.value_))
69
+ {
70
+ }
71
+ #endif
72
+
49
73
  template <class Tag,class T>
50
74
  inline
51
75
  error_info<Tag,T>::
@@ -175,6 +199,85 @@ boost
175
199
  return x;
176
200
  }
177
201
 
202
+ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
203
+ template <class E,class Tag,class T>
204
+ E const & set_info( E const &, error_info<Tag,T> && );
205
+ template <class T>
206
+ struct set_info_rv;
207
+ template <class Tag,class T>
208
+ struct
209
+ set_info_rv<error_info<Tag,T> >
210
+ {
211
+ template <class E,class Tag1,class T1>
212
+ friend E const & set_info( E const &, error_info<Tag1,T1> && );
213
+ template <class E>
214
+ static
215
+ E const &
216
+ set( E const & x, error_info<Tag,T> && v )
217
+ {
218
+ typedef error_info<Tag,T> error_info_tag_t;
219
+ shared_ptr<error_info_tag_t> p( new error_info_tag_t(std::move(v)) );
220
+ exception_detail::error_info_container * c=x.data_.get();
221
+ if( !c )
222
+ x.data_.adopt(c=new exception_detail::error_info_container_impl);
223
+ c->set(p,BOOST_EXCEPTION_STATIC_TYPEID(error_info_tag_t));
224
+ return x;
225
+ }
226
+ };
227
+ template <>
228
+ struct
229
+ set_info_rv<throw_function>
230
+ {
231
+ template <class E,class Tag1,class T1>
232
+ friend E const & set_info( E const &, error_info<Tag1,T1> && );
233
+ template <class E>
234
+ static
235
+ E const &
236
+ set( E const & x, throw_function && y )
237
+ {
238
+ x.throw_function_=y.v_;
239
+ return x;
240
+ }
241
+ };
242
+ template <>
243
+ struct
244
+ set_info_rv<throw_file>
245
+ {
246
+ template <class E,class Tag1,class T1>
247
+ friend E const & set_info( E const &, error_info<Tag1,T1> && );
248
+ template <class E>
249
+ static
250
+ E const &
251
+ set( E const & x, throw_file && y )
252
+ {
253
+ x.throw_file_=y.v_;
254
+ return x;
255
+ }
256
+ };
257
+ template <>
258
+ struct
259
+ set_info_rv<throw_line>
260
+ {
261
+ template <class E,class Tag1,class T1>
262
+ friend E const & set_info( E const &, error_info<Tag1,T1> && );
263
+ template <class E>
264
+ static
265
+ E const &
266
+ set( E const & x, throw_line && y )
267
+ {
268
+ x.throw_line_=y.v_;
269
+ return x;
270
+ }
271
+ };
272
+ template <class E,class Tag,class T>
273
+ inline
274
+ E const &
275
+ set_info( E const & x, error_info<Tag,T> && v )
276
+ {
277
+ return set_info_rv<error_info<Tag,T> >::template set<E>(x,std::move(v));
278
+ }
279
+ #endif
280
+
178
281
  template <class T>
179
282
  struct
180
283
  derives_boost_exception
@@ -190,6 +293,16 @@ boost
190
293
  {
191
294
  return exception_detail::set_info(x,v);
192
295
  }
296
+
297
+ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
298
+ template <class E,class Tag,class T>
299
+ inline
300
+ typename enable_if<exception_detail::derives_boost_exception<E>,E const &>::type
301
+ operator<<( E const & x, error_info<Tag,T> && v )
302
+ {
303
+ return exception_detail::set_info(x,std::move(v));
304
+ }
305
+ #endif
193
306
  }
194
307
 
195
308
  #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
@@ -16,9 +16,9 @@
16
16
  #include <memory>
17
17
  #include <new>
18
18
  #include <boost/config.hpp>
19
- #include <boost/detail/sp_typeinfo.hpp>
20
19
  #include <boost/assert.hpp>
21
20
  #include <boost/integer.hpp>
21
+ #include <boost/type_index.hpp>
22
22
  #include <boost/type_traits/has_trivial_copy.hpp>
23
23
  #include <boost/type_traits/has_trivial_destructor.hpp>
24
24
  #include <boost/type_traits/is_const.hpp>
@@ -41,28 +41,6 @@
41
41
  # pragma warning( push )
42
42
  # pragma warning( disable : 4793 ) // complaint about native code generation
43
43
  # pragma warning( disable : 4127 ) // "conditional expression is constant"
44
- #endif
45
-
46
- // Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
47
- #ifdef BOOST_NO_STD_TYPEINFO
48
- // Embedded VC++ does not have type_info in namespace std
49
- # define BOOST_FUNCTION_STD_NS
50
- #else
51
- # define BOOST_FUNCTION_STD_NS std
52
- #endif
53
-
54
- // Borrowed from Boost.Python library: determines the cases where we
55
- // need to use std::type_info::name to compare instead of operator==.
56
- #if defined( BOOST_NO_TYPEID )
57
- # define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
58
- #elif defined(__GNUC__) \
59
- || defined(_AIX) \
60
- || ( defined(__sgi) && defined(__host_mips))
61
- # include <cstring>
62
- # define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) \
63
- (std::strcmp((X).name(),(Y).name()) == 0)
64
- # else
65
- # define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
66
44
  #endif
67
45
 
68
46
  #if defined(__ICL) && __ICL <= 600 || defined(__MWERKS__) && __MWERKS__ < 0x2406 && !defined(BOOST_STRICT_CONFIG)
@@ -87,15 +65,16 @@ namespace boost {
87
65
  * object pointers, and a structure that resembles a bound
88
66
  * member function pointer.
89
67
  */
90
- union function_buffer
68
+ union function_buffer_members
91
69
  {
92
70
  // For pointers to function objects
93
- mutable void* obj_ptr;
71
+ typedef void* obj_ptr_t;
72
+ mutable obj_ptr_t obj_ptr;
94
73
 
95
74
  // For pointers to std::type_info objects
96
75
  struct type_t {
97
76
  // (get_functor_type_tag, check_functor_type_tag).
98
- const detail::sp_typeinfo* type;
77
+ const boost::typeindex::type_info* type;
99
78
 
100
79
  // Whether the type is const-qualified.
101
80
  bool const_qualified;
@@ -104,7 +83,8 @@ namespace boost {
104
83
  } type;
105
84
 
106
85
  // For function pointers of all kinds
107
- mutable void (*func_ptr)();
86
+ typedef void (*func_ptr_t)();
87
+ mutable func_ptr_t func_ptr;
108
88
 
109
89
  // For bound member pointers
110
90
  struct bound_memfunc_ptr_t {
@@ -119,9 +99,15 @@ namespace boost {
119
99
  bool is_const_qualified;
120
100
  bool is_volatile_qualified;
121
101
  } obj_ref;
102
+ };
103
+
104
+ union function_buffer
105
+ {
106
+ // Type-specific union members
107
+ mutable function_buffer_members members;
122
108
 
123
109
  // To relax aliasing constraints
124
- mutable char data;
110
+ mutable char data[sizeof(function_buffer_members)];
125
111
  };
126
112
 
127
113
  /**
@@ -188,45 +174,42 @@ namespace boost {
188
174
  struct reference_manager
189
175
  {
190
176
  static inline void
191
- manage(const function_buffer& in_buffer, function_buffer& out_buffer,
177
+ manage(const function_buffer& in_buffer, function_buffer& out_buffer,
192
178
  functor_manager_operation_type op)
193
179
  {
194
180
  switch (op) {
195
- case clone_functor_tag:
196
- out_buffer.obj_ref = in_buffer.obj_ref;
181
+ case clone_functor_tag:
182
+ out_buffer.members.obj_ref = in_buffer.members.obj_ref;
197
183
  return;
198
184
 
199
185
  case move_functor_tag:
200
- out_buffer.obj_ref = in_buffer.obj_ref;
201
- in_buffer.obj_ref.obj_ptr = 0;
186
+ out_buffer.members.obj_ref = in_buffer.members.obj_ref;
187
+ in_buffer.members.obj_ref.obj_ptr = 0;
202
188
  return;
203
189
 
204
190
  case destroy_functor_tag:
205
- out_buffer.obj_ref.obj_ptr = 0;
191
+ out_buffer.members.obj_ref.obj_ptr = 0;
206
192
  return;
207
193
 
208
194
  case check_functor_type_tag:
209
195
  {
210
- const detail::sp_typeinfo& check_type
211
- = *out_buffer.type.type;
212
-
213
196
  // Check whether we have the same type. We can add
214
197
  // cv-qualifiers, but we can't take them away.
215
- if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(F))
216
- && (!in_buffer.obj_ref.is_const_qualified
217
- || out_buffer.type.const_qualified)
218
- && (!in_buffer.obj_ref.is_volatile_qualified
219
- || out_buffer.type.volatile_qualified))
220
- out_buffer.obj_ptr = in_buffer.obj_ref.obj_ptr;
198
+ if (*out_buffer.members.type.type == boost::typeindex::type_id<F>()
199
+ && (!in_buffer.members.obj_ref.is_const_qualified
200
+ || out_buffer.members.type.const_qualified)
201
+ && (!in_buffer.members.obj_ref.is_volatile_qualified
202
+ || out_buffer.members.type.volatile_qualified))
203
+ out_buffer.members.obj_ptr = in_buffer.members.obj_ref.obj_ptr;
221
204
  else
222
- out_buffer.obj_ptr = 0;
205
+ out_buffer.members.obj_ptr = 0;
223
206
  }
224
207
  return;
225
208
 
226
209
  case get_functor_type_tag:
227
- out_buffer.type.type = &BOOST_SP_TYPEID(F);
228
- out_buffer.type.const_qualified = in_buffer.obj_ref.is_const_qualified;
229
- out_buffer.type.volatile_qualified = in_buffer.obj_ref.is_volatile_qualified;
210
+ out_buffer.members.type.type = &boost::typeindex::type_id<F>().type_info();
211
+ out_buffer.members.type.const_qualified = in_buffer.members.obj_ref.is_const_qualified;
212
+ out_buffer.members.type.volatile_qualified = in_buffer.members.obj_ref.is_volatile_qualified;
230
213
  return;
231
214
  }
232
215
  }
@@ -240,9 +223,9 @@ namespace boost {
240
223
  struct function_allows_small_object_optimization
241
224
  {
242
225
  BOOST_STATIC_CONSTANT
243
- (bool,
226
+ (bool,
244
227
  value = ((sizeof(F) <= sizeof(function_buffer) &&
245
- (alignment_of<function_buffer>::value
228
+ (alignment_of<function_buffer>::value
246
229
  % alignment_of<F>::value == 0))));
247
230
  };
248
231
 
@@ -254,7 +237,7 @@ namespace boost {
254
237
  A(a)
255
238
  {
256
239
  }
257
-
240
+
258
241
  functor_wrapper(const functor_wrapper& f) :
259
242
  F(static_cast<const F&>(f)),
260
243
  A(static_cast<const A&>(f))
@@ -273,61 +256,57 @@ namespace boost {
273
256
 
274
257
  // Function pointers
275
258
  static inline void
276
- manage_ptr(const function_buffer& in_buffer, function_buffer& out_buffer,
259
+ manage_ptr(const function_buffer& in_buffer, function_buffer& out_buffer,
277
260
  functor_manager_operation_type op)
278
261
  {
279
262
  if (op == clone_functor_tag)
280
- out_buffer.func_ptr = in_buffer.func_ptr;
263
+ out_buffer.members.func_ptr = in_buffer.members.func_ptr;
281
264
  else if (op == move_functor_tag) {
282
- out_buffer.func_ptr = in_buffer.func_ptr;
283
- in_buffer.func_ptr = 0;
265
+ out_buffer.members.func_ptr = in_buffer.members.func_ptr;
266
+ in_buffer.members.func_ptr = 0;
284
267
  } else if (op == destroy_functor_tag)
285
- out_buffer.func_ptr = 0;
268
+ out_buffer.members.func_ptr = 0;
286
269
  else if (op == check_functor_type_tag) {
287
- const boost::detail::sp_typeinfo& check_type
288
- = *out_buffer.type.type;
289
- if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
290
- out_buffer.obj_ptr = &in_buffer.func_ptr;
270
+ if (*out_buffer.members.type.type == boost::typeindex::type_id<Functor>())
271
+ out_buffer.members.obj_ptr = &in_buffer.members.func_ptr;
291
272
  else
292
- out_buffer.obj_ptr = 0;
273
+ out_buffer.members.obj_ptr = 0;
293
274
  } else /* op == get_functor_type_tag */ {
294
- out_buffer.type.type = &BOOST_SP_TYPEID(Functor);
295
- out_buffer.type.const_qualified = false;
296
- out_buffer.type.volatile_qualified = false;
275
+ out_buffer.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
276
+ out_buffer.members.type.const_qualified = false;
277
+ out_buffer.members.type.volatile_qualified = false;
297
278
  }
298
279
  }
299
280
 
300
281
  // Function objects that fit in the small-object buffer.
301
282
  static inline void
302
- manage_small(const function_buffer& in_buffer, function_buffer& out_buffer,
283
+ manage_small(const function_buffer& in_buffer, function_buffer& out_buffer,
303
284
  functor_manager_operation_type op)
304
285
  {
305
286
  if (op == clone_functor_tag || op == move_functor_tag) {
306
- const functor_type* in_functor =
307
- reinterpret_cast<const functor_type*>(&in_buffer.data);
308
- new (reinterpret_cast<void*>(&out_buffer.data)) functor_type(*in_functor);
287
+ const functor_type* in_functor =
288
+ reinterpret_cast<const functor_type*>(in_buffer.data);
289
+ new (reinterpret_cast<void*>(out_buffer.data)) functor_type(*in_functor);
309
290
 
310
291
  if (op == move_functor_tag) {
311
- functor_type* f = reinterpret_cast<functor_type*>(&in_buffer.data);
292
+ functor_type* f = reinterpret_cast<functor_type*>(in_buffer.data);
312
293
  (void)f; // suppress warning about the value of f not being used (MSVC)
313
294
  f->~Functor();
314
295
  }
315
296
  } else if (op == destroy_functor_tag) {
316
297
  // Some compilers (Borland, vc6, ...) are unhappy with ~functor_type.
317
- functor_type* f = reinterpret_cast<functor_type*>(&out_buffer.data);
298
+ functor_type* f = reinterpret_cast<functor_type*>(out_buffer.data);
318
299
  (void)f; // suppress warning about the value of f not being used (MSVC)
319
300
  f->~Functor();
320
301
  } else if (op == check_functor_type_tag) {
321
- const detail::sp_typeinfo& check_type
322
- = *out_buffer.type.type;
323
- if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
324
- out_buffer.obj_ptr = &in_buffer.data;
302
+ if (*out_buffer.members.type.type == boost::typeindex::type_id<Functor>())
303
+ out_buffer.members.obj_ptr = in_buffer.data;
325
304
  else
326
- out_buffer.obj_ptr = 0;
305
+ out_buffer.members.obj_ptr = 0;
327
306
  } else /* op == get_functor_type_tag */ {
328
- out_buffer.type.type = &BOOST_SP_TYPEID(Functor);
329
- out_buffer.type.const_qualified = false;
330
- out_buffer.type.volatile_qualified = false;
307
+ out_buffer.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
308
+ out_buffer.members.type.const_qualified = false;
309
+ out_buffer.members.type.volatile_qualified = false;
331
310
  }
332
311
  }
333
312
  };
@@ -340,7 +319,7 @@ namespace boost {
340
319
 
341
320
  // Function pointers
342
321
  static inline void
343
- manager(const function_buffer& in_buffer, function_buffer& out_buffer,
322
+ manager(const function_buffer& in_buffer, function_buffer& out_buffer,
344
323
  functor_manager_operation_type op, function_ptr_tag)
345
324
  {
346
325
  functor_manager_common<Functor>::manage_ptr(in_buffer,out_buffer,op);
@@ -348,15 +327,15 @@ namespace boost {
348
327
 
349
328
  // Function objects that fit in the small-object buffer.
350
329
  static inline void
351
- manager(const function_buffer& in_buffer, function_buffer& out_buffer,
330
+ manager(const function_buffer& in_buffer, function_buffer& out_buffer,
352
331
  functor_manager_operation_type op, mpl::true_)
353
332
  {
354
333
  functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
355
334
  }
356
-
335
+
357
336
  // Function objects that require heap allocation
358
337
  static inline void
359
- manager(const function_buffer& in_buffer, function_buffer& out_buffer,
338
+ manager(const function_buffer& in_buffer, function_buffer& out_buffer,
360
339
  functor_manager_operation_type op, mpl::false_)
361
340
  {
362
341
  if (op == clone_functor_tag) {
@@ -366,29 +345,27 @@ namespace boost {
366
345
  // jewillco: Changing this to static_cast because GCC 2.95.3 is
367
346
  // obsolete.
368
347
  const functor_type* f =
369
- static_cast<const functor_type*>(in_buffer.obj_ptr);
348
+ static_cast<const functor_type*>(in_buffer.members.obj_ptr);
370
349
  functor_type* new_f = new functor_type(*f);
371
- out_buffer.obj_ptr = new_f;
350
+ out_buffer.members.obj_ptr = new_f;
372
351
  } else if (op == move_functor_tag) {
373
- out_buffer.obj_ptr = in_buffer.obj_ptr;
374
- in_buffer.obj_ptr = 0;
352
+ out_buffer.members.obj_ptr = in_buffer.members.obj_ptr;
353
+ in_buffer.members.obj_ptr = 0;
375
354
  } else if (op == destroy_functor_tag) {
376
355
  /* Cast from the void pointer to the functor pointer type */
377
356
  functor_type* f =
378
- static_cast<functor_type*>(out_buffer.obj_ptr);
357
+ static_cast<functor_type*>(out_buffer.members.obj_ptr);
379
358
  delete f;
380
- out_buffer.obj_ptr = 0;
359
+ out_buffer.members.obj_ptr = 0;
381
360
  } else if (op == check_functor_type_tag) {
382
- const detail::sp_typeinfo& check_type
383
- = *out_buffer.type.type;
384
- if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
385
- out_buffer.obj_ptr = in_buffer.obj_ptr;
361
+ if (*out_buffer.members.type.type == boost::typeindex::type_id<Functor>())
362
+ out_buffer.members.obj_ptr = in_buffer.members.obj_ptr;
386
363
  else
387
- out_buffer.obj_ptr = 0;
364
+ out_buffer.members.obj_ptr = 0;
388
365
  } else /* op == get_functor_type_tag */ {
389
- out_buffer.type.type = &BOOST_SP_TYPEID(Functor);
390
- out_buffer.type.const_qualified = false;
391
- out_buffer.type.volatile_qualified = false;
366
+ out_buffer.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
367
+ out_buffer.members.type.const_qualified = false;
368
+ out_buffer.members.type.volatile_qualified = false;
392
369
  }
393
370
  }
394
371
 
@@ -396,7 +373,7 @@ namespace boost {
396
373
  // object can use the small-object optimization buffer or
397
374
  // whether we need to allocate it on the heap.
398
375
  static inline void
399
- manager(const function_buffer& in_buffer, function_buffer& out_buffer,
376
+ manager(const function_buffer& in_buffer, function_buffer& out_buffer,
400
377
  functor_manager_operation_type op, function_obj_tag)
401
378
  {
402
379
  manager(in_buffer, out_buffer, op,
@@ -405,7 +382,7 @@ namespace boost {
405
382
 
406
383
  // For member pointers, we use the small-object optimization buffer.
407
384
  static inline void
408
- manager(const function_buffer& in_buffer, function_buffer& out_buffer,
385
+ manager(const function_buffer& in_buffer, function_buffer& out_buffer,
409
386
  functor_manager_operation_type op, member_ptr_tag)
410
387
  {
411
388
  manager(in_buffer, out_buffer, op, mpl::true_());
@@ -415,15 +392,15 @@ namespace boost {
415
392
  /* Dispatch to an appropriate manager based on whether we have a
416
393
  function pointer or a function object pointer. */
417
394
  static inline void
418
- manage(const function_buffer& in_buffer, function_buffer& out_buffer,
395
+ manage(const function_buffer& in_buffer, function_buffer& out_buffer,
419
396
  functor_manager_operation_type op)
420
397
  {
421
398
  typedef typename get_function_tag<functor_type>::type tag_type;
422
399
  switch (op) {
423
400
  case get_functor_type_tag:
424
- out_buffer.type.type = &BOOST_SP_TYPEID(functor_type);
425
- out_buffer.type.const_qualified = false;
426
- out_buffer.type.volatile_qualified = false;
401
+ out_buffer.members.type.type = &boost::typeindex::type_id<functor_type>().type_info();
402
+ out_buffer.members.type.const_qualified = false;
403
+ out_buffer.members.type.volatile_qualified = false;
427
404
  return;
428
405
 
429
406
  default:
@@ -441,7 +418,7 @@ namespace boost {
441
418
 
442
419
  // Function pointers
443
420
  static inline void
444
- manager(const function_buffer& in_buffer, function_buffer& out_buffer,
421
+ manager(const function_buffer& in_buffer, function_buffer& out_buffer,
445
422
  functor_manager_operation_type op, function_ptr_tag)
446
423
  {
447
424
  functor_manager_common<Functor>::manage_ptr(in_buffer,out_buffer,op);
@@ -449,15 +426,15 @@ namespace boost {
449
426
 
450
427
  // Function objects that fit in the small-object buffer.
451
428
  static inline void
452
- manager(const function_buffer& in_buffer, function_buffer& out_buffer,
429
+ manager(const function_buffer& in_buffer, function_buffer& out_buffer,
453
430
  functor_manager_operation_type op, mpl::true_)
454
431
  {
455
432
  functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
456
433
  }
457
-
434
+
458
435
  // Function objects that require heap allocation
459
436
  static inline void
460
- manager(const function_buffer& in_buffer, function_buffer& out_buffer,
437
+ manager(const function_buffer& in_buffer, function_buffer& out_buffer,
461
438
  functor_manager_operation_type op, mpl::false_)
462
439
  {
463
440
  typedef functor_wrapper<Functor,Allocator> functor_wrapper_type;
@@ -470,36 +447,34 @@ namespace boost {
470
447
  // GCC 2.95.3 gets the CV qualifiers wrong here, so we
471
448
  // can't do the static_cast that we should do.
472
449
  const functor_wrapper_type* f =
473
- static_cast<const functor_wrapper_type*>(in_buffer.obj_ptr);
450
+ static_cast<const functor_wrapper_type*>(in_buffer.members.obj_ptr);
474
451
  wrapper_allocator_type wrapper_allocator(static_cast<Allocator const &>(*f));
475
452
  wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1);
476
453
  wrapper_allocator.construct(copy, *f);
477
454
 
478
455
  // Get back to the original pointer type
479
456
  functor_wrapper_type* new_f = static_cast<functor_wrapper_type*>(copy);
480
- out_buffer.obj_ptr = new_f;
457
+ out_buffer.members.obj_ptr = new_f;
481
458
  } else if (op == move_functor_tag) {
482
- out_buffer.obj_ptr = in_buffer.obj_ptr;
483
- in_buffer.obj_ptr = 0;
459
+ out_buffer.members.obj_ptr = in_buffer.members.obj_ptr;
460
+ in_buffer.members.obj_ptr = 0;
484
461
  } else if (op == destroy_functor_tag) {
485
462
  /* Cast from the void pointer to the functor_wrapper_type */
486
463
  functor_wrapper_type* victim =
487
- static_cast<functor_wrapper_type*>(in_buffer.obj_ptr);
464
+ static_cast<functor_wrapper_type*>(in_buffer.members.obj_ptr);
488
465
  wrapper_allocator_type wrapper_allocator(static_cast<Allocator const &>(*victim));
489
466
  wrapper_allocator.destroy(victim);
490
467
  wrapper_allocator.deallocate(victim,1);
491
- out_buffer.obj_ptr = 0;
468
+ out_buffer.members.obj_ptr = 0;
492
469
  } else if (op == check_functor_type_tag) {
493
- const detail::sp_typeinfo& check_type
494
- = *out_buffer.type.type;
495
- if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_TYPEID(Functor)))
496
- out_buffer.obj_ptr = in_buffer.obj_ptr;
470
+ if (*out_buffer.members.type.type == boost::typeindex::type_id<Functor>())
471
+ out_buffer.members.obj_ptr = in_buffer.members.obj_ptr;
497
472
  else
498
- out_buffer.obj_ptr = 0;
473
+ out_buffer.members.obj_ptr = 0;
499
474
  } else /* op == get_functor_type_tag */ {
500
- out_buffer.type.type = &BOOST_SP_TYPEID(Functor);
501
- out_buffer.type.const_qualified = false;
502
- out_buffer.type.volatile_qualified = false;
475
+ out_buffer.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
476
+ out_buffer.members.type.const_qualified = false;
477
+ out_buffer.members.type.volatile_qualified = false;
503
478
  }
504
479
  }
505
480
 
@@ -507,7 +482,7 @@ namespace boost {
507
482
  // object can use the small-object optimization buffer or
508
483
  // whether we need to allocate it on the heap.
509
484
  static inline void
510
- manager(const function_buffer& in_buffer, function_buffer& out_buffer,
485
+ manager(const function_buffer& in_buffer, function_buffer& out_buffer,
511
486
  functor_manager_operation_type op, function_obj_tag)
512
487
  {
513
488
  manager(in_buffer, out_buffer, op,
@@ -518,15 +493,15 @@ namespace boost {
518
493
  /* Dispatch to an appropriate manager based on whether we have a
519
494
  function pointer or a function object pointer. */
520
495
  static inline void
521
- manage(const function_buffer& in_buffer, function_buffer& out_buffer,
496
+ manage(const function_buffer& in_buffer, function_buffer& out_buffer,
522
497
  functor_manager_operation_type op)
523
498
  {
524
499
  typedef typename get_function_tag<functor_type>::type tag_type;
525
500
  switch (op) {
526
501
  case get_functor_type_tag:
527
- out_buffer.type.type = &BOOST_SP_TYPEID(functor_type);
528
- out_buffer.type.const_qualified = false;
529
- out_buffer.type.volatile_qualified = false;
502
+ out_buffer.members.type.type = &boost::typeindex::type_id<functor_type>().type_info();
503
+ out_buffer.members.type.const_qualified = false;
504
+ out_buffer.members.type.volatile_qualified = false;
530
505
  return;
531
506
 
532
507
  default:
@@ -604,8 +579,8 @@ namespace boost {
604
579
  */
605
580
  struct vtable_base
606
581
  {
607
- void (*manager)(const function_buffer& in_buffer,
608
- function_buffer& out_buffer,
582
+ void (*manager)(const function_buffer& in_buffer,
583
+ function_buffer& out_buffer,
609
584
  functor_manager_operation_type op);
610
585
  };
611
586
  } // end namespace function
@@ -625,15 +600,15 @@ public:
625
600
  /** Determine if the function is empty (i.e., has no target). */
626
601
  bool empty() const { return !vtable; }
627
602
 
628
- /** Retrieve the type of the stored function object, or BOOST_SP_TYPEID(void)
603
+ /** Retrieve the type of the stored function object, or type_id<void>()
629
604
  if this is empty. */
630
- const detail::sp_typeinfo& target_type() const
605
+ const boost::typeindex::type_info& target_type() const
631
606
  {
632
- if (!vtable) return BOOST_SP_TYPEID(void);
607
+ if (!vtable) return boost::typeindex::type_id<void>().type_info();
633
608
 
634
609
  detail::function::function_buffer type;
635
610
  get_vtable()->manager(functor, type, detail::function::get_functor_type_tag);
636
- return *type.type.type;
611
+ return *type.members.type.type;
637
612
  }
638
613
 
639
614
  template<typename Functor>
@@ -642,12 +617,12 @@ public:
642
617
  if (!vtable) return 0;
643
618
 
644
619
  detail::function::function_buffer type_result;
645
- type_result.type.type = &BOOST_SP_TYPEID(Functor);
646
- type_result.type.const_qualified = is_const<Functor>::value;
647
- type_result.type.volatile_qualified = is_volatile<Functor>::value;
648
- get_vtable()->manager(functor, type_result,
620
+ type_result.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
621
+ type_result.members.type.const_qualified = is_const<Functor>::value;
622
+ type_result.members.type.volatile_qualified = is_volatile<Functor>::value;
623
+ get_vtable()->manager(functor, type_result,
649
624
  detail::function::check_functor_type_tag);
650
- return static_cast<Functor*>(type_result.obj_ptr);
625
+ return static_cast<Functor*>(type_result.members.obj_ptr);
651
626
  }
652
627
 
653
628
  template<typename Functor>
@@ -656,14 +631,14 @@ public:
656
631
  if (!vtable) return 0;
657
632
 
658
633
  detail::function::function_buffer type_result;
659
- type_result.type.type = &BOOST_SP_TYPEID(Functor);
660
- type_result.type.const_qualified = true;
661
- type_result.type.volatile_qualified = is_volatile<Functor>::value;
662
- get_vtable()->manager(functor, type_result,
634
+ type_result.members.type.type = &boost::typeindex::type_id<Functor>().type_info();
635
+ type_result.members.type.const_qualified = true;
636
+ type_result.members.type.volatile_qualified = is_volatile<Functor>::value;
637
+ get_vtable()->manager(functor, type_result,
663
638
  detail::function::check_functor_type_tag);
664
639
  // GCC 2.95.3 gets the CV qualifiers wrong here, so we
665
640
  // can't do the static_cast that we should do.
666
- return static_cast<const Functor*>(type_result.obj_ptr);
641
+ return static_cast<const Functor*>(type_result.members.obj_ptr);
667
642
  }
668
643
 
669
644
  template<typename F>
@@ -883,10 +858,9 @@ namespace detail {
883
858
  } // end namespace boost
884
859
 
885
860
  #undef BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL
886
- #undef BOOST_FUNCTION_COMPARE_TYPE_ID
887
861
 
888
862
  #if defined(BOOST_MSVC)
889
863
  # pragma warning( pop )
890
- #endif
864
+ #endif
891
865
 
892
866
  #endif // BOOST_FUNCTION_BASE_HEADER