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,142 @@
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////
|
2
|
+
//
|
3
|
+
// (C) Copyright Ion Gaztanaga 2009-2012.
|
4
|
+
// Distributed under the Boost Software License, Version 1.0.
|
5
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
6
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
7
|
+
//
|
8
|
+
// See http://www.boost.org/libs/move for documentation.
|
9
|
+
//
|
10
|
+
//////////////////////////////////////////////////////////////////////////////
|
11
|
+
|
12
|
+
//! \file
|
13
|
+
|
14
|
+
#ifndef BOOST_MOVE_MOVE_TRAITS_HPP
|
15
|
+
#define BOOST_MOVE_MOVE_TRAITS_HPP
|
16
|
+
|
17
|
+
#include <boost/move/detail/config_begin.hpp>
|
18
|
+
#include <boost/type_traits/has_trivial_destructor.hpp>
|
19
|
+
#include <boost/move/detail/meta_utils.hpp>
|
20
|
+
|
21
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
22
|
+
#include <boost/move/core.hpp>
|
23
|
+
#endif
|
24
|
+
|
25
|
+
namespace boost {
|
26
|
+
|
27
|
+
//! If this trait yields to true
|
28
|
+
//! (<i>has_trivial_destructor_after_move <T>::value == true</i>)
|
29
|
+
//! means that if T is used as argument of a move construction/assignment,
|
30
|
+
//! there is no need to call T's destructor.
|
31
|
+
//! This optimization tipically is used to improve containers' performance.
|
32
|
+
//!
|
33
|
+
//! By default this trait is true if the type has trivial destructor,
|
34
|
+
//! every class should specialize this trait if it wants to improve performance
|
35
|
+
//! when inserted in containers.
|
36
|
+
template <class T>
|
37
|
+
struct has_trivial_destructor_after_move
|
38
|
+
: ::boost::has_trivial_destructor<T>
|
39
|
+
{};
|
40
|
+
|
41
|
+
//! By default this traits returns false. Classes with non-throwing move constructor
|
42
|
+
//! and assignment can specialize this trait to obtain some performance improvements.
|
43
|
+
template <class T>
|
44
|
+
struct has_nothrow_move
|
45
|
+
: public ::boost::move_detail::integral_constant<bool, false>
|
46
|
+
{};
|
47
|
+
|
48
|
+
namespace move_detail {
|
49
|
+
|
50
|
+
// Code from Jeffrey Lee Hellrung, many thanks
|
51
|
+
|
52
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
53
|
+
template< class T> struct forward_type { typedef T type; };
|
54
|
+
#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
55
|
+
template< class T>
|
56
|
+
struct forward_type
|
57
|
+
{ typedef const T &type; };
|
58
|
+
|
59
|
+
template< class T>
|
60
|
+
struct forward_type< boost::rv<T> >
|
61
|
+
{ typedef T type; };
|
62
|
+
#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
63
|
+
|
64
|
+
template< class T > struct is_rvalue_reference : ::boost::move_detail::integral_constant<bool, false> { };
|
65
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
66
|
+
template< class T > struct is_rvalue_reference< T&& > : ::boost::move_detail::integral_constant<bool, true> { };
|
67
|
+
#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
68
|
+
template< class T > struct is_rvalue_reference< boost::rv<T>& >
|
69
|
+
: ::boost::move_detail::integral_constant<bool, true>
|
70
|
+
{};
|
71
|
+
|
72
|
+
template< class T > struct is_rvalue_reference< const boost::rv<T>& >
|
73
|
+
: ::boost::move_detail::integral_constant<bool, true>
|
74
|
+
{};
|
75
|
+
#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
76
|
+
|
77
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
78
|
+
template< class T > struct add_rvalue_reference { typedef T&& type; };
|
79
|
+
#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
80
|
+
namespace detail_add_rvalue_reference
|
81
|
+
{
|
82
|
+
template< class T
|
83
|
+
, bool emulation = ::boost::has_move_emulation_enabled<T>::value
|
84
|
+
, bool rv = ::boost::move_detail::is_rv<T>::value >
|
85
|
+
struct add_rvalue_reference_impl { typedef T type; };
|
86
|
+
|
87
|
+
template< class T, bool emulation>
|
88
|
+
struct add_rvalue_reference_impl< T, emulation, true > { typedef T & type; };
|
89
|
+
|
90
|
+
template< class T, bool rv >
|
91
|
+
struct add_rvalue_reference_impl< T, true, rv > { typedef ::boost::rv<T>& type; };
|
92
|
+
} // namespace detail_add_rvalue_reference
|
93
|
+
|
94
|
+
template< class T >
|
95
|
+
struct add_rvalue_reference
|
96
|
+
: detail_add_rvalue_reference::add_rvalue_reference_impl<T>
|
97
|
+
{ };
|
98
|
+
|
99
|
+
template< class T >
|
100
|
+
struct add_rvalue_reference<T &>
|
101
|
+
{ typedef T & type; };
|
102
|
+
|
103
|
+
#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
104
|
+
|
105
|
+
template< class T > struct remove_rvalue_reference { typedef T type; };
|
106
|
+
|
107
|
+
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
108
|
+
template< class T > struct remove_rvalue_reference< T&& > { typedef T type; };
|
109
|
+
#else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
110
|
+
template< class T > struct remove_rvalue_reference< rv<T> > { typedef T type; };
|
111
|
+
template< class T > struct remove_rvalue_reference< const rv<T> > { typedef T type; };
|
112
|
+
template< class T > struct remove_rvalue_reference< volatile rv<T> > { typedef T type; };
|
113
|
+
template< class T > struct remove_rvalue_reference< const volatile rv<T> > { typedef T type; };
|
114
|
+
template< class T > struct remove_rvalue_reference< rv<T>& > { typedef T type; };
|
115
|
+
template< class T > struct remove_rvalue_reference< const rv<T>& > { typedef T type; };
|
116
|
+
template< class T > struct remove_rvalue_reference< volatile rv<T>& > { typedef T type; };
|
117
|
+
template< class T > struct remove_rvalue_reference< const volatile rv<T>& >{ typedef T type; };
|
118
|
+
#endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
119
|
+
|
120
|
+
template <typename T>
|
121
|
+
typename boost::move_detail::add_rvalue_reference<T>::type declval();
|
122
|
+
|
123
|
+
} //move_detail {
|
124
|
+
|
125
|
+
// Ideas from Boost.Move review, Jeffrey Lee Hellrung:
|
126
|
+
//
|
127
|
+
//- TypeTraits metafunctions is_lvalue_reference, add_lvalue_reference, and remove_lvalue_reference ?
|
128
|
+
// Perhaps add_reference and remove_reference can be modified so that they behave wrt emulated rvalue
|
129
|
+
// references the same as wrt real rvalue references, i.e., add_reference< rv<T>& > -> T& rather than
|
130
|
+
// rv<T>& (since T&& & -> T&).
|
131
|
+
//
|
132
|
+
//- Add'l TypeTraits has_[trivial_]move_{constructor,assign}...?
|
133
|
+
//
|
134
|
+
//- An as_lvalue(T& x) function, which amounts to an identity operation in C++0x, but strips emulated
|
135
|
+
// rvalue references in C++03. This may be necessary to prevent "accidental moves".
|
136
|
+
|
137
|
+
|
138
|
+
} //namespace boost {
|
139
|
+
|
140
|
+
#include <boost/move/detail/config_end.hpp>
|
141
|
+
|
142
|
+
#endif //#ifndef BOOST_MOVE_MOVE_TRAITS_HPP
|
@@ -0,0 +1,194 @@
|
|
1
|
+
//////////////////////////////////////////////////////////////////////////////
|
2
|
+
//
|
3
|
+
// (C) Copyright Ion Gaztanaga 2012-2012.
|
4
|
+
// Distributed under the Boost Software License, Version 1.0.
|
5
|
+
// (See accompanying file LICENSE_1_0.txt or copy at
|
6
|
+
// http://www.boost.org/LICENSE_1_0.txt)
|
7
|
+
//
|
8
|
+
// See http://www.boost.org/libs/move for documentation.
|
9
|
+
//
|
10
|
+
//////////////////////////////////////////////////////////////////////////////
|
11
|
+
|
12
|
+
//! \file
|
13
|
+
|
14
|
+
#ifndef BOOST_MOVE_MOVE_UTILITY_HPP
|
15
|
+
#define BOOST_MOVE_MOVE_UTILITY_HPP
|
16
|
+
|
17
|
+
#include <boost/move/detail/config_begin.hpp>
|
18
|
+
#include <boost/move/core.hpp>
|
19
|
+
#include <boost/move/detail/meta_utils.hpp>
|
20
|
+
|
21
|
+
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED)
|
22
|
+
|
23
|
+
namespace boost {
|
24
|
+
|
25
|
+
template<class T>
|
26
|
+
struct enable_move_utility_emulation
|
27
|
+
{
|
28
|
+
static const bool value = true;
|
29
|
+
};
|
30
|
+
|
31
|
+
//////////////////////////////////////////////////////////////////////////////
|
32
|
+
//
|
33
|
+
// move()
|
34
|
+
//
|
35
|
+
//////////////////////////////////////////////////////////////////////////////
|
36
|
+
|
37
|
+
template <class T>
|
38
|
+
inline typename ::boost::move_detail::enable_if_c
|
39
|
+
< enable_move_utility_emulation<T>::value && !has_move_emulation_enabled<T>::value, T&>::type
|
40
|
+
move(T& x)
|
41
|
+
{
|
42
|
+
return x;
|
43
|
+
}
|
44
|
+
|
45
|
+
template <class T>
|
46
|
+
inline typename ::boost::move_detail::enable_if_c
|
47
|
+
< enable_move_utility_emulation<T>::value && has_move_emulation_enabled<T>::value, rv<T>&>::type
|
48
|
+
move(T& x)
|
49
|
+
{
|
50
|
+
return *static_cast<rv<T>* >(::boost::move_detail::addressof(x));
|
51
|
+
}
|
52
|
+
|
53
|
+
template <class T>
|
54
|
+
inline typename ::boost::move_detail::enable_if_c
|
55
|
+
< enable_move_utility_emulation<T>::value && has_move_emulation_enabled<T>::value, rv<T>&>::type
|
56
|
+
move(rv<T>& x)
|
57
|
+
{
|
58
|
+
return x;
|
59
|
+
}
|
60
|
+
|
61
|
+
//////////////////////////////////////////////////////////////////////////////
|
62
|
+
//
|
63
|
+
// forward()
|
64
|
+
//
|
65
|
+
//////////////////////////////////////////////////////////////////////////////
|
66
|
+
|
67
|
+
template <class T>
|
68
|
+
inline typename ::boost::move_detail::enable_if_c
|
69
|
+
< enable_move_utility_emulation<T>::value && ::boost::move_detail::is_rv<T>::value, T &>::type
|
70
|
+
forward(const typename ::boost::move_detail::identity<T>::type &x)
|
71
|
+
{
|
72
|
+
return const_cast<T&>(x);
|
73
|
+
}
|
74
|
+
|
75
|
+
template <class T>
|
76
|
+
inline typename ::boost::move_detail::enable_if_c
|
77
|
+
< enable_move_utility_emulation<T>::value && !::boost::move_detail::is_rv<T>::value, const T &>::type
|
78
|
+
forward(const typename ::boost::move_detail::identity<T>::type &x)
|
79
|
+
{
|
80
|
+
return x;
|
81
|
+
}
|
82
|
+
|
83
|
+
} //namespace boost
|
84
|
+
|
85
|
+
#else //#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_MOVE_DOXYGEN_INVOKED)
|
86
|
+
|
87
|
+
#if defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
|
88
|
+
#include <utility>
|
89
|
+
|
90
|
+
namespace boost{
|
91
|
+
|
92
|
+
using ::std::move;
|
93
|
+
using ::std::forward;
|
94
|
+
|
95
|
+
} //namespace boost
|
96
|
+
|
97
|
+
#else //!BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
|
98
|
+
|
99
|
+
#include <boost/type_traits/remove_reference.hpp>
|
100
|
+
|
101
|
+
namespace boost {
|
102
|
+
|
103
|
+
//! This trait's internal boolean `value` is false in compilers with rvalue references
|
104
|
+
//! and true in compilers without rvalue references.
|
105
|
+
//!
|
106
|
+
//! A user can specialize this trait for a type T to false to SFINAE out `move` and `forward`
|
107
|
+
//! so that the user can define a different move emulation for that type in namespace boost
|
108
|
+
//! (e.g. another Boost library for its types) and avoid any overload ambiguity.
|
109
|
+
template<class T>
|
110
|
+
struct enable_move_utility_emulation
|
111
|
+
{
|
112
|
+
static const bool value = false;
|
113
|
+
};
|
114
|
+
|
115
|
+
//////////////////////////////////////////////////////////////////////////////
|
116
|
+
//
|
117
|
+
// move
|
118
|
+
//
|
119
|
+
//////////////////////////////////////////////////////////////////////////////
|
120
|
+
|
121
|
+
#if defined(BOOST_MOVE_DOXYGEN_INVOKED)
|
122
|
+
//! This function provides a way to convert a reference into a rvalue reference
|
123
|
+
//! in compilers with rvalue references. For other compilers converts T & into
|
124
|
+
//! <i>::boost::rv<T> &</i> so that move emulation is activated.
|
125
|
+
template <class T>
|
126
|
+
rvalue_reference move (input_reference);
|
127
|
+
|
128
|
+
#elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
|
129
|
+
|
130
|
+
//Old move approach, lvalues could bind to rvalue references
|
131
|
+
template <class T>
|
132
|
+
inline typename remove_reference<T>::type && move(T&& t)
|
133
|
+
{ return t; }
|
134
|
+
|
135
|
+
#else //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
|
136
|
+
|
137
|
+
template <class T>
|
138
|
+
inline typename remove_reference<T>::type && move(T&& t)
|
139
|
+
{ return static_cast<typename remove_reference<T>::type &&>(t); }
|
140
|
+
|
141
|
+
#endif //BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
|
142
|
+
|
143
|
+
//////////////////////////////////////////////////////////////////////////////
|
144
|
+
//
|
145
|
+
// forward
|
146
|
+
//
|
147
|
+
//////////////////////////////////////////////////////////////////////////////
|
148
|
+
|
149
|
+
|
150
|
+
#if defined(BOOST_MOVE_DOXYGEN_INVOKED)
|
151
|
+
//! This function provides limited form of forwarding that is usually enough for
|
152
|
+
//! in-place construction and avoids the exponential overloading for
|
153
|
+
//! achieve the limited forwarding in C++03.
|
154
|
+
//!
|
155
|
+
//! For compilers with rvalue references this function provides perfect forwarding.
|
156
|
+
//!
|
157
|
+
//! Otherwise:
|
158
|
+
//! * If input_reference binds to const ::boost::rv<T> & then it output_reference is
|
159
|
+
//! ::boost::rv<T> &
|
160
|
+
//!
|
161
|
+
//! * Else, output_reference is equal to input_reference.
|
162
|
+
template <class T> output_reference forward(input_reference);
|
163
|
+
#elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
|
164
|
+
|
165
|
+
//Old move approach, lvalues could bind to rvalue references
|
166
|
+
|
167
|
+
template <class T>
|
168
|
+
inline T&& forward (typename ::boost::move_detail::identity<T>::type&& t)
|
169
|
+
{ return t; }
|
170
|
+
|
171
|
+
#else //Old move
|
172
|
+
|
173
|
+
//Implementation #5 from N2951, thanks to Howard Hinnant
|
174
|
+
|
175
|
+
template <class T, class U>
|
176
|
+
inline T&& forward(U&& t
|
177
|
+
, typename ::boost::move_detail::enable_if_c<
|
178
|
+
move_detail::is_lvalue_reference<T>::value ? move_detail::is_lvalue_reference<U>::value : true>::type * = 0/*
|
179
|
+
, typename ::boost::move_detail::enable_if_c<
|
180
|
+
move_detail::is_convertible
|
181
|
+
<typename remove_reference<U>::type*, typename remove_reference<T>::type*>::value>::type * = 0*/)
|
182
|
+
{ return static_cast<T&&>(t); }
|
183
|
+
|
184
|
+
#endif //BOOST_MOVE_DOXYGEN_INVOKED
|
185
|
+
|
186
|
+
} //namespace boost {
|
187
|
+
|
188
|
+
#endif //#if defined(BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
|
189
|
+
|
190
|
+
#endif //BOOST_NO_CXX11_RVALUE_REFERENCES
|
191
|
+
|
192
|
+
#include <boost/move/detail/config_end.hpp>
|
193
|
+
|
194
|
+
#endif //#ifndef BOOST_MOVE_MOVE_UTILITY_HPP
|
data/ext/boost/mpl/assert.hpp
CHANGED
@@ -10,9 +10,9 @@
|
|
10
10
|
//
|
11
11
|
// See http://www.boost.org/libs/mpl for documentation.
|
12
12
|
|
13
|
-
// $Id: assert.hpp
|
14
|
-
// $Date:
|
15
|
-
// $Revision:
|
13
|
+
// $Id: assert.hpp 84442 2013-05-23 14:38:22Z steven_watanabe $
|
14
|
+
// $Date: 2013-05-23 07:38:22 -0700 (Thu, 23 May 2013) $
|
15
|
+
// $Revision: 84442 $
|
16
16
|
|
17
17
|
#include <boost/mpl/not.hpp>
|
18
18
|
#include <boost/mpl/aux_/value_wknd.hpp>
|
@@ -34,6 +34,9 @@
|
|
34
34
|
#include <boost/config.hpp> // make sure 'size_t' is placed into 'std'
|
35
35
|
#include <cstddef>
|
36
36
|
|
37
|
+
#if BOOST_WORKAROUND(BOOST_MSVC, == 1700)
|
38
|
+
#include <boost/mpl/if.hpp>
|
39
|
+
#endif
|
37
40
|
|
38
41
|
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
|
39
42
|
|| (BOOST_MPL_CFG_GCC != 0) \
|
@@ -131,8 +134,38 @@ template< assert_::relations r, long x, long y > struct assert_relation {};
|
|
131
134
|
|
132
135
|
#endif
|
133
136
|
|
137
|
+
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1700)
|
138
|
+
|
139
|
+
template<class Pred>
|
140
|
+
struct extract_assert_pred;
|
141
|
+
|
142
|
+
template<class Pred>
|
143
|
+
struct extract_assert_pred<void(Pred)> { typedef Pred type; };
|
144
|
+
|
145
|
+
template<class Pred>
|
146
|
+
struct eval_assert {
|
147
|
+
typedef typename extract_assert_pred<Pred>::type P;
|
148
|
+
typedef typename P::type p_type;
|
149
|
+
typedef typename ::boost::mpl::if_c<p_type::value,
|
150
|
+
AUX778076_ASSERT_ARG(assert<false>),
|
151
|
+
failed ************ P::************
|
152
|
+
>::type type;
|
153
|
+
};
|
154
|
+
|
155
|
+
template<class Pred>
|
156
|
+
struct eval_assert_not {
|
157
|
+
typedef typename extract_assert_pred<Pred>::type P;
|
158
|
+
typedef typename P::type p_type;
|
159
|
+
typedef typename ::boost::mpl::if_c<!p_type::value,
|
160
|
+
AUX778076_ASSERT_ARG(assert<false>),
|
161
|
+
failed ************ ::boost::mpl::not_<P>::************
|
162
|
+
>::type type;
|
163
|
+
};
|
164
|
+
|
165
|
+
template< typename T >
|
166
|
+
T make_assert_arg();
|
134
167
|
|
135
|
-
#
|
168
|
+
#elif !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
|
136
169
|
|
137
170
|
template< bool > struct assert_arg_pred_impl { typedef int type; };
|
138
171
|
template<> struct assert_arg_pred_impl<true> { typedef void* type; };
|
@@ -211,6 +244,39 @@ assert_rel_arg( assert_relation<r,x,y> );
|
|
211
244
|
|
212
245
|
BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
|
213
246
|
|
247
|
+
#if BOOST_WORKAROUND(BOOST_MSVC, == 1700)
|
248
|
+
|
249
|
+
// BOOST_MPL_ASSERT((pred<x,...>))
|
250
|
+
|
251
|
+
#define BOOST_MPL_ASSERT(pred) \
|
252
|
+
BOOST_MPL_AUX_ASSERT_CONSTANT( \
|
253
|
+
std::size_t \
|
254
|
+
, BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
|
255
|
+
boost::mpl::assertion_failed<false>( \
|
256
|
+
boost::mpl::make_assert_arg< \
|
257
|
+
typename boost::mpl::eval_assert<void pred>::type \
|
258
|
+
>() \
|
259
|
+
) \
|
260
|
+
) \
|
261
|
+
) \
|
262
|
+
/**/
|
263
|
+
|
264
|
+
// BOOST_MPL_ASSERT_NOT((pred<x,...>))
|
265
|
+
|
266
|
+
#define BOOST_MPL_ASSERT_NOT(pred) \
|
267
|
+
BOOST_MPL_AUX_ASSERT_CONSTANT( \
|
268
|
+
std::size_t \
|
269
|
+
, BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
|
270
|
+
boost::mpl::assertion_failed<false>( \
|
271
|
+
boost::mpl::make_assert_arg< \
|
272
|
+
typename boost::mpl::eval_assert_not<void pred>::type \
|
273
|
+
>() \
|
274
|
+
) \
|
275
|
+
) \
|
276
|
+
) \
|
277
|
+
/**/
|
278
|
+
|
279
|
+
#else
|
214
280
|
|
215
281
|
// BOOST_MPL_ASSERT((pred<x,...>))
|
216
282
|
|
@@ -250,6 +316,8 @@ BOOST_MPL_AUX_ASSERT_CONSTANT( \
|
|
250
316
|
/**/
|
251
317
|
#endif
|
252
318
|
|
319
|
+
#endif
|
320
|
+
|
253
321
|
// BOOST_MPL_ASSERT_RELATION(x, ==|!=|<=|<|>=|>, y)
|
254
322
|
|
255
323
|
#if defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
|
data/ext/boost/noncopyable.hpp
CHANGED
@@ -9,6 +9,8 @@
|
|
9
9
|
#ifndef BOOST_NONCOPYABLE_HPP_INCLUDED
|
10
10
|
#define BOOST_NONCOPYABLE_HPP_INCLUDED
|
11
11
|
|
12
|
+
#include <boost/config.hpp>
|
13
|
+
|
12
14
|
namespace boost {
|
13
15
|
|
14
16
|
// Private copy constructor and copy assignment ensure classes derived from
|
@@ -21,11 +23,21 @@ namespace noncopyable_ // protection from unintended ADL
|
|
21
23
|
class noncopyable
|
22
24
|
{
|
23
25
|
protected:
|
24
|
-
|
26
|
+
#ifndef BOOST_NO_DEFAULTED_FUNCTIONS
|
27
|
+
BOOST_CONSTEXPR noncopyable() = default;
|
28
|
+
~noncopyable() = default;
|
29
|
+
#else
|
30
|
+
noncopyable() {}
|
25
31
|
~noncopyable() {}
|
26
|
-
|
32
|
+
#endif
|
33
|
+
#ifndef BOOST_NO_DELETED_FUNCTIONS
|
34
|
+
noncopyable( const noncopyable& ) = delete;
|
35
|
+
noncopyable& operator=( const noncopyable& ) = delete;
|
36
|
+
#else
|
37
|
+
private: // emphasize the following members are private
|
27
38
|
noncopyable( const noncopyable& );
|
28
|
-
|
39
|
+
noncopyable& operator=( const noncopyable& );
|
40
|
+
#endif
|
29
41
|
};
|
30
42
|
}
|
31
43
|
|