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
@@ -9,9 +9,10 @@
|
|
9
9
|
#include <boost/thread/detail/config.hpp>
|
10
10
|
#ifdef BOOST_THREAD_USES_CHRONO
|
11
11
|
#include <boost/chrono/system_clocks.hpp>
|
12
|
+
#include <boost/chrono/ceil.hpp>
|
12
13
|
#endif
|
13
14
|
#include <boost/thread/condition_variable.hpp>
|
14
|
-
#include <boost/thread/
|
15
|
+
#include <boost/thread/lock_types.hpp>
|
15
16
|
|
16
17
|
namespace boost
|
17
18
|
{
|
@@ -20,15 +21,6 @@ namespace boost
|
|
20
21
|
|
21
22
|
#ifdef BOOST_THREAD_USES_CHRONO
|
22
23
|
|
23
|
-
template <class Rep, class Period>
|
24
|
-
void sleep_for(const chrono::duration<Rep, Period>& d)
|
25
|
-
{
|
26
|
-
using namespace chrono;
|
27
|
-
nanoseconds ns = duration_cast<nanoseconds> (d);
|
28
|
-
if (ns < d) ++ns;
|
29
|
-
sleep_for(ns);
|
30
|
-
}
|
31
|
-
|
32
24
|
template <class Clock, class Duration>
|
33
25
|
void sleep_until(const chrono::time_point<Clock, Duration>& t)
|
34
26
|
{
|
@@ -40,6 +32,28 @@ namespace boost
|
|
40
32
|
cv.wait_until(lk, t);
|
41
33
|
}
|
42
34
|
|
35
|
+
#ifdef BOOST_THREAD_SLEEP_FOR_IS_STEADY
|
36
|
+
|
37
|
+
template <class Rep, class Period>
|
38
|
+
void sleep_for(const chrono::duration<Rep, Period>& d)
|
39
|
+
{
|
40
|
+
using namespace chrono;
|
41
|
+
if (d > duration<Rep, Period>::zero())
|
42
|
+
{
|
43
|
+
duration<long double> Max = nanoseconds::max BOOST_PREVENT_MACRO_SUBSTITUTION ();
|
44
|
+
nanoseconds ns;
|
45
|
+
if (d < Max)
|
46
|
+
{
|
47
|
+
ns = duration_cast<nanoseconds>(d);
|
48
|
+
if (ns < d)
|
49
|
+
++ns;
|
50
|
+
}
|
51
|
+
else
|
52
|
+
ns = nanoseconds:: max BOOST_PREVENT_MACRO_SUBSTITUTION ();
|
53
|
+
sleep_for(ns);
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
43
57
|
template <class Duration>
|
44
58
|
inline BOOST_SYMBOL_VISIBLE
|
45
59
|
void sleep_until(const chrono::time_point<chrono::steady_clock, Duration>& t)
|
@@ -47,6 +61,19 @@ namespace boost
|
|
47
61
|
using namespace chrono;
|
48
62
|
sleep_for(t - steady_clock::now());
|
49
63
|
}
|
64
|
+
#else
|
65
|
+
template <class Rep, class Period>
|
66
|
+
void sleep_for(const chrono::duration<Rep, Period>& d)
|
67
|
+
{
|
68
|
+
using namespace chrono;
|
69
|
+
if (d > duration<Rep, Period>::zero())
|
70
|
+
{
|
71
|
+
steady_clock::time_point c_timeout = steady_clock::now() + ceil<nanoseconds>(d);
|
72
|
+
sleep_until(c_timeout);
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
#endif
|
50
77
|
|
51
78
|
#endif
|
52
79
|
}
|
data/ext/boost/thread/xtime.hpp
CHANGED
@@ -9,6 +9,7 @@
|
|
9
9
|
#define BOOST_XTIME_WEK070601_HPP
|
10
10
|
|
11
11
|
#include <boost/thread/detail/config.hpp>
|
12
|
+
#if defined BOOST_THREAD_USES_DATETIME
|
12
13
|
|
13
14
|
#include <boost/cstdint.hpp>
|
14
15
|
#include <boost/thread/thread_time.hpp>
|
@@ -88,5 +89,5 @@ inline int xtime_cmp(const xtime& xt1, const xtime& xt2)
|
|
88
89
|
} // namespace boost
|
89
90
|
|
90
91
|
#include <boost/config/abi_suffix.hpp>
|
91
|
-
|
92
|
+
#endif
|
92
93
|
#endif //BOOST_XTIME_WEK070601_HPP
|
@@ -1,6 +1,6 @@
|
|
1
1
|
// Boost token_functions.hpp ------------------------------------------------//
|
2
2
|
|
3
|
-
// Copyright John R. Bandela 2001.
|
3
|
+
// Copyright John R. Bandela 2001.
|
4
4
|
|
5
5
|
// Distributed under the Boost Software License, Version 1.0. (See
|
6
6
|
// accompanying file LICENSE_1_0.txt or copy at
|
@@ -77,12 +77,12 @@ namespace std{
|
|
77
77
|
namespace boost{
|
78
78
|
//===========================================================================
|
79
79
|
// The escaped_list_separator class. Which is a model of TokenizerFunction
|
80
|
-
// An escaped list is a super-set of what is commonly known as a comma
|
81
|
-
// separated value (csv) list.It is separated into fields by a comma or
|
80
|
+
// An escaped list is a super-set of what is commonly known as a comma
|
81
|
+
// separated value (csv) list.It is separated into fields by a comma or
|
82
82
|
// other character. If the delimiting character is inside quotes, then it is
|
83
83
|
// counted as a regular character.To allow for embedded quotes in a field,
|
84
|
-
// there can be escape sequences using the \ much like C.
|
85
|
-
// The role of the comma, the quotation mark, and the escape
|
84
|
+
// there can be escape sequences using the \ much like C.
|
85
|
+
// The role of the comma, the quotation mark, and the escape
|
86
86
|
// character (backslash \), can be assigned to other characters.
|
87
87
|
|
88
88
|
struct escaped_list_error : public std::runtime_error{
|
@@ -181,7 +181,7 @@ namespace boost{
|
|
181
181
|
++next;
|
182
182
|
// The last character was a c, that means there is
|
183
183
|
// 1 more blank field
|
184
|
-
last_ = true;
|
184
|
+
last_ = true;
|
185
185
|
return true;
|
186
186
|
}
|
187
187
|
else tok+=*next;
|
@@ -209,7 +209,7 @@ namespace boost{
|
|
209
209
|
// Assuming that the conditional will always get optimized out in the function
|
210
210
|
// implementations, argument types are not a problem since both forms of character classifiers
|
211
211
|
// expect an int.
|
212
|
-
|
212
|
+
|
213
213
|
#if !defined(BOOST_NO_CWCTYPE)
|
214
214
|
template<typename traits, int N>
|
215
215
|
struct traits_extension_details : public traits {
|
@@ -238,7 +238,7 @@ namespace boost{
|
|
238
238
|
};
|
239
239
|
#endif
|
240
240
|
|
241
|
-
|
241
|
+
|
242
242
|
// In case there is no cwctype header, we implement the checks manually.
|
243
243
|
// We make use of the fact that the tested categories should fit in ASCII.
|
244
244
|
template<typename traits>
|
@@ -309,8 +309,8 @@ namespace boost{
|
|
309
309
|
template <>
|
310
310
|
struct assign_or_plus_equal<std::input_iterator_tag> {
|
311
311
|
template<class Iterator, class Token>
|
312
|
-
static void assign(Iterator
|
313
|
-
template<class Token, class Value>
|
312
|
+
static void assign(Iterator , Iterator , Token &) { }
|
313
|
+
template<class Token, class Value>
|
314
314
|
static void plus_equal(Token &t, const Value &v) {
|
315
315
|
t += v;
|
316
316
|
}
|
@@ -444,7 +444,7 @@ namespace boost{
|
|
444
444
|
typedef tokenizer_detail::traits_extension<Tr> Traits;
|
445
445
|
typedef std::basic_string<Char,Tr> string_type;
|
446
446
|
public:
|
447
|
-
explicit
|
447
|
+
explicit
|
448
448
|
char_separator(const Char* dropped_delims,
|
449
449
|
const Char* kept_delims = 0,
|
450
450
|
empty_token_policy empty_tokens = drop_empty_tokens)
|
@@ -511,7 +511,7 @@ namespace boost{
|
|
511
511
|
m_output_done = true;
|
512
512
|
assigner::assign(start,next,tok);
|
513
513
|
return true;
|
514
|
-
}
|
514
|
+
}
|
515
515
|
else
|
516
516
|
return false;
|
517
517
|
}
|
@@ -524,10 +524,10 @@ namespace boost{
|
|
524
524
|
++next;
|
525
525
|
m_output_done = false;
|
526
526
|
}
|
527
|
-
}
|
527
|
+
}
|
528
528
|
else if (m_output_done == false && is_dropped(*next)) {
|
529
529
|
m_output_done = true;
|
530
|
-
}
|
530
|
+
}
|
531
531
|
else {
|
532
532
|
if (is_dropped(*next))
|
533
533
|
start=++next;
|
@@ -618,7 +618,7 @@ namespace boost{
|
|
618
618
|
}
|
619
619
|
|
620
620
|
public:
|
621
|
-
explicit char_delimiters_separator(bool return_delims = false,
|
621
|
+
explicit char_delimiters_separator(bool return_delims = false,
|
622
622
|
const Char* returnable = 0,
|
623
623
|
const Char* nonreturnable = 0)
|
624
624
|
: returnable_(returnable ? returnable : string_type().c_str()),
|
@@ -636,7 +636,7 @@ namespace boost{
|
|
636
636
|
|
637
637
|
// skip past all nonreturnable delims
|
638
638
|
// skip past the returnable only if we are not returning delims
|
639
|
-
for (;next!=end && ( is_nonret(*next) || (is_ret(*next)
|
639
|
+
for (;next!=end && ( is_nonret(*next) || (is_ret(*next)
|
640
640
|
&& !return_delims_ ) );++next) { }
|
641
641
|
|
642
642
|
if (next == end) {
|
@@ -0,0 +1,26 @@
|
|
1
|
+
// Copyright 2010 John Maddock
|
2
|
+
|
3
|
+
// Distributed under the Boost Software License, Version 1.0.
|
4
|
+
// See http://www.boost.org/LICENSE_1_0.txt
|
5
|
+
|
6
|
+
#ifndef BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
|
7
|
+
#define BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
|
8
|
+
|
9
|
+
#include <boost/type_traits/add_reference.hpp>
|
10
|
+
|
11
|
+
// should be the last #include
|
12
|
+
#include <boost/type_traits/detail/type_trait_def.hpp>
|
13
|
+
|
14
|
+
namespace boost{
|
15
|
+
|
16
|
+
BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_lvalue_reference,T,typename boost::add_reference<T>::type)
|
17
|
+
|
18
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
19
|
+
BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_lvalue_reference,T&&,T&)
|
20
|
+
#endif
|
21
|
+
|
22
|
+
}
|
23
|
+
|
24
|
+
#include <boost/type_traits/detail/type_trait_undef.hpp>
|
25
|
+
|
26
|
+
#endif // BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
|
@@ -21,7 +21,7 @@
|
|
21
21
|
//----------------------------------------------------------------------------//
|
22
22
|
// //
|
23
23
|
// C++03 implementation of //
|
24
|
-
// 20.7.
|
24
|
+
// 20.9.7.2 Reference modifications [meta.trans.ref] //
|
25
25
|
// Written by Vicente J. Botet Escriba //
|
26
26
|
// //
|
27
27
|
// If T names an object or function type then the member typedef type
|
@@ -39,7 +39,7 @@ namespace type_traits_detail {
|
|
39
39
|
struct add_rvalue_reference_helper
|
40
40
|
{ typedef T type; };
|
41
41
|
|
42
|
-
#if !defined(
|
42
|
+
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
43
43
|
template <typename T>
|
44
44
|
struct add_rvalue_reference_helper<T, true>
|
45
45
|
{
|
@@ -49,9 +49,9 @@ namespace type_traits_detail {
|
|
49
49
|
|
50
50
|
template <typename T>
|
51
51
|
struct add_rvalue_reference_imp
|
52
|
-
{
|
52
|
+
{
|
53
53
|
typedef typename boost::type_traits_detail::add_rvalue_reference_helper
|
54
|
-
<T, (
|
54
|
+
<T, (is_void<T>::value == false && is_reference<T>::value == false) >::type type;
|
55
55
|
};
|
56
56
|
|
57
57
|
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
// Copyright (C) John Maddock 2005.
|
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_ALIGNED_STORAGE_HPP_INCLUDED
|
10
|
+
# define BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
|
11
|
+
# include <boost/aligned_storage.hpp>
|
12
|
+
#endif // BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
|
13
|
+
|
@@ -19,18 +19,17 @@
|
|
19
19
|
#endif
|
20
20
|
|
21
21
|
//----------------------------------------------------------------------------//
|
22
|
-
#if defined(
|
22
|
+
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_COMMON_TYPE_ARITY)
|
23
23
|
#define BOOST_COMMON_TYPE_ARITY 3
|
24
24
|
#endif
|
25
25
|
|
26
26
|
//----------------------------------------------------------------------------//
|
27
|
-
#if defined(
|
28
|
-
#define BOOST_TYPEOF_SILENT
|
27
|
+
#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
|
29
28
|
#include <boost/typeof/typeof.hpp> // boost wonders never cease!
|
30
29
|
#endif
|
31
30
|
|
32
31
|
//----------------------------------------------------------------------------//
|
33
|
-
#ifndef
|
32
|
+
#ifndef BOOST_NO_CXX11_STATIC_ASSERT
|
34
33
|
#define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) static_assert(CND,MSG)
|
35
34
|
#elif defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT)
|
36
35
|
#include <boost/mpl/assert.hpp>
|
@@ -42,11 +41,11 @@
|
|
42
41
|
#define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) BOOST_STATIC_ASSERT(CND)
|
43
42
|
#endif
|
44
43
|
|
45
|
-
#if !defined(
|
44
|
+
#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) || !defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT)
|
46
45
|
#define BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE "must be complete type"
|
47
46
|
#endif
|
48
47
|
|
49
|
-
#if defined(
|
48
|
+
#if defined(BOOST_NO_CXX11_DECLTYPE) && defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
|
50
49
|
#include <boost/type_traits/detail/common_type_imp.hpp>
|
51
50
|
#include <boost/type_traits/remove_cv.hpp>
|
52
51
|
#endif
|
@@ -57,7 +56,7 @@
|
|
57
56
|
//----------------------------------------------------------------------------//
|
58
57
|
// //
|
59
58
|
// C++03 implementation of //
|
60
|
-
// 20.
|
59
|
+
// 20.9.7.6 Other transformations [meta.trans.other] //
|
61
60
|
// Written by Howard Hinnant //
|
62
61
|
// Adapted for Boost by Beman Dawes, Vicente Botet and Jeffrey Hellrung //
|
63
62
|
// //
|
@@ -66,7 +65,7 @@
|
|
66
65
|
namespace boost {
|
67
66
|
|
68
67
|
// prototype
|
69
|
-
#if !defined(
|
68
|
+
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
70
69
|
template<typename... T>
|
71
70
|
struct common_type;
|
72
71
|
#else // or no specialization
|
@@ -81,7 +80,7 @@ namespace boost {
|
|
81
80
|
|
82
81
|
// 1 arg
|
83
82
|
template<typename T>
|
84
|
-
#if !defined(
|
83
|
+
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
85
84
|
struct common_type<T>
|
86
85
|
#else
|
87
86
|
struct common_type<T, void, void>
|
@@ -107,7 +106,7 @@ namespace type_traits_detail {
|
|
107
106
|
static typename add_rvalue_reference<U>::type declval_U(); // workaround gcc bug; not required by std
|
108
107
|
static typename add_rvalue_reference<bool>::type declval_b();
|
109
108
|
|
110
|
-
#if !defined(
|
109
|
+
#if !defined(BOOST_NO_CXX11_DECLTYPE)
|
111
110
|
public:
|
112
111
|
typedef decltype(declval<bool>() ? declval<T>() : declval<U>()) type;
|
113
112
|
#elif defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
|
@@ -134,7 +133,7 @@ namespace type_traits_detail {
|
|
134
133
|
};
|
135
134
|
}
|
136
135
|
|
137
|
-
#if !defined(
|
136
|
+
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
138
137
|
template <class T, class U>
|
139
138
|
struct common_type<T, U>
|
140
139
|
#else
|
@@ -146,7 +145,7 @@ namespace type_traits_detail {
|
|
146
145
|
|
147
146
|
|
148
147
|
// 3 or more args
|
149
|
-
#if !defined(
|
148
|
+
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
|
150
149
|
template<typename T, typename U, typename... V>
|
151
150
|
struct common_type<T, U, V...> {
|
152
151
|
public:
|
@@ -16,7 +16,7 @@
|
|
16
16
|
#include <boost/detail/workaround.hpp>
|
17
17
|
|
18
18
|
//
|
19
|
-
// whenever we have a conversion function with
|
19
|
+
// whenever we have a conversion function with ellipses
|
20
20
|
// it needs to be declared __cdecl to suppress compiler
|
21
21
|
// warnings from MS and Borland compilers (this *must*
|
22
22
|
// appear before we include is_same.hpp below):
|
@@ -92,7 +92,7 @@ struct is_integral_or_enum< bool >
|
|
92
92
|
* struct make_signed_soft<T>
|
93
93
|
*
|
94
94
|
* These metafunction are identical to make_unsigned and make_signed,
|
95
|
-
*
|
95
|
+
* respectively, except for special-casing bool.
|
96
96
|
******************************************************************************/
|
97
97
|
|
98
98
|
template< class T >
|
@@ -31,7 +31,7 @@
|
|
31
31
|
// msvc:
|
32
32
|
// warning C4018: '<' : signed/unsigned mismatch
|
33
33
|
// warning C4244: '+=' : conversion from 'double' to 'char', possible loss of data
|
34
|
-
// warning C4547: '*'
|
34
|
+
// warning C4547: '*' : operator before comma has no effect; expected operator with side-effect
|
35
35
|
// warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
|
36
36
|
// warning C4804: '<' : unsafe use of type 'bool' in operation
|
37
37
|
// warning C4805: '==' : unsafe mix of type 'bool' and type 'char' in operation
|
@@ -26,7 +26,7 @@
|
|
26
26
|
namespace boost {
|
27
27
|
namespace type_traits {
|
28
28
|
|
29
|
-
// Note it is
|
29
|
+
// Note it is acceptable to use ellipsis here, since the argument will
|
30
30
|
// always be a pointer type of some sort (JM 2005/06/04):
|
31
31
|
no_type BOOST_TT_DECL is_function_ptr_tester(...);
|
32
32
|
|
@@ -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_LEFT_SHIFT_HPP_INCLUDED
|
10
|
+
#define BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
|
11
|
+
|
12
|
+
#define BOOST_TT_TRAIT_NAME has_left_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
|