- 02 Jul, 2020 3 commits
-
-
Giuseppe Ottaviano authored
Differential Revision: D22211304 (https://github.com/facebook/folly/commit/c9c5564232aaffbc0f1d3807b21bb2cd60ec4d2d) Original commit changeset: 0dbe904c9fd8 fbshipit-source-id: 49cf24dab4f91fcebf9dc5a2db66d23683fcaa37
-
Giuseppe Ottaviano authored
Differential Revision: D22304614 (https://github.com/facebook/folly/commit/cf31609549e6085b1d9be523e67cd62f05287d5e) Original commit changeset: bf846730c594 fbshipit-source-id: c1982958588fb0bf1194c84de93d6ed1336ccdb5
-
Dan Melnic authored
Summary: Add io_uring support for fsync/fdatasync Reviewed By: kevin-vigor Differential Revision: D22344375 fbshipit-source-id: c6e1de2d778568c4abbefa0a732a3cf8cffc7c97
-
- 01 Jul, 2020 4 commits
-
-
Zeyi (Rice) Fan authored
Summary: In EdenFS's latest Windows package. We are seeing DLL import errors coming from `asyncio` as it requires a system native module `_overlapped.pyd`. The underlying cause is because when we build EdenFS CLI on Sandcastle, we are linking with Python 3.6.2. The Python36.dll shipped with the EdenFS package is also coming from that version. However, on Windows laptop. We have Python 3.6.3. Since we are not shipping the Python system libraries with us. It uses the libraries installed in the system, and it attempts to import the `_overlapped.pyd` located at `C:\Pythone36\DLLs\`. This version is compiled against Python 3.6.3, which is incompatible with the Python36.dll we are using. ---- To resolve this, we need either ship an embedded copy of Python along with EdenFS, or teach EdenFS to use the Python distribution installed in the system. This commit tweaks the executable we prepend to the archive created with zipapp to locate `Python3.dll` dynamically. This allows us to use the Python installed in the system so we can avoid the version mismatch issue. With this setup, we can also be shipping an embedded Python version along with EdenFS, and the Python loader can look for that path. This is demonstrated with the relative DLL loading `..\python`. In theory, we can have a package structure like this: ``` . ├── python │ ├── .... │ └── python3.dll └── bin ├── ... ├── edenfsctl.exe └── edenfs.exe ``` Reviewed By: xavierd Differential Revision: D22325210 fbshipit-source-id: 96a3f9503e7865a5f9d95710ff13f019afcf04f1
-
Jon Maltiel Swenson authored
Summary: fbthrift no longer depends on rsocket-cpp Reviewed By: simpkins Differential Revision: D22275231 fbshipit-source-id: c1f217f1ce97591b8ebca002bf8ae3af701be641
-
Yedidya Feldblum authored
Summary: [Folly] Small benchmark for `coarse_steady_clock`. Differential Revision: D22320499 fbshipit-source-id: dbd93e886b9e984d7469288258eefaa4a3fafb10
-
Giuseppe Ottaviano authored
Summary: The upper bitvector size (in bits) can exceed the domain of `SizeType` even if the list otherwise respects the contract. Also improve some of the tests. Reviewed By: yfeldblum, philippv Differential Revision: D22304614 fbshipit-source-id: bf846730c59451457d3e2d3cf14d90e3df012e0b
-
- 30 Jun, 2020 7 commits
-
-
Matthieu Martin authored
Summary: Complete support of the FiberManager::addTask* Reviewed By: pranavtbhat Differential Revision: D22305146 fbshipit-source-id: 94e4a02f754b306d8b5fe4994832a7e2dc2cf4a5
-
Matthieu Martin authored
Summary: Simplify API understanding for code reader Reviewed By: pranavtbhat Differential Revision: D22272546 fbshipit-source-id: 341625ed9079f3bc4aee09851eadc02fd05b2434
-
Phil Willoughby authored
Summary: `clang-cl` and some other invocations of `clang` on windows define `_MSC_VER`. However `clang` does not implement `#pragma optimize` so we need to use the other code-path here. Reviewed By: yfeldblum Differential Revision: D22301661 fbshipit-source-id: e51656497a5fc109bf04f7daac82f824ba8c5c8e
-
Sergey Anpilov authored
Summary: Filtering is one of the basic stream operations and it would be convenient to have it for AsyncGenerators Reviewed By: yfeldblum Differential Revision: D22136080 fbshipit-source-id: ca6a233a8c1aeddb63899aeaba8ca4c1b6dfa535
-
Swaroop Manjunath authored
Summary: # Note: This is a resubmission after reverting this change. The failing `DCHECK` has been fixed with an explicit cast to `size_t` to accommodate long lists. # Summary This diff introduces the following changes to the EliasFanoReader implementation. - `EliasFanoReader` no longer requires knowledge of the last value in the list at construction time. This removes the need to access the last byte of the encoded list. - Operations in `UpperBitsReader` are now responsible for ensuring validity. - Removes constraint that the last set bit in upperBits must be in the last byte of the encoded list. In addition, the diff also extends the unit-tests for Elias Fano coding to add arbitrary extensions to the upperBound at construction to ensure that additional 0-blocks at the end of the list do not affect the behavior of the reader. Reviewed By: ot, luciang Differential Revision: D22211304 fbshipit-source-id: 0dbe904c9fd8cd9568a480355e5e6a4525922966
-
Matthieu Martin authored
Summary: Only accept Async input now Reviewed By: yfeldblum Differential Revision: D22268635 fbshipit-source-id: cd974af7a7a3adc25b3c90029efe4c6080c3739a
-
Tristan Rice authored
Summary: When zero copy is enabled on AsyncSSLSocket every IOBuf written via writeChain is accumulated in idZeroCopyBufInfoMap_ and never freed. Differential Revision: D22272411 fbshipit-source-id: 576d16ddb4e5c7c19209b77f7346949f10fbf32d
-
- 29 Jun, 2020 3 commits
-
-
Matthieu Martin authored
Summary: This provides a set of three functions under folly::fibers::async, to schedule then wait for work on a remote fiber manager. The functions cover those 3 (legitimate) needs: - Blocking current thread: `T executeOnRemoteFiberAndWait` - Blocking current fiber: `Async<T> executeOnRemoteFiber` - Awaitable (barebone version for now): `Future<T> addFiberRemoteFuture` See code docblock for more details Reviewed By: pranavtbhat Differential Revision: D22252598 fbshipit-source-id: add9c23f5bdacb233e47f30b2639d376027167e3
-
Dan Melnic authored
Summary: More io_uring file read/write tests Reviewed By: kevin-vigor Differential Revision: D22236012 fbshipit-source-id: 37abd398d07af2bb41cfe3b3b6dfeb40410554d5
-
Shrikrishna Khare authored
Summary: Koray reported issue with OpenNSA while using build VM and observed that we don't hit the issue on devserver thanks to downloading the lfs cached file. The root cause: Broadcom added License notice and uploaded new 6.5.19 with same name. This changed the hash though - causing fbcode builder to complain. Fix it by adjusting the hash. See the first line in the recursive diff of before vs. after: P134467317 (the broken symlinks is an unrelated existing issue, which we have reported to Broadcom). Reviewed By: bkoray Differential Revision: D22280971 fbshipit-source-id: 781079df426f83901509225156cf77a3966d3301
-
- 27 Jun, 2020 1 commit
-
-
Matthieu Martin authored
Summary: After pursuing adoption and more discussion, it seems clear that this was probably trying to push "hiding fiber details" one step too far. See comment in code for more details Reviewed By: yfeldblum, pranavtbhat Differential Revision: D22259585 fbshipit-source-id: 798cada6527332faf7e4db9942a964d6b7cca1e4
-
- 26 Jun, 2020 2 commits
-
-
Pranav Thulasiram Bhat authored
Summary: This diff converts `await` into a callable object. Reviewed By: yfeldblum Differential Revision: D22175597 fbshipit-source-id: 689e11c62161a2e4b82699bf52835e92c96beff7
-
Pranav Thulasiram Bhat authored
Summary: If `func` is mutable, then the lambda applying `init_await` must be mutable too in order to call `func`'s non-const () operator. This diff marks the `init_await` applying lambdas mutable. Reviewed By: yfeldblum Differential Revision: D22238824 fbshipit-source-id: 20f202b121edd0bdfcf7a6f707a4f1d4df0181d8
-
- 25 Jun, 2020 2 commits
-
-
Songqiao Su authored
Summary: to avoid hit TSAN issue when using coro::Baton (Note: this ignores all push blocking failures!) Reviewed By: lewissbaker Differential Revision: D22192037 fbshipit-source-id: ee35179be79deb1d3b79b7b432c8a65c793f7d8f
-
Lewis Baker authored
Summary: The C++20 specification for coroutines included a late change that now requires the `co_await promise.final_suspend();` expression to not be potentially throwing (ie. it needs to be declared `noexcept`). This change updates all coroutine types in folly to make sure that `final_suspend()` methods and the methods on awaitables returned from these methods are all declared `noexcept` so that folly can be used with compilers that enforce this requirement. Reviewed By: yfeldblum Differential Revision: D22203834 fbshipit-source-id: 4a5bbcbad644349d2ff0b08f6460fa13c3165aec
-
- 24 Jun, 2020 10 commits
-
-
Pranav Thulasiram Bhat authored
Summary: This diff adds a README for the async annotation library. Reviewed By: andriigrynenko, A5he Differential Revision: D22080510 fbshipit-source-id: 2b1800fd44596e0e4bddff8a321a88fcd9304739
-
Mark Santaniello authored
Summary: Use the intrusive list's clear_and_dispose API to simplify things somewhat. Reviewed By: yfeldblum Differential Revision: D22199152 fbshipit-source-id: fb6ec4e206660bc7628ddd87edba3698d8a2af6d
-
Pranav Thulasiram Bhat authored
Summary: This diff implements a new API to schedule a function on a new fiber and block the existing fiber till completion. The API should be used sparingly to deal with fiber-stack-overflow issues Reviewed By: A5he Differential Revision: D22074021 fbshipit-source-id: 893e578b1acd6dd5cca34187fc8431202cdb73da
-
Pranav Thulasiram Bhat authored
Summary: This diff implements a wrapper around `fibers::collectAll` to accept annotated functors. It also implements version of `collect` that accepts variadic arguments, and returns a tuple. Reviewed By: A5he Differential Revision: D22142416 fbshipit-source-id: dab320f7e1718c3872c54e168c24ea4bc39051d5
-
Pranav Thulasiram Bhat authored
Summary: This diff implements addFiber, a wrapper around fiberManager.addTask. It should mainly be used to 'fire-and-forget' a fiber. Reviewed By: A5he Differential Revision: D22073924 fbshipit-source-id: 52516e86b7b03a7bc59166fae4db79f60cddffb7
-
Pranav Thulasiram Bhat authored
Summary: This diff has two goals: - To provide an API that allows users to schedule async annotated functors to run on fibers (thereby removing the need to use `init_await` at the top of the stack) - To provide a boilerplate-free entry point into fiber code that should work for a majority of testing/benchmarking interactions with fiber manager. The diff implements two APIs: -addFiberFuture: wrapper around `fiberManager.addTaskFuture`. The differing name is to mainly avoid namespace collisions and avoid confusion with `coro::Task` - blockingWait: Fiber entry point helper Reviewed By: A5he Differential Revision: D22071005 fbshipit-source-id: 24ceea005d32f6e2c84b4599042703207504bd0f
-
Shrikrishna Khare authored
Summary: 6.5.19 is now available, switch OSS to pick that instead of old 6.5.17. Reviewed By: rsunkad Differential Revision: D22199286 fbshipit-source-id: 231346df8d2f918d2226cfe17b01bde12c18a5a7
-
Lukas Piatkowski authored
Summary: Due to Thrift design of "include" statements in fbcode the thrift structures has to be contained in folders that are identical to the folder layout inside fbcode. This diff changes the folder layout on Cargp.toml files and in fbcode_builder, there will be a next diff that changes this for ShipIt as well. Reviewed By: ikostia Differential Revision: D22208707 fbshipit-source-id: 65f9cafed2f0fcc8398a3887dfa622de9e139f68
-
Andrii Grynenko authored
Reviewed By: LeeHowes Differential Revision: D22181192 fbshipit-source-id: 279c56398cd7e4c9274bc43c3564062588c9c81a
-
Lucian Grijincu authored
Differential Revision: D18662578 (https://github.com/facebook/folly/commit/42d5bf14cd6feafa91beeb214d2441bf27ab03c7) Original commit changeset: e04a99208848 fbshipit-source-id: 57a66a9c90955d67f942db4a3cad15910ee74178
-
- 23 Jun, 2020 7 commits
-
-
Matthew Laux authored
Summary: Avoid allocation during startup by creating the exception objects the first time getXXXX is called. Reviewed By: yfeldblum Differential Revision: D22128606 fbshipit-source-id: b5ba662dcfac9f859dc9c972d1906fe1c29c42cc
-
Kirk Shoop authored
Summary: name change Reviewed By: LeeHowes Differential Revision: D22162997 fbshipit-source-id: 8431a25fe46df2b5e4bfb162fc982b1c55bce7ce
-
Swaroop Manjunath authored
Summary: This diff introduces the following changes to the EliasFanoReader implementation. - `EliasFanoReader` no longer requires knowledge of the last value in the list at construction time. This removes the need to access the last byte of the encoded list. - Operations in `UpperBitsReader` are now responsible for ensuring validity. - Removes constraint that the last set bit in upperBits must be in the last byte of the encoded list. In addition, the diff also extends the unit-tests for Elias Fano coding to add arbitrary extensions to the upperBound at construction to ensure that additional 0-blocks at the end of the list do not affect the behavior of the reader. Reviewed By: ot Differential Revision: D18662578 fbshipit-source-id: e04a9920884844abd5ffe6796b0062bb59a334ae
-
Lewis Baker authored
Summary: This diff adds a new StrandExecutor executor-type that is similar to SerialExecutor in that it serialises execution of work enqueued to it, but is more general in that it allows different tasks to be executed on different executors. To do this, it separates the queue out into a StrandContext object which can be passed to multiple StrandExecutor objects, allowing them each to share a queue, while allowing each StrandExecutor to dispatch work queued to it to a different parent Executor. Reviewed By: andriigrynenko Differential Revision: D21848165 fbshipit-source-id: 4dda6bd13a9cd5b275a11f13101242cd73b327e7
-
Shrikrishna Khare authored
Summary: We had to fork OpenNSA and clone from it, see D19437386 for details. Broadcom has now started hosting OpenNSA as a tarball. Thus, we no longer need to maintain a fork (yay!) This patch points opennsa manifest to fetch opennsa from this new location. Reviewed By: bkoray Differential Revision: D22175932 fbshipit-source-id: 51cd777ab836e4f191d78fbb2312925e446ca38f
-
Zeyi (Rice) Fan authored
Summary: This bug can be triggered when your computer name contains emoji. getdeps.py will fail to create this file due to Python attempts to write the file as cp1252 (Windows's default encoding) Reviewed By: wez Differential Revision: D22171935 fbshipit-source-id: fc3be2d1050c17ddbe05a0fc91d6613865f092ce
-
Giuseppe Ottaviano authored
Summary: F14 class member fields are often in headers, and often the default constructor is implicit. The current implementation unconditionally instantiates `reserve()`, which has non-negligible cost. By specializing the default constructor we can avoid that in the common case. Reviewed By: philippv, luciang Differential Revision: D22166465 fbshipit-source-id: d31ebc7f6ab71392d49a6722545f8df9027d034b
-
- 22 Jun, 2020 1 commit
-
-
Lukasz Piatkowski authored
Summary: As per https://github.com/actions/virtual-environments/issues/709 there started to be some issies with Ubuntu envs running out of space. This should fix it. Also our Cargo builds use a lot of space, changing them to be non-incremental and removing debug symbols keeps the build fast, but greatly reduces the disk space usage leaving us enough space on GitHub Actions virtual machines. Pull Request resolved: https://github.com/facebookexperimental/eden/pull/23 Reviewed By: farnz Differential Revision: D22160020 Pulled By: lukaspiatkowski fbshipit-source-id: c23393e310c15ebf5a18b80f0bb5f1f894d24849
-