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
@@ -0,0 +1,97 @@
1
+ #ifndef BOOST_ATOMIC_DETAIL_LOCKPOOL_HPP
2
+ #define BOOST_ATOMIC_DETAIL_LOCKPOOL_HPP
3
+
4
+ // Copyright (c) 2011 Helge Bahmann
5
+ //
6
+ // Distributed under the Boost Software License, Version 1.0.
7
+ // See accompanying file LICENSE_1_0.txt or copy at
8
+ // http://www.boost.org/LICENSE_1_0.txt)
9
+
10
+ #include <boost/atomic/detail/config.hpp>
11
+ #ifndef BOOST_ATOMIC_FLAG_LOCK_FREE
12
+ #include <boost/thread/mutex.hpp>
13
+ #endif
14
+
15
+ #ifdef BOOST_ATOMIC_HAS_PRAGMA_ONCE
16
+ #pragma once
17
+ #endif
18
+
19
+ namespace boost {
20
+ namespace atomics {
21
+ namespace detail {
22
+
23
+ #ifndef BOOST_ATOMIC_FLAG_LOCK_FREE
24
+
25
+ class lockpool
26
+ {
27
+ public:
28
+ typedef mutex lock_type;
29
+ class scoped_lock
30
+ {
31
+ private:
32
+ lock_type& mtx_;
33
+
34
+ scoped_lock(scoped_lock const&) /* = delete */;
35
+ scoped_lock& operator=(scoped_lock const&) /* = delete */;
36
+
37
+ public:
38
+ explicit
39
+ scoped_lock(const volatile void * addr) : mtx_(get_lock_for(addr))
40
+ {
41
+ mtx_.lock();
42
+ }
43
+ ~scoped_lock()
44
+ {
45
+ mtx_.unlock();
46
+ }
47
+ };
48
+
49
+ private:
50
+ static BOOST_ATOMIC_DECL lock_type& get_lock_for(const volatile void * addr);
51
+ };
52
+
53
+ #else
54
+
55
+ class lockpool
56
+ {
57
+ public:
58
+ typedef atomic_flag lock_type;
59
+
60
+ class scoped_lock
61
+ {
62
+ private:
63
+ atomic_flag& flag_;
64
+ uint8_t padding[128 - sizeof(atomic_flag)];
65
+
66
+ scoped_lock(const scoped_lock &) /* = delete */;
67
+ scoped_lock& operator=(const scoped_lock &) /* = delete */;
68
+
69
+ public:
70
+ explicit
71
+ scoped_lock(const volatile void * addr) : flag_(get_lock_for(addr))
72
+ {
73
+ for (; flag_.test_and_set(memory_order_acquire);)
74
+ {
75
+ #if defined(BOOST_ATOMIC_X86_PAUSE)
76
+ BOOST_ATOMIC_X86_PAUSE();
77
+ #endif
78
+ }
79
+ }
80
+
81
+ ~scoped_lock(void)
82
+ {
83
+ flag_.clear(memory_order_release);
84
+ }
85
+ };
86
+
87
+ private:
88
+ static BOOST_ATOMIC_DECL lock_type& get_lock_for(const volatile void * addr);
89
+ };
90
+
91
+ #endif
92
+
93
+ }
94
+ }
95
+ }
96
+
97
+ #endif
@@ -0,0 +1,62 @@
1
+ #ifndef BOOST_ATOMIC_DETAIL_PLATFORM_HPP
2
+ #define BOOST_ATOMIC_DETAIL_PLATFORM_HPP
3
+
4
+ // Copyright (c) 2009 Helge Bahmann
5
+ //
6
+ // Distributed under the Boost Software License, Version 1.0.
7
+ // See accompanying file LICENSE_1_0.txt or copy at
8
+ // http://www.boost.org/LICENSE_1_0.txt)
9
+
10
+ // Platform selection file
11
+
12
+ #include <boost/atomic/detail/config.hpp>
13
+
14
+ #ifdef BOOST_ATOMIC_HAS_PRAGMA_ONCE
15
+ #pragma once
16
+ #endif
17
+
18
+ #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
19
+
20
+ #include <boost/atomic/detail/gcc-x86.hpp>
21
+
22
+ #elif 0 && defined(__GNUC__) && defined(__alpha__) /* currently does not work correctly */
23
+
24
+ #include <boost/atomic/detail/base.hpp>
25
+ #include <boost/atomic/detail/gcc-alpha.hpp>
26
+
27
+ #elif defined(__GNUC__) && (defined(__POWERPC__) || defined(__PPC__))
28
+
29
+ #include <boost/atomic/detail/gcc-ppc.hpp>
30
+
31
+ // This list of ARM architecture versions comes from Apple's arm/arch.h header.
32
+ // I don't know how complete it is.
33
+ #elif defined(__GNUC__) && (defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \
34
+ || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) \
35
+ || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_7A__))
36
+
37
+ #include <boost/atomic/detail/gcc-armv6plus.hpp>
38
+
39
+ #elif defined(__linux__) && defined(__arm__)
40
+
41
+ #include <boost/atomic/detail/linux-arm.hpp>
42
+
43
+ #elif defined(__GNUC__) && defined(__sparc_v9__)
44
+
45
+ #include <boost/atomic/detail/gcc-sparcv9.hpp>
46
+
47
+ #elif defined(BOOST_WINDOWS) || defined(_WIN32_CE)
48
+
49
+ #include <boost/atomic/detail/windows.hpp>
50
+
51
+ #elif 0 && defined(__GNUC__) /* currently does not work correctly */
52
+
53
+ #include <boost/atomic/detail/base.hpp>
54
+ #include <boost/atomic/detail/gcc-cas.hpp>
55
+
56
+ #else
57
+
58
+ #include <boost/atomic/detail/base.hpp>
59
+
60
+ #endif
61
+
62
+ #endif
@@ -0,0 +1,45 @@
1
+ #ifndef BOOST_ATOMIC_DETAIL_TYPE_CLASSIFICATION_HPP
2
+ #define BOOST_ATOMIC_DETAIL_TYPE_CLASSIFICATION_HPP
3
+
4
+ // Copyright (c) 2011 Helge Bahmann
5
+ //
6
+ // Distributed under the Boost Software License, Version 1.0.
7
+ // See accompanying file LICENSE_1_0.txt or copy at
8
+ // http://www.boost.org/LICENSE_1_0.txt)
9
+
10
+ #include <boost/atomic/detail/config.hpp>
11
+ #include <boost/type_traits/is_integral.hpp>
12
+
13
+ #ifdef BOOST_ATOMIC_HAS_PRAGMA_ONCE
14
+ #pragma once
15
+ #endif
16
+
17
+ namespace boost {
18
+ namespace atomics {
19
+ namespace detail {
20
+
21
+ template<typename T, bool IsInt = boost::is_integral<T>::value>
22
+ struct classify
23
+ {
24
+ typedef void type;
25
+ };
26
+
27
+ template<typename T>
28
+ struct classify<T, true> {typedef int type;};
29
+
30
+ template<typename T>
31
+ struct classify<T*, false> {typedef void* type;};
32
+
33
+ template<typename T>
34
+ struct storage_size_of
35
+ {
36
+ enum _
37
+ {
38
+ size = sizeof(T),
39
+ value = (size == 3 ? 4 : (size == 5 || size == 6 || size == 7 ? 8 : size))
40
+ };
41
+ };
42
+
43
+ }}}
44
+
45
+ #endif
@@ -28,7 +28,7 @@
28
28
  #if ! defined BOOST_CHRONO_PROVIDES_DATE_IO_FOR_SYSTEM_CLOCK_TIME_POINT \
29
29
  && ! defined BOOST_CHRONO_DONT_PROVIDE_DATE_IO_FOR_SYSTEM_CLOCK_TIME_POINT
30
30
 
31
- # define BOOST_CHRONO_DONT_PROVIDE_DATE_IO_FOR_SYSTEM_CLOCK_TIME_POINT
31
+ # define BOOST_CHRONO_PROVIDES_DATE_IO_FOR_SYSTEM_CLOCK_TIME_POINT
32
32
 
33
33
  #endif
34
34
 
@@ -96,6 +96,9 @@
96
96
  # undef BOOST_CHRONO_HAS_THREAD_CLOCK
97
97
  # undef BOOST_CHRONO_THREAD_CLOCK_IS_STEADY
98
98
  # endif
99
+ # if defined(__VXWORKS__)
100
+ # undef BOOST_CHRONO_HAS_PROCESS_CLOCKS
101
+ # endif
99
102
  # endif
100
103
 
101
104
  #if defined(BOOST_CHRONO_THREAD_DISABLED) && defined(BOOST_CHRONO_HAS_THREAD_CLOCK)
@@ -123,14 +126,16 @@
123
126
 
124
127
  #if defined( BOOST_NO_CXX11_NUMERIC_LIMITS )
125
128
  #define BOOST_CHRONO_LIB_CONSTEXPR
129
+ #elif defined(_LIBCPP_VERSION) && !defined(_LIBCPP_CONSTEXPR)
130
+ #define BOOST_CHRONO_LIB_CONSTEXPR
126
131
  #else
127
- #define BOOST_CHRONO_LIB_CONSTEXPR BOOST_CONSTEXPR
132
+ #define BOOST_CHRONO_LIB_CONSTEXPR BOOST_CONSTEXPR
128
133
  #endif
129
134
 
130
135
  #if defined( BOOST_NO_CXX11_NUMERIC_LIMITS )
131
136
  # define BOOST_CHRONO_LIB_NOEXCEPT_OR_THROW throw()
132
137
  #else
133
- #ifdef BOOST_NO_NOEXCEPT
138
+ #ifdef BOOST_NO_CXX11_NOEXCEPT
134
139
  # define BOOST_CHRONO_LIB_NOEXCEPT_OR_THROW throw()
135
140
  #else
136
141
  # define BOOST_CHRONO_LIB_NOEXCEPT_OR_THROW noexcept
@@ -417,7 +417,7 @@ struct common_type<chrono::duration<Rep1, Period1>,
417
417
  namespace chrono {
418
418
 
419
419
  template <class Rep, class Period>
420
- class duration
420
+ class BOOST_SYMBOL_VISIBLE duration
421
421
  {
422
422
  //BOOST_CHRONO_STATIC_ASSERT(boost::is_integral<Rep>::value, BOOST_CHRONO_A_DURATION_REPRESENTATION_MUST_BE_INTEGRAL, ());
423
423
  BOOST_CHRONO_STATIC_ASSERT(!boost::chrono::detail::is_duration<Rep>::value,
@@ -433,10 +433,10 @@ namespace chrono {
433
433
  rep rep_;
434
434
  public:
435
435
 
436
- BOOST_CONSTEXPR
436
+ BOOST_FORCEINLINE BOOST_CONSTEXPR
437
437
  duration() : rep_(duration_values<rep>::zero()) { }
438
438
  template <class Rep2>
439
- BOOST_CONSTEXPR
439
+ BOOST_SYMBOL_VISIBLE BOOST_FORCEINLINE BOOST_CONSTEXPR
440
440
  explicit duration(const Rep2& r
441
441
  , typename boost::enable_if <
442
442
  mpl::and_ <
@@ -452,8 +452,7 @@ namespace chrono {
452
452
  >::type* = 0
453
453
  ) : rep_(r) { }
454
454
  //~duration() {} //= default;
455
- //BOOST_CONSTEXPR
456
- //duration(const duration& rhs) : rep_(rhs.rep_) {} // = default;
455
+ // BOOST_CONSTEXPR duration(const duration& rhs) : rep_(rhs.rep_) {} // = default;
457
456
  duration& operator=(const duration& rhs) // = default;
458
457
  {
459
458
  if (&rhs != this) rep_= rhs.rep_;
@@ -462,7 +461,7 @@ namespace chrono {
462
461
 
463
462
  // conversions
464
463
  template <class Rep2, class Period2>
465
- BOOST_CONSTEXPR
464
+ BOOST_FORCEINLINE BOOST_CONSTEXPR
466
465
  duration(const duration<Rep2, Period2>& d
467
466
  , typename boost::enable_if <
468
467
  mpl::or_ <
@@ -664,7 +663,7 @@ namespace detail
664
663
  template <class LhsDuration, class RhsDuration>
665
664
  struct duration_eq
666
665
  {
667
- BOOST_CONSTEXPR bool operator()(const LhsDuration& lhs, const RhsDuration& rhs)
666
+ BOOST_CONSTEXPR bool operator()(const LhsDuration& lhs, const RhsDuration& rhs) const
668
667
  {
669
668
  typedef typename common_type<LhsDuration, RhsDuration>::type CD;
670
669
  return CD(lhs).count() == CD(rhs).count();
@@ -674,7 +673,7 @@ namespace detail
674
673
  template <class LhsDuration>
675
674
  struct duration_eq<LhsDuration, LhsDuration>
676
675
  {
677
- BOOST_CONSTEXPR bool operator()(const LhsDuration& lhs, const LhsDuration& rhs)
676
+ BOOST_CONSTEXPR bool operator()(const LhsDuration& lhs, const LhsDuration& rhs) const
678
677
  {
679
678
  return lhs.count() == rhs.count();
680
679
  }
@@ -683,7 +682,7 @@ namespace detail
683
682
  template <class LhsDuration, class RhsDuration>
684
683
  struct duration_lt
685
684
  {
686
- BOOST_CONSTEXPR bool operator()(const LhsDuration& lhs, const RhsDuration& rhs)
685
+ BOOST_CONSTEXPR bool operator()(const LhsDuration& lhs, const RhsDuration& rhs) const
687
686
  {
688
687
  typedef typename common_type<LhsDuration, RhsDuration>::type CD;
689
688
  return CD(lhs).count() < CD(rhs).count();
@@ -693,7 +692,7 @@ namespace detail
693
692
  template <class LhsDuration>
694
693
  struct duration_lt<LhsDuration, LhsDuration>
695
694
  {
696
- BOOST_CONSTEXPR bool operator()(const LhsDuration& lhs, const LhsDuration& rhs)
695
+ BOOST_CONSTEXPR bool operator()(const LhsDuration& lhs, const LhsDuration& rhs) const
697
696
  {
698
697
  return lhs.count() < rhs.count();
699
698
  }
@@ -67,7 +67,7 @@ TODO:
67
67
  #include <ctime>
68
68
 
69
69
  # if defined( BOOST_CHRONO_POSIX_API )
70
- # if ! defined(CLOCK_REALTIME)
70
+ # if ! defined(CLOCK_REALTIME) && ! defined (__hpux__)
71
71
  # error <time.h> does not supply CLOCK_REALTIME
72
72
  # endif
73
73
  # endif
@@ -168,16 +168,17 @@ namespace chrono {
168
168
  duration d_;
169
169
 
170
170
  public:
171
- BOOST_CONSTEXPR
171
+ BOOST_FORCEINLINE BOOST_CONSTEXPR
172
172
  time_point() : d_(duration::zero())
173
173
  {}
174
- BOOST_CONSTEXPR explicit time_point(const duration& d)
174
+ BOOST_FORCEINLINE BOOST_CONSTEXPR
175
+ explicit time_point(const duration& d)
175
176
  : d_(d)
176
177
  {}
177
178
 
178
179
  // conversions
179
180
  template <class Duration2>
180
- BOOST_CONSTEXPR
181
+ BOOST_FORCEINLINE BOOST_CONSTEXPR
181
182
  time_point(const time_point<clock, Duration2>& t
182
183
  , typename boost::enable_if
183
184
  <
@@ -60,14 +60,14 @@ BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
60
60
 
61
61
  BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
62
62
  contains one or more of the following letters after
63
- a hiphen:
63
+ a hyphen:
64
64
 
65
65
  s static runtime (dynamic if not present).
66
66
  g debug/diagnostic runtime (release if not present).
67
67
  y Python debug/diagnostic runtime (release if not present).
68
68
  d debug build (release if not present).
69
- g debug/diagnostic runtime (release if not present).
70
- p STLPort Build.
69
+ p STLport build.
70
+ n STLport build without its IOStreams.
71
71
 
72
72
  BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
73
73
 
@@ -114,68 +114,69 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
114
114
  // select toolset if not defined already:
115
115
  //
116
116
  #ifndef BOOST_LIB_TOOLSET
117
- // Note: no compilers before 1200 are supported
118
- #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
117
+ # if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
118
+ // Note: no compilers before 1200 are supported
119
+ # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
119
120
 
120
- # ifdef UNDER_CE
121
- // vc6:
122
- # define BOOST_LIB_TOOLSET "evc4"
123
- # else
124
- // vc6:
125
- # define BOOST_LIB_TOOLSET "vc6"
126
- # endif
121
+ # ifdef UNDER_CE
122
+ // eVC4:
123
+ # define BOOST_LIB_TOOLSET "evc4"
124
+ # else
125
+ // vc6:
126
+ # define BOOST_LIB_TOOLSET "vc6"
127
+ # endif
127
128
 
128
- #elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
129
+ # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310)
129
130
 
130
- // vc7:
131
- # define BOOST_LIB_TOOLSET "vc7"
131
+ // vc7:
132
+ # define BOOST_LIB_TOOLSET "vc7"
132
133
 
133
- #elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
134
+ # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400)
134
135
 
135
- // vc71:
136
- # define BOOST_LIB_TOOLSET "vc71"
136
+ // vc71:
137
+ # define BOOST_LIB_TOOLSET "vc71"
137
138
 
138
- #elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400)
139
+ # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500)
139
140
 
140
- // vc80:
141
- # define BOOST_LIB_TOOLSET "vc80"
141
+ // vc80:
142
+ # define BOOST_LIB_TOOLSET "vc80"
142
143
 
143
- #elif defined(BOOST_MSVC) && (BOOST_MSVC == 1500)
144
+ # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
144
145
 
145
- // vc90:
146
- # define BOOST_LIB_TOOLSET "vc90"
146
+ // vc90:
147
+ # define BOOST_LIB_TOOLSET "vc90"
147
148
 
148
- #elif defined(BOOST_MSVC) && (BOOST_MSVC == 1600)
149
+ # elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700)
149
150
 
150
- // vc10:
151
- # define BOOST_LIB_TOOLSET "vc100"
151
+ // vc10:
152
+ # define BOOST_LIB_TOOLSET "vc100"
152
153
 
153
- #elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1700)
154
+ # elif defined(BOOST_MSVC)
154
155
 
155
- // vc11:
156
- # define BOOST_LIB_TOOLSET "vc110"
156
+ // vc11:
157
+ # define BOOST_LIB_TOOLSET "vc110"
157
158
 
158
- #elif defined(__BORLANDC__)
159
+ # elif defined(__BORLANDC__)
159
160
 
160
- // CBuilder 6:
161
- # define BOOST_LIB_TOOLSET "bcb"
161
+ // CBuilder 6:
162
+ # define BOOST_LIB_TOOLSET "bcb"
162
163
 
163
- #elif defined(__ICL)
164
+ # elif defined(__ICL)
164
165
 
165
- // Intel C++, no version number:
166
- # define BOOST_LIB_TOOLSET "iw"
166
+ // Intel C++, no version number:
167
+ # define BOOST_LIB_TOOLSET "iw"
167
168
 
168
- #elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
169
+ # elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
169
170
 
170
- // Metrowerks CodeWarrior 8.x
171
- # define BOOST_LIB_TOOLSET "cw8"
171
+ // Metrowerks CodeWarrior 8.x
172
+ # define BOOST_LIB_TOOLSET "cw8"
172
173
 
173
- #elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
174
+ # elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
174
175
 
175
- // Metrowerks CodeWarrior 9.x
176
- # define BOOST_LIB_TOOLSET "cw9"
176
+ // Metrowerks CodeWarrior 9.x
177
+ # define BOOST_LIB_TOOLSET "cw9"
177
178
 
178
- #endif
179
+ # endif
179
180
  #endif // BOOST_LIB_TOOLSET
180
181
 
181
182
  //
@@ -201,11 +202,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
201
202
  # elif defined(_DEBUG)\
202
203
  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
203
204
  # define BOOST_LIB_RT_OPT "-gydp"
204
- # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
205
+ # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
205
206
  # error "Build options aren't compatible with pre-built libraries"
206
207
  # elif defined(_DEBUG)
207
208
  # define BOOST_LIB_RT_OPT "-gdp"
208
- # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
209
+ # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
209
210
  # error "Build options aren't compatible with pre-built libraries"
210
211
  # else
211
212
  # define BOOST_LIB_RT_OPT "-p"
@@ -221,11 +222,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
221
222
  # elif defined(_DEBUG)\
222
223
  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
223
224
  # define BOOST_LIB_RT_OPT "-gydpn"
224
- # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
225
+ # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
225
226
  # error "Build options aren't compatible with pre-built libraries"
226
227
  # elif defined(_DEBUG)
227
228
  # define BOOST_LIB_RT_OPT "-gdpn"
228
- # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
229
+ # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
229
230
  # error "Build options aren't compatible with pre-built libraries"
230
231
  # else
231
232
  # define BOOST_LIB_RT_OPT "-pn"
@@ -255,11 +256,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
255
256
  # elif defined(_DEBUG)\
256
257
  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
257
258
  # define BOOST_LIB_RT_OPT "-sgydp"
258
- # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
259
+ # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
259
260
  # error "Build options aren't compatible with pre-built libraries"
260
261
  # elif defined(_DEBUG)
261
262
  # define BOOST_LIB_RT_OPT "-sgdp"
262
- # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
263
+ # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
263
264
  # error "Build options aren't compatible with pre-built libraries"
264
265
  # else
265
266
  # define BOOST_LIB_RT_OPT "-sp"
@@ -275,11 +276,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
275
276
  # elif defined(_DEBUG)\
276
277
  && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
277
278
  # define BOOST_LIB_RT_OPT "-sgydpn"
278
- # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
279
+ # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
279
280
  # error "Build options aren't compatible with pre-built libraries"
280
281
  # elif defined(_DEBUG)
281
282
  # define BOOST_LIB_RT_OPT "-sgdpn"
282
- # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
283
+ # pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
283
284
  # error "Build options aren't compatible with pre-built libraries"
284
285
  # else
285
286
  # define BOOST_LIB_RT_OPT "-spn"
@@ -312,7 +313,7 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
312
313
  // sanity check:
313
314
  //
314
315
  #if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
315
- #error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form"
316
+ #error "Pre-built versions of the Boost libraries are not provided in STLport-debug form"
316
317
  #endif
317
318
 
318
319
  # ifdef _RTLDLL