passenger 1.0.5 → 2.0.1
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.
- data/DEVELOPERS.TXT +33 -2
- data/INSTALL +4 -2
- data/LICENSE +11 -10
- data/README +23 -4
- data/Rakefile +179 -54
- data/benchmark/ApplicationPool.cpp +52 -0
- data/bin/passenger-config +18 -0
- data/bin/passenger-install-apache2-module +79 -14
- data/bin/passenger-make-enterprisey +14 -2
- data/bin/passenger-memory-stats +25 -2
- data/bin/passenger-spawn-server +20 -5
- data/bin/passenger-status +96 -0
- data/bin/passenger-stress-test +339 -0
- data/debian/compat +1 -0
- data/debian/control +21 -0
- data/debian/postinst +24 -0
- data/debian/prerm +2 -0
- data/doc/ApplicationPool algorithm.txt +66 -32
- data/doc/Architectural overview.html +1 -1
- data/doc/Security of user switching support.html +1 -1
- data/doc/Users guide.html +867 -243
- data/doc/Users guide.txt +830 -191
- data/doc/cxxapi/ApplicationPoolServer_8h-source.html +655 -524
- data/doc/cxxapi/ApplicationPool_8h-source.html +196 -173
- data/doc/cxxapi/Application_8h-source.html +430 -384
- data/doc/cxxapi/Configuration_8h-source.html +167 -132
- data/doc/cxxapi/DummySpawnManager_8h-source.html +110 -105
- data/doc/cxxapi/Exceptions_8h-source.html +229 -173
- data/doc/cxxapi/Hooks_8h-source.html +49 -44
- data/doc/cxxapi/Logging_8h-source.html +121 -88
- data/doc/cxxapi/MessageChannel_8h-source.html +501 -482
- data/doc/cxxapi/SpawnManager_8h-source.html +559 -518
- data/doc/cxxapi/StandardApplicationPool_8h-source.html +696 -537
- data/doc/cxxapi/System_8h-source.html +251 -0
- data/doc/cxxapi/Utils_8h-source.html +270 -163
- data/doc/cxxapi/annotated.html +40 -24
- data/doc/cxxapi/classClient-members.html +22 -17
- data/doc/cxxapi/classClient.html +22 -17
- data/doc/cxxapi/classDirectoryMapper-members.html +38 -0
- data/doc/cxxapi/classDirectoryMapper.html +203 -0
- data/doc/cxxapi/classHooks-members.html +33 -0
- data/doc/cxxapi/classHooks.html +43 -0
- data/doc/cxxapi/classPassenger_1_1Application-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1Application.html +38 -33
- data/doc/cxxapi/classPassenger_1_1ApplicationPool-members.html +24 -18
- data/doc/cxxapi/classPassenger_1_1ApplicationPool.html +94 -35
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer-members.html +23 -18
- data/doc/cxxapi/classPassenger_1_1ApplicationPoolServer.html +53 -44
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1ApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session-members.html +28 -21
- data/doc/cxxapi/classPassenger_1_1Application_1_1Session.html +91 -56
- data/doc/cxxapi/classPassenger_1_1BusyException-members.html +33 -0
- data/doc/cxxapi/classPassenger_1_1BusyException.html +47 -0
- data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +25 -22
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1DummySpawnManager.html +27 -22
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +25 -20
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1FileNotFoundException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +38 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException.html +61 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1FileSystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1IOException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1IOException.html +26 -21
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1IOException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1MessageChannel.html +44 -21
- data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1SpawnException.html +26 -23
- data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +24 -19
- data/doc/cxxapi/classPassenger_1_1SpawnManager.html +64 -43
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool-members.html +26 -19
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool.html +89 -37
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.map +1 -1
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.md5 +1 -1
- data/doc/cxxapi/classPassenger_1_1StandardApplicationPool__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1SystemException-members.html +22 -17
- data/doc/cxxapi/classPassenger_1_1SystemException.html +32 -22
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.map +1 -0
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.md5 +1 -0
- data/doc/cxxapi/classPassenger_1_1SystemException__inherit__graph.png +0 -0
- data/doc/cxxapi/classPassenger_1_1TempFile-members.html +36 -0
- data/doc/cxxapi/classPassenger_1_1TempFile.html +128 -0
- data/doc/cxxapi/classPassenger_1_1Thread-members.html +35 -0
- data/doc/cxxapi/classPassenger_1_1Thread.html +100 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption-members.html +33 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1disable__syscall__interruption.html +46 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1enable__syscall__interruption-members.html +33 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1enable__syscall__interruption.html +44 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption-members.html +33 -0
- data/doc/cxxapi/classboost_1_1this__thread_1_1restore__syscall__interruption.html +44 -0
- data/doc/cxxapi/definitions_8h-source.html +14 -11
- data/doc/cxxapi/doxygen.css +152 -77
- data/doc/cxxapi/files.html +18 -12
- data/doc/cxxapi/functions.html +107 -55
- data/doc/cxxapi/functions_func.html +104 -55
- data/doc/cxxapi/functions_type.html +30 -24
- data/doc/cxxapi/functions_vars.html +48 -0
- data/doc/cxxapi/graph_legend.dot +19 -19
- data/doc/cxxapi/graph_legend.html +15 -10
- data/doc/cxxapi/graph_legend.png +0 -0
- data/doc/cxxapi/group__Configuration.html +18 -13
- data/doc/cxxapi/group__Configuration.png +0 -0
- data/doc/cxxapi/group__Core.html +23 -11
- data/doc/cxxapi/group__Core.png +0 -0
- data/doc/cxxapi/group__Exceptions.html +21 -10
- data/doc/cxxapi/group__Hooks.html +16 -11
- data/doc/cxxapi/group__Hooks.png +0 -0
- data/doc/cxxapi/group__Support.html +169 -21
- data/doc/cxxapi/hierarchy.html +38 -22
- data/doc/cxxapi/index.html +1 -1
- data/doc/cxxapi/inherit__graph__0.map +1 -1
- data/doc/cxxapi/inherit__graph__0.md5 +1 -1
- data/doc/cxxapi/inherit__graph__0.png +0 -0
- data/doc/cxxapi/inherit__graph__1.map +1 -1
- data/doc/cxxapi/inherit__graph__1.md5 +1 -1
- data/doc/cxxapi/inherit__graph__1.png +0 -0
- data/doc/cxxapi/inherit__graph__10.map +1 -1
- data/doc/cxxapi/inherit__graph__10.md5 +1 -1
- data/doc/cxxapi/inherit__graph__10.png +0 -0
- data/doc/cxxapi/inherit__graph__11.map +1 -0
- data/doc/cxxapi/inherit__graph__11.md5 +1 -0
- data/doc/cxxapi/inherit__graph__11.png +0 -0
- data/doc/cxxapi/inherit__graph__12.map +1 -0
- data/doc/cxxapi/inherit__graph__12.md5 +1 -0
- data/doc/cxxapi/inherit__graph__12.png +0 -0
- data/doc/cxxapi/inherit__graph__13.map +1 -0
- data/doc/cxxapi/inherit__graph__13.md5 +1 -0
- data/doc/cxxapi/inherit__graph__13.png +0 -0
- data/doc/cxxapi/inherit__graph__14.map +2 -0
- data/doc/cxxapi/inherit__graph__14.md5 +1 -0
- data/doc/cxxapi/inherit__graph__14.png +0 -0
- data/doc/cxxapi/inherit__graph__15.map +1 -0
- data/doc/cxxapi/inherit__graph__15.md5 +1 -0
- data/doc/cxxapi/inherit__graph__15.png +0 -0
- data/doc/cxxapi/inherit__graph__16.map +1 -0
- data/doc/cxxapi/inherit__graph__16.md5 +1 -0
- data/doc/cxxapi/inherit__graph__16.png +0 -0
- data/doc/cxxapi/inherit__graph__17.map +1 -0
- data/doc/cxxapi/inherit__graph__17.md5 +1 -0
- data/doc/cxxapi/inherit__graph__17.png +0 -0
- data/doc/cxxapi/inherit__graph__2.map +1 -1
- data/doc/cxxapi/inherit__graph__2.md5 +1 -1
- data/doc/cxxapi/inherit__graph__2.png +0 -0
- data/doc/cxxapi/inherit__graph__3.map +1 -1
- data/doc/cxxapi/inherit__graph__3.md5 +1 -1
- data/doc/cxxapi/inherit__graph__3.png +0 -0
- data/doc/cxxapi/inherit__graph__4.map +1 -2
- data/doc/cxxapi/inherit__graph__4.md5 +1 -1
- data/doc/cxxapi/inherit__graph__4.png +0 -0
- data/doc/cxxapi/inherit__graph__5.map +1 -1
- data/doc/cxxapi/inherit__graph__5.md5 +1 -1
- data/doc/cxxapi/inherit__graph__5.png +0 -0
- data/doc/cxxapi/inherit__graph__6.map +1 -1
- data/doc/cxxapi/inherit__graph__6.md5 +1 -1
- data/doc/cxxapi/inherit__graph__6.png +0 -0
- data/doc/cxxapi/inherit__graph__7.map +1 -5
- data/doc/cxxapi/inherit__graph__7.md5 +1 -1
- data/doc/cxxapi/inherit__graph__7.png +0 -0
- data/doc/cxxapi/inherit__graph__8.map +1 -1
- data/doc/cxxapi/inherit__graph__8.md5 +1 -1
- data/doc/cxxapi/inherit__graph__8.png +0 -0
- data/doc/cxxapi/inherit__graph__9.map +2 -1
- data/doc/cxxapi/inherit__graph__9.md5 +1 -1
- data/doc/cxxapi/inherit__graph__9.png +0 -0
- data/doc/cxxapi/inherits.html +80 -39
- data/doc/cxxapi/main.html +15 -10
- data/doc/cxxapi/modules.html +16 -11
- data/doc/cxxapi/namespacePassenger.html +208 -0
- data/doc/cxxapi/namespacePassenger_1_1InterruptableCalls.html +43 -0
- data/doc/cxxapi/namespacemembers.html +70 -0
- data/doc/cxxapi/namespacemembers_func.html +66 -0
- data/doc/cxxapi/namespacemembers_type.html +46 -0
- data/doc/cxxapi/namespaces.html +35 -0
- data/doc/cxxapi/structPassenger_1_1AnythingToString-members.html +22 -17
- data/doc/cxxapi/structPassenger_1_1AnythingToString.html +24 -19
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4-members.html +23 -18
- data/doc/cxxapi/structPassenger_1_1AnythingToString_3_01vector_3_01string_01_4_01_4.html +27 -22
- data/doc/cxxapi/tabs.css +1 -1
- data/doc/cxxapi/tree.html +41 -13
- data/doc/rdoc/classes/ConditionVariable.html +25 -23
- data/doc/rdoc/classes/Exception.html +11 -11
- data/doc/rdoc/classes/GC.html +4 -4
- data/doc/rdoc/classes/IO.html +8 -8
- data/doc/rdoc/classes/Passenger.html +27 -8
- data/doc/rdoc/classes/Passenger/AbstractRequestHandler.html +401 -0
- data/doc/rdoc/classes/Passenger/AbstractServer.html +248 -208
- data/doc/rdoc/classes/Passenger/AppInitError.html +37 -6
- data/doc/rdoc/classes/Passenger/Application.html +73 -74
- data/doc/rdoc/classes/Passenger/ConsoleTextTemplate.html +35 -35
- data/doc/rdoc/classes/Passenger/FrameworkInitError.html +17 -18
- data/doc/rdoc/classes/Passenger/HTMLTemplate.html +30 -30
- data/doc/rdoc/classes/Passenger/InitializationError.html +11 -11
- data/doc/rdoc/classes/Passenger/MessageChannel.html +138 -138
- data/doc/rdoc/classes/Passenger/SpawnManager.html +142 -145
- data/doc/rdoc/classes/Passenger/UnknownError.html +11 -11
- data/doc/rdoc/classes/Passenger/Utils.html +327 -99
- data/doc/rdoc/classes/Passenger/VersionNotFound.html +6 -6
- data/doc/rdoc/classes/PlatformInfo.html +10 -10
- data/doc/rdoc/created.rid +1 -1
- data/doc/rdoc/files/DEVELOPERS_TXT.html +55 -3
- data/doc/rdoc/files/README.html +35 -5
- data/doc/rdoc/files/ext/passenger/native_support_c.html +1 -1
- data/doc/rdoc/files/lib/passenger/abstract_request_handler_rb.html +125 -0
- data/doc/rdoc/files/lib/passenger/abstract_server_rb.html +7 -1
- data/doc/rdoc/files/lib/passenger/application_rb.html +6 -2
- data/doc/rdoc/files/lib/passenger/console_text_template_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/constants_rb.html +114 -0
- data/doc/rdoc/files/lib/passenger/dependencies_rb.html +7 -1
- data/doc/rdoc/files/lib/passenger/exceptions_rb.html +118 -0
- data/doc/rdoc/files/lib/passenger/html_template_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/message_channel_rb.html +5 -5
- data/doc/rdoc/files/lib/passenger/platform_info_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/simple_benchmarking_rb.html +5 -1
- data/doc/rdoc/files/lib/passenger/spawn_manager_rb.html +19 -4
- data/doc/rdoc/files/lib/passenger/utils_rb.html +10 -3
- data/doc/rdoc/fr_class_index.html +1 -6
- data/doc/rdoc/fr_file_index.html +3 -4
- data/doc/rdoc/fr_method_index.html +55 -60
- data/ext/apache2/Application.h +105 -62
- data/ext/apache2/ApplicationPool.h +29 -9
- data/ext/apache2/ApplicationPoolServer.h +654 -0
- data/ext/apache2/ApplicationPoolServerExecutable.cpp +474 -0
- data/ext/apache2/Configuration.cpp +278 -63
- data/ext/apache2/Configuration.h +45 -13
- data/ext/apache2/DummySpawnManager.h +2 -0
- data/ext/apache2/Exceptions.h +53 -0
- data/ext/apache2/Hooks.cpp +484 -156
- data/ext/apache2/Hooks.h +2 -0
- data/ext/apache2/Logging.cpp +13 -1
- data/ext/apache2/Logging.h +36 -6
- data/ext/apache2/MessageChannel.h +32 -16
- data/ext/apache2/SpawnManager.h +90 -52
- data/ext/apache2/StandardApplicationPool.h +251 -95
- data/ext/apache2/System.cpp +232 -0
- data/ext/apache2/System.h +228 -0
- data/ext/apache2/Utils.cpp +80 -20
- data/ext/apache2/Utils.h +107 -3
- data/ext/apache2/mod_passenger.c +2 -0
- data/ext/boost/VERSION.TXT +1 -1
- data/ext/boost/algorithm/string/case_conv.hpp +176 -0
- data/ext/boost/algorithm/string/compare.hpp +199 -0
- data/ext/boost/algorithm/string/concept.hpp +83 -0
- data/ext/boost/algorithm/string/config.hpp +28 -0
- data/ext/boost/algorithm/string/constants.hpp +36 -0
- data/ext/boost/algorithm/string/detail/case_conv.hpp +112 -0
- data/ext/boost/algorithm/string/detail/find_format.hpp +193 -0
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +263 -0
- data/ext/boost/algorithm/string/detail/find_format_store.hpp +71 -0
- data/ext/boost/algorithm/string/detail/finder.hpp +646 -0
- data/ext/boost/algorithm/string/detail/formatter.hpp +94 -0
- data/ext/boost/algorithm/string/detail/replace_storage.hpp +159 -0
- data/ext/boost/algorithm/string/detail/sequence.hpp +200 -0
- data/ext/boost/algorithm/string/detail/util.hpp +106 -0
- data/ext/boost/algorithm/string/erase.hpp +844 -0
- data/ext/boost/algorithm/string/find_format.hpp +269 -0
- data/ext/boost/algorithm/string/finder.hpp +270 -0
- data/ext/boost/algorithm/string/formatter.hpp +103 -0
- data/ext/boost/algorithm/string/replace.hpp +928 -0
- data/ext/boost/algorithm/string/sequence_traits.hpp +193 -0
- data/ext/boost/algorithm/string/yes_no_type.hpp +33 -0
- data/ext/boost/assert.hpp +50 -37
- data/ext/boost/bind.hpp +38 -0
- data/ext/boost/bind/arg.hpp +28 -2
- data/ext/boost/bind/bind_template.hpp +119 -0
- data/ext/boost/bind/placeholders.hpp +1 -1
- data/ext/boost/call_traits.hpp +24 -0
- data/ext/boost/checked_delete.hpp +69 -69
- data/ext/boost/concept/assert.hpp +46 -0
- data/ext/boost/concept/detail/concept_def.hpp +51 -0
- data/ext/boost/concept/detail/concept_undef.hpp +5 -0
- data/ext/boost/concept/detail/general.hpp +66 -0
- data/ext/boost/concept/detail/has_constraints.hpp +48 -0
- data/ext/boost/concept/usage.hpp +43 -0
- data/ext/boost/concept_check.hpp +988 -0
- data/ext/boost/config.hpp +70 -70
- data/ext/boost/config/abi/borland_prefix.hpp +27 -27
- data/ext/boost/config/abi/borland_suffix.hpp +12 -12
- data/ext/boost/config/abi/msvc_prefix.hpp +8 -8
- data/ext/boost/config/abi/msvc_suffix.hpp +8 -8
- data/ext/boost/config/abi_prefix.hpp +25 -20
- data/ext/boost/config/abi_suffix.hpp +26 -23
- data/ext/boost/config/auto_link.hpp +368 -363
- data/ext/boost/config/compiler/borland.hpp +209 -190
- data/ext/boost/config/compiler/comeau.hpp +59 -59
- data/ext/boost/config/compiler/common_edg.hpp +62 -62
- data/ext/boost/config/compiler/compaq_cxx.hpp +19 -19
- data/ext/boost/config/compiler/digitalmars.hpp +67 -49
- data/ext/boost/config/compiler/gcc.hpp +149 -105
- data/ext/boost/config/compiler/gcc_xml.hpp +30 -30
- data/ext/boost/config/compiler/greenhills.hpp +28 -28
- data/ext/boost/config/compiler/hp_acc.hpp +95 -72
- data/ext/boost/config/compiler/intel.hpp +162 -158
- data/ext/boost/config/compiler/kai.hpp +35 -35
- data/ext/boost/config/compiler/metrowerks.hpp +111 -104
- data/ext/boost/config/compiler/mpw.hpp +51 -51
- data/ext/boost/config/compiler/pgi.hpp +25 -0
- data/ext/boost/config/compiler/sgi_mipspro.hpp +28 -24
- data/ext/boost/config/compiler/sunpro_cc.hpp +98 -92
- data/ext/boost/config/compiler/vacpp.hpp +60 -57
- data/ext/boost/config/compiler/visualc.hpp +191 -178
- data/ext/boost/config/no_tr1/complex.hpp +28 -28
- data/ext/boost/config/no_tr1/functional.hpp +28 -28
- data/ext/boost/config/no_tr1/memory.hpp +28 -28
- data/ext/boost/config/no_tr1/utility.hpp +28 -28
- data/ext/boost/config/platform/aix.hpp +33 -33
- data/ext/boost/config/platform/amigaos.hpp +15 -15
- data/ext/boost/config/platform/beos.hpp +26 -26
- data/ext/boost/config/platform/bsd.hpp +73 -73
- data/ext/boost/config/platform/cygwin.hpp +51 -48
- data/ext/boost/config/platform/hpux.hpp +84 -85
- data/ext/boost/config/platform/irix.hpp +31 -31
- data/ext/boost/config/platform/linux.hpp +98 -98
- data/ext/boost/config/platform/macos.hpp +78 -78
- data/ext/boost/config/platform/qnxnto.hpp +31 -31
- data/ext/boost/config/platform/solaris.hpp +21 -21
- data/ext/boost/config/platform/win32.hpp +58 -58
- data/ext/boost/config/posix_features.hpp +95 -95
- data/ext/boost/config/requires_threads.hpp +92 -92
- data/ext/boost/config/select_compiler_config.hpp +115 -87
- data/ext/boost/config/select_platform_config.hpp +90 -90
- data/ext/boost/config/select_stdlib_config.hpp +68 -68
- data/ext/boost/config/stdlib/dinkumware.hpp +106 -106
- data/ext/boost/config/stdlib/libcomo.hpp +46 -46
- data/ext/boost/config/stdlib/libstdcpp3.hpp +73 -73
- data/ext/boost/config/stdlib/modena.hpp +30 -30
- data/ext/boost/config/stdlib/msl.hpp +59 -59
- data/ext/boost/config/stdlib/roguewave.hpp +153 -127
- data/ext/boost/config/stdlib/sgi.hpp +111 -111
- data/ext/boost/config/stdlib/stlport.hpp +201 -201
- data/ext/boost/config/stdlib/vacpp.hpp +18 -18
- data/ext/boost/config/suffix.hpp +566 -569
- data/ext/boost/config/user.hpp +124 -124
- data/ext/boost/cstdint.hpp +446 -446
- data/ext/boost/date_time/adjust_functors.hpp +178 -0
- data/ext/boost/date_time/c_time.hpp +91 -0
- data/ext/boost/date_time/compiler_config.hpp +149 -0
- data/ext/boost/date_time/constrained_value.hpp +98 -0
- data/ext/boost/date_time/date.hpp +197 -0
- data/ext/boost/date_time/date_clock_device.hpp +77 -0
- data/ext/boost/date_time/date_defs.hpp +26 -0
- data/ext/boost/date_time/date_duration.hpp +147 -0
- data/ext/boost/date_time/date_duration_types.hpp +269 -0
- data/ext/boost/date_time/date_facet.hpp +775 -0
- data/ext/boost/date_time/date_format_simple.hpp +159 -0
- data/ext/boost/date_time/date_formatting.hpp +127 -0
- data/ext/boost/date_time/date_formatting_limited.hpp +121 -0
- data/ext/boost/date_time/date_formatting_locales.hpp +233 -0
- data/ext/boost/date_time/date_generator_formatter.hpp +263 -0
- data/ext/boost/date_time/date_generator_parser.hpp +329 -0
- data/ext/boost/date_time/date_generators.hpp +509 -0
- data/ext/boost/date_time/date_iterator.hpp +101 -0
- data/ext/boost/date_time/date_names_put.hpp +320 -0
- data/ext/boost/date_time/date_parsing.hpp +299 -0
- data/ext/boost/date_time/dst_rules.hpp +391 -0
- data/ext/boost/date_time/filetime_functions.hpp +78 -0
- data/ext/boost/date_time/format_date_parser.hpp +731 -0
- data/ext/boost/date_time/gregorian/conversion.hpp +73 -0
- data/ext/boost/date_time/gregorian/formatters.hpp +162 -0
- data/ext/boost/date_time/gregorian/formatters_limited.hpp +81 -0
- data/ext/boost/date_time/gregorian/greg_calendar.hpp +47 -0
- data/ext/boost/date_time/gregorian/greg_date.hpp +135 -0
- data/ext/boost/date_time/gregorian/greg_day.hpp +57 -0
- data/ext/boost/date_time/gregorian/greg_day_of_year.hpp +38 -0
- data/ext/boost/date_time/gregorian/greg_duration.hpp +38 -0
- data/ext/boost/date_time/gregorian/greg_duration_types.hpp +34 -0
- data/ext/boost/date_time/gregorian/greg_month.hpp +105 -0
- data/ext/boost/date_time/gregorian/greg_weekday.hpp +66 -0
- data/ext/boost/date_time/gregorian/greg_year.hpp +53 -0
- data/ext/boost/date_time/gregorian/greg_ymd.hpp +33 -0
- data/ext/boost/date_time/gregorian/gregorian.hpp +38 -0
- data/ext/boost/date_time/gregorian/gregorian_io.hpp +777 -0
- data/ext/boost/date_time/gregorian/gregorian_types.hpp +109 -0
- data/ext/boost/date_time/gregorian/parsers.hpp +91 -0
- data/ext/boost/date_time/gregorian_calendar.hpp +70 -0
- data/ext/boost/date_time/gregorian_calendar.ipp +219 -0
- data/ext/boost/date_time/int_adapter.hpp +507 -0
- data/ext/boost/date_time/iso_format.hpp +303 -0
- data/ext/boost/date_time/locale_config.hpp +31 -0
- data/ext/boost/date_time/microsec_time_clock.hpp +205 -0
- data/ext/boost/date_time/parse_format_base.hpp +29 -0
- data/ext/boost/date_time/period.hpp +377 -0
- data/ext/boost/date_time/period_formatter.hpp +196 -0
- data/ext/boost/date_time/period_parser.hpp +196 -0
- data/ext/boost/date_time/posix_time/conversion.hpp +93 -0
- data/ext/boost/date_time/posix_time/date_duration_operators.hpp +114 -0
- data/ext/boost/date_time/posix_time/posix_time.hpp +39 -0
- data/ext/boost/date_time/posix_time/posix_time_config.hpp +178 -0
- data/ext/boost/date_time/posix_time/posix_time_duration.hpp +82 -0
- data/ext/boost/date_time/posix_time/posix_time_io.hpp +246 -0
- data/ext/boost/date_time/posix_time/posix_time_system.hpp +68 -0
- data/ext/boost/date_time/posix_time/posix_time_types.hpp +55 -0
- data/ext/boost/date_time/posix_time/ptime.hpp +65 -0
- data/ext/boost/date_time/posix_time/time_formatters.hpp +289 -0
- data/ext/boost/date_time/posix_time/time_parsers.hpp +44 -0
- data/ext/boost/date_time/posix_time/time_period.hpp +29 -0
- data/ext/boost/date_time/special_defs.hpp +25 -0
- data/ext/boost/date_time/special_values_formatter.hpp +96 -0
- data/ext/boost/date_time/special_values_parser.hpp +159 -0
- data/ext/boost/date_time/string_convert.hpp +33 -0
- data/ext/boost/date_time/string_parse_tree.hpp +278 -0
- data/ext/boost/date_time/strings_from_facet.hpp +123 -0
- data/ext/boost/date_time/time.hpp +190 -0
- data/ext/boost/date_time/time_clock.hpp +83 -0
- data/ext/boost/date_time/time_defs.hpp +33 -0
- data/ext/boost/date_time/time_duration.hpp +281 -0
- data/ext/boost/date_time/time_facet.hpp +1263 -0
- data/ext/boost/date_time/time_formatting_streams.hpp +119 -0
- data/ext/boost/date_time/time_iterator.hpp +52 -0
- data/ext/boost/date_time/time_parsing.hpp +321 -0
- data/ext/boost/date_time/time_resolution_traits.hpp +140 -0
- data/ext/boost/date_time/time_system_counted.hpp +254 -0
- data/ext/boost/date_time/time_system_split.hpp +213 -0
- data/ext/boost/date_time/wrapping_int.hpp +163 -0
- data/ext/boost/date_time/year_month_day.hpp +45 -0
- data/ext/boost/detail/atomic_count.hpp +124 -0
- data/ext/boost/detail/atomic_count_gcc.hpp +68 -0
- data/ext/boost/detail/atomic_count_gcc_x86.hpp +84 -0
- data/ext/boost/detail/atomic_count_pthreads.hpp +96 -0
- data/ext/boost/detail/atomic_count_solaris.hpp +59 -0
- data/ext/boost/detail/atomic_count_sync.hpp +57 -0
- data/ext/boost/detail/atomic_count_win32.hpp +63 -0
- data/ext/boost/detail/bad_weak_ptr.hpp +59 -59
- data/ext/boost/detail/call_traits.hpp +164 -0
- data/ext/boost/detail/endian.hpp +73 -0
- data/ext/boost/detail/indirect_traits.hpp +487 -0
- data/ext/boost/detail/iterator.hpp +494 -0
- data/ext/boost/detail/lcast_precision.hpp +184 -0
- data/ext/boost/detail/limits.hpp +449 -0
- data/ext/boost/detail/reference_content.hpp +141 -141
- data/ext/boost/detail/shared_count.hpp +375 -376
- data/ext/boost/detail/sp_counted_base.hpp +81 -69
- data/ext/boost/detail/sp_counted_base_acc_ia64.hpp +150 -0
- data/ext/boost/detail/sp_counted_base_cw_ppc.hpp +170 -170
- data/ext/boost/detail/sp_counted_base_cw_x86.hpp +158 -158
- data/ext/boost/detail/sp_counted_base_gcc_ia64.hpp +157 -157
- data/ext/boost/detail/sp_counted_base_gcc_ppc.hpp +181 -181
- data/ext/boost/detail/sp_counted_base_gcc_sparc.hpp +166 -0
- data/ext/boost/detail/sp_counted_base_gcc_x86.hpp +173 -173
- data/ext/boost/detail/sp_counted_base_nt.hpp +107 -107
- data/ext/boost/detail/sp_counted_base_pt.hpp +135 -135
- data/ext/boost/detail/sp_counted_base_solaris.hpp +113 -0
- data/ext/boost/detail/sp_counted_base_sync.hpp +151 -0
- data/ext/boost/detail/sp_counted_base_w32.hpp +130 -130
- data/ext/boost/detail/sp_counted_impl.hpp +231 -232
- data/ext/boost/detail/sp_typeinfo.hpp +83 -0
- data/ext/boost/detail/workaround.hpp +202 -74
- data/ext/boost/enable_shared_from_this.hpp +73 -0
- data/ext/boost/function.hpp +4 -2
- data/ext/boost/function/detail/prologue.hpp +1 -0
- data/ext/boost/function/function_base.hpp +41 -15
- data/ext/boost/function/function_template.hpp +238 -106
- data/ext/boost/implicit_cast.hpp +29 -0
- data/ext/boost/integer_traits.hpp +236 -0
- data/ext/boost/io/ios_state.hpp +431 -0
- data/ext/boost/io_fwd.hpp +67 -0
- data/ext/boost/is_placeholder.hpp +31 -0
- data/ext/boost/iterator.hpp +59 -0
- data/ext/boost/iterator/detail/config_def.hpp +135 -0
- data/ext/boost/iterator/detail/config_undef.hpp +25 -0
- data/ext/boost/iterator/detail/enable_if.hpp +86 -0
- data/ext/boost/iterator/detail/facade_iterator_category.hpp +200 -0
- data/ext/boost/iterator/detail/minimum_category.hpp +116 -0
- data/ext/boost/iterator/interoperable.hpp +50 -0
- data/ext/boost/iterator/iterator_adaptor.hpp +366 -0
- data/ext/boost/iterator/iterator_categories.hpp +188 -0
- data/ext/boost/iterator/iterator_facade.hpp +879 -0
- data/ext/boost/iterator/iterator_traits.hpp +92 -0
- data/ext/boost/iterator/reverse_iterator.hpp +69 -0
- data/ext/boost/iterator/transform_iterator.hpp +188 -0
- data/ext/boost/lexical_cast.hpp +1205 -0
- data/ext/boost/limits.hpp +146 -144
- data/ext/boost/mpl/always.hpp +39 -39
- data/ext/boost/mpl/and.hpp +60 -56
- data/ext/boost/mpl/apply.hpp +225 -225
- data/ext/boost/mpl/apply_fwd.hpp +107 -107
- data/ext/boost/mpl/apply_wrap.hpp +200 -200
- data/ext/boost/mpl/arg.hpp +131 -131
- data/ext/boost/mpl/arg_fwd.hpp +28 -28
- data/ext/boost/mpl/assert.hpp +370 -361
- data/ext/boost/mpl/aux_/adl_barrier.hpp +48 -48
- data/ext/boost/mpl/aux_/arg_typedef.hpp +31 -31
- data/ext/boost/mpl/aux_/arity.hpp +39 -39
- data/ext/boost/mpl/aux_/arity_spec.hpp +67 -67
- data/ext/boost/mpl/aux_/common_name_wknd.hpp +34 -34
- data/ext/boost/mpl/aux_/config/adl.hpp +40 -40
- data/ext/boost/mpl/aux_/config/arrays.hpp +30 -30
- data/ext/boost/mpl/aux_/config/bind.hpp +33 -33
- data/ext/boost/mpl/aux_/config/compiler.hpp +64 -64
- data/ext/boost/mpl/aux_/config/ctps.hpp +30 -30
- data/ext/boost/mpl/aux_/config/dtp.hpp +46 -46
- data/ext/boost/mpl/aux_/config/eti.hpp +47 -47
- data/ext/boost/mpl/aux_/config/gcc.hpp +23 -23
- data/ext/boost/mpl/aux_/config/has_apply.hpp +32 -32
- data/ext/boost/mpl/aux_/config/has_xxx.hpp +33 -33
- data/ext/boost/mpl/aux_/config/integral.hpp +38 -38
- data/ext/boost/mpl/aux_/config/intel.hpp +21 -21
- data/ext/boost/mpl/aux_/config/lambda.hpp +32 -32
- data/ext/boost/mpl/aux_/config/msvc.hpp +21 -21
- data/ext/boost/mpl/aux_/config/msvc_typename.hpp +26 -26
- data/ext/boost/mpl/aux_/config/nttp.hpp +41 -41
- data/ext/boost/mpl/aux_/config/overload_resolution.hpp +29 -29
- data/ext/boost/mpl/aux_/config/pp_counter.hpp +26 -0
- data/ext/boost/mpl/aux_/config/preprocessor.hpp +39 -39
- data/ext/boost/mpl/aux_/config/static_constant.hpp +25 -25
- data/ext/boost/mpl/aux_/config/ttp.hpp +41 -39
- data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +19 -19
- data/ext/boost/mpl/aux_/config/workaround.hpp +19 -19
- data/ext/boost/mpl/aux_/full_lambda.hpp +350 -350
- data/ext/boost/mpl/aux_/has_apply.hpp +32 -32
- data/ext/boost/mpl/aux_/has_type.hpp +23 -23
- data/ext/boost/mpl/aux_/include_preprocessed.hpp +42 -42
- data/ext/boost/mpl/aux_/integral_wrapper.hpp +93 -93
- data/ext/boost/mpl/aux_/lambda_arity_param.hpp +25 -25
- data/ext/boost/mpl/aux_/lambda_support.hpp +169 -169
- data/ext/boost/mpl/aux_/msvc_never_true.hpp +34 -34
- data/ext/boost/mpl/aux_/na.hpp +95 -95
- data/ext/boost/mpl/aux_/na_assert.hpp +34 -34
- data/ext/boost/mpl/aux_/na_fwd.hpp +31 -31
- data/ext/boost/mpl/aux_/na_spec.hpp +175 -175
- data/ext/boost/mpl/aux_/nested_type_wknd.hpp +48 -48
- data/ext/boost/mpl/aux_/nttp_decl.hpp +35 -35
- data/ext/boost/mpl/aux_/preprocessed/gcc/and.hpp +69 -69
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply.hpp +169 -169
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp +52 -52
- data/ext/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp +84 -84
- data/ext/boost/mpl/aux_/preprocessed/gcc/arg.hpp +123 -123
- data/ext/boost/mpl/aux_/preprocessed/gcc/bind.hpp +561 -561
- data/ext/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp +52 -52
- data/ext/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +558 -558
- data/ext/boost/mpl/aux_/preprocessed/gcc/or.hpp +69 -69
- data/ext/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp +105 -105
- data/ext/boost/mpl/aux_/preprocessed/gcc/quote.hpp +123 -123
- data/ext/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +101 -101
- data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +105 -105
- data/ext/boost/mpl/aux_/preprocessor/enum.hpp +62 -62
- data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +28 -28
- data/ext/boost/mpl/aux_/preprocessor/params.hpp +65 -65
- data/ext/boost/mpl/aux_/preprocessor/sub.hpp +65 -65
- data/ext/boost/mpl/aux_/static_cast.hpp +27 -27
- data/ext/boost/mpl/aux_/template_arity.hpp +189 -189
- data/ext/boost/mpl/aux_/template_arity_fwd.hpp +23 -23
- data/ext/boost/mpl/aux_/type_wrapper.hpp +47 -47
- data/ext/boost/mpl/aux_/value_wknd.hpp +89 -89
- data/ext/boost/mpl/aux_/yes_no.hpp +58 -58
- data/ext/boost/mpl/bind.hpp +547 -547
- data/ext/boost/mpl/bind_fwd.hpp +99 -99
- data/ext/boost/mpl/bool.hpp +39 -39
- data/ext/boost/mpl/bool_fwd.hpp +33 -33
- data/ext/boost/mpl/eval_if.hpp +71 -71
- data/ext/boost/mpl/has_xxx.hpp +272 -233
- data/ext/boost/mpl/identity.hpp +45 -45
- data/ext/boost/mpl/if.hpp +135 -135
- data/ext/boost/mpl/int.hpp +22 -22
- data/ext/boost/mpl/int_fwd.hpp +27 -27
- data/ext/boost/mpl/integral_c.hpp +51 -51
- data/ext/boost/mpl/integral_c_fwd.hpp +32 -32
- data/ext/boost/mpl/integral_c_tag.hpp +26 -26
- data/ext/boost/mpl/lambda.hpp +29 -29
- data/ext/boost/mpl/lambda_fwd.hpp +57 -57
- data/ext/boost/mpl/limits/arity.hpp +21 -21
- data/ext/boost/mpl/logical.hpp +21 -21
- data/ext/boost/mpl/next.hpp +19 -19
- data/ext/boost/mpl/next_prior.hpp +49 -49
- data/ext/boost/mpl/not.hpp +51 -51
- data/ext/boost/mpl/or.hpp +61 -57
- data/ext/boost/mpl/placeholders.hpp +100 -100
- data/ext/boost/mpl/protect.hpp +55 -55
- data/ext/boost/mpl/quote.hpp +140 -140
- data/ext/boost/mpl/size_t.hpp +25 -25
- data/ext/boost/mpl/size_t_fwd.hpp +28 -28
- data/ext/boost/mpl/void.hpp +76 -76
- data/ext/boost/mpl/void_fwd.hpp +26 -26
- data/ext/boost/next_prior.hpp +51 -51
- data/ext/boost/noncopyable.hpp +36 -36
- data/ext/boost/none.hpp +28 -43
- data/ext/boost/none_t.hpp +24 -0
- data/ext/boost/operators.hpp +943 -0
- data/ext/boost/optional.hpp +18 -18
- data/ext/boost/optional/optional.hpp +922 -922
- data/ext/boost/optional/optional_fwd.hpp +22 -22
- data/ext/boost/preprocessor/arithmetic/add.hpp +51 -51
- data/ext/boost/preprocessor/arithmetic/dec.hpp +288 -288
- data/ext/boost/preprocessor/arithmetic/inc.hpp +288 -288
- data/ext/boost/preprocessor/arithmetic/sub.hpp +50 -50
- data/ext/boost/preprocessor/array/data.hpp +28 -28
- data/ext/boost/preprocessor/array/elem.hpp +29 -29
- data/ext/boost/preprocessor/array/size.hpp +28 -28
- data/ext/boost/preprocessor/cat.hpp +35 -35
- data/ext/boost/preprocessor/comma_if.hpp +17 -17
- data/ext/boost/preprocessor/config/config.hpp +70 -70
- data/ext/boost/preprocessor/control/detail/while.hpp +536 -536
- data/ext/boost/preprocessor/control/expr_iif.hpp +31 -31
- data/ext/boost/preprocessor/control/if.hpp +30 -30
- data/ext/boost/preprocessor/control/iif.hpp +34 -34
- data/ext/boost/preprocessor/control/while.hpp +312 -312
- data/ext/boost/preprocessor/debug/error.hpp +33 -33
- data/ext/boost/preprocessor/detail/auto_rec.hpp +293 -293
- data/ext/boost/preprocessor/detail/check.hpp +48 -48
- data/ext/boost/preprocessor/detail/is_binary.hpp +30 -30
- data/ext/boost/preprocessor/empty.hpp +17 -17
- data/ext/boost/preprocessor/enum.hpp +17 -17
- data/ext/boost/preprocessor/enum_params.hpp +17 -17
- data/ext/boost/preprocessor/facilities/empty.hpp +21 -21
- data/ext/boost/preprocessor/facilities/identity.hpp +23 -23
- data/ext/boost/preprocessor/identity.hpp +17 -17
- data/ext/boost/preprocessor/inc.hpp +17 -17
- data/ext/boost/preprocessor/iterate.hpp +17 -17
- data/ext/boost/preprocessor/iteration/detail/bounds/lower1.hpp +99 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper1.hpp +99 -99
- data/ext/boost/preprocessor/iteration/detail/iter/forward1.hpp +1342 -1342
- data/ext/boost/preprocessor/iteration/iterate.hpp +82 -82
- data/ext/boost/preprocessor/list/adt.hpp +73 -73
- data/ext/boost/preprocessor/list/append.hpp +40 -40
- data/ext/boost/preprocessor/list/detail/fold_left.hpp +279 -279
- data/ext/boost/preprocessor/list/detail/fold_right.hpp +277 -277
- data/ext/boost/preprocessor/list/fold_left.hpp +303 -303
- data/ext/boost/preprocessor/list/fold_right.hpp +40 -40
- data/ext/boost/preprocessor/list/for_each_i.hpp +65 -65
- data/ext/boost/preprocessor/list/reverse.hpp +40 -40
- data/ext/boost/preprocessor/list/transform.hpp +49 -49
- data/ext/boost/preprocessor/logical/and.hpp +30 -30
- data/ext/boost/preprocessor/logical/bitand.hpp +38 -38
- data/ext/boost/preprocessor/logical/bool.hpp +288 -288
- data/ext/boost/preprocessor/logical/compl.hpp +36 -36
- data/ext/boost/preprocessor/punctuation/comma.hpp +21 -21
- data/ext/boost/preprocessor/punctuation/comma_if.hpp +31 -31
- data/ext/boost/preprocessor/repeat.hpp +17 -17
- data/ext/boost/preprocessor/repetition/detail/for.hpp +536 -536
- data/ext/boost/preprocessor/repetition/enum.hpp +66 -66
- data/ext/boost/preprocessor/repetition/enum_binary_params.hpp +54 -54
- data/ext/boost/preprocessor/repetition/enum_params.hpp +41 -41
- data/ext/boost/preprocessor/repetition/for.hpp +306 -306
- data/ext/boost/preprocessor/repetition/repeat.hpp +825 -825
- data/ext/boost/preprocessor/repetition/repeat_from_to.hpp +87 -87
- data/ext/boost/preprocessor/seq/elem.hpp +304 -304
- data/ext/boost/preprocessor/seq/enum.hpp +288 -288
- data/ext/boost/preprocessor/seq/for_each_i.hpp +61 -61
- data/ext/boost/preprocessor/seq/seq.hpp +44 -44
- data/ext/boost/preprocessor/seq/size.hpp +548 -548
- data/ext/boost/preprocessor/slot/detail/def.hpp +49 -49
- data/ext/boost/preprocessor/slot/detail/shared.hpp +247 -247
- data/ext/boost/preprocessor/slot/slot.hpp +32 -32
- data/ext/boost/preprocessor/stringize.hpp +33 -33
- data/ext/boost/preprocessor/tuple/eat.hpp +57 -57
- data/ext/boost/preprocessor/tuple/elem.hpp +385 -385
- data/ext/boost/preprocessor/tuple/rem.hpp +72 -72
- data/ext/boost/preprocessor/tuple/to_list.hpp +62 -62
- data/ext/boost/range/as_literal.hpp +131 -0
- data/ext/boost/range/begin.hpp +132 -0
- data/ext/boost/range/config.hpp +54 -0
- data/ext/boost/range/const_iterator.hpp +64 -0
- data/ext/boost/range/detail/common.hpp +117 -0
- data/ext/boost/range/detail/implementation_help.hpp +99 -0
- data/ext/boost/range/detail/sfinae.hpp +77 -0
- data/ext/boost/range/detail/str_types.hpp +38 -0
- data/ext/boost/range/difference_type.hpp +29 -0
- data/ext/boost/range/distance.hpp +34 -0
- data/ext/boost/range/empty.hpp +34 -0
- data/ext/boost/range/end.hpp +131 -0
- data/ext/boost/range/functions.hpp +27 -0
- data/ext/boost/range/iterator.hpp +72 -0
- data/ext/boost/range/iterator_range.hpp +643 -0
- data/ext/boost/range/mutable_iterator.hpp +64 -0
- data/ext/boost/range/rbegin.hpp +65 -0
- data/ext/boost/range/rend.hpp +65 -0
- data/ext/boost/range/reverse_iterator.hpp +40 -0
- data/ext/boost/range/size.hpp +36 -0
- data/ext/boost/range/size_type.hpp +78 -0
- data/ext/boost/range/value_type.hpp +34 -0
- data/ext/boost/shared_ptr.hpp +619 -558
- data/ext/boost/src/pthread/exceptions.cpp +146 -0
- data/ext/boost/src/pthread/once.cpp +51 -0
- data/ext/boost/src/pthread/thread.cpp +709 -0
- data/ext/boost/src/pthread/timeconv.inl +130 -0
- data/ext/boost/src/tss_null.cpp +2 -1
- data/ext/boost/src/win32/exceptions.cpp +124 -0
- data/ext/boost/src/win32/thread.cpp +629 -0
- data/ext/boost/src/win32/timeconv.inl +130 -0
- data/ext/boost/src/{tss_dll.cpp → win32/tss_dll.cpp} +0 -0
- data/ext/boost/src/win32/tss_pe.cpp +269 -0
- data/ext/boost/static_assert.hpp +122 -118
- data/ext/boost/thread.hpp +21 -19
- data/ext/boost/thread/condition.hpp +16 -201
- data/ext/boost/thread/condition_variable.hpp +21 -0
- data/ext/boost/thread/detail/config.hpp +94 -95
- data/ext/boost/thread/detail/move.hpp +33 -0
- data/ext/boost/thread/detail/platform.hpp +71 -0
- data/ext/boost/thread/exceptions.hpp +103 -92
- data/ext/boost/thread/locks.hpp +589 -0
- data/ext/boost/thread/mutex.hpp +21 -170
- data/ext/boost/thread/once.hpp +29 -37
- data/ext/boost/thread/pthread/condition_variable.hpp +184 -0
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +66 -0
- data/ext/boost/thread/pthread/mutex.hpp +211 -0
- data/ext/boost/thread/pthread/once.hpp +85 -0
- data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +50 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +249 -0
- data/ext/boost/thread/pthread/thread.hpp +331 -0
- data/ext/boost/thread/pthread/thread_data.hpp +101 -0
- data/ext/boost/thread/pthread/timespec.hpp +28 -0
- data/ext/boost/thread/pthread/tss.hpp +103 -0
- data/ext/boost/thread/recursive_mutex.hpp +21 -184
- data/ext/boost/thread/thread.hpp +22 -90
- data/ext/boost/thread/thread_time.hpp +46 -0
- data/ext/boost/thread/tss.hpp +18 -128
- data/ext/boost/thread/xtime.hpp +88 -54
- data/ext/boost/throw_exception.hpp +46 -46
- data/ext/boost/token_functions.hpp +621 -0
- data/ext/boost/token_iterator.hpp +128 -0
- data/ext/boost/tokenizer.hpp +98 -0
- data/ext/boost/type.hpp +18 -18
- data/ext/boost/type_traits/add_const.hpp +47 -47
- data/ext/boost/type_traits/add_pointer.hpp +72 -72
- data/ext/boost/type_traits/add_reference.hpp +89 -89
- data/ext/boost/type_traits/alignment_of.hpp +100 -100
- data/ext/boost/type_traits/broken_compiler_spec.hpp +117 -117
- data/ext/boost/type_traits/composite_traits.hpp +29 -29
- data/ext/boost/type_traits/config.hpp +76 -76
- data/ext/boost/type_traits/conversion_traits.hpp +17 -17
- data/ext/boost/type_traits/detail/bool_trait_def.hpp +173 -173
- data/ext/boost/type_traits/detail/bool_trait_undef.hpp +27 -27
- data/ext/boost/type_traits/detail/cv_traits_impl.hpp +97 -97
- data/ext/boost/type_traits/detail/false_result.hpp +28 -28
- data/ext/boost/type_traits/detail/ice_and.hpp +35 -35
- data/ext/boost/type_traits/detail/ice_eq.hpp +36 -36
- data/ext/boost/type_traits/detail/ice_not.hpp +31 -31
- data/ext/boost/type_traits/detail/ice_or.hpp +34 -34
- data/ext/boost/type_traits/detail/is_function_ptr_helper.hpp +220 -220
- data/ext/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +817 -817
- data/ext/boost/type_traits/detail/size_t_trait_def.hpp +58 -58
- data/ext/boost/type_traits/detail/size_t_trait_undef.hpp +16 -16
- data/ext/boost/type_traits/detail/template_arity_spec.hpp +31 -31
- data/ext/boost/type_traits/detail/type_trait_def.hpp +61 -61
- data/ext/boost/type_traits/detail/type_trait_undef.hpp +19 -19
- data/ext/boost/type_traits/detail/yes_no_type.hpp +26 -26
- data/ext/boost/type_traits/function_traits.hpp +236 -236
- data/ext/boost/type_traits/has_nothrow_copy.hpp +39 -38
- data/ext/boost/type_traits/has_trivial_copy.hpp +49 -48
- data/ext/boost/type_traits/ice.hpp +20 -20
- data/ext/boost/type_traits/integral_constant.hpp +53 -53
- data/ext/boost/type_traits/intrinsics.hpp +153 -137
- data/ext/boost/type_traits/is_abstract.hpp +144 -137
- data/ext/boost/type_traits/is_arithmetic.hpp +43 -43
- data/ext/boost/type_traits/is_array.hpp +90 -90
- data/ext/boost/type_traits/is_class.hpp +128 -128
- data/ext/boost/type_traits/is_const.hpp +142 -142
- data/ext/boost/type_traits/is_convertible.hpp +418 -416
- data/ext/boost/type_traits/is_enum.hpp +180 -180
- data/ext/boost/type_traits/is_float.hpp +27 -27
- data/ext/boost/type_traits/is_function.hpp +95 -88
- data/ext/boost/type_traits/is_integral.hpp +73 -71
- data/ext/boost/type_traits/is_member_function_pointer.hpp +134 -126
- data/ext/boost/type_traits/is_member_pointer.hpp +114 -108
- data/ext/boost/type_traits/is_pod.hpp +135 -135
- data/ext/boost/type_traits/is_pointer.hpp +160 -149
- data/ext/boost/type_traits/is_reference.hpp +116 -116
- data/ext/boost/type_traits/is_same.hpp +103 -103
- data/ext/boost/type_traits/is_scalar.hpp +55 -55
- data/ext/boost/type_traits/is_union.hpp +49 -49
- data/ext/boost/type_traits/is_void.hpp +33 -33
- data/ext/boost/type_traits/is_volatile.hpp +131 -131
- data/ext/boost/type_traits/remove_const.hpp +78 -78
- data/ext/boost/type_traits/remove_cv.hpp +61 -61
- data/ext/boost/type_traits/remove_pointer.hpp +43 -43
- data/ext/boost/type_traits/remove_reference.hpp +50 -50
- data/ext/boost/type_traits/type_with_alignment.hpp +288 -288
- data/ext/boost/utility.hpp +19 -19
- data/ext/boost/utility/addressof.hpp +58 -58
- data/ext/boost/utility/base_from_member.hpp +87 -87
- data/ext/boost/utility/compare_pointees.hpp +68 -68
- data/ext/boost/utility/enable_if.hpp +119 -119
- data/ext/boost/weak_ptr.hpp +0 -6
- data/ext/passenger/extconf.rb +3 -0
- data/ext/passenger/native_support.c +2 -0
- data/lib/passenger/abstract_request_handler.rb +347 -0
- data/lib/passenger/abstract_server.rb +31 -5
- data/lib/passenger/application.rb +5 -16
- data/lib/passenger/console_text_template.rb +2 -0
- data/lib/passenger/constants.rb +26 -0
- data/lib/passenger/dependencies.rb +23 -3
- data/lib/passenger/exceptions.rb +91 -0
- data/lib/passenger/html_template.rb +2 -0
- data/lib/passenger/message_channel.rb +2 -1
- data/lib/passenger/platform_info.rb +2 -0
- data/lib/passenger/rack/application_spawner.rb +108 -0
- data/lib/passenger/rack/request_handler.rb +85 -0
- data/lib/passenger/railz/application_spawner.rb +317 -0
- data/lib/passenger/railz/cgi_fixed.rb +68 -0
- data/lib/passenger/railz/framework_spawner.rb +344 -0
- data/lib/passenger/railz/request_handler.rb +61 -0
- data/lib/passenger/simple_benchmarking.rb +2 -0
- data/lib/passenger/spawn_manager.rb +190 -83
- data/lib/passenger/templates/apache2_config_snippets.txt.erb +2 -2
- data/lib/passenger/templates/apache_must_be_compiled_with_compatible_mpm.txt.erb +9 -0
- data/lib/passenger/templates/app_exited_during_initialization.html.erb +3 -3
- data/lib/passenger/templates/app_init_error.html.erb +2 -2
- data/lib/passenger/templates/database_error.html.erb +19 -12
- data/lib/passenger/templates/deployment_example.txt.erb +3 -1
- data/lib/passenger/templates/error_layout.html.erb +1 -1
- data/lib/passenger/templates/load_error.html.erb +2 -2
- data/lib/passenger/templates/welcome.txt.erb +1 -1
- data/lib/passenger/utils.rb +138 -14
- data/lib/passenger/wsgi/application_spawner.rb +94 -0
- data/lib/passenger/wsgi/request_handler.py +138 -0
- data/man/passenger-config.1 +29 -0
- data/man/passenger-make-enterprisey.8 +23 -0
- data/man/passenger-memory-stats.8 +33 -0
- data/man/passenger-status.8 +43 -0
- data/man/passenger-stress-test.1 +43 -0
- data/misc/copy_boost_headers.rb +102 -0
- data/test/ApplicationPoolServerTest.cpp +5 -3
- data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +6 -2
- data/test/ApplicationPoolTest.cpp +31 -27
- data/test/UtilsTest.cpp +1 -0
- data/test/integration_tests.rb +327 -137
- data/test/ruby/abstract_server_spec.rb +17 -0
- data/test/ruby/application_spec.rb +43 -0
- data/test/ruby/message_channel_spec.rb +170 -0
- data/test/ruby/rack/application_spawner_spec.rb +43 -0
- data/test/ruby/rails/application_spawner_spec.rb +109 -0
- data/test/ruby/rails/framework_spawner_spec.rb +132 -0
- data/test/ruby/rails/minimal_spawner_spec.rb +37 -0
- data/test/ruby/rails/spawner_error_handling_spec.rb +52 -0
- data/test/ruby/rails/spawner_privilege_lowering_spec.rb +97 -0
- data/test/ruby/spawn_manager_spec.rb +178 -0
- data/test/ruby/spawn_server_spec.rb +26 -0
- data/test/stub/apache2/httpd.conf +75 -0
- data/test/stub/apache2/httpd.conf.erb +41 -40
- data/test/stub/message_channel_3.rb +2 -0
- data/test/stub/minimal-railsapp/vendor/rails/actionpack/lib/action_controller.rb +0 -0
- data/test/stub/minimal-railsapp/vendor/rails/activerecord/lib/active_record.rb +0 -0
- data/test/stub/rack/config.ru +4 -0
- data/test/stub/rack/public/rack.jpg +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/foobar}/app/controllers/application.rb +0 -0
- data/test/stub/rails_apps/foobar/app/controllers/bar_controller_1.rb +5 -0
- data/test/stub/rails_apps/foobar/app/controllers/bar_controller_2.rb +5 -0
- data/test/stub/rails_apps/foobar/app/controllers/foo_controller.rb +13 -0
- data/test/stub/{mycook → rails_apps/foobar}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/boot.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/database.yml +0 -0
- data/test/stub/rails_apps/foobar/config/environment.rb +59 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/environments/development.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/environments/production.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/initializers/inflections.rb +0 -0
- data/test/stub/{mycook → rails_apps/foobar}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/foobar}/config/routes.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/controllers/application.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/controllers/recipes_controller.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/controllers/uploads_controller.rb +0 -0
- data/test/stub/rails_apps/mycook/app/controllers/welcome_controller.rb +35 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/app/helpers/application_helper.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/layouts/default.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/create.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/index.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/recipes/new.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/uploads/index.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/uploads/new.html.erb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/welcome/cached.rhtml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/app/views/welcome/index.rhtml +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/boot.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/database.yml +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/config/environment.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/environments/development.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/environments/production.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/initializers/inflections.rb +0 -0
- data/test/stub/{railsapp-without-version-spec → rails_apps/mycook}/config/initializers/mime_types.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/config/routes.rb +0 -0
- data/test/stub/{broken-railsapp/public → rails_apps/mycook/log}/useless.txt +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/404.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/422.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/500.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.cgi +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.fcgi +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/dispatch.rb +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/favicon.ico +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/angrywizard.gif +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/cookbook.gif +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/header.png +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/images/rails.png +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/application.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/controls.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/dragdrop.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/effects.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/javascripts/prototype.js +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/robots.txt +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/uploads.html +0 -0
- data/test/stub/{mycook → rails_apps/mycook}/public/welcome/cached.html +0 -0
- data/test/stub/{broken-railsapp4/public → rails_apps/mycook/tmp/cache}/useless.txt +0 -0
- data/test/stub/{broken-railsapp5/public → rails_apps/mycook/tmp/pids}/useless.txt +0 -0
- data/test/stub/{railsapp-without-version-spec/public → rails_apps/mycook/tmp/sessions}/useless.txt +0 -0
- data/test/stub/rails_apps/mycook/tmp/sockets/useless.txt +1 -0
- data/test/stub/spawn_server.rb +6 -2
- data/test/stub/upload_data.txt +494 -0
- data/test/stub/vendor_rails/minimal/README +1 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionmailer/lib/action_mailer.rb +0 -0
- data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +19 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionpack/lib/action_pack.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/actionpack/lib/action_view.rb +0 -0
- data/test/stub/vendor_rails/minimal/activerecord/lib/active_record.rb +7 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activeresource/lib/active_resource.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activesupport/lib/active_support.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/activesupport/lib/active_support/whiny_nil.rb +0 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/railties/lib/dispatcher.rb +0 -0
- data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +51 -0
- data/test/stub/{broken-railsapp5/vendor/rails → vendor_rails/minimal}/railties/lib/ruby_version_check.rb +0 -0
- data/test/stub/wsgi/passenger_wsgi.py +3 -0
- data/test/stub/wsgi/public/wsgi-snake.jpg +0 -0
- data/test/support/apache2_controller.rb +196 -0
- data/test/support/config.rb +4 -1
- data/test/support/test_helper.rb +94 -0
- metadata +445 -1329
- data/doc/cxxapi/ApplicationPoolClientServer_8h-source.html +0 -673
- data/doc/rdoc/classes/Passenger/ApplicationSpawner.html +0 -334
- data/doc/rdoc/classes/Passenger/ApplicationSpawner/Error.html +0 -98
- data/doc/rdoc/classes/Passenger/CGIFixed.html +0 -200
- data/doc/rdoc/classes/Passenger/FrameworkSpawner.html +0 -429
- data/doc/rdoc/classes/Passenger/FrameworkSpawner/Error.html +0 -98
- data/doc/rdoc/classes/Passenger/RequestHandler.html +0 -425
- data/doc/rdoc/files/lib/passenger/application_spawner_rb.html +0 -128
- data/doc/rdoc/files/lib/passenger/cgi_fixed_rb.html +0 -127
- data/doc/rdoc/files/lib/passenger/framework_spawner_rb.html +0 -135
- data/doc/rdoc/files/lib/passenger/request_handler_rb.html +0 -122
- data/ext/apache2/ApplicationPoolClientServer.h +0 -653
- data/ext/boost/bind/apply.hpp +0 -74
- data/ext/boost/bind/make_adaptable.hpp +0 -187
- data/ext/boost/bind/mem_fn_vw.hpp +0 -130
- data/ext/boost/bind/protect.hpp +0 -144
- data/ext/boost/format.hpp +0 -59
- data/ext/boost/format/alt_sstream.hpp +0 -176
- data/ext/boost/format/alt_sstream_impl.hpp +0 -296
- data/ext/boost/format/detail/compat_workarounds.hpp +0 -86
- data/ext/boost/format/detail/config_macros.hpp +0 -97
- data/ext/boost/format/detail/msvc_disambiguater.hpp +0 -56
- data/ext/boost/format/detail/unset_macros.hpp +0 -34
- data/ext/boost/format/detail/workarounds_gcc-2_95.hpp +0 -162
- data/ext/boost/format/detail/workarounds_stlport.hpp +0 -42
- data/ext/boost/format/exceptions.hpp +0 -103
- data/ext/boost/format/feed_args.hpp +0 -267
- data/ext/boost/format/format_class.hpp +0 -143
- data/ext/boost/format/format_fwd.hpp +0 -49
- data/ext/boost/format/format_implementation.hpp +0 -277
- data/ext/boost/format/free_funcs.hpp +0 -70
- data/ext/boost/format/group.hpp +0 -676
- data/ext/boost/format/internals.hpp +0 -199
- data/ext/boost/format/internals_fwd.hpp +0 -60
- data/ext/boost/format/parsing.hpp +0 -491
- data/ext/boost/function/detail/gen_maybe_include.pl +0 -37
- data/ext/boost/function/function0.hpp +0 -12
- data/ext/boost/function/function1.hpp +0 -12
- data/ext/boost/function/function10.hpp +0 -12
- data/ext/boost/function/function2.hpp +0 -12
- data/ext/boost/function/function3.hpp +0 -12
- data/ext/boost/function/function4.hpp +0 -12
- data/ext/boost/function/function5.hpp +0 -12
- data/ext/boost/function/function6.hpp +0 -12
- data/ext/boost/function/function7.hpp +0 -12
- data/ext/boost/function/function8.hpp +0 -12
- data/ext/boost/function/function9.hpp +0 -12
- data/ext/boost/function/gen_function_N.pl +0 -26
- data/ext/boost/mpl/O1_size.hpp +0 -40
- data/ext/boost/mpl/O1_size_fwd.hpp +0 -24
- data/ext/boost/mpl/accumulate.hpp +0 -39
- data/ext/boost/mpl/advance.hpp +0 -76
- data/ext/boost/mpl/advance_fwd.hpp +0 -28
- data/ext/boost/mpl/alias.hpp +0 -21
- data/ext/boost/mpl/arithmetic.hpp +0 -25
- data/ext/boost/mpl/as_sequence.hpp +0 -38
- data/ext/boost/mpl/at.hpp +0 -52
- data/ext/boost/mpl/at_fwd.hpp +0 -24
- data/ext/boost/mpl/aux_/O1_size_impl.hpp +0 -87
- data/ext/boost/mpl/aux_/advance_backward.hpp +0 -124
- data/ext/boost/mpl/aux_/advance_forward.hpp +0 -123
- data/ext/boost/mpl/aux_/apply_1st.hpp +0 -35
- data/ext/boost/mpl/aux_/arithmetic_op.hpp +0 -92
- data/ext/boost/mpl/aux_/at_impl.hpp +0 -45
- data/ext/boost/mpl/aux_/back_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/basic_bind.hpp +0 -21
- data/ext/boost/mpl/aux_/begin_end_impl.hpp +0 -100
- data/ext/boost/mpl/aux_/clear_impl.hpp +0 -35
- data/ext/boost/mpl/aux_/comparison_op.hpp +0 -83
- data/ext/boost/mpl/aux_/config/dependent_nttp.hpp +0 -35
- data/ext/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +0 -27
- data/ext/boost/mpl/aux_/config/forwarding.hpp +0 -27
- data/ext/boost/mpl/aux_/config/operators.hpp +0 -33
- data/ext/boost/mpl/aux_/config/typeof.hpp +0 -38
- data/ext/boost/mpl/aux_/contains_impl.hpp +0 -61
- data/ext/boost/mpl/aux_/count_args.hpp +0 -105
- data/ext/boost/mpl/aux_/count_impl.hpp +0 -44
- data/ext/boost/mpl/aux_/empty_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/erase_impl.hpp +0 -69
- data/ext/boost/mpl/aux_/erase_key_impl.hpp +0 -32
- data/ext/boost/mpl/aux_/filter_iter.hpp +0 -140
- data/ext/boost/mpl/aux_/find_if_pred.hpp +0 -31
- data/ext/boost/mpl/aux_/fold_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/fold_impl_body.hpp +0 -365
- data/ext/boost/mpl/aux_/fold_op.hpp +0 -37
- data/ext/boost/mpl/aux_/fold_pred.hpp +0 -37
- data/ext/boost/mpl/aux_/front_impl.hpp +0 -41
- data/ext/boost/mpl/aux_/has_begin.hpp +0 -23
- data/ext/boost/mpl/aux_/has_key_impl.hpp +0 -34
- data/ext/boost/mpl/aux_/has_rebind.hpp +0 -99
- data/ext/boost/mpl/aux_/has_size.hpp +0 -23
- data/ext/boost/mpl/aux_/has_tag.hpp +0 -23
- data/ext/boost/mpl/aux_/insert_impl.hpp +0 -68
- data/ext/boost/mpl/aux_/insert_range_impl.hpp +0 -77
- data/ext/boost/mpl/aux_/inserter_algorithm.hpp +0 -159
- data/ext/boost/mpl/aux_/is_msvc_eti_arg.hpp +0 -64
- data/ext/boost/mpl/aux_/iter_apply.hpp +0 -47
- data/ext/boost/mpl/aux_/iter_fold_if_impl.hpp +0 -210
- data/ext/boost/mpl/aux_/iter_fold_impl.hpp +0 -42
- data/ext/boost/mpl/aux_/iter_push_front.hpp +0 -36
- data/ext/boost/mpl/aux_/joint_iter.hpp +0 -120
- data/ext/boost/mpl/aux_/lambda_no_ctps.hpp +0 -193
- data/ext/boost/mpl/aux_/lambda_spec.hpp +0 -49
- data/ext/boost/mpl/aux_/largest_int.hpp +0 -63
- data/ext/boost/mpl/aux_/logical_op.hpp +0 -165
- data/ext/boost/mpl/aux_/msvc_dtw.hpp +0 -68
- data/ext/boost/mpl/aux_/msvc_eti_base.hpp +0 -77
- data/ext/boost/mpl/aux_/msvc_is_class.hpp +0 -58
- data/ext/boost/mpl/aux_/msvc_type.hpp +0 -62
- data/ext/boost/mpl/aux_/numeric_cast_utils.hpp +0 -77
- data/ext/boost/mpl/aux_/numeric_op.hpp +0 -311
- data/ext/boost/mpl/aux_/order_impl.hpp +0 -76
- data/ext/boost/mpl/aux_/overload_names.hpp +0 -48
- data/ext/boost/mpl/aux_/partition_op.hpp +0 -58
- data/ext/boost/mpl/aux_/pop_back_impl.hpp +0 -34
- data/ext/boost/mpl/aux_/pop_front_impl.hpp +0 -44
- data/ext/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp +0 -456
- data/ext/boost/mpl/aux_/preprocessed/bcc/arg.hpp +0 -117
- data/ext/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp +0 -300
- data/ext/boost/mpl/aux_/preprocessed/bcc/bind.hpp +0 -397
- data/ext/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp +0 -558
- data/ext/boost/mpl/aux_/preprocessed/bcc/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/inherit.hpp +0 -139
- data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/bcc/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/bcc/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/bcc/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc551/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp +0 -456
- data/ext/boost/mpl/aux_/preprocessed/bcc551/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp +0 -306
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bind.hpp +0 -403
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/bcc551/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp +0 -558
- data/ext/boost/mpl/aux_/preprocessed/bcc551/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/bcc551/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc551/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/bcc551/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/bcc551/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/bcc551/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/bcc551/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/bcc551/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/dmc/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp +0 -84
- data/ext/boost/mpl/aux_/preprocessed/dmc/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp +0 -406
- data/ext/boost/mpl/aux_/preprocessed/dmc/bind.hpp +0 -515
- data/ext/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp +0 -53
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/dmc/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp +0 -536
- data/ext/boost/mpl/aux_/preprocessed/dmc/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/dmc/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/dmc/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/dmc/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/quote.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/dmc/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/dmc/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/dmc/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp +0 -440
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/gcc/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/gcc/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/gcc/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/gcc/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/gcc/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp +0 -132
- data/ext/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp +0 -132
- data/ext/boost/mpl/aux_/preprocessed/msvc60/and.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp +0 -247
- data/ext/boost/mpl/aux_/preprocessed/msvc60/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bind.hpp +0 -432
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp +0 -149
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp +0 -149
- data/ext/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp +0 -149
- data/ext/boost/mpl/aux_/preprocessed/msvc60/deque.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/divides.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp +0 -293
- data/ext/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/msvc60/greater.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp +0 -293
- data/ext/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/msvc60/less.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/list.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc60/map.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/minus.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp +0 -115
- data/ext/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc60/or.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/msvc60/plus.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp +0 -343
- data/ext/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp +0 -343
- data/ext/boost/mpl/aux_/preprocessed/msvc60/set.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc60/times.hpp +0 -148
- data/ext/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp +0 -109
- data/ext/boost/mpl/aux_/preprocessed/msvc60/vector.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/msvc70/and.hpp +0 -71
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply.hpp +0 -160
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp +0 -138
- data/ext/boost/mpl/aux_/preprocessed/msvc70/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bind.hpp +0 -432
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp +0 -151
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp +0 -151
- data/ext/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp +0 -151
- data/ext/boost/mpl/aux_/preprocessed/msvc70/deque.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/divides.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/msvc70/greater.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/msvc70/less.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/list.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc70/map.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/minus.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp +0 -115
- data/ext/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp +0 -102
- data/ext/boost/mpl/aux_/preprocessed/msvc70/or.hpp +0 -71
- data/ext/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/msvc70/plus.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/quote.hpp +0 -116
- data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/msvc70/set.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp +0 -114
- data/ext/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp +0 -46
- data/ext/boost/mpl/aux_/preprocessed/msvc70/times.hpp +0 -150
- data/ext/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp +0 -109
- data/ext/boost/mpl/aux_/preprocessed/msvc70/vector.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/mwcw/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp +0 -456
- data/ext/boost/mpl/aux_/preprocessed/mwcw/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp +0 -440
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bind.hpp +0 -561
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp +0 -147
- data/ext/boost/mpl/aux_/preprocessed/mwcw/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/divides.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/mwcw/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/mwcw/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/mwcw/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/minus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/mwcw/plus.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/quote.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/mwcw/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/mwcw/times.hpp +0 -146
- data/ext/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/mwcw/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/and.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp +0 -268
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp +0 -50
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp +0 -78
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp +0 -486
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp +0 -590
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp +0 -134
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp +0 -134
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp +0 -134
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp +0 -166
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp +0 -245
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/less.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/list.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/map.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp +0 -101
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/or.hpp +0 -73
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp +0 -116
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp +0 -295
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/set.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/times.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp +0 -109
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp +0 -556
- data/ext/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp +0 -534
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/and.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp +0 -169
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp +0 -84
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp +0 -369
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp +0 -466
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp +0 -157
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp +0 -157
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp +0 -157
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp +0 -229
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/less.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp +0 -111
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp +0 -98
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/or.hpp +0 -69
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp +0 -110
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp +0 -110
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp +0 -40
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/times.hpp +0 -156
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/and.hpp +0 -64
- data/ext/boost/mpl/aux_/preprocessed/plain/apply.hpp +0 -139
- data/ext/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp +0 -84
- data/ext/boost/mpl/aux_/preprocessed/plain/arg.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp +0 -440
- data/ext/boost/mpl/aux_/preprocessed/plain/bind.hpp +0 -561
- data/ext/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp +0 -52
- data/ext/boost/mpl/aux_/preprocessed/plain/bitand.hpp +0 -142
- data/ext/boost/mpl/aux_/preprocessed/plain/bitor.hpp +0 -142
- data/ext/boost/mpl/aux_/preprocessed/plain/bitxor.hpp +0 -142
- data/ext/boost/mpl/aux_/preprocessed/plain/deque.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/divides.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/equal_to.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp +0 -554
- data/ext/boost/mpl/aux_/preprocessed/plain/greater.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/inherit.hpp +0 -125
- data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp +0 -133
- data/ext/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp +0 -180
- data/ext/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp +0 -228
- data/ext/boost/mpl/aux_/preprocessed/plain/less.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/less_equal.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/list.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/list_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/plain/map.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/minus.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/modulus.hpp +0 -99
- data/ext/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp +0 -92
- data/ext/boost/mpl/aux_/preprocessed/plain/or.hpp +0 -64
- data/ext/boost/mpl/aux_/preprocessed/plain/placeholders.hpp +0 -105
- data/ext/boost/mpl/aux_/preprocessed/plain/plus.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/quote.hpp +0 -123
- data/ext/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp +0 -231
- data/ext/boost/mpl/aux_/preprocessed/plain/set.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/set_c.hpp +0 -328
- data/ext/boost/mpl/aux_/preprocessed/plain/shift_left.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/shift_right.hpp +0 -97
- data/ext/boost/mpl/aux_/preprocessed/plain/template_arity.hpp +0 -11
- data/ext/boost/mpl/aux_/preprocessed/plain/times.hpp +0 -141
- data/ext/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp +0 -94
- data/ext/boost/mpl/aux_/preprocessed/plain/vector.hpp +0 -323
- data/ext/boost/mpl/aux_/preprocessed/plain/vector_c.hpp +0 -309
- data/ext/boost/mpl/aux_/preprocessor/add.hpp +0 -65
- data/ext/boost/mpl/aux_/preprocessor/default_params.hpp +0 -67
- data/ext/boost/mpl/aux_/preprocessor/ext_params.hpp +0 -78
- data/ext/boost/mpl/aux_/preprocessor/is_seq.hpp +0 -54
- data/ext/boost/mpl/aux_/preprocessor/partial_spec_params.hpp +0 -32
- data/ext/boost/mpl/aux_/preprocessor/range.hpp +0 -23
- data/ext/boost/mpl/aux_/preprocessor/repeat.hpp +0 -51
- data/ext/boost/mpl/aux_/preprocessor/token_equal.hpp +0 -56
- data/ext/boost/mpl/aux_/preprocessor/tuple.hpp +0 -29
- data/ext/boost/mpl/aux_/ptr_to_ref.hpp +0 -46
- data/ext/boost/mpl/aux_/push_back_impl.hpp +0 -55
- data/ext/boost/mpl/aux_/push_front_impl.hpp +0 -56
- data/ext/boost/mpl/aux_/range_c/O1_size.hpp +0 -31
- data/ext/boost/mpl/aux_/range_c/back.hpp +0 -34
- data/ext/boost/mpl/aux_/range_c/empty.hpp +0 -37
- data/ext/boost/mpl/aux_/range_c/front.hpp +0 -33
- data/ext/boost/mpl/aux_/range_c/iterator.hpp +0 -106
- data/ext/boost/mpl/aux_/range_c/size.hpp +0 -37
- data/ext/boost/mpl/aux_/range_c/tag.hpp +0 -24
- data/ext/boost/mpl/aux_/reverse_fold_impl.hpp +0 -44
- data/ext/boost/mpl/aux_/reverse_fold_impl_body.hpp +0 -412
- data/ext/boost/mpl/aux_/reverse_iter_fold_impl.hpp +0 -43
- data/ext/boost/mpl/aux_/sequence_wrapper.hpp +0 -292
- data/ext/boost/mpl/aux_/shift_op.hpp +0 -87
- data/ext/boost/mpl/aux_/single_element_iter.hpp +0 -118
- data/ext/boost/mpl/aux_/size_impl.hpp +0 -52
- data/ext/boost/mpl/aux_/sort_impl.hpp +0 -121
- data/ext/boost/mpl/aux_/test.hpp +0 -32
- data/ext/boost/mpl/aux_/test/assert.hpp +0 -29
- data/ext/boost/mpl/aux_/test/data.hpp +0 -25
- data/ext/boost/mpl/aux_/test/test_case.hpp +0 -21
- data/ext/boost/mpl/aux_/traits_lambda_spec.hpp +0 -56
- data/ext/boost/mpl/aux_/transform_iter.hpp +0 -123
- data/ext/boost/mpl/aux_/unwrap.hpp +0 -47
- data/ext/boost/mpl/back.hpp +0 -39
- data/ext/boost/mpl/back_fwd.hpp +0 -24
- data/ext/boost/mpl/back_inserter.hpp +0 -34
- data/ext/boost/mpl/base.hpp +0 -35
- data/ext/boost/mpl/begin.hpp +0 -19
- data/ext/boost/mpl/begin_end.hpp +0 -57
- data/ext/boost/mpl/begin_end_fwd.hpp +0 -27
- data/ext/boost/mpl/bitand.hpp +0 -23
- data/ext/boost/mpl/bitor.hpp +0 -23
- data/ext/boost/mpl/bitwise.hpp +0 -24
- data/ext/boost/mpl/bitxor.hpp +0 -23
- data/ext/boost/mpl/clear.hpp +0 -39
- data/ext/boost/mpl/clear_fwd.hpp +0 -24
- data/ext/boost/mpl/comparison.hpp +0 -24
- data/ext/boost/mpl/contains.hpp +0 -41
- data/ext/boost/mpl/contains_fwd.hpp +0 -25
- data/ext/boost/mpl/copy.hpp +0 -58
- data/ext/boost/mpl/copy_if.hpp +0 -96
- data/ext/boost/mpl/count.hpp +0 -40
- data/ext/boost/mpl/count_fwd.hpp +0 -24
- data/ext/boost/mpl/count_if.hpp +0 -79
- data/ext/boost/mpl/deque.hpp +0 -58
- data/ext/boost/mpl/deref.hpp +0 -41
- data/ext/boost/mpl/distance.hpp +0 -78
- data/ext/boost/mpl/distance_fwd.hpp +0 -28
- data/ext/boost/mpl/divides.hpp +0 -21
- data/ext/boost/mpl/empty.hpp +0 -39
- data/ext/boost/mpl/empty_base.hpp +0 -59
- data/ext/boost/mpl/empty_fwd.hpp +0 -24
- data/ext/boost/mpl/empty_sequence.hpp +0 -42
- data/ext/boost/mpl/end.hpp +0 -19
- data/ext/boost/mpl/equal.hpp +0 -112
- data/ext/boost/mpl/equal_to.hpp +0 -21
- data/ext/boost/mpl/erase.hpp +0 -42
- data/ext/boost/mpl/erase_fwd.hpp +0 -24
- data/ext/boost/mpl/erase_key.hpp +0 -41
- data/ext/boost/mpl/erase_key_fwd.hpp +0 -24
- data/ext/boost/mpl/filter_view.hpp +0 -46
- data/ext/boost/mpl/find.hpp +0 -38
- data/ext/boost/mpl/find_if.hpp +0 -50
- data/ext/boost/mpl/fold.hpp +0 -48
- data/ext/boost/mpl/for_each.hpp +0 -112
- data/ext/boost/mpl/front.hpp +0 -39
- data/ext/boost/mpl/front_fwd.hpp +0 -24
- data/ext/boost/mpl/front_inserter.hpp +0 -33
- data/ext/boost/mpl/greater.hpp +0 -21
- data/ext/boost/mpl/greater_equal.hpp +0 -21
- data/ext/boost/mpl/has_key.hpp +0 -41
- data/ext/boost/mpl/has_key_fwd.hpp +0 -25
- data/ext/boost/mpl/index_if.hpp +0 -60
- data/ext/boost/mpl/index_of.hpp +0 -39
- data/ext/boost/mpl/inherit.hpp +0 -229
- data/ext/boost/mpl/inherit_linearly.hpp +0 -39
- data/ext/boost/mpl/insert.hpp +0 -41
- data/ext/boost/mpl/insert_fwd.hpp +0 -24
- data/ext/boost/mpl/insert_range.hpp +0 -41
- data/ext/boost/mpl/insert_range_fwd.hpp +0 -24
- data/ext/boost/mpl/inserter.hpp +0 -32
- data/ext/boost/mpl/is_placeholder.hpp +0 -67
- data/ext/boost/mpl/is_sequence.hpp +0 -112
- data/ext/boost/mpl/iter_fold.hpp +0 -49
- data/ext/boost/mpl/iter_fold_if.hpp +0 -117
- data/ext/boost/mpl/iterator_category.hpp +0 -35
- data/ext/boost/mpl/iterator_range.hpp +0 -42
- data/ext/boost/mpl/iterator_tags.hpp +0 -27
- data/ext/boost/mpl/joint_view.hpp +0 -65
- data/ext/boost/mpl/key_type.hpp +0 -42
- data/ext/boost/mpl/key_type_fwd.hpp +0 -25
- data/ext/boost/mpl/less.hpp +0 -21
- data/ext/boost/mpl/less_equal.hpp +0 -21
- data/ext/boost/mpl/limits/list.hpp +0 -21
- data/ext/boost/mpl/limits/map.hpp +0 -21
- data/ext/boost/mpl/limits/set.hpp +0 -21
- data/ext/boost/mpl/limits/unrolling.hpp +0 -21
- data/ext/boost/mpl/limits/vector.hpp +0 -21
- data/ext/boost/mpl/list.hpp +0 -57
- data/ext/boost/mpl/list/aux_/O1_size.hpp +0 -33
- data/ext/boost/mpl/list/aux_/begin_end.hpp +0 -44
- data/ext/boost/mpl/list/aux_/clear.hpp +0 -34
- data/ext/boost/mpl/list/aux_/empty.hpp +0 -34
- data/ext/boost/mpl/list/aux_/front.hpp +0 -33
- data/ext/boost/mpl/list/aux_/include_preprocessed.hpp +0 -35
- data/ext/boost/mpl/list/aux_/item.hpp +0 -55
- data/ext/boost/mpl/list/aux_/iterator.hpp +0 -76
- data/ext/boost/mpl/list/aux_/numbered.hpp +0 -68
- data/ext/boost/mpl/list/aux_/numbered_c.hpp +0 -71
- data/ext/boost/mpl/list/aux_/pop_front.hpp +0 -34
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10.hpp +0 -149
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp +0 -164
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20.hpp +0 -169
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp +0 -173
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list30.hpp +0 -189
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp +0 -183
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list40.hpp +0 -209
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp +0 -193
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list50.hpp +0 -229
- data/ext/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp +0 -203
- data/ext/boost/mpl/list/aux_/push_back.hpp +0 -36
- data/ext/boost/mpl/list/aux_/push_front.hpp +0 -39
- data/ext/boost/mpl/list/aux_/size.hpp +0 -33
- data/ext/boost/mpl/list/aux_/tag.hpp +0 -24
- data/ext/boost/mpl/list/list0.hpp +0 -42
- data/ext/boost/mpl/list/list0_c.hpp +0 -31
- data/ext/boost/mpl/list/list10.hpp +0 -43
- data/ext/boost/mpl/list/list10_c.hpp +0 -43
- data/ext/boost/mpl/list/list20.hpp +0 -43
- data/ext/boost/mpl/list/list20_c.hpp +0 -43
- data/ext/boost/mpl/list/list30.hpp +0 -43
- data/ext/boost/mpl/list/list30_c.hpp +0 -43
- data/ext/boost/mpl/list/list40.hpp +0 -43
- data/ext/boost/mpl/list/list40_c.hpp +0 -43
- data/ext/boost/mpl/list/list50.hpp +0 -43
- data/ext/boost/mpl/list/list50_c.hpp +0 -43
- data/ext/boost/mpl/list_c.hpp +0 -60
- data/ext/boost/mpl/long.hpp +0 -22
- data/ext/boost/mpl/long_fwd.hpp +0 -27
- data/ext/boost/mpl/lower_bound.hpp +0 -143
- data/ext/boost/mpl/map.hpp +0 -57
- data/ext/boost/mpl/map/aux_/at_impl.hpp +0 -144
- data/ext/boost/mpl/map/aux_/begin_end_impl.hpp +0 -50
- data/ext/boost/mpl/map/aux_/clear_impl.hpp +0 -35
- data/ext/boost/mpl/map/aux_/contains_impl.hpp +0 -43
- data/ext/boost/mpl/map/aux_/empty_impl.hpp +0 -34
- data/ext/boost/mpl/map/aux_/erase_impl.hpp +0 -41
- data/ext/boost/mpl/map/aux_/erase_key_impl.hpp +0 -53
- data/ext/boost/mpl/map/aux_/has_key_impl.hpp +0 -44
- data/ext/boost/mpl/map/aux_/include_preprocessed.hpp +0 -53
- data/ext/boost/mpl/map/aux_/insert_impl.hpp +0 -72
- data/ext/boost/mpl/map/aux_/item.hpp +0 -138
- data/ext/boost/mpl/map/aux_/iterator.hpp +0 -169
- data/ext/boost/mpl/map/aux_/key_type_impl.hpp +0 -36
- data/ext/boost/mpl/map/aux_/map0.hpp +0 -74
- data/ext/boost/mpl/map/aux_/numbered.hpp +0 -110
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map10.hpp +0 -350
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map20.hpp +0 -370
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map30.hpp +0 -390
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map40.hpp +0 -410
- data/ext/boost/mpl/map/aux_/preprocessed/no_ctps/map50.hpp +0 -430
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map10.hpp +0 -290
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map20.hpp +0 -310
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map30.hpp +0 -330
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map40.hpp +0 -350
- data/ext/boost/mpl/map/aux_/preprocessed/plain/map50.hpp +0 -370
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map10.hpp +0 -150
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map20.hpp +0 -170
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map30.hpp +0 -190
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map40.hpp +0 -210
- data/ext/boost/mpl/map/aux_/preprocessed/typeof_based/map50.hpp +0 -230
- data/ext/boost/mpl/map/aux_/size_impl.hpp +0 -33
- data/ext/boost/mpl/map/aux_/tag.hpp +0 -24
- data/ext/boost/mpl/map/aux_/value_type_impl.hpp +0 -36
- data/ext/boost/mpl/map/map0.hpp +0 -36
- data/ext/boost/mpl/map/map10.hpp +0 -44
- data/ext/boost/mpl/map/map20.hpp +0 -44
- data/ext/boost/mpl/map/map30.hpp +0 -44
- data/ext/boost/mpl/map/map40.hpp +0 -44
- data/ext/boost/mpl/map/map50.hpp +0 -44
- data/ext/boost/mpl/math/fixed_c.hpp +0 -36
- data/ext/boost/mpl/math/is_even.hpp +0 -54
- data/ext/boost/mpl/math/rational_c.hpp +0 -37
- data/ext/boost/mpl/max.hpp +0 -19
- data/ext/boost/mpl/max_element.hpp +0 -72
- data/ext/boost/mpl/min.hpp +0 -19
- data/ext/boost/mpl/min_element.hpp +0 -40
- data/ext/boost/mpl/min_max.hpp +0 -46
- data/ext/boost/mpl/minus.hpp +0 -21
- data/ext/boost/mpl/modulus.hpp +0 -22
- data/ext/boost/mpl/multiplies.hpp +0 -53
- data/ext/boost/mpl/multiset/aux_/count_impl.hpp +0 -82
- data/ext/boost/mpl/multiset/aux_/insert_impl.hpp +0 -34
- data/ext/boost/mpl/multiset/aux_/item.hpp +0 -114
- data/ext/boost/mpl/multiset/aux_/multiset0.hpp +0 -34
- data/ext/boost/mpl/multiset/aux_/tag.hpp +0 -23
- data/ext/boost/mpl/multiset/multiset0.hpp +0 -36
- data/ext/boost/mpl/negate.hpp +0 -81
- data/ext/boost/mpl/not_equal_to.hpp +0 -21
- data/ext/boost/mpl/numeric_cast.hpp +0 -41
- data/ext/boost/mpl/order.hpp +0 -41
- data/ext/boost/mpl/order_fwd.hpp +0 -25
- data/ext/boost/mpl/pair.hpp +0 -70
- data/ext/boost/mpl/pair_view.hpp +0 -169
- data/ext/boost/mpl/partition.hpp +0 -53
- data/ext/boost/mpl/plus.hpp +0 -21
- data/ext/boost/mpl/pop_back.hpp +0 -39
- data/ext/boost/mpl/pop_back_fwd.hpp +0 -24
- data/ext/boost/mpl/pop_front.hpp +0 -39
- data/ext/boost/mpl/pop_front_fwd.hpp +0 -24
- data/ext/boost/mpl/print.hpp +0 -74
- data/ext/boost/mpl/prior.hpp +0 -19
- data/ext/boost/mpl/push_back.hpp +0 -53
- data/ext/boost/mpl/push_back_fwd.hpp +0 -24
- data/ext/boost/mpl/push_front.hpp +0 -52
- data/ext/boost/mpl/push_front_fwd.hpp +0 -24
- data/ext/boost/mpl/range_c.hpp +0 -48
- data/ext/boost/mpl/remove.hpp +0 -52
- data/ext/boost/mpl/remove_if.hpp +0 -83
- data/ext/boost/mpl/replace.hpp +0 -55
- data/ext/boost/mpl/replace_if.hpp +0 -88
- data/ext/boost/mpl/reverse.hpp +0 -38
- data/ext/boost/mpl/reverse_fold.hpp +0 -50
- data/ext/boost/mpl/reverse_iter_fold.hpp +0 -56
- data/ext/boost/mpl/same_as.hpp +0 -55
- data/ext/boost/mpl/sequence_tag.hpp +0 -124
- data/ext/boost/mpl/sequence_tag_fwd.hpp +0 -26
- data/ext/boost/mpl/set.hpp +0 -57
- data/ext/boost/mpl/set/aux_/at_impl.hpp +0 -40
- data/ext/boost/mpl/set/aux_/begin_end_impl.hpp +0 -43
- data/ext/boost/mpl/set/aux_/clear_impl.hpp +0 -35
- data/ext/boost/mpl/set/aux_/empty_impl.hpp +0 -34
- data/ext/boost/mpl/set/aux_/erase_impl.hpp +0 -41
- data/ext/boost/mpl/set/aux_/erase_key_impl.hpp +0 -53
- data/ext/boost/mpl/set/aux_/has_key_impl.hpp +0 -60
- data/ext/boost/mpl/set/aux_/include_preprocessed.hpp +0 -42
- data/ext/boost/mpl/set/aux_/insert_impl.hpp +0 -65
- data/ext/boost/mpl/set/aux_/item.hpp +0 -82
- data/ext/boost/mpl/set/aux_/iterator.hpp +0 -97
- data/ext/boost/mpl/set/aux_/key_type_impl.hpp +0 -34
- data/ext/boost/mpl/set/aux_/numbered.hpp +0 -48
- data/ext/boost/mpl/set/aux_/numbered_c.hpp +0 -48
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set10.hpp +0 -140
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set10_c.hpp +0 -145
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set20.hpp +0 -168
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set20_c.hpp +0 -154
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set30.hpp +0 -195
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set30_c.hpp +0 -164
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set40.hpp +0 -221
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set40_c.hpp +0 -174
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set50.hpp +0 -250
- data/ext/boost/mpl/set/aux_/preprocessed/plain/set50_c.hpp +0 -184
- data/ext/boost/mpl/set/aux_/set0.hpp +0 -69
- data/ext/boost/mpl/set/aux_/size_impl.hpp +0 -33
- data/ext/boost/mpl/set/aux_/tag.hpp +0 -24
- data/ext/boost/mpl/set/aux_/value_type_impl.hpp +0 -34
- data/ext/boost/mpl/set/set0.hpp +0 -35
- data/ext/boost/mpl/set/set0_c.hpp +0 -32
- data/ext/boost/mpl/set/set10.hpp +0 -44
- data/ext/boost/mpl/set/set10_c.hpp +0 -45
- data/ext/boost/mpl/set/set20.hpp +0 -44
- data/ext/boost/mpl/set/set20_c.hpp +0 -45
- data/ext/boost/mpl/set/set30.hpp +0 -44
- data/ext/boost/mpl/set/set30_c.hpp +0 -45
- data/ext/boost/mpl/set/set40.hpp +0 -44
- data/ext/boost/mpl/set/set40_c.hpp +0 -45
- data/ext/boost/mpl/set/set50.hpp +0 -44
- data/ext/boost/mpl/set/set50_c.hpp +0 -45
- data/ext/boost/mpl/set_c.hpp +0 -60
- data/ext/boost/mpl/shift_left.hpp +0 -22
- data/ext/boost/mpl/shift_right.hpp +0 -22
- data/ext/boost/mpl/single_view.hpp +0 -38
- data/ext/boost/mpl/size.hpp +0 -42
- data/ext/boost/mpl/size_fwd.hpp +0 -24
- data/ext/boost/mpl/sizeof.hpp +0 -36
- data/ext/boost/mpl/sort.hpp +0 -27
- data/ext/boost/mpl/stable_partition.hpp +0 -75
- data/ext/boost/mpl/switch.hpp +0 -49
- data/ext/boost/mpl/tag.hpp +0 -52
- data/ext/boost/mpl/times.hpp +0 -21
- data/ext/boost/mpl/transform.hpp +0 -145
- data/ext/boost/mpl/transform_view.hpp +0 -46
- data/ext/boost/mpl/unique.hpp +0 -85
- data/ext/boost/mpl/unpack_args.hpp +0 -146
- data/ext/boost/mpl/upper_bound.hpp +0 -141
- data/ext/boost/mpl/value_type.hpp +0 -42
- data/ext/boost/mpl/value_type_fwd.hpp +0 -25
- data/ext/boost/mpl/vector.hpp +0 -57
- data/ext/boost/mpl/vector/aux_/O1_size.hpp +0 -56
- data/ext/boost/mpl/vector/aux_/at.hpp +0 -116
- data/ext/boost/mpl/vector/aux_/back.hpp +0 -59
- data/ext/boost/mpl/vector/aux_/begin_end.hpp +0 -49
- data/ext/boost/mpl/vector/aux_/clear.hpp +0 -55
- data/ext/boost/mpl/vector/aux_/empty.hpp +0 -68
- data/ext/boost/mpl/vector/aux_/front.hpp +0 -56
- data/ext/boost/mpl/vector/aux_/include_preprocessed.hpp +0 -55
- data/ext/boost/mpl/vector/aux_/item.hpp +0 -103
- data/ext/boost/mpl/vector/aux_/iterator.hpp +0 -130
- data/ext/boost/mpl/vector/aux_/numbered.hpp +0 -218
- data/ext/boost/mpl/vector/aux_/numbered_c.hpp +0 -77
- data/ext/boost/mpl/vector/aux_/pop_back.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/pop_front.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp +0 -1528
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp +0 -149
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp +0 -1804
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp +0 -195
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp +0 -2124
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp +0 -238
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp +0 -2444
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp +0 -281
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp +0 -2764
- data/ext/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp +0 -325
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp +0 -829
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp +0 -149
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp +0 -1144
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp +0 -195
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp +0 -1464
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp +0 -238
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp +0 -1784
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp +0 -281
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp +0 -2104
- data/ext/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp +0 -325
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp +0 -139
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp +0 -154
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp +0 -159
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp +0 -163
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp +0 -179
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp +0 -173
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp +0 -199
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp +0 -183
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp +0 -219
- data/ext/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp +0 -193
- data/ext/boost/mpl/vector/aux_/push_back.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/push_front.hpp +0 -40
- data/ext/boost/mpl/vector/aux_/size.hpp +0 -49
- data/ext/boost/mpl/vector/aux_/tag.hpp +0 -32
- data/ext/boost/mpl/vector/aux_/vector0.hpp +0 -52
- data/ext/boost/mpl/vector/vector0.hpp +0 -34
- data/ext/boost/mpl/vector/vector0_c.hpp +0 -31
- data/ext/boost/mpl/vector/vector10.hpp +0 -45
- data/ext/boost/mpl/vector/vector10_c.hpp +0 -46
- data/ext/boost/mpl/vector/vector20.hpp +0 -45
- data/ext/boost/mpl/vector/vector20_c.hpp +0 -46
- data/ext/boost/mpl/vector/vector30.hpp +0 -45
- data/ext/boost/mpl/vector/vector30_c.hpp +0 -47
- data/ext/boost/mpl/vector/vector40.hpp +0 -45
- data/ext/boost/mpl/vector/vector40_c.hpp +0 -46
- data/ext/boost/mpl/vector/vector50.hpp +0 -45
- data/ext/boost/mpl/vector/vector50_c.hpp +0 -46
- data/ext/boost/mpl/vector_c.hpp +0 -60
- data/ext/boost/mpl/zip_view.hpp +0 -64
- data/ext/boost/optional/optional_io.hpp +0 -84
- data/ext/boost/preprocessor/arithmetic.hpp +0 -25
- data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +0 -61
- data/ext/boost/preprocessor/arithmetic/div.hpp +0 -39
- data/ext/boost/preprocessor/arithmetic/mod.hpp +0 -39
- data/ext/boost/preprocessor/arithmetic/mul.hpp +0 -53
- data/ext/boost/preprocessor/array.hpp +0 -27
- data/ext/boost/preprocessor/array/insert.hpp +0 -55
- data/ext/boost/preprocessor/array/pop_back.hpp +0 -37
- data/ext/boost/preprocessor/array/pop_front.hpp +0 -38
- data/ext/boost/preprocessor/array/push_back.hpp +0 -33
- data/ext/boost/preprocessor/array/push_front.hpp +0 -33
- data/ext/boost/preprocessor/array/remove.hpp +0 -54
- data/ext/boost/preprocessor/array/replace.hpp +0 -49
- data/ext/boost/preprocessor/array/reverse.hpp +0 -29
- data/ext/boost/preprocessor/assert_msg.hpp +0 -17
- data/ext/boost/preprocessor/comma.hpp +0 -17
- data/ext/boost/preprocessor/comparison.hpp +0 -24
- data/ext/boost/preprocessor/comparison/equal.hpp +0 -34
- data/ext/boost/preprocessor/comparison/greater.hpp +0 -38
- data/ext/boost/preprocessor/comparison/greater_equal.hpp +0 -38
- data/ext/boost/preprocessor/comparison/less.hpp +0 -46
- data/ext/boost/preprocessor/comparison/less_equal.hpp +0 -39
- data/ext/boost/preprocessor/comparison/not_equal.hpp +0 -814
- data/ext/boost/preprocessor/config/limits.hpp +0 -29
- data/ext/boost/preprocessor/control.hpp +0 -22
- data/ext/boost/preprocessor/control/deduce_d.hpp +0 -22
- data/ext/boost/preprocessor/control/detail/dmc/while.hpp +0 -536
- data/ext/boost/preprocessor/control/detail/edg/while.hpp +0 -534
- data/ext/boost/preprocessor/control/detail/msvc/while.hpp +0 -277
- data/ext/boost/preprocessor/control/expr_if.hpp +0 -30
- data/ext/boost/preprocessor/debug.hpp +0 -18
- data/ext/boost/preprocessor/debug/assert.hpp +0 -44
- data/ext/boost/preprocessor/debug/line.hpp +0 -35
- data/ext/boost/preprocessor/dec.hpp +0 -17
- data/ext/boost/preprocessor/detail/dmc/auto_rec.hpp +0 -286
- data/ext/boost/preprocessor/detail/is_nullary.hpp +0 -30
- data/ext/boost/preprocessor/detail/is_unary.hpp +0 -30
- data/ext/boost/preprocessor/detail/null.hpp +0 -17
- data/ext/boost/preprocessor/detail/split.hpp +0 -35
- data/ext/boost/preprocessor/enum_params_with_a_default.hpp +0 -17
- data/ext/boost/preprocessor/enum_params_with_defaults.hpp +0 -17
- data/ext/boost/preprocessor/enum_shifted.hpp +0 -17
- data/ext/boost/preprocessor/enum_shifted_params.hpp +0 -17
- data/ext/boost/preprocessor/expand.hpp +0 -17
- data/ext/boost/preprocessor/expr_if.hpp +0 -17
- data/ext/boost/preprocessor/facilities.hpp +0 -21
- data/ext/boost/preprocessor/facilities/apply.hpp +0 -34
- data/ext/boost/preprocessor/facilities/expand.hpp +0 -28
- data/ext/boost/preprocessor/facilities/intercept.hpp +0 -277
- data/ext/boost/preprocessor/facilities/is_1.hpp +0 -23
- data/ext/boost/preprocessor/facilities/is_empty.hpp +0 -43
- data/ext/boost/preprocessor/facilities/is_empty_or_1.hpp +0 -30
- data/ext/boost/preprocessor/for.hpp +0 -17
- data/ext/boost/preprocessor/if.hpp +0 -17
- data/ext/boost/preprocessor/iteration.hpp +0 -19
- data/ext/boost/preprocessor/iteration/detail/bounds/lower2.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/lower3.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/lower4.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/lower5.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper2.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper3.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper4.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/bounds/upper5.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/finish.hpp +0 -99
- data/ext/boost/preprocessor/iteration/detail/iter/forward2.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/forward3.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/forward4.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/forward5.hpp +0 -1338
- data/ext/boost/preprocessor/iteration/detail/iter/reverse1.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse2.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse3.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse4.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/iter/reverse5.hpp +0 -1296
- data/ext/boost/preprocessor/iteration/detail/local.hpp +0 -812
- data/ext/boost/preprocessor/iteration/detail/rlocal.hpp +0 -782
- data/ext/boost/preprocessor/iteration/detail/self.hpp +0 -21
- data/ext/boost/preprocessor/iteration/detail/start.hpp +0 -99
- data/ext/boost/preprocessor/iteration/local.hpp +0 -26
- data/ext/boost/preprocessor/iteration/self.hpp +0 -19
- data/ext/boost/preprocessor/library.hpp +0 -34
- data/ext/boost/preprocessor/limits.hpp +0 -17
- data/ext/boost/preprocessor/list.hpp +0 -35
- data/ext/boost/preprocessor/list/at.hpp +0 -39
- data/ext/boost/preprocessor/list/cat.hpp +0 -42
- data/ext/boost/preprocessor/list/detail/dmc/fold_left.hpp +0 -279
- data/ext/boost/preprocessor/list/detail/edg/fold_left.hpp +0 -536
- data/ext/boost/preprocessor/list/detail/edg/fold_right.hpp +0 -794
- data/ext/boost/preprocessor/list/enum.hpp +0 -41
- data/ext/boost/preprocessor/list/filter.hpp +0 -54
- data/ext/boost/preprocessor/list/first_n.hpp +0 -58
- data/ext/boost/preprocessor/list/for_each.hpp +0 -49
- data/ext/boost/preprocessor/list/for_each_product.hpp +0 -141
- data/ext/boost/preprocessor/list/rest_n.hpp +0 -55
- data/ext/boost/preprocessor/list/size.hpp +0 -58
- data/ext/boost/preprocessor/list/to_tuple.hpp +0 -38
- data/ext/boost/preprocessor/logical.hpp +0 -29
- data/ext/boost/preprocessor/logical/bitnor.hpp +0 -38
- data/ext/boost/preprocessor/logical/bitor.hpp +0 -38
- data/ext/boost/preprocessor/logical/bitxor.hpp +0 -38
- data/ext/boost/preprocessor/logical/nor.hpp +0 -30
- data/ext/boost/preprocessor/logical/not.hpp +0 -30
- data/ext/boost/preprocessor/logical/or.hpp +0 -30
- data/ext/boost/preprocessor/logical/xor.hpp +0 -30
- data/ext/boost/preprocessor/max.hpp +0 -17
- data/ext/boost/preprocessor/min.hpp +0 -17
- data/ext/boost/preprocessor/punctuation.hpp +0 -20
- data/ext/boost/preprocessor/punctuation/paren.hpp +0 -23
- data/ext/boost/preprocessor/punctuation/paren_if.hpp +0 -38
- data/ext/boost/preprocessor/repeat_2nd.hpp +0 -17
- data/ext/boost/preprocessor/repeat_3rd.hpp +0 -17
- data/ext/boost/preprocessor/repeat_from_to.hpp +0 -17
- data/ext/boost/preprocessor/repeat_from_to_2nd.hpp +0 -17
- data/ext/boost/preprocessor/repeat_from_to_3rd.hpp +0 -17
- data/ext/boost/preprocessor/repetition.hpp +0 -32
- data/ext/boost/preprocessor/repetition/deduce_r.hpp +0 -22
- data/ext/boost/preprocessor/repetition/deduce_z.hpp +0 -22
- data/ext/boost/preprocessor/repetition/detail/dmc/for.hpp +0 -536
- data/ext/boost/preprocessor/repetition/detail/edg/for.hpp +0 -534
- data/ext/boost/preprocessor/repetition/detail/msvc/for.hpp +0 -277
- data/ext/boost/preprocessor/repetition/enum_params_with_a_default.hpp +0 -25
- data/ext/boost/preprocessor/repetition/enum_params_with_defaults.hpp +0 -24
- data/ext/boost/preprocessor/repetition/enum_shifted.hpp +0 -68
- data/ext/boost/preprocessor/repetition/enum_shifted_binary_params.hpp +0 -51
- data/ext/boost/preprocessor/repetition/enum_shifted_params.hpp +0 -44
- data/ext/boost/preprocessor/repetition/enum_trailing.hpp +0 -63
- data/ext/boost/preprocessor/repetition/enum_trailing_binary_params.hpp +0 -53
- data/ext/boost/preprocessor/repetition/enum_trailing_params.hpp +0 -38
- data/ext/boost/preprocessor/selection.hpp +0 -18
- data/ext/boost/preprocessor/selection/max.hpp +0 -39
- data/ext/boost/preprocessor/selection/min.hpp +0 -39
- data/ext/boost/preprocessor/seq.hpp +0 -41
- data/ext/boost/preprocessor/seq/cat.hpp +0 -48
- data/ext/boost/preprocessor/seq/detail/split.hpp +0 -284
- data/ext/boost/preprocessor/seq/filter.hpp +0 -54
- data/ext/boost/preprocessor/seq/first_n.hpp +0 -30
- data/ext/boost/preprocessor/seq/fold_left.hpp +0 -1070
- data/ext/boost/preprocessor/seq/fold_right.hpp +0 -288
- data/ext/boost/preprocessor/seq/for_each.hpp +0 -60
- data/ext/boost/preprocessor/seq/for_each_product.hpp +0 -126
- data/ext/boost/preprocessor/seq/insert.hpp +0 -28
- data/ext/boost/preprocessor/seq/pop_back.hpp +0 -29
- data/ext/boost/preprocessor/seq/pop_front.hpp +0 -27
- data/ext/boost/preprocessor/seq/push_back.hpp +0 -19
- data/ext/boost/preprocessor/seq/push_front.hpp +0 -19
- data/ext/boost/preprocessor/seq/remove.hpp +0 -29
- data/ext/boost/preprocessor/seq/replace.hpp +0 -29
- data/ext/boost/preprocessor/seq/rest_n.hpp +0 -30
- data/ext/boost/preprocessor/seq/reverse.hpp +0 -39
- data/ext/boost/preprocessor/seq/subseq.hpp +0 -28
- data/ext/boost/preprocessor/seq/to_array.hpp +0 -28
- data/ext/boost/preprocessor/seq/to_tuple.hpp +0 -27
- data/ext/boost/preprocessor/seq/transform.hpp +0 -48
- data/ext/boost/preprocessor/slot.hpp +0 -17
- data/ext/boost/preprocessor/slot/counter.hpp +0 -25
- data/ext/boost/preprocessor/slot/detail/counter.hpp +0 -269
- data/ext/boost/preprocessor/slot/detail/slot1.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot2.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot3.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot4.hpp +0 -267
- data/ext/boost/preprocessor/slot/detail/slot5.hpp +0 -267
- data/ext/boost/preprocessor/tuple.hpp +0 -24
- data/ext/boost/preprocessor/tuple/reverse.hpp +0 -62
- data/ext/boost/preprocessor/tuple/to_seq.hpp +0 -60
- data/ext/boost/preprocessor/while.hpp +0 -17
- data/ext/boost/preprocessor/wstringize.hpp +0 -29
- data/ext/boost/src/barrier.cpp +0 -42
- data/ext/boost/src/condition.cpp +0 -692
- data/ext/boost/src/exceptions.cpp +0 -147
- data/ext/boost/src/mutex.cpp +0 -561
- data/ext/boost/src/mutex.inl +0 -128
- data/ext/boost/src/once.cpp +0 -213
- data/ext/boost/src/recursive_mutex.cpp +0 -1040
- data/ext/boost/src/thread.cpp +0 -371
- data/ext/boost/src/timeconv.inl +0 -130
- data/ext/boost/src/tss.cpp +0 -251
- data/ext/boost/src/tss_hooks.cpp +0 -212
- data/ext/boost/src/tss_pe.cpp +0 -179
- data/ext/boost/src/xtime.cpp +0 -158
- data/ext/boost/thread/barrier.hpp +0 -44
- data/ext/boost/thread/detail/force_cast.hpp +0 -39
- data/ext/boost/thread/detail/lock.hpp +0 -209
- data/ext/boost/thread/detail/read_write_lock.hpp +0 -1106
- data/ext/boost/thread/detail/singleton.hpp +0 -59
- data/ext/boost/thread/detail/tss_hooks.hpp +0 -78
- data/ext/boost/type_traits/add_cv.hpp +0 -48
- data/ext/boost/type_traits/add_volatile.hpp +0 -47
- data/ext/boost/type_traits/aligned_storage.hpp +0 -13
- data/ext/boost/type_traits/alignment_traits.hpp +0 -15
- data/ext/boost/type_traits/arithmetic_traits.hpp +0 -20
- data/ext/boost/type_traits/array_traits.hpp +0 -15
- data/ext/boost/type_traits/cv_traits.hpp +0 -24
- data/ext/boost/type_traits/decay.hpp +0 -44
- data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +0 -654
- data/ext/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +0 -2759
- data/ext/boost/type_traits/detail/wrap.hpp +0 -18
- data/ext/boost/type_traits/extent.hpp +0 -134
- data/ext/boost/type_traits/has_nothrow_assign.hpp +0 -38
- data/ext/boost/type_traits/has_nothrow_constructor.hpp +0 -38
- data/ext/boost/type_traits/has_nothrow_destructor.hpp +0 -25
- data/ext/boost/type_traits/has_trivial_assign.hpp +0 -50
- data/ext/boost/type_traits/has_trivial_constructor.hpp +0 -42
- data/ext/boost/type_traits/has_trivial_destructor.hpp +0 -42
- data/ext/boost/type_traits/has_virtual_destructor.hpp +0 -25
- data/ext/boost/type_traits/is_base_and_derived.hpp +0 -223
- data/ext/boost/type_traits/is_base_of.hpp +0 -40
- data/ext/boost/type_traits/is_compound.hpp +0 -40
- data/ext/boost/type_traits/is_empty.hpp +0 -211
- data/ext/boost/type_traits/is_floating_point.hpp +0 -27
- data/ext/boost/type_traits/is_fundamental.hpp +0 -41
- data/ext/boost/type_traits/is_member_object_pointer.hpp +0 -46
- data/ext/boost/type_traits/is_object.hpp +0 -53
- data/ext/boost/type_traits/is_polymorphic.hpp +0 -102
- data/ext/boost/type_traits/is_signed.hpp +0 -117
- data/ext/boost/type_traits/is_stateless.hpp +0 -48
- data/ext/boost/type_traits/is_unsigned.hpp +0 -114
- data/ext/boost/type_traits/msvc/remove_all_extents.hpp +0 -47
- data/ext/boost/type_traits/msvc/remove_bounds.hpp +0 -43
- data/ext/boost/type_traits/msvc/remove_const.hpp +0 -143
- data/ext/boost/type_traits/msvc/remove_cv.hpp +0 -190
- data/ext/boost/type_traits/msvc/remove_extent.hpp +0 -43
- data/ext/boost/type_traits/msvc/remove_pointer.hpp +0 -42
- data/ext/boost/type_traits/msvc/remove_reference.hpp +0 -42
- data/ext/boost/type_traits/msvc/remove_volatile.hpp +0 -143
- data/ext/boost/type_traits/msvc/typeof.hpp +0 -50
- data/ext/boost/type_traits/object_traits.hpp +0 -33
- data/ext/boost/type_traits/rank.hpp +0 -81
- data/ext/boost/type_traits/reference_traits.hpp +0 -15
- data/ext/boost/type_traits/remove_all_extents.hpp +0 -48
- data/ext/boost/type_traits/remove_bounds.hpp +0 -48
- data/ext/boost/type_traits/remove_extent.hpp +0 -48
- data/ext/boost/type_traits/remove_volatile.hpp +0 -77
- data/ext/boost/type_traits/same_traits.hpp +0 -15
- data/ext/boost/type_traits/transform_traits.hpp +0 -21
- data/ext/boost/type_traits/transform_traits_spec.hpp +0 -14
- data/ext/boost/utility/in_place_factory.hpp +0 -58
- data/ext/boost/utility/result_of.hpp +0 -66
- data/ext/boost/utility/typed_in_place_factory.hpp +0 -57
- data/ext/boost/utility/value_init.hpp +0 -77
- data/lib/passenger/application_spawner.rb +0 -329
- data/lib/passenger/cgi_fixed.rb +0 -66
- data/lib/passenger/framework_spawner.rb +0 -351
- data/lib/passenger/request_handler.rb +0 -333
- data/lib/passenger/templates/apache_must_be_compiled_with_prefork_mpm.txt.erb +0 -8
- data/test/abstract_server_spec.rb +0 -17
- data/test/application_spawner_spec.rb +0 -80
- data/test/application_spec.rb +0 -25
- data/test/framework_spawner_spec.rb +0 -101
- data/test/message_channel_spec.rb +0 -171
- data/test/minimal_spawner_spec.rb +0 -19
- data/test/spawn_manager_spec.rb +0 -107
- data/test/spawn_server_spec.rb +0 -25
- data/test/spawner_error_handling_spec.rb +0 -35
- data/test/spawner_privilege_lowering_spec.rb +0 -72
- data/test/stub/broken-railsapp/config/environment.rb +0 -2
- data/test/stub/broken-railsapp2/config/environment.rb +0 -3
- data/test/stub/broken-railsapp3/config/environment.rb +0 -4
- data/test/stub/broken-railsapp4/config/environment.rb +0 -1
- data/test/stub/broken-railsapp5/config/environment.rb +0 -1
- data/test/stub/broken-railsapp5/vendor/rails/actionpack/lib/action_controller.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/activerecord/lib/active_record.rb +0 -0
- data/test/stub/broken-railsapp5/vendor/rails/railties/lib/initializer.rb +0 -9
- data/test/stub/mycook/app/controllers/welcome_controller.rb +0 -23
- data/test/stub/railsapp-without-version-spec/app/controllers/foo_controller.rb +0 -5
- data/test/stub/railsapp-without-version-spec/config/environment.rb +0 -58
- data/test/support/apache2_config_writer.rb +0 -44
data/ext/apache2/Application.h
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
* Phusion Passenger - http://www.modrails.com/
|
3
3
|
* Copyright (C) 2008 Phusion
|
4
4
|
*
|
5
|
+
* Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
|
6
|
+
*
|
5
7
|
* This program is free software; you can redistribute it and/or modify
|
6
8
|
* it under the terms of the GNU General Public License as published by
|
7
9
|
* the Free Software Foundation; version 2 of the License.
|
@@ -40,7 +42,7 @@ using namespace std;
|
|
40
42
|
using namespace boost;
|
41
43
|
|
42
44
|
/**
|
43
|
-
* Represents a single Ruby on Rails application instance.
|
45
|
+
* Represents a single Ruby on Rails or Rack application instance.
|
44
46
|
*
|
45
47
|
* @ingroup Support
|
46
48
|
*/
|
@@ -51,12 +53,12 @@ public:
|
|
51
53
|
typedef shared_ptr<Session> SessionPtr;
|
52
54
|
|
53
55
|
/**
|
54
|
-
* Represents the life time of a single request/response pair of a
|
55
|
-
* application.
|
56
|
+
* Represents the life time of a single request/response pair of a
|
57
|
+
* Ruby on Rails or Rack application.
|
56
58
|
*
|
57
|
-
* Session is used to forward a single HTTP request to a Ruby on Rails
|
58
|
-
* A Session has two communication channels: one for reading data
|
59
|
-
* the
|
59
|
+
* Session is used to forward a single HTTP request to a Ruby on Rails/Rack
|
60
|
+
* application. A Session has two communication channels: one for reading data
|
61
|
+
* from the application, and one for writing data to the application.
|
60
62
|
*
|
61
63
|
* In general, a session object is to be used in the following manner:
|
62
64
|
*
|
@@ -64,8 +66,8 @@ public:
|
|
64
66
|
* Then send that string by calling sendHeaders().
|
65
67
|
* -# In case of a POST of PUT request, send the HTTP request body by calling
|
66
68
|
* sendBodyBlock(), possibly multiple times.
|
67
|
-
* -#
|
68
|
-
* -# The HTTP response can now be read through the reader channel (
|
69
|
+
* -# Shutdown the writer channel since you're now done sending data.
|
70
|
+
* -# The HTTP response can now be read through the reader channel (getStream()).
|
69
71
|
* -# When the HTTP response has been read, the session must be closed.
|
70
72
|
* This is done by destroying the Session object.
|
71
73
|
*
|
@@ -73,10 +75,13 @@ public:
|
|
73
75
|
*/
|
74
76
|
class Session {
|
75
77
|
public:
|
78
|
+
/**
|
79
|
+
* Implementing classes might throw arbitrary exceptions.
|
80
|
+
*/
|
76
81
|
virtual ~Session() {}
|
77
82
|
|
78
83
|
/**
|
79
|
-
* Send HTTP request headers to the
|
84
|
+
* Send HTTP request headers to the application. The HTTP headers must be
|
80
85
|
* converted into CGI headers, and then encoded into a string that matches this grammar:
|
81
86
|
*
|
82
87
|
@verbatim
|
@@ -97,16 +102,19 @@ public:
|
|
97
102
|
* @pre headers != NULL
|
98
103
|
* @throws IOException The writer channel has already been closed.
|
99
104
|
* @throws SystemException Something went wrong during writing.
|
105
|
+
* @throws boost::thread_interrupted
|
100
106
|
*/
|
101
107
|
virtual void sendHeaders(const char *headers, unsigned int size) {
|
102
|
-
int
|
103
|
-
if (
|
104
|
-
throw IOException("Cannot write headers to the request handler
|
108
|
+
int stream = getStream();
|
109
|
+
if (stream == -1) {
|
110
|
+
throw IOException("Cannot write headers to the request handler "
|
111
|
+
"because the writer stream has already been closed.");
|
105
112
|
}
|
106
113
|
try {
|
107
|
-
MessageChannel(
|
114
|
+
MessageChannel(stream).writeScalar(headers, size);
|
108
115
|
} catch (const SystemException &e) {
|
109
|
-
throw SystemException("An error occured while writing headers
|
116
|
+
throw SystemException("An error occured while writing headers "
|
117
|
+
"to the request handler", e.code());
|
110
118
|
}
|
111
119
|
}
|
112
120
|
|
@@ -115,13 +123,14 @@ public:
|
|
115
123
|
* @param headers
|
116
124
|
* @throws IOException The writer channel has already been closed.
|
117
125
|
* @throws SystemException Something went wrong during writing.
|
126
|
+
* @throws boost::thread_interrupted
|
118
127
|
*/
|
119
128
|
virtual void sendHeaders(const string &headers) {
|
120
129
|
sendHeaders(headers.c_str(), headers.size());
|
121
130
|
}
|
122
131
|
|
123
132
|
/**
|
124
|
-
* Send a chunk of HTTP request body data to the
|
133
|
+
* Send a chunk of HTTP request body data to the application.
|
125
134
|
* You can call this method as many times as is required to transfer
|
126
135
|
* the entire HTTP request body.
|
127
136
|
*
|
@@ -132,44 +141,63 @@ public:
|
|
132
141
|
* @param size The size, in bytes, of <tt>block</tt>.
|
133
142
|
* @throws IOException The writer channel has already been closed.
|
134
143
|
* @throws SystemException Something went wrong during writing.
|
144
|
+
* @throws boost::thread_interrupted
|
135
145
|
*/
|
136
146
|
virtual void sendBodyBlock(const char *block, unsigned int size) {
|
137
|
-
int
|
138
|
-
if (
|
139
|
-
throw IOException("Cannot write request body block to the
|
147
|
+
int stream = getStream();
|
148
|
+
if (stream == -1) {
|
149
|
+
throw IOException("Cannot write request body block to the "
|
150
|
+
"request handler because the writer stream has "
|
151
|
+
"already been closed.");
|
140
152
|
}
|
141
153
|
try {
|
142
|
-
MessageChannel(
|
154
|
+
MessageChannel(stream).writeRaw(block, size);
|
143
155
|
} catch (const SystemException &e) {
|
144
|
-
throw SystemException("An error occured while
|
156
|
+
throw SystemException("An error occured while sending the "
|
157
|
+
"request body to the request handler", e.code());
|
145
158
|
}
|
146
159
|
}
|
147
160
|
|
148
161
|
/**
|
149
|
-
* Get the
|
162
|
+
* Get the I/O stream's file descriptor. This steam is full-duplex,
|
163
|
+
* and will be automatically closed upon Session's destruction,
|
164
|
+
* unless discardStream() is called.
|
150
165
|
*
|
151
|
-
* @pre The
|
166
|
+
* @pre The stream has not been fully closed.
|
152
167
|
*/
|
153
|
-
virtual int
|
168
|
+
virtual int getStream() const = 0;
|
154
169
|
|
155
170
|
/**
|
156
|
-
*
|
171
|
+
* Indicate that we don't want to read data anymore from the I/O stream.
|
172
|
+
* Calling this method after closeStream() is called will have no effect.
|
173
|
+
*
|
174
|
+
* @throws SystemException Something went wrong.
|
175
|
+
* @throws boost::thread_interrupted
|
157
176
|
*/
|
158
|
-
virtual void
|
177
|
+
virtual void shutdownReader() = 0;
|
159
178
|
|
160
179
|
/**
|
161
|
-
*
|
162
|
-
*
|
163
|
-
* whenever possible.
|
180
|
+
* Indicate that we don't want to write data anymore to the I/O stream.
|
181
|
+
* Calling this method after closeStream() is called will have no effect.
|
164
182
|
*
|
165
|
-
* @
|
183
|
+
* @throws SystemException Something went wrong.
|
184
|
+
* @throws boost::thread_interrupted
|
166
185
|
*/
|
167
|
-
virtual
|
186
|
+
virtual void shutdownWriter() = 0;
|
168
187
|
|
169
188
|
/**
|
170
|
-
* Close the
|
189
|
+
* Close the I/O stream.
|
190
|
+
*
|
191
|
+
* @throws SystemException Something went wrong.
|
192
|
+
* @throws boost::thread_interrupted
|
171
193
|
*/
|
172
|
-
virtual void
|
194
|
+
virtual void closeStream() = 0;
|
195
|
+
|
196
|
+
/**
|
197
|
+
* Discard the I/O stream's file descriptor, so that Session won't automatically
|
198
|
+
* closed it upon Session's destruction.
|
199
|
+
*/
|
200
|
+
virtual void discardStream() = 0;
|
173
201
|
|
174
202
|
/**
|
175
203
|
* Get the process ID of the application instance that belongs to this session.
|
@@ -184,7 +212,6 @@ private:
|
|
184
212
|
class StandardSession: public Session {
|
185
213
|
protected:
|
186
214
|
function<void()> closeCallback;
|
187
|
-
bool readerClosed, writerClosed;
|
188
215
|
int fd;
|
189
216
|
pid_t pid;
|
190
217
|
|
@@ -195,39 +222,52 @@ private:
|
|
195
222
|
this->pid = pid;
|
196
223
|
this->closeCallback = closeCallback;
|
197
224
|
this->fd = fd;
|
198
|
-
readerClosed = writerClosed = false;
|
199
225
|
}
|
200
226
|
|
201
227
|
virtual ~StandardSession() {
|
202
|
-
|
203
|
-
closeWriter();
|
228
|
+
closeStream();
|
204
229
|
closeCallback();
|
205
230
|
}
|
206
231
|
|
207
|
-
virtual int
|
232
|
+
virtual int getStream() const {
|
208
233
|
return fd;
|
209
234
|
}
|
210
235
|
|
211
|
-
virtual void
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
236
|
+
virtual void shutdownReader() {
|
237
|
+
if (fd != -1) {
|
238
|
+
int ret = InterruptableCalls::shutdown(fd, SHUT_RD);
|
239
|
+
if (ret == -1) {
|
240
|
+
throw SystemException("Cannot shutdown the writer stream",
|
241
|
+
errno);
|
242
|
+
}
|
216
243
|
}
|
217
244
|
}
|
218
245
|
|
219
|
-
virtual
|
220
|
-
|
246
|
+
virtual void shutdownWriter() {
|
247
|
+
if (fd != -1) {
|
248
|
+
int ret = InterruptableCalls::shutdown(fd, SHUT_WR);
|
249
|
+
if (ret == -1) {
|
250
|
+
throw SystemException("Cannot shutdown the writer stream",
|
251
|
+
errno);
|
252
|
+
}
|
253
|
+
}
|
221
254
|
}
|
222
255
|
|
223
|
-
virtual void
|
224
|
-
|
225
|
-
|
226
|
-
|
256
|
+
virtual void closeStream() {
|
257
|
+
if (fd != -1) {
|
258
|
+
int ret = InterruptableCalls::close(fd);
|
259
|
+
if (ret == -1) {
|
260
|
+
throw SystemException("Cannot close the session stream",
|
261
|
+
errno);
|
262
|
+
}
|
227
263
|
fd = -1;
|
228
264
|
}
|
229
265
|
}
|
230
266
|
|
267
|
+
virtual void discardStream() {
|
268
|
+
fd = -1;
|
269
|
+
}
|
270
|
+
|
231
271
|
virtual pid_t getPid() const {
|
232
272
|
return pid;
|
233
273
|
}
|
@@ -243,9 +283,9 @@ public:
|
|
243
283
|
/**
|
244
284
|
* Construct a new Application object.
|
245
285
|
*
|
246
|
-
* @param theAppRoot The application root of
|
247
|
-
* contains 'app/', 'public/', 'config/', etc.
|
248
|
-
* but the path does not have to be absolute.
|
286
|
+
* @param theAppRoot The application root of an application. In case of a Rails application,
|
287
|
+
* this is the folder that contains 'app/', 'public/', 'config/', etc.
|
288
|
+
* This must be a valid directory, but the path does not have to be absolute.
|
249
289
|
* @param pid The process ID of this application instance.
|
250
290
|
* @param listenSocketName The name of the listener socket of this application instance.
|
251
291
|
* @param usingAbstractNamespace Whether <tt>listenSocketName</tt> refers to a Unix
|
@@ -261,21 +301,27 @@ public:
|
|
261
301
|
this->listenSocketName = listenSocketName;
|
262
302
|
this->usingAbstractNamespace = usingAbstractNamespace;
|
263
303
|
this->ownerPipe = ownerPipe;
|
264
|
-
P_TRACE(
|
304
|
+
P_TRACE(3, "Application " << this << ": created.");
|
265
305
|
}
|
266
306
|
|
267
307
|
virtual ~Application() {
|
308
|
+
int ret;
|
309
|
+
|
268
310
|
if (ownerPipe != -1) {
|
269
|
-
|
311
|
+
do {
|
312
|
+
ret = close(ownerPipe);
|
313
|
+
} while (ret == -1 && errno == EINTR);
|
270
314
|
}
|
271
315
|
if (!usingAbstractNamespace) {
|
272
|
-
|
316
|
+
do {
|
317
|
+
ret = unlink(listenSocketName.c_str());
|
318
|
+
} while (ret == -1 && errno == EINTR);
|
273
319
|
}
|
274
|
-
P_TRACE(
|
320
|
+
P_TRACE(3, "Application " << this << ": destroyed.");
|
275
321
|
}
|
276
322
|
|
277
323
|
/**
|
278
|
-
* Returns the application root for this
|
324
|
+
* Returns the application root for this application. See the constructor
|
279
325
|
* for information about the application root.
|
280
326
|
*/
|
281
327
|
string getAppRoot() const {
|
@@ -324,7 +370,9 @@ public:
|
|
324
370
|
*
|
325
371
|
* Note that a RoR application instance can only process one
|
326
372
|
* request at the same time, and thus only one session at the same time.
|
327
|
-
*
|
373
|
+
* It's unspecified whether Rack applications can handle multiple simultanous sessions.
|
374
|
+
*
|
375
|
+
* You <b>must</b> close a session when you no longer need if. If you
|
328
376
|
* call connect() without having properly closed a previous session,
|
329
377
|
* you might cause a deadlock because the application instance may be
|
330
378
|
* waiting for you to close the previous session.
|
@@ -367,11 +415,6 @@ public:
|
|
367
415
|
|
368
416
|
return ptr(new StandardSession(pid, closeCallback, fd));
|
369
417
|
}
|
370
|
-
|
371
|
-
void detach() {
|
372
|
-
close(ownerPipe);
|
373
|
-
ownerPipe = -1;
|
374
|
-
}
|
375
418
|
};
|
376
419
|
|
377
420
|
/** Convenient alias for Application smart pointer. */
|
@@ -2,6 +2,8 @@
|
|
2
2
|
* Phusion Passenger - http://www.modrails.com/
|
3
3
|
* Copyright (C) 2008 Phusion
|
4
4
|
*
|
5
|
+
* Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
|
6
|
+
*
|
5
7
|
* This program is free software; you can redistribute it and/or modify
|
6
8
|
* it under the terms of the GNU General Public License as published by
|
7
9
|
* the Free Software Foundation; version 2 of the License.
|
@@ -31,13 +33,13 @@ using namespace boost;
|
|
31
33
|
/**
|
32
34
|
* A persistent pool of Applications.
|
33
35
|
*
|
34
|
-
* Spawning Ruby on Rails
|
36
|
+
* Spawning application instances, especially Ruby on Rails ones, is a very expensive operation.
|
35
37
|
* Despite best efforts to make the operation less expensive (see SpawnManager),
|
36
38
|
* it remains expensive compared to the cost of processing an HTTP request/response.
|
37
39
|
* So, in order to solve this, some sort of caching/pooling mechanism will be required.
|
38
40
|
* ApplicationPool provides this.
|
39
41
|
*
|
40
|
-
* Normally, one would use SpawnManager to spawn a new RoR application instance,
|
42
|
+
* Normally, one would use SpawnManager to spawn a new RoR/Rack application instance,
|
41
43
|
* then use Application::connect() to create a new session with that application
|
42
44
|
* instance, and then use the returned Session object to send the request and
|
43
45
|
* to read the HTTP response. ApplicationPool replaces the first step with
|
@@ -51,13 +53,13 @@ using namespace boost;
|
|
51
53
|
* // Send the request headers and request body data.
|
52
54
|
* session->sendHeaders(...);
|
53
55
|
* session->sendBodyBlock(...);
|
54
|
-
* // Done sending data, so we
|
55
|
-
* session->
|
56
|
+
* // Done sending data, so we shutdown the writer stream.
|
57
|
+
* session->shutdownWriter();
|
56
58
|
*
|
57
59
|
* // Now read the HTTP response.
|
58
|
-
* string responseData = readAllDataFromSocket(session->
|
59
|
-
* // Done reading data, so we
|
60
|
-
* session->
|
60
|
+
* string responseData = readAllDataFromSocket(session->getStream());
|
61
|
+
* // Done reading data, so we shutdown the reader stream.
|
62
|
+
* session->shutdownReader();
|
61
63
|
*
|
62
64
|
* // This session has now finished, so we close the session by resetting
|
63
65
|
* // the smart pointer to NULL (thereby destroying the Session object).
|
@@ -69,7 +71,7 @@ using namespace boost;
|
|
69
71
|
* @endcode
|
70
72
|
*
|
71
73
|
* Internally, ApplicationPool::get() will keep spawned applications instances in
|
72
|
-
* memory, and reuse them if possible. It
|
74
|
+
* memory, and reuse them if possible. It wil* @throw l try to keep spawning to a minimum.
|
73
75
|
* Furthermore, if an application instance hasn't been used for a while, it
|
74
76
|
* will be automatically shutdown in order to save memory. Restart requests are
|
75
77
|
* honored: if an application has the file 'restart.txt' in its 'tmp' folder,
|
@@ -105,16 +107,25 @@ public:
|
|
105
107
|
* directory, but does not have to be an absolute path.
|
106
108
|
* @param lowerPrivilege Whether to lower the application's privileges.
|
107
109
|
* @param lowestUser The user to fallback to if lowering privilege fails.
|
110
|
+
* @param environment The RAILS_ENV/RACK_ENV environment that should be used. May not be empty.
|
111
|
+
* @param spawnMethod The spawn method to use. Either "smart" or "conservative".
|
112
|
+
* See the Ruby class SpawnManager for details.
|
113
|
+
* @param appType The application type. Either "rails" or "rack".
|
108
114
|
* @return A session object.
|
109
115
|
* @throw SpawnException An attempt was made to spawn a new application instance, but that attempt failed.
|
116
|
+
* @throw BusyException The application pool is too busy right now, and cannot
|
117
|
+
* satisfy the request. One should either abort, or try again later.
|
110
118
|
* @throw IOException Something else went wrong.
|
119
|
+
* @throw thread_interrupted
|
111
120
|
* @note Applications are uniquely identified with the application root
|
112
121
|
* string. So although <tt>appRoot</tt> does not have to be absolute, it
|
113
122
|
* should be. If one calls <tt>get("/home/foo")</tt> and
|
114
123
|
* <tt>get("/home/../home/foo")</tt>, then ApplicationPool will think
|
115
124
|
* they're 2 different applications, and thus will spawn 2 application instances.
|
116
125
|
*/
|
117
|
-
virtual Application::SessionPtr get(const string &appRoot, bool lowerPrivilege = true,
|
126
|
+
virtual Application::SessionPtr get(const string &appRoot, bool lowerPrivilege = true,
|
127
|
+
const string &lowestUser = "nobody", const string &environment = "production",
|
128
|
+
const string &spawnMethod = "smart", const string &appType = "rails") = 0;
|
118
129
|
|
119
130
|
/**
|
120
131
|
* Clear all application instances that are currently in the pool.
|
@@ -153,6 +164,15 @@ public:
|
|
153
164
|
*/
|
154
165
|
virtual unsigned int getCount() const = 0;
|
155
166
|
|
167
|
+
/**
|
168
|
+
* Set a hard limit on the number of application instances that a single application
|
169
|
+
* may spawn in this ApplicationPool. The exact behavior depends on the used algorithm,
|
170
|
+
* and is not specified by these API docs.
|
171
|
+
*
|
172
|
+
* It is allowed to set a limit lower than the current number of spawned applications.
|
173
|
+
*/
|
174
|
+
virtual void setMaxPerApp(unsigned int max) = 0;
|
175
|
+
|
156
176
|
/**
|
157
177
|
* Get the process ID of the spawn server that is used.
|
158
178
|
*
|
@@ -0,0 +1,654 @@
|
|
1
|
+
/*
|
2
|
+
* Phusion Passenger - http://www.modrails.com/
|
3
|
+
* Copyright (C) 2008 Phusion
|
4
|
+
*
|
5
|
+
* Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
|
6
|
+
*
|
7
|
+
* This program is free software; you can redistribute it and/or modify
|
8
|
+
* it under the terms of the GNU General Public License as published by
|
9
|
+
* the Free Software Foundation; version 2 of the License.
|
10
|
+
*
|
11
|
+
* This program is distributed in the hope that it will be useful,
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
* GNU General Public License for more details.
|
15
|
+
*
|
16
|
+
* You should have received a copy of the GNU General Public License along
|
17
|
+
* with this program; if not, write to the Free Software Foundation, Inc.,
|
18
|
+
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
19
|
+
*/
|
20
|
+
#ifndef _PASSENGER_APPLICATION_POOL_SERVER_H_
|
21
|
+
#define _PASSENGER_APPLICATION_POOL_SERVER_H_
|
22
|
+
|
23
|
+
#include <boost/shared_ptr.hpp>
|
24
|
+
#include <boost/thread/mutex.hpp>
|
25
|
+
|
26
|
+
#include <sys/types.h>
|
27
|
+
#include <sys/stat.h>
|
28
|
+
#include <sys/wait.h>
|
29
|
+
#include <sys/socket.h>
|
30
|
+
#include <cstdio>
|
31
|
+
#include <cstdlib>
|
32
|
+
#include <limits.h>
|
33
|
+
#include <errno.h>
|
34
|
+
#include <unistd.h>
|
35
|
+
#include <signal.h>
|
36
|
+
|
37
|
+
#include "MessageChannel.h"
|
38
|
+
#include "ApplicationPool.h"
|
39
|
+
#include "Application.h"
|
40
|
+
#include "Exceptions.h"
|
41
|
+
#include "Logging.h"
|
42
|
+
#include "System.h"
|
43
|
+
|
44
|
+
namespace Passenger {
|
45
|
+
|
46
|
+
using namespace std;
|
47
|
+
using namespace boost;
|
48
|
+
|
49
|
+
|
50
|
+
/**
|
51
|
+
* Multi-process usage support for ApplicationPool.
|
52
|
+
*
|
53
|
+
* ApplicationPoolServer implements a client/server architecture for ApplicationPool.
|
54
|
+
* This allows one to use ApplicationPool in a multi-process environment (unlike
|
55
|
+
* StandardApplicationPool). The cache/pool data is stored in the server. Different
|
56
|
+
* processes can then access the pool through the server.
|
57
|
+
*
|
58
|
+
* ApplicationPoolServer itself does not inherit ApplicationPool. Instead, it returns
|
59
|
+
* an ApplicationPool object via the connect() call. For example:
|
60
|
+
* @code
|
61
|
+
* // Create an ApplicationPoolServer.
|
62
|
+
* ApplicationPoolServer server(...);
|
63
|
+
*
|
64
|
+
* // Now fork a child process, like Apache's prefork MPM eventually will.
|
65
|
+
* pid_t pid = fork();
|
66
|
+
* if (pid == 0) {
|
67
|
+
* // Child process
|
68
|
+
*
|
69
|
+
* // Connect to the server. After connection, we have an ApplicationPool
|
70
|
+
* // object!
|
71
|
+
* ApplicationPoolPtr pool(server.connect());
|
72
|
+
*
|
73
|
+
* // We don't need to connect to the server anymore, so we detach from it.
|
74
|
+
* // This frees up some resources, such as file descriptors.
|
75
|
+
* server.detach();
|
76
|
+
*
|
77
|
+
* ApplicationPool::SessionPtr session(pool->get("/home/webapps/foo"));
|
78
|
+
* do_something_with(session);
|
79
|
+
*
|
80
|
+
* _exit(0);
|
81
|
+
* } else {
|
82
|
+
* // Parent process
|
83
|
+
* waitpid(pid, NULL, 0);
|
84
|
+
* }
|
85
|
+
* @endcode
|
86
|
+
*
|
87
|
+
* <h2>Implementation notes</h2>
|
88
|
+
*
|
89
|
+
* <h3>Separate server executable</h3>
|
90
|
+
* The actual server is implemented in ApplicationPoolServerExecutable.cpp, this class is
|
91
|
+
* just a convenience class for starting/stopping the server executable and connecting
|
92
|
+
* to it.
|
93
|
+
*
|
94
|
+
* In the past, the server logic itself was implemented in this class. This implies that
|
95
|
+
* the ApplicationPool server ran inside the Apache process. This presented us with several
|
96
|
+
* problems:
|
97
|
+
* - Because of the usage of threads in the ApplicationPool server, the Apache VM size would
|
98
|
+
* go way up. This gave people the (wrong) impression that Passenger uses a lot of memory,
|
99
|
+
* or that it leaks memory.
|
100
|
+
* - Although it's not entirely confirmed, we suspect that it caused heap fragmentation as
|
101
|
+
* well. Apache allocates lots and lots of small objects on the heap, and ApplicationPool
|
102
|
+
* server isn't exactly helping. This too gave people the (wrong) impression that
|
103
|
+
* Passenger leaks memory.
|
104
|
+
* - It would unnecessarily bloat the VM size of Apache worker processes.
|
105
|
+
* - We had to resort to all kinds of tricks to make sure that fork()ing a process doesn't
|
106
|
+
* result in file descriptor leaks.
|
107
|
+
* - Despite everything, there was still a small chance that file descriptor leaks would
|
108
|
+
* occur, and this could not be fixed. The reason for this is that the Apache control
|
109
|
+
* process may call fork() right after the ApplicationPool server has established a new
|
110
|
+
* connection with a client.
|
111
|
+
*
|
112
|
+
* Because of these problems, it was decided to split the ApplicationPool server to a
|
113
|
+
* separate executable. This comes with no performance hit.
|
114
|
+
*
|
115
|
+
* <h3>Anonymous server socket</h3>
|
116
|
+
* Notice that ApplicationPoolServer does do not use TCP sockets at all, or even named Unix
|
117
|
+
* sockets, despite being a server that can handle multiple clients! So ApplicationPoolServer
|
118
|
+
* will expose no open ports or temporary Unix socket files. Only child processes are able
|
119
|
+
* to use the ApplicationPoolServer.
|
120
|
+
*
|
121
|
+
* This is implemented through anonymous Unix sockets (<tt>socketpair()</tt>) and file descriptor
|
122
|
+
* passing. It allows one to emulate <tt>accept()</tt>. ApplicationPoolServer is connected to
|
123
|
+
* the server executable through a Unix socket pair. connect() sends a connect request to the
|
124
|
+
* server through that socket. The server will then create a new socket pair, and pass one of
|
125
|
+
* them back. This new socket pair represents the newly established connection.
|
126
|
+
*
|
127
|
+
* @ingroup Support
|
128
|
+
*/
|
129
|
+
class ApplicationPoolServer {
|
130
|
+
private:
|
131
|
+
/**
|
132
|
+
* Contains data shared between RemoteSession and Client.
|
133
|
+
* Since RemoteSession and Client have different life times, i.e. one may be
|
134
|
+
* destroyed before the other, they both use a smart pointer that points to
|
135
|
+
* a SharedData. This way, the SharedData object is only destroyed when
|
136
|
+
* both the RemoteSession and the Client object has been destroyed.
|
137
|
+
*/
|
138
|
+
struct SharedData {
|
139
|
+
/**
|
140
|
+
* The socket connection to the ApplicationPool server, as was
|
141
|
+
* established by ApplicationPoolServer::connect().
|
142
|
+
*/
|
143
|
+
int server;
|
144
|
+
|
145
|
+
mutex lock;
|
146
|
+
|
147
|
+
~SharedData() {
|
148
|
+
int ret;
|
149
|
+
do {
|
150
|
+
ret = close(server);
|
151
|
+
} while (ret == -1 && errno == EINTR);
|
152
|
+
}
|
153
|
+
};
|
154
|
+
|
155
|
+
typedef shared_ptr<SharedData> SharedDataPtr;
|
156
|
+
|
157
|
+
/**
|
158
|
+
* An Application::Session which works together with ApplicationPoolServer.
|
159
|
+
*/
|
160
|
+
class RemoteSession: public Application::Session {
|
161
|
+
private:
|
162
|
+
SharedDataPtr data;
|
163
|
+
int id;
|
164
|
+
int fd;
|
165
|
+
pid_t pid;
|
166
|
+
public:
|
167
|
+
RemoteSession(SharedDataPtr data, pid_t pid, int id, int fd) {
|
168
|
+
this->data = data;
|
169
|
+
this->pid = pid;
|
170
|
+
this->id = id;
|
171
|
+
this->fd = fd;
|
172
|
+
}
|
173
|
+
|
174
|
+
virtual ~RemoteSession() {
|
175
|
+
closeStream();
|
176
|
+
mutex::scoped_lock(data->lock);
|
177
|
+
MessageChannel(data->server).write("close", toString(id).c_str(), NULL);
|
178
|
+
}
|
179
|
+
|
180
|
+
virtual int getStream() const {
|
181
|
+
return fd;
|
182
|
+
}
|
183
|
+
|
184
|
+
virtual void shutdownReader() {
|
185
|
+
if (fd != -1) {
|
186
|
+
int ret = InterruptableCalls::shutdown(fd, SHUT_RD);
|
187
|
+
if (ret == -1) {
|
188
|
+
throw SystemException("Cannot shutdown the writer stream",
|
189
|
+
errno);
|
190
|
+
}
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
194
|
+
virtual void shutdownWriter() {
|
195
|
+
if (fd != -1) {
|
196
|
+
int ret = InterruptableCalls::shutdown(fd, SHUT_WR);
|
197
|
+
if (ret == -1) {
|
198
|
+
throw SystemException("Cannot shutdown the writer stream",
|
199
|
+
errno);
|
200
|
+
}
|
201
|
+
}
|
202
|
+
}
|
203
|
+
|
204
|
+
virtual void closeStream() {
|
205
|
+
if (fd != -1) {
|
206
|
+
int ret = InterruptableCalls::close(fd);
|
207
|
+
if (ret == -1) {
|
208
|
+
throw SystemException("Cannot close the session stream",
|
209
|
+
errno);
|
210
|
+
}
|
211
|
+
fd = -1;
|
212
|
+
}
|
213
|
+
}
|
214
|
+
|
215
|
+
virtual void discardStream() {
|
216
|
+
fd = -1;
|
217
|
+
}
|
218
|
+
|
219
|
+
virtual pid_t getPid() const {
|
220
|
+
return pid;
|
221
|
+
}
|
222
|
+
};
|
223
|
+
|
224
|
+
/**
|
225
|
+
* An ApplicationPool implementation that works together with ApplicationPoolServer.
|
226
|
+
* It doesn't do much by itself, its job is mostly to forward queries/commands to
|
227
|
+
* the server and returning the result. Most of the logic is in the server executable.
|
228
|
+
*/
|
229
|
+
class Client: public ApplicationPool {
|
230
|
+
private:
|
231
|
+
// The smart pointer only serves to keep the shared data alive.
|
232
|
+
// We access the shared data via a normal pointer, for performance.
|
233
|
+
SharedDataPtr dataSmartPointer;
|
234
|
+
SharedData *data;
|
235
|
+
|
236
|
+
public:
|
237
|
+
/**
|
238
|
+
* Create a new Client.
|
239
|
+
*
|
240
|
+
* @param sock The newly established socket connection with the ApplicationPoolServer.
|
241
|
+
*/
|
242
|
+
Client(int sock) {
|
243
|
+
dataSmartPointer = ptr(new SharedData());
|
244
|
+
data = dataSmartPointer.get();
|
245
|
+
data->server = sock;
|
246
|
+
}
|
247
|
+
|
248
|
+
virtual void clear() {
|
249
|
+
MessageChannel channel(data->server);
|
250
|
+
mutex::scoped_lock l(data->lock);
|
251
|
+
channel.write("clear", NULL);
|
252
|
+
}
|
253
|
+
|
254
|
+
virtual void setMaxIdleTime(unsigned int seconds) {
|
255
|
+
MessageChannel channel(data->server);
|
256
|
+
mutex::scoped_lock l(data->lock);
|
257
|
+
channel.write("setMaxIdleTime", toString(seconds).c_str(), NULL);
|
258
|
+
}
|
259
|
+
|
260
|
+
virtual void setMax(unsigned int max) {
|
261
|
+
MessageChannel channel(data->server);
|
262
|
+
mutex::scoped_lock l(data->lock);
|
263
|
+
channel.write("setMax", toString(max).c_str(), NULL);
|
264
|
+
}
|
265
|
+
|
266
|
+
virtual unsigned int getActive() const {
|
267
|
+
MessageChannel channel(data->server);
|
268
|
+
mutex::scoped_lock l(data->lock);
|
269
|
+
vector<string> args;
|
270
|
+
|
271
|
+
channel.write("getActive", NULL);
|
272
|
+
channel.read(args);
|
273
|
+
return atoi(args[0].c_str());
|
274
|
+
}
|
275
|
+
|
276
|
+
virtual unsigned int getCount() const {
|
277
|
+
MessageChannel channel(data->server);
|
278
|
+
mutex::scoped_lock l(data->lock);
|
279
|
+
vector<string> args;
|
280
|
+
|
281
|
+
channel.write("getCount", NULL);
|
282
|
+
channel.read(args);
|
283
|
+
return atoi(args[0].c_str());
|
284
|
+
}
|
285
|
+
|
286
|
+
virtual void setMaxPerApp(unsigned int max) {
|
287
|
+
MessageChannel channel(data->server);
|
288
|
+
mutex::scoped_lock l(data->lock);
|
289
|
+
channel.write("setMaxPerApp", toString(max).c_str(), NULL);
|
290
|
+
}
|
291
|
+
|
292
|
+
virtual pid_t getSpawnServerPid() const {
|
293
|
+
this_thread::disable_syscall_interruption dsi;
|
294
|
+
MessageChannel channel(data->server);
|
295
|
+
mutex::scoped_lock l(data->lock);
|
296
|
+
vector<string> args;
|
297
|
+
|
298
|
+
channel.write("getSpawnServerPid", NULL);
|
299
|
+
channel.read(args);
|
300
|
+
return atoi(args[0].c_str());
|
301
|
+
}
|
302
|
+
|
303
|
+
virtual Application::SessionPtr get(
|
304
|
+
const string &appRoot,
|
305
|
+
bool lowerPrivilege = true,
|
306
|
+
const string &lowestUser = "nobody",
|
307
|
+
const string &environment = "production",
|
308
|
+
const string &spawnMethod = "smart",
|
309
|
+
const string &appType = "rails"
|
310
|
+
) {
|
311
|
+
this_thread::disable_syscall_interruption dsi;
|
312
|
+
MessageChannel channel(data->server);
|
313
|
+
mutex::scoped_lock l(data->lock);
|
314
|
+
vector<string> args;
|
315
|
+
int stream;
|
316
|
+
bool result;
|
317
|
+
|
318
|
+
try {
|
319
|
+
channel.write("get", appRoot.c_str(),
|
320
|
+
(lowerPrivilege) ? "true" : "false",
|
321
|
+
lowestUser.c_str(),
|
322
|
+
environment.c_str(),
|
323
|
+
spawnMethod.c_str(),
|
324
|
+
appType.c_str(),
|
325
|
+
NULL);
|
326
|
+
} catch (const SystemException &) {
|
327
|
+
throw IOException("The ApplicationPool server exited unexpectedly.");
|
328
|
+
}
|
329
|
+
try {
|
330
|
+
result = channel.read(args);
|
331
|
+
} catch (const SystemException &e) {
|
332
|
+
throw SystemException("Could not read a message from "
|
333
|
+
"the ApplicationPool server", e.code());
|
334
|
+
}
|
335
|
+
if (!result) {
|
336
|
+
throw IOException("The ApplicationPool server unexpectedly "
|
337
|
+
"closed the connection.");
|
338
|
+
}
|
339
|
+
if (args[0] == "ok") {
|
340
|
+
stream = channel.readFileDescriptor();
|
341
|
+
return ptr(new RemoteSession(dataSmartPointer,
|
342
|
+
atoi(args[1]), atoi(args[2]), stream));
|
343
|
+
} else if (args[0] == "SpawnException") {
|
344
|
+
if (args[2] == "true") {
|
345
|
+
string errorPage;
|
346
|
+
|
347
|
+
if (!channel.readScalar(errorPage)) {
|
348
|
+
throw IOException("The ApplicationPool server "
|
349
|
+
"unexpectedly closed the connection.");
|
350
|
+
}
|
351
|
+
throw SpawnException(args[1], errorPage);
|
352
|
+
} else {
|
353
|
+
throw SpawnException(args[1]);
|
354
|
+
}
|
355
|
+
} else if (args[0] == "BusyException") {
|
356
|
+
throw BusyException(args[1]);
|
357
|
+
} else if (args[0] == "IOException") {
|
358
|
+
throw IOException(args[1]);
|
359
|
+
} else {
|
360
|
+
throw IOException("The ApplicationPool server returned "
|
361
|
+
"an unknown message: " + toString(args));
|
362
|
+
}
|
363
|
+
}
|
364
|
+
};
|
365
|
+
|
366
|
+
|
367
|
+
static const int SERVER_SOCKET_FD = 3;
|
368
|
+
|
369
|
+
string m_serverExecutable;
|
370
|
+
string m_spawnServerCommand;
|
371
|
+
string m_logFile;
|
372
|
+
string m_rubyCommand;
|
373
|
+
string m_user;
|
374
|
+
string statusReportFIFO;
|
375
|
+
|
376
|
+
/**
|
377
|
+
* The PID of the ApplicationPool server process. If no server process
|
378
|
+
* is running, then <tt>serverPid == 0</tt>.
|
379
|
+
*
|
380
|
+
* @invariant
|
381
|
+
* if serverPid == 0:
|
382
|
+
* serverSocket == -1
|
383
|
+
*/
|
384
|
+
pid_t serverPid;
|
385
|
+
|
386
|
+
/**
|
387
|
+
* The connection to the ApplicationPool server process. If no server
|
388
|
+
* process is running, then <tt>serverSocket == -1</tt>.
|
389
|
+
*
|
390
|
+
* @invariant
|
391
|
+
* if serverPid == 0:
|
392
|
+
* serverSocket == -1
|
393
|
+
*/
|
394
|
+
int serverSocket;
|
395
|
+
|
396
|
+
/**
|
397
|
+
* Shutdown the currently running ApplicationPool server process.
|
398
|
+
*
|
399
|
+
* @pre System call interruption is disabled.
|
400
|
+
* @pre serverSocket != -1 && serverPid != 0
|
401
|
+
* @post serverSocket == -1 && serverPid == 0
|
402
|
+
*/
|
403
|
+
void shutdownServer() {
|
404
|
+
this_thread::disable_syscall_interruption dsi;
|
405
|
+
int ret;
|
406
|
+
time_t begin;
|
407
|
+
bool done = false;
|
408
|
+
|
409
|
+
InterruptableCalls::close(serverSocket);
|
410
|
+
if (!statusReportFIFO.empty()) {
|
411
|
+
do {
|
412
|
+
ret = unlink(statusReportFIFO.c_str());
|
413
|
+
} while (ret == -1 && errno == EINTR);
|
414
|
+
}
|
415
|
+
|
416
|
+
P_TRACE(2, "Waiting for existing ApplicationPoolServerExecutable (PID " <<
|
417
|
+
serverPid << ") to exit...");
|
418
|
+
begin = InterruptableCalls::time(NULL);
|
419
|
+
while (!done && InterruptableCalls::time(NULL) < begin + 5) {
|
420
|
+
/*
|
421
|
+
* Some Apache modules fork(), but don't close file descriptors.
|
422
|
+
* mod_wsgi is one such example. Because of that, closing serverSocket
|
423
|
+
* won't always cause the ApplicationPool server to exit. So we send it a
|
424
|
+
* signal.
|
425
|
+
*/
|
426
|
+
InterruptableCalls::kill(serverPid, SIGINT);
|
427
|
+
|
428
|
+
ret = InterruptableCalls::waitpid(serverPid, NULL, WNOHANG);
|
429
|
+
done = ret > 0 || ret == -1;
|
430
|
+
if (!done) {
|
431
|
+
InterruptableCalls::usleep(100000);
|
432
|
+
}
|
433
|
+
}
|
434
|
+
if (done) {
|
435
|
+
P_TRACE(2, "ApplicationPoolServerExecutable exited.");
|
436
|
+
} else {
|
437
|
+
P_DEBUG("ApplicationPoolServerExecutable not exited in time. Killing it...");
|
438
|
+
InterruptableCalls::kill(serverPid, SIGTERM);
|
439
|
+
InterruptableCalls::waitpid(serverPid, NULL, 0);
|
440
|
+
}
|
441
|
+
|
442
|
+
serverSocket = -1;
|
443
|
+
serverPid = 0;
|
444
|
+
}
|
445
|
+
|
446
|
+
/**
|
447
|
+
* Start an ApplicationPool server process. If there's already one running,
|
448
|
+
* then the currently running one will be shutdown.
|
449
|
+
*
|
450
|
+
* @pre System call interruption is disabled.
|
451
|
+
* @post serverSocket != -1 && serverPid != 0
|
452
|
+
* @throw SystemException Something went wrong.
|
453
|
+
*/
|
454
|
+
void restartServer() {
|
455
|
+
int fds[2];
|
456
|
+
pid_t pid;
|
457
|
+
|
458
|
+
if (serverPid != 0) {
|
459
|
+
shutdownServer();
|
460
|
+
}
|
461
|
+
|
462
|
+
if (InterruptableCalls::socketpair(AF_UNIX, SOCK_STREAM, 0, fds) == -1) {
|
463
|
+
throw SystemException("Cannot create a Unix socket pair", errno);
|
464
|
+
}
|
465
|
+
|
466
|
+
createStatusReportFIFO();
|
467
|
+
|
468
|
+
pid = InterruptableCalls::fork();
|
469
|
+
if (pid == 0) { // Child process.
|
470
|
+
dup2(fds[0], SERVER_SOCKET_FD);
|
471
|
+
|
472
|
+
// Close all unnecessary file descriptors
|
473
|
+
for (long i = sysconf(_SC_OPEN_MAX) - 1; i > SERVER_SOCKET_FD; i--) {
|
474
|
+
close(i);
|
475
|
+
}
|
476
|
+
|
477
|
+
execlp(
|
478
|
+
#if 0
|
479
|
+
"valgrind",
|
480
|
+
"valgrind",
|
481
|
+
#else
|
482
|
+
m_serverExecutable.c_str(),
|
483
|
+
#endif
|
484
|
+
m_serverExecutable.c_str(),
|
485
|
+
toString(Passenger::getLogLevel()).c_str(),
|
486
|
+
m_spawnServerCommand.c_str(),
|
487
|
+
m_logFile.c_str(),
|
488
|
+
m_rubyCommand.c_str(),
|
489
|
+
m_user.c_str(),
|
490
|
+
statusReportFIFO.c_str(),
|
491
|
+
NULL);
|
492
|
+
int e = errno;
|
493
|
+
fprintf(stderr, "*** Passenger ERROR: Cannot execute %s: %s (%d)\n",
|
494
|
+
m_serverExecutable.c_str(), strerror(e), e);
|
495
|
+
fflush(stderr);
|
496
|
+
_exit(1);
|
497
|
+
} else if (pid == -1) { // Error.
|
498
|
+
InterruptableCalls::close(fds[0]);
|
499
|
+
InterruptableCalls::close(fds[1]);
|
500
|
+
throw SystemException("Cannot create a new process", errno);
|
501
|
+
} else { // Parent process.
|
502
|
+
InterruptableCalls::close(fds[0]);
|
503
|
+
serverSocket = fds[1];
|
504
|
+
serverPid = pid;
|
505
|
+
}
|
506
|
+
}
|
507
|
+
|
508
|
+
void createStatusReportFIFO() {
|
509
|
+
char filename[PATH_MAX];
|
510
|
+
int ret;
|
511
|
+
|
512
|
+
snprintf(filename, sizeof(filename), "/tmp/passenger_status.%d.fifo",
|
513
|
+
getpid());
|
514
|
+
filename[PATH_MAX - 1] = '\0';
|
515
|
+
do {
|
516
|
+
ret = mkfifo(filename, S_IRUSR | S_IWUSR);
|
517
|
+
} while (ret == -1 && errno == EINTR);
|
518
|
+
if (ret == -1 && errno != EEXIST) {
|
519
|
+
int e = errno;
|
520
|
+
P_WARN("*** WARNING: Could not create FIFO '" << filename <<
|
521
|
+
"': " << strerror(e) << " (" << e << ")" << endl <<
|
522
|
+
"Disabling Passenger ApplicationPool status reporting.");
|
523
|
+
statusReportFIFO = "";
|
524
|
+
} else {
|
525
|
+
statusReportFIFO = filename;
|
526
|
+
}
|
527
|
+
}
|
528
|
+
|
529
|
+
public:
|
530
|
+
/**
|
531
|
+
* Create a new ApplicationPoolServer object.
|
532
|
+
*
|
533
|
+
* @param serverExecutable The filename of the ApplicationPool server
|
534
|
+
* executable to use.
|
535
|
+
* @param spawnServerCommand The filename of the spawn server to use.
|
536
|
+
* @param logFile Specify a log file that the spawn server should use.
|
537
|
+
* Messages on its standard output and standard error channels
|
538
|
+
* will be written to this log file. If an empty string is
|
539
|
+
* specified, no log file will be used, and the spawn server
|
540
|
+
* will use the same standard output/error channels as the
|
541
|
+
* current process.
|
542
|
+
* @param rubyCommand The Ruby interpreter's command.
|
543
|
+
* @param user The user that the spawn manager should run as. This
|
544
|
+
* parameter only has effect if the current process is
|
545
|
+
* running as root. If the empty string is given, or if
|
546
|
+
* the <tt>user</tt> is not a valid username, then
|
547
|
+
* the spawn manager will be run as the current user.
|
548
|
+
* @throws SystemException An error occured while trying to setup the spawn server
|
549
|
+
* or the server socket.
|
550
|
+
* @throws IOException The specified log file could not be opened.
|
551
|
+
*/
|
552
|
+
ApplicationPoolServer(const string &serverExecutable,
|
553
|
+
const string &spawnServerCommand,
|
554
|
+
const string &logFile = "",
|
555
|
+
const string &rubyCommand = "ruby",
|
556
|
+
const string &user = "")
|
557
|
+
: m_serverExecutable(serverExecutable),
|
558
|
+
m_spawnServerCommand(spawnServerCommand),
|
559
|
+
m_logFile(logFile),
|
560
|
+
m_rubyCommand(rubyCommand),
|
561
|
+
m_user(user) {
|
562
|
+
serverSocket = -1;
|
563
|
+
serverPid = 0;
|
564
|
+
this_thread::disable_syscall_interruption dsi;
|
565
|
+
restartServer();
|
566
|
+
}
|
567
|
+
|
568
|
+
~ApplicationPoolServer() {
|
569
|
+
if (serverSocket != -1) {
|
570
|
+
this_thread::disable_syscall_interruption dsi;
|
571
|
+
shutdownServer();
|
572
|
+
}
|
573
|
+
}
|
574
|
+
|
575
|
+
/**
|
576
|
+
* Connects to the server and returns a usable ApplicationPool object.
|
577
|
+
* All cache/pool data of this ApplicationPool is actually stored on
|
578
|
+
* the server and shared with other clients, but that is totally
|
579
|
+
* transparent to the user of the ApplicationPool object.
|
580
|
+
*
|
581
|
+
* @note
|
582
|
+
* All methods of the returned ApplicationPool object may throw
|
583
|
+
* SystemException, IOException or boost::thread_interrupted.
|
584
|
+
*
|
585
|
+
* @warning
|
586
|
+
* One may only use the returned ApplicationPool object for handling
|
587
|
+
* one session at a time. For example, don't do stuff like this:
|
588
|
+
* @code
|
589
|
+
* ApplicationPoolPtr pool = server.connect();
|
590
|
+
* Application::SessionPtr session1 = pool->get(...);
|
591
|
+
* Application::SessionPtr session2 = pool->get(...);
|
592
|
+
* @endcode
|
593
|
+
* Otherwise, a deadlock can occur under certain circumstances.
|
594
|
+
* @warning
|
595
|
+
* Instead, one should call connect() multiple times:
|
596
|
+
* @code
|
597
|
+
* ApplicationPoolPtr pool1 = server.connect();
|
598
|
+
* Application::SessionPtr session1 = pool1->get(...);
|
599
|
+
*
|
600
|
+
* ApplicationPoolPtr pool2 = server.connect();
|
601
|
+
* Application::SessionPtr session2 = pool2->get(...);
|
602
|
+
* @endcode
|
603
|
+
*
|
604
|
+
* @throws SystemException Something went wrong.
|
605
|
+
* @throws IOException Something went wrong.
|
606
|
+
*/
|
607
|
+
ApplicationPoolPtr connect() {
|
608
|
+
try {
|
609
|
+
this_thread::disable_syscall_interruption dsi;
|
610
|
+
MessageChannel channel(serverSocket);
|
611
|
+
int clientConnection;
|
612
|
+
|
613
|
+
// Write some random data to wake up the server.
|
614
|
+
channel.writeRaw("x", 1);
|
615
|
+
|
616
|
+
clientConnection = channel.readFileDescriptor();
|
617
|
+
return ptr(new Client(clientConnection));
|
618
|
+
} catch (const SystemException &e) {
|
619
|
+
throw SystemException("Could not connect to the ApplicationPool server", e.code());
|
620
|
+
} catch (const IOException &e) {
|
621
|
+
string message("Could not connect to the ApplicationPool server: ");
|
622
|
+
message.append(e.what());
|
623
|
+
throw IOException(message);
|
624
|
+
}
|
625
|
+
}
|
626
|
+
|
627
|
+
/**
|
628
|
+
* Detach the server, thereby telling it that we don't want to connect
|
629
|
+
* to it anymore. This frees up some resources in the current process,
|
630
|
+
* such as file descriptors.
|
631
|
+
*
|
632
|
+
* This method is particularily useful to Apache worker processes that
|
633
|
+
* have just established a connection with the ApplicationPool server.
|
634
|
+
* Any sessions that are opened prior to calling detach(), will keep
|
635
|
+
* working even after a detach().
|
636
|
+
*
|
637
|
+
* This method may only be called once. The ApplicationPoolServer object
|
638
|
+
* will become unusable once detach() has been called, so call connect()
|
639
|
+
* before calling detach().
|
640
|
+
*/
|
641
|
+
void detach() {
|
642
|
+
int ret;
|
643
|
+
do {
|
644
|
+
ret = close(serverSocket);
|
645
|
+
} while (ret == -1 && errno == EINTR);
|
646
|
+
serverSocket = -1;
|
647
|
+
}
|
648
|
+
};
|
649
|
+
|
650
|
+
typedef shared_ptr<ApplicationPoolServer> ApplicationPoolServerPtr;
|
651
|
+
|
652
|
+
} // namespace Passenger
|
653
|
+
|
654
|
+
#endif /* _PASSENGER_APPLICATION_POOL_SERVER_H_ */
|