passenger 6.2.0 → 6.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (898) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +69 -15
  3. data/CONTRIBUTING.md +7 -311
  4. data/CONTRIBUTORS +1 -0
  5. data/LICENSE +1 -1
  6. data/README.md +1 -1
  7. data/Rakefile +1 -1
  8. data/bin/passenger +1 -1
  9. data/bin/passenger-config +1 -1
  10. data/bin/passenger-install-apache2-module +1 -1
  11. data/bin/passenger-install-nginx-module +4 -9
  12. data/bin/passenger-memory-stats +1 -1
  13. data/bin/passenger-status +1 -1
  14. data/build/agent.rb +13 -15
  15. data/build/apache2.rb +13 -16
  16. data/build/basics.rb +10 -13
  17. data/build/common_library.rb +5 -9
  18. data/build/cxx_tests.rb +39 -12
  19. data/build/integration_tests.rb +5 -2
  20. data/build/misc.rb +1 -1
  21. data/build/nginx.rb +1 -1
  22. data/build/node_tests.rb +1 -1
  23. data/build/oxt_tests.rb +6 -8
  24. data/build/packaging.rb +1 -1
  25. data/build/ruby_extension.rb +1 -1
  26. data/build/ruby_tests.rb +1 -1
  27. data/build/schema_printer.rb +13 -15
  28. data/build/support/cplusplus.rb +61 -69
  29. data/build/support/cxx_dependency_map.rb +5 -64
  30. data/build/support/general.rb +1 -1
  31. data/build/support/vendor/cxx_hinted_parser/LICENSE.md +1 -1
  32. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +1 -1
  33. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb +1 -1
  34. data/build/support/vendor/cxxcodebuilder/LICENSE.md +1 -1
  35. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
  36. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/initializer_builder.rb +1 -1
  37. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder.rb +1 -1
  38. data/build/test_basics.rb +1 -1
  39. data/dev/copy_boost_headers +1 -1
  40. data/dev/index_cxx_dependencies.rb +5 -1
  41. data/dev/libev-changes.patch +108 -0
  42. data/dev/nginx_version_sha256 +1 -1
  43. data/dev/ruby_server.rb +1 -6
  44. data/dev/upgrading_libuv.sh +16 -0
  45. data/doc/BasicArchitectureOverview.md +55 -0
  46. data/doc/BuildCaching.md +23 -0
  47. data/doc/BuildSystem.md +49 -0
  48. data/doc/DebuggingAndStressTesting.md +2 -0
  49. data/doc/DesignAspects/LimitedGemDependencies.md +1 -0
  50. data/doc/DevEnvironmentSetup.md +46 -0
  51. data/doc/DevHandbook.md +28 -0
  52. data/doc/Packaging.md +1 -1
  53. data/doc/RunningTests.md +88 -0
  54. data/doc/{TempFileHandling.md → SecureTempFileHandling.md} +1 -1
  55. data/doc/{CxxTestingGuide.md → WritingCxxTests.md} +1 -20
  56. data/src/agent/AgentMain.cpp +1 -1
  57. data/src/agent/Core/ApiServer.h +1 -1
  58. data/src/agent/Core/ApplicationPool/AbstractSession.h +1 -1
  59. data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +1 -1
  60. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +1 -1
  61. data/src/agent/Core/ApplicationPool/Common.h +1 -1
  62. data/src/agent/Core/ApplicationPool/Context.h +1 -1
  63. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +1 -1
  64. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +1 -1
  65. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +1 -1
  66. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +1 -1
  67. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +1 -1
  68. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  69. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +1 -1
  70. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +1 -1
  71. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -1
  72. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +1 -1
  73. data/src/agent/Core/ApplicationPool/Group.h +1 -1
  74. data/src/agent/Core/ApplicationPool/Implementation.cpp +1 -1
  75. data/src/agent/Core/ApplicationPool/Options.h +1 -1
  76. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +1 -1
  77. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
  78. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +1 -1
  79. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +1 -1
  80. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +1 -1
  81. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +1 -1
  82. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +1 -1
  83. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
  84. data/src/agent/Core/ApplicationPool/Pool.h +1 -1
  85. data/src/agent/Core/ApplicationPool/Process.cpp +1 -1
  86. data/src/agent/Core/ApplicationPool/Process.h +1 -1
  87. data/src/agent/Core/ApplicationPool/Session.h +1 -1
  88. data/src/agent/Core/ApplicationPool/Socket.h +1 -1
  89. data/src/agent/Core/ApplicationPool/TestSession.h +1 -1
  90. data/src/agent/Core/Config.h +3 -2
  91. data/src/agent/Core/ConfigChange.cpp +1 -1
  92. data/src/agent/Core/ConfigChange.h +1 -1
  93. data/src/agent/Core/Controller/AppResponse.h +1 -1
  94. data/src/agent/Core/Controller/BufferBody.cpp +1 -1
  95. data/src/agent/Core/Controller/CheckoutSession.cpp +8 -5
  96. data/src/agent/Core/Controller/Client.h +1 -1
  97. data/src/agent/Core/Controller/Config.cpp +1 -1
  98. data/src/agent/Core/Controller/Config.h +2 -2
  99. data/src/agent/Core/Controller/ForwardResponse.cpp +2 -2
  100. data/src/agent/Core/Controller/Hooks.cpp +12 -9
  101. data/src/agent/Core/Controller/Implementation.cpp +1 -1
  102. data/src/agent/Core/Controller/InitRequest.cpp +1 -1
  103. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -1
  104. data/src/agent/Core/Controller/InternalUtils.cpp +1 -1
  105. data/src/agent/Core/Controller/Miscellaneous.cpp +1 -1
  106. data/src/agent/Core/Controller/Request.h +1 -1
  107. data/src/agent/Core/Controller/SendRequest.cpp +1 -1
  108. data/src/agent/Core/Controller/StateInspection.cpp +1 -1
  109. data/src/agent/Core/Controller/TurboCaching.h +1 -1
  110. data/src/agent/Core/Controller.h +1 -1
  111. data/src/agent/Core/CoreMain.cpp +1 -1
  112. data/src/agent/Core/OptionParser.h +1 -1
  113. data/src/agent/Core/ResponseCache.h +1 -1
  114. data/src/agent/Core/SecurityUpdateChecker.h +1 -1
  115. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +1 -1
  116. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +1 -1
  117. data/src/agent/Core/SpawningKit/Config.h +1 -1
  118. data/src/agent/Core/SpawningKit/Context.h +1 -1
  119. data/src/agent/Core/SpawningKit/DirectSpawner.h +1 -1
  120. data/src/agent/Core/SpawningKit/DummySpawner.h +1 -1
  121. data/src/agent/Core/SpawningKit/ErrorRenderer.h +1 -1
  122. data/src/agent/Core/SpawningKit/Exceptions.h +63 -2
  123. data/src/agent/Core/SpawningKit/Factory.h +1 -1
  124. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +1 -1
  125. data/src/agent/Core/SpawningKit/Handshake/Perform.h +3 -2
  126. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
  127. data/src/agent/Core/SpawningKit/Handshake/Session.h +1 -1
  128. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +1 -1
  129. data/src/agent/Core/SpawningKit/Journey.h +1 -1
  130. data/src/agent/Core/SpawningKit/PipeWatcher.h +1 -1
  131. data/src/agent/Core/SpawningKit/README.md +3 -3
  132. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +1 -1
  133. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +1 -1
  134. data/src/agent/Core/SpawningKit/Result.h +1 -1
  135. data/src/agent/Core/SpawningKit/SmartSpawner.h +17 -17
  136. data/src/agent/Core/SpawningKit/Spawner.h +1 -1
  137. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +1 -1
  138. data/src/agent/Core/TelemetryCollector.h +1 -1
  139. data/src/agent/ExecHelper/ExecHelperMain.cpp +1 -1
  140. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +1 -1
  141. data/src/agent/MainFunctions.h +1 -1
  142. data/src/agent/Shared/ApiAccountUtils.h +4 -3
  143. data/src/agent/Shared/ApiServerUtils.h +2 -3
  144. data/src/agent/Shared/ApplicationPoolApiKey.h +1 -1
  145. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +1 -1
  146. data/src/agent/Shared/Fundamentals/AbortHandler.h +1 -1
  147. data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -1
  148. data/src/agent/Shared/Fundamentals/Initialization.h +1 -1
  149. data/src/agent/Shared/Fundamentals/Utils.cpp +1 -1
  150. data/src/agent/Shared/Fundamentals/Utils.h +1 -1
  151. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +1 -1
  152. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +1 -1
  153. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +1 -1
  154. data/src/agent/Watchdog/ApiServer.h +7 -6
  155. data/src/agent/Watchdog/Config.h +2 -2
  156. data/src/apache2_module/Bucket.cpp +1 -1
  157. data/src/apache2_module/Bucket.h +1 -1
  158. data/src/apache2_module/CBindings.cpp +1 -1
  159. data/src/apache2_module/Config.cpp +1 -1
  160. data/src/apache2_module/Config.h +1 -1
  161. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +104 -104
  162. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +2 -2
  163. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +1 -1
  164. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +1 -1
  165. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +1 -1
  166. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +1 -1
  167. data/src/apache2_module/ConfigGeneral/Common.h +1 -1
  168. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +1 -1
  169. data/src/apache2_module/ConfigGeneral/SetterFuncs.h +1 -1
  170. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +1 -1
  171. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +1 -1
  172. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +1 -1
  173. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +1 -1
  174. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +1 -1
  175. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +1 -1
  176. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +1 -1
  177. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +1 -1
  178. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +1 -1
  179. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
  180. data/src/apache2_module/DirectoryMapper.h +1 -1
  181. data/src/apache2_module/Hooks.cpp +21 -2
  182. data/src/apache2_module/Hooks.h +1 -1
  183. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +1 -1
  184. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +1 -1
  185. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +1 -1
  186. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
  187. data/src/apache2_module/Utils.h +15 -1
  188. data/src/apache2_module/mod_passenger.c +1 -1
  189. data/src/cxx_supportlib/Algorithms/Hasher.cpp +1 -1
  190. data/src/cxx_supportlib/Algorithms/Hasher.h +1 -1
  191. data/src/cxx_supportlib/Algorithms/MovingAverage.h +1 -1
  192. data/src/cxx_supportlib/AppLocalConfigFileUtils.h +1 -1
  193. data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +1 -1
  194. data/src/cxx_supportlib/AppTypeDetector/CBindings.h +1 -1
  195. data/src/cxx_supportlib/AppTypeDetector/Detector.h +1 -1
  196. data/src/cxx_supportlib/BackgroundEventLoop.cpp +1 -1
  197. data/src/cxx_supportlib/BackgroundEventLoop.h +1 -1
  198. data/src/cxx_supportlib/ConfigKit/AsyncUtils.h +1 -1
  199. data/src/cxx_supportlib/ConfigKit/Common.h +1 -1
  200. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +1 -1
  201. data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +1 -1
  202. data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +1 -3
  203. data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +3 -3
  204. data/src/cxx_supportlib/ConfigKit/Schema.h +1 -1
  205. data/src/cxx_supportlib/ConfigKit/SchemaUtils.h +1 -1
  206. data/src/cxx_supportlib/ConfigKit/Store.h +1 -1
  207. data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +1 -1
  208. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +1 -1
  209. data/src/cxx_supportlib/ConfigKit/Translator.h +1 -1
  210. data/src/cxx_supportlib/ConfigKit/Utils.h +1 -1
  211. data/src/cxx_supportlib/Constants.h +2 -2
  212. data/src/cxx_supportlib/Constants.h.cxxcodebuilder +1 -1
  213. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +1 -1
  214. data/src/cxx_supportlib/DataStructures/LString.cpp +1 -1
  215. data/src/cxx_supportlib/DataStructures/LString.h +1 -1
  216. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -1
  217. data/src/cxx_supportlib/DataStructures/StringMap.h +1 -1
  218. data/src/cxx_supportlib/Exceptions.cpp +1 -1
  219. data/src/cxx_supportlib/Exceptions.h +1 -1
  220. data/src/cxx_supportlib/FileDescriptor.h +1 -1
  221. data/src/cxx_supportlib/FileTools/FileManip.cpp +28 -4
  222. data/src/cxx_supportlib/FileTools/FileManip.h +1 -1
  223. data/src/cxx_supportlib/FileTools/PathManip.cpp +1 -1
  224. data/src/cxx_supportlib/FileTools/PathManip.h +1 -1
  225. data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +1 -1
  226. data/src/cxx_supportlib/FileTools/PathManipCBindings.h +1 -1
  227. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +1 -1
  228. data/src/cxx_supportlib/FileTools/PathSecurityCheck.h +1 -1
  229. data/src/cxx_supportlib/Hooks.h +1 -1
  230. data/src/cxx_supportlib/IOTools/BufferedIO.h +1 -1
  231. data/src/cxx_supportlib/IOTools/IOUtils.cpp +10 -10
  232. data/src/cxx_supportlib/IOTools/IOUtils.h +1 -1
  233. data/src/cxx_supportlib/IOTools/MessageIO.h +1 -1
  234. data/src/cxx_supportlib/IOTools/MessageSerialization.h +1 -1
  235. data/src/cxx_supportlib/InstanceDirectory.h +31 -4
  236. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +1 -1
  237. data/src/cxx_supportlib/JsonTools/Autocast.h +1 -1
  238. data/src/cxx_supportlib/JsonTools/CBindings.cpp +1 -1
  239. data/src/cxx_supportlib/JsonTools/CBindings.h +1 -1
  240. data/src/cxx_supportlib/JsonTools/JsonUtils.h +1 -1
  241. data/src/cxx_supportlib/LoggingKit/Assert.h +1 -1
  242. data/src/cxx_supportlib/LoggingKit/Config.h +2 -1
  243. data/src/cxx_supportlib/LoggingKit/Context.h +1 -1
  244. data/src/cxx_supportlib/LoggingKit/Forward.h +1 -1
  245. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +11 -1
  246. data/src/cxx_supportlib/LoggingKit/Logging.h +1 -1
  247. data/src/cxx_supportlib/LoggingKit/LoggingKit.h +1 -1
  248. data/src/cxx_supportlib/LveLoggingDecorator.h +1 -1
  249. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +1 -1
  250. data/src/cxx_supportlib/MemoryKit/mbuf.h +1 -1
  251. data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
  252. data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
  253. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +1 -1
  254. data/src/cxx_supportlib/ProcessManagement/Ruby.h +1 -1
  255. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +1 -1
  256. data/src/cxx_supportlib/ProcessManagement/Spawn.h +1 -1
  257. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +1 -1
  258. data/src/cxx_supportlib/ProcessManagement/Utils.h +1 -1
  259. data/src/cxx_supportlib/RandomGenerator.h +1 -1
  260. data/src/cxx_supportlib/ResourceLocator.h +1 -1
  261. data/src/cxx_supportlib/SafeLibev.h +1 -1
  262. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +9 -27
  263. data/src/cxx_supportlib/SecurityKit/Crypto.h +2 -2
  264. data/src/cxx_supportlib/SecurityKit/MemZeroGuard.h +1 -1
  265. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +1 -1
  266. data/src/cxx_supportlib/ServerKit/Channel.h +1 -1
  267. data/src/cxx_supportlib/ServerKit/Client.h +1 -1
  268. data/src/cxx_supportlib/ServerKit/ClientRef.h +1 -1
  269. data/src/cxx_supportlib/ServerKit/Config.h +1 -1
  270. data/src/cxx_supportlib/ServerKit/Context.h +1 -1
  271. data/src/cxx_supportlib/ServerKit/CookieUtils.h +1 -1
  272. data/src/cxx_supportlib/ServerKit/Errors.h +2 -2
  273. data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +1 -1
  274. data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +1 -1
  275. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +54 -2
  276. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +1 -1
  277. data/src/cxx_supportlib/ServerKit/HeaderTable.h +1 -1
  278. data/src/cxx_supportlib/ServerKit/Hooks.h +1 -1
  279. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
  280. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +1 -1
  281. data/src/cxx_supportlib/ServerKit/HttpClient.h +1 -1
  282. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +2 -2
  283. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +2 -2
  284. data/src/cxx_supportlib/ServerKit/HttpRequest.h +2 -2
  285. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +1 -1
  286. data/src/cxx_supportlib/ServerKit/HttpServer.h +1 -1
  287. data/src/cxx_supportlib/ServerKit/Implementation.cpp +1 -1
  288. data/src/cxx_supportlib/ServerKit/Server.h +4 -2
  289. data/src/cxx_supportlib/ServerKit/llerrors.h +3 -3
  290. data/src/cxx_supportlib/ServerKit/llversion.h +1 -1
  291. data/src/cxx_supportlib/StaticString.h +1 -1
  292. data/src/cxx_supportlib/StrIntTools/DateParsing.h +1 -1
  293. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +1 -1
  294. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +1 -1
  295. data/src/cxx_supportlib/StrIntTools/StrIntUtilsNoStrictAliasing.cpp +1 -1
  296. data/src/cxx_supportlib/StrIntTools/StringScanning.h +1 -1
  297. data/src/cxx_supportlib/StrIntTools/Template.h +1 -1
  298. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +1 -1
  299. data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +1 -1
  300. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +1 -1
  301. data/src/cxx_supportlib/SystemTools/SystemTime.cpp +1 -1
  302. data/src/cxx_supportlib/SystemTools/SystemTime.h +1 -1
  303. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +1 -1
  304. data/src/cxx_supportlib/SystemTools/UserDatabase.h +1 -1
  305. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +1 -1
  306. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +1 -1
  307. data/src/cxx_supportlib/Utils/BlockingQueue.h +1 -1
  308. data/src/cxx_supportlib/Utils/CachedFileStat.cpp +1 -1
  309. data/src/cxx_supportlib/Utils/CachedFileStat.h +1 -1
  310. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +1 -1
  311. data/src/cxx_supportlib/Utils/ClassUtils.h +1 -1
  312. data/src/cxx_supportlib/Utils/Curl.h +1 -1
  313. data/src/cxx_supportlib/Utils/FastStringStream.h +1 -1
  314. data/src/cxx_supportlib/Utils/FileChangeChecker.h +1 -1
  315. data/src/cxx_supportlib/Utils/HttpConstants.h +1 -1
  316. data/src/cxx_supportlib/Utils/IniFile.h +1 -1
  317. data/src/cxx_supportlib/Utils/MessagePassing.h +1 -1
  318. data/src/cxx_supportlib/Utils/OptionParsing.h +1 -1
  319. data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +1 -1
  320. data/src/cxx_supportlib/Utils/ScopeGuard.h +1 -1
  321. data/src/cxx_supportlib/Utils/SpeedMeter.h +1 -1
  322. data/src/cxx_supportlib/Utils/Timer.h +1 -1
  323. data/src/cxx_supportlib/Utils/VariantMap.h +1 -1
  324. data/src/cxx_supportlib/Utils.cpp +1 -1
  325. data/src/cxx_supportlib/Utils.h +1 -1
  326. data/src/cxx_supportlib/WatchdogLauncher.cpp +1 -1
  327. data/src/cxx_supportlib/WatchdogLauncher.h +1 -1
  328. data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +1 -1
  329. data/src/cxx_supportlib/WrapperRegistry/CBindings.h +1 -1
  330. data/src/cxx_supportlib/WrapperRegistry/Entry.h +1 -1
  331. data/src/cxx_supportlib/WrapperRegistry/Registry.h +1 -1
  332. data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
  333. data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
  334. data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
  335. data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
  336. data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +1 -1
  337. data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +1 -1
  338. data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +1 -1
  339. data/src/cxx_supportlib/oxt/implementation.cpp +1 -1
  340. data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
  341. data/src/cxx_supportlib/oxt/macros.hpp +1 -1
  342. data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
  343. data/src/cxx_supportlib/oxt/system_calls.cpp +1 -1
  344. data/src/cxx_supportlib/oxt/system_calls.hpp +1 -1
  345. data/src/cxx_supportlib/oxt/thread.hpp +1 -1
  346. data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
  347. data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +1 -1
  348. data/src/cxx_supportlib/vendor-copy/libuv/AUTHORS +353 -3
  349. data/src/cxx_supportlib/vendor-copy/libuv/ChangeLog +3981 -2
  350. data/src/cxx_supportlib/vendor-copy/libuv/LICENSE +1 -28
  351. data/src/cxx_supportlib/vendor-copy/libuv/LICENSE-docs +396 -0
  352. data/src/cxx_supportlib/vendor-copy/libuv/LICENSE-extra +36 -0
  353. data/src/cxx_supportlib/vendor-copy/libuv/Makefile.am +275 -58
  354. data/src/cxx_supportlib/vendor-copy/libuv/Makefile.in +4380 -2125
  355. data/src/cxx_supportlib/vendor-copy/libuv/aclocal.m4 +425 -221
  356. data/src/cxx_supportlib/vendor-copy/libuv/ar-lib +30 -10
  357. data/src/cxx_supportlib/vendor-copy/libuv/compile +31 -14
  358. data/src/cxx_supportlib/vendor-copy/libuv/config.guess +1084 -690
  359. data/src/cxx_supportlib/vendor-copy/libuv/config.sub +1844 -1297
  360. data/src/cxx_supportlib/vendor-copy/libuv/configure +6935 -3664
  361. data/src/cxx_supportlib/vendor-copy/libuv/configure.ac +43 -19
  362. data/src/cxx_supportlib/vendor-copy/libuv/depcomp +12 -11
  363. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-darwin.h → uv/darwin.h} +3 -3
  364. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-errno.h → uv/errno.h} +119 -60
  365. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-linux.h → uv/linux.h} +1 -1
  366. data/src/cxx_supportlib/vendor-copy/libuv/include/uv/os390.h +33 -0
  367. data/src/cxx_supportlib/vendor-copy/libuv/include/uv/posix.h +31 -0
  368. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-threadpool.h → uv/threadpool.h} +1 -1
  369. data/src/cxx_supportlib/vendor-copy/libuv/include/{tree.h → uv/tree.h} +3 -250
  370. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-unix.h → uv/unix.h} +186 -60
  371. data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-version.h → uv/version.h} +3 -3
  372. data/src/cxx_supportlib/vendor-copy/libuv/include/uv/win.h +703 -0
  373. data/src/cxx_supportlib/vendor-copy/libuv/include/uv.h +528 -40
  374. data/src/cxx_supportlib/vendor-copy/libuv/install-sh +110 -70
  375. data/src/cxx_supportlib/vendor-copy/libuv/libuv-static.pc.in +12 -0
  376. data/src/cxx_supportlib/vendor-copy/libuv/libuv.pc.in +4 -2
  377. data/src/cxx_supportlib/vendor-copy/libuv/ltmain.sh +995 -619
  378. data/src/cxx_supportlib/vendor-copy/libuv/m4/ax_pthread.m4 +485 -0
  379. data/src/cxx_supportlib/vendor-copy/libuv/m4/libtool.m4 +438 -289
  380. data/src/cxx_supportlib/vendor-copy/libuv/m4/libuv-check-flags.m4 +21 -4
  381. data/src/cxx_supportlib/vendor-copy/libuv/m4/libuv-check-versions.m4 +7 -0
  382. data/src/cxx_supportlib/vendor-copy/libuv/m4/ltoptions.m4 +69 -39
  383. data/src/cxx_supportlib/vendor-copy/libuv/m4/ltsugar.m4 +1 -1
  384. data/src/cxx_supportlib/vendor-copy/libuv/m4/ltversion.m4 +7 -6
  385. data/src/cxx_supportlib/vendor-copy/libuv/m4/lt~obsolete.m4 +2 -2
  386. data/src/cxx_supportlib/vendor-copy/libuv/missing +55 -34
  387. data/src/cxx_supportlib/vendor-copy/libuv/src/fs-poll.c +52 -20
  388. data/src/cxx_supportlib/vendor-copy/libuv/src/idna.c +560 -0
  389. data/src/cxx_supportlib/vendor-copy/libuv/src/idna.h +31 -0
  390. data/src/cxx_supportlib/vendor-copy/libuv/src/inet.c +5 -16
  391. data/src/cxx_supportlib/vendor-copy/libuv/src/queue.h +68 -86
  392. data/src/cxx_supportlib/vendor-copy/libuv/src/random.c +123 -0
  393. data/src/cxx_supportlib/vendor-copy/libuv/src/strscpy.c +38 -0
  394. data/src/cxx_supportlib/vendor-copy/libuv/src/strscpy.h +39 -0
  395. data/src/cxx_supportlib/vendor-copy/libuv/src/strtok.c +52 -0
  396. data/src/cxx_supportlib/vendor-copy/libuv/src/strtok.h +27 -0
  397. data/src/cxx_supportlib/vendor-copy/libuv/src/thread-common.c +175 -0
  398. data/src/cxx_supportlib/vendor-copy/libuv/src/threadpool.c +172 -57
  399. data/src/cxx_supportlib/vendor-copy/libuv/src/{unix/timer.c → timer.c} +57 -29
  400. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/aix-common.c +89 -0
  401. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/aix.c +418 -256
  402. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/async.c +168 -129
  403. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/bsd-ifaddrs.c +163 -0
  404. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/bsd-proctitle.c +99 -0
  405. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/core.c +1312 -378
  406. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/cygwin.c +93 -0
  407. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-proctitle.c +18 -32
  408. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-stub.h +97 -0
  409. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin-syscalls.h +17 -0
  410. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/darwin.c +41 -139
  411. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/dl.c +1 -1
  412. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/freebsd.c +75 -235
  413. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/fs.c +1308 -299
  414. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/fsevents.c +150 -148
  415. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/getaddrinfo.c +58 -8
  416. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/getnameinfo.c +3 -2
  417. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/haiku.c +172 -0
  418. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/hurd.c +172 -0
  419. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/ibmi.c +542 -0
  420. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/internal.h +297 -106
  421. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/kqueue.c +325 -94
  422. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux.c +2708 -0
  423. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/loop-watcher.c +11 -11
  424. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/loop.c +105 -24
  425. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/netbsd.c +51 -157
  426. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/no-fsevents.c +42 -0
  427. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/no-proctitle.c +45 -0
  428. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/openbsd.c +42 -183
  429. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-proctitle.c +136 -0
  430. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-syscalls.c +536 -0
  431. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390-syscalls.h +75 -0
  432. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/os390.c +1070 -0
  433. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/pipe.c +324 -55
  434. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/poll.c +58 -11
  435. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/posix-hrtime.c +36 -0
  436. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/posix-poll.c +385 -0
  437. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/process.c +795 -248
  438. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/procfs-exepath.c +45 -0
  439. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/proctitle.c +77 -22
  440. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/qnx.c +142 -0
  441. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-devurandom.c +93 -0
  442. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-getentropy.c +57 -0
  443. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-getrandom.c +86 -0
  444. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/random-sysctl-linux.c +99 -0
  445. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/signal.c +147 -39
  446. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/stream.c +426 -474
  447. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sunos.c +240 -98
  448. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sysinfo-loadavg.c +36 -0
  449. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/sysinfo-memory.c +42 -0
  450. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/tcp.c +402 -91
  451. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/thread.c +497 -145
  452. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/tty.c +269 -45
  453. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/udp.c +695 -165
  454. data/src/cxx_supportlib/vendor-copy/libuv/src/uv-common.c +463 -61
  455. data/src/cxx_supportlib/vendor-copy/libuv/src/uv-common.h +248 -44
  456. data/src/cxx_supportlib/vendor-copy/libuv/src/uv-data-getter-setters.c +119 -0
  457. data/src/cxx_supportlib/vendor-copy/libuv/tsansupp.txt +2 -0
  458. data/src/cxx_supportlib/{ServerKit/llhttp_api.c → vendor-copy/llhttp/api.c} +30 -23
  459. data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.c +1756 -1645
  460. data/src/cxx_supportlib/{ServerKit → vendor-copy/llhttp}/llhttp.h +35 -13
  461. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/classification.hpp +19 -0
  462. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/formatter.hpp +1 -1
  463. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/trim_all.hpp +0 -2
  464. data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +20 -13
  465. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +2 -2
  466. data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +4 -0
  467. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +1 -1
  468. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/debug.hpp +4 -0
  469. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  470. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +1 -1
  471. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  472. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +1 -1
  473. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +1 -1
  474. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +1 -1
  475. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
  476. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +10 -1
  477. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +5 -3
  478. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +1 -1
  479. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +5 -0
  480. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +57 -53
  481. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +10 -10
  482. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +34 -2
  483. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +14 -2
  484. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +176 -2287
  485. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +13 -9
  486. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +186 -70
  487. data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +2 -2
  488. data/src/cxx_supportlib/vendor-modified/boost/container/detail/aligned_allocation.hpp +149 -0
  489. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +35 -0
  490. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +1 -0
  491. data/src/cxx_supportlib/vendor-modified/boost/container/detail/bit_utilities.hpp +133 -0
  492. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +18 -3
  493. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +5 -0
  494. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +4 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +1 -1
  496. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +20 -10
  497. data/src/cxx_supportlib/vendor-modified/boost/container/detail/deque_impl.hpp +2744 -0
  498. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +202 -104
  499. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dlmalloc.hpp +5 -4
  500. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +161 -85
  501. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_constructible.hpp +180 -0
  502. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +3 -2
  503. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +12 -0
  504. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +16 -0
  505. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +1 -1
  506. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +9 -1
  507. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +18 -14
  508. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +256 -41
  509. data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +75 -24
  510. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +1 -56
  511. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +16 -3
  512. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +1 -7
  513. data/src/cxx_supportlib/vendor-modified/boost/container/detail/range_utils.hpp +196 -0
  514. data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +33 -1
  515. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +124 -69
  516. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +109 -7
  517. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +168 -162
  518. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/nest.hpp +2978 -0
  519. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/pmr/nest.hpp +45 -0
  520. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_all_of.hpp +43 -0
  521. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_any_of.hpp +42 -0
  522. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy.hpp +229 -0
  523. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_if.hpp +270 -0
  524. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_copy_n.hpp +308 -0
  525. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count.hpp +101 -0
  526. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_count_if.hpp +100 -0
  527. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_equal.hpp +268 -0
  528. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill.hpp +101 -0
  529. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_fill_n.hpp +171 -0
  530. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find.hpp +110 -0
  531. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if.hpp +110 -0
  532. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_if_not.hpp +43 -0
  533. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last.hpp +179 -0
  534. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if.hpp +179 -0
  535. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_find_last_if_not.hpp +43 -0
  536. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_for_each.hpp +92 -0
  537. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate.hpp +90 -0
  538. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_generate_n.hpp +162 -0
  539. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_partitioned.hpp +46 -0
  540. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted.hpp +49 -0
  541. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_is_sorted_until.hpp +169 -0
  542. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_iterator_traits.hpp +382 -0
  543. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_merge.hpp +428 -0
  544. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_mismatch.hpp +350 -0
  545. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_none_of.hpp +98 -0
  546. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition.hpp +296 -0
  547. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_copy.hpp +105 -0
  548. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_partition_point.hpp +116 -0
  549. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove.hpp +57 -0
  550. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy.hpp +207 -0
  551. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_copy_if.hpp +223 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_remove_if.hpp +57 -0
  553. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace.hpp +90 -0
  554. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_replace_if.hpp +90 -0
  555. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse.hpp +245 -0
  556. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_reverse_copy.hpp +229 -0
  557. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search.hpp +211 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_search_n.hpp +476 -0
  559. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_difference.hpp +300 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_intersection.hpp +287 -0
  561. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_symmetric_difference.hpp +306 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_set_union.hpp +294 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_stable_partition.hpp +153 -0
  564. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_swap_ranges.hpp +92 -0
  565. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/segmented_transform.hpp +93 -0
  566. data/src/cxx_supportlib/vendor-modified/boost/container/experimental/wrapped_iterator.hpp +142 -0
  567. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +642 -417
  568. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +141 -30
  569. data/src/cxx_supportlib/vendor-modified/boost/container/hub.hpp +2426 -0
  570. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +65 -57
  571. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +247 -68
  572. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +7 -0
  573. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +39 -33
  574. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +156 -23
  575. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/global_resource.hpp +3 -3
  576. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/hub.hpp +43 -0
  577. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +5 -3
  578. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +1 -0
  579. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -1
  580. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +4 -0
  581. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/segtor.hpp +45 -0
  582. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +5 -4
  583. data/src/cxx_supportlib/vendor-modified/boost/container/segtor.hpp +905 -0
  584. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +148 -35
  585. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +59 -52
  586. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +632 -5
  587. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +66 -60
  588. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +46 -1
  589. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +612 -317
  590. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +54 -111
  591. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_construction.hpp +100 -0
  592. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator_fwd.hpp +1 -3
  593. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +233 -116
  594. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -1
  595. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +17 -10
  596. data/src/cxx_supportlib/vendor-modified/boost/date_time/period.hpp +1 -3
  597. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +16 -0
  598. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/encoder.hpp +114 -0
  599. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +4 -0
  600. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +1 -1
  601. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +211 -1
  602. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +59 -0
  603. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +6 -0
  604. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +34 -0
  605. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +0 -1
  606. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +12 -3
  607. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
  608. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +29 -174
  609. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +18 -2
  610. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +0 -1
  611. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +4 -5
  612. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +20 -11
  613. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +42 -14
  614. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +58 -22
  615. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +3 -1
  616. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +5 -1
  617. data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +8 -2
  618. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +9 -0
  619. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +11 -1
  620. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +9 -1
  621. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/config.hpp +22 -0
  622. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +15 -7
  623. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +23 -11
  624. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +11 -1
  625. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +9 -1
  626. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +11 -2
  627. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +10 -1
  628. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +8 -1
  629. data/src/cxx_supportlib/vendor-modified/boost/{detail → lexical_cast/detail}/lcast_precision.hpp +13 -1
  630. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +11 -1
  631. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +10 -2
  632. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +15 -2
  633. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +11 -1
  634. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/once_atomic.cpp +1 -1
  635. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +48 -46
  636. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +23 -0
  637. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  638. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +12 -4
  639. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +76 -0
  640. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +1 -1
  641. data/src/cxx_supportlib/vendor-modified/boost/move/traits.hpp +11 -0
  642. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +58 -37
  643. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +1 -2
  644. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +17 -9
  645. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +1 -2
  646. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +6 -0
  647. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  648. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +6 -1
  649. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_common_defs.hpp +188 -0
  650. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_factory_support.hpp +0 -6
  651. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +1 -1
  652. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_nonmember_interface.hpp +117 -0
  653. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +108 -83
  654. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +39 -39
  655. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_select_implementation.hpp +37 -0
  656. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +1 -1
  657. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +8 -8
  658. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/union_optional.hpp +724 -0
  659. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +93 -220
  660. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_fwd.hpp +14 -4
  661. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +1 -1
  662. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +1 -1
  663. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +1 -1
  664. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1 -1
  665. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +4 -6
  666. data/src/cxx_supportlib/vendor-modified/boost/system/api_config.hpp +1 -1
  667. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +16 -0
  668. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +13 -13
  669. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +5 -5
  670. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_deque_base.hpp +3 -2
  671. data/src/cxx_supportlib/vendor-modified/boost/thread/concurrent_queues/detail/sync_queue_base.hpp +3 -2
  672. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +2 -1
  673. data/src/cxx_supportlib/vendor-modified/boost/thread/experimental/parallel/v2/task_region.hpp +1 -1
  674. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +30 -28
  675. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once.hpp +6 -3
  676. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/once_atomic.hpp +5 -1
  677. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_helpers.hpp +1 -0
  678. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/shared_mutex.hpp +16 -16
  679. data/src/cxx_supportlib/vendor-modified/boost/thread/v2/shared_mutex.hpp +26 -26
  680. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +196 -6
  681. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +191 -6
  682. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +196 -5
  683. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +192 -5
  684. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +3 -3
  685. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2 -2
  686. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +3 -3
  687. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +52 -16
  688. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/ranges_support.hpp +104 -0
  689. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +1 -14
  690. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/unordered_printers.hpp +10 -4
  691. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +121 -3
  692. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +118 -3
  693. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +338 -1
  694. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +121 -3
  695. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +118 -3
  696. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +333 -1
  697. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  698. data/src/cxx_supportlib/vendor-modified/jsoncpp/json-forwards.h +276 -143
  699. data/src/cxx_supportlib/vendor-modified/jsoncpp/json.h +1262 -771
  700. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +1704 -1586
  701. data/src/cxx_supportlib/vendor-modified/libev/Changes +109 -0
  702. data/src/cxx_supportlib/vendor-modified/libev/Makefile.am +2 -1
  703. data/src/cxx_supportlib/vendor-modified/libev/Makefile.in +47 -33
  704. data/src/cxx_supportlib/vendor-modified/libev/README +2 -1
  705. data/src/cxx_supportlib/vendor-modified/libev/aclocal.m4 +1653 -1224
  706. data/src/cxx_supportlib/vendor-modified/libev/config.guess +376 -316
  707. data/src/cxx_supportlib/vendor-modified/libev/config.h.in +13 -2
  708. data/src/cxx_supportlib/vendor-modified/libev/config.sub +156 -154
  709. data/src/cxx_supportlib/vendor-modified/libev/configure +1431 -940
  710. data/src/cxx_supportlib/vendor-modified/libev/configure.ac +3 -3
  711. data/src/cxx_supportlib/vendor-modified/libev/depcomp +5 -5
  712. data/src/cxx_supportlib/vendor-modified/libev/ev++.h +109 -107
  713. data/src/cxx_supportlib/vendor-modified/libev/ev.c +807 -319
  714. data/src/cxx_supportlib/vendor-modified/libev/ev.h +111 -105
  715. data/src/cxx_supportlib/vendor-modified/libev/ev_epoll.c +42 -29
  716. data/src/cxx_supportlib/vendor-modified/libev/ev_iouring.c +694 -0
  717. data/src/cxx_supportlib/vendor-modified/libev/ev_kqueue.c +15 -9
  718. data/src/cxx_supportlib/vendor-modified/libev/ev_linuxaio.c +620 -0
  719. data/src/cxx_supportlib/vendor-modified/libev/ev_poll.c +19 -14
  720. data/src/cxx_supportlib/vendor-modified/libev/ev_port.c +8 -5
  721. data/src/cxx_supportlib/vendor-modified/libev/ev_select.c +6 -6
  722. data/src/cxx_supportlib/vendor-modified/libev/ev_vars.h +48 -3
  723. data/src/cxx_supportlib/vendor-modified/libev/ev_win32.c +2 -2
  724. data/src/cxx_supportlib/vendor-modified/libev/ev_wrap.h +72 -0
  725. data/src/cxx_supportlib/vendor-modified/libev/install-sh +23 -13
  726. data/src/cxx_supportlib/vendor-modified/libev/libev.m4 +6 -1
  727. data/src/cxx_supportlib/vendor-modified/libev/ltmain.sh +3581 -1993
  728. data/src/cxx_supportlib/vendor-modified/libev/missing +8 -8
  729. data/src/cxx_supportlib/vendor-modified/libev/mkinstalldirs +3 -3
  730. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +1 -1
  731. data/src/helper-scripts/backtrace-sanitizer.rb +1 -1
  732. data/src/helper-scripts/crash-watch.rb +1 -1
  733. data/src/helper-scripts/download_binaries/extconf.rb +1 -1
  734. data/src/helper-scripts/meteor-loader.rb +1 -1
  735. data/src/helper-scripts/node-loader.js +1 -1
  736. data/src/helper-scripts/prespawn +1 -1
  737. data/src/helper-scripts/rack-loader.rb +1 -1
  738. data/src/helper-scripts/rack-preloader.rb +1 -1
  739. data/src/helper-scripts/wsgi-loader.py +1 -1
  740. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +1 -1
  741. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder +1 -1
  742. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +1 -1
  743. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +1 -1
  744. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +1 -1
  745. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +1 -1
  746. data/src/nginx_module/Configuration.c +1 -1
  747. data/src/nginx_module/Configuration.h +1 -1
  748. data/src/nginx_module/ContentHandler.c +36 -1
  749. data/src/nginx_module/ContentHandler.h +1 -1
  750. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +1 -1
  751. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +1 -1
  752. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +1 -1
  753. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder +1 -1
  754. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +1 -1
  755. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +1 -1
  756. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +1 -1
  757. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder +1 -1
  758. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +1 -1
  759. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
  760. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +1 -1
  761. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +1 -1
  762. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +1 -1
  763. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +1 -1
  764. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +1 -1
  765. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +1 -1
  766. data/src/nginx_module/StaticContentHandler.c +1 -1
  767. data/src/nginx_module/StaticContentHandler.h +1 -1
  768. data/src/nginx_module/ngx_http_passenger_module.c +1 -1
  769. data/src/nginx_module/ngx_http_passenger_module.h +1 -1
  770. data/src/nodejs_supportlib/phusion_passenger/line_reader.js +1 -1
  771. data/src/ruby_native_extension/extconf.rb +1 -1
  772. data/src/ruby_native_extension/passenger_native_support.c +1 -1
  773. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +1 -1
  774. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +1 -1
  775. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +1 -1
  776. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +2 -12
  777. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +1 -1
  778. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +1 -1
  779. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +1 -1
  780. data/src/ruby_supportlib/phusion_passenger/common_library.rb +14 -16
  781. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +1 -1
  782. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +1 -1
  783. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +1 -1
  784. data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +1 -1
  785. data/src/ruby_supportlib/phusion_passenger/config/command.rb +1 -1
  786. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +1 -1
  787. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +1 -1
  788. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +1 -1
  789. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +1 -1
  790. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +1 -1
  791. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +1 -1
  792. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +1 -1
  793. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
  794. data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +1 -1
  795. data/src/ruby_supportlib/phusion_passenger/config/main.rb +1 -1
  796. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +3 -2
  797. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +6 -1
  798. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +1 -1
  799. data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +1 -1
  800. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +1 -1
  801. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +1 -1
  802. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +1 -1
  803. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +1 -1
  804. data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -1
  805. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +1 -1
  806. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -1
  807. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +1 -1
  808. data/src/ruby_supportlib/phusion_passenger/message_client.rb +1 -1
  809. data/src/ruby_supportlib/phusion_passenger/native_support.rb +1 -1
  810. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +1 -1
  811. data/src/ruby_supportlib/phusion_passenger/packaging.rb +4 -3
  812. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +1 -1
  813. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +1 -1
  814. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +1 -1
  815. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +195 -11
  816. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +1 -1
  817. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +1 -1
  818. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +1 -1
  819. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +1 -1
  820. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +1 -1
  821. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +1 -1
  822. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +1 -1
  823. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +1 -1
  824. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +1 -1
  825. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +1 -1
  826. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +1 -1
  827. data/src/ruby_supportlib/phusion_passenger/plugin.rb +1 -1
  828. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +1 -1
  829. data/src/ruby_supportlib/phusion_passenger/public_api.rb +1 -1
  830. data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +1 -1
  831. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +1 -1
  832. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +1 -1
  833. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +1 -1
  834. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -7
  835. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +1 -1
  836. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +1 -1
  837. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +1 -1
  838. data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +1 -1
  839. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +1 -1
  840. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +1 -1
  841. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +1 -1
  842. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +1 -1
  843. data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +1 -1
  844. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +1 -1
  845. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +2 -2
  846. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +4 -8
  847. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -1
  848. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +1 -1
  849. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +1 -1
  850. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +1 -1
  851. data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +1 -1
  852. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +1 -1
  853. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +1 -1
  854. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +1 -1
  855. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +25 -2
  856. data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +1 -1
  857. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +1 -1
  858. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +1 -1
  859. data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +1 -1
  860. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
  861. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +3 -13
  862. data/src/ruby_supportlib/phusion_passenger/utils.rb +1 -1
  863. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +1 -1
  864. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +1 -1
  865. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
  866. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +1 -1
  867. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +1 -1
  868. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +1 -1
  869. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +8 -6
  870. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +4 -3
  871. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +6 -4
  872. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +406 -579
  873. data/src/ruby_supportlib/phusion_passenger.rb +8 -8
  874. data/src/schema_printer/SchemaPrinterMain.cpp +1 -1
  875. data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +1 -1
  876. metadata +140 -38
  877. data/doc/DeveloperQuickstart.md +0 -70
  878. data/src/README.md +0 -7
  879. data/src/cxx_supportlib/vendor-copy/libuv/README.md +0 -245
  880. data/src/cxx_supportlib/vendor-copy/libuv/checksparse.sh +0 -234
  881. data/src/cxx_supportlib/vendor-copy/libuv/common.gypi +0 -210
  882. data/src/cxx_supportlib/vendor-copy/libuv/gyp_uv.py +0 -93
  883. data/src/cxx_supportlib/vendor-copy/libuv/include/android-ifaddrs.h +0 -54
  884. data/src/cxx_supportlib/vendor-copy/libuv/include/pthread-fixes.h +0 -72
  885. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/android-ifaddrs.c +0 -703
  886. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/atomic-ops.h +0 -77
  887. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-core.c +0 -899
  888. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-inotify.c +0 -285
  889. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-syscalls.c +0 -471
  890. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/linux-syscalls.h +0 -158
  891. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/pthread-fixes.c +0 -104
  892. data/src/cxx_supportlib/vendor-copy/libuv/src/unix/spinlock.h +0 -53
  893. data/src/cxx_supportlib/vendor-copy/libuv/uv.gyp +0 -508
  894. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +0 -41
  895. /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-aix.h → uv/aix.h} +0 -0
  896. /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-bsd.h → uv/bsd.h} +0 -0
  897. /data/src/cxx_supportlib/vendor-copy/libuv/include/{uv-sunos.h → uv/sunos.h} +0 -0
  898. /data/src/cxx_supportlib/{ServerKit/llhttp_http.c → vendor-copy/llhttp/http.c} +0 -0
@@ -0,0 +1,905 @@
1
+ //////////////////////////////////////////////////////////////////////////////
2
+ //
3
+ // (C) Copyright Ion Gaztanaga 2026. Distributed under the Boost
4
+ // Software License, Version 1.0. (See accompanying file
5
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
+ //
7
+ // See http://www.boost.org/libs/container for documentation.
8
+ //
9
+ //////////////////////////////////////////////////////////////////////////////
10
+
11
+ #ifndef BOOST_CONTAINER_SEGTOR_HPP
12
+ #define BOOST_CONTAINER_SEGTOR_HPP
13
+
14
+ #ifndef BOOST_CONFIG_HPP
15
+ # include <boost/config.hpp>
16
+ #endif
17
+
18
+ #if defined(BOOST_HAS_PRAGMA_ONCE)
19
+ # pragma once
20
+ #endif
21
+
22
+ #include <boost/container/detail/config_begin.hpp>
23
+ #include <boost/container/detail/workaround.hpp>
24
+ #include <boost/container/detail/deque_impl.hpp>
25
+
26
+ namespace boost {
27
+ namespace container {
28
+
29
+ #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
30
+ //! A segtor (contraction of "segmented vector" is a sequence container that supports
31
+ //! random access to elements, constant time insertion and removal of elements at
32
+ //! the end, and linear time insertion and removal of elements in the middle.
33
+ //!
34
+ //! It's the single-ended version of boost::container::deque: it provides
35
+ //! push_back, pop_back, emplace_back, etc., but does not provide push_front,
36
+ //! pop_front, or emplace_front.
37
+ //!
38
+ //! \tparam T The type of object that is stored in the segtor
39
+ //! \tparam Allocator The allocator used for all internal memory management, use void
40
+ //! for the default allocator
41
+ //! \tparam Options A type produced from \c boost::container::segtor_options.
42
+ template <class T, class Allocator = void, class Options = void>
43
+ #else
44
+ template <class T, class Allocator, class Options>
45
+ #endif
46
+ class segtor : public deque_impl<T, Allocator, true, Options>
47
+ {
48
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
49
+ BOOST_COPYABLE_AND_MOVABLE(segtor)
50
+ typedef deque_impl<T, Allocator, true, Options> base_type;
51
+ #endif
52
+
53
+ public:
54
+ //////////////////////////////////////////////
55
+ //
56
+ // types
57
+ //
58
+ //////////////////////////////////////////////
59
+
60
+ typedef T value_type;
61
+ typedef typename base_type::allocator_type allocator_type;
62
+ typedef typename base_type::pointer pointer;
63
+ typedef typename base_type::const_pointer const_pointer;
64
+ typedef typename base_type::reference reference;
65
+ typedef typename base_type::const_reference const_reference;
66
+ typedef typename base_type::size_type size_type;
67
+ typedef typename base_type::difference_type difference_type;
68
+ typedef typename base_type::iterator iterator;
69
+ typedef typename base_type::const_iterator const_iterator;
70
+ typedef typename base_type::reverse_iterator reverse_iterator;
71
+ typedef typename base_type::const_reverse_iterator const_reverse_iterator;
72
+ typedef typename base_type::stored_allocator_type stored_allocator_type;
73
+
74
+ using base_type::get_block_size;
75
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
76
+ using base_type::get_segment_size;
77
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
78
+ static const std::size_t is_reservable = base_type::is_reservable;
79
+
80
+ //////////////////////////////////////////////
81
+ //
82
+ // construct/copy/destroy
83
+ //
84
+ //////////////////////////////////////////////
85
+
86
+ //! <b>Effects</b>: Default constructs a segtor.
87
+ //!
88
+ //! <b>Throws</b>: If allocator_type's default constructor throws.
89
+ //!
90
+ //! <b>Complexity</b>: Constant.
91
+ segtor()
92
+ BOOST_NOEXCEPT_IF(dtl::is_nothrow_default_constructible<allocator_type>::value)
93
+ : base_type()
94
+ {}
95
+
96
+ //! <b>Effects</b>: Constructs a segtor taking the allocator as parameter.
97
+ //!
98
+ //! <b>Throws</b>: Nothing
99
+ //!
100
+ //! <b>Complexity</b>: Constant.
101
+ explicit segtor(const allocator_type& a) BOOST_NOEXCEPT_OR_NOTHROW
102
+ : base_type(a)
103
+ {}
104
+
105
+ //! <b>Effects</b>: Constructs a segtor
106
+ //! and inserts n value initialized values.
107
+ //!
108
+ //! <b>Throws</b>: If allocator_type's default constructor
109
+ //! throws or T's value initialization throws.
110
+ //!
111
+ //! <b>Complexity</b>: Linear to n.
112
+ explicit segtor(size_type n)
113
+ : base_type(n)
114
+ {}
115
+
116
+ //! <b>Effects</b>: Constructs a segtor
117
+ //! and inserts n default initialized values.
118
+ //!
119
+ //! <b>Throws</b>: If allocator_type's default constructor
120
+ //! throws or T's default initialization or copy constructor throws.
121
+ //!
122
+ //! <b>Complexity</b>: Linear to n.
123
+ //!
124
+ //! <b>Note</b>: Non-standard extension
125
+ segtor(size_type n, default_init_t)
126
+ : base_type(n, default_init)
127
+ {}
128
+
129
+ //! <b>Effects</b>: Constructs a segtor that will use a copy of allocator a
130
+ //! and inserts n value initialized values.
131
+ //!
132
+ //! <b>Throws</b>: If allocator_type's default constructor
133
+ //! throws or T's value initialization throws.
134
+ //!
135
+ //! <b>Complexity</b>: Linear to n.
136
+ explicit segtor(size_type n, const allocator_type& a)
137
+ : base_type(n, a)
138
+ {}
139
+
140
+ //! <b>Effects</b>: Constructs a segtor that will use a copy of allocator a
141
+ //! and inserts n default initialized values.
142
+ //!
143
+ //! <b>Throws</b>: If allocator_type's default constructor
144
+ //! throws or T's default initialization or copy constructor throws.
145
+ //!
146
+ //! <b>Complexity</b>: Linear to n.
147
+ //!
148
+ //! <b>Note</b>: Non-standard extension
149
+ segtor(size_type n, default_init_t, const allocator_type& a)
150
+ : base_type(n, default_init, a)
151
+ {}
152
+
153
+ //! <b>Effects</b>: Constructs a segtor that will use a copy of allocator a
154
+ //! and inserts n copies of value.
155
+ //!
156
+ //! <b>Throws</b>: If allocator_type's default constructor
157
+ //! throws or T's copy constructor throws.
158
+ //!
159
+ //! <b>Complexity</b>: Linear to n.
160
+ segtor(size_type n, const value_type& value)
161
+ : base_type(n, value)
162
+ {}
163
+
164
+ //! <b>Effects</b>: Constructs a segtor that will use a copy of allocator a
165
+ //! and inserts n copies of value.
166
+ //!
167
+ //! <b>Throws</b>: If allocator_type's default constructor
168
+ //! throws or T's copy constructor throws.
169
+ //!
170
+ //! <b>Complexity</b>: Linear to n.
171
+ segtor(size_type n, const value_type& value, const allocator_type& a)
172
+ : base_type(n, value, a)
173
+ {}
174
+
175
+ //! <b>Effects</b>: Constructs a segtor that will use a copy of allocator a
176
+ //! and inserts a copy of the range [first, last).
177
+ //!
178
+ //! <b>Throws</b>: If allocator_type's default constructor
179
+ //! throws or T's constructor taking a dereferenced InIt throws.
180
+ //!
181
+ //! <b>Complexity</b>: Linear to the range [first, last).
182
+ template <class InIt>
183
+ segtor(InIt first, InIt last
184
+ #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
185
+ , typename dtl::disable_if_convertible<InIt, size_type>::type* = 0
186
+ #endif
187
+ )
188
+ : base_type(first, last)
189
+ {}
190
+
191
+ //! <b>Effects</b>: Constructs a segtor that will use a copy of allocator a
192
+ //! and inserts a copy of the range [first, last).
193
+ //!
194
+ //! <b>Throws</b>: If allocator_type's default constructor
195
+ //! throws or T's constructor taking a dereferenced InIt throws.
196
+ //!
197
+ //! <b>Complexity</b>: Linear to the range [first, last).
198
+ template <class InIt>
199
+ segtor(InIt first, InIt last, const allocator_type& a
200
+ #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
201
+ , typename dtl::disable_if_convertible<InIt, size_type>::type* = 0
202
+ #endif
203
+ )
204
+ : base_type(first, last, a)
205
+ {}
206
+
207
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
208
+ //! <b>Effects</b>: Constructs a segtor that will use a copy of allocator a
209
+ //! and inserts a copy of the range [il.begin(), il.end()).
210
+ //!
211
+ //! <b>Throws</b>: If allocator_type's default constructor
212
+ //! throws or T's constructor taking a dereferenced std::initializer_list iterator throws.
213
+ //!
214
+ //! <b>Complexity</b>: Linear to the range [il.begin(), il.end()).
215
+ segtor(std::initializer_list<value_type> il, const allocator_type& a = allocator_type())
216
+ : base_type(il, a)
217
+ {}
218
+ #endif
219
+
220
+ //! <b>Effects</b>: Copy constructs a segtor.
221
+ //!
222
+ //! <b>Postcondition</b>: x == *this.
223
+ //!
224
+ //! <b>Complexity</b>: Linear to the elements x contains.
225
+ segtor(const segtor& x)
226
+ : base_type(x)
227
+ {}
228
+
229
+ //! <b>Effects</b>: Move constructor. Moves x's resources to *this.
230
+ //!
231
+ //! <b>Throws</b>: If allocator_type's copy constructor throws.
232
+ //!
233
+ //! <b>Complexity</b>: Constant.
234
+ segtor(BOOST_RV_REF(segtor) x) BOOST_NOEXCEPT_OR_NOTHROW
235
+ : base_type(boost::move(static_cast<base_type&>(x)))
236
+ {}
237
+
238
+ //! <b>Effects</b>: Copy constructs a segtor using the specified allocator.
239
+ //!
240
+ //! <b>Postcondition</b>: x == *this.
241
+ //!
242
+ //! <b>Throws</b>: If allocation
243
+ //! throws or T's copy constructor throws.
244
+ //!
245
+ //! <b>Complexity</b>: Linear to the elements x contains.
246
+ segtor(const segtor& x, const BOOST_CONTAINER_DOC1ST(allocator_type, typename dtl::type_identity<allocator_type>::type)& a)
247
+ : base_type(x, a)
248
+ {}
249
+
250
+ //! <b>Effects</b>: Move constructor using the specified allocator.
251
+ //! Moves x's resources to *this if a == allocator_type().
252
+ //! Otherwise copies values from x to *this.
253
+ //!
254
+ //! <b>Throws</b>: If allocation or T's copy constructor throws.
255
+ //!
256
+ //! <b>Complexity</b>: Constant if a == x.get_allocator(), linear otherwise.
257
+ segtor(BOOST_RV_REF(segtor) x, const BOOST_CONTAINER_DOC1ST(allocator_type, typename dtl::type_identity<allocator_type>::type)& a)
258
+ : base_type(boost::move(static_cast<base_type&>(x)), a)
259
+ {}
260
+
261
+ //! <b>Effects</b>: Destroys the segtor. All stored values are destroyed
262
+ //! and used memory is deallocated.
263
+ //!
264
+ //! <b>Throws</b>: Nothing.
265
+ //!
266
+ //! <b>Complexity</b>: Linear to the number of elements.
267
+ ~segtor() BOOST_NOEXCEPT_OR_NOTHROW
268
+ {}
269
+
270
+ //! <b>Effects</b>: Makes *this contain the same elements as x.
271
+ //!
272
+ //! <b>Postcondition</b>: this->size() == x.size(). *this contains a copy
273
+ //! of each of x's elements.
274
+ //!
275
+ //! <b>Throws</b>: If memory allocation throws or T's copy constructor throws.
276
+ //!
277
+ //! <b>Complexity</b>: Linear to the number of elements in x.
278
+ segtor& operator=(BOOST_COPY_ASSIGN_REF(segtor) x)
279
+ {
280
+ base_type::operator=(static_cast<const base_type&>(x));
281
+ return *this;
282
+ }
283
+
284
+ //! <b>Effects</b>: Move assignment. All x's values are transferred to *this.
285
+ //!
286
+ //! <b>Throws</b>: If allocator_traits_type::propagate_on_container_move_assignment
287
+ //! is false and (allocation throws or value_type's move constructor throws)
288
+ //!
289
+ //! <b>Complexity</b>: Constant if allocator_traits_type::
290
+ //! propagate_on_container_move_assignment is true or
291
+ //! this->get_allocator() == x.get_allocator(). Linear otherwise.
292
+ segtor& operator=(BOOST_RV_REF(segtor) x)
293
+ BOOST_NOEXCEPT_IF(allocator_traits<allocator_type>::propagate_on_container_move_assignment::value
294
+ || allocator_traits<allocator_type>::is_always_equal::value)
295
+ {
296
+ base_type::operator=(BOOST_MOVE_BASE(base_type, x));
297
+ return *this;
298
+ }
299
+
300
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
301
+ //! <b>Effects</b>: Makes *this contain the same elements as il.
302
+ //!
303
+ //! <b>Postcondition</b>: this->size() == il.size(). *this contains a copy
304
+ //! of each of il's elements.
305
+ //!
306
+ //! <b>Throws</b>: If memory allocation throws or T's copy constructor throws.
307
+ //!
308
+ //! <b>Complexity</b>: Linear to the number of elements in il.
309
+ segtor& operator=(std::initializer_list<value_type> il)
310
+ {
311
+ base_type::operator=(il);
312
+ return *this;
313
+ }
314
+ #endif
315
+
316
+ //////////////////////////////////////////////
317
+ //
318
+ // capacity
319
+ //
320
+ //////////////////////////////////////////////
321
+
322
+ //! <b>Requires</b>: The container must be "reservable" (is_reservable == true)
323
+ //!
324
+ //! <b>Effects</b>: If n is less than or equal to capacity() or the container is not reservable,
325
+ //! this call has no effect. Otherwise, it is a request for allocation of additional memory.
326
+ //! If the request is successful, then capacity() is greater than or equal to
327
+ //! n; otherwise, capacity() is unchanged. In either case, size() is unchanged.
328
+ //!
329
+ //! <b>Throws</b>: If memory allocation throws.
330
+ //!
331
+ //! <b>Complexity</b>: Linear to n.
332
+ //!
333
+ //! <b>Note</b>: Non-standard extension.
334
+ void reserve(size_type n)
335
+ {
336
+ this->reserve_back(n);
337
+ }
338
+
339
+ //! <b>Effects</b>: Returns the number of elements that can be inserted
340
+ //! at the back without allocating additional memory.
341
+ //!
342
+ //! <b>Throws</b>: Nothing.
343
+ //!
344
+ //! <b>Complexity</b>: Constant.
345
+ //!
346
+ //! <b>Note</b>: Non-standard extension.
347
+ BOOST_CONTAINER_NODISCARD size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
348
+ {
349
+ return this->back_capacity();
350
+ }
351
+
352
+ #ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
353
+
354
+ //! <b>Effects</b>: Returns the number of continguous elements per segment/block.
355
+ //! Same as get_block_size().
356
+ //!
357
+ //! <b>Throws</b>: Nothing.
358
+ //!
359
+ //! <b>Complexity</b>: Constant.
360
+ static size_type get_segment_size() BOOST_NOEXCEPT_OR_NOTHROW;
361
+
362
+ //! <b>Effects</b>: Returns the number of continguous elements per segment/block.
363
+ //! Same as get_segment_size().
364
+ //!
365
+ //! <b>Throws</b>: Nothing.
366
+ //!
367
+ //! <b>Complexity</b>: Constant.
368
+ static size_type get_block_size() BOOST_NOEXCEPT_OR_NOTHROW;
369
+
370
+ //////////////////////////////////////////////
371
+ //
372
+ // iterators
373
+ //
374
+ //////////////////////////////////////////////
375
+
376
+ //! <b>Effects</b>: Returns an iterator to the first element contained in the container.
377
+ //!
378
+ //! <b>Throws</b>: Nothing.
379
+ //!
380
+ //! <b>Complexity</b>: Constant.
381
+ BOOST_CONTAINER_NODISCARD iterator begin() BOOST_NOEXCEPT_OR_NOTHROW;
382
+
383
+ //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
384
+ //!
385
+ //! <b>Throws</b>: Nothing.
386
+ //!
387
+ //! <b>Complexity</b>: Constant.
388
+ BOOST_CONTAINER_NODISCARD const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW;
389
+
390
+ //! <b>Effects</b>: Returns an iterator to the end of the container.
391
+ //!
392
+ //! <b>Throws</b>: Nothing.
393
+ //!
394
+ //! <b>Complexity</b>: Constant.
395
+ BOOST_CONTAINER_NODISCARD iterator end() BOOST_NOEXCEPT_OR_NOTHROW;
396
+
397
+ //! <b>Effects</b>: Returns a const_iterator to the end of the container.
398
+ //!
399
+ //! <b>Throws</b>: Nothing.
400
+ //!
401
+ //! <b>Complexity</b>: Constant.
402
+ BOOST_CONTAINER_NODISCARD const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW;
403
+
404
+ //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
405
+ //! of the reversed container.
406
+ //!
407
+ //! <b>Throws</b>: Nothing.
408
+ //!
409
+ //! <b>Complexity</b>: Constant.
410
+ BOOST_CONTAINER_NODISCARD reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW;
411
+
412
+ //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
413
+ //! of the reversed container.
414
+ //!
415
+ //! <b>Throws</b>: Nothing.
416
+ //!
417
+ //! <b>Complexity</b>: Constant.
418
+ BOOST_CONTAINER_NODISCARD const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
419
+
420
+ //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
421
+ //! of the reversed container.
422
+ //!
423
+ //! <b>Throws</b>: Nothing.
424
+ //!
425
+ //! <b>Complexity</b>: Constant.
426
+ BOOST_CONTAINER_NODISCARD reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW;
427
+
428
+ //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
429
+ //! of the reversed container.
430
+ //!
431
+ //! <b>Throws</b>: Nothing.
432
+ //!
433
+ //! <b>Complexity</b>: Constant.
434
+ BOOST_CONTAINER_NODISCARD const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW;
435
+
436
+ //! <b>Effects</b>: Returns a const_iterator to the first element contained in the container.
437
+ //!
438
+ //! <b>Throws</b>: Nothing.
439
+ //!
440
+ //! <b>Complexity</b>: Constant.
441
+ BOOST_CONTAINER_NODISCARD const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
442
+
443
+ //! <b>Effects</b>: Returns a const_iterator to the end of the container.
444
+ //!
445
+ //! <b>Throws</b>: Nothing.
446
+ //!
447
+ //! <b>Complexity</b>: Constant.
448
+ BOOST_CONTAINER_NODISCARD const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW;
449
+
450
+ //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
451
+ //! of the reversed container.
452
+ //!
453
+ //! <b>Throws</b>: Nothing.
454
+ //!
455
+ //! <b>Complexity</b>: Constant.
456
+ BOOST_CONTAINER_NODISCARD const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW;
457
+
458
+ //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
459
+ //! of the reversed container.
460
+ //!
461
+ //! <b>Throws</b>: Nothing.
462
+ //!
463
+ //! <b>Complexity</b>: Constant.
464
+ BOOST_CONTAINER_NODISCARD const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW;
465
+
466
+ //////////////////////////////////////////////
467
+ //
468
+ // element access
469
+ //
470
+ //////////////////////////////////////////////
471
+
472
+ //! <b>Effects</b>: Returns true if the container contains no elements.
473
+ //!
474
+ //! <b>Throws</b>: Nothing.
475
+ //!
476
+ //! <b>Complexity</b>: Constant.
477
+ BOOST_CONTAINER_NODISCARD bool empty() const BOOST_NOEXCEPT_OR_NOTHROW;
478
+
479
+ //! <b>Effects</b>: Returns the number of the elements contained in the container.
480
+ //!
481
+ //! <b>Throws</b>: Nothing.
482
+ //!
483
+ //! <b>Complexity</b>: Constant.
484
+ BOOST_CONTAINER_NODISCARD size_type size() const BOOST_NOEXCEPT_OR_NOTHROW;
485
+
486
+ //! <b>Effects</b>: Returns the largest possible size of the container.
487
+ //!
488
+ //! <b>Throws</b>: Nothing.
489
+ //!
490
+ //! <b>Complexity</b>: Constant.
491
+ BOOST_CONTAINER_NODISCARD size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW;
492
+
493
+ //! <b>Requires</b>: !empty()
494
+ //!
495
+ //! <b>Effects</b>: Returns a reference to the first element of the container.
496
+ //!
497
+ //! <b>Throws</b>: Nothing.
498
+ //!
499
+ //! <b>Complexity</b>: Constant.
500
+ BOOST_CONTAINER_NODISCARD reference front();
501
+
502
+ //! <b>Requires</b>: !empty()
503
+ //!
504
+ //! <b>Effects</b>: Returns a const reference to the first element from the beginning of the container.
505
+ //!
506
+ //! <b>Throws</b>: Nothing.
507
+ //!
508
+ //! <b>Complexity</b>: Constant.
509
+ BOOST_CONTAINER_NODISCARD const_reference front() const;
510
+
511
+ //! <b>Requires</b>: !empty()
512
+ //!
513
+ //! <b>Effects</b>: Returns a reference to the last element of the container.
514
+ //!
515
+ //! <b>Throws</b>: Nothing.
516
+ //!
517
+ //! <b>Complexity</b>: Constant.
518
+ BOOST_CONTAINER_NODISCARD reference back();
519
+
520
+ //! <b>Requires</b>: !empty()
521
+ //!
522
+ //! <b>Effects</b>: Returns a const reference to the last element of the container.
523
+ //!
524
+ //! <b>Throws</b>: Nothing.
525
+ //!
526
+ //! <b>Complexity</b>: Constant.
527
+ BOOST_CONTAINER_NODISCARD const_reference back() const;
528
+
529
+ //! <b>Requires</b>: size() > n.
530
+ //!
531
+ //! <b>Effects</b>: Returns a reference to the nth element from the beginning of the container.
532
+ //!
533
+ //! <b>Throws</b>: Nothing.
534
+ //!
535
+ //! <b>Complexity</b>: Constant.
536
+ BOOST_CONTAINER_NODISCARD reference operator[](size_type n);
537
+
538
+ //! <b>Requires</b>: size() > n.
539
+ //!
540
+ //! <b>Effects</b>: Returns a const reference to the nth element from the beginning of the container.
541
+ //!
542
+ //! <b>Throws</b>: Nothing.
543
+ //!
544
+ //! <b>Complexity</b>: Constant.
545
+ BOOST_CONTAINER_NODISCARD const_reference operator[](size_type n) const;
546
+
547
+ //! <b>Requires</b>: size() > n.
548
+ //!
549
+ //! <b>Effects</b>: Returns a reference to the nth element from the beginning of the container.
550
+ //!
551
+ //! <b>Throws</b>: range_error if n >= size()
552
+ //!
553
+ //! <b>Complexity</b>: Constant.
554
+ BOOST_CONTAINER_NODISCARD reference at(size_type n);
555
+
556
+ //! <b>Requires</b>: size() > n.
557
+ //!
558
+ //! <b>Effects</b>: Returns a const reference to the nth element from the beginning of the container.
559
+ //!
560
+ //! <b>Throws</b>: range_error if n >= size()
561
+ //!
562
+ //! <b>Complexity</b>: Constant.
563
+ BOOST_CONTAINER_NODISCARD const_reference at(size_type n) const;
564
+
565
+ //////////////////////////////////////////////
566
+ //
567
+ // allocator
568
+ //
569
+ //////////////////////////////////////////////
570
+
571
+ //! <b>Effects</b>: Returns a copy of the internal allocator.
572
+ //!
573
+ //! <b>Throws</b>: If allocator's copy constructor throws.
574
+ //!
575
+ //! <b>Complexity</b>: Constant.
576
+ BOOST_CONTAINER_NODISCARD allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW;
577
+
578
+ //! <b>Effects</b>: Returns a reference to the internal allocator.
579
+ //!
580
+ //! <b>Throws</b>: Nothing
581
+ //!
582
+ //! <b>Complexity</b>: Constant.
583
+ //!
584
+ //! <b>Note</b>: Non-standard extension.
585
+ BOOST_CONTAINER_NODISCARD const stored_allocator_type& get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW;
586
+
587
+ //! <b>Effects</b>: Returns a reference to the internal allocator.
588
+ //!
589
+ //! <b>Throws</b>: Nothing
590
+ //!
591
+ //! <b>Complexity</b>: Constant.
592
+ //!
593
+ //! <b>Note</b>: Non-standard extension.
594
+ BOOST_CONTAINER_NODISCARD stored_allocator_type& get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW;
595
+
596
+ //////////////////////////////////////////////
597
+ //
598
+ // modifiers
599
+ //
600
+ //////////////////////////////////////////////
601
+
602
+ //! <b>Effects</b>: Assigns the n copies of val to *this.
603
+ //!
604
+ //! <b>Throws</b>: If memory allocation throws or T's copy constructor throws.
605
+ //!
606
+ //! <b>Complexity</b>: Linear to n.
607
+ void assign(size_type n, const value_type& value);
608
+
609
+ //! <b>Effects</b>: Assigns the range [first, last) to *this.
610
+ //!
611
+ //! <b>Throws</b>: If memory allocation throws or
612
+ //! T's constructor from dereferencing InIt throws.
613
+ //!
614
+ //! <b>Complexity</b>: Linear to the distance [first, last).
615
+ template <class InIt>
616
+ void assign(InIt first, InIt last);
617
+
618
+ //! <b>Effects</b>: Assigns the range [il.begin(), il.end()) to *this.
619
+ //!
620
+ //! <b>Throws</b>: If memory allocation throws or
621
+ //! T's constructor from dereferencing std::initializer_list iterator throws.
622
+ //!
623
+ //! <b>Complexity</b>: Linear to il.size().
624
+ void assign(std::initializer_list<value_type> il);
625
+
626
+ //! <b>Effects</b>: Erases all the elements of the container.
627
+ //!
628
+ //! <b>Throws</b>: Nothing.
629
+ //!
630
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
631
+ void clear() BOOST_NOEXCEPT_OR_NOTHROW;
632
+
633
+ //! <b>Requires</b>: p must be a valid iterator of *this.
634
+ //!
635
+ //! <b>Effects</b>: Inserts an object of type T constructed with
636
+ //! std::forward<Args>(args)... before p
637
+ //!
638
+ //! <b>Throws</b>: If memory allocation throws or the in-place constructor throws.
639
+ //!
640
+ //! <b>Complexity</b>: If p is end(), amortized constant time
641
+ //! Linear time otherwise.
642
+ template <class... Args>
643
+ iterator emplace(const_iterator p, BOOST_FWD_REF(Args)... args);
644
+
645
+ //! <b>Effects</b>: Inserts an object of type T constructed with
646
+ //! std::forward<Args>(args)... at the end of the container.
647
+ //!
648
+ //! <b>Returns</b>: A reference to the created object.
649
+ //!
650
+ //! <b>Throws</b>: If memory allocation throws or the in-place constructor throws.
651
+ //!
652
+ //! <b>Complexity</b>: Amortized constant time
653
+ template <class... Args>
654
+ reference emplace_back(BOOST_FWD_REF(Args)... args);
655
+
656
+ //! <b>Requires</b>: p must be a valid iterator of *this.
657
+ //!
658
+ //! <b>Effects</b>: Insert a copy of x before p.
659
+ //!
660
+ //! <b>Returns</b>: an iterator to the inserted element.
661
+ //!
662
+ //! <b>Throws</b>: If memory allocation throws or x's copy constructor throws.
663
+ //!
664
+ //! <b>Complexity</b>: If p is end(), amortized constant time
665
+ //! Linear time otherwise.
666
+ iterator insert(const_iterator p, const value_type& x);
667
+
668
+ //! <b>Requires</b>: p must be a valid iterator of *this.
669
+ //!
670
+ //! <b>Effects</b>: Insert a new element before p with x's resources.
671
+ //!
672
+ //! <b>Returns</b>: an iterator to the inserted element.
673
+ //!
674
+ //! <b>Throws</b>: If memory allocation throws.
675
+ //!
676
+ //! <b>Complexity</b>: If p is end(), amortized constant time
677
+ //! Linear time otherwise.
678
+ iterator insert(const_iterator p, BOOST_RV_REF(value_type) x);
679
+
680
+ //! <b>Requires</b>: pos must be a valid iterator of *this.
681
+ //!
682
+ //! <b>Effects</b>: Insert n copies of x before pos.
683
+ //!
684
+ //! <b>Returns</b>: an iterator to the first inserted element or pos if n is 0.
685
+ //!
686
+ //! <b>Throws</b>: If memory allocation throws or T's copy constructor throws.
687
+ //!
688
+ //! <b>Complexity</b>: Linear to n.
689
+ iterator insert(const_iterator pos, size_type n, const value_type& x),
690
+
691
+ //! <b>Requires</b>: pos must be a valid iterator of *this.
692
+ //!
693
+ //! <b>Effects</b>: Insert a copy of the [first, last) range before pos.
694
+ //!
695
+ //! <b>Returns</b>: an iterator to the first inserted element or pos if first == last.
696
+ //!
697
+ //! <b>Throws</b>: If memory allocation throws, T's constructor from a
698
+ //! dereferenced InIt throws or T's copy constructor throws.
699
+ //!
700
+ //! <b>Complexity</b>: Linear to distance [first, last).
701
+ template <class InIt>
702
+ iterator insert(const_iterator pos, InIt first, InIt last);
703
+
704
+ #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST)
705
+ //! <b>Requires</b>: pos must be a valid iterator of *this.
706
+ //!
707
+ //! <b>Effects</b>: Insert a copy of the [il.begin(), il.end()) range before pos.
708
+ //!
709
+ //! <b>Returns</b>: an iterator to the first inserted element or pos if il.begin() == il.end().
710
+ //!
711
+ //! <b>Throws</b>: If memory allocation throws, T's constructor from a
712
+ //! dereferenced std::initializer_list throws or T's copy constructor throws.
713
+ //!
714
+ //! <b>Complexity</b>: Linear to distance [il.begin(), il.end()).
715
+ iterator insert(const_iterator pos, std::initializer_list<value_type> il);
716
+ #endif
717
+
718
+ //! <b>Effects</b>: Erases the element at p.
719
+ //!
720
+ //! <b>Throws</b>: Nothing.
721
+ //!
722
+ //! <b>Complexity</b>: Linear to the elements between pos and the
723
+ //! last element (if pos is near the end) or the first element
724
+ //! if (pos is near the beginning).
725
+ //! Constant if pos is the first or the last element.
726
+ iterator erase(const_iterator p) BOOST_NOEXCEPT_OR_NOTHROW;
727
+
728
+ //! <b>Effects</b>: Erases the elements pointed by [first, last).
729
+ //!
730
+ //! <b>Throws</b>: Nothing.
731
+ //!
732
+ //! <b>Complexity</b>: Linear to the distance between first and
733
+ //! last plus the elements between pos and the
734
+ //! last element (if pos is near the end) or the first element
735
+ //! if (pos is near the beginning).
736
+ iterator erase(const_iterator first, const_iterator last) BOOST_NOEXCEPT_OR_NOTHROW;
737
+
738
+ //! <b>Effects</b>: Inserts a copy of x at the end of the container.
739
+ //!
740
+ //! <b>Throws</b>: If memory allocation throws or
741
+ //! T's copy constructor throws.
742
+ //!
743
+ //! <b>Complexity</b>: Amortized constant time.
744
+ void push_back(const value_type& x);
745
+
746
+ //! <b>Effects</b>: Constructs a new element at the end of the container
747
+ //! and moves the resources of x to this new element.
748
+ //!
749
+ //! <b>Throws</b>: If memory allocation throws.
750
+ //!
751
+ //! <b>Complexity</b>: Amortized constant time.
752
+ void push_back(BOOST_RV_REF(value_type) x);
753
+
754
+ //! <b>Effects</b>: Removes the last element from the container.
755
+ //!
756
+ //! <b>Throws</b>: Nothing.
757
+ //!
758
+ //! <b>Complexity</b>: Constant time.
759
+ void pop_back() BOOST_NOEXCEPT_OR_NOTHROW;
760
+
761
+ //! <b>Effects</b>: Inserts or erases elements at the end such that
762
+ //! the size becomes n. New elements are value initialized.
763
+ //!
764
+ //! <b>Throws</b>: If memory allocation throws, or T's constructor throws.
765
+ //!
766
+ //! <b>Complexity</b>: Linear to the difference between size() and new_size.
767
+ void resize(size_type new_size);
768
+
769
+ //! <b>Effects</b>: Inserts or erases elements at the end such that
770
+ //! the size becomes n. New elements are default initialized.
771
+ //!
772
+ //! <b>Throws</b>: If memory allocation throws, or T's constructor throws.
773
+ //!
774
+ //! <b>Complexity</b>: Linear to the difference between size() and new_size.
775
+ //!
776
+ //! <b>Note</b>: Non-standard extension
777
+ void resize(size_type new_size, default_init_t);
778
+
779
+ //! <b>Effects</b>: Inserts or erases elements at the end such that
780
+ //! the size becomes n. New elements are copy constructed from x.
781
+ //!
782
+ //! <b>Throws</b>: If memory allocation throws, or T's copy constructor throws.
783
+ //!
784
+ //! <b>Complexity</b>: Linear to the difference between size() and new_size.
785
+ void resize(size_type new_size, const value_type& x);
786
+
787
+ //! <b>Effects</b>: Swaps the contents of *this and x.
788
+ //!
789
+ //! <b>Throws</b>: Nothing.
790
+ //!
791
+ //! <b>Complexity</b>: Constant.
792
+ void swap(segtor& x);
793
+ #endif //#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
794
+
795
+ //! <b>Effects</b>: Returns true if x and y are equal
796
+ //!
797
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
798
+ BOOST_CONTAINER_NODISCARD inline
799
+ friend bool operator==(const segtor& x, const segtor& y)
800
+ { return static_cast<const base_type&>(x) == static_cast<const base_type&>(y); }
801
+
802
+ //! <b>Effects</b>: Returns true if x and y are unequal
803
+ //!
804
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
805
+ BOOST_CONTAINER_NODISCARD inline
806
+ friend bool operator!=(const segtor& x, const segtor& y)
807
+ { return static_cast<const base_type&>(x) != static_cast<const base_type&>(y); }
808
+
809
+ //! <b>Effects</b>: Returns true if x is less than y
810
+ //!
811
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
812
+ BOOST_CONTAINER_NODISCARD inline
813
+ friend bool operator<(const segtor& x, const segtor& y)
814
+ { return static_cast<const base_type&>(x) < static_cast<const base_type&>(y); }
815
+
816
+ //! <b>Effects</b>: Returns true if x is greater than y
817
+ //!
818
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
819
+ BOOST_CONTAINER_NODISCARD inline
820
+ friend bool operator>(const segtor& x, const segtor& y)
821
+ { return static_cast<const base_type&>(x) > static_cast<const base_type&>(y); }
822
+
823
+ //! <b>Effects</b>: Returns true if x is equal or less than y
824
+ //!
825
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
826
+ BOOST_CONTAINER_NODISCARD inline
827
+ friend bool operator<=(const segtor& x, const segtor& y)
828
+ { return static_cast<const base_type&>(x) <= static_cast<const base_type&>(y); }
829
+
830
+ //! <b>Effects</b>: Returns true if x is equal or greater than y
831
+ //!
832
+ //! <b>Complexity</b>: Linear to the number of elements in the container.
833
+ BOOST_CONTAINER_NODISCARD inline
834
+ friend bool operator>=(const segtor& x, const segtor& y)
835
+ { return static_cast<const base_type&>(x) >= static_cast<const base_type&>(y); }
836
+
837
+ //! <b>Effects</b>: x.swap(y)
838
+ //!
839
+ //! <b>Complexity</b>: Constant.
840
+ inline friend void swap(segtor& x, segtor& y)
841
+ BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT(x.swap(y)))
842
+ { static_cast<base_type&>(x).swap(static_cast<base_type&>(y)); }
843
+
844
+ };
845
+
846
+
847
+ #ifndef BOOST_CONTAINER_NO_CXX17_CTAD
848
+
849
+ //! <b>Deduction guide</b>: allows a `segtor` to be constructed from the iterator
850
+ //! range <code>[first, last)</code>, deducing the element type from the value type
851
+ //! of `InputIterator` and using the default allocator.
852
+ template <typename InputIterator>
853
+ segtor(InputIterator, InputIterator) ->
854
+ segtor<typename iter_value<InputIterator>::type>;
855
+
856
+ //! <b>Deduction guide</b>: allows a `segtor` to be constructed from the iterator
857
+ //! range <code>[first, last)</code>, deducing the element type from the value type
858
+ //! of `InputIterator` and taking the allocator type from the supplied allocator.
859
+ template <typename InputIterator, typename Allocator>
860
+ segtor(InputIterator, InputIterator, Allocator const&) ->
861
+ segtor<typename iter_value<InputIterator>::type, Allocator>;
862
+
863
+ #endif
864
+
865
+ //! <b>Effects</b>: Erases all elements that compare equal to v from the container c.
866
+ //!
867
+ //! <b>Complexity</b>: Linear.
868
+ template <class T, class A, class O, class U>
869
+ inline typename segtor<T, A, O>::size_type erase(segtor<T, A, O>& c, const U& v)
870
+ {
871
+ typename segtor<T, A, O>::size_type old_size = c.size();
872
+ c.erase(boost::container::remove(c.begin(), c.end(), v), c.end());
873
+ return old_size - c.size();
874
+ }
875
+
876
+ //! <b>Effects</b>: Erases all elements that satisfy the predicate pred from the container c.
877
+ //!
878
+ //! <b>Complexity</b>: Linear.
879
+ template <class T, class A, class O, class Pred>
880
+ inline typename segtor<T, A, O>::size_type erase_if(segtor<T, A, O>& c, Pred pred)
881
+ {
882
+ typename segtor<T, A, O>::size_type old_size = c.size();
883
+ c.erase(boost::container::remove_if(c.begin(), c.end(), pred), c.end());
884
+ return old_size - c.size();
885
+ }
886
+
887
+ } //namespace container {
888
+ } //namespace boost {
889
+
890
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
891
+
892
+ namespace boost {
893
+
894
+ template <class T, class Allocator, class Options>
895
+ struct has_trivial_destructor_after_move<boost::container::segtor<T, Allocator, Options> >
896
+ : has_trivial_destructor_after_move<boost::container::deque_impl<T, Allocator, true, Options> >
897
+ {};
898
+
899
+ } //namespace boost {
900
+
901
+ #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
902
+
903
+ #include <boost/container/detail/config_end.hpp>
904
+
905
+ #endif //#ifndef BOOST_CONTAINER_SEGTOR_HPP