passenger 3.0.0 → 3.0.1

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 (538) hide show
  1. data/DEVELOPERS.TXT +9 -6
  2. data/NEWS +50 -0
  3. data/Rakefile +2 -1
  4. data/bin/passenger-install-apache2-module +4 -4
  5. data/bin/passenger-install-nginx-module +1 -1
  6. data/bin/passenger-make-enterprisey +1 -1
  7. data/build/agents.rb +26 -19
  8. data/build/apache2.rb +49 -46
  9. data/build/basics.rb +37 -13
  10. data/build/common_library.rb +134 -64
  11. data/build/config.rb +18 -11
  12. data/build/cplusplus_support.rb +4 -0
  13. data/build/cxx_tests.rb +26 -12
  14. data/build/documentation.rb +18 -11
  15. data/build/integration_tests.rb +18 -11
  16. data/build/misc.rb +18 -11
  17. data/build/nginx.rb +27 -19
  18. data/build/oxt_tests.rb +18 -11
  19. data/build/packaging.rb +45 -37
  20. data/build/rpm.rb +98 -0
  21. data/build/ruby_extension.rb +19 -13
  22. data/build/ruby_tests.rb +19 -12
  23. data/build/test_basics.rb +23 -11
  24. data/debian/README.Debian +15 -0
  25. data/debian/changelog +185 -0
  26. data/debian/control +47 -19
  27. data/debian/copyright +20 -0
  28. data/debian/libapache2-mod-passenger.install +1 -0
  29. data/debian/libapache2-mod-passenger.postinst +36 -0
  30. data/debian/libapache2-mod-passenger.prerm +15 -0
  31. data/debian/passenger-common.install +4 -0
  32. data/debian/passenger.conf +4 -0
  33. data/debian/passenger.load +1 -0
  34. data/debian/rules +37 -0
  35. data/debian/watch +3 -0
  36. data/{misc → dev}/copy_boost_headers.rb +3 -0
  37. data/{misc → dev}/find_owner_pipe_leaks.rb +0 -0
  38. data/{misc → dev}/render_error_pages.rb +0 -0
  39. data/doc/Users guide Apache.html +39 -1
  40. data/doc/Users guide Apache.txt +40 -0
  41. data/doc/Users guide Nginx.html +1 -1
  42. data/doc/Users guide Standalone.html +1 -1
  43. data/doc/cxxapi/Constants_8h_source.html +1 -1
  44. data/doc/cxxapi/DirectoryMapper_8h_source.html +6 -22
  45. data/doc/cxxapi/EventedClient_8h_source.html +572 -468
  46. data/doc/cxxapi/Exceptions_8h_source.html +142 -129
  47. data/doc/cxxapi/FileDescriptor_8h_source.html +263 -199
  48. data/doc/cxxapi/MessageChannel_8h_source.html +686 -770
  49. data/doc/cxxapi/MessageServer_8h_source.html +1 -1
  50. data/doc/cxxapi/PoolOptions_8h_source.html +79 -78
  51. data/doc/cxxapi/ResourceLocator_8h_source.html +105 -55
  52. data/doc/cxxapi/SafeLibev_8h_source.html +180 -0
  53. data/doc/cxxapi/ServerInstanceDir_8h_source.html +114 -110
  54. data/doc/cxxapi/Session_8h_source.html +1 -1
  55. data/doc/cxxapi/SpawnManager_8h_source.html +208 -208
  56. data/doc/cxxapi/StaticString_8h_source.html +258 -183
  57. data/doc/cxxapi/Utils_8h_source.html +71 -54
  58. data/doc/cxxapi/annotated.html +3 -0
  59. data/doc/cxxapi/classAgentWatcher.html +2 -2
  60. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +0 -1
  61. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +0 -27
  62. data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +5 -0
  63. data/doc/cxxapi/classPassenger_1_1EventedClient.html +102 -7
  64. data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +2 -1
  65. data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +34 -8
  66. data/doc/cxxapi/classPassenger_1_1FileDescriptorPair-members.html +36 -0
  67. data/doc/cxxapi/classPassenger_1_1FileDescriptorPair.html +52 -0
  68. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +0 -3
  69. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +0 -120
  70. data/doc/cxxapi/classPassenger_1_1SafeLibev-members.html +36 -0
  71. data/doc/cxxapi/classPassenger_1_1SafeLibev.html +51 -0
  72. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +1 -0
  73. data/doc/cxxapi/classPassenger_1_1SpawnException.html +22 -0
  74. data/doc/cxxapi/classes.html +14 -14
  75. data/doc/cxxapi/files.html +2 -0
  76. data/doc/cxxapi/functions_0x63.html +6 -3
  77. data/doc/cxxapi/functions_0x64.html +9 -2
  78. data/doc/cxxapi/functions_0x67.html +6 -9
  79. data/doc/cxxapi/functions_0x69.html +3 -0
  80. data/doc/cxxapi/functions_0x77.html +8 -8
  81. data/doc/cxxapi/functions_eval.html +6 -0
  82. data/doc/cxxapi/functions_func.html +18 -17
  83. data/doc/cxxapi/functions_vars.html +8 -0
  84. data/doc/cxxapi/graph_legend.png +0 -0
  85. data/doc/cxxapi/group__Core.png +0 -0
  86. data/doc/cxxapi/group__Hooks.png +0 -0
  87. data/doc/cxxapi/hierarchy.html +3 -0
  88. data/doc/cxxapi/inherit__graph__14.map +1 -1
  89. data/doc/cxxapi/inherit__graph__14.md5 +1 -1
  90. data/doc/cxxapi/inherit__graph__14.png +0 -0
  91. data/doc/cxxapi/inherit__graph__15.map +1 -3
  92. data/doc/cxxapi/inherit__graph__15.md5 +1 -1
  93. data/doc/cxxapi/inherit__graph__15.png +0 -0
  94. data/doc/cxxapi/inherit__graph__16.map +3 -1
  95. data/doc/cxxapi/inherit__graph__16.md5 +1 -1
  96. data/doc/cxxapi/inherit__graph__16.png +0 -0
  97. data/doc/cxxapi/inherit__graph__17.map +1 -1
  98. data/doc/cxxapi/inherit__graph__17.md5 +1 -1
  99. data/doc/cxxapi/inherit__graph__17.png +0 -0
  100. data/doc/cxxapi/inherit__graph__18.map +1 -2
  101. data/doc/cxxapi/inherit__graph__18.md5 +1 -1
  102. data/doc/cxxapi/inherit__graph__18.png +0 -0
  103. data/doc/cxxapi/inherit__graph__19.map +2 -1
  104. data/doc/cxxapi/inherit__graph__19.md5 +1 -1
  105. data/doc/cxxapi/inherit__graph__19.png +0 -0
  106. data/doc/cxxapi/inherit__graph__20.map +1 -1
  107. data/doc/cxxapi/inherit__graph__20.md5 +1 -1
  108. data/doc/cxxapi/inherit__graph__20.png +0 -0
  109. data/doc/cxxapi/inherit__graph__21.map +1 -1
  110. data/doc/cxxapi/inherit__graph__21.md5 +1 -1
  111. data/doc/cxxapi/inherit__graph__21.png +0 -0
  112. data/doc/cxxapi/inherit__graph__22.map +1 -1
  113. data/doc/cxxapi/inherit__graph__22.md5 +1 -1
  114. data/doc/cxxapi/inherit__graph__22.png +0 -0
  115. data/doc/cxxapi/inherit__graph__23.map +1 -1
  116. data/doc/cxxapi/inherit__graph__23.md5 +1 -1
  117. data/doc/cxxapi/inherit__graph__23.png +0 -0
  118. data/doc/cxxapi/inherit__graph__24.map +1 -1
  119. data/doc/cxxapi/inherit__graph__24.md5 +1 -1
  120. data/doc/cxxapi/inherit__graph__24.png +0 -0
  121. data/doc/cxxapi/inherit__graph__25.map +1 -1
  122. data/doc/cxxapi/inherit__graph__25.md5 +1 -1
  123. data/doc/cxxapi/inherit__graph__25.png +0 -0
  124. data/doc/cxxapi/inherit__graph__26.map +1 -1
  125. data/doc/cxxapi/inherit__graph__26.md5 +1 -1
  126. data/doc/cxxapi/inherit__graph__26.png +0 -0
  127. data/doc/cxxapi/inherit__graph__27.map +1 -1
  128. data/doc/cxxapi/inherit__graph__27.md5 +1 -1
  129. data/doc/cxxapi/inherit__graph__27.png +0 -0
  130. data/doc/cxxapi/inherit__graph__28.map +1 -2
  131. data/doc/cxxapi/inherit__graph__28.md5 +1 -1
  132. data/doc/cxxapi/inherit__graph__28.png +0 -0
  133. data/doc/cxxapi/inherit__graph__29.map +1 -1
  134. data/doc/cxxapi/inherit__graph__29.md5 +1 -1
  135. data/doc/cxxapi/inherit__graph__29.png +0 -0
  136. data/doc/cxxapi/inherit__graph__30.map +1 -1
  137. data/doc/cxxapi/inherit__graph__30.md5 +1 -1
  138. data/doc/cxxapi/inherit__graph__30.png +0 -0
  139. data/doc/cxxapi/inherit__graph__31.map +2 -1
  140. data/doc/cxxapi/inherit__graph__31.md5 +1 -1
  141. data/doc/cxxapi/inherit__graph__31.png +0 -0
  142. data/doc/cxxapi/inherit__graph__32.map +1 -3
  143. data/doc/cxxapi/inherit__graph__32.md5 +1 -1
  144. data/doc/cxxapi/inherit__graph__32.png +0 -0
  145. data/doc/cxxapi/inherit__graph__33.map +1 -1
  146. data/doc/cxxapi/inherit__graph__33.md5 +1 -1
  147. data/doc/cxxapi/inherit__graph__33.png +0 -0
  148. data/doc/cxxapi/inherit__graph__34.map +1 -1
  149. data/doc/cxxapi/inherit__graph__34.md5 +1 -1
  150. data/doc/cxxapi/inherit__graph__34.png +0 -0
  151. data/doc/cxxapi/inherit__graph__35.map +3 -1
  152. data/doc/cxxapi/inherit__graph__35.md5 +1 -1
  153. data/doc/cxxapi/inherit__graph__35.png +0 -0
  154. data/doc/cxxapi/inherit__graph__36.map +1 -1
  155. data/doc/cxxapi/inherit__graph__36.md5 +1 -1
  156. data/doc/cxxapi/inherit__graph__36.png +0 -0
  157. data/doc/cxxapi/inherit__graph__37.map +1 -1
  158. data/doc/cxxapi/inherit__graph__37.md5 +1 -1
  159. data/doc/cxxapi/inherit__graph__37.png +0 -0
  160. data/doc/cxxapi/inherit__graph__38.map +3 -1
  161. data/doc/cxxapi/inherit__graph__38.md5 +1 -1
  162. data/doc/cxxapi/inherit__graph__38.png +0 -0
  163. data/doc/cxxapi/inherit__graph__39.map +3 -1
  164. data/doc/cxxapi/inherit__graph__39.md5 +1 -1
  165. data/doc/cxxapi/inherit__graph__39.png +0 -0
  166. data/doc/cxxapi/inherits.html +33 -24
  167. data/doc/cxxapi/namespacePassenger.html +52 -0
  168. data/doc/cxxapi/namespacemembers.html +6 -0
  169. data/doc/cxxapi/namespacemembers_func.html +6 -0
  170. data/doc/cxxapi/tree.html +8 -0
  171. data/ext/apache2/Configuration.cpp +30 -8
  172. data/ext/apache2/Configuration.hpp +15 -14
  173. data/ext/apache2/DirectoryMapper.h +0 -16
  174. data/ext/apache2/Hooks.cpp +30 -29
  175. data/ext/boost/algorithm/string/detail/case_conv.hpp +6 -6
  176. data/ext/boost/algorithm/string/detail/find_format.hpp +14 -4
  177. data/ext/boost/algorithm/string/detail/find_format_all.hpp +13 -3
  178. data/ext/boost/algorithm/string/detail/find_format_store.hpp +11 -0
  179. data/ext/boost/algorithm/string/erase.hpp +2 -2
  180. data/ext/boost/bind/placeholders.hpp +2 -2
  181. data/ext/boost/concept/detail/backward_compatibility.hpp +16 -0
  182. data/ext/boost/concept/detail/general.hpp +15 -6
  183. data/ext/boost/concept/detail/has_constraints.hpp +5 -3
  184. data/ext/boost/concept/usage.hpp +5 -4
  185. data/ext/boost/concept_check.hpp +10 -1
  186. data/ext/boost/config/abi/borland_prefix.hpp +1 -1
  187. data/ext/boost/config/auto_link.hpp +68 -21
  188. data/ext/boost/config/compiler/borland.hpp +11 -3
  189. data/ext/boost/config/compiler/clang.hpp +62 -0
  190. data/ext/boost/config/compiler/codegear.hpp +21 -7
  191. data/ext/boost/config/compiler/common_edg.hpp +4 -2
  192. data/ext/boost/config/compiler/digitalmars.hpp +1 -1
  193. data/ext/boost/config/compiler/gcc.hpp +46 -7
  194. data/ext/boost/config/compiler/gcc_xml.hpp +25 -0
  195. data/ext/boost/config/compiler/intel.hpp +23 -0
  196. data/ext/boost/config/compiler/kai.hpp +1 -1
  197. data/ext/boost/config/compiler/metrowerks.hpp +1 -1
  198. data/ext/boost/config/compiler/nvcc.hpp +86 -0
  199. data/ext/boost/config/compiler/pgi.hpp +18 -3
  200. data/ext/boost/config/compiler/sunpro_cc.hpp +19 -5
  201. data/ext/boost/config/compiler/vacpp.hpp +8 -0
  202. data/ext/boost/config/compiler/visualc.hpp +27 -11
  203. data/ext/boost/config/platform/cygwin.hpp +0 -3
  204. data/ext/boost/config/platform/symbian.hpp +94 -0
  205. data/ext/boost/config/platform/win32.hpp +8 -1
  206. data/ext/boost/config/select_compiler_config.hpp +10 -0
  207. data/ext/boost/config/select_platform_config.hpp +4 -0
  208. data/ext/boost/config/stdlib/dinkumware.hpp +11 -1
  209. data/ext/boost/config/stdlib/libcomo.hpp +1 -0
  210. data/ext/boost/config/stdlib/libstdcpp3.hpp +1 -0
  211. data/ext/boost/config/stdlib/modena.hpp +1 -0
  212. data/ext/boost/config/stdlib/msl.hpp +1 -0
  213. data/ext/boost/config/stdlib/roguewave.hpp +1 -0
  214. data/ext/boost/config/stdlib/sgi.hpp +1 -0
  215. data/ext/boost/config/stdlib/stlport.hpp +1 -0
  216. data/ext/boost/config/stdlib/vacpp.hpp +1 -0
  217. data/ext/boost/config/suffix.hpp +40 -2
  218. data/ext/boost/cstdint.hpp +36 -7
  219. data/ext/boost/date_time/gregorian/conversion.hpp +4 -2
  220. data/ext/boost/date_time/microsec_time_clock.hpp +7 -7
  221. data/ext/boost/date_time/posix_time/conversion.hpp +4 -2
  222. data/ext/boost/date_time/time_facet.hpp +43 -4
  223. data/ext/boost/detail/endian.hpp +5 -2
  224. data/ext/boost/detail/lcast_precision.hpp +2 -2
  225. data/ext/boost/detail/sp_typeinfo.hpp +1 -1
  226. data/ext/boost/detail/workaround.hpp +5 -0
  227. data/ext/boost/exception/detail/error_info_impl.hpp +3 -3
  228. data/ext/boost/exception/detail/exception_ptr.hpp +76 -135
  229. data/ext/boost/exception/detail/is_output_streamable.hpp +15 -2
  230. data/ext/boost/exception/detail/type_info.hpp +9 -5
  231. data/ext/boost/exception/diagnostic_information.hpp +5 -3
  232. data/ext/boost/exception/exception.hpp +60 -46
  233. data/ext/boost/exception/info.hpp +47 -14
  234. data/ext/boost/function/function_base.hpp +4 -4
  235. data/ext/boost/integer.hpp +4 -0
  236. data/ext/boost/integer_fwd.hpp +9 -3
  237. data/ext/boost/iterator/iterator_concepts.hpp +284 -0
  238. data/ext/boost/iterator/transform_iterator.hpp +0 -1
  239. data/ext/boost/make_shared.hpp +17 -0
  240. data/ext/boost/mpl/aux_/config/has_xxx.hpp +4 -3
  241. data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +2 -6
  242. data/ext/boost/mpl/aux_/template_arity.hpp +4 -4
  243. data/ext/boost/mpl/eval_if.hpp +3 -3
  244. data/ext/boost/mpl/has_xxx.hpp +369 -3
  245. data/ext/boost/optional/optional.hpp +3 -1
  246. data/ext/boost/optional/optional_fwd.hpp +1 -1
  247. data/ext/boost/preprocessor/repetition/enum_trailing_params.hpp +38 -0
  248. data/ext/boost/range/algorithm/equal.hpp +188 -0
  249. data/ext/boost/range/as_literal.hpp +15 -15
  250. data/ext/boost/range/concepts.hpp +331 -0
  251. data/ext/boost/range/const_iterator.hpp +7 -4
  252. data/ext/boost/range/detail/extract_optional_type.hpp +52 -0
  253. data/ext/boost/range/detail/implementation_help.hpp +7 -7
  254. data/ext/boost/range/detail/misc_concept.hpp +33 -0
  255. data/ext/boost/range/iterator.hpp +32 -32
  256. data/ext/boost/range/iterator_range.hpp +8 -651
  257. data/ext/boost/range/iterator_range_core.hpp +542 -0
  258. data/ext/boost/range/iterator_range_io.hpp +93 -0
  259. data/ext/boost/range/mutable_iterator.hpp +7 -4
  260. data/ext/boost/range/size.hpp +1 -1
  261. data/ext/boost/range/size_type.hpp +2 -1
  262. data/ext/boost/shared_array.hpp +19 -0
  263. data/ext/boost/smart_ptr/detail/sp_convertible.hpp +2 -2
  264. data/ext/boost/smart_ptr/detail/yield_k.hpp +1 -1
  265. data/ext/boost/smart_ptr/make_shared.hpp +508 -0
  266. data/ext/boost/smart_ptr/shared_array.hpp +147 -0
  267. data/ext/boost/src/pthread/thread.cpp +16 -21
  268. data/ext/boost/src/pthread/timeconv.inl +7 -4
  269. data/ext/boost/thread/barrier.hpp +2 -1
  270. data/ext/boost/thread/detail/config.hpp +7 -1
  271. data/ext/boost/thread/detail/platform.hpp +1 -1
  272. data/ext/boost/thread/detail/thread.hpp +62 -18
  273. data/ext/boost/thread/detail/thread_group.hpp +5 -2
  274. data/ext/boost/thread/detail/tss_hooks.hpp +8 -25
  275. data/ext/boost/thread/future.hpp +45 -34
  276. data/ext/boost/thread/locks.hpp +184 -55
  277. data/ext/boost/thread/pthread/condition_variable.hpp +7 -7
  278. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +4 -2
  279. data/ext/boost/thread/pthread/mutex.hpp +29 -17
  280. data/ext/boost/thread/pthread/once.hpp +5 -0
  281. data/ext/boost/thread/pthread/recursive_mutex.hpp +97 -18
  282. data/ext/boost/thread/pthread/shared_mutex.hpp +1 -1
  283. data/ext/boost/thread/pthread/thread_heap_alloc.hpp +1 -1
  284. data/ext/boost/thread/tss.hpp +2 -0
  285. data/ext/boost/throw_exception.hpp +21 -5
  286. data/ext/boost/token_functions.hpp +111 -91
  287. data/ext/boost/type_traits/add_reference.hpp +19 -1
  288. data/ext/boost/type_traits/function_traits.hpp +2 -2
  289. data/ext/boost/type_traits/is_const.hpp +24 -5
  290. data/ext/boost/type_traits/is_convertible.hpp +1 -1
  291. data/ext/boost/type_traits/is_function.hpp +3 -0
  292. data/ext/boost/type_traits/is_lvalue_reference.hpp +118 -0
  293. data/ext/boost/type_traits/is_reference.hpp +8 -81
  294. data/ext/boost/type_traits/is_rvalue_reference.hpp +29 -0
  295. data/ext/boost/type_traits/is_same.hpp +2 -2
  296. data/ext/boost/type_traits/is_volatile.hpp +26 -7
  297. data/ext/boost/type_traits/remove_const.hpp +12 -0
  298. data/ext/boost/type_traits/remove_cv.hpp +23 -1
  299. data/ext/boost/type_traits/remove_reference.hpp +21 -1
  300. data/ext/boost/type_traits/type_with_alignment.hpp +10 -10
  301. data/ext/boost/units/detail/utility.hpp +104 -0
  302. data/ext/boost/utility/compare_pointees.hpp +1 -1
  303. data/ext/common/AgentsStarter.hpp +151 -161
  304. data/ext/common/ApplicationPool/Pool.h +16 -4
  305. data/ext/common/Constants.h +1 -1
  306. data/ext/common/EventedClient.h +130 -26
  307. data/ext/common/Exceptions.h +15 -2
  308. data/ext/common/FileDescriptor.h +76 -12
  309. data/ext/common/IniFile.h +488 -0
  310. data/ext/common/LoggingAgent/LoggingServer.h +2 -2
  311. data/ext/common/LoggingAgent/RemoteSender.h +15 -6
  312. data/ext/common/MessageChannel.h +17 -101
  313. data/ext/common/PoolOptions.h +1 -0
  314. data/ext/common/ResourceLocator.h +78 -28
  315. data/ext/common/SafeLibev.h +149 -0
  316. data/ext/common/ServerInstanceDir.h +11 -7
  317. data/ext/common/Session.h +1 -1
  318. data/ext/common/SpawnManager.h +14 -14
  319. data/ext/common/StaticString.h +75 -0
  320. data/ext/common/Utils.cpp +304 -12
  321. data/ext/common/Utils.h +17 -0
  322. data/ext/common/Utils/BufferedIO.h +196 -0
  323. data/ext/common/Utils/IOUtils.cpp +159 -0
  324. data/ext/common/Utils/IOUtils.h +118 -1
  325. data/ext/common/Utils/ProcessMetricsCollector.h +184 -56
  326. data/ext/common/Utils/StrIntUtils.cpp +45 -11
  327. data/ext/common/Utils/StrIntUtils.h +8 -5
  328. data/ext/common/Utils/Timer.h +22 -0
  329. data/ext/common/Utils/utf8.h +35 -0
  330. data/ext/common/Utils/utf8/checked.h +324 -0
  331. data/ext/common/Utils/utf8/core.h +359 -0
  332. data/ext/common/Utils/utf8/unchecked.h +229 -0
  333. data/ext/common/Watchdog.cpp +52 -85
  334. data/ext/libev/config.h +122 -0
  335. data/ext/nginx/Configuration.c +7 -1
  336. data/ext/nginx/HelperAgent.cpp +16 -18
  337. data/ext/nginx/config +6 -4
  338. data/ext/oxt/system_calls.cpp +10 -0
  339. data/ext/oxt/system_calls.hpp +2 -0
  340. data/lib/phusion_passenger.rb +6 -11
  341. data/lib/phusion_passenger/dependencies.rb +2 -0
  342. data/lib/phusion_passenger/packaging.rb +5 -5
  343. data/lib/phusion_passenger/platform_info.rb +88 -0
  344. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +3 -17
  345. data/lib/phusion_passenger/platform_info/compiler.rb +14 -32
  346. data/lib/phusion_passenger/platform_info/curl.rb +6 -1
  347. data/lib/phusion_passenger/platform_info/operating_system.rb +107 -0
  348. data/lib/phusion_passenger/public_api.rb +2 -2
  349. data/lib/phusion_passenger/rails3_extensions/init.rb +5 -2
  350. data/lib/phusion_passenger/standalone/command.rb +6 -2
  351. data/lib/phusion_passenger/standalone/package_runtime_command.rb +2 -2
  352. data/lib/phusion_passenger/standalone/runtime_installer.rb +17 -5
  353. data/lib/phusion_passenger/standalone/start_command.rb +12 -12
  354. data/lib/phusion_passenger/standalone/stop_command.rb +3 -3
  355. data/lib/phusion_passenger/standalone/utils.rb +6 -2
  356. data/lib/phusion_passenger/templates/standalone/config.erb +37 -5
  357. data/lib/phusion_passenger/utils.rb +4 -7
  358. data/resources/mime.types +73 -0
  359. data/{misc → resources}/union_station_gateway.crt +0 -0
  360. data/test/cxx/BufferedIOTest.cpp +364 -0
  361. data/test/cxx/EventedClientTest.cpp +150 -13
  362. data/test/cxx/IOUtilsTest.cpp +399 -1
  363. data/test/cxx/MessageChannelTest.cpp +5 -120
  364. data/test/cxx/ProcessMetricsCollectorTest.cpp +121 -0
  365. data/test/cxx/StaticStringTest.cpp +134 -0
  366. data/test/cxx/UtilsTest.cpp +16 -46
  367. data/test/stub/rails_apps/2.3/mycook/public/dispatch.cgi +2 -2
  368. data/test/stub/rails_apps/2.3/mycook/public/dispatch.fcgi +1 -1
  369. data/test/stub/rails_apps/2.3/mycook/public/dispatch.rb +1 -1
  370. data/test/stub/rails_apps/3.0/empty/Gemfile.lock +73 -0
  371. data/test/support/allocate_memory.c +14 -0
  372. data/test/support/test_helper.rb +3 -0
  373. metadata +57 -174
  374. data/bin/passenger-stress-test +0 -345
  375. data/debian/postinst +0 -24
  376. data/doc/rdoc/classes/ConditionVariable.html +0 -215
  377. data/doc/rdoc/classes/Exception.html +0 -120
  378. data/doc/rdoc/classes/GC.html +0 -113
  379. data/doc/rdoc/classes/IO.html +0 -221
  380. data/doc/rdoc/classes/PhusionPassenger.html +0 -397
  381. data/doc/rdoc/classes/PhusionPassenger/AbstractInstaller.html +0 -180
  382. data/doc/rdoc/classes/PhusionPassenger/AbstractRequestHandler.html +0 -647
  383. data/doc/rdoc/classes/PhusionPassenger/AbstractServer.html +0 -654
  384. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/InvalidPassword.html +0 -92
  385. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerAlreadyStarted.html +0 -97
  386. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerError.html +0 -96
  387. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/ServerNotStarted.html +0 -97
  388. data/doc/rdoc/classes/PhusionPassenger/AbstractServer/UnknownMessage.html +0 -96
  389. data/doc/rdoc/classes/PhusionPassenger/AbstractServerCollection.html +0 -619
  390. data/doc/rdoc/classes/PhusionPassenger/AdminTools.html +0 -142
  391. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats.html +0 -368
  392. data/doc/rdoc/classes/PhusionPassenger/AdminTools/MemoryStats/Process.html +0 -231
  393. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance.html +0 -588
  394. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/CorruptedDirectoryError.html +0 -92
  395. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/GenerationsAbsentError.html +0 -92
  396. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Group.html +0 -147
  397. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Process.html +0 -279
  398. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/RoleDeniedError.html +0 -92
  399. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/StaleDirectoryError.html +0 -92
  400. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/Stats.html +0 -123
  401. data/doc/rdoc/classes/PhusionPassenger/AdminTools/ServerInstance/UnsupportedGenerationStructureVersionError.html +0 -92
  402. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger.html +0 -341
  403. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/Log.html +0 -294
  404. data/doc/rdoc/classes/PhusionPassenger/AnalyticsLogger/SharedData.html +0 -199
  405. data/doc/rdoc/classes/PhusionPassenger/AppInitError.html +0 -155
  406. data/doc/rdoc/classes/PhusionPassenger/AppProcess.html +0 -367
  407. data/doc/rdoc/classes/PhusionPassenger/ClassicRails.html +0 -95
  408. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner.html +0 -351
  409. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/ApplicationSpawner/Error.html +0 -98
  410. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/CGIFixed.html +0 -200
  411. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner.html +0 -410
  412. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/FrameworkSpawner/Error.html +0 -98
  413. data/doc/rdoc/classes/PhusionPassenger/ClassicRails/RequestHandler.html +0 -156
  414. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions.html +0 -115
  415. data/doc/rdoc/classes/PhusionPassenger/ClassicRailsExtensions/AnalyticsLogging.html +0 -202
  416. data/doc/rdoc/classes/PhusionPassenger/ConsoleTextTemplate.html +0 -172
  417. data/doc/rdoc/classes/PhusionPassenger/DebugLogging.html +0 -273
  418. data/doc/rdoc/classes/PhusionPassenger/FrameworkInitError.html +0 -145
  419. data/doc/rdoc/classes/PhusionPassenger/HTMLTemplate.html +0 -162
  420. data/doc/rdoc/classes/PhusionPassenger/InitializationError.html +0 -141
  421. data/doc/rdoc/classes/PhusionPassenger/InvalidPath.html +0 -92
  422. data/doc/rdoc/classes/PhusionPassenger/MessageChannel.html +0 -673
  423. data/doc/rdoc/classes/PhusionPassenger/MessageChannel/InvalidHashError.html +0 -92
  424. data/doc/rdoc/classes/PhusionPassenger/MessageClient.html +0 -415
  425. data/doc/rdoc/classes/PhusionPassenger/NativeSupportLoader.html +0 -134
  426. data/doc/rdoc/classes/PhusionPassenger/Packaging.html +0 -129
  427. data/doc/rdoc/classes/PhusionPassenger/PlatformInfo.html +0 -1809
  428. data/doc/rdoc/classes/PhusionPassenger/Plugin.html +0 -237
  429. data/doc/rdoc/classes/PhusionPassenger/Rack.html +0 -91
  430. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner.html +0 -312
  431. data/doc/rdoc/classes/PhusionPassenger/Rack/ApplicationSpawner/Error.html +0 -98
  432. data/doc/rdoc/classes/PhusionPassenger/Rack/RequestHandler.html +0 -218
  433. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions.html +0 -114
  434. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging.html +0 -256
  435. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ACExtension.html +0 -139
  436. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ASBenchmarkableExtension.html +0 -118
  437. data/doc/rdoc/classes/PhusionPassenger/Rails3Extensions/AnalyticsLogging/ExceptionLogger.html +0 -135
  438. data/doc/rdoc/classes/PhusionPassenger/SpawnManager.html +0 -378
  439. data/doc/rdoc/classes/PhusionPassenger/Standalone.html +0 -111
  440. data/doc/rdoc/classes/PhusionPassenger/Standalone/AppFinder.html +0 -252
  441. data/doc/rdoc/classes/PhusionPassenger/Standalone/Command.html +0 -161
  442. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile.html +0 -368
  443. data/doc/rdoc/classes/PhusionPassenger/Standalone/ConfigFile/DisallowedContextError.html +0 -132
  444. data/doc/rdoc/classes/PhusionPassenger/Standalone/HelpCommand.html +0 -151
  445. data/doc/rdoc/classes/PhusionPassenger/Standalone/Main.html +0 -189
  446. data/doc/rdoc/classes/PhusionPassenger/Standalone/PackageRuntimeCommand.html +0 -177
  447. data/doc/rdoc/classes/PhusionPassenger/Standalone/RuntimeInstaller.html +0 -341
  448. data/doc/rdoc/classes/PhusionPassenger/Standalone/StartCommand.html +0 -203
  449. data/doc/rdoc/classes/PhusionPassenger/Standalone/StatusCommand.html +0 -156
  450. data/doc/rdoc/classes/PhusionPassenger/Standalone/StopCommand.html +0 -168
  451. data/doc/rdoc/classes/PhusionPassenger/Standalone/Utils.html +0 -86
  452. data/doc/rdoc/classes/PhusionPassenger/Standalone/VersionCommand.html +0 -135
  453. data/doc/rdoc/classes/PhusionPassenger/UnknownError.html +0 -125
  454. data/doc/rdoc/classes/PhusionPassenger/Utils.html +0 -1550
  455. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher.html +0 -204
  456. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/DirInfo.html +0 -171
  457. data/doc/rdoc/classes/PhusionPassenger/Utils/FileSystemWatcher/FileInfo.html +0 -140
  458. data/doc/rdoc/classes/PhusionPassenger/Utils/HostsFileParser.html +0 -260
  459. data/doc/rdoc/classes/PhusionPassenger/Utils/PseudoIO.html +0 -169
  460. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput.html +0 -265
  461. data/doc/rdoc/classes/PhusionPassenger/Utils/RewindableInput/Tempfile.html +0 -120
  462. data/doc/rdoc/classes/PhusionPassenger/Utils/UnseekableSocket.html +0 -561
  463. data/doc/rdoc/classes/PhusionPassenger/VersionNotFound.html +0 -140
  464. data/doc/rdoc/classes/PhusionPassenger/WSGI.html +0 -89
  465. data/doc/rdoc/classes/PhusionPassenger/WSGI/ApplicationSpawner.html +0 -182
  466. data/doc/rdoc/classes/Process.html +0 -115
  467. data/doc/rdoc/classes/Signal.html +0 -139
  468. data/doc/rdoc/created.rid +0 -1
  469. data/doc/rdoc/files/DEVELOPERS_TXT.html +0 -276
  470. data/doc/rdoc/files/README.html +0 -157
  471. data/doc/rdoc/files/lib/phusion_passenger/abstract_installer_rb.html +0 -130
  472. data/doc/rdoc/files/lib/phusion_passenger/abstract_request_handler_rb.html +0 -135
  473. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_collection_rb.html +0 -126
  474. data/doc/rdoc/files/lib/phusion_passenger/abstract_server_rb.html +0 -128
  475. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/memory_stats_rb.html +0 -126
  476. data/doc/rdoc/files/lib/phusion_passenger/admin_tools/server_instance_rb.html +0 -132
  477. data/doc/rdoc/files/lib/phusion_passenger/admin_tools_rb.html +0 -122
  478. data/doc/rdoc/files/lib/phusion_passenger/analytics_logger_rb.html +0 -129
  479. data/doc/rdoc/files/lib/phusion_passenger/app_process_rb.html +0 -127
  480. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/application_spawner_rb.html +0 -141
  481. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/cgi_fixed_rb.html +0 -126
  482. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/framework_spawner_rb.html +0 -146
  483. data/doc/rdoc/files/lib/phusion_passenger/classic_rails/request_handler_rb.html +0 -125
  484. data/doc/rdoc/files/lib/phusion_passenger/classic_rails_extensions/init_rb.html +0 -132
  485. data/doc/rdoc/files/lib/phusion_passenger/console_text_template_rb.html +0 -126
  486. data/doc/rdoc/files/lib/phusion_passenger/constants_rb.html +0 -122
  487. data/doc/rdoc/files/lib/phusion_passenger/debug_logging_rb.html +0 -122
  488. data/doc/rdoc/files/lib/phusion_passenger/dependencies_rb.html +0 -147
  489. data/doc/rdoc/files/lib/phusion_passenger/exceptions_rb.html +0 -122
  490. data/doc/rdoc/files/lib/phusion_passenger/html_template_rb.html +0 -127
  491. data/doc/rdoc/files/lib/phusion_passenger/message_channel_rb.html +0 -120
  492. data/doc/rdoc/files/lib/phusion_passenger/message_client_rb.html +0 -127
  493. data/doc/rdoc/files/lib/phusion_passenger/native_support_rb.html +0 -132
  494. data/doc/rdoc/files/lib/phusion_passenger/packaging_rb.html +0 -122
  495. data/doc/rdoc/files/lib/phusion_passenger/platform_info/apache_rb.html +0 -127
  496. data/doc/rdoc/files/lib/phusion_passenger/platform_info/binary_compatibility_rb.html +0 -129
  497. data/doc/rdoc/files/lib/phusion_passenger/platform_info/compiler_rb.html +0 -126
  498. data/doc/rdoc/files/lib/phusion_passenger/platform_info/curl_rb.html +0 -126
  499. data/doc/rdoc/files/lib/phusion_passenger/platform_info/documentation_tools_rb.html +0 -126
  500. data/doc/rdoc/files/lib/phusion_passenger/platform_info/linux_rb.html +0 -126
  501. data/doc/rdoc/files/lib/phusion_passenger/platform_info/operating_system_rb.html +0 -127
  502. data/doc/rdoc/files/lib/phusion_passenger/platform_info/ruby_rb.html +0 -128
  503. data/doc/rdoc/files/lib/phusion_passenger/platform_info/zlib_rb.html +0 -126
  504. data/doc/rdoc/files/lib/phusion_passenger/platform_info_rb.html +0 -122
  505. data/doc/rdoc/files/lib/phusion_passenger/plugin_rb.html +0 -127
  506. data/doc/rdoc/files/lib/phusion_passenger/public_api_rb.html +0 -127
  507. data/doc/rdoc/files/lib/phusion_passenger/rack/application_spawner_rb.html +0 -137
  508. data/doc/rdoc/files/lib/phusion_passenger/rack/request_handler_rb.html +0 -125
  509. data/doc/rdoc/files/lib/phusion_passenger/rails3_extensions/init_rb.html +0 -127
  510. data/doc/rdoc/files/lib/phusion_passenger/simple_benchmarking_rb.html +0 -122
  511. data/doc/rdoc/files/lib/phusion_passenger/spawn_manager_rb.html +0 -160
  512. data/doc/rdoc/files/lib/phusion_passenger/standalone/app_finder_rb.html +0 -127
  513. data/doc/rdoc/files/lib/phusion_passenger/standalone/command_rb.html +0 -135
  514. data/doc/rdoc/files/lib/phusion_passenger/standalone/config_file_rb.html +0 -126
  515. data/doc/rdoc/files/lib/phusion_passenger/standalone/help_command_rb.html +0 -126
  516. data/doc/rdoc/files/lib/phusion_passenger/standalone/main_rb.html +0 -126
  517. data/doc/rdoc/files/lib/phusion_passenger/standalone/package_runtime_command_rb.html +0 -127
  518. data/doc/rdoc/files/lib/phusion_passenger/standalone/runtime_installer_rb.html +0 -133
  519. data/doc/rdoc/files/lib/phusion_passenger/standalone/start_command_rb.html +0 -136
  520. data/doc/rdoc/files/lib/phusion_passenger/standalone/status_command_rb.html +0 -126
  521. data/doc/rdoc/files/lib/phusion_passenger/standalone/stop_command_rb.html +0 -126
  522. data/doc/rdoc/files/lib/phusion_passenger/standalone/utils_rb.html +0 -126
  523. data/doc/rdoc/files/lib/phusion_passenger/standalone/version_command_rb.html +0 -127
  524. data/doc/rdoc/files/lib/phusion_passenger/utils/file_system_watcher_rb.html +0 -126
  525. data/doc/rdoc/files/lib/phusion_passenger/utils/hosts_file_parser_rb.html +0 -120
  526. data/doc/rdoc/files/lib/phusion_passenger/utils/rewindable_input_rb.html +0 -100
  527. data/doc/rdoc/files/lib/phusion_passenger/utils/tmpdir_rb.html +0 -122
  528. data/doc/rdoc/files/lib/phusion_passenger/utils/unseekable_socket_rb.html +0 -126
  529. data/doc/rdoc/files/lib/phusion_passenger/utils_rb.html +0 -179
  530. data/doc/rdoc/files/lib/phusion_passenger/wsgi/application_spawner_rb.html +0 -132
  531. data/doc/rdoc/fr_class_index.html +0 -138
  532. data/doc/rdoc/fr_file_index.html +0 -108
  533. data/doc/rdoc/fr_method_index.html +0 -430
  534. data/doc/rdoc/index.html +0 -26
  535. data/doc/rdoc/rdoc-style.css +0 -187
  536. data/ext/apache2/LICENSE-CNRI.TXT +0 -79
  537. data/ext/common/Utils/BlockingScalar.h +0 -50
  538. data/ext/common/Utils/FileHandleGuard.h +0 -81
@@ -44,7 +44,7 @@
44
44
  #endif
45
45
 
46
46
  // See also kai.hpp which checks a Kai-specific symbol for EH
47
- # if !defined(__KCC) && !defined(__EXCEPTIONS)
47
+ # if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
48
48
  # define BOOST_NO_EXCEPTIONS
49
49
  # endif
50
50
 
@@ -59,6 +59,9 @@
59
59
  //
60
60
  // See above for BOOST_NO_LONG_LONG
61
61
  //
62
+ #if (__EDG_VERSION__ < 310)
63
+ # define BOOST_NO_EXTERN_TEMPLATE
64
+ #endif
62
65
  #if (__EDG_VERSION__ <= 310) || !defined(BOOST_STRICT_CONFIG)
63
66
  // No support for initializer lists
64
67
  # define BOOST_NO_INITIALIZER_LISTS
@@ -74,7 +77,6 @@
74
77
  #define BOOST_NO_DEFAULTED_FUNCTIONS
75
78
  #define BOOST_NO_DELETED_FUNCTIONS
76
79
  #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
77
- #define BOOST_NO_EXTERN_TEMPLATE
78
80
  #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
79
81
  #define BOOST_NO_LAMBDAS
80
82
  #define BOOST_NO_NULLPTR
@@ -51,7 +51,7 @@
51
51
 
52
52
 
53
53
  // check for exception handling support:
54
- #ifndef _CPPUNWIND
54
+ #if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
55
55
  # define BOOST_NO_EXCEPTIONS
56
56
  #endif
57
57
 
@@ -42,6 +42,7 @@
42
42
  # define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
43
43
  # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
44
44
  # define BOOST_NO_IS_ABSTRACT
45
+ # define BOOST_NO_EXTERN_TEMPLATE
45
46
  #elif __GNUC__ == 3
46
47
  # if defined (__PATHSCALE__)
47
48
  # define BOOST_NO_TWO_PHASE_NAME_LOOKUP
@@ -58,6 +59,7 @@
58
59
  # if __GNUC_MINOR__ < 4
59
60
  # define BOOST_NO_IS_ABSTRACT
60
61
  # endif
62
+ # define BOOST_NO_EXTERN_TEMPLATE
61
63
  #endif
62
64
  #if __GNUC__ < 4
63
65
  //
@@ -69,7 +71,19 @@
69
71
  # endif
70
72
  #endif
71
73
 
72
- #ifndef __EXCEPTIONS
74
+ #if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
75
+ // Previous versions of GCC did not completely implement value-initialization:
76
+ // GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
77
+ // members", reported by Jonathan Wakely in 2006,
78
+ // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4)
79
+ // GCC Bug 33916, "Default constructor fails to initialize array members",
80
+ // reported by Michael Elizabeth Chastain in 2007,
81
+ // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
82
+ // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
83
+ #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
84
+ #endif
85
+
86
+ #if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
73
87
  # define BOOST_NO_EXCEPTIONS
74
88
  #endif
75
89
 
@@ -94,25 +108,47 @@
94
108
  #if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
95
109
  #define BOOST_HAS_NRVO
96
110
  #endif
111
+
112
+ //
113
+ // Dynamic shared object (DSO) and dynamic-link library (DLL) support
114
+ //
115
+ #if __GNUC__ >= 4
116
+ # if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
117
+ // All Win32 development environments, including 64-bit Windows and MinGW, define
118
+ // _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
119
+ // so does not define _WIN32 or its variants.
120
+ # define BOOST_HAS_DECLSPEC
121
+ # define BOOST_SYMBOL_EXPORT __attribute__((dllexport))
122
+ # define BOOST_SYMBOL_IMPORT __attribute__((dllimport))
123
+ # else
124
+ # define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
125
+ # define BOOST_SYMBOL_IMPORT
126
+ # endif
127
+ # define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
128
+ #else
129
+ // config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
130
+ # define BOOST_SYMBOL_EXPORT
131
+ #endif
132
+
97
133
  //
98
134
  // RTTI and typeinfo detection is possible post gcc-4.3:
99
135
  //
100
136
  #if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
101
137
  # ifndef __GXX_RTTI
102
- # define BOOST_NO_TYPEID
103
- # define BOOST_NO_RTTI
138
+ # ifndef BOOST_NO_TYPEID
139
+ # define BOOST_NO_TYPEID
140
+ # endif
141
+ # ifndef BOOST_NO_RTTI
142
+ # define BOOST_NO_RTTI
143
+ # endif
104
144
  # endif
105
145
  #endif
106
146
 
107
147
  // C++0x features not implemented in any GCC version
108
148
  //
109
149
  #define BOOST_NO_CONSTEXPR
110
- #define BOOST_NO_EXTERN_TEMPLATE
111
- #define BOOST_NO_LAMBDAS
112
150
  #define BOOST_NO_NULLPTR
113
- #define BOOST_NO_RAW_LITERALS
114
151
  #define BOOST_NO_TEMPLATE_ALIASES
115
- #define BOOST_NO_UNICODE_LITERALS
116
152
 
117
153
  // C++0x features in 4.3.n and later
118
154
  //
@@ -168,6 +204,9 @@
168
204
  //
169
205
  #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
170
206
  # define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
207
+ # define BOOST_NO_LAMBDAS
208
+ # define BOOST_NO_RAW_LITERALS
209
+ # define BOOST_NO_UNICODE_LITERALS
171
210
  #endif
172
211
 
173
212
  // ConceptGCC compiler:
@@ -25,6 +25,31 @@
25
25
  //
26
26
  #define BOOST_HAS_LONG_LONG
27
27
 
28
+ // C++0x features:
29
+ //
30
+ # define BOOST_NO_CONSTEXPR
31
+ # define BOOST_NO_NULLPTR
32
+ # define BOOST_NO_TEMPLATE_ALIASES
33
+ # define BOOST_NO_DECLTYPE
34
+ # define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
35
+ # define BOOST_NO_RVALUE_REFERENCES
36
+ # define BOOST_NO_STATIC_ASSERT
37
+ # define BOOST_NO_VARIADIC_TEMPLATES
38
+ # define BOOST_NO_AUTO_DECLARATIONS
39
+ # define BOOST_NO_AUTO_MULTIDECLARATIONS
40
+ # define BOOST_NO_CHAR16_T
41
+ # define BOOST_NO_CHAR32_T
42
+ # define BOOST_NO_DEFAULTED_FUNCTIONS
43
+ # define BOOST_NO_DELETED_FUNCTIONS
44
+ # define BOOST_NO_INITIALIZER_LISTS
45
+ # define BOOST_NO_SCOPED_ENUMS
46
+ # define BOOST_NO_SFINAE_EXPR
47
+ # define BOOST_NO_SCOPED_ENUMS
48
+ # define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
49
+ # define BOOST_NO_LAMBDAS
50
+ # define BOOST_NO_RAW_LITERALS
51
+ # define BOOST_NO_UNICODE_LITERALS
52
+
28
53
  #define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
29
54
 
30
55
 
@@ -157,6 +157,29 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
157
157
  # define BOOST_NO_TWO_PHASE_NAME_LOOKUP
158
158
  #endif
159
159
 
160
+ //
161
+ // An attempt to value-initialize a pointer-to-member may trigger an
162
+ // internal error on Intel <= 11.1 (last checked version), as was
163
+ // reported by John Maddock, Intel support issue 589832, May 2010.
164
+ // Moreover, according to test results from Huang-Vista-x86_32_intel,
165
+ // intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
166
+ // cases when it should be value-initialized.
167
+ // (Niels Dekker, LKEB, May 2010)
168
+ #if defined(__INTEL_COMPILER)
169
+ # if __INTEL_COMPILER <= 1110
170
+ # define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
171
+ # endif
172
+ #endif
173
+
174
+ //
175
+ // Dynamic shared object (DSO) and dynamic-link library (DLL) support
176
+ //
177
+ #if defined(__GNUC__) && (__GNUC__ >= 4)
178
+ # define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
179
+ # define BOOST_SYMBOL_IMPORT
180
+ # define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
181
+ #endif
182
+
160
183
  //
161
184
  // last known and checked version:
162
185
  #if (BOOST_INTEL_CXX_VERSION > 1110)
@@ -17,7 +17,7 @@
17
17
  # endif
18
18
 
19
19
  // see also common_edg.hpp which needs a special check for __KCC
20
- # if !defined(_EXCEPTIONS)
20
+ # if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
21
21
  # define BOOST_NO_EXCEPTIONS
22
22
  # endif
23
23
 
@@ -48,7 +48,7 @@
48
48
  # define BOOST_NO_INTRINSIC_WCHAR_T
49
49
  #endif
50
50
 
51
- #if !__option(exceptions)
51
+ #if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
52
52
  # define BOOST_NO_EXCEPTIONS
53
53
  #endif
54
54
 
@@ -0,0 +1,86 @@
1
+ // (C) Copyright Eric Jourdanneau, Joel Falcou 2010
2
+ // Use, modification and distribution are subject to the
3
+ // Boost Software License, Version 1.0. (See accompanying file
4
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
+
6
+ // See http://www.boost.org for most recent version.
7
+
8
+ // NVIDIA CUDA C++ compiler setup
9
+
10
+ #ifndef BOOST_COMPILER
11
+ # define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
12
+ #endif
13
+
14
+ // NVIDIA Specific support
15
+ // BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
16
+ #define BOOST_GPU_ENABLED __host__ __device__
17
+
18
+ // Boost support macro for NVCC
19
+ // NVCC Basically behaves like some flavor of MSVC6 + some specific quirks
20
+ #define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
21
+ #define BOOST_MSVC6_MEMBER_TEMPLATES
22
+ #define BOOST_HAS_UNISTD_H
23
+ #define BOOST_HAS_STDINT_H
24
+ #define BOOST_HAS_SIGACTION
25
+ #define BOOST_HAS_SCHED_YIELD
26
+ #define BOOST_HAS_PTHREADS
27
+ #define BOOST_HAS_PTHREAD_YIELD
28
+ #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
29
+ #define BOOST_HAS_PARTIAL_STD_ALLOCATOR
30
+ #define BOOST_HAS_NRVO
31
+ #define BOOST_HAS_NL_TYPES_H
32
+ #define BOOST_HAS_NANOSLEEP
33
+ #define BOOST_HAS_LONG_LONG
34
+ #define BOOST_HAS_LOG1P
35
+ #define BOOST_HAS_GETTIMEOFDAY
36
+ #define BOOST_HAS_EXPM1
37
+ #define BOOST_HAS_DIRENT_H
38
+ #define BOOST_HAS_CLOCK_GETTIME
39
+ #define BOOST_NO_VARIADIC_TEMPLATES
40
+ #define BOOST_NO_UNICODE_LITERALS
41
+ #define BOOST_NO_TEMPLATE_ALIASES
42
+ #define BOOST_NO_STD_UNORDERED
43
+ #define BOOST_NO_STATIC_ASSERT
44
+ #define BOOST_NO_SFINAE_EXPR
45
+ #define BOOST_NO_SCOPED_ENUMS
46
+ #define BOOST_NO_RVALUE_REFERENCES
47
+ #define BOOST_NO_RAW_LITERALS
48
+ #define BOOST_NO_NULLPTR
49
+ #define BOOST_NO_LAMBDAS
50
+ #define BOOST_NO_INITIALIZER_LISTS
51
+ #define BOOST_NO_MS_INT64_NUMERIC_LIMITS
52
+ #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
53
+ #define BOOST_NO_EXTERN_TEMPLATE
54
+ #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
55
+ #define BOOST_NO_DELETED_FUNCTIONS
56
+ #define BOOST_NO_DEFAULTED_FUNCTIONS
57
+ #define BOOST_NO_DECLTYPE
58
+ #define BOOST_NO_CONSTEXPR
59
+ #define BOOST_NO_CONCEPTS
60
+ #define BOOST_NO_CHAR32_T
61
+ #define BOOST_NO_CHAR16_T
62
+ #define BOOST_NO_AUTO_MULTIDECLARATIONS
63
+ #define BOOST_NO_AUTO_DECLARATIONS
64
+ #define BOOST_NO_0X_HDR_UNORDERED_SET
65
+ #define BOOST_NO_0X_HDR_UNORDERED_MAP
66
+ #define BOOST_NO_0X_HDR_TYPE_TRAITS
67
+ #define BOOST_NO_0X_HDR_TUPLE
68
+ #define BOOST_NO_0X_HDR_THREAD
69
+ #define BOOST_NO_0X_HDR_TYPEINDEX
70
+ #define BOOST_NO_0X_HDR_SYSTEM_ERROR
71
+ #define BOOST_NO_0X_HDR_REGEX
72
+ #define BOOST_NO_0X_HDR_RATIO
73
+ #define BOOST_NO_0X_HDR_RANDOM
74
+ #define BOOST_NO_0X_HDR_MUTEX
75
+ #define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
76
+ #define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
77
+ #define BOOST_NO_0X_HDR_INITIALIZER_LIST
78
+ #define BOOST_NO_0X_HDR_FUTURE
79
+ #define BOOST_NO_0X_HDR_FORWARD_LIST
80
+ #define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
81
+ #define BOOST_NO_0X_HDR_CONDITION_VARIABLE
82
+ #define BOOST_NO_0X_HDR_CONCEPTS
83
+ #define BOOST_NO_0X_HDR_CODECVT
84
+ #define BOOST_NO_0X_HDR_CHRONO
85
+ #define BOOST_NO_0X_HDR_ARRAY
86
+
@@ -16,11 +16,28 @@
16
16
  // if no threading API is detected.
17
17
  //
18
18
 
19
- #if (__PGIC__ >= 7)
19
+ // PGI 10.x doesn't seem to define __PGIC__
20
+
21
+ // versions earlier than 10.x do define __PGIC__
22
+ #if __PGIC__ >= 10
23
+
24
+ // options requested by configure --enable-test
25
+ #define BOOST_HAS_PTHREADS
26
+ #define BOOST_HAS_NRVO
27
+ #define BOOST_HAS_LONG_LONG
28
+
29
+ // options --enable-test wants undefined
30
+ #undef BOOST_NO_STDC_NAMESPACE
31
+ #undef BOOST_NO_EXCEPTION_STD_NAMESPACE
32
+ #undef BOOST_DEDUCED_TYPENAME
33
+
34
+ #elif __PGIC__ >= 7
20
35
 
21
36
  #define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
22
37
  #define BOOST_NO_TWO_PHASE_NAME_LOOKUP
23
38
  #define BOOST_NO_SWPRINTF
39
+ #define BOOST_NO_AUTO_MULTIDECLARATIONS
40
+ #define BOOST_NO_AUTO_DECLARATIONS
24
41
 
25
42
  #else
26
43
 
@@ -32,8 +49,6 @@
32
49
  //
33
50
  // See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
34
51
  //
35
- #define BOOST_NO_AUTO_DECLARATIONS
36
- #define BOOST_NO_AUTO_MULTIDECLARATIONS
37
52
  #define BOOST_NO_CHAR16_T
38
53
  #define BOOST_NO_CHAR32_T
39
54
  #define BOOST_NO_CONCEPTS
@@ -69,6 +69,25 @@
69
69
  # define BOOST_NO_IS_ABSTRACT
70
70
  # endif
71
71
 
72
+ # if (__SUNPRO_CC <= 0x5100)
73
+ // Sun 5.10 may not correctly value-initialize objects of
74
+ // some user defined types, as was reported in April 2010
75
+ // (CR 6947016), and confirmed by Steve Clamage.
76
+ // (Niels Dekker, LKEB, May 2010).
77
+ # define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
78
+ # endif
79
+
80
+ //
81
+ // Dynamic shared object (DSO) and dynamic-link library (DLL) support
82
+ //
83
+ #if __SUNPRO_CC > 0x500
84
+ # define BOOST_SYMBOL_EXPORT __global
85
+ # define BOOST_SYMBOL_IMPORT __global
86
+ # define BOOST_SYMBOL_VISIBLE __global
87
+ #endif
88
+
89
+
90
+
72
91
  //
73
92
  // Issues that effect all known versions:
74
93
  //
@@ -78,12 +97,7 @@
78
97
  //
79
98
  // C++0x features
80
99
  //
81
-
82
- #if(__SUNPRO_CC >= 0x590)
83
100
  # define BOOST_HAS_LONG_LONG
84
- #else
85
- # define BOOST_NO_LONG_LONG
86
- #endif
87
101
 
88
102
  #define BOOST_NO_AUTO_DECLARATIONS
89
103
  #define BOOST_NO_AUTO_MULTIDECLARATIONS
@@ -30,6 +30,14 @@
30
30
  # define BOOST_NO_INITIALIZER_LISTS
31
31
  #endif
32
32
 
33
+ #if (__IBMCPP__ <= 1110)
34
+ // XL C++ V11.1 and earlier versions may not always value-initialize
35
+ // a temporary object T(), when T is a non-POD aggregate class type.
36
+ // Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
37
+ // high priority. -- Niels Dekker (LKEB), May 2010.
38
+ # define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
39
+ #endif
40
+
33
41
  //
34
42
  // On AIX thread support seems to be indicated by _THREAD_SAFE:
35
43
  //
@@ -79,6 +79,8 @@
79
79
  // although a conforming signature for swprint exists in VC7.1
80
80
  // it appears not to actually work:
81
81
  # define BOOST_NO_SWPRINTF
82
+ // Our extern template tests also fail for this compiler:
83
+ # define BOOST_NO_EXTERN_TEMPLATE
82
84
  #endif
83
85
 
84
86
  #if defined(UNDER_CE)
@@ -99,6 +101,24 @@
99
101
  # define BOOST_NO_ADL_BARRIER
100
102
  #endif
101
103
 
104
+
105
+ #if (_MSC_VER <= 1600)
106
+ // MSVC (including the latest checked version) has not yet completely
107
+ // implemented value-initialization, as is reported:
108
+ // "VC++ does not value-initialize members of derived classes without
109
+ // user-declared constructor", reported in 2009 by Sylvester Hesp:
110
+ // https://connect.microsoft.com/VisualStudio/feedback/details/484295
111
+ // "Presence of copy constructor breaks member class initialization",
112
+ // reported in 2009 by Alex Vakulenko:
113
+ // https://connect.microsoft.com/VisualStudio/feedback/details/499606
114
+ // "Value-initialization in new-expression", reported in 2005 by
115
+ // Pavel Kuznetsov (MetaCommunications Engineering):
116
+ // https://connect.microsoft.com/VisualStudio/feedback/details/100744
117
+ // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
118
+ // (Niels Dekker, LKEB, May 2010)
119
+ #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
120
+ #endif
121
+
102
122
  #if _MSC_VER <= 1500 || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0
103
123
  # define BOOST_NO_INITIALIZER_LISTS
104
124
  #endif
@@ -115,7 +135,7 @@
115
135
 
116
136
  //
117
137
  // check for exception handling support:
118
- #ifndef _CPPUNWIND
138
+ #if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
119
139
  # define BOOST_NO_EXCEPTIONS
120
140
  #endif
121
141
 
@@ -125,7 +145,7 @@
125
145
  #if (_MSC_VER >= 1200)
126
146
  # define BOOST_HAS_MS_INT64
127
147
  #endif
128
- #if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1500))
148
+ #if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
129
149
  # define BOOST_HAS_LONG_LONG
130
150
  #else
131
151
  # define BOOST_NO_LONG_LONG
@@ -144,11 +164,6 @@
144
164
  # define BOOST_NO_RTTI
145
165
  #endif
146
166
 
147
- //
148
- // all versions support __declspec:
149
- //
150
- #define BOOST_HAS_DECLSPEC
151
-
152
167
  //
153
168
  // C++0x features
154
169
  //
@@ -159,11 +174,14 @@
159
174
  #if _MSC_VER < 1600
160
175
  #define BOOST_NO_AUTO_DECLARATIONS
161
176
  #define BOOST_NO_AUTO_MULTIDECLARATIONS
162
- #define BOOST_NO_DECLTYPE
163
177
  #define BOOST_NO_LAMBDAS
164
178
  #define BOOST_NO_RVALUE_REFERENCES
165
179
  #define BOOST_NO_STATIC_ASSERT
180
+ #define BOOST_NO_NULLPTR
166
181
  #endif // _MSC_VER < 1600
182
+ #if _MSC_VER >= 1600
183
+ #define BOOST_HAS_STDINT_H
184
+ #endif
167
185
 
168
186
  // C++0x features not supported by any versions
169
187
  #define BOOST_NO_CHAR16_T
@@ -171,19 +189,17 @@
171
189
  #define BOOST_NO_CONCEPTS
172
190
  #define BOOST_NO_CONSTEXPR
173
191
  #define BOOST_NO_DEFAULTED_FUNCTIONS
192
+ #define BOOST_NO_DECLTYPE
174
193
  #define BOOST_NO_DELETED_FUNCTIONS
175
194
  #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
176
- #define BOOST_NO_EXTERN_TEMPLATE
177
195
  #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
178
196
  #define BOOST_NO_INITIALIZER_LISTS
179
- #define BOOST_NO_NULLPTR
180
197
  #define BOOST_NO_RAW_LITERALS
181
198
  #define BOOST_NO_SCOPED_ENUMS
182
199
  #define BOOST_NO_SFINAE_EXPR
183
200
  #define BOOST_NO_TEMPLATE_ALIASES
184
201
  #define BOOST_NO_UNICODE_LITERALS
185
202
  #define BOOST_NO_VARIADIC_TEMPLATES
186
-
187
203
  //
188
204
  // prefix and suffix headers:
189
205
  //