1. 02 Dec, 2021 6 commits
    • Alex Hornby's avatar
      add dry-run option to install-system-deps · 5783b9ab
      Alex Hornby authored
      Summary: Useful to be able to see what packages would be installed without doing it, and to see rpm vs deb packages
      
      Reviewed By: Croohand
      
      Differential Revision: D32693528
      
      fbshipit-source-id: a01257e7192f2f0299d57f6f8f7ee93452a6f3e4
      5783b9ab
    • Yedidya Feldblum's avatar
      fix MSVC C5219 conversion warnings in EventBase · de82c426
      Yedidya Feldblum authored
      Summary:
      Fixes warnings like the following:
      
      ```
      folly\io\async\EventBase.cpp(725): warning C5219: implicit conversion from '_Rep' to 'double', possible loss of data
              with
              [
                  _Rep=__int64
              ]
      folly\io\async\EventBase.cpp(738): warning C5219: implicit conversion from '_Rep' to 'double', possible loss of data
              with
              [
                  _Rep=__int64
              ]
      folly\io\async\EventBase.cpp(740): warning C5219: implicit conversion from 'size_t' to 'double', possible loss of data
      ```
      
      Reviewed By: luciang
      
      Differential Revision: D31330566
      
      fbshipit-source-id: 86a2cd10fdad53dce9c0ee0704b26bb1bce2bf18
      de82c426
    • Yedidya Feldblum's avatar
      cut macro FOLLY_HAVE_EVENTFD · a7426cc4
      Yedidya Feldblum authored
      Summary: No place which defines this nominally owns the name.
      
      Reviewed By: Gownta
      
      Differential Revision: D32632858
      
      fbshipit-source-id: ab5ee161b7c80f08a177c752c4bfe693cf9c9de3
      a7426cc4
    • Jacob Bower's avatar
      Allow custom global executor for native callbacks · 9549eeb5
      Jacob Bower authored
      Summary:
      Makes `folly::AsyncioExecutor` an abstract class and adds new `folly::python::setExecutorForLoop()` (C++) and `folly.executor.set_executor_for_loop()` (Python) functions. These control what is returned by `folly::python::getExecutor()` and `folly.executor.get_executor()` and hence allow installing a custom system for handling native callbacks on the Python event loop.
      
      In this implementation we only allow the executor for a given Python event loop to be set _once_ before being explicitly cleared. An alternative which was discussed was returning the previous executor when setting a new one, allowing the caller to stack them. My rationale for not doing this is I think this makes it too easy to accidentally "lose" callbacks registered with an existing executor.
      
      Reviewed By: vladima, pranavtbhat
      
      Differential Revision: D32486564
      
      fbshipit-source-id: 4c9ad4e5f2b7b89f1edafdb4eddd9ccacb23635f
      9549eeb5
    • Yedidya Feldblum's avatar
      invoke-qual macros · 91a18af1
      Yedidya Feldblum authored
      Summary: For invoking things given possible-qualified names. Differs from invoke-free as the latter accepts an optional list of namespaces scope to include in name lookup but does not permit qualified names and does not admit a lambda variation.
      
      Reviewed By: Gownta
      
      Differential Revision: D32670267
      
      fbshipit-source-id: f9b9e33bd1e3cfa1c191eb8c91b3f50bb0e9734e
      91a18af1
    • Yedidya Feldblum's avatar
      a comment about not using badges with unknown callees · a97e36d6
      Yedidya Feldblum authored
      Reviewed By: Gownta
      
      Differential Revision: D32747533
      
      fbshipit-source-id: f3fe004797eeaf22ae1db85f27b547dc7ad7cfbc
      a97e36d6
  2. 01 Dec, 2021 5 commits
    • Alex Hornby's avatar
      add os type filtering to generate-github-actions · 823ec7bd
      Alex Hornby authored
      Summary: Hand to do just one
      
      Reviewed By: zpao
      
      Differential Revision: D32693529
      
      fbshipit-source-id: ac27c79f8a43c540e3b0836eba3a40bd61dd725b
      823ec7bd
    • Vladimir Matveev's avatar
      Add a cache for the last seen event loop to avoid lookup cost · b62b4231
      Vladimir Matveev authored
      Summary: As in title, skip lookup in `WeakKeyDictionary` for repeated `get_fiber_manager` calls on the same event loop
      
      Reviewed By: pranavtbhat
      
      Differential Revision: D32566214
      
      fbshipit-source-id: 7a9305ef88538ae4ef422283bc1b8a4140b8ea33
      b62b4231
    • Alex Hornby's avatar
      change to upload-artifact@v2 · d873835c
      Alex Hornby authored
      Summary: Update to new version of upload-artifact without branch name as that's a separate repo that our dynamic branch settings should not apply to.
      
      Reviewed By: zpao
      
      Differential Revision: D32717494
      
      fbshipit-source-id: 968908d1072d6d4550705e7df0b3828528e057dc
      d873835c
    • Alex Hornby's avatar
      run the github actions update · 8cf76910
      Alex Hornby authored
      Summary: Pick up the changes from master to main change
      
      Reviewed By: zpao
      
      Differential Revision: D32693532
      
      fbshipit-source-id: 8cf68e3310b4d2daf71fb10eee7a801c6eabbd48
      8cf76910
    • Alex Hornby's avatar
      update github actions default from master to main · fc008166
      Alex Hornby authored
      Summary: Branches updated some time ago, update this to match
      
      Reviewed By: zpao
      
      Differential Revision: D32693531
      
      fbshipit-source-id: 02da79e3fb5fcd3b204be4605521a151b977ce2c
      fc008166
  3. 30 Nov, 2021 9 commits
    • Samuel Miller's avatar
      Migrate get509() callsite to OpenSSLTransportCert · ec528801
      Samuel Miller authored
      Summary:
      Before removing `getX509()` from `AsyncTransportCertificate` we need to migrate
      all the callsites to `OpenSSLTransportCertificate`.
      
      Differential Revision: D30487611
      
      fbshipit-source-id: 50deea4904b7b6a6c08c6d4fd0c635a4bc8774cb
      ec528801
    • Shai Szulanski's avatar
      Add method pointer overloads of CoInvoke gmock helpers · b0d73b7b
      Shai Szulanski authored
      Summary: Match overloads of upstream Invoke action to ease migration
      
      Reviewed By: ispeters
      
      Differential Revision: D32706320
      
      fbshipit-source-id: d9564f63e534e3651433806fcf4f1fff7730fcc5
      b0d73b7b
    • Yan Soares Couto's avatar
      Delete Mononoke getdeps builds · 9d7c9e70
      Yan Soares Couto authored
      Summary: Mononoke has decided to no longer support getdeps builds. This diff deletes all mentions to those I could find.
      
      Reviewed By: StanislavGlebik
      
      Differential Revision: D32469441
      
      fbshipit-source-id: a11b3f1d5c57ef20792deb0e7f164e655f62648c
      9d7c9e70
    • Dmytro Stechenko's avatar
      Add subset to superset badge lifting · 9a519751
      Dmytro Stechenko authored
      Summary:
      Conversion for cases when we have a `folly::any_badge<A, B>` and want to call some function that accepts `folly::any_badge<A, B, C>`.
      ```
      void call_superset(folly::any_badge<A, B, C>);
      void call_subset(folly::any_badge<A, B> badges) { call_superset(badges); }
      
      // somewhere in A class
      call_subset(folly::badge<A>{});
      
      // somewhere in B class
      call_subset(folly::badge<B>{});
      ```
      
      Also establish bidirectional conversions between `folly::badge<A>` and `folly::any_badge<A>`.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D32697212
      
      fbshipit-source-id: 2f55d0b5015e133166fcdd6d9c25a0e396c2a151
      9a519751
    • Alex Hornby's avatar
      fix distro name · 4faac360
      Alex Hornby authored
      Summary: Missed this when switching from spaces to underscores in distro names
      
      Reviewed By: krallin
      
      Differential Revision: D32693527
      
      fbshipit-source-id: 658504d76c96defd3f1a217ada8b05f99c841ede
      4faac360
    • Alex Hornby's avatar
      update openssl · fae3a56c
      Alex Hornby authored
      Summary: Update it
      
      Reviewed By: krallin
      
      Differential Revision: D32641645
      
      fbshipit-source-id: 77ad7a2771804ac9d32dc38982635b45863af4dc
      fae3a56c
    • Yedidya Feldblum's avatar
      fix param name in FOLLY_CREATE_FREE_INVOKER_SUITE · 51391b69
      Yedidya Feldblum authored
      Reviewed By: Gownta
      
      Differential Revision: D32669969
      
      fbshipit-source-id: 4e0cd2cf73ba695720dd41416d0d04a3996385da
      51391b69
    • Yedidya Feldblum's avatar
      more asan wrappers for fibers · 20047d63
      Yedidya Feldblum authored
      Summary: Wrap more of poisoning/unpoisoning and fiber stack switching.
      
      Reviewed By: luciang
      
      Differential Revision: D31635307
      
      fbshipit-source-id: 9a6f9adbefe6fd995cfa864e0498102e237e6351
      20047d63
    • Yedidya Feldblum's avatar
      tweak in-place backport · d9ae16d1
      Yedidya Feldblum authored
      Summary:
      Use inline variables to avoid the function-pointer trick.
      
      Use explicit default constructors per the types in the standard.
      
      Import the names from the standard in C++17.
      
      This allows declaring a function with tags from one namespace and calling the function with tags from the other namespace in C++17.
      
      Reviewed By: vitaut
      
      Differential Revision: D32588945
      
      fbshipit-source-id: 0ece26ebf7f9f6acf9abb8b008327f06f84091f2
      d9ae16d1
  4. 29 Nov, 2021 3 commits
    • Lucian Grijincu's avatar
      __folly_memcpy: allow overlapping buffers of any size and provide drop-in replacement for memmove · e19669d3
      Lucian Grijincu authored
      Summary:
      `__folly_memcpy` already behaved as `memmove` for n <= 256B.
      
      For n > 256B and overlapping buffers `__folly_memcpy` did some work
      - it determined the size is large enough for 128B AVX loads/stores
      - it has already copied the first 128B and the last 128B in YMM registers
      
      but then discarded it and fell back on `memmove`.
      
      Instead of wasting this work, forward copy (dst < src) or backward copy (dst > src).
      - use unaligned loads + aligned stores, but not non-temporal stores
      - for dst < src forward copy in 128 byte batches:
      -- unaligned load the first 32 bytes & last 4 x 32 bytes
      -- forward copy (unaligned load + aligned stores) 4 x 32 bytes at a time
      -- unaligned store the first 32 bytes & last 4 x 32 bytes
      - for dst > src backward copy in 128 byte batches:
      -- unaligned load the first 4 x 32 bytes & last 32 bytes
      -- backward copy (unaligned load + aligned stores) 4 x 32 bytes at a time
      -- unaligned store the first 4 x 32 bytes & last 32 bytes
      
      Reviewed By: yfeldblum
      
      Differential Revision: D31915389
      
      fbshipit-source-id: 2c0197b2bddc102a7fb8f70a6f43e79ac994dc73
      e19669d3
    • Shai Szulanski's avatar
      Make Try's copy/move constructability match inner type · 62fa4e65
      Shai Szulanski authored
      Summary: Before this change Try always reports as copy constructible then fires a static_assert if you try to instantiate that constructor for a non-copy-constructible type, which breaks logic like that inside std::vector::resize.
      
      Reviewed By: yfeldblum
      
      Differential Revision: D32567774
      
      fbshipit-source-id: 4e3e35a1f823ac9ccb5e2d648015fddccb14cfbf
      62fa4e65
    • Yedidya Feldblum's avatar
      cut legacy eventfd shims for glibc 2.5 · 7f49eded
      Yedidya Feldblum authored
      Summary: That is an old glibc. The shims are no longer required.
      
      Reviewed By: Orvid
      
      Differential Revision: D32632173
      
      fbshipit-source-id: d6ce675c6f16b896a950363b411bec66cedca966
      7f49eded
  5. 26 Nov, 2021 4 commits
    • Alex Hornby's avatar
      renable eden_scm build on macOS · d079207f
      Alex Hornby authored
      Summary: renable after python update from previous diff took us to a Big Sur compatible version
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32619730
      
      fbshipit-source-id: 50cefe8a2448b7e12d2f666b4570790bfbbe2cdf
      d079207f
    • Alex Hornby's avatar
      update python to 3.8 · 1148195e
      Alex Hornby authored
      Summary:
      Update to a newer python that builds on macOS Big Sur, make eden_scm depend on it and use it from PATH
      
      python 3.8 requires libffi which is reference via its pkg-config setup,  however python's pkg-config libffi detection is broken (https://bugs.python.org/issue34823) with the documented workaround requiring an environment variable to be passed into its ./configure step, which is why this change also adds a feature to AutoconfBuilder
      
      With the updated python in place I was able to remove disable_env_override_pkgconfig = 1
      disable_env_override_path = 1 from the eden_scm config so that it actually uses the pkg-configs, PATHs and other settings from its dependencies. This should make future python and other dependency upgrades much simpler.
      
      Reviewed By: HarveyHunt
      
      Differential Revision: D32231261
      
      fbshipit-source-id: a2b6addbe22f38e3d71618c802d2c6f836fdd86c
      1148195e
    • 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
  6. 25 Nov, 2021 1 commit
  7. 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
  8. 23 Nov, 2021 4 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