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
@@ -12,6 +12,14 @@
12
12
  #ifndef BOOST_CONTAINER_DEVECTOR_HPP
13
13
  #define BOOST_CONTAINER_DEVECTOR_HPP
14
14
 
15
+ #ifndef BOOST_CONFIG_HPP
16
+ # include <boost/config.hpp>
17
+ #endif
18
+
19
+ #if defined(BOOST_HAS_PRAGMA_ONCE)
20
+ # pragma once
21
+ #endif
22
+
15
23
  #include <boost/container/detail/config_begin.hpp>
16
24
  #include <boost/container/detail/workaround.hpp>
17
25
 
@@ -271,8 +279,9 @@ class devector
271
279
  explicit devector(size_type n, const allocator_type& allocator = allocator_type())
272
280
  : m_(reserve_uninitialized_t(), allocator, n)
273
281
  {
274
- allocation_guard buffer_guard(m_.buffer, m_.capacity, get_allocator_ref());
275
- boost::container::uninitialized_value_init_alloc_n(get_allocator_ref(), n, this->priv_raw_begin());
282
+ allocator_type &al = this->get_allocator_ref();
283
+ allocation_guard buffer_guard(m_.buffer, m_.capacity, al);
284
+ boost::container::uninitialized_value_init_alloc_n(al, n, this->priv_raw_begin());
276
285
  buffer_guard.release();
277
286
  BOOST_ASSERT(invariants_ok());
278
287
  }
@@ -291,8 +300,9 @@ class devector
291
300
  explicit devector(size_type n, default_init_t, const allocator_type& allocator = allocator_type())
292
301
  : m_(reserve_uninitialized_t(), allocator, n)
293
302
  {
294
- allocation_guard buffer_guard(m_.buffer, m_.capacity, get_allocator_ref());
295
- boost::container::uninitialized_default_init_alloc_n(get_allocator_ref(), n, this->priv_raw_begin());
303
+ allocator_type &al = this->get_allocator_ref();
304
+ allocation_guard buffer_guard(m_.buffer, m_.capacity, al);
305
+ boost::container::uninitialized_default_init_alloc_n(al, n, this->priv_raw_begin());
296
306
  buffer_guard.release();
297
307
  BOOST_ASSERT(invariants_ok());
298
308
  }
@@ -324,14 +334,14 @@ class devector
324
334
  * iterator does not meet the forward iterator requirements, `T` shall also be [MoveInsertable]
325
335
  * into `*this`.
326
336
  *
327
- * **Postcondition**: `size() == boost::container::iterator_distance(first, last)
337
+ * **Postcondition**: `size() == boost::container::iterator_distance(first, last)`
328
338
  *
329
339
  * **Exceptions**: Strong exception guarantee.
330
340
  *
331
341
  * **Complexity**: Makes only `N` calls to the copy constructor of `T` (where `N` is the distance between `first`
332
342
  * and `last`), at most one allocation and no reallocations if iterators first and last are of forward,
333
343
  * bidirectional, or random access categories. It makes `O(N)` calls to the copy constructor of `T`
334
- * and `O(log(N)) reallocations if they are just input iterators.
344
+ * and `O(log(N))` reallocations if they are just input iterators.
335
345
  *
336
346
  * **Remarks**: Each iterator in the range `[first,last)` shall be dereferenced exactly once,
337
347
  * unless an exception is thrown.
@@ -415,7 +425,7 @@ class devector
415
425
  *
416
426
  * **Complexity**: Linear in the size of `x`.
417
427
  */
418
- devector(const devector& x, const allocator_type& allocator)
428
+ devector(const devector& x, const BOOST_CONTAINER_DOC1ST(allocator_type, typename dtl::type_identity<allocator_type>::type)& allocator)
419
429
  : m_(reserve_uninitialized_t(), allocator, x.size())
420
430
  {
421
431
  this->construct_from_range(x.begin(), x.end());
@@ -453,7 +463,7 @@ class devector
453
463
  *
454
464
  * **Complexity**: Linear if allocator != rhs.get_allocator(), otherwise constant.
455
465
  */
456
- devector(BOOST_RV_REF(devector) rhs, const allocator_type& allocator)
466
+ devector(BOOST_RV_REF(devector) rhs, const BOOST_CONTAINER_DOC1ST(allocator_type, typename dtl::type_identity<allocator_type>::type)& allocator)
457
467
  : m_(review_implementation_t(), allocator, rhs.m_.buffer, rhs.m_.front_idx, rhs.m_.back_idx, rhs.m_.capacity)
458
468
  {
459
469
  // TODO should move elems-by-elems if the two allocators differ
@@ -486,8 +496,8 @@ class devector
486
496
  */
487
497
  ~devector() BOOST_NOEXCEPT
488
498
  {
489
- destroy_elements(m_.buffer + m_.front_idx, m_.buffer + m_.back_idx);
490
- deallocate_buffer();
499
+ this->destroy_elements(m_.buffer + m_.front_idx, m_.buffer + m_.back_idx);
500
+ this->deallocate_buffer();
491
501
  }
492
502
 
493
503
  /**
@@ -535,13 +545,11 @@ class devector
535
545
  }
536
546
 
537
547
  size_type n = x.size();
538
- if (m_.capacity >= n)
539
- {
540
- this->overwrite_buffer(x.begin(), x.end());
548
+ if (m_.capacity >= n) {
549
+ this->overwrite_buffer(x.begin(), x.end());
541
550
  }
542
- else
543
- {
544
- this->allocate_and_copy_range(x.begin(), x.end());
551
+ else {
552
+ this->allocate_and_copy_range(x.begin(), x.end());
545
553
  }
546
554
 
547
555
  BOOST_ASSERT(invariants_ok());
@@ -667,13 +675,11 @@ class devector
667
675
  {
668
676
  const size_type n = boost::container::iterator_udistance(first, last);
669
677
 
670
- if (m_.capacity >= n)
671
- {
672
- overwrite_buffer(first, last);
678
+ if (m_.capacity >= n) {
679
+ this->overwrite_buffer(first, last);
673
680
  }
674
- else
675
- {
676
- allocate_and_copy_range(first, last);
681
+ else {
682
+ this->allocate_and_copy_range(first, last);
677
683
  }
678
684
 
679
685
  BOOST_ASSERT(invariants_ok());
@@ -721,19 +727,19 @@ class devector
721
727
  *
722
728
  * **Complexity**: Constant.
723
729
  */
724
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
730
+ BOOST_CONTAINER_NODISCARD inline
725
731
  allocator_type get_allocator() const BOOST_NOEXCEPT
726
732
  {
727
733
  return static_cast<const allocator_type&>(m_);
728
734
  }
729
735
 
730
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
736
+ BOOST_CONTAINER_NODISCARD inline
731
737
  const allocator_type &get_stored_allocator() const BOOST_NOEXCEPT
732
738
  {
733
739
  return static_cast<const allocator_type&>(m_);
734
740
  }
735
741
 
736
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
742
+ BOOST_CONTAINER_NODISCARD inline
737
743
  allocator_type &get_stored_allocator() BOOST_NOEXCEPT
738
744
  {
739
745
  return static_cast<allocator_type&>(m_);
@@ -747,7 +753,7 @@ class devector
747
753
  *
748
754
  * **Complexity**: Constant.
749
755
  */
750
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
756
+ BOOST_CONTAINER_NODISCARD inline
751
757
  iterator begin() BOOST_NOEXCEPT
752
758
  {
753
759
  return m_.buffer + m_.front_idx;
@@ -759,7 +765,7 @@ class devector
759
765
  *
760
766
  * **Complexity**: Constant.
761
767
  */
762
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
768
+ BOOST_CONTAINER_NODISCARD inline
763
769
  const_iterator begin() const BOOST_NOEXCEPT
764
770
  {
765
771
  return m_.buffer + m_.front_idx;
@@ -770,7 +776,7 @@ class devector
770
776
  *
771
777
  * **Complexity**: Constant.
772
778
  */
773
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
779
+ BOOST_CONTAINER_NODISCARD inline
774
780
  iterator end() BOOST_NOEXCEPT
775
781
  {
776
782
  return m_.buffer + m_.back_idx;
@@ -781,7 +787,7 @@ class devector
781
787
  *
782
788
  * **Complexity**: Constant.
783
789
  */
784
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
790
+ BOOST_CONTAINER_NODISCARD inline
785
791
  const_iterator end() const BOOST_NOEXCEPT
786
792
  {
787
793
  return m_.buffer + m_.back_idx;
@@ -793,7 +799,7 @@ class devector
793
799
  *
794
800
  * **Complexity**: Constant.
795
801
  */
796
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
802
+ BOOST_CONTAINER_NODISCARD inline
797
803
  reverse_iterator rbegin() BOOST_NOEXCEPT
798
804
  {
799
805
  return reverse_iterator(m_.buffer + m_.back_idx);
@@ -806,7 +812,7 @@ class devector
806
812
  *
807
813
  * **Complexity**: Constant.
808
814
  */
809
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
815
+ BOOST_CONTAINER_NODISCARD inline
810
816
  const_reverse_iterator rbegin() const BOOST_NOEXCEPT
811
817
  {
812
818
  return const_reverse_iterator(m_.buffer + m_.back_idx);
@@ -818,7 +824,7 @@ class devector
818
824
  *
819
825
  * **Complexity**: Constant.
820
826
  */
821
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
827
+ BOOST_CONTAINER_NODISCARD inline
822
828
  reverse_iterator rend() BOOST_NOEXCEPT
823
829
  {
824
830
  return reverse_iterator(m_.buffer + m_.front_idx);
@@ -830,7 +836,7 @@ class devector
830
836
  *
831
837
  * **Complexity**: Constant.
832
838
  */
833
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
839
+ BOOST_CONTAINER_NODISCARD inline
834
840
  const_reverse_iterator rend() const BOOST_NOEXCEPT
835
841
  {
836
842
  return const_reverse_iterator(m_.buffer + m_.front_idx);
@@ -842,7 +848,7 @@ class devector
842
848
  *
843
849
  * **Complexity**: Constant.
844
850
  */
845
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
851
+ BOOST_CONTAINER_NODISCARD inline
846
852
  const_iterator cbegin() const BOOST_NOEXCEPT
847
853
  {
848
854
  return m_.buffer + m_.front_idx;
@@ -865,7 +871,7 @@ class devector
865
871
  *
866
872
  * **Complexity**: Constant.
867
873
  */
868
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
874
+ BOOST_CONTAINER_NODISCARD inline
869
875
  const_reverse_iterator crbegin() const BOOST_NOEXCEPT
870
876
  {
871
877
  return const_reverse_iterator(m_.buffer + m_.back_idx);
@@ -877,7 +883,7 @@ class devector
877
883
  *
878
884
  * **Complexity**: Constant.
879
885
  */
880
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
886
+ BOOST_CONTAINER_NODISCARD inline
881
887
  const_reverse_iterator crend() const BOOST_NOEXCEPT
882
888
  {
883
889
  return const_reverse_iterator(m_.buffer + m_.front_idx);
@@ -890,7 +896,7 @@ class devector
890
896
  *
891
897
  * **Complexity**: Constant.
892
898
  */
893
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
899
+ BOOST_CONTAINER_NODISCARD inline
894
900
  bool empty() const BOOST_NOEXCEPT
895
901
  {
896
902
  return m_.front_idx == m_.back_idx;
@@ -901,7 +907,7 @@ class devector
901
907
  *
902
908
  * **Complexity**: Constant.
903
909
  */
904
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
910
+ BOOST_CONTAINER_NODISCARD inline
905
911
  size_type size() const BOOST_NOEXCEPT
906
912
  {
907
913
  return size_type(m_.back_idx - m_.front_idx);
@@ -912,7 +918,7 @@ class devector
912
918
  *
913
919
  * **Complexity**: Constant.
914
920
  */
915
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
921
+ BOOST_CONTAINER_NODISCARD inline
916
922
  size_type max_size() const BOOST_NOEXCEPT
917
923
  {
918
924
  size_type alloc_max = allocator_traits_type::max_size(get_allocator_ref());
@@ -929,7 +935,7 @@ class devector
929
935
  *
930
936
  * **Complexity**: Constant.
931
937
  */
932
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
938
+ BOOST_CONTAINER_NODISCARD inline
933
939
  size_type capacity() const BOOST_NOEXCEPT
934
940
  {
935
941
  size_type const cap_reserve = m_.capacity/devector_min_free_fraction;
@@ -942,7 +948,7 @@ class devector
942
948
  *
943
949
  * **Complexity**: Constant.
944
950
  */
945
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
951
+ BOOST_CONTAINER_NODISCARD inline
946
952
  size_type front_free_capacity() const BOOST_NOEXCEPT
947
953
  {
948
954
  return m_.front_idx;
@@ -954,7 +960,7 @@ class devector
954
960
  *
955
961
  * **Complexity**: Constant.
956
962
  */
957
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
963
+ BOOST_CONTAINER_NODISCARD inline
958
964
  size_type back_free_capacity() const BOOST_NOEXCEPT
959
965
  {
960
966
  return size_type(m_.capacity - m_.back_idx);
@@ -1266,7 +1272,7 @@ class devector
1266
1272
  *
1267
1273
  * **Complexity**: Constant.
1268
1274
  */
1269
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1275
+ BOOST_CONTAINER_NODISCARD inline
1270
1276
  reference operator[](size_type n) BOOST_NOEXCEPT
1271
1277
  {
1272
1278
  BOOST_ASSERT(n < size());
@@ -1280,7 +1286,7 @@ class devector
1280
1286
  *
1281
1287
  * **Complexity**: Constant.
1282
1288
  */
1283
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1289
+ BOOST_CONTAINER_NODISCARD inline
1284
1290
  const_reference operator[](size_type n) const BOOST_NOEXCEPT
1285
1291
  {
1286
1292
  BOOST_ASSERT(n < size());
@@ -1298,7 +1304,7 @@ class devector
1298
1304
  //! <b>Complexity</b>: Constant.
1299
1305
  //!
1300
1306
  //! <b>Note</b>: Non-standard extension
1301
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1307
+ BOOST_CONTAINER_NODISCARD inline
1302
1308
  iterator nth(size_type n) BOOST_NOEXCEPT_OR_NOTHROW
1303
1309
  {
1304
1310
  BOOST_ASSERT(n <= size());
@@ -1316,7 +1322,7 @@ class devector
1316
1322
  //! <b>Complexity</b>: Constant.
1317
1323
  //!
1318
1324
  //! <b>Note</b>: Non-standard extension
1319
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1325
+ BOOST_CONTAINER_NODISCARD inline
1320
1326
  const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
1321
1327
  {
1322
1328
  BOOST_ASSERT(n <= size());
@@ -1333,7 +1339,7 @@ class devector
1333
1339
  //! <b>Complexity</b>: Constant.
1334
1340
  //!
1335
1341
  //! <b>Note</b>: Non-standard extension
1336
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1342
+ BOOST_CONTAINER_NODISCARD inline
1337
1343
  size_type index_of(iterator p) BOOST_NOEXCEPT_OR_NOTHROW
1338
1344
  {
1339
1345
  BOOST_ASSERT(p >= begin());
@@ -1351,7 +1357,7 @@ class devector
1351
1357
  //! <b>Complexity</b>: Constant.
1352
1358
  //!
1353
1359
  //! <b>Note</b>: Non-standard extension
1354
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1360
+ BOOST_CONTAINER_NODISCARD inline
1355
1361
  size_type index_of(const_iterator p) const BOOST_NOEXCEPT_OR_NOTHROW
1356
1362
  {
1357
1363
  BOOST_ASSERT(p >= cbegin());
@@ -1366,7 +1372,7 @@ class devector
1366
1372
  *
1367
1373
  * **Complexity**: Constant.
1368
1374
  */
1369
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1375
+ BOOST_CONTAINER_NODISCARD inline
1370
1376
  reference at(size_type n)
1371
1377
  {
1372
1378
  if (size() <= n)
@@ -1381,7 +1387,7 @@ class devector
1381
1387
  *
1382
1388
  * **Complexity**: Constant.
1383
1389
  */
1384
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1390
+ BOOST_CONTAINER_NODISCARD inline
1385
1391
  const_reference at(size_type n) const
1386
1392
  {
1387
1393
  if (size() <= n)
@@ -1396,7 +1402,7 @@ class devector
1396
1402
  *
1397
1403
  * **Complexity**: Constant.
1398
1404
  */
1399
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1405
+ BOOST_CONTAINER_NODISCARD inline
1400
1406
  reference front() BOOST_NOEXCEPT
1401
1407
  {
1402
1408
  BOOST_ASSERT(!empty());
@@ -1411,7 +1417,7 @@ class devector
1411
1417
  *
1412
1418
  * **Complexity**: Constant.
1413
1419
  */
1414
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1420
+ BOOST_CONTAINER_NODISCARD inline
1415
1421
  const_reference front() const BOOST_NOEXCEPT
1416
1422
  {
1417
1423
  BOOST_ASSERT(!empty());
@@ -1426,7 +1432,7 @@ class devector
1426
1432
  *
1427
1433
  * **Complexity**: Constant.
1428
1434
  */
1429
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1435
+ BOOST_CONTAINER_NODISCARD inline
1430
1436
  reference back() BOOST_NOEXCEPT
1431
1437
  {
1432
1438
  BOOST_ASSERT(!empty());
@@ -1441,7 +1447,7 @@ class devector
1441
1447
  *
1442
1448
  * **Complexity**: Constant.
1443
1449
  */
1444
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1450
+ BOOST_CONTAINER_NODISCARD inline
1445
1451
  const_reference back() const BOOST_NOEXCEPT
1446
1452
  {
1447
1453
  BOOST_ASSERT(!empty());
@@ -1456,7 +1462,7 @@ class devector
1456
1462
  *
1457
1463
  * **Complexity**: Constant.
1458
1464
  */
1459
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1465
+ BOOST_CONTAINER_NODISCARD inline
1460
1466
  T* data() BOOST_NOEXCEPT
1461
1467
  {
1462
1468
  return boost::movelib::to_raw_pointer(m_.buffer) + m_.front_idx;
@@ -1469,7 +1475,7 @@ class devector
1469
1475
  *
1470
1476
  * **Complexity**: Constant.
1471
1477
  */
1472
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
1478
+ BOOST_CONTAINER_NODISCARD inline
1473
1479
  const T* data() const BOOST_NOEXCEPT
1474
1480
  {
1475
1481
  return boost::movelib::to_raw_pointer(m_.buffer) + m_.front_idx;
@@ -1493,7 +1499,7 @@ class devector
1493
1499
  * [EmplaceConstructible]: http://en.cppreference.com/w/cpp/concept/EmplaceConstructible
1494
1500
  * [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
1495
1501
  */
1496
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1502
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1497
1503
  template <class... Args>
1498
1504
  reference emplace_front(Args&&... args)
1499
1505
  {
@@ -1512,7 +1518,7 @@ class devector
1512
1518
  }
1513
1519
  }
1514
1520
 
1515
- #else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1521
+ #else //defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1516
1522
 
1517
1523
  #define BOOST_CONTAINER_DEVECTOR_EMPLACE_FRONT(N) \
1518
1524
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
@@ -1609,7 +1615,7 @@ class devector
1609
1615
  * [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
1610
1616
  * [MoveAssignable]: http://en.cppreference.com/w/cpp/concept/MoveAssignable
1611
1617
  */
1612
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1618
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1613
1619
  template <class... Args>
1614
1620
  inline reference emplace_back(Args&&... args)
1615
1621
  {
@@ -1626,7 +1632,7 @@ class devector
1626
1632
  }
1627
1633
  }
1628
1634
 
1629
- #else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1635
+ #else //defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1630
1636
 
1631
1637
  #define BOOST_CONTAINER_DEVECTOR_EMPLACE_BACK(N) \
1632
1638
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
@@ -1647,7 +1653,7 @@ class devector
1647
1653
  BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEVECTOR_EMPLACE_BACK)
1648
1654
  #undef BOOST_CONTAINER_DEVECTOR_EMPLACE_BACK
1649
1655
 
1650
- #endif //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1656
+ #endif //defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1651
1657
 
1652
1658
 
1653
1659
  #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
@@ -1723,7 +1729,7 @@ class devector
1723
1729
  * [MoveInsertable]: http://en.cppreference.com/w/cpp/concept/MoveInsertable
1724
1730
  * [MoveAssignable]: http://en.cppreference.com/w/cpp/concept/MoveAssignable
1725
1731
  */
1726
- #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1732
+ #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1727
1733
  template <class... Args>
1728
1734
  iterator emplace(const_iterator position, Args&&... args)
1729
1735
  {
@@ -1754,11 +1760,12 @@ class devector
1754
1760
  else{
1755
1761
  iterator nonconst_pos = unconst_iterator(position);
1756
1762
  prefer_move_back = should_move_back(position);
1763
+ allocator_type &al = this->get_allocator_ref();
1757
1764
 
1758
1765
  if(prefer_move_back){
1759
1766
  if(back_free_capacity()){
1760
1767
  boost::container::expand_forward_and_insert_nonempty_middle_alloc
1761
- ( get_allocator_ref()
1768
+ ( al
1762
1769
  , boost::movelib::to_raw_pointer(nonconst_pos)
1763
1770
  , this->priv_raw_end()
1764
1771
  , 1, proxy_t(::boost::forward<Args>(args)...));
@@ -1769,7 +1776,7 @@ class devector
1769
1776
  else{
1770
1777
  if (front_free_capacity()){
1771
1778
  boost::container::expand_backward_and_insert_nonempty_middle_alloc
1772
- (get_allocator_ref()
1779
+ (al
1773
1780
  , this->priv_raw_begin()
1774
1781
  , boost::movelib::to_raw_pointer(nonconst_pos)
1775
1782
  , 1, proxy_t(::boost::forward<Args>(args)...));
@@ -1781,7 +1788,7 @@ class devector
1781
1788
  return this->insert_range_slow_path(position, 1, proxy_t(::boost::forward<Args>(args)...));
1782
1789
  }
1783
1790
 
1784
- #else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1791
+ #else //defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1785
1792
 
1786
1793
  #define BOOST_CONTAINER_DEVECTOR_EMPLACE(N) \
1787
1794
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
@@ -1814,11 +1821,12 @@ class devector
1814
1821
  else{\
1815
1822
  iterator nonconst_pos = unconst_iterator(position);\
1816
1823
  prefer_move_back = should_move_back(position);\
1824
+ allocator_type &al = this->get_allocator_ref();\
1817
1825
  \
1818
1826
  if(prefer_move_back){\
1819
1827
  if(back_free_capacity()){\
1820
1828
  boost::container::expand_forward_and_insert_nonempty_middle_alloc\
1821
- ( get_allocator_ref()\
1829
+ ( al\
1822
1830
  , boost::movelib::to_raw_pointer(nonconst_pos)\
1823
1831
  , this->priv_raw_end()\
1824
1832
  , 1, proxy_t(BOOST_MOVE_FWD##N));\
@@ -1829,7 +1837,7 @@ class devector
1829
1837
  else{\
1830
1838
  if (front_free_capacity()){\
1831
1839
  boost::container::expand_backward_and_insert_nonempty_middle_alloc\
1832
- (get_allocator_ref()\
1840
+ (al\
1833
1841
  , this->priv_raw_begin()\
1834
1842
  , boost::movelib::to_raw_pointer(nonconst_pos)\
1835
1843
  , 1, proxy_t(BOOST_MOVE_FWD##N));\
@@ -1844,7 +1852,7 @@ class devector
1844
1852
  BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEVECTOR_EMPLACE)
1845
1853
  #undef BOOST_CONTAINER_DEVECTOR_EMPLACE
1846
1854
 
1847
- #endif //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
1855
+ #endif //defined(BOOST_CONTAINER_DOXYGEN_INVOKED) || !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
1848
1856
 
1849
1857
 
1850
1858
  #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
@@ -1927,7 +1935,7 @@ class devector
1927
1935
  * **Complexity**: Linear in the size of `*this` and `N` (where `N` is the distance between `first` and `last`).
1928
1936
  * Makes only `N` calls to the constructor of `T` and no reallocations if iterators `first` and `last`
1929
1937
  * are of forward, bidirectional, or random access categories. It makes 2N calls to the copy constructor of `T`
1930
- * and `O(log(N)) reallocations if they are just input iterators.
1938
+ * and `O(log(N))` reallocations if they are just input iterators.
1931
1939
  *
1932
1940
  * **Exceptions**: Strong exception guarantee if `T` is `NothrowConstructible`
1933
1941
  * and `NothrowAssignable`, Basic exception guarantee otherwise.
@@ -2072,13 +2080,11 @@ class devector
2072
2080
  size_type back_distance = size_type(end() - first);
2073
2081
  size_type n = boost::container::iterator_udistance(first, last);
2074
2082
 
2075
- if (front_distance < back_distance)
2076
- {
2083
+ if (front_distance < back_distance) {
2077
2084
  // move n to the right
2078
2085
  boost::container::move_backward(begin(), first, last);
2079
2086
 
2080
- for (iterator i = begin(); i != begin() + n; ++i)
2081
- {
2087
+ for (iterator i = begin(); i != begin() + n; ++i) {
2082
2088
  allocator_traits_type::destroy(get_allocator_ref(), boost::movelib::to_raw_pointer(i));
2083
2089
  }
2084
2090
  //n is always less than max stored_size_type
@@ -2152,30 +2158,30 @@ class devector
2152
2158
  void clear() BOOST_NOEXCEPT
2153
2159
  {
2154
2160
  destroy_elements(begin(), end());
2155
- m_.front_idx = m_.back_idx = 0;
2161
+ m_.back_idx = m_.front_idx;
2156
2162
  }
2157
2163
 
2158
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2164
+ BOOST_CONTAINER_NODISCARD inline
2159
2165
  friend bool operator==(const devector& x, const devector& y)
2160
2166
  { return x.size() == y.size() && ::boost::container::algo_equal(x.begin(), x.end(), y.begin()); }
2161
2167
 
2162
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2168
+ BOOST_CONTAINER_NODISCARD inline
2163
2169
  friend bool operator!=(const devector& x, const devector& y)
2164
2170
  { return !(x == y); }
2165
2171
 
2166
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2172
+ BOOST_CONTAINER_NODISCARD inline
2167
2173
  friend bool operator< (const devector& x, const devector& y)
2168
2174
  { return boost::container::algo_lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); }
2169
2175
 
2170
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2176
+ BOOST_CONTAINER_NODISCARD inline
2171
2177
  friend bool operator>(const devector& x, const devector& y)
2172
2178
  { return y < x; }
2173
2179
 
2174
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2180
+ BOOST_CONTAINER_NODISCARD inline
2175
2181
  friend bool operator<=(const devector& x, const devector& y)
2176
2182
  { return !(y < x); }
2177
2183
 
2178
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2184
+ BOOST_CONTAINER_NODISCARD inline
2179
2185
  friend bool operator>=(const devector& x, const devector& y)
2180
2186
  { return !(x < y); }
2181
2187
 
@@ -2204,8 +2210,6 @@ class devector
2204
2210
  }
2205
2211
  }
2206
2212
 
2207
- #endif
2208
-
2209
2213
  private:
2210
2214
 
2211
2215
  void priv_move_assign(BOOST_RV_REF(devector) x, dtl::bool_<true> /*steal_resources*/)
@@ -2247,21 +2251,21 @@ class devector
2247
2251
  dtl::move_alloc(this->get_allocator_ref(), x.get_allocator_ref(), flag);
2248
2252
 
2249
2253
  if (m_.capacity >= x.size()) {
2250
- overwrite_buffer(xbegin, xend);
2254
+ this->overwrite_buffer(xbegin, xend);
2251
2255
  }
2252
2256
  else {
2253
- allocate_and_copy_range(xbegin, xend);
2257
+ this->allocate_and_copy_range(xbegin, xend);
2254
2258
  }
2255
2259
  }
2256
2260
  }
2257
2261
 
2258
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2262
+ BOOST_CONTAINER_NODISCARD inline
2259
2263
  size_type pos_to_index(const_iterator i) const
2260
2264
  {
2261
2265
  return static_cast<size_type>(i - cbegin());
2262
2266
  }
2263
2267
 
2264
- BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
2268
+ BOOST_CONTAINER_NODISCARD inline
2265
2269
  bool should_move_back(const_iterator i) const
2266
2270
  {
2267
2271
  return static_cast<size_type>(this->pos_to_index(i)) >= this->size()/2u;
@@ -2272,8 +2276,6 @@ class devector
2272
2276
  return boost::intrusive::pointer_traits<pointer>::const_cast_from(i);
2273
2277
  }
2274
2278
 
2275
- #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
2276
-
2277
2279
  inline T* priv_raw_begin() BOOST_NOEXCEPT
2278
2280
  { return boost::movelib::to_raw_pointer(m_.buffer) + m_.front_idx; }
2279
2281
 
@@ -2322,16 +2324,14 @@ class devector
2322
2324
 
2323
2325
  void destroy_elements(pointer b, pointer e)
2324
2326
  {
2325
- for (; b != e; ++b)
2326
- {
2327
+ for (; b != e; ++b) {
2327
2328
  allocator_traits_type::destroy(get_allocator_ref(), boost::movelib::to_raw_pointer(b));
2328
2329
  }
2329
2330
  }
2330
2331
 
2331
2332
  void deallocate_buffer()
2332
2333
  {
2333
- if (m_.buffer)
2334
- {
2334
+ if (m_.buffer) {
2335
2335
  allocator_traits_type::deallocate(get_allocator_ref(), m_.buffer, m_.capacity);
2336
2336
  }
2337
2337
  }
@@ -2364,7 +2364,7 @@ class devector
2364
2364
  }
2365
2365
  }
2366
2366
 
2367
- #else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2367
+ #else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2368
2368
 
2369
2369
  #define BOOST_CONTAINER_DEVECTOR_ALLOC_CONSTRUCT(N) \
2370
2370
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
@@ -2394,7 +2394,7 @@ class devector
2394
2394
  BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEVECTOR_ALLOC_CONSTRUCT)
2395
2395
  #undef BOOST_CONTAINER_DEVECTOR_ALLOC_CONSTRUCT
2396
2396
 
2397
- #endif //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2397
+ #endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2398
2398
 
2399
2399
  size_type calculate_new_capacity(size_type requested_capacity)
2400
2400
  {
@@ -2408,31 +2408,6 @@ class devector
2408
2408
  return growth_factor_type()( size_type(m_.capacity), min_additional_cap, max);
2409
2409
  }
2410
2410
 
2411
- void buffer_move_or_copy(pointer dst)
2412
- {
2413
- detail::construction_guard<allocator_type> guard(dst, get_allocator_ref());
2414
-
2415
- buffer_move_or_copy(dst, guard);
2416
-
2417
- guard.release();
2418
- }
2419
-
2420
- void buffer_move_or_copy(pointer dst, detail::construction_guard<allocator_type>& guard)
2421
- {
2422
- opt_move_or_copy(begin(), end(), dst, guard);
2423
-
2424
- destroy_elements(data(), data() + size());
2425
- deallocate_buffer();
2426
- }
2427
-
2428
- template <typename Guard>
2429
- void opt_move_or_copy(pointer b, pointer e, pointer dst, Guard& guard)
2430
- {
2431
- // if trivial copy and default allocator, memcpy
2432
- boost::container::uninitialized_move_alloc(get_allocator_ref(), b, e, dst);
2433
- guard.extend();
2434
- }
2435
-
2436
2411
  #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2437
2412
 
2438
2413
  template <typename... Args>
@@ -2499,18 +2474,25 @@ class devector
2499
2474
  template <typename... Args>
2500
2475
  void resize_front_slow_path(size_type sz, size_type n, Args&&... args)
2501
2476
  {
2502
- const size_type new_capacity = calculate_new_capacity(sz + back_free_capacity());
2477
+ const size_type back_free_cap = back_free_capacity();
2478
+ const size_type new_capacity = calculate_new_capacity(sz + back_free_cap);
2503
2479
  pointer new_buffer = allocate(new_capacity);
2504
- allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());
2505
2480
 
2506
- const size_type old_sz = this->size();
2507
- const size_type new_old_elem_index = new_capacity - old_sz;
2481
+ allocator_type &al = this->get_allocator_ref();
2482
+ allocation_guard new_buffer_guard(new_buffer, new_capacity, al);
2483
+
2484
+ const size_type new_old_elem_index = new_capacity - this->size() - back_free_cap;
2508
2485
  const size_type new_elem_index = new_old_elem_index - n;
2509
2486
 
2510
- detail::construction_guard<allocator_type> guard(new_buffer + new_elem_index, get_allocator_ref());
2487
+ detail::construction_guard<allocator_type> guard(new_buffer + new_elem_index, al);
2511
2488
  guarded_construct_n(new_buffer + new_elem_index, n, guard, boost::forward<Args>(args)...);
2512
2489
 
2513
- buffer_move_or_copy(new_buffer + new_old_elem_index, guard);
2490
+ //This might throw
2491
+ boost::container::uninitialized_move_alloc(al, begin(), end(), new_buffer + new_old_elem_index);
2492
+
2493
+ //This can't throw
2494
+ this->destroy_elements(data(), data() + size());
2495
+ this->deallocate_buffer();
2514
2496
 
2515
2497
  guard.release();
2516
2498
  new_buffer_guard.release();
@@ -2518,7 +2500,7 @@ class devector
2518
2500
  m_.buffer = new_buffer;
2519
2501
  m_.set_capacity(new_capacity);
2520
2502
  m_.set_front_idx(new_elem_index);
2521
- m_.set_back_idx(new_elem_index + old_sz + n);
2503
+ m_.set_back_idx(new_elem_index + sz);
2522
2504
  }
2523
2505
 
2524
2506
  template <typename... Args>
@@ -2553,12 +2535,19 @@ class devector
2553
2535
  {
2554
2536
  const size_type new_capacity = calculate_new_capacity(sz + front_free_capacity());
2555
2537
  pointer new_buffer = allocate(new_capacity);
2556
- allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());
2557
2538
 
2558
- detail::construction_guard<allocator_type> guard(new_buffer + m_.back_idx, get_allocator_ref());
2539
+ allocator_type &al = this->get_allocator_ref();
2540
+ allocation_guard new_buffer_guard(new_buffer, new_capacity, al);
2541
+
2542
+ detail::construction_guard<allocator_type> guard(new_buffer + m_.back_idx, al);
2559
2543
  guarded_construct_n(new_buffer + m_.back_idx, n, guard, boost::forward<Args>(args)...);
2560
2544
 
2561
- buffer_move_or_copy(new_buffer + m_.front_idx);
2545
+ //This might throw
2546
+ boost::container::uninitialized_move_alloc(al, begin(), end(), new_buffer + m_.front_idx);
2547
+
2548
+ //This can't throw
2549
+ this->destroy_elements(data(), data() + size());
2550
+ this->deallocate_buffer();
2562
2551
 
2563
2552
  guard.release();
2564
2553
  new_buffer_guard.release();
@@ -2568,7 +2557,7 @@ class devector
2568
2557
  m_.set_back_idx(m_.back_idx + n);
2569
2558
  }
2570
2559
 
2571
- #else //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2560
+ #else // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2572
2561
 
2573
2562
  #define BOOST_CONTAINER_DEVECTOR_SLOW_PATH(N) \
2574
2563
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
@@ -2597,24 +2586,30 @@ class devector
2597
2586
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
2598
2587
  void resize_front_slow_path(size_type sz, size_type n BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
2599
2588
  {\
2600
- const size_type new_capacity = calculate_new_capacity(sz + back_free_capacity());\
2589
+ const size_type back_free_cap = back_free_capacity();\
2590
+ const size_type new_capacity = calculate_new_capacity(sz + back_free_cap);\
2601
2591
  pointer new_buffer = allocate(new_capacity);\
2602
- allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());\
2603
- \
2604
- const size_type new_old_elem_index = new_capacity - size();\
2592
+ allocator_type &al = this->get_allocator_ref();\
2593
+ allocation_guard new_buffer_guard(new_buffer, new_capacity, al);\
2594
+ \
2595
+ const size_type new_old_elem_index = new_capacity - size() - back_free_cap;\
2605
2596
  const size_type new_elem_index = new_old_elem_index - n;\
2606
- \
2607
- detail::construction_guard<allocator_type> guard(new_buffer + new_elem_index, get_allocator_ref());\
2597
+ \
2598
+ detail::construction_guard<allocator_type> guard(new_buffer + new_elem_index, al);\
2608
2599
  guarded_construct_n(new_buffer + new_elem_index, n, guard BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
2609
- \
2610
- buffer_move_or_copy(new_buffer + new_old_elem_index, guard);\
2611
- \
2600
+ \
2601
+ boost::container::uninitialized_move_alloc(al, begin(), end(), new_buffer + new_old_elem_index);\
2602
+ \
2612
2603
  guard.release();\
2613
2604
  new_buffer_guard.release();\
2605
+ \
2606
+ this->destroy_elements(data(), data() + size());\
2607
+ this->deallocate_buffer();\
2608
+ \
2614
2609
  m_.buffer = new_buffer;\
2615
2610
  m_.set_capacity(new_capacity);\
2616
- m_.set_back_idx(new_old_elem_index + m_.back_idx - m_.front_idx);\
2617
2611
  m_.set_front_idx(new_elem_index);\
2612
+ m_.set_back_idx(new_elem_index + sz);\
2618
2613
  }\
2619
2614
  \
2620
2615
  BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N \
@@ -2648,12 +2643,16 @@ class devector
2648
2643
  {\
2649
2644
  const size_type new_capacity = calculate_new_capacity(sz + front_free_capacity());\
2650
2645
  pointer new_buffer = allocate(new_capacity);\
2651
- allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());\
2646
+ allocator_type &al = this->get_allocator_ref();\
2647
+ allocation_guard new_buffer_guard(new_buffer, new_capacity, al);\
2652
2648
  \
2653
- detail::construction_guard<allocator_type> guard(new_buffer + m_.back_idx, get_allocator_ref());\
2649
+ detail::construction_guard<allocator_type> guard(new_buffer + m_.back_idx, al);\
2654
2650
  guarded_construct_n(new_buffer + m_.back_idx, n, guard BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
2655
2651
  \
2656
- buffer_move_or_copy(new_buffer + m_.front_idx);\
2652
+ boost::container::uninitialized_move_alloc(al, begin(), end(), new_buffer + m_.front_idx);\
2653
+ \
2654
+ this->destroy_elements(data(), data() + size());\
2655
+ this->deallocate_buffer();\
2657
2656
  \
2658
2657
  guard.release();\
2659
2658
  new_buffer_guard.release();\
@@ -2667,18 +2666,19 @@ class devector
2667
2666
  BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_DEVECTOR_SLOW_PATH)
2668
2667
  #undef BOOST_CONTAINER_DEVECTOR_SLOW_PATH
2669
2668
 
2670
- #endif //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2669
+ #endif // !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
2671
2670
 
2672
2671
  void reallocate_at(size_type new_capacity, size_type buffer_offset)
2673
2672
  {
2674
2673
  pointer new_buffer = allocate(new_capacity);
2675
2674
  {
2676
- allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());
2677
- boost::container::uninitialized_move_alloc(get_allocator_ref(), this->begin(), this->end(), new_buffer + buffer_offset);
2675
+ allocator_type &al = this->get_allocator_ref();
2676
+ allocation_guard new_buffer_guard(new_buffer, new_capacity, al);
2677
+ boost::container::uninitialized_move_alloc(al, this->begin(), this->end(), new_buffer + buffer_offset);
2678
2678
  new_buffer_guard.release();
2679
2679
  }
2680
- destroy_elements(m_.buffer + m_.front_idx, m_.buffer + m_.back_idx);
2681
- deallocate_buffer();
2680
+ this->destroy_elements(m_.buffer + m_.front_idx, m_.buffer + m_.back_idx);
2681
+ this->deallocate_buffer();
2682
2682
 
2683
2683
  m_.buffer = new_buffer;
2684
2684
  //Safe cast, allocate() will handle stored_size_type overflow
@@ -2698,6 +2698,8 @@ class devector
2698
2698
 
2699
2699
  size_type const n = boost::container::iterator_udistance(first, last);
2700
2700
  bool prefer_move_back;
2701
+ allocator_type &al = this->get_allocator_ref();
2702
+
2701
2703
  if (BOOST_UNLIKELY(!n)) {
2702
2704
  return begin() + size_type(position - cbegin());
2703
2705
  }
@@ -2705,7 +2707,7 @@ class devector
2705
2707
  if(back_free_capacity() >= n) // fast path
2706
2708
  {
2707
2709
  iterator r(this->end());
2708
- boost::container::uninitialized_copy_alloc(get_allocator_ref(), first, last, this->priv_raw_end());
2710
+ boost::container::uninitialized_copy_alloc(al, first, last, this->priv_raw_end());
2709
2711
  m_.set_back_idx(m_.back_idx + n);
2710
2712
  return r;
2711
2713
  }
@@ -2713,7 +2715,7 @@ class devector
2713
2715
  }
2714
2716
  else if (position == begin()) {
2715
2717
  if(front_free_capacity() >= n) {// secondary fast path
2716
- boost::container::uninitialized_copy_alloc(get_allocator_ref(), first, last, this->priv_raw_begin() - n);
2718
+ boost::container::uninitialized_copy_alloc(al, first, last, this->priv_raw_begin() - n);
2717
2719
  m_.set_front_idx(m_.front_idx - n);
2718
2720
  return begin();
2719
2721
  }
@@ -2726,7 +2728,7 @@ class devector
2726
2728
  if(prefer_move_back){
2727
2729
  if(back_free_capacity() >= n){
2728
2730
  boost::container::expand_forward_and_insert_nonempty_middle_alloc
2729
- ( get_allocator_ref()
2731
+ ( al
2730
2732
  , boost::movelib::to_raw_pointer(nonconst_pos)
2731
2733
  , this->priv_raw_end()
2732
2734
  , n, proxy_t(first));
@@ -2737,7 +2739,7 @@ class devector
2737
2739
  else{
2738
2740
  if (front_free_capacity() >= n){
2739
2741
  boost::container::expand_backward_and_insert_nonempty_middle_alloc
2740
- ( get_allocator_ref()
2742
+ ( al
2741
2743
  , this->priv_raw_begin()
2742
2744
  , boost::movelib::to_raw_pointer(nonconst_pos)
2743
2745
  , n, proxy_t(first));
@@ -2759,6 +2761,8 @@ class devector
2759
2761
  size_type const index = size_type(p - cbegin());
2760
2762
 
2761
2763
  size_type const cap = m_.capacity;
2764
+ allocator_type &al = this->get_allocator_ref();
2765
+
2762
2766
  //Test if enough free memory would be left
2763
2767
  if (free_cap >= n && (free_cap - n) >= cap/devector_min_free_fraction) {
2764
2768
  size_type const old_size = this->size();
@@ -2771,7 +2775,7 @@ class devector
2771
2775
  m_.back_idx = 0u;
2772
2776
  m_.front_idx = 0u;
2773
2777
  boost::container::expand_backward_forward_and_insert_alloc
2774
- (raw_beg, old_size, new_raw_beg, raw_pos, n, proxy, get_allocator_ref());
2778
+ (raw_beg, old_size, new_raw_beg, raw_pos, n, proxy, al);
2775
2779
  m_.set_front_idx(new_front_idx);
2776
2780
  m_.set_back_idx(new_front_idx + new_size);
2777
2781
  }
@@ -2781,7 +2785,7 @@ class devector
2781
2785
  pointer new_buffer = allocate(new_capacity);
2782
2786
 
2783
2787
  // guard allocation
2784
- allocation_guard new_buffer_guard(new_buffer, new_capacity, get_allocator_ref());
2788
+ allocation_guard new_buffer_guard(new_buffer, new_capacity, al);
2785
2789
 
2786
2790
  size_type const old_size = this->size();
2787
2791
  const size_type new_front_index = (new_capacity - old_size - n) / 2u;
@@ -2790,7 +2794,7 @@ class devector
2790
2794
  T* const raw_new_start = const_cast<T*>(boost::movelib::to_raw_pointer(new_buffer)) + new_front_index;
2791
2795
 
2792
2796
  boost::container::uninitialized_move_and_insert_alloc
2793
- (get_allocator_ref(), this->priv_raw_begin(), raw_pos, this->priv_raw_end(), raw_new_start, n, proxy);
2797
+ (al, this->priv_raw_begin(), raw_pos, this->priv_raw_end(), raw_new_start, n, proxy);
2794
2798
  new_buffer_guard.release();
2795
2799
 
2796
2800
  // cleanup
@@ -2821,10 +2825,11 @@ class devector
2821
2825
  size_type n = boost::container::iterator_udistance(first, last);
2822
2826
 
2823
2827
  pointer new_buffer = n ? allocate(n) : pointer();
2824
- allocation_guard new_buffer_guard(new_buffer, n, get_allocator_ref());
2825
- boost::container::uninitialized_copy_alloc(get_allocator_ref(), first, last, new_buffer);
2826
- destroy_elements(begin(), end());
2827
- deallocate_buffer();
2828
+ allocator_type &al = this->get_allocator_ref();
2829
+ allocation_guard new_buffer_guard(new_buffer, n, al);
2830
+ boost::container::uninitialized_copy_alloc(al, first, last, new_buffer);
2831
+ this->destroy_elements(begin(), end());
2832
+ this->deallocate_buffer();
2828
2833
 
2829
2834
  m_.set_capacity(n);
2830
2835
  m_.buffer = new_buffer;
@@ -2857,7 +2862,8 @@ class devector
2857
2862
  InputIterator overwrite_buffer_impl(InputIterator first, InputIterator last, dtl::false_)
2858
2863
  {
2859
2864
  pointer pos = m_.buffer;
2860
- detail::construction_guard<allocator_type> front_guard(pos, get_allocator_ref());
2865
+ allocator_type &al = this->get_allocator_ref();
2866
+ detail::construction_guard<allocator_type> front_guard(pos, al);
2861
2867
 
2862
2868
  while (first != last && pos != begin()) {
2863
2869
  this->alloc_construct(pos++, *first++);
@@ -2868,7 +2874,7 @@ class devector
2868
2874
  *pos++ = *first++;
2869
2875
  }
2870
2876
 
2871
- detail::construction_guard<allocator_type> back_guard(pos, get_allocator_ref());
2877
+ detail::construction_guard<allocator_type> back_guard(pos, al);
2872
2878
 
2873
2879
  iterator capacity_end = m_.buffer + m_.capacity;
2874
2880
  while (first != last && pos != capacity_end) {
@@ -3074,7 +3080,7 @@ template <class T, class Allocator, class Options>
3074
3080
  struct has_trivial_destructor_after_move<boost::container::devector<T, Allocator, Options> >
3075
3081
  {
3076
3082
  typedef typename boost::container::devector<T, Allocator, Options>::allocator_type allocator_type;
3077
- typedef typename ::boost::container::allocator_traits<allocator_type>::pointer pointer;
3083
+ typedef typename boost::container::allocator_traits<allocator_type>::pointer pointer;
3078
3084
  BOOST_STATIC_CONSTEXPR bool value =
3079
3085
  ::boost::has_trivial_destructor_after_move<allocator_type>::value &&
3080
3086
  ::boost::has_trivial_destructor_after_move<pointer>::value;