- 21 Jul, 2019 2 commits
-
-
Lee Howes authored
Summary: Cut remaining explicit class template instantiations in futures. Reviewed By: mengz0 Differential Revision: D16366146 fbshipit-source-id: e755188bd4378ca713b2d73b74def76f9ad837a7
-
Nanshu Chen authored
Summary: It doesn't have any thrift specific code. Moving it to folly allows other folly Cython code use cFollyOptional. Reviewed By: fried Differential Revision: D16388752 fbshipit-source-id: 459c564571ba01fb8f22996227120ba631ffc05c
-
- 19 Jul, 2019 5 commits
-
-
Adam Simpkins authored
Summary: If `path_search()` returns that CMake is not available, raise an Exception and fail the build. This makes the failure somewhat easier to to identify. Without this the code would continue and would try to invoke `subprocess` with a value of `None` in the command argument list. This error is slightly harder to debug, since it isn't clear which command argument or environment variable is not a string. Reviewed By: chadaustin Differential Revision: D16354623 fbshipit-source-id: be972b02cb13bc70db0f867da70e5bf4c6cec46d
-
Adam Simpkins authored
Summary: The scratch path is used as part of the hash computation for each project. We need to make sure this path is always normalized to ensure that we compute the hashes consistently. Reviewed By: chadaustin Differential Revision: D16354624 fbshipit-source-id: 39b5362620bdc247cd7e7f1333dac319b354dc6f
-
Adam Simpkins authored
Summary: getdeps currently ends up calling `path_search()` repeatedly searching for various C/C++ compilers in $PATH. It ends up doing this multiple times for each dependency as it computes the project hashes. This updates the `path_search()` function to cache its results so that we don't keep performing the same searches on the file system over and over again. Reviewed By: chadaustin Differential Revision: D16354625 fbshipit-source-id: 116293bd2f636632517d26436b2332e6c10624f1
-
Dan Melnic authored
Summary: Fix mem leak due to observer not being freed Reviewed By: yfeldblum Differential Revision: D16234386 fbshipit-source-id: 54ea9e904cf6cde0e24edf1511c2e3b46a58376f
-
Chad Austin authored
Summary: This particular `std::min` is ambiguous on macOS. Reviewed By: simpkins Differential Revision: D16352637 fbshipit-source-id: d444b4b5f22c94b76da5463493efe433829bbba5
-
- 18 Jul, 2019 1 commit
-
-
Nanshu Chen authored
Summary: 1. Py_INCREF when holding py future object in bridge function. Py_DECREF in a scope guard. 2. fix typo("folly::coroTask" should be "folly::coro::Task") Reviewed By: yfeldblum, andriigrynenko Differential Revision: D16341866 fbshipit-source-id: 1d5b946596cd86c4a949e2c66f007a6140046506
-
- 17 Jul, 2019 2 commits
-
-
Chad Austin authored
Summary: eden.thrift includes fb303_core.thrift, so any cmake target that depends on eden.thrift should pull in fb303_core.thrift's include directories and libraries. Implement that machinery in CppThriftLibrary.cmake. Reviewed By: wez Differential Revision: D16062657 fbshipit-source-id: d5d962960e767a138a9b634a12aebccf72d6ef43
-
Chad Austin authored
Summary: Add a manifest and CMakeLists.txt for building fb303 with cmake. Reviewed By: wez Differential Revision: D15480895 fbshipit-source-id: d47f6ef9b9383b79b31a6170c7d4c9e8337de4d8
-
- 16 Jul, 2019 3 commits
-
-
Lee Howes authored
Summary: Deprecate Future::then(executor, callback) pending removal. This form of Future::then is ambiguous, and does not yet implement the stronger typing of thenValue and thenTry. It is also tempting to use instead of via, where it is not obvious that it has the behaviour of wrapping a via call in a push and pop of the current executor: .pushCurrentExecutor().via(executor).then(callback).popCurrentExecutor(). With the addition of inline continuations, we can instead make the nesting explicit at low cost by making it an inline continuation that launches an asynchronous task on the passed executor. Reviewed By: yfeldblum Differential Revision: D16282826 fbshipit-source-id: a94c994cf02f43f7a2bd857237885b25591fa9aa
-
Chad Austin authored
Summary: Fix an error about source directories being included in the include path in add_thrift_cpp2_library. I don't know why this was failing for fb303 and not for other projects, but adding a generation expression appears to fix the issue. Reviewed By: strager Differential Revision: D15725024 fbshipit-source-id: 6c02fed6c6703733cf9e0b130c0f90b70e3ea300
-
Rui Zhang authored
Summary: Adds a callback interface to facilitate adding elision support for folly::Singleton. Planned to add context-aware elision support which will use an adaptation method based on the interface's callsite information (ie, the type of the Singleton instance, T, and the type of the callback function, F). Reviewed By: nbronson Differential Revision: D15970597 fbshipit-source-id: 1010322c64d1b7900b4bef5b35059238efabb071
-
- 15 Jul, 2019 3 commits
-
-
Giuseppe Ottaviano authored
Reviewed By: yfeldblum, luciang Differential Revision: D16164723 fbshipit-source-id: ed0c4b2dddb09c8d97a8aca9379e4ea9b107a92c
-
Nanshu Chen authored
Reviewed By: andriigrynenko Differential Revision: D14637661 fbshipit-source-id: 0f8852e30ff554e9f0125e2d918054e4bc1e5af5
-
Nanshu Chen authored
Reviewed By: yfeldblum Differential Revision: D16214195 fbshipit-source-id: 4841b0ba3188f19aba7a0e2c2ffd04d2f5f55220
-
- 12 Jul, 2019 2 commits
-
-
Dan Melnic authored
Summary: TSAN: AtForkList::child() - ignore reads, writes and sync (Note: this ignores all push blocking failures!) Reviewed By: yfeldblum Differential Revision: D16196384 fbshipit-source-id: 28ea3b9fdb317eaffcb428f6ae705d5c4e5de887
-
Adam Simpkins authored
Summary: Fix dyndeps.py to find dumpbin.exe in more situations. Previously the code looked for dumpbin.exe under Visual Studio directories named either `BuildTools` or `Community`. On a system with an MSVC 2017 Professional install it is instead located under a directory named `Professional`. This updates the glob to allow any directory name here. Reviewed By: pkaush Differential Revision: D16207692 fbshipit-source-id: 1a57ec29653a89fd3e751b3e4408a298b4632b11
-
- 11 Jul, 2019 4 commits
-
-
Ahmed Soliman authored
Summary: We expose iobuf to Python via the folly.iobuf Python extension. The code for this extension has historically been in the fbthrift source tree. Move it to folly so that folly produces folly extensions and thrift produces thrift extensions. Without this change we end up with the folly.iobuf Cython extension being packaged with thrift rather than folly, leading the need for a number of work-arounds to allow Python and Cython to find folly.iobuf without stopping their searches on folly.executor. The tests for IOBuf python extension has been added to folly while maintaining the thrift-specific IOBuf tests in thrift. Reviewed By: vitaut Differential Revision: D14405645 fbshipit-source-id: 662a4e32c219f6d044bb6e903a2525ec1b4059c5
-
Puneet Kaushik authored
Summary: is_objfile() is used to find the executable files in the given project. Getdeps will only find and copy the dependencies of the binaries identified by this function. On Windows we will copy only the dependencies for an exe file. Reviewed By: chadaustin Differential Revision: D16185962 fbshipit-source-id: f6b5089401b242514a845e3a97b3804051d93c1c
-
Andrii Grynenko authored
Summary: Instead of using setCallbackAndDetach (which is hard to apply in all cases because of cancellation), this diff fixes releaseDefferedExecutor. Reviewed By: yfeldblum Differential Revision: D16189338 fbshipit-source-id: 47ef192dd0cec3c13824071c8ba7e1dd06968a70
-
Matt Glazar authored
Reviewed By: yfeldblum Differential Revision: D15915100 fbshipit-source-id: afc131bdf143ac0eec15523e257545d63207cb34
-
- 10 Jul, 2019 1 commit
-
-
Wez Furlong authored
Summary: This are noisy and don't provide real value, so remove the webhooks. Reviewed By: yns88 Differential Revision: D16115486 fbshipit-source-id: 1daa2d78f4e786a42dcc5779ccd30c36e02d2445
-
- 09 Jul, 2019 3 commits
-
-
Christos Stratopoulos authored
Summary: Some changes to get Poly compiling with VS2019 (and correcting an oversight from https://github.com/facebook/folly/pull/1174) The change to `detail/TypeList.h` is straightforward I think. The introduction of `getOpsImpl` I find a bit distasteful...I will remark that as of Visual Studio 16.2.0 Preview 3.0 it is not necessary, but it is still needed on Visual Studio 16.1.5 (latest release, non preview). Orvid in your comment [here](https://github.com/facebook/folly/pull/1178#issuecomment-506864383) you mentioned the question of supporting VS 2017 or VS 2019 given that Poly had no MSVC support at all beforehand. I re-downloaded VS 2017 on my machine to test against the fixes added here and the situation seemed discouraging with lots more errors and perhaps less obvious workarounds. I have not made any changes to the CMake stuff for Poly on MSVC: https://github.com/facebook/folly/blob/master/CMakeLists.txt#L235 I'm not sure if once we resolve the issue above we might want to add some logic maybe [here](https://github.com/facebook/folly/blob/master/CMakeLists.txt#L63) to handle which version of MSVC is approved for poly; will wait for further direction on that. Pull Request resolved: https://github.com/facebook/folly/pull/1182 Reviewed By: Orvid Differential Revision: D16109504 Pulled By: yfeldblum fbshipit-source-id: d20b242494b075ce91452215c2025584fe488d65
-
Scott Haskin authored
Summary: Test AsyncSocketTest.getBufInUse was throwing exceptions, I believe this should fix those issues. The problem appeared to be that the socket connection did not always work immediately so we needed to call loop() on the event base so that an async connection could complete. Reviewed By: yfeldblum Differential Revision: D16052111 fbshipit-source-id: 9793e613eea5b17cb3ab00605355102b2f8807d8
-
Roman Orlov authored
Summary: Folly already has its own lightweight implementation `IteratorFacade`. It depends only a few STL headers thus saves compilation time. Pull Request resolved: https://github.com/facebook/folly/pull/1187 Reviewed By: LeeHowes Differential Revision: D16147453 Pulled By: yfeldblum fbshipit-source-id: 9559a095e242ee7e16659558d505777159f6e534
-
- 08 Jul, 2019 1 commit
-
-
Dan Melnic authored
Summary: Add MicroSpinLock TSAN annotations Reviewed By: yfeldblum Differential Revision: D14578441 fbshipit-source-id: e2c9bc1806550d003cc659a86d214c089464f126
-
- 06 Jul, 2019 3 commits
-
-
Marshall Cline authored
Summary: Context: migration of fbcode from folly::gen to range-v3 by way of pipe-adapters ("pipe fittings") that allow a `|`-based pipeline mixing {std-containers and/or range-v3} with folly::gen, e.g., ``` auto result = myVec // anything consistent with range-v3 or these adapters | ranges::view::filter(...) // zero-or-more range-v3 pipe-elems | <adapter-goes-here> // <==**one of the pipe-adapters provided by this task** | folly::gen::blah(); // trailing pipe-elems are folly::gen ``` Goal of this task: rename the pipe-adapter folly::gen::detail types so those names are consistent with the names of the corresponding folly::gen::objects. Reviewed By: yfeldblum Differential Revision: D16138397 fbshipit-source-id: 3e6145f5bb35c8d2bd14a9a3eb645e153743d499
-
Marshall Cline authored
Summary: Relocate "folly::gen to range-v3" pipe-adapters into the corresponding adapter-struct (fix compile-time errors, plus improve clarity about the linkage between the `operator|` and corresponding type). Context: pipe-adapters ("pipe fittings") that allow a `|`-based pipeline mixing {std-containers and/or range-v3} with folly::gen, e.g., ``` auto result = myVec // anything consistent with range-v3 or these adapters | ranges::view::filter(...) // zero-or-more range-v3 pipe-elems | <adapter-goes-here> // <==**one of the pipe-adapters provided by this task** | folly::gen::blah(); // trailing pipe-elems are folly::gen ``` This diff relocates those folly::gen-to-range-v3 adapters. Reviewed By: yfeldblum, ericniebler Differential Revision: D16053008 fbshipit-source-id: 078a95990d5277ac0c4e02452cd8fd36bead8306
-
Lucian Grijincu authored
Reviewed By: yfeldblum Differential Revision: D16138503 fbshipit-source-id: 49243eeb6eb24417c912b89beb84d15bae73053f
-
- 05 Jul, 2019 3 commits
-
-
William McDonald authored
Summary: StandardLogHandlerFactory has a good amount of logic in it for handling options. It would be nice to reuse it when specifying a custom Formatter. This also exposes the WriterFactory from StreamHandlerFactory, so that a user can re-use the code to create the default LogWriter when using a custom Formatter. Reviewed By: yfeldblum Differential Revision: D16074437 fbshipit-source-id: d79947e2fe93b8920b83294438a88c4dd871986b
-
Puneet Kaushik authored
Summary: Mapping scratch dir <from> -> <to> show up in the output of all the show dir commands on Windows, so removing it. example: getdeps.py show-inst-dir eden Reviewed By: wez Differential Revision: D16092494 fbshipit-source-id: 910288a8d23c1d68c5e70b7b2dbb36ef53a326fc
-
Puneet Kaushik authored
Summary: This adds a subclass to copy the dynamic dependencies on Windows. Reviewed By: wez Differential Revision: D16110433 fbshipit-source-id: 14d876947f3ec504382fef0d459367a7119ff6cb
-
- 04 Jul, 2019 1 commit
-
-
Stiopa Koltsov authored
Reviewed By: yfeldblum Differential Revision: D16099521 fbshipit-source-id: da89c9954037c168f7591353e42b2632af0b8b31
-
- 03 Jul, 2019 4 commits
-
-
Wez Furlong authored
Summary: This diff adds a `fixup-dyn-deps` subcommand that is intended to aid in packaging on multiple platforms. Its purpose is to copy a set of executable object files from the getdeps installation directories and place them into an installation staging area that will then be used to create some kind of package (rpm, tarball etc.). The dynamic dependencies of the executables are determined and also copied into the destination area, and the important part: the execute is rewritten such that it will load the deps out of an alternate installation prefix. The implementation of this command draws on similar scripts in use for the watchman and eden packaging on windows and macos. This diff adds linux support using the `patchelf` utility. Reviewed By: pkaush Differential Revision: D16101902 fbshipit-source-id: 5885125971947139407841e08c0cf9f35fdf5895
-
Wez Furlong authored
Summary: I want to use this logic outside of a builder implementation Reviewed By: pkaush Differential Revision: D16101914 fbshipit-source-id: db3c9ac6c84a92ab84a18dddb931953b0a51f127
-
Wez Furlong authored
Summary: The intent is to use this in a future diff to make packaging a first class concept; it can be used similarly to how we munge dynamic deps on darwin systems. Reviewed By: shri-khare Differential Revision: D16099931 fbshipit-source-id: c66f994b7c07e903fbf2989946b17a0991e12a91
-
Rosen Penev authored
Summary: wait.h is a GNU header. The POSIX one is sys/wait.h. Fixes musl warning: warning redirecting incorrect #include <wait.h> to <sys/wait.h> Pull Request resolved: https://github.com/facebook/folly/pull/1183 Reviewed By: wez Differential Revision: D16097571 Pulled By: yfeldblum fbshipit-source-id: 751e4929bc9f00c99c160be9a7dd904e57ad40ce
-
- 02 Jul, 2019 2 commits
-
-
Wez Furlong authored
Summary: We're seeing a failure on macOS in a CI environment but don't have much context: ``` Stderr: + GETDEPS=opensource/fbcode_builder/getdeps.py + opensource/fbcode_builder/getdeps.py test --facebook-internal watchman Traceback (most recent call last): File "opensource/fbcode_builder/getdeps.py", line 436, in <module> sys.exit(main()) File "opensource/fbcode_builder/getdeps.py", line 422, in main return args.func(args) File "opensource/fbcode_builder/getdeps.py", line 342, in run builder.run_tests(install_dirs, schedule_type=args.schedule_type) File "/data/sandcastle/boxes/trunk-hg-fbcode-fbsource/fbcode/opensource/fbcode_builder/getdeps/builder.py", line 372, in run_tests buck_test_info = list_tests() File "/data/sandcastle/boxes/trunk-hg-fbcode-fbsource/fbcode/opensource/fbcode_builder/getdeps/builder.py", line 352, in list_tests data = json.loads(output.decode("utf-8")) File "/opt/homebrew/Cellar/python27/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads return _default_decoder.decode(s) File "/opt/homebrew/Cellar/python27/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/opt/homebrew/Cellar/python27/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 384, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded ``` Add some more context to that error message so we can learn more. Reviewed By: pkaush Differential Revision: D16061528 fbshipit-source-id: 23603a5d18651d20641ef1987b7094e73a9b1dbe
-
Puneet Kaushik authored
Summary: On Windows "--vcvars-path" can be passed to point to the toolchain we want to use. Reviewed By: wez Differential Revision: D15926044 fbshipit-source-id: 2b0cde793f7c7f8473b78afde8794640bae351f3
-