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
@@ -5,6 +5,7 @@
5
5
  # define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
6
6
 
7
7
  # include <boost/preprocessor/cat.hpp>
8
+ # include <boost/concept/detail/backward_compatibility.hpp>
8
9
 
9
10
  # ifdef BOOST_OLD_CONCEPT_SUPPORT
10
11
  # include <boost/concept/detail/has_constraints.hpp>
@@ -13,7 +14,7 @@
13
14
 
14
15
  // This implementation works on Comeau and GCC, all the way back to
15
16
  // 2.95
16
- namespace boost { namespace concept {
17
+ namespace boost { namespace concepts {
17
18
 
18
19
  template <class ModelFn>
19
20
  struct requirement_;
@@ -29,6 +30,14 @@ struct requirement
29
30
  static void failed() { ((Model*)0)->~Model(); }
30
31
  };
31
32
 
33
+ struct failed {};
34
+
35
+ template <class Model>
36
+ struct requirement<failed ************ Model::************>
37
+ {
38
+ static void failed() { ((Model*)0)->~Model(); }
39
+ };
40
+
32
41
  # ifdef BOOST_OLD_CONCEPT_SUPPORT
33
42
 
34
43
  template <class Model>
@@ -40,9 +49,9 @@ struct constraint
40
49
  template <class Model>
41
50
  struct requirement_<void(*)(Model)>
42
51
  : mpl::if_<
43
- concept::not_satisfied<Model>
52
+ concepts::not_satisfied<Model>
44
53
  , constraint<Model>
45
- , requirement<Model>
54
+ , requirement<failed ************ Model::************>
46
55
  >::type
47
56
  {};
48
57
 
@@ -51,14 +60,14 @@ struct requirement_<void(*)(Model)>
51
60
  // For GCC-2.x, these can't have exactly the same name
52
61
  template <class Model>
53
62
  struct requirement_<void(*)(Model)>
54
- : requirement<Model>
63
+ : requirement<failed ************ Model::************>
55
64
  {};
56
65
 
57
66
  # endif
58
67
 
59
68
  # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
60
- typedef ::boost::concept::detail::instantiate< \
61
- &::boost::concept::requirement_<ModelFnPtr>::failed> \
69
+ typedef ::boost::concepts::detail::instantiate< \
70
+ &::boost::concepts::requirement_<ModelFnPtr>::failed> \
62
71
  BOOST_PP_CAT(boost_concept_check,__LINE__)
63
72
 
64
73
  }}
@@ -6,7 +6,9 @@
6
6
 
7
7
  # include <boost/mpl/bool.hpp>
8
8
  # include <boost/detail/workaround.hpp>
9
- namespace boost { namespace concept {
9
+ # include <boost/concept/detail/backward_compatibility.hpp>
10
+
11
+ namespace boost { namespace concepts {
10
12
 
11
13
  namespace detail
12
14
  {
@@ -19,7 +21,7 @@ namespace detail
19
21
  template <class Model, void (Model::*)()>
20
22
  struct wrap_constraints {};
21
23
 
22
- #if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580)
24
+ #if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__)
23
25
  // Work around the following bogus error in Sun Studio 11, by
24
26
  // turning off the has_constraints function entirely:
25
27
  // Error: complex expression not allowed in dependent template
@@ -43,6 +45,6 @@ struct not_satisfied
43
45
  typedef mpl::bool_<value> type;
44
46
  };
45
47
 
46
- }} // namespace boost::concept::detail
48
+ }} // namespace boost::concepts::detail
47
49
 
48
50
  #endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
@@ -6,8 +6,9 @@
6
6
 
7
7
  # include <boost/concept/assert.hpp>
8
8
  # include <boost/detail/workaround.hpp>
9
+ # include <boost/concept/detail/backward_compatibility.hpp>
9
10
 
10
- namespace boost { namespace concept {
11
+ namespace boost { namespace concepts {
11
12
 
12
13
  # if BOOST_WORKAROUND(__GNUC__, == 2)
13
14
 
@@ -25,19 +26,19 @@ struct usage_requirements
25
26
 
26
27
  # define BOOST_CONCEPT_USAGE(model) \
27
28
  model(); /* at least 2.96 and 3.4.3 both need this :( */ \
28
- BOOST_CONCEPT_ASSERT((boost::concept::usage_requirements<model>)); \
29
+ BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
29
30
  ~model()
30
31
 
31
32
  # else
32
33
 
33
34
  # define BOOST_CONCEPT_USAGE(model) \
34
- BOOST_CONCEPT_ASSERT((boost::concept::usage_requirements<model>)); \
35
+ BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
35
36
  ~model()
36
37
 
37
38
  # endif
38
39
 
39
40
  # endif
40
41
 
41
- }} // namespace boost::concept
42
+ }} // namespace boost::concepts
42
43
 
43
44
  #endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP
@@ -330,7 +330,16 @@ namespace boost
330
330
  {
331
331
  f(arg);
332
332
  }
333
-
333
+
334
+ #if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
335
+ && BOOST_WORKAROUND(__GNUC__, > 3)))
336
+ // Declare a dummy construktor to make gcc happy.
337
+ // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
338
+ // (warning: non-static reference "const double& boost::UnaryFunction<YourClassHere>::arg"
339
+ // in class without a constructor [-Wuninitialized])
340
+ UnaryFunction();
341
+ #endif
342
+
334
343
  Func f;
335
344
  Arg arg;
336
345
  };
@@ -21,7 +21,7 @@
21
21
  // 8026 - functions taking class by value arguments are not expanded inline
22
22
 
23
23
  #pragma nopushoptwarn
24
- # pragma option push -Vx -Ve -a8 -b -pc -Vmv -VC- -Vl- -w-8027 -w-8026
24
+ # pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
25
25
 
26
26
 
27
27
 
@@ -25,6 +25,9 @@ BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
25
25
  of the library selected (useful for debugging).
26
26
  BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
27
27
  rather than a mangled-name version.
28
+ BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option.
29
+ This is essentially the same as the default name-mangled version, but without
30
+ the compiler name and version, or the Boost version. Just the build options.
28
31
 
29
32
  These macros will be undef'ed at the end of the header, further this header
30
33
  has no include guards - so be sure to include it only once from your library!
@@ -60,6 +63,8 @@ BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
60
63
  a hiphen:
61
64
 
62
65
  s static runtime (dynamic if not present).
66
+ g debug/diagnostic runtime (release if not present).
67
+ y Python debug/diagnostic runtime (release if not present).
63
68
  d debug build (release if not present).
64
69
  g debug/diagnostic runtime (release if not present).
65
70
  p STLPort Build.
@@ -183,8 +188,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
183
188
 
184
189
  # if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
185
190
 
186
- # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
191
+ # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
192
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
193
+ # define BOOST_LIB_RT_OPT "-gydp"
194
+ # elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
187
195
  # define BOOST_LIB_RT_OPT "-gdp"
196
+ # elif defined(_DEBUG)\
197
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
198
+ # define BOOST_LIB_RT_OPT "-gydp"
199
+ # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
200
+ # error "Build options aren't compatible with pre-built libraries"
188
201
  # elif defined(_DEBUG)
189
202
  # define BOOST_LIB_RT_OPT "-gdp"
190
203
  # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
@@ -195,8 +208,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
195
208
 
196
209
  # elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
197
210
 
198
- # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
211
+ # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
212
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
213
+ # define BOOST_LIB_RT_OPT "-gydpn"
214
+ # elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
199
215
  # define BOOST_LIB_RT_OPT "-gdpn"
216
+ # elif defined(_DEBUG)\
217
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
218
+ # define BOOST_LIB_RT_OPT "-gydpn"
219
+ # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
220
+ # error "Build options aren't compatible with pre-built libraries"
200
221
  # elif defined(_DEBUG)
201
222
  # define BOOST_LIB_RT_OPT "-gdpn"
202
223
  # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
@@ -207,7 +228,9 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
207
228
 
208
229
  # else
209
230
 
210
- # if defined(_DEBUG)
231
+ # if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
232
+ # define BOOST_LIB_RT_OPT "-gyd"
233
+ # elif defined(_DEBUG)
211
234
  # define BOOST_LIB_RT_OPT "-gd"
212
235
  # else
213
236
  # define BOOST_LIB_RT_OPT
@@ -219,8 +242,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
219
242
 
220
243
  # if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
221
244
 
222
- # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
245
+ # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
246
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
247
+ # define BOOST_LIB_RT_OPT "-sgydp"
248
+ # elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
223
249
  # define BOOST_LIB_RT_OPT "-sgdp"
250
+ # elif defined(_DEBUG)\
251
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
252
+ # define BOOST_LIB_RT_OPT "-sgydp"
253
+ # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
254
+ # error "Build options aren't compatible with pre-built libraries"
224
255
  # elif defined(_DEBUG)
225
256
  # define BOOST_LIB_RT_OPT "-sgdp"
226
257
  # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
@@ -231,8 +262,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
231
262
 
232
263
  # elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
233
264
 
234
- # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
265
+ # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
266
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
267
+ # define BOOST_LIB_RT_OPT "-sgydpn"
268
+ # elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
235
269
  # define BOOST_LIB_RT_OPT "-sgdpn"
270
+ # elif defined(_DEBUG)\
271
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
272
+ # define BOOST_LIB_RT_OPT "-sgydpn"
273
+ # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
274
+ # error "Build options aren't compatible with pre-built libraries"
236
275
  # elif defined(_DEBUG)
237
276
  # define BOOST_LIB_RT_OPT "-sgdpn"
238
277
  # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
@@ -243,7 +282,10 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
243
282
 
244
283
  # else
245
284
 
246
- # if defined(_DEBUG)
285
+ # if defined(_DEBUG)\
286
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
287
+ # define BOOST_LIB_RT_OPT "-sgyd"
288
+ # elif defined(_DEBUG)
247
289
  # define BOOST_LIB_RT_OPT "-sgd"
248
290
  # else
249
291
  # define BOOST_LIB_RT_OPT "-s"
@@ -270,16 +312,26 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
270
312
 
271
313
  # ifdef _RTLDLL
272
314
 
273
- # ifdef BOOST_BORLAND_DEBUG
315
+ # if defined(BOOST_BORLAND_DEBUG)\
316
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
317
+ # define BOOST_LIB_RT_OPT "-yd"
318
+ # elif defined(BOOST_BORLAND_DEBUG)
274
319
  # define BOOST_LIB_RT_OPT "-d"
320
+ # elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
321
+ # define BOOST_LIB_RT_OPT -y
275
322
  # else
276
323
  # define BOOST_LIB_RT_OPT
277
324
  # endif
278
325
 
279
326
  # else
280
327
 
281
- # ifdef BOOST_BORLAND_DEBUG
328
+ # if defined(BOOST_BORLAND_DEBUG)\
329
+ && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
330
+ # define BOOST_LIB_RT_OPT "-syd"
331
+ # elif defined(BOOST_BORLAND_DEBUG)
282
332
  # define BOOST_LIB_RT_OPT "-sd"
333
+ # elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
334
+ # define BOOST_LIB_RT_OPT "-sy"
283
335
  # else
284
336
  # define BOOST_LIB_RT_OPT "-s"
285
337
  # endif
@@ -309,16 +361,21 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
309
361
  && defined(BOOST_LIB_RT_OPT) \
310
362
  && defined(BOOST_LIB_VERSION)
311
363
 
312
- #ifndef BOOST_AUTO_LINK_NOMANGLE
313
- # pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
364
+ #ifdef BOOST_AUTO_LINK_TAGGED
365
+ # pragma commentcomment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
314
366
  # ifdef BOOST_LIB_DIAGNOSTIC
315
367
  # pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
316
368
  # endif
317
- #else
369
+ #elif defined(BOOST_AUTO_LINK_NOMANGLE)
318
370
  # pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
319
371
  # ifdef BOOST_LIB_DIAGNOSTIC
320
372
  # pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
321
373
  # endif
374
+ #else
375
+ # pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
376
+ # ifdef BOOST_LIB_DIAGNOSTIC
377
+ # pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
378
+ # endif
322
379
  #endif
323
380
 
324
381
  #else
@@ -361,13 +418,3 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
361
418
  # undef BOOST_AUTO_LINK_NOMANGLE
362
419
  #endif
363
420
 
364
-
365
-
366
-
367
-
368
-
369
-
370
-
371
-
372
-
373
-
@@ -218,7 +218,7 @@
218
218
  //
219
219
  // check for exception handling support:
220
220
  //
221
- #if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)
221
+ #if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
222
222
  # define BOOST_NO_EXCEPTIONS
223
223
  #endif
224
224
  //
@@ -230,8 +230,9 @@
230
230
  //
231
231
  // all versions support __declspec:
232
232
  //
233
- #ifndef __STRICT_ANSI__
234
- # define BOOST_HAS_DECLSPEC
233
+ #if defined(__STRICT_ANSI__)
234
+ // config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
235
+ # define BOOST_SYMBOL_EXPORT
235
236
  #endif
236
237
  //
237
238
  // ABI fixing headers:
@@ -261,6 +262,13 @@
261
262
  # define BOOST_NO_VOID_RETURNS
262
263
  #endif
263
264
 
265
+ // Borland did not implement value-initialization completely, as I reported
266
+ // in 2007, Borland Report 51854, "Value-initialization: POD struct should be
267
+ // zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
268
+ // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
269
+ // (Niels Dekker, LKEB, April 2010)
270
+ #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
271
+
264
272
  #define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
265
273
 
266
274
 
@@ -0,0 +1,62 @@
1
+ // (C) Copyright Douglas Gregor 2010
2
+ //
3
+ // Use, modification and distribution are subject to the
4
+ // Boost Software License, Version 1.0. (See accompanying file
5
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
+
7
+ // See http://www.boost.org for most recent version.
8
+
9
+ // Clang compiler setup.
10
+
11
+ #if __has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
12
+ #else
13
+ # define BOOST_NO_EXCEPTIONS
14
+ #endif
15
+
16
+ #if __has_feature(cxx_rtti)
17
+ #else
18
+ # define BOOST_NO_RTTI
19
+ #endif
20
+
21
+ #if defined(__int64)
22
+ # define BOOST_HAS_MS_INT64
23
+ #endif
24
+
25
+ #define BOOST_HAS_NRVO
26
+
27
+ // NOTE: Clang's C++0x support is not worth detecting. However, it
28
+ // supports both extern templates and "long long" even in C++98/03
29
+ // mode.
30
+ #define BOOST_NO_AUTO_DECLARATIONS
31
+ #define BOOST_NO_AUTO_MULTIDECLARATIONS
32
+ #define BOOST_NO_CHAR16_T
33
+ #define BOOST_NO_CHAR32_T
34
+ #define BOOST_NO_CONCEPTS
35
+ #define BOOST_NO_CONSTEXPR
36
+ #define BOOST_NO_DECLTYPE
37
+ #define BOOST_NO_DEFAULTED_FUNCTIONS
38
+ #define BOOST_NO_DELETED_FUNCTIONS
39
+ #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
40
+ #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
41
+ #define BOOST_NO_INITIALIZER_LISTS
42
+ #define BOOST_NO_LAMBDAS
43
+ #define BOOST_NO_NULLPTR
44
+ #define BOOST_NO_RAW_LITERALS
45
+ #define BOOST_NO_RVALUE_REFERENCES
46
+ #define BOOST_NO_SCOPED_ENUMS
47
+ #define BOOST_NO_STATIC_ASSERT
48
+ #define BOOST_NO_TEMPLATE_ALIASES
49
+ #define BOOST_NO_UNICODE_LITERALS
50
+ #define BOOST_NO_VARIADIC_TEMPLATES
51
+
52
+ // HACK: Clang does support extern templates, but Boost's test for
53
+ // them is wrong.
54
+ #define BOOST_NO_EXTERN_TEMPLATE
55
+
56
+ #ifndef BOOST_COMPILER
57
+ # define BOOST_COMPILER "Clang version " __clang_version__
58
+ #endif
59
+
60
+ // Macro used to identify the Clang compiler.
61
+ #define BOOST_CLANG 1
62
+
@@ -19,8 +19,8 @@
19
19
  #endif
20
20
  //
21
21
  // versions check:
22
- // last known and checked version is 0x620
23
- #if (__CODEGEARC__ > 0x620)
22
+ // last known and checked version is 0x621
23
+ #if (__CODEGEARC__ > 0x621)
24
24
  # if defined(BOOST_ASSERT_CONFIG)
25
25
  # error "Unknown compiler version - please run the configure tests and report the results"
26
26
  # else
@@ -41,7 +41,7 @@
41
41
  #endif
42
42
 
43
43
  // CodeGear C++ Builder 2010
44
- #if (__CODEGEARC__ <= 0x620)
44
+ #if (__CODEGEARC__ <= 0x621)
45
45
  # define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type
46
46
  # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
47
47
  # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
@@ -51,6 +51,15 @@
51
51
  // Temporary hack, until specific MPL preprocessed headers are generated
52
52
  # define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
53
53
 
54
+ // CodeGear has not yet completely implemented value-initialization, for
55
+ // example for array types, as I reported in 2010: Embarcadero Report 83751,
56
+ // "Value-initialization: arrays should have each element value-initialized",
57
+ // http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
58
+ // Last checked version: Embarcadero C++ 6.21
59
+ // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
60
+ // (Niels Dekker, LKEB, April 2010)
61
+ # define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
62
+
54
63
  # ifdef NDEBUG
55
64
  // fix broken <cstring> so that Boost.test works:
56
65
  # include <cstring>
@@ -66,6 +75,11 @@
66
75
  //
67
76
  // C++0x macros:
68
77
  //
78
+ #if (__CODEGEARC__ <= 0x620)
79
+ #define BOOST_NO_STATIC_ASSERT
80
+ #else
81
+ #define BOOST_HAS_STATIC_ASSERT
82
+ #endif
69
83
  #define BOOST_HAS_CHAR16_T
70
84
  #define BOOST_HAS_CHAR32_T
71
85
  #define BOOST_HAS_LONG_LONG
@@ -91,7 +105,6 @@
91
105
  #define BOOST_NO_RAW_LITERALS
92
106
  #define BOOST_NO_RVALUE_REFERENCES
93
107
  #define BOOST_NO_SFINAE_EXPR
94
- #define BOOST_NO_STATIC_ASSERT
95
108
  #define BOOST_NO_TEMPLATE_ALIASES
96
109
  #define BOOST_NO_UNICODE_LITERALS
97
110
  #define BOOST_NO_VARIADIC_TEMPLATES
@@ -122,7 +135,7 @@
122
135
  //
123
136
  // check for exception handling support:
124
137
  //
125
- #if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)
138
+ #if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
126
139
  # define BOOST_NO_EXCEPTIONS
127
140
  #endif
128
141
  //
@@ -134,8 +147,9 @@
134
147
  //
135
148
  // all versions support __declspec:
136
149
  //
137
- #if !defined(__STRICT_ANSI__)
138
- # define BOOST_HAS_DECLSPEC
150
+ #if defined(__STRICT_ANSI__)
151
+ // config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
152
+ # define BOOST_SYMBOL_EXPORT
139
153
  #endif
140
154
  //
141
155
  // ABI fixing headers: