react-native-windows 0.81.34 → 0.81.35

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 (882) hide show
  1. package/Directory.Build.props +1 -16
  2. package/Folly/ThreadNameStub.cpp +4 -6
  3. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +1 -1
  4. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +27 -4
  5. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +8 -4
  6. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +7 -3
  7. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -7
  8. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +0 -3
  9. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  10. package/PropertySheets/React.Cpp.props +3 -3
  11. package/ReactCommon/ReactCommon.vcxproj +0 -10
  12. package/ReactCommon/packages.lock.win32.json +0 -10
  13. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +4 -37
  14. package/Shared/Shared.vcxitems +2 -0
  15. package/{Folly → external}/.clang-format +0 -1
  16. package/external/External.vcxitems +10 -0
  17. package/external/fast-float/.syncignore +11 -0
  18. package/external/fast-float/LICENSE-APACHE +190 -0
  19. package/external/fast-float/LICENSE-BOOST +23 -0
  20. package/external/fast-float/LICENSE-MIT +27 -0
  21. package/external/fast-float/cgmanifest.json +15 -0
  22. package/external/fast-float/fast-float.vcxitems +14 -0
  23. package/external/fast-float/include/fast_float/ascii_number.h +588 -0
  24. package/external/fast-float/include/fast_float/bigint.h +638 -0
  25. package/external/fast-float/include/fast_float/constexpr_feature_detect.h +46 -0
  26. package/external/fast-float/include/fast_float/decimal_to_binary.h +212 -0
  27. package/external/fast-float/include/fast_float/digit_comparison.h +457 -0
  28. package/external/fast-float/include/fast_float/fast_float.h +59 -0
  29. package/external/fast-float/include/fast_float/fast_table.h +708 -0
  30. package/external/fast-float/include/fast_float/float_common.h +1240 -0
  31. package/external/fast-float/include/fast_float/parse_number.h +399 -0
  32. package/external/fast-float/sync-config.json +8 -0
  33. package/external/fmt/.syncignore +12 -0
  34. package/external/fmt/CONTRIBUTING.md +20 -0
  35. package/external/fmt/LICENSE +27 -0
  36. package/{fmt → external/fmt}/cgmanifest.json +1 -1
  37. package/external/fmt/fmt.vcxitems +28 -0
  38. package/external/fmt/include/fmt/args.h +228 -0
  39. package/{fmt/TEMP_UntilFmtUpdate/core.h → external/fmt/include/fmt/base.h} +1188 -1036
  40. package/external/fmt/include/fmt/chrono.h +2432 -0
  41. package/external/fmt/include/fmt/color.h +612 -0
  42. package/external/fmt/include/fmt/compile.h +529 -0
  43. package/external/fmt/include/fmt/core.h +5 -0
  44. package/external/fmt/include/fmt/format-inl.h +1928 -0
  45. package/external/fmt/include/fmt/format.h +4427 -0
  46. package/external/fmt/include/fmt/os.h +439 -0
  47. package/external/fmt/include/fmt/ostream.h +211 -0
  48. package/external/fmt/include/fmt/printf.h +656 -0
  49. package/external/fmt/include/fmt/ranges.h +882 -0
  50. package/external/fmt/include/fmt/std.h +699 -0
  51. package/external/fmt/include/fmt/xchar.h +322 -0
  52. package/external/fmt/src/fmt.cc +135 -0
  53. package/external/fmt/src/format.cc +43 -0
  54. package/external/fmt/src/os.cc +403 -0
  55. package/external/fmt/sync-config.json +8 -0
  56. package/external/folly/.syncignore +61 -0
  57. package/external/folly/LICENSE +200 -0
  58. package/{fmt → external/folly/folly}/.clang-format +0 -1
  59. package/external/folly/folly/AtomicHashArray-inl.h +546 -0
  60. package/external/folly/folly/AtomicHashArray.h +431 -0
  61. package/external/folly/folly/AtomicHashMap-inl.h +653 -0
  62. package/external/folly/folly/AtomicHashMap.h +484 -0
  63. package/external/folly/folly/AtomicIntrusiveLinkedList.h +206 -0
  64. package/external/folly/folly/AtomicLinkedList.h +110 -0
  65. package/external/folly/folly/AtomicUnorderedMap.h +522 -0
  66. package/external/folly/folly/BUCK +1631 -0
  67. package/external/folly/folly/BUILD_MODE.bzl +72 -0
  68. package/external/folly/folly/Benchmark.cpp +986 -0
  69. package/external/folly/folly/Benchmark.h +680 -0
  70. package/external/folly/folly/BenchmarkUtil.h +47 -0
  71. package/external/folly/folly/Bits.h +17 -0
  72. package/external/folly/folly/CMakeLists.txt +110 -0
  73. package/external/folly/folly/CPortability.h +338 -0
  74. package/external/folly/folly/CancellationToken-inl.h +449 -0
  75. package/external/folly/folly/CancellationToken.cpp +250 -0
  76. package/external/folly/folly/CancellationToken.h +365 -0
  77. package/external/folly/folly/Chrono.h +132 -0
  78. package/external/folly/folly/ClockGettimeWrappers.cpp +93 -0
  79. package/external/folly/folly/ClockGettimeWrappers.h +29 -0
  80. package/external/folly/folly/ConcurrentBitSet.h +157 -0
  81. package/external/folly/folly/ConcurrentLazy.h +74 -0
  82. package/external/folly/folly/ConcurrentSkipList-inl.h +341 -0
  83. package/external/folly/folly/ConcurrentSkipList.h +824 -0
  84. package/external/folly/folly/ConstructorCallbackList.h +158 -0
  85. package/external/folly/folly/Conv.h +2026 -0
  86. package/external/folly/folly/CppAttributes.h +170 -0
  87. package/external/folly/folly/CpuId.h +297 -0
  88. package/external/folly/folly/DefaultKeepAliveExecutor.h +172 -0
  89. package/external/folly/folly/Demangle.cpp +255 -0
  90. package/external/folly/folly/Demangle.h +73 -0
  91. package/external/folly/folly/DiscriminatedPtr.h +236 -0
  92. package/external/folly/folly/DynamicConverter.h +17 -0
  93. package/external/folly/folly/Exception.h +150 -0
  94. package/external/folly/folly/ExceptionString.cpp +51 -0
  95. package/external/folly/folly/ExceptionString.h +33 -0
  96. package/external/folly/folly/ExceptionWrapper-inl.h +264 -0
  97. package/external/folly/folly/ExceptionWrapper.cpp +37 -0
  98. package/external/folly/folly/ExceptionWrapper.h +377 -0
  99. package/external/folly/folly/Executor.cpp +111 -0
  100. package/external/folly/folly/Executor.h +351 -0
  101. package/external/folly/folly/Expected.h +1725 -0
  102. package/external/folly/folly/FBString.h +2888 -0
  103. package/external/folly/folly/FBVector.h +17 -0
  104. package/external/folly/folly/File.cpp +180 -0
  105. package/external/folly/folly/File.h +177 -0
  106. package/external/folly/folly/FileUtil.cpp +378 -0
  107. package/external/folly/folly/FileUtil.h +332 -0
  108. package/external/folly/folly/Fingerprint.cpp +135 -0
  109. package/external/folly/folly/Fingerprint.h +289 -0
  110. package/external/folly/folly/FixedString.h +2965 -0
  111. package/external/folly/folly/FollyMemcpy.cpp +30 -0
  112. package/external/folly/folly/FollyMemcpy.h +23 -0
  113. package/external/folly/folly/FollyMemset.cpp +29 -0
  114. package/external/folly/folly/FollyMemset.h +25 -0
  115. package/external/folly/folly/Format-inl.h +1152 -0
  116. package/external/folly/folly/Format.cpp +429 -0
  117. package/external/folly/folly/Format.h +463 -0
  118. package/external/folly/folly/FormatArg.h +285 -0
  119. package/external/folly/folly/FormatTraits.h +65 -0
  120. package/external/folly/folly/Function.h +1159 -0
  121. package/external/folly/folly/GLog.h +85 -0
  122. package/external/folly/folly/GroupVarint.cpp +153 -0
  123. package/external/folly/folly/GroupVarint.h +630 -0
  124. package/external/folly/folly/Hash.h +20 -0
  125. package/external/folly/folly/IPAddress.cpp +490 -0
  126. package/external/folly/folly/IPAddress.h +667 -0
  127. package/external/folly/folly/IPAddressException.h +82 -0
  128. package/external/folly/folly/IPAddressV4.cpp +305 -0
  129. package/external/folly/folly/IPAddressV4.h +495 -0
  130. package/external/folly/folly/IPAddressV6.cpp +541 -0
  131. package/external/folly/folly/IPAddressV6.h +627 -0
  132. package/external/folly/folly/Indestructible.h +164 -0
  133. package/external/folly/folly/IndexedMemPool.h +550 -0
  134. package/external/folly/folly/IntrusiveList.h +17 -0
  135. package/external/folly/folly/Lazy.h +142 -0
  136. package/external/folly/folly/Likely.h +76 -0
  137. package/external/folly/folly/MPMCPipeline.h +280 -0
  138. package/external/folly/folly/MPMCQueue.h +1556 -0
  139. package/external/folly/folly/MacAddress.cpp +188 -0
  140. package/external/folly/folly/MacAddress.h +260 -0
  141. package/external/folly/folly/MapUtil.h +17 -0
  142. package/external/folly/folly/Math.h +258 -0
  143. package/external/folly/folly/MaybeManagedPtr.h +120 -0
  144. package/external/folly/folly/Memory.h +900 -0
  145. package/external/folly/folly/MicroLock.cpp +76 -0
  146. package/external/folly/folly/MicroLock.h +354 -0
  147. package/external/folly/folly/MicroSpinLock.h +17 -0
  148. package/external/folly/folly/MoveWrapper.h +76 -0
  149. package/external/folly/folly/ObserverContainer.h +1026 -0
  150. package/external/folly/folly/Optional.h +743 -0
  151. package/external/folly/folly/Overload.h +325 -0
  152. package/external/folly/folly/PackedSyncPtr.h +147 -0
  153. package/external/folly/folly/Padded.h +464 -0
  154. package/external/folly/folly/Poly-inl.h +230 -0
  155. package/external/folly/folly/Poly.h +1095 -0
  156. package/external/folly/folly/PolyException.h +43 -0
  157. package/external/folly/folly/Portability.h +644 -0
  158. package/external/folly/folly/Preprocessor.h +236 -0
  159. package/external/folly/folly/ProducerConsumerQueue.h +182 -0
  160. package/external/folly/folly/RWSpinLock.h +17 -0
  161. package/external/folly/folly/Random-inl.h +86 -0
  162. package/external/folly/folly/Random.cpp +184 -0
  163. package/external/folly/folly/Random.h +434 -0
  164. package/external/folly/folly/Range.h +1772 -0
  165. package/external/folly/folly/Replaceable.h +636 -0
  166. package/external/folly/folly/ScopeGuard.cpp +29 -0
  167. package/external/folly/folly/ScopeGuard.h +420 -0
  168. package/external/folly/folly/SharedMutex.cpp +81 -0
  169. package/external/folly/folly/SharedMutex.h +1751 -0
  170. package/external/folly/folly/Singleton-inl.h +332 -0
  171. package/external/folly/folly/Singleton.cpp +512 -0
  172. package/external/folly/folly/Singleton.h +891 -0
  173. package/external/folly/folly/SingletonThreadLocal.cpp +53 -0
  174. package/external/folly/folly/SingletonThreadLocal.h +263 -0
  175. package/external/folly/folly/SocketAddress.cpp +786 -0
  176. package/external/folly/folly/SocketAddress.h +768 -0
  177. package/external/folly/folly/SpinLock.h +55 -0
  178. package/external/folly/folly/String-inl.h +668 -0
  179. package/external/folly/folly/String.cpp +777 -0
  180. package/external/folly/folly/String.h +767 -0
  181. package/external/folly/folly/Subprocess.cpp +1142 -0
  182. package/external/folly/folly/Subprocess.h +1055 -0
  183. package/external/folly/folly/Synchronized.h +1833 -0
  184. package/external/folly/folly/SynchronizedPtr.h +106 -0
  185. package/external/folly/folly/ThreadCachedInt.h +175 -0
  186. package/external/folly/folly/ThreadLocal.h +478 -0
  187. package/external/folly/folly/TimeoutQueue.cpp +78 -0
  188. package/external/folly/folly/TimeoutQueue.h +123 -0
  189. package/external/folly/folly/TokenBucket.h +673 -0
  190. package/external/folly/folly/Traits.h +1442 -0
  191. package/external/folly/folly/Try-inl.h +372 -0
  192. package/external/folly/folly/Try.cpp +23 -0
  193. package/external/folly/folly/Try.h +728 -0
  194. package/external/folly/folly/UTF8String.h +56 -0
  195. package/external/folly/folly/Unicode.cpp +201 -0
  196. package/external/folly/folly/Unicode.h +94 -0
  197. package/external/folly/folly/Unit.h +65 -0
  198. package/external/folly/folly/Uri-inl.h +101 -0
  199. package/external/folly/folly/Uri.cpp +190 -0
  200. package/external/folly/folly/Uri.h +142 -0
  201. package/external/folly/folly/Utility.h +932 -0
  202. package/external/folly/folly/VERSION +1 -0
  203. package/external/folly/folly/Varint.h +230 -0
  204. package/external/folly/folly/VirtualExecutor.h +17 -0
  205. package/external/folly/folly/algorithm/simd/BUCK +47 -0
  206. package/external/folly/folly/algorithm/simd/Contains.cpp +42 -0
  207. package/external/folly/folly/algorithm/simd/Contains.h +116 -0
  208. package/external/folly/folly/algorithm/simd/FindFixed.h +301 -0
  209. package/external/folly/folly/algorithm/simd/Ignore.h +52 -0
  210. package/external/folly/folly/algorithm/simd/Movemask.h +207 -0
  211. package/external/folly/folly/algorithm/simd/detail/BUCK +70 -0
  212. package/external/folly/folly/algorithm/simd/detail/ContainsImpl.h +91 -0
  213. package/external/folly/folly/algorithm/simd/detail/SimdAnyOf.h +83 -0
  214. package/external/folly/folly/algorithm/simd/detail/SimdForEach.h +209 -0
  215. package/external/folly/folly/algorithm/simd/detail/SimdPlatform.h +445 -0
  216. package/external/folly/folly/algorithm/simd/detail/Traits.h +125 -0
  217. package/external/folly/folly/algorithm/simd/detail/UnrollUtils.h +126 -0
  218. package/external/folly/folly/base64.h +264 -0
  219. package/external/folly/folly/chrono/BUCK +29 -0
  220. package/external/folly/folly/chrono/Clock.h +65 -0
  221. package/external/folly/folly/chrono/Conv.h +712 -0
  222. package/external/folly/folly/chrono/test/BUCK +26 -0
  223. package/external/folly/folly/chrono/test/ClockTest.cpp +68 -0
  224. package/external/folly/folly/chrono/test/ConvTest.cpp +652 -0
  225. package/external/folly/folly/concurrency/AtomicSharedPtr.h +387 -0
  226. package/external/folly/folly/concurrency/BUCK +170 -0
  227. package/external/folly/folly/concurrency/CacheLocality.h +460 -0
  228. package/external/folly/folly/concurrency/ConcurrentHashMap.h +822 -0
  229. package/external/folly/folly/concurrency/CoreCachedSharedPtr.h +232 -0
  230. package/external/folly/folly/concurrency/DeadlockDetector.cpp +27 -0
  231. package/external/folly/folly/concurrency/DeadlockDetector.h +44 -0
  232. package/external/folly/folly/concurrency/DynamicBoundedQueue.h +751 -0
  233. package/external/folly/folly/concurrency/PriorityUnboundedQueueSet.h +207 -0
  234. package/external/folly/folly/concurrency/ProcessLocalUniqueId.cpp +46 -0
  235. package/external/folly/folly/concurrency/ProcessLocalUniqueId.h +38 -0
  236. package/external/folly/folly/concurrency/SingletonRelaxedCounter.h +325 -0
  237. package/external/folly/folly/concurrency/ThreadCachedSynchronized.h +227 -0
  238. package/external/folly/folly/concurrency/UnboundedQueue.h +891 -0
  239. package/external/folly/folly/concurrency/container/BUCK +77 -0
  240. package/external/folly/folly/concurrency/container/FlatCombiningPriorityQueue.h +426 -0
  241. package/external/folly/folly/concurrency/container/LockFreeRingBuffer.h +306 -0
  242. package/external/folly/folly/concurrency/container/RelaxedConcurrentPriorityQueue.h +1212 -0
  243. package/external/folly/folly/concurrency/container/SingleWriterFixedHashMap.h +322 -0
  244. package/external/folly/folly/concurrency/container/atomic_grow_array.h +564 -0
  245. package/external/folly/folly/concurrency/container/test/BUCK +75 -0
  246. package/external/folly/folly/concurrency/container/test/FlatCombiningPriorityQueueTest.cpp +570 -0
  247. package/external/folly/folly/concurrency/container/test/LockFreeRingBufferTest.cpp +276 -0
  248. package/external/folly/folly/concurrency/container/test/RelaxedConcurrentPriorityQueueTest.cpp +1570 -0
  249. package/external/folly/folly/concurrency/container/test/SingleWriterFixedHashMapTest.cpp +401 -0
  250. package/external/folly/folly/concurrency/container/test/atomic_grow_array_test.cpp +187 -0
  251. package/external/folly/folly/concurrency/detail/AtomicSharedPtr-detail.h +212 -0
  252. package/external/folly/folly/concurrency/detail/ConcurrentHashMap-detail.h +1911 -0
  253. package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.cpp +43 -0
  254. package/external/folly/folly/concurrency/memory/AtomicReadMostlyMainPtr.h +190 -0
  255. package/external/folly/folly/concurrency/memory/BUCK +53 -0
  256. package/external/folly/folly/concurrency/memory/PrimaryPtr.h +338 -0
  257. package/external/folly/folly/concurrency/memory/ReadMostlySharedPtr.h +511 -0
  258. package/external/folly/folly/concurrency/memory/TLRefCount.h +228 -0
  259. package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrBenchmark.cpp +56 -0
  260. package/external/folly/folly/concurrency/memory/test/AtomicReadMostlyMainPtrTest.cpp +454 -0
  261. package/external/folly/folly/concurrency/memory/test/BUCK +95 -0
  262. package/external/folly/folly/concurrency/memory/test/PrimaryPtrTest.cpp +303 -0
  263. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrBenchmark.cpp +138 -0
  264. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrStressTest.cpp +75 -0
  265. package/external/folly/folly/concurrency/memory/test/ReadMostlySharedPtrTest.cpp +378 -0
  266. package/external/folly/folly/concurrency/memory/test/RefCountBenchmark.cpp +90 -0
  267. package/external/folly/folly/concurrency/memory/test/RefCountTest.cpp +168 -0
  268. package/external/folly/folly/concurrency/test/AtomicSharedPtrCounted.h +156 -0
  269. package/external/folly/folly/concurrency/test/AtomicSharedPtrPerformance.cpp +255 -0
  270. package/external/folly/folly/concurrency/test/AtomicSharedPtrTest.cpp +257 -0
  271. package/external/folly/folly/concurrency/test/BUCK +229 -0
  272. package/external/folly/folly/concurrency/test/CacheLocalityBenchmark.cpp +392 -0
  273. package/external/folly/folly/concurrency/test/CacheLocalityTest.cpp +1229 -0
  274. package/external/folly/folly/concurrency/test/ConcurrentHashMapBench.cpp +260 -0
  275. package/external/folly/folly/concurrency/test/ConcurrentHashMapTest.cpp +1242 -0
  276. package/external/folly/folly/concurrency/test/CoreCachedSharedPtrTest.cpp +408 -0
  277. package/external/folly/folly/concurrency/test/DynamicBoundedQueueTest.cpp +984 -0
  278. package/external/folly/folly/concurrency/test/PriorityUnboundedQueueSetTest.cpp +73 -0
  279. package/external/folly/folly/concurrency/test/ProcessLocalUniqueIdTest.cpp +66 -0
  280. package/external/folly/folly/concurrency/test/SingletonRelaxedCounterBench.cpp +101 -0
  281. package/external/folly/folly/concurrency/test/SingletonRelaxedCounterTest.cpp +185 -0
  282. package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedBench.cpp +76 -0
  283. package/external/folly/folly/concurrency/test/ThreadCachedSynchronizedTest.cpp +93 -0
  284. package/external/folly/folly/concurrency/test/UnboundedQueueTest.cpp +1302 -0
  285. package/external/folly/folly/container/Access.h +57 -0
  286. package/external/folly/folly/container/Array.h +87 -0
  287. package/external/folly/folly/container/BUCK +353 -0
  288. package/external/folly/folly/container/BitIterator.h +203 -0
  289. package/external/folly/folly/container/Enumerate.h +162 -0
  290. package/external/folly/folly/container/EvictingCacheMap.h +730 -0
  291. package/external/folly/folly/container/F14.md +300 -0
  292. package/external/folly/folly/container/F14Map-fwd.h +113 -0
  293. package/external/folly/folly/container/F14Map.h +2108 -0
  294. package/external/folly/folly/container/F14Set-fwd.h +95 -0
  295. package/external/folly/folly/container/F14Set.h +1603 -0
  296. package/external/folly/folly/container/FBVector.h +1711 -0
  297. package/external/folly/folly/container/Foreach-inl.h +316 -0
  298. package/external/folly/folly/container/Foreach.h +209 -0
  299. package/external/folly/folly/container/HeterogeneousAccess-fwd.h +33 -0
  300. package/external/folly/folly/container/HeterogeneousAccess.h +171 -0
  301. package/external/folly/folly/container/IntrusiveHeap.h +268 -0
  302. package/external/folly/folly/container/IntrusiveList.h +131 -0
  303. package/external/folly/folly/container/Iterator.h +843 -0
  304. package/external/folly/folly/container/MapUtil.h +376 -0
  305. package/external/folly/folly/container/Merge.h +90 -0
  306. package/external/folly/folly/container/RegexMatchCache.cpp +521 -0
  307. package/external/folly/folly/container/RegexMatchCache.h +699 -0
  308. package/external/folly/folly/container/Reserve.h +109 -0
  309. package/external/folly/folly/container/SparseByteSet.h +123 -0
  310. package/external/folly/folly/container/View.h +81 -0
  311. package/external/folly/folly/container/WeightedEvictingCacheMap.h +651 -0
  312. package/external/folly/folly/container/detail/BUCK +115 -0
  313. package/external/folly/folly/container/detail/BitIteratorDetail.h +87 -0
  314. package/external/folly/folly/container/detail/F14Defaults.h +34 -0
  315. package/external/folly/folly/container/detail/F14IntrinsicsAvailability.h +67 -0
  316. package/external/folly/folly/container/detail/F14MapFallback.h +717 -0
  317. package/external/folly/folly/container/detail/F14Mask.h +235 -0
  318. package/external/folly/folly/container/detail/F14Policy.h +1523 -0
  319. package/external/folly/folly/container/detail/F14SetFallback.h +528 -0
  320. package/external/folly/folly/container/detail/F14Table.cpp +71 -0
  321. package/external/folly/folly/container/detail/F14Table.h +2680 -0
  322. package/external/folly/folly/container/detail/Util.h +303 -0
  323. package/external/folly/folly/container/detail/tape_detail.h +135 -0
  324. package/external/folly/folly/container/detail/test/BUCK +14 -0
  325. package/external/folly/folly/container/detail/test/F14DetailTest.cpp +47 -0
  326. package/external/folly/folly/container/heap_vector_types.h +1683 -0
  327. package/external/folly/folly/container/range_traits.h +81 -0
  328. package/external/folly/folly/container/small_vector.h +1476 -0
  329. package/external/folly/folly/container/sorted_vector_types.h +1652 -0
  330. package/external/folly/folly/container/span.h +408 -0
  331. package/external/folly/folly/container/tape.h +608 -0
  332. package/external/folly/folly/container/test/.clang-tidy +12 -0
  333. package/external/folly/folly/container/test/AccessTest.cpp +138 -0
  334. package/external/folly/folly/container/test/ArrayTest.cpp +84 -0
  335. package/external/folly/folly/container/test/BUCK +568 -0
  336. package/external/folly/folly/container/test/BitIteratorBench.cpp +112 -0
  337. package/external/folly/folly/container/test/BitIteratorTest.cpp +109 -0
  338. package/external/folly/folly/container/test/EnumerateTest.cpp +294 -0
  339. package/external/folly/folly/container/test/EvictingCacheMapBench.cpp +80 -0
  340. package/external/folly/folly/container/test/EvictingCacheMapTest.cpp +842 -0
  341. package/external/folly/folly/container/test/F14AsanSupportTest.cpp +143 -0
  342. package/external/folly/folly/container/test/F14FwdTest.cpp +37 -0
  343. package/external/folly/folly/container/test/F14InterprocessTest.cpp +404 -0
  344. package/external/folly/folly/container/test/F14MapTest.cpp +2543 -0
  345. package/external/folly/folly/container/test/F14PolicyTest.cpp +49 -0
  346. package/external/folly/folly/container/test/F14SetTest.cpp +1738 -0
  347. package/external/folly/folly/container/test/F14SmallOverheads.cpp +215 -0
  348. package/external/folly/folly/container/test/F14TestUtil.h +117 -0
  349. package/external/folly/folly/container/test/FBVectorBenchmark.cpp +380 -0
  350. package/external/folly/folly/container/test/FBVectorBenchmarks.cpp.h +100 -0
  351. package/external/folly/folly/container/test/FBVectorTest.cpp +326 -0
  352. package/external/folly/folly/container/test/FBVectorTests.cpp.h +304 -0
  353. package/external/folly/folly/container/test/ForeachBenchmark.cpp +388 -0
  354. package/external/folly/folly/container/test/ForeachTest.cpp +338 -0
  355. package/external/folly/folly/container/test/HashMapsBench.cpp +458 -0
  356. package/external/folly/folly/container/test/HeterogeneousAccessTest.cpp +242 -0
  357. package/external/folly/folly/container/test/IntrusiveHeapTest.cpp +262 -0
  358. package/external/folly/folly/container/test/IteratorTest.cpp +989 -0
  359. package/external/folly/folly/container/test/MapUtilTest.cpp +365 -0
  360. package/external/folly/folly/container/test/MergeTest.cpp +66 -0
  361. package/external/folly/folly/container/test/RegexMatchCacheTest.cpp +634 -0
  362. package/external/folly/folly/container/test/ReserveTest.cpp +173 -0
  363. package/external/folly/folly/container/test/SparseByteSetBenchmark.cpp +153 -0
  364. package/external/folly/folly/container/test/SparseByteSetTest.cpp +117 -0
  365. package/external/folly/folly/container/test/TrackingTypes.h +584 -0
  366. package/external/folly/folly/container/test/UtilTest.cpp +609 -0
  367. package/external/folly/folly/container/test/WeightedEvictingCacheMapTest.cpp +800 -0
  368. package/external/folly/folly/container/test/heap_vector_types_test.cpp +1774 -0
  369. package/external/folly/folly/container/test/range_traits_test.cpp +59 -0
  370. package/external/folly/folly/container/test/small_vector_test.cpp +1571 -0
  371. package/external/folly/folly/container/test/sorted_vector_test.cpp +1589 -0
  372. package/external/folly/folly/container/test/span_test.cpp +520 -0
  373. package/external/folly/folly/container/test/tape_bench.cpp +200 -0
  374. package/external/folly/folly/container/test/tape_test.cpp +590 -0
  375. package/external/folly/folly/defs.bzl +238 -0
  376. package/external/folly/folly/detail/AsyncTrace.cpp +36 -0
  377. package/external/folly/folly/detail/AsyncTrace.h +44 -0
  378. package/external/folly/folly/detail/AtomicHashUtils.h +42 -0
  379. package/external/folly/folly/detail/AtomicUnorderedMapUtils.h +80 -0
  380. package/external/folly/folly/detail/BUCK +406 -0
  381. package/external/folly/folly/detail/DiscriminatedPtrDetail.h +172 -0
  382. package/external/folly/folly/detail/FileUtilDetail.cpp +63 -0
  383. package/external/folly/folly/detail/FileUtilDetail.h +85 -0
  384. package/external/folly/folly/detail/FileUtilVectorDetail.h +81 -0
  385. package/external/folly/folly/detail/FingerprintPolynomial.h +132 -0
  386. package/external/folly/folly/detail/Futex-inl.h +123 -0
  387. package/external/folly/folly/detail/Futex.cpp +273 -0
  388. package/external/folly/folly/detail/Futex.h +109 -0
  389. package/external/folly/folly/detail/GroupVarintDetail.h +101 -0
  390. package/external/folly/folly/detail/IPAddress.cpp +37 -0
  391. package/external/folly/folly/detail/IPAddress.h +57 -0
  392. package/external/folly/folly/detail/IPAddressSource.h +278 -0
  393. package/external/folly/folly/detail/Iterators.h +156 -0
  394. package/external/folly/folly/detail/MPMCPipelineDetail.h +122 -0
  395. package/external/folly/folly/detail/MemoryIdler.cpp +233 -0
  396. package/external/folly/folly/detail/MemoryIdler.h +216 -0
  397. package/external/folly/folly/detail/PerfScoped.cpp +112 -0
  398. package/external/folly/folly/detail/PerfScoped.h +70 -0
  399. package/external/folly/folly/detail/PolyDetail.h +921 -0
  400. package/external/folly/folly/detail/RangeCommon.cpp +55 -0
  401. package/external/folly/folly/detail/RangeCommon.h +93 -0
  402. package/external/folly/folly/detail/RangeSse42.cpp +198 -0
  403. package/external/folly/folly/detail/RangeSse42.h +30 -0
  404. package/external/folly/folly/detail/SimpleSimdStringUtils.cpp +31 -0
  405. package/external/folly/folly/detail/SimpleSimdStringUtils.h +27 -0
  406. package/external/folly/folly/detail/SimpleSimdStringUtilsImpl.h +63 -0
  407. package/external/folly/folly/detail/Singleton.h +34 -0
  408. package/external/folly/folly/detail/SlowFingerprint.h +90 -0
  409. package/external/folly/folly/detail/SocketFastOpen.cpp +175 -0
  410. package/external/folly/folly/detail/SocketFastOpen.h +89 -0
  411. package/external/folly/folly/detail/SplitStringSimd.cpp +84 -0
  412. package/external/folly/folly/detail/SplitStringSimd.h +151 -0
  413. package/external/folly/folly/detail/SplitStringSimdImpl.h +149 -0
  414. package/external/folly/folly/detail/Sse.cpp +35 -0
  415. package/external/folly/folly/detail/Sse.h +45 -0
  416. package/external/folly/folly/detail/StaticSingletonManager.cpp +119 -0
  417. package/external/folly/folly/detail/StaticSingletonManager.h +298 -0
  418. package/external/folly/folly/detail/ThreadLocalDetail.cpp +492 -0
  419. package/external/folly/folly/detail/ThreadLocalDetail.h +800 -0
  420. package/external/folly/folly/detail/TrapOnAvx512.cpp +41 -0
  421. package/external/folly/folly/detail/TrapOnAvx512.h +21 -0
  422. package/external/folly/folly/detail/TurnSequencer.h +295 -0
  423. package/external/folly/folly/detail/TypeList.h +551 -0
  424. package/external/folly/folly/detail/UniqueInstance.cpp +136 -0
  425. package/external/folly/folly/detail/UniqueInstance.h +68 -0
  426. package/external/folly/folly/detail/base64_detail/BUCK +102 -0
  427. package/external/folly/folly/detail/base64_detail/Base64Api.cpp +40 -0
  428. package/external/folly/folly/detail/base64_detail/Base64Api.h +101 -0
  429. package/external/folly/folly/detail/base64_detail/Base64Common.h +80 -0
  430. package/external/folly/folly/detail/base64_detail/Base64Constants.h +79 -0
  431. package/external/folly/folly/detail/base64_detail/Base64HiddenConstants.h +129 -0
  432. package/external/folly/folly/detail/base64_detail/Base64SWAR.cpp +161 -0
  433. package/external/folly/folly/detail/base64_detail/Base64SWAR.h +32 -0
  434. package/external/folly/folly/detail/base64_detail/Base64Scalar.h +262 -0
  435. package/external/folly/folly/detail/base64_detail/Base64Simd.h +102 -0
  436. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.cpp +42 -0
  437. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2.h +33 -0
  438. package/external/folly/folly/detail/base64_detail/Base64_SSE4_2_Platform.h +167 -0
  439. package/external/folly/folly/detail/base64_detail/README.md +392 -0
  440. package/external/folly/folly/detail/base64_detail/tests/BUCK +36 -0
  441. package/external/folly/folly/detail/base64_detail/tests/Base64AgainstScalarTest.cpp +141 -0
  442. package/external/folly/folly/detail/base64_detail/tests/Base64PlatformTest.cpp +273 -0
  443. package/external/folly/folly/detail/base64_detail/tests/Base64SpecialCasesTest.cpp +555 -0
  444. package/external/folly/folly/detail/test/AsyncTraceTest.cpp +43 -0
  445. package/external/folly/folly/detail/test/BUCK +118 -0
  446. package/external/folly/folly/detail/test/FileUtilDetailTest.cpp +56 -0
  447. package/external/folly/folly/detail/test/PerfScopedTest.cpp +107 -0
  448. package/external/folly/folly/detail/test/SimpleSimdStringUtilsTest.cpp +92 -0
  449. package/external/folly/folly/detail/test/SplitStringSimdTest.cpp +242 -0
  450. package/external/folly/folly/detail/test/StaticSingletonManagerTest.cpp +121 -0
  451. package/external/folly/folly/detail/test/ThreadLocalBenchmark.cpp +116 -0
  452. package/external/folly/folly/detail/test/ThreadLocalDetailTest.cpp +194 -0
  453. package/external/folly/folly/detail/test/TrapOnAvx512TestNegative.cpp +29 -0
  454. package/external/folly/folly/detail/test/UniqueInstanceTest.cpp +60 -0
  455. package/external/folly/folly/detail/thread_local_globals.cpp +69 -0
  456. package/external/folly/folly/detail/thread_local_globals.h +36 -0
  457. package/external/folly/folly/dynamic-inl.h +17 -0
  458. package/external/folly/folly/dynamic.h +17 -0
  459. package/external/folly/folly/folly_extended_library.bzl +28 -0
  460. package/external/folly/folly/functional/ApplyTuple.h +204 -0
  461. package/external/folly/folly/functional/BUCK +57 -0
  462. package/external/folly/folly/functional/Invoke.h +880 -0
  463. package/external/folly/folly/functional/Partial.h +130 -0
  464. package/external/folly/folly/functional/protocol.h +203 -0
  465. package/external/folly/folly/functional/test/ApplyTupleTest.cpp +549 -0
  466. package/external/folly/folly/functional/test/BUCK +57 -0
  467. package/external/folly/folly/functional/test/InvokeTest.cpp +483 -0
  468. package/external/folly/folly/functional/test/PartialTest.cpp +141 -0
  469. package/external/folly/folly/functional/test/protocol_test.cpp +177 -0
  470. package/external/folly/folly/functional/test/traits_test.cpp +551 -0
  471. package/external/folly/folly/functional/traits.h +675 -0
  472. package/external/folly/folly/hash/BUCK +86 -0
  473. package/external/folly/folly/hash/Checksum.cpp +275 -0
  474. package/external/folly/folly/hash/Checksum.h +94 -0
  475. package/external/folly/folly/hash/FarmHash.h +46 -0
  476. package/external/folly/folly/hash/Hash.h +1045 -0
  477. package/external/folly/folly/hash/MurmurHash.h +86 -0
  478. package/external/folly/folly/hash/SpookyHashV1.cpp +391 -0
  479. package/external/folly/folly/hash/SpookyHashV1.h +307 -0
  480. package/external/folly/folly/hash/SpookyHashV2.cpp +392 -0
  481. package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/hash/SpookyHashV2.h +6 -1
  482. package/external/folly/folly/hash/detail/BUCK +26 -0
  483. package/external/folly/folly/hash/detail/ChecksumDetail.cpp +296 -0
  484. package/external/folly/folly/hash/detail/ChecksumDetail.h +137 -0
  485. package/external/folly/folly/hash/detail/Crc32CombineDetail.cpp +191 -0
  486. package/external/folly/folly/hash/detail/Crc32cDetail.cpp +303 -0
  487. package/external/folly/folly/hash/test/BUCK +132 -0
  488. package/external/folly/folly/hash/test/ChecksumBenchmark.cpp +91 -0
  489. package/external/folly/folly/hash/test/ChecksumTest.cpp +587 -0
  490. package/external/folly/folly/hash/test/FarmHashTest.cpp +41 -0
  491. package/external/folly/folly/hash/test/HashBenchmark.cpp +238 -0
  492. package/external/folly/folly/hash/test/HashTest.cpp +997 -0
  493. package/external/folly/folly/hash/test/MurmurHashTest.cpp +76 -0
  494. package/external/folly/folly/hash/test/SpookyHashV1Test.cpp +559 -0
  495. package/external/folly/folly/hash/test/SpookyHashV2Test.cpp +549 -0
  496. package/external/folly/folly/hash/test/traits_test.cpp +69 -0
  497. package/external/folly/folly/hash/traits.h +115 -0
  498. package/external/folly/folly/json/BUCK +155 -0
  499. package/external/folly/folly/json/DynamicConverter.h +464 -0
  500. package/external/folly/folly/json/DynamicParser-inl.h +316 -0
  501. package/external/folly/folly/json/DynamicParser.cpp +198 -0
  502. package/external/folly/folly/json/DynamicParser.h +394 -0
  503. package/external/folly/folly/json/JSONSchema.cpp +1030 -0
  504. package/external/folly/folly/json/JSONSchema.h +73 -0
  505. package/external/folly/folly/json/JsonMockUtil.h +73 -0
  506. package/external/folly/folly/json/JsonTestUtil.cpp +167 -0
  507. package/external/folly/folly/json/JsonTestUtil.h +88 -0
  508. package/external/folly/folly/json/bser/BUCK +24 -0
  509. package/external/folly/folly/json/bser/Bser.h +107 -0
  510. package/external/folly/folly/json/bser/Dump.cpp +253 -0
  511. package/external/folly/folly/json/bser/Load.cpp +246 -0
  512. package/external/folly/folly/json/bser/test/BUCK +14 -0
  513. package/external/folly/folly/json/bser/test/BserTest.cpp +149 -0
  514. package/external/folly/folly/json/dynamic.cpp +552 -0
  515. package/external/folly/folly/json/dynamic.h +1346 -0
  516. package/external/folly/folly/json/json.h +238 -0
  517. package/external/folly/folly/json/json_patch.cpp +325 -0
  518. package/external/folly/folly/json/json_patch.h +126 -0
  519. package/external/folly/folly/json/json_pointer.cpp +114 -0
  520. package/external/folly/folly/json/json_pointer.h +87 -0
  521. package/external/folly/folly/json/test/BUCK +147 -0
  522. package/external/folly/folly/json/test/DynamicBenchmark.cpp +146 -0
  523. package/external/folly/folly/json/test/DynamicConverterTest.cpp +518 -0
  524. package/external/folly/folly/json/test/DynamicOtherTest.cpp +344 -0
  525. package/external/folly/folly/json/test/DynamicParserTest.cpp +443 -0
  526. package/external/folly/folly/json/test/DynamicTest.cpp +1647 -0
  527. package/external/folly/folly/json/test/JSONSchemaTest.cpp +450 -0
  528. package/external/folly/folly/json/test/JsonBenchmark.cpp +264 -0
  529. package/external/folly/folly/json/test/JsonOtherTest.cpp +51 -0
  530. package/external/folly/folly/json/test/JsonTest.cpp +1153 -0
  531. package/external/folly/folly/json/test/JsonTestUtilTest.cpp +97 -0
  532. package/external/folly/folly/json/test/json_patch_test.cpp +361 -0
  533. package/external/folly/folly/json/test/json_pointer_test.cpp +58 -0
  534. package/external/folly/folly/json/tool/BUCK +13 -0
  535. package/external/folly/folly/json/tool/JSONSchemaTester.cpp +58 -0
  536. package/external/folly/folly/json.h +17 -0
  537. package/external/folly/folly/json_patch.h +17 -0
  538. package/external/folly/folly/json_pointer.h +17 -0
  539. package/external/folly/folly/lang/Access.h +29 -0
  540. package/external/folly/folly/lang/Align.h +240 -0
  541. package/external/folly/folly/lang/Aligned.h +92 -0
  542. package/external/folly/folly/lang/Assume.h +82 -0
  543. package/external/folly/folly/lang/BUCK +287 -0
  544. package/external/folly/folly/lang/Badge.h +108 -0
  545. package/external/folly/folly/lang/Bits.h +570 -0
  546. package/external/folly/folly/lang/BitsClass.h +312 -0
  547. package/external/folly/folly/lang/Builtin.h +74 -0
  548. package/external/folly/folly/lang/CArray.h +34 -0
  549. package/external/folly/folly/lang/CString.cpp +86 -0
  550. package/external/folly/folly/lang/CString.h +55 -0
  551. package/external/folly/folly/lang/Cast.h +51 -0
  552. package/external/folly/folly/lang/CheckedMath.h +253 -0
  553. package/external/folly/folly/lang/CustomizationPoint.h +58 -0
  554. package/external/folly/folly/lang/Exception.cpp +822 -0
  555. package/external/folly/folly/lang/Exception.h +716 -0
  556. package/external/folly/folly/lang/Extern.h +55 -0
  557. package/external/folly/folly/lang/Hint-inl.h +144 -0
  558. package/external/folly/folly/lang/Hint.h +238 -0
  559. package/external/folly/folly/lang/Keep.h +98 -0
  560. package/external/folly/folly/lang/New.h +124 -0
  561. package/external/folly/folly/lang/Ordering.h +140 -0
  562. package/external/folly/folly/lang/Pretty.h +159 -0
  563. package/external/folly/folly/lang/PropagateConst.h +413 -0
  564. package/external/folly/folly/lang/RValueReferenceWrapper.h +152 -0
  565. package/external/folly/folly/lang/SafeAssert.cpp +589 -0
  566. package/external/folly/folly/lang/StaticConst.h +33 -0
  567. package/external/folly/folly/lang/Thunk.h +100 -0
  568. package/external/folly/folly/lang/TypeInfo.h +58 -0
  569. package/external/folly/folly/lang/UncaughtExceptions.cpp +17 -0
  570. package/external/folly/folly/lang/UncaughtExceptions.h +19 -0
  571. package/external/folly/folly/lang/test/AlignTest.cpp +87 -0
  572. package/external/folly/folly/lang/test/AlignedTest.cpp +130 -0
  573. package/external/folly/folly/lang/test/BUCK +258 -0
  574. package/external/folly/folly/lang/test/BadgeTest.cpp +89 -0
  575. package/external/folly/folly/lang/test/BitsBenchmark.cpp +164 -0
  576. package/external/folly/folly/lang/test/BitsClassBenchmark.cpp +122 -0
  577. package/external/folly/folly/lang/test/BitsClassTest.cpp +379 -0
  578. package/external/folly/folly/lang/test/BitsTest.cpp +577 -0
  579. package/external/folly/folly/lang/test/CStringTest.cpp +60 -0
  580. package/external/folly/folly/lang/test/CastTest.cpp +47 -0
  581. package/external/folly/folly/lang/test/CheckedMathTest.cpp +394 -0
  582. package/external/folly/folly/lang/test/ExceptionBench.cpp +427 -0
  583. package/external/folly/folly/lang/test/ExceptionTest.cpp +413 -0
  584. package/external/folly/folly/lang/test/ExternTest.cpp +39 -0
  585. package/external/folly/folly/lang/test/HintTest.cpp +100 -0
  586. package/external/folly/folly/lang/test/NewTest.cpp +38 -0
  587. package/external/folly/folly/lang/test/OrderingTest.cpp +105 -0
  588. package/external/folly/folly/lang/test/PrettyTest.cpp +44 -0
  589. package/external/folly/folly/lang/test/PropagateConstTest.cpp +356 -0
  590. package/external/folly/folly/lang/test/RValueReferenceWrapperTest.cpp +85 -0
  591. package/external/folly/folly/lang/test/SafeAssertTest.cpp +75 -0
  592. package/external/folly/folly/lang/test/ThunkTest.cpp +105 -0
  593. package/external/folly/folly/lang/test/ToAsciiBench.cpp +466 -0
  594. package/external/folly/folly/lang/test/ToAsciiTest.cpp +266 -0
  595. package/external/folly/folly/lang/test/TypeInfoTest.cpp +56 -0
  596. package/external/folly/folly/memcpy.S +292 -0
  597. package/external/folly/folly/memcpy_select_aarch64.cpp +145 -0
  598. package/external/folly/folly/memory/Arena-inl.h +83 -0
  599. package/external/folly/folly/memory/Arena.h +325 -0
  600. package/external/folly/folly/memory/BUCK +191 -0
  601. package/external/folly/folly/memory/JemallocHugePageAllocator.cpp +449 -0
  602. package/external/folly/folly/memory/JemallocHugePageAllocator.h +105 -0
  603. package/external/folly/folly/memory/JemallocHugePageAllocatorTest.cpp +341 -0
  604. package/external/folly/folly/memory/JemallocNodumpAllocator.cpp +176 -0
  605. package/external/folly/folly/memory/JemallocNodumpAllocator.h +119 -0
  606. package/external/folly/folly/memory/JemallocNodumpAllocatorTest.cpp +61 -0
  607. package/external/folly/folly/memory/MallctlHelper.cpp +37 -0
  608. package/external/folly/folly/memory/MallctlHelper.h +167 -0
  609. package/external/folly/folly/memory/Malloc.h +551 -0
  610. package/external/folly/folly/memory/MemoryResource.h +57 -0
  611. package/external/folly/folly/memory/ReentrantAllocator.cpp +162 -0
  612. package/external/folly/folly/memory/ReentrantAllocator.h +261 -0
  613. package/external/folly/folly/memory/SanitizeAddress.cpp +75 -0
  614. package/external/folly/folly/memory/SanitizeAddress.h +117 -0
  615. package/external/folly/folly/memory/SanitizeLeak.cpp +119 -0
  616. package/external/folly/folly/memory/SanitizeLeak.h +108 -0
  617. package/external/folly/folly/memory/ThreadCachedArena.cpp +53 -0
  618. package/external/folly/folly/memory/ThreadCachedArena.h +90 -0
  619. package/external/folly/folly/memory/UninitializedMemoryHacks.h +426 -0
  620. package/external/folly/folly/memory/detail/BUCK +10 -0
  621. package/external/folly/folly/memory/detail/MallocImpl.cpp +52 -0
  622. package/external/folly/folly/memory/detail/MallocImpl.h +97 -0
  623. package/external/folly/folly/memory/not_null-inl.h +522 -0
  624. package/external/folly/folly/memory/not_null.h +449 -0
  625. package/external/folly/folly/memory/test/ArenaTest.cpp +354 -0
  626. package/external/folly/folly/memory/test/BUCK +146 -0
  627. package/external/folly/folly/memory/test/MallctlHelperTest.cpp +169 -0
  628. package/external/folly/folly/memory/test/MallocBenchmark.cpp +91 -0
  629. package/external/folly/folly/memory/test/MallocTest.cpp +78 -0
  630. package/external/folly/folly/memory/test/MemoryResourceTest.cpp +31 -0
  631. package/external/folly/folly/memory/test/ReentrantAllocatorTest.cpp +144 -0
  632. package/external/folly/folly/memory/test/SanitizeAddressTest.cpp +67 -0
  633. package/external/folly/folly/memory/test/SanitizeLeakTest.cpp +139 -0
  634. package/external/folly/folly/memory/test/ThreadCachedArenaTest.cpp +276 -0
  635. package/external/folly/folly/memory/test/UninitializedMemoryHacksODR.cpp +21 -0
  636. package/external/folly/folly/memory/test/UninitializedMemoryHacksTest.cpp +327 -0
  637. package/external/folly/folly/memory/test/not_null_test.cpp +608 -0
  638. package/external/folly/folly/memset.S +245 -0
  639. package/external/folly/folly/memset_select_aarch64.cpp +72 -0
  640. package/external/folly/folly/portability/Asm.h +50 -0
  641. package/external/folly/folly/portability/Atomic.h +31 -0
  642. package/external/folly/folly/portability/BUCK +456 -0
  643. package/external/folly/folly/portability/Builtins.cpp +31 -0
  644. package/external/folly/folly/portability/Builtins.h +161 -0
  645. package/external/folly/folly/portability/Config.h +43 -0
  646. package/external/folly/folly/portability/Constexpr.h +145 -0
  647. package/external/folly/folly/portability/Dirent.cpp +140 -0
  648. package/external/folly/folly/portability/Dirent.h +41 -0
  649. package/external/folly/folly/portability/Event.h +44 -0
  650. package/external/folly/folly/portability/Fcntl.cpp +120 -0
  651. package/external/folly/folly/portability/Fcntl.h +67 -0
  652. package/external/folly/folly/portability/Filesystem.cpp +67 -0
  653. package/external/folly/folly/portability/Filesystem.h +114 -0
  654. package/external/folly/folly/portability/FmtCompile.h +40 -0
  655. package/external/folly/folly/portability/GFlags.h +139 -0
  656. package/external/folly/folly/portability/GMock.h +35 -0
  657. package/external/folly/folly/portability/GTest.h +35 -0
  658. package/external/folly/folly/portability/IOVec.h +34 -0
  659. package/external/folly/folly/portability/Libgen.cpp +59 -0
  660. package/external/folly/folly/portability/Libgen.h +29 -0
  661. package/external/folly/folly/portability/Libunwind.h +21 -0
  662. package/external/folly/folly/portability/Malloc.cpp +31 -0
  663. package/external/folly/folly/portability/Malloc.h +53 -0
  664. package/external/folly/folly/portability/Math.h +90 -0
  665. package/external/folly/folly/portability/Memory.h +26 -0
  666. package/external/folly/folly/portability/OpenSSL.cpp +17 -0
  667. package/external/folly/folly/portability/OpenSSL.h +102 -0
  668. package/external/folly/folly/portability/PThread.cpp +697 -0
  669. package/external/folly/folly/portability/PThread.h +148 -0
  670. package/external/folly/folly/portability/README.md +21 -0
  671. package/external/folly/folly/portability/Sched.cpp +41 -0
  672. package/external/folly/folly/portability/Sched.h +45 -0
  673. package/external/folly/folly/portability/Sockets.cpp +245 -0
  674. package/external/folly/folly/portability/Sockets.h +155 -0
  675. package/external/folly/folly/portability/SourceLocation.h +49 -0
  676. package/external/folly/folly/portability/Stdio.cpp +77 -0
  677. package/external/folly/folly/portability/Stdio.h +32 -0
  678. package/external/folly/folly/portability/Stdlib.cpp +172 -0
  679. package/external/folly/folly/portability/Stdlib.h +64 -0
  680. package/external/folly/folly/portability/String.cpp +53 -0
  681. package/external/folly/folly/portability/String.h +39 -0
  682. package/external/folly/folly/portability/SysFile.cpp +46 -0
  683. package/external/folly/folly/portability/SysFile.h +27 -0
  684. package/external/folly/folly/portability/SysMembarrier.cpp +104 -0
  685. package/external/folly/folly/portability/SysMembarrier.h +26 -0
  686. package/external/folly/folly/portability/SysMman.cpp +242 -0
  687. package/external/folly/folly/portability/SysMman.h +68 -0
  688. package/external/folly/folly/portability/SysResource.cpp +108 -0
  689. package/external/folly/folly/portability/SysResource.h +71 -0
  690. package/external/folly/folly/portability/SysStat.cpp +66 -0
  691. package/external/folly/folly/portability/SysStat.h +52 -0
  692. package/external/folly/folly/portability/SysSyscall.h +73 -0
  693. package/external/folly/folly/portability/SysTime.cpp +62 -0
  694. package/external/folly/folly/portability/SysTime.h +50 -0
  695. package/external/folly/folly/portability/SysTypes.h +44 -0
  696. package/external/folly/folly/portability/SysUio.cpp +179 -0
  697. package/external/folly/folly/portability/SysUio.h +51 -0
  698. package/external/folly/folly/portability/Syslog.h +39 -0
  699. package/external/folly/folly/portability/Time.cpp +357 -0
  700. package/external/folly/folly/portability/Time.h +74 -0
  701. package/external/folly/folly/portability/Unistd.h +111 -0
  702. package/external/folly/folly/portability/Windows.h +108 -0
  703. package/external/folly/folly/portability/openat2.c +30 -0
  704. package/external/folly/folly/portability/openat2.h +39 -0
  705. package/external/folly/folly/portability/test/BUCK +59 -0
  706. package/external/folly/folly/portability/test/ConstexprTest.cpp +102 -0
  707. package/external/folly/folly/portability/test/FilesystemTest.cpp +35 -0
  708. package/external/folly/folly/portability/test/LibgenTest.cpp +35 -0
  709. package/external/folly/folly/portability/test/OpenSSLPortabilityTest.cpp +108 -0
  710. package/external/folly/folly/portability/test/PThreadTest.cpp +80 -0
  711. package/external/folly/folly/portability/test/TimeTest.cpp +90 -0
  712. package/external/folly/folly/small_vector.h +17 -0
  713. package/external/folly/folly/somerge_defs.bzl +399 -0
  714. package/external/folly/folly/sorted_vector_types.h +17 -0
  715. package/external/folly/folly/stop_watch.h +317 -0
  716. package/external/folly/folly/synchronization/AsymmetricThreadFence.cpp +91 -0
  717. package/external/folly/folly/synchronization/AsymmetricThreadFence.h +60 -0
  718. package/external/folly/folly/synchronization/AtomicNotification-inl.h +146 -0
  719. package/external/folly/folly/synchronization/AtomicNotification.cpp +34 -0
  720. package/external/folly/folly/synchronization/AtomicNotification.h +117 -0
  721. package/external/folly/folly/synchronization/AtomicRef.h +181 -0
  722. package/external/folly/folly/synchronization/AtomicStruct.h +150 -0
  723. package/external/folly/folly/synchronization/AtomicUtil-inl.h +482 -0
  724. package/external/folly/folly/synchronization/AtomicUtil.h +179 -0
  725. package/external/folly/folly/synchronization/BUCK +418 -0
  726. package/external/folly/folly/synchronization/Baton.h +419 -0
  727. package/external/folly/folly/synchronization/CallOnce.h +263 -0
  728. package/external/folly/folly/synchronization/DelayedInit.h +179 -0
  729. package/external/folly/folly/synchronization/DistributedMutex-inl.h +1744 -0
  730. package/external/folly/folly/synchronization/DistributedMutex.cpp +27 -0
  731. package/external/folly/folly/synchronization/DistributedMutex.h +342 -0
  732. package/external/folly/folly/synchronization/EventCount.h +200 -0
  733. package/external/folly/folly/synchronization/FlatCombining.h +629 -0
  734. package/external/folly/folly/synchronization/Hazptr-fwd.h +217 -0
  735. package/external/folly/folly/synchronization/Hazptr.cpp +36 -0
  736. package/external/folly/folly/synchronization/Hazptr.h +209 -0
  737. package/external/folly/folly/synchronization/HazptrDomain.cpp +68 -0
  738. package/external/folly/folly/synchronization/HazptrDomain.h +832 -0
  739. package/external/folly/folly/synchronization/HazptrHolder.h +431 -0
  740. package/external/folly/folly/synchronization/HazptrObj.h +533 -0
  741. package/external/folly/folly/synchronization/HazptrObjLinked.h +315 -0
  742. package/external/folly/folly/synchronization/HazptrRec.h +68 -0
  743. package/external/folly/folly/synchronization/HazptrThrLocal.h +180 -0
  744. package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.cpp +46 -0
  745. package/external/folly/folly/synchronization/HazptrThreadPoolExecutor.h +25 -0
  746. package/external/folly/folly/synchronization/Latch.h +160 -0
  747. package/external/folly/folly/synchronization/LifoSem.h +767 -0
  748. package/external/folly/folly/synchronization/Lock.h +887 -0
  749. package/external/folly/folly/synchronization/MicroSpinLock.h +154 -0
  750. package/external/folly/folly/synchronization/NativeSemaphore.h +187 -0
  751. package/external/folly/folly/synchronization/ParkingLot.cpp +37 -0
  752. package/external/folly/folly/synchronization/ParkingLot.h +330 -0
  753. package/external/folly/folly/synchronization/PicoSpinLock.h +167 -0
  754. package/external/folly/folly/synchronization/RWSpinLock.h +549 -0
  755. package/external/folly/folly/synchronization/Rcu.cpp +26 -0
  756. package/external/folly/folly/synchronization/Rcu.h +553 -0
  757. package/external/folly/folly/synchronization/RelaxedAtomic.h +336 -0
  758. package/external/folly/folly/synchronization/SanitizeThread.cpp +141 -0
  759. package/external/folly/folly/synchronization/SanitizeThread.h +166 -0
  760. package/external/folly/folly/synchronization/SaturatingSemaphore.h +324 -0
  761. package/external/folly/folly/synchronization/SmallLocks.h +36 -0
  762. package/external/folly/folly/synchronization/ThrottledLifoSem.h +362 -0
  763. package/external/folly/folly/synchronization/WaitOptions.cpp +25 -0
  764. package/external/folly/folly/synchronization/WaitOptions.h +75 -0
  765. package/external/folly/folly/synchronization/detail/AtomicUtils.h +59 -0
  766. package/external/folly/folly/synchronization/detail/BUCK +104 -0
  767. package/external/folly/folly/synchronization/detail/Hardware.cpp +192 -0
  768. package/external/folly/folly/synchronization/detail/Hardware.h +75 -0
  769. package/external/folly/folly/synchronization/detail/HazptrUtils.h +339 -0
  770. package/external/folly/folly/synchronization/detail/InlineFunctionRef.h +229 -0
  771. package/external/folly/folly/synchronization/detail/Sleeper.cpp +27 -0
  772. package/external/folly/folly/synchronization/detail/Sleeper.h +62 -0
  773. package/external/folly/folly/synchronization/detail/Spin.h +96 -0
  774. package/external/folly/folly/synchronization/detail/ThreadCachedLists.h +174 -0
  775. package/external/folly/folly/synchronization/detail/ThreadCachedReaders.h +189 -0
  776. package/external/folly/folly/synchronization/detail/ThreadCachedTag.h +26 -0
  777. package/external/folly/folly/synchronization/detail/test/BUCK +28 -0
  778. package/external/folly/folly/synchronization/detail/test/HardwareTest.cpp +74 -0
  779. package/external/folly/folly/synchronization/detail/test/InlineFunctionRefTest.cpp +286 -0
  780. package/external/folly/folly/synchronization/example/BUCK +27 -0
  781. package/external/folly/folly/synchronization/example/HazptrLockFreeLIFO.h +88 -0
  782. package/external/folly/folly/synchronization/example/HazptrSWMRSet.h +133 -0
  783. package/external/folly/folly/synchronization/example/HazptrWideCAS.h +62 -0
  784. package/external/folly/folly/synchronization/test/AtomicNotificationTest.cpp +236 -0
  785. package/external/folly/folly/synchronization/test/AtomicRefTest.cpp +170 -0
  786. package/external/folly/folly/synchronization/test/AtomicStructTest.cpp +65 -0
  787. package/external/folly/folly/synchronization/test/AtomicUtilBench.cpp +457 -0
  788. package/external/folly/folly/synchronization/test/AtomicUtilTest.cpp +650 -0
  789. package/external/folly/folly/synchronization/test/BUCK +495 -0
  790. package/external/folly/folly/synchronization/test/Barrier.h +52 -0
  791. package/external/folly/folly/synchronization/test/BarrierTest.cpp +56 -0
  792. package/external/folly/folly/synchronization/test/BatonBenchmark.cpp +77 -0
  793. package/external/folly/folly/synchronization/test/BatonTest.cpp +164 -0
  794. package/external/folly/folly/synchronization/test/BatonTestHelpers.h +118 -0
  795. package/external/folly/folly/synchronization/test/CallOnceBenchmark.cpp +72 -0
  796. package/external/folly/folly/synchronization/test/CallOnceTest.cpp +153 -0
  797. package/external/folly/folly/synchronization/test/DelayedInitTest.cpp +281 -0
  798. package/external/folly/folly/synchronization/test/DistributedMutexTest.cpp +2074 -0
  799. package/external/folly/folly/synchronization/test/EventCountTest.cpp +124 -0
  800. package/external/folly/folly/synchronization/test/FlatCombiningBenchmark.cpp +1789 -0
  801. package/external/folly/folly/synchronization/test/FlatCombiningExamples.h +222 -0
  802. package/external/folly/folly/synchronization/test/FlatCombiningTest.cpp +121 -0
  803. package/external/folly/folly/synchronization/test/FlatCombiningTestHelpers.h +227 -0
  804. package/external/folly/folly/synchronization/test/HazptrTest.cpp +1689 -0
  805. package/external/folly/folly/synchronization/test/LatchTest.cpp +224 -0
  806. package/external/folly/folly/synchronization/test/LifoSemBench.cpp +185 -0
  807. package/external/folly/folly/synchronization/test/LifoSemTests.cpp +353 -0
  808. package/external/folly/folly/synchronization/test/LockTest.cpp +1239 -0
  809. package/external/folly/folly/synchronization/test/NativeSemaphoreTest.cpp +37 -0
  810. package/external/folly/folly/synchronization/test/ParkingLotBenchmark.cpp +239 -0
  811. package/external/folly/folly/synchronization/test/ParkingLotTest.cpp +170 -0
  812. package/external/folly/folly/synchronization/test/RWSpinLockTest.cpp +235 -0
  813. package/external/folly/folly/synchronization/test/RcuBench.cpp +66 -0
  814. package/external/folly/folly/synchronization/test/RcuTest.cpp +330 -0
  815. package/external/folly/folly/synchronization/test/RelaxedAtomicTest.cpp +389 -0
  816. package/external/folly/folly/synchronization/test/SaturatingSemaphoreTest.cpp +166 -0
  817. package/external/folly/folly/synchronization/test/Semaphore.h +242 -0
  818. package/external/folly/folly/synchronization/test/SemaphoreTest.cpp +271 -0
  819. package/external/folly/folly/synchronization/test/SmallLocksBenchmark.cpp +1296 -0
  820. package/external/folly/folly/synchronization/test/SmallLocksTest.cpp +510 -0
  821. package/external/folly/folly/synchronization/test/ThreadCachedEpochBench.h +67 -0
  822. package/external/folly/folly/synchronization/test/ThreadCachedReadersBench.cpp +42 -0
  823. package/external/folly/folly/synchronization/test/ThreadCachedReadersTest.cpp +52 -0
  824. package/external/folly/folly/synchronization/test/ThrottledLifoSemTest.cpp +243 -0
  825. package/external/folly/folly/system/AtFork.cpp +205 -0
  826. package/external/folly/folly/system/AtFork.h +116 -0
  827. package/external/folly/folly/system/AuxVector.h +198 -0
  828. package/external/folly/folly/system/BUCK +144 -0
  829. package/external/folly/folly/system/EnvUtil.cpp +93 -0
  830. package/external/folly/folly/system/EnvUtil.h +113 -0
  831. package/external/folly/folly/system/HardwareConcurrency.cpp +39 -0
  832. package/external/folly/folly/system/HardwareConcurrency.h +23 -0
  833. package/external/folly/folly/system/MemoryMapping.cpp +477 -0
  834. package/external/folly/folly/system/MemoryMapping.h +287 -0
  835. package/external/folly/folly/system/Pid.cpp +87 -0
  836. package/external/folly/folly/system/Pid.h +34 -0
  837. package/external/folly/folly/system/Shell.cpp +33 -0
  838. package/external/folly/folly/system/Shell.h +93 -0
  839. package/external/folly/folly/system/ThreadId.cpp +89 -0
  840. package/external/folly/folly/system/ThreadId.h +62 -0
  841. package/external/folly/folly/system/ThreadName.cpp +330 -0
  842. package/external/folly/folly/system/ThreadName.h +72 -0
  843. package/external/folly/folly/system/test/AtForkTest.cpp +309 -0
  844. package/external/folly/folly/system/test/AuxVectorTest.cpp +55 -0
  845. package/external/folly/folly/system/test/BUCK +120 -0
  846. package/external/folly/folly/system/test/EnvUtilSubprocess.cpp +26 -0
  847. package/external/folly/folly/system/test/EnvUtilTest.cpp +197 -0
  848. package/external/folly/folly/system/test/MemoryMappingTest.cpp +179 -0
  849. package/external/folly/folly/system/test/PidTest.cpp +46 -0
  850. package/external/folly/folly/system/test/ShellTest.cpp +66 -0
  851. package/external/folly/folly/system/test/ThreadIdTest.cpp +114 -0
  852. package/external/folly/folly/system/test/ThreadNameTest.cpp +85 -0
  853. package/external/folly/folly.vcxitems +164 -0
  854. package/external/folly/sync-config.json +8 -0
  855. package/package.json +3 -3
  856. package/template/cpp-app/proj/MyApp.sln +0 -33
  857. package/template/cpp-lib/proj/MyLib.sln +0 -33
  858. package/template/cs-app/proj/MyApp.sln +0 -33
  859. package/template/cs-lib/proj/MyLib.sln +0 -33
  860. package/templates/cpp-app/windows/MyApp.sln +0 -33
  861. package/templates/cpp-lib/windows/MyLib.sln +0 -33
  862. package/Folly/Folly.vcxproj +0 -383
  863. package/Folly/Folly.vcxproj.filters +0 -558
  864. package/Folly/Folly.win32.vcxproj +0 -11
  865. package/Folly/packages.lock.win32.json +0 -20
  866. package/fmt/fmt.vcxproj +0 -163
  867. package/fmt/fmt.vcxproj.filters +0 -59
  868. package/fmt/fmt.win32.vcxproj +0 -10
  869. package/fmt/pch.cpp +0 -4
  870. package/fmt/pch.h +0 -2
  871. /package/{Folly → external/folly}/Folly.natvis +0 -0
  872. /package/{Folly → external/folly}/cgmanifest.json +0 -0
  873. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/ConstexprMath.h +0 -0
  874. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/Conv.cpp +0 -0
  875. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/chrono/Hardware.h +0 -0
  876. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/concurrency/CacheLocality.cpp +0 -0
  877. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/dynamic-inl.h +0 -0
  878. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/json/json.cpp +0 -0
  879. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/SafeAssert.h +0 -0
  880. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.cpp +0 -0
  881. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/lang/ToAscii.h +0 -0
  882. /package/{Folly/TEMP_UntilFollyUpdate → external/folly/folly}/portability/Unistd.cpp +0 -0
@@ -0,0 +1,55 @@
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
+ // FOLLY_CREATE_EXTERN_ACCESSOR
20
+ //
21
+ // Defines a variable template which holds the address of an object or null
22
+ // given a condition which identifies whether that object is expected to have
23
+ // a definition.
24
+ //
25
+ // Example:
26
+ //
27
+ // extern void foobar(int); // may be defined in another library
28
+ // inline constexpr bool has_foobar = // ...
29
+ //
30
+ // namespace myapp {
31
+ // FOLLY_CREATE_EXTERN_ACCESSOR(access_foobar_v, ::foobar);
32
+ // void try_foobar(int num) {
33
+ // if (auto ptr = access_foobar_v<has_foobar>) {
34
+ // ptr(num);
35
+ // }
36
+ // }
37
+ // }
38
+ //
39
+ // Remarks:
40
+ //
41
+ // This can be done more simply using weak symbols. But weak symbols are non-
42
+ // portable and the rules around the use of weak symbols are complex.
43
+ #define FOLLY_CREATE_EXTERN_ACCESSOR(varname, name) \
44
+ struct __folly_extern_accessor_##varname { \
45
+ template <bool E, typename N> \
46
+ static constexpr N* get() noexcept { \
47
+ if constexpr (E) { \
48
+ return &name; \
49
+ } else { \
50
+ return nullptr; \
51
+ } \
52
+ } \
53
+ }; \
54
+ template <bool E, typename N = decltype(name)> \
55
+ inline constexpr N* varname = __folly_extern_accessor_##varname::get<E, N>()
@@ -0,0 +1,144 @@
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
+ namespace folly {
20
+
21
+ FOLLY_ALWAYS_INLINE void compiler_may_unsafely_assume(bool cond) {
22
+ FOLLY_SAFE_DCHECK(cond, "compiler-hint assumption fails at runtime");
23
+ #if defined(__clang__)
24
+ __builtin_assume(cond);
25
+ #elif defined(__GNUC__)
26
+ if (!cond) {
27
+ __builtin_unreachable();
28
+ }
29
+ #elif defined(_MSC_VER)
30
+ __assume(cond);
31
+ #else
32
+ while (!cond)
33
+ ;
34
+ #endif
35
+ }
36
+
37
+ [[noreturn]] FOLLY_ALWAYS_INLINE void
38
+ compiler_may_unsafely_assume_unreachable() {
39
+ FOLLY_SAFE_DCHECK(false, "compiler-hint unreachability reached at runtime");
40
+ #if defined(__GNUC__)
41
+ __builtin_unreachable();
42
+ #elif defined(_MSC_VER)
43
+ __assume(0);
44
+ #else
45
+ while (!0)
46
+ ;
47
+ #endif
48
+ }
49
+
50
+ FOLLY_ALWAYS_INLINE void compiler_may_unsafely_assume_separate_storage(
51
+ void const* const a, void const* const b) {
52
+ FOLLY_SAFE_DCHECK(
53
+ a != b, "compiler-hint separate storage assumption fails at runtime");
54
+ #if FOLLY_HAS_BUILTIN(__builtin_assume_separate_storage)
55
+ __builtin_assume_separate_storage(a, b);
56
+ #endif
57
+ }
58
+
59
+ #if defined(_MSC_VER) && !defined(__clang__)
60
+
61
+ namespace detail {
62
+
63
+ #pragma optimize("", off)
64
+
65
+ inline void compiler_must_force_sink(void const*) {}
66
+
67
+ #pragma optimize("", on)
68
+
69
+ } // namespace detail
70
+
71
+ template <typename T>
72
+ FOLLY_ALWAYS_INLINE void compiler_must_not_elide_fn::operator()(
73
+ T const& t) const noexcept {
74
+ detail::compiler_must_force_sink(&t);
75
+ }
76
+
77
+ template <typename T>
78
+ FOLLY_ALWAYS_INLINE void compiler_must_not_predict_fn::operator()(
79
+ T& t) const noexcept {
80
+ detail::compiler_must_force_sink(&t);
81
+ }
82
+
83
+ #else
84
+
85
+ namespace detail {
86
+
87
+ template <typename T, typename D = std::decay_t<T>>
88
+ using compiler_must_force_indirect = std::bool_constant<
89
+ !std::is_trivially_copyable_v<D> || //
90
+ sizeof(long) < sizeof(D) || //
91
+ std::is_pointer<D>::value>;
92
+
93
+ template <typename T>
94
+ FOLLY_ALWAYS_INLINE void compiler_must_not_elide(T const& t, std::false_type) {
95
+ // the "r" constraint forces the compiler to make the value available in a
96
+ // register to the asm block, which means that it must first have been
97
+ // computed or loaded
98
+ //
99
+ // used for small trivial values which the compiler will put into registers
100
+ //
101
+ // avoided for pointers to avoid fallout in calling code which mistakenly
102
+ // applies the hint to the address of a value but not to the value itself
103
+ asm volatile("" : : "r"(t));
104
+ }
105
+
106
+ template <typename T>
107
+ FOLLY_ALWAYS_INLINE void compiler_must_not_elide(T const& t, std::true_type) {
108
+ // tells the compiler that the asm block will read the value from memory,
109
+ // and that in addition it might read or write from any memory location
110
+ //
111
+ // if the memory clobber could be split into input and output, that would be
112
+ // preferrable
113
+ asm volatile("" : : "m"(t) : "memory");
114
+ }
115
+
116
+ template <typename T>
117
+ FOLLY_ALWAYS_INLINE void compiler_must_not_predict(T& t, std::false_type) {
118
+ asm volatile("" : "+r"(t));
119
+ }
120
+
121
+ template <typename T>
122
+ FOLLY_ALWAYS_INLINE void compiler_must_not_predict(T& t, std::true_type) {
123
+ asm volatile("" : : "m"(t) : "memory");
124
+ }
125
+
126
+ } // namespace detail
127
+
128
+ template <typename T>
129
+ FOLLY_ALWAYS_INLINE void compiler_must_not_elide_fn::operator()(
130
+ T const& t) const noexcept {
131
+ using i = detail::compiler_must_force_indirect<T>;
132
+ detail::compiler_must_not_elide(t, i{});
133
+ }
134
+
135
+ template <typename T>
136
+ FOLLY_ALWAYS_INLINE void compiler_must_not_predict_fn::operator()(
137
+ T& t) const noexcept {
138
+ using i = detail::compiler_must_force_indirect<T>;
139
+ detail::compiler_must_not_predict(t, i{});
140
+ }
141
+
142
+ #endif
143
+
144
+ } // namespace folly
@@ -0,0 +1,238 @@
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 <type_traits>
20
+
21
+ #include <folly/Portability.h>
22
+ #include <folly/Traits.h>
23
+ #include <folly/lang/SafeAssert.h>
24
+
25
+ namespace folly {
26
+
27
+ // compiler_may_unsafely_assume
28
+ //
29
+ // Unsafe. Avoid when not absolutely necessary.
30
+ //
31
+ // Permits the compiler to assume the truth of the provided expression and to
32
+ // optimize the surrounding code as if that expression were true.
33
+ //
34
+ // Causes every possible kind of subtle, irreproducible, non-debuggable failure
35
+ // if the provided expression is ever, for any reason, false: random crashes,
36
+ // silent memory corruptions, arbitrary code execution, privacy violation, etc.
37
+ //
38
+ // Must only be used on conditions that are provable internal logic invariants.
39
+ //
40
+ // Must not be used on conditions which depend on external inputs. For such
41
+ // cases, an assertion or exception may be used instead.
42
+ void compiler_may_unsafely_assume(bool cond);
43
+
44
+ // compiler_may_unsafely_assume_unreachable
45
+ //
46
+ // Unsafe. Avoid when not absolutely necessary.
47
+ //
48
+ // Permits the compiler to assume that the given statement cannot be reached
49
+ // and to optimize the surrounding code accordingly. Permits call sites to omit
50
+ // return statements in non-void-returning functions without compiler error.
51
+ //
52
+ // Causes every possible kind of subtle, irreproducible, non-debuggable failure
53
+ // if the given statement is ever, for any reason, reached: random crashes,
54
+ // silent memory corruptions, arbitrary code execution, privacy violation, etc.
55
+ //
56
+ // Must only be used on conditions that are provable internal logic invariants.
57
+ //
58
+ // Must not be used on conditions which depend on external inputs. For such
59
+ // cases, an assertion or exception may be used instead.
60
+ [[noreturn]] void compiler_may_unsafely_assume_unreachable();
61
+
62
+ // compiler_may_unsafely_assume_separate_storage
63
+ //
64
+ // Unsafe. Avoid when not absolutely necessary.
65
+ //
66
+ // Permits the compiler to assume that the given pointers point into regions
67
+ // that were allocated separately, and that therefore any pointers at any
68
+ // offset relative to one is never equal to any pointer at any offset relative
69
+ // to the other.
70
+ //
71
+ // Regions being allocated separately means that they are separate global
72
+ // variables, thread-local variables, stack variables, or heap allocations.
73
+ //
74
+ // This can be helpful when some library has an ownership model that is opaque
75
+ // to the compiler. For example, modifying some_vector[0] never modifies the
76
+ // vector itself; changes to parser state don't need to be stored to memory
77
+ // before reading the next byte of data to be parsed, etc.
78
+ void compiler_may_unsafely_assume_separate_storage(
79
+ const void* a, const void* b);
80
+
81
+ // compiler_must_not_elide
82
+ //
83
+ // Ensures that the referred-to value will be computed even when an optimizing
84
+ // compiler might otherwise remove the computation. Note: this hint takes its
85
+ // value parameter by reference.
86
+ //
87
+ // Useful for values that are computed during benchmarking but otherwise are
88
+ // unused. The compiler tends to do a good job at eliminating unused variables,
89
+ // which can affect benchmark results, and this hint instructs the compiler to
90
+ // treat the value as though it were used.
91
+ struct compiler_must_not_elide_fn {
92
+ template <typename T>
93
+ FOLLY_ALWAYS_INLINE void operator()(T const& t) const noexcept;
94
+ };
95
+ inline constexpr compiler_must_not_elide_fn compiler_must_not_elide{};
96
+
97
+ // compiler_must_not_predict
98
+ //
99
+ // Ensures that the compiler will not use its knowledge of the referred-to
100
+ // value to optimize or otherwise shape the following code. Note: this hint
101
+ // takes its value parameter by reference.
102
+ //
103
+ // Useful when constant propagation or power reduction is possible in a
104
+ // benchmark but not in real use cases. Optimizations done to benchmarked code
105
+ // which cannot be done to real code can affect benchmark results, and this
106
+ // hint instructs the compiler to treat value which it can predict as though it
107
+ // were unpredictable.
108
+ struct compiler_must_not_predict_fn {
109
+ template <typename T>
110
+ FOLLY_ALWAYS_INLINE void operator()(T& t) const noexcept;
111
+ };
112
+ inline constexpr compiler_must_not_predict_fn compiler_must_not_predict{};
113
+
114
+ // ----
115
+
116
+ namespace detail {
117
+
118
+ template <typename T>
119
+ using detect_folly_is_unsafe_for_async_usage =
120
+ typename T::folly_is_unsafe_for_async_usage;
121
+
122
+ // is_unsafe_for_async_usage_v
123
+ //
124
+ // Whether a type is directly marked as unsafe for async usage with a member
125
+ // type alias. See unsafe_for_async_usage below.
126
+ template <typename T>
127
+ inline constexpr bool is_unsafe_for_async_usage_v = detected_or_t<
128
+ std::false_type,
129
+ detail::detect_folly_is_unsafe_for_async_usage,
130
+ T>::value;
131
+
132
+ } // namespace detail
133
+
134
+ // unsafe_for_async_usage
135
+ //
136
+ // Defines member type alias folly_is_unsafe_for_async_usage, which is the tag
137
+ // marking the class as unsafe for async usage. Serves as a convenience wrapper
138
+ // around the tag.
139
+ //
140
+ // The meaning of the tag is that the current thread must not be yielded in any
141
+ // way during the lifetime of any tagged object.
142
+ //
143
+ // The most common form of yielding the current thread during the lifetime of
144
+ // an object is where the lifetime of the object crosses a coroutine suspension
145
+ // point. Example:
146
+ //
147
+ // struct unsafe : private unsafe_for_async_usage {};
148
+ // Task<> sink();
149
+ // Task<> go() {
150
+ // unsafe object; // object is tagged as unsafe for async usage
151
+ // co_await sink(); // but crossing the co_await is async usage
152
+ // }
153
+ //
154
+ // Some objects, especially some which are intended for use with the RAII
155
+ // pattern, may be thread-sensitive and permit access only on one single thread
156
+ // throughout their lifetimes. Or they may be non-reentrant and may permit only
157
+ // well-nested accesses or may not permit any reentrant accesses at all. In
158
+ // either case, they do not permit yielding the current thread during their
159
+ // lifetimes. Examples:
160
+ // * Some objects that rely internally on thread-locals.
161
+ // * In particular, the storage defined by FOLLY_DECLARE_REUSED.
162
+ // * lock_guards for most mutexes.
163
+ // * Some advanced concurrency primitives.
164
+ // * In particular, hazard-pointers and rcu-guards.
165
+ //
166
+ // Note that the current thread being yielded refers to any form of cooperative
167
+ // multitasking, such as coroutines, as compared with the kernel preempting the
168
+ // current thread and then resuming it later.
169
+ //
170
+ // In order to mark a class type, either:
171
+ // * Declare a member type alias
172
+ // `using folly_is_unsafe_for_async_usage = std::true_type`.
173
+ // * Declare either a non-static data member or a base which is marked. As a
174
+ // convenience, unsafe_for_async_usage is marked and may be used as that non-
175
+ // static data member or base. If using a non-static data member, it is ideal
176
+ // to declare it with attribute [[no_unique_address]], possibly as wrapped in
177
+ // FOLLY_ATTR_NO_UNIQUE_ADDRESS, to avoid increasing the size of the class.
178
+ // * std::lock_guard/unique_lock/scoped_lock are considered unsafe unless the
179
+ // underlying mutex has a typedef `folly_coro_aware_mutex`.
180
+ //
181
+ // NOTE: you can explicitly opt out from a check for a type by having
182
+ // `folly_is_unsafe_for_async_usage` be `std::false_type`.
183
+ //
184
+ // It is recommended to use a non-static data member or a base which is marked,
185
+ // in preference to using a member type alias, since it is impossible to typo
186
+ // the spelling of a non-static data member or base while it is easy to typo
187
+ // the spelling of a member type alias.
188
+ //
189
+ // Example:
190
+ //
191
+ // struct thread_counter {
192
+ // static thread_local int value;
193
+ // };
194
+ // struct thread_counter_raii : private unsafe_for_async_usage {
195
+ // thread_counter_raii() { ++thread_counter::value; }
196
+ // ~thread_counter_raii() { --thread_counter::value; }
197
+ // };
198
+ // coroutine callee();
199
+ // coroutine caller() {
200
+ // thread_counter_raii g;
201
+ // co_await callee(); // static analysis might warn here
202
+ // }
203
+ //
204
+ // This marker can be used to implement a static analysis that detects misuses
205
+ // with objects of classes marked with this tag, namely, where the current
206
+ // thread may be yielded in any way during the lifetimes of such objects.
207
+ struct unsafe_for_async_usage { // a convenience wrapper for the marker below:
208
+ // the marker member type alias
209
+ using folly_is_unsafe_for_async_usage = std::true_type;
210
+ };
211
+ static_assert(detail::is_unsafe_for_async_usage_v<unsafe_for_async_usage>, "");
212
+
213
+ namespace detail {
214
+
215
+ template <typename T>
216
+ using detect_folly_is_coro_aware_mutex = typename T::folly_coro_aware_mutex;
217
+
218
+ } // namespace detail
219
+
220
+ // Inheriting or having a member `unsafe_for_async_usage_if` will conditionally
221
+ // tag the type.
222
+ template <bool If>
223
+ struct unsafe_for_async_usage_if {};
224
+
225
+ template <>
226
+ struct unsafe_for_async_usage_if<true> {
227
+ using folly_is_unsafe_for_async_usage = std::true_type;
228
+ };
229
+
230
+ // Detects the presense of folly_coro_aware_mutex nested typedef.
231
+ // This helps custom lock guards have the same behavior as std::lock_guard.
232
+ template <typename T>
233
+ constexpr bool is_coro_aware_mutex_v =
234
+ is_detected_v<detail::detect_folly_is_coro_aware_mutex, T>;
235
+
236
+ } // namespace folly
237
+
238
+ #include <folly/lang/Hint-inl.h>
@@ -0,0 +1,98 @@
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 <folly/CPortability.h>
20
+
21
+ // FOLLY_KEEP
22
+ //
23
+ // When applied to a function, prevents removal of the function. Useful for
24
+ // marking functions which it is desirable to keep.
25
+ //
26
+ // A common use-case is for keeping unused functions in test or benchmark
27
+ // programs which serve as convenient targets for inspecting how the compiler
28
+ // translates source code to machine code. Such functions may be disassembled
29
+ // for inspection in the debugger of with the objdump tool, and are often, for
30
+ // lack of imagination, called check functions in test and benchmark programs.
31
+ //
32
+ // Example:
33
+ //
34
+ // extern "C" FOLLY_KEEP void check_throw_int_0() {
35
+ // throw 0;
36
+ // }
37
+ //
38
+ // $ objdump -dCM intel-mnemonic path/to/binary | less
39
+ // # less permits searching for check_throw_int_0
40
+ //
41
+ // $ gdb path/to/binary -q -batch -ex 'disassemble check_throw_int_0'
42
+ //
43
+ // Functions may be removed when building with both function-sections and
44
+ // gc-sections. It is tricky to keep them; this utility captures the steps
45
+ // required.
46
+ //
47
+ // In order for this mechanism to work, this header must be included. This
48
+ // mechanism relies on the hidden global variable below.
49
+ //
50
+ // The linker, when asked to with --gc-sections, may throw out unreferenced
51
+ // sections. When the compiler emits each function into its own section, as it
52
+ // does when asked to with -ffunction-sections, the linker will throw out
53
+ // unreferenced functions. The key is to move all kept functions into a single
54
+ // section, avoiding the behavior of -ffunction-sections, and then force the
55
+ // compiler to emit some reference to at least one function in that section.
56
+ // This way, the linker will see at least one reference to the kept section,
57
+ // and so will not throw it out.
58
+ #if __GNUC__ && __linux__
59
+ #define FOLLY_KEEP [[gnu::section(".text.folly.keep")]]
60
+ #else
61
+ #define FOLLY_KEEP
62
+ #endif
63
+
64
+ #if __GNUC__ && __linux__
65
+ #if defined(__clang__) || FOLLY_ARM || FOLLY_AARCH64
66
+ #define FOLLY_KEEP_DETAIL_ATTR_NAKED [[gnu::naked]]
67
+ #else
68
+ #define FOLLY_KEEP_DETAIL_ATTR_NAKED
69
+ #endif
70
+ #define FOLLY_KEEP_DETAIL_ATTR_NOINLINE [[gnu::noinline]]
71
+ #else
72
+ #define FOLLY_KEEP_DETAIL_ATTR_NAKED
73
+ #define FOLLY_KEEP_DETAIL_ATTR_NOINLINE
74
+ #endif
75
+
76
+ namespace folly {
77
+ namespace detail {
78
+
79
+ // marking this as [[gnu::naked]] gets clang not to emit any text for this
80
+ FOLLY_KEEP FOLLY_KEEP_DETAIL_ATTR_NAKED static void keep_anchor() {}
81
+
82
+ class keep {
83
+ public:
84
+ // must accept the anchor function as an argument
85
+ FOLLY_KEEP_DETAIL_ATTR_NOINLINE explicit keep(void (*)()) noexcept {}
86
+ };
87
+
88
+ // noinline ctor and trivial dtor minimize the text size of this
89
+ static keep keep_instance{keep_anchor};
90
+
91
+ // weak and noinline to prevent the compiler from eliding calls
92
+ template <typename... T>
93
+ FOLLY_ATTR_WEAK FOLLY_NOINLINE void keep_sink(T&&...) {}
94
+ template <typename... T>
95
+ FOLLY_ATTR_WEAK FOLLY_NOINLINE void keep_sink_nx(T&&...) noexcept {}
96
+
97
+ } // namespace detail
98
+ } // namespace folly
@@ -0,0 +1,124 @@
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 <new>
20
+
21
+ #include <folly/CppAttributes.h>
22
+ #include <folly/Portability.h>
23
+ #include <folly/functional/Invoke.h>
24
+
25
+ namespace folly {
26
+
27
+ namespace detail {
28
+
29
+ #if defined(__cpp_aligned_new)
30
+ constexpr auto cpp_aligned_new_ = __cpp_aligned_new >= 201606;
31
+ #else
32
+ constexpr auto cpp_aligned_new_ = false;
33
+ #endif
34
+
35
+ #if defined(__cpp_sized_deallocation)
36
+ constexpr auto cpp_sized_deallocation_ = __cpp_sized_deallocation >= 201309L;
37
+ #else
38
+ constexpr auto cpp_sized_deallocation_ = false;
39
+ #endif
40
+
41
+ // https://clang.llvm.org/docs/LanguageExtensions.html#builtin-operator-new-and-builtin-operator-delete
42
+
43
+ constexpr auto op_new_builtin_ =
44
+ FOLLY_HAS_BUILTIN(__builtin_operator_new) >= 201802L;
45
+ constexpr auto op_del_builtin_ =
46
+ FOLLY_HAS_BUILTIN(__builtin_operator_del) >= 201802L;
47
+
48
+ FOLLY_CREATE_QUAL_INVOKER(op_new_builtin_fn_, __builtin_operator_new);
49
+ FOLLY_CREATE_QUAL_INVOKER(op_new_library_fn_, ::operator new);
50
+
51
+ FOLLY_CREATE_QUAL_INVOKER(op_del_builtin_fn_, __builtin_operator_delete);
52
+ FOLLY_CREATE_QUAL_INVOKER(op_del_library_fn_, ::operator delete);
53
+
54
+ template <bool Usual, bool C = (Usual && op_new_builtin_)>
55
+ constexpr conditional_t<C, op_new_builtin_fn_, op_new_library_fn_> op_new_;
56
+
57
+ template <bool Usual, bool C = (Usual && op_del_builtin_)>
58
+ constexpr conditional_t<C, op_del_builtin_fn_, op_del_library_fn_> op_del_;
59
+
60
+ template <bool Usual, typename... A>
61
+ FOLLY_ERASE void do_op_del_sized_(
62
+ void* const p, std::size_t const s, A const... a) {
63
+ if constexpr (detail::cpp_sized_deallocation_) {
64
+ return op_del_<Usual>(p, s, a...);
65
+ } else {
66
+ return op_del_<Usual>(p, a...);
67
+ }
68
+ }
69
+
70
+ } // namespace detail
71
+
72
+ // operator_new
73
+ struct operator_new_fn {
74
+ FOLLY_NODISCARD FOLLY_ERASE void* operator()( //
75
+ std::size_t const s) const //
76
+ noexcept(noexcept(::operator new(0))) {
77
+ return detail::op_new_<true>(s);
78
+ }
79
+ FOLLY_NODISCARD FOLLY_ERASE void* operator()( //
80
+ std::size_t const s,
81
+ std::nothrow_t const& nt) const noexcept {
82
+ return detail::op_new_<true>(s, nt);
83
+ }
84
+ FOLLY_NODISCARD FOLLY_ERASE void* operator()( //
85
+ std::size_t const s,
86
+ std::align_val_t const a) const //
87
+ noexcept(noexcept(::operator new(0))) {
88
+ return detail::op_new_<detail::cpp_aligned_new_>(s, a);
89
+ }
90
+ FOLLY_NODISCARD FOLLY_ERASE void* operator()( //
91
+ std::size_t const s,
92
+ std::align_val_t const a,
93
+ std::nothrow_t const& nt) const noexcept {
94
+ return detail::op_new_<detail::cpp_aligned_new_>(s, a, nt);
95
+ }
96
+ };
97
+ inline constexpr operator_new_fn operator_new{};
98
+
99
+ // operator_delete
100
+ struct operator_delete_fn {
101
+ FOLLY_ERASE void operator()( //
102
+ void* const p) const noexcept {
103
+ return detail::op_del_<true>(p);
104
+ }
105
+ FOLLY_ERASE void operator()( //
106
+ void* const p,
107
+ std::size_t const s) const noexcept {
108
+ return detail::do_op_del_sized_<true>(p, s);
109
+ }
110
+ FOLLY_ERASE void operator()( //
111
+ void* const p,
112
+ std::align_val_t const a) const noexcept {
113
+ return detail::op_del_<detail::cpp_aligned_new_>(p, a);
114
+ }
115
+ FOLLY_ERASE void operator()( //
116
+ void* const p,
117
+ std::size_t const s,
118
+ std::align_val_t const a) const noexcept {
119
+ return detail::do_op_del_sized_<detail::cpp_aligned_new_>(p, s, a);
120
+ }
121
+ };
122
+ inline constexpr operator_delete_fn operator_delete{};
123
+
124
+ } // namespace folly