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
@@ -0,0 +1,49 @@
|
|
1
|
+
// (C) Copyright 2009-2011 Frederic Bron.
|
2
|
+
//
|
3
|
+
// Use, modification and distribution are subject to the Boost Software License,
|
4
|
+
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
5
|
+
// http://www.boost.org/LICENSE_1_0.txt).
|
6
|
+
//
|
7
|
+
// See http://www.boost.org/libs/type_traits for most recent version including documentation.
|
8
|
+
|
9
|
+
#ifndef BOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
|
10
|
+
#define BOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
|
11
|
+
|
12
|
+
#define BOOST_TT_TRAIT_NAME has_right_shift
|
13
|
+
#define BOOST_TT_TRAIT_OP >>
|
14
|
+
#define BOOST_TT_FORBIDDEN_IF\
|
15
|
+
::boost::type_traits::ice_or<\
|
16
|
+
/* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
|
17
|
+
::boost::type_traits::ice_and<\
|
18
|
+
::boost::is_fundamental< Lhs_nocv >::value,\
|
19
|
+
::boost::is_fundamental< Rhs_nocv >::value,\
|
20
|
+
::boost::type_traits::ice_or<\
|
21
|
+
::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
|
22
|
+
::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
|
23
|
+
>::value\
|
24
|
+
>::value,\
|
25
|
+
/* Lhs==fundamental and Rhs==pointer */\
|
26
|
+
::boost::type_traits::ice_and<\
|
27
|
+
::boost::is_fundamental< Lhs_nocv >::value,\
|
28
|
+
::boost::is_pointer< Rhs_noref >::value\
|
29
|
+
>::value,\
|
30
|
+
/* Rhs==fundamental and Lhs==pointer */\
|
31
|
+
::boost::type_traits::ice_and<\
|
32
|
+
::boost::is_fundamental< Rhs_nocv >::value,\
|
33
|
+
::boost::is_pointer< Lhs_noref >::value\
|
34
|
+
>::value,\
|
35
|
+
/* Lhs==pointer and Rhs==pointer */\
|
36
|
+
::boost::type_traits::ice_and<\
|
37
|
+
::boost::is_pointer< Lhs_noref >::value,\
|
38
|
+
::boost::is_pointer< Rhs_noref >::value\
|
39
|
+
>::value\
|
40
|
+
>::value
|
41
|
+
|
42
|
+
|
43
|
+
#include <boost/type_traits/detail/has_binary_operator.hpp>
|
44
|
+
|
45
|
+
#undef BOOST_TT_TRAIT_NAME
|
46
|
+
#undef BOOST_TT_TRAIT_OP
|
47
|
+
#undef BOOST_TT_FORBIDDEN_IF
|
48
|
+
|
49
|
+
#endif
|
@@ -0,0 +1,57 @@
|
|
1
|
+
|
2
|
+
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
3
|
+
// (C) Copyright Eric Friedman 2002-2003.
|
4
|
+
// (C) Copyright Antony Polukhin 2013.
|
5
|
+
// Use, modification and distribution are subject to the Boost Software License,
|
6
|
+
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
7
|
+
// http://www.boost.org/LICENSE_1_0.txt).
|
8
|
+
//
|
9
|
+
// See http://www.boost.org/libs/type_traits for most recent version including documentation.
|
10
|
+
|
11
|
+
#ifndef BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
|
12
|
+
#define BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
|
13
|
+
|
14
|
+
#include <boost/type_traits/config.hpp>
|
15
|
+
#include <boost/type_traits/is_pod.hpp>
|
16
|
+
#include <boost/type_traits/is_const.hpp>
|
17
|
+
#include <boost/type_traits/is_volatile.hpp>
|
18
|
+
#include <boost/type_traits/detail/ice_and.hpp>
|
19
|
+
#include <boost/type_traits/detail/ice_not.hpp>
|
20
|
+
|
21
|
+
// should be the last #include
|
22
|
+
#include <boost/type_traits/detail/bool_trait_def.hpp>
|
23
|
+
|
24
|
+
namespace boost {
|
25
|
+
|
26
|
+
namespace detail {
|
27
|
+
|
28
|
+
template <typename T>
|
29
|
+
struct has_trivial_move_assign_impl
|
30
|
+
{
|
31
|
+
#ifdef BOOST_HAS_TRIVIAL_MOVE_ASSIGN
|
32
|
+
BOOST_STATIC_CONSTANT(bool, value = (BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T)));
|
33
|
+
#else
|
34
|
+
BOOST_STATIC_CONSTANT(bool, value =
|
35
|
+
(::boost::type_traits::ice_and<
|
36
|
+
::boost::is_pod<T>::value,
|
37
|
+
::boost::type_traits::ice_not< ::boost::is_const<T>::value >::value,
|
38
|
+
::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
|
39
|
+
>::value));
|
40
|
+
#endif
|
41
|
+
};
|
42
|
+
|
43
|
+
} // namespace detail
|
44
|
+
|
45
|
+
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_assign,T,::boost::detail::has_trivial_move_assign_impl<T>::value)
|
46
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void,false)
|
47
|
+
#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
|
48
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void const,false)
|
49
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void const volatile,false)
|
50
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void volatile,false)
|
51
|
+
#endif
|
52
|
+
|
53
|
+
} // namespace boost
|
54
|
+
|
55
|
+
#include <boost/type_traits/detail/bool_trait_undef.hpp>
|
56
|
+
|
57
|
+
#endif // BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
|
@@ -0,0 +1,57 @@
|
|
1
|
+
|
2
|
+
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
3
|
+
// (C) Copyright Eric Friedman 2002-2003.
|
4
|
+
// (C) Copyright Antony Polukhin 2013.
|
5
|
+
// Use, modification and distribution are subject to the Boost Software License,
|
6
|
+
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
7
|
+
// http://www.boost.org/LICENSE_1_0.txt).
|
8
|
+
//
|
9
|
+
// See http://www.boost.org/libs/type_traits for most recent version including documentation.
|
10
|
+
|
11
|
+
#ifndef BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
|
12
|
+
#define BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
|
13
|
+
|
14
|
+
#include <boost/type_traits/config.hpp>
|
15
|
+
#include <boost/type_traits/intrinsics.hpp>
|
16
|
+
#include <boost/type_traits/is_pod.hpp>
|
17
|
+
#include <boost/type_traits/is_volatile.hpp>
|
18
|
+
#include <boost/type_traits/detail/ice_and.hpp>
|
19
|
+
#include <boost/type_traits/detail/ice_not.hpp>
|
20
|
+
|
21
|
+
// should be the last #include
|
22
|
+
#include <boost/type_traits/detail/bool_trait_def.hpp>
|
23
|
+
|
24
|
+
namespace boost {
|
25
|
+
|
26
|
+
namespace detail {
|
27
|
+
|
28
|
+
template <typename T>
|
29
|
+
struct has_trivial_move_ctor_impl
|
30
|
+
{
|
31
|
+
#ifdef BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR
|
32
|
+
BOOST_STATIC_CONSTANT(bool, value = (BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T)));
|
33
|
+
#else
|
34
|
+
BOOST_STATIC_CONSTANT(bool, value =
|
35
|
+
(::boost::type_traits::ice_and<
|
36
|
+
::boost::is_pod<T>::value,
|
37
|
+
::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
|
38
|
+
>::value));
|
39
|
+
#endif
|
40
|
+
};
|
41
|
+
|
42
|
+
} // namespace detail
|
43
|
+
|
44
|
+
BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_constructor,T,::boost::detail::has_trivial_move_ctor_impl<T>::value)
|
45
|
+
|
46
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void,false)
|
47
|
+
#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
|
48
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void const,false)
|
49
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void const volatile,false)
|
50
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void volatile,false)
|
51
|
+
#endif
|
52
|
+
|
53
|
+
} // namespace boost
|
54
|
+
|
55
|
+
#include <boost/type_traits/detail/bool_trait_undef.hpp>
|
56
|
+
|
57
|
+
#endif // BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
|
@@ -24,7 +24,9 @@
|
|
24
24
|
// BOOST_IS_EMPTY(T) should evaluate to true if T is an empty class type (and not a union)
|
25
25
|
// BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect
|
26
26
|
// BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy
|
27
|
+
// BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) should evaluate to true if T(boost::move(t)) <==> memcpy
|
27
28
|
// BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy
|
29
|
+
// BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) should evaluate to true if t = boost::move(u) <==> memcpy
|
28
30
|
// BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect
|
29
31
|
// BOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw
|
30
32
|
// BOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw
|
@@ -79,8 +81,10 @@
|
|
79
81
|
# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
|
80
82
|
#endif
|
81
83
|
|
82
|
-
#if defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215)
|
84
|
+
#if (defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215))\
|
85
|
+
|| (defined(BOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1500))
|
83
86
|
# include <boost/type_traits/is_same.hpp>
|
87
|
+
# include <boost/type_traits/is_function.hpp>
|
84
88
|
|
85
89
|
# define BOOST_IS_UNION(T) __is_union(T)
|
86
90
|
# define BOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T))
|
@@ -97,13 +101,18 @@
|
|
97
101
|
# define BOOST_IS_ABSTRACT(T) __is_abstract(T)
|
98
102
|
# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
|
99
103
|
# define BOOST_IS_CLASS(T) __is_class(T)
|
100
|
-
# define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || is_same<T,U>::value) && !__is_abstract(U))
|
104
|
+
# define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || (is_same<T,U>::value && !is_function<U>::value)) && !__is_abstract(U))
|
101
105
|
# define BOOST_IS_ENUM(T) __is_enum(T)
|
102
106
|
// This one doesn't quite always do the right thing:
|
103
107
|
// # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
|
104
108
|
// This one fails if the default alignment has been changed with /Zp:
|
105
109
|
// # define BOOST_ALIGNMENT_OF(T) __alignof(T)
|
106
110
|
|
111
|
+
# if defined(_MSC_VER) && (_MSC_VER >= 1700)
|
112
|
+
# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) ((__has_trivial_move_constructor(T) || ::boost::is_pod<T>::value) && !::boost::is_volatile<T>::value)
|
113
|
+
# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) ((__has_trivial_move_assign(T) || ::boost::is_pod<T>::value) && ! ::boost::is_const<T>::value && !::boost::is_volatile<T>::value)
|
114
|
+
# endif
|
115
|
+
|
107
116
|
# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
|
108
117
|
#endif
|
109
118
|
|
@@ -181,6 +190,12 @@
|
|
181
190
|
# if __has_feature(is_polymorphic)
|
182
191
|
# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
|
183
192
|
# endif
|
193
|
+
# if __has_feature(has_trivial_move_constructor)
|
194
|
+
# define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) __has_trivial_move_constructor(T)
|
195
|
+
# endif
|
196
|
+
# if __has_feature(has_trivial_move_assign)
|
197
|
+
# define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) __has_trivial_move_assign(T)
|
198
|
+
# endif
|
184
199
|
# define BOOST_ALIGNMENT_OF(T) __alignof(T)
|
185
200
|
|
186
201
|
# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
|
@@ -287,3 +302,4 @@
|
|
287
302
|
|
288
303
|
|
289
304
|
|
305
|
+
|
@@ -39,7 +39,7 @@
|
|
39
39
|
// At this time supported by EDG (Intel C++ 7, Comeau 4.3.2) and VC7.1.
|
40
40
|
// - Adapted and added into Boost.Serialization library by Robert Ramey
|
41
41
|
// (starting with submission #10).
|
42
|
-
// - Jan 2004: GCC 3.4 fixed to
|
42
|
+
// - Jan 2004: GCC 3.4 fixed to support DR337 (Giovanni Bajo).
|
43
43
|
// - Jan 2004: modified to be part of Boost.TypeTraits (Pavel Vozenilek).
|
44
44
|
// - Nov 2004: Christoph Ludwig found that the implementation did not work with
|
45
45
|
// template types and gcc-3.4 or VC7.1, fix due to Christoph Ludwig
|
@@ -8,7 +8,7 @@
|
|
8
8
|
// See http://www.boost.org/libs/type_traits for most recent version including documentation.
|
9
9
|
|
10
10
|
|
11
|
-
// Some fixes for is_array are based on a
|
11
|
+
// Some fixes for is_array are based on a newsgroup posting by Jonathan Lundquist.
|
12
12
|
|
13
13
|
|
14
14
|
#ifndef BOOST_TT_IS_ARRAY_HPP_INCLUDED
|
@@ -64,7 +64,7 @@ struct is_const_rvalue_filter
|
|
64
64
|
BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<T*>::is_const);
|
65
65
|
#endif
|
66
66
|
};
|
67
|
-
#ifndef
|
67
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
68
68
|
template <class T>
|
69
69
|
struct is_const_rvalue_filter<T&&>
|
70
70
|
{
|
@@ -17,17 +17,17 @@
|
|
17
17
|
#include <boost/type_traits/detail/yes_no_type.hpp>
|
18
18
|
#include <boost/type_traits/config.hpp>
|
19
19
|
#include <boost/type_traits/is_array.hpp>
|
20
|
-
#include <boost/type_traits/add_reference.hpp>
|
21
20
|
#include <boost/type_traits/ice.hpp>
|
22
21
|
#include <boost/type_traits/is_arithmetic.hpp>
|
23
22
|
#include <boost/type_traits/is_void.hpp>
|
24
23
|
#ifndef BOOST_NO_IS_ABSTRACT
|
25
24
|
#include <boost/type_traits/is_abstract.hpp>
|
26
25
|
#endif
|
26
|
+
#include <boost/type_traits/add_lvalue_reference.hpp>
|
27
27
|
#include <boost/type_traits/add_rvalue_reference.hpp>
|
28
|
+
#include <boost/type_traits/is_function.hpp>
|
28
29
|
|
29
30
|
#if defined(__MWERKS__)
|
30
|
-
#include <boost/type_traits/is_function.hpp>
|
31
31
|
#include <boost/type_traits/remove_reference.hpp>
|
32
32
|
#endif
|
33
33
|
|
@@ -40,7 +40,7 @@ namespace boost {
|
|
40
40
|
|
41
41
|
#ifndef BOOST_IS_CONVERTIBLE
|
42
42
|
|
43
|
-
// is one type
|
43
|
+
// is one type convertible to another?
|
44
44
|
//
|
45
45
|
// there are multiple versions of the is_convertible
|
46
46
|
// template, almost every compiler seems to require its
|
@@ -69,7 +69,7 @@ struct does_conversion_exist
|
|
69
69
|
{
|
70
70
|
static no_type BOOST_TT_DECL _m_check(...);
|
71
71
|
static yes_type BOOST_TT_DECL _m_check(To);
|
72
|
-
static typename
|
72
|
+
static typename add_lvalue_reference<From>::type _m_from;
|
73
73
|
enum { value = sizeof( _m_check(_m_from) ) == sizeof(yes_type) };
|
74
74
|
};
|
75
75
|
};
|
@@ -107,7 +107,7 @@ struct is_convertible_impl
|
|
107
107
|
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(T);
|
108
108
|
};
|
109
109
|
|
110
|
-
static typename
|
110
|
+
static typename add_lvalue_reference<From>::type _m_from;
|
111
111
|
static bool const value = sizeof( checker<To>::_m_check(_m_from) )
|
112
112
|
== sizeof(::boost::type_traits::yes_type);
|
113
113
|
#pragma option pop
|
@@ -120,6 +120,8 @@ struct is_convertible_impl
|
|
120
120
|
struct any_conversion
|
121
121
|
{
|
122
122
|
template <typename T> any_conversion(const volatile T&);
|
123
|
+
template <typename T> any_conversion(const T&);
|
124
|
+
template <typename T> any_conversion(volatile T&);
|
123
125
|
template <typename T> any_conversion(T&);
|
124
126
|
};
|
125
127
|
|
@@ -132,9 +134,18 @@ template <typename T> struct checker
|
|
132
134
|
template <typename From, typename To>
|
133
135
|
struct is_convertible_basic_impl
|
134
136
|
{
|
135
|
-
|
136
|
-
|
137
|
+
typedef typename add_lvalue_reference<From>::type lvalue_type;
|
138
|
+
typedef typename add_rvalue_reference<From>::type rvalue_type;
|
139
|
+
static lvalue_type _m_from;
|
140
|
+
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6)))
|
141
|
+
static bool const value =
|
142
|
+
sizeof( boost::detail::checker<To>::_m_check(static_cast<rvalue_type>(_m_from), 0) )
|
143
|
+
== sizeof(::boost::type_traits::yes_type);
|
144
|
+
#else
|
145
|
+
static bool const value =
|
146
|
+
sizeof( boost::detail::checker<To>::_m_check(_m_from, 0) )
|
137
147
|
== sizeof(::boost::type_traits::yes_type);
|
148
|
+
#endif
|
138
149
|
};
|
139
150
|
|
140
151
|
#elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \
|
@@ -152,6 +163,8 @@ struct is_convertible_basic_impl
|
|
152
163
|
struct any_conversion
|
153
164
|
{
|
154
165
|
template <typename T> any_conversion(const volatile T&);
|
166
|
+
template <typename T> any_conversion(const T&);
|
167
|
+
template <typename T> any_conversion(volatile T&);
|
155
168
|
// we need this constructor to catch references to functions
|
156
169
|
// (which can not be cv-qualified):
|
157
170
|
template <typename T> any_conversion(T&);
|
@@ -162,11 +175,19 @@ struct is_convertible_basic_impl
|
|
162
175
|
{
|
163
176
|
static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
|
164
177
|
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
|
165
|
-
|
178
|
+
typedef typename add_lvalue_reference<From>::type lvalue_type;
|
179
|
+
typedef typename add_rvalue_reference<From>::type rvalue_type;
|
180
|
+
static lvalue_type _m_from;
|
166
181
|
|
182
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
183
|
+
BOOST_STATIC_CONSTANT(bool, value =
|
184
|
+
sizeof( _m_check(static_cast<rvalue_type>(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type)
|
185
|
+
);
|
186
|
+
#else
|
167
187
|
BOOST_STATIC_CONSTANT(bool, value =
|
168
188
|
sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type)
|
169
189
|
);
|
190
|
+
#endif
|
170
191
|
};
|
171
192
|
|
172
193
|
#elif defined(__DMC__)
|
@@ -174,6 +195,8 @@ struct is_convertible_basic_impl
|
|
174
195
|
struct any_conversion
|
175
196
|
{
|
176
197
|
template <typename T> any_conversion(const volatile T&);
|
198
|
+
template <typename T> any_conversion(const T&);
|
199
|
+
template <typename T> any_conversion(volatile T&);
|
177
200
|
// we need this constructor to catch references to functions
|
178
201
|
// (which can not be cv-qualified):
|
179
202
|
template <typename T> any_conversion(T&);
|
@@ -186,13 +209,21 @@ struct is_convertible_basic_impl
|
|
186
209
|
template <class T>
|
187
210
|
static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion, float, T);
|
188
211
|
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int);
|
189
|
-
|
212
|
+
typedef typename add_lvalue_reference<From>::type lvalue_type;
|
213
|
+
typedef typename add_rvalue_reference<From>::type rvalue_type;
|
214
|
+
static lvalue_type _m_from;
|
190
215
|
|
191
216
|
// Static constants sometime cause the conversion of _m_from to To to be
|
192
217
|
// called. This doesn't happen with an enum.
|
218
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
219
|
+
enum { value =
|
220
|
+
sizeof( _m_check(static_cast<rvalue_type>(_m_from), 0, 0) ) == sizeof(::boost::type_traits::yes_type)
|
221
|
+
};
|
222
|
+
#else
|
193
223
|
enum { value =
|
194
224
|
sizeof( _m_check(_m_from, 0, 0) ) == sizeof(::boost::type_traits::yes_type)
|
195
225
|
};
|
226
|
+
#endif
|
196
227
|
};
|
197
228
|
|
198
229
|
#elif defined(__MWERKS__)
|
@@ -209,6 +240,9 @@ struct is_convertible_basic_impl_aux;
|
|
209
240
|
struct any_conversion
|
210
241
|
{
|
211
242
|
template <typename T> any_conversion(const volatile T&);
|
243
|
+
template <typename T> any_conversion(const T&);
|
244
|
+
template <typename T> any_conversion(volatile T&);
|
245
|
+
template <typename T> any_conversion(T&);
|
212
246
|
};
|
213
247
|
|
214
248
|
template <typename From, typename To>
|
@@ -216,11 +250,19 @@ struct is_convertible_basic_impl_aux<From,To,false /*FromIsFunctionRef*/>
|
|
216
250
|
{
|
217
251
|
static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
|
218
252
|
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
|
219
|
-
|
253
|
+
typedef typename add_lvalue_reference<From>::type lvalue_type;
|
254
|
+
typedef typename add_rvalue_reference<From>::type rvalue_type;
|
255
|
+
static lvalue_type _m_from;
|
220
256
|
|
257
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
258
|
+
BOOST_STATIC_CONSTANT(bool, value =
|
259
|
+
sizeof( _m_check(static_cast<rvalue_type>(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type)
|
260
|
+
);
|
261
|
+
#else
|
221
262
|
BOOST_STATIC_CONSTANT(bool, value =
|
222
263
|
sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type)
|
223
264
|
);
|
265
|
+
#endif
|
224
266
|
};
|
225
267
|
|
226
268
|
template <typename From, typename To>
|
@@ -228,10 +270,18 @@ struct is_convertible_basic_impl_aux<From,To,true /*FromIsFunctionRef*/>
|
|
228
270
|
{
|
229
271
|
static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
|
230
272
|
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
|
231
|
-
|
273
|
+
typedef typename add_lvalue_reference<From>::type lvalue_type;
|
274
|
+
typedef typename add_rvalue_reference<From>::type rvalue_type;
|
275
|
+
static lvalue_type _m_from;
|
276
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
277
|
+
BOOST_STATIC_CONSTANT(bool, value =
|
278
|
+
sizeof( _m_check(static_cast<rvalue_type>(_m_from)) ) == sizeof(::boost::type_traits::yes_type)
|
279
|
+
);
|
280
|
+
#else
|
232
281
|
BOOST_STATIC_CONSTANT(bool, value =
|
233
282
|
sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type)
|
234
283
|
);
|
284
|
+
#endif
|
235
285
|
};
|
236
286
|
|
237
287
|
template <typename From, typename To>
|
@@ -243,7 +293,6 @@ struct is_convertible_basic_impl:
|
|
243
293
|
{};
|
244
294
|
|
245
295
|
#else
|
246
|
-
|
247
296
|
//
|
248
297
|
// This version seems to work pretty well for a wide spectrum of compilers,
|
249
298
|
// however it does rely on undefined behaviour by passing UDT's through (...).
|
@@ -253,7 +302,9 @@ struct is_convertible_basic_impl
|
|
253
302
|
{
|
254
303
|
static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
|
255
304
|
static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
|
256
|
-
|
305
|
+
typedef typename add_lvalue_reference<From>::type lvalue_type;
|
306
|
+
typedef typename add_rvalue_reference<From>::type rvalue_type;
|
307
|
+
static lvalue_type _m_from;
|
257
308
|
#ifdef BOOST_MSVC
|
258
309
|
#pragma warning(push)
|
259
310
|
#pragma warning(disable:4244)
|
@@ -261,9 +312,15 @@ struct is_convertible_basic_impl
|
|
261
312
|
#pragma warning(disable:6334)
|
262
313
|
#endif
|
263
314
|
#endif
|
315
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
316
|
+
BOOST_STATIC_CONSTANT(bool, value =
|
317
|
+
sizeof( _m_check(static_cast<rvalue_type>(_m_from)) ) == sizeof(::boost::type_traits::yes_type)
|
318
|
+
);
|
319
|
+
#else
|
264
320
|
BOOST_STATIC_CONSTANT(bool, value =
|
265
321
|
sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type)
|
266
322
|
);
|
323
|
+
#endif
|
267
324
|
#ifdef BOOST_MSVC
|
268
325
|
#pragma warning(pop)
|
269
326
|
#endif
|
@@ -276,15 +333,17 @@ struct is_convertible_basic_impl
|
|
276
333
|
template <typename From, typename To>
|
277
334
|
struct is_convertible_impl
|
278
335
|
{
|
279
|
-
typedef typename add_reference<From>::type ref_type;
|
280
336
|
enum { value =
|
281
337
|
(::boost::type_traits::ice_and<
|
282
338
|
::boost::type_traits::ice_or<
|
283
|
-
::boost::detail::is_convertible_basic_impl<
|
339
|
+
::boost::detail::is_convertible_basic_impl<From,To>::value,
|
284
340
|
::boost::is_void<To>::value
|
285
341
|
>::value,
|
286
342
|
::boost::type_traits::ice_not<
|
287
343
|
::boost::is_array<To>::value
|
344
|
+
>::value,
|
345
|
+
::boost::type_traits::ice_not<
|
346
|
+
::boost::is_function<To>::value
|
288
347
|
>::value
|
289
348
|
>::value) };
|
290
349
|
};
|
@@ -292,15 +351,17 @@ struct is_convertible_impl
|
|
292
351
|
template <typename From, typename To>
|
293
352
|
struct is_convertible_impl
|
294
353
|
{
|
295
|
-
typedef typename add_reference<From>::type ref_type;
|
296
354
|
BOOST_STATIC_CONSTANT(bool, value =
|
297
355
|
(::boost::type_traits::ice_and<
|
298
356
|
::boost::type_traits::ice_or<
|
299
|
-
::boost::detail::is_convertible_basic_impl<
|
357
|
+
::boost::detail::is_convertible_basic_impl<From,To>::value,
|
300
358
|
::boost::is_void<To>::value
|
301
359
|
>::value,
|
302
360
|
::boost::type_traits::ice_not<
|
303
361
|
::boost::is_array<To>::value
|
362
|
+
>::value,
|
363
|
+
::boost::type_traits::ice_not<
|
364
|
+
::boost::is_function<To>::value
|
304
365
|
>::value
|
305
366
|
>::value)
|
306
367
|
);
|