- 08 Jul, 2017 1 commit
-
-
Alan Frindell authored
Summary: as in title Reviewed By: yfeldblum Differential Revision: D5382995 fbshipit-source-id: 87534e6092f167399943287182ec61ae21e608c6
-
- 07 Jul, 2017 3 commits
-
-
Eric Niebler authored
Summary: `constexpr` All The Things! Although only very recent versions of modern compilers support this, FunctionRef can and should be `constexpr` (demonstration here: https://godbolt.org/g/NJ72RG). This change also changes the `FunctionRef` constructor such that it no longer participates in overload resolution if the argument is not callable with the specified arguments. In addition, it perfectly forwards the callable object such that if it was an rvalue when it was passed to the constructor, it will be invoked as an rvalue in `operator()`. Reviewed By: yfeldblum Differential Revision: D5366720 fbshipit-source-id: bc64053213478aab5a5bd5950c7b2d6f364d86bd
-
Jiahao Li authored
Summary: Provides a `make_mock` interface to `folly::LeakySingleton` for unit test mocking. Reviewed By: andriigrynenko Differential Revision: D5382003 fbshipit-source-id: 9ab81dd64703f4f02772bfb8c85e020680abcc85
-
Christopher Dykes authored
Summary: Because MSVC is not happy about how it's written now. Reviewed By: yfeldblum Differential Revision: D5378740 fbshipit-source-id: 8b77d1a05da75b331e0cb72bd0ad859b89e54b36
-
- 06 Jul, 2017 2 commits
-
-
Christopher Dykes authored
Summary: OpenSSL 1.1.0 drops support for SSLv2, and in doing so also removes the define that user-code used to guard on whether SSLv2 was supported. This adds the define to the portability header to indicate SSLv2 is not supported. Reviewed By: anirudhvr Differential Revision: D5376869 fbshipit-source-id: 04708db138dc13e7747cfff582f4cfed291648b3
-
Phil Willoughby authored
Summary: Backport C++17's `std::launder`. Reviewed By: yfeldblum, ot Differential Revision: D5370531 fbshipit-source-id: b7cc6701d082b6c4855fa77bb644e151ce882deb
-
- 05 Jul, 2017 4 commits
-
-
Adam Simpkins authored
Summary: The TestDoubleWidthTooBig test was performing an exact equality check on two double values. This equality check fails when run on 32-bit platforms. Replace the EXPECT_EQ() check with EXPECT_NEAR(), and simply check that the two values do not differ by more than 1e-14. Reviewed By: Orvid Differential Revision: D652767 fbshipit-source-id: 7bf7ed560a4180a2e2d07a6050d1df18e18d1eea
-
Adam Simpkins authored
Summary: Update LogLevel's operator+() to consist only of a single return statement. This is required for pre-C++14 compiler support. Reviewed By: yfeldblum Differential Revision: D5368256 fbshipit-source-id: 9ecbcde5edd1d0b3e7580d6263ad926e44908219
-
Yedidya Feldblum authored
Summary: [Folly] `Promise<T>::makeEmpty()` and `Future<T>::makeEmpty()`. These can currently be done by creating, and then moving away from, regular promises and futures. But that allocates; this is semantically equivalent but more efficient. Differential Revision: D5368339 fbshipit-source-id: de054cfc75c701c5d39aac64d9a2949cd34b1896
-
Jim Meyering authored
Summary: Avoid this false positive from clang: folly/futures/detail/Core.h:369:15: error: variable 'priority' may be uninitialized when used here [-Werror,-Wconditional-uninitialized] Reviewed By: yfeldblum Differential Revision: D5369916 fbshipit-source-id: 49649417d1b799cc3945cba456b42ab438ad2ddc
-
- 04 Jul, 2017 6 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Apply clang-format to `folly/stats/`. Reviewed By: Orvid Differential Revision: D5366745 fbshipit-source-id: 3b7419d4ab4c6203693603722cd8e707741d3953
-
Yedidya Feldblum authored
Summary: [Folly] Apply `clang-format` to `folly/ssl/`. Reviewed By: Orvid Differential Revision: D5366760 fbshipit-source-id: ad4ec0570050f80d69c78626906e18b5892a999f
-
Yedidya Feldblum authored
Summary: [Folly] Apply `clang-format` to `folly/concurrency/`. Reviewed By: Orvid Differential Revision: D5366946 fbshipit-source-id: 2c9de7c4d8534e02c367fd235fb1ea943ba0539e
-
Yedidya Feldblum authored
Summary: [Folly] Extract the namespace choice in `FBString.h`. The funny `namespace` bits confuse `clang-format`, so let us remove the confusion. Reviewed By: ot, Orvid Differential Revision: D5367299 fbshipit-source-id: efca65fecc70076829c14e31a835bc91f3efb4a4
-
Yedidya Feldblum authored
Summary: [Folly] Apply `clang-format` to `folly/io/` (namespace). Reviewed By: Orvid, terrelln Differential Revision: D5366477 fbshipit-source-id: b4efcdc66c62885f5574b2940e5138590710deae
-
Christopher Dykes authored
Summary: The fix for this didn't get made before the commit landed. Reviewed By: yfeldblum Differential Revision: D5367593 fbshipit-source-id: 4ed9c781121d1b23db11d75d0f8d017d1d8663d9
-
- 03 Jul, 2017 5 commits
-
-
Christopher Dykes authored
Summary: When I moved the change internally, I failed to add the `#include` that was required :( Reviewed By: yfeldblum Differential Revision: D5366037 fbshipit-source-id: 7ddf8fc0b7a0468d0831e886d8025c1893f7f8ae
-
Eric Niebler authored
Summary: `constexpr` All The Things! Reviewed By: Orvid Differential Revision: D5364910 fbshipit-source-id: 11abeb8adc38aef3ac4f2596ecf0f533b9e74203
-
Yedidya Feldblum authored
Summary: [Folly] For `futures::retrying`, detect policy type using `std::result_of`. `FOLLY_CREATE_HAS_MEMBER_FN_TRAITS` does not work in all cases. For example, it does not work with inherited members. And it is not really what we want, anyway, which is to dispatch based on the result type of invoking the policy with a particular set of arguments. We can do that more directly using `std::result_of`. And if we did not have `std::result_of`, then we could do that with SFINAE directly. Reviewed By: WillerZ Differential Revision: D5361808 fbshipit-source-id: 23f969dfd6dbaaa944dc2288e70c3ea11d3398f0
-
Phil Willoughby authored
Summary: Allows you to construct a `Future<A>` from a `Future<B>` if A can be constructed from `B&&`. The constructor is `implicit` if and only if `B&&` is convertible to `A`. This is the same philosophy as Optional, and has the same use-cases. Reviewed By: yfeldblum Differential Revision: D5264185 fbshipit-source-id: e2fae373ab549c186a69dc5f4e32481ef7b11bba
-
Christopher Dykes authored
Summary: There is no difference, as the statements are already implicitly volatile. Reviewed By: yfeldblum Differential Revision: D5363491 fbshipit-source-id: ab5bb878f5ca72aa0de96f82e345213729c071e2
-
- 02 Jul, 2017 6 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] In-place construction for `Try`. Using `in_place` as the first argumenbt. Avoid move operations. Reviewed By: Orvid Differential Revision: D5362568 fbshipit-source-id: 5c2aaf5dba1253c59e384940add411f0f2b570b2
-
Yedidya Feldblum authored
Summary: [Folly] In-place construction for `Optional`. Using `in_place` as the first argument. Avoid move operations. Reviewed By: Orvid, ot Differential Revision: D5362563 fbshipit-source-id: 771db2556842d5dec35d1bf2ad6c23358a417d54
-
Yedidya Feldblum authored
Summary: [Folly] Move `in_place` and friends to `Utility.h`. Document that they are backports from C++17. Reviewed By: Orvid Differential Revision: D5362364 fbshipit-source-id: 495cb7f339fc558f20d89100c141fc7a243239d5
-
Yedidya Feldblum authored
Summary: [Folly] Remove `construct_in_place`. It is an alias for `in_place`, and unnecessary. Reviewed By: Orvid Differential Revision: D5362354 fbshipit-source-id: 39ce07bad87185e506fe7d780789b78060008182
-
Yedidya Feldblum authored
Summary: [Folly] Disambiguate the various `in_place` overloads, following C++17. Forwarding `folly::in_place` is ambiguous because there are multiple overloads and we depend on deduction to choose the correct overload. For example: ```lang=c++ enum struct Err {}; Expected<Expected<int, Err>, Err> val(in_place, in_place, 3); // fails to compile ``` So we must disambiguate the three overloads: the default, the typed, and the indexed. C++17 defines `std::in_place`, `std::in_place_type<typename>`, and `std::in_place_index<std::size_t>`. Let us mimic that exactly, so that it becomes trivial to swap out our implementations for the standard implementations once we jump to C++17. Reviewed By: Orvid Differential Revision: D5362339 fbshipit-source-id: d4012b01796390e74d8c14cdf68af70102608039
-
Christopher Dykes authored
Summary: There is no way to lock a socket on Windows, so these calls will always fail. Just don't do the lock on Windows. To do it properly with sockets, this should probably be forwarding to `sendmsg`/`recvmsg`, but this is good enough for now. Reviewed By: simpkins Differential Revision: D5307901 fbshipit-source-id: 9855274e932a3e2ec3cacae10363200187e0c01b
-
- 01 Jul, 2017 2 commits
-
-
Christopher Dykes authored
Summary: This also silences a few warnings in the stl vector tests. Reviewed By: yfeldblum Differential Revision: D5350383 fbshipit-source-id: 84df2a7dbfbb23ebb3f15a09f0cb58080b3e06d6
-
Nate Stedman authored
Summary: Xcode 9 is throwing errors because `-Wshadow-local` and `-Wshadow-compatible-local` are undefined in Clang. Reviewed By: Orvid Differential Revision: D5356476 fbshipit-source-id: 4cc9f48f796f66decb4beaa66d3e66f486449c19
-
- 30 Jun, 2017 8 commits
-
-
Christopher Dykes authored
Summary: Folly no longer supports GCC 4.8, so this is no longer needed. Reviewed By: yfeldblum Differential Revision: D5354542 fbshipit-source-id: bd9a2732f22f2176f64f92f0af6f7d59dd59a8d9
-
Christopher Dykes authored
Summary: This is so we can do some magic internally. Reviewed By: yfeldblum Differential Revision: D5354341 fbshipit-source-id: 96abf92f4765f5ae21aa3c0dc4bcadcc22560ab5
-
Adam Simpkins authored
Summary: This was breaking Windows builds. Reviewed By: Orvid Differential Revision: D5351468 fbshipit-source-id: 3385931b82b11d71d98861fb45efc71a632d470b
-
Christopher Dykes authored
Summary: Because `#warn` isn't actually a thing. Reviewed By: ot Differential Revision: D5356878 fbshipit-source-id: 57751ca57e7f6aaf9f4d8be70958b9cacc4f7335
-
Christopher Dykes authored
Summary: The empty file was left to stop the bleeding without breaking things. Time to remove it. Reviewed By: mzlee Differential Revision: D5354310 fbshipit-source-id: cd3039811cf9d7371578e4078cd7d32e3bc6d8a1
-
Maged Michael authored
Summary: reserved Reviewed By: djwatson Differential Revision: D5352232 fbshipit-source-id: e3c27e22320e12bd635acb8a1b394a9de02cecfc
-
Maged Michael authored
Summary: - Fixed leak in hazptr_priv destruction - Updated tests to detect leak Reviewed By: djwatson Differential Revision: D5351280 fbshipit-source-id: 724810cbbe0565f0cbd41f9d2121abefd98487bd
-
Christopher Dykes authored
Summary: It doesn't need to exist anymore Reviewed By: yfeldblum Differential Revision: D5318746 fbshipit-source-id: c70b184f4b3fc12ede4632d6b3d43de16ed758c7
-
- 29 Jun, 2017 3 commits
-
-
Adam Simpkins authored
Summary: Versions of gcc prior to 5.x only support C++11 constexpr functions, and require that they consist of only a single return statement. This updates isLogLevelFatal() to meet those requirements so that it can still be compiled with gcc 4.9. Reviewed By: ikobzar Differential Revision: D5350304 fbshipit-source-id: 2a9c256236c484f8c3d5f83690fde8b7333aa4fc
-
Ankit Shah authored
Summary: Using RSA free and removing unnecessary Bignum allocations to prevent test failures due to memory leaks Reviewed By: anirudhvr Differential Revision: D5348232 fbshipit-source-id: 7c76f3dced26a3080fc82b4bacc06bc0768d6fda
-
Maged Michael authored
Summary: - Add support for private lists of retired objects - Add an option for one domain - More scalable thread cache managemnt - hazptr_rec alignment - FOLLY_ALWAYS_INLINE - Refactor management of retired objects in hazptr_domain - Refactor benchmarks Reviewed By: davidtgoldblatt Differential Revision: D5322646 fbshipit-source-id: 9d31582b9a8216861e7e78e2e1cd08dc11cf7f88
-