passenger 4.0.20 → 4.0.21

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 (496) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.gitignore +1 -0
  5. data/.travis.yml +1 -1
  6. data/NEWS +15 -0
  7. data/README.md +5 -3
  8. data/Rakefile +1 -0
  9. data/bin/passenger-config +1 -5
  10. data/bin/passenger-install-apache2-module +53 -5
  11. data/bin/passenger-install-nginx-module +19 -6
  12. data/bin/passenger-memory-stats +3 -3
  13. data/build/agents.rb +11 -8
  14. data/build/apache2.rb +9 -5
  15. data/build/basics.rb +15 -21
  16. data/build/common_library.rb +16 -6
  17. data/build/cplusplus_support.rb +5 -5
  18. data/build/cxx_tests.rb +3 -3
  19. data/build/documentation.rb +1 -1
  20. data/build/misc.rb +4 -37
  21. data/build/node_tests.rb +29 -0
  22. data/build/oxt_tests.rb +1 -1
  23. data/build/packaging.rb +29 -10
  24. data/build/preprocessor.rb +2 -1
  25. data/build/test_basics.rb +15 -6
  26. data/debian.template/locations.ini.template +1 -0
  27. data/debian.template/passenger.install.template +1 -0
  28. data/dev/copy_boost_headers.rb +7 -3
  29. data/dev/run_travis.sh +32 -16
  30. data/doc/Users guide Apache.idmap.txt +22 -34
  31. data/doc/Users guide Apache.txt +20 -234
  32. data/doc/Users guide Nginx.idmap.txt +84 -66
  33. data/doc/Users guide Nginx.txt +50 -1
  34. data/doc/Users guide Standalone.idmap.txt +74 -0
  35. data/doc/Users guide Standalone.txt +22 -9
  36. data/doc/Users guide.txt +51 -0
  37. data/doc/users_guide_snippets/environment_variables.txt +0 -3
  38. data/doc/users_guide_snippets/installation.txt +337 -380
  39. data/doc/users_guide_snippets/installation/run_installer.txt +58 -0
  40. data/doc/users_guide_snippets/installation/verify_running_epilogue.txt +6 -0
  41. data/doc/users_guide_snippets/support_information.txt +2 -9
  42. data/doc/users_guide_snippets/troubleshooting/default.txt +112 -0
  43. data/doc/users_guide_snippets/troubleshooting/rails.txt +56 -0
  44. data/doc/users_guide_snippets/where_to_get_support.txt +9 -0
  45. data/ext/apache2/Bucket.h +1 -1
  46. data/ext/apache2/Configuration.hpp +0 -44
  47. data/ext/apache2/CreateDirConfig.cpp +1 -1
  48. data/ext/apache2/CreateDirConfig.cpp.erb +1 -1
  49. data/ext/apache2/Hooks.cpp +28 -21
  50. data/ext/apache2/MergeDirConfig.cpp +1 -0
  51. data/ext/apache2/MergeDirConfig.cpp.erb +1 -1
  52. data/ext/apache2/SetHeaders.cpp +73 -0
  53. data/ext/apache2/SetHeaders.cpp.erb +88 -0
  54. data/ext/boost/algorithm/string/detail/find_format.hpp +5 -5
  55. data/ext/boost/algorithm/string/detail/find_format_all.hpp +5 -5
  56. data/ext/boost/algorithm/string/detail/finder.hpp +1 -1
  57. data/ext/boost/algorithm/string/formatter.hpp +2 -2
  58. data/ext/boost/assert.hpp +6 -1
  59. data/ext/boost/atomic.hpp +18 -0
  60. data/ext/boost/atomic/atomic.hpp +241 -0
  61. data/ext/boost/atomic/detail/base.hpp +585 -0
  62. data/ext/boost/atomic/detail/cas32strong.hpp +885 -0
  63. data/ext/boost/atomic/detail/cas32weak.hpp +947 -0
  64. data/ext/boost/atomic/detail/cas64strong.hpp +443 -0
  65. data/ext/boost/atomic/detail/config.hpp +54 -0
  66. data/ext/boost/atomic/detail/gcc-alpha.hpp +368 -0
  67. data/ext/boost/atomic/detail/gcc-armv6plus.hpp +252 -0
  68. data/ext/boost/atomic/detail/gcc-cas.hpp +157 -0
  69. data/ext/boost/atomic/detail/gcc-ppc.hpp +2850 -0
  70. data/ext/boost/atomic/detail/gcc-sparcv9.hpp +1259 -0
  71. data/ext/boost/atomic/detail/gcc-x86.hpp +1766 -0
  72. data/ext/boost/atomic/detail/generic-cas.hpp +206 -0
  73. data/ext/boost/atomic/detail/interlocked.hpp +200 -0
  74. data/ext/boost/atomic/detail/linux-arm.hpp +189 -0
  75. data/ext/boost/atomic/detail/lockpool.hpp +97 -0
  76. data/ext/boost/atomic/detail/platform.hpp +62 -0
  77. data/ext/boost/atomic/detail/type-classification.hpp +45 -0
  78. data/ext/boost/chrono/config.hpp +8 -3
  79. data/ext/boost/chrono/duration.hpp +9 -10
  80. data/ext/boost/chrono/system_clocks.hpp +1 -1
  81. data/ext/boost/chrono/time_point.hpp +4 -3
  82. data/ext/boost/config/auto_link.hpp +53 -52
  83. data/ext/boost/config/compiler/borland.hpp +1 -0
  84. data/ext/boost/config/compiler/clang.hpp +24 -1
  85. data/ext/boost/config/compiler/codegear.hpp +1 -0
  86. data/ext/boost/config/compiler/common_edg.hpp +1 -0
  87. data/ext/boost/config/compiler/cray.hpp +1 -0
  88. data/ext/boost/config/compiler/digitalmars.hpp +1 -0
  89. data/ext/boost/config/compiler/gcc.hpp +29 -3
  90. data/ext/boost/config/compiler/gcc_xml.hpp +2 -1
  91. data/ext/boost/config/compiler/hp_acc.hpp +1 -0
  92. data/ext/boost/config/compiler/intel.hpp +1 -1
  93. data/ext/boost/config/compiler/metrowerks.hpp +1 -0
  94. data/ext/boost/config/compiler/mpw.hpp +1 -0
  95. data/ext/boost/config/compiler/pathscale.hpp +1 -0
  96. data/ext/boost/config/compiler/pgi.hpp +1 -0
  97. data/ext/boost/config/compiler/sunpro_cc.hpp +1 -0
  98. data/ext/boost/config/compiler/vacpp.hpp +3 -2
  99. data/ext/boost/config/compiler/visualc.hpp +25 -11
  100. data/ext/boost/config/platform/vxworks.hpp +353 -15
  101. data/ext/boost/config/select_compiler_config.hpp +4 -4
  102. data/ext/boost/config/stdlib/dinkumware.hpp +10 -3
  103. data/ext/boost/config/stdlib/libstdcpp3.hpp +2 -1
  104. data/ext/boost/config/suffix.hpp +45 -19
  105. data/ext/boost/date_time/format_date_parser.hpp +1 -11
  106. data/ext/boost/date_time/strings_from_facet.hpp +5 -3
  107. data/ext/boost/detail/atomic_redef_macros.hpp +19 -0
  108. data/ext/boost/detail/atomic_undef_macros.hpp +39 -0
  109. data/ext/boost/detail/endian.hpp +52 -4
  110. data/ext/boost/detail/scoped_enum_emulation.hpp +10 -10
  111. data/ext/boost/detail/select_type.hpp +36 -0
  112. data/ext/boost/exception/current_exception_cast.hpp +1 -1
  113. data/ext/boost/exception/detail/error_info_impl.hpp +3 -5
  114. data/ext/boost/exception/detail/exception_ptr.hpp +3 -3
  115. data/ext/boost/exception/detail/is_output_streamable.hpp +1 -1
  116. data/ext/boost/exception/detail/object_hex_dump.hpp +1 -1
  117. data/ext/boost/exception/detail/type_info.hpp +1 -1
  118. data/ext/boost/exception/diagnostic_information.hpp +15 -14
  119. data/ext/boost/exception/exception.hpp +1 -1
  120. data/ext/boost/exception/get_error_info.hpp +1 -1
  121. data/ext/boost/exception/info.hpp +12 -13
  122. data/ext/boost/exception/to_string.hpp +6 -1
  123. data/ext/boost/exception/to_string_stub.hpp +9 -1
  124. data/ext/boost/foreach.hpp +5 -5
  125. data/ext/boost/function/function_template.hpp +6 -6
  126. data/ext/boost/functional/hash/detail/float_functions.hpp +90 -0
  127. data/ext/boost/functional/hash/detail/hash_float.hpp +11 -2
  128. data/ext/boost/functional/hash/extensions.hpp +14 -2
  129. data/ext/boost/functional/hash/hash.hpp +26 -5
  130. data/ext/boost/get_pointer.hpp +17 -2
  131. data/ext/boost/integer_traits.hpp +1 -1
  132. data/ext/boost/lexical_cast.hpp +615 -395
  133. data/ext/boost/libs/atomic/lockpool.cpp +24 -0
  134. data/ext/boost/libs/system/src/error_code.cpp +25 -18
  135. data/ext/boost/libs/thread/src/future.cpp +7 -5
  136. data/ext/boost/libs/thread/src/pthread/once.cpp +9 -3
  137. data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +90 -0
  138. data/ext/boost/libs/thread/src/pthread/thread.cpp +129 -95
  139. data/ext/boost/libs/thread/src/pthread/timeconv.inl +20 -1
  140. data/ext/boost/limits.hpp +1 -1
  141. data/ext/boost/math/policies/policy.hpp +10 -0
  142. data/ext/boost/math/special_functions/detail/round_fwd.hpp +17 -4
  143. data/ext/boost/math/special_functions/fpclassify.hpp +114 -45
  144. data/ext/boost/math/special_functions/math_fwd.hpp +195 -83
  145. data/ext/boost/math/special_functions/sign.hpp +13 -8
  146. data/ext/boost/math/tools/config.hpp +38 -16
  147. data/ext/boost/move/algorithm.hpp +275 -0
  148. data/ext/boost/move/core.hpp +332 -0
  149. data/ext/boost/move/detail/config_begin.hpp +23 -0
  150. data/ext/boost/move/detail/config_end.hpp +20 -0
  151. data/ext/boost/move/detail/meta_utils.hpp +158 -0
  152. data/ext/boost/move/iterator.hpp +298 -0
  153. data/ext/boost/move/move.hpp +10 -1256
  154. data/ext/boost/move/traits.hpp +142 -0
  155. data/ext/boost/move/utility.hpp +194 -0
  156. data/ext/boost/mpl/assert.hpp +72 -4
  157. data/ext/boost/noncopyable.hpp +15 -3
  158. data/ext/boost/pointer_to_other.hpp +55 -0
  159. data/ext/boost/range/concepts.hpp +4 -4
  160. data/ext/boost/range/detail/extract_optional_type.hpp +1 -1
  161. data/ext/boost/range/empty.hpp +1 -1
  162. data/ext/boost/range/iterator_range_core.hpp +4 -1
  163. data/ext/boost/range/iterator_range_io.hpp +2 -2
  164. data/ext/boost/ratio/config.hpp +6 -0
  165. data/ext/boost/ratio/detail/overflow_helpers.hpp +2 -2
  166. data/ext/boost/smart_ptr/allocate_shared_array.hpp +250 -0
  167. data/ext/boost/smart_ptr/detail/allocate_array_helper.hpp +169 -0
  168. data/ext/boost/smart_ptr/detail/array_deleter.hpp +124 -0
  169. data/ext/boost/smart_ptr/detail/array_traits.hpp +53 -0
  170. data/ext/boost/smart_ptr/detail/array_utility.hpp +178 -0
  171. data/ext/boost/smart_ptr/detail/make_array_helper.hpp +157 -0
  172. data/ext/boost/smart_ptr/detail/operator_bool.hpp +16 -9
  173. data/ext/boost/smart_ptr/detail/shared_count.hpp +78 -7
  174. data/ext/boost/smart_ptr/detail/sp_convertible.hpp +15 -0
  175. data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +12 -6
  176. data/ext/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
  177. data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
  178. data/ext/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
  179. data/ext/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
  180. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
  181. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +1 -0
  182. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
  183. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
  184. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
  185. data/ext/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
  186. data/ext/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
  187. data/ext/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +162 -0
  188. data/ext/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
  189. data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
  190. data/ext/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
  191. data/ext/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
  192. data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +15 -0
  193. data/ext/boost/smart_ptr/detail/sp_forward.hpp +39 -0
  194. data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +19 -3
  195. data/ext/boost/smart_ptr/detail/sp_if_array.hpp +31 -0
  196. data/ext/boost/smart_ptr/detail/sp_nullptr_t.hpp +45 -0
  197. data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +5 -12
  198. data/ext/boost/smart_ptr/enable_shared_from_this.hpp +4 -4
  199. data/ext/boost/smart_ptr/make_shared.hpp +5 -1060
  200. data/ext/boost/smart_ptr/make_shared_array.hpp +247 -0
  201. data/ext/boost/smart_ptr/make_shared_object.hpp +1128 -0
  202. data/ext/boost/smart_ptr/scoped_array.hpp +32 -7
  203. data/ext/boost/smart_ptr/scoped_ptr.hpp +31 -5
  204. data/ext/boost/smart_ptr/shared_array.hpp +135 -20
  205. data/ext/boost/smart_ptr/shared_ptr.hpp +444 -126
  206. data/ext/boost/smart_ptr/weak_ptr.hpp +39 -28
  207. data/ext/boost/static_assert.hpp +74 -17
  208. data/ext/boost/system/error_code.hpp +76 -68
  209. data/ext/boost/system/system_error.hpp +5 -1
  210. data/ext/boost/thread/barrier.hpp +6 -2
  211. data/ext/boost/thread/completion_latch.hpp +233 -0
  212. data/ext/boost/thread/condition.hpp +6 -1
  213. data/ext/boost/thread/detail/async_func.hpp +571 -0
  214. data/ext/boost/thread/detail/config.hpp +248 -40
  215. data/ext/boost/thread/detail/counter.hpp +93 -0
  216. data/ext/boost/thread/detail/delete.hpp +12 -0
  217. data/ext/boost/thread/detail/invoke.hpp +1351 -0
  218. data/ext/boost/thread/detail/is_convertible.hpp +48 -0
  219. data/ext/boost/thread/detail/lockable_wrapper.hpp +45 -0
  220. data/ext/boost/thread/detail/log.hpp +83 -0
  221. data/ext/boost/thread/detail/make_tuple_indices.hpp +224 -0
  222. data/ext/boost/thread/detail/move.hpp +32 -16
  223. data/ext/boost/thread/detail/thread.hpp +236 -41
  224. data/ext/boost/thread/detail/thread_group.hpp +55 -9
  225. data/ext/boost/thread/detail/thread_interruption.hpp +4 -1
  226. data/ext/boost/thread/exceptions.hpp +2 -0
  227. data/ext/boost/thread/externally_locked.hpp +351 -0
  228. data/ext/boost/thread/externally_locked_stream.hpp +170 -0
  229. data/ext/boost/thread/future.hpp +2517 -455
  230. data/ext/boost/thread/future_error_code.hpp +61 -0
  231. data/ext/boost/thread/is_locked_by_this_thread.hpp +39 -0
  232. data/ext/boost/thread/latch.hpp +142 -0
  233. data/ext/boost/thread/lock_algorithms.hpp +468 -0
  234. data/ext/boost/thread/lock_concepts.hpp +197 -0
  235. data/ext/boost/thread/lock_factories.hpp +78 -0
  236. data/ext/boost/thread/lock_guard.hpp +88 -0
  237. data/ext/boost/thread/lock_options.hpp +31 -0
  238. data/ext/boost/thread/lock_traits.hpp +45 -0
  239. data/ext/boost/thread/lock_types.hpp +1226 -0
  240. data/ext/boost/thread/lockable_adapter.hpp +226 -0
  241. data/ext/boost/thread/lockable_concepts.hpp +157 -0
  242. data/ext/boost/thread/lockable_traits.hpp +207 -0
  243. data/ext/boost/thread/locks.hpp +5 -1816
  244. data/ext/boost/thread/mutex.hpp +33 -1
  245. data/ext/boost/thread/null_mutex.hpp +243 -0
  246. data/ext/boost/thread/once.hpp +10 -1
  247. data/ext/boost/thread/poly_lockable.hpp +68 -0
  248. data/ext/boost/thread/poly_lockable_adapter.hpp +89 -0
  249. data/ext/boost/thread/poly_shared_lockable.hpp +135 -0
  250. data/ext/boost/thread/poly_shared_lockable_adapter.hpp +170 -0
  251. data/ext/boost/thread/pthread/condition_variable.hpp +74 -26
  252. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +54 -27
  253. data/ext/boost/thread/pthread/mutex.hpp +101 -38
  254. data/ext/boost/thread/pthread/once.hpp +459 -44
  255. data/ext/boost/thread/pthread/once_atomic.hpp +313 -0
  256. data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -10
  257. data/ext/boost/thread/pthread/shared_mutex.hpp +226 -61
  258. data/ext/boost/thread/pthread/shared_mutex_assert.hpp +724 -0
  259. data/ext/boost/thread/pthread/thread_data.hpp +53 -50
  260. data/ext/boost/thread/pthread/timespec.hpp +96 -12
  261. data/ext/boost/thread/recursive_mutex.hpp +44 -1
  262. data/ext/boost/thread/reverse_lock.hpp +3 -2
  263. data/ext/boost/thread/scoped_thread.hpp +285 -0
  264. data/ext/boost/thread/shared_lock_guard.hpp +2 -1
  265. data/ext/boost/thread/shared_mutex.hpp +23 -0
  266. data/ext/boost/thread/strict_lock.hpp +235 -0
  267. data/ext/boost/thread/sync_bounded_queue.hpp +594 -0
  268. data/ext/boost/thread/sync_queue.hpp +516 -0
  269. data/ext/boost/thread/synchronized_value.hpp +1001 -0
  270. data/ext/boost/thread/testable_mutex.hpp +148 -0
  271. data/ext/boost/thread/thread.hpp +1 -13
  272. data/ext/boost/thread/thread_functors.hpp +57 -0
  273. data/ext/boost/thread/thread_guard.hpp +46 -0
  274. data/ext/boost/thread/thread_only.hpp +29 -0
  275. data/ext/boost/thread/v2/shared_mutex.hpp +1062 -0
  276. data/ext/boost/thread/v2/thread.hpp +37 -10
  277. data/ext/boost/thread/xtime.hpp +2 -1
  278. data/ext/boost/token_functions.hpp +16 -16
  279. data/ext/boost/type_traits/add_lvalue_reference.hpp +26 -0
  280. data/ext/boost/type_traits/add_reference.hpp +1 -1
  281. data/ext/boost/type_traits/add_rvalue_reference.hpp +4 -4
  282. data/ext/boost/type_traits/aligned_storage.hpp +13 -0
  283. data/ext/boost/type_traits/common_type.hpp +11 -12
  284. data/ext/boost/type_traits/config.hpp +1 -1
  285. data/ext/boost/type_traits/detail/common_type_imp.hpp +1 -1
  286. data/ext/boost/type_traits/detail/has_binary_operator.hpp +1 -1
  287. data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +1 -1
  288. data/ext/boost/type_traits/has_left_shift.hpp +49 -0
  289. data/ext/boost/type_traits/has_right_shift.hpp +49 -0
  290. data/ext/boost/type_traits/has_trivial_move_assign.hpp +57 -0
  291. data/ext/boost/type_traits/has_trivial_move_constructor.hpp +57 -0
  292. data/ext/boost/type_traits/intrinsics.hpp +18 -2
  293. data/ext/boost/type_traits/is_abstract.hpp +1 -1
  294. data/ext/boost/type_traits/is_array.hpp +1 -1
  295. data/ext/boost/type_traits/is_const.hpp +1 -1
  296. data/ext/boost/type_traits/is_convertible.hpp +78 -17
  297. data/ext/boost/type_traits/is_function.hpp +6 -1
  298. data/ext/boost/type_traits/is_integral.hpp +6 -1
  299. data/ext/boost/type_traits/is_nothrow_move_assignable.hpp +84 -0
  300. data/ext/boost/type_traits/is_nothrow_move_constructible.hpp +84 -0
  301. data/ext/boost/type_traits/is_pod.hpp +3 -1
  302. data/ext/boost/type_traits/is_rvalue_reference.hpp +1 -1
  303. data/ext/boost/type_traits/is_volatile.hpp +1 -1
  304. data/ext/boost/type_traits/make_signed.hpp +153 -0
  305. data/ext/boost/type_traits/make_unsigned.hpp +16 -0
  306. data/ext/boost/type_traits/remove_const.hpp +1 -1
  307. data/ext/boost/type_traits/remove_cv.hpp +1 -1
  308. data/ext/boost/type_traits/remove_reference.hpp +1 -1
  309. data/ext/boost/type_traits/remove_volatile.hpp +1 -1
  310. data/ext/boost/unordered/detail/allocate.hpp +1120 -0
  311. data/ext/boost/unordered/detail/buckets.hpp +876 -0
  312. data/ext/boost/unordered/detail/equivalent.hpp +680 -0
  313. data/ext/boost/unordered/detail/extract_key.hpp +183 -0
  314. data/ext/boost/unordered/detail/fwd.hpp +23 -0
  315. data/ext/boost/unordered/detail/table.hpp +861 -0
  316. data/ext/boost/unordered/detail/unique.hpp +622 -0
  317. data/ext/boost/unordered/detail/util.hpp +260 -0
  318. data/ext/boost/unordered/unordered_map.hpp +1652 -0
  319. data/ext/boost/unordered/unordered_map_fwd.hpp +65 -0
  320. data/ext/boost/unordered/unordered_set.hpp +1549 -0
  321. data/ext/boost/unordered/unordered_set_fwd.hpp +63 -0
  322. data/ext/boost/unordered_map.hpp +18 -0
  323. data/ext/boost/unordered_set.hpp +18 -0
  324. data/ext/boost/utility/addressof.hpp +2 -2
  325. data/ext/boost/utility/result_of.hpp +8 -1
  326. data/ext/boost/version.hpp +2 -2
  327. data/ext/common/Account.h +1 -1
  328. data/ext/common/AccountsDatabase.h +1 -1
  329. data/ext/common/AgentsStarter.cpp +3 -1
  330. data/ext/common/AgentsStarter.h +2 -2
  331. data/ext/common/ApplicationPool2/AppTypes.cpp +24 -6
  332. data/ext/common/ApplicationPool2/AppTypes.h +17 -8
  333. data/ext/common/ApplicationPool2/Common.h +12 -12
  334. data/ext/common/ApplicationPool2/DirectSpawner.h +2 -2
  335. data/ext/common/ApplicationPool2/DummySpawner.h +3 -3
  336. data/ext/common/ApplicationPool2/Group.h +6 -6
  337. data/ext/common/ApplicationPool2/Implementation.cpp +19 -19
  338. data/ext/common/ApplicationPool2/PipeWatcher.h +5 -5
  339. data/ext/common/ApplicationPool2/Pool.h +21 -21
  340. data/ext/common/ApplicationPool2/Process.h +6 -6
  341. data/ext/common/ApplicationPool2/Session.h +1 -1
  342. data/ext/common/ApplicationPool2/SmartSpawner.h +24 -12
  343. data/ext/common/ApplicationPool2/Socket.h +2 -2
  344. data/ext/common/ApplicationPool2/Spawner.h +64 -14
  345. data/ext/common/ApplicationPool2/SpawnerFactory.h +7 -7
  346. data/ext/common/ApplicationPool2/SuperGroup.h +5 -5
  347. data/ext/common/BackgroundEventLoop.cpp +4 -4
  348. data/ext/common/BackgroundEventLoop.h +1 -1
  349. data/ext/common/Constants.h +13 -1
  350. data/ext/common/EventedBufferedInput.h +8 -8
  351. data/ext/common/Exceptions.cpp +71 -0
  352. data/ext/common/Exceptions.h +60 -7
  353. data/ext/common/FileDescriptor.h +4 -4
  354. data/ext/common/MessageClient.h +1 -1
  355. data/ext/common/MessageServer.h +5 -5
  356. data/ext/common/MultiLibeio.cpp +3 -3
  357. data/ext/common/MultiLibeio.h +2 -2
  358. data/ext/common/RandomGenerator.h +11 -11
  359. data/ext/common/ResourceLocator.h +8 -1
  360. data/ext/common/SafeLibev.h +12 -12
  361. data/ext/common/ServerInstanceDir.h +11 -3
  362. data/ext/common/UnionStation.h +10 -10
  363. data/ext/common/Utils.cpp +11 -13
  364. data/ext/common/Utils.h +9 -9
  365. data/ext/common/Utils/BlockingQueue.h +10 -10
  366. data/ext/common/Utils/BufferedIO.h +1 -1
  367. data/ext/common/Utils/CachedFileStat.hpp +2 -2
  368. data/ext/common/Utils/FileChangeChecker.h +1 -1
  369. data/ext/common/Utils/HashMap.h +13 -4
  370. data/ext/common/Utils/IOUtils.cpp +33 -10
  371. data/ext/common/Utils/IniFile.h +3 -3
  372. data/ext/common/Utils/Lock.h +2 -2
  373. data/ext/common/Utils/MessagePassing.h +10 -10
  374. data/ext/common/Utils/ProcessMetricsCollector.h +24 -6
  375. data/ext/common/Utils/ScopeGuard.h +5 -5
  376. data/ext/common/Utils/jsoncpp.cpp +2 -0
  377. data/ext/common/agents/HelperAgent/FileBackedPipe.h +26 -26
  378. data/ext/common/agents/HelperAgent/Main.cpp +18 -18
  379. data/ext/common/agents/HelperAgent/RequestHandler.cpp +4 -4
  380. data/ext/common/agents/HelperAgent/RequestHandler.h +30 -21
  381. data/ext/common/agents/LoggingAgent/AdminController.h +1 -1
  382. data/ext/common/agents/LoggingAgent/FilterSupport.h +13 -11
  383. data/ext/common/agents/LoggingAgent/LoggingServer.h +11 -11
  384. data/ext/common/agents/LoggingAgent/Main.cpp +9 -9
  385. data/ext/common/agents/LoggingAgent/RemoteSender.h +3 -3
  386. data/ext/common/agents/SpawnPreparer.cpp +1 -0
  387. data/ext/common/agents/Watchdog/AgentWatcher.cpp +8 -7
  388. data/ext/common/agents/Watchdog/Main.cpp +81 -73
  389. data/ext/common/agents/Watchdog/ServerInstanceDirToucher.cpp +1 -1
  390. data/ext/libev/Changes +57 -0
  391. data/ext/libev/LICENSE +2 -1
  392. data/ext/libev/Makefile.in +110 -50
  393. data/ext/libev/README +8 -8
  394. data/ext/libev/aclocal.m4 +1503 -861
  395. data/ext/libev/config.guess +290 -304
  396. data/ext/libev/config.sub +77 -198
  397. data/ext/libev/configure +1735 -890
  398. data/ext/libev/configure.ac +3 -2
  399. data/ext/libev/ev++.h +6 -6
  400. data/ext/libev/ev.c +541 -214
  401. data/ext/libev/ev.h +106 -100
  402. data/ext/libev/ev_epoll.c +1 -1
  403. data/ext/libev/ev_kqueue.c +20 -4
  404. data/ext/libev/ev_vars.h +15 -16
  405. data/ext/libev/ev_win32.c +12 -2
  406. data/ext/libev/ev_wrap.h +162 -160
  407. data/ext/libev/event.c +29 -6
  408. data/ext/libev/event.h +9 -2
  409. data/ext/libev/ltmain.sh +2632 -1384
  410. data/ext/nginx/ConfigurationCommands.c +1 -1
  411. data/ext/nginx/ConfigurationCommands.c.erb +3 -1
  412. data/ext/nginx/ContentHandler.c +25 -2
  413. data/ext/nginx/CreateLocationConfig.c +1 -0
  414. data/ext/nginx/CreateLocationConfig.c.erb +1 -1
  415. data/ext/nginx/MergeLocationConfig.c +1 -0
  416. data/ext/nginx/MergeLocationConfig.c.erb +1 -1
  417. data/ext/nginx/config +12 -0
  418. data/ext/oxt/dynamic_thread_group.hpp +7 -4
  419. data/ext/oxt/system_calls.cpp +5 -1
  420. data/ext/oxt/system_calls.hpp +3 -0
  421. data/helper-scripts/node-loader.js +117 -249
  422. data/lib/phusion_passenger.rb +27 -5
  423. data/lib/phusion_passenger/abstract_installer.rb +104 -9
  424. data/lib/phusion_passenger/admin_tools/memory_stats.rb +10 -9
  425. data/lib/phusion_passenger/apache2/config_options.rb +6 -3
  426. data/lib/phusion_passenger/common_library.rb +7 -1
  427. data/lib/phusion_passenger/constants.rb +6 -0
  428. data/lib/phusion_passenger/loader_shared_helpers.rb +7 -4
  429. data/lib/phusion_passenger/nginx/config_options.rb +2 -1
  430. data/lib/phusion_passenger/packaging.rb +3 -0
  431. data/lib/phusion_passenger/platform_info/apache.rb +43 -6
  432. data/lib/phusion_passenger/platform_info/apache_detector.rb +15 -5
  433. data/lib/phusion_passenger/platform_info/compiler.rb +167 -32
  434. data/lib/phusion_passenger/platform_info/cxx_portability.rb +133 -77
  435. data/lib/phusion_passenger/platform_info/depcheck.rb +17 -7
  436. data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +3 -3
  437. data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
  438. data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -6
  439. data/lib/phusion_passenger/platform_info/linux.rb +2 -1
  440. data/lib/phusion_passenger/platform_info/operating_system.rb +1 -1
  441. data/lib/phusion_passenger/platform_info/ruby.rb +18 -3
  442. data/lib/phusion_passenger/standalone/runtime_installer.rb +6 -2
  443. data/lib/phusion_passenger/standalone/start_command.rb +8 -2
  444. data/lib/phusion_passenger/utils/ansi_colors.rb +9 -0
  445. data/lib/phusion_passenger/utils/hosts_file_parser.rb +4 -2
  446. data/node_lib/phusion_passenger/httplib_emulation.js +141 -0
  447. data/node_lib/phusion_passenger/line_reader.js +154 -0
  448. data/node_lib/phusion_passenger/request_handler.js +65 -0
  449. data/node_lib/phusion_passenger/session_protocol_parser.js +113 -0
  450. data/resources/templates/apache2/deployment_example.txt.erb +2 -1
  451. data/resources/templates/apache2/installing_against_a_different_apache.txt.erb +14 -0
  452. data/resources/templates/apache2/multiple_apache_installations_detected.txt.erb +15 -0
  453. data/resources/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
  454. data/resources/templates/general_error_with_html.html.template +1 -1
  455. data/resources/templates/installer_common/gem_install_permission_problems.txt.erb +17 -0
  456. data/resources/templates/installer_common/low_amount_of_memory_warning.txt.erb +6 -4
  457. data/resources/templates/installer_common/world_inaccessible_directories.txt.erb +16 -0
  458. data/resources/templates/nginx/deployment_example.txt.erb +2 -1
  459. data/resources/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
  460. data/resources/templates/standalone/config.erb +1 -0
  461. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +3 -3
  462. data/test/cxx/ApplicationPool2/PoolTest.cpp +4 -4
  463. data/test/cxx/ApplicationPool2/ProcessTest.cpp +5 -5
  464. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +5 -5
  465. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +1 -1
  466. data/test/cxx/EventedBufferedInputTest.cpp +6 -6
  467. data/test/cxx/FileBackedPipeTest.cpp +1 -1
  468. data/test/cxx/MessagePassingTest.cpp +1 -1
  469. data/test/cxx/MessageServerTest.cpp +4 -4
  470. data/test/cxx/RequestHandlerTest.cpp +7 -7
  471. data/test/cxx/UnionStationTest.cpp +2 -2
  472. data/test/node/line_reader_spec.js +338 -0
  473. data/test/node/spec_helper.js +27 -0
  474. data/test/ruby/standalone/runtime_installer_spec.rb +2 -1
  475. metadata +131 -22
  476. metadata.gz.asc +7 -7
  477. data/ext/boost/functional/hash/detail/container_fwd_0x.hpp +0 -29
  478. data/ext/boost/lambda/core.hpp +0 -79
  479. data/ext/boost/lambda/detail/actions.hpp +0 -174
  480. data/ext/boost/lambda/detail/arity_code.hpp +0 -110
  481. data/ext/boost/lambda/detail/function_adaptors.hpp +0 -789
  482. data/ext/boost/lambda/detail/is_instance_of.hpp +0 -104
  483. data/ext/boost/lambda/detail/lambda_config.hpp +0 -48
  484. data/ext/boost/lambda/detail/lambda_functor_base.hpp +0 -615
  485. data/ext/boost/lambda/detail/lambda_functors.hpp +0 -324
  486. data/ext/boost/lambda/detail/lambda_fwd.hpp +0 -74
  487. data/ext/boost/lambda/detail/lambda_traits.hpp +0 -578
  488. data/ext/boost/lambda/detail/member_ptr.hpp +0 -737
  489. data/ext/boost/lambda/detail/operator_actions.hpp +0 -139
  490. data/ext/boost/lambda/detail/operator_lambda_func_base.hpp +0 -271
  491. data/ext/boost/lambda/detail/operator_return_type_traits.hpp +0 -917
  492. data/ext/boost/lambda/detail/operators.hpp +0 -370
  493. data/ext/boost/lambda/detail/ret.hpp +0 -325
  494. data/ext/boost/lambda/detail/return_type_traits.hpp +0 -282
  495. data/ext/boost/lambda/detail/select_functions.hpp +0 -74
  496. data/ext/boost/lambda/lambda.hpp +0 -34
@@ -9,9 +9,10 @@
9
9
  #include <boost/thread/detail/config.hpp>
10
10
  #ifdef BOOST_THREAD_USES_CHRONO
11
11
  #include <boost/chrono/system_clocks.hpp>
12
+ #include <boost/chrono/ceil.hpp>
12
13
  #endif
13
14
  #include <boost/thread/condition_variable.hpp>
14
- #include <boost/thread/locks.hpp>
15
+ #include <boost/thread/lock_types.hpp>
15
16
 
16
17
  namespace boost
17
18
  {
@@ -20,15 +21,6 @@ namespace boost
20
21
 
21
22
  #ifdef BOOST_THREAD_USES_CHRONO
22
23
 
23
- template <class Rep, class Period>
24
- void sleep_for(const chrono::duration<Rep, Period>& d)
25
- {
26
- using namespace chrono;
27
- nanoseconds ns = duration_cast<nanoseconds> (d);
28
- if (ns < d) ++ns;
29
- sleep_for(ns);
30
- }
31
-
32
24
  template <class Clock, class Duration>
33
25
  void sleep_until(const chrono::time_point<Clock, Duration>& t)
34
26
  {
@@ -40,6 +32,28 @@ namespace boost
40
32
  cv.wait_until(lk, t);
41
33
  }
42
34
 
35
+ #ifdef BOOST_THREAD_SLEEP_FOR_IS_STEADY
36
+
37
+ template <class Rep, class Period>
38
+ void sleep_for(const chrono::duration<Rep, Period>& d)
39
+ {
40
+ using namespace chrono;
41
+ if (d > duration<Rep, Period>::zero())
42
+ {
43
+ duration<long double> Max = nanoseconds::max BOOST_PREVENT_MACRO_SUBSTITUTION ();
44
+ nanoseconds ns;
45
+ if (d < Max)
46
+ {
47
+ ns = duration_cast<nanoseconds>(d);
48
+ if (ns < d)
49
+ ++ns;
50
+ }
51
+ else
52
+ ns = nanoseconds:: max BOOST_PREVENT_MACRO_SUBSTITUTION ();
53
+ sleep_for(ns);
54
+ }
55
+ }
56
+
43
57
  template <class Duration>
44
58
  inline BOOST_SYMBOL_VISIBLE
45
59
  void sleep_until(const chrono::time_point<chrono::steady_clock, Duration>& t)
@@ -47,6 +61,19 @@ namespace boost
47
61
  using namespace chrono;
48
62
  sleep_for(t - steady_clock::now());
49
63
  }
64
+ #else
65
+ template <class Rep, class Period>
66
+ void sleep_for(const chrono::duration<Rep, Period>& d)
67
+ {
68
+ using namespace chrono;
69
+ if (d > duration<Rep, Period>::zero())
70
+ {
71
+ steady_clock::time_point c_timeout = steady_clock::now() + ceil<nanoseconds>(d);
72
+ sleep_until(c_timeout);
73
+ }
74
+ }
75
+
76
+ #endif
50
77
 
51
78
  #endif
52
79
  }
@@ -9,6 +9,7 @@
9
9
  #define BOOST_XTIME_WEK070601_HPP
10
10
 
11
11
  #include <boost/thread/detail/config.hpp>
12
+ #if defined BOOST_THREAD_USES_DATETIME
12
13
 
13
14
  #include <boost/cstdint.hpp>
14
15
  #include <boost/thread/thread_time.hpp>
@@ -88,5 +89,5 @@ inline int xtime_cmp(const xtime& xt1, const xtime& xt2)
88
89
  } // namespace boost
89
90
 
90
91
  #include <boost/config/abi_suffix.hpp>
91
-
92
+ #endif
92
93
  #endif //BOOST_XTIME_WEK070601_HPP
@@ -1,6 +1,6 @@
1
1
  // Boost token_functions.hpp ------------------------------------------------//
2
2
 
3
- // Copyright John R. Bandela 2001.
3
+ // Copyright John R. Bandela 2001.
4
4
 
5
5
  // Distributed under the Boost Software License, Version 1.0. (See
6
6
  // accompanying file LICENSE_1_0.txt or copy at
@@ -77,12 +77,12 @@ namespace std{
77
77
  namespace boost{
78
78
  //===========================================================================
79
79
  // The escaped_list_separator class. Which is a model of TokenizerFunction
80
- // An escaped list is a super-set of what is commonly known as a comma
81
- // separated value (csv) list.It is separated into fields by a comma or
80
+ // An escaped list is a super-set of what is commonly known as a comma
81
+ // separated value (csv) list.It is separated into fields by a comma or
82
82
  // other character. If the delimiting character is inside quotes, then it is
83
83
  // counted as a regular character.To allow for embedded quotes in a field,
84
- // there can be escape sequences using the \ much like C.
85
- // The role of the comma, the quotation mark, and the escape
84
+ // there can be escape sequences using the \ much like C.
85
+ // The role of the comma, the quotation mark, and the escape
86
86
  // character (backslash \), can be assigned to other characters.
87
87
 
88
88
  struct escaped_list_error : public std::runtime_error{
@@ -181,7 +181,7 @@ namespace boost{
181
181
  ++next;
182
182
  // The last character was a c, that means there is
183
183
  // 1 more blank field
184
- last_ = true;
184
+ last_ = true;
185
185
  return true;
186
186
  }
187
187
  else tok+=*next;
@@ -209,7 +209,7 @@ namespace boost{
209
209
  // Assuming that the conditional will always get optimized out in the function
210
210
  // implementations, argument types are not a problem since both forms of character classifiers
211
211
  // expect an int.
212
-
212
+
213
213
  #if !defined(BOOST_NO_CWCTYPE)
214
214
  template<typename traits, int N>
215
215
  struct traits_extension_details : public traits {
@@ -238,7 +238,7 @@ namespace boost{
238
238
  };
239
239
  #endif
240
240
 
241
-
241
+
242
242
  // In case there is no cwctype header, we implement the checks manually.
243
243
  // We make use of the fact that the tested categories should fit in ASCII.
244
244
  template<typename traits>
@@ -309,8 +309,8 @@ namespace boost{
309
309
  template <>
310
310
  struct assign_or_plus_equal<std::input_iterator_tag> {
311
311
  template<class Iterator, class Token>
312
- static void assign(Iterator b, Iterator e, Token &t) { }
313
- template<class Token, class Value>
312
+ static void assign(Iterator , Iterator , Token &) { }
313
+ template<class Token, class Value>
314
314
  static void plus_equal(Token &t, const Value &v) {
315
315
  t += v;
316
316
  }
@@ -444,7 +444,7 @@ namespace boost{
444
444
  typedef tokenizer_detail::traits_extension<Tr> Traits;
445
445
  typedef std::basic_string<Char,Tr> string_type;
446
446
  public:
447
- explicit
447
+ explicit
448
448
  char_separator(const Char* dropped_delims,
449
449
  const Char* kept_delims = 0,
450
450
  empty_token_policy empty_tokens = drop_empty_tokens)
@@ -511,7 +511,7 @@ namespace boost{
511
511
  m_output_done = true;
512
512
  assigner::assign(start,next,tok);
513
513
  return true;
514
- }
514
+ }
515
515
  else
516
516
  return false;
517
517
  }
@@ -524,10 +524,10 @@ namespace boost{
524
524
  ++next;
525
525
  m_output_done = false;
526
526
  }
527
- }
527
+ }
528
528
  else if (m_output_done == false && is_dropped(*next)) {
529
529
  m_output_done = true;
530
- }
530
+ }
531
531
  else {
532
532
  if (is_dropped(*next))
533
533
  start=++next;
@@ -618,7 +618,7 @@ namespace boost{
618
618
  }
619
619
 
620
620
  public:
621
- explicit char_delimiters_separator(bool return_delims = false,
621
+ explicit char_delimiters_separator(bool return_delims = false,
622
622
  const Char* returnable = 0,
623
623
  const Char* nonreturnable = 0)
624
624
  : returnable_(returnable ? returnable : string_type().c_str()),
@@ -636,7 +636,7 @@ namespace boost{
636
636
 
637
637
  // skip past all nonreturnable delims
638
638
  // skip past the returnable only if we are not returning delims
639
- for (;next!=end && ( is_nonret(*next) || (is_ret(*next)
639
+ for (;next!=end && ( is_nonret(*next) || (is_ret(*next)
640
640
  && !return_delims_ ) );++next) { }
641
641
 
642
642
  if (next == end) {
@@ -0,0 +1,26 @@
1
+ // Copyright 2010 John Maddock
2
+
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // See http://www.boost.org/LICENSE_1_0.txt
5
+
6
+ #ifndef BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
7
+ #define BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
8
+
9
+ #include <boost/type_traits/add_reference.hpp>
10
+
11
+ // should be the last #include
12
+ #include <boost/type_traits/detail/type_trait_def.hpp>
13
+
14
+ namespace boost{
15
+
16
+ BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_lvalue_reference,T,typename boost::add_reference<T>::type)
17
+
18
+ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
19
+ BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_lvalue_reference,T&&,T&)
20
+ #endif
21
+
22
+ }
23
+
24
+ #include <boost/type_traits/detail/type_trait_undef.hpp>
25
+
26
+ #endif // BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
@@ -62,7 +62,7 @@ struct add_reference_rvalue_layer
62
62
  typedef T& type;
63
63
  };
64
64
 
65
- #ifndef BOOST_NO_RVALUE_REFERENCES
65
+ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
66
66
  template <typename T>
67
67
  struct add_reference_rvalue_layer<T&&>
68
68
  {
@@ -21,7 +21,7 @@
21
21
  //----------------------------------------------------------------------------//
22
22
  // //
23
23
  // C++03 implementation of //
24
- // 20.7.6.2 Reference modifications [meta.trans.ref] //
24
+ // 20.9.7.2 Reference modifications [meta.trans.ref] //
25
25
  // Written by Vicente J. Botet Escriba //
26
26
  // //
27
27
  // If T names an object or function type then the member typedef type
@@ -39,7 +39,7 @@ namespace type_traits_detail {
39
39
  struct add_rvalue_reference_helper
40
40
  { typedef T type; };
41
41
 
42
- #if !defined(BOOST_NO_RVALUE_REFERENCES) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
42
+ #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
43
43
  template <typename T>
44
44
  struct add_rvalue_reference_helper<T, true>
45
45
  {
@@ -49,9 +49,9 @@ namespace type_traits_detail {
49
49
 
50
50
  template <typename T>
51
51
  struct add_rvalue_reference_imp
52
- {
52
+ {
53
53
  typedef typename boost::type_traits_detail::add_rvalue_reference_helper
54
- <T, (!is_void<T>::value && !is_reference<T>::value) >::type type;
54
+ <T, (is_void<T>::value == false && is_reference<T>::value == false) >::type type;
55
55
  };
56
56
 
57
57
  }
@@ -0,0 +1,13 @@
1
+
2
+ // Copyright (C) John Maddock 2005.
3
+ // Use, modification and distribution are subject to the Boost Software License,
4
+ // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5
+ // http://www.boost.org/LICENSE_1_0.txt).
6
+ //
7
+ // See http://www.boost.org/libs/type_traits for most recent version including documentation.
8
+
9
+ #ifndef BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
10
+ # define BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
11
+ # include <boost/aligned_storage.hpp>
12
+ #endif // BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
13
+
@@ -19,18 +19,17 @@
19
19
  #endif
20
20
 
21
21
  //----------------------------------------------------------------------------//
22
- #if defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_COMMON_TYPE_ARITY)
22
+ #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_COMMON_TYPE_ARITY)
23
23
  #define BOOST_COMMON_TYPE_ARITY 3
24
24
  #endif
25
25
 
26
26
  //----------------------------------------------------------------------------//
27
- #if defined(BOOST_NO_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF) && !defined(BOOST_TYPEOF_SILENT)
28
- #define BOOST_TYPEOF_SILENT
27
+ #if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
29
28
  #include <boost/typeof/typeof.hpp> // boost wonders never cease!
30
29
  #endif
31
30
 
32
31
  //----------------------------------------------------------------------------//
33
- #ifndef BOOST_NO_STATIC_ASSERT
32
+ #ifndef BOOST_NO_CXX11_STATIC_ASSERT
34
33
  #define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) static_assert(CND,MSG)
35
34
  #elif defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT)
36
35
  #include <boost/mpl/assert.hpp>
@@ -42,11 +41,11 @@
42
41
  #define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) BOOST_STATIC_ASSERT(CND)
43
42
  #endif
44
43
 
45
- #if !defined(BOOST_NO_STATIC_ASSERT) || !defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT)
44
+ #if !defined(BOOST_NO_CXX11_STATIC_ASSERT) || !defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT)
46
45
  #define BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE "must be complete type"
47
46
  #endif
48
47
 
49
- #if defined(BOOST_NO_DECLTYPE) && defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
48
+ #if defined(BOOST_NO_CXX11_DECLTYPE) && defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
50
49
  #include <boost/type_traits/detail/common_type_imp.hpp>
51
50
  #include <boost/type_traits/remove_cv.hpp>
52
51
  #endif
@@ -57,7 +56,7 @@
57
56
  //----------------------------------------------------------------------------//
58
57
  // //
59
58
  // C++03 implementation of //
60
- // 20.6.7 Other transformations [meta.trans.other] //
59
+ // 20.9.7.6 Other transformations [meta.trans.other] //
61
60
  // Written by Howard Hinnant //
62
61
  // Adapted for Boost by Beman Dawes, Vicente Botet and Jeffrey Hellrung //
63
62
  // //
@@ -66,7 +65,7 @@
66
65
  namespace boost {
67
66
 
68
67
  // prototype
69
- #if !defined(BOOST_NO_VARIADIC_TEMPLATES)
68
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
70
69
  template<typename... T>
71
70
  struct common_type;
72
71
  #else // or no specialization
@@ -81,7 +80,7 @@ namespace boost {
81
80
 
82
81
  // 1 arg
83
82
  template<typename T>
84
- #if !defined(BOOST_NO_VARIADIC_TEMPLATES)
83
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
85
84
  struct common_type<T>
86
85
  #else
87
86
  struct common_type<T, void, void>
@@ -107,7 +106,7 @@ namespace type_traits_detail {
107
106
  static typename add_rvalue_reference<U>::type declval_U(); // workaround gcc bug; not required by std
108
107
  static typename add_rvalue_reference<bool>::type declval_b();
109
108
 
110
- #if !defined(BOOST_NO_DECLTYPE)
109
+ #if !defined(BOOST_NO_CXX11_DECLTYPE)
111
110
  public:
112
111
  typedef decltype(declval<bool>() ? declval<T>() : declval<U>()) type;
113
112
  #elif defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
@@ -134,7 +133,7 @@ namespace type_traits_detail {
134
133
  };
135
134
  }
136
135
 
137
- #if !defined(BOOST_NO_VARIADIC_TEMPLATES)
136
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
138
137
  template <class T, class U>
139
138
  struct common_type<T, U>
140
139
  #else
@@ -146,7 +145,7 @@ namespace type_traits_detail {
146
145
 
147
146
 
148
147
  // 3 or more args
149
- #if !defined(BOOST_NO_VARIADIC_TEMPLATES)
148
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
150
149
  template<typename T, typename U, typename... V>
151
150
  struct common_type<T, U, V...> {
152
151
  public:
@@ -16,7 +16,7 @@
16
16
  #include <boost/detail/workaround.hpp>
17
17
 
18
18
  //
19
- // whenever we have a conversion function with elipses
19
+ // whenever we have a conversion function with ellipses
20
20
  // it needs to be declared __cdecl to suppress compiler
21
21
  // warnings from MS and Borland compilers (this *must*
22
22
  // appear before we include is_same.hpp below):
@@ -92,7 +92,7 @@ struct is_integral_or_enum< bool >
92
92
  * struct make_signed_soft<T>
93
93
  *
94
94
  * These metafunction are identical to make_unsigned and make_signed,
95
- * respetively, except for special-casing bool.
95
+ * respectively, except for special-casing bool.
96
96
  ******************************************************************************/
97
97
 
98
98
  template< class T >
@@ -31,7 +31,7 @@
31
31
  // msvc:
32
32
  // warning C4018: '<' : signed/unsigned mismatch
33
33
  // warning C4244: '+=' : conversion from 'double' to 'char', possible loss of data
34
- // warning C4547: '*' : operator before comma has no effect; expected operator with side-effect
34
+ // warning C4547: '*' : operator before comma has no effect; expected operator with side-effect
35
35
  // warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
36
36
  // warning C4804: '<' : unsafe use of type 'bool' in operation
37
37
  // warning C4805: '==' : unsafe mix of type 'bool' and type 'char' in operation
@@ -26,7 +26,7 @@
26
26
  namespace boost {
27
27
  namespace type_traits {
28
28
 
29
- // Note it is acceptible to use ellipsis here, since the argument will
29
+ // Note it is acceptable to use ellipsis here, since the argument will
30
30
  // always be a pointer type of some sort (JM 2005/06/04):
31
31
  no_type BOOST_TT_DECL is_function_ptr_tester(...);
32
32
 
@@ -0,0 +1,49 @@
1
+ // (C) Copyright 2009-2011 Frederic Bron.
2
+ //
3
+ // Use, modification and distribution are subject to the Boost Software License,
4
+ // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5
+ // http://www.boost.org/LICENSE_1_0.txt).
6
+ //
7
+ // See http://www.boost.org/libs/type_traits for most recent version including documentation.
8
+
9
+ #ifndef BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
10
+ #define BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
11
+
12
+ #define BOOST_TT_TRAIT_NAME has_left_shift
13
+ #define BOOST_TT_TRAIT_OP <<
14
+ #define BOOST_TT_FORBIDDEN_IF\
15
+ ::boost::type_traits::ice_or<\
16
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
17
+ ::boost::type_traits::ice_and<\
18
+ ::boost::is_fundamental< Lhs_nocv >::value,\
19
+ ::boost::is_fundamental< Rhs_nocv >::value,\
20
+ ::boost::type_traits::ice_or<\
21
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
22
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
23
+ >::value\
24
+ >::value,\
25
+ /* Lhs==fundamental and Rhs==pointer */\
26
+ ::boost::type_traits::ice_and<\
27
+ ::boost::is_fundamental< Lhs_nocv >::value,\
28
+ ::boost::is_pointer< Rhs_noref >::value\
29
+ >::value,\
30
+ /* Rhs==fundamental and Lhs==pointer */\
31
+ ::boost::type_traits::ice_and<\
32
+ ::boost::is_fundamental< Rhs_nocv >::value,\
33
+ ::boost::is_pointer< Lhs_noref >::value\
34
+ >::value,\
35
+ /* Lhs==pointer and Rhs==pointer */\
36
+ ::boost::type_traits::ice_and<\
37
+ ::boost::is_pointer< Lhs_noref >::value,\
38
+ ::boost::is_pointer< Rhs_noref >::value\
39
+ >::value\
40
+ >::value
41
+
42
+
43
+ #include <boost/type_traits/detail/has_binary_operator.hpp>
44
+
45
+ #undef BOOST_TT_TRAIT_NAME
46
+ #undef BOOST_TT_TRAIT_OP
47
+ #undef BOOST_TT_FORBIDDEN_IF
48
+
49
+ #endif