passenger 4.0.20 → 4.0.21
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.
- checksums.yaml +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/.gitignore +1 -0
- data/.travis.yml +1 -1
- data/NEWS +15 -0
- data/README.md +5 -3
- data/Rakefile +1 -0
- data/bin/passenger-config +1 -5
- data/bin/passenger-install-apache2-module +53 -5
- data/bin/passenger-install-nginx-module +19 -6
- data/bin/passenger-memory-stats +3 -3
- data/build/agents.rb +11 -8
- data/build/apache2.rb +9 -5
- data/build/basics.rb +15 -21
- data/build/common_library.rb +16 -6
- data/build/cplusplus_support.rb +5 -5
- data/build/cxx_tests.rb +3 -3
- data/build/documentation.rb +1 -1
- data/build/misc.rb +4 -37
- data/build/node_tests.rb +29 -0
- data/build/oxt_tests.rb +1 -1
- data/build/packaging.rb +29 -10
- data/build/preprocessor.rb +2 -1
- data/build/test_basics.rb +15 -6
- data/debian.template/locations.ini.template +1 -0
- data/debian.template/passenger.install.template +1 -0
- data/dev/copy_boost_headers.rb +7 -3
- data/dev/run_travis.sh +32 -16
- data/doc/Users guide Apache.idmap.txt +22 -34
- data/doc/Users guide Apache.txt +20 -234
- data/doc/Users guide Nginx.idmap.txt +84 -66
- data/doc/Users guide Nginx.txt +50 -1
- data/doc/Users guide Standalone.idmap.txt +74 -0
- data/doc/Users guide Standalone.txt +22 -9
- data/doc/Users guide.txt +51 -0
- data/doc/users_guide_snippets/environment_variables.txt +0 -3
- data/doc/users_guide_snippets/installation.txt +337 -380
- data/doc/users_guide_snippets/installation/run_installer.txt +58 -0
- data/doc/users_guide_snippets/installation/verify_running_epilogue.txt +6 -0
- data/doc/users_guide_snippets/support_information.txt +2 -9
- data/doc/users_guide_snippets/troubleshooting/default.txt +112 -0
- data/doc/users_guide_snippets/troubleshooting/rails.txt +56 -0
- data/doc/users_guide_snippets/where_to_get_support.txt +9 -0
- data/ext/apache2/Bucket.h +1 -1
- data/ext/apache2/Configuration.hpp +0 -44
- data/ext/apache2/CreateDirConfig.cpp +1 -1
- data/ext/apache2/CreateDirConfig.cpp.erb +1 -1
- data/ext/apache2/Hooks.cpp +28 -21
- data/ext/apache2/MergeDirConfig.cpp +1 -0
- data/ext/apache2/MergeDirConfig.cpp.erb +1 -1
- data/ext/apache2/SetHeaders.cpp +73 -0
- data/ext/apache2/SetHeaders.cpp.erb +88 -0
- data/ext/boost/algorithm/string/detail/find_format.hpp +5 -5
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +5 -5
- data/ext/boost/algorithm/string/detail/finder.hpp +1 -1
- data/ext/boost/algorithm/string/formatter.hpp +2 -2
- data/ext/boost/assert.hpp +6 -1
- data/ext/boost/atomic.hpp +18 -0
- data/ext/boost/atomic/atomic.hpp +241 -0
- data/ext/boost/atomic/detail/base.hpp +585 -0
- data/ext/boost/atomic/detail/cas32strong.hpp +885 -0
- data/ext/boost/atomic/detail/cas32weak.hpp +947 -0
- data/ext/boost/atomic/detail/cas64strong.hpp +443 -0
- data/ext/boost/atomic/detail/config.hpp +54 -0
- data/ext/boost/atomic/detail/gcc-alpha.hpp +368 -0
- data/ext/boost/atomic/detail/gcc-armv6plus.hpp +252 -0
- data/ext/boost/atomic/detail/gcc-cas.hpp +157 -0
- data/ext/boost/atomic/detail/gcc-ppc.hpp +2850 -0
- data/ext/boost/atomic/detail/gcc-sparcv9.hpp +1259 -0
- data/ext/boost/atomic/detail/gcc-x86.hpp +1766 -0
- data/ext/boost/atomic/detail/generic-cas.hpp +206 -0
- data/ext/boost/atomic/detail/interlocked.hpp +200 -0
- data/ext/boost/atomic/detail/linux-arm.hpp +189 -0
- data/ext/boost/atomic/detail/lockpool.hpp +97 -0
- data/ext/boost/atomic/detail/platform.hpp +62 -0
- data/ext/boost/atomic/detail/type-classification.hpp +45 -0
- data/ext/boost/chrono/config.hpp +8 -3
- data/ext/boost/chrono/duration.hpp +9 -10
- data/ext/boost/chrono/system_clocks.hpp +1 -1
- data/ext/boost/chrono/time_point.hpp +4 -3
- data/ext/boost/config/auto_link.hpp +53 -52
- data/ext/boost/config/compiler/borland.hpp +1 -0
- data/ext/boost/config/compiler/clang.hpp +24 -1
- data/ext/boost/config/compiler/codegear.hpp +1 -0
- data/ext/boost/config/compiler/common_edg.hpp +1 -0
- data/ext/boost/config/compiler/cray.hpp +1 -0
- data/ext/boost/config/compiler/digitalmars.hpp +1 -0
- data/ext/boost/config/compiler/gcc.hpp +29 -3
- data/ext/boost/config/compiler/gcc_xml.hpp +2 -1
- data/ext/boost/config/compiler/hp_acc.hpp +1 -0
- data/ext/boost/config/compiler/intel.hpp +1 -1
- data/ext/boost/config/compiler/metrowerks.hpp +1 -0
- data/ext/boost/config/compiler/mpw.hpp +1 -0
- data/ext/boost/config/compiler/pathscale.hpp +1 -0
- data/ext/boost/config/compiler/pgi.hpp +1 -0
- data/ext/boost/config/compiler/sunpro_cc.hpp +1 -0
- data/ext/boost/config/compiler/vacpp.hpp +3 -2
- data/ext/boost/config/compiler/visualc.hpp +25 -11
- data/ext/boost/config/platform/vxworks.hpp +353 -15
- data/ext/boost/config/select_compiler_config.hpp +4 -4
- data/ext/boost/config/stdlib/dinkumware.hpp +10 -3
- data/ext/boost/config/stdlib/libstdcpp3.hpp +2 -1
- data/ext/boost/config/suffix.hpp +45 -19
- data/ext/boost/date_time/format_date_parser.hpp +1 -11
- data/ext/boost/date_time/strings_from_facet.hpp +5 -3
- data/ext/boost/detail/atomic_redef_macros.hpp +19 -0
- data/ext/boost/detail/atomic_undef_macros.hpp +39 -0
- data/ext/boost/detail/endian.hpp +52 -4
- data/ext/boost/detail/scoped_enum_emulation.hpp +10 -10
- data/ext/boost/detail/select_type.hpp +36 -0
- data/ext/boost/exception/current_exception_cast.hpp +1 -1
- data/ext/boost/exception/detail/error_info_impl.hpp +3 -5
- data/ext/boost/exception/detail/exception_ptr.hpp +3 -3
- data/ext/boost/exception/detail/is_output_streamable.hpp +1 -1
- data/ext/boost/exception/detail/object_hex_dump.hpp +1 -1
- data/ext/boost/exception/detail/type_info.hpp +1 -1
- data/ext/boost/exception/diagnostic_information.hpp +15 -14
- data/ext/boost/exception/exception.hpp +1 -1
- data/ext/boost/exception/get_error_info.hpp +1 -1
- data/ext/boost/exception/info.hpp +12 -13
- data/ext/boost/exception/to_string.hpp +6 -1
- data/ext/boost/exception/to_string_stub.hpp +9 -1
- data/ext/boost/foreach.hpp +5 -5
- data/ext/boost/function/function_template.hpp +6 -6
- data/ext/boost/functional/hash/detail/float_functions.hpp +90 -0
- data/ext/boost/functional/hash/detail/hash_float.hpp +11 -2
- data/ext/boost/functional/hash/extensions.hpp +14 -2
- data/ext/boost/functional/hash/hash.hpp +26 -5
- data/ext/boost/get_pointer.hpp +17 -2
- data/ext/boost/integer_traits.hpp +1 -1
- data/ext/boost/lexical_cast.hpp +615 -395
- data/ext/boost/libs/atomic/lockpool.cpp +24 -0
- data/ext/boost/libs/system/src/error_code.cpp +25 -18
- data/ext/boost/libs/thread/src/future.cpp +7 -5
- data/ext/boost/libs/thread/src/pthread/once.cpp +9 -3
- data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +90 -0
- data/ext/boost/libs/thread/src/pthread/thread.cpp +129 -95
- data/ext/boost/libs/thread/src/pthread/timeconv.inl +20 -1
- data/ext/boost/limits.hpp +1 -1
- data/ext/boost/math/policies/policy.hpp +10 -0
- data/ext/boost/math/special_functions/detail/round_fwd.hpp +17 -4
- data/ext/boost/math/special_functions/fpclassify.hpp +114 -45
- data/ext/boost/math/special_functions/math_fwd.hpp +195 -83
- data/ext/boost/math/special_functions/sign.hpp +13 -8
- data/ext/boost/math/tools/config.hpp +38 -16
- data/ext/boost/move/algorithm.hpp +275 -0
- data/ext/boost/move/core.hpp +332 -0
- data/ext/boost/move/detail/config_begin.hpp +23 -0
- data/ext/boost/move/detail/config_end.hpp +20 -0
- data/ext/boost/move/detail/meta_utils.hpp +158 -0
- data/ext/boost/move/iterator.hpp +298 -0
- data/ext/boost/move/move.hpp +10 -1256
- data/ext/boost/move/traits.hpp +142 -0
- data/ext/boost/move/utility.hpp +194 -0
- data/ext/boost/mpl/assert.hpp +72 -4
- data/ext/boost/noncopyable.hpp +15 -3
- data/ext/boost/pointer_to_other.hpp +55 -0
- data/ext/boost/range/concepts.hpp +4 -4
- data/ext/boost/range/detail/extract_optional_type.hpp +1 -1
- data/ext/boost/range/empty.hpp +1 -1
- data/ext/boost/range/iterator_range_core.hpp +4 -1
- data/ext/boost/range/iterator_range_io.hpp +2 -2
- data/ext/boost/ratio/config.hpp +6 -0
- data/ext/boost/ratio/detail/overflow_helpers.hpp +2 -2
- data/ext/boost/smart_ptr/allocate_shared_array.hpp +250 -0
- data/ext/boost/smart_ptr/detail/allocate_array_helper.hpp +169 -0
- data/ext/boost/smart_ptr/detail/array_deleter.hpp +124 -0
- data/ext/boost/smart_ptr/detail/array_traits.hpp +53 -0
- data/ext/boost/smart_ptr/detail/array_utility.hpp +178 -0
- data/ext/boost/smart_ptr/detail/make_array_helper.hpp +157 -0
- data/ext/boost/smart_ptr/detail/operator_bool.hpp +16 -9
- data/ext/boost/smart_ptr/detail/shared_count.hpp +78 -7
- data/ext/boost/smart_ptr/detail/sp_convertible.hpp +15 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +12 -6
- data/ext/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +162 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +15 -0
- data/ext/boost/smart_ptr/detail/sp_forward.hpp +39 -0
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +19 -3
- data/ext/boost/smart_ptr/detail/sp_if_array.hpp +31 -0
- data/ext/boost/smart_ptr/detail/sp_nullptr_t.hpp +45 -0
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +5 -12
- data/ext/boost/smart_ptr/enable_shared_from_this.hpp +4 -4
- data/ext/boost/smart_ptr/make_shared.hpp +5 -1060
- data/ext/boost/smart_ptr/make_shared_array.hpp +247 -0
- data/ext/boost/smart_ptr/make_shared_object.hpp +1128 -0
- data/ext/boost/smart_ptr/scoped_array.hpp +32 -7
- data/ext/boost/smart_ptr/scoped_ptr.hpp +31 -5
- data/ext/boost/smart_ptr/shared_array.hpp +135 -20
- data/ext/boost/smart_ptr/shared_ptr.hpp +444 -126
- data/ext/boost/smart_ptr/weak_ptr.hpp +39 -28
- data/ext/boost/static_assert.hpp +74 -17
- data/ext/boost/system/error_code.hpp +76 -68
- data/ext/boost/system/system_error.hpp +5 -1
- data/ext/boost/thread/barrier.hpp +6 -2
- data/ext/boost/thread/completion_latch.hpp +233 -0
- data/ext/boost/thread/condition.hpp +6 -1
- data/ext/boost/thread/detail/async_func.hpp +571 -0
- data/ext/boost/thread/detail/config.hpp +248 -40
- data/ext/boost/thread/detail/counter.hpp +93 -0
- data/ext/boost/thread/detail/delete.hpp +12 -0
- data/ext/boost/thread/detail/invoke.hpp +1351 -0
- data/ext/boost/thread/detail/is_convertible.hpp +48 -0
- data/ext/boost/thread/detail/lockable_wrapper.hpp +45 -0
- data/ext/boost/thread/detail/log.hpp +83 -0
- data/ext/boost/thread/detail/make_tuple_indices.hpp +224 -0
- data/ext/boost/thread/detail/move.hpp +32 -16
- data/ext/boost/thread/detail/thread.hpp +236 -41
- data/ext/boost/thread/detail/thread_group.hpp +55 -9
- data/ext/boost/thread/detail/thread_interruption.hpp +4 -1
- data/ext/boost/thread/exceptions.hpp +2 -0
- data/ext/boost/thread/externally_locked.hpp +351 -0
- data/ext/boost/thread/externally_locked_stream.hpp +170 -0
- data/ext/boost/thread/future.hpp +2517 -455
- data/ext/boost/thread/future_error_code.hpp +61 -0
- data/ext/boost/thread/is_locked_by_this_thread.hpp +39 -0
- data/ext/boost/thread/latch.hpp +142 -0
- data/ext/boost/thread/lock_algorithms.hpp +468 -0
- data/ext/boost/thread/lock_concepts.hpp +197 -0
- data/ext/boost/thread/lock_factories.hpp +78 -0
- data/ext/boost/thread/lock_guard.hpp +88 -0
- data/ext/boost/thread/lock_options.hpp +31 -0
- data/ext/boost/thread/lock_traits.hpp +45 -0
- data/ext/boost/thread/lock_types.hpp +1226 -0
- data/ext/boost/thread/lockable_adapter.hpp +226 -0
- data/ext/boost/thread/lockable_concepts.hpp +157 -0
- data/ext/boost/thread/lockable_traits.hpp +207 -0
- data/ext/boost/thread/locks.hpp +5 -1816
- data/ext/boost/thread/mutex.hpp +33 -1
- data/ext/boost/thread/null_mutex.hpp +243 -0
- data/ext/boost/thread/once.hpp +10 -1
- data/ext/boost/thread/poly_lockable.hpp +68 -0
- data/ext/boost/thread/poly_lockable_adapter.hpp +89 -0
- data/ext/boost/thread/poly_shared_lockable.hpp +135 -0
- data/ext/boost/thread/poly_shared_lockable_adapter.hpp +170 -0
- data/ext/boost/thread/pthread/condition_variable.hpp +74 -26
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +54 -27
- data/ext/boost/thread/pthread/mutex.hpp +101 -38
- data/ext/boost/thread/pthread/once.hpp +459 -44
- data/ext/boost/thread/pthread/once_atomic.hpp +313 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -10
- data/ext/boost/thread/pthread/shared_mutex.hpp +226 -61
- data/ext/boost/thread/pthread/shared_mutex_assert.hpp +724 -0
- data/ext/boost/thread/pthread/thread_data.hpp +53 -50
- data/ext/boost/thread/pthread/timespec.hpp +96 -12
- data/ext/boost/thread/recursive_mutex.hpp +44 -1
- data/ext/boost/thread/reverse_lock.hpp +3 -2
- data/ext/boost/thread/scoped_thread.hpp +285 -0
- data/ext/boost/thread/shared_lock_guard.hpp +2 -1
- data/ext/boost/thread/shared_mutex.hpp +23 -0
- data/ext/boost/thread/strict_lock.hpp +235 -0
- data/ext/boost/thread/sync_bounded_queue.hpp +594 -0
- data/ext/boost/thread/sync_queue.hpp +516 -0
- data/ext/boost/thread/synchronized_value.hpp +1001 -0
- data/ext/boost/thread/testable_mutex.hpp +148 -0
- data/ext/boost/thread/thread.hpp +1 -13
- data/ext/boost/thread/thread_functors.hpp +57 -0
- data/ext/boost/thread/thread_guard.hpp +46 -0
- data/ext/boost/thread/thread_only.hpp +29 -0
- data/ext/boost/thread/v2/shared_mutex.hpp +1062 -0
- data/ext/boost/thread/v2/thread.hpp +37 -10
- data/ext/boost/thread/xtime.hpp +2 -1
- data/ext/boost/token_functions.hpp +16 -16
- data/ext/boost/type_traits/add_lvalue_reference.hpp +26 -0
- data/ext/boost/type_traits/add_reference.hpp +1 -1
- data/ext/boost/type_traits/add_rvalue_reference.hpp +4 -4
- data/ext/boost/type_traits/aligned_storage.hpp +13 -0
- data/ext/boost/type_traits/common_type.hpp +11 -12
- data/ext/boost/type_traits/config.hpp +1 -1
- data/ext/boost/type_traits/detail/common_type_imp.hpp +1 -1
- data/ext/boost/type_traits/detail/has_binary_operator.hpp +1 -1
- data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +1 -1
- data/ext/boost/type_traits/has_left_shift.hpp +49 -0
- data/ext/boost/type_traits/has_right_shift.hpp +49 -0
- data/ext/boost/type_traits/has_trivial_move_assign.hpp +57 -0
- data/ext/boost/type_traits/has_trivial_move_constructor.hpp +57 -0
- data/ext/boost/type_traits/intrinsics.hpp +18 -2
- data/ext/boost/type_traits/is_abstract.hpp +1 -1
- data/ext/boost/type_traits/is_array.hpp +1 -1
- data/ext/boost/type_traits/is_const.hpp +1 -1
- data/ext/boost/type_traits/is_convertible.hpp +78 -17
- data/ext/boost/type_traits/is_function.hpp +6 -1
- data/ext/boost/type_traits/is_integral.hpp +6 -1
- data/ext/boost/type_traits/is_nothrow_move_assignable.hpp +84 -0
- data/ext/boost/type_traits/is_nothrow_move_constructible.hpp +84 -0
- data/ext/boost/type_traits/is_pod.hpp +3 -1
- data/ext/boost/type_traits/is_rvalue_reference.hpp +1 -1
- data/ext/boost/type_traits/is_volatile.hpp +1 -1
- data/ext/boost/type_traits/make_signed.hpp +153 -0
- data/ext/boost/type_traits/make_unsigned.hpp +16 -0
- data/ext/boost/type_traits/remove_const.hpp +1 -1
- data/ext/boost/type_traits/remove_cv.hpp +1 -1
- data/ext/boost/type_traits/remove_reference.hpp +1 -1
- data/ext/boost/type_traits/remove_volatile.hpp +1 -1
- data/ext/boost/unordered/detail/allocate.hpp +1120 -0
- data/ext/boost/unordered/detail/buckets.hpp +876 -0
- data/ext/boost/unordered/detail/equivalent.hpp +680 -0
- data/ext/boost/unordered/detail/extract_key.hpp +183 -0
- data/ext/boost/unordered/detail/fwd.hpp +23 -0
- data/ext/boost/unordered/detail/table.hpp +861 -0
- data/ext/boost/unordered/detail/unique.hpp +622 -0
- data/ext/boost/unordered/detail/util.hpp +260 -0
- data/ext/boost/unordered/unordered_map.hpp +1652 -0
- data/ext/boost/unordered/unordered_map_fwd.hpp +65 -0
- data/ext/boost/unordered/unordered_set.hpp +1549 -0
- data/ext/boost/unordered/unordered_set_fwd.hpp +63 -0
- data/ext/boost/unordered_map.hpp +18 -0
- data/ext/boost/unordered_set.hpp +18 -0
- data/ext/boost/utility/addressof.hpp +2 -2
- data/ext/boost/utility/result_of.hpp +8 -1
- data/ext/boost/version.hpp +2 -2
- data/ext/common/Account.h +1 -1
- data/ext/common/AccountsDatabase.h +1 -1
- data/ext/common/AgentsStarter.cpp +3 -1
- data/ext/common/AgentsStarter.h +2 -2
- data/ext/common/ApplicationPool2/AppTypes.cpp +24 -6
- data/ext/common/ApplicationPool2/AppTypes.h +17 -8
- data/ext/common/ApplicationPool2/Common.h +12 -12
- data/ext/common/ApplicationPool2/DirectSpawner.h +2 -2
- data/ext/common/ApplicationPool2/DummySpawner.h +3 -3
- data/ext/common/ApplicationPool2/Group.h +6 -6
- data/ext/common/ApplicationPool2/Implementation.cpp +19 -19
- data/ext/common/ApplicationPool2/PipeWatcher.h +5 -5
- data/ext/common/ApplicationPool2/Pool.h +21 -21
- data/ext/common/ApplicationPool2/Process.h +6 -6
- data/ext/common/ApplicationPool2/Session.h +1 -1
- data/ext/common/ApplicationPool2/SmartSpawner.h +24 -12
- data/ext/common/ApplicationPool2/Socket.h +2 -2
- data/ext/common/ApplicationPool2/Spawner.h +64 -14
- data/ext/common/ApplicationPool2/SpawnerFactory.h +7 -7
- data/ext/common/ApplicationPool2/SuperGroup.h +5 -5
- data/ext/common/BackgroundEventLoop.cpp +4 -4
- data/ext/common/BackgroundEventLoop.h +1 -1
- data/ext/common/Constants.h +13 -1
- data/ext/common/EventedBufferedInput.h +8 -8
- data/ext/common/Exceptions.cpp +71 -0
- data/ext/common/Exceptions.h +60 -7
- data/ext/common/FileDescriptor.h +4 -4
- data/ext/common/MessageClient.h +1 -1
- data/ext/common/MessageServer.h +5 -5
- data/ext/common/MultiLibeio.cpp +3 -3
- data/ext/common/MultiLibeio.h +2 -2
- data/ext/common/RandomGenerator.h +11 -11
- data/ext/common/ResourceLocator.h +8 -1
- data/ext/common/SafeLibev.h +12 -12
- data/ext/common/ServerInstanceDir.h +11 -3
- data/ext/common/UnionStation.h +10 -10
- data/ext/common/Utils.cpp +11 -13
- data/ext/common/Utils.h +9 -9
- data/ext/common/Utils/BlockingQueue.h +10 -10
- data/ext/common/Utils/BufferedIO.h +1 -1
- data/ext/common/Utils/CachedFileStat.hpp +2 -2
- data/ext/common/Utils/FileChangeChecker.h +1 -1
- data/ext/common/Utils/HashMap.h +13 -4
- data/ext/common/Utils/IOUtils.cpp +33 -10
- data/ext/common/Utils/IniFile.h +3 -3
- data/ext/common/Utils/Lock.h +2 -2
- data/ext/common/Utils/MessagePassing.h +10 -10
- data/ext/common/Utils/ProcessMetricsCollector.h +24 -6
- data/ext/common/Utils/ScopeGuard.h +5 -5
- data/ext/common/Utils/jsoncpp.cpp +2 -0
- data/ext/common/agents/HelperAgent/FileBackedPipe.h +26 -26
- data/ext/common/agents/HelperAgent/Main.cpp +18 -18
- data/ext/common/agents/HelperAgent/RequestHandler.cpp +4 -4
- data/ext/common/agents/HelperAgent/RequestHandler.h +30 -21
- data/ext/common/agents/LoggingAgent/AdminController.h +1 -1
- data/ext/common/agents/LoggingAgent/FilterSupport.h +13 -11
- data/ext/common/agents/LoggingAgent/LoggingServer.h +11 -11
- data/ext/common/agents/LoggingAgent/Main.cpp +9 -9
- data/ext/common/agents/LoggingAgent/RemoteSender.h +3 -3
- data/ext/common/agents/SpawnPreparer.cpp +1 -0
- data/ext/common/agents/Watchdog/AgentWatcher.cpp +8 -7
- data/ext/common/agents/Watchdog/Main.cpp +81 -73
- data/ext/common/agents/Watchdog/ServerInstanceDirToucher.cpp +1 -1
- data/ext/libev/Changes +57 -0
- data/ext/libev/LICENSE +2 -1
- data/ext/libev/Makefile.in +110 -50
- data/ext/libev/README +8 -8
- data/ext/libev/aclocal.m4 +1503 -861
- data/ext/libev/config.guess +290 -304
- data/ext/libev/config.sub +77 -198
- data/ext/libev/configure +1735 -890
- data/ext/libev/configure.ac +3 -2
- data/ext/libev/ev++.h +6 -6
- data/ext/libev/ev.c +541 -214
- data/ext/libev/ev.h +106 -100
- data/ext/libev/ev_epoll.c +1 -1
- data/ext/libev/ev_kqueue.c +20 -4
- data/ext/libev/ev_vars.h +15 -16
- data/ext/libev/ev_win32.c +12 -2
- data/ext/libev/ev_wrap.h +162 -160
- data/ext/libev/event.c +29 -6
- data/ext/libev/event.h +9 -2
- data/ext/libev/ltmain.sh +2632 -1384
- data/ext/nginx/ConfigurationCommands.c +1 -1
- data/ext/nginx/ConfigurationCommands.c.erb +3 -1
- data/ext/nginx/ContentHandler.c +25 -2
- data/ext/nginx/CreateLocationConfig.c +1 -0
- data/ext/nginx/CreateLocationConfig.c.erb +1 -1
- data/ext/nginx/MergeLocationConfig.c +1 -0
- data/ext/nginx/MergeLocationConfig.c.erb +1 -1
- data/ext/nginx/config +12 -0
- data/ext/oxt/dynamic_thread_group.hpp +7 -4
- data/ext/oxt/system_calls.cpp +5 -1
- data/ext/oxt/system_calls.hpp +3 -0
- data/helper-scripts/node-loader.js +117 -249
- data/lib/phusion_passenger.rb +27 -5
- data/lib/phusion_passenger/abstract_installer.rb +104 -9
- data/lib/phusion_passenger/admin_tools/memory_stats.rb +10 -9
- data/lib/phusion_passenger/apache2/config_options.rb +6 -3
- data/lib/phusion_passenger/common_library.rb +7 -1
- data/lib/phusion_passenger/constants.rb +6 -0
- data/lib/phusion_passenger/loader_shared_helpers.rb +7 -4
- data/lib/phusion_passenger/nginx/config_options.rb +2 -1
- data/lib/phusion_passenger/packaging.rb +3 -0
- data/lib/phusion_passenger/platform_info/apache.rb +43 -6
- data/lib/phusion_passenger/platform_info/apache_detector.rb +15 -5
- data/lib/phusion_passenger/platform_info/compiler.rb +167 -32
- data/lib/phusion_passenger/platform_info/cxx_portability.rb +133 -77
- data/lib/phusion_passenger/platform_info/depcheck.rb +17 -7
- data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +3 -3
- data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
- data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -6
- data/lib/phusion_passenger/platform_info/linux.rb +2 -1
- data/lib/phusion_passenger/platform_info/operating_system.rb +1 -1
- data/lib/phusion_passenger/platform_info/ruby.rb +18 -3
- data/lib/phusion_passenger/standalone/runtime_installer.rb +6 -2
- data/lib/phusion_passenger/standalone/start_command.rb +8 -2
- data/lib/phusion_passenger/utils/ansi_colors.rb +9 -0
- data/lib/phusion_passenger/utils/hosts_file_parser.rb +4 -2
- data/node_lib/phusion_passenger/httplib_emulation.js +141 -0
- data/node_lib/phusion_passenger/line_reader.js +154 -0
- data/node_lib/phusion_passenger/request_handler.js +65 -0
- data/node_lib/phusion_passenger/session_protocol_parser.js +113 -0
- data/resources/templates/apache2/deployment_example.txt.erb +2 -1
- data/resources/templates/apache2/installing_against_a_different_apache.txt.erb +14 -0
- data/resources/templates/apache2/multiple_apache_installations_detected.txt.erb +15 -0
- data/resources/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
- data/resources/templates/general_error_with_html.html.template +1 -1
- data/resources/templates/installer_common/gem_install_permission_problems.txt.erb +17 -0
- data/resources/templates/installer_common/low_amount_of_memory_warning.txt.erb +6 -4
- data/resources/templates/installer_common/world_inaccessible_directories.txt.erb +16 -0
- data/resources/templates/nginx/deployment_example.txt.erb +2 -1
- data/resources/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
- data/resources/templates/standalone/config.erb +1 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +3 -3
- data/test/cxx/ApplicationPool2/PoolTest.cpp +4 -4
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +5 -5
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +5 -5
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +1 -1
- data/test/cxx/EventedBufferedInputTest.cpp +6 -6
- data/test/cxx/FileBackedPipeTest.cpp +1 -1
- data/test/cxx/MessagePassingTest.cpp +1 -1
- data/test/cxx/MessageServerTest.cpp +4 -4
- data/test/cxx/RequestHandlerTest.cpp +7 -7
- data/test/cxx/UnionStationTest.cpp +2 -2
- data/test/node/line_reader_spec.js +338 -0
- data/test/node/spec_helper.js +27 -0
- data/test/ruby/standalone/runtime_installer_spec.rb +2 -1
- metadata +131 -22
- metadata.gz.asc +7 -7
- data/ext/boost/functional/hash/detail/container_fwd_0x.hpp +0 -29
- data/ext/boost/lambda/core.hpp +0 -79
- data/ext/boost/lambda/detail/actions.hpp +0 -174
- data/ext/boost/lambda/detail/arity_code.hpp +0 -110
- data/ext/boost/lambda/detail/function_adaptors.hpp +0 -789
- data/ext/boost/lambda/detail/is_instance_of.hpp +0 -104
- data/ext/boost/lambda/detail/lambda_config.hpp +0 -48
- data/ext/boost/lambda/detail/lambda_functor_base.hpp +0 -615
- data/ext/boost/lambda/detail/lambda_functors.hpp +0 -324
- data/ext/boost/lambda/detail/lambda_fwd.hpp +0 -74
- data/ext/boost/lambda/detail/lambda_traits.hpp +0 -578
- data/ext/boost/lambda/detail/member_ptr.hpp +0 -737
- data/ext/boost/lambda/detail/operator_actions.hpp +0 -139
- data/ext/boost/lambda/detail/operator_lambda_func_base.hpp +0 -271
- data/ext/boost/lambda/detail/operator_return_type_traits.hpp +0 -917
- data/ext/boost/lambda/detail/operators.hpp +0 -370
- data/ext/boost/lambda/detail/ret.hpp +0 -325
- data/ext/boost/lambda/detail/return_type_traits.hpp +0 -282
- data/ext/boost/lambda/detail/select_functions.hpp +0 -74
- data/ext/boost/lambda/lambda.hpp +0 -34
@@ -1,282 +0,0 @@
|
|
1
|
-
// return_type_traits.hpp -- Boost Lambda Library ---------------------------
|
2
|
-
|
3
|
-
// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
|
4
|
-
//
|
5
|
-
// Distributed under the Boost Software License, Version 1.0. (See
|
6
|
-
// accompanying file LICENSE_1_0.txt or copy at
|
7
|
-
// http://www.boost.org/LICENSE_1_0.txt)
|
8
|
-
//
|
9
|
-
// For more information, see www.boost.org
|
10
|
-
|
11
|
-
|
12
|
-
#ifndef BOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
|
13
|
-
#define BOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
|
14
|
-
|
15
|
-
#include "boost/mpl/has_xxx.hpp"
|
16
|
-
|
17
|
-
#include <cstddef> // needed for the ptrdiff_t
|
18
|
-
|
19
|
-
namespace boost {
|
20
|
-
namespace lambda {
|
21
|
-
|
22
|
-
using ::boost::type_traits::ice_and;
|
23
|
-
using ::boost::type_traits::ice_or;
|
24
|
-
using ::boost::type_traits::ice_not;
|
25
|
-
|
26
|
-
// Much of the type deduction code for standard arithmetic types
|
27
|
-
// from Gary Powell
|
28
|
-
|
29
|
-
// different arities:
|
30
|
-
template <class Act, class A1> struct return_type_1; // 1-ary actions
|
31
|
-
template <class Act, class A1, class A2> struct return_type_2; // 2-ary
|
32
|
-
template <class Act, class Args> struct return_type_N; // >3- ary
|
33
|
-
|
34
|
-
template <class Act, class A1> struct return_type_1_prot;
|
35
|
-
template <class Act, class A1, class A2> struct return_type_2_prot; // 2-ary
|
36
|
-
template <class Act, class A1> struct return_type_N_prot; // >3-ary
|
37
|
-
|
38
|
-
|
39
|
-
namespace detail {
|
40
|
-
|
41
|
-
template<class> class return_type_deduction_failure {};
|
42
|
-
|
43
|
-
// In some cases return type deduction should fail (an invalid lambda
|
44
|
-
// expression). Sometimes the lambda expression can be ok, the return type
|
45
|
-
// just is not deducible (user defined operators). Then return type deduction
|
46
|
-
// should never be entered at all, and the use of ret<> does this.
|
47
|
-
// However, for nullary lambda functors, return type deduction is always
|
48
|
-
// entered, and there seems to be no way around this.
|
49
|
-
|
50
|
-
// (the return type is part of the prototype of the non-template
|
51
|
-
// operator()(). The prototype is instantiated, even though the body
|
52
|
-
// is not.)
|
53
|
-
|
54
|
-
// So, in the case the return type deduction should fail, it should not
|
55
|
-
// fail directly, but rather result in a valid but wrong return type,
|
56
|
-
// causing a compile time error only if the function is really called.
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
} // end detail
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
// return_type_X_prot classes --------------------------------------------
|
65
|
-
// These classes are the first layer that gets instantiated from the
|
66
|
-
// lambda_functor_base sig templates. It will check whether
|
67
|
-
// the action is protectable and one of arguments is "protected" or its
|
68
|
-
// evaluation will otherwise result in another lambda functor.
|
69
|
-
// If this is a case, the result type will be another lambda functor.
|
70
|
-
|
71
|
-
// The arguments are always non-reference types, except for comma action
|
72
|
-
// where the right argument can be a reference too. This is because it
|
73
|
-
// matters (in the builtin case) whether the argument is an lvalue or
|
74
|
-
// rvalue: int i; i, 1 -> rvalue; 1, i -> lvalue
|
75
|
-
|
76
|
-
template <class Act, class A> struct return_type_1_prot {
|
77
|
-
public:
|
78
|
-
typedef typename
|
79
|
-
detail::IF<
|
80
|
-
// is_protectable<Act>::value && is_lambda_functor<A>::value,
|
81
|
-
ice_and<is_protectable<Act>::value, is_lambda_functor<A>::value>::value,
|
82
|
-
lambda_functor<
|
83
|
-
lambda_functor_base<
|
84
|
-
Act,
|
85
|
-
tuple<typename detail::remove_reference_and_cv<A>::type>
|
86
|
-
>
|
87
|
-
>,
|
88
|
-
typename return_type_1<Act, A>::type
|
89
|
-
>::RET type;
|
90
|
-
};
|
91
|
-
|
92
|
-
// take care of the unavoidable instantiation for nullary case
|
93
|
-
template<class Act> struct return_type_1_prot<Act, null_type> {
|
94
|
-
typedef null_type type;
|
95
|
-
};
|
96
|
-
|
97
|
-
// Unary actions (result from unary operators)
|
98
|
-
// do not have a default return type.
|
99
|
-
template<class Act, class A> struct return_type_1 {
|
100
|
-
typedef typename
|
101
|
-
detail::return_type_deduction_failure<return_type_1> type;
|
102
|
-
};
|
103
|
-
|
104
|
-
|
105
|
-
namespace detail {
|
106
|
-
|
107
|
-
template <class T>
|
108
|
-
class protect_conversion {
|
109
|
-
typedef typename boost::remove_reference<T>::type non_ref_T;
|
110
|
-
public:
|
111
|
-
|
112
|
-
// add const to rvalues, so that all rvalues are stored as const in
|
113
|
-
// the args tuple
|
114
|
-
typedef typename detail::IF_type<
|
115
|
-
// boost::is_reference<T>::value && !boost::is_const<non_ref_T>::value,
|
116
|
-
ice_and<boost::is_reference<T>::value,
|
117
|
-
ice_not<boost::is_const<non_ref_T>::value>::value>::value,
|
118
|
-
detail::identity_mapping<T>,
|
119
|
-
const_copy_argument<non_ref_T> // handles funtion and array
|
120
|
-
>::type type; // types correctly
|
121
|
-
};
|
122
|
-
|
123
|
-
} // end detail
|
124
|
-
|
125
|
-
template <class Act, class A, class B> struct return_type_2_prot {
|
126
|
-
|
127
|
-
// experimental feature
|
128
|
-
// We may have a lambda functor as a result type of a subexpression
|
129
|
-
// (if protect) has been used.
|
130
|
-
// Thus, if one of the parameter types is a lambda functor, the result
|
131
|
-
// is a lambda functor as well.
|
132
|
-
// We need to make a conservative choise here.
|
133
|
-
// The resulting lambda functor stores all const reference arguments as
|
134
|
-
// const copies. References to non-const are stored as such.
|
135
|
-
// So if the source of the argument is a const open argument, a bound
|
136
|
-
// argument stored as a const reference, or a function returning a
|
137
|
-
// const reference, that information is lost. There is no way of
|
138
|
-
// telling apart 'real const references' from just 'LL internal
|
139
|
-
// const references' (or it would be really hard)
|
140
|
-
|
141
|
-
// The return type is a subclass of lambda_functor, which has a converting
|
142
|
-
// copy constructor. It can copy any lambda functor, that has the same
|
143
|
-
// action type and code, and a copy compatible argument tuple.
|
144
|
-
|
145
|
-
|
146
|
-
typedef typename boost::remove_reference<A>::type non_ref_A;
|
147
|
-
typedef typename boost::remove_reference<B>::type non_ref_B;
|
148
|
-
|
149
|
-
typedef typename
|
150
|
-
detail::IF<
|
151
|
-
// is_protectable<Act>::value &&
|
152
|
-
// (is_lambda_functor<A>::value || is_lambda_functor<B>::value),
|
153
|
-
ice_and<is_protectable<Act>::value,
|
154
|
-
ice_or<is_lambda_functor<A>::value,
|
155
|
-
is_lambda_functor<B>::value>::value>::value,
|
156
|
-
lambda_functor<
|
157
|
-
lambda_functor_base<
|
158
|
-
Act,
|
159
|
-
tuple<typename detail::protect_conversion<A>::type,
|
160
|
-
typename detail::protect_conversion<B>::type>
|
161
|
-
>
|
162
|
-
>,
|
163
|
-
typename return_type_2<Act, non_ref_A, non_ref_B>::type
|
164
|
-
>::RET type;
|
165
|
-
};
|
166
|
-
|
167
|
-
// take care of the unavoidable instantiation for nullary case
|
168
|
-
template<class Act> struct return_type_2_prot<Act, null_type, null_type> {
|
169
|
-
typedef null_type type;
|
170
|
-
};
|
171
|
-
// take care of the unavoidable instantiation for nullary case
|
172
|
-
template<class Act, class Other> struct return_type_2_prot<Act, Other, null_type> {
|
173
|
-
typedef null_type type;
|
174
|
-
};
|
175
|
-
// take care of the unavoidable instantiation for nullary case
|
176
|
-
template<class Act, class Other> struct return_type_2_prot<Act, null_type, Other> {
|
177
|
-
typedef null_type type;
|
178
|
-
};
|
179
|
-
|
180
|
-
// comma is a special case, as the user defined operator can return
|
181
|
-
// an lvalue (reference) too, hence it must be handled at this level.
|
182
|
-
template<class A, class B>
|
183
|
-
struct return_type_2_comma
|
184
|
-
{
|
185
|
-
typedef typename boost::remove_reference<A>::type non_ref_A;
|
186
|
-
typedef typename boost::remove_reference<B>::type non_ref_B;
|
187
|
-
|
188
|
-
typedef typename
|
189
|
-
detail::IF<
|
190
|
-
// is_protectable<other_action<comma_action> >::value && // it is protectable
|
191
|
-
// (is_lambda_functor<A>::value || is_lambda_functor<B>::value),
|
192
|
-
ice_and<is_protectable<other_action<comma_action> >::value, // it is protectable
|
193
|
-
ice_or<is_lambda_functor<A>::value,
|
194
|
-
is_lambda_functor<B>::value>::value>::value,
|
195
|
-
lambda_functor<
|
196
|
-
lambda_functor_base<
|
197
|
-
other_action<comma_action>,
|
198
|
-
tuple<typename detail::protect_conversion<A>::type,
|
199
|
-
typename detail::protect_conversion<B>::type>
|
200
|
-
>
|
201
|
-
>,
|
202
|
-
typename
|
203
|
-
return_type_2<other_action<comma_action>, non_ref_A, non_ref_B>::type
|
204
|
-
>::RET type1;
|
205
|
-
|
206
|
-
// if no user defined return_type_2 (or plain_return_type_2) specialization
|
207
|
-
// matches, then return the righthand argument
|
208
|
-
typedef typename
|
209
|
-
detail::IF<
|
210
|
-
boost::is_same<type1, detail::unspecified>::value,
|
211
|
-
B,
|
212
|
-
type1
|
213
|
-
>::RET type;
|
214
|
-
|
215
|
-
};
|
216
|
-
|
217
|
-
|
218
|
-
// currently there are no protectable actions with > 2 args
|
219
|
-
|
220
|
-
template<class Act, class Args> struct return_type_N_prot {
|
221
|
-
typedef typename return_type_N<Act, Args>::type type;
|
222
|
-
};
|
223
|
-
|
224
|
-
// take care of the unavoidable instantiation for nullary case
|
225
|
-
template<class Act> struct return_type_N_prot<Act, null_type> {
|
226
|
-
typedef null_type type;
|
227
|
-
};
|
228
|
-
|
229
|
-
// handle different kind of actions ------------------------
|
230
|
-
|
231
|
-
// use the return type given in the bind invocation as bind<Ret>(...)
|
232
|
-
template<int I, class Args, class Ret>
|
233
|
-
struct return_type_N<function_action<I, Ret>, Args> {
|
234
|
-
typedef Ret type;
|
235
|
-
};
|
236
|
-
|
237
|
-
// ::result_type support
|
238
|
-
|
239
|
-
namespace detail
|
240
|
-
{
|
241
|
-
|
242
|
-
BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
|
243
|
-
|
244
|
-
template<class F> struct get_result_type
|
245
|
-
{
|
246
|
-
typedef typename F::result_type type;
|
247
|
-
};
|
248
|
-
|
249
|
-
template<class F, class A> struct get_sig
|
250
|
-
{
|
251
|
-
typedef typename function_adaptor<F>::template sig<A>::type type;
|
252
|
-
};
|
253
|
-
|
254
|
-
} // namespace detail
|
255
|
-
|
256
|
-
// Ret is detail::unspecified, so try to deduce return type
|
257
|
-
template<int I, class Args>
|
258
|
-
struct return_type_N<function_action<I, detail::unspecified>, Args > {
|
259
|
-
|
260
|
-
// in the case of function action, the first element in Args is
|
261
|
-
// some type of function
|
262
|
-
typedef typename Args::head_type Func;
|
263
|
-
typedef typename detail::remove_reference_and_cv<Func>::type plain_Func;
|
264
|
-
|
265
|
-
public:
|
266
|
-
// pass the function to function_adaptor, and get the return type from
|
267
|
-
// that
|
268
|
-
typedef typename detail::IF<
|
269
|
-
detail::has_result_type<plain_Func>::value,
|
270
|
-
detail::get_result_type<plain_Func>,
|
271
|
-
detail::get_sig<plain_Func, Args>
|
272
|
-
>::RET::type type;
|
273
|
-
};
|
274
|
-
|
275
|
-
|
276
|
-
} // namespace lambda
|
277
|
-
} // namespace boost
|
278
|
-
|
279
|
-
#endif
|
280
|
-
|
281
|
-
|
282
|
-
|
@@ -1,74 +0,0 @@
|
|
1
|
-
// -- select_functions.hpp -- Boost Lambda Library --------------------------
|
2
|
-
|
3
|
-
// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
|
4
|
-
//
|
5
|
-
// Distributed under the Boost Software License, Version 1.0. (See
|
6
|
-
// accompanying file LICENSE_1_0.txt or copy at
|
7
|
-
// http://www.boost.org/LICENSE_1_0.txt)
|
8
|
-
//
|
9
|
-
// For more information, see http://www.boost.org
|
10
|
-
|
11
|
-
|
12
|
-
#ifndef BOOST_LAMBDA_SELECT_FUNCTIONS_HPP
|
13
|
-
#define BOOST_LAMBDA_SELECT_FUNCTIONS_HPP
|
14
|
-
|
15
|
-
namespace boost {
|
16
|
-
namespace lambda {
|
17
|
-
namespace detail {
|
18
|
-
|
19
|
-
|
20
|
-
// select functions -------------------------------
|
21
|
-
template<class Any, CALL_TEMPLATE_ARGS>
|
22
|
-
inline Any& select(Any& any, CALL_FORMAL_ARGS) { CALL_USE_ARGS; return any; }
|
23
|
-
|
24
|
-
|
25
|
-
template<class Arg, CALL_TEMPLATE_ARGS>
|
26
|
-
inline typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
|
27
|
-
select ( const lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) {
|
28
|
-
return op.template call<
|
29
|
-
typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
|
30
|
-
>(CALL_ACTUAL_ARGS);
|
31
|
-
}
|
32
|
-
template<class Arg, CALL_TEMPLATE_ARGS>
|
33
|
-
inline typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
|
34
|
-
select ( lambda_functor<Arg>& op, CALL_FORMAL_ARGS) {
|
35
|
-
return op.template call<
|
36
|
-
typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
|
37
|
-
>(CALL_ACTUAL_ARGS);
|
38
|
-
}
|
39
|
-
|
40
|
-
// ------------------------------------------------------------------------
|
41
|
-
// select functions where the return type is explicitly given
|
42
|
-
// Note: on many functions, this return type is just discarded.
|
43
|
-
// The select functions are inside a class template, and the return type
|
44
|
-
// is a class template argument.
|
45
|
-
// The first implementation used function templates with an explicitly
|
46
|
-
// specified template parameter.
|
47
|
-
// However, this resulted in ambiguous calls (at least with gcc 2.95.2
|
48
|
-
// and edg 2.44). Not sure whether the compilers were right or wrong.
|
49
|
-
|
50
|
-
template<class RET> struct r_select {
|
51
|
-
|
52
|
-
// Any == RET
|
53
|
-
template<class Any, CALL_TEMPLATE_ARGS>
|
54
|
-
static
|
55
|
-
inline RET go (Any& any, CALL_FORMAL_ARGS) { CALL_USE_ARGS; return any; }
|
56
|
-
|
57
|
-
|
58
|
-
template<class Arg, CALL_TEMPLATE_ARGS>
|
59
|
-
static
|
60
|
-
inline RET go (const lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) {
|
61
|
-
return op.template call<RET>(CALL_ACTUAL_ARGS);
|
62
|
-
}
|
63
|
-
template<class Arg, CALL_TEMPLATE_ARGS>
|
64
|
-
static
|
65
|
-
inline RET go (lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) {
|
66
|
-
return op.template call<RET>(CALL_ACTUAL_ARGS);
|
67
|
-
}
|
68
|
-
};
|
69
|
-
|
70
|
-
} // namespace detail
|
71
|
-
} // namespace lambda
|
72
|
-
} // namespace boost
|
73
|
-
|
74
|
-
#endif
|
data/ext/boost/lambda/lambda.hpp
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
// -- lambda.hpp -- Boost Lambda Library -----------------------------------
|
2
|
-
// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
|
3
|
-
//
|
4
|
-
// Distributed under the Boost Software License, Version 1.0. (See
|
5
|
-
// accompanying file LICENSE_1_0.txt or copy at
|
6
|
-
// http://www.boost.org/LICENSE_1_0.txt)
|
7
|
-
//
|
8
|
-
// For more information, see http://lambda.cs.utu.fi
|
9
|
-
|
10
|
-
#ifndef BOOST_LAMBDA_LAMBDA_HPP
|
11
|
-
#define BOOST_LAMBDA_LAMBDA_HPP
|
12
|
-
|
13
|
-
|
14
|
-
#include "boost/lambda/core.hpp"
|
15
|
-
|
16
|
-
#ifdef BOOST_NO_FDECL_TEMPLATES_AS_TEMPLATE_TEMPLATE_PARAMS
|
17
|
-
#include <istream>
|
18
|
-
#include <ostream>
|
19
|
-
#endif
|
20
|
-
|
21
|
-
#include "boost/lambda/detail/operator_actions.hpp"
|
22
|
-
#include "boost/lambda/detail/operator_lambda_func_base.hpp"
|
23
|
-
#include "boost/lambda/detail/operator_return_type_traits.hpp"
|
24
|
-
|
25
|
-
|
26
|
-
#include "boost/lambda/detail/operators.hpp"
|
27
|
-
|
28
|
-
#ifndef BOOST_LAMBDA_FAILS_IN_TEMPLATE_KEYWORD_AFTER_SCOPE_OPER
|
29
|
-
// sorry, member ptr does not work with gcc2.95
|
30
|
-
#include "boost/lambda/detail/member_ptr.hpp"
|
31
|
-
#endif
|
32
|
-
|
33
|
-
|
34
|
-
#endif
|