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
@@ -76,6 +76,54 @@ namespace container {
76
76
 
77
77
  #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
78
78
 
79
+ namespace dtl {
80
+
81
+ template<class Alloc, bool AllocV0 = (version<Alloc>::value == 0)>
82
+ struct is_version_0_alloc_and_trivially_destructible
83
+ : boost::move_detail::is_trivially_destructible<typename Alloc::value_type>
84
+ { };
85
+
86
+ template<bool AllocV0>
87
+ struct is_version_0_alloc_and_trivially_destructible<void, AllocV0>
88
+ {
89
+ BOOST_STATIC_CONSTEXPR bool value = false;
90
+ };
91
+
92
+ template<class Alloc>
93
+ struct is_version_0_alloc_and_trivially_destructible<Alloc, false>
94
+ {
95
+ BOOST_STATIC_CONSTEXPR bool value = false;
96
+ };
97
+
98
+
99
+ } //namespace dtl {
100
+
101
+ template<class SizeType, class LimitSizeType>
102
+ struct vec_on_type_overflow
103
+ {
104
+ BOOST_CONTAINER_STATIC_ASSERT(sizeof(SizeType) >= sizeof(LimitSizeType));
105
+
106
+ typedef dtl::limit_by_stored_size_type<SizeType, LimitSizeType> check_t;
107
+ struct throw_length_error
108
+ {
109
+ const char * const m_str;
110
+
111
+ throw_length_error(const char* str)
112
+ : m_str(str)
113
+ {}
114
+
115
+ void operator()()
116
+ {
117
+ boost::container::throw_length_error(m_str);
118
+ }
119
+ };
120
+
121
+ static void throw_length(SizeType v, const char *str)
122
+ {
123
+ check_t::call_if_overflows(v, throw_length_error(str));
124
+ }
125
+ };
126
+
79
127
 
80
128
  template <class Pointer, bool IsConst>
81
129
  class vec_iterator
@@ -121,15 +169,15 @@ class vec_iterator
121
169
  , nat>::type nonconst_iterator;
122
170
 
123
171
  public:
124
- inline
172
+ BOOST_CONTAINER_FORCEINLINE
125
173
  const Pointer &get_ptr() const BOOST_NOEXCEPT_OR_NOTHROW
126
174
  { return m_ptr; }
127
175
 
128
- inline
176
+ BOOST_CONTAINER_FORCEINLINE
129
177
  Pointer &get_ptr() BOOST_NOEXCEPT_OR_NOTHROW
130
178
  { return m_ptr; }
131
179
 
132
- inline explicit vec_iterator(Pointer ptr) BOOST_NOEXCEPT_OR_NOTHROW
180
+ BOOST_CONTAINER_FORCEINLINE explicit vec_iterator(Pointer ptr) BOOST_NOEXCEPT_OR_NOTHROW
133
181
  : m_ptr(ptr)
134
182
  {}
135
183
  #endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
@@ -137,93 +185,93 @@ class vec_iterator
137
185
  public:
138
186
 
139
187
  //Constructors
140
- inline vec_iterator() BOOST_NOEXCEPT_OR_NOTHROW
188
+ BOOST_CONTAINER_FORCEINLINE vec_iterator() BOOST_NOEXCEPT_OR_NOTHROW
141
189
  : m_ptr() //Value initialization to achieve "null iterators" (N3644)
142
190
  {}
143
191
 
144
- inline vec_iterator(const vec_iterator& other) BOOST_NOEXCEPT_OR_NOTHROW
192
+ BOOST_CONTAINER_FORCEINLINE vec_iterator(const vec_iterator& other) BOOST_NOEXCEPT_OR_NOTHROW
145
193
  : m_ptr(other.get_ptr())
146
194
  {}
147
195
 
148
- inline vec_iterator(const nonconst_iterator &other) BOOST_NOEXCEPT_OR_NOTHROW
196
+ BOOST_CONTAINER_FORCEINLINE vec_iterator(const nonconst_iterator &other) BOOST_NOEXCEPT_OR_NOTHROW
149
197
  : m_ptr(other.get_ptr())
150
198
  {}
151
199
 
152
- inline vec_iterator & operator=(const vec_iterator& other) BOOST_NOEXCEPT_OR_NOTHROW
200
+ BOOST_CONTAINER_FORCEINLINE vec_iterator & operator=(const vec_iterator& other) BOOST_NOEXCEPT_OR_NOTHROW
153
201
  { m_ptr = other.get_ptr(); return *this; }
154
202
 
155
203
  //Pointer like operators
156
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
204
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
157
205
  reference operator*() const BOOST_NOEXCEPT_OR_NOTHROW
158
206
  { BOOST_ASSERT(!!m_ptr); return *m_ptr; }
159
207
 
160
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
208
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
161
209
  pointer operator->() const BOOST_NOEXCEPT_OR_NOTHROW
162
210
  { return m_ptr; }
163
211
 
164
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
212
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
165
213
  reference operator[](difference_type off) const BOOST_NOEXCEPT_OR_NOTHROW
166
214
  { BOOST_ASSERT(!!m_ptr); return m_ptr[off]; }
167
215
 
168
216
  //Increment / Decrement
169
- inline vec_iterator& operator++() BOOST_NOEXCEPT_OR_NOTHROW
217
+ BOOST_CONTAINER_FORCEINLINE vec_iterator& operator++() BOOST_NOEXCEPT_OR_NOTHROW
170
218
  { BOOST_ASSERT(!!m_ptr); ++m_ptr; return *this; }
171
219
 
172
- inline vec_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW
220
+ BOOST_CONTAINER_FORCEINLINE vec_iterator operator++(int) BOOST_NOEXCEPT_OR_NOTHROW
173
221
  { BOOST_ASSERT(!!m_ptr); return vec_iterator(m_ptr++); }
174
222
 
175
- inline vec_iterator& operator--() BOOST_NOEXCEPT_OR_NOTHROW
223
+ BOOST_CONTAINER_FORCEINLINE vec_iterator& operator--() BOOST_NOEXCEPT_OR_NOTHROW
176
224
  { BOOST_ASSERT(!!m_ptr); --m_ptr; return *this; }
177
225
 
178
- inline vec_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW
226
+ BOOST_CONTAINER_FORCEINLINE vec_iterator operator--(int) BOOST_NOEXCEPT_OR_NOTHROW
179
227
  { BOOST_ASSERT(!!m_ptr); return vec_iterator(m_ptr--); }
180
228
 
181
229
  //Arithmetic
182
- inline vec_iterator& operator+=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
230
+ BOOST_CONTAINER_FORCEINLINE vec_iterator& operator+=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
183
231
  { BOOST_ASSERT(m_ptr || !off); m_ptr += off; return *this; }
184
232
 
185
- inline vec_iterator& operator-=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
233
+ BOOST_CONTAINER_FORCEINLINE vec_iterator& operator-=(difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
186
234
  { BOOST_ASSERT(m_ptr || !off); m_ptr -= off; return *this; }
187
235
 
188
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
236
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
189
237
  friend vec_iterator operator+(const vec_iterator &x, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
190
238
  { BOOST_ASSERT(x.m_ptr || !off); return vec_iterator(x.m_ptr+off); }
191
239
 
192
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
240
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
193
241
  friend vec_iterator operator+(difference_type off, vec_iterator right) BOOST_NOEXCEPT_OR_NOTHROW
194
242
  { BOOST_ASSERT(right.m_ptr || !off); right.m_ptr += off; return right; }
195
243
 
196
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
244
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
197
245
  friend vec_iterator operator-(vec_iterator left, difference_type off) BOOST_NOEXCEPT_OR_NOTHROW
198
246
  { BOOST_ASSERT(left.m_ptr || !off); left.m_ptr -= off; return left; }
199
247
 
200
248
  //Difference
201
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
249
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
202
250
  friend difference_type operator-(const vec_iterator &left, const vec_iterator& right) BOOST_NOEXCEPT_OR_NOTHROW
203
251
  { return left.m_ptr - right.m_ptr; }
204
252
 
205
253
  //Comparison operators
206
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
254
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
207
255
  friend bool operator== (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
208
256
  { return l.m_ptr == r.m_ptr; }
209
257
 
210
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
258
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
211
259
  friend bool operator!= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
212
260
  { return l.m_ptr != r.m_ptr; }
213
261
 
214
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
262
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
215
263
  friend bool operator< (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
216
264
  { return l.m_ptr < r.m_ptr; }
217
265
 
218
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
266
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
219
267
  friend bool operator<= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
220
268
  { return l.m_ptr <= r.m_ptr; }
221
269
 
222
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
270
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
223
271
  friend bool operator> (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
224
272
  { return l.m_ptr > r.m_ptr; }
225
273
 
226
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
274
+ BOOST_CONTAINER_NODISCARD BOOST_CONTAINER_FORCEINLINE
227
275
  friend bool operator>= (const vec_iterator& l, const vec_iterator& r) BOOST_NOEXCEPT_OR_NOTHROW
228
276
  { return l.m_ptr >= r.m_ptr; }
229
277
  };
@@ -234,7 +282,7 @@ struct vector_insert_ordered_cursor
234
282
  typedef typename iterator_traits<BiDirPosConstIt>::value_type size_type;
235
283
  typedef typename iterator_traits<BiDirValueIt>::reference reference;
236
284
 
237
- inline vector_insert_ordered_cursor(BiDirPosConstIt posit, BiDirValueIt valueit)
285
+ BOOST_CONTAINER_FORCEINLINE vector_insert_ordered_cursor(BiDirPosConstIt posit, BiDirValueIt valueit)
238
286
  : last_position_it(posit), last_value_it(valueit)
239
287
  {}
240
288
 
@@ -248,10 +296,10 @@ struct vector_insert_ordered_cursor
248
296
  }
249
297
  }
250
298
 
251
- inline size_type get_pos() const
299
+ BOOST_CONTAINER_FORCEINLINE size_type get_pos() const
252
300
  { return *last_position_it; }
253
301
 
254
- inline reference get_val()
302
+ BOOST_CONTAINER_FORCEINLINE reference get_val()
255
303
  { return *last_value_it; }
256
304
 
257
305
  BiDirPosConstIt last_position_it;
@@ -259,11 +307,11 @@ struct vector_insert_ordered_cursor
259
307
  };
260
308
 
261
309
  template<class Pointer, bool IsConst>
262
- inline const Pointer &vector_iterator_get_ptr(const vec_iterator<Pointer, IsConst> &it) BOOST_NOEXCEPT_OR_NOTHROW
310
+ BOOST_CONTAINER_FORCEINLINE const Pointer &vector_iterator_get_ptr(const vec_iterator<Pointer, IsConst> &it) BOOST_NOEXCEPT_OR_NOTHROW
263
311
  { return it.get_ptr(); }
264
312
 
265
313
  template<class Pointer, bool IsConst>
266
- inline Pointer &get_ptr(vec_iterator<Pointer, IsConst> &it) BOOST_NOEXCEPT_OR_NOTHROW
314
+ BOOST_CONTAINER_FORCEINLINE Pointer &get_ptr(vec_iterator<Pointer, IsConst> &it) BOOST_NOEXCEPT_OR_NOTHROW
267
315
  { return it.get_ptr(); }
268
316
 
269
317
  struct initial_capacity_t {};
@@ -321,10 +369,8 @@ struct vector_alloc_holder
321
369
  template<class SizeType>
322
370
  void do_initial_capacity(SizeType initial_capacity)
323
371
  {
324
- if (BOOST_UNLIKELY(initial_capacity > size_type(-1))) {
325
- boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
326
- }
327
- else if (initial_capacity) {
372
+ vec_on_type_overflow<SizeType, size_type>::throw_length(initial_capacity, "get_next_capacity, allocator's max size reached");
373
+ if (initial_capacity) {
328
374
  pointer reuse = pointer();
329
375
  size_type final_cap = static_cast<size_type>(initial_capacity);
330
376
  m_start = this->allocation_command(allocate_new, final_cap, final_cap, reuse);
@@ -335,10 +381,8 @@ struct vector_alloc_holder
335
381
  template<class SizeType>
336
382
  void do_maybe_initial_capacity(pointer p, SizeType initial_capacity)
337
383
  {
338
- if (BOOST_UNLIKELY(initial_capacity > size_type(-1))) {
339
- boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
340
- }
341
- else if (p) {
384
+ vec_on_type_overflow<SizeType, size_type>::throw_length(initial_capacity, "get_next_capacity, allocator's max size reached");
385
+ if (p) {
342
386
  m_start = p;
343
387
  }
344
388
  else {
@@ -464,7 +508,7 @@ struct vector_alloc_holder
464
508
  { this->m_size = static_cast<stored_size_type>(this->m_size + s); }
465
509
 
466
510
  BOOST_CONTAINER_FORCEINLINE void set_stored_capacity(size_type c) BOOST_NOEXCEPT_OR_NOTHROW
467
- { this->m_capacity = static_cast<stored_size_type>(c); }
511
+ { dtl::limit_by_stored_size_type<size_type, stored_size_type>::set(this->m_capacity, c); }
468
512
 
469
513
  inline pointer allocation_command(boost::container::allocation_type command,
470
514
  size_type limit_size, size_type &prefer_in_recvd_out_size, pointer &reuse)
@@ -476,7 +520,7 @@ struct vector_alloc_holder
476
520
  inline pointer allocate(size_type n)
477
521
  {
478
522
  const size_type max_alloc = allocator_traits_type::max_size(this->alloc());
479
- const size_type max = max_alloc <= stored_size_type(-1) ? max_alloc : stored_size_type(-1);
523
+ const size_type max = dtl::limit_by_stored_size_type<size_type, stored_size_type>::clamp(max_alloc);;
480
524
  if (BOOST_UNLIKELY(max < n) )
481
525
  boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
482
526
 
@@ -553,7 +597,7 @@ struct vector_alloc_holder
553
597
  BOOST_CONTAINER_FORCEINLINE void start(const pointer &p) BOOST_NOEXCEPT_OR_NOTHROW
554
598
  { m_start = p; }
555
599
  BOOST_CONTAINER_FORCEINLINE void capacity(const size_type &c) BOOST_NOEXCEPT_OR_NOTHROW
556
- { BOOST_ASSERT( c <= stored_size_type(-1)); this->set_stored_capacity(c); }
600
+ { this->set_stored_capacity(c); }
557
601
 
558
602
  static inline void on_capacity_overflow()
559
603
  { }
@@ -580,9 +624,7 @@ struct vector_alloc_holder
580
624
  BOOST_ASSERT( (command & allocate_new));
581
625
  BOOST_ASSERT(!(command & nothrow_allocation));
582
626
  //First detect overflow on smaller stored_size_types
583
- if (BOOST_UNLIKELY(limit_size > stored_size_type(-1))){
584
- boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
585
- }
627
+ vec_on_type_overflow<size_type, stored_size_type>::throw_length(limit_size, "get_next_capacity, allocator's max size reached");
586
628
  (clamp_by_stored_size_type<size_type>)(prefer_in_recvd_out_size, stored_size_type());
587
629
  pointer const p = this->allocate(prefer_in_recvd_out_size);
588
630
  reuse = pointer();
@@ -595,9 +637,7 @@ struct vector_alloc_holder
595
637
  pointer &reuse)
596
638
  {
597
639
  //First detect overflow on smaller stored_size_types
598
- if (BOOST_UNLIKELY(limit_size > stored_size_type(-1))){
599
- boost::container::throw_length_error("get_next_capacity, allocator's max size reached");
600
- }
640
+ vec_on_type_overflow<size_type, stored_size_type>::throw_length(limit_size, "get_next_capacity, allocator's max size reached");
601
641
  (clamp_by_stored_size_type<size_type>)(prefer_in_recvd_out_size, stored_size_type());
602
642
  //Allocate memory
603
643
  pointer p = this->alloc().allocation_command(command, limit_size, prefer_in_recvd_out_size, reuse);
@@ -759,9 +799,6 @@ struct vector_alloc_holder<Allocator, StoredSizeType, version_0>
759
799
  }
760
800
  };
761
801
 
762
- struct growth_factor_60;
763
- struct growth_factor_100;
764
-
765
802
  template<class Options, class AllocatorSizeType>
766
803
  struct get_vector_opt
767
804
  {
@@ -799,7 +836,7 @@ public:
799
836
  typedef T value_type;
800
837
  typedef BOOST_CONTAINER_IMPDEF
801
838
  (typename real_allocator<T BOOST_MOVE_I A>::type) allocator_type;
802
- typedef ::boost::container::allocator_traits<allocator_type> allocator_traits_t;
839
+ typedef boost::container::allocator_traits<allocator_type> allocator_traits_t;
803
840
  typedef typename allocator_traits<allocator_type>::pointer pointer;
804
841
  typedef typename allocator_traits<allocator_type>::const_pointer const_pointer;
805
842
  typedef typename allocator_traits<allocator_type>::reference reference;
@@ -1058,12 +1095,6 @@ private:
1058
1095
  //! throws or T's constructor taking a dereferenced InIt throws.
1059
1096
  //!
1060
1097
  //! <b>Complexity</b>: Linear to the range [first, last).
1061
- // template <class InIt>
1062
- // vector(InIt first, InIt last
1063
- // BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename dtl::disable_if_c
1064
- // < dtl::is_convertible<InIt BOOST_MOVE_I size_type>::value
1065
- // BOOST_MOVE_I dtl::nat >::type * = 0)
1066
- // ) -> vector<typename iterator_traits<InIt>::value_type, new_allocator<typename iterator_traits<InIt>::value_type>>;
1067
1098
  template <class InIt>
1068
1099
  vector(InIt first, InIt last
1069
1100
  BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename dtl::disable_if_c
@@ -1165,7 +1196,7 @@ private:
1165
1196
  //! throws or T's copy constructor throws.
1166
1197
  //!
1167
1198
  //! <b>Complexity</b>: Linear to the elements x contains.
1168
- vector(const vector &x, const allocator_type &a)
1199
+ vector(const vector &x, const BOOST_CONTAINER_DOC1ST(allocator_type, typename dtl::type_identity<allocator_type>::type) &a)
1169
1200
  : m_holder(vector_uninitialized_size, a, x.size())
1170
1201
  {
1171
1202
  #ifdef BOOST_CONTAINER_VECTOR_ALLOC_STATS
@@ -1183,7 +1214,7 @@ private:
1183
1214
  //! <b>Throws</b>: If allocation or T's copy constructor throws.
1184
1215
  //!
1185
1216
  //! <b>Complexity</b>: Constant if a == x.get_allocator(), linear otherwise.
1186
- vector(BOOST_RV_REF(vector) x, const allocator_type &a)
1217
+ vector(BOOST_RV_REF(vector) x, const BOOST_CONTAINER_DOC1ST(allocator_type, typename dtl::type_identity<allocator_type>::type) &a)
1187
1218
  : m_holder( vector_uninitialized_size, a
1188
1219
  //In this allocator move constructor the allocator won't be propagated --v
1189
1220
  , is_propagable_from<false>(x.get_stored_allocator(), x.m_holder.start(), a) ? 0 : x.size()
@@ -1211,12 +1242,22 @@ private:
1211
1242
  //!
1212
1243
  //! <b>Complexity</b>: Linear to the number of elements.
1213
1244
  ~vector() BOOST_NOEXCEPT_OR_NOTHROW
1245
+ #if defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
1246
+ requires (!dtl::is_version_0_alloc_and_trivially_destructible<allocator_type>::value)
1247
+ #endif
1214
1248
  {
1215
1249
  boost::container::destroy_alloc_n
1216
1250
  (this->get_stored_allocator(), this->priv_raw_begin(), this->m_holder.m_size);
1217
1251
  //vector_alloc_holder deallocates the data
1218
1252
  }
1219
1253
 
1254
+ #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) && defined(BOOST_INTRUSIVE_CONCEPTS_BASED_OVERLOADING)
1255
+ //Default destructor for normal links (allows conditional triviality)
1256
+ ~vector()
1257
+ requires (dtl::is_version_0_alloc_and_trivially_destructible<allocator_type>::value)
1258
+ = default;
1259
+ #endif
1260
+
1220
1261
  //! <b>Effects</b>: Makes *this contain the same elements as x.
1221
1262
  //!
1222
1263
  //! <b>Postcondition</b>: this->size() == x.size(). *this contains a copy
@@ -1384,9 +1425,7 @@ private:
1384
1425
  //For Fwd iterators the standard only requires EmplaceConstructible and assignable from *first
1385
1426
  //so we can't do any backwards allocation
1386
1427
  const it_size_type sz = boost::container::iterator_udistance(first, last);
1387
- if (BOOST_UNLIKELY(sz > size_type(-1))){
1388
- boost::container::throw_length_error("vector::assign, FwdIt's max length reached");
1389
- }
1428
+ vec_on_type_overflow<it_size_type, size_type>::throw_length(sz, "vector::assign, FwdIt's max length reached");
1390
1429
 
1391
1430
  const size_type input_sz = static_cast<size_type>(sz);
1392
1431
  const size_type old_capacity = this->capacity();
@@ -1436,7 +1475,7 @@ private:
1436
1475
  //! <b>Throws</b>: If allocator's copy constructor throws.
1437
1476
  //!
1438
1477
  //! <b>Complexity</b>: Constant.
1439
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
1478
+ BOOST_CONTAINER_NODISCARD inline allocator_type get_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
1440
1479
  { return this->m_holder.alloc(); }
1441
1480
 
1442
1481
  //! <b>Effects</b>: Returns a reference to the internal allocator.
@@ -1446,7 +1485,7 @@ private:
1446
1485
  //! <b>Complexity</b>: Constant.
1447
1486
  //!
1448
1487
  //! <b>Note</b>: Non-standard extension.
1449
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1488
+ BOOST_CONTAINER_NODISCARD inline
1450
1489
  stored_allocator_type &get_stored_allocator() BOOST_NOEXCEPT_OR_NOTHROW
1451
1490
  { return this->m_holder.alloc(); }
1452
1491
 
@@ -1457,7 +1496,7 @@ private:
1457
1496
  //! <b>Complexity</b>: Constant.
1458
1497
  //!
1459
1498
  //! <b>Note</b>: Non-standard extension.
1460
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1499
+ BOOST_CONTAINER_NODISCARD inline
1461
1500
  const stored_allocator_type &get_stored_allocator() const BOOST_NOEXCEPT_OR_NOTHROW
1462
1501
  { return this->m_holder.alloc(); }
1463
1502
 
@@ -1472,7 +1511,7 @@ private:
1472
1511
  //! <b>Throws</b>: Nothing.
1473
1512
  //!
1474
1513
  //! <b>Complexity</b>: Constant.
1475
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
1514
+ BOOST_CONTAINER_NODISCARD inline iterator begin() BOOST_NOEXCEPT_OR_NOTHROW
1476
1515
  { return iterator(this->m_holder.start()); }
1477
1516
 
1478
1517
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the vector.
@@ -1480,7 +1519,7 @@ private:
1480
1519
  //! <b>Throws</b>: Nothing.
1481
1520
  //!
1482
1521
  //! <b>Complexity</b>: Constant.
1483
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
1522
+ BOOST_CONTAINER_NODISCARD inline const_iterator begin() const BOOST_NOEXCEPT_OR_NOTHROW
1484
1523
  { return const_iterator(this->m_holder.start()); }
1485
1524
 
1486
1525
  //! <b>Effects</b>: Returns an iterator to the end of the vector.
@@ -1488,7 +1527,7 @@ private:
1488
1527
  //! <b>Throws</b>: Nothing.
1489
1528
  //!
1490
1529
  //! <b>Complexity</b>: Constant.
1491
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW
1530
+ BOOST_CONTAINER_NODISCARD inline iterator end() BOOST_NOEXCEPT_OR_NOTHROW
1492
1531
  {
1493
1532
  iterator it (this->m_holder.start());
1494
1533
  it += difference_type(this->m_holder.m_size);
@@ -1500,7 +1539,7 @@ private:
1500
1539
  //! <b>Throws</b>: Nothing.
1501
1540
  //!
1502
1541
  //! <b>Complexity</b>: Constant.
1503
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
1542
+ BOOST_CONTAINER_NODISCARD inline const_iterator end() const BOOST_NOEXCEPT_OR_NOTHROW
1504
1543
  { return this->cend(); }
1505
1544
 
1506
1545
  //! <b>Effects</b>: Returns a reverse_iterator pointing to the beginning
@@ -1509,7 +1548,7 @@ private:
1509
1548
  //! <b>Throws</b>: Nothing.
1510
1549
  //!
1511
1550
  //! <b>Complexity</b>: Constant.
1512
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
1551
+ BOOST_CONTAINER_NODISCARD inline reverse_iterator rbegin() BOOST_NOEXCEPT_OR_NOTHROW
1513
1552
  { return reverse_iterator(this->end()); }
1514
1553
 
1515
1554
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the beginning
@@ -1518,7 +1557,7 @@ private:
1518
1557
  //! <b>Throws</b>: Nothing.
1519
1558
  //!
1520
1559
  //! <b>Complexity</b>: Constant.
1521
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1560
+ BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1522
1561
  { return this->crbegin(); }
1523
1562
 
1524
1563
  //! <b>Effects</b>: Returns a reverse_iterator pointing to the end
@@ -1527,7 +1566,7 @@ private:
1527
1566
  //! <b>Throws</b>: Nothing.
1528
1567
  //!
1529
1568
  //! <b>Complexity</b>: Constant.
1530
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
1569
+ BOOST_CONTAINER_NODISCARD inline reverse_iterator rend() BOOST_NOEXCEPT_OR_NOTHROW
1531
1570
  { return reverse_iterator(this->begin()); }
1532
1571
 
1533
1572
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
@@ -1536,7 +1575,7 @@ private:
1536
1575
  //! <b>Throws</b>: Nothing.
1537
1576
  //!
1538
1577
  //! <b>Complexity</b>: Constant.
1539
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
1578
+ BOOST_CONTAINER_NODISCARD inline const_reverse_iterator rend() const BOOST_NOEXCEPT_OR_NOTHROW
1540
1579
  { return this->crend(); }
1541
1580
 
1542
1581
  //! <b>Effects</b>: Returns a const_iterator to the first element contained in the vector.
@@ -1544,7 +1583,7 @@ private:
1544
1583
  //! <b>Throws</b>: Nothing.
1545
1584
  //!
1546
1585
  //! <b>Complexity</b>: Constant.
1547
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1586
+ BOOST_CONTAINER_NODISCARD inline const_iterator cbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1548
1587
  { return const_iterator(this->m_holder.start()); }
1549
1588
 
1550
1589
  //! <b>Effects</b>: Returns a const_iterator to the end of the vector.
@@ -1552,7 +1591,7 @@ private:
1552
1591
  //! <b>Throws</b>: Nothing.
1553
1592
  //!
1554
1593
  //! <b>Complexity</b>: Constant.
1555
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
1594
+ BOOST_CONTAINER_NODISCARD inline const_iterator cend() const BOOST_NOEXCEPT_OR_NOTHROW
1556
1595
  {
1557
1596
  const_iterator it (this->m_holder.start());
1558
1597
  it += difference_type(this->m_holder.m_size);
@@ -1565,7 +1604,7 @@ private:
1565
1604
  //! <b>Throws</b>: Nothing.
1566
1605
  //!
1567
1606
  //! <b>Complexity</b>: Constant.
1568
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1607
+ BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crbegin() const BOOST_NOEXCEPT_OR_NOTHROW
1569
1608
  { return const_reverse_iterator(this->end());}
1570
1609
 
1571
1610
  //! <b>Effects</b>: Returns a const_reverse_iterator pointing to the end
@@ -1574,7 +1613,7 @@ private:
1574
1613
  //! <b>Throws</b>: Nothing.
1575
1614
  //!
1576
1615
  //! <b>Complexity</b>: Constant.
1577
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
1616
+ BOOST_CONTAINER_NODISCARD inline const_reverse_iterator crend() const BOOST_NOEXCEPT_OR_NOTHROW
1578
1617
  { return const_reverse_iterator(this->begin()); }
1579
1618
 
1580
1619
  //////////////////////////////////////////////
@@ -1588,7 +1627,7 @@ private:
1588
1627
  //! <b>Throws</b>: Nothing.
1589
1628
  //!
1590
1629
  //! <b>Complexity</b>: Constant.
1591
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
1630
+ BOOST_CONTAINER_NODISCARD inline bool empty() const BOOST_NOEXCEPT_OR_NOTHROW
1592
1631
  { return !this->m_holder.m_size; }
1593
1632
 
1594
1633
  //! <b>Effects</b>: Returns the number of the elements contained in the vector.
@@ -1596,7 +1635,7 @@ private:
1596
1635
  //! <b>Throws</b>: Nothing.
1597
1636
  //!
1598
1637
  //! <b>Complexity</b>: Constant.
1599
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
1638
+ BOOST_CONTAINER_NODISCARD inline size_type size() const BOOST_NOEXCEPT_OR_NOTHROW
1600
1639
  { return this->m_holder.m_size; }
1601
1640
 
1602
1641
  //! <b>Effects</b>: Returns the largest possible size of the vector.
@@ -1604,7 +1643,7 @@ private:
1604
1643
  //! <b>Throws</b>: Nothing.
1605
1644
  //!
1606
1645
  //! <b>Complexity</b>: Constant.
1607
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
1646
+ BOOST_CONTAINER_NODISCARD inline size_type max_size() const BOOST_NOEXCEPT_OR_NOTHROW
1608
1647
  { return allocator_traits_type::max_size(this->m_holder.alloc()); }
1609
1648
 
1610
1649
  //! <b>Effects</b>: Inserts or erases elements at the end such that
@@ -1642,7 +1681,7 @@ private:
1642
1681
  //! <b>Throws</b>: Nothing.
1643
1682
  //!
1644
1683
  //! <b>Complexity</b>: Constant.
1645
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
1684
+ BOOST_CONTAINER_NODISCARD inline size_type capacity() const BOOST_NOEXCEPT_OR_NOTHROW
1646
1685
  { return this->m_holder.capacity(); }
1647
1686
 
1648
1687
  //! <b>Effects</b>: If n is less than or equal to capacity(), this call has no
@@ -1681,7 +1720,7 @@ private:
1681
1720
  //! <b>Throws</b>: Nothing.
1682
1721
  //!
1683
1722
  //! <b>Complexity</b>: Constant.
1684
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reference front() BOOST_NOEXCEPT_OR_NOTHROW
1723
+ BOOST_CONTAINER_NODISCARD inline reference front() BOOST_NOEXCEPT_OR_NOTHROW
1685
1724
  {
1686
1725
  BOOST_ASSERT(!this->empty());
1687
1726
  return *this->m_holder.start();
@@ -1695,7 +1734,7 @@ private:
1695
1734
  //! <b>Throws</b>: Nothing.
1696
1735
  //!
1697
1736
  //! <b>Complexity</b>: Constant.
1698
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
1737
+ BOOST_CONTAINER_NODISCARD inline const_reference front() const BOOST_NOEXCEPT_OR_NOTHROW
1699
1738
  {
1700
1739
  BOOST_ASSERT(!this->empty());
1701
1740
  return *this->m_holder.start();
@@ -1709,7 +1748,7 @@ private:
1709
1748
  //! <b>Throws</b>: Nothing.
1710
1749
  //!
1711
1750
  //! <b>Complexity</b>: Constant.
1712
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reference back() BOOST_NOEXCEPT_OR_NOTHROW
1751
+ BOOST_CONTAINER_NODISCARD inline reference back() BOOST_NOEXCEPT_OR_NOTHROW
1713
1752
  {
1714
1753
  BOOST_ASSERT(!this->empty());
1715
1754
  return this->m_holder.start()[difference_type(this->m_holder.m_size - 1u)];
@@ -1723,7 +1762,7 @@ private:
1723
1762
  //! <b>Throws</b>: Nothing.
1724
1763
  //!
1725
1764
  //! <b>Complexity</b>: Constant.
1726
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
1765
+ BOOST_CONTAINER_NODISCARD inline const_reference back() const BOOST_NOEXCEPT_OR_NOTHROW
1727
1766
  {
1728
1767
  BOOST_ASSERT(!this->empty());
1729
1768
  return this->m_holder.start()[this->m_holder.m_size - 1];
@@ -1737,7 +1776,7 @@ private:
1737
1776
  //! <b>Throws</b>: Nothing.
1738
1777
  //!
1739
1778
  //! <b>Complexity</b>: Constant.
1740
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
1779
+ BOOST_CONTAINER_NODISCARD inline reference operator[](size_type n) BOOST_NOEXCEPT_OR_NOTHROW
1741
1780
  {
1742
1781
  BOOST_ASSERT(this->m_holder.m_size > n);
1743
1782
  return this->m_holder.start()[difference_type(n)];
@@ -1751,7 +1790,7 @@ private:
1751
1790
  //! <b>Throws</b>: Nothing.
1752
1791
  //!
1753
1792
  //! <b>Complexity</b>: Constant.
1754
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1793
+ BOOST_CONTAINER_NODISCARD inline
1755
1794
  const_reference operator[](size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
1756
1795
  {
1757
1796
  BOOST_ASSERT(this->m_holder.m_size > n);
@@ -1769,7 +1808,7 @@ private:
1769
1808
  //! <b>Complexity</b>: Constant.
1770
1809
  //!
1771
1810
  //! <b>Note</b>: Non-standard extension
1772
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1811
+ BOOST_CONTAINER_NODISCARD inline
1773
1812
  iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
1774
1813
  {
1775
1814
  BOOST_ASSERT(this->m_holder.m_size >= n);
@@ -1787,7 +1826,7 @@ private:
1787
1826
  //! <b>Complexity</b>: Constant.
1788
1827
  //!
1789
1828
  //! <b>Note</b>: Non-standard extension
1790
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1829
+ BOOST_CONTAINER_NODISCARD inline
1791
1830
  const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
1792
1831
  {
1793
1832
  BOOST_ASSERT(this->m_holder.m_size >= n);
@@ -1804,7 +1843,7 @@ private:
1804
1843
  //! <b>Complexity</b>: Constant.
1805
1844
  //!
1806
1845
  //! <b>Note</b>: Non-standard extension
1807
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1846
+ BOOST_CONTAINER_NODISCARD inline
1808
1847
  size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
1809
1848
  {
1810
1849
  //Range check assert done in priv_index_of
@@ -1821,7 +1860,7 @@ private:
1821
1860
  //! <b>Complexity</b>: Constant.
1822
1861
  //!
1823
1862
  //! <b>Note</b>: Non-standard extension
1824
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1863
+ BOOST_CONTAINER_NODISCARD inline
1825
1864
  size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
1826
1865
  {
1827
1866
  //Range check assert done in priv_index_of
@@ -1836,7 +1875,7 @@ private:
1836
1875
  //! <b>Throws</b>: range_error if n >= size()
1837
1876
  //!
1838
1877
  //! <b>Complexity</b>: Constant.
1839
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline reference at(size_type n)
1878
+ BOOST_CONTAINER_NODISCARD inline reference at(size_type n)
1840
1879
  {
1841
1880
  this->priv_throw_if_out_of_range(n);
1842
1881
  return this->m_holder.start()[difference_type(n)];
@@ -1850,7 +1889,7 @@ private:
1850
1889
  //! <b>Throws</b>: range_error if n >= size()
1851
1890
  //!
1852
1891
  //! <b>Complexity</b>: Constant.
1853
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const_reference at(size_type n) const
1892
+ BOOST_CONTAINER_NODISCARD inline const_reference at(size_type n) const
1854
1893
  {
1855
1894
  this->priv_throw_if_out_of_range(n);
1856
1895
  return this->m_holder.start()[n];
@@ -1868,7 +1907,7 @@ private:
1868
1907
  //! <b>Throws</b>: Nothing.
1869
1908
  //!
1870
1909
  //! <b>Complexity</b>: Constant.
1871
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline T* data() BOOST_NOEXCEPT_OR_NOTHROW
1910
+ BOOST_CONTAINER_NODISCARD inline T* data() BOOST_NOEXCEPT_OR_NOTHROW
1872
1911
  { return this->priv_raw_begin(); }
1873
1912
 
1874
1913
  //! <b>Returns</b>: A pointer such that [data(),data() + size()) is a valid range.
@@ -1877,7 +1916,7 @@ private:
1877
1916
  //! <b>Throws</b>: Nothing.
1878
1917
  //!
1879
1918
  //! <b>Complexity</b>: Constant.
1880
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline const T * data() const BOOST_NOEXCEPT_OR_NOTHROW
1919
+ BOOST_CONTAINER_NODISCARD inline const T * data() const BOOST_NOEXCEPT_OR_NOTHROW
1881
1920
  { return this->priv_raw_begin(); }
1882
1921
 
1883
1922
  //////////////////////////////////////////////
@@ -1899,9 +1938,13 @@ private:
1899
1938
  template<class ...Args>
1900
1939
  inline reference emplace_back(BOOST_FWD_REF(Args)...args)
1901
1940
  {
1902
- T* const p = this->priv_raw_end();
1903
1941
  if (BOOST_LIKELY(this->room_enough())){
1904
- //There is more memory, just construct a new object at the end
1942
+ //There is more memory, just construct a new object at the end.
1943
+ //Deriving the end pointer inside this branch (instead of before the
1944
+ //room_enough() test, where the slow path would also use it) lets the
1945
+ //optimizer fold 'start + size' into the store's addressing mode and
1946
+ //keep size as the sole induction variable in append loops.
1947
+ T* const p = this->priv_raw_end();
1905
1948
  allocator_traits_type::construct(this->m_holder.alloc(), p, ::boost::forward<Args>(args)...);
1906
1949
  ++this->m_holder.m_size;
1907
1950
  return *p;
@@ -1909,7 +1952,7 @@ private:
1909
1952
  else{
1910
1953
  typedef dtl::insert_emplace_proxy<allocator_type, Args...> proxy_t;
1911
1954
  return *this->priv_insert_forward_range_no_capacity
1912
- (p, 1, proxy_t(::boost::forward<Args>(args)...), alloc_version());
1955
+ (this->priv_raw_end(), 1, proxy_t(::boost::forward<Args>(args)...), alloc_version());
1913
1956
  }
1914
1957
  }
1915
1958
 
@@ -1933,6 +1976,27 @@ private:
1933
1976
  return is_room_enough;
1934
1977
  }
1935
1978
 
1979
+ //! <b>Requires</b>: Before the call to this function size() < capacity() must be true.
1980
+ //! Otherwise, the behavior is undefined.
1981
+ //!
1982
+ //! <b>Effects</b>: Inserts an object of type T constructed with
1983
+ //! std::forward<Args>(args)... in the end of the vector.
1984
+ //!
1985
+ //! <b>Throws</b>: If the in-place constructor throws.
1986
+ //!
1987
+ //! <b>Complexity</b>: Constant time.
1988
+ //!
1989
+ //! <b>Note</b>: Non-standard extension.
1990
+ template<class ...Args>
1991
+ BOOST_CONTAINER_FORCEINLINE reference unchecked_emplace_back(BOOST_FWD_REF(Args)...args)
1992
+ {
1993
+ BOOST_ASSERT(this->size() < this->capacity());
1994
+ T* const p = this->priv_raw_end();
1995
+ allocator_traits_type::construct(this->m_holder.alloc(), p, ::boost::forward<Args>(args)...);
1996
+ ++this->m_holder.m_size;
1997
+ return *p;
1998
+ }
1999
+
1936
2000
  //! <b>Requires</b>: position must be a valid iterator of *this.
1937
2001
  //!
1938
2002
  //! <b>Effects</b>: Inserts an object of type T constructed with
@@ -1959,17 +2023,20 @@ private:
1959
2023
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1960
2024
  inline reference emplace_back(BOOST_MOVE_UREF##N)\
1961
2025
  {\
1962
- T* const p = this->priv_raw_end();\
1963
2026
  if (BOOST_LIKELY(this->room_enough())){\
2027
+ /*Derive the end pointer inside this branch so the optimizer can fold*/\
2028
+ /*'start + size' into the store and keep size as the sole induction*/\
2029
+ /*variable in append loops (the slow path recomputes it).*/\
2030
+ T* const p = this->priv_raw_end();\
1964
2031
  allocator_traits_type::construct (this->m_holder.alloc()\
1965
- , this->priv_raw_end() BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
2032
+ , p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
1966
2033
  ++this->m_holder.m_size;\
1967
2034
  return *p;\
1968
2035
  }\
1969
2036
  else{\
1970
2037
  typedef dtl::insert_emplace_proxy_arg##N<allocator_type BOOST_MOVE_I##N BOOST_MOVE_TARG##N> proxy_t;\
1971
2038
  return *this->priv_insert_forward_range_no_capacity\
1972
- ( p, 1, proxy_t(BOOST_MOVE_FWD##N), alloc_version());\
2039
+ ( this->priv_raw_end(), 1, proxy_t(BOOST_MOVE_FWD##N), alloc_version());\
1973
2040
  }\
1974
2041
  }\
1975
2042
  \
@@ -1986,6 +2053,17 @@ private:
1986
2053
  }\
1987
2054
  \
1988
2055
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
2056
+ inline reference unchecked_emplace_back(BOOST_MOVE_UREF##N)\
2057
+ {\
2058
+ BOOST_ASSERT(this->size() < this->capacity());\
2059
+ T* const p = this->priv_raw_end();\
2060
+ allocator_traits_type::construct (this->m_holder.alloc()\
2061
+ , p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
2062
+ ++this->m_holder.m_size;\
2063
+ return *p;\
2064
+ }\
2065
+ \
2066
+ BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
1989
2067
  inline iterator emplace(const_iterator pos BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
1990
2068
  {\
1991
2069
  BOOST_ASSERT(this->priv_in_range_or_end(pos));\
@@ -2015,8 +2093,30 @@ private:
2015
2093
  //!
2016
2094
  //! <b>Complexity</b>: Amortized constant time.
2017
2095
  void push_back(T &&x);
2096
+
2097
+ //! <b>Requires</b>: Before the call to this function size() < capacity() must be true.
2098
+ //! Otherwise, the behavior is undefined.
2099
+ //!
2100
+ //! <b>Effects</b>: Inserts a copy of x at the end of the vector.
2101
+ //!
2102
+ //! <b>Throws</b>: If T's copy/move constructor throws.
2103
+ //!
2104
+ //! <b>Complexity</b>: Constant time.
2105
+ void unchecked_push_back(const T &x);
2106
+
2107
+ //! <b>Requires</b>: Before the call to this function size() < capacity() must be true.
2108
+ //! Otherwise, the behavior is undefined.
2109
+ //!
2110
+ //! <b>Effects</b>: Constructs a new element in the end of the vector
2111
+ //! and moves the resources of x to this new element.
2112
+ //!
2113
+ //! <b>Throws</b>: If T's copy/move constructor throws.
2114
+ //!
2115
+ //! <b>Complexity</b>: Constant time.
2116
+ void unchecked_push_back(T &&x);
2018
2117
  #else
2019
2118
  BOOST_MOVE_CONVERSION_AWARE_CATCH(push_back, T, void, priv_push_back)
2119
+ BOOST_MOVE_CONVERSION_AWARE_CATCH(unchecked_push_back, T, void, priv_unchecked_push_back)
2020
2120
  #endif
2021
2121
 
2022
2122
  #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
@@ -2103,10 +2203,7 @@ private:
2103
2203
  BOOST_ASSERT(this->priv_in_range_or_end(pos));
2104
2204
  typedef typename iter_size<FwdIt>::type it_size_type;
2105
2205
  const it_size_type sz = boost::container::iterator_udistance(first, last);
2106
- if (BOOST_UNLIKELY(sz > size_type(-1))){
2107
- boost::container::throw_length_error("vector::insert, FwdIt's max length reached");
2108
- }
2109
-
2206
+ vec_on_type_overflow<it_size_type, size_type>::throw_length(sz, "vector::insert, FwdIt's max length reached");
2110
2207
  dtl::insert_range_proxy<allocator_type, FwdIt> proxy(first);
2111
2208
  return this->priv_insert_forward_range(vector_iterator_get_ptr(pos), static_cast<size_type>(sz), proxy);
2112
2209
  }
@@ -2262,37 +2359,37 @@ private:
2262
2359
  //! <b>Effects</b>: Returns true if x and y are equal
2263
2360
  //!
2264
2361
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2265
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline friend bool operator==(const vector& x, const vector& y)
2362
+ BOOST_CONTAINER_NODISCARD inline friend bool operator==(const vector& x, const vector& y)
2266
2363
  { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
2267
2364
 
2268
2365
  //! <b>Effects</b>: Returns true if x and y are unequal
2269
2366
  //!
2270
2367
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2271
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline friend bool operator!=(const vector& x, const vector& y)
2368
+ BOOST_CONTAINER_NODISCARD inline friend bool operator!=(const vector& x, const vector& y)
2272
2369
  { return !(x == y); }
2273
2370
 
2274
2371
  //! <b>Effects</b>: Returns true if x is less than y
2275
2372
  //!
2276
2373
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2277
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD friend bool operator<(const vector& x, const vector& y)
2374
+ BOOST_CONTAINER_NODISCARD friend bool operator<(const vector& x, const vector& y)
2278
2375
  { return boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
2279
2376
 
2280
2377
  //! <b>Effects</b>: Returns true if x is greater than y
2281
2378
  //!
2282
2379
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2283
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline friend bool operator>(const vector& x, const vector& y)
2380
+ BOOST_CONTAINER_NODISCARD inline friend bool operator>(const vector& x, const vector& y)
2284
2381
  { return y < x; }
2285
2382
 
2286
2383
  //! <b>Effects</b>: Returns true if x is equal or less than y
2287
2384
  //!
2288
2385
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2289
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline friend bool operator<=(const vector& x, const vector& y)
2386
+ BOOST_CONTAINER_NODISCARD inline friend bool operator<=(const vector& x, const vector& y)
2290
2387
  { return !(y < x); }
2291
2388
 
2292
2389
  //! <b>Effects</b>: Returns true if x is equal or greater than y
2293
2390
  //!
2294
2391
  //! <b>Complexity</b>: Linear to the number of elements in the container.
2295
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline friend bool operator>=(const vector& x, const vector& y)
2392
+ BOOST_CONTAINER_NODISCARD inline friend bool operator>=(const vector& x, const vector& y)
2296
2393
  { return !(x < y); }
2297
2394
 
2298
2395
  //! <b>Effects</b>: x.swap(y)
@@ -2908,10 +3005,20 @@ private:
2908
3005
  this->emplace_back(::boost::forward<U>(u));
2909
3006
  }
2910
3007
 
3008
+ template <class U>
3009
+ BOOST_CONTAINER_FORCEINLINE void priv_unchecked_push_back(BOOST_FWD_REF(U) u)
3010
+ {
3011
+ this->unchecked_emplace_back(::boost::forward<U>(u));
3012
+ }
3013
+
2911
3014
  //Overload to support compiler errors that instantiate too much
2912
3015
  inline void priv_push_back(::boost::move_detail::nat)
2913
3016
  {}
2914
3017
 
3018
+ //Overload to support compiler errors that instantiate too much
3019
+ inline void priv_unchecked_push_back(::boost::move_detail::nat)
3020
+ {}
3021
+
2915
3022
  inline iterator priv_insert(const_iterator, ::boost::move_detail::nat)
2916
3023
  { return iterator(); }
2917
3024
 
@@ -3020,7 +3127,7 @@ private:
3020
3127
  #endif
3021
3128
 
3022
3129
  template <class InsertionProxy>
3023
- BOOST_CONTAINER_NOINLINE iterator priv_insert_forward_range_no_capacity
3130
+ iterator priv_insert_forward_range_no_capacity
3024
3131
  (T *const raw_pos, const size_type n, const InsertionProxy insert_range_proxy, version_1)
3025
3132
  {
3026
3133
  const size_type new_cap = this->m_holder.template next_capacity<growth_factor_type>(n);
@@ -3235,8 +3342,12 @@ private:
3235
3342
  //There is enough memory
3236
3343
  T* const old_finish = this->priv_raw_end();
3237
3344
  allocator_type & a = this->m_holder.alloc();
3345
+ //Number of trailing elements [raw_pos, old_finish). Expressing the shift
3346
+ //length against the end pointer (n_after - 1) lets the compiler bound and
3347
+ //fold a near-end shift to inline moves instead of an out-of-line memmove.
3348
+ const size_type n_after = size_type(old_finish - raw_pos);
3238
3349
 
3239
- if (old_finish == raw_pos){
3350
+ if (!n_after){
3240
3351
  insert_range_proxy.uninitialized_copy_n_and_update(a, old_finish, 1);
3241
3352
  ++this->m_holder.m_size;
3242
3353
  }
@@ -3248,7 +3359,7 @@ private:
3248
3359
  allocator_traits_type::construct(a, old_finish, ::boost::move(*before_old_finish));
3249
3360
  ++this->m_holder.m_size;
3250
3361
  //Copy previous to last objects to the initialized end
3251
- boost::container::move_backward(raw_pos, before_old_finish, old_finish);
3362
+ boost::container::move_backward_n(before_old_finish, n_after - 1u, old_finish);
3252
3363
  //Insert new objects in the raw_pos
3253
3364
  insert_range_proxy.copy_n_and_update(a, raw_pos, 1);
3254
3365
  }
@@ -3341,10 +3452,16 @@ private:
3341
3452
 
3342
3453
  #ifndef BOOST_CONTAINER_NO_CXX17_CTAD
3343
3454
 
3455
+ //! <b>Deduction guide</b>: allows a `vector` to be constructed from the iterator
3456
+ //! range <code>[first, last)</code>, deducing the element type from the value type
3457
+ //! of `InputIterator` and using the default allocator.
3344
3458
  template <typename InputIterator>
3345
3459
  vector(InputIterator, InputIterator) ->
3346
3460
  vector<typename iter_value<InputIterator>::type>;
3347
3461
 
3462
+ //! <b>Deduction guide</b>: allows a `vector` to be constructed from the iterator
3463
+ //! range <code>[first, last)</code>, deducing the element type from the value type
3464
+ //! of `InputIterator` and taking the allocator type from the supplied allocator.
3348
3465
  template <typename InputIterator, typename Allocator>
3349
3466
  vector(InputIterator, InputIterator, Allocator const&) ->
3350
3467
  vector<typename iter_value<InputIterator>::type, Allocator>;
@@ -3385,7 +3502,7 @@ template <class T, class Allocator, class Options>
3385
3502
  struct has_trivial_destructor_after_move<boost::container::vector<T, Allocator, Options> >
3386
3503
  {
3387
3504
  typedef typename boost::container::vector<T, Allocator, Options>::allocator_type allocator_type;
3388
- typedef typename ::boost::container::allocator_traits<allocator_type>::pointer pointer;
3505
+ typedef typename boost::container::allocator_traits<allocator_type>::pointer pointer;
3389
3506
  BOOST_STATIC_CONSTEXPR bool value = ::boost::has_trivial_destructor_after_move<allocator_type>::value &&
3390
3507
  ::boost::has_trivial_destructor_after_move<pointer>::value;
3391
3508
  };