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,40 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_VECTOR_AUX_POP_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: pop_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/pop_back_fwd.hpp>
|
18
|
+
#include <boost/mpl/aux_/config/typeof.hpp>
|
19
|
+
|
20
|
+
#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
|
21
|
+
|
22
|
+
# include <boost/mpl/vector/aux_/item.hpp>
|
23
|
+
# include <boost/mpl/vector/aux_/tag.hpp>
|
24
|
+
|
25
|
+
namespace boost { namespace mpl {
|
26
|
+
|
27
|
+
template<>
|
28
|
+
struct pop_back_impl< aux::vector_tag >
|
29
|
+
{
|
30
|
+
template< typename Vector > struct apply
|
31
|
+
{
|
32
|
+
typedef v_mask<Vector,0> type;
|
33
|
+
};
|
34
|
+
};
|
35
|
+
|
36
|
+
}}
|
37
|
+
|
38
|
+
#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
|
39
|
+
|
40
|
+
#endif // BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
#ifndef BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
|
3
|
+
#define BOOST_MPL_VECTOR_AUX_POP_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: pop_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/pop_front_fwd.hpp>
|
18
|
+
#include <boost/mpl/aux_/config/typeof.hpp>
|
19
|
+
|
20
|
+
#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
|
21
|
+
|
22
|
+
# include <boost/mpl/vector/aux_/item.hpp>
|
23
|
+
# include <boost/mpl/vector/aux_/tag.hpp>
|
24
|
+
|
25
|
+
namespace boost { namespace mpl {
|
26
|
+
|
27
|
+
template<>
|
28
|
+
struct pop_front_impl< aux::vector_tag >
|
29
|
+
{
|
30
|
+
template< typename Vector > struct apply
|
31
|
+
{
|
32
|
+
typedef v_mask<Vector,1> type;
|
33
|
+
};
|
34
|
+
};
|
35
|
+
|
36
|
+
}}
|
37
|
+
|
38
|
+
#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
|
39
|
+
|
40
|
+
#endif // BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
|
@@ -0,0 +1,829 @@
|
|
1
|
+
|
2
|
+
// Copyright Aleksey Gurtovoy 2000-2004
|
3
|
+
//
|
4
|
+
// Distributed under the Boost Software License, Version 1.0.
|
5
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
6
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
7
|
+
//
|
8
|
+
|
9
|
+
// Preprocessed version of "boost/mpl/vector/vector10.hpp" header
|
10
|
+
// -- DO NOT modify by hand!
|
11
|
+
|
12
|
+
namespace boost { namespace mpl {
|
13
|
+
|
14
|
+
template< typename V >
|
15
|
+
struct v_at< V,0 >
|
16
|
+
{
|
17
|
+
typedef typename V::item0 type;
|
18
|
+
};
|
19
|
+
|
20
|
+
template<
|
21
|
+
typename T0
|
22
|
+
>
|
23
|
+
struct vector1
|
24
|
+
{
|
25
|
+
typedef aux::vector_tag<1> tag;
|
26
|
+
typedef vector1 type;
|
27
|
+
typedef T0 item0;
|
28
|
+
typedef void_ item1;
|
29
|
+
typedef T0 back;
|
30
|
+
typedef v_iter< type,0 > begin;
|
31
|
+
typedef v_iter< type,1 > end;
|
32
|
+
};
|
33
|
+
|
34
|
+
template<>
|
35
|
+
struct push_front_impl< aux::vector_tag<0> >
|
36
|
+
{
|
37
|
+
template< typename Vector, typename T > struct apply
|
38
|
+
{
|
39
|
+
typedef vector1<
|
40
|
+
T
|
41
|
+
> type;
|
42
|
+
};
|
43
|
+
};
|
44
|
+
|
45
|
+
template<>
|
46
|
+
struct pop_front_impl< aux::vector_tag<1> >
|
47
|
+
{
|
48
|
+
template< typename Vector > struct apply
|
49
|
+
{
|
50
|
+
typedef vector0<
|
51
|
+
|
52
|
+
> type;
|
53
|
+
};
|
54
|
+
};
|
55
|
+
|
56
|
+
template<>
|
57
|
+
struct push_back_impl< aux::vector_tag<0> >
|
58
|
+
{
|
59
|
+
template< typename Vector, typename T > struct apply
|
60
|
+
{
|
61
|
+
typedef vector1<
|
62
|
+
|
63
|
+
T
|
64
|
+
> type;
|
65
|
+
};
|
66
|
+
};
|
67
|
+
|
68
|
+
template<>
|
69
|
+
struct pop_back_impl< aux::vector_tag<1> >
|
70
|
+
{
|
71
|
+
template< typename Vector > struct apply
|
72
|
+
{
|
73
|
+
typedef vector0<
|
74
|
+
|
75
|
+
> type;
|
76
|
+
};
|
77
|
+
};
|
78
|
+
|
79
|
+
template< typename V >
|
80
|
+
struct v_at< V,1 >
|
81
|
+
{
|
82
|
+
typedef typename V::item1 type;
|
83
|
+
};
|
84
|
+
|
85
|
+
template<
|
86
|
+
typename T0, typename T1
|
87
|
+
>
|
88
|
+
struct vector2
|
89
|
+
{
|
90
|
+
typedef aux::vector_tag<2> tag;
|
91
|
+
typedef vector2 type;
|
92
|
+
typedef T0 item0;
|
93
|
+
typedef T1 item1;
|
94
|
+
|
95
|
+
|
96
|
+
typedef void_ item2;
|
97
|
+
typedef T1 back;
|
98
|
+
typedef v_iter< type,0 > begin;
|
99
|
+
typedef v_iter< type,2 > end;
|
100
|
+
};
|
101
|
+
|
102
|
+
template<>
|
103
|
+
struct push_front_impl< aux::vector_tag<1> >
|
104
|
+
{
|
105
|
+
template< typename Vector, typename T > struct apply
|
106
|
+
{
|
107
|
+
typedef vector2<
|
108
|
+
T
|
109
|
+
,
|
110
|
+
typename Vector::item0
|
111
|
+
> type;
|
112
|
+
};
|
113
|
+
};
|
114
|
+
|
115
|
+
template<>
|
116
|
+
struct pop_front_impl< aux::vector_tag<2> >
|
117
|
+
{
|
118
|
+
template< typename Vector > struct apply
|
119
|
+
{
|
120
|
+
typedef vector1<
|
121
|
+
typename Vector::item1
|
122
|
+
> type;
|
123
|
+
};
|
124
|
+
};
|
125
|
+
|
126
|
+
template<>
|
127
|
+
struct push_back_impl< aux::vector_tag<1> >
|
128
|
+
{
|
129
|
+
template< typename Vector, typename T > struct apply
|
130
|
+
{
|
131
|
+
typedef vector2<
|
132
|
+
typename Vector::item0
|
133
|
+
,
|
134
|
+
T
|
135
|
+
> type;
|
136
|
+
};
|
137
|
+
};
|
138
|
+
|
139
|
+
template<>
|
140
|
+
struct pop_back_impl< aux::vector_tag<2> >
|
141
|
+
{
|
142
|
+
template< typename Vector > struct apply
|
143
|
+
{
|
144
|
+
typedef vector1<
|
145
|
+
typename Vector::item0
|
146
|
+
> type;
|
147
|
+
};
|
148
|
+
};
|
149
|
+
|
150
|
+
template< typename V >
|
151
|
+
struct v_at< V,2 >
|
152
|
+
{
|
153
|
+
typedef typename V::item2 type;
|
154
|
+
};
|
155
|
+
|
156
|
+
template<
|
157
|
+
typename T0, typename T1, typename T2
|
158
|
+
>
|
159
|
+
struct vector3
|
160
|
+
{
|
161
|
+
typedef aux::vector_tag<3> tag;
|
162
|
+
typedef vector3 type;
|
163
|
+
typedef T0 item0;
|
164
|
+
typedef T1 item1;
|
165
|
+
typedef T2 item2;
|
166
|
+
|
167
|
+
|
168
|
+
typedef void_ item3;
|
169
|
+
typedef T2 back;
|
170
|
+
typedef v_iter< type,0 > begin;
|
171
|
+
typedef v_iter< type,3 > end;
|
172
|
+
};
|
173
|
+
|
174
|
+
template<>
|
175
|
+
struct push_front_impl< aux::vector_tag<2> >
|
176
|
+
{
|
177
|
+
template< typename Vector, typename T > struct apply
|
178
|
+
{
|
179
|
+
typedef vector3<
|
180
|
+
T
|
181
|
+
,
|
182
|
+
typename Vector::item0, typename Vector::item1
|
183
|
+
> type;
|
184
|
+
};
|
185
|
+
};
|
186
|
+
|
187
|
+
template<>
|
188
|
+
struct pop_front_impl< aux::vector_tag<3> >
|
189
|
+
{
|
190
|
+
template< typename Vector > struct apply
|
191
|
+
{
|
192
|
+
typedef vector2<
|
193
|
+
typename Vector::item1, typename Vector::item2
|
194
|
+
> type;
|
195
|
+
};
|
196
|
+
};
|
197
|
+
|
198
|
+
template<>
|
199
|
+
struct push_back_impl< aux::vector_tag<2> >
|
200
|
+
{
|
201
|
+
template< typename Vector, typename T > struct apply
|
202
|
+
{
|
203
|
+
typedef vector3<
|
204
|
+
typename Vector::item0, typename Vector::item1
|
205
|
+
,
|
206
|
+
T
|
207
|
+
> type;
|
208
|
+
};
|
209
|
+
};
|
210
|
+
|
211
|
+
template<>
|
212
|
+
struct pop_back_impl< aux::vector_tag<3> >
|
213
|
+
{
|
214
|
+
template< typename Vector > struct apply
|
215
|
+
{
|
216
|
+
typedef vector2<
|
217
|
+
typename Vector::item0, typename Vector::item1
|
218
|
+
> type;
|
219
|
+
};
|
220
|
+
};
|
221
|
+
|
222
|
+
template< typename V >
|
223
|
+
struct v_at< V,3 >
|
224
|
+
{
|
225
|
+
typedef typename V::item3 type;
|
226
|
+
};
|
227
|
+
|
228
|
+
template<
|
229
|
+
typename T0, typename T1, typename T2, typename T3
|
230
|
+
>
|
231
|
+
struct vector4
|
232
|
+
{
|
233
|
+
typedef aux::vector_tag<4> tag;
|
234
|
+
typedef vector4 type;
|
235
|
+
typedef T0 item0;
|
236
|
+
typedef T1 item1;
|
237
|
+
typedef T2 item2;
|
238
|
+
typedef T3 item3;
|
239
|
+
|
240
|
+
|
241
|
+
typedef void_ item4;
|
242
|
+
typedef T3 back;
|
243
|
+
typedef v_iter< type,0 > begin;
|
244
|
+
typedef v_iter< type,4 > end;
|
245
|
+
};
|
246
|
+
|
247
|
+
template<>
|
248
|
+
struct push_front_impl< aux::vector_tag<3> >
|
249
|
+
{
|
250
|
+
template< typename Vector, typename T > struct apply
|
251
|
+
{
|
252
|
+
typedef vector4<
|
253
|
+
T
|
254
|
+
,
|
255
|
+
typename Vector::item0, typename Vector::item1
|
256
|
+
, typename Vector::item2
|
257
|
+
> type;
|
258
|
+
};
|
259
|
+
};
|
260
|
+
|
261
|
+
template<>
|
262
|
+
struct pop_front_impl< aux::vector_tag<4> >
|
263
|
+
{
|
264
|
+
template< typename Vector > struct apply
|
265
|
+
{
|
266
|
+
typedef vector3<
|
267
|
+
typename Vector::item1, typename Vector::item2
|
268
|
+
, typename Vector::item3
|
269
|
+
> type;
|
270
|
+
};
|
271
|
+
};
|
272
|
+
|
273
|
+
template<>
|
274
|
+
struct push_back_impl< aux::vector_tag<3> >
|
275
|
+
{
|
276
|
+
template< typename Vector, typename T > struct apply
|
277
|
+
{
|
278
|
+
typedef vector4<
|
279
|
+
typename Vector::item0, typename Vector::item1
|
280
|
+
, typename Vector::item2
|
281
|
+
,
|
282
|
+
T
|
283
|
+
> type;
|
284
|
+
};
|
285
|
+
};
|
286
|
+
|
287
|
+
template<>
|
288
|
+
struct pop_back_impl< aux::vector_tag<4> >
|
289
|
+
{
|
290
|
+
template< typename Vector > struct apply
|
291
|
+
{
|
292
|
+
typedef vector3<
|
293
|
+
typename Vector::item0, typename Vector::item1
|
294
|
+
, typename Vector::item2
|
295
|
+
> type;
|
296
|
+
};
|
297
|
+
};
|
298
|
+
|
299
|
+
template< typename V >
|
300
|
+
struct v_at< V,4 >
|
301
|
+
{
|
302
|
+
typedef typename V::item4 type;
|
303
|
+
};
|
304
|
+
|
305
|
+
template<
|
306
|
+
typename T0, typename T1, typename T2, typename T3, typename T4
|
307
|
+
>
|
308
|
+
struct vector5
|
309
|
+
{
|
310
|
+
typedef aux::vector_tag<5> tag;
|
311
|
+
typedef vector5 type;
|
312
|
+
typedef T0 item0;
|
313
|
+
typedef T1 item1;
|
314
|
+
typedef T2 item2;
|
315
|
+
typedef T3 item3;
|
316
|
+
typedef T4 item4;
|
317
|
+
|
318
|
+
|
319
|
+
typedef void_ item5;
|
320
|
+
typedef T4 back;
|
321
|
+
typedef v_iter< type,0 > begin;
|
322
|
+
typedef v_iter< type,5 > end;
|
323
|
+
};
|
324
|
+
|
325
|
+
template<>
|
326
|
+
struct push_front_impl< aux::vector_tag<4> >
|
327
|
+
{
|
328
|
+
template< typename Vector, typename T > struct apply
|
329
|
+
{
|
330
|
+
typedef vector5<
|
331
|
+
T
|
332
|
+
,
|
333
|
+
typename Vector::item0, typename Vector::item1
|
334
|
+
, typename Vector::item2, typename Vector::item3
|
335
|
+
> type;
|
336
|
+
};
|
337
|
+
};
|
338
|
+
|
339
|
+
template<>
|
340
|
+
struct pop_front_impl< aux::vector_tag<5> >
|
341
|
+
{
|
342
|
+
template< typename Vector > struct apply
|
343
|
+
{
|
344
|
+
typedef vector4<
|
345
|
+
typename Vector::item1, typename Vector::item2
|
346
|
+
, typename Vector::item3, typename Vector::item4
|
347
|
+
> type;
|
348
|
+
};
|
349
|
+
};
|
350
|
+
|
351
|
+
template<>
|
352
|
+
struct push_back_impl< aux::vector_tag<4> >
|
353
|
+
{
|
354
|
+
template< typename Vector, typename T > struct apply
|
355
|
+
{
|
356
|
+
typedef vector5<
|
357
|
+
typename Vector::item0, typename Vector::item1
|
358
|
+
, typename Vector::item2, typename Vector::item3
|
359
|
+
,
|
360
|
+
T
|
361
|
+
> type;
|
362
|
+
};
|
363
|
+
};
|
364
|
+
|
365
|
+
template<>
|
366
|
+
struct pop_back_impl< aux::vector_tag<5> >
|
367
|
+
{
|
368
|
+
template< typename Vector > struct apply
|
369
|
+
{
|
370
|
+
typedef vector4<
|
371
|
+
typename Vector::item0, typename Vector::item1
|
372
|
+
, typename Vector::item2, typename Vector::item3
|
373
|
+
> type;
|
374
|
+
};
|
375
|
+
};
|
376
|
+
|
377
|
+
template< typename V >
|
378
|
+
struct v_at< V,5 >
|
379
|
+
{
|
380
|
+
typedef typename V::item5 type;
|
381
|
+
};
|
382
|
+
|
383
|
+
template<
|
384
|
+
typename T0, typename T1, typename T2, typename T3, typename T4
|
385
|
+
, typename T5
|
386
|
+
>
|
387
|
+
struct vector6
|
388
|
+
{
|
389
|
+
typedef aux::vector_tag<6> tag;
|
390
|
+
typedef vector6 type;
|
391
|
+
typedef T0 item0;
|
392
|
+
typedef T1 item1;
|
393
|
+
typedef T2 item2;
|
394
|
+
typedef T3 item3;
|
395
|
+
typedef T4 item4;
|
396
|
+
typedef T5 item5;
|
397
|
+
|
398
|
+
|
399
|
+
typedef void_ item6;
|
400
|
+
typedef T5 back;
|
401
|
+
typedef v_iter< type,0 > begin;
|
402
|
+
typedef v_iter< type,6 > end;
|
403
|
+
};
|
404
|
+
|
405
|
+
template<>
|
406
|
+
struct push_front_impl< aux::vector_tag<5> >
|
407
|
+
{
|
408
|
+
template< typename Vector, typename T > struct apply
|
409
|
+
{
|
410
|
+
typedef vector6<
|
411
|
+
T
|
412
|
+
,
|
413
|
+
typename Vector::item0, typename Vector::item1
|
414
|
+
, typename Vector::item2, typename Vector::item3
|
415
|
+
, typename Vector::item4
|
416
|
+
> type;
|
417
|
+
};
|
418
|
+
};
|
419
|
+
|
420
|
+
template<>
|
421
|
+
struct pop_front_impl< aux::vector_tag<6> >
|
422
|
+
{
|
423
|
+
template< typename Vector > struct apply
|
424
|
+
{
|
425
|
+
typedef vector5<
|
426
|
+
typename Vector::item1, typename Vector::item2
|
427
|
+
, typename Vector::item3, typename Vector::item4
|
428
|
+
, typename Vector::item5
|
429
|
+
> type;
|
430
|
+
};
|
431
|
+
};
|
432
|
+
|
433
|
+
template<>
|
434
|
+
struct push_back_impl< aux::vector_tag<5> >
|
435
|
+
{
|
436
|
+
template< typename Vector, typename T > struct apply
|
437
|
+
{
|
438
|
+
typedef vector6<
|
439
|
+
typename Vector::item0, typename Vector::item1
|
440
|
+
, typename Vector::item2, typename Vector::item3
|
441
|
+
, typename Vector::item4
|
442
|
+
,
|
443
|
+
T
|
444
|
+
> type;
|
445
|
+
};
|
446
|
+
};
|
447
|
+
|
448
|
+
template<>
|
449
|
+
struct pop_back_impl< aux::vector_tag<6> >
|
450
|
+
{
|
451
|
+
template< typename Vector > struct apply
|
452
|
+
{
|
453
|
+
typedef vector5<
|
454
|
+
typename Vector::item0, typename Vector::item1
|
455
|
+
, typename Vector::item2, typename Vector::item3
|
456
|
+
, typename Vector::item4
|
457
|
+
> type;
|
458
|
+
};
|
459
|
+
};
|
460
|
+
|
461
|
+
template< typename V >
|
462
|
+
struct v_at< V,6 >
|
463
|
+
{
|
464
|
+
typedef typename V::item6 type;
|
465
|
+
};
|
466
|
+
|
467
|
+
template<
|
468
|
+
typename T0, typename T1, typename T2, typename T3, typename T4
|
469
|
+
, typename T5, typename T6
|
470
|
+
>
|
471
|
+
struct vector7
|
472
|
+
{
|
473
|
+
typedef aux::vector_tag<7> tag;
|
474
|
+
typedef vector7 type;
|
475
|
+
typedef T0 item0;
|
476
|
+
typedef T1 item1;
|
477
|
+
typedef T2 item2;
|
478
|
+
typedef T3 item3;
|
479
|
+
typedef T4 item4;
|
480
|
+
typedef T5 item5;
|
481
|
+
typedef T6 item6;
|
482
|
+
|
483
|
+
|
484
|
+
typedef void_ item7;
|
485
|
+
typedef T6 back;
|
486
|
+
typedef v_iter< type,0 > begin;
|
487
|
+
typedef v_iter< type,7 > end;
|
488
|
+
};
|
489
|
+
|
490
|
+
template<>
|
491
|
+
struct push_front_impl< aux::vector_tag<6> >
|
492
|
+
{
|
493
|
+
template< typename Vector, typename T > struct apply
|
494
|
+
{
|
495
|
+
typedef vector7<
|
496
|
+
T
|
497
|
+
,
|
498
|
+
typename Vector::item0, typename Vector::item1
|
499
|
+
, typename Vector::item2, typename Vector::item3
|
500
|
+
, typename Vector::item4, typename Vector::item5
|
501
|
+
> type;
|
502
|
+
};
|
503
|
+
};
|
504
|
+
|
505
|
+
template<>
|
506
|
+
struct pop_front_impl< aux::vector_tag<7> >
|
507
|
+
{
|
508
|
+
template< typename Vector > struct apply
|
509
|
+
{
|
510
|
+
typedef vector6<
|
511
|
+
typename Vector::item1, typename Vector::item2
|
512
|
+
, typename Vector::item3, typename Vector::item4
|
513
|
+
, typename Vector::item5, typename Vector::item6
|
514
|
+
> type;
|
515
|
+
};
|
516
|
+
};
|
517
|
+
|
518
|
+
template<>
|
519
|
+
struct push_back_impl< aux::vector_tag<6> >
|
520
|
+
{
|
521
|
+
template< typename Vector, typename T > struct apply
|
522
|
+
{
|
523
|
+
typedef vector7<
|
524
|
+
typename Vector::item0, typename Vector::item1
|
525
|
+
, typename Vector::item2, typename Vector::item3
|
526
|
+
, typename Vector::item4, typename Vector::item5
|
527
|
+
,
|
528
|
+
T
|
529
|
+
> type;
|
530
|
+
};
|
531
|
+
};
|
532
|
+
|
533
|
+
template<>
|
534
|
+
struct pop_back_impl< aux::vector_tag<7> >
|
535
|
+
{
|
536
|
+
template< typename Vector > struct apply
|
537
|
+
{
|
538
|
+
typedef vector6<
|
539
|
+
typename Vector::item0, typename Vector::item1
|
540
|
+
, typename Vector::item2, typename Vector::item3
|
541
|
+
, typename Vector::item4, typename Vector::item5
|
542
|
+
> type;
|
543
|
+
};
|
544
|
+
};
|
545
|
+
|
546
|
+
template< typename V >
|
547
|
+
struct v_at< V,7 >
|
548
|
+
{
|
549
|
+
typedef typename V::item7 type;
|
550
|
+
};
|
551
|
+
|
552
|
+
template<
|
553
|
+
typename T0, typename T1, typename T2, typename T3, typename T4
|
554
|
+
, typename T5, typename T6, typename T7
|
555
|
+
>
|
556
|
+
struct vector8
|
557
|
+
{
|
558
|
+
typedef aux::vector_tag<8> tag;
|
559
|
+
typedef vector8 type;
|
560
|
+
typedef T0 item0;
|
561
|
+
typedef T1 item1;
|
562
|
+
typedef T2 item2;
|
563
|
+
typedef T3 item3;
|
564
|
+
typedef T4 item4;
|
565
|
+
typedef T5 item5;
|
566
|
+
typedef T6 item6;
|
567
|
+
typedef T7 item7;
|
568
|
+
|
569
|
+
|
570
|
+
typedef void_ item8;
|
571
|
+
typedef T7 back;
|
572
|
+
typedef v_iter< type,0 > begin;
|
573
|
+
typedef v_iter< type,8 > end;
|
574
|
+
};
|
575
|
+
|
576
|
+
template<>
|
577
|
+
struct push_front_impl< aux::vector_tag<7> >
|
578
|
+
{
|
579
|
+
template< typename Vector, typename T > struct apply
|
580
|
+
{
|
581
|
+
typedef vector8<
|
582
|
+
T
|
583
|
+
,
|
584
|
+
typename Vector::item0, typename Vector::item1
|
585
|
+
, typename Vector::item2, typename Vector::item3
|
586
|
+
, typename Vector::item4, typename Vector::item5
|
587
|
+
, typename Vector::item6
|
588
|
+
> type;
|
589
|
+
};
|
590
|
+
};
|
591
|
+
|
592
|
+
template<>
|
593
|
+
struct pop_front_impl< aux::vector_tag<8> >
|
594
|
+
{
|
595
|
+
template< typename Vector > struct apply
|
596
|
+
{
|
597
|
+
typedef vector7<
|
598
|
+
typename Vector::item1, typename Vector::item2
|
599
|
+
, typename Vector::item3, typename Vector::item4
|
600
|
+
, typename Vector::item5, typename Vector::item6
|
601
|
+
, typename Vector::item7
|
602
|
+
> type;
|
603
|
+
};
|
604
|
+
};
|
605
|
+
|
606
|
+
template<>
|
607
|
+
struct push_back_impl< aux::vector_tag<7> >
|
608
|
+
{
|
609
|
+
template< typename Vector, typename T > struct apply
|
610
|
+
{
|
611
|
+
typedef vector8<
|
612
|
+
typename Vector::item0, typename Vector::item1
|
613
|
+
, typename Vector::item2, typename Vector::item3
|
614
|
+
, typename Vector::item4, typename Vector::item5
|
615
|
+
, typename Vector::item6
|
616
|
+
,
|
617
|
+
T
|
618
|
+
> type;
|
619
|
+
};
|
620
|
+
};
|
621
|
+
|
622
|
+
template<>
|
623
|
+
struct pop_back_impl< aux::vector_tag<8> >
|
624
|
+
{
|
625
|
+
template< typename Vector > struct apply
|
626
|
+
{
|
627
|
+
typedef vector7<
|
628
|
+
typename Vector::item0, typename Vector::item1
|
629
|
+
, typename Vector::item2, typename Vector::item3
|
630
|
+
, typename Vector::item4, typename Vector::item5
|
631
|
+
, typename Vector::item6
|
632
|
+
> type;
|
633
|
+
};
|
634
|
+
};
|
635
|
+
|
636
|
+
template< typename V >
|
637
|
+
struct v_at< V,8 >
|
638
|
+
{
|
639
|
+
typedef typename V::item8 type;
|
640
|
+
};
|
641
|
+
|
642
|
+
template<
|
643
|
+
typename T0, typename T1, typename T2, typename T3, typename T4
|
644
|
+
, typename T5, typename T6, typename T7, typename T8
|
645
|
+
>
|
646
|
+
struct vector9
|
647
|
+
{
|
648
|
+
typedef aux::vector_tag<9> tag;
|
649
|
+
typedef vector9 type;
|
650
|
+
typedef T0 item0;
|
651
|
+
typedef T1 item1;
|
652
|
+
typedef T2 item2;
|
653
|
+
typedef T3 item3;
|
654
|
+
typedef T4 item4;
|
655
|
+
typedef T5 item5;
|
656
|
+
typedef T6 item6;
|
657
|
+
typedef T7 item7;
|
658
|
+
typedef T8 item8;
|
659
|
+
|
660
|
+
|
661
|
+
typedef void_ item9;
|
662
|
+
typedef T8 back;
|
663
|
+
typedef v_iter< type,0 > begin;
|
664
|
+
typedef v_iter< type,9 > end;
|
665
|
+
};
|
666
|
+
|
667
|
+
template<>
|
668
|
+
struct push_front_impl< aux::vector_tag<8> >
|
669
|
+
{
|
670
|
+
template< typename Vector, typename T > struct apply
|
671
|
+
{
|
672
|
+
typedef vector9<
|
673
|
+
T
|
674
|
+
,
|
675
|
+
typename Vector::item0, typename Vector::item1
|
676
|
+
, typename Vector::item2, typename Vector::item3
|
677
|
+
, typename Vector::item4, typename Vector::item5
|
678
|
+
, typename Vector::item6, typename Vector::item7
|
679
|
+
> type;
|
680
|
+
};
|
681
|
+
};
|
682
|
+
|
683
|
+
template<>
|
684
|
+
struct pop_front_impl< aux::vector_tag<9> >
|
685
|
+
{
|
686
|
+
template< typename Vector > struct apply
|
687
|
+
{
|
688
|
+
typedef vector8<
|
689
|
+
typename Vector::item1, typename Vector::item2
|
690
|
+
, typename Vector::item3, typename Vector::item4
|
691
|
+
, typename Vector::item5, typename Vector::item6
|
692
|
+
, typename Vector::item7, typename Vector::item8
|
693
|
+
> type;
|
694
|
+
};
|
695
|
+
};
|
696
|
+
|
697
|
+
template<>
|
698
|
+
struct push_back_impl< aux::vector_tag<8> >
|
699
|
+
{
|
700
|
+
template< typename Vector, typename T > struct apply
|
701
|
+
{
|
702
|
+
typedef vector9<
|
703
|
+
typename Vector::item0, typename Vector::item1
|
704
|
+
, typename Vector::item2, typename Vector::item3
|
705
|
+
, typename Vector::item4, typename Vector::item5
|
706
|
+
, typename Vector::item6, typename Vector::item7
|
707
|
+
,
|
708
|
+
T
|
709
|
+
> type;
|
710
|
+
};
|
711
|
+
};
|
712
|
+
|
713
|
+
template<>
|
714
|
+
struct pop_back_impl< aux::vector_tag<9> >
|
715
|
+
{
|
716
|
+
template< typename Vector > struct apply
|
717
|
+
{
|
718
|
+
typedef vector8<
|
719
|
+
typename Vector::item0, typename Vector::item1
|
720
|
+
, typename Vector::item2, typename Vector::item3
|
721
|
+
, typename Vector::item4, typename Vector::item5
|
722
|
+
, typename Vector::item6, typename Vector::item7
|
723
|
+
> type;
|
724
|
+
};
|
725
|
+
};
|
726
|
+
|
727
|
+
template< typename V >
|
728
|
+
struct v_at< V,9 >
|
729
|
+
{
|
730
|
+
typedef typename V::item9 type;
|
731
|
+
};
|
732
|
+
|
733
|
+
template<
|
734
|
+
typename T0, typename T1, typename T2, typename T3, typename T4
|
735
|
+
, typename T5, typename T6, typename T7, typename T8, typename T9
|
736
|
+
>
|
737
|
+
struct vector10
|
738
|
+
{
|
739
|
+
typedef aux::vector_tag<10> tag;
|
740
|
+
typedef vector10 type;
|
741
|
+
typedef T0 item0;
|
742
|
+
typedef T1 item1;
|
743
|
+
typedef T2 item2;
|
744
|
+
typedef T3 item3;
|
745
|
+
typedef T4 item4;
|
746
|
+
typedef T5 item5;
|
747
|
+
typedef T6 item6;
|
748
|
+
typedef T7 item7;
|
749
|
+
typedef T8 item8;
|
750
|
+
typedef T9 item9;
|
751
|
+
|
752
|
+
|
753
|
+
typedef void_ item10;
|
754
|
+
typedef T9 back;
|
755
|
+
typedef v_iter< type,0 > begin;
|
756
|
+
typedef v_iter< type,10 > end;
|
757
|
+
};
|
758
|
+
|
759
|
+
template<>
|
760
|
+
struct push_front_impl< aux::vector_tag<9> >
|
761
|
+
{
|
762
|
+
template< typename Vector, typename T > struct apply
|
763
|
+
{
|
764
|
+
typedef vector10<
|
765
|
+
T
|
766
|
+
,
|
767
|
+
typename Vector::item0, typename Vector::item1
|
768
|
+
, typename Vector::item2, typename Vector::item3
|
769
|
+
, typename Vector::item4, typename Vector::item5
|
770
|
+
, typename Vector::item6, typename Vector::item7
|
771
|
+
, typename Vector::item8
|
772
|
+
> type;
|
773
|
+
};
|
774
|
+
};
|
775
|
+
|
776
|
+
template<>
|
777
|
+
struct pop_front_impl< aux::vector_tag<10> >
|
778
|
+
{
|
779
|
+
template< typename Vector > struct apply
|
780
|
+
{
|
781
|
+
typedef vector9<
|
782
|
+
typename Vector::item1, typename Vector::item2
|
783
|
+
, typename Vector::item3, typename Vector::item4
|
784
|
+
, typename Vector::item5, typename Vector::item6
|
785
|
+
, typename Vector::item7, typename Vector::item8
|
786
|
+
, typename Vector::item9
|
787
|
+
> type;
|
788
|
+
};
|
789
|
+
};
|
790
|
+
|
791
|
+
template<>
|
792
|
+
struct push_back_impl< aux::vector_tag<9> >
|
793
|
+
{
|
794
|
+
template< typename Vector, typename T > struct apply
|
795
|
+
{
|
796
|
+
typedef vector10<
|
797
|
+
typename Vector::item0, typename Vector::item1
|
798
|
+
, typename Vector::item2, typename Vector::item3
|
799
|
+
, typename Vector::item4, typename Vector::item5
|
800
|
+
, typename Vector::item6, typename Vector::item7
|
801
|
+
, typename Vector::item8
|
802
|
+
,
|
803
|
+
T
|
804
|
+
> type;
|
805
|
+
};
|
806
|
+
};
|
807
|
+
|
808
|
+
template<>
|
809
|
+
struct pop_back_impl< aux::vector_tag<10> >
|
810
|
+
{
|
811
|
+
template< typename Vector > struct apply
|
812
|
+
{
|
813
|
+
typedef vector9<
|
814
|
+
typename Vector::item0, typename Vector::item1
|
815
|
+
, typename Vector::item2, typename Vector::item3
|
816
|
+
, typename Vector::item4, typename Vector::item5
|
817
|
+
, typename Vector::item6, typename Vector::item7
|
818
|
+
, typename Vector::item8
|
819
|
+
> type;
|
820
|
+
};
|
821
|
+
};
|
822
|
+
|
823
|
+
template< typename V >
|
824
|
+
struct v_at< V,10 >
|
825
|
+
{
|
826
|
+
typedef typename V::item10 type;
|
827
|
+
};
|
828
|
+
|
829
|
+
}}
|