passenger 3.0.21 → 3.9.1.beta
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data/DEVELOPERS.TXT +4 -10
- data/NEWS +19 -27
- data/Rakefile +20 -19
- data/bin/passenger +3 -2
- data/bin/passenger-config +35 -5
- data/bin/passenger-install-apache2-module +12 -12
- data/bin/passenger-install-nginx-module +55 -38
- data/bin/passenger-memory-stats +3 -1
- data/bin/passenger-status +7 -35
- data/build/agents.rb +107 -21
- data/build/apache2.rb +11 -46
- data/build/basics.rb +61 -9
- data/build/common_library.rb +59 -142
- data/build/cxx_tests.rb +111 -110
- data/build/documentation.rb +33 -0
- data/build/misc.rb +30 -12
- data/build/nginx.rb +10 -39
- data/build/oxt_tests.rb +1 -0
- data/build/ruby_extension.rb +1 -5
- data/build/test_basics.rb +3 -2
- data/dev/copy_boost_headers.rb +2 -1
- data/doc/Architectural overview.html +49 -90
- data/doc/DebuggingAndStressTesting.txt.md +49 -0
- data/doc/Packaging.txt.md +254 -0
- data/doc/Security of user switching support.html +35 -66
- data/doc/Users guide Apache.html +588 -758
- data/doc/Users guide Apache.idmap.txt +253 -136
- data/doc/Users guide Apache.txt +154 -109
- data/doc/Users guide Nginx.html +544 -660
- data/doc/Users guide Nginx.idmap.txt +179 -91
- data/doc/Users guide Nginx.txt +192 -118
- data/doc/Users guide Standalone.html +65 -48
- data/doc/Users guide Standalone.idmap.txt +10 -2
- data/doc/Users guide Standalone.txt +4 -0
- data/doc/images/glyphicons-halflings-white.png +0 -0
- data/doc/images/glyphicons-halflings.png +0 -0
- data/doc/images/phusion_banner_small.png +0 -0
- data/doc/images/{smart-lv2.png → smart.png} +0 -0
- data/doc/images/{smart-lv2.svg → smart.svg} +0 -0
- data/doc/templates/bootstrap.min.css +397 -0
- data/doc/templates/markdown.html.erb +117 -0
- data/doc/users_guide_snippets/analysis_and_system_maintenance.txt +2 -1
- data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +26 -48
- data/doc/users_guide_snippets/passenger_spawn_method.txt +18 -30
- data/doc/users_guide_snippets/support_information.txt +30 -0
- data/ext/apache2/Bucket.cpp +9 -26
- data/ext/apache2/Bucket.h +13 -10
- data/ext/apache2/Configuration.cpp +70 -58
- data/ext/apache2/Configuration.hpp +19 -47
- data/ext/apache2/DirectoryMapper.h +7 -7
- data/ext/apache2/Hooks.cpp +150 -313
- data/ext/boost/algorithm/string/detail/case_conv.hpp +4 -2
- data/ext/boost/algorithm/string/detail/find_format.hpp +20 -20
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +23 -23
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +2 -2
- data/ext/boost/algorithm/string/detail/formatter.hpp +25 -0
- data/ext/boost/algorithm/string/formatter.hpp +20 -3
- data/ext/boost/assert.hpp +85 -4
- data/ext/boost/bind/bind.hpp +1 -1
- data/ext/boost/concept/detail/backward_compatibility.hpp +1 -1
- data/ext/boost/concept_check.hpp +140 -64
- data/ext/boost/config.hpp +1 -1
- data/ext/boost/config/auto_link.hpp +8 -6
- data/ext/boost/config/compiler/borland.hpp +12 -2
- data/ext/boost/config/compiler/clang.hpp +89 -30
- data/ext/boost/config/compiler/codegear.hpp +3 -2
- data/ext/boost/config/compiler/common_edg.hpp +7 -5
- data/ext/boost/config/compiler/cray.hpp +61 -0
- data/ext/boost/config/compiler/digitalmars.hpp +9 -1
- data/ext/boost/config/compiler/gcc.hpp +33 -24
- data/ext/boost/config/compiler/gcc_xml.hpp +4 -0
- data/ext/boost/config/compiler/hp_acc.hpp +12 -1
- data/ext/boost/config/compiler/intel.hpp +78 -4
- data/ext/boost/config/compiler/metrowerks.hpp +4 -1
- data/ext/boost/config/compiler/mpw.hpp +4 -1
- data/ext/boost/config/compiler/nvcc.hpp +8 -66
- data/ext/boost/config/compiler/pathscale.hpp +80 -0
- data/ext/boost/config/compiler/pgi.hpp +5 -5
- data/ext/boost/config/compiler/sunpro_cc.hpp +4 -1
- data/ext/boost/config/compiler/vacpp.hpp +37 -13
- data/ext/boost/config/compiler/visualc.hpp +24 -11
- data/ext/boost/config/platform/bsd.hpp +1 -1
- data/ext/boost/config/platform/cray.hpp +18 -0
- data/ext/boost/config/platform/cygwin.hpp +10 -0
- data/ext/boost/config/platform/linux.hpp +5 -0
- data/ext/boost/config/platform/macos.hpp +5 -4
- data/ext/boost/config/platform/symbian.hpp +5 -2
- data/ext/boost/config/platform/vms.hpp +25 -0
- data/ext/boost/config/platform/win32.hpp +7 -1
- data/ext/boost/config/select_compiler_config.hpp +8 -25
- data/ext/boost/config/select_platform_config.hpp +8 -1
- data/ext/boost/config/select_stdlib_config.hpp +9 -1
- data/ext/boost/config/stdlib/dinkumware.hpp +6 -9
- data/ext/boost/config/stdlib/libcomo.hpp +1 -4
- data/ext/boost/config/stdlib/libcpp.hpp +36 -0
- data/ext/boost/config/stdlib/libstdcpp3.hpp +37 -11
- data/ext/boost/config/stdlib/modena.hpp +1 -4
- data/ext/boost/config/stdlib/msl.hpp +1 -4
- data/ext/boost/config/stdlib/roguewave.hpp +9 -6
- data/ext/boost/config/stdlib/sgi.hpp +12 -4
- data/ext/boost/config/stdlib/stlport.hpp +11 -4
- data/ext/boost/config/stdlib/vacpp.hpp +11 -4
- data/ext/boost/config/suffix.hpp +71 -6
- data/ext/boost/config/warning_disable.hpp +1 -1
- data/ext/boost/container/container_fwd.hpp +177 -0
- data/ext/boost/cstdint.hpp +17 -12
- data/ext/boost/current_function.hpp +2 -1
- data/ext/boost/date_time/c_time.hpp +17 -1
- data/ext/boost/date_time/compiler_config.hpp +13 -15
- data/ext/boost/date_time/date_formatting.hpp +7 -1
- data/ext/boost/date_time/filetime_functions.hpp +4 -4
- data/ext/boost/date_time/gregorian_calendar.ipp +2 -2
- data/ext/boost/date_time/strings_from_facet.hpp +3 -3
- data/ext/boost/date_time/time_facet.hpp +101 -101
- data/ext/boost/detail/endian.hpp +4 -2
- data/ext/boost/detail/fenv.hpp +74 -0
- data/ext/boost/detail/sp_typeinfo.hpp +6 -0
- data/ext/boost/exception/detail/clone_current_exception.hpp +47 -0
- data/ext/boost/exception/detail/exception_ptr.hpp +194 -122
- data/ext/boost/exception/detail/type_info.hpp +3 -3
- data/ext/boost/exception/diagnostic_information.hpp +37 -21
- data/ext/boost/exception/exception.hpp +21 -1
- data/ext/boost/exception/info.hpp +0 -1
- data/ext/boost/function.hpp +2 -2
- data/ext/boost/function/function_base.hpp +15 -9
- data/ext/boost/function/function_template.hpp +26 -48
- data/ext/boost/integer_fwd.hpp +0 -16
- data/ext/boost/integer_traits.hpp +2 -2
- data/ext/boost/iterator.hpp +1 -1
- data/ext/boost/iterator/iterator_adaptor.hpp +1 -7
- data/ext/boost/iterator/iterator_facade.hpp +13 -13
- data/ext/boost/iterator/transform_iterator.hpp +5 -20
- data/ext/boost/lexical_cast.hpp +1655 -673
- data/ext/boost/math/policies/policy.hpp +982 -0
- data/ext/boost/math/special_functions/detail/fp_traits.hpp +570 -0
- data/ext/boost/math/special_functions/detail/round_fwd.hpp +80 -0
- data/ext/boost/math/special_functions/fpclassify.hpp +533 -0
- data/ext/boost/math/special_functions/math_fwd.hpp +1070 -0
- data/ext/boost/math/special_functions/sign.hpp +145 -0
- data/ext/boost/math/tools/config.hpp +321 -0
- data/ext/boost/math/tools/promotion.hpp +150 -0
- data/ext/boost/math/tools/real_cast.hpp +29 -0
- data/ext/boost/math/tools/user.hpp +97 -0
- data/ext/boost/move/move.hpp +1222 -0
- data/ext/boost/mpl/O1_size.hpp +40 -0
- data/ext/boost/mpl/O1_size_fwd.hpp +24 -0
- data/ext/boost/mpl/advance.hpp +76 -0
- data/ext/boost/mpl/advance_fwd.hpp +28 -0
- data/ext/boost/mpl/at.hpp +52 -0
- data/ext/boost/mpl/at_fwd.hpp +24 -0
- data/ext/boost/mpl/aux_/O1_size_impl.hpp +87 -0
- data/ext/boost/mpl/aux_/advance_backward.hpp +128 -0
- data/ext/boost/mpl/aux_/advance_forward.hpp +127 -0
- data/ext/boost/mpl/aux_/arithmetic_op.hpp +92 -0
- data/ext/boost/mpl/aux_/at_impl.hpp +45 -0
- data/ext/boost/mpl/aux_/begin_end_impl.hpp +101 -0
- data/ext/boost/mpl/aux_/clear_impl.hpp +35 -0
- data/ext/boost/mpl/aux_/comparison_op.hpp +83 -0
- data/ext/boost/mpl/aux_/config/forwarding.hpp +27 -0
- data/ext/boost/mpl/aux_/config/typeof.hpp +38 -0
- data/ext/boost/mpl/aux_/contains_impl.hpp +61 -0
- data/ext/boost/mpl/aux_/find_if_pred.hpp +31 -0
- data/ext/boost/mpl/aux_/fold_impl.hpp +43 -0
- data/ext/boost/mpl/aux_/has_begin.hpp +23 -0
- data/ext/boost/mpl/aux_/has_size.hpp +23 -0
- data/ext/boost/mpl/aux_/has_tag.hpp +23 -0
- data/ext/boost/mpl/aux_/inserter_algorithm.hpp +159 -0
- data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +64 -0
- data/ext/boost/mpl/aux_/iter_apply.hpp +47 -0
- data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +210 -0
- data/ext/boost/mpl/aux_/iter_fold_impl.hpp +42 -0
- data/ext/boost/mpl/aux_/lambda_spec.hpp +49 -0
- data/ext/boost/mpl/aux_/largest_int.hpp +63 -0
- data/ext/boost/mpl/aux_/msvc_eti_base.hpp +77 -0
- data/ext/boost/mpl/aux_/msvc_type.hpp +62 -0
- data/ext/boost/mpl/aux_/numeric_cast_utils.hpp +77 -0
- data/ext/boost/mpl/aux_/numeric_op.hpp +315 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +97 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +133 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +180 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/less.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/list.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/minus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +94 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/plus.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +231 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/times.hpp +146 -0
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector.hpp +323 -0
- data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +67 -0
- data/ext/boost/mpl/aux_/push_back_impl.hpp +70 -0
- data/ext/boost/mpl/aux_/push_front_impl.hpp +71 -0
- data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +44 -0
- data/ext/boost/mpl/aux_/size_impl.hpp +52 -0
- data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +63 -0
- data/ext/boost/mpl/back_fwd.hpp +24 -0
- data/ext/boost/mpl/back_inserter.hpp +34 -0
- data/ext/boost/mpl/begin_end.hpp +57 -0
- data/ext/boost/mpl/begin_end_fwd.hpp +27 -0
- data/ext/boost/mpl/clear.hpp +39 -0
- data/ext/boost/mpl/clear_fwd.hpp +24 -0
- data/ext/boost/mpl/comparison.hpp +24 -0
- data/ext/boost/mpl/contains.hpp +41 -0
- data/ext/boost/mpl/contains_fwd.hpp +25 -0
- data/ext/boost/mpl/deref.hpp +41 -0
- data/ext/boost/mpl/distance.hpp +78 -0
- data/ext/boost/mpl/distance_fwd.hpp +28 -0
- data/ext/boost/mpl/empty_fwd.hpp +24 -0
- data/ext/boost/mpl/equal_to.hpp +21 -0
- data/ext/boost/mpl/find.hpp +38 -0
- data/ext/boost/mpl/find_if.hpp +50 -0
- data/ext/boost/mpl/fold.hpp +48 -0
- data/ext/boost/mpl/front_fwd.hpp +24 -0
- data/ext/boost/mpl/front_inserter.hpp +33 -0
- data/ext/boost/mpl/greater.hpp +21 -0
- data/ext/boost/mpl/greater_equal.hpp +21 -0
- data/ext/boost/mpl/inserter.hpp +32 -0
- data/ext/boost/mpl/iter_fold.hpp +49 -0
- data/ext/boost/mpl/iter_fold_if.hpp +117 -0
- data/ext/boost/mpl/iterator_range.hpp +42 -0
- data/ext/boost/mpl/iterator_tags.hpp +27 -0
- data/ext/boost/mpl/less.hpp +21 -0
- data/ext/boost/mpl/less_equal.hpp +21 -0
- data/ext/boost/mpl/limits/list.hpp +21 -0
- data/ext/boost/mpl/limits/vector.hpp +21 -0
- data/ext/boost/mpl/list.hpp +57 -0
- data/ext/boost/mpl/list/aux_/O1_size.hpp +33 -0
- data/ext/boost/mpl/list/aux_/begin_end.hpp +44 -0
- data/ext/boost/mpl/list/aux_/clear.hpp +34 -0
- data/ext/boost/mpl/list/aux_/empty.hpp +34 -0
- data/ext/boost/mpl/list/aux_/front.hpp +33 -0
- data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +35 -0
- data/ext/boost/mpl/list/aux_/item.hpp +55 -0
- data/ext/boost/mpl/list/aux_/iterator.hpp +76 -0
- data/ext/boost/mpl/list/aux_/pop_front.hpp +34 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +149 -0
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +169 -0
- data/ext/boost/mpl/list/aux_/push_back.hpp +36 -0
- data/ext/boost/mpl/list/aux_/push_front.hpp +39 -0
- data/ext/boost/mpl/list/aux_/size.hpp +33 -0
- data/ext/boost/mpl/list/aux_/tag.hpp +24 -0
- data/ext/boost/mpl/list/list0.hpp +42 -0
- data/ext/boost/mpl/list/list10.hpp +43 -0
- data/ext/boost/mpl/list/list20.hpp +43 -0
- data/ext/boost/mpl/long.hpp +22 -0
- data/ext/boost/mpl/long_fwd.hpp +27 -0
- data/ext/boost/mpl/minus.hpp +21 -0
- data/ext/boost/mpl/multiplies.hpp +53 -0
- data/ext/boost/mpl/negate.hpp +81 -0
- data/ext/boost/mpl/not_equal_to.hpp +21 -0
- data/ext/boost/mpl/numeric_cast.hpp +41 -0
- data/ext/boost/mpl/pair.hpp +70 -0
- data/ext/boost/mpl/plus.hpp +21 -0
- data/ext/boost/mpl/pop_back_fwd.hpp +24 -0
- data/ext/boost/mpl/pop_front_fwd.hpp +24 -0
- data/ext/boost/mpl/prior.hpp +19 -0
- data/ext/boost/mpl/push_back.hpp +53 -0
- data/ext/boost/mpl/push_back_fwd.hpp +24 -0
- data/ext/boost/mpl/push_front.hpp +52 -0
- data/ext/boost/mpl/push_front_fwd.hpp +24 -0
- data/ext/boost/mpl/remove_if.hpp +83 -0
- data/ext/boost/mpl/reverse_fold.hpp +50 -0
- data/ext/boost/mpl/same_as.hpp +55 -0
- data/ext/boost/mpl/sequence_tag.hpp +124 -0
- data/ext/boost/mpl/sequence_tag_fwd.hpp +26 -0
- data/ext/boost/mpl/size.hpp +42 -0
- data/ext/boost/mpl/size_fwd.hpp +24 -0
- data/ext/boost/mpl/tag.hpp +52 -0
- data/ext/boost/mpl/times.hpp +21 -0
- data/ext/boost/mpl/vector.hpp +57 -0
- data/ext/boost/mpl/vector/aux_/O1_size.hpp +56 -0
- data/ext/boost/mpl/vector/aux_/at.hpp +116 -0
- data/ext/boost/mpl/vector/aux_/back.hpp +59 -0
- data/ext/boost/mpl/vector/aux_/begin_end.hpp +49 -0
- data/ext/boost/mpl/vector/aux_/clear.hpp +55 -0
- data/ext/boost/mpl/vector/aux_/empty.hpp +68 -0
- data/ext/boost/mpl/vector/aux_/front.hpp +56 -0
- data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +55 -0
- data/ext/boost/mpl/vector/aux_/item.hpp +103 -0
- data/ext/boost/mpl/vector/aux_/iterator.hpp +130 -0
- data/ext/boost/mpl/vector/aux_/pop_back.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/pop_front.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +829 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +1144 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +139 -0
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +159 -0
- data/ext/boost/mpl/vector/aux_/push_back.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/push_front.hpp +40 -0
- data/ext/boost/mpl/vector/aux_/size.hpp +49 -0
- data/ext/boost/mpl/vector/aux_/tag.hpp +32 -0
- data/ext/boost/mpl/vector/aux_/vector0.hpp +52 -0
- data/ext/boost/mpl/vector/vector0.hpp +34 -0
- data/ext/boost/mpl/vector/vector10.hpp +45 -0
- data/ext/boost/mpl/vector/vector20.hpp +45 -0
- data/ext/boost/none.hpp +1 -1
- data/ext/boost/numeric/conversion/bounds.hpp +24 -0
- data/ext/boost/numeric/conversion/cast.hpp +61 -0
- data/ext/boost/numeric/conversion/conversion_traits.hpp +39 -0
- data/ext/boost/numeric/conversion/converter.hpp +68 -0
- data/ext/boost/numeric/conversion/converter_policies.hpp +186 -0
- data/ext/boost/numeric/conversion/detail/bounds.hpp +58 -0
- data/ext/boost/numeric/conversion/detail/conversion_traits.hpp +97 -0
- data/ext/boost/numeric/conversion/detail/converter.hpp +602 -0
- data/ext/boost/numeric/conversion/detail/int_float_mixture.hpp +72 -0
- data/ext/boost/numeric/conversion/detail/is_subranged.hpp +234 -0
- data/ext/boost/numeric/conversion/detail/meta.hpp +120 -0
- data/ext/boost/numeric/conversion/detail/numeric_cast_traits.hpp +138 -0
- data/ext/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp +1741 -0
- data/ext/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp +347 -0
- data/ext/boost/numeric/conversion/detail/sign_mixture.hpp +72 -0
- data/ext/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +69 -0
- data/ext/boost/numeric/conversion/int_float_mixture_enum.hpp +29 -0
- data/ext/boost/numeric/conversion/numeric_cast_traits.hpp +31 -0
- data/ext/boost/numeric/conversion/sign_mixture_enum.hpp +29 -0
- data/ext/boost/numeric/conversion/udt_builtin_mixture_enum.hpp +26 -0
- data/ext/boost/operators.hpp +3 -1
- data/ext/boost/optional/optional.hpp +146 -79
- data/ext/boost/optional/optional_fwd.hpp +8 -1
- data/ext/boost/preprocessor/cat.hpp +2 -2
- data/ext/boost/preprocessor/config/config.hpp +39 -4
- data/ext/boost/preprocessor/facilities/intercept.hpp +277 -0
- data/ext/boost/preprocessor/facilities/overload.hpp +25 -0
- data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +3 -3
- data/ext/boost/preprocessor/iteration/iterate.hpp +3 -3
- data/ext/boost/preprocessor/punctuation/paren.hpp +23 -0
- data/ext/boost/preprocessor/repetition/enum_shifted_params.hpp +44 -0
- data/ext/boost/preprocessor/seq/cat.hpp +5 -4
- data/ext/boost/preprocessor/seq/size.hpp +0 -1
- data/ext/boost/preprocessor/tuple/eat.hpp +83 -34
- data/ext/boost/preprocessor/tuple/elem.hpp +161 -355
- data/ext/boost/preprocessor/tuple/rem.hpp +110 -48
- data/ext/boost/preprocessor/tuple/to_list.hpp +90 -36
- data/ext/boost/preprocessor/variadic/elem.hpp +94 -0
- data/ext/boost/preprocessor/variadic/size.hpp +30 -0
- data/ext/boost/range/begin.hpp +17 -6
- data/ext/boost/range/concepts.hpp +37 -2
- data/ext/boost/range/detail/safe_bool.hpp +72 -0
- data/ext/boost/range/end.hpp +14 -9
- data/ext/boost/range/iterator_range_core.hpp +120 -12
- data/ext/boost/range/size.hpp +21 -5
- data/ext/boost/smart_ptr/detail/shared_count.hpp +88 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +3 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +142 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +9 -0
- data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +10 -2
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +5 -1
- data/ext/boost/smart_ptr/detail/spinlock.hpp +4 -1
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +20 -3
- data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +4 -0
- data/ext/boost/smart_ptr/make_shared.hpp +591 -22
- data/ext/boost/smart_ptr/shared_array.hpp +29 -1
- data/ext/boost/smart_ptr/shared_ptr.hpp +29 -13
- data/ext/boost/smart_ptr/weak_ptr.hpp +24 -12
- data/ext/boost/src/pthread/once.cpp +9 -7
- data/ext/boost/src/pthread/thread.cpp +32 -28
- data/ext/boost/src/pthread/timeconv.inl +4 -5
- data/ext/boost/src/tss_null.cpp +5 -1
- data/ext/boost/static_assert.hpp +8 -2
- data/ext/boost/thread/detail/config.hpp +19 -4
- data/ext/boost/thread/detail/move.hpp +11 -5
- data/ext/boost/thread/detail/thread.hpp +59 -43
- data/ext/boost/thread/exceptions.hpp +9 -9
- data/ext/boost/thread/future.hpp +150 -82
- data/ext/boost/thread/locks.hpp +101 -60
- data/ext/boost/thread/pthread/condition_variable.hpp +79 -32
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +12 -3
- data/ext/boost/thread/pthread/mutex.hpp +17 -14
- data/ext/boost/thread/pthread/once.hpp +3 -4
- data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +12 -2
- data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -19
- data/ext/boost/thread/pthread/shared_mutex.hpp +13 -13
- data/ext/boost/thread/pthread/thread_data.hpp +40 -12
- data/ext/boost/thread/thread_time.hpp +5 -0
- data/ext/boost/throw_exception.hpp +1 -1
- data/ext/boost/token_functions.hpp +34 -10
- data/ext/boost/type_traits/add_rvalue_reference.hpp +66 -0
- data/ext/boost/type_traits/alignment_of.hpp +1 -1
- data/ext/boost/type_traits/detail/bool_trait_def.hpp +26 -3
- data/ext/boost/type_traits/detail/bool_trait_undef.hpp +3 -2
- data/ext/boost/type_traits/detail/cv_traits_impl.hpp +1 -1
- data/ext/boost/type_traits/detail/size_t_trait_def.hpp +6 -4
- data/ext/boost/type_traits/detail/type_trait_def.hpp +8 -2
- data/ext/boost/type_traits/function_traits.hpp +1 -1
- data/ext/boost/type_traits/has_nothrow_constructor.hpp +53 -0
- data/ext/boost/type_traits/has_nothrow_copy.hpp +19 -5
- data/ext/boost/type_traits/has_trivial_constructor.hpp +51 -0
- data/ext/boost/type_traits/has_trivial_copy.hpp +20 -5
- data/ext/boost/type_traits/has_trivial_destructor.hpp +12 -5
- data/ext/boost/type_traits/intrinsics.hpp +119 -71
- data/ext/boost/type_traits/is_const.hpp +5 -5
- data/ext/boost/type_traits/is_convertible.hpp +14 -13
- data/ext/boost/type_traits/is_enum.hpp +1 -1
- data/ext/boost/type_traits/is_floating_point.hpp +27 -0
- data/ext/boost/type_traits/is_function.hpp +3 -3
- data/ext/boost/type_traits/is_fundamental.hpp +1 -1
- data/ext/boost/type_traits/is_member_function_pointer.hpp +2 -2
- data/ext/boost/type_traits/is_member_pointer.hpp +2 -2
- data/ext/boost/type_traits/is_pod.hpp +11 -3
- data/ext/boost/type_traits/is_pointer.hpp +2 -2
- data/ext/boost/type_traits/is_signed.hpp +8 -3
- data/ext/boost/type_traits/is_union.hpp +8 -0
- data/ext/boost/type_traits/is_unsigned.hpp +9 -4
- data/ext/boost/type_traits/is_volatile.hpp +5 -5
- data/ext/boost/type_traits/remove_cv.hpp +4 -3
- data/ext/boost/type_traits/remove_pointer.hpp +51 -2
- data/ext/boost/type_traits/remove_reference.hpp +2 -2
- data/ext/boost/type_traits/type_with_alignment.hpp +8 -2
- data/ext/boost/utility/declval.hpp +44 -0
- data/ext/boost/utility/detail/in_place_factory_prefix.hpp +36 -0
- data/ext/boost/utility/detail/in_place_factory_suffix.hpp +23 -0
- data/ext/boost/utility/detail/result_of_iterate.hpp +142 -0
- data/ext/boost/utility/in_place_factory.hpp +88 -0
- data/ext/boost/utility/result_of.hpp +103 -0
- data/ext/boost/utility/swap.hpp +55 -0
- data/ext/common/AnsiColorConstants.h +36 -0
- data/ext/common/ApplicationPool2/Common.h +87 -0
- data/ext/common/ApplicationPool2/ComponentInfo.h +53 -0
- data/ext/common/ApplicationPool2/Group.h +648 -0
- data/ext/common/ApplicationPool2/Implementation.cpp +580 -0
- data/ext/common/ApplicationPool2/Options.h +576 -0
- data/ext/common/ApplicationPool2/PipeWatcher.h +61 -0
- data/ext/common/ApplicationPool2/Pool.h +1181 -0
- data/ext/common/ApplicationPool2/Process.h +425 -0
- data/ext/common/ApplicationPool2/README.md +96 -0
- data/ext/common/ApplicationPool2/Session.h +158 -0
- data/ext/common/ApplicationPool2/Socket.h +246 -0
- data/ext/common/ApplicationPool2/Spawner.h +2212 -0
- data/ext/common/ApplicationPool2/SuperGroup.h +749 -0
- data/ext/common/BackgroundEventLoop.cpp +129 -0
- data/ext/common/BackgroundEventLoop.h +61 -0
- data/ext/common/Constants.h +3 -1
- data/ext/common/EventedBufferedInput.h +331 -0
- data/ext/common/EventedMessageServer.h +17 -34
- data/ext/common/EventedServer.h +2 -2
- data/ext/common/Exceptions.h +71 -19
- data/ext/common/FileDescriptor.h +8 -6
- data/ext/common/HttpConstants.h +167 -0
- data/ext/common/IniFile.h +24 -0
- data/ext/common/Logging.h +62 -849
- data/ext/common/MessageReadersWriters.h +19 -0
- data/ext/common/MessageServer.h +11 -14
- data/ext/common/MultiLibeio.cpp +198 -0
- data/ext/common/MultiLibeio.h +67 -0
- data/ext/common/ResourceLocator.h +24 -41
- data/ext/common/SafeLibev.h +186 -14
- data/ext/common/StaticString.h +23 -3
- data/ext/common/UnionStation.h +972 -0
- data/ext/common/Utils.cpp +168 -24
- data/ext/common/Utils.h +25 -3
- data/ext/common/Utils/CachedFileStat.hpp +4 -3
- data/ext/common/Utils/FileChangeChecker.h +2 -2
- data/ext/common/Utils/HashMap.h +50 -0
- data/ext/common/Utils/IOUtils.cpp +229 -68
- data/ext/common/Utils/IOUtils.h +134 -3
- data/ext/common/Utils/Lock.h +28 -0
- data/ext/common/Utils/MemoryBarrier.h +52 -0
- data/ext/common/Utils/PriorityQueue.h +54 -0
- data/ext/common/Utils/ProcessMetricsCollector.h +9 -11
- data/ext/common/Utils/ScopeGuard.h +50 -1
- data/ext/common/Utils/SmallVector.h +653 -0
- data/ext/common/Utils/StrIntUtils.cpp +26 -2
- data/ext/common/Utils/StrIntUtils.h +18 -2
- data/ext/common/Utils/StringMap.h +125 -8
- data/ext/common/Utils/Template.h +212 -0
- data/ext/common/Utils/fib.c +699 -0
- data/ext/common/Utils/fib.h +101 -0
- data/ext/common/Utils/fibpriv.h +67 -0
- data/ext/common/Utils/json-forwards.h +249 -0
- data/ext/common/Utils/json.h +1855 -0
- data/ext/common/Utils/jsoncpp.cpp +4230 -0
- data/ext/common/agents/Base.cpp +1126 -0
- data/ext/common/{AgentBase.h → agents/Base.h} +5 -1
- data/ext/common/agents/EnvPrinter.c +16 -0
- data/ext/common/agents/HelperAgent/AgentOptions.h +81 -0
- data/ext/common/{HelperAgent → agents/HelperAgent}/BacktracesServer.h +3 -2
- data/ext/common/agents/HelperAgent/FileBackedPipe.h +732 -0
- data/ext/common/agents/HelperAgent/Main.cpp +497 -0
- data/ext/common/agents/HelperAgent/RequestHandler.cpp +283 -0
- data/ext/common/agents/HelperAgent/RequestHandler.h +2139 -0
- data/ext/common/agents/HelperAgent/ScgiRequestParser.h +451 -0
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/DataStoreId.h +1 -1
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/FilterSupport.cpp +1 -1
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/FilterSupport.h +0 -0
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/LoggingServer.h +18 -16
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/Main.cpp +15 -13
- data/ext/common/{LoggingAgent → agents/LoggingAgent}/RemoteSender.h +6 -6
- data/ext/common/agents/SpawnPreparer.cpp +127 -0
- data/ext/common/{Watchdog.cpp → agents/Watchdog/Main.cpp} +63 -25
- data/ext/libeio/Changes +72 -0
- data/ext/{google/COPYING → libeio/LICENSE} +17 -9
- data/ext/libeio/Makefile.am +15 -0
- data/ext/libeio/Makefile.in +694 -0
- data/ext/libeio/aclocal.m4 +9418 -0
- data/ext/libeio/autogen.sh +3 -0
- data/ext/libeio/config.guess +1501 -0
- data/ext/libeio/config.h.in +136 -0
- data/ext/libeio/config.sub +1705 -0
- data/ext/libeio/configure +14822 -0
- data/ext/libeio/configure.ac +22 -0
- data/ext/libeio/demo.c +194 -0
- data/ext/libeio/ecb.h +457 -0
- data/ext/libeio/eio.c +2816 -0
- data/ext/libeio/eio.h +411 -0
- data/ext/libeio/install-sh +520 -0
- data/ext/libeio/libeio.m4 +211 -0
- data/ext/libeio/ltmain.sh +9636 -0
- data/ext/libeio/missing +376 -0
- data/ext/libeio/xthread.h +166 -0
- data/ext/libev/Changes +125 -7
- data/ext/libev/Makefile.am +5 -3
- data/ext/libev/Makefile.in +209 -120
- data/ext/libev/aclocal.m4 +6027 -4619
- data/ext/libev/autogen.sh +1 -4
- data/ext/libev/config.h.in +11 -7
- data/ext/libev/configure +7312 -14993
- data/ext/libev/configure.ac +12 -5
- data/ext/libev/depcomp +630 -0
- data/ext/libev/ev++.h +48 -32
- data/ext/libev/ev.c +1173 -391
- data/ext/libev/ev.h +315 -181
- data/ext/libev/ev_epoll.c +66 -15
- data/ext/libev/ev_kqueue.c +20 -18
- data/ext/libev/ev_poll.c +27 -23
- data/ext/libev/ev_port.c +39 -19
- data/ext/libev/ev_select.c +23 -17
- data/ext/libev/ev_vars.h +25 -8
- data/ext/libev/ev_win32.c +6 -6
- data/ext/libev/ev_wrap.h +22 -2
- data/ext/libev/event.c +18 -17
- data/ext/libev/event.h +16 -4
- data/ext/libev/libev.m4 +10 -6
- data/ext/libev/ltmain.sh +7353 -5811
- data/ext/nginx/Configuration.c +74 -42
- data/ext/nginx/Configuration.h +3 -5
- data/ext/nginx/ContentHandler.c +26 -83
- data/ext/nginx/ContentHandler.h +1 -1
- data/ext/nginx/config +13 -9
- data/ext/nginx/ngx_http_passenger_module.c +3 -7
- data/ext/oxt/detail/backtrace_enabled.hpp +5 -102
- data/ext/oxt/detail/context.hpp +90 -0
- data/ext/oxt/detail/spin_lock_darwin.hpp +4 -0
- data/ext/oxt/detail/spin_lock_gcc_x86.hpp +4 -0
- data/ext/oxt/detail/spin_lock_pthreads.hpp +14 -0
- data/ext/oxt/detail/tracable_exception_enabled.hpp +2 -2
- data/ext/oxt/dynamic_thread_group.hpp +27 -1
- data/ext/oxt/implementation.cpp +415 -0
- data/ext/oxt/{thread.cpp → initialize.hpp} +13 -6
- data/ext/oxt/macros.hpp +32 -1
- data/ext/oxt/spin_lock.hpp +6 -11
- data/ext/oxt/system_calls.cpp +204 -16
- data/ext/oxt/system_calls.hpp +85 -45
- data/ext/oxt/thread.hpp +13 -117
- data/ext/ruby/passenger_native_support.c +82 -237
- data/helper-scripts/backtrace-sanitizer.rb +114 -0
- data/helper-scripts/classic-rails-loader.rb +135 -0
- data/helper-scripts/classic-rails-preloader.rb +161 -0
- data/helper-scripts/node-loader.js +314 -0
- data/helper-scripts/rack-loader.rb +104 -0
- data/helper-scripts/rack-preloader.rb +132 -0
- data/helper-scripts/wsgi-loader.py +231 -0
- data/helper-scripts/wsgi-preloader.py +1 -0
- data/lib/phusion_passenger.rb +159 -61
- data/lib/phusion_passenger/abstract_installer.rb +182 -87
- data/lib/phusion_passenger/admin_tools/server_instance.rb +25 -19
- data/lib/phusion_passenger/analytics_logger.rb +5 -4
- data/lib/phusion_passenger/classic_rails/{request_handler.rb → thread_handler_extension.rb} +4 -40
- data/lib/phusion_passenger/classic_rails_extensions/init.rb +5 -3
- data/lib/phusion_passenger/common_library.rb +441 -0
- data/lib/phusion_passenger/console_text_template.rb +4 -16
- data/lib/phusion_passenger/constants.rb +1 -8
- data/lib/phusion_passenger/debug_logging.rb +5 -2
- data/lib/phusion_passenger/dependencies.rb +51 -13
- data/lib/phusion_passenger/loader_shared_helpers.rb +318 -0
- data/lib/phusion_passenger/message_channel.rb +3 -47
- data/lib/phusion_passenger/message_client.rb +2 -2
- data/lib/phusion_passenger/native_support.rb +36 -15
- data/lib/phusion_passenger/packaging.rb +8 -11
- data/lib/phusion_passenger/platform_info.rb +25 -17
- data/lib/phusion_passenger/platform_info/apache.rb +10 -7
- data/lib/phusion_passenger/platform_info/binary_compatibility.rb +10 -30
- data/lib/phusion_passenger/platform_info/compiler.rb +93 -34
- data/lib/phusion_passenger/platform_info/ruby.rb +37 -97
- data/lib/phusion_passenger/preloader_shared_helpers.rb +121 -0
- data/lib/phusion_passenger/public_api.rb +1 -4
- data/lib/phusion_passenger/rack/{request_handler.rb → thread_handler_extension.rb} +14 -63
- data/lib/phusion_passenger/rails3_extensions/init.rb +9 -8
- data/lib/phusion_passenger/request_handler.rb +500 -0
- data/lib/phusion_passenger/request_handler/thread_handler.rb +360 -0
- data/lib/phusion_passenger/ruby_core_enhancements.rb +142 -0
- data/lib/phusion_passenger/standalone/command.rb +36 -15
- data/lib/phusion_passenger/standalone/package_runtime_command.rb +16 -8
- data/lib/phusion_passenger/standalone/runtime_installer.rb +169 -72
- data/lib/phusion_passenger/standalone/start_command.rb +44 -39
- data/lib/phusion_passenger/standalone/utils.rb +5 -5
- data/lib/phusion_passenger/utils.rb +35 -914
- data/lib/phusion_passenger/utils/ansi_colors.rb +59 -0
- data/lib/phusion_passenger/utils/file_system_watcher.rb +1 -1
- data/lib/phusion_passenger/utils/robust_interruption.rb +134 -0
- data/lib/phusion_passenger/utils/tee_input.rb +174 -0
- data/lib/phusion_passenger/utils/tmpio.rb +33 -0
- data/lib/phusion_passenger/utils/unseekable_socket.rb +6 -0
- data/resources/mime.types +5 -1
- data/{lib/phusion_passenger/templates → resources}/standalone_default_root/index.html +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/apache_must_be_compiled_with_compatible_mpm.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/config_snippets.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/deployment_example.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/no_write_permission_to_passenger_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/run_installer_as_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/apache2/welcome.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/error_layout.css +6 -0
- data/resources/templates/error_layout.html.template +89 -0
- data/resources/templates/general_error.html.template +1 -0
- data/resources/templates/general_error_with_html.html.template +1 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/ask_for_extra_configure_flags.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/cannot_write_to_dir.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/config_snippets.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/config_snippets_inserted.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/confirm_extra_configure_flags.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/deployment_example.txt.erb +0 -0
- data/resources/templates/nginx/not_available_when_natively_packaged.txt.erb +8 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/pcre_could_not_be_downloaded.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/pcre_could_not_be_extracted.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/query_download_and_install.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/run_installer_as_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/nginx/welcome.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/cannot_write_to_dir.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/config.erb +26 -5
- data/{lib/phusion_passenger → resources}/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/run_installer_as_root.txt.erb +0 -0
- data/{lib/phusion_passenger → resources}/templates/standalone/welcome.txt.erb +0 -0
- data/resources/templates/undisclosed_error.html.template +25 -0
- data/test/config.json.example +42 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +86 -0
- data/test/cxx/ApplicationPool2/OptionsTest.cpp +44 -0
- data/test/cxx/ApplicationPool2/PoolTest.cpp +1234 -0
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +131 -0
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +229 -0
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +744 -0
- data/test/cxx/BufferedIOTest.cpp +7 -7
- data/test/cxx/CxxTestMain.cpp +65 -2
- data/test/cxx/FileBackedPipeTest.cpp +626 -0
- data/test/cxx/FileChangeCheckerTest.cpp +20 -18
- data/test/cxx/FilterSupportTest.cpp +5 -5
- data/test/cxx/IOUtilsTest.cpp +11 -4
- data/test/cxx/MessageReadersWritersTest.cpp +1 -1
- data/test/cxx/MessageServerTest.cpp +31 -30
- data/test/cxx/RequestHandlerTest.cpp +777 -0
- data/test/cxx/ScgiRequestParserTest.cpp +36 -16
- data/test/cxx/ServerInstanceDirTest.cpp +1 -1
- data/test/cxx/StringMapTest.cpp +61 -0
- data/test/cxx/TemplateTest.cpp +118 -0
- data/test/cxx/TestSupport.cpp +25 -68
- data/test/cxx/TestSupport.h +81 -41
- data/test/cxx/{LoggingTest.cpp → UnionStationTest.cpp} +79 -74
- data/test/cxx/UtilsTest.cpp +59 -5
- data/test/integration_tests/apache2_tests.rb +2 -2
- data/test/integration_tests/nginx_tests.rb +1 -1
- data/test/integration_tests/spec_helper.rb +7 -5
- data/test/oxt/oxt_test_main.cpp +2 -0
- data/test/oxt/syscall_interruption_test.cpp +1 -0
- data/test/ruby/classic_rails/loader_spec.rb +48 -0
- data/test/ruby/classic_rails/preloader_spec.rb +54 -0
- data/test/ruby/rack/loader_spec.rb +62 -0
- data/test/ruby/rack/preloader_spec.rb +74 -0
- data/test/ruby/{abstract_request_handler_spec.rb → request_handler_spec.rb} +31 -68
- data/test/ruby/shared/loader_spec.rb +241 -0
- data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +141 -182
- data/test/ruby/shared/ruby_loader_spec.rb +55 -0
- data/test/ruby/spec_helper.rb +8 -53
- data/test/ruby/utils/file_system_watcher_spec.rb +9 -1
- data/test/ruby/utils_spec.rb +10 -683
- data/test/stub/rack/config.ru +28 -3
- data/test/stub/rack/start.rb +47 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/Rakefile +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/application_controller.rb +0 -2
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/bar_controller_1.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/bar_controller_2.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/controllers/foo_controller.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/boot.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/database.yml +3 -3
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environment.rb +5 -2
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/development.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/production.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/environments/staging.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/initializers/inflections.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/config/routes.rb +1 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/about +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/console +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/dbconsole +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/destroy +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/generate +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/benchmarker +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/profiler +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/performance/request +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/plugin +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/inspector +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/reaper +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/process/spawner +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/runner +0 -0
- data/test/stub/{rails_apps/2.3/foobar → rails2.3}/script/server +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/Gemfile +0 -0
- data/test/stub/rails3.0/Gemfile.lock +80 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/Rakefile +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/controllers/application_controller.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/app/views/layouts/application.html.erb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config.ru +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/application.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/boot.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/database.yml +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environment.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/development.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/production.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/environments/test.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/backtrace_silencers.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/inflections.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/passenger.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/secret_token.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/initializers/session_store.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/locales/en.yml +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/config/routes.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/db/seeds.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/doc/README_FOR_APP +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/404.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/422.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/500.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/favicon.ico +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/index.html +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/public/robots.txt +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/script/rails +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/test/performance/browsing_test.rb +0 -0
- data/test/stub/{rails_apps/3.0/empty → rails3.0}/test/test_helper.rb +0 -0
- data/test/stub/start_error.pl +24 -0
- data/test/stub/wsgi/passenger_wsgi.py +71 -3
- data/test/support/apache2_controller.rb +2 -2
- data/test/support/placebo-preloader.rb +88 -0
- data/test/support/test_helper.rb +1 -14
- data/test/tut/tut.h +11 -4
- metadata +590 -326
- data.tar.gz.asc +0 -12
- data/PACKAGING.TXT +0 -25
- data/build/config.rb +0 -46
- data/ext/apache2/HelperAgent.cpp +0 -364
- data/ext/boost/call_traits.hpp +0 -24
- data/ext/boost/detail/call_traits.hpp +0 -164
- data/ext/common/AbstractSpawnManager.h +0 -110
- data/ext/common/AgentBase.cpp +0 -432
- data/ext/common/ApplicationPool/Client.h +0 -788
- data/ext/common/ApplicationPool/Interface.h +0 -295
- data/ext/common/ApplicationPool/Pool.h +0 -1327
- data/ext/common/ApplicationPool/Server.h +0 -479
- data/ext/common/MessageChannel.h +0 -494
- data/ext/common/PoolOptions.h +0 -518
- data/ext/common/Process.h +0 -253
- data/ext/common/Session.h +0 -436
- data/ext/common/SpawnManager.h +0 -611
- data/ext/google/ChangeLog +0 -167
- data/ext/google/dense_hash_map +0 -310
- data/ext/google/dense_hash_set +0 -287
- data/ext/google/sparse_hash_map +0 -294
- data/ext/google/sparse_hash_set +0 -275
- data/ext/google/sparsehash/densehashtable.h +0 -1062
- data/ext/google/sparsehash/sparseconfig.h +0 -55
- data/ext/google/sparsehash/sparsehashtable.h +0 -1015
- data/ext/google/sparsetable +0 -1468
- data/ext/google/type_traits.h +0 -250
- data/ext/nginx/HelperAgent.cpp +0 -1355
- data/ext/nginx/ScgiRequestParser.h +0 -375
- data/ext/oxt/backtrace.cpp +0 -185
- data/ext/oxt/tracable_exception.cpp +0 -89
- data/helper-scripts/passenger-spawn-server +0 -106
- data/lib/phusion_passenger/abstract_request_handler.rb +0 -766
- data/lib/phusion_passenger/abstract_server.rb +0 -372
- data/lib/phusion_passenger/abstract_server_collection.rb +0 -335
- data/lib/phusion_passenger/app_process.rb +0 -174
- data/lib/phusion_passenger/classic_rails/application_spawner.rb +0 -344
- data/lib/phusion_passenger/classic_rails/framework_spawner.rb +0 -311
- data/lib/phusion_passenger/exceptions.rb +0 -103
- data/lib/phusion_passenger/html_template.rb +0 -107
- data/lib/phusion_passenger/rack/application_spawner.rb +0 -231
- data/lib/phusion_passenger/spawn_manager.rb +0 -359
- data/lib/phusion_passenger/templates/app_exited_during_initialization.html.erb +0 -38
- data/lib/phusion_passenger/templates/app_init_error.html.erb +0 -64
- data/lib/phusion_passenger/templates/database_error.html.erb +0 -66
- data/lib/phusion_passenger/templates/error_layout.html.erb +0 -39
- data/lib/phusion_passenger/templates/framework_init_error.html.erb +0 -39
- data/lib/phusion_passenger/templates/general_error.html.erb +0 -22
- data/lib/phusion_passenger/templates/load_error.html.erb +0 -46
- data/lib/phusion_passenger/templates/version_not_found.html.erb +0 -34
- data/lib/phusion_passenger/utils/rewindable_input.rb +0 -125
- data/lib/phusion_passenger/wsgi/application_spawner.rb +0 -108
- data/test/config.yml.example +0 -41
- data/test/cxx/ApplicationPool_PoolTest.cpp +0 -33
- data/test/cxx/ApplicationPool_PoolTestCases.cpp +0 -1029
- data/test/cxx/ApplicationPool_ServerTest.cpp +0 -308
- data/test/cxx/ApplicationPool_Server_PoolTest.cpp +0 -80
- data/test/cxx/MessageChannelTest.cpp +0 -557
- data/test/cxx/PoolOptionsTest.cpp +0 -116
- data/test/cxx/SpawnManagerTest.cpp +0 -161
- data/test/ruby/abstract_server_collection_spec.rb +0 -247
- data/test/ruby/abstract_server_spec.rb +0 -61
- data/test/ruby/app_process_spec.rb +0 -43
- data/test/ruby/classic_rails/application_spawner_spec.rb +0 -89
- data/test/ruby/classic_rails/framework_spawner_spec.rb +0 -92
- data/test/ruby/rack/application_spawner_spec.rb +0 -116
- data/test/ruby/shared/abstract_server_spec.rb +0 -23
- data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +0 -38
- data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +0 -19
- data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +0 -15
- data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +0 -27
- data/test/ruby/shared/spawners/preloading_spawner_spec.rb +0 -29
- data/test/ruby/shared/spawners/reload_all_spec.rb +0 -36
- data/test/ruby/shared/spawners/reload_single_spec.rb +0 -52
- data/test/ruby/shared/spawners/spawn_server_spec.rb +0 -28
- data/test/ruby/shared/spawners/spawner_spec.rb +0 -273
- data/test/ruby/shared/utils/pseudo_io_spec.rb +0 -60
- data/test/ruby/spawn_manager_spec.rb +0 -134
- data/test/ruby/wsgi/application_spawner_spec.rb +0 -50
- data/test/stub/message_channel.rb +0 -11
- data/test/stub/message_channel_2.rb +0 -12
- data/test/stub/message_channel_3.rb +0 -19
- data/test/stub/rails_apps/3.0/empty/Gemfile.lock +0 -73
- data/test/stub/spawn_server.rb +0 -22
- metadata.gz.asc +0 -12
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_PLUS_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_PLUS_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0.
|
8
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
9
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
12
|
+
|
13
|
+
// $Id: plus.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
14
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
15
|
+
// $Revision: 49267 $
|
16
|
+
|
17
|
+
#define AUX778076_OP_NAME plus
|
18
|
+
#define AUX778076_OP_TOKEN +
|
19
|
+
#include <boost/mpl/aux_/arithmetic_op.hpp>
|
20
|
+
|
21
|
+
#endif // BOOST_MPL_PLUS_HPP_INCLUDED
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0.
|
8
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
9
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
12
|
+
|
13
|
+
// $Id: pop_back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
14
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
15
|
+
// $Revision: 49267 $
|
16
|
+
|
17
|
+
namespace boost { namespace mpl {
|
18
|
+
|
19
|
+
template< typename Tag > struct pop_back_impl;
|
20
|
+
template< typename Sequence > struct pop_back;
|
21
|
+
|
22
|
+
}}
|
23
|
+
|
24
|
+
#endif // BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0.
|
8
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
9
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
12
|
+
|
13
|
+
// $Id: pop_front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
14
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
15
|
+
// $Revision: 49267 $
|
16
|
+
|
17
|
+
namespace boost { namespace mpl {
|
18
|
+
|
19
|
+
template< typename Tag > struct pop_front_impl;
|
20
|
+
template< typename Sequence > struct pop_front;
|
21
|
+
|
22
|
+
}}
|
23
|
+
|
24
|
+
#endif // BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
|
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_PRIOR_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_PRIOR_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2004
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0.
|
8
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
9
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
12
|
+
|
13
|
+
// $Id: prior.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
14
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
15
|
+
// $Revision: 49267 $
|
16
|
+
|
17
|
+
#include <boost/mpl/next_prior.hpp>
|
18
|
+
|
19
|
+
#endif // BOOST_MPL_PRIOR_HPP_INCLUDED
|
@@ -0,0 +1,53 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_PUSH_BACK_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_PUSH_BACK_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0.
|
8
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
9
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
12
|
+
|
13
|
+
// $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
14
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
15
|
+
// $Revision: 49267 $
|
16
|
+
|
17
|
+
#include <boost/mpl/push_back_fwd.hpp>
|
18
|
+
#include <boost/mpl/aux_/push_back_impl.hpp>
|
19
|
+
#include <boost/mpl/sequence_tag.hpp>
|
20
|
+
#include <boost/mpl/aux_/na_spec.hpp>
|
21
|
+
#include <boost/mpl/aux_/lambda_support.hpp>
|
22
|
+
|
23
|
+
namespace boost { namespace mpl {
|
24
|
+
|
25
|
+
template<
|
26
|
+
typename BOOST_MPL_AUX_NA_PARAM(Sequence)
|
27
|
+
, typename BOOST_MPL_AUX_NA_PARAM(T)
|
28
|
+
>
|
29
|
+
struct push_back
|
30
|
+
: push_back_impl< typename sequence_tag<Sequence>::type >
|
31
|
+
::template apply< Sequence,T >
|
32
|
+
{
|
33
|
+
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_back,(Sequence,T))
|
34
|
+
};
|
35
|
+
|
36
|
+
|
37
|
+
template<
|
38
|
+
typename BOOST_MPL_AUX_NA_PARAM(Sequence)
|
39
|
+
>
|
40
|
+
struct has_push_back
|
41
|
+
: has_push_back_impl< typename sequence_tag<Sequence>::type >
|
42
|
+
::template apply< Sequence >
|
43
|
+
{
|
44
|
+
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_back,(Sequence))
|
45
|
+
};
|
46
|
+
|
47
|
+
|
48
|
+
BOOST_MPL_AUX_NA_SPEC(2, push_back)
|
49
|
+
BOOST_MPL_AUX_NA_SPEC(1, has_push_back)
|
50
|
+
|
51
|
+
}}
|
52
|
+
|
53
|
+
#endif // BOOST_MPL_PUSH_BACK_HPP_INCLUDED
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0.
|
8
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
9
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
12
|
+
|
13
|
+
// $Id: push_back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
14
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
15
|
+
// $Revision: 49267 $
|
16
|
+
|
17
|
+
namespace boost { namespace mpl {
|
18
|
+
|
19
|
+
template< typename Tag > struct push_back_impl;
|
20
|
+
template< typename Sequence, typename T > struct push_back;
|
21
|
+
|
22
|
+
}}
|
23
|
+
|
24
|
+
#endif // BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
|
@@ -0,0 +1,52 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0.
|
8
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
9
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
12
|
+
|
13
|
+
// $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
14
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
15
|
+
// $Revision: 49267 $
|
16
|
+
|
17
|
+
#include <boost/mpl/push_front_fwd.hpp>
|
18
|
+
#include <boost/mpl/aux_/push_front_impl.hpp>
|
19
|
+
#include <boost/mpl/sequence_tag.hpp>
|
20
|
+
#include <boost/mpl/aux_/na_spec.hpp>
|
21
|
+
#include <boost/mpl/aux_/lambda_support.hpp>
|
22
|
+
|
23
|
+
namespace boost { namespace mpl {
|
24
|
+
|
25
|
+
template<
|
26
|
+
typename BOOST_MPL_AUX_NA_PARAM(Sequence)
|
27
|
+
, typename BOOST_MPL_AUX_NA_PARAM(T)
|
28
|
+
>
|
29
|
+
struct push_front
|
30
|
+
: push_front_impl< typename sequence_tag<Sequence>::type >
|
31
|
+
::template apply< Sequence,T >
|
32
|
+
{
|
33
|
+
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_front,(Sequence,T))
|
34
|
+
};
|
35
|
+
|
36
|
+
|
37
|
+
template<
|
38
|
+
typename BOOST_MPL_AUX_NA_PARAM(Sequence)
|
39
|
+
>
|
40
|
+
struct has_push_front
|
41
|
+
: has_push_front_impl< typename sequence_tag<Sequence>::type >
|
42
|
+
::template apply< Sequence >
|
43
|
+
{
|
44
|
+
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_front,(Sequence))
|
45
|
+
};
|
46
|
+
|
47
|
+
BOOST_MPL_AUX_NA_SPEC(2, push_front)
|
48
|
+
BOOST_MPL_AUX_NA_SPEC(1, has_push_front)
|
49
|
+
|
50
|
+
}}
|
51
|
+
|
52
|
+
#endif // BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0.
|
8
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
9
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
12
|
+
|
13
|
+
// $Id: push_front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
14
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
15
|
+
// $Revision: 49267 $
|
16
|
+
|
17
|
+
namespace boost { namespace mpl {
|
18
|
+
|
19
|
+
template< typename Tag > struct push_front_impl;
|
20
|
+
template< typename Sequence, typename T > struct push_front;
|
21
|
+
|
22
|
+
}}
|
23
|
+
|
24
|
+
#endif // BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
|
@@ -0,0 +1,83 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_REMOVE_IF_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_REMOVE_IF_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
6
|
+
// Copyright David Abrahams 2003-2004
|
7
|
+
//
|
8
|
+
// Distributed under the Boost Software License, Version 1.0.
|
9
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
10
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
11
|
+
//
|
12
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
13
|
+
|
14
|
+
// $Id: remove_if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
15
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
16
|
+
// $Revision: 49267 $
|
17
|
+
|
18
|
+
#include <boost/mpl/fold.hpp>
|
19
|
+
#include <boost/mpl/reverse_fold.hpp>
|
20
|
+
#include <boost/mpl/eval_if.hpp>
|
21
|
+
#include <boost/mpl/identity.hpp>
|
22
|
+
#include <boost/mpl/protect.hpp>
|
23
|
+
#include <boost/mpl/lambda.hpp>
|
24
|
+
#include <boost/mpl/apply.hpp>
|
25
|
+
#include <boost/mpl/aux_/inserter_algorithm.hpp>
|
26
|
+
|
27
|
+
namespace boost { namespace mpl {
|
28
|
+
|
29
|
+
namespace aux {
|
30
|
+
|
31
|
+
template< typename Pred, typename InsertOp > struct remove_if_helper
|
32
|
+
{
|
33
|
+
template< typename Sequence, typename U > struct apply
|
34
|
+
{
|
35
|
+
typedef typename eval_if<
|
36
|
+
typename apply1<Pred,U>::type
|
37
|
+
, identity<Sequence>
|
38
|
+
, apply2<InsertOp,Sequence,U>
|
39
|
+
>::type type;
|
40
|
+
};
|
41
|
+
};
|
42
|
+
|
43
|
+
template<
|
44
|
+
typename Sequence
|
45
|
+
, typename Predicate
|
46
|
+
, typename Inserter
|
47
|
+
>
|
48
|
+
struct remove_if_impl
|
49
|
+
: fold<
|
50
|
+
Sequence
|
51
|
+
, typename Inserter::state
|
52
|
+
, protect< aux::remove_if_helper<
|
53
|
+
typename lambda<Predicate>::type
|
54
|
+
, typename Inserter::operation
|
55
|
+
> >
|
56
|
+
>
|
57
|
+
{
|
58
|
+
};
|
59
|
+
|
60
|
+
template<
|
61
|
+
typename Sequence
|
62
|
+
, typename Predicate
|
63
|
+
, typename Inserter
|
64
|
+
>
|
65
|
+
struct reverse_remove_if_impl
|
66
|
+
: reverse_fold<
|
67
|
+
Sequence
|
68
|
+
, typename Inserter::state
|
69
|
+
, protect< aux::remove_if_helper<
|
70
|
+
typename lambda<Predicate>::type
|
71
|
+
, typename Inserter::operation
|
72
|
+
> >
|
73
|
+
>
|
74
|
+
{
|
75
|
+
};
|
76
|
+
|
77
|
+
} // namespace aux
|
78
|
+
|
79
|
+
BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, remove_if)
|
80
|
+
|
81
|
+
}}
|
82
|
+
|
83
|
+
#endif // BOOST_MPL_REMOVE_IF_HPP_INCLUDED
|
@@ -0,0 +1,50 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2001-2004
|
6
|
+
// Copyright David Abrahams 2001-2002
|
7
|
+
//
|
8
|
+
// Distributed under the Boost Software License, Version 1.0.
|
9
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
10
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
11
|
+
//
|
12
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
13
|
+
|
14
|
+
// $Id: reverse_fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
15
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
16
|
+
// $Revision: 49267 $
|
17
|
+
|
18
|
+
#include <boost/mpl/begin_end.hpp>
|
19
|
+
#include <boost/mpl/O1_size.hpp>
|
20
|
+
#include <boost/mpl/arg.hpp>
|
21
|
+
#include <boost/mpl/aux_/reverse_fold_impl.hpp>
|
22
|
+
#include <boost/mpl/aux_/na_spec.hpp>
|
23
|
+
|
24
|
+
namespace boost { namespace mpl {
|
25
|
+
|
26
|
+
template<
|
27
|
+
typename BOOST_MPL_AUX_NA_PARAM(Sequence)
|
28
|
+
, typename BOOST_MPL_AUX_NA_PARAM(State)
|
29
|
+
, typename BOOST_MPL_AUX_NA_PARAM(BackwardOp)
|
30
|
+
, typename ForwardOp = arg<1>
|
31
|
+
>
|
32
|
+
struct reverse_fold
|
33
|
+
{
|
34
|
+
typedef typename aux::reverse_fold_impl<
|
35
|
+
::boost::mpl::O1_size<Sequence>::value
|
36
|
+
, typename begin<Sequence>::type
|
37
|
+
, typename end<Sequence>::type
|
38
|
+
, State
|
39
|
+
, BackwardOp
|
40
|
+
, ForwardOp
|
41
|
+
>::state type;
|
42
|
+
|
43
|
+
BOOST_MPL_AUX_LAMBDA_SUPPORT(3,reverse_fold,(Sequence,State,BackwardOp))
|
44
|
+
};
|
45
|
+
|
46
|
+
BOOST_MPL_AUX_NA_SPEC(3, reverse_fold)
|
47
|
+
|
48
|
+
}}
|
49
|
+
|
50
|
+
#endif // BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
|
@@ -0,0 +1,55 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_SAME_AS_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_SAME_AS_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0.
|
8
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
9
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
12
|
+
|
13
|
+
// $Id: same_as.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
14
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
15
|
+
// $Revision: 49267 $
|
16
|
+
|
17
|
+
#include <boost/mpl/not.hpp>
|
18
|
+
#include <boost/mpl/aux_/lambda_spec.hpp>
|
19
|
+
#include <boost/mpl/aux_/config/forwarding.hpp>
|
20
|
+
|
21
|
+
#include <boost/type_traits/is_same.hpp>
|
22
|
+
|
23
|
+
namespace boost { namespace mpl {
|
24
|
+
|
25
|
+
template< typename T1 >
|
26
|
+
struct same_as
|
27
|
+
{
|
28
|
+
template< typename T2 > struct apply
|
29
|
+
#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
|
30
|
+
: is_same<T1,T2>
|
31
|
+
{
|
32
|
+
#else
|
33
|
+
{
|
34
|
+
typedef typename is_same<T1,T2>::type type;
|
35
|
+
#endif
|
36
|
+
};
|
37
|
+
};
|
38
|
+
|
39
|
+
template< typename T1 >
|
40
|
+
struct not_same_as
|
41
|
+
{
|
42
|
+
template< typename T2 > struct apply
|
43
|
+
#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
|
44
|
+
: not_< is_same<T1,T2> >
|
45
|
+
{
|
46
|
+
#else
|
47
|
+
{
|
48
|
+
typedef typename not_< is_same<T1,T2> >::type type;
|
49
|
+
#endif
|
50
|
+
};
|
51
|
+
};
|
52
|
+
|
53
|
+
}}
|
54
|
+
|
55
|
+
#endif // BOOST_MPL_SAME_AS_HPP_INCLUDED
|
@@ -0,0 +1,124 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
|
4
|
+
|
5
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0.
|
8
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
9
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
10
|
+
//
|
11
|
+
// See http://www.boost.org/libs/mpl for documentation.
|
12
|
+
|
13
|
+
// $Id: sequence_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
|
14
|
+
// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $
|
15
|
+
// $Revision: 49267 $
|
16
|
+
|
17
|
+
#include <boost/mpl/sequence_tag_fwd.hpp>
|
18
|
+
#include <boost/mpl/aux_/has_tag.hpp>
|
19
|
+
#include <boost/mpl/aux_/has_begin.hpp>
|
20
|
+
#include <boost/mpl/aux_/na_spec.hpp>
|
21
|
+
#include <boost/mpl/aux_/is_msvc_eti_arg.hpp>
|
22
|
+
#include <boost/mpl/aux_/config/eti.hpp>
|
23
|
+
#include <boost/mpl/aux_/yes_no.hpp>
|
24
|
+
#include <boost/mpl/aux_/config/workaround.hpp>
|
25
|
+
|
26
|
+
namespace boost { namespace mpl {
|
27
|
+
|
28
|
+
// agurt, 27/nov/02: have to use a simplistic 'sequence_tag' implementation
|
29
|
+
// on MSVC to avoid dreadful "internal structure overflow" error
|
30
|
+
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
|
31
|
+
|| defined(BOOST_MPL_CFG_NO_HAS_XXX)
|
32
|
+
|
33
|
+
template<
|
34
|
+
typename BOOST_MPL_AUX_NA_PARAM(Sequence)
|
35
|
+
>
|
36
|
+
struct sequence_tag
|
37
|
+
{
|
38
|
+
typedef typename Sequence::tag type;
|
39
|
+
};
|
40
|
+
|
41
|
+
#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
|
42
|
+
|
43
|
+
// agurt, 07/feb/03: workaround for what seems to be MSVC 7.0-specific ETI issue
|
44
|
+
|
45
|
+
namespace aux {
|
46
|
+
|
47
|
+
template< bool >
|
48
|
+
struct sequence_tag_impl
|
49
|
+
{
|
50
|
+
template< typename Sequence > struct result_
|
51
|
+
{
|
52
|
+
typedef typename Sequence::tag type;
|
53
|
+
};
|
54
|
+
};
|
55
|
+
|
56
|
+
template<>
|
57
|
+
struct sequence_tag_impl<false>
|
58
|
+
{
|
59
|
+
template< typename Sequence > struct result_
|
60
|
+
{
|
61
|
+
typedef int type;
|
62
|
+
};
|
63
|
+
};
|
64
|
+
|
65
|
+
} // namespace aux
|
66
|
+
|
67
|
+
template<
|
68
|
+
typename BOOST_MPL_AUX_NA_PARAM(Sequence)
|
69
|
+
>
|
70
|
+
struct sequence_tag
|
71
|
+
: aux::sequence_tag_impl< !aux::is_msvc_eti_arg<Sequence>::value >
|
72
|
+
::template result_<Sequence>
|
73
|
+
{
|
74
|
+
};
|
75
|
+
|
76
|
+
#else
|
77
|
+
|
78
|
+
namespace aux {
|
79
|
+
|
80
|
+
template< bool has_tag_, bool has_begin_ >
|
81
|
+
struct sequence_tag_impl
|
82
|
+
{
|
83
|
+
// agurt 24/nov/02: MSVC 6.5 gets confused in 'sequence_tag_impl<true>'
|
84
|
+
// specialization below, if we name it 'result_' here
|
85
|
+
template< typename Sequence > struct result2_;
|
86
|
+
};
|
87
|
+
|
88
|
+
# define AUX_CLASS_SEQUENCE_TAG_SPEC(has_tag, has_begin, result_type) \
|
89
|
+
template<> struct sequence_tag_impl<has_tag,has_begin> \
|
90
|
+
{ \
|
91
|
+
template< typename Sequence > struct result2_ \
|
92
|
+
{ \
|
93
|
+
typedef result_type type; \
|
94
|
+
}; \
|
95
|
+
}; \
|
96
|
+
/**/
|
97
|
+
|
98
|
+
AUX_CLASS_SEQUENCE_TAG_SPEC(true, true, typename Sequence::tag)
|
99
|
+
AUX_CLASS_SEQUENCE_TAG_SPEC(true, false, typename Sequence::tag)
|
100
|
+
AUX_CLASS_SEQUENCE_TAG_SPEC(false, true, nested_begin_end_tag)
|
101
|
+
AUX_CLASS_SEQUENCE_TAG_SPEC(false, false, non_sequence_tag)
|
102
|
+
|
103
|
+
# undef AUX_CLASS_SEQUENCE_TAG_SPEC
|
104
|
+
|
105
|
+
} // namespace aux
|
106
|
+
|
107
|
+
template<
|
108
|
+
typename BOOST_MPL_AUX_NA_PARAM(Sequence)
|
109
|
+
>
|
110
|
+
struct sequence_tag
|
111
|
+
: aux::sequence_tag_impl<
|
112
|
+
::boost::mpl::aux::has_tag<Sequence>::value
|
113
|
+
, ::boost::mpl::aux::has_begin<Sequence>::value
|
114
|
+
>::template result2_<Sequence>
|
115
|
+
{
|
116
|
+
};
|
117
|
+
|
118
|
+
#endif // BOOST_MSVC
|
119
|
+
|
120
|
+
BOOST_MPL_AUX_NA_SPEC(1, sequence_tag)
|
121
|
+
|
122
|
+
}}
|
123
|
+
|
124
|
+
#endif // BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
|