MAYBE_INIT = init
endif
-if EXCEPTION_TRACER
-MAYBE_EXCEPTION_TRACER = experimental/exception_tracer
-endif
-
-SUBDIRS = . experimental $(MAYBE_INIT) test io/test experimental/io/test \
- $(MAYBE_EXCEPTION_TRACER)
+# Note that the order of SUBDIRS matters.
+# Many subdirectories depend on libfollytest from the test directory,
+# so it must appear before other directories
+SUBDIRS = . test experimental $(MAYBE_INIT) io/test stats/test
ACLOCAL_AMFLAGS = -I m4
follyincludedir = $(includedir)/folly
nobase_follyinclude_HEADERS = \
- ApplyTuple.h \
- Arena.h \
- Arena-inl.h \
- Array.h \
Assume.h \
AtomicBitSet.h \
AtomicHashArray.h \
Benchmark.h \
Bits.h \
CachelinePadded.h \
- CallOnce.h \
- Checksum.h \
Chrono.h \
ClockGettimeWrappers.h \
ConcurrentSkipList.h \
ConcurrentSkipList-inl.h \
- ContainerTraits.h \
Conv.h \
CppAttributes.h \
CpuId.h \
CPortability.h \
+ compression/Compression.h \
+ compression/Utils.h \
+ compression/Zlib.h \
+ concurrency/CacheLocality.h \
+ concurrency/ConcurrentHashMap.h \
+ concurrency/CoreCachedSharedPtr.h \
+ concurrency/detail/ConcurrentHashMap-detail.h \
+ container/Array.h \
+ container/Iterator.h \
+ container/Enumerate.h \
+ container/EvictingCacheMap.h \
+ container/Foreach.h \
+ container/Foreach-inl.h \
+ container/SparseByteSet.h \
+ ConstexprMath.h \
detail/AtomicHashUtils.h \
detail/AtomicUnorderedMapUtils.h \
- detail/AtomicUtils.h \
detail/BitIteratorDetail.h \
- detail/BitsDetail.h \
- detail/CacheLocality.h \
- detail/CachelinePaddedImpl.h \
- detail/ChecksumDetail.h \
detail/DiscriminatedPtrDetail.h \
detail/FileUtilDetail.h \
detail/FingerprintPolynomial.h \
detail/GroupVarintDetail.h \
detail/IPAddress.h \
detail/IPAddressSource.h \
- detail/Malloc.h \
detail/MemoryIdler.h \
detail/MPMCPipelineDetail.h \
+ detail/PolyDetail.h \
detail/RangeCommon.h \
detail/RangeSse42.h \
detail/Sleeper.h \
detail/SlowFingerprint.h \
detail/SocketFastOpen.h \
detail/StaticSingletonManager.h \
- detail/Stats.h \
detail/ThreadLocalDetail.h \
- detail/TryDetail.h \
+ detail/TypeList.h \
detail/TurnSequencer.h \
detail/UncaughtExceptionCounter.h \
+ executors/Async.h \
+ executors/CPUThreadPoolExecutor.h \
+ executors/Codel.h \
+ executors/DrivableExecutor.h \
+ executors/FiberIOExecutor.h \
+ executors/FutureExecutor.h \
+ executors/GlobalExecutor.h \
+ executors/GlobalThreadPoolList.h \
+ executors/InlineExecutor.h \
+ executors/IOExecutor.h \
+ executors/IOObjectCache.h \
+ executors/IOThreadPoolExecutor.h \
+ executors/NotificationQueueExecutor.h \
+ executors/ScheduledExecutor.h \
+ executors/SerialExecutor.h \
+ executors/ThreadPoolExecutor.h \
+ executors/ThreadedExecutor.h \
+ executors/task_queue/BlockingQueue.h \
+ executors/task_queue/LifoSemMPMCQueue.h \
+ executors/task_queue/PriorityLifoSemMPMCQueue.h \
+ executors/task_queue/UnboundedBlockingQueue.h \
+ executors/thread_factory/NamedThreadFactory.h \
+ executors/thread_factory/PriorityThreadFactory.h \
+ executors/thread_factory/ThreadFactory.h \
+ functional/ApplyTuple.h \
Demangle.h \
DiscriminatedPtr.h \
DynamicConverter.h \
dynamic.h \
dynamic-inl.h \
- Enumerate.h \
- EvictingCacheMap.h \
Exception.h \
ExceptionString.h \
ExceptionWrapper.h \
ExceptionWrapper-inl.h \
Executor.h \
Expected.h \
- experimental/AsymmetricMemoryBarrier.h \
- experimental/AtomicSharedPtr.h \
- experimental/detail/AtomicSharedPtr-detail.h \
+ concurrency/AtomicSharedPtr.h \
+ concurrency/detail/AtomicSharedPtr-detail.h \
experimental/AutoTimer.h \
+ experimental/ThreadedRepeatingFunctionRunner.h \
experimental/Bits.h \
experimental/BitVectorCoding.h \
+ experimental/CodingDetail.h \
experimental/DynamicParser.h \
experimental/DynamicParser-inl.h \
experimental/ExecutionObserver.h \
experimental/exception_tracer/StackTrace.h \
experimental/FunctionScheduler.h \
experimental/FutureDAG.h \
+ experimental/hazptr/debug.h \
+ experimental/hazptr/hazptr.h \
+ experimental/hazptr/hazptr-impl.h \
+ experimental/hazptr/memory_resource.h \
experimental/io/FsUtil.h \
experimental/JemallocNodumpAllocator.h \
experimental/JSONSchema.h \
experimental/LockFreeRingBuffer.h \
+ experimental/logging/AsyncFileWriter.h \
+ experimental/logging/GlogStyleFormatter.h \
+ experimental/logging/ImmediateFileWriter.h \
+ experimental/logging/Init.h \
+ experimental/logging/LogCategory.h \
+ experimental/logging/LogFormatter.h \
+ experimental/logging/Logger.h \
+ experimental/logging/LoggerDB.h \
+ experimental/logging/LogHandler.h \
+ experimental/logging/LogLevel.h \
+ experimental/logging/LogMessage.h \
+ experimental/logging/LogName.h \
+ experimental/logging/LogStream.h \
+ experimental/logging/LogStreamProcessor.h \
+ experimental/logging/LogWriter.h \
+ experimental/logging/printf.h \
+ experimental/logging/RateLimiter.h \
+ experimental/logging/StandardLogHandler.h \
+ experimental/logging/xlog.h \
experimental/NestedCommandLineApp.h \
experimental/observer/detail/Core.h \
experimental/observer/detail/GraphCycleDetector.h \
experimental/observer/SimpleObservable-inl.h \
experimental/ProgramOptions.h \
experimental/ReadMostlySharedPtr.h \
- experimental/symbolizer/Elf.h \
- experimental/symbolizer/Elf-inl.h \
- experimental/symbolizer/ElfCache.h \
- experimental/symbolizer/Dwarf.h \
- experimental/symbolizer/LineReader.h \
- experimental/symbolizer/SignalHandler.h \
- experimental/symbolizer/StackTrace.h \
- experimental/symbolizer/Symbolizer.h \
experimental/Select64.h \
+ experimental/StampedPtr.h \
experimental/StringKeyedCommon.h \
experimental/StringKeyedMap.h \
experimental/StringKeyedSet.h \
Fingerprint.h \
FixedString.h \
folly-config.h \
- Foreach.h \
FormatArg.h \
FormatTraits.h \
Format.h \
Format-inl.h \
+ functional/Invoke.h \
+ functional/Partial.h \
futures/Barrier.h \
- futures/DrivableExecutor.h \
futures/Future-pre.h \
futures/helpers.h \
futures/Future.h \
futures/Future-inl.h \
futures/FutureException.h \
futures/FutureSplitter.h \
- futures/InlineExecutor.h \
- futures/ManualExecutor.h \
- futures/OpaqueCallbackShunt.h \
futures/Promise-inl.h \
futures/Promise.h \
- futures/QueuedImmediateExecutor.h \
- futures/ScheduledExecutor.h \
futures/SharedPromise.h \
futures/SharedPromise-inl.h \
futures/ThreadWheelTimekeeper.h \
futures/detail/FSM.h \
futures/detail/Types.h \
futures/test/TestExecutor.h \
+ hash/Checksum.h \
+ hash/detail/ChecksumDetail.h \
+ hash/Hash.h \
+ hash/SpookyHashV1.h \
+ hash/SpookyHashV2.h \
gen/Base.h \
gen/Base-inl.h \
gen/Combine.h \
IndexedMemPool.h \
init/Init.h \
IntrusiveList.h \
- io/Compression.h \
io/Cursor.h \
io/Cursor-inl.h \
io/IOBuf.h \
io/async/DecoratedAsyncTransportWrapper.h \
io/async/DelayedDestructionBase.h \
io/async/DelayedDestruction.h \
+ io/async/DestructorCheck.h \
io/async/EventBase.h \
io/async/EventBaseLocal.h \
io/async/EventBaseManager.h \
io/async/EventUtil.h \
io/async/NotificationQueue.h \
io/async/HHWheelTimer.h \
- io/async/ssl/OpenSSLPtrTypes.h \
io/async/ssl/OpenSSLUtils.h \
io/async/ssl/SSLErrors.h \
io/async/ssl/TLSDefinitions.h \
io/async/Request.h \
io/async/SSLContext.h \
+ io/async/SSLOptions.h \
io/async/ScopedEventBaseThread.h \
io/async/TimeoutManager.h \
io/async/VirtualEventBase.h \
io/async/test/UndelayedDestruction.h \
io/async/test/Util.h \
json.h \
+ lang/Assume.h \
+ lang/ColdClass.h \
+ lang/Launder.h \
+ lang/RValueReferenceWrapper.h \
+ lang/SafeAssert.h \
Lazy.h \
- LifoSem.h \
Likely.h \
LockTraits.h \
LockTraitsBoost.h \
Logging.h \
MacAddress.h \
- MallctlHelper.h \
- Malloc.h \
MapUtil.h \
Math.h \
Memory.h \
- MemoryMapping.h \
+ memory/Arena.h \
+ memory/Arena-inl.h \
+ memory/MallctlHelper.h \
+ memory/Malloc.h \
+ memory/ThreadCachedArena.h \
+ memory/UninitializedMemoryHacks.h \
+ memory/detail/MallocImpl.h \
MicroSpinLock.h \
MicroLock.h \
MoveWrapper.h \
Overload.h \
PackedSyncPtr.h \
Padded.h \
- Partial.h \
PicoSpinLock.h \
+ Poly.h \
+ Poly-inl.h \
+ poly/Nullable.h \
+ poly/Regular.h \
Portability.h \
portability/Asm.h \
portability/Atomic.h \
portability/Memory.h \
portability/OpenSSL.h \
portability/PThread.h \
+ portability/Semaphore.h \
portability/Sockets.h \
portability/Stdio.h \
portability/Stdlib.h \
portability/SysUio.h \
portability/Time.h \
portability/TypeTraits.h \
- portability/Windows.h \
portability/Unistd.h \
+ portability/Windows.h \
Preprocessor.h \
PriorityMPMCQueue.h \
ProducerConsumerQueue.h \
Random.h \
Random-inl.h \
Range.h \
+ Replaceable.h \
RWSpinLock.h \
- SafeAssert.h \
ScopeGuard.h \
SharedMutex.h \
- Shell.h \
Singleton.h \
Singleton-inl.h \
SingletonThreadLocal.h \
small_vector.h \
SocketAddress.h \
sorted_vector_types.h \
- SparseByteSet.h \
SpinLock.h \
- SpookyHashV1.h \
- SpookyHashV2.h \
+ ssl/Init.h \
ssl/OpenSSLCertUtils.h \
ssl/OpenSSLHash.h \
+ ssl/OpenSSLPtrTypes.h \
ssl/OpenSSLVersionFinder.h \
ssl/SSLSession.h \
+ ssl/OpenSSLLockTypes.h \
+ ssl/detail/OpenSSLThreading.h \
ssl/detail/SSLSessionImpl.h \
+ stats/detail/Bucket.h \
stats/BucketedTimeSeries-defs.h \
stats/BucketedTimeSeries.h \
stats/Histogram-defs.h \
stats/MultiLevelTimeSeries.h \
stats/TimeseriesHistogram-defs.h \
stats/TimeseriesHistogram.h \
+ synchronization/AsymmetricMemoryBarrier.h \
+ synchronization/CallOnce.h \
+ synchronization/LifoSem.h \
+ synchronization/detail/AtomicUtils.h \
+ system/MemoryMapping.h \
+ system/Shell.h \
+ system/ThreadId.h \
+ system/ThreadName.h \
+ system/VersionCheck.h \
stop_watch.h \
String.h \
String-inl.h \
Subprocess.h \
Synchronized.h \
+ SynchronizedPtr.h \
test/FBStringTestBenchmarks.cpp.h \
test/FBVectorTestBenchmarks.cpp.h \
test/function_benchmark/benchmark_impl.h \
test/SynchronizedTestLib.h \
test/SynchronizedTestLib-inl.h \
test/TestUtils.h \
- ThreadCachedArena.h \
ThreadCachedInt.h \
- ThreadId.h \
ThreadLocal.h \
- ThreadName.h \
TimeoutQueue.h \
TokenBucket.h \
tracing/StaticTracepoint.h \
+ tracing/ScopedTraceSection.h \
Traits.h \
Try-inl.h \
Try.h \
Uri.h \
Uri-inl.h \
Utility.h \
- Varint.h \
- VersionCheck.h
+ Varint.h
FormatTables.cpp: build/generate_format_tables.py
$(PYTHON) build/generate_format_tables.py
CLEANFILES += GroupVarintTables.cpp
libfollybasesse42_la_SOURCES = \
- detail/RangeSse42.cpp
+ detail/RangeSse42.cpp \
+ hash/detail/ChecksumDetail.cpp \
+ hash/detail/Crc32cDetail.cpp
libfollybase_la_SOURCES = \
Conv.cpp \
detail/RangeCommon.cpp \
EscapeTables.cpp \
Format.cpp \
+ FormatArg.cpp \
FormatTables.cpp \
- MallctlHelper.cpp \
+ memory/MallctlHelper.cpp \
portability/BitsFunctexcept.cpp \
- StringBase.cpp \
String.cpp \
Unicode.cpp
libfolly_la_SOURCES = \
- Assume.cpp \
- Bits.cpp \
- Checksum.cpp \
ClockGettimeWrappers.cpp \
- detail/CacheLocality.cpp \
+ compression/Compression.cpp \
+ compression/Zlib.cpp \
+ concurrency/CacheLocality.cpp \
+ detail/Futex.cpp \
detail/IPAddress.cpp \
+ detail/StaticSingletonManager.cpp \
+ detail/ThreadLocalDetail.cpp \
dynamic.cpp \
ExceptionWrapper.cpp \
Executor.cpp \
+ Expected.cpp \
File.cpp \
FileUtil.cpp \
FingerprintTables.cpp \
futures/Barrier.cpp \
futures/Future.cpp \
- futures/InlineExecutor.cpp \
- futures/ManualExecutor.cpp \
- futures/QueuedImmediateExecutor.cpp \
+ futures/FutureException.cpp \
futures/ThreadWheelTimekeeper.cpp \
futures/test/TestExecutor.cpp \
- detail/Futex.cpp \
- detail/StaticSingletonManager.cpp \
- detail/ThreadLocalDetail.cpp \
+ executors/CPUThreadPoolExecutor.cpp \
+ executors/Codel.cpp \
+ executors/GlobalExecutor.cpp \
+ executors/GlobalThreadPoolList.cpp \
+ executors/IOThreadPoolExecutor.cpp \
+ executors/InlineExecutor.cpp \
+ executors/ManualExecutor.cpp \
+ executors/SerialExecutor.cpp \
+ executors/ThreadPoolExecutor.cpp \
+ executors/ThreadedExecutor.cpp \
+ executors/QueuedImmediateExecutor.cpp \
+ experimental/hazptr/hazptr.cpp \
+ experimental/hazptr/memory_resource.cpp \
GroupVarint.cpp \
GroupVarintTables.cpp \
+ hash/Checksum.cpp \
+ hash/SpookyHashV1.cpp \
+ hash/SpookyHashV2.cpp \
IPAddress.cpp \
IPAddressV4.cpp \
IPAddressV6.cpp \
- LifoSem.cpp \
init/Init.cpp \
- io/Compression.cpp \
io/Cursor.cpp \
io/IOBuf.cpp \
io/IOBufQueue.cpp \
io/async/AsyncServerSocket.cpp \
io/async/AsyncSignalHandler.cpp \
io/async/AsyncSocket.cpp \
+ io/async/AsyncSocketException.cpp \
io/async/AsyncSSLSocket.cpp \
io/async/EventBase.cpp \
io/async/EventBaseLocal.cpp \
io/async/EventHandler.cpp \
io/async/Request.cpp \
io/async/SSLContext.cpp \
+ io/async/SSLOptions.cpp \
io/async/ScopedEventBaseThread.cpp \
io/async/VirtualEventBase.cpp \
io/async/HHWheelTimer.cpp \
io/async/ssl/OpenSSLUtils.cpp \
io/async/ssl/SSLErrors.cpp \
json.cpp \
+ lang/Assume.cpp \
+ lang/ColdClass.cpp \
+ lang/SafeAssert.cpp \
detail/MemoryIdler.cpp \
detail/SocketFastOpen.cpp \
MacAddress.cpp \
- MemoryMapping.cpp \
+ memory/ThreadCachedArena.cpp \
portability/Dirent.cpp \
portability/Fcntl.cpp \
portability/Libgen.cpp \
portability/Time.cpp \
portability/Unistd.cpp \
Random.cpp \
- SafeAssert.cpp \
ScopeGuard.cpp \
SharedMutex.cpp \
- Shell.cpp \
MicroLock.cpp \
+ Optional.cpp \
Singleton.cpp \
SocketAddress.cpp \
- SpookyHashV1.cpp \
- SpookyHashV2.cpp \
+ ssl/Init.cpp \
ssl/OpenSSLCertUtils.cpp \
ssl/OpenSSLHash.cpp \
+ ssl/detail/OpenSSLThreading.cpp \
ssl/detail/SSLSessionImpl.cpp \
- stats/Instantiations.cpp \
+ stats/BucketedTimeSeries.cpp \
+ stats/Histogram.cpp \
+ stats/MultiLevelTimeSeries.cpp \
+ stats/TimeseriesHistogram.cpp \
+ synchronization/AsymmetricMemoryBarrier.cpp \
+ synchronization/LifoSem.cpp \
+ system/MemoryMapping.cpp \
+ system/Shell.cpp \
+ system/ThreadName.cpp \
+ system/VersionCheck.cpp \
Subprocess.cpp \
- ThreadCachedArena.cpp \
- ThreadName.cpp \
TimeoutQueue.cpp \
+ Try.cpp \
Uri.cpp \
- Version.cpp \
- experimental/AsymmetricMemoryBarrier.cpp \
+ experimental/ThreadedRepeatingFunctionRunner.cpp \
experimental/bser/Dump.cpp \
experimental/bser/Load.cpp \
experimental/DynamicParser.cpp \
endif
if !HAVE_WEAK_SYMBOLS
-libfollybase_la_SOURCES += detail/MallocImpl.cpp
+libfollybase_la_SOURCES += memory/detail/MallocImpl.cpp
endif
if HAVE_BOOST_CONTEXT
fibers/TimeoutController.cpp
endif
+if USE_SYMBOLIZER
+nobase_follyinclude_HEADERS += \
+ experimental/symbolizer/Elf.h \
+ experimental/symbolizer/Elf-inl.h \
+ experimental/symbolizer/ElfCache.h \
+ experimental/symbolizer/Dwarf.h \
+ experimental/symbolizer/LineReader.h \
+ experimental/symbolizer/SignalHandler.h \
+ experimental/symbolizer/StackTrace.h \
+ experimental/symbolizer/Symbolizer.h
+
+libfolly_la_SOURCES += \
+ experimental/symbolizer/Elf.cpp \
+ experimental/symbolizer/ElfCache.cpp \
+ experimental/symbolizer/Dwarf.cpp \
+ experimental/symbolizer/LineReader.cpp \
+ experimental/symbolizer/SignalHandler.cpp \
+ experimental/symbolizer/StackTrace.cpp \
+ experimental/symbolizer/Symbolizer.cpp
+endif
+
+if HAVE_VARIABLE_TEMPLATES
+libfolly_la_SOURCES += \
+ Poly.cpp
+endif
+
libfollybasesse42_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LT_VERSION)
-libfollybasesse42_la_CXXFLAGS = -msse4.2
+libfollybasesse42_la_CXXFLAGS = -msse4.2 -mpclmul
libfollybase_la_LIBADD = libfollybasesse42.la
libfollybase_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LT_VERSION)