1. 24 Nov, 2021 2 commits
    • 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
  2. 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
  3. 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
  4. 19 Nov, 2021 2 commits
  5. 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
  6. 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
  7. 16 Nov, 2021 3 commits
  8. 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
  9. 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
  10. 12 Nov, 2021 4 commits
  11. 11 Nov, 2021 6 commits
    • 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
    • Shai Szulanski's avatar
      CoroutineHandle · f5a43a13
      Shai Szulanski authored
      Summary: Extended coroutine handle interface for attaching new features
      
      Reviewed By: capickett
      
      Differential Revision: D31450126
      
      fbshipit-source-id: 2aa6b8a4fb72e5007d08f38fcde5c7abd8eabd67
      f5a43a13
    • Andrew Huang's avatar
      Back out "Add support for remove session callbacks in SSLContext; remove from SSLSessionCallbacks" · 9ededa2b
      Andrew Huang authored
      Reviewed By: AjanthanAsogamoorthy
      
      Differential Revision: D32328268
      
      fbshipit-source-id: e2816aa89d0ffc96e0377603fca6ca4a39830def
      9ededa2b
    • Philip Pronin's avatar
      fix frame count reporting · a922f5ff
      Philip Pronin authored
      Summary:
      We're hiding internal frames during dump, but forget to adjust
      the reported count, so the output looks clowny.
      
      Reviewed By: luciang
      
      Differential Revision: D32340094
      
      fbshipit-source-id: 86a02c54178a03a83fa64c29faf6d82abfa45bf8
      a922f5ff
    • Thomas Orozco's avatar
      eden: add python-filelock to getdeps build · 11af35b6
      Thomas Orozco authored
      Summary: I use it in the next diff.
      
      Reviewed By: xavierd
      
      Differential Revision: D32280314
      
      fbshipit-source-id: 32d86780ae3187449fc7ceb1dc474cc7ac2d1ac1
      11af35b6
    • Yedidya Feldblum's avatar
      let c/x expected and value params be dependent · db8ef89b
      Yedidya Feldblum authored
      Summary: Let their types be determined by the atomic parameter only so that conversions may happen at the call-site. This is what the `std::atomic_compare_exchange` functions do. Those functions are specified to use `typename std::atomic<T>::value_type` rather than `T` but, curiously, not all implementations of `std::atomic` have member type alias `value_type`. So instead of using member type alias `value_type` to get dependency, we use `type_t`.
      
      Reviewed By: ot
      
      Differential Revision: D32259208
      
      fbshipit-source-id: 413e3580aff3dd0ece5051b7a62dfd16f49eb5a8
      db8ef89b
  12. 10 Nov, 2021 4 commits