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
@@ -83,6 +83,11 @@ struct is_function_impl
|
|
83
83
|
template <typename T>
|
84
84
|
struct is_function_impl<T&> : public false_type
|
85
85
|
{};
|
86
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
87
|
+
template <typename T>
|
88
|
+
struct is_function_impl<T&&> : public false_type
|
89
|
+
{};
|
90
|
+
#endif
|
86
91
|
#endif
|
87
92
|
|
88
93
|
#endif
|
@@ -95,7 +100,7 @@ struct is_function_impl<T&> : public false_type
|
|
95
100
|
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,__is_function(T))
|
96
101
|
#else
|
97
102
|
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,::boost::detail::is_function_impl<T>::value)
|
98
|
-
#ifndef
|
103
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
99
104
|
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_function,T&&,false)
|
100
105
|
#endif
|
101
106
|
#endif
|
@@ -17,7 +17,7 @@
|
|
17
17
|
namespace boost {
|
18
18
|
|
19
19
|
//* is a type T an [cv-qualified-] integral type described in the standard (3.9.1p3)
|
20
|
-
// as an
|
20
|
+
// as an extension we include long long, as this is likely to be added to the
|
21
21
|
// standard at a later date
|
22
22
|
#if defined( __CODEGEARC__ )
|
23
23
|
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,__is_integral(T))
|
@@ -68,6 +68,11 @@ BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::long_long_type,true)
|
|
68
68
|
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
|
69
69
|
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
|
70
70
|
#endif
|
71
|
+
|
72
|
+
#ifdef BOOST_HAS_INT128
|
73
|
+
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,boost::int128_type,true)
|
74
|
+
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,boost::uint128_type,true)
|
75
|
+
#endif
|
71
76
|
|
72
77
|
#endif // non-CodeGear implementation
|
73
78
|
|
@@ -0,0 +1,84 @@
|
|
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_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
|
12
|
+
#define BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
|
13
|
+
|
14
|
+
#include <boost/config.hpp>
|
15
|
+
#include <boost/type_traits/has_trivial_move_assign.hpp>
|
16
|
+
#include <boost/type_traits/has_nothrow_assign.hpp>
|
17
|
+
#include <boost/type_traits/is_array.hpp>
|
18
|
+
#include <boost/type_traits/is_reference.hpp>
|
19
|
+
#include <boost/type_traits/detail/ice_and.hpp>
|
20
|
+
#include <boost/type_traits/detail/ice_or.hpp>
|
21
|
+
#include <boost/type_traits/detail/ice_not.hpp>
|
22
|
+
#include <boost/utility/enable_if.hpp>
|
23
|
+
#include <boost/utility/declval.hpp>
|
24
|
+
|
25
|
+
// should be the last #include
|
26
|
+
#include <boost/type_traits/detail/bool_trait_def.hpp>
|
27
|
+
|
28
|
+
namespace boost {
|
29
|
+
|
30
|
+
namespace detail{
|
31
|
+
|
32
|
+
#ifndef BOOST_NO_CXX11_NOEXCEPT
|
33
|
+
|
34
|
+
template <class T, class Enable = void>
|
35
|
+
struct false_or_cpp11_noexcept_move_assignable: public ::boost::false_type {};
|
36
|
+
|
37
|
+
template <class T>
|
38
|
+
struct false_or_cpp11_noexcept_move_assignable <
|
39
|
+
T,
|
40
|
+
typename ::boost::enable_if_c<sizeof(T) && BOOST_NOEXCEPT_EXPR(::boost::declval<T&>() = ::boost::declval<T>())>::type
|
41
|
+
> : public ::boost::integral_constant<bool, BOOST_NOEXCEPT_EXPR(::boost::declval<T&>() = ::boost::declval<T>())>
|
42
|
+
{};
|
43
|
+
|
44
|
+
template <class T>
|
45
|
+
struct is_nothrow_move_assignable_imp{
|
46
|
+
BOOST_STATIC_CONSTANT(bool, value = (
|
47
|
+
::boost::type_traits::ice_and<
|
48
|
+
::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value,
|
49
|
+
::boost::type_traits::ice_not< ::boost::is_reference<T>::value >::value,
|
50
|
+
::boost::detail::false_or_cpp11_noexcept_move_assignable<T>::value
|
51
|
+
>::value));
|
52
|
+
};
|
53
|
+
|
54
|
+
#else
|
55
|
+
|
56
|
+
template <class T>
|
57
|
+
struct is_nothrow_move_assignable_imp{
|
58
|
+
BOOST_STATIC_CONSTANT(bool, value = (
|
59
|
+
::boost::type_traits::ice_and<
|
60
|
+
::boost::type_traits::ice_or<
|
61
|
+
::boost::has_trivial_move_assign<T>::value,
|
62
|
+
::boost::has_nothrow_assign<T>::value
|
63
|
+
>::value,
|
64
|
+
::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value
|
65
|
+
>::value));
|
66
|
+
};
|
67
|
+
|
68
|
+
#endif
|
69
|
+
|
70
|
+
}
|
71
|
+
|
72
|
+
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_assignable,T,::boost::detail::is_nothrow_move_assignable_imp<T>::value)
|
73
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void,false)
|
74
|
+
#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
|
75
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void const,false)
|
76
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void const volatile,false)
|
77
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void volatile,false)
|
78
|
+
#endif
|
79
|
+
|
80
|
+
} // namespace boost
|
81
|
+
|
82
|
+
#include <boost/type_traits/detail/bool_trait_undef.hpp>
|
83
|
+
|
84
|
+
#endif // BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
|
@@ -0,0 +1,84 @@
|
|
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_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
|
12
|
+
#define BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
|
13
|
+
|
14
|
+
#include <boost/config.hpp>
|
15
|
+
#include <boost/type_traits/has_trivial_move_constructor.hpp>
|
16
|
+
#include <boost/type_traits/has_nothrow_copy.hpp>
|
17
|
+
#include <boost/type_traits/is_array.hpp>
|
18
|
+
#include <boost/type_traits/is_reference.hpp>
|
19
|
+
#include <boost/type_traits/detail/ice_or.hpp>
|
20
|
+
#include <boost/type_traits/detail/ice_and.hpp>
|
21
|
+
#include <boost/utility/declval.hpp>
|
22
|
+
#include <boost/utility/enable_if.hpp>
|
23
|
+
|
24
|
+
// should be the last #include
|
25
|
+
#include <boost/type_traits/detail/bool_trait_def.hpp>
|
26
|
+
|
27
|
+
namespace boost {
|
28
|
+
|
29
|
+
namespace detail{
|
30
|
+
|
31
|
+
#ifndef BOOST_NO_CXX11_NOEXCEPT
|
32
|
+
|
33
|
+
template <class T, class Enable = void>
|
34
|
+
struct false_or_cpp11_noexcept_move_constructible: public ::boost::false_type {};
|
35
|
+
|
36
|
+
template <class T>
|
37
|
+
struct false_or_cpp11_noexcept_move_constructible <
|
38
|
+
T,
|
39
|
+
typename ::boost::enable_if_c<sizeof(T) && BOOST_NOEXCEPT_EXPR(T(::boost::declval<T>()))>::type
|
40
|
+
> : public ::boost::integral_constant<bool, BOOST_NOEXCEPT_EXPR(T(::boost::declval<T>()))>
|
41
|
+
{};
|
42
|
+
|
43
|
+
template <class T>
|
44
|
+
struct is_nothrow_move_constructible_imp{
|
45
|
+
BOOST_STATIC_CONSTANT(bool, value =
|
46
|
+
(::boost::type_traits::ice_and<
|
47
|
+
::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value,
|
48
|
+
::boost::type_traits::ice_not< ::boost::is_reference<T>::value >::value,
|
49
|
+
::boost::detail::false_or_cpp11_noexcept_move_constructible<T>::value
|
50
|
+
>::value));
|
51
|
+
};
|
52
|
+
|
53
|
+
#else
|
54
|
+
|
55
|
+
template <class T>
|
56
|
+
struct is_nothrow_move_constructible_imp{
|
57
|
+
BOOST_STATIC_CONSTANT(bool, value =(
|
58
|
+
::boost::type_traits::ice_and<
|
59
|
+
::boost::type_traits::ice_or<
|
60
|
+
::boost::has_trivial_move_constructor<T>::value,
|
61
|
+
::boost::has_nothrow_copy<T>::value
|
62
|
+
>::value,
|
63
|
+
::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value
|
64
|
+
>::value));
|
65
|
+
};
|
66
|
+
|
67
|
+
#endif
|
68
|
+
|
69
|
+
}
|
70
|
+
|
71
|
+
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_constructible,T,::boost::detail::is_nothrow_move_constructible_imp<T>::value)
|
72
|
+
|
73
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void,false)
|
74
|
+
#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
|
75
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void const,false)
|
76
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void const volatile,false)
|
77
|
+
BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void volatile,false)
|
78
|
+
#endif
|
79
|
+
|
80
|
+
} // namespace boost
|
81
|
+
|
82
|
+
#include <boost/type_traits/detail/bool_trait_undef.hpp>
|
83
|
+
|
84
|
+
#endif // BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
|
@@ -131,8 +131,10 @@ BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const volatile,true)
|
|
131
131
|
|
132
132
|
} // namespace detail
|
133
133
|
|
134
|
-
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::boost::detail::is_pod_impl<T>::value)
|
135
134
|
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::boost::detail::is_pod_impl<T>::value)
|
135
|
+
// is_POD is the old depricated name for this trait, do not use this as it may
|
136
|
+
// be removed in future without warning!!
|
137
|
+
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::boost::is_pod<T>::value)
|
136
138
|
|
137
139
|
} // namespace boost
|
138
140
|
|
@@ -17,7 +17,7 @@
|
|
17
17
|
namespace boost {
|
18
18
|
|
19
19
|
BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_rvalue_reference,T,false)
|
20
|
-
#ifndef
|
20
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
21
21
|
BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_rvalue_reference,T&&,true)
|
22
22
|
#endif
|
23
23
|
|
@@ -51,7 +51,7 @@ struct is_volatile_rval_filter
|
|
51
51
|
BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<T*>::is_volatile);
|
52
52
|
#endif
|
53
53
|
};
|
54
|
-
#ifndef
|
54
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
55
55
|
//
|
56
56
|
// We can't filter out rvalue_references at the same level as
|
57
57
|
// references or we get ambiguities from msvc:
|
@@ -0,0 +1,153 @@
|
|
1
|
+
|
2
|
+
// (C) Copyright John Maddock 2007.
|
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_MAKE_SIGNED_HPP_INCLUDED
|
10
|
+
#define BOOST_TT_MAKE_SIGNED_HPP_INCLUDED
|
11
|
+
|
12
|
+
#include <boost/mpl/if.hpp>
|
13
|
+
#include <boost/type_traits/is_integral.hpp>
|
14
|
+
#include <boost/type_traits/is_signed.hpp>
|
15
|
+
#include <boost/type_traits/is_unsigned.hpp>
|
16
|
+
#include <boost/type_traits/is_enum.hpp>
|
17
|
+
#include <boost/type_traits/is_same.hpp>
|
18
|
+
#include <boost/type_traits/remove_cv.hpp>
|
19
|
+
#include <boost/type_traits/is_const.hpp>
|
20
|
+
#include <boost/type_traits/is_volatile.hpp>
|
21
|
+
#include <boost/type_traits/add_const.hpp>
|
22
|
+
#include <boost/type_traits/add_volatile.hpp>
|
23
|
+
#include <boost/type_traits/detail/ice_or.hpp>
|
24
|
+
#include <boost/type_traits/detail/ice_and.hpp>
|
25
|
+
#include <boost/type_traits/detail/ice_not.hpp>
|
26
|
+
#include <boost/static_assert.hpp>
|
27
|
+
|
28
|
+
// should be the last #include
|
29
|
+
#include <boost/type_traits/detail/type_trait_def.hpp>
|
30
|
+
|
31
|
+
namespace boost {
|
32
|
+
|
33
|
+
namespace detail {
|
34
|
+
|
35
|
+
template <class T>
|
36
|
+
struct make_signed_imp
|
37
|
+
{
|
38
|
+
BOOST_STATIC_ASSERT(
|
39
|
+
(::boost::type_traits::ice_or< ::boost::is_integral<T>::value, ::boost::is_enum<T>::value>::value));
|
40
|
+
#if !BOOST_WORKAROUND(BOOST_MSVC, <=1300)
|
41
|
+
BOOST_STATIC_ASSERT(
|
42
|
+
(::boost::type_traits::ice_not< ::boost::is_same<
|
43
|
+
typename remove_cv<T>::type, bool>::value>::value));
|
44
|
+
#endif
|
45
|
+
|
46
|
+
typedef typename remove_cv<T>::type t_no_cv;
|
47
|
+
typedef typename mpl::if_c<
|
48
|
+
(::boost::type_traits::ice_and<
|
49
|
+
::boost::is_signed<T>::value,
|
50
|
+
::boost::is_integral<T>::value,
|
51
|
+
::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value,
|
52
|
+
::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value,
|
53
|
+
::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value >::value),
|
54
|
+
T,
|
55
|
+
typename mpl::if_c<
|
56
|
+
(::boost::type_traits::ice_and<
|
57
|
+
::boost::is_integral<T>::value,
|
58
|
+
::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value,
|
59
|
+
::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value,
|
60
|
+
::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value>
|
61
|
+
::value),
|
62
|
+
typename mpl::if_<
|
63
|
+
is_same<t_no_cv, unsigned char>,
|
64
|
+
signed char,
|
65
|
+
typename mpl::if_<
|
66
|
+
is_same<t_no_cv, unsigned short>,
|
67
|
+
signed short,
|
68
|
+
typename mpl::if_<
|
69
|
+
is_same<t_no_cv, unsigned int>,
|
70
|
+
int,
|
71
|
+
typename mpl::if_<
|
72
|
+
is_same<t_no_cv, unsigned long>,
|
73
|
+
long,
|
74
|
+
#if defined(BOOST_HAS_LONG_LONG)
|
75
|
+
#ifdef BOOST_HAS_INT128
|
76
|
+
typename mpl::if_c<
|
77
|
+
sizeof(t_no_cv) == sizeof(boost::long_long_type),
|
78
|
+
boost::long_long_type,
|
79
|
+
boost::int128_type
|
80
|
+
>::type
|
81
|
+
#else
|
82
|
+
boost::long_long_type
|
83
|
+
#endif
|
84
|
+
#elif defined(BOOST_HAS_MS_INT64)
|
85
|
+
__int64
|
86
|
+
#else
|
87
|
+
long
|
88
|
+
#endif
|
89
|
+
>::type
|
90
|
+
>::type
|
91
|
+
>::type
|
92
|
+
>::type,
|
93
|
+
// Not a regular integer type:
|
94
|
+
typename mpl::if_c<
|
95
|
+
sizeof(t_no_cv) == sizeof(unsigned char),
|
96
|
+
signed char,
|
97
|
+
typename mpl::if_c<
|
98
|
+
sizeof(t_no_cv) == sizeof(unsigned short),
|
99
|
+
signed short,
|
100
|
+
typename mpl::if_c<
|
101
|
+
sizeof(t_no_cv) == sizeof(unsigned int),
|
102
|
+
int,
|
103
|
+
typename mpl::if_c<
|
104
|
+
sizeof(t_no_cv) == sizeof(unsigned long),
|
105
|
+
long,
|
106
|
+
#if defined(BOOST_HAS_LONG_LONG)
|
107
|
+
#ifdef BOOST_HAS_INT128
|
108
|
+
typename mpl::if_c<
|
109
|
+
sizeof(t_no_cv) == sizeof(boost::long_long_type),
|
110
|
+
boost::long_long_type,
|
111
|
+
boost::int128_type
|
112
|
+
>::type
|
113
|
+
#else
|
114
|
+
boost::long_long_type
|
115
|
+
#endif
|
116
|
+
#elif defined(BOOST_HAS_MS_INT64)
|
117
|
+
__int64
|
118
|
+
#else
|
119
|
+
long
|
120
|
+
#endif
|
121
|
+
>::type
|
122
|
+
>::type
|
123
|
+
>::type
|
124
|
+
>::type
|
125
|
+
>::type
|
126
|
+
>::type base_integer_type;
|
127
|
+
|
128
|
+
// Add back any const qualifier:
|
129
|
+
typedef typename mpl::if_<
|
130
|
+
is_const<T>,
|
131
|
+
typename add_const<base_integer_type>::type,
|
132
|
+
base_integer_type
|
133
|
+
>::type const_base_integer_type;
|
134
|
+
|
135
|
+
// Add back any volatile qualifier:
|
136
|
+
typedef typename mpl::if_<
|
137
|
+
is_volatile<T>,
|
138
|
+
typename add_volatile<const_base_integer_type>::type,
|
139
|
+
const_base_integer_type
|
140
|
+
>::type type;
|
141
|
+
};
|
142
|
+
|
143
|
+
|
144
|
+
} // namespace detail
|
145
|
+
|
146
|
+
BOOST_TT_AUX_TYPE_TRAIT_DEF1(make_signed,T,typename boost::detail::make_signed_imp<T>::type)
|
147
|
+
|
148
|
+
} // namespace boost
|
149
|
+
|
150
|
+
#include <boost/type_traits/detail/type_trait_undef.hpp>
|
151
|
+
|
152
|
+
#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
|
153
|
+
|
@@ -72,7 +72,15 @@ struct make_unsigned_imp
|
|
72
72
|
is_same<t_no_cv, long>,
|
73
73
|
unsigned long,
|
74
74
|
#if defined(BOOST_HAS_LONG_LONG)
|
75
|
+
#ifdef BOOST_HAS_INT128
|
76
|
+
typename mpl::if_c<
|
77
|
+
sizeof(t_no_cv) == sizeof(boost::ulong_long_type),
|
78
|
+
boost::ulong_long_type,
|
79
|
+
boost::uint128_type
|
80
|
+
>::type
|
81
|
+
#else
|
75
82
|
boost::ulong_long_type
|
83
|
+
#endif
|
76
84
|
#elif defined(BOOST_HAS_MS_INT64)
|
77
85
|
unsigned __int64
|
78
86
|
#else
|
@@ -96,7 +104,15 @@ struct make_unsigned_imp
|
|
96
104
|
sizeof(t_no_cv) == sizeof(unsigned long),
|
97
105
|
unsigned long,
|
98
106
|
#if defined(BOOST_HAS_LONG_LONG)
|
107
|
+
#ifdef BOOST_HAS_INT128
|
108
|
+
typename mpl::if_c<
|
109
|
+
sizeof(t_no_cv) == sizeof(boost::ulong_long_type),
|
110
|
+
boost::ulong_long_type,
|
111
|
+
boost::uint128_type
|
112
|
+
>::type
|
113
|
+
#else
|
99
114
|
boost::ulong_long_type
|
115
|
+
#endif
|
100
116
|
#elif defined(BOOST_HAS_MS_INT64)
|
101
117
|
unsigned __int64
|
102
118
|
#else
|
@@ -37,7 +37,7 @@ struct rvalue_ref_filter_rem_cv
|
|
37
37
|
typedef typename boost::detail::cv_traits_imp<T*>::unqualified_type type;
|
38
38
|
};
|
39
39
|
|
40
|
-
#ifndef
|
40
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
41
41
|
//
|
42
42
|
// We can't filter out rvalue_references at the same level as
|
43
43
|
// references or we get ambiguities from msvc:
|