1. 26 Nov, 2021 2 commits
    • Yedidya Feldblum's avatar
      FOLLY_CXX17_CONSTEXPR · fc80a3aa
      Yedidya Feldblum authored
      Summary: A macro which expands to `constexpr` under C++17. Can be used with `if` and lambdas in cases where `constexpr` is an optional hint but not necessary for the program to compile.
      
      Reviewed By: Mizuchi
      
      Differential Revision: D32607012
      
      fbshipit-source-id: 56a6d8679ab2add4f88c89642166f1ed4b956089
      fc80a3aa
    • Yedidya Feldblum's avatar
      address warning C4866 in bser · 7c40f03a
      Yedidya Feldblum authored
      Summary:
      Fixes this warning:
      
      ```
      folly\experimental\bser\Load.cpp(109) : warning C4866: compiler may not enforce left-to-right evaluation order for call to 'folly::dynamic::operator[]'
      folly\experimental\bser\Load.cpp(131) : warning C4866: compiler may not enforce left-to-right evaluation order for call to 'folly::dynamic::operator[]'
      folly\experimental\bser\Load.cpp(136) : warning C4866: compiler may not enforce left-to-right evaluation order for call to 'folly::dynamic::operator[]'
      ```
      
      Reviewed By: luciang
      
      Differential Revision: D31320782
      
      fbshipit-source-id: 9e42176436d7ebf22af38b0589ccdc75e020b771
      7c40f03a
  2. 25 Nov, 2021 1 commit
  3. 24 Nov, 2021 8 commits
    • Pranjal Raihan's avatar
      Use FOLLY_DISABLE_SANITIZERS in MicroLock · 071b632b
      Pranjal Raihan authored
      Reviewed By: yfeldblum
      
      Differential Revision: D32364716
      
      fbshipit-source-id: f36356d5818adebe5bbbe219044c81282ab008a6
      071b632b
    • Alex Hornby's avatar
      add -v/--verbose option to see more output · 92c5f79b
      Alex Hornby authored
      Summary: I found this useful to see where manifests resolve to when they are already built
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32644308
      
      fbshipit-source-id: b796cb67f154177fbac1093290d97fe5aab6b20c
      92c5f79b
    • Alex Hornby's avatar
      fix lint · d6273303
      Alex Hornby authored
      Summary: Fix FLAKE8 lint about redefintion of 'getdeps' variable
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32644576
      
      fbshipit-source-id: 9c3b4ef54d2278238c3dc88a4969e34e24976a3d
      d6273303
    • Alex Hornby's avatar
      use system cert config when building own openssl · 569318b2
      Alex Hornby authored
      Summary: This fixes some missing cert errors when running eden_scm tests against our own build of openssl on macOS
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32617808
      
      fbshipit-source-id: efc34341c2c9b578f9c1c92e0678dfb16ef9112e
      569318b2
    • Alex Hornby's avatar
      be more consistent about using system openssl on linux · d2715c95
      Alex Hornby authored
      Summary: System openssl is preferred on Linux
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32617807
      
      fbshipit-source-id: 30913858b7f4172cea3d819a63d57563b3da64aa
      d2715c95
    • Alex Hornby's avatar
      replace space with underscore in getdeps triple · 573a9547
      Alex Hornby authored
      Summary: I don't think the spaces were breaking anything, but many years on unix means they set my spidey sense tingling when looking at the build logs.
      
      Reviewed By: StanislavGlebik
      
      Differential Revision: D32619583
      
      fbshipit-source-id: 8d5bc35f085faced20457645f1c1430371a3c578
      573a9547
    • Yedidya Feldblum's avatar
      cut outdated use of FOLLY_USE_LIBSTDCPP · f1a936b6
      Yedidya Feldblum authored
      Summary: Just replace it with `__GLIBCXX__`.
      
      Reviewed By: andrewjcg
      
      Differential Revision: D32624136
      
      fbshipit-source-id: fa3ae4b4e7c3b6c05793a25cc99a93a0d0c18c7f
      f1a936b6
    • Yedidya Feldblum's avatar
      FOLLY_INVOKE_MEMBER · 9b876d88
      Yedidya Feldblum authored
      Summary: A lambda-expression parallel to `FOLLY_CREATE_MEMBER_INVOKER_SUITE`.
      
      Reviewed By: Gownta
      
      Differential Revision: D32601861
      
      fbshipit-source-id: 8bb5876d800215346b19c42090a1cc13b6aa9042
      9b876d88
  4. 23 Nov, 2021 5 commits
    • Yedidya Feldblum's avatar
      hybrid_lock, either shared_lock or unique_lock · 3fac996e
      Yedidya Feldblum authored
      Summary: In generic algorithms parameterized by a mutex type, it may be the case that a shared lock is desired if the mutex is a shared mutex and a unique lock is desired otherwise. This allows a wider range of mutex type arguments rather than just permitting shared mutex types. A hybrid lock may be used with read-only access to data; when the mutex type is shared, the lock would be optimized to a shared lock, but when the mutex type is non-shared, the lock would fall back to a unique lock. This may be helpful since writes may dominate reads in some cases and unique locks on non-shared mutex types may be faster than unique locks on shared mutex types.
      
      Reviewed By: Gownta
      
      Differential Revision: D29624498
      
      fbshipit-source-id: 9caaf9c413fd6ce7ea318906362c3c4330f8d343
      3fac996e
    • Alex Hornby's avatar
      bootstrap cmake in parallel · 046dbf3b
      Alex Hornby authored
      Summary: Lets make this faster
      
      Reviewed By: Croohand
      
      Differential Revision: D32614135
      
      fbshipit-source-id: 2285bdb89c2ad982667261800f327f851a6cfcec
      046dbf3b
    • Alex Hornby's avatar
      build openssl in parallel · 91e9e33c
      Alex Hornby authored
      Summary: Make it faster, the build can run in parallel.  Unfortunately install can't but its pretty quick anyway.
      
      Reviewed By: Croohand
      
      Differential Revision: D32608049
      
      fbshipit-source-id: 6c86184993a065e29f95df658f1b50ba563a5b14
      91e9e33c
    • Alex Hornby's avatar
      fix a flake8 lint · 7f3fb8af
      Alex Hornby authored
      Summary: fix a lint, platform variable was declared twice
      
      Reviewed By: Croohand
      
      Differential Revision: D32605614
      
      fbshipit-source-id: 8e43de8689bf30410273355444db9c3d94663d43
      7f3fb8af
    • Yedidya Feldblum's avatar
      detect choice of stdlib · d2c36642
      Yedidya Feldblum authored
      Summary: The stdlibs export ways to detect which are in use. Cut the unnecessary preprocessor names for detecting/overriding.
      
      Differential Revision: D32515501
      
      fbshipit-source-id: 2bc85cda30ebbdfa0163e3fe287aceb8df923303
      d2c36642
  5. 22 Nov, 2021 2 commits
    • Alex Hornby's avatar
      update fb303 repo_url · b6c651ac
      Alex Hornby authored
      Summary: The project as moved out of github facebookincubator org to facebook org
      
      Reviewed By: StanislavGlebik
      
      Differential Revision: D32593002
      
      fbshipit-source-id: 4ea29dc63fa60e9a9a4f169ea65f7fdca6333005
      b6c651ac
    • Alex Hornby's avatar
      default to main branch · 05089c1c
      Alex Hornby authored
      Summary:
      Most referenced repos have moved from master to main as default branch, so flip the default in getdeps.
      
      As well as tidying things up, this means more manifests will be able to use the pinned git commit hash for a dependency that shipit generates (e.g. build/deps/github_hashes/facebook/folly-rev.txt). This is because a "rev = " setting in the manifest is treated as a dynamic override in GitFetcher.__init__ and this diff reduces the number of such overrides.
      
      Reviewed By: StanislavGlebik
      
      Differential Revision: D32567564
      
      fbshipit-source-id: 3f1b734eb1bb0f5dbafb01ceb935a3d51b8dcc9a
      05089c1c
  6. 19 Nov, 2021 2 commits
  7. 18 Nov, 2021 4 commits
    • Jolene Tan's avatar
      Change tryGetExceptionObject template class to Ex · 2c9e8145
      Jolene Tan authored
      Summary: Other template classes, as well as the docstring, use `Ex` to refer to the exception class.
      
      Differential Revision: D32192455
      
      fbshipit-source-id: 664db8beee0850ac3fb8e3cfcd46a28d568cb808
      2c9e8145
    • Mark Santaniello's avatar
      Auto-reserve initializer_list operator= · 9103d8e8
      Mark Santaniello authored
      Summary: Enable auto-reserve for operator=(std::initializer_list).
      
      Reviewed By: yfeldblum, shixiao
      
      Differential Revision: D32233038
      
      fbshipit-source-id: ae16a5508dcae5957ea44404ac55d489a14937af
      9103d8e8
    • Alex Hornby's avatar
      add a libffi manifest · 094faa5f
      Alex Hornby authored
      Summary: libffi is needed for getdeps python 3.8 update
      
      Reviewed By: krallin
      
      Differential Revision: D32459310
      
      fbshipit-source-id: 6515eed088fb6de0091c2348b5732d1b635113e0
      094faa5f
    • Chad Austin's avatar
      download PCRE from sourceforge instead: ftp.pcre.org is dead · cbea6f12
      Chad Austin authored
      Summary:
      ftp.pcre.org is dead. We are currently migrating from PCRE1 to
      PCRE2. In the meantime, download from SourceForge instead like we do
      with Boost.
      
      Reviewed By: akushner, xavierd
      
      Differential Revision: D32520283
      
      fbshipit-source-id: 9fda6930d7d8b677786a43419c4c0dc6289305f1
      cbea6f12
  8. 17 Nov, 2021 4 commits
    • Andrew Gallagher's avatar
      Fix some `-Wundef` warnings for `FOLLY_SANITIZE` · 4ea1b5a3
      Andrew Gallagher authored
      Summary:
      In the vast majority of cases in fbcode, the sanitizer macros are checked with
      `#ifdef`, so do the same in some places to fix `-Wundef`.
      
      Reviewed By: luciang
      
      Differential Revision: D32501662
      
      fbshipit-source-id: 123e22d78476c9db0e328ccb01a734a06a163594
      4ea1b5a3
    • Andrew Gallagher's avatar
      Always define `FOLLY_USE_LIBCPP` to `0`/`1` · 3c362348
      Andrew Gallagher authored
      Summary:
      Users may set `FOLLY_USE_LIBCPP` or `FOLLY_USE_LIBSTDCPP` to `0` or
      `1`, so make sure everything checks it via `#if`.
      
      Reviewed By: luciang
      
      Differential Revision: D32496561
      
      fbshipit-source-id: 5eee660b540af0bf1eaee4949576acf11c9be8d0
      3c362348
    • Yedidya Feldblum's avatar
      tweak atomic-fetch-bit-op mask casts · d43c44b8
      Yedidya Feldblum authored
      Summary: Cast the result of shifts to the integer type parameter, rather than the shift width.
      
      Reviewed By: aary, luciang
      
      Differential Revision: D32160950
      
      fbshipit-source-id: 0100a1a92c48bfa1cd957cf42ed84d01302ea4f7
      d43c44b8
    • Andrii Grynenko's avatar
      Make Observable update code run on the observer internal thread · 1cc6c6d9
      Andrii Grynenko authored
      Summary: Previously update() could be run both directly from within the update notification callback (that can happen in any context while holding some application locks), but also while observer is initially created from the observable. This change moves the update logic to be called on the observer internal thread, making the implementation even more resilient to various locks that may be held by the application.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D32338088
      
      fbshipit-source-id: 557f47c98469a951ce4b5513ce96e2b3a5d8ba6b
      1cc6c6d9
  9. 16 Nov, 2021 3 commits
  10. 15 Nov, 2021 3 commits
    • Shai Szulanski's avatar
      Add error hint to CoroutineHandle (resubmit) · 6b58b9e8
      Shai Szulanski authored
      Summary: Provies single-await co_nothrow wrapper
      
      Reviewed By: capickett
      
      Differential Revision: D32405920
      
      fbshipit-source-id: b0b5c55149aebe4246422fabeffb7ed433b4e20d
      6b58b9e8
    • Andrii Grynenko's avatar
      Remove MicroLock::init() · 22073b2c
      Andrii Grynenko authored
      Summary: Have constructor do init() instead. I can't think of any valid reason to have this API other than confusing everyone who decides to use it.
      
      Reviewed By: praihan
      
      Differential Revision: D32302228
      
      fbshipit-source-id: 136e0d2919291acd60be953337309cd006bd674b
      22073b2c
    • Pranjal Raihan's avatar
      Add FOLLY_DISABLE_MEMORY_SANITIZER to FOLLY_DISABLE_SANITIZERS · 84c2ff1c
      Pranjal Raihan authored
      Summary: Now we'll ignore all the known sanitizers: ASAN, TSAN, MSAN, UBSAN.
      
      Reviewed By: yfeldblum, jdonald
      
      Differential Revision: D32364717
      
      fbshipit-source-id: f71a294dd9ebaa8521f0487ebc65c6f7c1e7bf04
      84c2ff1c
  11. 13 Nov, 2021 1 commit
    • Michel Salim's avatar
      Fix for ppc64le · 028a9aba
      Michel Salim authored
      Summary:
      Inlining `getStackTraceInPlace` fails on Fedora with
      
      ```
      /builddir/build/BUILD/folly-2020.12.21.00/folly/experimental/symbolizer/StackTrace.cpp: In function 'folly::symbolizer::(anonymous namespace)::getStackTraceInPlace(ucontext_t&, unw_cursor&, unsigned long*, unsigned long)':
      /builddir/build/BUILD/folly-2020.12.21.00/folly/experimental/symbolizer/StackTrace.cpp:88:9: error: function 'folly::symbolizer::(anonymous namespace)::getStackTraceInPlace(ucontext_t&, unw_cursor&, unsigned long*, unsigned long)' can never be inlined because it uses setjmp
         88 | ssize_t getStackTraceInPlace(
            |         ^~~~~~~~~~~~~~~~~~~~
      ```
      
      Reviewed By: yfeldblum
      
      Differential Revision: D29639503
      
      fbshipit-source-id: 823692d95171d5fb3968761c00b4cc5650db171b
      028a9aba
  12. 12 Nov, 2021 4 commits
  13. 11 Nov, 2021 1 commit
    • Shai Szulanski's avatar
      Add error hint to CoroutineHandle · 8f26eb68
      Shai Szulanski authored
      Summary: Provies single-await co_nothrow wrapper
      
      Reviewed By: capickett
      
      Differential Revision: D31450124
      
      fbshipit-source-id: e8d18c49248d85ef864abad2eecffe69de58a546
      8f26eb68