passenger 3.0.21 → 3.9.1.beta

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 (835) hide show
  1. data/DEVELOPERS.TXT +4 -10
  2. data/NEWS +19 -27
  3. data/Rakefile +20 -19
  4. data/bin/passenger +3 -2
  5. data/bin/passenger-config +35 -5
  6. data/bin/passenger-install-apache2-module +12 -12
  7. data/bin/passenger-install-nginx-module +55 -38
  8. data/bin/passenger-memory-stats +3 -1
  9. data/bin/passenger-status +7 -35
  10. data/build/agents.rb +107 -21
  11. data/build/apache2.rb +11 -46
  12. data/build/basics.rb +61 -9
  13. data/build/common_library.rb +59 -142
  14. data/build/cxx_tests.rb +111 -110
  15. data/build/documentation.rb +33 -0
  16. data/build/misc.rb +30 -12
  17. data/build/nginx.rb +10 -39
  18. data/build/oxt_tests.rb +1 -0
  19. data/build/ruby_extension.rb +1 -5
  20. data/build/test_basics.rb +3 -2
  21. data/dev/copy_boost_headers.rb +2 -1
  22. data/doc/Architectural overview.html +49 -90
  23. data/doc/DebuggingAndStressTesting.txt.md +49 -0
  24. data/doc/Packaging.txt.md +254 -0
  25. data/doc/Security of user switching support.html +35 -66
  26. data/doc/Users guide Apache.html +588 -758
  27. data/doc/Users guide Apache.idmap.txt +253 -136
  28. data/doc/Users guide Apache.txt +154 -109
  29. data/doc/Users guide Nginx.html +544 -660
  30. data/doc/Users guide Nginx.idmap.txt +179 -91
  31. data/doc/Users guide Nginx.txt +192 -118
  32. data/doc/Users guide Standalone.html +65 -48
  33. data/doc/Users guide Standalone.idmap.txt +10 -2
  34. data/doc/Users guide Standalone.txt +4 -0
  35. data/doc/images/glyphicons-halflings-white.png +0 -0
  36. data/doc/images/glyphicons-halflings.png +0 -0
  37. data/doc/images/phusion_banner_small.png +0 -0
  38. data/doc/images/{smart-lv2.png → smart.png} +0 -0
  39. data/doc/images/{smart-lv2.svg → smart.svg} +0 -0
  40. data/doc/templates/bootstrap.min.css +397 -0
  41. data/doc/templates/markdown.html.erb +117 -0
  42. data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +2 -1
  43. data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +26 -48
  44. data/doc/users_guide_snippets/passenger_spawn_method.txt +18 -30
  45. data/doc/users_guide_snippets/support_information.txt +30 -0
  46. data/ext/apache2/Bucket.cpp +9 -26
  47. data/ext/apache2/Bucket.h +13 -10
  48. data/ext/apache2/Configuration.cpp +70 -58
  49. data/ext/apache2/Configuration.hpp +19 -47
  50. data/ext/apache2/DirectoryMapper.h +7 -7
  51. data/ext/apache2/Hooks.cpp +150 -313
  52. data/ext/boost/algorithm/string/detail/case_conv.hpp +4 -2
  53. data/ext/boost/algorithm/string/detail/find_format.hpp +20 -20
  54. data/ext/boost/algorithm/string/detail/find_format_all.hpp +23 -23
  55. data/ext/boost/algorithm/string/detail/find_format_store.hpp +2 -2
  56. data/ext/boost/algorithm/string/detail/formatter.hpp +25 -0
  57. data/ext/boost/algorithm/string/formatter.hpp +20 -3
  58. data/ext/boost/assert.hpp +85 -4
  59. data/ext/boost/bind/bind.hpp +1 -1
  60. data/ext/boost/concept/detail/backward_compatibility.hpp +1 -1
  61. data/ext/boost/concept_check.hpp +140 -64
  62. data/ext/boost/config.hpp +1 -1
  63. data/ext/boost/config/auto_link.hpp +8 -6
  64. data/ext/boost/config/compiler/borland.hpp +12 -2
  65. data/ext/boost/config/compiler/clang.hpp +89 -30
  66. data/ext/boost/config/compiler/codegear.hpp +3 -2
  67. data/ext/boost/config/compiler/common_edg.hpp +7 -5
  68. data/ext/boost/config/compiler/cray.hpp +61 -0
  69. data/ext/boost/config/compiler/digitalmars.hpp +9 -1
  70. data/ext/boost/config/compiler/gcc.hpp +33 -24
  71. data/ext/boost/config/compiler/gcc_xml.hpp +4 -0
  72. data/ext/boost/config/compiler/hp_acc.hpp +12 -1
  73. data/ext/boost/config/compiler/intel.hpp +78 -4
  74. data/ext/boost/config/compiler/metrowerks.hpp +4 -1
  75. data/ext/boost/config/compiler/mpw.hpp +4 -1
  76. data/ext/boost/config/compiler/nvcc.hpp +8 -66
  77. data/ext/boost/config/compiler/pathscale.hpp +80 -0
  78. data/ext/boost/config/compiler/pgi.hpp +5 -5
  79. data/ext/boost/config/compiler/sunpro_cc.hpp +4 -1
  80. data/ext/boost/config/compiler/vacpp.hpp +37 -13
  81. data/ext/boost/config/compiler/visualc.hpp +24 -11
  82. data/ext/boost/config/platform/bsd.hpp +1 -1
  83. data/ext/boost/config/platform/cray.hpp +18 -0
  84. data/ext/boost/config/platform/cygwin.hpp +10 -0
  85. data/ext/boost/config/platform/linux.hpp +5 -0
  86. data/ext/boost/config/platform/macos.hpp +5 -4
  87. data/ext/boost/config/platform/symbian.hpp +5 -2
  88. data/ext/boost/config/platform/vms.hpp +25 -0
  89. data/ext/boost/config/platform/win32.hpp +7 -1
  90. data/ext/boost/config/select_compiler_config.hpp +8 -25
  91. data/ext/boost/config/select_platform_config.hpp +8 -1
  92. data/ext/boost/config/select_stdlib_config.hpp +9 -1
  93. data/ext/boost/config/stdlib/dinkumware.hpp +6 -9
  94. data/ext/boost/config/stdlib/libcomo.hpp +1 -4
  95. data/ext/boost/config/stdlib/libcpp.hpp +36 -0
  96. data/ext/boost/config/stdlib/libstdcpp3.hpp +37 -11
  97. data/ext/boost/config/stdlib/modena.hpp +1 -4
  98. data/ext/boost/config/stdlib/msl.hpp +1 -4
  99. data/ext/boost/config/stdlib/roguewave.hpp +9 -6
  100. data/ext/boost/config/stdlib/sgi.hpp +12 -4
  101. data/ext/boost/config/stdlib/stlport.hpp +11 -4
  102. data/ext/boost/config/stdlib/vacpp.hpp +11 -4
  103. data/ext/boost/config/suffix.hpp +71 -6
  104. data/ext/boost/config/warning_disable.hpp +1 -1
  105. data/ext/boost/container/container_fwd.hpp +177 -0
  106. data/ext/boost/cstdint.hpp +17 -12
  107. data/ext/boost/current_function.hpp +2 -1
  108. data/ext/boost/date_time/c_time.hpp +17 -1
  109. data/ext/boost/date_time/compiler_config.hpp +13 -15
  110. data/ext/boost/date_time/date_formatting.hpp +7 -1
  111. data/ext/boost/date_time/filetime_functions.hpp +4 -4
  112. data/ext/boost/date_time/gregorian_calendar.ipp +2 -2
  113. data/ext/boost/date_time/strings_from_facet.hpp +3 -3
  114. data/ext/boost/date_time/time_facet.hpp +101 -101
  115. data/ext/boost/detail/endian.hpp +4 -2
  116. data/ext/boost/detail/fenv.hpp +74 -0
  117. data/ext/boost/detail/sp_typeinfo.hpp +6 -0
  118. data/ext/boost/exception/detail/clone_current_exception.hpp +47 -0
  119. data/ext/boost/exception/detail/exception_ptr.hpp +194 -122
  120. data/ext/boost/exception/detail/type_info.hpp +3 -3
  121. data/ext/boost/exception/diagnostic_information.hpp +37 -21
  122. data/ext/boost/exception/exception.hpp +21 -1
  123. data/ext/boost/exception/info.hpp +0 -1
  124. data/ext/boost/function.hpp +2 -2
  125. data/ext/boost/function/function_base.hpp +15 -9
  126. data/ext/boost/function/function_template.hpp +26 -48
  127. data/ext/boost/integer_fwd.hpp +0 -16
  128. data/ext/boost/integer_traits.hpp +2 -2
  129. data/ext/boost/iterator.hpp +1 -1
  130. data/ext/boost/iterator/iterator_adaptor.hpp +1 -7
  131. data/ext/boost/iterator/iterator_facade.hpp +13 -13
  132. data/ext/boost/iterator/transform_iterator.hpp +5 -20
  133. data/ext/boost/lexical_cast.hpp +1655 -673
  134. data/ext/boost/math/policies/policy.hpp +982 -0
  135. data/ext/boost/math/special_functions/detail/fp_traits.hpp +570 -0
  136. data/ext/boost/math/special_functions/detail/round_fwd.hpp +80 -0
  137. data/ext/boost/math/special_functions/fpclassify.hpp +533 -0
  138. data/ext/boost/math/special_functions/math_fwd.hpp +1070 -0
  139. data/ext/boost/math/special_functions/sign.hpp +145 -0
  140. data/ext/boost/math/tools/config.hpp +321 -0
  141. data/ext/boost/math/tools/promotion.hpp +150 -0
  142. data/ext/boost/math/tools/real_cast.hpp +29 -0
  143. data/ext/boost/math/tools/user.hpp +97 -0
  144. data/ext/boost/move/move.hpp +1222 -0
  145. data/ext/boost/mpl/O1_size.hpp +40 -0
  146. data/ext/boost/mpl/O1_size_fwd.hpp +24 -0
  147. data/ext/boost/mpl/advance.hpp +76 -0
  148. data/ext/boost/mpl/advance_fwd.hpp +28 -0
  149. data/ext/boost/mpl/at.hpp +52 -0
  150. data/ext/boost/mpl/at_fwd.hpp +24 -0
  151. data/ext/boost/mpl/aux_/O1_size_impl.hpp +87 -0
  152. data/ext/boost/mpl/aux_/advance_backward.hpp +128 -0
  153. data/ext/boost/mpl/aux_/advance_forward.hpp +127 -0
  154. data/ext/boost/mpl/aux_/arithmetic_op.hpp +92 -0
  155. data/ext/boost/mpl/aux_/at_impl.hpp +45 -0
  156. data/ext/boost/mpl/aux_/begin_end_impl.hpp +101 -0
  157. data/ext/boost/mpl/aux_/clear_impl.hpp +35 -0
  158. data/ext/boost/mpl/aux_/comparison_op.hpp +83 -0
  159. data/ext/boost/mpl/aux_/config/forwarding.hpp +27 -0
  160. data/ext/boost/mpl/aux_/config/typeof.hpp +38 -0
  161. data/ext/boost/mpl/aux_/contains_impl.hpp +61 -0
  162. data/ext/boost/mpl/aux_/find_if_pred.hpp +31 -0
  163. data/ext/boost/mpl/aux_/fold_impl.hpp +43 -0
  164. data/ext/boost/mpl/aux_/has_begin.hpp +23 -0
  165. data/ext/boost/mpl/aux_/has_size.hpp +23 -0
  166. data/ext/boost/mpl/aux_/has_tag.hpp +23 -0
  167. data/ext/boost/mpl/aux_/inserter_algorithm.hpp +159 -0
  168. data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +64 -0
  169. data/ext/boost/mpl/aux_/iter_apply.hpp +47 -0
  170. data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +210 -0
  171. data/ext/boost/mpl/aux_/iter_fold_impl.hpp +42 -0
  172. data/ext/boost/mpl/aux_/lambda_spec.hpp +49 -0
  173. data/ext/boost/mpl/aux_/largest_int.hpp +63 -0
  174. data/ext/boost/mpl/aux_/msvc_eti_base.hpp +77 -0
  175. data/ext/boost/mpl/aux_/msvc_type.hpp +62 -0
  176. data/ext/boost/mpl/aux_/numeric_cast_utils.hpp +77 -0
  177. data/ext/boost/mpl/aux_/numeric_op.hpp +315 -0
  178. data/ext/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +97 -0
  179. data/ext/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +97 -0
  180. data/ext/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +94 -0
  181. data/ext/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +180 -0
  182. data/ext/boost/mpl/aux_/preprocessed/gcc/greater.hpp +94 -0
  183. data/ext/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +94 -0
  184. data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +133 -0
  185. data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +180 -0
  186. data/ext/boost/mpl/aux_/preprocessed/gcc/less.hpp +94 -0
  187. data/ext/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +94 -0
  188. data/ext/boost/mpl/aux_/preprocessed/gcc/list.hpp +323 -0
  189. data/ext/boost/mpl/aux_/preprocessed/gcc/minus.hpp +146 -0
  190. data/ext/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +94 -0
  191. data/ext/boost/mpl/aux_/preprocessed/gcc/plus.hpp +146 -0
  192. data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +231 -0
  193. data/ext/boost/mpl/aux_/preprocessed/gcc/times.hpp +146 -0
  194. data/ext/boost/mpl/aux_/preprocessed/gcc/vector.hpp +323 -0
  195. data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +67 -0
  196. data/ext/boost/mpl/aux_/push_back_impl.hpp +70 -0
  197. data/ext/boost/mpl/aux_/push_front_impl.hpp +71 -0
  198. data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +44 -0
  199. data/ext/boost/mpl/aux_/size_impl.hpp +52 -0
  200. data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +63 -0
  201. data/ext/boost/mpl/back_fwd.hpp +24 -0
  202. data/ext/boost/mpl/back_inserter.hpp +34 -0
  203. data/ext/boost/mpl/begin_end.hpp +57 -0
  204. data/ext/boost/mpl/begin_end_fwd.hpp +27 -0
  205. data/ext/boost/mpl/clear.hpp +39 -0
  206. data/ext/boost/mpl/clear_fwd.hpp +24 -0
  207. data/ext/boost/mpl/comparison.hpp +24 -0
  208. data/ext/boost/mpl/contains.hpp +41 -0
  209. data/ext/boost/mpl/contains_fwd.hpp +25 -0
  210. data/ext/boost/mpl/deref.hpp +41 -0
  211. data/ext/boost/mpl/distance.hpp +78 -0
  212. data/ext/boost/mpl/distance_fwd.hpp +28 -0
  213. data/ext/boost/mpl/empty_fwd.hpp +24 -0
  214. data/ext/boost/mpl/equal_to.hpp +21 -0
  215. data/ext/boost/mpl/find.hpp +38 -0
  216. data/ext/boost/mpl/find_if.hpp +50 -0
  217. data/ext/boost/mpl/fold.hpp +48 -0
  218. data/ext/boost/mpl/front_fwd.hpp +24 -0
  219. data/ext/boost/mpl/front_inserter.hpp +33 -0
  220. data/ext/boost/mpl/greater.hpp +21 -0
  221. data/ext/boost/mpl/greater_equal.hpp +21 -0
  222. data/ext/boost/mpl/inserter.hpp +32 -0
  223. data/ext/boost/mpl/iter_fold.hpp +49 -0
  224. data/ext/boost/mpl/iter_fold_if.hpp +117 -0
  225. data/ext/boost/mpl/iterator_range.hpp +42 -0
  226. data/ext/boost/mpl/iterator_tags.hpp +27 -0
  227. data/ext/boost/mpl/less.hpp +21 -0
  228. data/ext/boost/mpl/less_equal.hpp +21 -0
  229. data/ext/boost/mpl/limits/list.hpp +21 -0
  230. data/ext/boost/mpl/limits/vector.hpp +21 -0
  231. data/ext/boost/mpl/list.hpp +57 -0
  232. data/ext/boost/mpl/list/aux_/O1_size.hpp +33 -0
  233. data/ext/boost/mpl/list/aux_/begin_end.hpp +44 -0
  234. data/ext/boost/mpl/list/aux_/clear.hpp +34 -0
  235. data/ext/boost/mpl/list/aux_/empty.hpp +34 -0
  236. data/ext/boost/mpl/list/aux_/front.hpp +33 -0
  237. data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +35 -0
  238. data/ext/boost/mpl/list/aux_/item.hpp +55 -0
  239. data/ext/boost/mpl/list/aux_/iterator.hpp +76 -0
  240. data/ext/boost/mpl/list/aux_/pop_front.hpp +34 -0
  241. data/ext/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +149 -0
  242. data/ext/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +169 -0
  243. data/ext/boost/mpl/list/aux_/push_back.hpp +36 -0
  244. data/ext/boost/mpl/list/aux_/push_front.hpp +39 -0
  245. data/ext/boost/mpl/list/aux_/size.hpp +33 -0
  246. data/ext/boost/mpl/list/aux_/tag.hpp +24 -0
  247. data/ext/boost/mpl/list/list0.hpp +42 -0
  248. data/ext/boost/mpl/list/list10.hpp +43 -0
  249. data/ext/boost/mpl/list/list20.hpp +43 -0
  250. data/ext/boost/mpl/long.hpp +22 -0
  251. data/ext/boost/mpl/long_fwd.hpp +27 -0
  252. data/ext/boost/mpl/minus.hpp +21 -0
  253. data/ext/boost/mpl/multiplies.hpp +53 -0
  254. data/ext/boost/mpl/negate.hpp +81 -0
  255. data/ext/boost/mpl/not_equal_to.hpp +21 -0
  256. data/ext/boost/mpl/numeric_cast.hpp +41 -0
  257. data/ext/boost/mpl/pair.hpp +70 -0
  258. data/ext/boost/mpl/plus.hpp +21 -0
  259. data/ext/boost/mpl/pop_back_fwd.hpp +24 -0
  260. data/ext/boost/mpl/pop_front_fwd.hpp +24 -0
  261. data/ext/boost/mpl/prior.hpp +19 -0
  262. data/ext/boost/mpl/push_back.hpp +53 -0
  263. data/ext/boost/mpl/push_back_fwd.hpp +24 -0
  264. data/ext/boost/mpl/push_front.hpp +52 -0
  265. data/ext/boost/mpl/push_front_fwd.hpp +24 -0
  266. data/ext/boost/mpl/remove_if.hpp +83 -0
  267. data/ext/boost/mpl/reverse_fold.hpp +50 -0
  268. data/ext/boost/mpl/same_as.hpp +55 -0
  269. data/ext/boost/mpl/sequence_tag.hpp +124 -0
  270. data/ext/boost/mpl/sequence_tag_fwd.hpp +26 -0
  271. data/ext/boost/mpl/size.hpp +42 -0
  272. data/ext/boost/mpl/size_fwd.hpp +24 -0
  273. data/ext/boost/mpl/tag.hpp +52 -0
  274. data/ext/boost/mpl/times.hpp +21 -0
  275. data/ext/boost/mpl/vector.hpp +57 -0
  276. data/ext/boost/mpl/vector/aux_/O1_size.hpp +56 -0
  277. data/ext/boost/mpl/vector/aux_/at.hpp +116 -0
  278. data/ext/boost/mpl/vector/aux_/back.hpp +59 -0
  279. data/ext/boost/mpl/vector/aux_/begin_end.hpp +49 -0
  280. data/ext/boost/mpl/vector/aux_/clear.hpp +55 -0
  281. data/ext/boost/mpl/vector/aux_/empty.hpp +68 -0
  282. data/ext/boost/mpl/vector/aux_/front.hpp +56 -0
  283. data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +55 -0
  284. data/ext/boost/mpl/vector/aux_/item.hpp +103 -0
  285. data/ext/boost/mpl/vector/aux_/iterator.hpp +130 -0
  286. data/ext/boost/mpl/vector/aux_/pop_back.hpp +40 -0
  287. data/ext/boost/mpl/vector/aux_/pop_front.hpp +40 -0
  288. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +829 -0
  289. data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +1144 -0
  290. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +139 -0
  291. data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +159 -0
  292. data/ext/boost/mpl/vector/aux_/push_back.hpp +40 -0
  293. data/ext/boost/mpl/vector/aux_/push_front.hpp +40 -0
  294. data/ext/boost/mpl/vector/aux_/size.hpp +49 -0
  295. data/ext/boost/mpl/vector/aux_/tag.hpp +32 -0
  296. data/ext/boost/mpl/vector/aux_/vector0.hpp +52 -0
  297. data/ext/boost/mpl/vector/vector0.hpp +34 -0
  298. data/ext/boost/mpl/vector/vector10.hpp +45 -0
  299. data/ext/boost/mpl/vector/vector20.hpp +45 -0
  300. data/ext/boost/none.hpp +1 -1
  301. data/ext/boost/numeric/conversion/bounds.hpp +24 -0
  302. data/ext/boost/numeric/conversion/cast.hpp +61 -0
  303. data/ext/boost/numeric/conversion/conversion_traits.hpp +39 -0
  304. data/ext/boost/numeric/conversion/converter.hpp +68 -0
  305. data/ext/boost/numeric/conversion/converter_policies.hpp +186 -0
  306. data/ext/boost/numeric/conversion/detail/bounds.hpp +58 -0
  307. data/ext/boost/numeric/conversion/detail/conversion_traits.hpp +97 -0
  308. data/ext/boost/numeric/conversion/detail/converter.hpp +602 -0
  309. data/ext/boost/numeric/conversion/detail/int_float_mixture.hpp +72 -0
  310. data/ext/boost/numeric/conversion/detail/is_subranged.hpp +234 -0
  311. data/ext/boost/numeric/conversion/detail/meta.hpp +120 -0
  312. data/ext/boost/numeric/conversion/detail/numeric_cast_traits.hpp +138 -0
  313. data/ext/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp +1741 -0
  314. data/ext/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp +347 -0
  315. data/ext/boost/numeric/conversion/detail/sign_mixture.hpp +72 -0
  316. data/ext/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +69 -0
  317. data/ext/boost/numeric/conversion/int_float_mixture_enum.hpp +29 -0
  318. data/ext/boost/numeric/conversion/numeric_cast_traits.hpp +31 -0
  319. data/ext/boost/numeric/conversion/sign_mixture_enum.hpp +29 -0
  320. data/ext/boost/numeric/conversion/udt_builtin_mixture_enum.hpp +26 -0
  321. data/ext/boost/operators.hpp +3 -1
  322. data/ext/boost/optional/optional.hpp +146 -79
  323. data/ext/boost/optional/optional_fwd.hpp +8 -1
  324. data/ext/boost/preprocessor/cat.hpp +2 -2
  325. data/ext/boost/preprocessor/config/config.hpp +39 -4
  326. data/ext/boost/preprocessor/facilities/intercept.hpp +277 -0
  327. data/ext/boost/preprocessor/facilities/overload.hpp +25 -0
  328. data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +3 -3
  329. data/ext/boost/preprocessor/iteration/iterate.hpp +3 -3
  330. data/ext/boost/preprocessor/punctuation/paren.hpp +23 -0
  331. data/ext/boost/preprocessor/repetition/enum_shifted_params.hpp +44 -0
  332. data/ext/boost/preprocessor/seq/cat.hpp +5 -4
  333. data/ext/boost/preprocessor/seq/size.hpp +0 -1
  334. data/ext/boost/preprocessor/tuple/eat.hpp +83 -34
  335. data/ext/boost/preprocessor/tuple/elem.hpp +161 -355
  336. data/ext/boost/preprocessor/tuple/rem.hpp +110 -48
  337. data/ext/boost/preprocessor/tuple/to_list.hpp +90 -36
  338. data/ext/boost/preprocessor/variadic/elem.hpp +94 -0
  339. data/ext/boost/preprocessor/variadic/size.hpp +30 -0
  340. data/ext/boost/range/begin.hpp +17 -6
  341. data/ext/boost/range/concepts.hpp +37 -2
  342. data/ext/boost/range/detail/safe_bool.hpp +72 -0
  343. data/ext/boost/range/end.hpp +14 -9
  344. data/ext/boost/range/iterator_range_core.hpp +120 -12
  345. data/ext/boost/range/size.hpp +21 -5
  346. data/ext/boost/smart_ptr/detail/shared_count.hpp +88 -0
  347. data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +3 -0
  348. data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +142 -0
  349. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +9 -0
  350. data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +10 -2
  351. data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +5 -1
  352. data/ext/boost/smart_ptr/detail/spinlock.hpp +4 -1
  353. data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +20 -3
  354. data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +4 -0
  355. data/ext/boost/smart_ptr/make_shared.hpp +591 -22
  356. data/ext/boost/smart_ptr/shared_array.hpp +29 -1
  357. data/ext/boost/smart_ptr/shared_ptr.hpp +29 -13
  358. data/ext/boost/smart_ptr/weak_ptr.hpp +24 -12
  359. data/ext/boost/src/pthread/once.cpp +9 -7
  360. data/ext/boost/src/pthread/thread.cpp +32 -28
  361. data/ext/boost/src/pthread/timeconv.inl +4 -5
  362. data/ext/boost/src/tss_null.cpp +5 -1
  363. data/ext/boost/static_assert.hpp +8 -2
  364. data/ext/boost/thread/detail/config.hpp +19 -4
  365. data/ext/boost/thread/detail/move.hpp +11 -5
  366. data/ext/boost/thread/detail/thread.hpp +59 -43
  367. data/ext/boost/thread/exceptions.hpp +9 -9
  368. data/ext/boost/thread/future.hpp +150 -82
  369. data/ext/boost/thread/locks.hpp +101 -60
  370. data/ext/boost/thread/pthread/condition_variable.hpp +79 -32
  371. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +12 -3
  372. data/ext/boost/thread/pthread/mutex.hpp +17 -14
  373. data/ext/boost/thread/pthread/once.hpp +3 -4
  374. data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +12 -2
  375. data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -19
  376. data/ext/boost/thread/pthread/shared_mutex.hpp +13 -13
  377. data/ext/boost/thread/pthread/thread_data.hpp +40 -12
  378. data/ext/boost/thread/thread_time.hpp +5 -0
  379. data/ext/boost/throw_exception.hpp +1 -1
  380. data/ext/boost/token_functions.hpp +34 -10
  381. data/ext/boost/type_traits/add_rvalue_reference.hpp +66 -0
  382. data/ext/boost/type_traits/alignment_of.hpp +1 -1
  383. data/ext/boost/type_traits/detail/bool_trait_def.hpp +26 -3
  384. data/ext/boost/type_traits/detail/bool_trait_undef.hpp +3 -2
  385. data/ext/boost/type_traits/detail/cv_traits_impl.hpp +1 -1
  386. data/ext/boost/type_traits/detail/size_t_trait_def.hpp +6 -4
  387. data/ext/boost/type_traits/detail/type_trait_def.hpp +8 -2
  388. data/ext/boost/type_traits/function_traits.hpp +1 -1
  389. data/ext/boost/type_traits/has_nothrow_constructor.hpp +53 -0
  390. data/ext/boost/type_traits/has_nothrow_copy.hpp +19 -5
  391. data/ext/boost/type_traits/has_trivial_constructor.hpp +51 -0
  392. data/ext/boost/type_traits/has_trivial_copy.hpp +20 -5
  393. data/ext/boost/type_traits/has_trivial_destructor.hpp +12 -5
  394. data/ext/boost/type_traits/intrinsics.hpp +119 -71
  395. data/ext/boost/type_traits/is_const.hpp +5 -5
  396. data/ext/boost/type_traits/is_convertible.hpp +14 -13
  397. data/ext/boost/type_traits/is_enum.hpp +1 -1
  398. data/ext/boost/type_traits/is_floating_point.hpp +27 -0
  399. data/ext/boost/type_traits/is_function.hpp +3 -3
  400. data/ext/boost/type_traits/is_fundamental.hpp +1 -1
  401. data/ext/boost/type_traits/is_member_function_pointer.hpp +2 -2
  402. data/ext/boost/type_traits/is_member_pointer.hpp +2 -2
  403. data/ext/boost/type_traits/is_pod.hpp +11 -3
  404. data/ext/boost/type_traits/is_pointer.hpp +2 -2
  405. data/ext/boost/type_traits/is_signed.hpp +8 -3
  406. data/ext/boost/type_traits/is_union.hpp +8 -0
  407. data/ext/boost/type_traits/is_unsigned.hpp +9 -4
  408. data/ext/boost/type_traits/is_volatile.hpp +5 -5
  409. data/ext/boost/type_traits/remove_cv.hpp +4 -3
  410. data/ext/boost/type_traits/remove_pointer.hpp +51 -2
  411. data/ext/boost/type_traits/remove_reference.hpp +2 -2
  412. data/ext/boost/type_traits/type_with_alignment.hpp +8 -2
  413. data/ext/boost/utility/declval.hpp +44 -0
  414. data/ext/boost/utility/detail/in_place_factory_prefix.hpp +36 -0
  415. data/ext/boost/utility/detail/in_place_factory_suffix.hpp +23 -0
  416. data/ext/boost/utility/detail/result_of_iterate.hpp +142 -0
  417. data/ext/boost/utility/in_place_factory.hpp +88 -0
  418. data/ext/boost/utility/result_of.hpp +103 -0
  419. data/ext/boost/utility/swap.hpp +55 -0
  420. data/ext/common/AnsiColorConstants.h +36 -0
  421. data/ext/common/ApplicationPool2/Common.h +87 -0
  422. data/ext/common/ApplicationPool2/ComponentInfo.h +53 -0
  423. data/ext/common/ApplicationPool2/Group.h +648 -0
  424. data/ext/common/ApplicationPool2/Implementation.cpp +580 -0
  425. data/ext/common/ApplicationPool2/Options.h +576 -0
  426. data/ext/common/ApplicationPool2/PipeWatcher.h +61 -0
  427. data/ext/common/ApplicationPool2/Pool.h +1181 -0
  428. data/ext/common/ApplicationPool2/Process.h +425 -0
  429. data/ext/common/ApplicationPool2/README.md +96 -0
  430. data/ext/common/ApplicationPool2/Session.h +158 -0
  431. data/ext/common/ApplicationPool2/Socket.h +246 -0
  432. data/ext/common/ApplicationPool2/Spawner.h +2212 -0
  433. data/ext/common/ApplicationPool2/SuperGroup.h +749 -0
  434. data/ext/common/BackgroundEventLoop.cpp +129 -0
  435. data/ext/common/BackgroundEventLoop.h +61 -0
  436. data/ext/common/Constants.h +3 -1
  437. data/ext/common/EventedBufferedInput.h +331 -0
  438. data/ext/common/EventedMessageServer.h +17 -34
  439. data/ext/common/EventedServer.h +2 -2
  440. data/ext/common/Exceptions.h +71 -19
  441. data/ext/common/FileDescriptor.h +8 -6
  442. data/ext/common/HttpConstants.h +167 -0
  443. data/ext/common/IniFile.h +24 -0
  444. data/ext/common/Logging.h +62 -849
  445. data/ext/common/MessageReadersWriters.h +19 -0
  446. data/ext/common/MessageServer.h +11 -14
  447. data/ext/common/MultiLibeio.cpp +198 -0
  448. data/ext/common/MultiLibeio.h +67 -0
  449. data/ext/common/ResourceLocator.h +24 -41
  450. data/ext/common/SafeLibev.h +186 -14
  451. data/ext/common/StaticString.h +23 -3
  452. data/ext/common/UnionStation.h +972 -0
  453. data/ext/common/Utils.cpp +168 -24
  454. data/ext/common/Utils.h +25 -3
  455. data/ext/common/Utils/CachedFileStat.hpp +4 -3
  456. data/ext/common/Utils/FileChangeChecker.h +2 -2
  457. data/ext/common/Utils/HashMap.h +50 -0
  458. data/ext/common/Utils/IOUtils.cpp +229 -68
  459. data/ext/common/Utils/IOUtils.h +134 -3
  460. data/ext/common/Utils/Lock.h +28 -0
  461. data/ext/common/Utils/MemoryBarrier.h +52 -0
  462. data/ext/common/Utils/PriorityQueue.h +54 -0
  463. data/ext/common/Utils/ProcessMetricsCollector.h +9 -11
  464. data/ext/common/Utils/ScopeGuard.h +50 -1
  465. data/ext/common/Utils/SmallVector.h +653 -0
  466. data/ext/common/Utils/StrIntUtils.cpp +26 -2
  467. data/ext/common/Utils/StrIntUtils.h +18 -2
  468. data/ext/common/Utils/StringMap.h +125 -8
  469. data/ext/common/Utils/Template.h +212 -0
  470. data/ext/common/Utils/fib.c +699 -0
  471. data/ext/common/Utils/fib.h +101 -0
  472. data/ext/common/Utils/fibpriv.h +67 -0
  473. data/ext/common/Utils/json-forwards.h +249 -0
  474. data/ext/common/Utils/json.h +1855 -0
  475. data/ext/common/Utils/jsoncpp.cpp +4230 -0
  476. data/ext/common/agents/Base.cpp +1126 -0
  477. data/ext/common/{AgentBase.h → agents/Base.h} +5 -1
  478. data/ext/common/agents/EnvPrinter.c +16 -0
  479. data/ext/common/agents/HelperAgent/AgentOptions.h +81 -0
  480. data/ext/common/{HelperAgent → agents/HelperAgent}/BacktracesServer.h +3 -2
  481. data/ext/common/agents/HelperAgent/FileBackedPipe.h +732 -0
  482. data/ext/common/agents/HelperAgent/Main.cpp +497 -0
  483. data/ext/common/agents/HelperAgent/RequestHandler.cpp +283 -0
  484. data/ext/common/agents/HelperAgent/RequestHandler.h +2139 -0
  485. data/ext/common/agents/HelperAgent/ScgiRequestParser.h +451 -0
  486. data/ext/common/{LoggingAgent → agents/LoggingAgent}/DataStoreId.h +1 -1
  487. data/ext/common/{LoggingAgent → agents/LoggingAgent}/FilterSupport.cpp +1 -1
  488. data/ext/common/{LoggingAgent → agents/LoggingAgent}/FilterSupport.h +0 -0
  489. data/ext/common/{LoggingAgent → agents/LoggingAgent}/LoggingServer.h +18 -16
  490. data/ext/common/{LoggingAgent → agents/LoggingAgent}/Main.cpp +15 -13
  491. data/ext/common/{LoggingAgent → agents/LoggingAgent}/RemoteSender.h +6 -6
  492. data/ext/common/agents/SpawnPreparer.cpp +127 -0
  493. data/ext/common/{Watchdog.cpp → agents/Watchdog/Main.cpp} +63 -25
  494. data/ext/libeio/Changes +72 -0
  495. data/ext/{google/COPYING → libeio/LICENSE} +17 -9
  496. data/ext/libeio/Makefile.am +15 -0
  497. data/ext/libeio/Makefile.in +694 -0
  498. data/ext/libeio/aclocal.m4 +9418 -0
  499. data/ext/libeio/autogen.sh +3 -0
  500. data/ext/libeio/config.guess +1501 -0
  501. data/ext/libeio/config.h.in +136 -0
  502. data/ext/libeio/config.sub +1705 -0
  503. data/ext/libeio/configure +14822 -0
  504. data/ext/libeio/configure.ac +22 -0
  505. data/ext/libeio/demo.c +194 -0
  506. data/ext/libeio/ecb.h +457 -0
  507. data/ext/libeio/eio.c +2816 -0
  508. data/ext/libeio/eio.h +411 -0
  509. data/ext/libeio/install-sh +520 -0
  510. data/ext/libeio/libeio.m4 +211 -0
  511. data/ext/libeio/ltmain.sh +9636 -0
  512. data/ext/libeio/missing +376 -0
  513. data/ext/libeio/xthread.h +166 -0
  514. data/ext/libev/Changes +125 -7
  515. data/ext/libev/Makefile.am +5 -3
  516. data/ext/libev/Makefile.in +209 -120
  517. data/ext/libev/aclocal.m4 +6027 -4619
  518. data/ext/libev/autogen.sh +1 -4
  519. data/ext/libev/config.h.in +11 -7
  520. data/ext/libev/configure +7312 -14993
  521. data/ext/libev/configure.ac +12 -5
  522. data/ext/libev/depcomp +630 -0
  523. data/ext/libev/ev++.h +48 -32
  524. data/ext/libev/ev.c +1173 -391
  525. data/ext/libev/ev.h +315 -181
  526. data/ext/libev/ev_epoll.c +66 -15
  527. data/ext/libev/ev_kqueue.c +20 -18
  528. data/ext/libev/ev_poll.c +27 -23
  529. data/ext/libev/ev_port.c +39 -19
  530. data/ext/libev/ev_select.c +23 -17
  531. data/ext/libev/ev_vars.h +25 -8
  532. data/ext/libev/ev_win32.c +6 -6
  533. data/ext/libev/ev_wrap.h +22 -2
  534. data/ext/libev/event.c +18 -17
  535. data/ext/libev/event.h +16 -4
  536. data/ext/libev/libev.m4 +10 -6
  537. data/ext/libev/ltmain.sh +7353 -5811
  538. data/ext/nginx/Configuration.c +74 -42
  539. data/ext/nginx/Configuration.h +3 -5
  540. data/ext/nginx/ContentHandler.c +26 -83
  541. data/ext/nginx/ContentHandler.h +1 -1
  542. data/ext/nginx/config +13 -9
  543. data/ext/nginx/ngx_http_passenger_module.c +3 -7
  544. data/ext/oxt/detail/backtrace_enabled.hpp +5 -102
  545. data/ext/oxt/detail/context.hpp +90 -0
  546. data/ext/oxt/detail/spin_lock_darwin.hpp +4 -0
  547. data/ext/oxt/detail/spin_lock_gcc_x86.hpp +4 -0
  548. data/ext/oxt/detail/spin_lock_pthreads.hpp +14 -0
  549. data/ext/oxt/detail/tracable_exception_enabled.hpp +2 -2
  550. data/ext/oxt/dynamic_thread_group.hpp +27 -1
  551. data/ext/oxt/implementation.cpp +415 -0
  552. data/ext/oxt/{thread.cpp → initialize.hpp} +13 -6
  553. data/ext/oxt/macros.hpp +32 -1
  554. data/ext/oxt/spin_lock.hpp +6 -11
  555. data/ext/oxt/system_calls.cpp +204 -16
  556. data/ext/oxt/system_calls.hpp +85 -45
  557. data/ext/oxt/thread.hpp +13 -117
  558. data/ext/ruby/passenger_native_support.c +82 -237
  559. data/helper-scripts/backtrace-sanitizer.rb +114 -0
  560. data/helper-scripts/classic-rails-loader.rb +135 -0
  561. data/helper-scripts/classic-rails-preloader.rb +161 -0
  562. data/helper-scripts/node-loader.js +314 -0
  563. data/helper-scripts/rack-loader.rb +104 -0
  564. data/helper-scripts/rack-preloader.rb +132 -0
  565. data/helper-scripts/wsgi-loader.py +231 -0
  566. data/helper-scripts/wsgi-preloader.py +1 -0
  567. data/lib/phusion_passenger.rb +159 -61
  568. data/lib/phusion_passenger/abstract_installer.rb +182 -87
  569. data/lib/phusion_passenger/admin_tools/server_instance.rb +25 -19
  570. data/lib/phusion_passenger/analytics_logger.rb +5 -4
  571. data/lib/phusion_passenger/classic_rails/{request_handler.rb → thread_handler_extension.rb} +4 -40
  572. data/lib/phusion_passenger/classic_rails_extensions/init.rb +5 -3
  573. data/lib/phusion_passenger/common_library.rb +441 -0
  574. data/lib/phusion_passenger/console_text_template.rb +4 -16
  575. data/lib/phusion_passenger/constants.rb +1 -8
  576. data/lib/phusion_passenger/debug_logging.rb +5 -2
  577. data/lib/phusion_passenger/dependencies.rb +51 -13
  578. data/lib/phusion_passenger/loader_shared_helpers.rb +318 -0
  579. data/lib/phusion_passenger/message_channel.rb +3 -47
  580. data/lib/phusion_passenger/message_client.rb +2 -2
  581. data/lib/phusion_passenger/native_support.rb +36 -15
  582. data/lib/phusion_passenger/packaging.rb +8 -11
  583. data/lib/phusion_passenger/platform_info.rb +25 -17
  584. data/lib/phusion_passenger/platform_info/apache.rb +10 -7
  585. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +10 -30
  586. data/lib/phusion_passenger/platform_info/compiler.rb +93 -34
  587. data/lib/phusion_passenger/platform_info/ruby.rb +37 -97
  588. data/lib/phusion_passenger/preloader_shared_helpers.rb +121 -0
  589. data/lib/phusion_passenger/public_api.rb +1 -4
  590. data/lib/phusion_passenger/rack/{request_handler.rb → thread_handler_extension.rb} +14 -63
  591. data/lib/phusion_passenger/rails3_extensions/init.rb +9 -8
  592. data/lib/phusion_passenger/request_handler.rb +500 -0
  593. data/lib/phusion_passenger/request_handler/thread_handler.rb +360 -0
  594. data/lib/phusion_passenger/ruby_core_enhancements.rb +142 -0
  595. data/lib/phusion_passenger/standalone/command.rb +36 -15
  596. data/lib/phusion_passenger/standalone/package_runtime_command.rb +16 -8
  597. data/lib/phusion_passenger/standalone/runtime_installer.rb +169 -72
  598. data/lib/phusion_passenger/standalone/start_command.rb +44 -39
  599. data/lib/phusion_passenger/standalone/utils.rb +5 -5
  600. data/lib/phusion_passenger/utils.rb +35 -914
  601. data/lib/phusion_passenger/utils/ansi_colors.rb +59 -0
  602. data/lib/phusion_passenger/utils/file_system_watcher.rb +1 -1
  603. data/lib/phusion_passenger/utils/robust_interruption.rb +134 -0
  604. data/lib/phusion_passenger/utils/tee_input.rb +174 -0
  605. data/lib/phusion_passenger/utils/tmpio.rb +33 -0
  606. data/lib/phusion_passenger/utils/unseekable_socket.rb +6 -0
  607. data/resources/mime.types +5 -1
  608. data/{lib/phusion_passenger/templates → resources}/standalone_default_root/index.html +0 -0
  609. data/{lib/phusion_passenger → resources}/templates/apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb +0 -0
  610. data/{lib/phusion_passenger → resources}/templates/apache2/config_snippets.txt.erb +0 -0
  611. data/{lib/phusion_passenger → resources}/templates/apache2/deployment_example.txt.erb +0 -0
  612. data/{lib/phusion_passenger → resources}/templates/apache2/no_write_permission_to_passenger_root.txt.erb +0 -0
  613. data/{lib/phusion_passenger → resources}/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
  614. data/{lib/phusion_passenger → resources}/templates/apache2/run_installer_as_root.txt.erb +0 -0
  615. data/{lib/phusion_passenger → resources}/templates/apache2/welcome.txt.erb +0 -0
  616. data/{lib/phusion_passenger → resources}/templates/error_layout.css +6 -0
  617. data/resources/templates/error_layout.html.template +89 -0
  618. data/resources/templates/general_error.html.template +1 -0
  619. data/resources/templates/general_error_with_html.html.template +1 -0
  620. data/{lib/phusion_passenger → resources}/templates/nginx/ask_for_extra_configure_flags.txt.erb +0 -0
  621. data/{lib/phusion_passenger → resources}/templates/nginx/cannot_write_to_dir.txt.erb +0 -0
  622. data/{lib/phusion_passenger → resources}/templates/nginx/config_snippets.txt.erb +0 -0
  623. data/{lib/phusion_passenger → resources}/templates/nginx/config_snippets_inserted.txt.erb +0 -0
  624. data/{lib/phusion_passenger → resources}/templates/nginx/confirm_extra_configure_flags.txt.erb +0 -0
  625. data/{lib/phusion_passenger → resources}/templates/nginx/deployment_example.txt.erb +0 -0
  626. data/resources/templates/nginx/not_available_when_natively_packaged.txt.erb +8 -0
  627. data/{lib/phusion_passenger → resources}/templates/nginx/pcre_could_not_be_downloaded.txt.erb +0 -0
  628. data/{lib/phusion_passenger → resources}/templates/nginx/pcre_could_not_be_extracted.txt.erb +0 -0
  629. data/{lib/phusion_passenger → resources}/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
  630. data/{lib/phusion_passenger → resources}/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -0
  631. data/{lib/phusion_passenger → resources}/templates/nginx/query_download_and_install.txt.erb +0 -0
  632. data/{lib/phusion_passenger → resources}/templates/nginx/run_installer_as_root.txt.erb +0 -0
  633. data/{lib/phusion_passenger → resources}/templates/nginx/welcome.txt.erb +0 -0
  634. data/{lib/phusion_passenger → resources}/templates/standalone/cannot_write_to_dir.txt.erb +0 -0
  635. data/{lib/phusion_passenger → resources}/templates/standalone/config.erb +26 -5
  636. data/{lib/phusion_passenger → resources}/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -0
  637. data/{lib/phusion_passenger → resources}/templates/standalone/run_installer_as_root.txt.erb +0 -0
  638. data/{lib/phusion_passenger → resources}/templates/standalone/welcome.txt.erb +0 -0
  639. data/resources/templates/undisclosed_error.html.template +25 -0
  640. data/test/config.json.example +42 -0
  641. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +86 -0
  642. data/test/cxx/ApplicationPool2/OptionsTest.cpp +44 -0
  643. data/test/cxx/ApplicationPool2/PoolTest.cpp +1234 -0
  644. data/test/cxx/ApplicationPool2/ProcessTest.cpp +131 -0
  645. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +229 -0
  646. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +744 -0
  647. data/test/cxx/BufferedIOTest.cpp +7 -7
  648. data/test/cxx/CxxTestMain.cpp +65 -2
  649. data/test/cxx/FileBackedPipeTest.cpp +626 -0
  650. data/test/cxx/FileChangeCheckerTest.cpp +20 -18
  651. data/test/cxx/FilterSupportTest.cpp +5 -5
  652. data/test/cxx/IOUtilsTest.cpp +11 -4
  653. data/test/cxx/MessageReadersWritersTest.cpp +1 -1
  654. data/test/cxx/MessageServerTest.cpp +31 -30
  655. data/test/cxx/RequestHandlerTest.cpp +777 -0
  656. data/test/cxx/ScgiRequestParserTest.cpp +36 -16
  657. data/test/cxx/ServerInstanceDirTest.cpp +1 -1
  658. data/test/cxx/StringMapTest.cpp +61 -0
  659. data/test/cxx/TemplateTest.cpp +118 -0
  660. data/test/cxx/TestSupport.cpp +25 -68
  661. data/test/cxx/TestSupport.h +81 -41
  662. data/test/cxx/{LoggingTest.cpp → UnionStationTest.cpp} +79 -74
  663. data/test/cxx/UtilsTest.cpp +59 -5
  664. data/test/integration_tests/apache2_tests.rb +2 -2
  665. data/test/integration_tests/nginx_tests.rb +1 -1
  666. data/test/integration_tests/spec_helper.rb +7 -5
  667. data/test/oxt/oxt_test_main.cpp +2 -0
  668. data/test/oxt/syscall_interruption_test.cpp +1 -0
  669. data/test/ruby/classic_rails/loader_spec.rb +48 -0
  670. data/test/ruby/classic_rails/preloader_spec.rb +54 -0
  671. data/test/ruby/rack/loader_spec.rb +62 -0
  672. data/test/ruby/rack/preloader_spec.rb +74 -0
  673. data/test/ruby/{abstract_request_handler_spec.rb → request_handler_spec.rb} +31 -68
  674. data/test/ruby/shared/loader_spec.rb +241 -0
  675. data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +141 -182
  676. data/test/ruby/shared/ruby_loader_spec.rb +55 -0
  677. data/test/ruby/spec_helper.rb +8 -53
  678. data/test/ruby/utils/file_system_watcher_spec.rb +9 -1
  679. data/test/ruby/utils_spec.rb +10 -683
  680. data/test/stub/rack/config.ru +28 -3
  681. data/test/stub/rack/start.rb +47 -0
  682. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/Rakefile +0 -0
  683. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/application_controller.rb +0 -2
  684. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/bar_controller_1.rb +0 -0
  685. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/bar_controller_2.rb +0 -0
  686. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/foo_controller.rb +0 -0
  687. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/helpers/application_helper.rb +0 -0
  688. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/boot.rb +0 -0
  689. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/database.yml +3 -3
  690. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environment.rb +5 -2
  691. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/development.rb +0 -0
  692. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/production.rb +0 -0
  693. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/staging.rb +0 -0
  694. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/initializers/inflections.rb +0 -0
  695. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/initializers/mime_types.rb +0 -0
  696. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/routes.rb +1 -0
  697. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/about +0 -0
  698. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/console +0 -0
  699. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/dbconsole +0 -0
  700. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/destroy +0 -0
  701. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/generate +0 -0
  702. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/benchmarker +0 -0
  703. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/profiler +0 -0
  704. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/request +0 -0
  705. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/plugin +0 -0
  706. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/inspector +0 -0
  707. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/reaper +0 -0
  708. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/spawner +0 -0
  709. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/runner +0 -0
  710. data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/server +0 -0
  711. data/test/stub/{rails_apps/3.0/empty → rails3.0}/Gemfile +0 -0
  712. data/test/stub/rails3.0/Gemfile.lock +80 -0
  713. data/test/stub/{rails_apps/3.0/empty → rails3.0}/Rakefile +0 -0
  714. data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/controllers/application_controller.rb +0 -0
  715. data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/helpers/application_helper.rb +0 -0
  716. data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/views/layouts/application.html.erb +0 -0
  717. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config.ru +0 -0
  718. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/application.rb +0 -0
  719. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/boot.rb +0 -0
  720. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/database.yml +0 -0
  721. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environment.rb +0 -0
  722. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/development.rb +0 -0
  723. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/production.rb +0 -0
  724. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/test.rb +0 -0
  725. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/backtrace_silencers.rb +0 -0
  726. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/inflections.rb +0 -0
  727. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/mime_types.rb +0 -0
  728. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/passenger.rb +0 -0
  729. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/secret_token.rb +0 -0
  730. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/session_store.rb +0 -0
  731. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/locales/en.yml +0 -0
  732. data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/routes.rb +0 -0
  733. data/test/stub/{rails_apps/3.0/empty → rails3.0}/db/seeds.rb +0 -0
  734. data/test/stub/{rails_apps/3.0/empty → rails3.0}/doc/README_FOR_APP +0 -0
  735. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/404.html +0 -0
  736. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/422.html +0 -0
  737. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/500.html +0 -0
  738. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/favicon.ico +0 -0
  739. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/index.html +0 -0
  740. data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/robots.txt +0 -0
  741. data/test/stub/{rails_apps/3.0/empty → rails3.0}/script/rails +0 -0
  742. data/test/stub/{rails_apps/3.0/empty → rails3.0}/test/performance/browsing_test.rb +0 -0
  743. data/test/stub/{rails_apps/3.0/empty → rails3.0}/test/test_helper.rb +0 -0
  744. data/test/stub/start_error.pl +24 -0
  745. data/test/stub/wsgi/passenger_wsgi.py +71 -3
  746. data/test/support/apache2_controller.rb +2 -2
  747. data/test/support/placebo-preloader.rb +88 -0
  748. data/test/support/test_helper.rb +1 -14
  749. data/test/tut/tut.h +11 -4
  750. metadata +590 -326
  751. data.tar.gz.asc +0 -12
  752. data/PACKAGING.TXT +0 -25
  753. data/build/config.rb +0 -46
  754. data/ext/apache2/HelperAgent.cpp +0 -364
  755. data/ext/boost/call_traits.hpp +0 -24
  756. data/ext/boost/detail/call_traits.hpp +0 -164
  757. data/ext/common/AbstractSpawnManager.h +0 -110
  758. data/ext/common/AgentBase.cpp +0 -432
  759. data/ext/common/ApplicationPool/Client.h +0 -788
  760. data/ext/common/ApplicationPool/Interface.h +0 -295
  761. data/ext/common/ApplicationPool/Pool.h +0 -1327
  762. data/ext/common/ApplicationPool/Server.h +0 -479
  763. data/ext/common/MessageChannel.h +0 -494
  764. data/ext/common/PoolOptions.h +0 -518
  765. data/ext/common/Process.h +0 -253
  766. data/ext/common/Session.h +0 -436
  767. data/ext/common/SpawnManager.h +0 -611
  768. data/ext/google/ChangeLog +0 -167
  769. data/ext/google/dense_hash_map +0 -310
  770. data/ext/google/dense_hash_set +0 -287
  771. data/ext/google/sparse_hash_map +0 -294
  772. data/ext/google/sparse_hash_set +0 -275
  773. data/ext/google/sparsehash/densehashtable.h +0 -1062
  774. data/ext/google/sparsehash/sparseconfig.h +0 -55
  775. data/ext/google/sparsehash/sparsehashtable.h +0 -1015
  776. data/ext/google/sparsetable +0 -1468
  777. data/ext/google/type_traits.h +0 -250
  778. data/ext/nginx/HelperAgent.cpp +0 -1355
  779. data/ext/nginx/ScgiRequestParser.h +0 -375
  780. data/ext/oxt/backtrace.cpp +0 -185
  781. data/ext/oxt/tracable_exception.cpp +0 -89
  782. data/helper-scripts/passenger-spawn-server +0 -106
  783. data/lib/phusion_passenger/abstract_request_handler.rb +0 -766
  784. data/lib/phusion_passenger/abstract_server.rb +0 -372
  785. data/lib/phusion_passenger/abstract_server_collection.rb +0 -335
  786. data/lib/phusion_passenger/app_process.rb +0 -174
  787. data/lib/phusion_passenger/classic_rails/application_spawner.rb +0 -344
  788. data/lib/phusion_passenger/classic_rails/framework_spawner.rb +0 -311
  789. data/lib/phusion_passenger/exceptions.rb +0 -103
  790. data/lib/phusion_passenger/html_template.rb +0 -107
  791. data/lib/phusion_passenger/rack/application_spawner.rb +0 -231
  792. data/lib/phusion_passenger/spawn_manager.rb +0 -359
  793. data/lib/phusion_passenger/templates/app_exited_during_initialization.html.erb +0 -38
  794. data/lib/phusion_passenger/templates/app_init_error.html.erb +0 -64
  795. data/lib/phusion_passenger/templates/database_error.html.erb +0 -66
  796. data/lib/phusion_passenger/templates/error_layout.html.erb +0 -39
  797. data/lib/phusion_passenger/templates/framework_init_error.html.erb +0 -39
  798. data/lib/phusion_passenger/templates/general_error.html.erb +0 -22
  799. data/lib/phusion_passenger/templates/load_error.html.erb +0 -46
  800. data/lib/phusion_passenger/templates/version_not_found.html.erb +0 -34
  801. data/lib/phusion_passenger/utils/rewindable_input.rb +0 -125
  802. data/lib/phusion_passenger/wsgi/application_spawner.rb +0 -108
  803. data/test/config.yml.example +0 -41
  804. data/test/cxx/ApplicationPool_PoolTest.cpp +0 -33
  805. data/test/cxx/ApplicationPool_PoolTestCases.cpp +0 -1029
  806. data/test/cxx/ApplicationPool_ServerTest.cpp +0 -308
  807. data/test/cxx/ApplicationPool_Server_PoolTest.cpp +0 -80
  808. data/test/cxx/MessageChannelTest.cpp +0 -557
  809. data/test/cxx/PoolOptionsTest.cpp +0 -116
  810. data/test/cxx/SpawnManagerTest.cpp +0 -161
  811. data/test/ruby/abstract_server_collection_spec.rb +0 -247
  812. data/test/ruby/abstract_server_spec.rb +0 -61
  813. data/test/ruby/app_process_spec.rb +0 -43
  814. data/test/ruby/classic_rails/application_spawner_spec.rb +0 -89
  815. data/test/ruby/classic_rails/framework_spawner_spec.rb +0 -92
  816. data/test/ruby/rack/application_spawner_spec.rb +0 -116
  817. data/test/ruby/shared/abstract_server_spec.rb +0 -23
  818. data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +0 -38
  819. data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +0 -19
  820. data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +0 -15
  821. data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +0 -27
  822. data/test/ruby/shared/spawners/preloading_spawner_spec.rb +0 -29
  823. data/test/ruby/shared/spawners/reload_all_spec.rb +0 -36
  824. data/test/ruby/shared/spawners/reload_single_spec.rb +0 -52
  825. data/test/ruby/shared/spawners/spawn_server_spec.rb +0 -28
  826. data/test/ruby/shared/spawners/spawner_spec.rb +0 -273
  827. data/test/ruby/shared/utils/pseudo_io_spec.rb +0 -60
  828. data/test/ruby/spawn_manager_spec.rb +0 -134
  829. data/test/ruby/wsgi/application_spawner_spec.rb +0 -50
  830. data/test/stub/message_channel.rb +0 -11
  831. data/test/stub/message_channel_2.rb +0 -12
  832. data/test/stub/message_channel_3.rb +0 -19
  833. data/test/stub/rails_apps/3.0/empty/Gemfile.lock +0 -73
  834. data/test/stub/spawn_server.rb +0 -22
  835. metadata.gz.asc +0 -12
@@ -1,5 +1,123 @@
1
1
  Revision history for libev, a high-performance and full-featured event loop.
2
2
 
3
+ TODO: ev_loop_wakeup
4
+ TODO: EV_STANDALONE == NO_HASSEL (do not use clock_gettime in ev_standalone)
5
+
6
+ 4.11 Sat Feb 4 19:52:39 CET 2012
7
+ - INCOMPATIBLE CHANGE: ev_timer_again now clears the pending status, as
8
+ was documented already, but not implemented in the repeating case.
9
+ - new compiletime symbols: EV_NO_SMP and EV_NO_THREADS.
10
+ - fix a race where the workaround against the epoll fork bugs
11
+ caused signals to not be handled anymore.
12
+ - correct backend_fudge for most backends, and implement a windows
13
+ specific workaround to avoid looping because we call both
14
+ select and Sleep, both with different time resolutions.
15
+ - document range and guarantees of ev_sleep.
16
+ - document reasonable ranges for periodics interval and offset.
17
+ - rename backend_fudge to backend_mintime to avoid future confusion :)
18
+ - change the default periodic reschedule function to hopefully be more
19
+ exact and correct even in corner cases or in the far future.
20
+ - do not rely on -lm anymore: use it when available but use our
21
+ own floor () if it is missing. This should make it easier to embed,
22
+ as no external libraries are required.
23
+ - strategically import macros from libecb and mark rarely-used functions
24
+ as cache-cold (saving almost 2k code size on typical amd64 setups).
25
+ - add Symbols.ev and Symbols.event files, that were missing.
26
+ - fix backend_mintime value for epoll (was 1/1024, is 1/1000 now).
27
+ - fix #3 "be smart about timeouts" to not "deadlock" when
28
+ timeout == now, also improve the section overall.
29
+ - avoid "AVOIDING FINISHING BEFORE RETURNING" idiom.
30
+ - support new EV_API_STATIC mode to make all libev symbols
31
+ static.
32
+ - supply default CFLAGS of -g -O3 with gcc when original CFLAGS
33
+ were empty.
34
+
35
+ 4.04 Wed Feb 16 09:01:51 CET 2011
36
+ - fix two problems in the native win32 backend, where reuse of fd's
37
+ with different underlying handles caused handles not to be removed
38
+ or added to the select set (analyzed and tested by Bert Belder).
39
+ - do no rely on ceil() in ev_e?poll.c.
40
+ - backport libev to HP-UX versions before 11 v3.
41
+ - configure did not detect nanosleep and clock_gettime properly when
42
+ they are available in the libc (as opposed to -lrt).
43
+
44
+ 4.03 Tue Jan 11 14:37:25 CET 2011
45
+ - officially support polling files with all backends.
46
+ - support files, /dev/zero etc. the same way as select in the epoll
47
+ backend, by generating events on our own.
48
+ - ports backend: work around solaris bug 6874410 and many related ones
49
+ (EINTR, maybe more), with no performance loss (note that the solaris
50
+ bug report is actually wrong, reality is far more bizarre and broken
51
+ than that).
52
+ - define EV_READ/EV_WRITE as macros in event.h, as some programs use
53
+ #ifdef to test for them.
54
+ - new (experimental) function: ev_feed_signal.
55
+ - new (to become default) EVFLAG_NOSIGMASK flag.
56
+ - new EVBACKEND_MASK symbol.
57
+ - updated COMMON IDIOMS SECTION.
58
+
59
+ 4.01 Fri Nov 5 21:51:29 CET 2010
60
+ - automake fucked it up, apparently, --add-missing -f is not quite enough
61
+ to make it update its files, so 4.00 didn't install ev++.h and
62
+ event.h on make install. grrr.
63
+ - ev_loop(count|depth) didn't return anything (Robin Haberkorn).
64
+ - change EV_UNDEF to 0xffffffff to silence some overzealous compilers.
65
+ - use "(libev) " prefix for all libev error messages now.
66
+
67
+ 4.00 Mon Oct 25 12:32:12 CEST 2010
68
+ - "PORTING FROM LIBEV 3.X TO 4.X" (in ev.pod) is recommended reading.
69
+ - ev_embed_stop did not correctly stop the watcher (very good
70
+ testcase by Vladimir Timofeev).
71
+ - ev_run will now always update the current loop time - it erroneously
72
+ didn't when idle watchers were active, causing timers not to fire.
73
+ - fix a bug where a timeout of zero caused the timer not to fire
74
+ in the libevent emulation (testcase by Péter Szabó).
75
+ - applied win32 fixes by Michael Lenaghan (also James Mansion).
76
+ - replace EV_MINIMAL by EV_FEATURES.
77
+ - prefer EPOLL_CTL_ADD over EPOLL_CTL_MOD in some more cases, as it
78
+ seems the former is *much* faster than the latter.
79
+ - linux kernel version detection (for inotify bug workarounds)
80
+ did not work properly.
81
+ - reduce the number of spurious wake-ups with the ports backend.
82
+ - remove dependency on sys/queue.h on freebsd (patch by Vanilla Hsu).
83
+ - do async init within ev_async_start, not ev_async_set, which avoids
84
+ an API quirk where the set function must be called in the C++ API
85
+ even when there is nothing to set.
86
+ - add (undocumented) EV_ENABLE when adding events with kqueue,
87
+ this might help with OS X, which seems to need it despite documenting
88
+ not to need it (helpfully pointed out by Tilghman Lesher).
89
+ - do not use poll by default on freebsd, it's broken (what isn't
90
+ on freebsd...).
91
+ - allow to embed epoll on kernels >= 2.6.32.
92
+ - configure now prepends -O3, not appends it, so one can still
93
+ override it.
94
+ - ev.pod: greatly expanded the portability section, added a porting
95
+ section, a description of watcher states and made lots of minor fixes.
96
+ - disable poll backend on AIX, the poll header spams the namespace
97
+ and it's not worth working around dead platforms (reported
98
+ and analyzed by Aivars Kalvans).
99
+ - improve header file compatibility of the standalone eventfd code
100
+ in an obscure case.
101
+ - implement EV_AVOID_STDIO option.
102
+ - do not use sscanf to parse linux version number (smaller, faster,
103
+ no sscanf dependency).
104
+ - new EV_CHILD_ENABLE and EV_SIGNAL_ENABLE configurable settings.
105
+ - update libev.m4 HAVE_CLOCK_SYSCALL test for newer glibcs.
106
+ - add section on accept() problems to the manpage.
107
+ - rename EV_TIMEOUT to EV_TIMER.
108
+ - rename ev_loop_count/depth/verify/loop/unloop.
109
+ - remove ev_default_destroy and ev_default_fork.
110
+ - switch to two-digit minor version.
111
+ - work around an apparent gentoo compiler bug.
112
+ - define _DARWIN_UNLIMITED_SELECT. just so.
113
+ - use enum instead of #define for most constants.
114
+ - improve compatibility to older C++ compilers.
115
+ - (experimental) ev_run/ev_default_loop/ev_break/ev_loop_new have now
116
+ default arguments when compiled as C++.
117
+ - enable automake dependency tracking.
118
+ - ev_loop_new no longer leaks memory when loop creation failed.
119
+ - new ev_cleanup watcher type.
120
+
3
121
  3.9 Thu Dec 31 07:59:59 CET 2009
4
122
  - signalfd is no longer used by default and has to be requested
5
123
  explicitly - this means that easy to catch bugs become hard to
@@ -8,7 +126,7 @@ Revision history for libev, a high-performance and full-featured event loop.
8
126
  that this is a race condition regardless of EV_SIGNALFD.
9
127
  - backport inotify code to C89.
10
128
  - inotify file descriptors could leak into child processes.
11
- - ev_stat watchers could keep an errornous extra ref on the loop,
129
+ - ev_stat watchers could keep an erroneous extra ref on the loop,
12
130
  preventing exit when unregistering all watchers (testcases
13
131
  provided by ry@tinyclouds.org).
14
132
  - implement EV_WIN32_HANDLE_TO_FD and EV_WIN32_CLOSE_FD configuration
@@ -24,14 +142,14 @@ Revision history for libev, a high-performance and full-featured event loop.
24
142
  - add missing string.h include (Denis F. Latypoff).
25
143
  - only replace ev_stat.prev when we detect an actual difference,
26
144
  so prev is (almost) always different to attr. this might
27
- have caused the probems with 04_stat.t.
145
+ have caused the problems with 04_stat.t.
28
146
  - add ev::timer->remaining () method to C++ API.
29
147
 
30
148
  3.8 Sun Aug 9 14:30:45 CEST 2009
31
149
  - incompatible change: do not necessarily reset signal handler
32
150
  to SIG_DFL when a sighandler is stopped.
33
151
  - ev_default_destroy did not properly free or zero some members,
34
- potentially causing crashes and memory corruption on repated
152
+ potentially causing crashes and memory corruption on repeated
35
153
  ev_default_destroy/ev_default_loop calls.
36
154
  - take advantage of signalfd on GNU/Linux systems.
37
155
  - document that the signal mask might be in an unspecified
@@ -76,7 +194,7 @@ Revision history for libev, a high-performance and full-featured event loop.
76
194
  Malek Hadj-Ali).
77
195
  - implement ev_suspend and ev_resume.
78
196
  - new EV_CUSTOM revents flag for use by applications.
79
- - add documentation section about priorites.
197
+ - add documentation section about priorities.
80
198
  - add a glossary to the dcoumentation.
81
199
  - extend the ev_fork description slightly.
82
200
  - optimize a jump out of call_pending.
@@ -163,7 +281,7 @@ Revision history for libev, a high-performance and full-featured event loop.
163
281
  3.45 Tue Oct 21 21:59:26 CEST 2008
164
282
  - disable inotify usage on linux <2.6.25, as it is broken
165
283
  (reported by Yoann Vandoorselaere).
166
- - ev_stat errornously would try to add inotify watchers
284
+ - ev_stat erroneously would try to add inotify watchers
167
285
  even when inotify wasn't available (this should only
168
286
  have a performance impact).
169
287
  - ev_once now passes both timeout and io to the callback if both
@@ -241,10 +359,10 @@ Revision history for libev, a high-performance and full-featured event loop.
241
359
  not clearing revents field in ev_poll (Brandon Black)
242
360
  (no such systems are known at this time).
243
361
  - work around a bug in realloc on openbsd and darwin,
244
- also makes the errornous valgrind complaints
362
+ also makes the erroneous valgrind complaints
245
363
  go away (noted by various people).
246
364
  - fix ev_async_pending, add c++ wrapper for ev_async
247
- (based on patch sent by Johannes Deisenhofer.
365
+ (based on patch sent by Johannes Deisenhofer).
248
366
  - add sensible set method to ev::embed.
249
367
  - made integer constants type int in ev.h.
250
368
 
@@ -1,11 +1,11 @@
1
- AUTOMAKE_OPTIONS = foreign no-dependencies
1
+ AUTOMAKE_OPTIONS = foreign
2
2
 
3
- VERSION_INFO = 3:0
3
+ VERSION_INFO = 4:0:0
4
4
 
5
5
  EXTRA_DIST = LICENSE Changes libev.m4 autogen.sh \
6
6
  ev_vars.h ev_wrap.h \
7
7
  ev_epoll.c ev_select.c ev_poll.c ev_kqueue.c ev_port.c ev_win32.c \
8
- ev.3 ev.pod
8
+ ev.3 ev.pod Symbols.ev Symbols.event
9
9
 
10
10
  man_MANS = ev.3
11
11
 
@@ -16,3 +16,5 @@ lib_LTLIBRARIES = libev.la
16
16
  libev_la_SOURCES = ev.c event.c
17
17
  libev_la_LDFLAGS = -version-info $(VERSION_INFO)
18
18
 
19
+ ev.3: ev.pod
20
+ pod2man -n LIBEV -r "libev-$(VERSION)" -c "libev - high performance full featured event loop" -s3 <$< >$@
@@ -1,8 +1,9 @@
1
- # Makefile.in generated by automake 1.10.1 from Makefile.am.
1
+ # Makefile.in generated by automake 1.11.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
4
  # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
5
+ # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6
+ # Inc.
6
7
  # This Makefile.in is free software; the Free Software Foundation
7
8
  # gives unlimited permission to copy and/or distribute it,
8
9
  # with or without modifications, as long as this notice is preserved.
@@ -17,8 +18,9 @@
17
18
 
18
19
  VPATH = @srcdir@
19
20
  pkgdatadir = $(datadir)/@PACKAGE@
20
- pkglibdir = $(libdir)/@PACKAGE@
21
21
  pkgincludedir = $(includedir)/@PACKAGE@
22
+ pkglibdir = $(libdir)/@PACKAGE@
23
+ pkglibexecdir = $(libexecdir)/@PACKAGE@
22
24
  am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23
25
  install_sh_DATA = $(install_sh) -c -m 644
24
26
  install_sh_PROGRAM = $(install_sh) -c
@@ -37,7 +39,7 @@ subdir = .
37
39
  DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
38
40
  $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
39
41
  $(srcdir)/config.h.in $(top_srcdir)/configure config.guess \
40
- config.sub install-sh ltmain.sh missing mkinstalldirs
42
+ config.sub depcomp install-sh ltmain.sh missing mkinstalldirs
41
43
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42
44
  am__aclocal_m4_deps = $(top_srcdir)/libev.m4 \
43
45
  $(top_srcdir)/configure.ac
@@ -48,15 +50,30 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
48
50
  mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
49
51
  CONFIG_HEADER = config.h
50
52
  CONFIG_CLEAN_FILES =
53
+ CONFIG_CLEAN_VPATH_FILES =
51
54
  am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
52
55
  am__vpath_adj = case $$p in \
53
56
  $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
54
57
  *) f=$$p;; \
55
58
  esac;
56
- am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
59
+ am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
60
+ am__install_max = 40
61
+ am__nobase_strip_setup = \
62
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
63
+ am__nobase_strip = \
64
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
65
+ am__nobase_list = $(am__nobase_strip_setup); \
66
+ for p in $$list; do echo "$$p $$p"; done | \
67
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
68
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
69
+ if (++n[$$2] == $(am__install_max)) \
70
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
71
+ END { for (dir in files) print dir, files[dir] }'
72
+ am__base_list = \
73
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
74
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
57
75
  am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" \
58
76
  "$(DESTDIR)$(includedir)"
59
- libLTLIBRARIES_INSTALL = $(INSTALL)
60
77
  LTLIBRARIES = $(lib_LTLIBRARIES)
61
78
  libev_la_LIBADD =
62
79
  am_libev_la_OBJECTS = ev.lo event.lo
@@ -65,8 +82,9 @@ libev_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
65
82
  --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libev_la_LDFLAGS) \
66
83
  $(LDFLAGS) -o $@
67
84
  DEFAULT_INCLUDES = -I.@am__isrc@
68
- depcomp =
69
- am__depfiles_maybe =
85
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
86
+ am__depfiles_maybe = depfiles
87
+ am__mv = mv -f
70
88
  COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
71
89
  $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
72
90
  LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -81,7 +99,6 @@ DIST_SOURCES = $(libev_la_SOURCES)
81
99
  man3dir = $(mandir)/man3
82
100
  NROFF = nroff
83
101
  MANS = $(man_MANS)
84
- includeHEADERS_INSTALL = $(INSTALL_HEADER)
85
102
  HEADERS = $(include_HEADERS)
86
103
  ETAGS = etags
87
104
  CTAGS = ctags
@@ -89,9 +106,9 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
89
106
  distdir = $(PACKAGE)-$(VERSION)
90
107
  top_distdir = $(distdir)
91
108
  am__remove_distdir = \
92
- { test ! -d $(distdir) \
93
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
94
- && rm -fr $(distdir); }; }
109
+ { test ! -d "$(distdir)" \
110
+ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
111
+ && rm -fr "$(distdir)"; }; }
95
112
  DIST_ARCHIVES = $(distdir).tar.gz
96
113
  GZIP_ENV = --best
97
114
  distuninstallcheck_listfiles = find . -type f -print
@@ -108,44 +125,46 @@ CCDEPMODE = @CCDEPMODE@
108
125
  CFLAGS = @CFLAGS@
109
126
  CPP = @CPP@
110
127
  CPPFLAGS = @CPPFLAGS@
111
- CXX = @CXX@
112
- CXXCPP = @CXXCPP@
113
- CXXDEPMODE = @CXXDEPMODE@
114
- CXXFLAGS = @CXXFLAGS@
115
128
  CYGPATH_W = @CYGPATH_W@
116
129
  DEFS = @DEFS@
117
130
  DEPDIR = @DEPDIR@
118
131
  DSYMUTIL = @DSYMUTIL@
119
- ECHO = @ECHO@
132
+ DUMPBIN = @DUMPBIN@
120
133
  ECHO_C = @ECHO_C@
121
134
  ECHO_N = @ECHO_N@
122
135
  ECHO_T = @ECHO_T@
123
136
  EGREP = @EGREP@
124
137
  EXEEXT = @EXEEXT@
125
- F77 = @F77@
126
- FFLAGS = @FFLAGS@
138
+ FGREP = @FGREP@
127
139
  GREP = @GREP@
128
140
  INSTALL = @INSTALL@
129
141
  INSTALL_DATA = @INSTALL_DATA@
130
142
  INSTALL_PROGRAM = @INSTALL_PROGRAM@
131
143
  INSTALL_SCRIPT = @INSTALL_SCRIPT@
132
144
  INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
145
+ LD = @LD@
133
146
  LDFLAGS = @LDFLAGS@
134
147
  LIBOBJS = @LIBOBJS@
135
148
  LIBS = @LIBS@
136
149
  LIBTOOL = @LIBTOOL@
150
+ LIPO = @LIPO@
137
151
  LN_S = @LN_S@
138
152
  LTLIBOBJS = @LTLIBOBJS@
139
153
  MAINT = @MAINT@
140
154
  MAKEINFO = @MAKEINFO@
141
155
  MKDIR_P = @MKDIR_P@
156
+ NM = @NM@
142
157
  NMEDIT = @NMEDIT@
158
+ OBJDUMP = @OBJDUMP@
143
159
  OBJEXT = @OBJEXT@
160
+ OTOOL = @OTOOL@
161
+ OTOOL64 = @OTOOL64@
144
162
  PACKAGE = @PACKAGE@
145
163
  PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
146
164
  PACKAGE_NAME = @PACKAGE_NAME@
147
165
  PACKAGE_STRING = @PACKAGE_STRING@
148
166
  PACKAGE_TARNAME = @PACKAGE_TARNAME@
167
+ PACKAGE_URL = @PACKAGE_URL@
149
168
  PACKAGE_VERSION = @PACKAGE_VERSION@
150
169
  PATH_SEPARATOR = @PATH_SEPARATOR@
151
170
  RANLIB = @RANLIB@
@@ -159,8 +178,7 @@ abs_srcdir = @abs_srcdir@
159
178
  abs_top_builddir = @abs_top_builddir@
160
179
  abs_top_srcdir = @abs_top_srcdir@
161
180
  ac_ct_CC = @ac_ct_CC@
162
- ac_ct_CXX = @ac_ct_CXX@
163
- ac_ct_F77 = @ac_ct_F77@
181
+ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
164
182
  am__include = @am__include@
165
183
  am__leading_dot = @am__leading_dot@
166
184
  am__quote = @am__quote@
@@ -191,6 +209,7 @@ libdir = @libdir@
191
209
  libexecdir = @libexecdir@
192
210
  localedir = @localedir@
193
211
  localstatedir = @localstatedir@
212
+ lt_ECHO = @lt_ECHO@
194
213
  mandir = @mandir@
195
214
  mkdir_p = @mkdir_p@
196
215
  oldincludedir = @oldincludedir@
@@ -203,14 +222,15 @@ sharedstatedir = @sharedstatedir@
203
222
  srcdir = @srcdir@
204
223
  sysconfdir = @sysconfdir@
205
224
  target_alias = @target_alias@
225
+ top_build_prefix = @top_build_prefix@
206
226
  top_builddir = @top_builddir@
207
227
  top_srcdir = @top_srcdir@
208
- AUTOMAKE_OPTIONS = foreign no-dependencies
209
- VERSION_INFO = 3:0
228
+ AUTOMAKE_OPTIONS = foreign
229
+ VERSION_INFO = 4:0:0
210
230
  EXTRA_DIST = LICENSE Changes libev.m4 autogen.sh \
211
231
  ev_vars.h ev_wrap.h \
212
232
  ev_epoll.c ev_select.c ev_poll.c ev_kqueue.c ev_port.c ev_win32.c \
213
- ev.3 ev.pod
233
+ ev.3 ev.pod Symbols.ev Symbols.event
214
234
 
215
235
  man_MANS = ev.3
216
236
  include_HEADERS = ev.h ev++.h event.h
@@ -228,15 +248,15 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
228
248
  @for dep in $?; do \
229
249
  case '$(am__configure_deps)' in \
230
250
  *$$dep*) \
231
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
232
- cd $(srcdir) && $(AUTOMAKE) --foreign \
251
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
252
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
233
253
  && exit 0; \
234
254
  exit 1;; \
235
255
  esac; \
236
256
  done; \
237
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
238
- cd $(top_srcdir) && \
239
- $(AUTOMAKE) --foreign Makefile
257
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
258
+ $(am__cd) $(top_srcdir) && \
259
+ $(AUTOMAKE) --foreign Makefile
240
260
  .PRECIOUS: Makefile
241
261
  Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
242
262
  @case '$?' in \
@@ -252,9 +272,10 @@ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENC
252
272
  $(SHELL) ./config.status --recheck
253
273
 
254
274
  $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
255
- cd $(srcdir) && $(AUTOCONF)
275
+ $(am__cd) $(srcdir) && $(AUTOCONF)
256
276
  $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
257
- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
277
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
278
+ $(am__aclocal_m4_deps):
258
279
 
259
280
  config.h: stamp-h1
260
281
  @if test ! -f $@; then \
@@ -266,7 +287,7 @@ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
266
287
  @rm -f stamp-h1
267
288
  cd $(top_builddir) && $(SHELL) ./config.status config.h
268
289
  $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
269
- cd $(top_srcdir) && $(AUTOHEADER)
290
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
270
291
  rm -f stamp-h1
271
292
  touch $@
272
293
 
@@ -275,20 +296,24 @@ distclean-hdr:
275
296
  install-libLTLIBRARIES: $(lib_LTLIBRARIES)
276
297
  @$(NORMAL_INSTALL)
277
298
  test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
278
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
299
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
300
+ list2=; for p in $$list; do \
279
301
  if test -f $$p; then \
280
- f=$(am__strip_dir) \
281
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
282
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
302
+ list2="$$list2 $$p"; \
283
303
  else :; fi; \
284
- done
304
+ done; \
305
+ test -z "$$list2" || { \
306
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
307
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
308
+ }
285
309
 
286
310
  uninstall-libLTLIBRARIES:
287
311
  @$(NORMAL_UNINSTALL)
288
- @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
289
- p=$(am__strip_dir) \
290
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
291
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
312
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
313
+ for p in $$list; do \
314
+ $(am__strip_dir) \
315
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
316
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
292
317
  done
293
318
 
294
319
  clean-libLTLIBRARIES:
@@ -308,14 +333,29 @@ mostlyclean-compile:
308
333
  distclean-compile:
309
334
  -rm -f *.tab.c
310
335
 
336
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ev.Plo@am__quote@
337
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event.Plo@am__quote@
338
+
311
339
  .c.o:
312
- $(COMPILE) -c $<
340
+ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
341
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
342
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
343
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
344
+ @am__fastdepCC_FALSE@ $(COMPILE) -c $<
313
345
 
314
346
  .c.obj:
315
- $(COMPILE) -c `$(CYGPATH_W) '$<'`
347
+ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
348
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
349
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
350
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
351
+ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
316
352
 
317
353
  .c.lo:
318
- $(LTCOMPILE) -c -o $@ $<
354
+ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
355
+ @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
356
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
357
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
358
+ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
319
359
 
320
360
  mostlyclean-libtool:
321
361
  -rm -f *.lo
@@ -324,83 +364,79 @@ clean-libtool:
324
364
  -rm -rf .libs _libs
325
365
 
326
366
  distclean-libtool:
327
- -rm -f libtool
328
- install-man3: $(man3_MANS) $(man_MANS)
367
+ -rm -f libtool config.lt
368
+ install-man3: $(man_MANS)
329
369
  @$(NORMAL_INSTALL)
330
370
  test -z "$(man3dir)" || $(MKDIR_P) "$(DESTDIR)$(man3dir)"
331
- @list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
332
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
333
- for i in $$l2; do \
334
- case "$$i" in \
335
- *.3*) list="$$list $$i" ;; \
336
- esac; \
371
+ @list=''; test -n "$(man3dir)" || exit 0; \
372
+ { for i in $$list; do echo "$$i"; done; \
373
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
374
+ sed -n '/\.3[a-z]*$$/p'; \
375
+ } | while read p; do \
376
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
377
+ echo "$$d$$p"; echo "$$p"; \
378
+ done | \
379
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
380
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
381
+ sed 'N;N;s,\n, ,g' | { \
382
+ list=; while read file base inst; do \
383
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
384
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
385
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \
386
+ fi; \
337
387
  done; \
338
- for i in $$list; do \
339
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
340
- else file=$$i; fi; \
341
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
342
- case "$$ext" in \
343
- 3*) ;; \
344
- *) ext='3' ;; \
345
- esac; \
346
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
347
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
348
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
349
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
350
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst"; \
351
- done
388
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
389
+ while read files; do \
390
+ test -z "$$files" || { \
391
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \
392
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \
393
+ done; }
394
+
352
395
  uninstall-man3:
353
396
  @$(NORMAL_UNINSTALL)
354
- @list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
355
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
356
- for i in $$l2; do \
357
- case "$$i" in \
358
- *.3*) list="$$list $$i" ;; \
359
- esac; \
360
- done; \
361
- for i in $$list; do \
362
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
363
- case "$$ext" in \
364
- 3*) ;; \
365
- *) ext='3' ;; \
366
- esac; \
367
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
368
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
369
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
370
- echo " rm -f '$(DESTDIR)$(man3dir)/$$inst'"; \
371
- rm -f "$(DESTDIR)$(man3dir)/$$inst"; \
372
- done
397
+ @list=''; test -n "$(man3dir)" || exit 0; \
398
+ files=`{ for i in $$list; do echo "$$i"; done; \
399
+ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
400
+ sed -n '/\.3[a-z]*$$/p'; \
401
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
402
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
403
+ test -z "$$files" || { \
404
+ echo " ( cd '$(DESTDIR)$(man3dir)' && rm -f" $$files ")"; \
405
+ cd "$(DESTDIR)$(man3dir)" && rm -f $$files; }
373
406
  install-includeHEADERS: $(include_HEADERS)
374
407
  @$(NORMAL_INSTALL)
375
408
  test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
376
- @list='$(include_HEADERS)'; for p in $$list; do \
409
+ @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
410
+ for p in $$list; do \
377
411
  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
378
- f=$(am__strip_dir) \
379
- echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
380
- $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
412
+ echo "$$d$$p"; \
413
+ done | $(am__base_list) | \
414
+ while read files; do \
415
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
416
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
381
417
  done
382
418
 
383
419
  uninstall-includeHEADERS:
384
420
  @$(NORMAL_UNINSTALL)
385
- @list='$(include_HEADERS)'; for p in $$list; do \
386
- f=$(am__strip_dir) \
387
- echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
388
- rm -f "$(DESTDIR)$(includedir)/$$f"; \
389
- done
421
+ @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
422
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
423
+ test -n "$$files" || exit 0; \
424
+ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
425
+ cd "$(DESTDIR)$(includedir)" && rm -f $$files
390
426
 
391
427
  ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
392
428
  list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
393
429
  unique=`for i in $$list; do \
394
430
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
395
431
  done | \
396
- $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
432
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
397
433
  END { if (nonempty) { for (i in files) print i; }; }'`; \
398
434
  mkid -fID $$unique
399
435
  tags: TAGS
400
436
 
401
437
  TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
402
438
  $(TAGS_FILES) $(LISP)
403
- tags=; \
439
+ set x; \
404
440
  here=`pwd`; \
405
441
  list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
406
442
  unique=`for i in $$list; do \
@@ -408,36 +444,54 @@ TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
408
444
  done | \
409
445
  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
410
446
  END { if (nonempty) { for (i in files) print i; }; }'`; \
411
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
447
+ shift; \
448
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
412
449
  test -n "$$unique" || unique=$$empty_fix; \
413
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
414
- $$tags $$unique; \
450
+ if test $$# -gt 0; then \
451
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
452
+ "$$@" $$unique; \
453
+ else \
454
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
455
+ $$unique; \
456
+ fi; \
415
457
  fi
416
458
  ctags: CTAGS
417
459
  CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
418
460
  $(TAGS_FILES) $(LISP)
419
- tags=; \
420
461
  list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
421
462
  unique=`for i in $$list; do \
422
463
  if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
423
464
  done | \
424
465
  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
425
466
  END { if (nonempty) { for (i in files) print i; }; }'`; \
426
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
467
+ test -z "$(CTAGS_ARGS)$$unique" \
427
468
  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
428
- $$tags $$unique
469
+ $$unique
429
470
 
430
471
  GTAGS:
431
472
  here=`$(am__cd) $(top_builddir) && pwd` \
432
- && cd $(top_srcdir) \
433
- && gtags -i $(GTAGS_ARGS) $$here
473
+ && $(am__cd) $(top_srcdir) \
474
+ && gtags -i $(GTAGS_ARGS) "$$here"
434
475
 
435
476
  distclean-tags:
436
477
  -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
437
478
 
438
479
  distdir: $(DISTFILES)
480
+ @list='$(MANS)'; if test -n "$$list"; then \
481
+ list=`for p in $$list; do \
482
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
483
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
484
+ if test -n "$$list" && \
485
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
486
+ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
487
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
488
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
489
+ echo " typically \`make maintainer-clean' will remove them" >&2; \
490
+ exit 1; \
491
+ else :; fi; \
492
+ else :; fi
439
493
  $(am__remove_distdir)
440
- test -d $(distdir) || mkdir $(distdir)
494
+ test -d "$(distdir)" || mkdir "$(distdir)"
441
495
  @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
442
496
  topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
443
497
  list='$(DISTFILES)'; \
@@ -453,21 +507,27 @@ distdir: $(DISTFILES)
453
507
  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
454
508
  if test -d $$d/$$file; then \
455
509
  dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
510
+ if test -d "$(distdir)/$$file"; then \
511
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
512
+ fi; \
456
513
  if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
457
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
514
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
515
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
458
516
  fi; \
459
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
517
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
460
518
  else \
461
- test -f $(distdir)/$$file \
462
- || cp -p $$d/$$file $(distdir)/$$file \
519
+ test -f "$(distdir)/$$file" \
520
+ || cp -p $$d/$$file "$(distdir)/$$file" \
463
521
  || exit 1; \
464
522
  fi; \
465
523
  done
466
- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
524
+ -test -n "$(am__skip_mode_fix)" \
525
+ || find "$(distdir)" -type d ! -perm -755 \
526
+ -exec chmod u+rwx,go+rx {} \; -o \
467
527
  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
468
528
  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
469
529
  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
470
- || chmod -R a+r $(distdir)
530
+ || chmod -R a+r "$(distdir)"
471
531
  dist-gzip: distdir
472
532
  tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
473
533
  $(am__remove_distdir)
@@ -480,6 +540,10 @@ dist-lzma: distdir
480
540
  tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
481
541
  $(am__remove_distdir)
482
542
 
543
+ dist-xz: distdir
544
+ tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
545
+ $(am__remove_distdir)
546
+
483
547
  dist-tarZ: distdir
484
548
  tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
485
549
  $(am__remove_distdir)
@@ -503,15 +567,17 @@ dist dist-all: distdir
503
567
  distcheck: dist
504
568
  case '$(DIST_ARCHIVES)' in \
505
569
  *.tar.gz*) \
506
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
570
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
507
571
  *.tar.bz2*) \
508
- bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
572
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
509
573
  *.tar.lzma*) \
510
- unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
574
+ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
575
+ *.tar.xz*) \
576
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
511
577
  *.tar.Z*) \
512
578
  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
513
579
  *.shar.gz*) \
514
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
580
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
515
581
  *.zip*) \
516
582
  unzip $(distdir).zip ;;\
517
583
  esac
@@ -519,9 +585,11 @@ distcheck: dist
519
585
  mkdir $(distdir)/_build
520
586
  mkdir $(distdir)/_inst
521
587
  chmod a-w $(distdir)
588
+ test -d $(distdir)/_build || exit 0; \
522
589
  dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
523
590
  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
524
- && cd $(distdir)/_build \
591
+ && am__cwd=`pwd` \
592
+ && $(am__cd) $(distdir)/_build \
525
593
  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
526
594
  $(DISTCHECK_CONFIGURE_FLAGS) \
527
595
  && $(MAKE) $(AM_MAKEFLAGS) \
@@ -543,13 +611,15 @@ distcheck: dist
543
611
  && rm -rf "$$dc_destdir" \
544
612
  && $(MAKE) $(AM_MAKEFLAGS) dist \
545
613
  && rm -rf $(DIST_ARCHIVES) \
546
- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
614
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
615
+ && cd "$$am__cwd" \
616
+ || exit 1
547
617
  $(am__remove_distdir)
548
618
  @(echo "$(distdir) archives ready for distribution: "; \
549
619
  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
550
620
  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
551
621
  distuninstallcheck:
552
- @cd $(distuninstallcheck_dir) \
622
+ @$(am__cd) '$(distuninstallcheck_dir)' \
553
623
  && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
554
624
  || { echo "ERROR: files left after uninstall:" ; \
555
625
  if test -n "$(DESTDIR)"; then \
@@ -593,6 +663,7 @@ clean-generic:
593
663
 
594
664
  distclean-generic:
595
665
  -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
666
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
596
667
 
597
668
  maintainer-clean-generic:
598
669
  @echo "This command is intended for maintainers to use"
@@ -604,6 +675,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
604
675
 
605
676
  distclean: distclean-am
606
677
  -rm -f $(am__CONFIG_DISTCLEAN_FILES)
678
+ -rm -rf ./$(DEPDIR)
607
679
  -rm -f Makefile
608
680
  distclean-am: clean-am distclean-compile distclean-generic \
609
681
  distclean-hdr distclean-libtool distclean-tags
@@ -614,6 +686,8 @@ dvi-am:
614
686
 
615
687
  html: html-am
616
688
 
689
+ html-am:
690
+
617
691
  info: info-am
618
692
 
619
693
  info-am:
@@ -622,23 +696,34 @@ install-data-am: install-includeHEADERS install-man
622
696
 
623
697
  install-dvi: install-dvi-am
624
698
 
699
+ install-dvi-am:
700
+
625
701
  install-exec-am: install-libLTLIBRARIES
626
702
 
627
703
  install-html: install-html-am
628
704
 
705
+ install-html-am:
706
+
629
707
  install-info: install-info-am
630
708
 
709
+ install-info-am:
710
+
631
711
  install-man: install-man3
632
712
 
633
713
  install-pdf: install-pdf-am
634
714
 
715
+ install-pdf-am:
716
+
635
717
  install-ps: install-ps-am
636
718
 
719
+ install-ps-am:
720
+
637
721
  installcheck-am:
638
722
 
639
723
  maintainer-clean: maintainer-clean-am
640
724
  -rm -f $(am__CONFIG_DISTCLEAN_FILES)
641
725
  -rm -rf $(top_srcdir)/autom4te.cache
726
+ -rm -rf ./$(DEPDIR)
642
727
  -rm -f Makefile
643
728
  maintainer-clean-am: distclean-am maintainer-clean-generic
644
729
 
@@ -660,12 +745,12 @@ uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \
660
745
 
661
746
  uninstall-man: uninstall-man3
662
747
 
663
- .MAKE: install-am install-strip
748
+ .MAKE: all install-am install-strip
664
749
 
665
750
  .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
666
751
  clean-generic clean-libLTLIBRARIES clean-libtool ctags dist \
667
752
  dist-all dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ \
668
- dist-zip distcheck distclean distclean-compile \
753
+ dist-xz dist-zip distcheck distclean distclean-compile \
669
754
  distclean-generic distclean-hdr distclean-libtool \
670
755
  distclean-tags distcleancheck distdir distuninstallcheck dvi \
671
756
  dvi-am html html-am info info-am install install-am \
@@ -680,6 +765,10 @@ uninstall-man: uninstall-man3
680
765
  tags uninstall uninstall-am uninstall-includeHEADERS \
681
766
  uninstall-libLTLIBRARIES uninstall-man uninstall-man3
682
767
 
768
+
769
+ ev.3: ev.pod
770
+ pod2man -n LIBEV -r "libev-$(VERSION)" -c "libev - high performance full featured event loop" -s3 <$< >$@
771
+
683
772
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
684
773
  # Otherwise a system limit (for SysV at least) may be exceeded.
685
774
  .NOEXPORT: