react-native-windows 0.84.0 → 0.84.1

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 (921) hide show
  1. package/Directory.Build.props +2 -17
  2. package/Folly/ThreadNameStub.cpp +4 -6
  3. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1 -1
  4. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -7
  5. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +0 -3
  6. package/PropertySheets/CIBuildOptimizations.props +2 -2
  7. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  8. package/PropertySheets/JSEngine.props +1 -1
  9. package/PropertySheets/NuGet.LockFile.props +10 -1
  10. package/PropertySheets/React.Cpp.props +3 -3
  11. package/ReactCommon/ReactCommon.vcxproj +0 -5
  12. package/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 +61 -6
  13. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -37
  14. package/Scripts/UpdateNightlyDependencies.ps1 +47 -0
  15. package/Scripts/creaternwapp.cmd +5 -8
  16. package/Scripts/creaternwlib.cmd +10 -23
  17. package/Shared/Shared.vcxitems +2 -0
  18. package/{Folly → external}/.clang-format +0 -1
  19. package/external/External.vcxitems +10 -0
  20. package/external/fast-float/.syncignore +10 -0
  21. package/external/fast-float/LICENSE-APACHE +190 -0
  22. package/external/fast-float/LICENSE-BOOST +23 -0
  23. package/external/fast-float/LICENSE-MIT +27 -0
  24. package/external/fast-float/README.md +545 -0
  25. package/external/fast-float/cgmanifest.json +15 -0
  26. package/external/fast-float/fast-float.vcxitems +14 -0
  27. package/external/fast-float/include/fast_float/ascii_number.h +588 -0
  28. package/external/fast-float/include/fast_float/bigint.h +638 -0
  29. package/external/fast-float/include/fast_float/constexpr_feature_detect.h +46 -0
  30. package/external/fast-float/include/fast_float/decimal_to_binary.h +212 -0
  31. package/external/fast-float/include/fast_float/digit_comparison.h +457 -0
  32. package/external/fast-float/include/fast_float/fast_float.h +59 -0
  33. package/external/fast-float/include/fast_float/fast_table.h +708 -0
  34. package/external/fast-float/include/fast_float/float_common.h +1240 -0
  35. package/external/fast-float/include/fast_float/parse_number.h +399 -0
  36. package/external/fast-float/sync-config.json +8 -0
  37. package/external/fmt/.syncignore +10 -0
  38. package/external/fmt/CONTRIBUTING.md +20 -0
  39. package/external/fmt/LICENSE +27 -0
  40. package/external/fmt/README.md +484 -0
  41. package/external/fmt/doc/ChangeLog-old.md +3290 -0
  42. package/external/fmt/doc/api.md +650 -0
  43. package/external/fmt/doc/fmt.css +61 -0
  44. package/external/fmt/doc/fmt.js +4 -0
  45. package/external/fmt/doc/get-started.md +222 -0
  46. package/external/fmt/doc/index.md +151 -0
  47. package/external/fmt/doc/perf.svg +1 -0
  48. package/external/fmt/doc/python-license.txt +290 -0
  49. package/external/fmt/doc/syntax.md +887 -0
  50. package/external/fmt/fmt.vcxitems +28 -0
  51. package/external/fmt/include/fmt/args.h +228 -0
  52. package/external/fmt/include/fmt/base.h +3077 -0
  53. package/external/fmt/include/fmt/chrono.h +2432 -0
  54. package/external/fmt/include/fmt/color.h +612 -0
  55. package/external/fmt/include/fmt/compile.h +529 -0
  56. package/external/fmt/include/fmt/core.h +5 -0
  57. package/external/fmt/include/fmt/format-inl.h +1928 -0
  58. package/external/fmt/include/fmt/format.h +4427 -0
  59. package/external/fmt/include/fmt/os.h +439 -0
  60. package/external/fmt/include/fmt/ostream.h +211 -0
  61. package/external/fmt/include/fmt/printf.h +656 -0
  62. package/external/fmt/include/fmt/ranges.h +882 -0
  63. package/external/fmt/include/fmt/std.h +699 -0
  64. package/external/fmt/include/fmt/xchar.h +322 -0
  65. package/external/fmt/src/fmt.cc +135 -0
  66. package/external/fmt/src/format.cc +43 -0
  67. package/external/fmt/src/os.cc +403 -0
  68. package/external/fmt/sync-config.json +8 -0
  69. package/external/folly/.syncignore +60 -0
  70. package/external/folly/LICENSE +200 -0
  71. package/external/folly/README.md +263 -0
  72. package/{fmt → external/folly/folly}/.clang-format +0 -1
  73. package/external/folly/folly/AtomicHashArray-inl.h +546 -0
  74. package/external/folly/folly/AtomicHashArray.h +431 -0
  75. package/external/folly/folly/AtomicHashMap-inl.h +653 -0
  76. package/external/folly/folly/AtomicHashMap.h +484 -0
  77. package/external/folly/folly/AtomicIntrusiveLinkedList.h +206 -0
  78. package/external/folly/folly/AtomicLinkedList.h +110 -0
  79. package/external/folly/folly/AtomicUnorderedMap.h +522 -0
  80. package/external/folly/folly/BUCK +1631 -0
  81. package/external/folly/folly/BUILD_MODE.bzl +72 -0
  82. package/external/folly/folly/Benchmark.cpp +986 -0
  83. package/external/folly/folly/Benchmark.h +680 -0
  84. package/external/folly/folly/BenchmarkUtil.h +47 -0
  85. package/external/folly/folly/Bits.h +17 -0
  86. package/external/folly/folly/CMakeLists.txt +110 -0
  87. package/external/folly/folly/CPortability.h +338 -0
  88. package/external/folly/folly/CancellationToken-inl.h +449 -0
  89. package/external/folly/folly/CancellationToken.cpp +250 -0
  90. package/external/folly/folly/CancellationToken.h +365 -0
  91. package/external/folly/folly/Chrono.h +132 -0
  92. package/external/folly/folly/ClockGettimeWrappers.cpp +93 -0
  93. package/external/folly/folly/ClockGettimeWrappers.h +29 -0
  94. package/external/folly/folly/ConcurrentBitSet.h +157 -0
  95. package/external/folly/folly/ConcurrentLazy.h +74 -0
  96. package/external/folly/folly/ConcurrentSkipList-inl.h +341 -0
  97. package/external/folly/folly/ConcurrentSkipList.h +824 -0
  98. package/external/folly/folly/ConstructorCallbackList.h +158 -0
  99. package/external/folly/folly/Conv.h +2026 -0
  100. package/external/folly/folly/CppAttributes.h +170 -0
  101. package/external/folly/folly/CpuId.h +297 -0
  102. package/external/folly/folly/DefaultKeepAliveExecutor.h +172 -0
  103. package/external/folly/folly/Demangle.cpp +255 -0
  104. package/external/folly/folly/Demangle.h +73 -0
  105. package/external/folly/folly/DiscriminatedPtr.h +236 -0
  106. package/external/folly/folly/DynamicConverter.h +17 -0
  107. package/external/folly/folly/Exception.h +150 -0
  108. package/external/folly/folly/ExceptionString.cpp +51 -0
  109. package/external/folly/folly/ExceptionString.h +33 -0
  110. package/external/folly/folly/ExceptionWrapper-inl.h +264 -0
  111. package/external/folly/folly/ExceptionWrapper.cpp +37 -0
  112. package/external/folly/folly/ExceptionWrapper.h +377 -0
  113. package/external/folly/folly/Executor.cpp +111 -0
  114. package/external/folly/folly/Executor.h +351 -0
  115. package/external/folly/folly/Expected.h +1725 -0
  116. package/external/folly/folly/FBString.h +2888 -0
  117. package/external/folly/folly/FBVector.h +17 -0
  118. package/external/folly/folly/File.cpp +180 -0
  119. package/external/folly/folly/File.h +177 -0
  120. package/external/folly/folly/FileUtil.cpp +378 -0
  121. package/external/folly/folly/FileUtil.h +332 -0
  122. package/external/folly/folly/Fingerprint.cpp +135 -0
  123. package/external/folly/folly/Fingerprint.h +289 -0
  124. package/external/folly/folly/FixedString.h +2965 -0
  125. package/external/folly/folly/FollyMemcpy.cpp +30 -0
  126. package/external/folly/folly/FollyMemcpy.h +23 -0
  127. package/external/folly/folly/FollyMemset.cpp +29 -0
  128. package/external/folly/folly/FollyMemset.h +25 -0
  129. package/external/folly/folly/Format-inl.h +1152 -0
  130. package/external/folly/folly/Format.cpp +429 -0
  131. package/external/folly/folly/Format.h +463 -0
  132. package/external/folly/folly/FormatArg.h +285 -0
  133. package/external/folly/folly/FormatTraits.h +65 -0
  134. package/external/folly/folly/Function.h +1159 -0
  135. package/external/folly/folly/GLog.h +85 -0
  136. package/external/folly/folly/GroupVarint.cpp +153 -0
  137. package/external/folly/folly/GroupVarint.h +630 -0
  138. package/external/folly/folly/Hash.h +20 -0
  139. package/external/folly/folly/IPAddress.cpp +490 -0
  140. package/external/folly/folly/IPAddress.h +667 -0
  141. package/external/folly/folly/IPAddressException.h +82 -0
  142. package/external/folly/folly/IPAddressV4.cpp +305 -0
  143. package/external/folly/folly/IPAddressV4.h +495 -0
  144. package/external/folly/folly/IPAddressV6.cpp +541 -0
  145. package/external/folly/folly/IPAddressV6.h +627 -0
  146. package/external/folly/folly/Indestructible.h +164 -0
  147. package/external/folly/folly/IndexedMemPool.h +550 -0
  148. package/external/folly/folly/IntrusiveList.h +17 -0
  149. package/external/folly/folly/Lazy.h +142 -0
  150. package/external/folly/folly/Likely.h +76 -0
  151. package/external/folly/folly/MPMCPipeline.h +280 -0
  152. package/external/folly/folly/MPMCQueue.h +1556 -0
  153. package/external/folly/folly/MacAddress.cpp +188 -0
  154. package/external/folly/folly/MacAddress.h +260 -0
  155. package/external/folly/folly/MapUtil.h +17 -0
  156. package/external/folly/folly/Math.h +258 -0
  157. package/external/folly/folly/MaybeManagedPtr.h +120 -0
  158. package/external/folly/folly/Memory.h +900 -0
  159. package/external/folly/folly/MicroLock.cpp +76 -0
  160. package/external/folly/folly/MicroLock.h +354 -0
  161. package/external/folly/folly/MicroSpinLock.h +17 -0
  162. package/external/folly/folly/MoveWrapper.h +76 -0
  163. package/external/folly/folly/ObserverContainer.h +1026 -0
  164. package/external/folly/folly/Optional.h +743 -0
  165. package/external/folly/folly/Overload.h +325 -0
  166. package/external/folly/folly/PackedSyncPtr.h +147 -0
  167. package/external/folly/folly/Padded.h +464 -0
  168. package/external/folly/folly/Poly-inl.h +230 -0
  169. package/external/folly/folly/Poly.h +1095 -0
  170. package/external/folly/folly/PolyException.h +43 -0
  171. package/external/folly/folly/Portability.h +644 -0
  172. package/external/folly/folly/Preprocessor.h +236 -0
  173. package/external/folly/folly/ProducerConsumerQueue.h +182 -0
  174. package/external/folly/folly/RWSpinLock.h +17 -0
  175. package/external/folly/folly/Random-inl.h +86 -0
  176. package/external/folly/folly/Random.cpp +184 -0
  177. package/external/folly/folly/Random.h +434 -0
  178. package/external/folly/folly/Range.h +1772 -0
  179. package/external/folly/folly/Replaceable.h +636 -0
  180. package/external/folly/folly/ScopeGuard.cpp +29 -0
  181. package/external/folly/folly/ScopeGuard.h +420 -0
  182. package/external/folly/folly/SharedMutex.cpp +81 -0
  183. package/external/folly/folly/SharedMutex.h +1751 -0
  184. package/external/folly/folly/Singleton-inl.h +332 -0
  185. package/external/folly/folly/Singleton.cpp +512 -0
  186. package/external/folly/folly/Singleton.h +891 -0
  187. package/external/folly/folly/SingletonThreadLocal.cpp +53 -0
  188. package/external/folly/folly/SingletonThreadLocal.h +263 -0
  189. package/external/folly/folly/SocketAddress.cpp +786 -0
  190. package/external/folly/folly/SocketAddress.h +768 -0
  191. package/external/folly/folly/SpinLock.h +55 -0
  192. package/external/folly/folly/String-inl.h +668 -0
  193. package/external/folly/folly/String.cpp +777 -0
  194. package/external/folly/folly/String.h +767 -0
  195. package/external/folly/folly/Subprocess.cpp +1142 -0
  196. package/external/folly/folly/Subprocess.h +1055 -0
  197. package/external/folly/folly/Synchronized.h +1833 -0
  198. package/external/folly/folly/SynchronizedPtr.h +106 -0
  199. package/external/folly/folly/ThreadCachedInt.h +175 -0
  200. package/external/folly/folly/ThreadLocal.h +478 -0
  201. package/external/folly/folly/TimeoutQueue.cpp +78 -0
  202. package/external/folly/folly/TimeoutQueue.h +123 -0
  203. package/external/folly/folly/TokenBucket.h +673 -0
  204. package/external/folly/folly/Traits.h +1442 -0
  205. package/external/folly/folly/Try-inl.h +372 -0
  206. package/external/folly/folly/Try.cpp +23 -0
  207. package/external/folly/folly/Try.h +728 -0
  208. package/external/folly/folly/UTF8String.h +56 -0
  209. package/external/folly/folly/Unicode.cpp +201 -0
  210. package/external/folly/folly/Unicode.h +94 -0
  211. package/external/folly/folly/Unit.h +65 -0
  212. package/external/folly/folly/Uri-inl.h +101 -0
  213. package/external/folly/folly/Uri.cpp +190 -0
  214. package/external/folly/folly/Uri.h +142 -0
  215. package/external/folly/folly/Utility.h +932 -0
  216. package/external/folly/folly/VERSION +1 -0
  217. package/external/folly/folly/Varint.h +230 -0
  218. package/external/folly/folly/VirtualExecutor.h +17 -0
  219. package/external/folly/folly/algorithm/simd/BUCK +47 -0
  220. package/external/folly/folly/algorithm/simd/Contains.cpp +42 -0
  221. package/external/folly/folly/algorithm/simd/Contains.h +116 -0
  222. package/external/folly/folly/algorithm/simd/FindFixed.h +301 -0
  223. package/external/folly/folly/algorithm/simd/Ignore.h +52 -0
  224. package/external/folly/folly/algorithm/simd/Movemask.h +207 -0
  225. package/external/folly/folly/algorithm/simd/detail/BUCK +70 -0
  226. package/external/folly/folly/algorithm/simd/detail/ContainsImpl.h +91 -0
  227. package/external/folly/folly/algorithm/simd/detail/SimdAnyOf.h +83 -0
  228. package/external/folly/folly/algorithm/simd/detail/SimdForEach.h +209 -0
  229. package/external/folly/folly/algorithm/simd/detail/SimdPlatform.h +445 -0
  230. package/external/folly/folly/algorithm/simd/detail/Traits.h +125 -0
  231. package/external/folly/folly/algorithm/simd/detail/UnrollUtils.h +126 -0
  232. package/external/folly/folly/base64.h +264 -0
  233. package/external/folly/folly/chrono/BUCK +29 -0
  234. package/external/folly/folly/chrono/Clock.h +65 -0
  235. package/external/folly/folly/chrono/Conv.h +712 -0
  236. package/external/folly/folly/chrono/test/BUCK +26 -0
  237. package/external/folly/folly/chrono/test/ClockTest.cpp +68 -0
  238. package/external/folly/folly/chrono/test/ConvTest.cpp +652 -0
  239. package/external/folly/folly/concurrency/AtomicSharedPtr.h +387 -0
  240. package/external/folly/folly/concurrency/BUCK +170 -0
  241. package/external/folly/folly/concurrency/CacheLocality.h +460 -0
  242. package/external/folly/folly/concurrency/ConcurrentHashMap.h +822 -0
  243. package/external/folly/folly/concurrency/CoreCachedSharedPtr.h +232 -0
  244. package/external/folly/folly/concurrency/DeadlockDetector.cpp +27 -0
  245. package/external/folly/folly/concurrency/DeadlockDetector.h +44 -0
  246. package/external/folly/folly/concurrency/DynamicBoundedQueue.h +751 -0
  247. package/external/folly/folly/concurrency/PriorityUnboundedQueueSet.h +207 -0
  248. package/external/folly/folly/concurrency/ProcessLocalUniqueId.cpp +46 -0
  249. package/external/folly/folly/concurrency/ProcessLocalUniqueId.h +38 -0
  250. package/external/folly/folly/concurrency/SingletonRelaxedCounter.h +325 -0
  251. package/external/folly/folly/concurrency/ThreadCachedSynchronized.h +227 -0
  252. package/external/folly/folly/concurrency/UnboundedQueue.h +891 -0
  253. package/external/folly/folly/concurrency/container/BUCK +77 -0
  254. package/external/folly/folly/concurrency/container/FlatCombiningPriorityQueue.h +426 -0
  255. package/external/folly/folly/concurrency/container/LockFreeRingBuffer.h +306 -0
  256. package/external/folly/folly/concurrency/container/RelaxedConcurrentPriorityQueue.h +1212 -0
  257. package/external/folly/folly/concurrency/container/SingleWriterFixedHashMap.h +322 -0
  258. package/external/folly/folly/concurrency/container/atomic_grow_array.h +564 -0
  259. package/external/folly/folly/concurrency/container/test/BUCK +75 -0
  260. package/external/folly/folly/concurrency/container/test/FlatCombiningPriorityQueueTest.cpp +570 -0
  261. package/external/folly/folly/concurrency/container/test/LockFreeRingBufferTest.cpp +276 -0
  262. package/external/folly/folly/concurrency/container/test/RelaxedConcurrentPriorityQueueTest.cpp +1570 -0
  263. package/external/folly/folly/concurrency/container/test/SingleWriterFixedHashMapTest.cpp +401 -0
  264. package/external/folly/folly/concurrency/container/test/atomic_grow_array_test.cpp +187 -0
  265. package/external/folly/folly/concurrency/detail/AtomicSharedPtr-detail.h +212 -0
  266. package/external/folly/folly/concurrency/detail/ConcurrentHashMap-detail.h +1911 -0
  267. package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.cpp +43 -0
  268. package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.h +190 -0
  269. package/external/folly/folly/concurrency/memory/BUCK +53 -0
  270. package/external/folly/folly/concurrency/memory/PrimaryPtr.h +338 -0
  271. package/external/folly/folly/concurrency/memory/ReadMostlySharedPtr.h +511 -0
  272. package/external/folly/folly/concurrency/memory/TLRefCount.h +228 -0
  273. package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrBenchmark.cpp +56 -0
  274. package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrTest.cpp +454 -0
  275. package/external/folly/folly/concurrency/memory/test/BUCK +95 -0
  276. package/external/folly/folly/concurrency/memory/test/PrimaryPtrTest.cpp +303 -0
  277. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrBenchmark.cpp +138 -0
  278. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrStressTest.cpp +75 -0
  279. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrTest.cpp +378 -0
  280. package/external/folly/folly/concurrency/memory/test/RefCountBenchmark.cpp +90 -0
  281. package/external/folly/folly/concurrency/memory/test/RefCountTest.cpp +168 -0
  282. package/external/folly/folly/concurrency/test/AtomicSharedPtrCounted.h +156 -0
  283. package/external/folly/folly/concurrency/test/AtomicSharedPtrPerformance.cpp +255 -0
  284. package/external/folly/folly/concurrency/test/AtomicSharedPtrTest.cpp +257 -0
  285. package/external/folly/folly/concurrency/test/BUCK +229 -0
  286. package/external/folly/folly/concurrency/test/CacheLocalityBenchmark.cpp +392 -0
  287. package/external/folly/folly/concurrency/test/CacheLocalityTest.cpp +1229 -0
  288. package/external/folly/folly/concurrency/test/ConcurrentHashMapBench.cpp +260 -0
  289. package/external/folly/folly/concurrency/test/ConcurrentHashMapTest.cpp +1242 -0
  290. package/external/folly/folly/concurrency/test/CoreCachedSharedPtrTest.cpp +408 -0
  291. package/external/folly/folly/concurrency/test/DynamicBoundedQueueTest.cpp +984 -0
  292. package/external/folly/folly/concurrency/test/PriorityUnboundedQueueSetTest.cpp +73 -0
  293. package/external/folly/folly/concurrency/test/ProcessLocalUniqueIdTest.cpp +66 -0
  294. package/external/folly/folly/concurrency/test/SingletonRelaxedCounterBench.cpp +101 -0
  295. package/external/folly/folly/concurrency/test/SingletonRelaxedCounterTest.cpp +185 -0
  296. package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedBench.cpp +76 -0
  297. package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedTest.cpp +93 -0
  298. package/external/folly/folly/concurrency/test/UnboundedQueueTest.cpp +1302 -0
  299. package/external/folly/folly/container/Access.h +57 -0
  300. package/external/folly/folly/container/Array.h +87 -0
  301. package/external/folly/folly/container/BUCK +353 -0
  302. package/external/folly/folly/container/BitIterator.h +203 -0
  303. package/external/folly/folly/container/Enumerate.h +162 -0
  304. package/external/folly/folly/container/EvictingCacheMap.h +730 -0
  305. package/external/folly/folly/container/F14.md +300 -0
  306. package/external/folly/folly/container/F14Map-fwd.h +113 -0
  307. package/external/folly/folly/container/F14Map.h +2108 -0
  308. package/external/folly/folly/container/F14Set-fwd.h +95 -0
  309. package/external/folly/folly/container/F14Set.h +1603 -0
  310. package/external/folly/folly/container/FBVector.h +1711 -0
  311. package/external/folly/folly/container/Foreach-inl.h +316 -0
  312. package/external/folly/folly/container/Foreach.h +209 -0
  313. package/external/folly/folly/container/HeterogeneousAccess-fwd.h +33 -0
  314. package/external/folly/folly/container/HeterogeneousAccess.h +171 -0
  315. package/external/folly/folly/container/IntrusiveHeap.h +268 -0
  316. package/external/folly/folly/container/IntrusiveList.h +131 -0
  317. package/external/folly/folly/container/Iterator.h +843 -0
  318. package/external/folly/folly/container/MapUtil.h +376 -0
  319. package/external/folly/folly/container/Merge.h +90 -0
  320. package/external/folly/folly/container/RegexMatchCache.cpp +521 -0
  321. package/external/folly/folly/container/RegexMatchCache.h +699 -0
  322. package/external/folly/folly/container/Reserve.h +109 -0
  323. package/external/folly/folly/container/SparseByteSet.h +123 -0
  324. package/external/folly/folly/container/View.h +81 -0
  325. package/external/folly/folly/container/WeightedEvictingCacheMap.h +651 -0
  326. package/external/folly/folly/container/detail/BUCK +115 -0
  327. package/external/folly/folly/container/detail/BitIteratorDetail.h +87 -0
  328. package/external/folly/folly/container/detail/F14Defaults.h +34 -0
  329. package/external/folly/folly/container/detail/F14IntrinsicsAvailability.h +67 -0
  330. package/external/folly/folly/container/detail/F14MapFallback.h +717 -0
  331. package/external/folly/folly/container/detail/F14Mask.h +235 -0
  332. package/external/folly/folly/container/detail/F14Policy.h +1523 -0
  333. package/external/folly/folly/container/detail/F14SetFallback.h +528 -0
  334. package/external/folly/folly/container/detail/F14Table.cpp +71 -0
  335. package/external/folly/folly/container/detail/F14Table.h +2680 -0
  336. package/external/folly/folly/container/detail/Util.h +303 -0
  337. package/external/folly/folly/container/detail/tape_detail.h +135 -0
  338. package/external/folly/folly/container/detail/test/BUCK +14 -0
  339. package/external/folly/folly/container/detail/test/F14DetailTest.cpp +47 -0
  340. package/external/folly/folly/container/heap_vector_types.h +1683 -0
  341. package/external/folly/folly/container/range_traits.h +81 -0
  342. package/external/folly/folly/container/small_vector.h +1476 -0
  343. package/external/folly/folly/container/sorted_vector_types.h +1652 -0
  344. package/external/folly/folly/container/span.h +408 -0
  345. package/external/folly/folly/container/tape.h +608 -0
  346. package/external/folly/folly/container/test/.clang-tidy +12 -0
  347. package/external/folly/folly/container/test/AccessTest.cpp +138 -0
  348. package/external/folly/folly/container/test/ArrayTest.cpp +84 -0
  349. package/external/folly/folly/container/test/BUCK +568 -0
  350. package/external/folly/folly/container/test/BitIteratorBench.cpp +112 -0
  351. package/external/folly/folly/container/test/BitIteratorTest.cpp +109 -0
  352. package/external/folly/folly/container/test/EnumerateTest.cpp +294 -0
  353. package/external/folly/folly/container/test/EvictingCacheMapBench.cpp +80 -0
  354. package/external/folly/folly/container/test/EvictingCacheMapTest.cpp +842 -0
  355. package/external/folly/folly/container/test/F14AsanSupportTest.cpp +143 -0
  356. package/external/folly/folly/container/test/F14FwdTest.cpp +37 -0
  357. package/external/folly/folly/container/test/F14InterprocessTest.cpp +404 -0
  358. package/external/folly/folly/container/test/F14MapTest.cpp +2543 -0
  359. package/external/folly/folly/container/test/F14PolicyTest.cpp +49 -0
  360. package/external/folly/folly/container/test/F14SetTest.cpp +1738 -0
  361. package/external/folly/folly/container/test/F14SmallOverheads.cpp +215 -0
  362. package/external/folly/folly/container/test/F14TestUtil.h +117 -0
  363. package/external/folly/folly/container/test/FBVectorBenchmark.cpp +380 -0
  364. package/external/folly/folly/container/test/FBVectorBenchmarks.cpp.h +100 -0
  365. package/external/folly/folly/container/test/FBVectorTest.cpp +326 -0
  366. package/external/folly/folly/container/test/FBVectorTests.cpp.h +304 -0
  367. package/external/folly/folly/container/test/ForeachBenchmark.cpp +388 -0
  368. package/external/folly/folly/container/test/ForeachTest.cpp +338 -0
  369. package/external/folly/folly/container/test/HashMapsBench.cpp +458 -0
  370. package/external/folly/folly/container/test/HeterogeneousAccessTest.cpp +242 -0
  371. package/external/folly/folly/container/test/IntrusiveHeapTest.cpp +262 -0
  372. package/external/folly/folly/container/test/IteratorTest.cpp +989 -0
  373. package/external/folly/folly/container/test/MapUtilTest.cpp +365 -0
  374. package/external/folly/folly/container/test/MergeTest.cpp +66 -0
  375. package/external/folly/folly/container/test/RegexMatchCacheTest.cpp +634 -0
  376. package/external/folly/folly/container/test/ReserveTest.cpp +173 -0
  377. package/external/folly/folly/container/test/SparseByteSetBenchmark.cpp +153 -0
  378. package/external/folly/folly/container/test/SparseByteSetTest.cpp +117 -0
  379. package/external/folly/folly/container/test/TrackingTypes.h +584 -0
  380. package/external/folly/folly/container/test/UtilTest.cpp +609 -0
  381. package/external/folly/folly/container/test/WeightedEvictingCacheMapTest.cpp +800 -0
  382. package/external/folly/folly/container/test/heap_vector_types_test.cpp +1774 -0
  383. package/external/folly/folly/container/test/range_traits_test.cpp +59 -0
  384. package/external/folly/folly/container/test/small_vector_test.cpp +1571 -0
  385. package/external/folly/folly/container/test/sorted_vector_test.cpp +1589 -0
  386. package/external/folly/folly/container/test/span_test.cpp +520 -0
  387. package/external/folly/folly/container/test/tape_bench.cpp +200 -0
  388. package/external/folly/folly/container/test/tape_test.cpp +590 -0
  389. package/external/folly/folly/defs.bzl +238 -0
  390. package/external/folly/folly/detail/AsyncTrace.cpp +36 -0
  391. package/external/folly/folly/detail/AsyncTrace.h +44 -0
  392. package/external/folly/folly/detail/AtomicHashUtils.h +42 -0
  393. package/external/folly/folly/detail/AtomicUnorderedMapUtils.h +80 -0
  394. package/external/folly/folly/detail/BUCK +406 -0
  395. package/external/folly/folly/detail/DiscriminatedPtrDetail.h +172 -0
  396. package/external/folly/folly/detail/FileUtilDetail.cpp +63 -0
  397. package/external/folly/folly/detail/FileUtilDetail.h +85 -0
  398. package/external/folly/folly/detail/FileUtilVectorDetail.h +81 -0
  399. package/external/folly/folly/detail/FingerprintPolynomial.h +132 -0
  400. package/external/folly/folly/detail/Futex-inl.h +123 -0
  401. package/external/folly/folly/detail/Futex.cpp +273 -0
  402. package/external/folly/folly/detail/Futex.h +109 -0
  403. package/external/folly/folly/detail/GroupVarintDetail.h +101 -0
  404. package/external/folly/folly/detail/IPAddress.cpp +37 -0
  405. package/external/folly/folly/detail/IPAddress.h +57 -0
  406. package/external/folly/folly/detail/IPAddressSource.h +278 -0
  407. package/external/folly/folly/detail/Iterators.h +156 -0
  408. package/external/folly/folly/detail/MPMCPipelineDetail.h +122 -0
  409. package/external/folly/folly/detail/MemoryIdler.cpp +233 -0
  410. package/external/folly/folly/detail/MemoryIdler.h +216 -0
  411. package/external/folly/folly/detail/PerfScoped.cpp +112 -0
  412. package/external/folly/folly/detail/PerfScoped.h +70 -0
  413. package/external/folly/folly/detail/PolyDetail.h +921 -0
  414. package/external/folly/folly/detail/RangeCommon.cpp +55 -0
  415. package/external/folly/folly/detail/RangeCommon.h +93 -0
  416. package/external/folly/folly/detail/RangeSse42.cpp +198 -0
  417. package/external/folly/folly/detail/RangeSse42.h +30 -0
  418. package/external/folly/folly/detail/SimpleSimdStringUtils.cpp +31 -0
  419. package/external/folly/folly/detail/SimpleSimdStringUtils.h +27 -0
  420. package/external/folly/folly/detail/SimpleSimdStringUtilsImpl.h +63 -0
  421. package/external/folly/folly/detail/Singleton.h +34 -0
  422. package/external/folly/folly/detail/SlowFingerprint.h +90 -0
  423. package/external/folly/folly/detail/SocketFastOpen.cpp +175 -0
  424. package/external/folly/folly/detail/SocketFastOpen.h +89 -0
  425. package/external/folly/folly/detail/SplitStringSimd.cpp +84 -0
  426. package/external/folly/folly/detail/SplitStringSimd.h +151 -0
  427. package/external/folly/folly/detail/SplitStringSimdImpl.h +149 -0
  428. package/external/folly/folly/detail/Sse.cpp +35 -0
  429. package/external/folly/folly/detail/Sse.h +45 -0
  430. package/external/folly/folly/detail/StaticSingletonManager.cpp +119 -0
  431. package/external/folly/folly/detail/StaticSingletonManager.h +298 -0
  432. package/external/folly/folly/detail/ThreadLocalDetail.cpp +492 -0
  433. package/external/folly/folly/detail/ThreadLocalDetail.h +800 -0
  434. package/external/folly/folly/detail/TrapOnAvx512.cpp +41 -0
  435. package/external/folly/folly/detail/TrapOnAvx512.h +21 -0
  436. package/external/folly/folly/detail/TurnSequencer.h +295 -0
  437. package/external/folly/folly/detail/TypeList.h +551 -0
  438. package/external/folly/folly/detail/UniqueInstance.cpp +136 -0
  439. package/external/folly/folly/detail/UniqueInstance.h +68 -0
  440. package/external/folly/folly/detail/base64_detail/BUCK +102 -0
  441. package/external/folly/folly/detail/base64_detail/Base64Api.cpp +40 -0
  442. package/external/folly/folly/detail/base64_detail/Base64Api.h +101 -0
  443. package/external/folly/folly/detail/base64_detail/Base64Common.h +80 -0
  444. package/external/folly/folly/detail/base64_detail/Base64Constants.h +79 -0
  445. package/external/folly/folly/detail/base64_detail/Base64HiddenConstants.h +129 -0
  446. package/external/folly/folly/detail/base64_detail/Base64SWAR.cpp +161 -0
  447. package/external/folly/folly/detail/base64_detail/Base64SWAR.h +32 -0
  448. package/external/folly/folly/detail/base64_detail/Base64Scalar.h +262 -0
  449. package/external/folly/folly/detail/base64_detail/Base64Simd.h +102 -0
  450. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.cpp +42 -0
  451. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.h +33 -0
  452. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2_Platform.h +167 -0
  453. package/external/folly/folly/detail/base64_detail/README.md +392 -0
  454. package/external/folly/folly/detail/base64_detail/tests/BUCK +36 -0
  455. package/external/folly/folly/detail/base64_detail/tests/Base64AgainstScalarTest.cpp +141 -0
  456. package/external/folly/folly/detail/base64_detail/tests/Base64PlatformTest.cpp +273 -0
  457. package/external/folly/folly/detail/base64_detail/tests/Base64SpecialCasesTest.cpp +555 -0
  458. package/external/folly/folly/detail/test/AsyncTraceTest.cpp +43 -0
  459. package/external/folly/folly/detail/test/BUCK +118 -0
  460. package/external/folly/folly/detail/test/FileUtilDetailTest.cpp +56 -0
  461. package/external/folly/folly/detail/test/PerfScopedTest.cpp +107 -0
  462. package/external/folly/folly/detail/test/SimpleSimdStringUtilsTest.cpp +92 -0
  463. package/external/folly/folly/detail/test/SplitStringSimdTest.cpp +242 -0
  464. package/external/folly/folly/detail/test/StaticSingletonManagerTest.cpp +121 -0
  465. package/external/folly/folly/detail/test/ThreadLocalBenchmark.cpp +116 -0
  466. package/external/folly/folly/detail/test/ThreadLocalDetailTest.cpp +194 -0
  467. package/external/folly/folly/detail/test/TrapOnAvx512TestNegative.cpp +29 -0
  468. package/external/folly/folly/detail/test/UniqueInstanceTest.cpp +60 -0
  469. package/external/folly/folly/detail/thread_local_globals.cpp +69 -0
  470. package/external/folly/folly/detail/thread_local_globals.h +36 -0
  471. package/external/folly/folly/docs/AtomicHashMap.md +134 -0
  472. package/external/folly/folly/docs/Benchmark.md +310 -0
  473. package/external/folly/folly/docs/Conv.md +291 -0
  474. package/external/folly/folly/docs/Dynamic.md +220 -0
  475. package/external/folly/folly/docs/DynamicConverter.md +71 -0
  476. package/external/folly/folly/docs/Executors.md +63 -0
  477. package/external/folly/folly/docs/FBString.md +46 -0
  478. package/external/folly/folly/docs/FBVector.md +200 -0
  479. package/external/folly/folly/docs/Fbvector--graphical_solutions.png +0 -0
  480. package/external/folly/folly/docs/Format.md +177 -0
  481. package/external/folly/folly/docs/Function.md +92 -0
  482. package/external/folly/folly/docs/Futures.md +263 -0
  483. package/external/folly/folly/docs/GroupVarint.md +46 -0
  484. package/external/folly/folly/docs/Histogram.md +104 -0
  485. package/external/folly/folly/docs/MapUtils.md +80 -0
  486. package/external/folly/folly/docs/Overview.md +263 -0
  487. package/external/folly/folly/docs/PackedSyncPtr.md +77 -0
  488. package/external/folly/folly/docs/Poly.md +500 -0
  489. package/external/folly/folly/docs/ProducerConsumerQueue.md +82 -0
  490. package/external/folly/folly/docs/Rcu.md +218 -0
  491. package/external/folly/folly/docs/SmallLocks.md +24 -0
  492. package/external/folly/folly/docs/Synchronized.md +793 -0
  493. package/external/folly/folly/docs/ThreadCachedInt.md +98 -0
  494. package/external/folly/folly/docs/ThreadLocal.md +105 -0
  495. package/external/folly/folly/docs/Traits.md +161 -0
  496. package/external/folly/folly/docs/small_vector.md +64 -0
  497. package/external/folly/folly/docs/style.css +23 -0
  498. package/external/folly/folly/dynamic-inl.h +17 -0
  499. package/external/folly/folly/dynamic.h +17 -0
  500. package/external/folly/folly/folly_extended_library.bzl +28 -0
  501. package/external/folly/folly/functional/ApplyTuple.h +204 -0
  502. package/external/folly/folly/functional/BUCK +57 -0
  503. package/external/folly/folly/functional/Invoke.h +880 -0
  504. package/external/folly/folly/functional/Partial.h +130 -0
  505. package/external/folly/folly/functional/protocol.h +203 -0
  506. package/external/folly/folly/functional/test/ApplyTupleTest.cpp +549 -0
  507. package/external/folly/folly/functional/test/BUCK +57 -0
  508. package/external/folly/folly/functional/test/InvokeTest.cpp +483 -0
  509. package/external/folly/folly/functional/test/PartialTest.cpp +141 -0
  510. package/external/folly/folly/functional/test/protocol_test.cpp +177 -0
  511. package/external/folly/folly/functional/test/traits_test.cpp +551 -0
  512. package/external/folly/folly/functional/traits.h +675 -0
  513. package/external/folly/folly/hash/BUCK +86 -0
  514. package/external/folly/folly/hash/Checksum.cpp +275 -0
  515. package/external/folly/folly/hash/Checksum.h +94 -0
  516. package/external/folly/folly/hash/FarmHash.h +46 -0
  517. package/external/folly/folly/hash/Hash.h +1045 -0
  518. package/external/folly/folly/hash/MurmurHash.h +86 -0
  519. package/external/folly/folly/hash/SpookyHashV1.cpp +391 -0
  520. package/external/folly/folly/hash/SpookyHashV1.h +307 -0
  521. package/external/folly/folly/hash/SpookyHashV2.cpp +392 -0
  522. package/external/folly/folly/hash/SpookyHashV2.h +339 -0
  523. package/external/folly/folly/hash/detail/BUCK +26 -0
  524. package/external/folly/folly/hash/detail/ChecksumDetail.cpp +296 -0
  525. package/external/folly/folly/hash/detail/ChecksumDetail.h +137 -0
  526. package/external/folly/folly/hash/detail/Crc32CombineDetail.cpp +191 -0
  527. package/external/folly/folly/hash/detail/Crc32cDetail.cpp +303 -0
  528. package/external/folly/folly/hash/test/BUCK +132 -0
  529. package/external/folly/folly/hash/test/ChecksumBenchmark.cpp +91 -0
  530. package/external/folly/folly/hash/test/ChecksumTest.cpp +587 -0
  531. package/external/folly/folly/hash/test/FarmHashTest.cpp +41 -0
  532. package/external/folly/folly/hash/test/HashBenchmark.cpp +238 -0
  533. package/external/folly/folly/hash/test/HashTest.cpp +997 -0
  534. package/external/folly/folly/hash/test/MurmurHashTest.cpp +76 -0
  535. package/external/folly/folly/hash/test/SpookyHashV1Test.cpp +559 -0
  536. package/external/folly/folly/hash/test/SpookyHashV2Test.cpp +549 -0
  537. package/external/folly/folly/hash/test/traits_test.cpp +69 -0
  538. package/external/folly/folly/hash/traits.h +115 -0
  539. package/external/folly/folly/json/BUCK +155 -0
  540. package/external/folly/folly/json/DynamicConverter.h +464 -0
  541. package/external/folly/folly/json/DynamicParser-inl.h +316 -0
  542. package/external/folly/folly/json/DynamicParser.cpp +198 -0
  543. package/external/folly/folly/json/DynamicParser.h +394 -0
  544. package/external/folly/folly/json/JSONSchema.cpp +1030 -0
  545. package/external/folly/folly/json/JSONSchema.h +73 -0
  546. package/external/folly/folly/json/JsonMockUtil.h +73 -0
  547. package/external/folly/folly/json/JsonTestUtil.cpp +167 -0
  548. package/external/folly/folly/json/JsonTestUtil.h +88 -0
  549. package/external/folly/folly/json/bser/BUCK +24 -0
  550. package/external/folly/folly/json/bser/Bser.h +107 -0
  551. package/external/folly/folly/json/bser/Dump.cpp +253 -0
  552. package/external/folly/folly/json/bser/Load.cpp +246 -0
  553. package/external/folly/folly/json/bser/test/BUCK +14 -0
  554. package/external/folly/folly/json/bser/test/BserTest.cpp +149 -0
  555. package/external/folly/folly/json/dynamic.cpp +552 -0
  556. package/external/folly/folly/json/dynamic.h +1346 -0
  557. package/external/folly/folly/json/json.h +238 -0
  558. package/external/folly/folly/json/json_patch.cpp +325 -0
  559. package/external/folly/folly/json/json_patch.h +126 -0
  560. package/external/folly/folly/json/json_pointer.cpp +114 -0
  561. package/external/folly/folly/json/json_pointer.h +87 -0
  562. package/external/folly/folly/json/test/BUCK +147 -0
  563. package/external/folly/folly/json/test/DynamicBenchmark.cpp +146 -0
  564. package/external/folly/folly/json/test/DynamicConverterTest.cpp +518 -0
  565. package/external/folly/folly/json/test/DynamicOtherTest.cpp +344 -0
  566. package/external/folly/folly/json/test/DynamicParserTest.cpp +443 -0
  567. package/external/folly/folly/json/test/DynamicTest.cpp +1647 -0
  568. package/external/folly/folly/json/test/JSONSchemaTest.cpp +450 -0
  569. package/external/folly/folly/json/test/JsonBenchmark.cpp +264 -0
  570. package/external/folly/folly/json/test/JsonOtherTest.cpp +51 -0
  571. package/external/folly/folly/json/test/JsonTest.cpp +1153 -0
  572. package/external/folly/folly/json/test/JsonTestUtilTest.cpp +97 -0
  573. package/external/folly/folly/json/test/json_patch_test.cpp +361 -0
  574. package/external/folly/folly/json/test/json_pointer_test.cpp +58 -0
  575. package/external/folly/folly/json/tool/BUCK +13 -0
  576. package/external/folly/folly/json/tool/JSONSchemaTester.cpp +58 -0
  577. package/external/folly/folly/json.h +17 -0
  578. package/external/folly/folly/json_patch.h +17 -0
  579. package/external/folly/folly/json_pointer.h +17 -0
  580. package/external/folly/folly/lang/Access.h +29 -0
  581. package/external/folly/folly/lang/Align.h +240 -0
  582. package/external/folly/folly/lang/Aligned.h +92 -0
  583. package/external/folly/folly/lang/Assume.h +82 -0
  584. package/external/folly/folly/lang/BUCK +287 -0
  585. package/external/folly/folly/lang/Badge.h +108 -0
  586. package/external/folly/folly/lang/Bits.h +570 -0
  587. package/external/folly/folly/lang/BitsClass.h +312 -0
  588. package/external/folly/folly/lang/Builtin.h +74 -0
  589. package/external/folly/folly/lang/CArray.h +34 -0
  590. package/external/folly/folly/lang/CString.cpp +86 -0
  591. package/external/folly/folly/lang/CString.h +55 -0
  592. package/external/folly/folly/lang/Cast.h +51 -0
  593. package/external/folly/folly/lang/CheckedMath.h +253 -0
  594. package/external/folly/folly/lang/CustomizationPoint.h +58 -0
  595. package/external/folly/folly/lang/Exception.cpp +822 -0
  596. package/external/folly/folly/lang/Exception.h +716 -0
  597. package/external/folly/folly/lang/Extern.h +55 -0
  598. package/external/folly/folly/lang/Hint-inl.h +144 -0
  599. package/external/folly/folly/lang/Hint.h +238 -0
  600. package/external/folly/folly/lang/Keep.h +98 -0
  601. package/external/folly/folly/lang/New.h +124 -0
  602. package/external/folly/folly/lang/Ordering.h +140 -0
  603. package/external/folly/folly/lang/Pretty.h +159 -0
  604. package/external/folly/folly/lang/PropagateConst.h +413 -0
  605. package/external/folly/folly/lang/RValueReferenceWrapper.h +152 -0
  606. package/external/folly/folly/lang/SafeAssert.cpp +589 -0
  607. package/external/folly/folly/lang/StaticConst.h +33 -0
  608. package/external/folly/folly/lang/Thunk.h +100 -0
  609. package/external/folly/folly/lang/TypeInfo.h +58 -0
  610. package/external/folly/folly/lang/UncaughtExceptions.cpp +17 -0
  611. package/external/folly/folly/lang/UncaughtExceptions.h +19 -0
  612. package/external/folly/folly/lang/test/AlignTest.cpp +87 -0
  613. package/external/folly/folly/lang/test/AlignedTest.cpp +130 -0
  614. package/external/folly/folly/lang/test/BUCK +258 -0
  615. package/external/folly/folly/lang/test/BadgeTest.cpp +89 -0
  616. package/external/folly/folly/lang/test/BitsBenchmark.cpp +164 -0
  617. package/external/folly/folly/lang/test/BitsClassBenchmark.cpp +122 -0
  618. package/external/folly/folly/lang/test/BitsClassTest.cpp +379 -0
  619. package/external/folly/folly/lang/test/BitsTest.cpp +577 -0
  620. package/external/folly/folly/lang/test/CStringTest.cpp +60 -0
  621. package/external/folly/folly/lang/test/CastTest.cpp +47 -0
  622. package/external/folly/folly/lang/test/CheckedMathTest.cpp +394 -0
  623. package/external/folly/folly/lang/test/ExceptionBench.cpp +427 -0
  624. package/external/folly/folly/lang/test/ExceptionTest.cpp +413 -0
  625. package/external/folly/folly/lang/test/ExternTest.cpp +39 -0
  626. package/external/folly/folly/lang/test/HintTest.cpp +100 -0
  627. package/external/folly/folly/lang/test/NewTest.cpp +38 -0
  628. package/external/folly/folly/lang/test/OrderingTest.cpp +105 -0
  629. package/external/folly/folly/lang/test/PrettyTest.cpp +44 -0
  630. package/external/folly/folly/lang/test/PropagateConstTest.cpp +356 -0
  631. package/external/folly/folly/lang/test/RValueReferenceWrapperTest.cpp +85 -0
  632. package/external/folly/folly/lang/test/SafeAssertTest.cpp +75 -0
  633. package/external/folly/folly/lang/test/ThunkTest.cpp +105 -0
  634. package/external/folly/folly/lang/test/ToAsciiBench.cpp +466 -0
  635. package/external/folly/folly/lang/test/ToAsciiTest.cpp +266 -0
  636. package/external/folly/folly/lang/test/TypeInfoTest.cpp +56 -0
  637. package/external/folly/folly/memcpy.S +292 -0
  638. package/external/folly/folly/memcpy_select_aarch64.cpp +145 -0
  639. package/external/folly/folly/memory/Arena-inl.h +83 -0
  640. package/external/folly/folly/memory/Arena.h +325 -0
  641. package/external/folly/folly/memory/BUCK +191 -0
  642. package/external/folly/folly/memory/JemallocHugePageAllocator.cpp +449 -0
  643. package/external/folly/folly/memory/JemallocHugePageAllocator.h +105 -0
  644. package/external/folly/folly/memory/JemallocHugePageAllocatorTest.cpp +341 -0
  645. package/external/folly/folly/memory/JemallocNodumpAllocator.cpp +176 -0
  646. package/external/folly/folly/memory/JemallocNodumpAllocator.h +119 -0
  647. package/external/folly/folly/memory/JemallocNodumpAllocatorTest.cpp +61 -0
  648. package/external/folly/folly/memory/MallctlHelper.cpp +37 -0
  649. package/external/folly/folly/memory/MallctlHelper.h +167 -0
  650. package/external/folly/folly/memory/Malloc.h +551 -0
  651. package/external/folly/folly/memory/MemoryResource.h +57 -0
  652. package/external/folly/folly/memory/ReentrantAllocator.cpp +162 -0
  653. package/external/folly/folly/memory/ReentrantAllocator.h +261 -0
  654. package/external/folly/folly/memory/SanitizeAddress.cpp +75 -0
  655. package/external/folly/folly/memory/SanitizeAddress.h +117 -0
  656. package/external/folly/folly/memory/SanitizeLeak.cpp +119 -0
  657. package/external/folly/folly/memory/SanitizeLeak.h +108 -0
  658. package/external/folly/folly/memory/ThreadCachedArena.cpp +53 -0
  659. package/external/folly/folly/memory/ThreadCachedArena.h +90 -0
  660. package/external/folly/folly/memory/UninitializedMemoryHacks.h +426 -0
  661. package/external/folly/folly/memory/detail/BUCK +10 -0
  662. package/external/folly/folly/memory/detail/MallocImpl.cpp +52 -0
  663. package/external/folly/folly/memory/detail/MallocImpl.h +97 -0
  664. package/external/folly/folly/memory/not_null-inl.h +522 -0
  665. package/external/folly/folly/memory/not_null.h +449 -0
  666. package/external/folly/folly/memory/test/ArenaTest.cpp +354 -0
  667. package/external/folly/folly/memory/test/BUCK +146 -0
  668. package/external/folly/folly/memory/test/MallctlHelperTest.cpp +169 -0
  669. package/external/folly/folly/memory/test/MallocBenchmark.cpp +91 -0
  670. package/external/folly/folly/memory/test/MallocTest.cpp +78 -0
  671. package/external/folly/folly/memory/test/MemoryResourceTest.cpp +31 -0
  672. package/external/folly/folly/memory/test/ReentrantAllocatorTest.cpp +144 -0
  673. package/external/folly/folly/memory/test/SanitizeAddressTest.cpp +67 -0
  674. package/external/folly/folly/memory/test/SanitizeLeakTest.cpp +139 -0
  675. package/external/folly/folly/memory/test/ThreadCachedArenaTest.cpp +276 -0
  676. package/external/folly/folly/memory/test/UninitializedMemoryHacksODR.cpp +21 -0
  677. package/external/folly/folly/memory/test/UninitializedMemoryHacksTest.cpp +327 -0
  678. package/external/folly/folly/memory/test/not_null_test.cpp +608 -0
  679. package/external/folly/folly/memset.S +245 -0
  680. package/external/folly/folly/memset_select_aarch64.cpp +72 -0
  681. package/external/folly/folly/portability/Asm.h +50 -0
  682. package/external/folly/folly/portability/Atomic.h +31 -0
  683. package/external/folly/folly/portability/BUCK +456 -0
  684. package/external/folly/folly/portability/Builtins.cpp +31 -0
  685. package/external/folly/folly/portability/Builtins.h +161 -0
  686. package/external/folly/folly/portability/Config.h +43 -0
  687. package/external/folly/folly/portability/Constexpr.h +145 -0
  688. package/external/folly/folly/portability/Dirent.cpp +140 -0
  689. package/external/folly/folly/portability/Dirent.h +41 -0
  690. package/external/folly/folly/portability/Event.h +44 -0
  691. package/external/folly/folly/portability/Fcntl.cpp +120 -0
  692. package/external/folly/folly/portability/Fcntl.h +67 -0
  693. package/external/folly/folly/portability/Filesystem.cpp +67 -0
  694. package/external/folly/folly/portability/Filesystem.h +114 -0
  695. package/external/folly/folly/portability/FmtCompile.h +40 -0
  696. package/external/folly/folly/portability/GFlags.h +139 -0
  697. package/external/folly/folly/portability/GMock.h +35 -0
  698. package/external/folly/folly/portability/GTest.h +35 -0
  699. package/external/folly/folly/portability/IOVec.h +34 -0
  700. package/external/folly/folly/portability/Libgen.cpp +59 -0
  701. package/external/folly/folly/portability/Libgen.h +29 -0
  702. package/external/folly/folly/portability/Libunwind.h +21 -0
  703. package/external/folly/folly/portability/Malloc.cpp +31 -0
  704. package/external/folly/folly/portability/Malloc.h +53 -0
  705. package/external/folly/folly/portability/Math.h +90 -0
  706. package/external/folly/folly/portability/Memory.h +26 -0
  707. package/external/folly/folly/portability/OpenSSL.cpp +17 -0
  708. package/external/folly/folly/portability/OpenSSL.h +102 -0
  709. package/external/folly/folly/portability/PThread.cpp +697 -0
  710. package/external/folly/folly/portability/PThread.h +148 -0
  711. package/external/folly/folly/portability/README.md +21 -0
  712. package/external/folly/folly/portability/Sched.cpp +41 -0
  713. package/external/folly/folly/portability/Sched.h +45 -0
  714. package/external/folly/folly/portability/Sockets.cpp +245 -0
  715. package/external/folly/folly/portability/Sockets.h +155 -0
  716. package/external/folly/folly/portability/SourceLocation.h +49 -0
  717. package/external/folly/folly/portability/Stdio.cpp +77 -0
  718. package/external/folly/folly/portability/Stdio.h +32 -0
  719. package/external/folly/folly/portability/Stdlib.cpp +172 -0
  720. package/external/folly/folly/portability/Stdlib.h +64 -0
  721. package/external/folly/folly/portability/String.cpp +53 -0
  722. package/external/folly/folly/portability/String.h +39 -0
  723. package/external/folly/folly/portability/SysFile.cpp +46 -0
  724. package/external/folly/folly/portability/SysFile.h +27 -0
  725. package/external/folly/folly/portability/SysMembarrier.cpp +104 -0
  726. package/external/folly/folly/portability/SysMembarrier.h +26 -0
  727. package/external/folly/folly/portability/SysMman.cpp +242 -0
  728. package/external/folly/folly/portability/SysMman.h +68 -0
  729. package/external/folly/folly/portability/SysResource.cpp +108 -0
  730. package/external/folly/folly/portability/SysResource.h +71 -0
  731. package/external/folly/folly/portability/SysStat.cpp +66 -0
  732. package/external/folly/folly/portability/SysStat.h +52 -0
  733. package/external/folly/folly/portability/SysSyscall.h +73 -0
  734. package/external/folly/folly/portability/SysTime.cpp +62 -0
  735. package/external/folly/folly/portability/SysTime.h +50 -0
  736. package/external/folly/folly/portability/SysTypes.h +44 -0
  737. package/external/folly/folly/portability/SysUio.cpp +179 -0
  738. package/external/folly/folly/portability/SysUio.h +51 -0
  739. package/external/folly/folly/portability/Syslog.h +39 -0
  740. package/external/folly/folly/portability/Time.cpp +357 -0
  741. package/external/folly/folly/portability/Time.h +74 -0
  742. package/external/folly/folly/portability/Unistd.h +111 -0
  743. package/external/folly/folly/portability/Windows.h +108 -0
  744. package/external/folly/folly/portability/openat2.c +30 -0
  745. package/external/folly/folly/portability/openat2.h +39 -0
  746. package/external/folly/folly/portability/test/BUCK +59 -0
  747. package/external/folly/folly/portability/test/ConstexprTest.cpp +102 -0
  748. package/external/folly/folly/portability/test/FilesystemTest.cpp +35 -0
  749. package/external/folly/folly/portability/test/LibgenTest.cpp +35 -0
  750. package/external/folly/folly/portability/test/OpenSSLPortabilityTest.cpp +108 -0
  751. package/external/folly/folly/portability/test/PThreadTest.cpp +80 -0
  752. package/external/folly/folly/portability/test/TimeTest.cpp +90 -0
  753. package/external/folly/folly/small_vector.h +17 -0
  754. package/external/folly/folly/somerge_defs.bzl +399 -0
  755. package/external/folly/folly/sorted_vector_types.h +17 -0
  756. package/external/folly/folly/stop_watch.h +317 -0
  757. package/external/folly/folly/synchronization/AsymmetricThreadFence.cpp +91 -0
  758. package/external/folly/folly/synchronization/AsymmetricThreadFence.h +60 -0
  759. package/external/folly/folly/synchronization/AtomicNotification-inl.h +146 -0
  760. package/external/folly/folly/synchronization/AtomicNotification.cpp +34 -0
  761. package/external/folly/folly/synchronization/AtomicNotification.h +117 -0
  762. package/external/folly/folly/synchronization/AtomicRef.h +181 -0
  763. package/external/folly/folly/synchronization/AtomicStruct.h +150 -0
  764. package/external/folly/folly/synchronization/AtomicUtil-inl.h +482 -0
  765. package/external/folly/folly/synchronization/AtomicUtil.h +179 -0
  766. package/external/folly/folly/synchronization/BUCK +418 -0
  767. package/external/folly/folly/synchronization/Baton.h +419 -0
  768. package/external/folly/folly/synchronization/CallOnce.h +263 -0
  769. package/external/folly/folly/synchronization/DelayedInit.h +179 -0
  770. package/external/folly/folly/synchronization/DistributedMutex-inl.h +1744 -0
  771. package/external/folly/folly/synchronization/DistributedMutex.cpp +27 -0
  772. package/external/folly/folly/synchronization/DistributedMutex.h +342 -0
  773. package/external/folly/folly/synchronization/EventCount.h +200 -0
  774. package/external/folly/folly/synchronization/FlatCombining.h +629 -0
  775. package/external/folly/folly/synchronization/Hazptr-fwd.h +217 -0
  776. package/external/folly/folly/synchronization/Hazptr.cpp +36 -0
  777. package/external/folly/folly/synchronization/Hazptr.h +209 -0
  778. package/external/folly/folly/synchronization/HazptrDomain.cpp +68 -0
  779. package/external/folly/folly/synchronization/HazptrDomain.h +832 -0
  780. package/external/folly/folly/synchronization/HazptrHolder.h +431 -0
  781. package/external/folly/folly/synchronization/HazptrObj.h +533 -0
  782. package/external/folly/folly/synchronization/HazptrObjLinked.h +315 -0
  783. package/external/folly/folly/synchronization/HazptrRec.h +68 -0
  784. package/external/folly/folly/synchronization/HazptrThrLocal.h +180 -0
  785. package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.cpp +46 -0
  786. package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.h +25 -0
  787. package/external/folly/folly/synchronization/Latch.h +160 -0
  788. package/external/folly/folly/synchronization/LifoSem.h +767 -0
  789. package/external/folly/folly/synchronization/Lock.h +887 -0
  790. package/external/folly/folly/synchronization/MicroSpinLock.h +154 -0
  791. package/external/folly/folly/synchronization/NativeSemaphore.h +187 -0
  792. package/external/folly/folly/synchronization/ParkingLot.cpp +37 -0
  793. package/external/folly/folly/synchronization/ParkingLot.h +330 -0
  794. package/external/folly/folly/synchronization/PicoSpinLock.h +167 -0
  795. package/external/folly/folly/synchronization/RWSpinLock.h +549 -0
  796. package/external/folly/folly/synchronization/Rcu.cpp +26 -0
  797. package/external/folly/folly/synchronization/Rcu.h +553 -0
  798. package/external/folly/folly/synchronization/RelaxedAtomic.h +336 -0
  799. package/external/folly/folly/synchronization/SanitizeThread.cpp +141 -0
  800. package/external/folly/folly/synchronization/SanitizeThread.h +166 -0
  801. package/external/folly/folly/synchronization/SaturatingSemaphore.h +324 -0
  802. package/external/folly/folly/synchronization/SmallLocks.h +36 -0
  803. package/external/folly/folly/synchronization/ThrottledLifoSem.h +362 -0
  804. package/external/folly/folly/synchronization/WaitOptions.cpp +25 -0
  805. package/external/folly/folly/synchronization/WaitOptions.h +75 -0
  806. package/external/folly/folly/synchronization/detail/AtomicUtils.h +59 -0
  807. package/external/folly/folly/synchronization/detail/BUCK +104 -0
  808. package/external/folly/folly/synchronization/detail/Hardware.cpp +192 -0
  809. package/external/folly/folly/synchronization/detail/Hardware.h +75 -0
  810. package/external/folly/folly/synchronization/detail/HazptrUtils.h +339 -0
  811. package/external/folly/folly/synchronization/detail/InlineFunctionRef.h +229 -0
  812. package/external/folly/folly/synchronization/detail/Sleeper.cpp +27 -0
  813. package/external/folly/folly/synchronization/detail/Sleeper.h +62 -0
  814. package/external/folly/folly/synchronization/detail/Spin.h +96 -0
  815. package/external/folly/folly/synchronization/detail/ThreadCachedLists.h +174 -0
  816. package/external/folly/folly/synchronization/detail/ThreadCachedReaders.h +189 -0
  817. package/external/folly/folly/synchronization/detail/ThreadCachedTag.h +26 -0
  818. package/external/folly/folly/synchronization/detail/test/BUCK +28 -0
  819. package/external/folly/folly/synchronization/detail/test/HardwareTest.cpp +74 -0
  820. package/external/folly/folly/synchronization/detail/test/InlineFunctionRefTest.cpp +286 -0
  821. package/external/folly/folly/synchronization/example/BUCK +27 -0
  822. package/external/folly/folly/synchronization/example/HazptrLockFreeLIFO.h +88 -0
  823. package/external/folly/folly/synchronization/example/HazptrSWMRSet.h +133 -0
  824. package/external/folly/folly/synchronization/example/HazptrWideCAS.h +62 -0
  825. package/external/folly/folly/synchronization/test/AtomicNotificationTest.cpp +236 -0
  826. package/external/folly/folly/synchronization/test/AtomicRefTest.cpp +170 -0
  827. package/external/folly/folly/synchronization/test/AtomicStructTest.cpp +65 -0
  828. package/external/folly/folly/synchronization/test/AtomicUtilBench.cpp +457 -0
  829. package/external/folly/folly/synchronization/test/AtomicUtilTest.cpp +650 -0
  830. package/external/folly/folly/synchronization/test/BUCK +495 -0
  831. package/external/folly/folly/synchronization/test/Barrier.h +52 -0
  832. package/external/folly/folly/synchronization/test/BarrierTest.cpp +56 -0
  833. package/external/folly/folly/synchronization/test/BatonBenchmark.cpp +77 -0
  834. package/external/folly/folly/synchronization/test/BatonTest.cpp +164 -0
  835. package/external/folly/folly/synchronization/test/BatonTestHelpers.h +118 -0
  836. package/external/folly/folly/synchronization/test/CallOnceBenchmark.cpp +72 -0
  837. package/external/folly/folly/synchronization/test/CallOnceTest.cpp +153 -0
  838. package/external/folly/folly/synchronization/test/DelayedInitTest.cpp +281 -0
  839. package/external/folly/folly/synchronization/test/DistributedMutexTest.cpp +2074 -0
  840. package/external/folly/folly/synchronization/test/EventCountTest.cpp +124 -0
  841. package/external/folly/folly/synchronization/test/FlatCombiningBenchmark.cpp +1789 -0
  842. package/external/folly/folly/synchronization/test/FlatCombiningExamples.h +222 -0
  843. package/external/folly/folly/synchronization/test/FlatCombiningTest.cpp +121 -0
  844. package/external/folly/folly/synchronization/test/FlatCombiningTestHelpers.h +227 -0
  845. package/external/folly/folly/synchronization/test/HazptrTest.cpp +1689 -0
  846. package/external/folly/folly/synchronization/test/LatchTest.cpp +224 -0
  847. package/external/folly/folly/synchronization/test/LifoSemBench.cpp +185 -0
  848. package/external/folly/folly/synchronization/test/LifoSemTests.cpp +353 -0
  849. package/external/folly/folly/synchronization/test/LockTest.cpp +1239 -0
  850. package/external/folly/folly/synchronization/test/NativeSemaphoreTest.cpp +37 -0
  851. package/external/folly/folly/synchronization/test/ParkingLotBenchmark.cpp +239 -0
  852. package/external/folly/folly/synchronization/test/ParkingLotTest.cpp +170 -0
  853. package/external/folly/folly/synchronization/test/RWSpinLockTest.cpp +235 -0
  854. package/external/folly/folly/synchronization/test/RcuBench.cpp +66 -0
  855. package/external/folly/folly/synchronization/test/RcuTest.cpp +330 -0
  856. package/external/folly/folly/synchronization/test/RelaxedAtomicTest.cpp +389 -0
  857. package/external/folly/folly/synchronization/test/SaturatingSemaphoreTest.cpp +166 -0
  858. package/external/folly/folly/synchronization/test/Semaphore.h +242 -0
  859. package/external/folly/folly/synchronization/test/SemaphoreTest.cpp +271 -0
  860. package/external/folly/folly/synchronization/test/SmallLocksBenchmark.cpp +1296 -0
  861. package/external/folly/folly/synchronization/test/SmallLocksTest.cpp +510 -0
  862. package/external/folly/folly/synchronization/test/ThreadCachedEpochBench.h +67 -0
  863. package/external/folly/folly/synchronization/test/ThreadCachedReadersBench.cpp +42 -0
  864. package/external/folly/folly/synchronization/test/ThreadCachedReadersTest.cpp +52 -0
  865. package/external/folly/folly/synchronization/test/ThrottledLifoSemTest.cpp +243 -0
  866. package/external/folly/folly/system/AtFork.cpp +205 -0
  867. package/external/folly/folly/system/AtFork.h +116 -0
  868. package/external/folly/folly/system/AuxVector.h +198 -0
  869. package/external/folly/folly/system/BUCK +144 -0
  870. package/external/folly/folly/system/EnvUtil.cpp +93 -0
  871. package/external/folly/folly/system/EnvUtil.h +113 -0
  872. package/external/folly/folly/system/HardwareConcurrency.cpp +39 -0
  873. package/external/folly/folly/system/HardwareConcurrency.h +23 -0
  874. package/external/folly/folly/system/MemoryMapping.cpp +477 -0
  875. package/external/folly/folly/system/MemoryMapping.h +287 -0
  876. package/external/folly/folly/system/Pid.cpp +87 -0
  877. package/external/folly/folly/system/Pid.h +34 -0
  878. package/external/folly/folly/system/Shell.cpp +33 -0
  879. package/external/folly/folly/system/Shell.h +93 -0
  880. package/external/folly/folly/system/ThreadId.cpp +89 -0
  881. package/external/folly/folly/system/ThreadId.h +62 -0
  882. package/external/folly/folly/system/ThreadName.cpp +330 -0
  883. package/external/folly/folly/system/ThreadName.h +72 -0
  884. package/external/folly/folly/system/test/AtForkTest.cpp +309 -0
  885. package/external/folly/folly/system/test/AuxVectorTest.cpp +55 -0
  886. package/external/folly/folly/system/test/BUCK +120 -0
  887. package/external/folly/folly/system/test/EnvUtilSubprocess.cpp +26 -0
  888. package/external/folly/folly/system/test/EnvUtilTest.cpp +197 -0
  889. package/external/folly/folly/system/test/MemoryMappingTest.cpp +179 -0
  890. package/external/folly/folly/system/test/PidTest.cpp +46 -0
  891. package/external/folly/folly/system/test/ShellTest.cpp +66 -0
  892. package/external/folly/folly/system/test/ThreadIdTest.cpp +114 -0
  893. package/external/folly/folly/system/test/ThreadNameTest.cpp +85 -0
  894. package/external/folly/folly.vcxitems +164 -0
  895. package/external/folly/static/logo.svg +1 -0
  896. package/external/folly/sync-config.json +8 -0
  897. package/package.json +6 -6
  898. package/template/cpp-lib/proj/MyLib.sln +0 -33
  899. package/template/cs-lib/proj/MyLib.sln +0 -33
  900. package/templates/cpp-app/windows/MyApp.sln +0 -33
  901. package/templates/cpp-lib/example/metro.config.js +30 -4
  902. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  903. package/Folly/Folly.vcxproj +0 -378
  904. package/Folly/Folly.vcxproj.filters +0 -558
  905. package/fmt/fmt.vcxproj +0 -153
  906. package/fmt/fmt.vcxproj.filters +0 -59
  907. package/fmt/pch.cpp +0 -4
  908. package/fmt/pch.h +0 -2
  909. /package/{fmt → external/fmt}/cgmanifest.json +0 -0
  910. /package/{Folly → external/folly}/Folly.natvis +0 -0
  911. /package/{Folly → external/folly}/cgmanifest.json +0 -0
  912. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/ConstexprMath.h +0 -0
  913. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/Conv.cpp +0 -0
  914. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/chrono/Hardware.h +0 -0
  915. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/concurrency/CacheLocality.cpp +0 -0
  916. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/dynamic-inl.h +0 -0
  917. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/json.cpp +0 -0
  918. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/SafeAssert.h +0 -0
  919. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.cpp +0 -0
  920. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.h +0 -0
  921. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/portability/Unistd.cpp +0 -0
@@ -0,0 +1,109 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #pragma once
18
+
19
+ #include <atomic>
20
+ #include <cassert>
21
+ #include <chrono>
22
+ #include <cstdint>
23
+ #include <limits>
24
+ #include <type_traits>
25
+
26
+ #include <folly/portability/Unistd.h>
27
+
28
+ namespace folly {
29
+ namespace detail {
30
+
31
+ enum class FutexResult {
32
+ VALUE_CHANGED, /* futex value didn't match expected */
33
+ AWOKEN, /* wakeup by matching futex wake, or spurious wakeup */
34
+ INTERRUPTED, /* wakeup by interrupting signal */
35
+ TIMEDOUT, /* wakeup by expiring deadline */
36
+ };
37
+
38
+ /**
39
+ * Futex is an atomic 32 bit unsigned integer that provides access to the
40
+ * futex() syscall on that value. It is templated in such a way that it
41
+ * can interact properly with DeterministicSchedule testing.
42
+ *
43
+ * If you don't know how to use futex(), you probably shouldn't be using
44
+ * this class. Even if you do know how, you should have a good reason
45
+ * (and benchmarks to back you up).
46
+ *
47
+ * Because of the semantics of the futex syscall, the futex family of
48
+ * functions are available as free functions rather than member functions
49
+ */
50
+ template <template <typename> class Atom = std::atomic>
51
+ using Futex = Atom<std::uint32_t>;
52
+
53
+ /**
54
+ * Puts the thread to sleep if this->load() == expected. Returns true when
55
+ * it is returning because it has consumed a wake() event, false for any
56
+ * other return (signal, this->load() != expected, or spurious wakeup).
57
+ */
58
+ template <typename Futex>
59
+ FutexResult futexWait(
60
+ const Futex* futex, uint32_t expected, uint32_t waitMask = -1);
61
+
62
+ /**
63
+ * Similar to futexWait but also accepts a deadline until when the wait call
64
+ * may block.
65
+ *
66
+ * Optimal clock types: std::chrono::system_clock, std::chrono::steady_clock.
67
+ * NOTE: On some systems steady_clock is just an alias for system_clock,
68
+ * and is not actually steady.
69
+ *
70
+ * For any other clock type, now() will be invoked twice.
71
+ */
72
+ template <typename Futex, class Clock, class Duration>
73
+ FutexResult futexWaitUntil(
74
+ const Futex* futex,
75
+ uint32_t expected,
76
+ std::chrono::time_point<Clock, Duration> const& deadline,
77
+ uint32_t waitMask = -1);
78
+
79
+ /**
80
+ * Wakes up to count waiters where (waitMask & wakeMask) != 0, returning the
81
+ * number of awoken threads, or -1 if an error occurred. Note that when
82
+ * constructing a concurrency primitive that can guard its own destruction, it
83
+ * is likely that you will want to ignore EINVAL here (as well as making sure
84
+ * that you never touch the object after performing the memory store that is
85
+ * the linearization point for unlock or control handoff). See
86
+ * https://sourceware.org/bugzilla/show_bug.cgi?id=13690
87
+ */
88
+ template <typename Futex>
89
+ int futexWake(
90
+ const Futex* futex,
91
+ int count = std::numeric_limits<int>::max(),
92
+ uint32_t wakeMask = -1);
93
+
94
+ /** A std::atomic subclass that can be used to force Futex to emulate
95
+ * the underlying futex() syscall. This is primarily useful to test or
96
+ * benchmark the emulated implementation on systems that don't need it. */
97
+ template <typename T>
98
+ struct EmulatedFutexAtomic : public std::atomic<T> {
99
+ EmulatedFutexAtomic() noexcept = default;
100
+ constexpr /* implicit */ EmulatedFutexAtomic(T init) noexcept
101
+ : std::atomic<T>(init) {}
102
+ // It doesn't copy or move
103
+ EmulatedFutexAtomic(EmulatedFutexAtomic&& rhs) = delete;
104
+ };
105
+
106
+ } // namespace detail
107
+ } // namespace folly
108
+
109
+ #include <folly/detail/Futex-inl.h>
@@ -0,0 +1,101 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #pragma once
18
+
19
+ #include <stddef.h>
20
+ #include <stdint.h>
21
+
22
+ namespace folly {
23
+
24
+ template <typename T>
25
+ class GroupVarint;
26
+
27
+ namespace detail {
28
+
29
+ template <typename T>
30
+ struct GroupVarintTraits;
31
+
32
+ template <>
33
+ struct GroupVarintTraits<uint32_t> {
34
+ enum : uint32_t {
35
+ kGroupSize = 4,
36
+ kHeaderSize = 1,
37
+ };
38
+ };
39
+
40
+ template <>
41
+ struct GroupVarintTraits<uint64_t> {
42
+ enum : uint32_t {
43
+ kGroupSize = 5,
44
+ kHeaderSize = 2,
45
+ };
46
+ };
47
+
48
+ template <typename T>
49
+ class GroupVarintBase {
50
+ protected:
51
+ typedef GroupVarintTraits<T> Traits;
52
+ enum : uint32_t { kHeaderSize = Traits::kHeaderSize };
53
+
54
+ public:
55
+ typedef T type;
56
+
57
+ /**
58
+ * Number of integers encoded / decoded in one pass.
59
+ */
60
+ enum : uint32_t { kGroupSize = Traits::kGroupSize };
61
+
62
+ /**
63
+ * Maximum encoded size.
64
+ */
65
+ enum : uint32_t { kMaxSize = kHeaderSize + sizeof(type) * kGroupSize };
66
+
67
+ /**
68
+ * Maximum size for n values.
69
+ */
70
+ static size_t maxSize(size_t n) {
71
+ // Full groups
72
+ size_t total = (n / kGroupSize) * kFullGroupSize;
73
+ // Incomplete last group, if any
74
+ n %= kGroupSize;
75
+ if (n) {
76
+ total += kHeaderSize + n * sizeof(type);
77
+ }
78
+ return total;
79
+ }
80
+
81
+ /**
82
+ * Size of n values starting at p.
83
+ */
84
+ static size_t totalSize(const T* p, size_t n) {
85
+ size_t size = 0;
86
+ for (; n >= kGroupSize; n -= kGroupSize, p += kGroupSize) {
87
+ size += Derived::size(p);
88
+ }
89
+ if (n) {
90
+ size += Derived::partialSize(p, n);
91
+ }
92
+ return size;
93
+ }
94
+
95
+ private:
96
+ typedef GroupVarint<T> Derived;
97
+ enum { kFullGroupSize = kHeaderSize + kGroupSize * sizeof(type) };
98
+ };
99
+
100
+ } // namespace detail
101
+ } // namespace folly
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #include <folly/detail/IPAddress.h>
18
+
19
+ #include <stdexcept>
20
+
21
+ #include <folly/portability/FmtCompile.h>
22
+
23
+ namespace folly {
24
+ namespace detail {
25
+
26
+ std::string familyNameStrDefault(sa_family_t family) {
27
+ return fmt::format(FOLLY_FMT_COMPILE("sa_family_t({})"), family);
28
+ }
29
+
30
+ [[noreturn]] void getNthMSBitImplThrow(size_t bitCount, sa_family_t family) {
31
+ throw std::invalid_argument(fmt::format(
32
+ FOLLY_FMT_COMPILE("Bit index must be < {} for addresses of type: {}"),
33
+ bitCount,
34
+ familyNameStr(family)));
35
+ }
36
+ } // namespace detail
37
+ } // namespace folly
@@ -0,0 +1,57 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #pragma once
18
+
19
+ #include <sys/types.h>
20
+
21
+ #include <string>
22
+
23
+ #include <folly/portability/Sockets.h>
24
+
25
+ namespace folly {
26
+ namespace detail {
27
+
28
+ std::string familyNameStrDefault(sa_family_t family);
29
+
30
+ inline std::string familyNameStr(sa_family_t family) {
31
+ switch (family) {
32
+ case AF_INET:
33
+ return "AF_INET";
34
+ case AF_INET6:
35
+ return "AF_INET6";
36
+ case AF_UNSPEC:
37
+ return "AF_UNSPEC";
38
+ case AF_UNIX:
39
+ return "AF_UNIX";
40
+ default:
41
+ return familyNameStrDefault(family);
42
+ }
43
+ }
44
+
45
+ [[noreturn]] void getNthMSBitImplThrow(size_t bitCount, sa_family_t family);
46
+
47
+ template <typename IPAddrType>
48
+ inline bool getNthMSBitImpl(
49
+ const IPAddrType& ip, size_t bitIndex, sa_family_t family) {
50
+ if (bitIndex >= ip.bitCount()) {
51
+ getNthMSBitImplThrow(ip.bitCount(), family);
52
+ }
53
+ // Underlying bytes are in n/w byte order
54
+ return (ip.getNthMSByte(bitIndex / 8) & (0x80 >> (bitIndex % 8))) != 0;
55
+ }
56
+ } // namespace detail
57
+ } // namespace folly
@@ -0,0 +1,278 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ #pragma once
18
+
19
+ #include <sys/types.h>
20
+
21
+ #include <algorithm>
22
+ #include <array>
23
+ #include <cstring>
24
+ #include <string>
25
+ #include <type_traits>
26
+
27
+ #include <glog/logging.h>
28
+
29
+ #include <fmt/core.h>
30
+ #include <folly/detail/IPAddress.h>
31
+
32
+ // BSDish platforms don't provide standard access to s6_addr16
33
+ #ifndef s6_addr16
34
+ #if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
35
+ defined(__OpenBSD__)
36
+ #define s6_addr16 __u6_addr.__u6_addr16
37
+ #endif
38
+ #endif
39
+
40
+ namespace folly {
41
+ namespace detail {
42
+
43
+ /**
44
+ * Helper for working with unsigned char* or uint8_t* ByteArray values
45
+ */
46
+ struct Bytes {
47
+ // mask the values from two byte arrays, returning a new byte array
48
+ template <std::size_t N>
49
+ static std::array<uint8_t, N> mask(
50
+ const std::array<uint8_t, N>& a, const std::array<uint8_t, N>& b) {
51
+ static_assert(N > 0, "Can't mask an empty ByteArray");
52
+ std::size_t asize = a.size();
53
+ std::array<uint8_t, N> ba{{0}};
54
+ for (std::size_t i = 0; i < asize; i++) {
55
+ ba[i] = uint8_t(a[i] & b[i]);
56
+ }
57
+ return ba;
58
+ }
59
+
60
+ template <std::size_t N>
61
+ static std::pair<std::array<uint8_t, N>, uint8_t> longestCommonPrefix(
62
+ const std::array<uint8_t, N>& one,
63
+ uint8_t oneMask,
64
+ const std::array<uint8_t, N>& two,
65
+ uint8_t twoMask) {
66
+ static constexpr auto kBitCount = N * 8;
67
+ static constexpr std::array<uint8_t, 8> kMasks{{
68
+ 0x80, // /1
69
+ 0xc0, // /2
70
+ 0xe0, // /3
71
+ 0xf0, // /4
72
+ 0xf8, // /5
73
+ 0xfc, // /6
74
+ 0xfe, // /7
75
+ 0xff // /8
76
+ }};
77
+ if (oneMask > kBitCount || twoMask > kBitCount) {
78
+ throw std::invalid_argument(fmt::format(
79
+ "Invalid mask length: {}. Mask length must be <= {}",
80
+ std::max(oneMask, twoMask),
81
+ kBitCount));
82
+ }
83
+
84
+ auto mask = std::min(oneMask, twoMask);
85
+ uint8_t byteIndex = 0;
86
+ std::array<uint8_t, N> ba{{0}};
87
+ // Compare a byte at a time. Note - I measured compared this with
88
+ // going multiple bytes at a time (8, 4, 2 and 1). It turns out
89
+ // to be 20 - 25% slower for 4 and 16 byte arrays.
90
+ while (byteIndex * 8 < mask && one[byteIndex] == two[byteIndex]) {
91
+ ba[byteIndex] = one[byteIndex];
92
+ ++byteIndex;
93
+ }
94
+ auto bitIndex = std::min(mask, uint8_t(byteIndex * 8));
95
+ uint8_t bI = uint8_t(bitIndex / 8);
96
+ uint8_t bM = uint8_t(bitIndex % 8);
97
+ // Compute the bit up to which the two byte arrays match in the
98
+ // unmatched byte.
99
+ // Here the check is bitIndex < mask since the 0th mask entry in
100
+ // kMasks array holds the mask for masking the MSb in this byte.
101
+ // We could instead make it hold so that no 0th entry masks no
102
+ // bits but thats a useless iteration.
103
+ while (bitIndex < mask &&
104
+ ((one[bI] & kMasks[bM]) == (two[bI] & kMasks[bM]))) {
105
+ ba[bI] = uint8_t(one[bI] & kMasks[bM]);
106
+ ++bitIndex;
107
+ bI = uint8_t(bitIndex / 8);
108
+ bM = uint8_t(bitIndex % 8);
109
+ }
110
+ return {ba, bitIndex};
111
+ }
112
+
113
+ // create an in_addr from an uint8_t*
114
+ static inline in_addr mkAddress4(const uint8_t* src) {
115
+ union {
116
+ in_addr addr;
117
+ uint8_t bytes[4];
118
+ } addr;
119
+ std::memset(&addr, 0, 4);
120
+ std::memcpy(addr.bytes, src, 4);
121
+ return addr.addr;
122
+ }
123
+
124
+ // create an in6_addr from an uint8_t*
125
+ static inline in6_addr mkAddress6(const uint8_t* src) {
126
+ in6_addr addr;
127
+ std::memset(&addr, 0, 16);
128
+ std::memcpy(addr.s6_addr, src, 16);
129
+ return addr;
130
+ }
131
+
132
+ // convert an uint8_t* to its hex value
133
+ static std::string toHex(const uint8_t* src, std::size_t len) {
134
+ static const char* const lut = "0123456789abcdef";
135
+ std::string out(len * 2, 0);
136
+ for (std::size_t i = 0; i < len; i++) {
137
+ const unsigned char c = src[i];
138
+ out[i * 2 + 0] = lut[c >> 4];
139
+ out[i * 2 + 1] = lut[c & 15];
140
+ }
141
+ return out;
142
+ }
143
+
144
+ private:
145
+ Bytes() = delete;
146
+ ~Bytes() = delete;
147
+ };
148
+
149
+ //
150
+ // Write a maximum amount of base-converted character digits, of a
151
+ // given base, from an unsigned integral type into a byte buffer of
152
+ // sufficient size.
153
+ //
154
+ // This function does not append null terminators.
155
+ //
156
+ // Output buffer size must be guaranteed by caller (indirectly
157
+ // controlled by DigitCount template parameter).
158
+ //
159
+ // Having these parameters at compile time allows compiler to
160
+ // precompute several of the values, use smaller instructions, and
161
+ // better optimize surrounding code.
162
+ //
163
+ // IntegralType:
164
+ // - Something like uint8_t, uint16_t, etc
165
+ //
166
+ // DigitCount is the maximum number of digits to be printed
167
+ // - This is tied to IntegralType and Base. For example:
168
+ // - uint8_t in base 10 will print at most 3 digits ("255")
169
+ // - uint16_t in base 16 will print at most 4 hex digits ("FFFF")
170
+ //
171
+ // Base is the desired output base of the string
172
+ // - Base 10 will print [0-9], base 16 will print [0-9a-f]
173
+ //
174
+ // PrintAllDigits:
175
+ // - Whether or not leading zeros should be printed
176
+ //
177
+ template <
178
+ class IntegralType,
179
+ IntegralType DigitCount,
180
+ IntegralType Base = IntegralType(10),
181
+ bool PrintAllDigits = false,
182
+ class = typename std::enable_if<
183
+ std::is_integral<IntegralType>::value &&
184
+ std::is_unsigned<IntegralType>::value,
185
+ bool>::type>
186
+ inline void writeIntegerString(IntegralType val, char** buffer) {
187
+ char* buf = *buffer;
188
+
189
+ if (!PrintAllDigits && val == 0) {
190
+ *(buf++) = '0';
191
+ *buffer = buf;
192
+ return;
193
+ }
194
+
195
+ IntegralType powerToPrint = 1;
196
+ for (IntegralType i = 1; i < DigitCount; ++i) {
197
+ powerToPrint *= Base;
198
+ }
199
+
200
+ bool found = PrintAllDigits;
201
+ while (powerToPrint) {
202
+ if (found || powerToPrint <= val) {
203
+ IntegralType value = IntegralType(val / powerToPrint);
204
+ if (Base == 10 || value < 10) {
205
+ value += '0';
206
+ } else {
207
+ value += ('a' - 10);
208
+ }
209
+ *(buf++) = char(value);
210
+ val %= powerToPrint;
211
+ found = true;
212
+ }
213
+
214
+ powerToPrint /= Base;
215
+ }
216
+
217
+ *buffer = buf;
218
+ }
219
+
220
+ inline size_t fastIpV4ToBufferUnsafe(const in_addr& inAddr, char* str) {
221
+ const uint8_t* octets = reinterpret_cast<const uint8_t*>(&inAddr.s_addr);
222
+ char* buf = str;
223
+
224
+ writeIntegerString<uint8_t, 3>(octets[0], &buf);
225
+ *(buf++) = '.';
226
+ writeIntegerString<uint8_t, 3>(octets[1], &buf);
227
+ *(buf++) = '.';
228
+ writeIntegerString<uint8_t, 3>(octets[2], &buf);
229
+ *(buf++) = '.';
230
+ writeIntegerString<uint8_t, 3>(octets[3], &buf);
231
+
232
+ return buf - str;
233
+ }
234
+
235
+ inline std::string fastIpv4ToString(const in_addr& inAddr) {
236
+ char str[sizeof("255.255.255.255")];
237
+ return std::string(str, fastIpV4ToBufferUnsafe(inAddr, str));
238
+ }
239
+
240
+ inline void fastIpv4AppendToString(const in_addr& inAddr, std::string& out) {
241
+ char str[sizeof("255.255.255.255")];
242
+ out.append(str, fastIpV4ToBufferUnsafe(inAddr, str));
243
+ }
244
+
245
+ inline size_t fastIpv6ToBufferUnsafe(const in6_addr& in6Addr, char* str) {
246
+ #ifdef _MSC_VER
247
+ const uint16_t* bytes = reinterpret_cast<const uint16_t*>(&in6Addr.u.Word);
248
+ #else
249
+ const uint16_t* bytes = reinterpret_cast<const uint16_t*>(&in6Addr.s6_addr16);
250
+ #endif
251
+ char* buf = str;
252
+
253
+ for (int i = 0; i < 8; ++i) {
254
+ writeIntegerString<
255
+ uint16_t,
256
+ 4, // at most 4 hex digits per ushort
257
+ 16, // base 16 (hex)
258
+ true>(htons(bytes[i]), &buf);
259
+
260
+ if (i != 7) {
261
+ *(buf++) = ':';
262
+ }
263
+ }
264
+
265
+ return buf - str;
266
+ }
267
+
268
+ inline std::string fastIpv6ToString(const in6_addr& in6Addr) {
269
+ char str[sizeof("2001:0db8:0000:0000:0000:ff00:0042:8329")];
270
+ return std::string(str, fastIpv6ToBufferUnsafe(in6Addr, str));
271
+ }
272
+
273
+ inline void fastIpv6AppendToString(const in6_addr& in6Addr, std::string& out) {
274
+ char str[sizeof("2001:0db8:0000:0000:0000:ff00:0042:8329")];
275
+ out.append(str, fastIpv6ToBufferUnsafe(in6Addr, str));
276
+ }
277
+ } // namespace detail
278
+ } // namespace folly