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
@@ -15,6 +15,8 @@
|
|
15
15
|
#include <locale>
|
16
16
|
#include <functional>
|
17
17
|
|
18
|
+
#include <boost/type_traits/make_unsigned.hpp>
|
19
|
+
|
18
20
|
namespace boost {
|
19
21
|
namespace algorithm {
|
20
22
|
namespace detail {
|
@@ -37,7 +39,7 @@ namespace boost {
|
|
37
39
|
CharT operator ()( CharT Ch ) const
|
38
40
|
{
|
39
41
|
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
40
|
-
return std::tolower( Ch);
|
42
|
+
return std::tolower( static_cast<typename boost::make_unsigned <CharT>::type> ( Ch ));
|
41
43
|
#else
|
42
44
|
return std::tolower<CharT>( Ch, *m_Loc );
|
43
45
|
#endif
|
@@ -57,7 +59,7 @@ namespace boost {
|
|
57
59
|
CharT operator ()( CharT Ch ) const
|
58
60
|
{
|
59
61
|
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
|
60
|
-
return std::toupper( Ch);
|
62
|
+
return std::toupper( static_cast<typename boost::make_unsigned <CharT>::type> ( Ch ));
|
61
63
|
#else
|
62
64
|
return std::toupper<CharT>( Ch, *m_Loc );
|
63
65
|
#endif
|
@@ -74,17 +74,17 @@ namespace boost {
|
|
74
74
|
const InputT& Input,
|
75
75
|
FormatterT Formatter,
|
76
76
|
const FindResultT& FindResult )
|
77
|
-
{
|
77
|
+
{
|
78
78
|
if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
79
|
+
return ::boost::algorithm::detail::find_format_copy_impl2(
|
80
|
+
Output,
|
81
|
+
Input,
|
82
|
+
Formatter,
|
83
|
+
FindResult,
|
84
|
+
Formatter(FindResult) );
|
85
85
|
} else {
|
86
86
|
return std::copy( ::boost::begin(Input), ::boost::end(Input), Output );
|
87
|
-
|
87
|
+
}
|
88
88
|
}
|
89
89
|
|
90
90
|
|
@@ -137,14 +137,14 @@ namespace boost {
|
|
137
137
|
const FindResultT& FindResult)
|
138
138
|
{
|
139
139
|
if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
140
|
+
return ::boost::algorithm::detail::find_format_copy_impl2(
|
141
|
+
Input,
|
142
|
+
Formatter,
|
143
|
+
FindResult,
|
144
|
+
Formatter(FindResult) );
|
145
145
|
} else {
|
146
146
|
return Input;
|
147
|
-
|
147
|
+
}
|
148
148
|
}
|
149
149
|
|
150
150
|
// replace implementation ----------------------------------------------------//
|
@@ -189,12 +189,12 @@ namespace boost {
|
|
189
189
|
const FindResultT& FindResult)
|
190
190
|
{
|
191
191
|
if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
192
|
+
::boost::algorithm::detail::find_format_impl2(
|
193
|
+
Input,
|
194
|
+
Formatter,
|
195
|
+
FindResult,
|
196
|
+
Formatter(FindResult) );
|
197
|
+
}
|
198
198
|
}
|
199
199
|
|
200
200
|
} // namespace detail
|
@@ -84,18 +84,18 @@ namespace boost {
|
|
84
84
|
FinderT Finder,
|
85
85
|
FormatterT Formatter,
|
86
86
|
const FindResultT& FindResult )
|
87
|
-
{
|
87
|
+
{
|
88
88
|
if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
89
|
+
return ::boost::algorithm::detail::find_format_all_copy_impl2(
|
90
|
+
Output,
|
91
|
+
Input,
|
92
|
+
Finder,
|
93
|
+
Formatter,
|
94
|
+
FindResult,
|
95
|
+
Formatter(FindResult) );
|
96
96
|
} else {
|
97
97
|
return std::copy( ::boost::begin(Input), ::boost::end(Input), Output );
|
98
|
-
|
98
|
+
}
|
99
99
|
}
|
100
100
|
|
101
101
|
// find_format_all_copy implementation ----------------------------------------------//
|
@@ -161,15 +161,15 @@ namespace boost {
|
|
161
161
|
const FindResultT& FindResult)
|
162
162
|
{
|
163
163
|
if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
164
|
+
return ::boost::algorithm::detail::find_format_all_copy_impl2(
|
165
|
+
Input,
|
166
|
+
Finder,
|
167
|
+
Formatter,
|
168
|
+
FindResult,
|
169
|
+
Formatter(FindResult) );
|
170
170
|
} else {
|
171
171
|
return Input;
|
172
|
-
|
172
|
+
}
|
173
173
|
}
|
174
174
|
|
175
175
|
// find_format_all implementation ------------------------------------------------//
|
@@ -257,13 +257,13 @@ namespace boost {
|
|
257
257
|
FindResultT FindResult)
|
258
258
|
{
|
259
259
|
if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) {
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
260
|
+
::boost::algorithm::detail::find_format_all_impl2(
|
261
|
+
Input,
|
262
|
+
Finder,
|
263
|
+
Formatter,
|
264
|
+
FindResult,
|
265
|
+
Formatter(FindResult) );
|
266
|
+
}
|
267
267
|
}
|
268
268
|
|
269
269
|
} // namespace detail
|
@@ -53,7 +53,7 @@ namespace boost {
|
|
53
53
|
{
|
54
54
|
iterator_range<ForwardIteratorT>::operator=(FindResult);
|
55
55
|
if( !this->empty() ) {
|
56
|
-
|
56
|
+
m_FormatResult=m_Formatter(FindResult);
|
57
57
|
}
|
58
58
|
|
59
59
|
return *this;
|
@@ -71,7 +71,7 @@ namespace boost {
|
|
71
71
|
};
|
72
72
|
|
73
73
|
template<typename InputT, typename FindResultT>
|
74
|
-
bool check_find_result(InputT
|
74
|
+
bool check_find_result(InputT&, FindResultT& FindResult)
|
75
75
|
{
|
76
76
|
typedef BOOST_STRING_TYPENAME
|
77
77
|
range_const_iterator<InputT>::type input_iterator_type;
|
@@ -87,6 +87,31 @@ namespace boost {
|
|
87
87
|
}
|
88
88
|
};
|
89
89
|
|
90
|
+
// dissect format functor ----------------------------------------------------//
|
91
|
+
|
92
|
+
// dissect format functor
|
93
|
+
template<typename FinderT>
|
94
|
+
struct dissect_formatF
|
95
|
+
{
|
96
|
+
public:
|
97
|
+
// Construction
|
98
|
+
dissect_formatF(FinderT Finder) :
|
99
|
+
m_Finder(Finder) {}
|
100
|
+
|
101
|
+
// Operation
|
102
|
+
template<typename RangeT>
|
103
|
+
inline iterator_range<
|
104
|
+
BOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
|
105
|
+
operator()(const RangeT& Replace) const
|
106
|
+
{
|
107
|
+
return m_Finder(::boost::begin(Replace), ::boost::end(Replace));
|
108
|
+
}
|
109
|
+
|
110
|
+
private:
|
111
|
+
FinderT m_Finder;
|
112
|
+
};
|
113
|
+
|
114
|
+
|
90
115
|
} // namespace detail
|
91
116
|
} // namespace algorithm
|
92
117
|
} // namespace boost
|
@@ -36,7 +36,7 @@ namespace boost {
|
|
36
36
|
|
37
37
|
//! Constant formatter
|
38
38
|
/*!
|
39
|
-
|
39
|
+
Constructs a \c const_formatter. Const formatter always returns
|
40
40
|
the same value, regardless of the parameter.
|
41
41
|
|
42
42
|
\param Format A predefined value used as a result for formating
|
@@ -55,7 +55,7 @@ namespace boost {
|
|
55
55
|
|
56
56
|
//! Identity formatter
|
57
57
|
/*!
|
58
|
-
|
58
|
+
Constructs an \c identity_formatter. Identity formatter always returns
|
59
59
|
the parameter.
|
60
60
|
|
61
61
|
\return An instance of the \c identity_formatter object.
|
@@ -73,7 +73,7 @@ namespace boost {
|
|
73
73
|
|
74
74
|
//! Empty formatter
|
75
75
|
/*!
|
76
|
-
|
76
|
+
Constructs an \c empty_formatter. Empty formatter always returns an empty
|
77
77
|
sequence.
|
78
78
|
|
79
79
|
\param Input container used to select a correct value_type for the
|
@@ -89,6 +89,22 @@ namespace boost {
|
|
89
89
|
BOOST_STRING_TYPENAME range_value<RangeT>::type>();
|
90
90
|
}
|
91
91
|
|
92
|
+
//! Empty formatter
|
93
|
+
/*!
|
94
|
+
Constructs a \c dissect_formatter. Dissect formatter uses a specified finder
|
95
|
+
to extract a portion of the formatted sequence. The first finder's match is returned
|
96
|
+
as a result
|
97
|
+
|
98
|
+
\param Finder a finder used to select a portion of the formated sequence
|
99
|
+
\return An instance of the \c dissect_formatter object.
|
100
|
+
*/
|
101
|
+
template<typename FinderT>
|
102
|
+
inline detail::dissect_formatF< FinderT >
|
103
|
+
dissect_formatter(const FinderT& Finder)
|
104
|
+
{
|
105
|
+
return detail::dissect_formatF<FinderT>(Finder);
|
106
|
+
}
|
107
|
+
|
92
108
|
|
93
109
|
} // namespace algorithm
|
94
110
|
|
@@ -96,6 +112,7 @@ namespace boost {
|
|
96
112
|
using algorithm::const_formatter;
|
97
113
|
using algorithm::identity_formatter;
|
98
114
|
using algorithm::empty_formatter;
|
115
|
+
using algorithm::dissect_formatter;
|
99
116
|
|
100
117
|
} // namespace boost
|
101
118
|
|
data/ext/boost/assert.hpp
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
//
|
2
2
|
// boost/assert.hpp - BOOST_ASSERT(expr)
|
3
|
+
// BOOST_ASSERT_MSG(expr, msg)
|
4
|
+
// BOOST_VERIFY(expr)
|
3
5
|
//
|
4
6
|
// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
|
5
7
|
// Copyright (c) 2007 Peter Dimov
|
8
|
+
// Copyright (c) Beman Dawes 2011
|
6
9
|
//
|
7
10
|
// Distributed under the Boost Software License, Version 1.0. (See
|
8
11
|
// accompanying file LICENSE_1_0.txt or copy at
|
@@ -13,6 +16,16 @@
|
|
13
16
|
// See http://www.boost.org/libs/utility/assert.html for documentation.
|
14
17
|
//
|
15
18
|
|
19
|
+
//
|
20
|
+
// Stop inspect complaining about use of 'assert':
|
21
|
+
//
|
22
|
+
// boostinspect:naassert_macro
|
23
|
+
//
|
24
|
+
|
25
|
+
//--------------------------------------------------------------------------------------//
|
26
|
+
// BOOST_ASSERT //
|
27
|
+
//--------------------------------------------------------------------------------------//
|
28
|
+
|
16
29
|
#undef BOOST_ASSERT
|
17
30
|
|
18
31
|
#if defined(BOOST_DISABLE_ASSERTS)
|
@@ -25,18 +38,86 @@
|
|
25
38
|
|
26
39
|
namespace boost
|
27
40
|
{
|
28
|
-
|
29
|
-
|
30
|
-
|
41
|
+
void assertion_failed(char const * expr,
|
42
|
+
char const * function, char const * file, long line); // user defined
|
31
43
|
} // namespace boost
|
32
44
|
|
33
|
-
#define BOOST_ASSERT(expr) ((expr)
|
45
|
+
#define BOOST_ASSERT(expr) ((expr) \
|
46
|
+
? ((void)0) \
|
47
|
+
: ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
|
34
48
|
|
35
49
|
#else
|
36
50
|
# include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same
|
37
51
|
# define BOOST_ASSERT(expr) assert(expr)
|
38
52
|
#endif
|
39
53
|
|
54
|
+
//--------------------------------------------------------------------------------------//
|
55
|
+
// BOOST_ASSERT_MSG //
|
56
|
+
//--------------------------------------------------------------------------------------//
|
57
|
+
|
58
|
+
# undef BOOST_ASSERT_MSG
|
59
|
+
|
60
|
+
#if defined(BOOST_DISABLE_ASSERTS) || defined(NDEBUG)
|
61
|
+
|
62
|
+
#define BOOST_ASSERT_MSG(expr, msg) ((void)0)
|
63
|
+
|
64
|
+
#elif defined(BOOST_ENABLE_ASSERT_HANDLER)
|
65
|
+
|
66
|
+
#include <boost/current_function.hpp>
|
67
|
+
|
68
|
+
namespace boost
|
69
|
+
{
|
70
|
+
void assertion_failed_msg(char const * expr, char const * msg,
|
71
|
+
char const * function, char const * file, long line); // user defined
|
72
|
+
} // namespace boost
|
73
|
+
|
74
|
+
#define BOOST_ASSERT_MSG(expr, msg) ((expr) \
|
75
|
+
? ((void)0) \
|
76
|
+
: ::boost::assertion_failed_msg(#expr, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
|
77
|
+
|
78
|
+
#else
|
79
|
+
#ifndef BOOST_ASSERT_HPP
|
80
|
+
#define BOOST_ASSERT_HPP
|
81
|
+
#include <cstdlib>
|
82
|
+
#include <iostream>
|
83
|
+
#include <boost/current_function.hpp>
|
84
|
+
|
85
|
+
// IDE's like Visual Studio perform better if output goes to std::cout or
|
86
|
+
// some other stream, so allow user to configure output stream:
|
87
|
+
#ifndef BOOST_ASSERT_MSG_OSTREAM
|
88
|
+
# define BOOST_ASSERT_MSG_OSTREAM std::cerr
|
89
|
+
#endif
|
90
|
+
|
91
|
+
namespace boost
|
92
|
+
{
|
93
|
+
namespace assertion
|
94
|
+
{
|
95
|
+
namespace detail
|
96
|
+
{
|
97
|
+
inline void assertion_failed_msg(char const * expr, char const * msg, char const * function,
|
98
|
+
char const * file, long line)
|
99
|
+
{
|
100
|
+
BOOST_ASSERT_MSG_OSTREAM
|
101
|
+
<< "***** Internal Program Error - assertion (" << expr << ") failed in "
|
102
|
+
<< function << ":\n"
|
103
|
+
<< file << '(' << line << "): " << msg << std::endl;
|
104
|
+
std::abort();
|
105
|
+
}
|
106
|
+
} // detail
|
107
|
+
} // assertion
|
108
|
+
} // detail
|
109
|
+
#endif
|
110
|
+
|
111
|
+
#define BOOST_ASSERT_MSG(expr, msg) ((expr) \
|
112
|
+
? ((void)0) \
|
113
|
+
: ::boost::assertion::detail::assertion_failed_msg(#expr, msg, \
|
114
|
+
BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
|
115
|
+
#endif
|
116
|
+
|
117
|
+
//--------------------------------------------------------------------------------------//
|
118
|
+
// BOOST_VERIFY //
|
119
|
+
//--------------------------------------------------------------------------------------//
|
120
|
+
|
40
121
|
#undef BOOST_VERIFY
|
41
122
|
|
42
123
|
#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
|
data/ext/boost/bind/bind.hpp
CHANGED
@@ -1680,7 +1680,7 @@ template< class R, class T > struct add_cref< R (T::*) (), 1 >
|
|
1680
1680
|
typedef void type;
|
1681
1681
|
};
|
1682
1682
|
|
1683
|
-
#if !
|
1683
|
+
#if !defined(__IBMCPP__) || __IBMCPP_FUNC_CV_TMPL_ARG_DEDUCTION
|
1684
1684
|
|
1685
1685
|
template< class R, class T > struct add_cref< R (T::*) () const, 1 >
|
1686
1686
|
{
|
@@ -8,7 +8,7 @@ namespace boost
|
|
8
8
|
{
|
9
9
|
namespace concepts {}
|
10
10
|
|
11
|
-
# if
|
11
|
+
# if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD)
|
12
12
|
namespace concept = concepts;
|
13
13
|
# endif
|
14
14
|
} // namespace boost::concept
|
data/ext/boost/concept_check.hpp
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
//
|
2
2
|
// (C) Copyright Jeremy Siek 2000.
|
3
|
+
// Copyright 2002 The Trustees of Indiana University.
|
4
|
+
//
|
3
5
|
// Distributed under the Boost Software License, Version 1.0. (See
|
4
6
|
// accompanying file LICENSE_1_0.txt or copy at
|
5
7
|
// http://www.boost.org/LICENSE_1_0.txt)
|
@@ -36,14 +38,14 @@ namespace boost
|
|
36
38
|
//
|
37
39
|
// Backward compatibility
|
38
40
|
//
|
39
|
-
|
41
|
+
|
40
42
|
template <class Model>
|
41
43
|
inline void function_requires(Model* = 0)
|
42
44
|
{
|
43
45
|
BOOST_CONCEPT_ASSERT((Model));
|
44
|
-
}
|
46
|
+
}
|
45
47
|
template <class T> inline void ignore_unused_variable_warning(T const&) {}
|
46
|
-
|
48
|
+
|
47
49
|
# define BOOST_CLASS_REQUIRE(type_var, ns, concept) \
|
48
50
|
BOOST_CONCEPT_ASSERT((ns::concept<type_var>))
|
49
51
|
|
@@ -56,20 +58,21 @@ namespace boost
|
|
56
58
|
# define BOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \
|
57
59
|
BOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3,tv4>))
|
58
60
|
|
59
|
-
|
61
|
+
|
60
62
|
//
|
61
63
|
// Begin concept definitions
|
62
64
|
//
|
63
65
|
BOOST_concept(Integer, (T))
|
64
66
|
{
|
65
67
|
BOOST_CONCEPT_USAGE(Integer)
|
66
|
-
{
|
68
|
+
{
|
67
69
|
x.error_type_must_be_an_integer_type();
|
68
70
|
}
|
69
71
|
private:
|
70
72
|
T x;
|
71
73
|
};
|
72
74
|
|
75
|
+
template <> struct Integer<char> {};
|
73
76
|
template <> struct Integer<signed char> {};
|
74
77
|
template <> struct Integer<unsigned char> {};
|
75
78
|
template <> struct Integer<short> {};
|
@@ -87,7 +90,7 @@ namespace boost
|
|
87
90
|
# endif
|
88
91
|
|
89
92
|
BOOST_concept(SignedInteger,(T)) {
|
90
|
-
BOOST_CONCEPT_USAGE(SignedInteger) {
|
93
|
+
BOOST_CONCEPT_USAGE(SignedInteger) {
|
91
94
|
x.error_type_must_be_a_signed_integer_type();
|
92
95
|
}
|
93
96
|
private:
|
@@ -101,16 +104,16 @@ namespace boost
|
|
101
104
|
template <> struct SignedInteger< ::boost::long_long_type> {};
|
102
105
|
# elif defined(BOOST_HAS_MS_INT64)
|
103
106
|
template <> struct SignedInteger<__int64> {};
|
104
|
-
# endif
|
107
|
+
# endif
|
105
108
|
|
106
109
|
BOOST_concept(UnsignedInteger,(T)) {
|
107
|
-
BOOST_CONCEPT_USAGE(UnsignedInteger) {
|
110
|
+
BOOST_CONCEPT_USAGE(UnsignedInteger) {
|
108
111
|
x.error_type_must_be_an_unsigned_integer_type();
|
109
112
|
}
|
110
113
|
private:
|
111
114
|
T x;
|
112
115
|
};
|
113
|
-
|
116
|
+
|
114
117
|
template <> struct UnsignedInteger<unsigned char> {};
|
115
118
|
template <> struct UnsignedInteger<unsigned short> {};
|
116
119
|
template <> struct UnsignedInteger<unsigned int> {};
|
@@ -136,23 +139,24 @@ namespace boost
|
|
136
139
|
{
|
137
140
|
BOOST_CONCEPT_USAGE(Assignable) {
|
138
141
|
#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
|
139
|
-
a =
|
142
|
+
a = b; // require assignment operator
|
140
143
|
#endif
|
141
|
-
const_constraints(
|
144
|
+
const_constraints(b);
|
142
145
|
}
|
143
146
|
private:
|
144
|
-
void const_constraints(const TT&
|
147
|
+
void const_constraints(const TT& x) {
|
145
148
|
#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
|
146
|
-
a =
|
149
|
+
a = x; // const required for argument to assignment
|
147
150
|
#else
|
148
|
-
ignore_unused_variable_warning(
|
151
|
+
ignore_unused_variable_warning(x);
|
149
152
|
#endif
|
150
153
|
}
|
151
154
|
private:
|
152
155
|
TT a;
|
156
|
+
TT b;
|
153
157
|
};
|
154
158
|
|
155
|
-
|
159
|
+
|
156
160
|
BOOST_concept(CopyConstructible,(TT))
|
157
161
|
{
|
158
162
|
BOOST_CONCEPT_USAGE(CopyConstructible) {
|
@@ -180,22 +184,23 @@ namespace boost
|
|
180
184
|
BOOST_concept(SGIAssignable,(TT))
|
181
185
|
{
|
182
186
|
BOOST_CONCEPT_USAGE(SGIAssignable) {
|
183
|
-
TT
|
187
|
+
TT c(a);
|
184
188
|
#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
|
185
|
-
a =
|
189
|
+
a = b; // require assignment operator
|
186
190
|
#endif
|
187
|
-
const_constraints(
|
188
|
-
ignore_unused_variable_warning(
|
191
|
+
const_constraints(b);
|
192
|
+
ignore_unused_variable_warning(c);
|
189
193
|
}
|
190
194
|
private:
|
191
|
-
void const_constraints(const TT&
|
192
|
-
TT c(
|
195
|
+
void const_constraints(const TT& x) {
|
196
|
+
TT c(x);
|
193
197
|
#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
|
194
|
-
a =
|
198
|
+
a = x; // const required for argument to assignment
|
195
199
|
#endif
|
196
200
|
ignore_unused_variable_warning(c);
|
197
201
|
}
|
198
202
|
TT a;
|
203
|
+
TT b;
|
199
204
|
};
|
200
205
|
#if (defined _MSC_VER)
|
201
206
|
# pragma warning( pop )
|
@@ -297,7 +302,7 @@ namespace boost
|
|
297
302
|
BOOST_concept(Generator,(Func)(Return))
|
298
303
|
{
|
299
304
|
BOOST_CONCEPT_USAGE(Generator) { test(is_void<Return>()); }
|
300
|
-
|
305
|
+
|
301
306
|
private:
|
302
307
|
void test(boost::mpl::false_)
|
303
308
|
{
|
@@ -310,22 +315,22 @@ namespace boost
|
|
310
315
|
{
|
311
316
|
f();
|
312
317
|
}
|
313
|
-
|
318
|
+
|
314
319
|
Func f;
|
315
320
|
};
|
316
321
|
|
317
322
|
BOOST_concept(UnaryFunction,(Func)(Return)(Arg))
|
318
323
|
{
|
319
324
|
BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void<Return>()); }
|
320
|
-
|
325
|
+
|
321
326
|
private:
|
322
327
|
void test(boost::mpl::false_)
|
323
328
|
{
|
324
329
|
f(arg); // "priming the pump" this way keeps msvc6 happy (ICE)
|
325
330
|
Return r = f(arg);
|
326
|
-
ignore_unused_variable_warning(r);
|
331
|
+
ignore_unused_variable_warning(r);
|
327
332
|
}
|
328
|
-
|
333
|
+
|
329
334
|
void test(boost::mpl::true_)
|
330
335
|
{
|
331
336
|
f(arg);
|
@@ -354,12 +359,21 @@ namespace boost
|
|
354
359
|
Return r = f(first, second); // require operator()
|
355
360
|
(void)r;
|
356
361
|
}
|
357
|
-
|
362
|
+
|
358
363
|
void test(boost::mpl::true_)
|
359
364
|
{
|
360
365
|
f(first,second);
|
361
366
|
}
|
362
|
-
|
367
|
+
|
368
|
+
#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
|
369
|
+
&& BOOST_WORKAROUND(__GNUC__, > 3)))
|
370
|
+
// Declare a dummy constructor to make gcc happy.
|
371
|
+
// It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
|
372
|
+
// (warning: non-static reference "const double& boost::BinaryFunction<YourClassHere>::arg"
|
373
|
+
// in class without a constructor [-Wuninitialized])
|
374
|
+
BinaryFunction();
|
375
|
+
#endif
|
376
|
+
|
363
377
|
Func f;
|
364
378
|
First first;
|
365
379
|
Second second;
|
@@ -371,6 +385,15 @@ namespace boost
|
|
371
385
|
require_boolean_expr(f(arg)); // require operator() returning bool
|
372
386
|
}
|
373
387
|
private:
|
388
|
+
#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
|
389
|
+
&& BOOST_WORKAROUND(__GNUC__, > 3)))
|
390
|
+
// Declare a dummy constructor to make gcc happy.
|
391
|
+
// It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
|
392
|
+
// (warning: non-static reference "const double& boost::UnaryPredicate<YourClassHere>::arg"
|
393
|
+
// in class without a constructor [-Wuninitialized])
|
394
|
+
UnaryPredicate();
|
395
|
+
#endif
|
396
|
+
|
374
397
|
Func f;
|
375
398
|
Arg arg;
|
376
399
|
};
|
@@ -381,6 +404,14 @@ namespace boost
|
|
381
404
|
require_boolean_expr(f(a, b)); // require operator() returning bool
|
382
405
|
}
|
383
406
|
private:
|
407
|
+
#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
|
408
|
+
&& BOOST_WORKAROUND(__GNUC__, > 3)))
|
409
|
+
// Declare a dummy constructor to make gcc happy.
|
410
|
+
// It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
|
411
|
+
// (warning: non-static reference "const double& boost::BinaryPredicate<YourClassHere>::arg"
|
412
|
+
// in class without a constructor [-Wuninitialized])
|
413
|
+
BinaryPredicate();
|
414
|
+
#endif
|
384
415
|
Func f;
|
385
416
|
First a;
|
386
417
|
Second b;
|
@@ -390,7 +421,7 @@ namespace boost
|
|
390
421
|
BOOST_concept(Const_BinaryPredicate,(Func)(First)(Second))
|
391
422
|
: BinaryPredicate<Func, First, Second>
|
392
423
|
{
|
393
|
-
BOOST_CONCEPT_USAGE(Const_BinaryPredicate) {
|
424
|
+
BOOST_CONCEPT_USAGE(Const_BinaryPredicate) {
|
394
425
|
const_constraints(f);
|
395
426
|
}
|
396
427
|
private:
|
@@ -398,6 +429,15 @@ namespace boost
|
|
398
429
|
// operator() must be a const member function
|
399
430
|
require_boolean_expr(fun(a, b));
|
400
431
|
}
|
432
|
+
#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
|
433
|
+
&& BOOST_WORKAROUND(__GNUC__, > 3)))
|
434
|
+
// Declare a dummy constructor to make gcc happy.
|
435
|
+
// It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
|
436
|
+
// (warning: non-static reference "const double& boost::Const_BinaryPredicate<YourClassHere>::arg"
|
437
|
+
// in class without a constructor [-Wuninitialized])
|
438
|
+
Const_BinaryPredicate();
|
439
|
+
#endif
|
440
|
+
|
401
441
|
Func f;
|
402
442
|
First a;
|
403
443
|
Second b;
|
@@ -407,7 +447,7 @@ namespace boost
|
|
407
447
|
: Generator<Func, typename Func::result_type>
|
408
448
|
{
|
409
449
|
typedef typename Func::result_type result_type;
|
410
|
-
|
450
|
+
|
411
451
|
BOOST_CONCEPT_USAGE(AdaptableGenerator)
|
412
452
|
{
|
413
453
|
BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
|
@@ -438,7 +478,7 @@ namespace boost
|
|
438
478
|
typedef typename Func::first_argument_type first_argument_type;
|
439
479
|
typedef typename Func::second_argument_type second_argument_type;
|
440
480
|
typedef typename Func::result_type result_type;
|
441
|
-
|
481
|
+
|
442
482
|
~AdaptableBinaryFunction()
|
443
483
|
{
|
444
484
|
BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
|
@@ -476,7 +516,7 @@ namespace boost
|
|
476
516
|
{
|
477
517
|
BOOST_CONCEPT_ASSERT((SignedInteger<difference_type>));
|
478
518
|
BOOST_CONCEPT_ASSERT((Convertible<iterator_category, std::input_iterator_tag>));
|
479
|
-
|
519
|
+
|
480
520
|
TT j(i);
|
481
521
|
(void)*i; // require dereference operator
|
482
522
|
++j; // require preincrement operator
|
@@ -490,7 +530,7 @@ namespace boost
|
|
490
530
|
: Assignable<TT>
|
491
531
|
{
|
492
532
|
BOOST_CONCEPT_USAGE(OutputIterator) {
|
493
|
-
|
533
|
+
|
494
534
|
++i; // require preincrement operator
|
495
535
|
i++; // require postincrement operator
|
496
536
|
*i++ = t; // require postincrement and assignment
|
@@ -509,11 +549,11 @@ namespace boost
|
|
509
549
|
BOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category
|
510
550
|
, std::forward_iterator_tag
|
511
551
|
>));
|
512
|
-
|
552
|
+
|
513
553
|
typename InputIterator<TT>::reference r = *i;
|
514
554
|
ignore_unused_variable_warning(r);
|
515
555
|
}
|
516
|
-
|
556
|
+
|
517
557
|
private:
|
518
558
|
TT i;
|
519
559
|
};
|
@@ -575,7 +615,7 @@ namespace boost
|
|
575
615
|
n = i - j; // require difference operator
|
576
616
|
(void)i[n]; // require element access operator
|
577
617
|
}
|
578
|
-
|
618
|
+
|
579
619
|
private:
|
580
620
|
TT a, b;
|
581
621
|
TT i, j;
|
@@ -613,7 +653,7 @@ namespace boost
|
|
613
653
|
BOOST_CONCEPT_ASSERT((InputIterator<const_iterator>));
|
614
654
|
const_constraints(c);
|
615
655
|
}
|
616
|
-
|
656
|
+
|
617
657
|
private:
|
618
658
|
void const_constraints(const C& cc) {
|
619
659
|
i = cc.begin();
|
@@ -634,19 +674,19 @@ namespace boost
|
|
634
674
|
typedef typename C::reference reference;
|
635
675
|
typedef typename C::iterator iterator;
|
636
676
|
typedef typename C::pointer pointer;
|
637
|
-
|
677
|
+
|
638
678
|
BOOST_CONCEPT_USAGE(Mutable_Container)
|
639
679
|
{
|
640
680
|
BOOST_CONCEPT_ASSERT((
|
641
681
|
Assignable<typename Mutable_Container::value_type>));
|
642
|
-
|
682
|
+
|
643
683
|
BOOST_CONCEPT_ASSERT((InputIterator<iterator>));
|
644
|
-
|
684
|
+
|
645
685
|
i = c.begin();
|
646
686
|
i = c.end();
|
647
687
|
c.swap(c2);
|
648
688
|
}
|
649
|
-
|
689
|
+
|
650
690
|
private:
|
651
691
|
iterator i;
|
652
692
|
C c, c2;
|
@@ -662,7 +702,7 @@ namespace boost
|
|
662
702
|
typename ForwardContainer::const_iterator
|
663
703
|
>));
|
664
704
|
}
|
665
|
-
};
|
705
|
+
};
|
666
706
|
|
667
707
|
BOOST_concept(Mutable_ForwardContainer,(C))
|
668
708
|
: ForwardContainer<C>
|
@@ -675,7 +715,7 @@ namespace boost
|
|
675
715
|
typename Mutable_ForwardContainer::iterator
|
676
716
|
>));
|
677
717
|
}
|
678
|
-
};
|
718
|
+
};
|
679
719
|
|
680
720
|
BOOST_concept(ReversibleContainer,(C))
|
681
721
|
: ForwardContainer<C>
|
@@ -689,9 +729,9 @@ namespace boost
|
|
689
729
|
BOOST_CONCEPT_ASSERT((
|
690
730
|
BidirectionalIterator<
|
691
731
|
typename ReversibleContainer::const_iterator>));
|
692
|
-
|
732
|
+
|
693
733
|
BOOST_CONCEPT_ASSERT((BidirectionalIterator<const_reverse_iterator>));
|
694
|
-
|
734
|
+
|
695
735
|
const_constraints(c);
|
696
736
|
}
|
697
737
|
private:
|
@@ -708,17 +748,17 @@ namespace boost
|
|
708
748
|
, ReversibleContainer<C>
|
709
749
|
{
|
710
750
|
typedef typename C::reverse_iterator reverse_iterator;
|
711
|
-
|
751
|
+
|
712
752
|
BOOST_CONCEPT_USAGE(Mutable_ReversibleContainer)
|
713
753
|
{
|
714
754
|
typedef typename Mutable_ForwardContainer<C>::iterator iterator;
|
715
755
|
BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<iterator>));
|
716
756
|
BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<reverse_iterator>));
|
717
|
-
|
757
|
+
|
718
758
|
reverse_iterator i = c.rbegin();
|
719
759
|
i = c.rend();
|
720
760
|
}
|
721
|
-
private:
|
761
|
+
private:
|
722
762
|
C c;
|
723
763
|
};
|
724
764
|
|
@@ -734,7 +774,7 @@ namespace boost
|
|
734
774
|
RandomAccessIterator<
|
735
775
|
typename RandomAccessContainer::const_iterator
|
736
776
|
>));
|
737
|
-
|
777
|
+
|
738
778
|
const_constraints(c);
|
739
779
|
}
|
740
780
|
private:
|
@@ -743,7 +783,7 @@ namespace boost
|
|
743
783
|
const_reference r = cc[n];
|
744
784
|
ignore_unused_variable_warning(r);
|
745
785
|
}
|
746
|
-
|
786
|
+
|
747
787
|
C c;
|
748
788
|
size_type n;
|
749
789
|
};
|
@@ -759,11 +799,11 @@ namespace boost
|
|
759
799
|
{
|
760
800
|
BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::iterator>));
|
761
801
|
BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::reverse_iterator>));
|
762
|
-
|
802
|
+
|
763
803
|
typename self::reference r = c[i];
|
764
804
|
ignore_unused_variable_warning(r);
|
765
805
|
}
|
766
|
-
|
806
|
+
|
767
807
|
private:
|
768
808
|
typename Mutable_ReversibleContainer<C>::size_type i;
|
769
809
|
C c;
|
@@ -779,7 +819,7 @@ namespace boost
|
|
779
819
|
{
|
780
820
|
BOOST_CONCEPT_USAGE(Sequence)
|
781
821
|
{
|
782
|
-
S
|
822
|
+
S
|
783
823
|
c(n),
|
784
824
|
c2(n, t),
|
785
825
|
c3(first, last);
|
@@ -804,7 +844,7 @@ namespace boost
|
|
804
844
|
typename Sequence::const_reference r = c.front();
|
805
845
|
ignore_unused_variable_warning(r);
|
806
846
|
}
|
807
|
-
|
847
|
+
|
808
848
|
typename S::value_type t;
|
809
849
|
typename S::size_type n;
|
810
850
|
typename S::value_type* first, *last;
|
@@ -863,11 +903,11 @@ namespace boost
|
|
863
903
|
c.erase(r.first, r.second);
|
864
904
|
const_constraints(c);
|
865
905
|
BOOST_CONCEPT_ASSERT((BinaryPredicate<key_compare,key_type,key_type>));
|
866
|
-
|
906
|
+
|
867
907
|
typedef typename AssociativeContainer::value_type value_type_;
|
868
908
|
BOOST_CONCEPT_ASSERT((BinaryPredicate<value_compare,value_type_,value_type_>));
|
869
909
|
}
|
870
|
-
|
910
|
+
|
871
911
|
// Redundant with the base concept, but it helps below.
|
872
912
|
typedef typename C::const_iterator const_iterator;
|
873
913
|
private:
|
@@ -893,7 +933,7 @@ namespace boost
|
|
893
933
|
BOOST_CONCEPT_USAGE(UniqueAssociativeContainer)
|
894
934
|
{
|
895
935
|
C c(first, last);
|
896
|
-
|
936
|
+
|
897
937
|
pos_flag = c.insert(t);
|
898
938
|
c.insert(first, last);
|
899
939
|
|
@@ -911,7 +951,7 @@ namespace boost
|
|
911
951
|
BOOST_CONCEPT_USAGE(MultipleAssociativeContainer)
|
912
952
|
{
|
913
953
|
C c(first, last);
|
914
|
-
|
954
|
+
|
915
955
|
pos = c.insert(t);
|
916
956
|
c.insert(first, last);
|
917
957
|
|
@@ -954,7 +994,7 @@ namespace boost
|
|
954
994
|
{
|
955
995
|
BOOST_CONCEPT_USAGE(SortedAssociativeContainer)
|
956
996
|
{
|
957
|
-
C
|
997
|
+
C
|
958
998
|
c(kc),
|
959
999
|
c2(first, last),
|
960
1000
|
c3(first, last, kc);
|
@@ -962,15 +1002,15 @@ namespace boost
|
|
962
1002
|
p = c.upper_bound(k);
|
963
1003
|
p = c.lower_bound(k);
|
964
1004
|
r = c.equal_range(k);
|
965
|
-
|
1005
|
+
|
966
1006
|
c.insert(p, t);
|
967
|
-
|
1007
|
+
|
968
1008
|
ignore_unused_variable_warning(c);
|
969
1009
|
ignore_unused_variable_warning(c2);
|
970
1010
|
ignore_unused_variable_warning(c3);
|
971
1011
|
const_constraints(c);
|
972
1012
|
}
|
973
|
-
|
1013
|
+
|
974
1014
|
void const_constraints(const C& c)
|
975
1015
|
{
|
976
1016
|
kc = c.key_comp();
|
@@ -980,7 +1020,7 @@ namespace boost
|
|
980
1020
|
cp = c.lower_bound(k);
|
981
1021
|
cr = c.equal_range(k);
|
982
1022
|
}
|
983
|
-
|
1023
|
+
|
984
1024
|
private:
|
985
1025
|
typename C::key_compare kc;
|
986
1026
|
typename C::value_compare vc;
|
@@ -999,6 +1039,42 @@ namespace boost
|
|
999
1039
|
|
1000
1040
|
// HashedAssociativeContainer
|
1001
1041
|
|
1042
|
+
BOOST_concept(Collection,(C))
|
1043
|
+
{
|
1044
|
+
BOOST_CONCEPT_USAGE(Collection)
|
1045
|
+
{
|
1046
|
+
boost::function_requires<boost::InputIteratorConcept<iterator> >();
|
1047
|
+
boost::function_requires<boost::InputIteratorConcept<const_iterator> >();
|
1048
|
+
boost::function_requires<boost::CopyConstructibleConcept<value_type> >();
|
1049
|
+
const_constraints(c);
|
1050
|
+
i = c.begin();
|
1051
|
+
i = c.end();
|
1052
|
+
c.swap(c);
|
1053
|
+
}
|
1054
|
+
|
1055
|
+
void const_constraints(const C& c) {
|
1056
|
+
ci = c.begin();
|
1057
|
+
ci = c.end();
|
1058
|
+
n = c.size();
|
1059
|
+
b = c.empty();
|
1060
|
+
}
|
1061
|
+
|
1062
|
+
private:
|
1063
|
+
typedef typename C::value_type value_type;
|
1064
|
+
typedef typename C::iterator iterator;
|
1065
|
+
typedef typename C::const_iterator const_iterator;
|
1066
|
+
typedef typename C::reference reference;
|
1067
|
+
typedef typename C::const_reference const_reference;
|
1068
|
+
// typedef typename C::pointer pointer;
|
1069
|
+
typedef typename C::difference_type difference_type;
|
1070
|
+
typedef typename C::size_type size_type;
|
1071
|
+
|
1072
|
+
C c;
|
1073
|
+
bool b;
|
1074
|
+
iterator i;
|
1075
|
+
const_iterator ci;
|
1076
|
+
size_type n;
|
1077
|
+
};
|
1002
1078
|
} // namespace boost
|
1003
1079
|
|
1004
1080
|
# include <boost/concept/detail/concept_undef.hpp>
|