An open-source C++ library developed and used at Facebook.

Overview

Folly: Facebook Open-source Library

linux mac windows

What is folly?

Logo Folly

Folly (acronymed loosely after Facebook Open Source Library) is a library of C++14 components designed with practicality and efficiency in mind. Folly contains a variety of core library components used extensively at Facebook. In particular, it's often a dependency of Facebook's other open source C++ efforts and place where those projects can share code.

It complements (as opposed to competing against) offerings such as Boost and of course std. In fact, we embark on defining our own component only when something we need is either not available, or does not meet the needed performance profile. We endeavor to remove things from folly if or when std or Boost obsoletes them.

Performance concerns permeate much of Folly, sometimes leading to designs that are more idiosyncratic than they would otherwise be (see e.g. PackedSyncPtr.h, SmallLocks.h). Good performance at large scale is a unifying theme in all of Folly.

Logical Design

Folly is a collection of relatively independent components, some as simple as a few symbols. There is no restriction on internal dependencies, meaning that a given folly module may use any other folly components.

All symbols are defined in the top-level namespace folly, except of course macros. Macro names are ALL_UPPERCASE and should be prefixed with FOLLY_. Namespace folly defines other internal namespaces such as internal or detail. User code should not depend on symbols in those namespaces.

Folly has an experimental directory as well. This designation connotes primarily that we feel the API may change heavily over time. This code, typically, is still in heavy use and is well tested.

Physical Design

At the top level Folly uses the classic "stuttering" scheme folly/folly used by Boost and others. The first directory serves as an installation root of the library (with possible versioning a la folly-1.0/), and the second is to distinguish the library when including files, e.g. #include <folly/FBString.h>.

The directory structure is flat (mimicking the namespace structure), i.e. we don't have an elaborate directory hierarchy (it is possible this will change in future versions). The subdirectory experimental contains files that are used inside folly and possibly at Facebook but not considered stable enough for client use. Your code should not use files in folly/experimental lest it may break when you update Folly.

The folly/folly/test subdirectory includes the unittests for all components, usually named ComponentXyzTest.cpp for each ComponentXyz.*. The folly/folly/docs directory contains documentation.

What's in it?

Because of folly's fairly flat structure, the best way to see what's in it is to look at the headers in top level folly/ directory. You can also check the docs folder for documentation, starting with the overview.

Folly is published on GitHub at https://github.com/facebook/folly

Build Notes

Because folly does not provide any ABI compatibility guarantees from commit to commit, we generally recommend building folly as a static library.

build.sh

The simplest way to build folly is using the build.sh script in the top-level of the repository. build.sh can be used on Linux and MacOS, on Windows use the build.bat script instead.

This script will download and build all of the necessary dependencies first, and will then build folly. This will help ensure that you build with recent versions of all of the dependent libraries, regardless of what versions are installed locally on your system.

By default this script will build and install folly and its dependencies in a scratch directory. You can also specify a --scratch-path argument to control the location of the scratch directory used for the build. There are also --install-dir and --install-prefix arguments to provide some more fine-grained control of the installation directories. However, given that folly provides no compatibility guarantees between commits we generally recommend building and installing the libraries to a temporary location, and then pointing your project's build at this temporary location, rather than installing folly in the traditional system installation directories. e.g., if you are building with CMake you can use the CMAKE_PREFIX_PATH variable to allow CMake to find folly in this temporary installation directory when building your project.

Dependencies

folly supports gcc (5.1+), clang, or MSVC. It should run on Linux (x86-32, x86-64, and ARM), iOS, macOS, and Windows (x86-64). The CMake build is only tested on some of these platforms; at a minimum, we aim to support macOS and Linux (on the latest Ubuntu LTS release or newer.)

folly requires a version of boost compiled with C++14 support.

googletest is required to build and run folly's tests. You can download it from https://github.com/google/googletest/archive/release-1.8.0.tar.gz The following commands can be used to download and install it:

wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz && \
tar zxf release-1.8.0.tar.gz && \
rm -f release-1.8.0.tar.gz && \
cd googletest-release-1.8.0 && \
cmake . && \
make && \
make install

Finding dependencies in non-default locations

If you have boost, gtest, or other dependencies installed in a non-default location, you can use the CMAKE_INCLUDE_PATH and CMAKE_LIBRARY_PATH variables to make CMAKE look also look for header files and libraries in non-standard locations. For example, to also search the directories /alt/include/path1 and /alt/include/path2 for header files and the directories /alt/lib/path1 and /alt/lib/path2 for libraries, you can invoke cmake as follows:

cmake \
  -DCMAKE_INCLUDE_PATH=/alt/include/path1:/alt/include/path2 \
  -DCMAKE_LIBRARY_PATH=/alt/lib/path1:/alt/lib/path2 ...

Building tests

By default, building the tests is disabled as part of the CMake all target. To build the tests, specify -DBUILD_TESTS=ON to CMake at configure time.

Ubuntu 16.04 LTS

The following packages are required (feel free to cut and paste the apt-get command below):

sudo apt-get install \
    g++ \
    cmake \
    libboost-all-dev \
    libevent-dev \
    libdouble-conversion-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    libiberty-dev \
    liblz4-dev \
    liblzma-dev \
    libsnappy-dev \
    make \
    zlib1g-dev \
    binutils-dev \
    libjemalloc-dev \
    libssl-dev \
    pkg-config \
    libunwind-dev

Folly relies on fmt which needs to be installed from source. The following commands will download, compile, and install fmt.

git clone https://github.com/fmtlib/fmt.git && cd fmt

mkdir _build && cd _build
cmake ..

make -j$(nproc)
sudo make install

If advanced debugging functionality is required, use:

sudo apt-get install \
    libunwind8-dev \
    libelf-dev \
    libdwarf-dev

In the folly directory (e.g. the checkout root or the archive unpack root), run:

  mkdir _build && cd _build
  cmake ..
  make -j $(nproc)
  make install # with either sudo or DESTDIR as necessary

OS X (Homebrew)

folly is available as a Formula and releases may be built via brew install folly.

You may also use folly/build/bootstrap-osx-homebrew.sh to build against master:

  ./folly/build/bootstrap-osx-homebrew.sh

This will create a build directory _build in the top-level.

OS X (MacPorts)

Install the required packages from MacPorts:

  sudo port install \
    boost \
    cmake \
    gflags \
    git \
    google-glog \
    libevent \
    libtool \
    lz4 \
    lzma \
    openssl \
    snappy \
    xz \
    zlib

Download and install double-conversion:

  git clone https://github.com/google/double-conversion.git
  cd double-conversion
  cmake -DBUILD_SHARED_LIBS=ON .
  make
  sudo make install

Download and install folly with the parameters listed below:

  git clone https://github.com/facebook/folly.git
  cd folly
  mkdir _build
  cd _build
  cmake ..
  make
  sudo make install

Windows (Vcpkg)

folly is available in Vcpkg and releases may be built via vcpkg install folly:x64-windows.

You may also use vcpkg install folly:x64-windows --head to build against master.

Other Linux distributions

  • double-conversion (https://github.com/google/double-conversion)

    Download and build double-conversion. You may need to tell cmake where to find it.

    [double-conversion/] ln -s src double-conversion

    [folly/] mkdir build && cd build [folly/build/] cmake "-DCMAKE_INCLUDE_PATH=$DOUBLE_CONVERSION_HOME/include" "-DCMAKE_LIBRARY_PATH=$DOUBLE_CONVERSION_HOME/lib" ..

    [folly/build/] make

  • additional platform specific dependencies:

    Fedora >= 21 64-bit (last tested on Fedora 28 64-bit)

    • gcc
    • gcc-c++
    • cmake
    • automake
    • boost-devel
    • libtool
    • lz4-devel
    • lzma-devel
    • snappy-devel
    • zlib-devel
    • glog-devel
    • gflags-devel
    • scons
    • double-conversion-devel
    • openssl-devel
    • libevent-devel
    • fmt-devel
    • libsodium-devel

    Optional

    • libdwarf-devel
    • elfutils-libelf-devel
    • libunwind-devel
Comments
  • [json] Re-enable compilation of JsonTest and add two perf tests

    [json] Re-enable compilation of JsonTest and add two perf tests

    It seems that compiling of the main Json parser unit test was disabled due to a 'MSVC Preprocessor' bug.

    It is safe to assume that g++/clang++ will be used on environments like Linux/etc while MSVC would be used on MS-Windows.

    This change will re-enable the unit test compilation while also adding two new unit tests targeting stressing the performance of the Json parser.

    CLA Signed 
    opened by Adenilson 24
  • Issues with Visual C++ compiler

    Issues with Visual C++ compiler

    • [x] folly/Malloc.h(193): error C2059: syntax error: 'volatile' PR #688
    • [x] folly/detail/Crc32cDetail.cpp(208): fatal error C1009: compiler limit: macros nested too deeply
    • [x] folly/executors/NamedThreadFactory.h(38): error C2665: 'folly::setThreadName': none of the 2 overloads could convert all the argument types
    • [x] folly can't link with static libraries https://gist.github.com/KindDragon/c4e6414bd60242d317bb0387a82dce61#file-package-x64-windows-static-rel-out-log-L2291 PR #693
    • [x] folly/futures/Future-inl.h(242): error C2244: 'folly::SemiFuture::SemiFuture': unable to match function definition to an existing declaration
    • [x] folly/io/async/AsyncSocket.cpp(1589): error C2039: 'Control': is not a member of 'msghdr'. Win10 SDK define MSG_ERRQUEUE too https://naughter.wordpress.com/2017/07/16/changes-in-the-windows-v10-0-16232-sdk-compared-to-windows-v10-0-15063-sdk-part-one/ PR #689
    • [x] folly/io/async/AsyncSocket.cpp(939): error C2065: 'SOL_IP': undeclared identifier
    • [x] folly/stats/Histogram.cpp(43): error C5037: 'folly::detail::HistogramBuckets<__int64,folly::detail::Bucket>::getPercentileBucketIdx': an out-of-line definition of a member of a class template cannot have default arguments with [T=int64_t] MSVC 2017U4 PR #691
    • [x] folly/synchronization/CallOnce.h(86): error C2988: unrecognizable template declaration/definition. CallOnce.h(98): note: see reference to class template instantiation 'folly::detail::once_flag' being compiled https://github.com/facebook/folly/commit/b529367b595dd4da7e70569cbea36d30ace4fa39#commitcomment-25665382
    • [x] folly\Random.cpp(43): error C2672: 'folly::detail::once_flagfolly::SharedMutex::{dtor}': no matching overloaded function found
    • [x] GroupVarint.cpp(134): error C2370: 'folly::detail::groupVarintSSEMasks': redefinition; different storage class
    • [x] Format.cpp(82): error C2370: 'folly::detail::formatHexLower': redefinition; different storage class. Same on lines 84, 86, 88
    • [x] Futex.h(47): error C2039: 'Atom': is not a member of 'std::atomic' https://ci.appveyor.com/project/KindDragon/folly/build/20/job/p3kt29bxfggn3ib7#L251
    • [x] AsyncSocket.cpp(986): error C3861: 'BOOST_PP_IIF_BOOST_PP_BOOL_FOLLY_HAVE_VLA': identifier not found https://ci.appveyor.com/project/KindDragon/folly/build/31/job/45bx663tx1m62n8k#L3198
    • [x] Rcu code crash at exit
    • [x] VS2015 folly/ConstexprMath.h(57): error C3250: 'folly::constexpr_clamp::Less': declaration is not allowed in 'constexpr' function body

    /cc @Orvid

    opened by KindDragon 20
  • Mac OS build, help needed.

    Mac OS build, help needed.

    Hi.

    Trying to build folly on Mac OS. I would like to contribute, so I need to be able to build tests and benchmarks - I cannot just take the brew installation.

    bootstrap-osx-homebrew.sh fails with "autoreconf: 'configure.ac' or 'configure.in' is required" I googled - seems like running it is no longer relevant.

    CMAKE fails due to not being able to find dependencies:

    -- Could NOT find DOUBLE_CONVERSION (missing: DOUBLE_CONVERSION_LIBRARY DOUBLE_CONVERSION_INCLUDE_DIR) 
    -- Using third-party bundled double-conversion
    -- Could NOT find LIBGFLAGS (missing: LIBGFLAGS_LIBRARY LIBGFLAGS_INCLUDE_DIR) 
    -- Could NOT find LIBGLOG (missing: LIBGLOG_LIBRARY LIBGLOG_INCLUDE_DIR) 
    -- Found libevent: /usr/local/lib/libevent.dylib
    -- Found OpenSSL: /usr/lib/libcrypto.dylib (found version "1.0.2p") 
    -- Looking for ASN1_TIME_diff
    CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
    Please set them or make sure they are set and tested correctly in the CMake files:
    LIBGFLAGS_INCLUDE_DIR
       used as include directory in directory /space/folly/_build/CMakeFiles/CMakeTmp
       used as include directory in directory /space/folly/_build/CMakeFiles/CMakeTmp
       used as include directory in directory /space/folly/_build/CMakeFiles/CMakeTmp
    LIBGFLAGS_LIBRARY
        linked by target "cmTC_e2f29" in directory /space/folly/_build/CMakeFiles/CMakeTmp
    
    CMake Error at /usr/local/Cellar/cmake/3.11.4/share/cmake/Modules/CheckFunctionExists.cmake:72 (try_compile):
      Failed to configure test project build system.
    Call Stack (most recent call first):
      CMake/folly-deps.cmake:75 (check_function_exists)
      CMakeLists.txt:85 (include)
    
    
    -- Configuring incomplete, errors occurred!
    

    Could you please give instructions on how to build folly: from clear download to running tests and benchmarks?

    opened by DenisYaroshevskiy 19
  • Add memory padding and alignment to prevent false sharing

    Add memory padding and alignment to prevent false sharing

    Ensure no thirdparty thread writes to a cacheline shared by our ringbuffer, readIndex and writeIndex. Ensure readIndex and writeIndex are located on different cachelines.

    CLA Signed GH Review: review-needed 
    opened by rigtorp 19
  • Prevent IsOneOf unused template specialization instantiation

    Prevent IsOneOf unused template specialization instantiation

    Current IsOneOf implementation does unnecessary work because it instantiates all of the possible template specializations, even if type is same as the first of the tested ones. E.g. IsOneOf<char, char, int, float> will instantiate:

    IsOneOf<char, char, int, float>
    IsOneOf<char, char, int>
    IsOneOf<char, char>
    IsOneOf<char>
    

    With the proposed inheritance, compiler will stop initializing at the first match.

    CLA Signed Import Started GH Review: review-needed 
    opened by stryku 18
  • $<COMPILE_LANG_AND_ID:lang,id> may only be used with binary targets

    $ may only be used with binary targets

    I'm building folly v2020.07.13.00 on Ubuntu 18.04 x86_64 with the standard system gcc but a newer cmake 3.18.0. On configure, I get the cmake error:

    [...]
     -- Found gmock via config, defines=, include=/data/Debug/include, libs=GTest::gmock_main;GTest::gmock;GTest::gtest
     -- Found GTest: /data/Debug/lib/libgtest.a  
     -- Configuring done
     CMake Error at CMakeLists.txt:446 (file):
       Error evaluating generator expression:
         $<COMPILE_LANG_AND_ID:CUDA,NVIDIA>
       $<COMPILE_LANG_AND_ID:lang,id> may only be used with binary targets to
       specify include directories, compile definitions, and compile options.  It
       may not be used with the add_custom_command, add_custom_target, or
       file(GENERATE) commands.
     CMake Error at CMakeLists.txt:446 (file):
       Error evaluating generator expression:
         $<COMPILE_LANG_AND_ID:CUDA,NVIDIA>
       $<COMPILE_LANG_AND_ID:lang,id> may only be used with binary targets to
       specify include directories, compile definitions, and compile options.  It
       may not be used with the add_custom_command, add_custom_target, or
       file(GENERATE) commands.
     -- Generating done
    

    cmake ends in error after that. I googled for this problem but could not find anything really useful. Also I can not find the lines $<COMPILE_LANG_AND_ID:CUDA,NVIDIA> in folly so I'm slightly confused where the problem originates from. Can someone point me in the right direction please?

    opened by emmenlau 16
  • Fix bootstrap-osx-homebrew.sh to work with CMake builds

    Fix bootstrap-osx-homebrew.sh to work with CMake builds

    Summary:

    • The bootstrap-osx-homebrew.sh script is out of date. It previously worked when Folly used Autotools, but was not updated when CMake replaced Autotools for the build system.
    • Update dependencies to install.
    • Do not export environment variables when it is not needed; simply pass the defines needed directly to the cmake invocation.
    • Update README.md to specify correct dependencies with CMake build for both Homebrew and Macports.

    Closes #1038

    CLA Signed Merged 
    opened by JoeLoser 16
  • CHECK failed in SingletonThreadLocal.h in gcc 7.4.0 and 8.3.0 because of gcc bug

    CHECK failed in SingletonThreadLocal.h in gcc 7.4.0 and 8.3.0 because of gcc bug

    As 7.4.0 is the default version that ships with Ubuntu 18.04, this might be worth working around.

    Tried with both gcc 7.4.0 and 8.3.0 on Ubuntu 18.04 LTS, x86_64.

    https://github.com/facebook/folly/commit/d6dd4b4767bd1763c48fe96b3a01607667f2336a assumes that thread_local objects inside of inline functions have the same address, as they should, but that's not true across shared-library boundaries in gcc, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90562

    cc: @yfeldblum @djwatson @igorcanadi

    opened by tudor 14
  • Two changes to make folly able to build in CygWin

    Two changes to make folly able to build in CygWin

    1. Make the generate_fingerprint_tables exec have .exe as file extension on Windows platform;
    2. Make an impl of clearenv() in C++ for Windows, CygWin and Apple platforms.
    CLA Signed GH Review: review-needed 
    opened by cong1920 14
  • [2021.05.17.00] Fails to build on FreeBSD: error: no member named '__cxa_allocate_exception' in namespace '__cxxabiv1'

    [2021.05.17.00] Fails to build on FreeBSD: error: no member named '__cxa_allocate_exception' in namespace '__cxxabiv1'

    wrkdirs/usr/ports/devel/folly/work/folly-2021.05.17.00/folly/lang/Exception.cpp:180:24: error: no member named '__cxa_allocate_exception' in namespace '__cxxabiv1'
        auto object = abi::__cxa_allocate_exception(0);
                      ~~~~~^
    /wrkdirs/usr/ports/devel/folly/work/folly-2021.05.17.00/folly/lang/Exception.cpp:190:10: error: no type named '__cxa_free_exception' in namespace '__cxxabiv1'; did you mean '__cxa_exception'?
        abi::__cxa_free_exception(object); // no need for decref
        ~~~~~^~~~~~~~~~~~~~~~~~~~
             __cxa_exception
    /usr/include/c++/v1/cxxabi.h:77:8: note: '__cxa_exception' declared here
    struct __cxa_exception
           ^
    /wrkdirs/usr/ports/devel/folly/work/folly-2021.05.17.00/folly/lang/Exception.cpp:190:30: warning: parentheses were disambiguated as redundant parentheses around declaration of variable named 'object' [-Wvexing-parse]
        abi::__cxa_free_exception(object); // no need for decref
                                 ^~~~~~~~
    /wrkdirs/usr/ports/devel/folly/work/folly-2021.05.17.00/folly/lang/Exception.cpp:190:5: note: add enclosing parentheses to perform a function-style cast
        abi::__cxa_free_exception(object); // no need for decref
        ^
        (                                )
    /wrkdirs/usr/ports/devel/folly/work/folly-2021.05.17.00/folly/lang/Exception.cpp:190:30: note: remove parentheses to silence this warning
        abi::__cxa_free_exception(object); // no need for decref
                                 ^      ~
    
    /wrkdirs/usr/ports/devel/folly/work/folly-2021.05.17.00/folly/lang/Exception.cpp:190:31: error: redefinition of 'object'
        abi::__cxa_free_exception(object); // no need for decref
                                  ^
    /wrkdirs/usr/ports/devel/folly/work/folly-2021.05.17.00/folly/lang/Exception.cpp:180:10: note: previous definition is here
        auto object = abi::__cxa_allocate_exception(0);
             ^
    1 warning and 3 errors generated.
    

    2021.05.10.00 was building fine.

    FreeBSD 12.2 clang-10

    opened by yurivict 13
  • Fix some `CMAKE_REQUIRED_FLAGS` stuff

    Fix some `CMAKE_REQUIRED_FLAGS` stuff

    This fixes two issues related to CMAKE_REQUIRED_FLAGS


    CMAKE_REQUIRED_FLAGS, unlike the other CMAKE_REQUIRED_* variables, is a string, not a list. A list with more than one item in CMAKE_REQUIRED_FLAGS results in a semicolon showing up in the middle of the command line for at least check_symbol_exists and check_type_size calls, prematurely terminating the compilation command and resulting in potentially incorrect CMake test failures.

    For example, CMake fails to determine the size of __int128 on macOS 10.13.3, with Apple Clang 9 (clang-900.0.39.2), even though __int128 is supported for this platform, as the following C program

    int main() {
        __int128 i;
    }
    

    compiles successfully with the command "clang test.c". CMake fails to compile a program with __int128 for an entirely different reason:

    Building CXX object CMakeFiles/cmTC_d7e3f.dir/INT128_SIZE.cpp.o
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -DGFLAGS_IS_A_DLL=0 -isystem /usr/local/include -I/usr/local/opt/[email protected]/include  -fsanitize=address,undefined -std=gnu++14;-Werror=unknown-warning-option   -o CMakeFiles/cmTC_d7e3f.dir/INT128_SIZE.cpp.o -c /Users/awang/code/CRES/scc-analysis/build-debug/CMakeFiles/CheckTypeSize/INT128_SIZE.cpp
    clang: error: no input files
    /bin/sh: -Werror=unknown-warning-option: command not found
    make[1]: *** [CMakeFiles/cmTC_d7e3f.dir/INT128_SIZE.cpp.o] Error 127
    make: *** [cmTC_d7e3f/fast] Error 2
    

    Using set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} <new_flag>") avoids this problem.


    CMAKE_REQUIRED_FLAGS is given to both C and C++ compiler invocations. The C++-specific flag -std=gnu++14 causes compilation to fail on Apple LLVM 9.1.0 (clang-902.0.39.2) with errors along the lines of:

    Building C object CMakeFiles/cmTC_af532.dir/CheckSymbolExists.c.o
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -DGFLAGS_IS_A_DLL=0 -isystem /usr/local/include -I/usr/local/opt/[email protected]/include  -std=gnu++14   -o CMakeFiles/cmTC_af532.dir/CheckSymbolExists.c.o   -c /Users/awang/code/CRES/scc-analysis/build-debug/CMakeFiles/CMakeTmp/CheckSymbolExists.c
    error: invalid argument '-std=gnu++14' not allowed with 'C/ObjC'
    make[1]: *** [CMakeFiles/cmTC_af532.dir/CheckSymbolExists.c.o] Error 1
    make: *** [cmTC_af532/fast] Error 2
    

    The affected functions are:

    • pthread_atfork
    • memrchr
    • preadv
    • pwritev
    • clock_gettime
    • cplus_demangle_v3_callback
    • malloc_usable_size

    Of these, only pthread_atfork and clock_gettime were detected as being absent when they were actually present.

    The failure to correctly identify the presence of pthread_atfork, at least, can cause Folly to fail to build on macOS because Folly requires pthread_atfork for macOS but thinks it is absent due to the failed test.

    CLA Signed 
    opened by ts826848 13
  • Proxygen Linux compilation breaking in folly io_uring

    Proxygen Linux compilation breaking in folly io_uring

    Commit https://github.com/facebook/folly/commit/07903eb9b8962ddcf0132dc136e0e1d7fc9368cb is causing Proxygen build to break with the following errors on link

    [ 88%] Built target proxygen_curl
    [ 89%] Built target proxygen_httperf2
    [ 90%] Linking CXX executable proxygen_echo
    [ 90%] Linking CXX executable proxygen_proxy
    [ 91%] Linking CXX executable proxygen_push
    [ 91%] Linking CXX executable proxygen_static
    [ 91%] Linking CXX executable hq
    mold: error: undefined symbol: io_uring_enable_rings
    >>> referenced by IoUringBackend.cpp
    >>>               ../../deps/lib/libfolly.a(IoUringBackend.cpp.o):(folly::IoUringBackend::delayedInit())
    mold: error: undefined symbol: io_uring_enable_rings
    >>> referenced by IoUringBackend.cpp
    >>>               ../../deps/lib/libfolly.a(IoUringBackend.cpp.o):(folly::IoUringBackend::delayedInit())
    mold: error: undefined symbol: io_uring_enable_rings
    >>> referenced by IoUringBackend.cpp
    >>>               ../../deps/lib/libfolly.a(IoUringBackend.cpp.o):(folly::IoUringBackend::delayedInit())
    collect2: error: ld returned 1 exit status
    collect2: error: ld returned 1 exit status
    make[2]: *** [proxygen/httpserver/CMakeFiles/proxygen_proxy.dir/build.make:187: proxygen/httpserver/proxygen_proxy] Error 1
    make[2]: *** [proxygen/httpserver/CMakeFiles/proxygen_push.dir/build.make:187: proxygen/httpserver/proxygen_push] Error 1
    make[1]: *** [CMakeFiles/Makefile2:1416: proxygen/httpserver/CMakeFiles/proxygen_proxy.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    make[1]: *** [CMakeFiles/Makefile2:1389: proxygen/httpserver/CMakeFiles/proxygen_push.dir/all] Error 2
    collect2: error: ld returned 1 exit status
    make[2]: *** [proxygen/httpserver/CMakeFiles/proxygen_echo.dir/build.make:187: proxygen/httpserver/proxygen_echo] Error 1
    make[1]: *** [CMakeFiles/Makefile2:1470: proxygen/httpserver/CMakeFiles/proxygen_echo.dir/all] Error 2
    mold: error: undefined symbol: io_uring_enable_rings
    >>> referenced by IoUringBackend.cpp
    >>>               ../../deps/lib/libfolly.a(IoUringBackend.cpp.o):(folly::IoUringBackend::delayedInit())
    collect2: error: ld returned 1 exit status
    make[2]: *** [proxygen/httpserver/CMakeFiles/proxygen_static.dir/build.make:187: proxygen/httpserver/proxygen_static] Error 1
    make[1]: *** [CMakeFiles/Makefile2:1443: proxygen/httpserver/CMakeFiles/proxygen_static.dir/all] Error 2
    mold: error: undefined symbol: io_uring_enable_rings
    >>> referenced by IoUringBackend.cpp
    >>>               ../../deps/lib/libfolly.a(IoUringBackend.cpp.o):(folly::IoUringBackend::delayedInit())
    collect2: error: ld returned 1 exit status
    make[2]: *** [proxygen/httpserver/CMakeFiles/hq.dir/build.make:305: proxygen/httpserver/hq] Error 1
    make[1]: *** [CMakeFiles/Makefile2:1525: proxygen/httpserver/CMakeFiles/hq.dir/all] Error 2
    make: *** [Makefile:146: all] Error 2
    

    The specific lines referring to io_uring_enable_rings are https://github.com/facebook/folly/commit/07903eb9b8962ddcf0132dc136e0e1d7fc9368cb#diff-3e8dcad521bdfe96c888b96c35ced73cd680ace83c6e4c28b86d6f72f2c4763dR1360-R1366

    opened by moderation 0
  • Fixes for older macOS and atomic builtins detection

    Fixes for older macOS and atomic builtins detection

    With these fixes folly builds on older macOS, including 10.5.8 and 10.6 on PowerPC. I have put PPC-related ones into a separate commit.

    One non-macOS-specific fix is related to atomic builtins detection. Current folly configure code does not work correctly: even when atomics requires linking to libatomic, the test still passes, as if it is not needed: Performing Test FOLLY_CPP_ATOMIC_BUILTIN - Success; sure enough, the build fails at linking stage. I borrowed the check from here, where it has been tested on macOS and Linux 32-bit: https://github.com/oneapi-src/oneTBB/pull/987

    CLA Signed 
    opened by barracuda156 2
  • asm_volatile_pause: use isb on aarch64

    asm_volatile_pause: use isb on aarch64

    Summary: On aarch64, we've found isb to be a better analogue to the x86 pause instruction. The SpinLock.TryLock test/microbenchmark shows a one to two order-of-magnitude reduction in runtime (its runtime is highly variable with and without this change due to its very race-y nature).

    Testing: I ran this on aarch64 with Ubuntu 22. Sample runtimes of SpinLock.TryLock before:

    [       OK ] SpinLock.TryLock (50903 ms)
    
    [       OK ] SpinLock.TryLock (32773 ms)
    
    [       OK ] SpinLock.TryLock (70178 ms)
    

    and after:

    [       OK ] SpinLock.TryLock (728 ms)
    
    [       OK ] SpinLock.TryLock (2003 ms)
    
    [       OK ] SpinLock.TryLock (2 ms)
    
    CLA Signed 
    opened by wash-amzn 1
  • MacOS 13 ARM Compiler Errors

    MacOS 13 ARM Compiler Errors

    Good evening everyone, I'm getting a weird compiler error when building wangle which depends on this resource:

    ~/D/K/D/thirdparty_wangle/wangle main• 1.1s ❱ make
    [  1%] Building CXX object CMakeFiles/wangle.dir/acceptor/Acceptor.cpp.o
    In file included from /My/Wangle/Checkout/wangle/acceptor/Acceptor.cpp:17:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/Acceptor.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ConnectionManager.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ManagedConnection.h:21:
    In file included from /opt/homebrew/include/folly/io/async/HHWheelTimer.h:27:
    In file included from /opt/homebrew/include/folly/ExceptionString.h:21:
    In file included from /opt/homebrew/include/folly/FBString.h:34:
    /opt/homebrew/include/fmt/format.h:2493:38: error: expected unqualified-id
    template <typename T> constexpr bool isnan(T value) {
                                         ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:165:7: note: expanded from macro 'isnan'
        ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
          ^
    In file included from /My/Wangle/Checkout/wangle/acceptor/Acceptor.cpp:17:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/Acceptor.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ConnectionManager.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ManagedConnection.h:21:
    In file included from /opt/homebrew/include/folly/io/async/HHWheelTimer.h:27:
    In file included from /opt/homebrew/include/folly/ExceptionString.h:21:
    In file included from /opt/homebrew/include/folly/FBString.h:34:
    /opt/homebrew/include/fmt/format.h:2493:38: error: expected ')'
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:165:7: note: expanded from macro 'isnan'
        ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
          ^
    /opt/homebrew/include/fmt/format.h:2493:38: note: to match this '('
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:165:5: note: expanded from macro 'isnan'
        ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
        ^
    In file included from /My/Wangle/Checkout/wangle/acceptor/Acceptor.cpp:17:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/Acceptor.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ConnectionManager.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ManagedConnection.h:21:
    In file included from /opt/homebrew/include/folly/io/async/HHWheelTimer.h:27:
    In file included from /opt/homebrew/include/folly/ExceptionString.h:21:
    In file included from /opt/homebrew/include/folly/FBString.h:34:
    /opt/homebrew/include/fmt/format.h:2501:48: error: expected unqualified-id
    struct has_isfinite<T, enable_if_t<sizeof(std::isfinite(T())) != 0>>
                                                   ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:155:5: note: expanded from macro 'isfinite'
        ( sizeof(x) == sizeof(float)  ? __inline_isfinitef((float)(x))       \
        ^
    In file included from /My/Wangle/Checkout/wangle/acceptor/Acceptor.cpp:17:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/Acceptor.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ConnectionManager.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ManagedConnection.h:21:
    In file included from /opt/homebrew/include/folly/io/async/HHWheelTimer.h:27:
    In file included from /opt/homebrew/include/folly/ExceptionString.h:21:
    In file included from /opt/homebrew/include/folly/FBString.h:34:
    /opt/homebrew/include/fmt/format.h:2501:8: error: explicit specialization of undeclared template struct 'has_isfinite'
    struct has_isfinite<T, enable_if_t<sizeof(std::isfinite(T())) != 0>>
           ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /opt/homebrew/include/fmt/format.h:2506:22: error: expected unqualified-id
    FMT_CONSTEXPR20 bool isfinite(T value) {
                         ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:155:7: note: expanded from macro 'isfinite'
        ( sizeof(x) == sizeof(float)  ? __inline_isfinitef((float)(x))       \
          ^
    In file included from /My/Wangle/Checkout/wangle/acceptor/Acceptor.cpp:17:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/Acceptor.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ConnectionManager.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ManagedConnection.h:21:
    In file included from /opt/homebrew/include/folly/io/async/HHWheelTimer.h:27:
    In file included from /opt/homebrew/include/folly/ExceptionString.h:21:
    In file included from /opt/homebrew/include/folly/FBString.h:34:
    /opt/homebrew/include/fmt/format.h:2506:22: error: expected ')'
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:155:7: note: expanded from macro 'isfinite'
        ( sizeof(x) == sizeof(float)  ? __inline_isfinitef((float)(x))       \
          ^
    /opt/homebrew/include/fmt/format.h:2506:22: note: to match this '('
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:155:5: note: expanded from macro 'isfinite'
        ( sizeof(x) == sizeof(float)  ? __inline_isfinitef((float)(x))       \
        ^
    In file included from /My/Wangle/Checkout/wangle/acceptor/Acceptor.cpp:17:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/Acceptor.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ConnectionManager.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ManagedConnection.h:21:
    In file included from /opt/homebrew/include/folly/io/async/HHWheelTimer.h:27:
    In file included from /opt/homebrew/include/folly/ExceptionString.h:21:
    In file included from /opt/homebrew/include/folly/FBString.h:34:
    /opt/homebrew/include/fmt/format.h:2538:22: error: unknown type name 'round_direction'
    FMT_CONSTEXPR inline round_direction get_round_direction(uint64_t divisor,
                         ^
    /opt/homebrew/include/fmt/format.h:2546:12: error: use of undeclared identifier 'round_direction'
        return round_direction::down;
               ^
    /opt/homebrew/include/fmt/format.h:2550:12: error: use of undeclared identifier 'round_direction'
        return round_direction::up;
               ^
    /opt/homebrew/include/fmt/format.h:2552:10: error: use of undeclared identifier 'round_direction'
      return round_direction::unknown;
             ^
    /opt/homebrew/include/fmt/format.h:2586:16: error: use of undeclared identifier 'round_direction'
        if (dir != round_direction::up)
                   ^
    /opt/homebrew/include/fmt/format.h:2587:21: error: use of undeclared identifier 'round_direction'
          return dir == round_direction::down ? digits::done : digits::error;
                        ^
    /opt/homebrew/include/fmt/format.h:2639:18: error: use of undeclared identifier 'round_direction'
          if (dir == round_direction::unknown) return digits::error;
                     ^
    /opt/homebrew/include/fmt/format.h:2640:44: error: use of undeclared identifier 'round_direction'
          handler.buf[handler.size++] = dir == round_direction::up ? '1' : '0';
                                               ^
    /opt/homebrew/include/fmt/format.h:3193:15: error: expected unqualified-id
      if (detail::signbit(value)) {  // value < 0 is false for NaN so use signbit.
                  ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:170:5: note: expanded from macro 'signbit'
        ( sizeof(x) == sizeof(float)  ? __inline_signbitf((float)(x))        \
        ^
    In file included from /My/Wangle/Checkout/wangle/acceptor/Acceptor.cpp:17:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/Acceptor.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ConnectionManager.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ManagedConnection.h:21:
    In file included from /opt/homebrew/include/folly/io/async/HHWheelTimer.h:27:
    In file included from /opt/homebrew/include/folly/ExceptionString.h:21:
    In file included from /opt/homebrew/include/folly/FBString.h:34:
    /opt/homebrew/include/fmt/format.h:3200:16: error: expected unqualified-id
      if (!detail::isfinite(value))
                   ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:155:5: note: expanded from macro 'isfinite'
        ( sizeof(x) == sizeof(float)  ? __inline_isfinitef((float)(x))       \
        ^
    In file included from /My/Wangle/Checkout/wangle/acceptor/Acceptor.cpp:17:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/Acceptor.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ConnectionManager.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ManagedConnection.h:21:
    In file included from /opt/homebrew/include/folly/io/async/HHWheelTimer.h:27:
    In file included from /opt/homebrew/include/folly/ExceptionString.h:21:
    In file included from /opt/homebrew/include/folly/FBString.h:34:
    /opt/homebrew/include/fmt/format.h:3201:41: error: expected unqualified-id
        return write_nonfinite(out, detail::isnan(value), specs, fspecs);
                                            ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:165:5: note: expanded from macro 'isnan'
        ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
        ^
    In file included from /My/Wangle/Checkout/wangle/acceptor/Acceptor.cpp:17:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/Acceptor.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ConnectionManager.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ManagedConnection.h:21:
    In file included from /opt/homebrew/include/folly/io/async/HHWheelTimer.h:27:
    In file included from /opt/homebrew/include/folly/ExceptionString.h:21:
    In file included from /opt/homebrew/include/folly/FBString.h:34:
    /opt/homebrew/include/fmt/format.h:3244:15: error: expected unqualified-id
      if (detail::signbit(value)) {
                  ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:170:5: note: expanded from macro 'signbit'
        ( sizeof(x) == sizeof(float)  ? __inline_signbitf((float)(x))        \
        ^
    In file included from /My/Wangle/Checkout/wangle/acceptor/Acceptor.cpp:17:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/Acceptor.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ConnectionManager.h:19:
    In file included from /My/Wangle/Checkout/wangle/../wangle/acceptor/ManagedConnection.h:21:
    In file included from /opt/homebrew/include/folly/io/async/HHWheelTimer.h:27:
    In file included from /opt/homebrew/include/folly/ExceptionString.h:21:
    In file included from /opt/homebrew/include/folly/FBString.h:34:
    /opt/homebrew/include/fmt/format.h:3254:38: error: expected unqualified-id
        return write_nonfinite(out, std::isnan(value), specs, fspecs);
                                         ^
    /Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/math.h:165:5: note: expanded from macro 'isnan'
        ( sizeof(x) == sizeof(float)  ? __inline_isnanf((float)(x))          \
        ^
    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    20 errors generated.
    make[2]: *** [CMakeFiles/wangle.dir/acceptor/Acceptor.cpp.o] Error 1
    make[1]: *** [CMakeFiles/wangle.dir/all] Error 2
    

    I'm using the latest version of wangle and just installed both folly and fizz using HomeBrew (brew install folly).

    Can anyone give me a clue what is going wrong and why? Thank you very much in advance!

    opened by Rincewind34 3
  • Adjust TimeseriesHistogram.Percentile test to avoid failing when compiled with FMA

    Adjust TimeseriesHistogram.Percentile test to avoid failing when compiled with FMA

    Summary: On aarch64, the release build (at least with GCC 11) is using a fused-multiply-add in HistogramBuckets::getPercentileEstimate. One particular evaluation in this test was unfortunately hitting an edge case where FMA changed the result (an intermediate value being -0.999999999999999888977697537484346 rather than -1.0).

    Testing: I tested this change on x86 and aarch64, both Ubuntu 22.

    Example failure on aarch64 before the change:

    4/7 Test #1669: timeseries_histogram_test.TimeseriesHistogram.Percentile ...***Failed    0.00 sec
    Note: Google Test filter = TimeseriesHistogram.Percentile
    [==========] Running 1 test from 1 test suite.
    [----------] Global test environment set-up.
    [----------] 1 test from TimeseriesHistogram
    [ RUN      ] TimeseriesHistogram.Percentile
    /home/ubuntu/folly-TimeseriesHistogram/folly/stats/test/TimeseriesHistogramTest.cpp:105: Failure
    Expected equality of these values:
      -1
      h.getPercentileEstimate(1, IntMTMHTS::ALLTIME)
        Which is: 0
    [  FAILED  ] TimeseriesHistogram.Percentile (0 ms)
    [----------] 1 test from TimeseriesHistogram (0 ms total)
    
    [----------] Global test environment tear-down
    [==========] 1 test from 1 test suite ran. (0 ms total)
    [  PASSED  ] 0 tests.
    [  FAILED  ] 1 test, listed below:
    [  FAILED  ] TimeseriesHistogram.Percentile
    
    CLA Signed 
    opened by wash-amzn 4
  • Fix folly::__folly_memcpy on non-AVX2 platforms

    Fix folly::__folly_memcpy on non-AVX2 platforms

    Important note: I decided to resolve this by making the non-AVX2 case match AVX2, since there had been significant investment in assembly and unit test code towards that behavior, versus a single line invested in the fallback. Changing the behavior in the AVX2 case seems unlikely (and incompatible), so if the desire is to leave memcpy semantics for the non-AVX2 case, then the unit test will instead need adjustments to exclude overlap cases there.

    Summary: When AVX2 is available, __folly_memcpy is implemented in x86 assembly (folly/memcpy.S). This implementation "acts as a memmove" according to its comments and according to the folly_memcpy.overlap test, which explicitly tests overlap scenarios. However, the non-AVX2 path was delegating to std::memcpy, which is not safe under overlap conditions. This change switches that case to std::memmove, making it consistent with the assembly implementation and unit tests.

    Testing: I tested this change on x86 and aarch64, both Ubuntu 22.

    Example failure on aarch64 before the change:

    5/7 Test #2413: memcpy_test.folly_memcpy.overlap ...........................***Failed    0.04 sec
    Note: Google Test filter = folly_memcpy.overlap
    [==========] Running 1 test from 1 test suite.
    [----------] Global test environment set-up.
    [----------] 1 test from folly_memcpy
    [ RUN      ] folly_memcpy.overlap
    /home/ubuntu/folly-Memcpy/folly/test/MemcpyTest.cpp:146: Failure
    Expected equality of these values:
      *(copy_buf.data() + kStartIndex + overlap_offset + i)
        Which is: 'w' (119, 0x77)
      *(check_buf.data() + i)
        Which is: '\x18' (24)
    Error after __folly_memcpy(src + 1000 + 33, src + 1000, 129) at index i = 48
    [  FAILED  ] folly_memcpy.overlap (33 ms)
    [----------] 1 test from folly_memcpy (33 ms total)
    
    [----------] Global test environment tear-down
    [==========] 1 test from 1 test suite ran. (33 ms total)
    [  PASSED  ] 0 tests.
    [  FAILED  ] 1 test, listed below:
    [  FAILED  ] folly_memcpy.overlap
    
    CLA Signed 
    opened by wash-amzn 4
Releases(v2023.01.02.00)
  • v2023.01.02.00(Jan 2, 2023)

    Automated release from TagIt

    File Hashes
    • SHA2-256(folly-v2023.01.02.00.zip)= 1ab2f8dc594ba3d8b72225131a2e4a245abd8a4ffe4bae1f5ba3bc79e8655a49
    • SHA2-512(folly-v2023.01.02.00.zip)= fbded0cc20db8b4e64e5631cd78eb8e439181544e9a1d0035989a8263748f6224dc5b8d95e727bb6a0fe8076752d1ccb7402c77ec20e884a1da85c5df1eb0f0c
    • SHA2-256(folly-v2023.01.02.00.tar.gz)= 1c1ae46f5b1af7ec88db31094dacfd1380d6b1aa0f6bd71ed78298ffcbaaa030
    • SHA2-512(folly-v2023.01.02.00.tar.gz)= 0e92347815973d31f00c548cf5ddade7d3be62d442634bbee1459d87158e683c041b1ab4ef0d13357f08c2fded5dc66ab29a0074730fc7422f2fe2d10d94d638
    Source code(tar.gz)
    Source code(zip)
    folly-v2023.01.02.00.tar.gz(3.58 MB)
    folly-v2023.01.02.00.zip(5.02 MB)
  • v2022.12.26.00(Dec 26, 2022)

    Automated release from TagIt

    File Hashes
    • SHA2-256(folly-v2022.12.26.00.zip)= 881949ba9daf0c370ae6aba0413ee5f095faec517e63246d088cd4785c68147f
    • SHA2-512(folly-v2022.12.26.00.zip)= bf2d283f924129fa6856ed08e24389e7f68f209174a0a2f6bf6705517382ee0c2c59e040223f0c8b2e9b4b7783578f330b4ff332bf11ec247e40702635abcbc2
    • SHA2-256(folly-v2022.12.26.00.tar.gz)= d98810ab6df2811881c84115258d128079f56fccb232a7f31074a6ece25e5b05
    • SHA2-512(folly-v2022.12.26.00.tar.gz)= 28f693c24024971cdc6d61478b5f90f868ce43f2ae66b52efdd7993efcbff6ae2dddf6ff19909947d76df45501ab8ce7302bf047916ff5d90ac81fed601d21dd
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.12.26.00.tar.gz(3.58 MB)
    folly-v2022.12.26.00.zip(5.02 MB)
  • v2022.12.19.00(Dec 19, 2022)

    Automated release from TagIt

    File Hashes
    • SHA2-256(folly-v2022.12.19.00.zip)= 70fdb6bae79d7161c2c300c74adcd35105c7ab94d7c97534da35d6f13176be14
    • SHA2-512(folly-v2022.12.19.00.zip)= 58e30b1c1df2a534b37646ac6ad841415055a6e91bb8f2167f7dba797eb0f57560c2cfb312c25bc28f4db1ce30aea86a1023d7b0be037b08fb4ec76b7e119f28
    • SHA2-256(folly-v2022.12.19.00.tar.gz)= 6cf8a528317099cc6b2c54a152778bcdd42b09372cc4b82b7d69a9b3e7345612
    • SHA2-512(folly-v2022.12.19.00.tar.gz)= bf508a28f7ffe91ea586d2d11660603fe549557227a072b450eb28954d371b39d7209afab25d6a78c0e61019cb8ee9f882b2b25d403ae427c0e23058f79b1839
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.12.19.00.tar.gz(3.58 MB)
    folly-v2022.12.19.00.zip(5.02 MB)
  • v2022.12.12.00(Dec 12, 2022)

    Automated release from TagIt

    File Hashes
    • SHA2-256(folly-v2022.12.12.00.zip)= f9371b2c6c3b3cf35016f53b42b408c3d497b0ceec04d9e62b991e66f8f22259
    • SHA2-512(folly-v2022.12.12.00.zip)= 6bb0228058c1c3f3f33ff8605174626d5ee708768510fcde5363be943bd2cd52746e6676d488d342d5f0432be5f9bddda96824873260649e6cef5771fcd7032f
    • SHA2-256(folly-v2022.12.12.00.tar.gz)= beb4e4d350e9bf7c2cfe8511eac446f9d85cbaa1962257abdad73e37bb926e5c
    • SHA2-512(folly-v2022.12.12.00.tar.gz)= 28bab495a3eef148ab8431d30036e021e0e65f0d3a3670f9647da0aec2daa0766ce89ad7ad81edf1ca739c2bf3d62590fc2726af052a4b55abdd6a95d8822ebc
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.12.12.00.tar.gz(3.58 MB)
    folly-v2022.12.12.00.zip(5.01 MB)
  • v2022.12.05.00(Dec 5, 2022)

    Automated release from TagIt

    File Hashes
    • SHA2-256(folly-v2022.12.05.00.zip)= e5a37de89c00c747e8aaa21e869ab07f730ef121594f0f9d7e659828e3e1d192
    • SHA2-512(folly-v2022.12.05.00.zip)= 5d400edff1b07a18f951a90a5867dbfa238bf5436ce8c7241c60af2e3c28c0cf88245796560d0ff5ccf547892fce0aa9ab1469fd02882b449c18b81790a5577a
    • SHA2-256(folly-v2022.12.05.00.tar.gz)= f08a7f7dceb7e37f3474a98d2a1106065351464e0834f75ff210873eeac4c717
    • SHA2-512(folly-v2022.12.05.00.tar.gz)= b698de02c25eb5c9c73d0c34b5e62cf53483ca7aaeb81ff087f831ec02ca0b7c173b33d09e98a5b4f537b658ff5fee3ec7ef01e1aeb9bfaf37841ebacb36ab8b
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.12.05.00.tar.gz(3.58 MB)
    folly-v2022.12.05.00.zip(5.01 MB)
  • v2022.11.28.00(Nov 28, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.11.28.00.zip)= 33ea23d8d5c2fdbf3c9325f8160e1cf49e16188a31339b3347c9f1f20104575a
    • SHA512(folly-v2022.11.28.00.zip)= 1a707f313bc4e1ed32441a71d2dbe05f770f8202864475acb55a058868b2c4f7e4771a49e3bf5dfafda5043639636a3f9116a66e38f87e614ecd4fd507632c12
    • SHA256(folly-v2022.11.28.00.tar.gz)= 68fe4e8cb9b88d6e9e13a0913f5549ed1bfae9224b8e880754c7c502b0866e58
    • SHA512(folly-v2022.11.28.00.tar.gz)= ebf1f7ea4f693de5bda3ea1c307b74c6a8aafffd660dc6abcce6124d0492ad2eb385943dbe0306e58bba3b6dcad5513dd396de784434853bcbad699c55898ee9
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.11.28.00.tar.gz(3.58 MB)
    folly-v2022.11.28.00.zip(5.01 MB)
  • v2022.11.14.00(Nov 14, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.11.14.00.zip)= 57b811cb427f08108c527cdb144575a8fc50d81a3a1eaca2418280ece881b8c9
    • SHA512(folly-v2022.11.14.00.zip)= f966c291a392ef5de1e1abb70ef5a45d060b7a780af6ae13585bae8c56c5d075304651a4dce8c20e93386d2b5e7eb589cb804f91cf3c00bb085c2b24eaeafd5c
    • SHA256(folly-v2022.11.14.00.tar.gz)= 74c9631738671bb0762151c1b2daaba048e3b338edf1045551a75446fc3f022f
    • SHA512(folly-v2022.11.14.00.tar.gz)= 47bfd0e9ed8e3f9a96f9a6b5267b7ae421011f3cdb8809e0d553993215fc3ce849563d13f7c0888f3e7c60d455b32ef0203dc212edeae4dda0ea107c7e557b8f
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.11.14.00.tar.gz(3.57 MB)
    folly-v2022.11.14.00.zip(4.99 MB)
  • v2022.11.07.00(Nov 7, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.11.07.00.zip)= 57b811cb427f08108c527cdb144575a8fc50d81a3a1eaca2418280ece881b8c9
    • SHA512(folly-v2022.11.07.00.zip)= f966c291a392ef5de1e1abb70ef5a45d060b7a780af6ae13585bae8c56c5d075304651a4dce8c20e93386d2b5e7eb589cb804f91cf3c00bb085c2b24eaeafd5c
    • SHA256(folly-v2022.11.07.00.tar.gz)= 74c9631738671bb0762151c1b2daaba048e3b338edf1045551a75446fc3f022f
    • SHA512(folly-v2022.11.07.00.tar.gz)= 47bfd0e9ed8e3f9a96f9a6b5267b7ae421011f3cdb8809e0d553993215fc3ce849563d13f7c0888f3e7c60d455b32ef0203dc212edeae4dda0ea107c7e557b8f
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.11.07.00.tar.gz(3.57 MB)
    folly-v2022.11.07.00.zip(4.99 MB)
  • v2022.10.31.00(Oct 31, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.10.31.00.zip)= e6759cb0e16197f15fec52068d8f20de8f2af538740e3469f95693f31e5f81a7
    • SHA512(folly-v2022.10.31.00.zip)= 9c3a14d4db0c58b9bc2fb7da3db5cd87659529b39d0eaa9d344c46203615125f1a875c0d03f58ee676049c2d5755666880ef3074d936318fa2f543f389ea875e
    • SHA256(folly-v2022.10.31.00.tar.gz)= d7749f78eee2a327c1fa6b4a290e4bcd7115cdd7f7ef59f9e043ed59e597ab30
    • SHA512(folly-v2022.10.31.00.tar.gz)= 1d734bfe1eb2cc4d4b22fa762dc1c2f97911882880b00bdb68adb5ecd9676d156cb898e53b8d77f293b28e03391cc0a3a719e9299d1e2240bc9ece540ee3a9d3
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.10.31.00.tar.gz(3.56 MB)
    folly-v2022.10.31.00.zip(4.99 MB)
  • v2022.10.24.00(Oct 24, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.10.24.00.zip)= 669e144c5e30ce5a3a955a684ed7e8989104a5700ead6d054471c01bfd09c262
    • SHA512(folly-v2022.10.24.00.zip)= 8bb9b37c816572cd6b25da0422e7346d69eee4d2c5be808ba0f8d19bddca3a64e130d25f31887e35085acda9a133c468b8ecb75216daa5b7fa0fca4e02cd4093
    • SHA256(folly-v2022.10.24.00.tar.gz)= 66f07d9c699065de9f371afe2d79e7c712069d3845d7d214b46a2673a35d9c5d
    • SHA512(folly-v2022.10.24.00.tar.gz)= 8f3dc695172657c460daa66cb55db685da7e83a9d3657e576f52a4105aa2095869f1f211785d2dd06697a8d11e146fd02b24c4b44d65d7789f2af1dbb81b099e
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.10.24.00.tar.gz(3.56 MB)
    folly-v2022.10.24.00.zip(4.99 MB)
  • v2022.10.17.00(Oct 17, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.10.17.00.zip)= f504aad463d17c8a071195dda269ff8d6464e6383717049d281554574dd322c2
    • SHA512(folly-v2022.10.17.00.zip)= 7c197b25dc975ce7c04625d36eae5fd753347f357d1e51f19d69590ece26741af9dea39f8ee91b9097f1d0cd732d5c71611bcd6c5b0a3fbde1ae139324667ca3
    • SHA256(folly-v2022.10.17.00.tar.gz)= 651ba3ed2b38b02c604cf99e008c9e51d87e74c9af2da3c7eaee1240f72ac25b
    • SHA512(folly-v2022.10.17.00.tar.gz)= 89c5c7a2117705c486f72b72eaebdc9278ecb3b6fabba5b59b55cf26bfe8eeb6cca6e8112a6f2eb95d894ea8dacc3ce19b2ac22729ece6d7b3ffe734539ff2b0
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.10.17.00.tar.gz(3.56 MB)
    folly-v2022.10.17.00.zip(4.98 MB)
  • v2022.10.10.00(Oct 10, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.10.10.00.zip)= a6ea467f3313b9894371c5dee9d6b9152e03650a4a320e6588352b5d3f7b2006
    • SHA512(folly-v2022.10.10.00.zip)= c5ba4f408473aae25ac1a6c13f6bfe11ce6139eaede78f288f0079f246e874902cf85c718adf0f105138eb5c2c96e240a168aefb5727d44d96074a43b8361bea
    • SHA256(folly-v2022.10.10.00.tar.gz)= 001d668280b4771bae36401a7388ebae8e44894786fa5399249eab85e9ea417f
    • SHA512(folly-v2022.10.10.00.tar.gz)= 166b51acea52d00ba29f5c31ff3cd15fed608e86076a083206fc372fe5d7b21a4150024f32873c7812c7e5827f106b9209c3861a103725014699c27dc65dc10f
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.10.10.00.tar.gz(3.56 MB)
    folly-v2022.10.10.00.zip(4.98 MB)
  • v2022.10.03.00(Oct 3, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.10.03.00.zip)= f7d8af4fd92fa3181601f2c08bf8593ae957a971e3c09a6d9cfafedf6ddaaf6e
    • SHA512(folly-v2022.10.03.00.zip)= d8eef12574e1e46e152c70e4fd34b725ea6eef6eabe05edcd1f720558462675cc876a9db9a5e636ecd5ff20cf4210dffbe23c584ee4712b7c76eacaab7c9dcb0
    • SHA256(folly-v2022.10.03.00.tar.gz)= 0a98f6da52cfadcb6b5ee7fa4ca495b0c39f1d8dbe64c13597a7fac72ec392a0
    • SHA512(folly-v2022.10.03.00.tar.gz)= 52fed3171f4609656d835fe2a2a2d19e957bbf68732385fd3bffe553e32a883097e996212fc7245bcf68ef67598cff21b928eb7b9ec459c60967fa263bad39f8
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.10.03.00.tar.gz(3.56 MB)
    folly-v2022.10.03.00.zip(4.98 MB)
  • v2022.09.26.00(Sep 26, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.09.26.00.zip)= f908ed813cef5ad8db9e1c39a24e56991a045a39de7e88189c1eedd57d096533
    • SHA512(folly-v2022.09.26.00.zip)= 4e66a7f49ce21431fb86918b6adc33a998ee69be495589cedb30150f07284254c9ee4ddd81a4dc815e8c61872e87e7d3583f17627aa6c0e62d28e49259fac5b2
    • SHA256(folly-v2022.09.26.00.tar.gz)= 83a7adcff07c8e6a9aaa8dc16ceab651f8885b93b0fd1474ba772e8f5dd84b14
    • SHA512(folly-v2022.09.26.00.tar.gz)= 3c5cec1d77095cff85921b0d552d5923eb9eee4f5b55bcf98bb01a49a0e223abb65fbc25001527cdfda2c89078ed1313682c34e676de9d5efdf6c99a1334e3ae
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.09.26.00.tar.gz(3.55 MB)
    folly-v2022.09.26.00.zip(4.97 MB)
  • v2022.09.19.00(Sep 19, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.09.19.00.zip)= 518fa871e9207b48485171c54487009410a528322341d6a74301471ccedb6aff
    • SHA512(folly-v2022.09.19.00.zip)= d515aa1c298059ecc393264b47322f6574fdee05213445e1e573e94bc4a9db9087dbe088f184f84fc53f3ca638e4af14c9d452f7a4596fb2b99cfa1161c16b5f
    • SHA256(folly-v2022.09.19.00.tar.gz)= d03d131c9480e1229337fe1c3163efab8eedbb27d4ed4844a4ddff99eaf0e8a9
    • SHA512(folly-v2022.09.19.00.tar.gz)= 0ebd89d5ecdcbab9d9edf961d1eb241db79348e2a19d042377c7da714796d22419abdaf410e2cd99657bbff3deda9066011b9ce9a91122baf71dadb5015ed7e8
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.09.19.00.tar.gz(3.54 MB)
    folly-v2022.09.19.00.zip(4.95 MB)
  • v2022.09.12.00(Sep 12, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.09.12.00.zip)= 9dae44a40106906d086648aac1cfc61cdb412bd118e60504b1b0e1bc4a09b408
    • SHA512(folly-v2022.09.12.00.zip)= b9384dac25a26ffdc888b3a2c65a1b79313999052c158a6e9b67233ab20803a3dbaebf54c250e8635b49b943318cd05ffc7e91e6d54865f9136cdb921ab8ca9b
    • SHA256(folly-v2022.09.12.00.tar.gz)= 8457d25bb9c19ad437f6134210b1ca2265a78f20ffb6dbed3cb34ea88f1d74bf
    • SHA512(folly-v2022.09.12.00.tar.gz)= f9d0ca44f6f0c343d16e8ee5408808830b30155d42a257c48e627f9a82bb4a57568a7feeba01cf73704db68af1eee7424971540635d5dfe1728fc2ae73953940
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.09.12.00.tar.gz(3.53 MB)
    folly-v2022.09.12.00.zip(4.94 MB)
  • v2022.09.05.00(Sep 5, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.09.05.00.zip)= 77c55e9042ecf3c7fce518fb3012985c1c8f38111e92706dcc456e29c7849709
    • SHA512(folly-v2022.09.05.00.zip)= f084c8f418be0f8dd1769346f4eac1db148302a8ffd0490d5660884b3af386c8df6fb4e7538d1913ac3dd5197a318ebfc4fcfb663dfba3a64e6755b165655758
    • SHA256(folly-v2022.09.05.00.tar.gz)= 5ace2d56403ecba8987fcdd73434eeed70d3771740e7b18447564fb1f20a567f
    • SHA512(folly-v2022.09.05.00.tar.gz)= 5ab206606c3e8b0930e098bc86406edd1b66e99bfa5b3bdcd93bfc054c83fae5271b4257a03a2e18d9f1f789bf64088de2e0c3bbd0a9618ef4281e748da0ccba
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.09.05.00.tar.gz(3.53 MB)
    folly-v2022.09.05.00.zip(4.94 MB)
  • v2022.08.29.00(Aug 29, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.08.29.00.zip)= 3adac6d4b203c2917185fd190fc04d615051cb2a4f6b988ddf3c42034efc8d4d
    • SHA512(folly-v2022.08.29.00.zip)= 02b7e41a461176d3c3573c40659674a121c5c90f8fbc474b42b1f7f01c64cfbd7ab2c747ea22944f4638837bbe2969383e458bd3dcba438a2661dacdc53a0e77
    • SHA256(folly-v2022.08.29.00.tar.gz)= 4f9167846a0cebf2dae370659b4883e38aaa178cc6ef06ec5d57fad3594c0843
    • SHA512(folly-v2022.08.29.00.tar.gz)= 1437a1314e26624715a0bb781049e19300eb3a67648287b319c55ce0dfbc867a09bd9d2f0cece6fc75fc62b21899aa94b464ae49c12687be7c94fdf0c7b95790
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.08.29.00.tar.gz(3.52 MB)
    folly-v2022.08.29.00.zip(4.92 MB)
  • v2022.08.22.00(Aug 22, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.08.22.00.zip)= 2673c8e8941b1412636c3a6900db6dd25aaa733d6344a8fb054eedb1749987f2
    • SHA512(folly-v2022.08.22.00.zip)= fdd2cff43aa23ef0f0e749c15ea400699bacf6e7a1e260b8c9230992670c0c92447708cece655e7b2118983cca587be4d3d7102fdd2c56a763162c11890ffbcb
    • SHA256(folly-v2022.08.22.00.tar.gz)= faa399d075af14dcfa5892124bdcd6d20f047a7e776703d008efce9ece10e6bb
    • SHA512(folly-v2022.08.22.00.tar.gz)= b042a25c4e114d7098dbba94699a472e94a9074fe0814b1c5417e5bf995b69a22704613ae2a863d4e098511b0b8cc38c2e7c172a02b7bf772e238edcfe967c9e
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.08.22.00.tar.gz(3.52 MB)
    folly-v2022.08.22.00.zip(4.91 MB)
  • v2022.08.15.00(Aug 15, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.08.15.00.zip)= c8fd4ded7ecf19fa33685aea29d857e45e63f11feb2d34997228b7735b078262
    • SHA512(folly-v2022.08.15.00.zip)= aca2a67f1750b9010624a0ee23c1b655678d2a445b84d994bcf42eff2a1d2a6c61cc5f4cd09dccfd8968eee4b11d66fcc0be1545bfcc215d78a20fe87755b299
    • SHA256(folly-v2022.08.15.00.tar.gz)= 81d0e9f03ced7fa9a0c2eb7abde45b8222eb3481c3df73f20bd011be23b234c2
    • SHA512(folly-v2022.08.15.00.tar.gz)= 72d8d29a1f26f5af33d13e1d2f7ed5ce439bc7345daecc3ed1d30e33b802e0aa4f1ca59fae16db25079e55da14f60cd6a548f0f31eef48abad49b71baa6e6307
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.08.15.00.tar.gz(3.52 MB)
    folly-v2022.08.15.00.zip(4.91 MB)
  • v2022.08.08.00(Aug 8, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.08.08.00.zip)= bf09abc17d28bd606dc4d511d0efbdeb3e3c9b0af4a7c9208fff3db77f178b49
    • SHA512(folly-v2022.08.08.00.zip)= ca68b07236573e163c0d82eae1d1d05341004d699f09bac4dce9cc9fd7f7eee3c182d05f97e3a46f46ebade4455a453e23c986bef4c5401656f639ff3eac3064
    • SHA256(folly-v2022.08.08.00.tar.gz)= a8915c7191f36d5529a49b89c3fe6847db840e5e28a9456149352c0238a5776d
    • SHA512(folly-v2022.08.08.00.tar.gz)= f44dbf96f42a86d44cad46129750ae2bc0abb6702e148de10def4b241a3c7afa62ad19acca96609e8a9bfdfeeb7eda3f19d8eb161b5e41702c943ca87a75c88e
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.08.08.00.tar.gz(3.51 MB)
    folly-v2022.08.08.00.zip(4.90 MB)
  • v2022.08.01.00(Aug 1, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.08.01.00.zip)= 8dbe542e8f2685fa13e47e494063a2b0e4122d2810a4bd9c244e6dcb5f0cedd2
    • SHA512(folly-v2022.08.01.00.zip)= c7f12f27cbacb6a52d2da65bdc5322df37f8f0c42b9e33f18a4e2acfe3cf73366fa5690f9c6c6647a09cc91c0f9d060c57a32c56547ee4b4aae7e21eb88fea7e
    • SHA256(folly-v2022.08.01.00.tar.gz)= d740eeaee52bdc204688c5b82c2b9bc68e27cd91a38d2cfd29340b26862587c6
    • SHA512(folly-v2022.08.01.00.tar.gz)= d1b7712f17095fcf85e776d4833e9603db521579646bcd0e4719a1273d9418e6ac22687824797c0888b84ef50cf61a8fde3efc511295d30465b665b6240c1945
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.08.01.00.tar.gz(3.50 MB)
    folly-v2022.08.01.00.zip(4.90 MB)
  • v2022.07.25.00(Jul 25, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.07.25.00.zip)= f51f24a80c852cdd94c885c599a86673b321410538b02bbfa6b6de05c0ccac7b
    • SHA512(folly-v2022.07.25.00.zip)= 3051bd822f50c5f8c69b83490322620d33b2c01b600d4062e8ca6594cc1e47b44179d7440842411077a833f5dff6e17362dfa7463f51fa37d55ee050f159b9bd
    • SHA256(folly-v2022.07.25.00.tar.gz)= 56d5039bf1e384c3d7b0ddf833fa492d4bbeee6fac7f3b39ed69d35346c8251f
    • SHA512(folly-v2022.07.25.00.tar.gz)= 5b6d692662bf3c606acf9848b391a0e4f8b8f5fbdbf6c044fb7249d3110ac2f0c1957d3b199612f59d39e95e294570dffe78def74302dd973bb68a7a819e0653
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.07.25.00.tar.gz(3.50 MB)
    folly-v2022.07.25.00.zip(4.90 MB)
  • v2022.07.18.00(Jul 18, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.07.18.00.zip)= 1f167ea74ea21d7806e8bf650ec22e1b9c62471c22b3674dd591b8838fbe5ad6
    • SHA512(folly-v2022.07.18.00.zip)= 5506c426329b047304e715848a8ca3479eca0a5ba7b2defc05880b688be8ae1796e6be3b598cd9a2ef38fd9c9c2799aa4ee5e62c0f2b264fd48502a846b2fc14
    • SHA256(folly-v2022.07.18.00.tar.gz)= 36eec96f834e192864fcd6d8893393d50ebc039e252d5b9a7351f31241e5862a
    • SHA512(folly-v2022.07.18.00.tar.gz)= 787629ce80a0db30fa9d60dcfc8d70c61884ac144dd4a49f9cb78585ee7d59b2952564c8294a5e7bfa6671cc0e7e2a6bacdb14ae3f052a1a8ecb6c461dc7b336
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.07.18.00.tar.gz(3.50 MB)
    folly-v2022.07.18.00.zip(4.89 MB)
  • v2022.07.11.00(Jul 11, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.07.11.00.zip)= f7f933754ba851b0837d0c4c090016b91784cc0c041e1127d6db35f38ffaa380
    • SHA512(folly-v2022.07.11.00.zip)= 036ad69a5b845d86982926244933eb6fcb2bc8eb8f1df86eae55dad0215cce335b7e44db7de518e0067ae4050cd25d32644ce582ff427e841be561b515f7a8bd
    • SHA256(folly-v2022.07.11.00.tar.gz)= b545c9531975469ec23620cfa938c1af91379b8afe4fdbeb1175515a14ddb071
    • SHA512(folly-v2022.07.11.00.tar.gz)= 36faf06204b1fb77f80f24b81e21b68caca6cc55274cc416f47ca3e9b772e51ed8859972141393d23b532ead91481946cd402cc7d075ae285272a28f21db27b5
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.07.11.00.tar.gz(3.47 MB)
    folly-v2022.07.11.00.zip(4.85 MB)
  • v2022.07.04.00(Jul 4, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.07.04.00.zip)= 93604c30262a50c794762299c04f1d4fb34b9d9d764164592aa87b4cb1edb93a
    • SHA512(folly-v2022.07.04.00.zip)= da7318aa2f0edbdb0c44b291df78cd0f1187dbdaa24619e80b4a204414c19df4ba5dd437ea3273b14fbc13aa4c9babbcad19974c65c04e433584118351d41f9e
    • SHA256(folly-v2022.07.04.00.tar.gz)= fff7caa4a230ac0b3ee88e383fa9ea1ee2b2f3f7611ae5b18c73a71a40ec0d43
    • SHA512(folly-v2022.07.04.00.tar.gz)= 11fc32768539d8d42c7396eeac522238450617c8dde302b45c64bb93fd6ceaef7bb193b897802962782e8211c3931d31bf8df68e06741ce855d9725510677d7a
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.07.04.00.tar.gz(3.47 MB)
    folly-v2022.07.04.00.zip(4.85 MB)
  • v2022.06.27.00(Jun 27, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.06.27.00.zip)= a56070020e48c7181a2882dd9e77f4c5882a9f27271c9f23ef533687206d965f
    • SHA512(folly-v2022.06.27.00.zip)= bdf1e2cdad546c9387fc738728ff1aadcdae55a14bf5fe8c9f542738d415482f8abea0bafe1fe2878340fd4593418fa3ecd3a0f6a74888698633a5e81bb26b37
    • SHA256(folly-v2022.06.27.00.tar.gz)= 3e6e51203e7ffe4fe53a215f2070aff522e043f90681083544c2daf9d71978d5
    • SHA512(folly-v2022.06.27.00.tar.gz)= 3947c4075416893d0a9a38f5c1041f2e43bc4a599967783606789d9d6a73dd103fd16d4788e229a007c21aa1508cfbd5b9c6eb90bfe70390cab2af2c66990b57
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.06.27.00.tar.gz(3.47 MB)
    folly-v2022.06.27.00.zip(4.85 MB)
  • v2022.06.20.00(Jun 20, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.06.20.00.zip)= 95975021bac037071a3259e51bfe063c15d7267adc9a49dd31210be16cf9896e
    • SHA512(folly-v2022.06.20.00.zip)= fb8438144e7e6f4a8885577a9b314da67a1e5c4e84e70f4dfbe2d2389a58b14754dcb427fe6704d62c66cc674083b18c855159c46ef532320f71ecb654816132
    • SHA256(folly-v2022.06.20.00.tar.gz)= 5f19de81c22359cc1eaff7546cb2cf5a861f9b6425b02a702adea3f43a4b3d40
    • SHA512(folly-v2022.06.20.00.tar.gz)= b66da1c4b799401264127e78b616e6f1e442c83d85968536e4135440b7d5d5ee4411de88681e5d46a7d27c7b8da5fa0f62b7102d964870d5716d621bc423d107
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.06.20.00.tar.gz(3.47 MB)
    folly-v2022.06.20.00.zip(4.84 MB)
  • v2022.06.13.00(Jun 13, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.06.13.00.zip)= b8089216c35f67f0052fbbede6396de50776b57bcf2b9a17f39a2fdd26b4fa0c
    • SHA512(folly-v2022.06.13.00.zip)= b49ad636449fb5a0b870a3fb20893b0c5a670d12f0d5ba6505cc6819de789437e698d7180a9f0d2012ee2d4d154508178b8cb4f2bc124f9232f8b8786d35f56c
    • SHA256(folly-v2022.06.13.00.tar.gz)= 119e25986b5a4bf695a57689715c0ac567bdbef8fddea840efa5743c69080c0d
    • SHA512(folly-v2022.06.13.00.tar.gz)= aa0caee0ef0395c59304c860351266957dc38ed754ca17322b063b605c7b5d16840a4a9b621e11fbc18e1d72de5137010deb5c4531db7795b75eecfa4c9f0475
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.06.13.00.tar.gz(3.47 MB)
    folly-v2022.06.13.00.zip(4.84 MB)
  • v2022.06.06.00(Jun 6, 2022)

    Automated release from TagIt

    File Hashes
    • SHA256(folly-v2022.06.06.00.zip)= 812eb734137e8920e4c68473b30e4a036f95e25297d07bfde505d4fa5073de89
    • SHA512(folly-v2022.06.06.00.zip)= 9497ed0faab392f287afcd33d0900a459cb14806d29c09f42ae701e4385d456c7fe6672140e0d2afd6cf8c89f9e0d01141ec8e6a64629cfe264b16325e8b0802
    • SHA256(folly-v2022.06.06.00.tar.gz)= ea082ca1c858d64331765a11c26de886e60cd644b413f12c65ffbea9221a7a2b
    • SHA512(folly-v2022.06.06.00.tar.gz)= fdec9e7e6d6548753cd2dc51a49bf287b68084cbc8863843764c5513bf460fabbc7cd231319e5004dff1471d85be2efa2cbabcce9778e18f663f8f7b242883e9
    Source code(tar.gz)
    Source code(zip)
    folly-v2022.06.06.00.tar.gz(3.46 MB)
    folly-v2022.06.06.00.zip(4.84 MB)
Owner
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
Facebook
An open source library for C

Homo Deus - C Library Introduction The Homo Deus C Library (hdelibc) is an open source collection of tools for the C programming language. The project

Homo Deus 115 Dec 11, 2022
JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins.

JUCE is an open-source cross-platform C++ application framework used for rapidly developing high quality desktop and mobile applications, including VS

JUCE 4.7k Jan 1, 2023
Basic Development Environment - a set of foundational C++ libraries used at Bloomberg.

BDE Libraries This repository contains the BDE libraries, currently BSL (Basic Standard Library), BDL (Basic Development Library), BAL (Basic Applicat

Bloomberg 1.4k Dec 29, 2022
Fast, orthogonal, open multi-methods. Supersedes yomm11.

YOMM2 This is a complete rewrite of YOMM11, which is now deprecated. This library is much better, see here to find out why. TL;DR If you are familiar

Jean-Louis Leroy 246 Dec 25, 2022
KoanLogic 400 Dec 25, 2022
EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.

EA Standard Template Library EASTL stands for Electronic Arts Standard Template Library. It is a C++ template library of containers, algorithms, and i

Electronic Arts 6.9k Jan 3, 2023
Functional Programming Library for C++. Write concise and readable C++ code.

FunctionalPlus helps you write concise and readable C++ code. Table of contents Introduction Usage examples Type deduction and useful error messages T

Tobias Hermann 1.7k Dec 29, 2022
Embedded Template Library

Embedded Template Library (ETL) Motivation C++ is a great language to use for embedded applications and templates are a powerful aspect. The standard

Embedded Template Library 1.5k Dec 28, 2022
? A glib-like multi-platform c library

A glib-like cross-platform C library Supporting the project Support this project by becoming a sponsor. Your logo will show up here with a link to you

TBOOX 4.2k Dec 29, 2022
NIH Utility Library

libnih is a light-weight "standard library" of C functions to ease the development of other libraries and applications. Its goals are: * despite it

Scott James Remnant 81 Dec 10, 2022
A toolkit for making real world machine learning and data analysis applications in C++

dlib C++ library Dlib is a modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real worl

Davis E. King 11.6k Jan 5, 2023
An eventing framework for building high performance and high scalability systems in C.

NOTE: THIS PROJECT HAS BEEN DEPRECATED AND IS NO LONGER ACTIVELY MAINTAINED As of 2019-03-08, this project will no longer be maintained and will be ar

Facebook Archive 1.7k Dec 14, 2022
C++14 evented IO libraries for high performance networking and media based applications

LibSourcey C++ Networking Evolved LibSourcey is a collection of cross platform C++14 modules and classes that provide developers with an arsenal for r

Sourcey 1.3k Dec 21, 2022
Easy to use, header only, macro generated, generic and type-safe Data Structures in C

C Macro Collections Easy to use, header only, macro generated, generic and type-safe Data Structures in C. Table of Contents Installation Contributing

Leonardo Vencovsky 345 Jan 5, 2023
A collection of single-file C libraries. (generic containers, random number generation, argument parsing and other functionalities)

cauldron A collection of single-file C libraries and tools with the goal to be portable and modifiable. Libraries library description arena-allocator.

Camel Coder 40 Dec 29, 2022
C++ Parallel Computing and Asynchronous Networking Engine

As Sogou`s C++ server engine, Sogou C++ Workflow supports almost all back-end C++ online services of Sogou, including all search services, cloud input method,online advertisements, etc., handling more than 10 billion requests every day. This is an enterprise-level programming engine in light and elegant design which can satisfy most C++ back-end development requirements.

Sogou-inc 9.7k Dec 26, 2022
Idle is an asynchronous and hot-reloadable C++ dynamic component framework

Idle is an asynchronous, hot-reloadable, and highly reactive dynamic component framework similar to OSGI that is: ?? Modular: Your program logic is en

Denis Blank 173 Dec 7, 2022
Flint++ is cross-platform, zero-dependency port of flint, a lint program for C++ developed and used at Facebook.

Flint++ A Cross Platform Port of Facebook's C++ Linter Flint++ is cross-platform, zero-dependency port of flint, a lint program for C++ developed and

Joss Whittle 255 Dec 10, 2022
The pico can be used to program other devices. Raspberry pi made such an effort. However there is no board yet, that is open-source and can be used with OpenOCD as a general-purpose programmer

pico-probe-programmer The pico can be used to program other devices. Raspberry pi made such an effort. However there is no board yet, that is open-sou

martijn 22 Oct 15, 2022
A continuation of FSund's pteron-keyboard project. Feel free to contribute, or use these files to make your own! Kits and PCBs are also available through my facebook page.

pteron-pcb Intro This project is the evolution of the Pteron-Keyboard project, an incredible ergonomic keyboard that was handwired only. I aimed to in

null 17 Oct 11, 2022