- 12 Jul, 2017 3 commits
-
-
Mickey Phoenix authored
Summary: The documentation for folly::to<double>()'s handling of unparseable inputs (including "") is incorrect. Additionally, the documentation does not document to<double>()'s handling of the inputs "NaN", "-NaN", "inf", "infinity", "-inf", and "-infinity". This corrects the documentation. See https://github.com/facebook/folly/blob/3272dfdbe243e0ac02acca1dd82bc391d1da079a/folly/docs/Conv.md under the heading "Parsing floating-point types" for the incorrect documentation as rendered. Reviewed By: yfeldblum Differential Revision: D5367656 fbshipit-source-id: 22b38e2bb85d2e647975798360ead39eed6caae8
-
Tom Jackson authored
Summary: This avoids having exceptions occur while constructing hashtables. Reviewed By: ot, yfeldblum Differential Revision: D5384419 fbshipit-source-id: ba2de8cffa46df550bdc62abbe529801249e45cd
-
Phil Willoughby authored
Summary: Should now work on GCC-compatible compilers, and all other compilers which don't attempt any inter-TU optimizations. Moved out of Utility.h because it now requires a supporting .cpp file and some clients presume that Utility.h can be used header-only. Reviewed By: ot Differential Revision: D5381042 fbshipit-source-id: 7e954fed47de4386c85d46a61d56a8fe7fc516f4
-
- 11 Jul, 2017 8 commits
-
-
Christopher Dykes authored
Summary: This reverts commit bc725838dc7f62d030c7e68bc6d229042df2b46c Differential Revision: D5393697 fbshipit-source-id: 4b9ef1e733b0ad73e6deea7ac8a52dfe785b4f2b
-
Benjamin Renard authored
Summary: This revision adds a helper method in folly/Checksum.h, that returns the same crc32 value as php's built-in implementationa and boost::crc_32_type. folly's default implementation only differs from the final xor (with 0xFFFFFFFF for boost and php, 0 for folly), which is added here. Reviewed By: djwatson Differential Revision: D5396671 fbshipit-source-id: 14874af2d5a80408c772875142de6e340ce01038
-
Christopher Dykes authored
Summary: `__gnu_cxx::sfmt19937` is 3.5x faster than `std::mt19937` according to the benchmark. Reviewed By: yfeldblum Differential Revision: D5393697 fbshipit-source-id: bc725838dc7f62d030c7e68bc6d229042df2b46c
-
Peter DeLong authored
Summary: The fiber command can now be run on a value of type folly::fibers::Fiber or a value of type folly::fibers::Fiber* Reviewed By: andriigrynenko Differential Revision: D5393491 fbshipit-source-id: 1f48e08288f75c59852c939062db616eb06cea73
-
Giuseppe Ottaviano authored
Summary: `Baton` is more lightweight than a mutex+condition variable, and the code is much simpler. This was actually the original implementation, but the dependency had to be dropped because `Baton` was unsupported on some architectures. That is not a problem anymore. Also reorganize the includes to follow the conventions. Reviewed By: andriigrynenko, yfeldblum Differential Revision: D5396631 fbshipit-source-id: d782cf271eb35723aaeb3c372e1c1dafeaaf0f0a
-
Xiangyu Bu authored
Summary: The function `setCipherList` seems to forget to update the data member `providedCipherString_`. This diff updates `providedCiphersString_` at a single place `setCiphersOrThrow()`, and adds two test cases to make sure the derived `SSL*` uses the desired set of ciphers. Reviewed By: yfeldblum Differential Revision: D5372758 fbshipit-source-id: 8144ab3bc518b2b9fa8090af62f3bd6475bbbece
-
Yedidya Feldblum authored
Summary: [Folly] Compute masks in `IPAddressV6`. At runtime, instead of storing a 2Kb masks array in the binary. Reviewed By: WillerZ, ot Differential Revision: D5369901 fbshipit-source-id: 031a4eeda1670021236d8ab97f6e85e753675ae5
-
Peter DeLong authored
Summary: Add a fiber_address(fiberManager, index) function so that you can programatically get the address of a given fiber in a fiberManager Reviewed By: andriigrynenko Differential Revision: D5377605 fbshipit-source-id: b9504f7d253e8f702e9329c6f08ff406d4296a6e
-
- 10 Jul, 2017 2 commits
-
-
Fred Emmott authored
Summary: refs hhvm/packaging#128 Reviewed By: anirudhvr Differential Revision: D5380271 fbshipit-source-id: 1cc206d9970b843c3582556096f3ceabeb8d01f6
-
Eli Lindsey authored
Summary: Making the exception text more useful by adding getnameinfo's error code and the v6 scope id Reviewed By: yangchi Differential Revision: D5389137 fbshipit-source-id: e6b9b4edd7dd1859e0ed4d784b2f89a60a701955
-
- 09 Jul, 2017 1 commit
-
-
Yedidya Feldblum authored
Summary: [Folly] In-place construction for `Future`. Using `in_place` as the first argument. Avoid constructing a contained object and then moving it into the `Future`, which may be more expensive, by providing an unambiguous way to specify perfect forwarding. And a matching overload of `makeFuture` for no particularly good reason. Differential Revision: D5362324 fbshipit-source-id: e612965f34ed0fae5fac17db631f7eab9984c696
-
- 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 5 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
-