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
@@ -33,6 +33,10 @@
33
33
  // PathScale EKOPath compiler (has to come before clang and gcc)
34
34
  # define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp"
35
35
 
36
+ #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
37
+ // Intel
38
+ # define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
39
+
36
40
  #elif defined __clang__
37
41
  // Clang C++ emulates GCC, so it has to appear early.
38
42
  # define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
@@ -41,10 +45,6 @@
41
45
  // Digital Mars C++
42
46
  # define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
43
47
 
44
- #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
45
- // Intel
46
- # define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
47
-
48
48
  # elif defined __GNUC__
49
49
  // GNU C++:
50
50
  # define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
@@ -87,7 +87,7 @@
87
87
  #endif
88
88
 
89
89
  #include <typeinfo>
90
- #if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) )
90
+ #if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__)
91
91
  # define BOOST_NO_STD_TYPEINFO
92
92
  #endif
93
93
 
@@ -113,9 +113,10 @@
113
113
  #if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
114
114
  # define BOOST_NO_CXX11_HDR_TUPLE
115
115
  #endif
116
+
117
+ // C++0x headers implemented in 540 (as shipped by Microsoft)
116
118
  //
117
- // C++0x headers not yet (fully) implemented:
118
- //
119
+ #if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
119
120
  # define BOOST_NO_CXX11_HDR_TYPE_TRAITS
120
121
  # define BOOST_NO_CXX11_HDR_CHRONO
121
122
  # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
@@ -125,6 +126,12 @@
125
126
  # define BOOST_NO_CXX11_HDR_THREAD
126
127
  # define BOOST_NO_CXX11_ALLOCATOR
127
128
  # define BOOST_NO_CXX11_ATOMIC_SMART_PTR
129
+ #endif
130
+
131
+ //
132
+ // C++0x headers not yet (fully) implemented:
133
+ //
134
+ # define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
128
135
 
129
136
  #ifdef _CPPLIB_VER
130
137
  # define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
@@ -35,7 +35,8 @@
35
35
  # if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
36
36
  || defined(_GLIBCXX__PTHREADS) \
37
37
  || defined(_GLIBCXX_HAS_GTHREADS) \
38
- || defined(_WIN32)
38
+ || defined(_WIN32) \
39
+ || defined(_AIX)
39
40
  //
40
41
  // If the std lib has thread support turned on, then turn it on in Boost
41
42
  // as well. We do this because some gcc-3.4 std lib headers define _REENTANT
@@ -1,4 +1,5 @@
1
1
  // Boost config.hpp configuration header file ------------------------------//
2
+ // boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file
2
3
 
3
4
  // Copyright (c) 2001-2003 John Maddock
4
5
  // Copyright (c) 2001 Darin Adler
@@ -488,6 +489,18 @@ namespace boost{
488
489
  # endif
489
490
  }
490
491
  #endif
492
+ // same again for __int128:
493
+ #if defined(BOOST_HAS_INT128) && defined(__cplusplus)
494
+ namespace boost{
495
+ # ifdef __GNUC__
496
+ __extension__ typedef __int128 int128_type;
497
+ __extension__ typedef unsigned __int128 uint128_type;
498
+ # else
499
+ typedef __int128 int128_type;
500
+ typedef unsigned __int128 uint128_type;
501
+ # endif
502
+ }
503
+ #endif
491
504
 
492
505
  // BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
493
506
  //
@@ -628,7 +641,8 @@ namespace std{ using ::type_info; }
628
641
  # if defined(_MSC_VER)
629
642
  # define BOOST_FORCEINLINE __forceinline
630
643
  # elif defined(__GNUC__) && __GNUC__ > 3
631
- # define BOOST_FORCEINLINE inline __attribute__ ((always_inline))
644
+ // Clang also defines __GNUC__ (as 4)
645
+ # define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
632
646
  # else
633
647
  # define BOOST_FORCEINLINE inline
634
648
  # endif
@@ -647,8 +661,8 @@ namespace std{ using ::type_info; }
647
661
  // Use BOOST_NO_CXX11_HDR_UNORDERED_SET or BOOST_NO_CXX11_HDR_UNORDERED_MAP
648
662
  // instead of BOOST_NO_STD_UNORDERED
649
663
  #if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET)
650
- # ifndef BOOST_NO_STD_UNORDERED
651
- # define BOOST_NO_STD_UNORDERED
664
+ # ifndef BOOST_NO_CXX11_STD_UNORDERED
665
+ # define BOOST_NO_CXX11_STD_UNORDERED
652
666
  # endif
653
667
  #endif
654
668
 
@@ -658,7 +672,7 @@ namespace std{ using ::type_info; }
658
672
  #endif
659
673
 
660
674
  // Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY
661
- #if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_BOOST_NO_0X_HDR_ARRAY)
675
+ #if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_0X_HDR_ARRAY)
662
676
  # define BOOST_NO_0X_HDR_ARRAY
663
677
  #endif
664
678
  // Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO
@@ -827,9 +841,9 @@ namespace std{ using ::type_info; }
827
841
  #if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT)
828
842
  # define BOOST_NO_STATIC_ASSERT
829
843
  #endif
830
- // Use BOOST_NO_CXX11_STD_UNORDERD instead of BOOST_NO_STD_UNORDERD
831
- #if defined(BOOST_NO_CXX11_STD_UNORDERD) && !defined(BOOST_NO_STD_UNORDERD)
832
- # define BOOST_NO_STD_UNORDERD
844
+ // Use BOOST_NO_CXX11_STD_UNORDERED instead of BOOST_NO_STD_UNORDERED
845
+ #if defined(BOOST_NO_CXX11_STD_UNORDERED) && !defined(BOOST_NO_STD_UNORDERED)
846
+ # define BOOST_NO_STD_UNORDERED
833
847
  #endif
834
848
  // Use BOOST_NO_CXX11_UNICODE_LITERALS instead of BOOST_NO_UNICODE_LITERALS
835
849
  #if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS)
@@ -859,27 +873,32 @@ namespace std{ using ::type_info; }
859
873
  // Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
860
874
  // These aid the transition to C++11 while still supporting C++03 compilers
861
875
  //
862
- #ifdef BOOST_NO_NOEXCEPT
876
+ #ifdef BOOST_NO_CXX11_NOEXCEPT
863
877
  # define BOOST_NOEXCEPT
878
+ # define BOOST_NOEXCEPT_OR_NOTHROW throw()
864
879
  # define BOOST_NOEXCEPT_IF(Predicate)
865
880
  # define BOOST_NOEXCEPT_EXPR(Expression) false
866
881
  #else
867
882
  # define BOOST_NOEXCEPT noexcept
883
+ # define BOOST_NOEXCEPT_OR_NOTHROW noexcept
868
884
  # define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
869
885
  # define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
870
886
  #endif
871
-
872
887
  //
873
- // Normalize BOOST_NO_STATIC_ASSERT and (depricated) BOOST_HAS_STATIC_ASSERT:
874
- //
875
- #if !defined(BOOST_NO_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
876
- # define BOOST_HAS_STATIC_ASSERT
877
- #endif
888
+ // Helper macro BOOST_FALLTHROUGH
889
+ // Fallback definition of BOOST_FALLTHROUGH macro used to mark intended
890
+ // fall-through between case labels in a switch statement. We use a definition
891
+ // that requires a semicolon after it to avoid at least one type of misuse even
892
+ // on unsupported compilers.
893
+ //
894
+ #ifndef BOOST_FALLTHROUGH
895
+ # define BOOST_FALLTHROUGH ((void)0)
896
+ #endif
878
897
 
879
898
  //
880
899
  // constexpr workarounds
881
900
  //
882
- #if defined(BOOST_NO_CONSTEXPR)
901
+ #if defined(BOOST_NO_CXX11_CONSTEXPR)
883
902
  #define BOOST_CONSTEXPR
884
903
  #define BOOST_CONSTEXPR_OR_CONST const
885
904
  #else
@@ -890,16 +909,23 @@ namespace std{ using ::type_info; }
890
909
  #define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST
891
910
 
892
911
  //
893
- // Set BOOST_HAS_RVALUE_REFS when BOOST_NO_RVALUE_REFERENCES is not defined
912
+ // Set BOOST_HAS_STATIC_ASSERT when BOOST_NO_CXX11_STATIC_ASSERT is not defined
913
+ //
914
+ #if !defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
915
+ # define BOOST_HAS_STATIC_ASSERT
916
+ #endif
917
+
918
+ //
919
+ // Set BOOST_HAS_RVALUE_REFS when BOOST_NO_CXX11_RVALUE_REFERENCES is not defined
894
920
  //
895
- #if !defined(BOOST_NO_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
921
+ #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
896
922
  #define BOOST_HAS_RVALUE_REFS
897
923
  #endif
898
924
 
899
925
  //
900
- // Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_VARIADIC_TEMPLATES is not defined
926
+ // Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined
901
927
  //
902
- #if !defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
928
+ #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
903
929
  #define BOOST_HAS_VARIADIC_TMPL
904
930
  #endif
905
931
 
@@ -7,7 +7,7 @@
7
7
  * Boost Software License, Version 1.0. (See accompanying
8
8
  * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
9
9
  * Author: Jeff Garland, Bart Garst
10
- * $Date: 2012-09-30 16:25:22 -0700 (Sun, 30 Sep 2012) $
10
+ * $Date: 2013-06-21 08:04:12 -0700 (Fri, 21 Jun 2013) $
11
11
  */
12
12
 
13
13
 
@@ -470,7 +470,6 @@ class format_date_parser
470
470
 
471
471
  // skip leading whitespace
472
472
  while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; }
473
- charT current_char = *sitr;
474
473
 
475
474
  short month(0);
476
475
 
@@ -485,7 +484,6 @@ class format_date_parser
485
484
  mr = m_month_short_names.match(sitr, stream_end);
486
485
  month = mr.current_match;
487
486
  if (mr.has_remaining()) {
488
- current_char = mr.last_char();
489
487
  use_current_char = true;
490
488
  }
491
489
  break;
@@ -495,7 +493,6 @@ class format_date_parser
495
493
  mr = m_month_long_names.match(sitr, stream_end);
496
494
  month = mr.current_match;
497
495
  if (mr.has_remaining()) {
498
- current_char = mr.last_char();
499
496
  use_current_char = true;
500
497
  }
501
498
  break;
@@ -523,7 +520,6 @@ class format_date_parser
523
520
  itr++;
524
521
  if (use_current_char) {
525
522
  use_current_char = false;
526
- current_char = *sitr;
527
523
  }
528
524
  else {
529
525
  sitr++;
@@ -575,7 +571,6 @@ class format_date_parser
575
571
 
576
572
  // skip leading whitespace
577
573
  while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; }
578
- charT current_char = *sitr;
579
574
 
580
575
  short wkday(0);
581
576
 
@@ -594,7 +589,6 @@ class format_date_parser
594
589
  mr = m_weekday_short_names.match(sitr, stream_end);
595
590
  wkday = mr.current_match;
596
591
  if (mr.has_remaining()) {
597
- current_char = mr.last_char();
598
592
  use_current_char = true;
599
593
  }
600
594
  break;
@@ -608,7 +602,6 @@ class format_date_parser
608
602
  mr = m_weekday_long_names.match(sitr, stream_end);
609
603
  wkday = mr.current_match;
610
604
  if (mr.has_remaining()) {
611
- current_char = mr.last_char();
612
605
  use_current_char = true;
613
606
  }
614
607
  break;
@@ -635,7 +628,6 @@ class format_date_parser
635
628
  itr++;
636
629
  if (use_current_char) {
637
630
  use_current_char = false;
638
- current_char = *sitr;
639
631
  }
640
632
  else {
641
633
  sitr++;
@@ -668,7 +660,6 @@ class format_date_parser
668
660
 
669
661
  // skip leading whitespace
670
662
  while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; }
671
- charT current_char = *sitr;
672
663
 
673
664
  unsigned short year(0);
674
665
 
@@ -708,7 +699,6 @@ class format_date_parser
708
699
  itr++;
709
700
  if (use_current_char) {
710
701
  use_current_char = false;
711
- current_char = *sitr;
712
702
  }
713
703
  else {
714
704
  sitr++;
@@ -6,7 +6,7 @@
6
6
  * Boost Software License, Version 1.0. (See accompanying
7
7
  * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
8
8
  * Author: Jeff Garland
9
- * $Date: 2012-09-22 09:04:10 -0700 (Sat, 22 Sep 2012) $
9
+ * $Date: 2013-06-21 08:04:12 -0700 (Fri, 21 Jun 2013) $
10
10
  */
11
11
 
12
12
  #include <sstream>
@@ -50,7 +50,8 @@ gather_month_strings(const std::locale& locale, bool short_strings=true)
50
50
  //grab the needed strings by using the locale to
51
51
  //output each month
52
52
  const charT* p_outfmt = outfmt.c_str(), *p_outfmt_end = p_outfmt + outfmt.size();
53
- tm tm_value = {};
53
+ tm tm_value;
54
+ memset(&tm_value, 0, sizeof(tm_value));
54
55
  for (int m=0; m < 12; m++) {
55
56
  tm_value.tm_mon = m;
56
57
  stringstream_type ss;
@@ -103,7 +104,8 @@ gather_weekday_strings(const std::locale& locale, bool short_strings=true)
103
104
  //grab the needed strings by using the locale to
104
105
  //output each month / weekday
105
106
  const charT* p_outfmt = outfmt.c_str(), *p_outfmt_end = p_outfmt + outfmt.size();
106
- tm tm_value = {};
107
+ tm tm_value;
108
+ memset(&tm_value, 0, sizeof(tm_value));
107
109
  for (int i=0; i < 7; i++) {
108
110
  tm_value.tm_wday = i;
109
111
  stringstream_type ss;
@@ -0,0 +1,19 @@
1
+ // Copyright (C) 2013 Vicente J. Botet Escriba
2
+ //
3
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
4
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
+
6
+
7
+ #if defined(BOOST_INTEL)
8
+
9
+ #pragma pop_macro("atomic_compare_exchange")
10
+ #pragma pop_macro("atomic_compare_exchange_explicit")
11
+ #pragma pop_macro("atomic_exchange")
12
+ #pragma pop_macro("atomic_exchange_explicit")
13
+ #pragma pop_macro("atomic_is_lock_free")
14
+ #pragma pop_macro("atomic_load")
15
+ #pragma pop_macro("atomic_load_explicit")
16
+ #pragma pop_macro("atomic_store")
17
+ #pragma pop_macro("atomic_store_explicit")
18
+
19
+ #endif // #if defined(BOOST_INTEL)
@@ -0,0 +1,39 @@
1
+ // Copyright (C) 2013 Vicente J. Botet Escriba
2
+ //
3
+ // Distributed under the Boost Software License, Version 1.0. (See accompanying
4
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
+
6
+
7
+ #if defined(BOOST_INTEL)
8
+
9
+ #pragma push_macro("atomic_compare_exchange")
10
+ #undef atomic_compare_exchange
11
+
12
+ #pragma push_macro("atomic_compare_exchange_explicit")
13
+ #undef atomic_compare_exchange_explicit
14
+
15
+ #pragma push_macro("atomic_exchange")
16
+ #undef atomic_exchange
17
+
18
+ #pragma push_macro("atomic_exchange_explicit")
19
+ #undef atomic_exchange_explicit
20
+
21
+ #pragma push_macro("atomic_is_lock_free")
22
+ #undef atomic_is_lock_free
23
+
24
+ #pragma push_macro("atomic_load")
25
+ #undef atomic_load
26
+
27
+ #pragma push_macro("atomic_load_explicit")
28
+ #undef atomic_load_explicit
29
+
30
+ #pragma push_macro("atomic_store")
31
+ #undef atomic_store
32
+
33
+ #pragma push_macro("atomic_store_explicit")
34
+ #undef atomic_store_explicit
35
+
36
+
37
+ #endif // #if defined(BOOST_INTEL)
38
+
39
+
@@ -28,10 +28,12 @@
28
28
  #ifndef BOOST_DETAIL_ENDIAN_HPP
29
29
  #define BOOST_DETAIL_ENDIAN_HPP
30
30
 
31
+ //
32
+ // Special cases come first:
33
+ //
34
+ #if defined (__GLIBC__)
31
35
  // GNU libc offers the helpful header <endian.h> which defines
32
36
  // __BYTE_ORDER
33
-
34
- #if defined (__GLIBC__)
35
37
  # include <endian.h>
36
38
  # if (__BYTE_ORDER == __LITTLE_ENDIAN)
37
39
  # define BOOST_LITTLE_ENDIAN
@@ -43,13 +45,56 @@
43
45
  # error Unknown machine endianness detected.
44
46
  # endif
45
47
  # define BOOST_BYTE_ORDER __BYTE_ORDER
48
+
49
+ #elif defined(__NetBSD__) || defined(__FreeBSD__) || \
50
+ defined(__OpenBSD__) || (__DragonFly__)
51
+ //
52
+ // BSD has endian.h, see https://svn.boost.org/trac/boost/ticket/6013
53
+ # if defined(__OpenBSD__)
54
+ # include <machine/endian.h>
55
+ # else
56
+ # include <sys/endian.h>
57
+ # endif
58
+ # if (_BYTE_ORDER == _LITTLE_ENDIAN)
59
+ # define BOOST_LITTLE_ENDIAN
60
+ # elif (_BYTE_ORDER == _BIG_ENDIAN)
61
+ # define BOOST_BIG_ENDIAN
62
+ # elif (_BYTE_ORDER == _PDP_ENDIAN)
63
+ # define BOOST_PDP_ENDIAN
64
+ # else
65
+ # error Unknown machine endianness detected.
66
+ # endif
67
+ # define BOOST_BYTE_ORDER _BYTE_ORDER
68
+
69
+ #elif defined( __ANDROID__ )
70
+ // Adroid specific code, see: https://svn.boost.org/trac/boost/ticket/7528
71
+ // Here we can use machine/_types.h, see:
72
+ // http://stackoverflow.com/questions/6212951/endianness-of-android-ndk
73
+ # include "machine/_types.h"
74
+ # ifdef __ARMEB__
75
+ # define BOOST_BIG_ENDIAN
76
+ # define BOOST_BYTE_ORDER 4321
77
+ # else
78
+ # define BOOST_LITTLE_ENDIAN
79
+ # define BOOST_BYTE_ORDER 1234
80
+ # endif // __ARMEB__
81
+
82
+ #elif defined( _XBOX )
83
+ //
84
+ // XBox is always big endian??
85
+ //
86
+ # define BOOST_BIG_ENDIAN
87
+ # define BOOST_BYTE_ORDER 4321
88
+
46
89
  #elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) || \
47
90
  defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) || \
91
+ defined(__BIGENDIAN__) && !defined(__LITTLEENDIAN__) || \
48
92
  defined(_STLP_BIG_ENDIAN) && !defined(_STLP_LITTLE_ENDIAN)
49
93
  # define BOOST_BIG_ENDIAN
50
94
  # define BOOST_BYTE_ORDER 4321
51
95
  #elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN) || \
52
96
  defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) || \
97
+ defined(__LITTLEENDIAN__) && !defined(__BIGENDIAN__) || \
53
98
  defined(_STLP_LITTLE_ENDIAN) && !defined(_STLP_BIG_ENDIAN)
54
99
  # define BOOST_LITTLE_ENDIAN
55
100
  # define BOOST_BYTE_ORDER 1234
@@ -57,7 +102,7 @@
57
102
  || defined(_POWER) || defined(__powerpc__) \
58
103
  || defined(__ppc__) || defined(__hpux) || defined(__hppa) \
59
104
  || defined(_MIPSEB) || defined(_POWER) \
60
- || defined(__s390__)
105
+ || defined(__s390__) || defined(__ARMEB__)
61
106
  # define BOOST_BIG_ENDIAN
62
107
  # define BOOST_BYTE_ORDER 4321
63
108
  #elif defined(__i386__) || defined(__alpha__) \
@@ -66,7 +111,9 @@
66
111
  || defined(_M_ALPHA) || defined(__amd64) \
67
112
  || defined(__amd64__) || defined(_M_AMD64) \
68
113
  || defined(__x86_64) || defined(__x86_64__) \
69
- || defined(_M_X64) || defined(__bfin__)
114
+ || defined(_M_X64) || defined(__bfin__) \
115
+ || defined(__ARMEL__) \
116
+ || (defined(_WIN32) && defined(__ARM__) && defined(_MSC_VER)) // ARM Windows CE don't define anything reasonably unique, but there are no big-endian Windows versions
70
117
 
71
118
  # define BOOST_LITTLE_ENDIAN
72
119
  # define BOOST_BYTE_ORDER 1234
@@ -76,3 +123,4 @@
76
123
 
77
124
 
78
125
  #endif
126
+